diff --git a/boot.php b/boot.php index 6f036d846e..8fdccef4a5 100644 --- a/boot.php +++ b/boot.php @@ -560,12 +560,12 @@ class App { * beyond are used. */ public $theme = array( - 'sourcename' => '', - 'videowidth' => 425, - 'videoheight' => 350, + 'sourcename' => '', + 'videowidth' => 425, + 'videoheight' => 350, 'force_max_items' => 0, - 'thread_allow' => true, - 'stylesheet' => '', + 'thread_allow' => true, + 'stylesheet' => '', 'template_engine' => 'smarty3', ); @@ -654,7 +654,7 @@ class App { $this->scheme = 'http'; - if((x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) || + if ((x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) || (x($_SERVER['HTTP_FORWARDED']) && preg_match("/proto=https/", $_SERVER['HTTP_FORWARDED'])) || (x($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (x($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || @@ -662,12 +662,12 @@ class App { (x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) // XXX: reasonable assumption, but isn't this hardcoding too much? ) { $this->scheme = 'https'; - } + } - if(x($_SERVER,'SERVER_NAME')) { + if (x($_SERVER,'SERVER_NAME')) { $this->hostname = $_SERVER['SERVER_NAME']; - if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) + if (x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) $this->hostname .= ':' . $_SERVER['SERVER_PORT']; /* * Figure out if we are running at the top of a domain @@ -675,7 +675,7 @@ class App { */ $path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\'); - if(isset($path) && strlen($path) && ($path != $this->path)) + if (isset($path) && strlen($path) && ($path != $this->path)) $this->path = $path; } @@ -711,7 +711,6 @@ class App { // fix query_string $this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string); - // unix style "homedir" if (substr($this->cmd,0,1) === '~') { @@ -742,11 +741,10 @@ class App { $this->argv = explode('/',$this->cmd); $this->argc = count($this->argv); - if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) { + if ((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) { $this->module = str_replace(".", "_", $this->argv[0]); $this->module = str_replace("-", "_", $this->module); - } - else { + } else { $this->argc = 1; $this->argv = array('home'); $this->module = 'home'; @@ -760,8 +758,9 @@ class App { $this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1); $this->pager['itemspage'] = 50; $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage']; - if($this->pager['start'] < 0) + if ($this->pager['start'] < 0) { $this->pager['start'] = 0; + } $this->pager['total'] = 0; /* @@ -793,14 +792,17 @@ class App { $basepath = get_config("system", "basepath"); - if ($basepath == "") + if ($basepath == "") { $basepath = dirname(__FILE__); + } - if ($basepath == "") + if ($basepath == "") { $basepath = $_SERVER["DOCUMENT_ROOT"]; + } - if ($basepath == "") + if ($basepath == "") { $basepath = $_SERVER["PWD"]; + } return($basepath); } @@ -864,7 +866,7 @@ class App { function set_baseurl($url) { $parsed = @parse_url($url); - if($parsed) { + if ($parsed) { $this->scheme = $parsed['scheme']; $hostname = $parsed['host']; @@ -876,7 +878,7 @@ class App { } if (file_exists(".htpreconfig.php")) { - @include(".htpreconfig.php"); + include(".htpreconfig.php"); } if (get_config('config', 'hostname') != '') { @@ -890,8 +892,9 @@ class App { } function get_hostname() { - if (get_config('config','hostname') != "") + if (get_config('config','hostname') != "") { $this->hostname = get_config('config','hostname'); + } return $this->hostname; } @@ -926,44 +929,49 @@ class App { $interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000); // If the update is "deactivated" set it to the highest integer number (~24 days) - if ($interval < 0) + if ($interval < 0) { $interval = 2147483647; + } - if($interval < 10000) + if ($interval < 10000) { $interval = 40000; + } // compose the page title from the sitename and the // current module called - if (!$this->module=='') - { - $this->page['title'] = $this->config['sitename'].' ('.$this->module.')'; + if (!$this->module=='') { + $this->page['title'] = $this->config['sitename'].' ('.$this->module.')'; } else { - $this->page['title'] = $this->config['sitename']; + $this->page['title'] = $this->config['sitename']; } /* put the head template at the beginning of page['htmlhead'] * since the code added by the modules frequently depends on it * being first */ - if(!isset($this->page['htmlhead'])) + if (!isset($this->page['htmlhead'])) { $this->page['htmlhead'] = ''; + } // If we're using Smarty, then doing replace_macros() will replace // any unrecognized variables with a blank string. Since we delay // replacing $stylesheet until later, we need to replace it now // with another variable name - if($this->theme['template_engine'] === 'smarty3') + if ($this->theme['template_engine'] === 'smarty3') { $stylesheet = $this->get_template_ldelim('smarty3') . '$stylesheet' . $this->get_template_rdelim('smarty3'); - else + } else { $stylesheet = '$stylesheet'; + } $shortcut_icon = get_config("system", "shortcut_icon"); - if ($shortcut_icon == "") + if ($shortcut_icon == "") { $shortcut_icon = "images/friendica-32.png"; + } $touch_icon = get_config("system", "touch_icon"); - if ($touch_icon == "") + if ($touch_icon == "") { $touch_icon = "images/friendica-128.png"; + } // get data wich is needed for infinite scroll on the network page $invinite_scroll = infinite_scroll_data($this->module); @@ -985,8 +993,9 @@ class App { } function init_page_end() { - if(!isset($this->page['end'])) + if (!isset($this->page['end'])) { $this->page['end'] = ''; + } $tpl = get_markup_template('end.tpl'); $this->page['end'] = replace_macros($tpl,array( '$baseurl' => $this->get_baseurl() // FIXME for z_path!!!! @@ -1022,13 +1031,13 @@ class App { // The following code is deactivated. It doesn't seem to make any sense and it slows down the system. /* - if($this->cached_profile_image[$avatar_image]) + if ($this->cached_profile_image[$avatar_image]) return $this->cached_profile_image[$avatar_image]; $path_parts = explode("/",$avatar_image); $common_filename = $path_parts[count($path_parts)-1]; - if($this->cached_profile_picdate[$common_filename]){ + if ($this->cached_profile_picdate[$common_filename]){ $this->cached_profile_image[$avatar_image] = $avatar_image . $this->cached_profile_picdate[$common_filename]; } else { $r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'", @@ -1083,7 +1092,7 @@ class App { function register_template_engine($class, $name = '') { if ($name===""){ $v = get_class_vars( $class ); - if(x($v,"name")) $name = $v['name']; + if (x($v,"name")) $name = $v['name']; } if ($name===""){ echo "template engine $class cannot be registered without a name.\n"; @@ -1112,7 +1121,7 @@ class App { } if (isset($this->template_engines[$template_engine])){ - if(isset($this->template_engine_instance[$template_engine])){ + if (isset($this->template_engine_instance[$template_engine])){ return $this->template_engine_instance[$template_engine]; } else { $class = $this->template_engines[$template_engine]; @@ -1141,7 +1150,7 @@ class App { switch($engine) { case 'smarty3': - if(is_writable('view/smarty3/')) + if (is_writable('view/smarty3/')) $this->theme['template_engine'] = 'smarty3'; break; default: @@ -1159,8 +1168,9 @@ class App { } function save_timestamp($stamp, $value) { - if (!isset($this->config['system']['profiler']) || !$this->config['system']['profiler']) + if (!isset($this->config['system']['profiler']) || !$this->config['system']['profiler']) { return; + } $duration = (float)(microtime(true)-$stamp); @@ -1242,8 +1252,9 @@ class App { array_shift($trace); $callstack = array(); - foreach ($trace AS $func) + foreach ($trace AS $func) { $callstack[] = $func["function"]; + } return implode(", ", $callstack); } @@ -1265,31 +1276,33 @@ class App { * @return bool Is it a known backend? */ function is_backend() { - $backend = array(); - $backend[] = "_well_known"; - $backend[] = "api"; - $backend[] = "dfrn_notify"; - $backend[] = "fetch"; - $backend[] = "hcard"; - $backend[] = "hostxrd"; - $backend[] = "nodeinfo"; - $backend[] = "noscrape"; - $backend[] = "p"; - $backend[] = "poco"; - $backend[] = "post"; - $backend[] = "proxy"; - $backend[] = "pubsub"; - $backend[] = "pubsubhubbub"; - $backend[] = "receive"; - $backend[] = "rsd_xml"; - $backend[] = "salmon"; - $backend[] = "statistics_json"; - $backend[] = "xrd"; + static $backend = array( + "_well_known", + "api", + "dfrn_notify", + "fetch", + "hcard", + "hostxrd", + "nodeinfo", + "noscrape", + "p", + "poco", + "post", + "proxy", + "pubsub", + "pubsubhubbub", + "receive", + "rsd_xml", + "salmon", + "statistics_json", + "xrd", + ); - if (in_array($this->module, $backend)) + if (in_array($this->module, $backend)) { return(true); - else + } else { return($this->backend); + } } /** @@ -1302,13 +1315,15 @@ class App { if ($this->is_backend()) { $process = "backend"; $max_processes = get_config('system', 'max_processes_backend'); - if (intval($max_processes) == 0) + if (intval($max_processes) == 0) { $max_processes = 5; + } } else { $process = "frontend"; $max_processes = get_config('system', 'max_processes_frontend'); - if (intval($max_processes) == 0) + if (intval($max_processes) == 0) { $max_processes = 20; + } } $processlist = dbm::processlist(); @@ -1333,13 +1348,15 @@ class App { if ($this->is_backend()) { $process = "backend"; $maxsysload = intval(get_config('system', 'maxloadavg')); - if ($maxsysload < 1) + if ($maxsysload < 1) { $maxsysload = 50; + } } else { $process = "frontend"; $maxsysload = intval(get_config('system','maxloadavg_frontend')); - if ($maxsysload < 1) + if ($maxsysload < 1) { $maxsysload = 50; + } } $load = current_load(); @@ -1375,16 +1392,17 @@ class App { // add baseurl to args. cli scripts can't construct it $args[] = $this->get_baseurl(); - for($x = 0; $x < count($args); $x ++) + for ($x = 0; $x < count($args); $x ++) { $args[$x] = escapeshellarg($args[$x]); + } $cmdline = implode($args," "); - if(get_config('system','proc_windows')) + if (get_config('system','proc_windows')) { proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__))); - else + } else { proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__))); - + } } /** @@ -1461,17 +1479,17 @@ function get_app() { * @return bool|int */ function x($s,$k = NULL) { - if($k != NULL) { - if((is_array($s)) && (array_key_exists($k,$s))) { - if($s[$k]) + if ($k != NULL) { + if ((is_array($s)) && (array_key_exists($k,$s))) { + if ($s[$k]) { return (int) 1; + } return (int) 0; - } + } return false; - } - else { - if(isset($s)) { - if($s) { + } else { + if (isset($s)) { + if ($s) { return (int) 1; } return (int) 0; @@ -1499,8 +1517,9 @@ function clean_urls() { function z_path() { $base = App::get_baseurl(); - if(! clean_urls()) + if (! clean_urls()) { $base .= '/?q='; + } return $base; } @@ -1525,8 +1544,9 @@ function z_root() { * @return string */ function absurl($path) { - if(strpos($path,'/') === 0) + if (strpos($path,'/') === 0) { return z_path() . $path; + } return $path; } @@ -1542,12 +1562,13 @@ function is_ajax() { function check_db() { $build = get_config('system','build'); - if(! x($build)) { + if (! x($build)) { set_config('system','build',DB_UPDATE_VERSION); $build = DB_UPDATE_VERSION; } - if($build != DB_UPDATE_VERSION) + if ($build != DB_UPDATE_VERSION) { proc_run(PRIORITY_CRITICAL, 'include/dbupdate.php'); + } } @@ -1566,10 +1587,12 @@ function check_url(App $a) { // and www.example.com vs example.com. // We will only change the url to an ip address if there is no existing setting - if(! x($url)) + if (! x($url)) { $url = set_config('system','url',App::get_baseurl()); - if((! link_compare($url,App::get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname))) + } + if ((! link_compare($url,App::get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname))) { $url = set_config('system','url',App::get_baseurl()); + } return; } @@ -1580,13 +1603,14 @@ function check_url(App $a) { */ function update_db(App $a) { $build = get_config('system','build'); - if(! x($build)) + if (! x($build)) { $build = set_config('system','build',DB_UPDATE_VERSION); + } - if($build != DB_UPDATE_VERSION) { + if ($build != DB_UPDATE_VERSION) { $stored = intval($build); $current = intval(DB_UPDATE_VERSION); - if($stored < $current) { + if ($stored < $current) { Config::load('database'); // We're reporting a different version than what is currently installed. @@ -1596,12 +1620,13 @@ function update_db(App $a) { // updating right this very second and the correct version of the update.php // file may not be here yet. This can happen on a very busy site. - if(DB_UPDATE_VERSION == UPDATE_VERSION) { + if (DB_UPDATE_VERSION == UPDATE_VERSION) { // Compare the current structure with the defined structure $t = get_config('database','dbupdate_'.DB_UPDATE_VERSION); - if($t !== false) + if ($t !== false) { return; + } set_config('database','dbupdate_'.DB_UPDATE_VERSION, time()); @@ -1609,15 +1634,18 @@ function update_db(App $a) { // conflits with new routine) for ($x = $stored; $x < NEW_UPDATE_ROUTINE_VERSION; $x++) { $r = run_update_function($x); - if (!$r) break; + if (!$r) { + break; + } + } + if ($stored < NEW_UPDATE_ROUTINE_VERSION) { + $stored = NEW_UPDATE_ROUTINE_VERSION; } - if ($stored < NEW_UPDATE_ROUTINE_VERSION) $stored = NEW_UPDATE_ROUTINE_VERSION; - // run new update routine // it update the structure in one call $retval = update_structure(false, true); - if($retval) { + if ($retval) { update_fail( DB_UPDATE_VERSION, $retval @@ -1628,9 +1656,11 @@ function update_db(App $a) { } // run any left update_nnnn functions in update.php - for($x = $stored; $x < $current; $x ++) { + for ($x = $stored; $x < $current; $x ++) { $r = run_update_function($x); - if (!$r) break; + if (!$r) { + break; + } } } } @@ -1640,7 +1670,7 @@ function update_db(App $a) { } function run_update_function($x) { - if(function_exists('update_' . $x)) { + if (function_exists('update_' . $x)) { // There could be a lot of processes running or about to run. // We want exactly one process to run the update command. @@ -1651,8 +1681,9 @@ function run_update_function($x) { // delete the config entry to try again. $t = get_config('database','update_' . $x); - if($t !== false) + if ($t !== false) { return false; + } set_config('database','update_' . $x, time()); // call the specific update @@ -1660,7 +1691,7 @@ function run_update_function($x) { $func = 'update_' . $x; $retval = $func(); - if($retval) { + if ($retval) { //send the administrator an e-mail update_fail( $x, @@ -1693,39 +1724,40 @@ function run_update_function($x) { * * @param App $a * - */ + */ function check_plugins(App $a) { $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $installed = $r; - else + } else { $installed = array(); + } $plugins = get_config('system','addon'); $plugins_arr = array(); - if($plugins) + if ($plugins) { $plugins_arr = explode(',',str_replace(' ', '',$plugins)); + } $a->plugins = $plugins_arr; $installed_arr = array(); - if(count($installed)) { - foreach($installed as $i) { - if(! in_array($i['name'],$plugins_arr)) { + if (count($installed)) { + foreach ($installed as $i) { + if (! in_array($i['name'],$plugins_arr)) { uninstall_plugin($i['name']); - } - else { + } else { $installed_arr[] = $i['name']; } } } - if(count($plugins_arr)) { - foreach($plugins_arr as $p) { - if(! in_array($p,$installed_arr)) { + if (count($plugins_arr)) { + foreach ($plugins_arr as $p) { + if (! in_array($p,$installed_arr)) { install_plugin($p); } } @@ -1785,10 +1817,9 @@ function login($register = false, $hiddens=false) { $dest_url = $a->query_string; - if(local_user()) { + if (local_user()) { $tpl = get_markup_template("logout.tpl"); - } - else { + } else { $a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"),array( '$baseurl' => $a->get_baseurl(true) )); @@ -1800,29 +1831,29 @@ function login($register = false, $hiddens=false) { $o .= replace_macros($tpl, array( - '$dest_url' => $dest_url, - '$logout' => t('Logout'), - '$login' => t('Login'), + '$dest_url' => $dest_url, + '$logout' => t('Logout'), + '$login' => t('Login'), - '$lname' => array('username', t('Nickname or Email: ') , '', ''), - '$lpassword' => array('password', t('Password: '), '', ''), - '$lremember' => array('remember', t('Remember me'), 0, ''), + '$lname' => array('username', t('Nickname or Email: ') , '', ''), + '$lpassword' => array('password', t('Password: '), '', ''), + '$lremember' => array('remember', t('Remember me'), 0, ''), - '$openid' => !$noid, - '$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''), + '$openid' => !$noid, + '$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''), - '$hiddens' => $hiddens, + '$hiddens' => $hiddens, - '$register' => $reg, + '$register' => $reg, '$lostpass' => t('Forgot your password?'), '$lostlink' => t('Password Reset'), - '$tostitle' => t('Website Terms of Service'), - '$toslink' => t('terms of service'), + '$tostitle' => t('Website Terms of Service'), + '$toslink' => t('terms of service'), - '$privacytitle' => t('Website Privacy Policy'), - '$privacylink' => t('privacy policy'), + '$privacytitle' => t('Website Privacy Policy'), + '$privacylink' => t('privacy policy'), )); @@ -1836,8 +1867,9 @@ function login($register = false, $hiddens=false) { */ function killme() { - if (!get_app()->is_backend()) + if (!get_app()->is_backend()) { session_write_close(); + } exit; } @@ -1846,8 +1878,9 @@ function killme() { * @brief Redirect to another URL and terminate this process. */ function goaway($s) { - if (!strstr(normalise_link($s), "http://")) + if (!strstr(normalise_link($s), "http://")) { $s = App::get_baseurl()."/".$s; + } header("Location: $s"); killme(); @@ -1895,8 +1928,9 @@ function public_contact() { * @return int|bool visitor_id or false */ function remote_user() { - if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id'))) + if ((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id'))) { return intval($_SESSION['visitor_id']); + } return false; } @@ -1909,9 +1943,12 @@ function remote_user() { */ function notice($s) { $a = get_app(); - if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array(); - if($a->interactive) + if (! x($_SESSION,'sysmsg')) { + $_SESSION['sysmsg'] = array(); + } + if ($a->interactive) { $_SESSION['sysmsg'][] = $s; + } } /** @@ -1924,12 +1961,16 @@ function notice($s) { function info($s) { $a = get_app(); - if (local_user() AND get_pconfig(local_user(),'system','ignore_info')) + if (local_user() AND get_pconfig(local_user(),'system','ignore_info')) { return; + } - if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array(); - if($a->interactive) + if (! x($_SESSION,'sysmsg_info')) { + $_SESSION['sysmsg_info'] = array(); + } + if ($a->interactive) { $_SESSION['sysmsg_info'][] = $s; + } } @@ -1991,8 +2032,9 @@ function proc_run($cmd){ $arr = array('args' => $args, 'run_cmd' => true); call_hooks("proc_run", $arr); - if (!$arr['run_cmd'] OR !count($args)) + if (!$arr['run_cmd'] OR !count($args)) { return; + } $priority = PRIORITY_MEDIUM; $dont_fork = get_config("system", "worker_dont_fork"); @@ -2015,12 +2057,13 @@ function proc_run($cmd){ $found = q("SELECT `id` FROM `workerqueue` WHERE `parameter` = '%s'", dbesc($parameters)); - if (!$found) + if (!dbm::is_result($found)) { q("INSERT INTO `workerqueue` (`parameter`, `created`, `priority`) VALUES ('%s', '%s', %d)", dbesc($parameters), dbesc(datetime_convert()), intval($priority)); + } // Should we quit and wait for the poller to be called as a cronjob? if ($dont_fork) { @@ -2033,12 +2076,14 @@ function proc_run($cmd){ // Get number of allowed number of worker threads $queues = intval(get_config("system", "worker_queues")); - if ($queues == 0) + if ($queues == 0) { $queues = 4; + } // If there are already enough workers running, don't fork another one - if ($workers[0]["workers"] >= $queues) + if ($workers[0]["workers"] >= $queues) { return; + } // Now call the poller to execute the jobs that we just added to the queue $args = array("include/poller.php", "no_cron"); @@ -2055,20 +2100,22 @@ function current_theme(){ // Find the theme that belongs to the user whose stuff we are looking at - if($a->profile_uid && ($a->profile_uid != local_user())) { + if ($a->profile_uid && ($a->profile_uid != local_user())) { $r = q("select theme from user where uid = %d limit 1", intval($a->profile_uid) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $page_theme = $r[0]['theme']; + } } // Allow folks to over-rule user themes and always use their own on their own site. // This works only if the user is on the same server - if($page_theme && local_user() && (local_user() != $a->profile_uid)) { - if(get_pconfig(local_user(),'system','always_my_theme')) + if ($page_theme && local_user() && (local_user() != $a->profile_uid)) { + if (get_pconfig(local_user(),'system','always_my_theme')) { $page_theme = null; + } } // $mobile_detect = new Mobile_Detect(); @@ -2089,38 +2136,44 @@ function current_theme(){ } $theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme); - if($theme_name === '---') { + if ($theme_name === '---') { // user has selected to have the mobile theme be the same as the normal one $system_theme = $standard_system_theme; $theme_name = $standard_theme_name; - if($page_theme) + if ($page_theme) { $theme_name = $page_theme; + } } } - } - else { + } else { $system_theme = $standard_system_theme; $theme_name = $standard_theme_name; - if($page_theme) + if ($page_theme) { $theme_name = $page_theme; + } } - if($theme_name && + if ($theme_name && (file_exists('view/theme/' . $theme_name . '/style.css') || - file_exists('view/theme/' . $theme_name . '/style.php'))) + file_exists('view/theme/' . $theme_name . '/style.php'))) { return($theme_name); + } - foreach($app_base_themes as $t) { - if(file_exists('view/theme/' . $t . '/style.css')|| - file_exists('view/theme/' . $t . '/style.php')) + foreach ($app_base_themes as $t) { + if (file_exists('view/theme/' . $t . '/style.css') || + file_exists('view/theme/' . $t . '/style.php')) { return($t); + } } $fallback = array_merge(glob('view/theme/*/style.css'),glob('view/theme/*/style.php')); - if(count($fallback)) + if (count($fallback)) { return (str_replace('view/theme/','', substr($fallback[0],0,-10))); + } + + /// @TODO No final return statement? } @@ -2137,8 +2190,9 @@ function current_theme_url() { $t = current_theme(); $opts = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : ''); - if (file_exists('view/theme/' . $t . '/style.php')) + if (file_exists('view/theme/' . $t . '/style.php')) { return('view/theme/'.$t.'/style.pcss'.$opts); + } return('view/theme/'.$t.'/style.css'); } @@ -2167,8 +2221,9 @@ function feed_birthday($uid,$tz) { $birthday = ''; - if(! strlen($tz)) + if (! strlen($tz)) { $tz = 'UTC'; + } $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", intval($uid) @@ -2176,13 +2231,14 @@ function feed_birthday($uid,$tz) { if (dbm::is_result($p)) { $tmp_dob = substr($p[0]['dob'],5); - if(intval($tmp_dob)) { + if (intval($tmp_dob)) { $y = datetime_convert($tz,$tz,'now','Y'); $bd = $y . '-' . $tmp_dob . ' 00:00'; $t_dob = strtotime($bd); $now = strtotime(datetime_convert($tz,$tz,'now')); - if($t_dob < $now) + if ($t_dob < $now) { $bd = $y + 1 . '-' . $tmp_dob . ' 00:00'; + } $birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME); } } @@ -2200,8 +2256,8 @@ function is_site_admin() { $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email'])); - //if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email'])) - if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && in_array($a->user['email'], $adminlist)) + //if (local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email'])) + if (local_user() && x($a->user,'email') && x($a->config,'admin_email') && in_array($a->user['email'], $adminlist)) return true; return false; } @@ -2216,16 +2272,16 @@ function is_site_admin() { */ function build_querystring($params, $name=null) { $ret = ""; - foreach($params as $key=>$val) { - if(is_array($val)) { - if($name==null) { + foreach ($params as $key=>$val) { + if (is_array($val)) { + if ($name==null) { $ret .= build_querystring($val, $key); } else { $ret .= build_querystring($val, $name."[$key]"); } } else { $val = urlencode($val); - if($name!=null) { + if ($name!=null) { $ret.=$name."[$key]"."=$val&"; } else { $ret.= "$key=$val&"; @@ -2237,7 +2293,7 @@ function build_querystring($params, $name=null) { function explode_querystring($query) { $arg_st = strpos($query, '?'); - if($arg_st !== false) { + if ($arg_st !== false) { $base = substr($query, 0, $arg_st); $arg_st += 1; } else { @@ -2246,13 +2302,14 @@ function explode_querystring($query) { } $args = explode('&', substr($query, $arg_st)); - foreach($args as $k=>$arg) { - if($arg === '') + foreach ($args as $k=>$arg) { + if ($arg === '') { unset($args[$k]); + } } $args = array_values($args); - if(!$base) { + if (!$base) { $base = $args[0]; unset($args[0]); $args = array_values($args); @@ -2271,7 +2328,9 @@ function explode_querystring($query) { */ function curPageURL() { $pageURL = 'http'; - if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} + if ($_SERVER["HTTPS"] == "on") { + $pageURL .= "s"; + } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; @@ -2283,7 +2342,7 @@ function curPageURL() { function random_digits($digits) { $rn = ''; - for($i = 0; $i < $digits; $i++) { + for ($i = 0; $i < $digits; $i++) { $rn .= rand(0,9); } return $rn; @@ -2292,8 +2351,9 @@ function random_digits($digits) { function get_server() { $server = get_config("system", "directory"); - if ($server == "") + if ($server == "") { $server = "http://dir.friendi.ca"; + } return($server); } @@ -2301,8 +2361,9 @@ function get_server() { function get_cachefile($file, $writemode = true) { $cache = get_itemcachepath(); - if ((! $cache) || (! is_dir($cache))) + if ((! $cache) || (! is_dir($cache))) { return(""); + } $subfolder = $cache."/".substr($file, 0, 2); @@ -2324,24 +2385,29 @@ function clear_cache($basepath = "", $path = "") { $path = $basepath; } - if (($path == "") OR (!is_dir($path))) + if (($path == "") OR (!is_dir($path))) { return; + } - if (substr(realpath($path), 0, strlen($basepath)) != $basepath) + if (substr(realpath($path), 0, strlen($basepath)) != $basepath) { return; + } $cachetime = (int)get_config('system','itemcache_duration'); - if ($cachetime == 0) + if ($cachetime == 0) { $cachetime = 86400; + } if (is_writable($path)){ if ($dh = opendir($path)) { while (($file = readdir($dh)) !== false) { $fullpath = $path."/".$file; - if ((filetype($fullpath) == "dir") and ($file != ".") and ($file != "..")) + if ((filetype($fullpath) == "dir") and ($file != ".") and ($file != "..")) { clear_cache($basepath, $fullpath); - if ((filetype($fullpath) == "file") and (filectime($fullpath) < (time() - $cachetime))) + } + if ((filetype($fullpath) == "file") and (filectime($fullpath) < (time() - $cachetime))) { unlink($fullpath); + } } closedir($dh); } @@ -2351,8 +2417,9 @@ function clear_cache($basepath = "", $path = "") { function get_itemcachepath() { // Checking, if the cache is deactivated $cachetime = (int)get_config('system','itemcache_duration'); - if ($cachetime < 0) + if ($cachetime < 0) { return ""; + } $itemcache = get_config('system','itemcache'); if (($itemcache != "") AND App::directory_usable($itemcache)) { @@ -2363,7 +2430,7 @@ function get_itemcachepath() { if ($temppath != "") { $itemcache = $temppath."/itemcache"; - if(!file_exists($itemcache) && !is_dir($itemcache)) { + if (!file_exists($itemcache) && !is_dir($itemcache)) { mkdir($itemcache); } @@ -2455,7 +2522,7 @@ function set_template_engine(App $a, $engine = 'internal') { $a->set_template_engine($engine); } -if(!function_exists('exif_imagetype')) { +if (!function_exists('exif_imagetype')) { function exif_imagetype($file) { $size = getimagesize($file); return($size[2]); @@ -2467,37 +2534,42 @@ function validate_include(&$file) { $file = realpath($file); - if (strpos($file, getcwd()) !== 0) + if (strpos($file, getcwd()) !== 0) { return false; + } $file = str_replace(getcwd()."/", "", $file, $count); - if ($count != 1) + if ($count != 1) { return false; + } - if ($orig_file !== $file) + if ($orig_file !== $file) { return false; + } $valid = false; - if (strpos($file, "include/") === 0) + if (strpos($file, "include/") === 0) { $valid = true; + } - if (strpos($file, "addon/") === 0) + if (strpos($file, "addon/") === 0) { $valid = true; + } - if (!$valid) - return false; - - return true; + // Simply return flag + return ($valid); } function current_load() { - if (!function_exists('sys_getloadavg')) + if (!function_exists('sys_getloadavg')) { return false; + } $load_arr = sys_getloadavg(); - if (!is_array($load_arr)) + if (!is_array($load_arr)) { return false; + } return max($load_arr[0], $load_arr[1]); } @@ -2518,8 +2590,9 @@ function argc() { * @return string Value of the argv key */ function argv($x) { - if(array_key_exists($x,get_app()->argv)) + if (array_key_exists($x,get_app()->argv)) { return get_app()->argv[$x]; + } return ''; } diff --git a/include/Contact.php b/include/Contact.php index fc9f660f13..dc29d38257 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -5,7 +5,7 @@ // authorisation to do this. function user_remove($uid) { - if(! $uid) + if (! $uid) return; logger('Removing user: ' . $uid); @@ -49,7 +49,7 @@ function user_remove($uid) { // Send an update to the directory proc_run(PRIORITY_LOW, "include/directory.php", $r[0]['url']); - if($uid == local_user()) { + if ($uid == local_user()) { unset($_SESSION['authenticated']); unset($_SESSION['uid']); goaway(App::get_baseurl()); @@ -122,11 +122,13 @@ function terminate_friendship($user,$self,$contact) { // This provides for the possibility that their database is temporarily messed // up or some other transient event and that there's a possibility we could recover from it. -function mark_for_death($contact) { +function mark_for_death(array $contact) { - if($contact['archive']) + if ($contact['archive']) { return; + } + /// @TODO Comparison of strings this way may lead to bugs/incompatibility, better switch to DateTime if ($contact['term-date'] <= NULL_DATE) { q("UPDATE `contact` SET `term-date` = '%s' WHERE `id` = %d", dbesc(datetime_convert()), @@ -151,7 +153,7 @@ function mark_for_death($contact) { /// Check for contact vitality via probing $expiry = $contact['term-date'] . ' + 32 days '; - if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) { + if (datetime_convert() > datetime_convert('UTC','UTC',$expiry)) { // relationship is really truly dead. // archive them rather than delete @@ -483,7 +485,7 @@ function random_profile() { function contacts_not_grouped($uid,$start = 0,$count = 0) { - if(! $count) { + if (! $count) { $r = q("select count(*) as total from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ", intval($uid), intval($uid) @@ -775,18 +777,18 @@ function posts_from_contact_url(App $a, $contact_url) { function formatted_location($profile) { $location = ''; - if($profile['locality']) + if ($profile['locality']) $location .= $profile['locality']; - if($profile['region'] AND ($profile['locality'] != $profile['region'])) { - if($location) + if ($profile['region'] AND ($profile['locality'] != $profile['region'])) { + if ($location) $location .= ', '; $location .= $profile['region']; } - if($profile['country-name']) { - if($location) + if ($profile['country-name']) { + if ($location) $location .= ', '; $location .= $profile['country-name']; @@ -808,7 +810,7 @@ function account_type($contact) { // "page-flags" is a field in the user table, // "forum" and "prv" are used in the contact table. They stand for PAGE_COMMUNITY and PAGE_PRVGROUP. // "community" is used in the gcontact table and is true if the contact is PAGE_COMMUNITY or PAGE_PRVGROUP. - if((isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_COMMUNITY)) + if ((isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_COMMUNITY)) || (isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_PRVGROUP)) || (isset($contact['forum']) && intval($contact['forum'])) || (isset($contact['prv']) && intval($contact['prv'])) diff --git a/include/Core/PConfig.php b/include/Core/PConfig.php index 6ced9fc755..421a1d5fac 100644 --- a/include/Core/PConfig.php +++ b/include/Core/PConfig.php @@ -44,7 +44,7 @@ class PConfig { $a->config[$uid][$family][$k] = $rr['v']; self::$in_db[$uid][$family][$k] = true; } - } else if ($family != 'config') { + } elseif ($family != 'config') { // Negative caching $a->config[$uid][$family] = "!!"; } diff --git a/include/DirSearch.php b/include/DirSearch.php index 5968608236..da32358c1c 100644 --- a/include/DirSearch.php +++ b/include/DirSearch.php @@ -20,7 +20,7 @@ class DirSearch { */ public static function global_search_by_name($search, $mode = '') { - if($search) { + if ($search) { // check supported networks if (get_config('system','diaspora_enabled')) $diaspora = NETWORK_DIASPORA; @@ -33,10 +33,11 @@ class DirSearch { $ostatus = NETWORK_DFRN; // check if we search only communities or every contact - if($mode === "community") + if ($mode === "community") { $extra_sql = " AND `community`"; - else + } else { $extra_sql = ""; + } $search .= "%"; diff --git a/include/ForumManager.php b/include/ForumManager.php index c2a20df29f..47a4d55a47 100644 --- a/include/ForumManager.php +++ b/include/ForumManager.php @@ -50,7 +50,7 @@ class ForumManager { if (!$contacts) return($forumlist); - foreach($contacts as $contact) { + foreach ($contacts as $contact) { $forumlist[] = array( 'url' => $contact['url'], 'name' => $contact['name'], @@ -76,7 +76,7 @@ class ForumManager { */ public static function widget($uid,$cid = 0) { - if(! intval(feature_enabled(local_user(),'forumlist_widget'))) + if (! intval(feature_enabled(local_user(),'forumlist_widget'))) return; $o = ''; @@ -92,7 +92,7 @@ class ForumManager { $id = 0; - foreach($contacts as $contact) { + foreach ($contacts as $contact) { $selected = (($cid == $contact['id']) ? ' forum-selected' : ''); @@ -136,7 +136,7 @@ class ForumManager { public static function profile_advanced($uid) { $profile = intval(feature_enabled($uid,'forumlist_profile')); - if(! $profile) + if (! $profile) return; $o = ''; @@ -151,16 +151,20 @@ class ForumManager { $total_shown = 0; - foreach($contacts as $contact) { + foreach ($contacts as $contact) { $forumlist .= micropro($contact,false,'forumlist-profile-advanced'); $total_shown ++; - if($total_shown == $show_total) + + if ($total_shown == $show_total) { break; + } } - if(count($contacts) > 0) + if (count($contacts) > 0) { $o .= $forumlist; - return $o; + } + + return $o; } /** diff --git a/include/NotificationsManager.php b/include/NotificationsManager.php index 611860f9d0..bd2236a5aa 100644 --- a/include/NotificationsManager.php +++ b/include/NotificationsManager.php @@ -33,7 +33,7 @@ class NotificationsManager { */ private function _set_extra($notes) { $rets = array(); - foreach($notes as $n) { + foreach ($notes as $n) { $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); $n['timestamp'] = strtotime($local_time); $n['date_rel'] = relative_date($n['date']); @@ -58,7 +58,7 @@ class NotificationsManager { public function getAll($filter = array(), $order="-date", $limit="") { $filter_str = array(); $filter_sql = ""; - foreach($filter as $column => $value) { + foreach ($filter as $column => $value) { $filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value)); } if (count($filter_str)>0) { @@ -67,7 +67,7 @@ class NotificationsManager { $aOrder = explode(" ", $order); $asOrder = array(); - foreach($aOrder as $o) { + foreach ($aOrder as $o) { $dir = "asc"; if ($o[0]==="-") { $dir = "desc"; @@ -81,7 +81,7 @@ class NotificationsManager { } $order_sql = implode(", ", $asOrder); - if($limit!="") + if ($limit!="") $limit = " LIMIT ".$limit; $r = q("SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit", @@ -369,7 +369,7 @@ class NotificationsManager { private function networkTotal($seen = 0) { $sql_seen = ""; - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `item`.`unseen` = 1 "; $r = q("SELECT COUNT(*) AS `total` @@ -406,7 +406,7 @@ class NotificationsManager { $notifs = array(); $sql_seen = ""; - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `item`.`unseen` = 1 "; @@ -445,7 +445,7 @@ class NotificationsManager { private function systemTotal($seen = 0) { $sql_seen = ""; - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `seen` = 0 "; $r = q("SELECT COUNT(*) AS `total` FROM `notify` WHERE `uid` = %d $sql_seen", @@ -478,7 +478,7 @@ class NotificationsManager { $notifs = array(); $sql_seen = ""; - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `seen` = 0 "; $r = q("SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify` @@ -530,7 +530,7 @@ class NotificationsManager { $sql_seen = ""; $sql_extra = $this->_personal_sql_extra(); - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `item`.`unseen` = 1 "; $r = q("SELECT COUNT(*) AS `total` @@ -569,7 +569,7 @@ class NotificationsManager { $notifs = array(); $sql_seen = ""; - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `item`.`unseen` = 1 "; $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`, @@ -608,7 +608,7 @@ class NotificationsManager { private function homeTotal($seen = 0) { $sql_seen = ""; - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `item`.`unseen` = 1 "; $r = q("SELECT COUNT(*) AS `total` FROM `item` @@ -644,7 +644,7 @@ class NotificationsManager { $notifs = array(); $sql_seen = ""; - if($seen === 0) + if ($seen === 0) $sql_seen = " AND `item`.`unseen` = 1 "; $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`, @@ -682,7 +682,7 @@ class NotificationsManager { private function introTotal($all = false) { $sql_extra = ""; - if(!$all) + if (!$all) $sql_extra = " AND `ignore` = 0 "; $r = q("SELECT COUNT(*) AS `total` FROM `intro` @@ -716,7 +716,7 @@ class NotificationsManager { $notifs = array(); $sql_extra = ""; - if(!$all) + if (!$all) $sql_extra = " AND `ignore` = 0 "; /// @todo Fetch contact details by "get_contact_details_by_url" instead of queries to contact, fcontact and gcontact @@ -756,12 +756,12 @@ class NotificationsManager { private function formatIntros($intros) { $knowyou = ''; - foreach($intros as $it) { + foreach ($intros as $it) { // There are two kind of introduction. Contacts suggested by other contacts and normal connection requests. // We have to distinguish between these two because they use different data. // Contact suggestions - if($it['fid']) { + if ($it['fid']) { $return_addr = bin2hex($this->a->user['nickname'] . '@' . $this->a->get_hostname() . (($this->a->path) ? '/' . $this->a->path : '')); @@ -793,7 +793,7 @@ class NotificationsManager { $it['gnetwork'] = $ret["network"]; // Don't show these data until you are connected. Diaspora is doing the same. - if($it['gnetwork'] === NETWORK_DIASPORA) { + if ($it['gnetwork'] === NETWORK_DIASPORA) { $it['glocation'] = ""; $it['gabout'] = ""; $it['ggender'] = ""; diff --git a/include/Probe.php b/include/Probe.php index 1b6feb107f..10a0ce2358 100644 --- a/include/Probe.php +++ b/include/Probe.php @@ -564,15 +564,15 @@ class Probe { */ public static function valid_dfrn($data) { $errors = 0; - if(!isset($data['key'])) + if (!isset($data['key'])) $errors ++; - if(!isset($data['dfrn-request'])) + if (!isset($data['dfrn-request'])) $errors ++; - if(!isset($data['dfrn-confirm'])) + if (!isset($data['dfrn-confirm'])) $errors ++; - if(!isset($data['dfrn-notify'])) + if (!isset($data['dfrn-notify'])) $errors ++; - if(!isset($data['dfrn-poll'])) + if (!isset($data['dfrn-poll'])) $errors ++; return $errors; } @@ -858,7 +858,7 @@ class Probe { $data = array(); if (is_array($webfinger["aliases"])) - foreach($webfinger["aliases"] AS $alias) + foreach ($webfinger["aliases"] AS $alias) if (strstr($alias, "@")) $data["addr"] = str_replace('acct:', '', $alias); @@ -1133,15 +1133,17 @@ class Probe { $password = ''; openssl_private_decrypt(hex2bin($r[0]['pass']), $password,$x[0]['prvkey']); $mbox = email_connect($mailbox,$r[0]['user'], $password); - if(!mbox) + if (!$mbox) { return false; + } } $msgs = email_poll($mbox, $uri); logger('searching '.$uri.', '.count($msgs).' messages found.', LOGGER_DEBUG); - if (!count($msgs)) + if (!count($msgs)) { return false; + } $data = array(); @@ -1157,23 +1159,26 @@ class Probe { $data["poll"] = 'email '.random_string(); $x = email_msg_meta($mbox, $msgs[0]); - if(stristr($x[0]->from, $uri)) + if (stristr($x[0]->from, $uri)) { $adr = imap_rfc822_parse_adrlist($x[0]->from, ''); - elseif(stristr($x[0]->to, $uri)) + } elseif (stristr($x[0]->to, $uri)) { $adr = imap_rfc822_parse_adrlist($x[0]->to, ''); - if(isset($adr)) { - foreach($adr as $feadr) { - if((strcasecmp($feadr->mailbox, $data["name"]) == 0) + } + if (isset($adr)) { + foreach ($adr as $feadr) { + if ((strcasecmp($feadr->mailbox, $data["name"]) == 0) &&(strcasecmp($feadr->host, $phost) == 0) && (strlen($feadr->personal))) { $personal = imap_mime_header_decode($feadr->personal); $data["name"] = ""; - foreach($personal as $perspart) - if ($perspart->charset != "default") + foreach ($personal as $perspart) { + if ($perspart->charset != "default") { $data["name"] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text); - else + } else { $data["name"] .= $perspart->text; + } + } $data["name"] = notags($data["name"]); } diff --git a/include/Smilies.php b/include/Smilies.php index d67b92d8b0..74d87d1bd0 100644 --- a/include/Smilies.php +++ b/include/Smilies.php @@ -125,7 +125,7 @@ class Smilies { * @return string HML Output of the Smilie */ public static function replace($s, $sample = false) { - if(intval(get_config('system','no_smilies')) + if (intval(get_config('system','no_smilies')) || (local_user() && intval(get_pconfig(local_user(),'system','no_smilies')))) return $s; @@ -135,9 +135,9 @@ class Smilies { $params = self::get_list(); $params['string'] = $s; - if($sample) { + if ($sample) { $s = '
'; - for($x = 0; $x < count($params['texts']); $x ++) { + for ($x = 0; $x < count($params['texts']); $x ++) { $s .= '
' . $params['texts'][$x] . '
' . $params['icons'][$x] . '
'; } } @@ -170,11 +170,13 @@ class Smilies { * @todo: Rework because it doesn't work correctly */ private function preg_heart($x) { - if(strlen($x[1]) == 1) + if (strlen($x[1]) == 1) { return $x[0]; + } $t = ''; - for($cnt = 0; $cnt < strlen($x[1]); $cnt ++) + for ($cnt = 0; $cnt < strlen($x[1]); $cnt ++) { $t .= '<3'; + } $r = str_replace($x[0],$t,$x[0]); return $r; } diff --git a/include/acl_selectors.php b/include/acl_selectors.php index f4b644d68f..dc21a1e179 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -35,7 +35,7 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) { if (dbm::is_result($r)) { foreach ($r as $rr) { - if((is_array($preselected)) && in_array($rr['id'], $preselected)) + if ((is_array($preselected)) && in_array($rr['id'], $preselected)) $selected = " selected=\"selected\" "; else $selected = ''; @@ -88,13 +88,13 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { $networks = array(NETWORK_DFRN); break; case 'PRIVATE': - if(is_array($a->user) && $a->user['prvnets']) + if (is_array($a->user) && $a->user['prvnets']) $networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA); else $networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL, NETWORK_DIASPORA); break; case 'TWO_WAY': - if(is_array($a->user) && $a->user['prvnets']) + if (is_array($a->user) && $a->user['prvnets']) $networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA); else $networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL,NETWORK_DIASPORA,NETWORK_OSTATUS); @@ -113,23 +113,24 @@ function contact_selector($selname, $selclass, $preselected = false, $options) { $sql_extra = ''; - if($x['mutual']) { + if ($x['mutual']) { $sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND)); } - if(intval($x['exclude'])) + if (intval($x['exclude'])) $sql_extra .= sprintf(" AND `id` != %d ", intval($x['exclude'])); - if(is_array($x['networks']) && count($x['networks'])) { - for($y = 0; $y < count($x['networks']) ; $y ++) + if (is_array($x['networks']) && count($x['networks'])) { + for ($y = 0; $y < count($x['networks']) ; $y ++) { $x['networks'][$y] = "'" . dbesc($x['networks'][$y]) . "'"; + } $str_nets = implode(',',$x['networks']); $sql_extra .= " AND `network` IN ( $str_nets ) "; } $tabindex = (x($options, 'tabindex') ? "tabindex=\"" . $options["tabindex"] . "\"" : ""); - if($x['single']) + if ($x['single']) $o .= "\r\n"; @@ -185,14 +186,14 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p $sql_extra = ''; - if($privmail || $celeb) { + if ($privmail || $celeb) { $sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND)); } - if($privmail) + if ($privmail) $sql_extra .= sprintf(" AND `network` IN ('%s' , '%s') ", NETWORK_DFRN, NETWORK_DIASPORA); - elseif($privatenet) + elseif ($privatenet) $sql_extra .= sprintf(" AND `network` IN ('%s' , '%s', '%s', '%s') ", NETWORK_DFRN, NETWORK_MAIL, NETWORK_FACEBOOK, NETWORK_DIASPORA); @@ -204,7 +205,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p } else $hidepreselected = ""; - if($privmail) + if ($privmail) $o .= "\r\n"; @@ -287,7 +288,7 @@ function prune_deadguys($arr) { function get_acl_permissions($user = null) { $allow_cid = $allow_gid = $deny_cid = $deny_gid = false; - if(is_array($user)) { + if (is_array($user)) { $allow_cid = ((strlen($user['allow_cid'])) ? explode('><', $user['allow_cid']) : array() ); $allow_gid = ((strlen($user['allow_gid'])) @@ -318,25 +319,25 @@ function populate_acl($user = null, $show_jotnets = false) { $perms = get_acl_permissions($user); $jotnets = ''; - if($show_jotnets) { + if ($show_jotnets) { $mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1); $mail_enabled = false; $pubmail_enabled = false; - if(! $mail_disabled) { + if (! $mail_disabled) { $r = q("SELECT `pubmail` FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1", intval(local_user()) ); if (dbm::is_result($r)) { $mail_enabled = true; - if(intval($r[0]['pubmail'])) + if (intval($r[0]['pubmail'])) $pubmail_enabled = true; } } if (!$user['hidewall']) { - if($mail_enabled) { + if ($mail_enabled) { $selected = (($pubmail_enabled) ? ' checked="checked" ' : ''); $jotnets .= '
' . t("Post to Email") . '
'; } @@ -379,20 +380,20 @@ function construct_acl_data(App $a, $user) { $user_defaults = get_acl_permissions($user); - if($acl_data['groups']) { - foreach($acl_data['groups'] as $key=>$group) { + if ($acl_data['groups']) { + foreach ($acl_data['groups'] as $key=>$group) { // Add a "selected" flag to groups that are posted to by default - if($user_defaults['allow_gid'] && + if ($user_defaults['allow_gid'] && in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) ) $acl_data['groups'][$key]['selected'] = 1; else $acl_data['groups'][$key]['selected'] = 0; } } - if($acl_data['contacts']) { - foreach($acl_data['contacts'] as $key=>$contact) { + if ($acl_data['contacts']) { + foreach ($acl_data['contacts'] as $key=>$contact) { // Add a "selected" flag to groups that are posted to by default - if($user_defaults['allow_cid'] && + if ($user_defaults['allow_cid'] && in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) ) $acl_data['contacts'][$key]['selected'] = 1; else @@ -419,8 +420,8 @@ function acl_lookup(App $a, $out_type = 'json') { // For use with jquery.textcomplete for private mail completion - if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) { - if(! $type) + if (x($_REQUEST,'query') && strlen($_REQUEST['query'])) { + if (! $type) $type = 'm'; $search = $_REQUEST['query']; } @@ -510,7 +511,7 @@ function acl_lookup(App $a, $out_type = 'json') { intval($count) ); - foreach($r as $g){ + foreach ($r as $g){ // logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']); $groups[] = array( "type" => "g", @@ -546,7 +547,7 @@ function acl_lookup(App $a, $out_type = 'json') { dbesc(NETWORK_STATUSNET) ); } - elseif($type == 'm') { + elseif ($type == 'm') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `network` IN ('%s','%s','%s') @@ -665,7 +666,7 @@ function acl_lookup(App $a, $out_type = 'json') { call_hooks('acl_lookup_end', $results); - if($out_type === 'html') { + if ($out_type === 'html') { $o = array( 'tot' => $results['tot'], 'start' => $results['start'], diff --git a/include/api.php b/include/api.php index 701e527cc8..78cf5f6805 100644 --- a/include/api.php +++ b/include/api.php @@ -154,9 +154,9 @@ use \Friendica\Core\Config; // workaround for HTTP-auth in CGI mode - if(x($_SERVER,'REDIRECT_REMOTE_USER')) { + if (x($_SERVER,'REDIRECT_REMOTE_USER')) { $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ; - if(strlen($userpass)) { + if (strlen($userpass)) { list($name, $password) = explode(':', $userpass); $_SERVER['PHP_AUTH_USER'] = $name; $_SERVER['PHP_AUTH_PW'] = $password; @@ -199,7 +199,7 @@ use \Friendica\Core\Config; call_hooks('authenticate', $addon_auth); - if(($addon_auth['authenticated']) && (count($addon_auth['user_record']))) { + if (($addon_auth['authenticated']) && (count($addon_auth['user_record']))) { $record = $addon_auth['user_record']; } else { @@ -215,7 +215,7 @@ use \Friendica\Core\Config; $record = $r[0]; } - if((! $record) || (! count($record))) { + if ((! $record) || (! count($record))) { logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG); header('WWW-Authenticate: Basic realm="Friendica"'); #header('HTTP/1.0 401 Unauthorized'); @@ -334,7 +334,7 @@ use \Friendica\Core\Config; break; case "json": header ("Content-Type: application/json"); - foreach($r as $rr) + foreach ($r as $rr) $json = json_encode($rr); if ($_GET['callback']) $json = $_GET['callback']."(".$json.")"; @@ -457,7 +457,7 @@ use \Friendica\Core\Config; logger("api_get_user: Fetching user data for user ".$contact_id, LOGGER_DEBUG); // Searching for contact URL - if(!is_null($contact_id) AND (intval($contact_id) == 0)){ + if (!is_null($contact_id) AND (intval($contact_id) == 0)){ $user = dbesc(normalise_link($contact_id)); $url = $user; $extra_query = "AND `contact`.`nurl` = '%s' "; @@ -465,7 +465,7 @@ use \Friendica\Core\Config; } // Searching for contact id with uid = 0 - if(!is_null($contact_id) AND (intval($contact_id) != 0)){ + if (!is_null($contact_id) AND (intval($contact_id) != 0)){ $user = dbesc(api_unique_id_to_url($contact_id)); if ($user == "") @@ -476,7 +476,7 @@ use \Friendica\Core\Config; if (api_user()!==false) $extra_query .= "AND `contact`.`uid`=".intval(api_user()); } - if(is_null($user) && x($_GET, 'user_id')) { + if (is_null($user) && x($_GET, 'user_id')) { $user = dbesc(api_unique_id_to_url($_GET['user_id'])); if ($user == "") @@ -486,7 +486,7 @@ use \Friendica\Core\Config; $extra_query = "AND `contact`.`nurl` = '%s' "; if (api_user()!==false) $extra_query .= "AND `contact`.`uid`=".intval(api_user()); } - if(is_null($user) && x($_GET, 'screen_name')) { + if (is_null($user) && x($_GET, 'screen_name')) { $user = dbesc($_GET['screen_name']); $nick = $user; $extra_query = "AND `contact`.`nick` = '%s' "; @@ -496,7 +496,7 @@ use \Friendica\Core\Config; if (is_null($user) AND ($a->argc > (count($called_api)-1)) AND (count($called_api) > 0)){ $argid = count($called_api); list($user, $null) = explode(".",$a->argv[$argid]); - if(is_numeric($user)){ + if (is_numeric($user)){ $user = dbesc(api_unique_id_to_url($user)); if ($user == "") @@ -593,7 +593,7 @@ use \Friendica\Core\Config; } } - if($uinfo[0]['self']) { + if ($uinfo[0]['self']) { if ($uinfo[0]['network'] == "") $uinfo[0]['network'] = NETWORK_DFRN; @@ -648,7 +648,7 @@ use \Friendica\Core\Config; $starred = $r[0]['count']; - if(! $uinfo[0]['self']) { + if (! $uinfo[0]['self']) { $countfriends = 0; $countfollowers = 0; $starred = 0; @@ -923,7 +923,7 @@ use \Friendica\Core\Config; $txt = requestdata('status'); //$txt = urldecode(requestdata('status')); - if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) { + if ((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) { $txt = html2bb_video($txt); $config = HTMLPurifier_Config::createDefault(); @@ -964,9 +964,9 @@ use \Friendica\Core\Config; // logger('api_post: ' . print_r($_POST,true)); - if(requestdata('htmlstatus')) { + if (requestdata('htmlstatus')) { $txt = requestdata('htmlstatus'); - if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) { + if ((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) { $txt = html2bb_video($txt); $config = HTMLPurifier_Config::createDefault(); @@ -989,16 +989,16 @@ use \Friendica\Core\Config; if ($parent == -1) $parent = ""; - if(ctype_digit($parent)) + if (ctype_digit($parent)) $_REQUEST['parent'] = $parent; else $_REQUEST['parent_uri'] = $parent; - if(requestdata('lat') && requestdata('long')) + if (requestdata('lat') && requestdata('long')) $_REQUEST['coord'] = sprintf("%s %s",requestdata('lat'),requestdata('long')); $_REQUEST['profile_uid'] = api_user(); - if($parent) + if ($parent) $_REQUEST['type'] = 'net-comment'; else { // Check for throttling (maximum posts per day, week and month) @@ -1066,11 +1066,11 @@ use \Friendica\Core\Config; $_REQUEST['type'] = 'wall'; } - if(x($_FILES,'media')) { + if (x($_FILES,'media')) { // upload the image if we have one $_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo $media = wall_upload_post($a); - if(strlen($media)>0) + if (strlen($media)>0) $_REQUEST['body'] .= "\n\n".$media; } @@ -1115,13 +1115,13 @@ use \Friendica\Core\Config; $user_info = api_get_user($a); - if(!x($_FILES,'media')) { + if (!x($_FILES,'media')) { // Output error throw new BadRequestException("No media."); } $media = wall_upload_post($a, false); - if(!$media) { + if (!$media) { // Output error throw new InternalServerErrorException(); } @@ -2469,7 +2469,7 @@ use \Friendica\Core\Config; $ret = Array(); - foreach($r as $item) { + foreach ($r as $item) { localize_item($item); list($status_user, $owner_user) = api_item_get_user($a,$item); @@ -2641,9 +2641,9 @@ use \Friendica\Core\Config; return false; } - if($qtype == 'friends') + if ($qtype == 'friends') $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND)); - if($qtype == 'followers') + if ($qtype == 'followers') $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND)); // friends and followers only for self @@ -2655,7 +2655,7 @@ use \Friendica\Core\Config; ); $ret = array(); - foreach($r as $cid){ + foreach ($r as $cid){ $user = api_get_user($a, $cid['nurl']); // "uid" and "self" are only needed for some internal stuff, so remove it from here unset($user["uid"]); @@ -2697,7 +2697,7 @@ use \Friendica\Core\Config; $closed = (($a->config['register_policy'] == REGISTER_CLOSED) ? 'true' : 'false'); $private = ((Config::get('system', 'block_public')) ? 'true' : 'false'); $textlimit = (string) (($a->config['max_import_size']) ? $a->config['max_import_size'] : 200000); - if($a->config['api_import_size']) + if ($a->config['api_import_size']) $texlimit = string($a->config['api_import_size']); $ssl = ((Config::get('system', 'have_ssl')) ? 'true' : 'false'); $sslserver = (($ssl === 'true') ? str_replace('http:','https:',App::get_baseurl()) : ''); @@ -2737,13 +2737,13 @@ use \Friendica\Core\Config; $a = get_app(); - if(! api_user()) throw new ForbiddenException(); + if (! api_user()) throw new ForbiddenException(); $user_info = api_get_user($a); - if($qtype == 'friends') + if ($qtype == 'friends') $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND)); - if($qtype == 'followers') + if ($qtype == 'followers') $sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND)); if (!$user_info["self"]) @@ -2761,7 +2761,7 @@ use \Friendica\Core\Config; return; $ids = array(); - foreach($r as $rr) + foreach ($r as $rr) if ($stringify_ids) $ids[] = $rr['id']; else @@ -2967,7 +2967,7 @@ use \Friendica\Core\Config; if ($user_id !="") { $sql_extra .= ' AND `mail`.`contact-id` = ' . intval($user_id); } - elseif($screen_name !=""){ + elseif ($screen_name !=""){ $sql_extra .= " AND `contact`.`nick` = '" . dbesc($screen_name). "'"; } @@ -2978,14 +2978,14 @@ use \Friendica\Core\Config; ); if ($verbose == "true") { // stop execution and return error message if no mails available - if($r == null) { + if ($r == null) { $answer = array('result' => 'error', 'message' => 'no mails available'); return api_format_data("direct_messages_all", $type, array('$result' => $answer)); } } $ret = Array(); - foreach($r as $item) { + foreach ($r as $item) { if ($box == "inbox" || $item['from-url'] != $profile_url){ $recipient = $user_info; $sender = api_get_user($a,normalise_link($item['contact-url'])); @@ -3092,7 +3092,7 @@ use \Friendica\Core\Config; function api_fr_photo_detail($type) { if (api_user()===false) throw new ForbiddenException(); - if(!x($_REQUEST,'photo_id')) throw new BadRequestException("No photo id."); + if (!x($_REQUEST,'photo_id')) throw new BadRequestException("No photo id."); $scale = (x($_REQUEST, 'scale') ? intval($_REQUEST['scale']) : false); $scale_sql = ($scale === false ? "" : sprintf("and scale=%d",intval($scale))); @@ -3183,11 +3183,11 @@ use \Friendica\Core\Config; $dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']); - if($r[0]['duplex'] && $r[0]['issued-id']) { + if ($r[0]['duplex'] && $r[0]['issued-id']) { $orig_id = $r[0]['issued-id']; $dfrn_id = '1:' . $orig_id; } - if($r[0]['duplex'] && $r[0]['dfrn-id']) { + if ($r[0]['duplex'] && $r[0]['dfrn-id']) { $orig_id = $r[0]['dfrn-id']; $dfrn_id = '0:' . $orig_id; } @@ -3927,7 +3927,7 @@ use \Friendica\Core\Config; $success = array('success' => false, 'search_results' => 'nothing found'); else { $ret = Array(); - foreach($r as $item) { + foreach ($r as $item) { if ($box == "inbox" || $item['from-url'] != $profile_url){ $recipient = $user_info; $sender = api_get_user($a,normalise_link($item['contact-url'])); diff --git a/include/attach.php b/include/attach.php index 6b26b1ed65..3232f3e763 100644 --- a/include/attach.php +++ b/include/attach.php @@ -1061,7 +1061,7 @@ function z_mime_content_type($filename) { ); $dot = strpos($filename,'.'); - if($dot !== false) { + if ($dot !== false) { $ext = strtolower(substr($filename,$dot+1)); if (array_key_exists($ext, $mime_types)) { return $mime_types[$ext]; diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index e509999236..ce03084799 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -141,7 +141,7 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { // Add all tags that maybe were removed if (preg_match_all("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",$OriginalText, $tags)) { $tagline = ""; - foreach($tags[2] as $tag) { + foreach ($tags[2] as $tag) { $tag = html_entity_decode($tag, ENT_QUOTES, 'UTF-8'); if (!strpos(html_entity_decode($Text, ENT_QUOTES, 'UTF-8'), "#".$tag)) $tagline .= "#".$tag." "; @@ -193,7 +193,7 @@ function unescape_underscores_in_links($m) { function format_event_diaspora($ev) { - if(! ((is_array($ev)) && count($ev))) + if (! ((is_array($ev)) && count($ev))) return ''; $bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM @@ -209,7 +209,7 @@ function format_event_diaspora($ev) { $ev['start'] , $bd_format))) . '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n"; - if(! $ev['nofinish']) + if (! $ev['nofinish']) $o .= t('Finishes:') . ' ' . '[' . (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC', $ev['finish'] , $bd_format )) @@ -217,7 +217,7 @@ function format_event_diaspora($ev) { $ev['finish'] , $bd_format ))) . '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n"; - if(strlen($ev['location'])) + if (strlen($ev['location'])) $o .= t('Location:') . bb2diaspora($ev['location']) . "\n"; diff --git a/include/bbcode.php b/include/bbcode.php index 489ef8b2e3..948ffadaca 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -206,30 +206,33 @@ function bb_spacefy($st) { // returning [i]italic[/i] function bb_unspacefy_and_trim($st) { - $whole_match = $st[0]; - $captured = $st[1]; - $unspacefied = preg_replace("/\[ (.*?)\ ]/", "[$1]", $captured); - return $unspacefied; + $whole_match = $st[0]; + $captured = $st[1]; + $unspacefied = preg_replace("/\[ (.*?)\ ]/", "[$1]", $captured); + return $unspacefied; } function bb_find_open_close($s, $open, $close, $occurance = 1) { - if($occurance < 1) + if ($occurance < 1) $occurance = 1; $start_pos = -1; - for($i = 1; $i <= $occurance; $i++) { - if( $start_pos !== false) + for ($i = 1; $i <= $occurance; $i++) { + if ( $start_pos !== false) { $start_pos = strpos($s, $open, $start_pos + 1); + } } - if( $start_pos === false) + if ( $start_pos === false) { return false; + } $end_pos = strpos($s, $close, $start_pos); - if( $end_pos === false) + if ( $end_pos === false) { return false; + } $res = array( 'start' => $start_pos, 'end' => $end_pos ); @@ -238,34 +241,35 @@ function bb_find_open_close($s, $open, $close, $occurance = 1) { function get_bb_tag_pos($s, $name, $occurance = 1) { - if($occurance < 1) + if ($occurance < 1) $occurance = 1; $start_open = -1; - for($i = 1; $i <= $occurance; $i++) { - if( $start_open !== false) + for ($i = 1; $i <= $occurance; $i++) { + if ( $start_open !== false) { $start_open = strpos($s, '[' . $name, $start_open + 1); // allow [name= type tags + } } - if( $start_open === false) + if ( $start_open === false) return false; $start_equal = strpos($s, '=', $start_open); $start_close = strpos($s, ']', $start_open); - if( $start_close === false) + if ( $start_close === false) return false; $start_close++; $end_open = strpos($s, '[/' . $name . ']', $start_close); - if( $end_open === false) + if ( $end_open === false) return false; $res = array( 'start' => array('open' => $start_open, 'close' => $start_close), 'end' => array('open' => $end_open, 'close' => $end_open + strlen('[/' . $name . ']')) ); - if( $start_equal !== false) + if ( $start_equal !== false) $res['start']['equal'] = $start_equal + 1; return $res; @@ -277,12 +281,12 @@ function bb_tag_preg_replace($pattern, $replace, $name, $s) { $occurance = 1; $pos = get_bb_tag_pos($string, $name, $occurance); - while($pos !== false && $occurance < 1000) { + while ($pos !== false && $occurance < 1000) { $start = substr($string, 0, $pos['start']['open']); $subject = substr($string, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']); $end = substr($string, $pos['end']['close']); - if($end === false) + if ($end === false) $end = ''; $subject = preg_replace($pattern, $replace, $subject); @@ -295,7 +299,7 @@ function bb_tag_preg_replace($pattern, $replace, $name, $s) { return $string; } -if(! function_exists('bb_extract_images')) { +if (! function_exists('bb_extract_images')) { function bb_extract_images($body) { $saved_image = array(); @@ -306,12 +310,12 @@ function bb_extract_images($body) { $img_start = strpos($orig_body, '[img'); $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false); $img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false); - while(($img_st_close !== false) && ($img_end !== false)) { + while (($img_st_close !== false) && ($img_end !== false)) { $img_st_close++; // make it point to AFTER the closing bracket $img_end += $img_start; - if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) { + if (! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) { // This is an embedded image $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close)); @@ -324,7 +328,7 @@ function bb_extract_images($body) { $orig_body = substr($orig_body, $img_end + strlen('[/img]')); - if($orig_body === false) // in case the body ends on a closing image tag + if ($orig_body === false) // in case the body ends on a closing image tag $orig_body = ''; $img_start = strpos($orig_body, '[img'); @@ -337,7 +341,7 @@ function bb_extract_images($body) { return array('body' => $new_body, 'images' => $saved_image); }} -if(! function_exists('bb_replace_images')) { +if (! function_exists('bb_replace_images')) { function bb_replace_images($body, $images) { $newbody = $body; @@ -619,7 +623,7 @@ function bb_DiasporaLinks($match) { function bb_RemovePictureLinks($match) { $text = Cache::get($match[1]); - if(is_null($text)){ + if (is_null($text)){ $a = get_app(); $stamp1 = microtime(true); @@ -673,7 +677,7 @@ function bb_expand_links($match) { function bb_CleanPictureLinksSub($match) { $text = Cache::get($match[1]); - if(is_null($text)){ + if (is_null($text)){ $a = get_app(); $stamp1 = microtime(true); @@ -724,7 +728,7 @@ function bb_CleanPictureLinks($text) { } function bb_highlight($match) { - if(in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby', + if (in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby', 'vbscript','avrc','dtd','java','xml','cpp','python','javascript','js','sh'])) return text_highlight($match[2],strtolower($match[1])); return $match[0]; @@ -814,7 +818,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal $Text = str_replace(array("\r","\n"), array('
','
'), $Text); - if($preserve_nl) + if ($preserve_nl) $Text = str_replace(array("\n","\r"), array('',''),$Text); // Set up the parameters for a URL search string @@ -1132,7 +1136,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal // Summary (e.g. title) is required, earlier revisions only required description (in addition to // start which is always required). Allow desc with a missing summary for compatibility. - if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) { + if ((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) { $sub = format_event_html($ev, $simplehtml); $Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism",'',$Text); @@ -1178,7 +1182,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal $regex = '#<([^>]*?)(href)="(?!' . implode('|', $allowed_link_protocols) . ')(.*?)"(.*?)>#ism'; $Text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 class="invalid-href" title="' . t('Invalid link protocol') . '">', $Text); - if($saved_image) { + if ($saved_image) { $Text = bb_replace_images($Text, $saved_image); } diff --git a/include/cli_startup.php b/include/cli_startup.php index 4b66b47a00..557d08c288 100644 --- a/include/cli_startup.php +++ b/include/cli_startup.php @@ -19,7 +19,7 @@ function cli_startup() { require_once("dba.php"); $db = new dba($db_host, $db_user, $db_pass, $db_data); unset($db_host, $db_user, $db_pass, $db_data); - }; + }; require_once('include/session.php'); diff --git a/include/contact_selectors.php b/include/contact_selectors.php index 62d79d877a..bf2523e845 100644 --- a/include/contact_selectors.php +++ b/include/contact_selectors.php @@ -37,7 +37,7 @@ function contact_reputation($current) { 5 => t('Reputable, has my trust') ); - foreach($rep as $k => $v) { + foreach ($rep as $k => $v) { $selected = (($k == $current) ? " selected=\"selected\" " : ""); $o .= "\r\n"; } @@ -61,7 +61,7 @@ function contact_poll_interval($current, $disabled = false) { 5 => t('Monthly') ); - foreach($rep as $k => $v) { + foreach ($rep as $k => $v) { $selected = (($k == $current) ? " selected=\"selected\" " : ""); $o .= "\r\n"; } diff --git a/include/contact_widgets.php b/include/contact_widgets.php index d077a065e1..0f78d5bf5c 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -17,9 +17,9 @@ function findpeople_widget() { $a = get_app(); - if(get_config('system','invitation_only')) { + if (get_config('system','invitation_only')) { $x = get_pconfig(local_user(),'system','invites_remaining'); - if($x || is_site_admin()) { + if ($x || is_site_admin()) { $a->page['aside'] .= '' . $inv; @@ -108,7 +108,7 @@ function networks_widget($baseurl,$selected = '') { } } - if(count($nets) < 2) + if (count($nets) < 2) return ''; return replace_macros(get_markup_template('nets.tpl'),array( @@ -140,7 +140,7 @@ function fileas_widget($baseurl,$selected = '') { $terms = array(); $cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER); if ($cnt) { - foreach($matches as $mtch) { + foreach ($matches as $mtch) { $unescaped = xmlify(file_tag_decode($mtch[1])); $terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : '')); } @@ -172,10 +172,11 @@ function categories_widget($baseurl,$selected = '') { $matches = false; $terms = array(); - $cnt = preg_match_all('/<(.*?)>/',$saved,$matches,PREG_SET_ORDER); - if($cnt) { - foreach($matches as $mtch) { - $unescaped = xmlify(file_tag_decode($mtch[1])); + $cnt = preg_match_all('/<(.*?)>/',$saved,$matches,PREG_SET_ORDER); + + if ($cnt) { + foreach ($matches as $mtch) { + $unescaped = xmlify(file_tag_decode($mtch[1])); $terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : '')); } } @@ -195,29 +196,29 @@ function common_friends_visitor_widget($profile_uid) { $a = get_app(); - if(local_user() == $profile_uid) + if (local_user() == $profile_uid) return; $cid = $zcid = 0; - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $visitor) { - if($visitor['uid'] == $profile_uid) { + if (is_array($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $visitor) { + if ($visitor['uid'] == $profile_uid) { $cid = $visitor['cid']; break; } } } - if(! $cid) { - if(get_my_url()) { + if (! $cid) { + if (get_my_url()) { $r = q("select id from contact where nurl = '%s' and uid = %d limit 1", dbesc(normalise_link(get_my_url())), intval($profile_uid) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $cid = $r[0]['id']; - else { + } else { $r = q("select id from gcontact where nurl = '%s' limit 1", dbesc(normalise_link(get_my_url())) ); @@ -227,22 +228,26 @@ function common_friends_visitor_widget($profile_uid) { } } - if($cid == 0 && $zcid == 0) + if ($cid == 0 && $zcid == 0) { return; + } require_once('include/socgraph.php'); - if($cid) + if ($cid) { $t = count_common_friends($profile_uid,$cid); - else + } else { $t = count_common_friends_zcid($profile_uid,$zcid); - if(! $t) + } + if (! $t) { return; + } - if($cid) + if ($cid) { $r = common_friends($profile_uid,$cid,0,5,true); - else + } else { $r = common_friends_zcid($profile_uid,$zcid,0,5,true); + } return replace_macros(get_markup_template('remote_friends_common.tpl'), array( '$desc' => sprintf( tt("%d contact in common", "%d contacts in common", $t), $t), diff --git a/include/conversation.php b/include/conversation.php index 93c42cd7b1..a937eb69f5 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -7,7 +7,7 @@ require_once("include/acl_selectors.php"); // Note: the code in 'item_extract_images' and 'item_redir_and_replace_images' // is identical to the code in mod/message.php for 'item_extract_images' and // 'item_redir_and_replace_images' -if(! function_exists('item_extract_images')) { +if (! function_exists('item_extract_images')) { function item_extract_images($body) { $saved_image = array(); @@ -18,12 +18,12 @@ function item_extract_images($body) { $img_start = strpos($orig_body, '[img'); $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false); $img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false); - while(($img_st_close !== false) && ($img_end !== false)) { + while (($img_st_close !== false) && ($img_end !== false)) { $img_st_close++; // make it point to AFTER the closing bracket $img_end += $img_start; - if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) { + if (! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) { // This is an embedded image $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close)); @@ -36,7 +36,7 @@ function item_extract_images($body) { $orig_body = substr($orig_body, $img_end + strlen('[/img]')); - if($orig_body === false) // in case the body ends on a closing image tag + if ($orig_body === false) // in case the body ends on a closing image tag $orig_body = ''; $img_start = strpos($orig_body, '[img'); @@ -49,7 +49,7 @@ function item_extract_images($body) { return array('body' => $new_body, 'images' => $saved_image); }} -if(! function_exists('item_redir_and_replace_images')) { +if (! function_exists('item_redir_and_replace_images')) { function item_redir_and_replace_images($body, $images, $cid) { $origbody = $body; @@ -57,7 +57,7 @@ function item_redir_and_replace_images($body, $images, $cid) { $cnt = 1; $pos = get_bb_tag_pos($origbody, 'url', 1); - while($pos !== false && $cnt < 1000) { + while ($pos !== false && $cnt < 1000) { $search = '/\[url\=(.*?)\]\[!#saved_image([0-9]*)#!\]\[\/url\]' . '/is'; $replace = '[url=' . z_path() . '/redir/' . $cid @@ -66,7 +66,7 @@ function item_redir_and_replace_images($body, $images, $cid) { $newbody .= substr($origbody, 0, $pos['start']['open']); $subject = substr($origbody, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']); $origbody = substr($origbody, $pos['end']['close']); - if($origbody === false) + if ($origbody === false) $origbody = ''; $subject = preg_replace($search, $replace, $subject); @@ -96,7 +96,7 @@ function item_redir_and_replace_images($body, $images, $cid) { function localize_item(&$item){ $extracted = item_extract_images($item['body']); - if($extracted['images']) + if ($extracted['images']) $item['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $item['contact-id']); $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; @@ -126,7 +126,7 @@ function localize_item(&$item){ } break; default: - if($obj['resource-id']){ + if ($obj['resource-id']){ $post_type = t('photo'); $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m); $rr['plink'] = $m[1]; @@ -137,19 +137,19 @@ function localize_item(&$item){ $plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]'; - if(activity_match($item['verb'],ACTIVITY_LIKE)) { + if (activity_match($item['verb'],ACTIVITY_LIKE)) { $bodyverb = t('%1$s likes %2$s\'s %3$s'); } - elseif(activity_match($item['verb'],ACTIVITY_DISLIKE)) { + elseif (activity_match($item['verb'],ACTIVITY_DISLIKE)) { $bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s'); } - elseif(activity_match($item['verb'],ACTIVITY_ATTEND)) { + elseif (activity_match($item['verb'],ACTIVITY_ATTEND)) { $bodyverb = t('%1$s attends %2$s\'s %3$s'); } - elseif(activity_match($item['verb'],ACTIVITY_ATTENDNO)) { + elseif (activity_match($item['verb'],ACTIVITY_ATTENDNO)) { $bodyverb = t('%1$s doesn\'t attend %2$s\'s %3$s'); } - elseif(activity_match($item['verb'],ACTIVITY_ATTENDMAYBE)) { + elseif (activity_match($item['verb'],ACTIVITY_ATTENDMAYBE)) { $bodyverb = t('%1$s attends maybe %2$s\'s %3$s'); } $item['body'] = sprintf($bodyverb, $author, $objauthor, $plink); @@ -187,7 +187,7 @@ function localize_item(&$item){ } if (stristr($item['verb'],ACTIVITY_POKE)) { $verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1)); - if(! $verb) + if (! $verb) return; if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return; @@ -229,7 +229,7 @@ function localize_item(&$item){ } if (stristr($item['verb'],ACTIVITY_MOOD)) { $verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1)); - if(! $verb) + if (! $verb) return; $Aname = $item['author-name']; @@ -262,7 +262,7 @@ function localize_item(&$item){ } break; default: - if($obj['resource-id']){ + if ($obj['resource-id']){ $post_type = t('photo'); $m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m); $rr['plink'] = $m[1]; @@ -289,7 +289,7 @@ function localize_item(&$item){ $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; $obj = parse_xml_string($xmlhead.$item['object']); - if(strlen($obj->id)) { + if (strlen($obj->id)) { $r = q("select * from item where uri = '%s' and uid = %d limit 1", dbesc($obj->id), intval($item['uid']) @@ -307,16 +307,17 @@ function localize_item(&$item){ } } $matches = null; - if(preg_match_all('/@\[url=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) { - foreach($matches as $mtch) { - if(! strpos($mtch[1],'zrl=')) + if (preg_match_all('/@\[url=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) { + foreach ($matches as $mtch) { + if (! strpos($mtch[1],'zrl=')) { $item['body'] = str_replace($mtch[0],'@[url=' . zrl($mtch[1]). ']',$item['body']); + } } } // add zrl's to public images $photo_pattern = "/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is"; - if(preg_match($photo_pattern,$item['body'])) { + if (preg_match($photo_pattern,$item['body'])) { $photo_replace = '[url=' . zrl('$1' . '/photos/' . '$2' . '/image/' . '$3' ,true) . '][img' . '$4' . ']h' . '$5' . '[/img][/url]'; $item['body'] = bb_tag_preg_replace($photo_pattern, $photo_replace, 'url', $item['body']); } @@ -343,9 +344,9 @@ function localize_item(&$item){ function count_descendants($item) { $total = count($item['children']); - if($total > 0) { - foreach($item['children'] as $child) { - if(! visible_activity($child)) + if ($total > 0) { + foreach ($item['children'] as $child) { + if (! visible_activity($child)) $total --; $total += count_descendants($child); } @@ -360,14 +361,14 @@ function visible_activity($item) { // in which case we handle them specially $hidden_activities = array(ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE); - foreach($hidden_activities as $act) { - if(activity_match($item['verb'],$act)) { + foreach ($hidden_activities as $act) { + if (activity_match($item['verb'],$act)) { return false; } } - if(activity_match($item['verb'],ACTIVITY_FOLLOW) && $item['object-type'] === ACTIVITY_OBJ_NOTE) { - if(! (($item['self']) && ($item['uid'] == local_user()))) { + if (activity_match($item['verb'],ACTIVITY_FOLLOW) && $item['object-type'] === ACTIVITY_OBJ_NOTE) { + if (! (($item['self']) && ($item['uid'] == local_user()))) { return false; } } @@ -465,7 +466,7 @@ function item_condition() { * */ -if(!function_exists('conversation')) { +if (!function_exists('conversation')) { function conversation(App $a, $items, $mode, $update, $preview = false) { require_once('include/bbcode.php'); @@ -480,22 +481,23 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $arr_blocked = null; - if(local_user()) { + if (local_user()) { $str_blocked = get_pconfig(local_user(),'system','blocked'); - if($str_blocked) { + if ($str_blocked) { $arr_blocked = explode(',',$str_blocked); - for($x = 0; $x < count($arr_blocked); $x ++) + for ($x = 0; $x < count($arr_blocked); $x ++) { $arr_blocked[$x] = trim($arr_blocked[$x]); + } } } $previewing = (($preview) ? ' preview ' : ''); - if($mode === 'network') { + if ($mode === 'network') { $profile_owner = local_user(); $page_writeable = true; - if(!$update) { + if (!$update) { // The special div is needed for liveUpdate to kick in for this page. // We only launch liveUpdate if you aren't filtering in some incompatible // way and also you aren't writing a comment (discovered in javascript). @@ -520,14 +522,14 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { . "'; var profile_page = " . $a->pager['page'] . "; \r\n"; } } - else if($mode === 'profile') { + else if ($mode === 'profile') { $profile_owner = $a->profile['profile_uid']; $page_writeable = can_write_wall($a,$profile_owner); - if(!$update) { + if (!$update) { $tab = notags(trim($_GET['tab'])); $tab = ( $tab ? $tab : 'posts' ); - if($tab === 'posts') { + if ($tab === 'posts') { // This is ugly, but we can't pass the profile_uid through the session to the ajax updater, // because browser prefetching might change it on us. We have to deliver it with the page. @@ -537,40 +539,40 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { } } } - else if($mode === 'notes') { + else if ($mode === 'notes') { $profile_owner = local_user(); $page_writeable = true; - if(!$update) { + if (!$update) { $live_update_div = '
' . "\r\n" . "\r\n"; } } - else if($mode === 'display') { + else if ($mode === 'display') { $profile_owner = $a->profile['uid']; $page_writeable = can_write_wall($a,$profile_owner); - if(!$update) { + if (!$update) { $live_update_div = '
' . "\r\n" . ""; } } - else if($mode === 'community') { + else if ($mode === 'community') { $profile_owner = 0; $page_writeable = false; - if(!$update) { + if (!$update) { $live_update_div = '
' . "\r\n" . "\r\n"; } } - else if($mode === 'search') { + else if ($mode === 'search') { $live_update_div = '' . "\r\n"; } $page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false); - if($update) + if ($update) $return_url = $_SESSION['return_url']; else $return_url = $_SESSION['return_url'] = $a->query_string; @@ -594,9 +596,9 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $page_template = get_markup_template("conversation.tpl"); - if($items && count($items)) { + if ($items && count($items)) { - if($mode === 'network-new' || $mode === 'search' || $mode === 'community') { + if ($mode === 'network-new' || $mode === 'search' || $mode === 'community') { // "New Item View" on network page or search page results // - just loop through the items and format them minimally for display @@ -604,17 +606,17 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { // $tpl = get_markup_template('search_item.tpl'); $tpl = 'search_item.tpl'; - foreach($items as $item) { + foreach ($items as $item) { - if($arr_blocked) { + if ($arr_blocked) { $blocked = false; - foreach($arr_blocked as $b) { - if($b && link_compare($item['author-link'],$b)) { + foreach ($arr_blocked as $b) { + if ($b && link_compare($item['author-link'],$b)) { $blocked = true; break; } } - if($blocked) + if ($blocked) continue; } @@ -626,8 +628,8 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $owner_name = ''; $sparkle = ''; - if($mode === 'search' || $mode === 'community') { - if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) + if ($mode === 'search' || $mode === 'community') { + if (((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent'])) continue; $nickname = $item['nickname']; @@ -636,11 +638,11 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $nickname = $a->user['nickname']; // prevent private email from leaking. - if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) + if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) continue; $profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']); - if($item['author-link'] && (! $item['author-name'])) + if ($item['author-link'] && (! $item['author-name'])) $profile_name = $item['author-link']; @@ -652,7 +654,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`", intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION)); - foreach($taglist as $tag) { + foreach ($taglist as $tag) { if ($tag["url"] == "") $tag["url"] = $searchpath.strtolower($tag["term"]); @@ -669,9 +671,9 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $sp = false; $profile_link = best_link_url($item,$sp); - if($profile_link === 'mailbox') + if ($profile_link === 'mailbox') $profile_link = ''; - if($sp) + if ($sp) $sparkle = ' sparkle'; else $profile_link = zrl($profile_link); @@ -698,7 +700,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate)); localize_item($item); - if($mode === 'network-new') + if ($mode === 'network-new') $dropping = true; else $dropping = false; @@ -723,7 +725,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { list($categories, $folders) = get_cats_and_terms($item); - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $profile_name_e = template_escape($profile_name); $item['title_e'] = template_escape($item['title']); $body_e = template_escape($body); @@ -818,18 +820,18 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { // But for now, this array respects the old style, just in case $threads = array(); - foreach($items as $item) { + foreach ($items as $item) { - if($arr_blocked) { + if ($arr_blocked) { $blocked = false; - foreach($arr_blocked as $b) { + foreach ($arr_blocked as $b) { - if($b && link_compare($item['author-link'],$b)) { + if ($b && link_compare($item['author-link'],$b)) { $blocked = true; break; } } - if($blocked) + if ($blocked) continue; } @@ -839,10 +841,10 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { builtin_activity_puller($item, $conv_responses); // Only add what is visible - if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { + if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { continue; } - if(! visible_activity($item)) { + if (! visible_activity($item)) { continue; } @@ -850,7 +852,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $item['pagedrop'] = $page_dropping; - if($item['id'] == $item['parent']) { + if ($item['id'] == $item['parent']) { $item_object = new Item($item); $conv->add_thread($item_object); } @@ -858,7 +860,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) { $threads = $conv->get_template_data($conv_responses); - if(!$threads) { + if (!$threads) { logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG); $threads = array(); } @@ -894,8 +896,8 @@ function best_link_url($item,&$sparkle,$ssl_state = false) { $sparkle = true; } } - if(! $best_url) { - if(strlen($item['author-link'])) + if (! $best_url) { + if (strlen($item['author-link'])) $best_url = $item['author-link']; else $best_url = $item['url']; @@ -910,7 +912,7 @@ function item_photo_menu($item) { $ssl_state = false; - if(local_user()) { + if (local_user()) { $ssl_state = true; } @@ -944,7 +946,7 @@ function item_photo_menu($item) $rel = $r[0]['rel']; } - if($sparkle) { + if ($sparkle) { $status_link = $profile_link . '?url=status'; $photos_link = $profile_link . '?url=photos'; $profile_link = $profile_link . '?url=profile'; @@ -1012,9 +1014,9 @@ function item_photo_menu($item) * @param array &$conv_responses (already created with builtin activity structure) * @return void */ -if(! function_exists('builtin_activity_puller')) { +if (! function_exists('builtin_activity_puller')) { function builtin_activity_puller($item, &$conv_responses) { - foreach($conv_responses as $mode => $v) { + foreach ($conv_responses as $mode => $v) { $url = ''; $sparkle = ''; @@ -1039,9 +1041,9 @@ function builtin_activity_puller($item, &$conv_responses) { break; } - if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) { + if ((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) { $url = $item['author-link']; - if((local_user()) && (local_user() == $item['uid']) && ($item['network'] === NETWORK_DFRN) && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) { + if ((local_user()) && (local_user() == $item['uid']) && ($item['network'] === NETWORK_DFRN) && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) { $url = 'redir/' . $item['contact-id']; $sparkle = ' class="sparkle" '; } @@ -1050,18 +1052,18 @@ function builtin_activity_puller($item, &$conv_responses) { $url = '' . htmlentities($item['author-name']) . ''; - if(! $item['thr-parent']) + if (! $item['thr-parent']) $item['thr-parent'] = $item['parent-uri']; - if(! ((isset($conv_responses[$mode][$item['thr-parent'] . '-l'])) + if (! ((isset($conv_responses[$mode][$item['thr-parent'] . '-l'])) && (is_array($conv_responses[$mode][$item['thr-parent'] . '-l'])))) $conv_responses[$mode][$item['thr-parent'] . '-l'] = array(); // only list each unique author once - if(in_array($url,$conv_responses[$mode][$item['thr-parent'] . '-l'])) + if (in_array($url,$conv_responses[$mode][$item['thr-parent'] . '-l'])) continue; - if(! isset($conv_responses[$mode][$item['thr-parent']])) + if (! isset($conv_responses[$mode][$item['thr-parent']])) $conv_responses[$mode][$item['thr-parent']] = 1; else $conv_responses[$mode][$item['thr-parent']] ++; @@ -1085,12 +1087,12 @@ function builtin_activity_puller($item, &$conv_responses) { // $id = item id // returns formatted text -if(! function_exists('format_like')) { +if (! function_exists('format_like')) { function format_like($cnt,$arr,$type,$id) { $o = ''; $expanded = ''; - if($cnt == 1) { + if ($cnt == 1) { $likers = $arr[0]; // Phrase if there is only one liker. In other cases it will be uses for the expanded @@ -1114,16 +1116,16 @@ function format_like($cnt,$arr,$type,$id) { } } - if($cnt > 1) { + if ($cnt > 1) { $total = count($arr); - if($total >= MAX_LIKERS) + if ($total >= MAX_LIKERS) $arr = array_slice($arr, 0, MAX_LIKERS - 1); - if($total < MAX_LIKERS) { + if ($total < MAX_LIKERS) { $last = t('and') . ' ' . $arr[count($arr)-1]; $arr2 = array_slice($arr, 0, -1); $str = implode(', ', $arr2) . ' ' . $last; } - if($total >= MAX_LIKERS) { + if ($total >= MAX_LIKERS) { $str = implode(', ', $arr); $str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS ); } @@ -1211,17 +1213,17 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { // Private/public post links for the non-JS ACL form $private_post = 1; - if($_REQUEST['public']) + if ($_REQUEST['public']) $private_post = 0; $query_str = $a->query_string; - if(strpos($query_str, 'public=1') !== false) + if (strpos($query_str, 'public=1') !== false) $query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str); // I think $a->query_string may never have ? in it, but I could be wrong // It looks like it's from the index.php?q=[etc] rewrite that the web // server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61 - if(strpos($query_str, '?') === false) + if (strpos($query_str, '?') === false) $public_post_link = '?public=1'; else $public_post_link = '&public=1'; @@ -1302,20 +1304,20 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { function get_item_children($arr, $parent) { $children = array(); $a = get_app(); - foreach($arr as $item) { - if($item['id'] != $item['parent']) { - if(get_config('system','thread_allow') && $a->theme_thread_allow) { + foreach ($arr as $item) { + if ($item['id'] != $item['parent']) { + if (get_config('system','thread_allow') && $a->theme_thread_allow) { // Fallback to parent-uri if thr-parent is not set $thr_parent = $item['thr-parent']; - if($thr_parent == '') + if ($thr_parent == '') $thr_parent = $item['parent-uri']; - if($thr_parent == $parent['uri']) { + if ($thr_parent == $parent['uri']) { $item['children'] = get_item_children($arr, $item); $children[] = $item; } } - else if($item['parent'] == $parent['id']) { + else if ($item['parent'] == $parent['id']) { $children[] = $item; } } @@ -1326,8 +1328,8 @@ function get_item_children($arr, $parent) { function sort_item_children($items) { $result = $items; usort($result,'sort_thr_created_rev'); - foreach($result as $k => $i) { - if(count($result[$k]['children'])) { + foreach ($result as $k => $i) { + if (count($result[$k]['children'])) { $result[$k]['children'] = sort_item_children($result[$k]['children']); } } @@ -1335,16 +1337,16 @@ function sort_item_children($items) { } function add_children_to_list($children, &$arr) { - foreach($children as $y) { + foreach ($children as $y) { $arr[] = $y; - if(count($y['children'])) + if (count($y['children'])) add_children_to_list($y['children'], $arr); } } function conv_sort($arr,$order) { - if((!(is_array($arr) && count($arr)))) + if ((!(is_array($arr) && count($arr)))) return array(); $parents = array(); @@ -1353,35 +1355,40 @@ function conv_sort($arr,$order) { // This is a preparation for having two different items with the same uri in one thread // This will otherwise lead to an endless loop. - foreach($arr as $x) + foreach ($arr as $x) if (!isset($newarr[$x['uri']])) $newarr[$x['uri']] = $x; $arr = $newarr; - foreach($arr as $x) - if($x['id'] == $x['parent']) - $parents[] = $x; + foreach ($arr as $x) { + if ($x['id'] == $x['parent']) { + $parents[] = $x; + } + } - if(stristr($order,'created')) + if (stristr($order,'created')) { usort($parents,'sort_thr_created'); - elseif(stristr($order,'commented')) + } elseif (stristr($order,'commented')) { usort($parents,'sort_thr_commented'); + } - if(count($parents)) - foreach($parents as $i=>$_x) + if (count($parents)) { + foreach($parents as $i=>$_x) { $parents[$i]['children'] = get_item_children($arr, $_x); + } + } - /*foreach($arr as $x) { - if($x['id'] != $x['parent']) { + /*foreach ($arr as $x) { + if ($x['id'] != $x['parent']) { $p = find_thread_parent_index($parents,$x); - if($p !== false) + if ($p !== false) $parents[$p]['children'][] = $x; } }*/ - if(count($parents)) { - foreach($parents as $k => $v) { - if(count($parents[$k]['children'])) { + if (count($parents)) { + foreach ($parents as $k => $v) { + if (count($parents[$k]['children'])) { $parents[$k]['children'] = sort_item_children($parents[$k]['children']); /*$y = $parents[$k]['children']; usort($y,'sort_thr_created_rev'); @@ -1391,12 +1398,12 @@ function conv_sort($arr,$order) { } $ret = array(); - if(count($parents)) { - foreach($parents as $x) { + if (count($parents)) { + foreach ($parents as $x) { $ret[] = $x; - if(count($x['children'])) + if (count($x['children'])) add_children_to_list($x['children'], $ret); - /*foreach($x['children'] as $y) + /*foreach ($x['children'] as $y) $ret[] = $y;*/ } } @@ -1418,9 +1425,11 @@ function sort_thr_commented($a,$b) { } function find_thread_parent_index($arr,$x) { - foreach($arr as $k => $v) - if($v['id'] == $x['parent']) + foreach ($arr as $k => $v) { + if ($v['id'] == $x['parent']) { return $k; + } + } return false; } @@ -1434,17 +1443,16 @@ function render_location_dummy($item) { function get_responses($conv_responses,$response_verbs,$ob,$item) { $ret = array(); - foreach($response_verbs as $v) { + foreach ($response_verbs as $v) { $ret[$v] = array(); $ret[$v]['count'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri']] : ''); $ret[$v]['list'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri'] . '-l'] : ''); $ret[$v]['self'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri'] . '-self'] : '0'); - if(count($ret[$v]['list']) > MAX_LIKERS) { + if (count($ret[$v]['list']) > MAX_LIKERS) { $ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS); array_push($ret[$v]['list_part'], '' . t('View all') . ''); - } - else { + } else { $ret[$v]['list_part'] = ''; } $ret[$v]['button'] = get_response_button_text($v,$ret[$v]['count']); @@ -1452,9 +1460,10 @@ function get_responses($conv_responses,$response_verbs,$ob,$item) { } $count = 0; - foreach($ret as $key) { - if ($key['count'] == true) + foreach ($ret as $key) { + if ($key['count'] == true) { $count++; + } } $ret['count'] = $count; diff --git a/include/cron.php b/include/cron.php index ca9b5dff25..9ab56ff435 100644 --- a/include/cron.php +++ b/include/cron.php @@ -19,12 +19,12 @@ function cron_run(&$argv, &$argc){ $last = get_config('system','last_cron'); $poll_interval = intval(get_config('system','cron_interval')); - if(! $poll_interval) + if (! $poll_interval) $poll_interval = 10; - if($last) { + if ($last) { $next = $last + ($poll_interval * 60); - if($next > time()) { + if ($next > time()) { logger('cron intervall not reached'); return; } @@ -64,7 +64,7 @@ function cron_run(&$argv, &$argc){ $d1 = get_config('system','last_expire_day'); $d2 = intval(datetime_convert('UTC','UTC','now','d')); - if($d2 != intval($d1)) { + if ($d2 != intval($d1)) { update_contact_birthdays(); @@ -126,7 +126,7 @@ function cron_expire_and_remove_users() { // delete user and contact records for recently removed accounts $r = q("SELECT * FROM `user` WHERE `account_removed` AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY"); if ($r) { - foreach($r as $user) { + foreach ($r as $user) { q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid'])); q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid'])); } @@ -171,7 +171,7 @@ function cron_poll_contacts($argc, $argv) { // we are unable to match those posts with a Diaspora GUID and prevent duplicates. $abandon_days = intval(get_config('system','account_abandon_days')); - if($abandon_days < 1) + if ($abandon_days < 1) $abandon_days = 0; $abandon_sql = (($abandon_days) @@ -210,7 +210,7 @@ function cron_poll_contacts($argc, $argv) { continue; } - foreach($res as $contact) { + foreach ($res as $contact) { $xml = false; @@ -232,7 +232,7 @@ function cron_poll_contacts($argc, $argv) { $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3); } - if($contact['priority'] AND !$force) { + if ($contact['priority'] AND !$force) { $update = false; @@ -244,24 +244,24 @@ function cron_poll_contacts($argc, $argv) { switch ($contact['priority']) { case 5: - if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 month")) + if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 month")) $update = true; break; case 4: - if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 week")) + if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 week")) $update = true; break; case 3: - if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) + if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) $update = true; break; case 2: - if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 12 hour")) + if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 12 hour")) $update = true; break; case 1: default: - if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 hour")) + if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 hour")) $update = true; break; } @@ -289,14 +289,16 @@ function cron_clear_cache(App $a) { $last = get_config('system','cache_last_cleared'); - if($last) { + if ($last) { $next = $last + (3600); // Once per hour $clear_cache = ($next <= time()); - } else + } else { $clear_cache = true; + } - if (!$clear_cache) + if (!$clear_cache) { return; + } // clear old cache Cache::clear(); @@ -315,7 +317,9 @@ function cron_clear_cache(App $a) { clear_cache($a->get_basepath(), $a->get_basepath()."/proxy"); $cachetime = get_config('system','proxy_cache_time'); - if (!$cachetime) $cachetime = PROXY_DEFAULT_TIME; + if (!$cachetime) { + $cachetime = PROXY_DEFAULT_TIME; + } q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%" AND `created` < NOW() - INTERVAL %d SECOND', $cachetime); } @@ -328,26 +332,30 @@ function cron_clear_cache(App $a) { // Maximum table size in megabyte $max_tablesize = intval(get_config('system','optimize_max_tablesize')) * 1000000; - if ($max_tablesize == 0) + if ($max_tablesize == 0) { $max_tablesize = 100 * 1000000; // Default are 100 MB + } if ($max_tablesize > 0) { // Minimum fragmentation level in percent $fragmentation_level = intval(get_config('system','optimize_fragmentation')) / 100; - if ($fragmentation_level == 0) + if ($fragmentation_level == 0) { $fragmentation_level = 0.3; // Default value is 30% + } // Optimize some tables that need to be optimized $r = q("SHOW TABLE STATUS"); - foreach($r as $table) { + foreach ($r as $table) { // Don't optimize tables that are too large - if ($table["Data_length"] > $max_tablesize) + if ($table["Data_length"] > $max_tablesize) { continue; + } // Don't optimize empty tables - if ($table["Data_length"] == 0) + if ($table["Data_length"] == 0) { continue; + } // Calculate fragmentation $fragmentation = $table["Data_free"] / ($table["Data_length"] + $table["Index_length"]); @@ -355,8 +363,9 @@ function cron_clear_cache(App $a) { logger("Table ".$table["Name"]." - Fragmentation level: ".round($fragmentation * 100, 2), LOGGER_DEBUG); // Don't optimize tables that needn't to be optimized - if ($fragmentation < $fragmentation_level) + if ($fragmentation < $fragmentation_level) { continue; + } // So optimize it logger("Optimize Table ".$table["Name"], LOGGER_DEBUG); @@ -416,9 +425,11 @@ function cron_repair_database() { // Update the global contacts for local users $r = q("SELECT `uid` FROM `user` WHERE `verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired`"); - if (dbm::is_result($r)) - foreach ($r AS $user) + if (dbm::is_result($r)) { + foreach ($r AS $user) { update_gcontact_for_user($user["uid"]); + } + } /// @todo /// - remove thread entries without item diff --git a/include/cronhooks.php b/include/cronhooks.php index bea0f6a198..349cac4f4e 100644 --- a/include/cronhooks.php +++ b/include/cronhooks.php @@ -8,23 +8,25 @@ function cronhooks_run(&$argv, &$argc){ require_once('include/datetime.php'); if (($argc == 2) AND is_array($a->hooks) AND array_key_exists("cron", $a->hooks)) { - foreach ($a->hooks["cron"] as $hook) + foreach ($a->hooks["cron"] as $hook) { if ($hook[1] == $argv[1]) { logger("Calling cron hook '".$hook[1]."'", LOGGER_DEBUG); call_single_hook($a, $name, $hook, $data); } + } return; } $last = get_config('system', 'last_cronhook'); $poll_interval = intval(get_config('system','cronhook_interval')); - if(! $poll_interval) + if (! $poll_interval) { $poll_interval = 9; + } - if($last) { + if ($last) { $next = $last + ($poll_interval * 60); - if($next > time()) { + if ($next > time()) { logger('cronhook intervall not reached'); return; } diff --git a/include/crypto.php b/include/crypto.php index f5163a9dac..7c931107c2 100644 --- a/include/crypto.php +++ b/include/crypto.php @@ -12,7 +12,7 @@ function rsa_sign($data,$key,$alg = 'sha256') { openssl_sign($data,$sig,$key,(($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg)); } else { - if(strlen($key) < 1024 || extension_loaded('gmp')) { + if (strlen($key) < 1024 || extension_loaded('gmp')) { require_once('library/phpsec/Crypt/RSA.php'); $rsa = new CRYPT_RSA(); $rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1; @@ -34,7 +34,7 @@ function rsa_verify($data,$sig,$key,$alg = 'sha256') { $verify = openssl_verify($data,$sig,$key,(($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg)); } else { - if(strlen($key) <= 300 || extension_loaded('gmp')) { + if (strlen($key) <= 300 || extension_loaded('gmp')) { require_once('library/phpsec/Crypt/RSA.php'); $rsa = new CRYPT_RSA(); $rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1; @@ -186,12 +186,12 @@ function salmon_key($pubkey) { -if(! function_exists('aes_decrypt')) { +if (! function_exists('aes_decrypt')) { // DEPRECATED IN 3.4.1 function aes_decrypt($val,$ky) { $key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; - for($a=0;$a 1) { - if($ex[0] != $continent) { - if($continent != '') + if (count($ex) > 1) { + if ($ex[0] != $continent) { + if ($continent != '') $o .= ''; $continent = $ex[0]; $o .= ''; } - if(count($ex) > 2) + if (count($ex) > 2) { $city = substr($value,strpos($value,'/')+1); - else + } else { $city = $ex[1]; - } - else { + } + } else { $city = $ex[0]; - if($continent != t('Miscellaneous')) { + if ($continent != t('Miscellaneous')) { $o .= ''; $continent = t('Miscellaneous'); $o .= ''; @@ -114,11 +114,11 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d // Defaults to UTC if nothing is set, but throws an exception if set to empty string. // Provide some sane defaults regardless. - if($from === '') + if ($from === '') $from = 'UTC'; - if($to === '') + if ($to === '') $to = 'UTC'; - if( ($s === '') || (! is_string($s)) ) + if ( ($s === '') || (! is_string($s)) ) $s = 'now'; // Slight hackish adjustment so that 'zero' datetime actually returns what is intended @@ -126,7 +126,7 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d // add 32 days so that we at least get year 00, and then hack around the fact that // months and days always start with 1. - if(substr($s,0,10) == '0000-00-00') { + if (substr($s,0,10) == '0000-00-00') { $d = new DateTime($s . ' + 32 days', new DateTimeZone('UTC')); return str_replace('1','0',$d->format($fmt)); } @@ -169,9 +169,9 @@ function dob($dob) { list($year,$month,$day) = sscanf($dob,'%4d-%2d-%2d'); $f = get_config('system','birthday_input_format'); - if(! $f) + if (! $f) $f = 'ymd'; - if($dob === '0000-00-00') + if ($dob === '0000-00-00') $value = ''; else $value = (($year) ? datetime_convert('UTC','UTC',$dob,'Y-m-d') : datetime_convert('UTC','UTC',$dob,'m-d')); @@ -279,9 +279,9 @@ function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicke $o = ''; $dateformat = ''; - if($pickdate) $dateformat .= 'Y-m-d'; - if($pickdate && $picktime) $dateformat .= ' '; - if($picktime) $dateformat .= 'H:i'; + if ($pickdate) $dateformat .= 'Y-m-d'; + if ($pickdate && $picktime) $dateformat .= ' '; + if ($picktime) $dateformat .= 'H:i'; $minjs = $min ? ",minDate: new Date({$min->getTimestamp()}*1000), yearStart: " . $min->format('Y') : ''; $maxjs = $max ? ",maxDate: new Date({$max->getTimestamp()}*1000), yearEnd: " . $max->format('Y') : ''; @@ -290,14 +290,14 @@ function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicke $defaultdatejs = $default ? ",defaultDate: new Date({$default->getTimestamp()}*1000)" : ''; $pickers = ''; - if(!$pickdate) $pickers .= ',datepicker: false'; - if(!$picktime) $pickers .= ',timepicker: false'; + if (!$pickdate) $pickers .= ',datepicker: false'; + if (!$picktime) $pickers .= ',timepicker: false'; $extra_js = ''; $pickers .= ",dayOfWeekStart: ".$firstDay.",lang:'".$lang."'"; - if($minfrom != '') + if ($minfrom != '') $extra_js .= "\$('#id_$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})"; - if($maxfrom != '') + if ($maxfrom != '') $extra_js .= "\$('#id_$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})"; $readable_format = $dateformat; @@ -394,11 +394,11 @@ function relative_date($posted_date, $format = null) { * @return int Age in years */ function age($dob,$owner_tz = '',$viewer_tz = '') { - if(! intval($dob)) + if (! intval($dob)) return 0; - if(! $owner_tz) + if (! $owner_tz) $owner_tz = date_default_timezone_get(); - if(! $viewer_tz) + if (! $viewer_tz) $viewer_tz = date_default_timezone_get(); $birthdate = datetime_convert('UTC',$owner_tz,$dob . ' 00:00:00+00:00','Y-m-d'); @@ -407,7 +407,7 @@ function age($dob,$owner_tz = '',$viewer_tz = '') { $curr_month = datetime_convert('UTC',$viewer_tz,'now','m'); $curr_day = datetime_convert('UTC',$viewer_tz,'now','d'); - if(($curr_month < $month) || (($curr_month == $month) && ($curr_day < $day))) + if (($curr_month < $month) || (($curr_month == $month) && ($curr_day < $day))) $year_diff--; return $year_diff; @@ -430,10 +430,10 @@ function get_dim($y,$m) { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); - if($m != 2) + if ($m != 2) return $dim[$m]; - if(((($y % 4) == 0) && (($y % 100) != 0)) || (($y % 400) == 0)) + if (((($y % 4) == 0) && (($y % 100) != 0)) || (($y % 400) == 0)) return 29; return $dim[2]; @@ -486,10 +486,12 @@ function cal($y = 0,$m = 0, $links = false, $class='') { $thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y'); $thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m'); - if(! $y) + if (! $y) { $y = $thisyear; - if(! $m) + } + if (! $m) { $m = intval($thismonth); + } $dn = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); $f = get_first_dim($y,$m); @@ -498,29 +500,33 @@ function cal($y = 0,$m = 0, $links = false, $class='') { $dow = 0; $started = false; - if(($y == $thisyear) && ($m == $thismonth)) + if (($y == $thisyear) && ($m == $thismonth)) { $tddate = intval(datetime_convert('UTC',date_default_timezone_get(),'now','j')); + } $str_month = day_translate($mtab[$m]); $o = ''; $o .= ""; - for($a = 0; $a < 7; $a ++) + for ($a = 0; $a < 7; $a ++) { $o .= ''; + } $o .= ''; - while($d <= $l) { - if(($dow == $f) && (! $started)) + while ($d <= $l) { + if (($dow == $f) && (! $started)) { $started = true; + } $today = (((isset($tddate)) && ($tddate == $d)) ? "class=\"today\" " : ''); $o .= "'; $dow ++; - if(($dow == 7) && ($d <= $l)) { + if (($dow == 7) && ($d <= $l)) { $dow = 0; $o .= ''; } } - if($dow) - for($a = $dow; $a < 7; $a ++) + if ($dow) { + for ($a = $dow; $a < 7; $a ++) { $o .= ''; + } + } $o .= '
$str_month $y
' . mb_substr(day_translate($dn[$a]),0,3,'UTF-8') . '
"; $day = str_replace(' ',' ',sprintf('%2.2d', $d)); - if($started) { - if(is_array($links) && isset($links[$d])) + if ($started) { + if (is_array($links) && isset($links[$d])) { $o .= "$day"; - else + } else { $o .= $day; + } $d ++; } else { @@ -529,14 +535,16 @@ function cal($y = 0,$m = 0, $links = false, $class='') { $o .= '
 
'."\r\n"; diff --git a/include/dba_pdo.php b/include/dba_pdo.php index a44c447af2..56692fbb39 100644 --- a/include/dba_pdo.php +++ b/include/dba_pdo.php @@ -34,7 +34,7 @@ $objDDDBLResultHandler->add('PDOStatement', array('HANDLER' => $cloPDOStatementR * */ -if(! class_exists('dba')) { +if (! class_exists('dba')) { class dba { private $debug = 0; @@ -66,9 +66,9 @@ class dba { return; } - if($install) { - if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { - if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { + if ($install) { + if (strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { + if (! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server); $this->connected = false; $this->db = null; @@ -81,13 +81,13 @@ class dba { \DDDBL\connect(); $this->db = \DDDBL\getDB(); - if(\DDDBL\isConnected()) { + if (\DDDBL\isConnected()) { $this->connected = true; } - if(! $this->connected) { + if (! $this->connected) { $this->db = null; - if(! $install) + if (! $install) system_unavailable(); } @@ -109,11 +109,11 @@ class dba { $objPreparedQueryPool = new \DDDBL\DataObjectPool('Query-Definition'); # check if query do not exists till now, if so create its definition - if(!$objPreparedQueryPool->exists($strQueryAlias)) + if (!$objPreparedQueryPool->exists($strQueryAlias)) $objPreparedQueryPool->add($strQueryAlias, array('QUERY' => $sql, 'HANDLER' => $strHandler)); - if((! $this->db) || (! $this->connected)) + if ((! $this->db) || (! $this->connected)) return false; $this->error = ''; @@ -124,7 +124,7 @@ class dba { $r = \DDDBL\get($strQueryAlias); # bad workaround to emulate the bizzare behavior of mysql_query - if(in_array($strSQLType, array('INSERT', 'UPDATE', 'DELETE', 'CREATE', 'DROP', 'SET'))) + if (in_array($strSQLType, array('INSERT', 'UPDATE', 'DELETE', 'CREATE', 'DROP', 'SET'))) $result = true; $intErrorCode = false; @@ -138,7 +138,7 @@ class dba { $a->save_timestamp($stamp1, "database"); - if(x($a->config,'system') && x($a->config['system'],'db_log')) { + if (x($a->config,'system') && x($a->config['system'],'db_log')) { if (($duration > $a->config["system"]["db_loglimit"])) { $duration = round($duration, 3); $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); @@ -149,20 +149,20 @@ class dba { } } - if($intErrorCode) + if ($intErrorCode) $this->error = $intErrorCode; - if(strlen($this->error)) { + if (strlen($this->error)) { logger('dba: ' . $this->error); } - if($this->debug) { + if ($this->debug) { $mesg = ''; - if($result === false) + if ($result === false) $mesg = 'false'; - elseif($result === true) + elseif ($result === true) $mesg = 'true'; else { # this needs fixing, but is a bug itself @@ -182,13 +182,13 @@ class dba { * These usually indicate SQL syntax errors that need to be resolved. */ - if(isset($result) AND ($result === false)) { + if (isset($result) AND ($result === false)) { logger('dba: ' . printable($sql) . ' returned false.' . "\n" . $this->error); - if(file_exists('dbfail.out')) + if (file_exists('dbfail.out')) file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND); } - if(isset($result) AND (($result === true) || ($result === false))) + if (isset($result) AND (($result === true) || ($result === false))) return $result; if ($onlyquery) { @@ -199,7 +199,7 @@ class dba { //$a->save_timestamp($stamp1, "database"); - if($this->debug) + if ($this->debug) logger('dba: ' . printable(print_r($r, true))); return($r); } @@ -223,7 +223,7 @@ class dba { } public function escape($str) { - if($this->db && $this->connected) { + if ($this->db && $this->connected) { $strQuoted = $this->db->quote($str); # this workaround is needed, because quote creates "'" and the beginning and the end # of the string, which is correct. but until now the queries set this delimiter manually, @@ -238,27 +238,27 @@ class dba { } }} -if(! function_exists('printable')) { +if (! function_exists('printable')) { function printable($s) { $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s); $s = str_replace("\x00",'.',$s); - if(x($_SERVER,'SERVER_NAME')) + if (x($_SERVER,'SERVER_NAME')) $s = escape_tags($s); return $s; }} // Procedural functions -if(! function_exists('dbg')) { +if (! function_exists('dbg')) { function dbg($state) { global $db; - if($db) + if ($db) $db->dbg($state); }} -if(! function_exists('dbesc')) { +if (! function_exists('dbesc')) { function dbesc($str) { global $db; - if($db && $db->connected) + if ($db && $db->connected) return($db->escape($str)); else return(str_replace("'","\\'",$str)); @@ -271,17 +271,17 @@ function dbesc($str) { // Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d", // 'user', 1); -if(! function_exists('q')) { +if (! function_exists('q')) { function q($sql) { global $db; $args = func_get_args(); unset($args[0]); - if($db && $db->connected) { + if ($db && $db->connected) { $stmt = @vsprintf($sql,$args); // Disabled warnings //logger("dba: q: $stmt", LOGGER_ALL); - if($stmt === false) + if ($stmt === false) logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG); return $db->q($stmt); } @@ -303,11 +303,11 @@ function q($sql) { * */ -if(! function_exists('dbq')) { +if (! function_exists('dbq')) { function dbq($sql) { global $db; - if($db && $db->connected) + if ($db && $db->connected) $ret = $db->q($sql); else $ret = false; @@ -321,21 +321,21 @@ function dbq($sql) { // cast to int to avoid trouble. -if(! function_exists('dbesc_array_cb')) { +if (! function_exists('dbesc_array_cb')) { function dbesc_array_cb(&$item, $key) { - if(is_string($item)) + if (is_string($item)) $item = dbesc($item); }} -if(! function_exists('dbesc_array')) { +if (! function_exists('dbesc_array')) { function dbesc_array(&$arr) { - if(is_array($arr) && count($arr)) { + if (is_array($arr) && count($arr)) { array_walk($arr,'dbesc_array_cb'); } }} -if(! function_exists('dba_timer')) { +if (! function_exists('dba_timer')) { function dba_timer() { return microtime(true); }} diff --git a/include/dbstructure.php b/include/dbstructure.php index 48cc02d2d1..0a52a751cf 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -404,7 +404,7 @@ function db_create_table($name, $fields, $charset, $verbose, $action, $indexes=n $sql_rows = array(); $primary_keys = array(); - foreach($fields AS $fieldname => $field) { + foreach ($fields AS $fieldname => $field) { $sql_rows[] = "`".dbesc($fieldname)."` ".db_field_command($field); if (x($field,'primary') and $field['primary']!=''){ $primary_keys[] = $fieldname; @@ -1621,11 +1621,11 @@ function db_definition($charset) { function dbstructure_run(&$argv, &$argc) { global $a, $db; - if(is_null($a)){ + if (is_null($a)){ $a = new App; } - if(is_null($db)) { + if (is_null($db)) { @include(".htconfig.php"); require_once("include/dba.php"); $db = new dba($db_host, $db_user, $db_pass, $db_data); @@ -1650,7 +1650,7 @@ function dbstructure_run(&$argv, &$argc) { $current = intval(DB_UPDATE_VERSION); // run any left update_nnnn functions in update.php - for($x = $stored; $x < $current; $x ++) { + for ($x = $stored; $x < $current; $x ++) { $r = run_update_function($x); if (!$r) break; } diff --git a/include/dfrn.php b/include/dfrn.php index 25f8c9358e..9fa19bde6c 100644 --- a/include/dfrn.php +++ b/include/dfrn.php @@ -41,6 +41,7 @@ class dfrn { * @param array $owner Owner record * * @return string DFRN entries + * @todo Add type-hints */ public static function entries($items,$owner) { @@ -49,10 +50,11 @@ class dfrn { $root = self::add_header($doc, $owner, "dfrn:owner", "", false); - if(! count($items)) + if (! count($items)) { return trim($doc->saveXML()); + } - foreach($items as $item) { + foreach ($items as $item) { $entry = self::entry($doc, "text", $item, $owner, $item["entry:comment-allow"], $item["entry:cid"]); $root->appendChild($entry); } @@ -82,14 +84,17 @@ class dfrn { $starred = false; // not yet implemented, possible security issues $converse = false; - if($public_feed && $a->argc > 2) { - for($x = 2; $x < $a->argc; $x++) { - if($a->argv[$x] == 'converse') + if ($public_feed && $a->argc > 2) { + for ($x = 2; $x < $a->argc; $x++) { + if ($a->argv[$x] == 'converse') { $converse = true; - if($a->argv[$x] == 'starred') + } + if ($a->argv[$x] == 'starred') { $starred = true; - if($a->argv[$x] == 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1])) + } + if ($a->argv[$x] == 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1])) { $category = $a->argv[$x+1]; + } } } @@ -115,7 +120,7 @@ class dfrn { $sql_post_table = ""; - if(! $public_feed) { + if (! $public_feed) { $sql_extra = ''; switch($direction) { @@ -148,12 +153,13 @@ class dfrn { require_once('include/security.php'); $groups = init_groups_visitor($contact['id']); - if(count($groups)) { - for($x = 0; $x < count($groups); $x ++) + if (count($groups)) { + for ($x = 0; $x < count($groups); $x ++) $groups[$x] = '<' . intval($groups[$x]) . '>' ; $gs = implode('|', $groups); - } else + } else { $gs = '<<>>' ; // Impossible to match + } $sql_extra = sprintf(" AND ( `allow_cid` = '' OR `allow_cid` REGEXP '<%d>' ) @@ -168,23 +174,26 @@ class dfrn { ); } - if($public_feed) + if ($public_feed) { $sort = 'DESC'; - else + } else { $sort = 'ASC'; + } - if(! strlen($last_update)) + if (! strlen($last_update)) { $last_update = 'now -30 days'; + } - if(isset($category)) { + if (isset($category)) { $sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", dbesc(protect_sprintf($category)), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), intval($owner_id)); //$sql_extra .= file_tag_file_query('item',$category,'category'); } - if($public_feed) { - if(! $converse) + if ($public_feed) { + if (! $converse) { $sql_extra .= " AND `contact`.`self` = 1 "; + } } $check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s'); @@ -207,6 +216,11 @@ class dfrn { dbesc($sort) ); + if (!dbm::is_result($r)) { + logger("Query failed to execute, no result returned in " . __FUNCTION__); + killme(); + } + // Will check further below if this actually returned results. // We will provide an empty feed if that is the case. @@ -217,13 +231,15 @@ class dfrn { $alternatelink = $owner['url']; - if(isset($category)) + if (isset($category)) { $alternatelink .= "/category/".$category; + } - if ($public_feed) + if ($public_feed) { $author = "dfrn:owner"; - else + } else { $author = "author"; + } $root = self::add_header($doc, $owner, $author, $alternatelink, true); @@ -238,21 +254,24 @@ class dfrn { return $atom; } - foreach($items as $item) { + foreach ($items as $item) { // prevent private email from leaking. - if($item['network'] == NETWORK_MAIL) + if ($item['network'] == NETWORK_MAIL) { continue; + } // public feeds get html, our own nodes use bbcode - if($public_feed) { + if ($public_feed) { $type = 'html'; // catch any email that's in a public conversation and make sure it doesn't leak - if($item['private']) + if ($item['private']) { continue; - } else + } + } else { $type = 'text'; + } $entry = self::entry($doc, $type, $item, $owner, true); $root->appendChild($entry); @@ -273,6 +292,7 @@ class dfrn { * @param array $owner Owner record * * @return string DFRN mail + * @todo Add type-hints */ public static function mail($item, $owner) { $doc = new DOMDocument('1.0', 'utf-8'); @@ -307,6 +327,7 @@ class dfrn { * @param array $owner Owner record * * @return string DFRN suggestions + * @todo Add type-hints */ public static function fsuggest($item, $owner) { $doc = new DOMDocument('1.0', 'utf-8'); @@ -334,12 +355,13 @@ class dfrn { * @param int $uid User ID * * @return string DFRN relocations + * @todo Add type-hints */ public static function relocate($owner, $uid) { /* get site pubkey. this could be a new installation with no site keys*/ $pubkey = get_config('system','site_pubkey'); - if(! $pubkey) { + if (! $pubkey) { $res = new_keypair(1024); set_config('system','site_prvkey', $res['prvkey']); set_config('system','site_pubkey', $res['pubkey']); @@ -350,8 +372,9 @@ class dfrn { $photos = array(); $ext = Photo::supportedTypes(); - foreach($rp as $p) + foreach ($rp as $p) { $photos[$p['scale']] = app::get_baseurl().'/photo/'.$p['resource-id'].'-'.$p['scale'].'.'.$ext[$p['type']]; + } unset($rp, $ext); @@ -390,11 +413,13 @@ class dfrn { * @param bool $public Is it a header for public posts? * * @return object XML root object + * @todo Add type-hints */ private static function add_header($doc, $owner, $authorelement, $alternatelink = "", $public = false) { - if ($alternatelink == "") + if ($alternatelink == "") { $alternatelink = $owner['url']; + } $root = $doc->createElementNS(NAMESPACE_ATOM1, 'feed'); $doc->appendChild($root); @@ -437,8 +462,9 @@ class dfrn { } // For backward compatibility we keep this element - if ($owner['page-flags'] == PAGE_COMMUNITY) + if ($owner['page-flags'] == PAGE_COMMUNITY) { xml::add_element($doc, $root, "dfrn:community", 1); + } // The former element is replaced by this one xml::add_element($doc, $root, "dfrn:account_type", $owner["account-type"]); @@ -461,6 +487,7 @@ class dfrn { * @param string $authorelement Element name for the author * * @return object XML author object + * @todo Add type-hints */ private static function add_author($doc, $owner, $authorelement, $public) { @@ -468,10 +495,11 @@ class dfrn { $r = q("SELECT `id` FROM `profile` INNER JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE (`hidewall` OR NOT `net-publish`) AND `user`.`uid` = %d", intval($owner['uid'])); - if ($r) + if (dbm::is_result($r)) { $hidewall = true; - else + } else { $hidewall = false; + } $author = $doc->createElement($authorelement); @@ -479,10 +507,11 @@ class dfrn { $uridate = datetime_convert('UTC', 'UTC', $owner['uri-date'].'+00:00', ATOM_TIME); $picdate = datetime_convert('UTC', 'UTC', $owner['avatar-date'].'+00:00', ATOM_TIME); - if (!$public OR !$hidewall) + $attributes = array(); + + if (!$public OR !$hidewall) { $attributes = array("dfrn:updated" => $namdate); - else - $attributes = array(); + } xml::add_element($doc, $author, "name", $owner["name"], $attributes); xml::add_element($doc, $author, "uri", app::get_baseurl().'/profile/'.$owner["nickname"], $attributes); @@ -491,20 +520,23 @@ class dfrn { $attributes = array("rel" => "photo", "type" => "image/jpeg", "media:width" => 175, "media:height" => 175, "href" => $owner['photo']); - if (!$public OR !$hidewall) + if (!$public OR !$hidewall) { $attributes["dfrn:updated"] = $picdate; + } xml::add_element($doc, $author, "link", "", $attributes); $attributes["rel"] = "avatar"; xml::add_element($doc, $author, "link", "", $attributes); - if ($hidewall) + if ($hidewall) { xml::add_element($doc, $author, "dfrn:hide", "true"); + } // The following fields will only be generated if the data isn't meant for a public feed - if ($public) + if ($public) { return $author; + } $birthday = feed_birthday($owner['uid'], $owner['timezone']); @@ -519,7 +551,7 @@ class dfrn { INNER JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `profile`.`is-default` AND NOT `user`.`hidewall` AND `user`.`uid` = %d", intval($owner['uid'])); - if ($r) { + if (dbm::is_result($r)) { $profile = $r[0]; xml::add_element($doc, $author, "poco:displayName", $profile["name"]); @@ -547,8 +579,9 @@ class dfrn { if (trim($profile["pub_keywords"]) != "") { $keywords = explode(",", $profile["pub_keywords"]); - foreach ($keywords AS $keyword) + foreach ($keywords AS $keyword) { xml::add_element($doc, $author, "poco:tags", trim($keyword)); + } } @@ -565,14 +598,17 @@ class dfrn { xml::add_element($doc, $element, "poco:formatted", formatted_location($profile)); - if (trim($profile["locality"]) != "") + if (trim($profile["locality"]) != "") { xml::add_element($doc, $element, "poco:locality", $profile["locality"]); + } - if (trim($profile["region"]) != "") + if (trim($profile["region"]) != "") { xml::add_element($doc, $element, "poco:region", $profile["region"]); + } - if (trim($profile["country-name"]) != "") + if (trim($profile["country-name"]) != "") { xml::add_element($doc, $element, "poco:country", $profile["country-name"]); + } $author->appendChild($element); } @@ -590,6 +626,7 @@ class dfrn { * @param array $items Item elements * * @return object XML author object + * @todo Add type-hints */ private static function add_entry_author($doc, $element, $contact_url, $item) { @@ -630,25 +667,32 @@ class dfrn { * @param string $activity activity value * * @return object XML activity object + * @todo Add type-hints */ private static function create_activity($doc, $element, $activity) { - if($activity) { + if ($activity) { $entry = $doc->createElement($element); $r = parse_xml_string($activity, false); - if(!$r) + if (!$r) { return false; - if($r->type) + } + if ($r->type) { xml::add_element($doc, $entry, "activity:object-type", $r->type); - if($r->id) + } + if ($r->id) { xml::add_element($doc, $entry, "id", $r->id); - if($r->title) + } + if ($r->title) { xml::add_element($doc, $entry, "title", $r->title); - if($r->link) { - if(substr($r->link,0,1) == '<') { - if(strstr($r->link,'&') && (! strstr($r->link,'&'))) + } + + if ($r->link) { + if (substr($r->link,0,1) == '<') { + if (strstr($r->link,'&') && (! strstr($r->link,'&'))) { $r->link = str_replace('&','&', $r->link); + } $r->link = preg_replace('/\/','',$r->link); @@ -657,8 +701,9 @@ class dfrn { if (is_object($data)) { foreach ($data->link AS $link) { $attributes = array(); - foreach ($link->attributes() AS $parameter => $value) + foreach ($link->attributes() AS $parameter => $value) { $attributes[$parameter] = $value; + } xml::add_element($doc, $entry, "link", "", $attributes); } } @@ -667,8 +712,9 @@ class dfrn { xml::add_element($doc, $entry, "link", "", $attributes); } } - if($r->content) + if ($r->content) { xml::add_element($doc, $entry, "content", bbcode($r->content), array("type" => "html")); + } return $entry; } @@ -684,23 +730,26 @@ class dfrn { * @param array $item Item element * * @return object XML attachment object + * @todo Add type-hints */ private static function get_attachment($doc, $root, $item) { $arr = explode('[/attach],',$item['attach']); - if(count($arr)) { - foreach($arr as $r) { + if (count($arr)) { + foreach ($arr as $r) { $matches = false; $cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches); - if($cnt) { + if ($cnt) { $attributes = array("rel" => "enclosure", "href" => $matches[1], "type" => $matches[3]); - if(intval($matches[2])) + if (intval($matches[2])) { $attributes["length"] = intval($matches[2]); + } - if(trim($matches[4]) != "") + if (trim($matches[4]) != "") { $attributes["title"] = trim($matches[4]); + } xml::add_element($doc, $root, "link", "", $attributes); } @@ -719,25 +768,28 @@ class dfrn { * @param int $cid Contact ID of the recipient * * @return object XML entry object + * @todo Add type-hints */ private static function entry($doc, $type, $item, $owner, $comment = false, $cid = 0) { $mentioned = array(); - if(!$item['parent']) + if (!$item['parent']) { return; + } - if($item['deleted']) { + if ($item['deleted']) { $attributes = array("ref" => $item['uri'], "when" => datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME)); return xml::create_element($doc, "at:deleted-entry", "", $attributes); } $entry = $doc->createElement("entry"); - if($item['allow_cid'] || $item['allow_gid'] || $item['deny_cid'] || $item['deny_gid']) + if ($item['allow_cid'] || $item['allow_gid'] || $item['deny_cid'] || $item['deny_gid']) { $body = fix_private_photos($item['body'],$owner['uid'],$item,$cid); - else + } else { $body = $item['body']; + } // Remove the abstract element. It is only locally important. $body = remove_abstract($body); @@ -745,8 +797,9 @@ class dfrn { if ($type == 'html') { $htmlbody = $body; - if ($item['title'] != "") + if ($item['title'] != "") { $htmlbody = "[b]".$item['title']."[/b]\n\n".$htmlbody; + } $htmlbody = bbcode($htmlbody, false, false, 7); } @@ -757,7 +810,7 @@ class dfrn { $dfrnowner = self::add_entry_author($doc, "dfrn:owner", $item["owner-link"], $item); $entry->appendChild($dfrnowner); - if(($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || (($item['thr-parent'] !== '') && ($item['thr-parent'] !== $item['uri']))) { + if (($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || (($item['thr-parent'] !== '') && ($item['thr-parent'] !== $item['uri']))) { $parent = q("SELECT `guid` FROM `item` WHERE `id` = %d", intval($item["parent"])); $parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']); $attributes = array("ref" => $parent_item, "type" => "text/html", @@ -785,78 +838,100 @@ class dfrn { // "comment-allow" is some old fashioned stuff for old Friendica versions. // It is included in the rewritten code for completeness - if ($comment) + if ($comment) { xml::add_element($doc, $entry, "dfrn:comment-allow", intval($item['last-child'])); + } - if($item['location']) + if ($item['location']) { xml::add_element($doc, $entry, "dfrn:location", $item['location']); + } - if($item['coord']) + if ($item['coord']) { xml::add_element($doc, $entry, "georss:point", $item['coord']); + } - if(($item['private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])) + if (($item['private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])) { xml::add_element($doc, $entry, "dfrn:private", (($item['private']) ? $item['private'] : 1)); + } - if($item['extid']) + if ($item['extid']) { xml::add_element($doc, $entry, "dfrn:extid", $item['extid']); + } - if($item['bookmark']) + if ($item['bookmark']) { xml::add_element($doc, $entry, "dfrn:bookmark", "true"); + } - if($item['app']) + if ($item['app']) { xml::add_element($doc, $entry, "statusnet:notice_info", "", array("local_id" => $item['id'], "source" => $item['app'])); + } xml::add_element($doc, $entry, "dfrn:diaspora_guid", $item["guid"]); // The signed text contains the content in Markdown, the sender handle and the signatur for the content // It is needed for relayed comments to Diaspora. - if($item['signed_text']) { + if ($item['signed_text']) { $sign = base64_encode(json_encode(array('signed_text' => $item['signed_text'],'signature' => $item['signature'],'signer' => $item['signer']))); xml::add_element($doc, $entry, "dfrn:diaspora_signature", $sign); } xml::add_element($doc, $entry, "activity:verb", construct_verb($item)); - if ($item['object-type'] != "") + if ($item['object-type'] != "") { xml::add_element($doc, $entry, "activity:object-type", $item['object-type']); - elseif ($item['id'] == $item['parent']) + } elseif ($item['id'] == $item['parent']) { xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE); - else + } else { xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_COMMENT); + } $actobj = self::create_activity($doc, "activity:object", $item['object']); - if ($actobj) + if ($actobj) { $entry->appendChild($actobj); + } $actarg = self::create_activity($doc, "activity:target", $item['target']); - if ($actarg) + if ($actarg) { $entry->appendChild($actarg); + } $tags = item_getfeedtags($item); - if(count($tags)) { - foreach($tags as $t) - if (($type != 'html') OR ($t[0] != "@")) + if (count($tags)) { + foreach ($tags as $t) { + if (($type != 'html') OR ($t[0] != "@")) { xml::add_element($doc, $entry, "category", "", array("scheme" => "X-DFRN:".$t[0].":".$t[1], "term" => $t[2])); + } + } } - if(count($tags)) - foreach($tags as $t) - if ($t[0] == "@") + if (count($tags)) { + foreach ($tags as $t) { + if ($t[0] == "@") { $mentioned[$t[1]] = $t[1]; + } + } + } foreach ($mentioned AS $mention) { $r = q("SELECT `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s'", intval($owner["uid"]), dbesc(normalise_link($mention))); - if ($r[0]["forum"] OR $r[0]["prv"]) + + if (!dbm::is_result($r)) { + /// @TODO Maybe some logging? + killme(); + } + + if ($r[0]["forum"] OR $r[0]["prv"]) { xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned", "ostatus:object-type" => ACTIVITY_OBJ_GROUP, "href" => $mention)); - else + } else { xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned", "ostatus:object-type" => ACTIVITY_OBJ_PERSON, "href" => $mention)); + } } self::get_attachment($doc, $entry, $item); @@ -873,6 +948,7 @@ class dfrn { * @param bool $dissolve (to be documented) * * @return int Deliver status. -1 means an error. + * @todo Add array type-hint for $owner, $contact */ public static function deliver($owner,$contact,$atom, $dissolve = false) { @@ -880,16 +956,20 @@ class dfrn { $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']); - if($contact['duplex'] && $contact['dfrn-id']) + if ($contact['duplex'] && $contact['dfrn-id']) { $idtosend = '0:' . $orig_id; - if($contact['duplex'] && $contact['issued-id']) + } + if ($contact['duplex'] && $contact['issued-id']) { $idtosend = '1:' . $orig_id; - + } $rino = get_config('system','rino_encrypt'); $rino = intval($rino); + // use RINO1 if mcrypt isn't installed and RINO2 was selected - if ($rino==2 and !function_exists('mcrypt_create_iv')) $rino=1; + if ($rino == 2 and !function_exists('mcrypt_create_iv')) { + $rino = 1; + } logger("Local rino version: ". $rino, LOGGER_DEBUG); @@ -928,10 +1008,11 @@ class dfrn { logger('dfrn_deliver: ' . $xml, LOGGER_DATA); - if(! $xml) + if (! $xml) { return 3; + } - if(strpos($xml,'status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id))) + if ((intval($res->status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id))) { return (($res->status) ? $res->status : 3); + } $postvars = array(); $sent_dfrn_id = hex2bin((string) $res->dfrn_id); @@ -952,13 +1034,14 @@ class dfrn { logger("Remote rino version: ".$rino_remote_version." for ".$contact["url"], LOGGER_DEBUG); - if($owner['page-flags'] == PAGE_PRVGROUP) + if ($owner['page-flags'] == PAGE_PRVGROUP) { $page = 2; + } $final_dfrn_id = ''; - if($perm) { - if((($perm == 'rw') && (! intval($contact['writable']))) + if ($perm) { + if ((($perm == 'rw') && (! intval($contact['writable']))) || (($perm == 'r') && (intval($contact['writable'])))) { q("update contact set writable = %d where id = %d", intval(($perm == 'rw') ? 1 : 0), @@ -968,7 +1051,7 @@ class dfrn { } } - if(($contact['duplex'] && strlen($contact['pubkey'])) + if (($contact['duplex'] && strlen($contact['pubkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey'])) || ($contact['rel'] == CONTACT_IS_SHARING && strlen($contact['pubkey']))) { openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']); @@ -980,10 +1063,11 @@ class dfrn { $final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.')); - if(strpos($final_dfrn_id,':') == 1) + if (strpos($final_dfrn_id,':') == 1) { $final_dfrn_id = substr($final_dfrn_id,2); + } - if($final_dfrn_id != $orig_id) { + if ($final_dfrn_id != $orig_id) { logger('dfrn_deliver: wrong dfrn_id.'); // did not decode properly - cannot trust this site return 3; @@ -991,11 +1075,12 @@ class dfrn { $postvars['dfrn_id'] = $idtosend; $postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION; - if($dissolve) + if ($dissolve) { $postvars['dissolve'] = '1'; + } - if((($contact['rel']) && ($contact['rel'] != CONTACT_IS_SHARING) && (! $contact['blocked'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) { + if ((($contact['rel']) && ($contact['rel'] != CONTACT_IS_SHARING) && (! $contact['blocked'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) { $postvars['data'] = $atom; $postvars['perm'] = 'rw'; } else { @@ -1005,11 +1090,12 @@ class dfrn { $postvars['ssl_policy'] = $ssl_policy; - if($page) + if ($page) { $postvars['page'] = $page; + } - if($rino>0 && $rino_remote_version>0 && (! $dissolve)) { + if ($rino > 0 && $rino_remote_version > 0 && (! $dissolve)) { logger('rino version: '. $rino_remote_version); switch($rino_remote_version) { @@ -1047,23 +1133,25 @@ class dfrn { $postvars['rino'] = $rino_remote_version; $postvars['data'] = bin2hex($data); - #logger('rino: sent key = ' . $key, LOGGER_DEBUG); + //logger('rino: sent key = ' . $key, LOGGER_DEBUG); - if($dfrn_version >= 2.1) { - if(($contact['duplex'] && strlen($contact['pubkey'])) + if ($dfrn_version >= 2.1) { + if (($contact['duplex'] && strlen($contact['pubkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey'])) - || ($contact['rel'] == CONTACT_IS_SHARING && strlen($contact['pubkey']))) + || ($contact['rel'] == CONTACT_IS_SHARING && strlen($contact['pubkey']))) { openssl_public_encrypt($key,$postvars['key'],$contact['pubkey']); - else + } else { openssl_private_encrypt($key,$postvars['key'],$contact['prvkey']); + } } else { - if(($contact['duplex'] && strlen($contact['prvkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) + if (($contact['duplex'] && strlen($contact['prvkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) { openssl_private_encrypt($key,$postvars['key'],$contact['prvkey']); - else + } else { openssl_public_encrypt($key,$postvars['key'],$contact['pubkey']); + } } @@ -1088,12 +1176,13 @@ class dfrn { return -10; } - if(strpos($xml,' here? Maybe DateTime (which allows such comparison again) is much safer/correcter if ($contact['term-date'] > NULL_DATE) { logger("dfrn_deliver: $url back from the dead - removing mark for death"); require_once('include/Contact.php'); @@ -1110,7 +1199,7 @@ class dfrn { * * @param array $contact Contact record * @param string $birthday Birthday of the contact - * + * @todo Add array type-hint for $contact */ private static function birthday_event($contact, $birthday) { @@ -1154,6 +1243,7 @@ class dfrn { * @param bool $onlyfetch Should the data only be fetched or should it update the contact record as well * * @return Returns an array with relevant data of the author + * @todo Find good type-hints for all parameter */ private static function fetchauthor($xpath, $context, $importer, $element, $onlyfetch, $xml = "") { @@ -1165,13 +1255,15 @@ class dfrn { `name`, `nick`, `about`, `location`, `keywords`, `xmpp`, `bdyear`, `bd`, `hidden`, `contact-type` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` != '%s'", intval($importer["uid"]), dbesc(normalise_link($author["link"])), dbesc(NETWORK_STATUSNET)); - if ($r) { + + if (dbm::is_result($r)) { $contact = $r[0]; $author["contact-id"] = $r[0]["id"]; $author["network"] = $r[0]["network"]; } else { - if (!$onlyfetch) + if (!$onlyfetch) { logger("Contact ".$author["link"]." wasn't found for user ".$importer["uid"]." XML: ".$xml, LOGGER_DEBUG); + } $author["contact-id"] = $importer["id"]; $author["network"] = $importer["network"]; @@ -1182,66 +1274,81 @@ class dfrn { $avatarlist = array(); /// @todo check if "avatar" or "photo" would be the best field in the specification $avatars = $xpath->query($element."/atom:link[@rel='avatar']", $context); - foreach($avatars AS $avatar) { + foreach ($avatars AS $avatar) { $href = ""; $width = 0; - foreach($avatar->attributes AS $attributes) { - if ($attributes->name == "href") + foreach ($avatar->attributes AS $attributes) { + /// @TODO Rewrite these similar if () to one switch + if ($attributes->name == "href") { $href = $attributes->textContent; - if ($attributes->name == "width") + } + if ($attributes->name == "width") { $width = $attributes->textContent; - if ($attributes->name == "updated") + } + if ($attributes->name == "updated") { $contact["avatar-date"] = $attributes->textContent; + } } - if (($width > 0) AND ($href != "")) + if (($width > 0) AND ($href != "")) { $avatarlist[$width] = $href; + } } if (count($avatarlist) > 0) { krsort($avatarlist); $author["avatar"] = current($avatarlist); } - if ($r AND !$onlyfetch) { + if (dbm::is_result($r) AND !$onlyfetch) { logger("Check if contact details for contact ".$r[0]["id"]." (".$r[0]["nick"].") have to be updated.", LOGGER_DEBUG); $poco = array("url" => $contact["url"]); // When was the last change to name or uri? $name_element = $xpath->query($element."/atom:name", $context)->item(0); - foreach($name_element->attributes AS $attributes) - if ($attributes->name == "updated") + foreach ($name_element->attributes AS $attributes) { + if ($attributes->name == "updated") { $poco["name-date"] = $attributes->textContent; + } + } $link_element = $xpath->query($element."/atom:link", $context)->item(0); - foreach($link_element->attributes AS $attributes) - if ($attributes->name == "updated") + foreach ($link_element->attributes AS $attributes) { + if ($attributes->name == "updated") { $poco["uri-date"] = $attributes->textContent; + } + } // Update contact data $value = $xpath->evaluate($element."/dfrn:handle/text()", $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $poco["addr"] = $value; + } $value = $xpath->evaluate($element."/poco:displayName/text()", $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $poco["name"] = $value; + } $value = $xpath->evaluate($element."/poco:preferredUsername/text()", $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $poco["nick"] = $value; + } $value = $xpath->evaluate($element."/poco:note/text()", $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $poco["about"] = $value; + } $value = $xpath->evaluate($element."/poco:address/poco:formatted/text()", $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $poco["location"] = $value; + } /// @todo Only search for elements with "poco:type" = "xmpp" $value = $xpath->evaluate($element."/poco:ims/poco:value/text()", $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $poco["xmpp"] = $value; + } /// @todo Add support for the following fields that we don't support by now in the contact table: /// - poco:utcOffset @@ -1257,17 +1364,20 @@ class dfrn { // If the contact isn't searchable then set the contact to "hidden". // Problem: This can be manually overridden by the user. - if ($hide) + if ($hide) { $contact["hidden"] = true; + } // Save the keywords into the contact table $tags = array(); $tagelements = $xpath->evaluate($element."/poco:tags/text()", $context); - foreach($tagelements AS $tag) + foreach ($tagelements AS $tag) { $tags[$tag->nodeValue] = $tag->nodeValue; + } - if (count($tags)) + if (count($tags)) { $poco["keywords"] = implode(", ", $tags); + } // "dfrn:birthday" contains the birthday converted to UTC $old_bdyear = $contact["bdyear"]; @@ -1297,13 +1407,15 @@ class dfrn { $contact = array_merge($contact, $poco); - if ($old_bdyear != $contact["bdyear"]) + if ($old_bdyear != $contact["bdyear"]) { self::birthday_event($contact, $birthday); + } // Get all field names $fields = array(); - foreach ($r[0] AS $field => $data) + foreach ($r[0] AS $field => $data) { $fields[$field] = $data; + } unset($fields["id"]); unset($fields["uid"]); @@ -1314,17 +1426,19 @@ class dfrn { // Update check for this field has to be done differently $datefields = array("name-date", "uri-date"); - foreach ($datefields AS $field) + foreach ($datefields AS $field) { if (strtotime($contact[$field]) > strtotime($r[0][$field])) { logger("Difference for contact ".$contact["id"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG); $update = true; } + } - foreach ($fields AS $field => $data) + foreach ($fields AS $field => $data) { if ($contact[$field] != $r[0][$field]) { logger("Difference for contact ".$contact["id"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG); $update = true; } + } if ($update) { logger("Update contact data for contact ".$contact["id"]." (".$contact["nick"].")", LOGGER_DEBUG); @@ -1366,10 +1480,12 @@ class dfrn { * @param text $element element name * * @return string XML string + * @todo Find good type-hints for all parameter */ private static function transform_activity($xpath, $activity, $element) { - if (!is_object($activity)) + if (!is_object($activity)) { return ""; + } $obj_doc = new DOMDocument("1.0", "utf-8"); $obj_doc->formatOutput = true; @@ -1380,21 +1496,26 @@ class dfrn { xml::add_element($obj_doc, $obj_element, "type", $activity_type); $id = $xpath->query("atom:id", $activity)->item(0); - if (is_object($id)) + if (is_object($id)) { $obj_element->appendChild($obj_doc->importNode($id, true)); + } $title = $xpath->query("atom:title", $activity)->item(0); - if (is_object($title)) + if (is_object($title)) { $obj_element->appendChild($obj_doc->importNode($title, true)); + } $links = $xpath->query("atom:link", $activity); - if (is_object($links)) - foreach ($links AS $link) + if (is_object($links)) { + foreach ($links AS $link) { $obj_element->appendChild($obj_doc->importNode($link, true)); + } + } $content = $xpath->query("atom:content", $activity)->item(0); - if (is_object($content)) + if (is_object($content)) { $obj_element->appendChild($obj_doc->importNode($content, true)); + } $obj_doc->appendChild($obj_element); @@ -1411,11 +1532,13 @@ class dfrn { * @param object $xpath XPath object * @param object $mail mail elements * @param array $importer Record of the importer user mixed with contact of the content + * @todo Find good type-hints for all parameter */ private static function process_mail($xpath, $mail, $importer) { logger("Processing mails"); + /// @TODO Rewrite this to one statement $msg = array(); $msg["uid"] = $importer["importer_uid"]; $msg["from-name"] = $xpath->query("dfrn:sender/dfrn:name/text()", $mail)->item(0)->nodeValue; @@ -1435,7 +1558,7 @@ class dfrn { $r = dbq("INSERT INTO `mail` (`".implode("`, `", array_keys($msg))."`) VALUES (".implode(", ", array_values($msg)).")"); // send notifications. - + /// @TODO Arange this mess $notif_params = array( "type" => NOTIFY_MAIL, "notify_flags" => $importer["notify-flags"], @@ -1462,12 +1585,14 @@ class dfrn { * @param object $xpath XPath object * @param object $suggestion suggestion elements * @param array $importer Record of the importer user mixed with contact of the content + * @todo Find good type-hints for all parameter */ private static function process_suggestion($xpath, $suggestion, $importer) { $a = get_app(); logger("Processing suggestions"); + /// @TODO Rewrite this to one statement $suggest = array(); $suggest["uid"] = $importer["importer_uid"]; $suggest["cid"] = $importer["id"]; @@ -1484,8 +1609,11 @@ class dfrn { dbesc(normalise_link($suggest["url"])), intval($suggest["uid"]) ); - if (dbm::is_result($r)) + + if (dbm::is_result($r)) { + // Has already friend matching description return false; + } // Do we already have an fcontact record for this person? @@ -1503,10 +1631,12 @@ class dfrn { intval($suggest["uid"]), intval($fid) ); - if (dbm::is_result($r)) + /// @TODO Really abort on valid result??? Maybe missed ! here? + if (dbm::is_result($r)) { return false; + } } - if(!$fid) + if (!$fid) $r = q("INSERT INTO `fcontact` (`name`,`url`,`photo`,`request`) VALUES ('%s', '%s', '%s', '%s')", dbesc($suggest["name"]), dbesc($suggest["url"]), @@ -1518,11 +1648,12 @@ class dfrn { dbesc($suggest["name"]), dbesc($suggest["request"]) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $fid = $r[0]["id"]; - else + } else { // database record did not get created. Quietly give up. - return false; + killme(); + } $hash = random_string(); @@ -1564,11 +1695,13 @@ class dfrn { * @param object $xpath XPath object * @param object $relocation relocation elements * @param array $importer Record of the importer user mixed with contact of the content + * @todo Find good type-hints for all parameter */ private static function process_relocation($xpath, $relocation, $importer) { logger("Processing relocations"); + /// @TODO Rewrite this to one statement $relocate = array(); $relocate["uid"] = $importer["importer_uid"]; $relocate["cid"] = $importer["id"]; @@ -1585,18 +1718,23 @@ class dfrn { $relocate["poll"] = $xpath->query("dfrn:poll/text()", $relocation)->item(0)->nodeValue; $relocate["sitepubkey"] = $xpath->query("dfrn:sitepubkey/text()", $relocation)->item(0)->nodeValue; - if (($relocate["avatar"] == "") AND ($relocate["photo"] != "")) + if (($relocate["avatar"] == "") AND ($relocate["photo"] != "")) { $relocate["avatar"] = $relocate["photo"]; + } - if ($relocate["addr"] == "") + if ($relocate["addr"] == "") { $relocate["addr"] = preg_replace("=(https?://)(.*)/profile/(.*)=ism", "$3@$2", $relocate["url"]); + } // update contact $r = q("SELECT `photo`, `url` FROM `contact` WHERE `id` = %d AND `uid` = %d;", intval($importer["id"]), intval($importer["importer_uid"])); - if (!$r) - return false; + + if (!dbm::is_result($r)) { + /// @todo Don't die quietly + killme(); + } $old = $r[0]; @@ -1652,8 +1790,9 @@ class dfrn { update_contact_avatar($relocate["avatar"], $importer["importer_uid"], $importer["id"], true); - if ($x === false) + if ($x === false) { return false; + } // update items /// @todo This is an extreme performance killer @@ -1668,13 +1807,15 @@ class dfrn { $n, dbesc($f[0]), intval($importer["importer_uid"])); - if ($r) { + if (dbm::is_result($r)) { $x = q("UPDATE `item` SET `%s` = '%s' WHERE `%s` = '%s' AND `uid` = %d", $n, dbesc($f[1]), $n, dbesc($f[0]), intval($importer["importer_uid"])); - if ($x === false) - return false; + + if ($x === false) { + return false; + } } } @@ -1700,7 +1841,7 @@ class dfrn { if (edited_timestamp_is_newer($current, $item)) { // do not accept (ignore) an earlier edit than one we currently have. - if(datetime_convert("UTC","UTC",$item["edited"]) < $current["edited"]) + if (datetime_convert("UTC","UTC",$item["edited"]) < $current["edited"]) return(false); $r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s', `changed` = '%s' WHERE `uri` = '%s' AND `uid` = %d", @@ -1717,12 +1858,13 @@ class dfrn { $changed = true; - if ($entrytype == DFRN_REPLY_RC) + if ($entrytype == DFRN_REPLY_RC) { proc_run(PRIORITY_HIGH, "include/notifier.php","comment-import", $current["id"]); + } } // update last-child if it changes - if($item["last-child"] AND ($item["last-child"] != $current["last-child"])) { + if ($item["last-child"] AND ($item["last-child"] != $current["last-child"])) { $r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d", dbesc(datetime_convert()), dbesc($item["parent-uri"]), @@ -1750,12 +1892,13 @@ class dfrn { if ($item["parent-uri"] != $item["uri"]) { $community = false; - if($importer["page-flags"] == PAGE_COMMUNITY || $importer["page-flags"] == PAGE_PRVGROUP) { + if ($importer["page-flags"] == PAGE_COMMUNITY || $importer["page-flags"] == PAGE_PRVGROUP) { $sql_extra = ""; $community = true; logger("possible community action"); - } else + } else { $sql_extra = " AND `contact`.`self` AND `item`.`wall` "; + } // was the top-level post for this action written by somebody on this site? // Specifically, the recipient? @@ -1779,8 +1922,9 @@ class dfrn { dbesc($r[0]["parent-uri"]), intval($importer["importer_uid"]) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $is_a_remote_action = true; + } } // Does this have the characteristics of a community or private group action? @@ -1788,20 +1932,22 @@ class dfrn { // valid community action. Also forum_mode makes it valid for sure. // If neither, it's not. - if($is_a_remote_action && $community) { - if((!$r[0]["forum_mode"]) && (!$r[0]["wall"])) { + if ($is_a_remote_action && $community) { + if ((!$r[0]["forum_mode"]) && (!$r[0]["wall"])) { $is_a_remote_action = false; logger("not a community action"); } } - if ($is_a_remote_action) + if ($is_a_remote_action) { return DFRN_REPLY_RC; - else + } else { return DFRN_REPLY; + } - } else + } else { return DFRN_TOP_LEVEL; + } } @@ -1814,14 +1960,15 @@ class dfrn { */ private static function do_poke($item, $importer, $posted_id) { $verb = urldecode(substr($item["verb"],strpos($item["verb"], "#")+1)); - if(!$verb) + if (!$verb) { return; + } $xo = parse_xml_string($item["object"],false); - if(($xo->type == ACTIVITY_OBJ_PERSON) && ($xo->id)) { + if (($xo->type == ACTIVITY_OBJ_PERSON) && ($xo->id)) { // somebody was poked/prodded. Was it me? - foreach($xo->link as $l) { + foreach ($xo->link as $l) { $atts = $l->attributes(); switch($atts["rel"]) { case "alternate": @@ -1832,7 +1979,7 @@ class dfrn { } } - if($Blink && link_compare($Blink,App::get_baseurl()."/profile/".$importer["nickname"])) { + if ($Blink && link_compare($Blink,App::get_baseurl()."/profile/".$importer["nickname"])) { // send a notification notification(array( @@ -1880,28 +2027,28 @@ class dfrn { // Big question: Do we need these functions? They were part of the "consume_feed" function. // This function once was responsible for DFRN and OStatus. - if(activity_match($item["verb"],ACTIVITY_FOLLOW)) { + if (activity_match($item["verb"],ACTIVITY_FOLLOW)) { logger("New follower"); new_follower($importer, $contact, $item, $nickname); return false; } - if(activity_match($item["verb"],ACTIVITY_UNFOLLOW)) { + if (activity_match($item["verb"],ACTIVITY_UNFOLLOW)) { logger("Lost follower"); lose_follower($importer, $contact, $item); return false; } - if(activity_match($item["verb"],ACTIVITY_REQ_FRIEND)) { + if (activity_match($item["verb"],ACTIVITY_REQ_FRIEND)) { logger("New friend request"); new_follower($importer, $contact, $item, $nickname, true); return false; } - if(activity_match($item["verb"],ACTIVITY_UNFRIEND)) { + if (activity_match($item["verb"],ACTIVITY_UNFRIEND)) { logger("Lost sharer"); lose_sharer($importer, $contact, $item); return false; } } else { - if(($item["verb"] == ACTIVITY_LIKE) + if (($item["verb"] == ACTIVITY_LIKE) || ($item["verb"] == ACTIVITY_DISLIKE) || ($item["verb"] == ACTIVITY_ATTEND) || ($item["verb"] == ACTIVITY_ATTENDNO) @@ -1917,8 +2064,9 @@ class dfrn { dbesc($item["verb"]), dbesc($item["parent-uri"]) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { return false; + } $r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `author-link` = '%s' AND `verb` = '%s' AND `thr-parent` = '%s' AND NOT `deleted` LIMIT 1", intval($item["uid"]), @@ -1926,28 +2074,31 @@ class dfrn { dbesc($item["verb"]), dbesc($item["parent-uri"]) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { return false; - } else + } + } else { $is_like = false; + } - if(($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) { + if (($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) { $xo = parse_xml_string($item["object"],false); $xt = parse_xml_string($item["target"],false); - if($xt->type == ACTIVITY_OBJ_NOTE) { + if ($xt->type == ACTIVITY_OBJ_NOTE) { $r = q("SELECT `id`, `tag` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($xt->id), intval($importer["importer_uid"]) ); - if (!dbm::is_result($r)) - return false; + if (!dbm::is_result($r)) { + killme(); + } // extract tag, if not duplicate, add to parent item - if($xo->content) { - if(!(stristr($r[0]["tag"],trim($xo->content)))) { + if ($xo->content) { + if (!(stristr($r[0]["tag"],trim($xo->content)))) { q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d", dbesc($r[0]["tag"] . (strlen($r[0]["tag"]) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'), intval($r[0]["id"]) @@ -1966,6 +2117,7 @@ class dfrn { * * @param object $links link elements * @param array $item the item record + * @todo Add type-hints */ private static function parse_links($links, &$item) { $rel = ""; @@ -1974,17 +2126,23 @@ class dfrn { $length = "0"; $title = ""; foreach ($links AS $link) { - foreach($link->attributes AS $attributes) { - if ($attributes->name == "href") + foreach ($link->attributes AS $attributes) { + /// @TODO Rewrite these repeated (same) if () statements to a switch() + if ($attributes->name == "href") { $href = $attributes->textContent; - if ($attributes->name == "rel") + } + if ($attributes->name == "rel") { $rel = $attributes->textContent; - if ($attributes->name == "type") + } + if ($attributes->name == "type") { $type = $attributes->textContent; - if ($attributes->name == "length") + } + if ($attributes->name == "length") { $length = $attributes->textContent; - if ($attributes->name == "title") + } + if ($attributes->name == "title") { $title = $attributes->textContent; + } } if (($rel != "") AND ($href != "")) switch($rel) { @@ -1993,8 +2151,9 @@ class dfrn { break; case "enclosure": $enclosure = $href; - if(strlen($item["attach"])) + if (strlen($item["attach"])) { $item["attach"] .= ","; + } $item["attach"] .= '[attach]href="'.$href.'" length="'.$length.'" type="'.$type.'" title="'.$title.'"[/attach]'; break; @@ -2009,6 +2168,7 @@ class dfrn { * @param object $xpath XPath object * @param object $entry entry elements * @param array $importer Record of the importer user mixed with contact of the content + * @todo Add type-hints */ private static function process_entry($header, $xpath, $entry, $importer) { @@ -2059,7 +2219,7 @@ class dfrn { $item["body"] = limit_body_size($item["body"]); /// @todo Do we really need this check for HTML elements? (It was copied from the old function) - if((strpos($item['body'],'<') !== false) && (strpos($item['body'],'>') !== false)) { + if ((strpos($item['body'],'<') !== false) && (strpos($item['body'],'>') !== false)) { $item['body'] = reltoabs($item['body'],$base_url); @@ -2088,21 +2248,24 @@ class dfrn { $item["location"] = $xpath->query("dfrn:location/text()", $entry)->item(0)->nodeValue; $georsspoint = $xpath->query("georss:point", $entry); - if ($georsspoint) + if ($georsspoint) { $item["coord"] = $georsspoint->item(0)->nodeValue; + } $item["private"] = $xpath->query("dfrn:private/text()", $entry)->item(0)->nodeValue; $item["extid"] = $xpath->query("dfrn:extid/text()", $entry)->item(0)->nodeValue; - if ($xpath->query("dfrn:bookmark/text()", $entry)->item(0)->nodeValue == "true") + if ($xpath->query("dfrn:bookmark/text()", $entry)->item(0)->nodeValue == "true") { $item["bookmark"] = true; + } $notice_info = $xpath->query("statusnet:notice_info", $entry); if ($notice_info AND ($notice_info->length > 0)) { - foreach($notice_info->item(0)->attributes AS $attributes) { - if ($attributes->name == "source") + foreach ($notice_info->item(0)->attributes AS $attributes) { + if ($attributes->name == "source") { $item["app"] = strip_tags($attributes->textContent); + } } } @@ -2110,21 +2273,24 @@ class dfrn { // We store the data from "dfrn:diaspora_signature" in a different table, this is done in "item_store" $dsprsig = unxmlify($xpath->query("dfrn:diaspora_signature/text()", $entry)->item(0)->nodeValue); - if ($dsprsig != "") + if ($dsprsig != "") { $item["dsprsig"] = $dsprsig; + } $item["verb"] = $xpath->query("activity:verb/text()", $entry)->item(0)->nodeValue; - if ($xpath->query("activity:object-type/text()", $entry)->item(0)->nodeValue != "") + if ($xpath->query("activity:object-type/text()", $entry)->item(0)->nodeValue != "") { $item["object-type"] = $xpath->query("activity:object-type/text()", $entry)->item(0)->nodeValue; + } $object = $xpath->query("activity:object", $entry)->item(0); $item["object"] = self::transform_activity($xpath, $object, "object"); if (trim($item["object"]) != "") { $r = parse_xml_string($item["object"], false); - if (isset($r->type)) + if (isset($r->type)) { $item["object-type"] = $r->type; + } } $target = $xpath->query("activity:target", $entry)->item(0); @@ -2135,12 +2301,14 @@ class dfrn { foreach ($categories AS $category) { $term = ""; $scheme = ""; - foreach($category->attributes AS $attributes) { - if ($attributes->name == "term") + foreach ($category->attributes AS $attributes) { + if ($attributes->name == "term") { $term = $attributes->textContent; + } - if ($attributes->name == "scheme") + if ($attributes->name == "scheme") { $scheme = $attributes->textContent; + } } if (($term != "") AND ($scheme != "")) { @@ -2149,8 +2317,9 @@ class dfrn { $termhash = array_shift($parts); $termurl = implode(":", $parts); - if(strlen($item["tag"])) + if (strlen($item["tag"])) { $item["tag"] .= ","; + } $item["tag"] .= $termhash."[url=".$termurl."]".$term."[/url]"; } @@ -2161,43 +2330,52 @@ class dfrn { $enclosure = ""; $links = $xpath->query("atom:link", $entry); - if ($links) + if ($links) { self::parse_links($links, $item); + } // Is it a reply or a top level posting? $item["parent-uri"] = $item["uri"]; $inreplyto = $xpath->query("thr:in-reply-to", $entry); - if (is_object($inreplyto->item(0))) - foreach($inreplyto->item(0)->attributes AS $attributes) - if ($attributes->name == "ref") + if (is_object($inreplyto->item(0))) { + foreach ($inreplyto->item(0)->attributes AS $attributes) { + if ($attributes->name == "ref") { $item["parent-uri"] = $attributes->textContent; + } + } + } // Get the type of the item (Top level post, reply or remote reply) $entrytype = self::get_entry_type($importer, $item); // Now assign the rest of the values that depend on the type of the message if (in_array($entrytype, array(DFRN_REPLY, DFRN_REPLY_RC))) { - if (!isset($item["object-type"])) + if (!isset($item["object-type"])) { $item["object-type"] = ACTIVITY_OBJ_COMMENT; + } - if ($item["contact-id"] != $owner["contact-id"]) + if ($item["contact-id"] != $owner["contact-id"]) { $item["contact-id"] = $owner["contact-id"]; + } - if (($item["network"] != $owner["network"]) AND ($owner["network"] != "")) + if (($item["network"] != $owner["network"]) AND ($owner["network"] != "")) { $item["network"] = $owner["network"]; + } - if ($item["contact-id"] != $author["contact-id"]) + if ($item["contact-id"] != $author["contact-id"]) { $item["contact-id"] = $author["contact-id"]; + } - if (($item["network"] != $author["network"]) AND ($author["network"] != "")) + if (($item["network"] != $author["network"]) AND ($author["network"] != "")) { $item["network"] = $author["network"]; + } // This code was taken from the old DFRN code // When activated, forums don't work. // And: Why should we disallow commenting by followers? // the behaviour is now similar to the Diaspora part. - //if($importer["rel"] == CONTACT_IS_FOLLOWER) { + //if ($importer["rel"] == CONTACT_IS_FOLLOWER) { // logger("Contact ".$importer["id"]." is only follower. Quitting", LOGGER_DEBUG); // return; //} @@ -2207,14 +2385,15 @@ class dfrn { $item["type"] = "remote-comment"; $item["wall"] = 1; } elseif ($entrytype == DFRN_TOP_LEVEL) { - if (!isset($item["object-type"])) + if (!isset($item["object-type"])) { $item["object-type"] = ACTIVITY_OBJ_NOTE; + } // Is it an event? if ($item["object-type"] == ACTIVITY_OBJ_EVENT) { logger("Item ".$item["uri"]." seems to contain an event.", LOGGER_DEBUG); $ev = bbtoevent($item["body"]); - if((x($ev, "desc") || x($ev, "summary")) && x($ev, "start")) { + if ((x($ev, "desc") || x($ev, "summary")) && x($ev, "start")) { logger("Event in item ".$item["uri"]." was found.", LOGGER_DEBUG); $ev["cid"] = $importer["id"]; $ev["uid"] = $importer["uid"]; @@ -2227,8 +2406,9 @@ class dfrn { dbesc($item["uri"]), intval($importer["uid"]) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $ev["id"] = $r[0]["id"]; + } $event_id = event_store($ev); logger("Event ".$event_id." was stored", LOGGER_DEBUG); @@ -2246,8 +2426,9 @@ class dfrn { if (dbm::is_result($current)) { if (self::update_content($r[0], $item, $importer, $entrytype)) logger("Item ".$item["uri"]." was updated.", LOGGER_DEBUG); - else + } else { logger("Item ".$item["uri"]." already existed.", LOGGER_DEBUG); + } return; } @@ -2255,7 +2436,7 @@ class dfrn { $posted_id = item_store($item); $parent = 0; - if($posted_id) { + if ($posted_id) { logger("Reply from contact ".$item["contact-id"]." was stored with id ".$posted_id, LOGGER_DEBUG); @@ -2270,7 +2451,7 @@ class dfrn { $parent_uri = $r[0]["parent-uri"]; } - if(!$is_like) { + if (!$is_like) { $r1 = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `uid` = %d AND `parent` = %d", dbesc(datetime_convert()), intval($importer["importer_uid"]), @@ -2284,7 +2465,7 @@ class dfrn { ); } - if($posted_id AND $parent AND ($entrytype == DFRN_REPLY_RC)) { + if ($posted_id AND $parent AND ($entrytype == DFRN_REPLY_RC)) { logger("Notifying followers about comment ".$posted_id, LOGGER_DEBUG); proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $posted_id); } @@ -2292,7 +2473,7 @@ class dfrn { return true; } } else { // $entrytype == DFRN_TOP_LEVEL - if(!link_compare($item["owner-link"],$importer["url"])) { + if (!link_compare($item["owner-link"],$importer["url"])) { // The item owner info is not our contact. It's OK and is to be expected if this is a tgroup delivery, // but otherwise there's a possible data mixup on the sender's system. // the tgroup delivery code called from item_store will correct it if it's a forum, @@ -2303,7 +2484,7 @@ class dfrn { $item["owner-avatar"] = $importer["thumb"]; } - if(($importer["rel"] == CONTACT_IS_FOLLOWER) && (!tgroup_check($importer["importer_uid"], $item))) { + if (($importer["rel"] == CONTACT_IS_FOLLOWER) && (!tgroup_check($importer["importer_uid"], $item))) { logger("Contact ".$importer["id"]." is only follower and tgroup check was negative.", LOGGER_DEBUG); return; } @@ -2316,7 +2497,7 @@ class dfrn { logger("Item was stored with id ".$posted_id, LOGGER_DEBUG); - if(stristr($item["verb"],ACTIVITY_POKE)) + if (stristr($item["verb"],ACTIVITY_POKE)) self::do_poke($item, $importer, $posted_id); } } @@ -2332,19 +2513,23 @@ class dfrn { logger("Processing deletions"); - foreach($deletion->attributes AS $attributes) { - if ($attributes->name == "ref") + foreach ($deletion->attributes AS $attributes) { + if ($attributes->name == "ref") { $uri = $attributes->textContent; - if ($attributes->name == "when") + } + if ($attributes->name == "when") { $when = $attributes->textContent; + } } - if ($when) + if ($when) { $when = datetime_convert("UTC", "UTC", $when, "Y-m-d H:i:s"); - else + } else { $when = datetime_convert("UTC", "UTC", "now", "Y-m-d H:i:s"); + } - if (!$uri OR !$importer["id"]) + if (!$uri OR !$importer["id"]) { return false; + } /// @todo Only select the used fields $r = q("SELECT `item`.*, `contact`.`self` FROM `item` INNER JOIN `contact` on `item`.`contact-id` = `contact`.`id` @@ -2362,22 +2547,23 @@ class dfrn { $entrytype = self::get_entry_type($importer, $item); - if(!$item["deleted"]) + if (!$item["deleted"]) { logger('deleting item '.$item["id"].' uri='.$uri, LOGGER_DEBUG); - else + } else { return; + } - if($item["object-type"] == ACTIVITY_OBJ_EVENT) { + if ($item["object-type"] == ACTIVITY_OBJ_EVENT) { logger("Deleting event ".$item["event-id"], LOGGER_DEBUG); event_delete($item["event-id"]); } - if(($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) { + if (($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) { $xo = parse_xml_string($item["object"],false); $xt = parse_xml_string($item["target"],false); - if($xt->type == ACTIVITY_OBJ_NOTE) { + if ($xt->type == ACTIVITY_OBJ_NOTE) { $i = q("SELECT `id`, `contact-id`, `tag` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($xt->id), intval($importer["importer_uid"]) @@ -2390,15 +2576,18 @@ class dfrn { $author_remove = (($item["origin"] && $item["self"]) ? true : false); $author_copy = (($item["origin"]) ? true : false); - if($owner_remove && $author_copy) + if ($owner_remove && $author_copy) { return; - if($author_remove || $owner_remove) { + } + if ($author_remove || $owner_remove) { $tags = explode(',',$i[0]["tag"]); $newtags = array(); - if(count($tags)) { - foreach($tags as $tag) - if(trim($tag) !== trim($xo->body)) + if (count($tags)) { + foreach ($tags as $tag) { + if (trim($tag) !== trim($xo->body)) { $newtags[] = trim($tag); + } + } } q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d", dbesc(implode(',',$newtags)), @@ -2410,7 +2599,7 @@ class dfrn { } } - if($entrytype == DFRN_TOP_LEVEL) { + if ($entrytype == DFRN_TOP_LEVEL) { $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '', `title` = '' WHERE `parent-uri` = '%s' AND `uid` = %d", @@ -2434,7 +2623,7 @@ class dfrn { create_tags_from_itemuri($uri, $importer["uid"]); create_files_from_itemuri($uri, $importer["uid"]); update_thread_uri($uri, $importer["importer_uid"]); - if($item["last-child"]) { + if ($item["last-child"]) { // ensure that last-child is set in case the comment that had it just got wiped. q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ", dbesc(datetime_convert()), @@ -2455,7 +2644,7 @@ class dfrn { } // if this is a relayed delete, propagate it to other recipients - if($entrytype == DFRN_REPLY_RC) { + if ($entrytype == DFRN_REPLY_RC) { logger("Notifying followers about deletion of post ".$item["id"], LOGGER_DEBUG); proc_run(PRIORITY_HIGH, "include/notifier.php","drop", $item["id"]); } @@ -2475,7 +2664,7 @@ class dfrn { if ($xml == "") return; - if($importer["readonly"]) { + if ($importer["readonly"]) { // We aren't receiving stuff from this person. But we will quietly ignore them // rather than a blatant "go away" message. logger('ignoring contact '.$importer["id"]); @@ -2508,12 +2697,14 @@ class dfrn { // Update the contact table if the data has changed // The "atom:author" is only present in feeds - if ($xpath->query("/atom:feed/atom:author")->length > 0) + if ($xpath->query("/atom:feed/atom:author")->length > 0) { self::fetchauthor($xpath, $doc->firstChild, $importer, "atom:author", false, $xml); + } // Only the "dfrn:owner" in the head section contains all data - if ($xpath->query("/atom:feed/dfrn:owner")->length > 0) + if ($xpath->query("/atom:feed/dfrn:owner")->length > 0) { self::fetchauthor($xpath, $doc->firstChild, $importer, "dfrn:owner", false, $xml); + } logger("Import DFRN message for user ".$importer["uid"]." from contact ".$importer["id"], LOGGER_DEBUG); @@ -2521,43 +2712,50 @@ class dfrn { if ($xpath->query("/atom:feed/dfrn:account_type")->length > 0) { $accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue); - if ($accounttype != $importer["contact-type"]) + if ($accounttype != $importer["contact-type"]) { q("UPDATE `contact` SET `contact-type` = %d WHERE `id` = %d", intval($accounttype), intval($importer["id"]) ); + } } // is it a public forum? Private forums aren't supported with this method // This is deprecated since 3.5.1 $forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue); - if ($forum != $importer["forum"]) + if ($forum != $importer["forum"]) { q("UPDATE `contact` SET `forum` = %d WHERE `forum` != %d AND `id` = %d", intval($forum), intval($forum), intval($importer["id"]) ); + } $mails = $xpath->query("/atom:feed/dfrn:mail"); - foreach ($mails AS $mail) + foreach ($mails AS $mail) { self::process_mail($xpath, $mail, $importer); + } $suggestions = $xpath->query("/atom:feed/dfrn:suggest"); - foreach ($suggestions AS $suggestion) + foreach ($suggestions AS $suggestion) { self::process_suggestion($xpath, $suggestion, $importer); + } $relocations = $xpath->query("/atom:feed/dfrn:relocate"); - foreach ($relocations AS $relocation) + foreach ($relocations AS $relocation) { self::process_relocation($xpath, $relocation, $importer); + } $deletions = $xpath->query("/atom:feed/at:deleted-entry"); - foreach ($deletions AS $deletion) + foreach ($deletions AS $deletion) { self::process_deletion($xpath, $deletion, $importer); + } if (!$sort_by_date) { $entries = $xpath->query("/atom:feed/atom:entry"); - foreach ($entries AS $entry) + foreach ($entries AS $entry) { self::process_entry($header, $xpath, $entry, $importer); + } } else { $newentries = array(); $entries = $xpath->query("/atom:feed/atom:entry"); @@ -2569,8 +2767,9 @@ class dfrn { // Now sort after the publishing date ksort($newentries); - foreach ($newentries AS $entry) + foreach ($newentries AS $entry) { self::process_entry($header, $xpath, $entry, $importer); + } } logger("Import done for user ".$importer["uid"]." from contact ".$importer["id"], LOGGER_DEBUG); } diff --git a/include/diaspora.php b/include/diaspora.php index eca22092d8..12cb9b4361 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -45,7 +45,7 @@ class Diaspora { $servers = explode(",", $serverdata); - foreach($servers AS $server) { + foreach ($servers AS $server) { $server = trim($server); $addr = "relay@".str_replace("http://", "", normalise_link($server)); $batch = $server."/receive/public"; @@ -181,7 +181,7 @@ class Diaspora { $children = $basedom->children('https://joindiaspora.com/protocol'); - if($children->header) { + if ($children->header) { $public = true; $author_link = str_replace('acct:','',$children->header->author_id); } else { @@ -217,11 +217,11 @@ class Diaspora { // figure out where in the DOM tree our data is hiding - if($dom->provenance->data) + if ($dom->provenance->data) $base = $dom->provenance; - elseif($dom->env->data) + elseif ($dom->env->data) $base = $dom->env; - elseif($dom->data) + elseif ($dom->data) $base = $dom; if (!$base) { @@ -254,7 +254,7 @@ class Diaspora { $data = base64url_decode($data); - if($public) + if ($public) $inner_decrypted = $data; else { @@ -556,7 +556,7 @@ class Diaspora { logger("Fetching diaspora key for: ".$handle); $r = self::person_by_handle($handle); - if($r) + if ($r) return $r["pubkey"]; return ""; @@ -612,7 +612,7 @@ class Diaspora { */ private static function add_fcontact($arr, $update = false) { - if($update) { + if ($update) { $r = q("UPDATE `fcontact` SET `name` = '%s', `photo` = '%s', @@ -796,7 +796,7 @@ class Diaspora { // perhaps we were already sharing with this person. Now they're sharing with us. // That makes us friends. // Normally this should have handled by getting a request - but this could get lost - if($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) { + if ($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) { q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d", intval(CONTACT_IS_FRIEND), intval($contact["id"]), @@ -806,12 +806,12 @@ class Diaspora { logger("defining user ".$contact["nick"]." as friend"); } - if(($contact["blocked"]) || ($contact["readonly"]) || ($contact["archive"])) + if (($contact["blocked"]) || ($contact["readonly"]) || ($contact["archive"])) return false; - if($contact["rel"] == CONTACT_IS_SHARING || $contact["rel"] == CONTACT_IS_FRIEND) + if ($contact["rel"] == CONTACT_IS_SHARING || $contact["rel"] == CONTACT_IS_FRIEND) return true; - if($contact["rel"] == CONTACT_IS_FOLLOWER) - if(($importer["page-flags"] == PAGE_COMMUNITY) OR $is_comment) + if ($contact["rel"] == CONTACT_IS_FOLLOWER) + if (($importer["page-flags"] == PAGE_COMMUNITY) OR $is_comment) return true; // Messages for the global users are always accepted @@ -969,7 +969,7 @@ class Diaspora { logger("Fetch post from ".$source_url, LOGGER_DEBUG); $envelope = fetch_url($source_url); - if($envelope) { + if ($envelope) { logger("Envelope was fetched.", LOGGER_DEBUG); $x = self::verify_magic_envelope($envelope); if (!$x) @@ -985,7 +985,7 @@ class Diaspora { logger("Fetch post from ".$source_url, LOGGER_DEBUG); $x = fetch_url($source_url); - if(!$x) + if (!$x) return false; } @@ -1042,7 +1042,7 @@ class Diaspora { FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1", intval($uid), dbesc($guid)); - if(!$r) { + if (!$r) { $result = self::store_by_guid($guid, $contact["url"], $uid); if (!$result) { @@ -1303,7 +1303,7 @@ class Diaspora { } // If we are the origin of the parent we store the original data and notify our followers - if($message_id AND $parent_item["origin"]) { + if ($message_id AND $parent_item["origin"]) { // Formerly we stored the signed text, the signature and the author in different fields. // We now store the raw data so that we are more flexible. @@ -1480,7 +1480,7 @@ class Diaspora { intval($importer["uid"]), dbesc($guid) ); - if($c) + if ($c) $conversation = $c[0]; else { $r = q("INSERT INTO `conv` (`uid`, `guid`, `creator`, `created`, `updated`, `subject`, `recips`) @@ -1493,13 +1493,13 @@ class Diaspora { dbesc($subject), dbesc($participants) ); - if($r) + if ($r) $c = q("SELECT * FROM `conv` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1", intval($importer["uid"]), dbesc($guid) ); - if($c) + if ($c) $conversation = $c[0]; } if (!$conversation) { @@ -1507,7 +1507,7 @@ class Diaspora { return; } - foreach($messages as $mesg) + foreach ($messages as $mesg) self::receive_conversation_message($importer, $contact, $data, $msg, $mesg, $conversation); return true; @@ -1637,7 +1637,7 @@ class Diaspora { logger("Stored like ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG); // If we are the origin of the parent we store the original data and notify our followers - if($message_id AND $parent_item["origin"]) { + if ($message_id AND $parent_item["origin"]) { // Formerly we stored the signed text, the signature and the author in different fields. // We now store the raw data so that we are more flexible. @@ -1812,10 +1812,10 @@ class Diaspora { $handle_parts = explode("@", $author); $nick = $handle_parts[0]; - if($name === "") + if ($name === "") $name = $handle_parts[0]; - if( preg_match("|^https?://|", $image_url) === 0) + if ( preg_match("|^https?://|", $image_url) === 0) $image_url = "http://".$handle_parts[1].$image_url; update_contact_avatar($image_url, $importer["uid"], $contact["id"]); @@ -1830,7 +1830,7 @@ class Diaspora { // this is to prevent multiple birthday notifications in a single year // if we already have a stored birthday and the 'm-d' part hasn't changed, preserve the entry, which will preserve the notify year - if(substr($birthday,5) === substr($contact["bd"],5)) + if (substr($birthday,5) === substr($contact["bd"],5)) $birthday = $contact["bd"]; $r = q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `name-date` = '%s', `bd` = '%s', @@ -1876,7 +1876,7 @@ class Diaspora { $a = get_app(); - if($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) { + if ($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) { q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d", intval(CONTACT_IS_FRIEND), intval($contact["id"]), @@ -1889,7 +1889,7 @@ class Diaspora { intval($importer["uid"]) ); - if($r && !$r[0]["hide-friends"] && !$contact["hidden"] && intval(get_pconfig($importer["uid"], "system", "post_newfriend"))) { + if ($r && !$r[0]["hide-friends"] && !$contact["hidden"] && intval(get_pconfig($importer["uid"], "system", "post_newfriend"))) { $self = q("SELECT * FROM `contact` WHERE `self` AND `uid` = %d LIMIT 1", intval($importer["uid"]) @@ -1897,7 +1897,7 @@ class Diaspora { // they are not CONTACT_IS_FOLLOWER anymore but that's what we have in the array - if($self && $contact["rel"] == CONTACT_IS_FOLLOWER) { + if ($self && $contact["rel"] == CONTACT_IS_FOLLOWER) { $arr = array(); $arr["uri"] = $arr["parent-uri"] = item_new_uri($a->get_hostname(), $importer["uid"]); @@ -1928,7 +1928,7 @@ class Diaspora { $arr["deny_gid"] = $user[0]["deny_gid"]; $i = item_store($arr); - if($i) + if ($i) proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i); } } @@ -2067,12 +2067,12 @@ class Diaspora { $def_gid = get_default_group($importer['uid'], $ret["network"]); - if(intval($def_gid)) + if (intval($def_gid)) group_add_member($importer["uid"], "", $contact_record["id"], $def_gid); update_contact_avatar($ret["photo"], $importer['uid'], $contact_record["id"], true); - if($importer["page-flags"] == PAGE_NORMAL) { + if ($importer["page-flags"] == PAGE_NORMAL) { logger("Sending intra message for author ".$author.".", LOGGER_DEBUG); @@ -2122,7 +2122,7 @@ class Diaspora { ); $u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer["uid"])); - if($u) { + if ($u) { logger("Sending share message (Relation: ".$new_relation.") to author ".$author." - Contact: ".$contact_record["id"]." - User: ".$importer["uid"], LOGGER_DEBUG); $ret = self::send_share($u[0], $contact_record); @@ -2748,7 +2748,7 @@ class Diaspora { $a = get_app(); $enabled = intval(get_config("system", "diaspora_enabled")); - if(!$enabled) + if (!$enabled) return 200; $logid = random_string(4); @@ -3087,14 +3087,14 @@ class Diaspora { $body = html_entity_decode(bb2diaspora($body)); // Adding the title - if(strlen($title)) + if (strlen($title)) $body = "## ".html_entity_decode($title)."\n\n".$body; if ($item["attach"]) { $cnt = preg_match_all('/href=\"(.*?)\"(.*?)title=\"(.*?)\"/ism', $item["attach"], $matches, PREG_SET_ORDER); - if(cnt) { + if (cnt) { $body .= "\n".t("Attachments:")."\n"; - foreach($matches as $mtch) + foreach ($matches as $mtch) $body .= "[".$mtch[3]."](".$mtch[1].")\n"; } } @@ -3587,7 +3587,7 @@ class Diaspora { $kw = str_replace(' ',' ',$kw); $arr = explode(' ',$profile['pub_keywords']); if (count($arr)) { - for($x = 0; $x < 5; $x ++) { + for ($x = 0; $x < 5; $x ++) { if (trim($arr[$x])) $tags .= '#'. trim($arr[$x]) .' '; } @@ -3609,7 +3609,7 @@ class Diaspora { "searchable" => $searchable, "tag_string" => $tags); - foreach($recips as $recip) { + foreach ($recips as $recip) { logger("Send updated profile data for user ".$uid." to contact ".$recip["id"], LOGGER_DEBUG); self::build_and_transmit($profile, $recip, "profile", $message, false, "", true); } @@ -3632,17 +3632,20 @@ class Diaspora { } $r = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1", intval($contact['uid'])); - if(!$r) + if (!dbm::is_result($r)) { return false; + } $contact["uprvkey"] = $r[0]['prvkey']; $r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1", intval($post_id)); - if (!$r) + if (!dbm::is_result($r)) { return false; + } - if (!in_array($r[0]["verb"], array(ACTIVITY_LIKE, ACTIVITY_DISLIKE))) + if (!in_array($r[0]["verb"], array(ACTIVITY_LIKE, ACTIVITY_DISLIKE))) { return false; + } $message = self::construct_like($r[0], $contact); $message["author_signature"] = self::signature($contact, $message); diff --git a/include/discover_poco.php b/include/discover_poco.php index 2923cd01f1..dd4e3a7dd3 100644 --- a/include/discover_poco.php +++ b/include/discover_poco.php @@ -189,10 +189,10 @@ function discover_directory($search) { $j = json_decode($x); if (count($j->results)) { - foreach($j->results as $jj) { + foreach ($j->results as $jj) { // Check if the contact already exists $exists = q("SELECT `id`, `last_contact`, `last_failure`, `updated` FROM `gcontact` WHERE `nurl` = '%s'", normalise_link($jj->url)); - if ($exists) { + if (dbm::is_result($exists)) { logger("Profile ".$jj->url." already exists (".$search.")", LOGGER_DEBUG); if (($exists[0]["last_contact"] < $exists[0]["last_failure"]) AND @@ -245,12 +245,14 @@ function gs_search_user($search) { if (!$result["success"]) { return false; } + $contacts = json_decode($result["body"]); if ($contacts->status == 'ERROR') { return false; } - foreach($contacts->data AS $user) { + + foreach ($contacts->data AS $user) { $contact = probe_url($user->site_address."/".$user->name); if ($contact["network"] != NETWORK_PHANTOM) { $contact["about"] = $user->description; diff --git a/include/email.php b/include/email.php index 42f80c2427..b8d99433e1 100644 --- a/include/email.php +++ b/include/email.php @@ -4,7 +4,7 @@ require_once('include/msgclean.php'); require_once('include/quoteconvert.php'); function email_connect($mailbox,$username,$password) { - if(! function_exists('imap_open')) + if (! function_exists('imap_open')) return false; $mbox = @imap_open($mailbox,$username,$password); @@ -14,23 +14,23 @@ function email_connect($mailbox,$username,$password) { function email_poll($mbox,$email_addr) { - if(! ($mbox && $email_addr)) + if (! ($mbox && $email_addr)) return array(); $search1 = @imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID); - if(! $search1) + if (! $search1) $search1 = array(); $search2 = @imap_search($mbox,'TO "' . $email_addr . '"', SE_UID); - if(! $search2) + if (! $search2) $search2 = array(); $search3 = @imap_search($mbox,'CC "' . $email_addr . '"', SE_UID); - if(! $search3) + if (! $search3) $search3 = array(); $search4 = @imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID); - if(! $search4) + if (! $search4) $search4 = array(); $res = array_unique(array_merge($search1,$search2,$search3,$search4)); @@ -57,8 +57,8 @@ function email_msg_headers($mbox,$uid) { $raw_header = str_replace("\r",'',$raw_header); $ret = array(); $h = explode("\n",$raw_header); - if(count($h)) - foreach($h as $line ) { + if (count($h)) + foreach ($h as $line ) { if (preg_match("/^[a-zA-Z]/", $line)) { $key = substr($line,0,strpos($line,':')); $value = substr($line,strpos($line,':')+1); @@ -79,10 +79,10 @@ function email_get_msg($mbox,$uid, $reply) { $struc = (($mbox && $uid) ? @imap_fetchstructure($mbox,$uid,FT_UID) : null); - if(! $struc) + if (! $struc) return $ret; - if(! $struc->parts) { + if (! $struc->parts) { $ret['body'] = email_get_part($mbox,$uid,$struc,0, 'html'); $html = $ret['body']; @@ -94,7 +94,7 @@ function email_get_msg($mbox,$uid, $reply) { else { $text = ''; $html = ''; - foreach($struc->parts as $ptop => $p) { + foreach ($struc->parts as $ptop => $p) { $x = email_get_part($mbox,$uid,$p,$ptop + 1, 'plain'); if ($x) { $text .= $x; @@ -206,16 +206,16 @@ function email_get_part($mbox,$uid,$p,$partno, $subtype) { function email_header_encode($in_str, $charset) { - $out_str = $in_str; + $out_str = $in_str; $need_to_convert = false; - for($x = 0; $x < strlen($in_str); $x ++) { - if((ord($in_str[$x]) == 0) || ((ord($in_str[$x]) > 128))) { + for ($x = 0; $x < strlen($in_str); $x ++) { + if ((ord($in_str[$x]) == 0) || ((ord($in_str[$x]) > 128))) { $need_to_convert = true; } } - if(! $need_to_convert) + if (! $need_to_convert) return $in_str; if ($out_str && $charset) { diff --git a/include/enotify.php b/include/enotify.php index ebc27309db..f86174bd40 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -411,10 +411,12 @@ function notification($params) { $hash = random_string(); $r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1", dbesc($hash)); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $dups = true; - } while($dups == true); + } + } while ($dups == true); + /// @TODO One statement is enough $datarray = array(); $datarray['hash'] = $hash; $datarray['name'] = $params['source_name']; diff --git a/include/event.php b/include/event.php index ebd4885c91..7fffdd8a28 100644 --- a/include/event.php +++ b/include/event.php @@ -10,7 +10,7 @@ require_once 'include/datetime.php'; function format_event_html($ev, $simple = false) { - if(! ((is_array($ev)) && count($ev))) { + if (! ((is_array($ev)) && count($ev))) { return ''; } @@ -98,26 +98,26 @@ function parse_event($h) { logger('parse_event: parse error: ' . $e); } - if(! $dom) + if (! $dom) return $ret; $items = $dom->getElementsByTagName('*'); - foreach($items as $item) { - if(attribute_contains($item->getAttribute('class'), 'vevent')) { + foreach ($items as $item) { + if (attribute_contains($item->getAttribute('class'), 'vevent')) { $level2 = $item->getElementsByTagName('*'); - foreach($level2 as $x) { - if(attribute_contains($x->getAttribute('class'),'dtstart') && $x->getAttribute('title')) { + foreach ($level2 as $x) { + if (attribute_contains($x->getAttribute('class'),'dtstart') && $x->getAttribute('title')) { $ret['start'] = $x->getAttribute('title'); - if(! strpos($ret['start'],'Z')) + if (! strpos($ret['start'],'Z')) $ret['adjust'] = true; } - if(attribute_contains($x->getAttribute('class'),'dtend') && $x->getAttribute('title')) + if (attribute_contains($x->getAttribute('class'),'dtend') && $x->getAttribute('title')) $ret['finish'] = $x->getAttribute('title'); - if(attribute_contains($x->getAttribute('class'),'description')) + if (attribute_contains($x->getAttribute('class'),'description')) $ret['desc'] = $x->textContent; - if(attribute_contains($x->getAttribute('class'),'location')) + if (attribute_contains($x->getAttribute('class'),'location')) $ret['location'] = $x->textContent; } } @@ -125,23 +125,23 @@ function parse_event($h) { // sanitise - if((x($ret,'desc')) && ((strpos($ret['desc'],'<') !== false) || (strpos($ret['desc'],'>') !== false))) { + if ((x($ret,'desc')) && ((strpos($ret['desc'],'<') !== false) || (strpos($ret['desc'],'>') !== false))) { $config = HTMLPurifier_Config::createDefault(); $config->set('Cache.DefinitionImpl', null); $purifier = new HTMLPurifier($config); $ret['desc'] = html2bbcode($purifier->purify($ret['desc'])); } - if((x($ret,'location')) && ((strpos($ret['location'],'<') !== false) || (strpos($ret['location'],'>') !== false))) { + if ((x($ret,'location')) && ((strpos($ret['location'],'<') !== false) || (strpos($ret['location'],'>') !== false))) { $config = HTMLPurifier_Config::createDefault(); $config->set('Cache.DefinitionImpl', null); $purifier = new HTMLPurifier($config); $ret['location'] = html2bbcode($purifier->purify($ret['location'])); } - if(x($ret,'start')) + if (x($ret,'start')) $ret['start'] = datetime_convert('UTC','UTC',$ret['start']); - if(x($ret,'finish')) + if (x($ret,'finish')) $ret['finish'] = datetime_convert('UTC','UTC',$ret['finish']); return $ret; @@ -595,7 +595,7 @@ function event_by_id($owner_uid = 0, $event_params, $sql_extra = '') { */ function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') { // Only allow events if there is a valid owner_id - if($owner_uid == 0) { + if ($owner_uid == 0) { return; } @@ -629,7 +629,7 @@ function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') { * @return array Event array for the template */ function process_events($arr) { - $events=array(); + $events = array(); $last_date = ''; $fmt = t('l, F j'); diff --git a/include/expire.php b/include/expire.php index 35b109a50a..098125a798 100644 --- a/include/expire.php +++ b/include/expire.php @@ -11,12 +11,13 @@ function expire_run(&$argv, &$argc){ // physically remove anything that has been deleted for more than two months - $r = q("delete from item where deleted = 1 and changed < UTC_TIMESTAMP() - INTERVAL 60 DAY"); + $r = q("DELETE FROM `item` WHERE `deleted` = 1 AND `changed` < UTC_TIMESTAMP() - INTERVAL 60 DAY"); // make this optional as it could have a performance impact on large sites - if(intval(get_config('system','optimize_items'))) - q("optimize table item"); + if (intval(get_config('system','optimize_items'))) { + q("OPTIMIZE TABLE `item`"); + } logger('expire: start'); diff --git a/include/features.php b/include/features.php index 74c110427c..07dcced0e6 100644 --- a/include/features.php +++ b/include/features.php @@ -36,9 +36,9 @@ function feature_enabled($uid, $feature) { */ function get_feature_default($feature) { $f = get_features(); - foreach($f as $cat) { - foreach($cat as $feat) { - if(is_array($feat) && $feat[0] === $feature) + foreach ($f as $cat) { + foreach ($cat as $feat) { + if (is_array($feat) && $feat[0] === $feature) return $feat[3]; } } @@ -116,13 +116,13 @@ function get_features($filtered = true) { // removed any locked features and remove the entire category if this makes it empty - if($filtered) { - foreach($arr as $k => $x) { + if ($filtered) { + foreach ($arr as $k => $x) { $has_items = false; $kquantity = count($arr[$k]); - for($y = 0; $y < $kquantity; $y ++) { - if(is_array($arr[$k][$y])) { - if($arr[$k][$y][4] === false) { + for ($y = 0; $y < $kquantity; $y ++) { + if (is_array($arr[$k][$y])) { + if ($arr[$k][$y][4] === false) { $has_items = true; } else { @@ -130,7 +130,7 @@ function get_features($filtered = true) { } } } - if(! $has_items) { + if (! $has_items) { unset($arr[$k]); } } diff --git a/include/feed.php b/include/feed.php index 2959933703..317f6bee7d 100644 --- a/include/feed.php +++ b/include/feed.php @@ -163,7 +163,7 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { $header["contact-id"] = $contact["id"]; - if(!strlen($contact["notify"])) { + if (!strlen($contact["notify"])) { // one way feed - no remote comment ability $header["last-child"] = 0; } @@ -280,7 +280,7 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { $type = ""; $title = ""; - foreach($enclosure->attributes AS $attributes) { + foreach ($enclosure->attributes AS $attributes) { if ($attributes->name == "url") { $href = $attributes->textContent; } elseif ($attributes->name == "length") { @@ -289,8 +289,9 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) { $type = $attributes->textContent; } } - if(strlen($item["attach"])) + if (strlen($item["attach"])) { $item["attach"] .= ','; + } $attachments[] = array("link" => $href, "type" => $type, "length" => $length); diff --git a/include/files.php b/include/files.php index 7bff0e3468..c20a6d832d 100644 --- a/include/files.php +++ b/include/files.php @@ -33,7 +33,7 @@ function create_files_from_item($itemid) { function create_files_from_itemuri($itemuri, $uid) { $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); - if(count($messages)) { + if (count($messages)) { foreach ($messages as $message) create_files_from_item($message["id"]); } diff --git a/include/friendica_smarty.php b/include/friendica_smarty.php index 9ba2d2a744..f497fbee01 100644 --- a/include/friendica_smarty.php +++ b/include/friendica_smarty.php @@ -18,7 +18,7 @@ class FriendicaSmarty extends Smarty { // setTemplateDir can be set to an array, which Smarty will parse in order. // The order is thus very important here $template_dirs = array('theme' => "view/theme/$theme/".SMARTY3_TEMPLATE_FOLDER."/"); - if( x($a->theme_info,"extends") ) + if ( x($a->theme_info,"extends") ) $template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/".SMARTY3_TEMPLATE_FOLDER."/"); $template_dirs = $template_dirs + array('base' => "view/".SMARTY3_TEMPLATE_FOLDER."/"); $this->setTemplateDir($template_dirs); @@ -35,7 +35,7 @@ class FriendicaSmarty extends Smarty { } function parsed($template = '') { - if($template) { + if ($template) { return $this->fetch('string:' . $template); } return $this->fetch('file:' . $this->filename); @@ -48,7 +48,7 @@ class FriendicaSmartyEngine implements ITemplateEngine { static $name ="smarty3"; public function __construct(){ - if(!is_writable('view/smarty3/')){ + if (!is_writable('view/smarty3/')){ echo "ERROR: folder view/smarty3/ must be writable by webserver."; killme(); } } @@ -56,7 +56,7 @@ class FriendicaSmartyEngine implements ITemplateEngine { // ITemplateEngine interface public function replace_macros($s, $r) { $template = ''; - if(gettype($s) === 'string') { + if (gettype($s) === 'string') { $template = $s; $s = new FriendicaSmarty(); } @@ -71,8 +71,8 @@ class FriendicaSmartyEngine implements ITemplateEngine { call_hooks("template_vars", $arr); $r = $arr['vars']; - foreach($r as $key=>$value) { - if($key[0] === '$') { + foreach ($r as $key=>$value) { + if ($key[0] === '$') { $key = substr($key, 1); } $s->assign($key, $value); diff --git a/include/group.php b/include/group.php index 6332c45da2..fa0e8f59a6 100644 --- a/include/group.php +++ b/include/group.php @@ -4,9 +4,9 @@ function group_add($uid,$name) { $ret = false; - if(x($uid) && x($name)) { + if (x($uid) && x($name)) { $r = group_byname($uid,$name); // check for dups - if($r !== false) { + if ($r !== false) { // This could be a problem. // Let's assume we've just created a group which we once deleted @@ -17,7 +17,7 @@ function group_add($uid,$name) { $z = q("SELECT * FROM `group` WHERE `id` = %d LIMIT 1", intval($r) ); - if(count($z) && $z[0]['deleted']) { + if (count($z) && $z[0]['deleted']) { $r = q("UPDATE `group` SET `deleted` = 0 WHERE `uid` = %d AND `name` = '%s'", intval($uid), dbesc($name) @@ -39,14 +39,14 @@ function group_add($uid,$name) { function group_rmv($uid,$name) { $ret = false; - if(x($uid) && x($name)) { + if (x($uid) && x($name)) { $r = q("SELECT id FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1", intval($uid), dbesc($name) ); if (dbm::is_result($r)) $group_id = $r[0]['id']; - if(! $group_id) + if (! $group_id) return false; // remove group from default posting lists @@ -57,20 +57,20 @@ function group_rmv($uid,$name) { $user_info = $r[0]; $change = false; - if($user_info['def_gid'] == $group_id) { + if ($user_info['def_gid'] == $group_id) { $user_info['def_gid'] = 0; $change = true; } - if(strpos($user_info['allow_gid'], '<' . $group_id . '>') !== false) { + if (strpos($user_info['allow_gid'], '<' . $group_id . '>') !== false) { $user_info['allow_gid'] = str_replace('<' . $group_id . '>', '', $user_info['allow_gid']); $change = true; } - if(strpos($user_info['deny_gid'], '<' . $group_id . '>') !== false) { + if (strpos($user_info['deny_gid'], '<' . $group_id . '>') !== false) { $user_info['deny_gid'] = str_replace('<' . $group_id . '>', '', $user_info['deny_gid']); $change = true; } - if($change) { + if ($change) { q("UPDATE user SET def_gid = %d, allow_gid = '%s', deny_gid = '%s' WHERE uid = %d", intval($user_info['def_gid']), dbesc($user_info['allow_gid']), @@ -100,7 +100,7 @@ function group_rmv($uid,$name) { } function group_byname($uid,$name) { - if((! $uid) || (! strlen($name))) + if ((! $uid) || (! strlen($name))) return false; $r = q("SELECT * FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1", intval($uid), @@ -113,9 +113,9 @@ function group_byname($uid,$name) { function group_rmv_member($uid,$name,$member) { $gid = group_byname($uid,$name); - if(! $gid) + if (! $gid) return false; - if(! ( $uid && $gid && $member)) + if (! ( $uid && $gid && $member)) return false; $r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d", intval($uid), @@ -129,9 +129,9 @@ function group_rmv_member($uid,$name,$member) { function group_add_member($uid,$name,$member,$gid = 0) { - if(! $gid) + if (! $gid) $gid = group_byname($uid,$name); - if((! $gid) || (! $uid) || (! $member)) + if ((! $gid) || (! $uid) || (! $member)) return false; $r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d LIMIT 1", @@ -156,7 +156,7 @@ function group_add_member($uid,$name,$member,$gid = 0) { function group_get_members($gid) { $ret = array(); - if(intval($gid)) { + if (intval($gid)) { $r = q("SELECT `group_member`.`contact-id`, `contact`.* FROM `group_member` INNER JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id` WHERE `gid` = %d AND `group_member`.`uid` = %d AND @@ -173,7 +173,7 @@ function group_get_members($gid) { function group_public_members($gid) { $ret = 0; - if(intval($gid)) { + if (intval($gid)) { $r = q("SELECT `contact`.`id` AS `contact-id` FROM `group_member` INNER JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id` WHERE `gid` = %d AND `group_member`.`uid` = %d @@ -252,7 +252,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro intval($_SESSION['uid']) ); $member_of = array(); - if($cid) { + if ($cid) { $member_of = groups_containing(local_user(),$cid); } @@ -302,7 +302,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro } function expand_groups($a,$check_dead = false, $use_gcontact = false) { - if(! (is_array($a) && count($a))) + if (! (is_array($a) && count($a))) return array(); $groups = implode(',', $a); $groups = dbesc($groups); @@ -318,9 +318,9 @@ function expand_groups($a,$check_dead = false, $use_gcontact = false) { $ret = array(); if (dbm::is_result($r)) - foreach($r as $rr) + foreach ($r as $rr) $ret[] = $rr['contact-id']; - if($check_dead AND !$use_gcontact) { + if ($check_dead AND !$use_gcontact) { require_once('include/acl_selectors.php'); $ret = prune_deadguys($ret); } @@ -347,8 +347,9 @@ function groups_containing($uid,$c) { $ret = array(); if (dbm::is_result($r)) { - foreach($r as $rr) + foreach ($r as $rr) { $ret[] = $rr['gid']; + } } return $ret; @@ -399,7 +400,7 @@ function get_default_group($uid, $network = "") { return $default_group; $g = q("SELECT `def_gid` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid)); - if($g && intval($g[0]["def_gid"])) + if ($g && intval($g[0]["def_gid"])) $default_group = $g[0]["def_gid"]; return $default_group; diff --git a/include/html2plain.php b/include/html2plain.php index 1d5910d83b..dc2cb137c4 100644 --- a/include/html2plain.php +++ b/include/html2plain.php @@ -49,7 +49,7 @@ function quotelevel($message, $wraplength = 75) $newlines = array(); $level = 0; - foreach($lines as $line) {; + foreach ($lines as $line) {; $line = trim($line); $startquote = false; while (strpos("*".$line, '[quote]') > 0) { diff --git a/include/identity.php b/include/identity.php index 8138e9b046..ab38f3dc36 100644 --- a/include/identity.php +++ b/include/identity.php @@ -38,7 +38,7 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) { dbesc($nickname) ); - if(!$user && count($user) && !count($profiledata)) { + if (!$user && count($user) && !count($profiledata)) { logger('profile error: ' . $a->query_string, LOGGER_DEBUG); notice( t('Requested account is not available.') . EOL ); $a->error = 404; @@ -47,7 +47,7 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) { $pdata = get_profiledata_by_nick($nickname, $user[0]['uid'], $profile); - if(($pdata === false) || (!count($pdata)) && !count($profiledata)) { + if (($pdata === false) || (!count($pdata)) && !count($profiledata)) { logger('profile error: ' . $a->query_string, LOGGER_DEBUG); notice( t('Requested profile is not available.') . EOL ); $a->error = 404; @@ -56,11 +56,11 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) { // fetch user tags if this isn't the default profile - if(!$pdata['is-default']) { + if (!$pdata['is-default']) { $x = q("SELECT `pub_keywords` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1", intval($pdata['profile_uid']) ); - if($x && count($x)) + if ($x && count($x)) $pdata['pub_keywords'] = $x[0]['pub_keywords']; } @@ -88,10 +88,10 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) { require_once($theme_info_file); } - if(! (x($a->page,'aside'))) + if (! (x($a->page,'aside'))) $a->page['aside'] = ''; - if(local_user() && local_user() == $a->profile['uid'] && $profiledata) { + if (local_user() && local_user() == $a->profile['uid'] && $profiledata) { $a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array( '$editprofile' => t('Edit profile'), '$profid' => $a->profile['id'] @@ -110,7 +110,7 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) { else $a->page['aside'] .= profile_sidebar($a->profile, $block); - /*if(! $block) + /*if (! $block) $a->page['aside'] .= contact_block();*/ return; @@ -133,9 +133,9 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) { * Includes all available profile data */ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) { - if(remote_user() && count($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $visitor) { - if($visitor['uid'] == $uid) { + if (remote_user() && count($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $visitor) { + if ($visitor['uid'] == $uid) { $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1", intval($visitor['cid']) ); @@ -148,7 +148,7 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) { $r = null; - if($profile) { + if ($profile) { $profile_int = intval($profile); $r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*, `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* @@ -202,7 +202,7 @@ function profile_sidebar($profile, $block = 0) { $address = false; // $pdesc = true; - if((! is_array($profile)) && (! count($profile))) + if ((! is_array($profile)) && (! count($profile))) return $o; $profile['picdate'] = urlencode($profile['picdate']); @@ -219,9 +219,9 @@ function profile_sidebar($profile, $block = 0) { $connect = (($profile['uid'] != local_user()) ? t('Connect') : False); // don't show connect link to authenticated visitors either - if(remote_user() && count($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $visitor) { - if($visitor['uid'] == $profile['uid']) { + if (remote_user() && count($_SESSION['remote'])) { + foreach ($_SESSION['remote'] as $visitor) { + if ($visitor['uid'] == $profile['uid']) { $connect = false; break; } @@ -322,7 +322,7 @@ function profile_sidebar($profile, $block = 0) { // Fetch the account type $account_type = account_type($profile); - if((x($profile,'address') == 1) + if ((x($profile,'address') == 1) || (x($profile,'location') == 1) || (x($profile,'locality') == 1) || (x($profile,'region') == 1) @@ -341,7 +341,7 @@ function profile_sidebar($profile, $block = 0) { $xmpp = ((x($profile,'xmpp') == 1) ? t('XMPP:') : False); - if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { + if (($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { $location = $pdesc = $gender = $marital = $homepage = $about = False; } @@ -368,7 +368,7 @@ function profile_sidebar($profile, $block = 0) { if (!$block){ $contact_block = contact_block(); - if(is_array($a->profile) AND !$a->profile['hide-friends']) { + if (is_array($a->profile) AND !$a->profile['hide-friends']) { $r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1", intval($a->profile['uid'])); if (dbm::is_result($r)) @@ -390,7 +390,7 @@ function profile_sidebar($profile, $block = 0) { } $p = array(); - foreach($profile as $k => $v) { + foreach ($profile as $k => $v) { $k = str_replace('-','_',$k); $p[$k] = $v; } @@ -406,7 +406,7 @@ function profile_sidebar($profile, $block = 0) { if (isset($p["photo"])) $p["photo"] = proxy_url($p["photo"], false, PROXY_SIZE_SMALL); - if($a->theme['template_engine'] === 'internal') + if ($a->theme['template_engine'] === 'internal') $location = template_escape($location); $tpl = get_markup_template('profile_vcard.tpl'); @@ -445,13 +445,13 @@ function get_birthdays() { $a = get_app(); $o = ''; - if(! local_user() || $a->is_mobile || $a->is_tablet) + if (! local_user() || $a->is_mobile || $a->is_tablet) return $o; // $mobile_detect = new Mobile_Detect(); // $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet(); -// if($is_mobile) +// if ($is_mobile) // return $o; $bd_format = t('g A l F d') ; // 8 AM Friday January 18 @@ -479,27 +479,27 @@ function get_birthdays() { $istoday = false; foreach ($r as $rr) { - if(strlen($rr['name'])) + if (strlen($rr['name'])) $total ++; - if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) + if ((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) $istoday = true; } $classtoday = $istoday ? ' birthday-today ' : ''; - if($total) { - foreach($r as &$rr) { - if(! strlen($rr['name'])) + if ($total) { + foreach ($r as &$rr) { + if (! strlen($rr['name'])) continue; // avoid duplicates - if(in_array($rr['cid'],$cids)) + if (in_array($rr['cid'],$cids)) continue; $cids[] = $rr['cid']; $today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false); $sparkle = ''; $url = $rr['url']; - if($rr['network'] === NETWORK_DFRN) { + if ($rr['network'] === NETWORK_DFRN) { $sparkle = " sparkle"; $url = App::get_baseurl() . '/redir/' . $rr['cid']; } @@ -534,14 +534,14 @@ function get_events() { $a = get_app(); - if(! local_user() || $a->is_mobile || $a->is_tablet) + if (! local_user() || $a->is_mobile || $a->is_tablet) return $o; // $mobile_detect = new Mobile_Detect(); // $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet(); -// if($is_mobile) +// if ($is_mobile) // return $o; $bd_format = t('g A l F d') ; // 8 AM Friday January 18 @@ -559,30 +559,30 @@ function get_events() { $now = strtotime('now'); $istoday = false; foreach ($r as $rr) { - if(strlen($rr['name'])) + if (strlen($rr['name'])) $total ++; $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start'],'Y-m-d'); - if($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) + if ($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) $istoday = true; } $classtoday = (($istoday) ? 'event-today' : ''); $skip = 0; - foreach($r as &$rr) { + foreach ($r as &$rr) { $title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8')); - if(strlen($title) > 35) + if (strlen($title) > 35) $title = substr($title,0,32) . '... '; $description = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... '; - if(! $description) + if (! $description) $description = t('[No description]'); $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']); - if(substr($strt,0,10) < datetime_convert('UTC',$a->timezone,'now','Y-m-d')) { + if (substr($strt,0,10) < datetime_convert('UTC',$a->timezone,'now','Y-m-d')) { $skip++; continue; } @@ -617,7 +617,7 @@ function advanced_profile(App $a) { '$title' => t('Profile') )); - if($a->profile['name']) { + if ($a->profile['name']) { $tpl = get_markup_template('profile_advanced.tpl'); @@ -625,10 +625,10 @@ function advanced_profile(App $a) { $profile['fullname'] = array( t('Full Name:'), $a->profile['name'] ) ; - if($a->profile['gender']) $profile['gender'] = array( t('Gender:'), $a->profile['gender'] ); + if ($a->profile['gender']) $profile['gender'] = array( t('Gender:'), $a->profile['gender'] ); - if(($a->profile['dob']) && ($a->profile['dob'] != '0000-00-00')) { + if (($a->profile['dob']) && ($a->profile['dob'] != '0000-00-00')) { $year_bd_format = t('j F, Y'); $short_bd_format = t('j F'); @@ -642,10 +642,10 @@ function advanced_profile(App $a) { } - if($age = age($a->profile['dob'],$a->profile['timezone'],'')) $profile['age'] = array( t('Age:'), $age ); + if ($age = age($a->profile['dob'],$a->profile['timezone'],'')) $profile['age'] = array( t('Age:'), $age ); - if($a->profile['marital']) $profile['marital'] = array( t('Status:'), $a->profile['marital']); + if ($a->profile['marital']) $profile['marital'] = array( t('Status:'), $a->profile['marital']); /// @TODO Maybe use x() here, plus below? if ($a->profile['with']) { @@ -850,14 +850,14 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ } function get_my_url() { - if(x($_SESSION,'my_url')) + if (x($_SESSION,'my_url')) return $_SESSION['my_url']; return false; } function zrl_init(App $a) { $tmp_str = get_my_url(); - if(validate_url($tmp_str)) { + if (validate_url($tmp_str)) { // Is it a DDoS attempt? // The check fetches the cached value from gprobe to reduce the load for this system @@ -878,16 +878,20 @@ function zrl_init(App $a) { } function zrl($s,$force = false) { - if(! strlen($s)) + if (! strlen($s)) { return $s; - if((! strpos($s,'/profile/')) && (! $force)) + } + if ((! strpos($s,'/profile/')) && (! $force)) { return $s; - if($force && substr($s,-1,1) !== '/') + } + if ($force && substr($s,-1,1) !== '/') { $s = $s . '/'; + } $achar = strpos($s,'?') ? '&' : '?'; $mine = get_my_url(); - if($mine and ! link_compare($mine,$s)) + if ($mine and ! link_compare($mine,$s)) { return $s . $achar . 'zrl=' . urlencode($mine); + } return $s; } @@ -907,9 +911,10 @@ function zrl($s,$force = false) { */ function get_theme_uid() { $uid = (($_REQUEST['puid']) ? intval($_REQUEST['puid']) : 0); - if(local_user()) { - if((get_pconfig(local_user(),'system','always_my_theme')) || (! $uid)) + if (local_user()) { + if ((get_pconfig(local_user(),'system','always_my_theme')) || (! $uid)) { return local_user(); + } } return $uid; diff --git a/include/items.php b/include/items.php index 24eb1b30fb..6f94037011 100644 --- a/include/items.php +++ b/include/items.php @@ -60,7 +60,7 @@ function limit_body_size($body) { $img_start = strpos($orig_body, '[img'); $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false); $img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false); - while(($img_st_close !== false) && ($img_end !== false)) { + while (($img_st_close !== false) && ($img_end !== false)) { $img_st_close++; // make it point to AFTER the closing bracket $img_end += $img_start; @@ -1099,7 +1099,7 @@ function item_body_set_hashtags(&$item) { "#$2", $item["body"]); - foreach($tags as $tag) { + foreach ($tags as $tag) { if (strpos($tag,'#') !== 0) continue; @@ -1170,7 +1170,7 @@ function get_item_id($guid, $uid = 0) { function get_item_contact($item,$contacts) { if (! count($contacts) || (! is_array($item))) return false; - foreach($contacts as $contact) { + foreach ($contacts as $contact) { if ($contact['id'] == $item['contact-id']) { return $contact; break; // NOTREACHED @@ -1224,7 +1224,7 @@ function tag_deliver($uid,$item_id) { $cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER); if ($cnt) { - foreach($matches as $mtch) { + foreach ($matches as $mtch) { if (link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) { $mention = true; logger('tag_deliver: mention found: ' . $mtch[2]); @@ -1681,7 +1681,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { $img_start = strpos($orig_body, '[img'); $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false); $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false); - while( ($img_st_close !== false) && ($img_len !== false) ) { + while ( ($img_st_close !== false) && ($img_len !== false) ) { $img_st_close++; // make it point to AFTER the closing bracket $image = substr($orig_body, $img_start + $img_st_close, $img_len); @@ -1810,7 +1810,7 @@ function item_getfeedtags($item) { $matches = false; $cnt = preg_match_all('|\#\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches); if ($cnt) { - for($x = 0; $x < $cnt; $x ++) { + for ($x = 0; $x < $cnt; $x ++) { if ($matches[1][$x]) $ret[$matches[2][$x]] = array('#',$matches[1][$x], $matches[2][$x]); } @@ -1818,7 +1818,7 @@ function item_getfeedtags($item) { $matches = false; $cnt = preg_match_all('|\@\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches); if ($cnt) { - for($x = 0; $x < $cnt; $x ++) { + for ($x = 0; $x < $cnt; $x ++) { if ($matches[1][$x]) $ret[] = array('@',$matches[1][$x], $matches[2][$x]); } @@ -1876,7 +1876,7 @@ function item_expire($uid, $days, $network = "", $force = false) { logger('expire: # items=' . count($r). "; expire items: $expire_items, expire notes: $expire_notes, expire starred: $expire_starred, expire photos: $expire_photos"); - foreach($r as $item) { + foreach ($r as $item) { // don't expire filed items @@ -1909,7 +1909,7 @@ function drop_items($items) { return; if (count($items)) { - foreach($items as $item) { + foreach ($items as $item) { $owner = drop_item($item,false); if ($owner && ! $uid) $uid = $owner; @@ -1949,7 +1949,7 @@ function drop_item($id,$interactive = true) { // check if logged in user is either the author or owner of this item if (is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $visitor) { + foreach ($_SESSION['remote'] as $visitor) { if ($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) { $contact_id = $visitor['cid']; break; @@ -1966,7 +1966,7 @@ function drop_item($id,$interactive = true) { // so add any arguments as hidden inputs $query = explode_querystring($a->query_string); $inputs = array(); - foreach($query['args'] as $arg) { + foreach ($query['args'] as $arg) { if (strpos($arg, 'confirm=') === false) { $arg_parts = explode('=', $arg); $inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]); @@ -2005,7 +2005,7 @@ function drop_item($id,$interactive = true) { $matches = false; $cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER); if ($cnt) { - foreach($matches as $mtch) { + foreach ($matches as $mtch) { file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],true); } } @@ -2014,7 +2014,7 @@ function drop_item($id,$interactive = true) { $cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER); if ($cnt) { - foreach($matches as $mtch) { + foreach ($matches as $mtch) { file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],false); } } @@ -2044,7 +2044,7 @@ function drop_item($id,$interactive = true) { // If item has attachments, drop them - foreach(explode(",",$item['attach']) as $attach){ + foreach (explode(",",$item['attach']) as $attach){ preg_match("|attach/(\d+)|", $attach, $matches); q("DELETE FROM `attach` WHERE `id` = %d AND `uid` = %d", intval($matches[1]), @@ -2179,7 +2179,7 @@ function list_post_dates($uid, $wall) { // Starting with the current month, get the first and last days of every // month down to and including the month of the first post - while(substr($dnow, 0, 7) >= substr($dthen, 0, 7)) { + while (substr($dnow, 0, 7) >= substr($dthen, 0, 7)) { $dyear = intval(substr($dnow,0,4)); $dstart = substr($dnow,0,8) . '01'; $dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5))); @@ -2208,7 +2208,7 @@ function posted_dates($uid,$wall) { $ret = array(); // Starting with the current month, get the first and last days of every // month down to and including the month of the first post - while(substr($dnow, 0, 7) >= substr($dthen, 0, 7)) { + while (substr($dnow, 0, 7) >= substr($dthen, 0, 7)) { $dstart = substr($dnow,0,8) . '01'; $dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5))); $start_month = datetime_convert('','',$dstart,'Y-m-d'); diff --git a/include/lock.php b/include/lock.php index a48b0ad342..64f6319ef1 100644 --- a/include/lock.php +++ b/include/lock.php @@ -2,9 +2,9 @@ // Provide some ability to lock a PHP function so that multiple processes // can't run the function concurrently -if(! function_exists('lock_function')) { +if (! function_exists('lock_function')) { function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) { - if( $wait_sec == 0 ) + if ( $wait_sec == 0 ) $wait_sec = 2; // don't let the user pick a value that's likely to crash the system $got_lock = false; @@ -16,7 +16,7 @@ function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) { dbesc($fn_name) ); - if((dbm::is_result($r)) AND (!$r[0]['locked'] OR (strtotime($r[0]['created']) < time() - 3600))) { + if ((dbm::is_result($r)) AND (!$r[0]['locked'] OR (strtotime($r[0]['created']) < time() - 3600))) { q("UPDATE `locks` SET `locked` = 1, `created` = '%s' WHERE `name` = '%s'", dbesc(datetime_convert()), dbesc($fn_name) @@ -34,10 +34,10 @@ function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) { q("UNLOCK TABLES"); - if(($block) && (! $got_lock)) + if (($block) && (! $got_lock)) sleep($wait_sec); - } while(($block) && (! $got_lock) && ((time() - $start) < $timeout)); + } while (($block) && (! $got_lock) && ((time() - $start) < $timeout)); logger('lock_function: function ' . $fn_name . ' with blocking = ' . $block . ' got_lock = ' . $got_lock . ' time = ' . (time() - $start), LOGGER_DEBUG); @@ -45,28 +45,29 @@ function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) { }} -if(! function_exists('block_on_function_lock')) { +if (! function_exists('block_on_function_lock')) { function block_on_function_lock($fn_name, $wait_sec = 2, $timeout = 30) { - if( $wait_sec == 0 ) + if ( $wait_sec == 0 ) $wait_sec = 2; // don't let the user pick a value that's likely to crash the system $start = time(); do { $r = q("SELECT locked FROM locks WHERE name = '%s' LIMIT 1", - dbesc($fn_name) - ); + dbesc($fn_name) + ); - if (dbm::is_result($r) && $r[0]['locked']) + if (dbm::is_result($r) && $r[0]['locked']) { sleep($wait_sec); + } - } while(dbm::is_result($r) && $r[0]['locked'] && ((time() - $start) < $timeout)); + } while (dbm::is_result($r) && $r[0]['locked'] && ((time() - $start) < $timeout)); return; }} -if(! function_exists('unlock_function')) { +if (! function_exists('unlock_function')) { function unlock_function($fn_name) { $r = q("UPDATE `locks` SET `locked` = 0, `created` = '%s' WHERE `name` = '%s'", dbesc(NULL_DATE), diff --git a/include/message.php b/include/message.php index 3d5d4d33ab..b94190ca00 100644 --- a/include/message.php +++ b/include/message.php @@ -9,9 +9,9 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ $a = get_app(); - if(! $recipient) return -1; + if (! $recipient) return -1; - if(! strlen($subject)) + if (! strlen($subject)) $subject = t('[no subject]'); $me = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", @@ -22,7 +22,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ intval(local_user()) ); - if(! (count($me) && (count($contact)))) { + if (! (count($me) && (count($contact)))) { return -2; } @@ -34,7 +34,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ // look for any existing conversation structure - if(strlen($replyto)) { + if (strlen($replyto)) { $reply = true; $r = q("select convid from mail where uid = %d and ( uri = '%s' or `parent-uri` = '%s' ) limit 1", intval(local_user()), @@ -45,7 +45,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ $convid = $r[0]['convid']; } - if(! $convid) { + if (! $convid) { // create a new conversation @@ -78,12 +78,12 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){ $convid = $r[0]['id']; } - if(! $convid) { + if (! $convid) { logger('send message: conversation not found.'); return -4; } - if(! strlen($replyto)) { + if (! strlen($replyto)) { $replyto = $convuri; } diff --git a/include/msgclean.php b/include/msgclean.php index 3b5ed5487d..de7dacca29 100644 --- a/include/msgclean.php +++ b/include/msgclean.php @@ -154,7 +154,7 @@ function removelinebreak($message) $lines = array(); $lineno = 0; - foreach($arrbody as $i => $line) { + foreach ($arrbody as $i => $line) { $currquotelevel = 0; $currline = $line; while ((strlen($currline)>0) and ((substr($currline, 0, 1) == '>') diff --git a/include/nav.php b/include/nav.php index fe4c50818e..b184f11806 100644 --- a/include/nav.php +++ b/include/nav.php @@ -8,7 +8,7 @@ function nav(App $a) { * */ - if(!(x($a->page,'nav'))) + if (!(x($a->page,'nav'))) $a->page['nav'] = ''; $a->page['htmlhead'] .= replace_macros(get_markup_template('nav_head.tpl'), array()); @@ -136,7 +136,7 @@ function nav_info(App $a) if (strlen(get_config('system', 'singleuser'))) { $gdir = get_config('system', 'directory'); - if(strlen($gdir)) { + if (strlen($gdir)) { $gdirpath = zrl($gdir, true); } } elseif (get_config('system', 'community_page_style') == CP_USERS_ON_SERVER) { diff --git a/include/network.php b/include/network.php index f9d35c52c3..5f533ae96e 100644 --- a/include/network.php +++ b/include/network.php @@ -78,7 +78,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { @curl_setopt($ch, CURLOPT_HEADER, true); - if(x($opts,"cookiejar")) { + if (x($opts,"cookiejar")) { curl_setopt($ch, CURLOPT_COOKIEJAR, $opts["cookiejar"]); curl_setopt($ch, CURLOPT_COOKIEFILE, $opts["cookiejar"]); } @@ -101,13 +101,13 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { @curl_setopt($ch, CURLOPT_RANGE, '0-'.$range); } - if(x($opts,'headers')){ + if (x($opts,'headers')){ @curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']); } - if(x($opts,'nobody')){ + if (x($opts,'nobody')){ @curl_setopt($ch, CURLOPT_NOBODY, $opts['nobody']); } - if(x($opts,'timeout')){ + if (x($opts,'timeout')){ @curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']); } else { $curl_time = intval(get_config('system','curl_timeout')); @@ -124,14 +124,14 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { } $prx = get_config('system','proxy'); - if(strlen($prx)) { + if (strlen($prx)) { @curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); @curl_setopt($ch, CURLOPT_PROXY, $prx); $prxusr = @get_config('system','proxyuser'); - if(strlen($prxusr)) + if (strlen($prxusr)) @curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr); } - if($binary) + if ($binary) @curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); $a->set_curl_code(0); @@ -156,7 +156,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { // Pull out multiple headers, e.g. proxy and continuation headers // allow for HTTP/2.x without fixing code - while(preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) { + while (preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) { $chunk = substr($base,0,strpos($base,"\r\n\r\n")+4); $header .= $chunk; $base = substr($base,strlen($chunk)); @@ -166,7 +166,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { $a->set_curl_content_type($curl_info['content_type']); $a->set_curl_headers($header); - if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) { + if ($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) { $new_location_info = @parse_url($curl_info["redirect_url"]); $old_location_info = @parse_url($curl_info["url"]); @@ -179,7 +179,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { if (preg_match('/(Location:|URI:)(.*?)\n/i', $header, $matches)) { $newurl = trim(array_pop($matches)); } - if(strpos($newurl,'/') === 0) + if (strpos($newurl,'/') === 0) $newurl = $old_location_info["scheme"]."://".$old_location_info["host"].$newurl; if (filter_var($newurl, FILTER_VALIDATE_URL)) { $redirects++; @@ -200,7 +200,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { $ret['return_code'] = $rc; $ret['success'] = (($rc >= 200 && $rc <= 299) ? true : false); $ret['redirect_url'] = $url; - if(! $ret['success']) { + if (! $ret['success']) { $ret['error'] = curl_error($ch); $ret['debug'] = $curl_info; logger('z_fetch_url: error: ' . $url . ': ' . $ret['error'], LOGGER_DEBUG); @@ -208,7 +208,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) { } $ret['body'] = substr($s,strlen($header)); $ret['header'] = $header; - if(x($opts,'debug')) { + if (x($opts,'debug')) { $ret['debug'] = $curl_info; } @curl_close($ch); @@ -237,7 +237,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) $a = get_app(); $ch = curl_init($url); - if(($redirects > 8) || (! $ch)) + if (($redirects > 8) || (! $ch)) return false; logger("post_url: start ".$url, LOGGER_DATA); @@ -248,7 +248,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) curl_setopt($ch, CURLOPT_POSTFIELDS,$params); curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent()); - if(intval($timeout)) { + if (intval($timeout)) { curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); } else { @@ -256,16 +256,16 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60)); } - if(defined('LIGHTTPD')) { - if(!is_array($headers)) { + if (defined('LIGHTTPD')) { + if (!is_array($headers)) { $headers = array('Expect:'); } else { - if(!in_array('Expect:', $headers)) { + if (!in_array('Expect:', $headers)) { array_push($headers, 'Expect:'); } } } - if($headers) + if ($headers) curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $check_cert = get_config('system','verifyssl'); @@ -274,11 +274,11 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) @curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); } $prx = get_config('system','proxy'); - if(strlen($prx)) { + if (strlen($prx)) { curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, $prx); $prxusr = get_config('system','proxyuser'); - if(strlen($prxusr)) + if (strlen($prxusr)) curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr); } @@ -300,17 +300,17 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) // Pull out multiple headers, e.g. proxy and continuation headers // allow for HTTP/2.x without fixing code - while(preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) { + while (preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) { $chunk = substr($base,0,strpos($base,"\r\n\r\n")+4); $header .= $chunk; $base = substr($base,strlen($chunk)); } - if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) { + if ($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) { $matches = array(); preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches); $newurl = trim(array_pop($matches)); - if(strpos($newurl,'/') === 0) + if (strpos($newurl,'/') === 0) $newurl = $old_location_info["scheme"] . "://" . $old_location_info["host"] . $newurl; if (filter_var($newurl, FILTER_VALIDATE_URL)) { $redirects++; @@ -341,7 +341,7 @@ function xml_status($st, $message = '') { $xml_message = ((strlen($message)) ? "\t" . xmlify($message) . "\r\n" : ''); - if($st) + if ($st) logger('xml_status returning non_zero: ' . $st . " message=" . $message); header( "Content-type: text/xml" ); @@ -369,12 +369,12 @@ function xml_status($st, $message = '') { */ function http_status_exit($val, $description = array()) { $err = ''; - if($val >= 400) { + if ($val >= 400) { $err = 'Error'; if (!isset($description["title"])) $description["title"] = $err." ".$val; } - if($val >= 200 && $val < 300) + if ($val >= 200 && $val < 300) $err = 'OK'; logger('http_status_exit ' . $val); @@ -400,20 +400,20 @@ function http_status_exit($val, $description = array()) { * @return boolean True if it's a valid URL, fals if something wrong with it */ function validate_url(&$url) { - if(get_config('system','disable_url_validation')) + if (get_config('system','disable_url_validation')) return true; // no naked subdomains (allow localhost for tests) - if(strpos($url,'.') === false && strpos($url,'/localhost/') === false) + if (strpos($url,'.') === false && strpos($url,'/localhost/') === false) return false; - if(substr($url,0,4) != 'http') + if (substr($url,0,4) != 'http') $url = 'http://' . $url; /// @TODO Really supress function outcomes? Why not find them + debug them? $h = @parse_url($url); - if((is_array($h)) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) { + if ((is_array($h)) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) { return true; } @@ -428,14 +428,14 @@ function validate_url(&$url) { */ function validate_email($addr) { - if(get_config('system','disable_email_validation')) + if (get_config('system','disable_email_validation')) return true; - if(! strpos($addr,'@')) + if (! strpos($addr,'@')) return false; $h = substr($addr,strpos($addr,'@') + 1); - if(($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) { + if (($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) { return true; } return false; @@ -454,12 +454,12 @@ function allowed_url($url) { $h = @parse_url($url); - if(! $h) { + if (! $h) { return false; } $str_allowed = get_config('system','allowed_sites'); - if(! $str_allowed) + if (! $str_allowed) return true; $found = false; @@ -468,16 +468,16 @@ function allowed_url($url) { // always allow our own site - if($host == strtolower($_SERVER['SERVER_NAME'])) + if ($host == strtolower($_SERVER['SERVER_NAME'])) return true; $fnmatch = function_exists('fnmatch'); $allowed = explode(',',$str_allowed); - if(count($allowed)) { - foreach($allowed as $a) { + if (count($allowed)) { + foreach ($allowed as $a) { $pat = strtolower(trim($a)); - if(($fnmatch && fnmatch($pat,$host)) || ($pat == $host)) { + if (($fnmatch && fnmatch($pat,$host)) || ($pat == $host)) { $found = true; break; } @@ -497,24 +497,25 @@ function allowed_url($url) { */ function allowed_email($email) { - $domain = strtolower(substr($email,strpos($email,'@') + 1)); - if(! $domain) + if (! $domain) { return false; + } $str_allowed = get_config('system','allowed_email'); - if(! $str_allowed) + if (! $str_allowed) { return true; + } $found = false; $fnmatch = function_exists('fnmatch'); $allowed = explode(',',$str_allowed); - if(count($allowed)) { - foreach($allowed as $a) { + if (count($allowed)) { + foreach ($allowed as $a) { $pat = strtolower(trim($a)); - if(($fnmatch && fnmatch($pat,$domain)) || ($pat == $domain)) { + if (($fnmatch && fnmatch($pat,$domain)) || ($pat == $domain)) { $found = true; break; } @@ -543,8 +544,8 @@ function avatar_img($email) { function parse_xml_string($s,$strict = true) { /// @todo Move this function to the xml class - if($strict) { - if(! strstr($s,'user = $record; - if(strlen($a->user['timezone'])) { + if (strlen($a->user['timezone'])) { date_default_timezone_set($a->user['timezone']); $a->timezone = $a->user['timezone']; } diff --git a/include/oembed.php b/include/oembed.php index a1945894fc..06c2520d14 100755 --- a/include/oembed.php +++ b/include/oembed.php @@ -314,9 +314,11 @@ function oembed_html2bbcode($text) { $entries = $xpath->query("//span[$xattr]"); $xattr = "@rel='oembed'";//oe_build_xpath("rel","oembed"); - foreach($entries as $e) { + foreach ($entries as $e) { $href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue; - if(!is_null($href)) $e->parentNode->replaceChild(new DOMText("[embed]".$href."[/embed]"), $e); + if (!is_null($href)) { + $e->parentNode->replaceChild(new DOMText("[embed]".$href."[/embed]"), $e); + } } return oe_get_inner_html( $dom->getElementsByTagName("body")->item(0) ); } else { diff --git a/include/onepoll.php b/include/onepoll.php index 5227b61a1a..d425212819 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -61,7 +61,7 @@ function onepoll_run(&$argv, &$argc){ intval($contact_id) ); - if (! count($contacts)) { + if (! dbm::is_result($contacts)) { return; } @@ -437,16 +437,18 @@ function onepoll_run(&$argv, &$argc){ if ($raw_refs) { $refs_arr = explode(' ', $raw_refs); if (count($refs_arr)) { - for($x = 0; $x < count($refs_arr); $x ++) + for ($x = 0; $x < count($refs_arr); $x ++) { $refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'"; + } } $qstr = implode(',',$refs_arr); $r = q("SELECT `uri` , `parent-uri` FROM `item` USE INDEX (`uid_uri`) WHERE `uri` IN ($qstr) AND `uid` = %d LIMIT 1", intval($importer_uid) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $datarray['parent-uri'] = $r[0]['parent-uri']; // Set the parent as the top-level item - // $datarray['parent-uri'] = $r[0]['uri']; + //$datarray['parent-uri'] = $r[0]['uri']; + } } // Decoding the header diff --git a/include/ostatus.php b/include/ostatus.php index 2c4b677a53..3a8c5ae37c 100644 --- a/include/ostatus.php +++ b/include/ostatus.php @@ -37,9 +37,11 @@ class ostatus { * @param bool $onlyfetch Only fetch the header without updating the contact entries * * @return array Array of author related entries for the item + * @todo Add type-hints */ private function fetchauthor($xpath, $context, $importer, &$contact, $onlyfetch) { + /// @TODO One statment is enough ... $author = array(); $author["author-link"] = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue; $author["author-name"] = $xpath->evaluate('atom:author/atom:name/text()', $context)->item(0)->nodeValue; @@ -47,33 +49,41 @@ class ostatus { $aliaslink = $author["author-link"]; $alternate = $xpath->query("atom:author/atom:link[@rel='alternate']", $context)->item(0)->attributes; - if (is_object($alternate)) - foreach($alternate AS $attributes) - if ($attributes->name == "href") + if (is_object($alternate)) { + /// @TODO foreach () may only later work on objects that have iterator interface implemented, please check this + foreach ($alternate AS $attributes) { + if ($attributes->name == "href") { $author["author-link"] = $attributes->textContent; + } + } + } $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` IN ('%s', '%s') AND `network` != '%s'", intval($importer["uid"]), dbesc(normalise_link($author["author-link"])), dbesc(normalise_link($aliaslink)), dbesc(NETWORK_STATUSNET)); - if ($r) { + if (dbm::is_result($r)) { $contact = $r[0]; $author["contact-id"] = $r[0]["id"]; - } else + } else { $author["contact-id"] = $contact["id"]; + } $avatarlist = array(); $avatars = $xpath->query("atom:author/atom:link[@rel='avatar']", $context); - foreach($avatars AS $avatar) { + foreach ($avatars AS $avatar) { $href = ""; $width = 0; - foreach($avatar->attributes AS $attributes) { - if ($attributes->name == "href") + foreach ($avatar->attributes AS $attributes) { + if ($attributes->name == "href") { $href = $attributes->textContent; - if ($attributes->name == "width") + } + if ($attributes->name == "width") { $width = $attributes->textContent; + } } - if (($width > 0) AND ($href != "")) + if (($width > 0) AND ($href != "")) { $avatarlist[$width] = $href; + } } if (count($avatarlist) > 0) { krsort($avatarlist); @@ -81,15 +91,16 @@ class ostatus { } $displayname = $xpath->evaluate('atom:author/poco:displayName/text()', $context)->item(0)->nodeValue; - if ($displayname != "") + if ($displayname != "") { $author["author-name"] = $displayname; + } $author["owner-name"] = $author["author-name"]; $author["owner-link"] = $author["author-link"]; $author["owner-avatar"] = $author["author-avatar"]; // Only update the contacts if it is an OStatus contact - if ($r AND !$onlyfetch AND ($contact["network"] == NETWORK_OSTATUS)) { + if (dbm::is_result($r) AND !$onlyfetch AND ($contact["network"] == NETWORK_OSTATUS)) { // Update contact data @@ -104,24 +115,29 @@ class ostatus { // $contact["poll"] = $value; $value = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $contact["alias"] = $value; + } $value = $xpath->evaluate('atom:author/poco:displayName/text()', $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $contact["name"] = $value; + } $value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $contact["nick"] = $value; + } $value = $xpath->evaluate('atom:author/poco:note/text()', $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $contact["about"] = html2bbcode($value); + } $value = $xpath->evaluate('atom:author/poco:address/poco:formatted/text()', $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $contact["location"] = $value; + } if (($contact["name"] != $r[0]["name"]) OR ($contact["nick"] != $r[0]["nick"]) OR ($contact["about"] != $r[0]["about"]) OR ($contact["alias"] != $r[0]["alias"]) OR ($contact["location"] != $r[0]["location"])) { @@ -176,14 +192,16 @@ class ostatus { * @param array $importer user record of the importing user * * @return array Array of author related entries for the item + * @todo add type-hints */ public static function salmon_author($xml, $importer) { - if ($xml == "") + if ($xml == "") { return; + } $doc = new DOMDocument(); - @$doc->loadXML($xml); + $doc->loadXML($xml); $xpath = new DomXPath($doc); $xpath->registerNamespace('atom', NAMESPACE_ATOM1); @@ -211,20 +229,22 @@ class ostatus { * @param array $importer user record of the importing user * @param $contact * @param array $hub Called by reference, returns the fetched hub data + * @todo Add missing-type hint + determine type for $contact */ public static function import($xml,$importer,&$contact, &$hub) { /// @todo this function is too long. It has to be split in many parts logger("Import OStatus message", LOGGER_DEBUG); - if ($xml == "") + if ($xml == "") { return; + } //$tempfile = tempnam(get_temppath(), "import"); //file_put_contents($tempfile, $xml); $doc = new DOMDocument(); - @$doc->loadXML($xml); + $doc->loadXML($xml); $xpath = new DomXPath($doc); $xpath->registerNamespace('atom', NAMESPACE_ATOM1); @@ -238,13 +258,16 @@ class ostatus { $gub = ""; $hub_attributes = $xpath->query("/atom:feed/atom:link[@rel='hub']")->item(0)->attributes; - if (is_object($hub_attributes)) - foreach($hub_attributes AS $hub_attribute) + if (is_object($hub_attributes)) { + foreach ($hub_attributes AS $hub_attribute) { if ($hub_attribute->name == "href") { $hub = $hub_attribute->textContent; logger("Found hub ".$hub, LOGGER_DEBUG); } + } + } + /// @TODO One statement is enough ... $header = array(); $header["uid"] = $importer["uid"]; $header["network"] = NETWORK_OSTATUS; @@ -257,10 +280,11 @@ class ostatus { // depending on that, the first node is different $first_child = $doc->firstChild->tagName; - if ($first_child == "feed") + if ($first_child == "feed") { $entries = $xpath->query('/atom:feed/atom:entry'); - else + } else { $entries = $xpath->query('/atom:entry'); + } $conversation = ""; $conversationlist = array(); @@ -277,16 +301,18 @@ class ostatus { $mention = false; // fetch the author - if ($first_child == "feed") + if ($first_child == "feed") { $author = self::fetchauthor($xpath, $doc->firstChild, $importer, $contact, false); - else + } else { $author = self::fetchauthor($xpath, $entry, $importer, $contact, false); + } $value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $context)->item(0)->nodeValue; - if ($value != "") + if ($value != "") { $nickname = $value; - else + } else { $nickname = $author["author-name"]; + } $item = array_merge($header, $author); @@ -295,7 +321,7 @@ class ostatus { $r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s'", intval($importer["uid"]), dbesc($item["uri"])); - if ($r) { + if (dbm::is_result($r)) { logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$r[0]["id"], LOGGER_DEBUG); continue; } @@ -306,8 +332,9 @@ class ostatus { if (($item["object-type"] == ACTIVITY_OBJ_BOOKMARK) OR ($item["object-type"] == ACTIVITY_OBJ_EVENT)) { $item["title"] = $xpath->query('atom:title/text()', $entry)->item(0)->nodeValue; $item["body"] = $xpath->query('atom:summary/text()', $entry)->item(0)->nodeValue; - } elseif ($item["object-type"] == ACTIVITY_OBJ_QUESTION) + } elseif ($item["object-type"] == ACTIVITY_OBJ_QUESTION) { $item["title"] = $xpath->query('atom:title/text()', $entry)->item(0)->nodeValue; + } $item["object"] = $xml; $item["verb"] = $xpath->query('activity:verb/text()', $entry)->item(0)->nodeValue; @@ -352,8 +379,9 @@ class ostatus { } // http://activitystrea.ms/schema/1.0/rsvp-yes - if (!in_array($item["verb"], array(ACTIVITY_POST, ACTIVITY_LIKE, ACTIVITY_SHARE))) + if (!in_array($item["verb"], array(ACTIVITY_POST, ACTIVITY_LIKE, ACTIVITY_SHARE))) { logger("Unhandled verb ".$item["verb"]." ".print_r($item, true)); + } $item["created"] = $xpath->query('atom:published/text()', $entry)->item(0)->nodeValue; $item["edited"] = $xpath->query('atom:updated/text()', $entry)->item(0)->nodeValue; @@ -363,11 +391,13 @@ class ostatus { $inreplyto = $xpath->query('thr:in-reply-to', $entry); if (is_object($inreplyto->item(0))) { - foreach($inreplyto->item(0)->attributes AS $attributes) { - if ($attributes->name == "ref") + foreach ($inreplyto->item(0)->attributes AS $attributes) { + if ($attributes->name == "ref") { $item["parent-uri"] = $attributes->textContent; - if ($attributes->name == "href") + } + if ($attributes->name == "href") { $related = $attributes->textContent; + } } } @@ -378,10 +408,10 @@ class ostatus { $categories = $xpath->query('atom:category', $entry); if ($categories) { foreach ($categories AS $category) { - foreach($category->attributes AS $attributes) + foreach ($category->attributes AS $attributes) if ($attributes->name == "term") { $term = $attributes->textContent; - if(strlen($item["tag"])) + if (strlen($item["tag"])) $item["tag"] .= ','; $item["tag"] .= "#[url=".App::get_baseurl()."/search?tag=".$term."]".$term."[/url]"; } @@ -399,7 +429,7 @@ class ostatus { $length = "0"; $title = ""; foreach ($links AS $link) { - foreach($link->attributes AS $attributes) { + foreach ($link->attributes AS $attributes) { if ($attributes->name == "href") $href = $attributes->textContent; if ($attributes->name == "rel") @@ -411,7 +441,7 @@ class ostatus { if ($attributes->name == "title") $title = $attributes->textContent; } - if (($rel != "") AND ($href != "")) + if (($rel != "") AND ($href != "")) { switch($rel) { case "alternate": $item["plink"] = $href; @@ -424,7 +454,7 @@ class ostatus { break; case "enclosure": $enclosure = $href; - if(strlen($item["attach"])) + if (strlen($item["attach"])) $item["attach"] .= ','; $item["attach"] .= '[attach]href="'.$href.'" length="'.$length.'" type="'.$type.'" title="'.$title.'"[/attach]'; @@ -448,6 +478,7 @@ class ostatus { $mention = true; break; } + } } } @@ -456,13 +487,16 @@ class ostatus { $notice_info = $xpath->query('statusnet:notice_info', $entry); if ($notice_info AND ($notice_info->length > 0)) { - foreach($notice_info->item(0)->attributes AS $attributes) { - if ($attributes->name == "source") + foreach ($notice_info->item(0)->attributes AS $attributes) { + if ($attributes->name == "source") { $item["app"] = strip_tags($attributes->textContent); - if ($attributes->name == "local_id") + } + if ($attributes->name == "local_id") { $local_id = $attributes->textContent; - if ($attributes->name == "repeat_of") + } + if ($attributes->name == "repeat_of") { $repeat_of = $attributes->textContent; + } } } @@ -473,24 +507,32 @@ class ostatus { if (is_object($activityobjects)) { $orig_uri = $xpath->query("activity:object/atom:id", $activityobjects)->item(0)->nodeValue; - if (!isset($orig_uri)) + if (!isset($orig_uri)) { $orig_uri = $xpath->query('atom:id/text()', $activityobjects)->item(0)->nodeValue; + } $orig_links = $xpath->query("activity:object/atom:link[@rel='alternate']", $activityobjects); - if ($orig_links AND ($orig_links->length > 0)) - foreach($orig_links->item(0)->attributes AS $attributes) - if ($attributes->name == "href") + if ($orig_links AND ($orig_links->length > 0)) { + foreach ($orig_links->item(0)->attributes AS $attributes) { + if ($attributes->name == "href") { $orig_link = $attributes->textContent; + } + } + } - if (!isset($orig_link)) + if (!isset($orig_link)) { $orig_link = $xpath->query("atom:link[@rel='alternate']", $activityobjects)->item(0)->nodeValue; + } - if (!isset($orig_link)) + if (!isset($orig_link)) { $orig_link = self::convert_href($orig_uri); + } $orig_body = $xpath->query('activity:object/atom:content/text()', $activityobjects)->item(0)->nodeValue; - if (!isset($orig_body)) + + if (!isset($orig_body)) { $orig_body = $xpath->query('atom:content/text()', $activityobjects)->item(0)->nodeValue; + } $orig_created = $xpath->query('atom:published/text()', $activityobjects)->item(0)->nodeValue; $orig_edited = $xpath->query('atom:updated/text()', $activityobjects)->item(0)->nodeValue; @@ -511,8 +553,10 @@ class ostatus { $item["verb"] = $xpath->query('activity:verb/text()', $activityobjects)->item(0)->nodeValue; $item["object-type"] = $xpath->query('activity:object/activity:object-type/text()', $activityobjects)->item(0)->nodeValue; - if (!isset($item["object-type"])) + + if (!isset($item["object-type"])) { $item["object-type"] = $xpath->query('activity:object-type/text()', $activityobjects)->item(0)->nodeValue; + } } } @@ -540,12 +584,14 @@ class ostatus { intval($importer["uid"]), dbesc($item["parent-uri"])); } } - if ($r) { + + if (dbm::is_result($r)) { $item["type"] = 'remote-comment'; $item["gravity"] = GRAVITY_COMMENT; } - } else + } else { $item["parent-uri"] = $item["uri"]; + } $item_id = self::completion($conversation, $importer["uid"], $item, $self); @@ -568,22 +614,26 @@ class ostatus { public static function convert_href($href) { $elements = explode(":",$href); - if ((count($elements) <= 2) OR ($elements[0] != "tag")) + if ((count($elements) <= 2) OR ($elements[0] != "tag")) { return $href; + } $server = explode(",", $elements[1]); $conversation = explode("=", $elements[2]); - if ((count($elements) == 4) AND ($elements[2] == "post")) + if ((count($elements) == 4) AND ($elements[2] == "post")) { return "http://".$server[0]."/notice/".$elements[3]; + } - if ((count($conversation) != 2) OR ($conversation[1] =="")) + if ((count($conversation) != 2) OR ($conversation[1] =="")) { return $href; + } - if ($elements[3] == "objectType=thread") + if ($elements[3] == "objectType=thread") { return "http://".$server[0]."/conversation/".$conversation[1]; - else + } else { return "http://".$server[0]."/notice/".$conversation[1]; + } return $href; } @@ -656,42 +706,53 @@ class ostatus { * @brief Updates the gcontact table with actor data from the conversation * * @param object $actor The actor object that contains the contact data + * @todo Add type-hint */ private function conv_fetch_actor($actor) { // We set the generation to "3" since the data here is not as reliable as the data we get on other occasions $contact = array("network" => NETWORK_OSTATUS, "generation" => 3); - if (isset($actor->url)) + if (isset($actor->url)) { $contact["url"] = $actor->url; + } - if (isset($actor->displayName)) + if (isset($actor->displayName)) { $contact["name"] = $actor->displayName; + } - if (isset($actor->portablecontacts_net->displayName)) + if (isset($actor->portablecontacts_net->displayName)) { $contact["name"] = $actor->portablecontacts_net->displayName; + } - if (isset($actor->portablecontacts_net->preferredUsername)) + if (isset($actor->portablecontacts_net->preferredUsername)) { $contact["nick"] = $actor->portablecontacts_net->preferredUsername; + } - if (isset($actor->id)) + if (isset($actor->id)) { $contact["alias"] = $actor->id; + } - if (isset($actor->summary)) + if (isset($actor->summary)) { $contact["about"] = $actor->summary; + } - if (isset($actor->portablecontacts_net->note)) + if (isset($actor->portablecontacts_net->note)) { $contact["about"] = $actor->portablecontacts_net->note; + } - if (isset($actor->portablecontacts_net->addresses->formatted)) + if (isset($actor->portablecontacts_net->addresses->formatted)) { $contact["location"] = $actor->portablecontacts_net->addresses->formatted; + } - if (isset($actor->image->url)) + if (isset($actor->image->url)) { $contact["photo"] = $actor->image->url; + } - if (isset($actor->image->width)) + if (isset($actor->image->width)) { $avatarwidth = $actor->image->width; + } if (is_array($actor->status_net->avatarLinks)) foreach ($actor->status_net->avatarLinks AS $avatar) { @@ -718,22 +779,26 @@ class ostatus { if ($conversation_id != "") { $elements = explode(":", $conversation_id); - if ((count($elements) <= 2) OR ($elements[0] != "tag")) + if ((count($elements) <= 2) OR ($elements[0] != "tag")) { return $conversation_id; + } } - if ($self == "") + if ($self == "") { return ""; + } $json = str_replace(".atom", ".json", $self); $raw = fetch_url($json); - if ($raw == "") + if ($raw == "") { return ""; + } $data = json_decode($raw); - if (!is_object($data)) + if (!is_object($data)) { return ""; + } $conversation_id = $data->statusnet_conversation_id; @@ -759,11 +824,12 @@ class ostatus { $contact = q("SELECT `id`, `rel`, `network` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` != '%s'", $uid, normalise_link($actor), NETWORK_STATUSNET); - if (!$contact) + if (!dbm::is_result($contact)) { $contact = q("SELECT `id`, `rel`, `network` FROM `contact` WHERE `uid` = %d AND `alias` IN ('%s', '%s') AND `network` != '%s'", $uid, $actor, normalise_link($actor), NETWORK_STATUSNET); + } - if ($contact) { + if (dbm::is_result($contact)) { logger("Found contact for url ".$actor, LOGGER_DEBUG); $details["contact_id"] = $contact[0]["id"]; $details["network"] = $contact[0]["network"]; @@ -795,6 +861,7 @@ class ostatus { * @param array $item Data of the item that is to be posted * * @return integer The item id of the posted item array + * @todo Add type-hints */ private function completion($conversation_url, $uid, $item = array(), $self = "") { @@ -827,9 +894,9 @@ class ostatus { (SELECT `oid` FROM `term` WHERE `uid` = %d AND `otype` = %d AND `type` = %d AND `url` = '%s'))", intval($uid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc($conversation_url)); */ - if ($parents) + if (dbm::is_result($parents)) { $parent = $parents[0]; - elseif (count($item) > 0) { + } elseif (count($item) > 0) { $parent = $item; $parent["type"] = "remote"; $parent["verb"] = ACTIVITY_POST; @@ -837,9 +904,11 @@ class ostatus { } else { // Preset the parent $r = q("SELECT `id` FROM `contact` WHERE `self` AND `uid`=%d", $uid); - if (!$r) + if (!dbm::is_result($r)) { return(-2); + } + /// @TODO one statement is enough ... $parent = array(); $parent["id"] = 0; $parent["parent"] = 0; @@ -866,20 +935,24 @@ class ostatus { } elseif (!$conv_arr["success"] AND (substr($conv, 0, 8) == "https://")) { $conv = str_replace("https://", "http://", $conv); $conv_as = fetch_url($conv."?page=".$pageno); - } else + } else { $conv_as = $conv_arr["body"]; + } $conv_as = str_replace(',"statusnet:notice_info":', ',"statusnet_notice_info":', $conv_as); $conv_as = json_decode($conv_as); $no_of_items = sizeof($items); - if (@is_array($conv_as->items)) - foreach ($conv_as->items AS $single_item) + if (is_array($conv_as->items)) { + foreach ($conv_as->items AS $single_item) { $items[$single_item->id] = $single_item; + } + } - if ($no_of_items == sizeof($items)) + if ($no_of_items == sizeof($items)) { break; + } $pageno++; @@ -897,13 +970,20 @@ class ostatus { } return($item_stored); - } else + } else { return(-3); + } } $items = array_reverse($items); $r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND `self`", intval($uid)); + + if (!dbm::is_result($r)) { + logger("Failed query, uid=" . intval($uid) ." in " . __FUNCTION__); + killme(); + } + $importer = $r[0]; $new_parent = true; @@ -919,15 +999,18 @@ class ostatus { $mention = false; - if (isset($single_conv->object->id)) + if (isset($single_conv->object->id)) { $single_conv->id = $single_conv->object->id; + } $plink = self::convert_href($single_conv->id); - if (isset($single_conv->object->url)) + if (isset($single_conv->object->url)) { $plink = self::convert_href($single_conv->object->url); + } - if (@!$single_conv->id) + if (!isset($single_conv->id)) { continue; + } logger("Got id ".$single_conv->id, LOGGER_DEBUG); @@ -946,7 +1029,7 @@ class ostatus { (SELECT `parent` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s')) LIMIT 1", intval($uid), dbesc($first_id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN)); - if ($new_parents) { + if (dbm::is_result($new_parents)) { if ($new_parents[0]["parent"] == $parent["parent"]) { // Option 2: This post is already present inside our thread - but not as thread starter logger("Option 2: uri present in our thread: ".$first_id, LOGGER_DEBUG); @@ -977,16 +1060,18 @@ class ostatus { if (isset($single_conv->context->inReplyTo->id)) { $parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1", intval($uid), dbesc($single_conv->context->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN)); - if ($parent_exists) + if (dbm::is_result($parent_exists)) { $parent_uri = $single_conv->context->inReplyTo->id; + } } // This is the current way if (isset($single_conv->object->inReplyTo->id)) { $parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1", intval($uid), dbesc($single_conv->object->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN)); - if ($parent_exists) + if (dbm::is_result($parent_exists)) { $parent_uri = $single_conv->object->inReplyTo->id; + } } $message_exists = q("SELECT `id`, `parent`, `uri` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1", @@ -1033,14 +1118,18 @@ class ostatus { continue; } - if (is_array($single_conv->to)) - foreach($single_conv->to AS $to) - if ($importer["nurl"] == normalise_link($to->id)) + if (is_array($single_conv->to)) { + foreach ($single_conv->to AS $to) { + if ($importer["nurl"] == normalise_link($to->id)) { $mention = true; + } + } + } $actor = $single_conv->actor->id; - if (isset($single_conv->actor->url)) + if (isset($single_conv->actor->url)) { $actor = $single_conv->actor->url; + } $details = self::get_actor_details($actor, $uid, $parent["contact-id"]); @@ -1050,6 +1139,7 @@ class ostatus { continue; } + /// @TODO One statment is okay (until if () ) $arr = array(); $arr["network"] = $details["network"]; $arr["uri"] = $single_conv->id; @@ -1060,10 +1150,13 @@ class ostatus { $arr["created"] = $single_conv->published; $arr["edited"] = $single_conv->published; $arr["owner-name"] = $single_conv->actor->displayName; - if ($arr["owner-name"] == '') + + if ($arr["owner-name"] == '') { $arr["owner-name"] = $single_conv->actor->contact->displayName; - if ($arr["owner-name"] == '') + } + if ($arr["owner-name"] == '') { $arr["owner-name"] = $single_conv->actor->portablecontacts_net->displayName; + } $arr["owner-link"] = $actor; $arr["owner-avatar"] = $single_conv->actor->image->url; @@ -1072,17 +1165,17 @@ class ostatus { $arr["author-avatar"] = $single_conv->actor->image->url; $arr["body"] = add_page_info_to_body(html2bbcode($single_conv->content)); - if (isset($single_conv->status_net->notice_info->source)) + if (isset($single_conv->status_net->notice_info->source)) { $arr["app"] = strip_tags($single_conv->status_net->notice_info->source); - elseif (isset($single_conv->statusnet->notice_info->source)) + } elseif (isset($single_conv->statusnet->notice_info->source)) { $arr["app"] = strip_tags($single_conv->statusnet->notice_info->source); - elseif (isset($single_conv->statusnet_notice_info->source)) + } elseif (isset($single_conv->statusnet_notice_info->source)) { $arr["app"] = strip_tags($single_conv->statusnet_notice_info->source); - elseif (isset($single_conv->provider->displayName)) + } elseif (isset($single_conv->provider->displayName)) { $arr["app"] = $single_conv->provider->displayName; - else + } else { $arr["app"] = "OStatus"; - + } $arr["object"] = json_encode($single_conv); $arr["verb"] = $parent["verb"]; @@ -1092,27 +1185,31 @@ class ostatus { // Is it a reshared item? if (isset($single_conv->verb) AND ($single_conv->verb == "share") AND isset($single_conv->object)) { - if (is_array($single_conv->object)) + if (is_array($single_conv->object)) { $single_conv->object = $single_conv->object[0]; + } logger("Found reshared item ".$single_conv->object->id); // $single_conv->object->context->conversation; - if (isset($single_conv->object->object->id)) + if (isset($single_conv->object->object->id)) { $arr["uri"] = $single_conv->object->object->id; - else + } else { $arr["uri"] = $single_conv->object->id; + } - if (isset($single_conv->object->object->url)) + if (isset($single_conv->object->object->url)) { $plink = self::convert_href($single_conv->object->object->url); - else + } else { $plink = self::convert_href($single_conv->object->url); + } - if (isset($single_conv->object->object->content)) + if (isset($single_conv->object->object->content)) { $arr["body"] = add_page_info_to_body(html2bbcode($single_conv->object->object->content)); - else + } else { $arr["body"] = add_page_info_to_body(html2bbcode($single_conv->object->content)); + } $arr["plink"] = $plink; @@ -1120,8 +1217,9 @@ class ostatus { $arr["edited"] = $single_conv->object->published; $arr["author-name"] = $single_conv->object->actor->displayName; - if ($arr["owner-name"] == '') + if ($arr["owner-name"] == '') { $arr["author-name"] = $single_conv->object->actor->contact->displayName; + } $arr["author-link"] = $single_conv->object->actor->url; $arr["author-avatar"] = $single_conv->object->actor->image->url; @@ -1133,20 +1231,24 @@ class ostatus { $arr["coord"] = trim($single_conv->object->location->lat." ".$single_conv->object->location->lon); } - if ($arr["location"] == "") + if ($arr["location"] == "") { unset($arr["location"]); + } - if ($arr["coord"] == "") + if ($arr["coord"] == "") { unset($arr["coord"]); + } // Copy fields from given item array if (isset($item["uri"]) AND (($item["uri"] == $arr["uri"]) OR ($item["uri"] == $single_conv->id))) { $copy_fields = array("owner-name", "owner-link", "owner-avatar", "author-name", "author-link", "author-avatar", "gravity", "body", "object-type", "object", "verb", "created", "edited", "coord", "tag", "title", "attach", "app", "type", "location", "contact-id", "uri"); - foreach ($copy_fields AS $field) - if (isset($item[$field])) + foreach ($copy_fields AS $field) { + if (isset($item[$field])) { $arr[$field] = $item[$field]; + } + } } @@ -1172,8 +1274,9 @@ class ostatus { logger('setting new parent to id '.$newitem); $new_parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1", intval($uid), intval($newitem)); - if ($new_parents) + if (dbm::is_result($new_parents)) { $parent = $new_parents[0]; + } } } @@ -1208,15 +1311,18 @@ class ostatus { $conversation_url = self::convert_href($conversation_url); $messages = q("SELECT `uid`, `parent`, `created`, `received`, `guid` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid)); - if (!$messages) + + if (!dbm::is_result($messages)) { return; + } + $message = $messages[0]; // Store conversation url if not done before $conversation = q("SELECT `url` FROM `term` WHERE `uid` = %d AND `oid` = %d AND `otype` = %d AND `type` = %d", intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION)); - if (!$conversation) { + if (!dbm::is_result($conversation)) { $r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `created`, `received`, `guid`) VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s')", intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc($message["created"]), dbesc($conversation_url), dbesc($message["created"]), dbesc($message["received"]), dbesc($message["guid"])); @@ -1230,32 +1336,38 @@ class ostatus { * @param array $item The item array of thw post * * @return string The guid if the post is a reshare + * @todo Add type-hints */ private function get_reshared_guid($item) { $body = trim($item["body"]); // Skip if it isn't a pure repeated messages // Does it start with a share? - if (strpos($body, "[share") > 0) + if (strpos($body, "[share") > 0) { return(""); + } // Does it end with a share? - if (strlen($body) > (strrpos($body, "[/share]") + 8)) + if (strlen($body) > (strrpos($body, "[/share]") + 8)) { return(""); + } $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body); // Skip if there is no shared message in there - if ($body == $attributes) + if ($body == $attributes) { return(false); + } $guid = ""; preg_match("/guid='(.*?)'/ism", $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $guid = $matches[1]; + } preg_match('/guid="(.*?)"/ism', $attributes, $matches); - if ($matches[1] != "") + if ($matches[1] != "") { $guid = $matches[1]; + } return $guid; } @@ -1271,10 +1383,11 @@ class ostatus { $siteinfo = get_attached_data($body); if (($siteinfo["type"] == "photo")) { - if (isset($siteinfo["preview"])) + if (isset($siteinfo["preview"])) { $preview = $siteinfo["preview"]; - else + } else { $preview = $siteinfo["image"]; + } // Is it a remote picture? Then make a smaller preview here $preview = proxy_url($preview, false, PROXY_SIZE_SMALL); @@ -1283,10 +1396,11 @@ class ostatus { $preview = str_replace(array("-0.jpg", "-0.png"), array("-2.jpg", "-2.png"), $preview); $preview = str_replace(array("-1.jpg", "-1.png"), array("-2.jpg", "-2.png"), $preview); - if (isset($siteinfo["url"])) + if (isset($siteinfo["url"])) { $url = $siteinfo["url"]; - else + } else { $url = $siteinfo["image"]; + } $body = trim($siteinfo["text"])." [url]".$url."[/url]\n[img]".$preview."[/img]"; } @@ -1301,6 +1415,7 @@ class ostatus { * @param array $owner Contact data of the poster * * @return object header root element + * @todo Add type-hints */ private function add_header($doc, $owner) { @@ -1360,20 +1475,23 @@ class ostatus { * * @param object $doc XML document * @param object $root XML root element where the hub links are added + * @todo Add type-hints */ public static function hublinks($doc, $root) { $hub = get_config('system','huburl'); $hubxml = ''; - if(strlen($hub)) { + if (strlen($hub)) { $hubs = explode(',', $hub); - if(count($hubs)) { - foreach($hubs as $h) { + if (count($hubs)) { + foreach ($hubs as $h) { $h = trim($h); - if(! strlen($h)) + if (! strlen($h)) { continue; - if ($h === '[internal]') + } + if ($h === '[internal]') { $h = App::get_baseurl() . '/pubsubhubbub'; + } xml::add_element($doc, $root, "link", "", array("href" => $h, "rel" => "hub")); } } @@ -1386,6 +1504,7 @@ class ostatus { * @param object $doc XML document * @param object $root XML root element where the hub links are added * @param array $item Data of the item that is to be posted + * @todo Add type-hints */ private function get_attachment($doc, $root, $item) { $o = ""; @@ -1429,20 +1548,22 @@ class ostatus { $arr = explode('[/attach],',$item['attach']); - if(count($arr)) { - foreach($arr as $r) { + if (count($arr)) { + foreach ($arr as $r) { $matches = false; $cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches); - if($cnt) { + if ($cnt) { $attributes = array("rel" => "enclosure", "href" => $matches[1], "type" => $matches[3]); - if(intval($matches[2])) + if (intval($matches[2])) { $attributes["length"] = intval($matches[2]); + } - if(trim($matches[4]) != "") + if (trim($matches[4]) != "") { $attributes["title"] = trim($matches[4]); + } xml::add_element($doc, $root, "link", "", $attributes); } @@ -1457,12 +1578,15 @@ class ostatus { * @param array $owner Contact data of the poster * * @return object author element + * @todo Add type-hints */ private function add_author($doc, $owner) { + $profile = null; $r = q("SELECT `homepage` FROM `profile` WHERE `uid` = %d AND `is-default` LIMIT 1", intval($owner["uid"])); - if ($r) + if (dbm::is_result($r)) { $profile = $r[0]; + } $author = $doc->createElement("author"); xml::add_element($doc, $author, "activity:object-type", ACTIVITY_OBJ_PERSON); @@ -1530,10 +1654,12 @@ class ostatus { * @param array $item Data of the item that is to be posted * * @return string activity + * @todo Add type-hints */ function construct_verb($item) { - if ($item['verb']) + if ($item['verb']) { return $item['verb']; + } return ACTIVITY_POST; } @@ -1543,10 +1669,12 @@ class ostatus { * @param array $item Data of the item that is to be posted * * @return string Object type + * @todo Add type-hints */ function construct_objecttype($item) { - if (in_array($item['object-type'], array(ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT))) + if (in_array($item['object-type'], array(ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT))) { return $item['object-type']; + }; return ACTIVITY_OBJ_NOTE; } @@ -1584,6 +1712,7 @@ class ostatus { * @param array $contact Array of the contact that is added * * @return object Source element + * @todo Add type-hints */ private function source_entry($doc, $contact) { $source = $doc->createElement("source"); @@ -1608,39 +1737,41 @@ class ostatus { * @param array $owner Contact data of the poster * * @return array Contact array + * @todo Add array type-hint for $owner */ private function contact_entry($url, $owner) { $r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` IN (0, %d) ORDER BY `uid` DESC LIMIT 1", dbesc(normalise_link($url)), intval($owner["uid"])); - if ($r) { + if (dbm::is_result($r)) { $contact = $r[0]; $contact["uid"] = -1; - } - - if (!$r) { + } else { $r = q("SELECT * FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1", dbesc(normalise_link($url))); - if ($r) { + if (dbm::is_result($r)) { $contact = $r[0]; $contact["uid"] = -1; $contact["success_update"] = $contact["updated"]; } } - if (!$r) - $contact = owner; + if (!dbm::is_result($r)) { + $contact = $owner; + } if (!isset($contact["poll"])) { $data = probe_url($url); $contact["poll"] = $data["poll"]; - if (!$contact["alias"]) + if (!$contact["alias"]) { $contact["alias"] = $data["alias"]; + } } - if (!isset($contact["alias"])) + if (!isset($contact["alias"])) { $contact["alias"] = $contact["url"]; + } return $contact; } @@ -1655,6 +1786,7 @@ class ostatus { * @param bool $toplevel Is it for en entry element (false) or a feed entry (true)? * * @return object Entry element + * @todo Add type-hints */ private function reshare_entry($doc, $item, $owner, $repeated_guid, $toplevel) { @@ -1667,10 +1799,12 @@ class ostatus { $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' AND NOT `private` AND `network` IN ('%s', '%s', '%s') LIMIT 1", intval($owner["uid"]), dbesc($repeated_guid), dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS)); - if ($r) - $repeated_item = $r[0]; - else + + if (!dbm::is_result($r)) { return false; + } + + $repeated_item = $r[0]; $contact = self::contact_entry($repeated_item['author-link'], $owner); @@ -1721,6 +1855,7 @@ class ostatus { * @param bool $toplevel Is it for en entry element (false) or a feed entry (true)? * * @return object Entry element with "like" + * @todo Add type-hints */ private function like_entry($doc, $item, $owner, $toplevel) { @@ -1758,6 +1893,7 @@ class ostatus { * @param array $contact Contact data of the target * * @return object author element + * @todo Add type-hints */ private function add_person_object($doc, $owner, $contact) { @@ -1804,6 +1940,7 @@ class ostatus { * @param bool $toplevel Is it for en entry element (false) or a feed entry (true)? * * @return object Entry element + * @todo Add type-hints */ private function follow_entry($doc, $item, $owner, $toplevel) { @@ -1866,6 +2003,7 @@ class ostatus { * @param bool $toplevel Is it for en entry element (false) or a feed entry (true)? * * @return object Entry element + * @todo Add type-hints */ private function note_entry($doc, $item, $owner, $toplevel) { @@ -1893,6 +2031,7 @@ class ostatus { * @param bool $toplevel Is it for en entry element (false) or a feed entry (true)? * * @return string The title for the element + * @todo Add type-hints */ private function entry_header($doc, &$entry, $owner, $toplevel) { /// @todo Check if this title stuff is really needed (I guess not) @@ -1928,19 +2067,22 @@ class ostatus { * @param string $title Title for the post * @param string $verb The activity verb * @param bool $complete Add the "status_net" element? + * @todo Add type-hints */ private function entry_content($doc, $entry, $item, $owner, $title, $verb = "", $complete = true) { - if ($verb == "") + if ($verb == "") { $verb = self::construct_verb($item); + } xml::add_element($doc, $entry, "id", $item["uri"]); xml::add_element($doc, $entry, "title", $title); $body = self::format_picture_post($item['body']); - if ($item['title'] != "") + if ($item['title'] != "") { $body = "[b]".$item['title']."[/b]\n\n".$body; + } $body = bbcode($body, false, false, 7); @@ -1966,6 +2108,7 @@ class ostatus { * @param array $item Data of the item that is to be posted * @param array $owner Contact data of the poster * @param $complete + * @todo Add type-hints */ private function entry_footer($doc, $entry, $item, $owner, $complete = true) { @@ -1992,7 +2135,7 @@ class ostatus { $thrparent = q("SELECT `guid`, `author-link`, `owner-link` FROM `item` WHERE `uid` = %d AND `uri` = '%s'", intval($owner["uid"]), dbesc($parent_item)); - if ($thrparent) { + if (dbm::is_result($thrparent)) { $mentioned[$thrparent[0]["author-link"]] = $thrparent[0]["author-link"]; $mentioned[$thrparent[0]["owner-link"]] = $thrparent[0]["owner-link"]; } @@ -2006,10 +2149,13 @@ class ostatus { $tags = item_getfeedtags($item); - if(count($tags)) - foreach($tags as $t) - if ($t[0] == "@") + if (count($tags)) { + foreach ($tags as $t) { + if ($t[0] == "@") { $mentioned[$t[1]] = $t[1]; + } + } + } // Make sure that mentions are accepted (GNU Social has problems with mixing HTTP and HTTPS) $newmentions = array(); @@ -2023,14 +2169,15 @@ class ostatus { $r = q("SELECT `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s'", intval($owner["uid"]), dbesc(normalise_link($mention))); - if ($r[0]["forum"] OR $r[0]["prv"]) + if ($r[0]["forum"] OR $r[0]["prv"]) { xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned", "ostatus:object-type" => ACTIVITY_OBJ_GROUP, "href" => $mention)); - else + } else { xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned", "ostatus:object-type" => ACTIVITY_OBJ_PERSON, "href" => $mention)); + } } if (!$item["private"]) { @@ -2041,10 +2188,13 @@ class ostatus { "href" => "http://activityschema.org/collection/public")); } - if(count($tags)) - foreach($tags as $t) - if ($t[0] != "@") + if (count($tags)) { + foreach ($tags as $t) { + if ($t[0] != "@") { xml::add_element($doc, $entry, "category", "", array("term" => $t[2])); + } + } + } self::get_attachment($doc, $entry, $item); @@ -2085,7 +2235,7 @@ class ostatus { $owner = $r[0]; - if(!strlen($last_update)) + if (!strlen($last_update)) $last_update = 'now -30 days'; $check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s'); diff --git a/include/pgettext.php b/include/pgettext.php index 335869eda2..79b341c0da 100644 --- a/include/pgettext.php +++ b/include/pgettext.php @@ -14,7 +14,7 @@ use \Friendica\Core\Config; require_once("include/dba.php"); -if(! function_exists('get_browser_language')) { +if (! function_exists('get_browser_language')) { /** * @brief get the prefered language from the HTTP_ACCEPT_LANGUAGE header */ @@ -44,7 +44,7 @@ function get_browser_language() { // check if we have translations for the preferred languages and pick the 1st that has for ($i=0; $ilangsave = $lang; - if($language === $lang) + if ($language === $lang) return; - if(isset($a->strings) && count($a->strings)) { + if (isset($a->strings) && count($a->strings)) { $a->stringsave = $a->strings; } $a->strings = array(); @@ -77,10 +77,10 @@ function push_lang($language) { function pop_lang() { global $lang, $a; - if($lang === $a->langsave) + if ($lang === $a->langsave) return; - if(isset($a->stringsave)) + if (isset($a->stringsave)) $a->strings = $a->stringsave; else $a->strings = array(); @@ -91,7 +91,7 @@ function pop_lang() { // l -if(! function_exists('load_translation_table')) { +if (! function_exists('load_translation_table')) { /** * load string translation table for alternate language * @@ -106,15 +106,15 @@ function load_translation_table($lang) { // load enabled plugins strings $plugins = q("SELECT name FROM addon WHERE installed=1;"); if ($plugins!==false) { - foreach($plugins as $p) { + foreach ($plugins as $p) { $name = $p['name']; - if(file_exists("addon/$name/lang/$lang/strings.php")) { + if (file_exists("addon/$name/lang/$lang/strings.php")) { include("addon/$name/lang/$lang/strings.php"); } } } - if(file_exists("view/lang/$lang/strings.php")) { + if (file_exists("view/lang/$lang/strings.php")) { include("view/lang/$lang/strings.php"); } @@ -122,27 +122,27 @@ function load_translation_table($lang) { // translate string if translation exists -if(! function_exists('t')) { +if (! function_exists('t')) { function t($s) { $a = get_app(); - if(x($a->strings,$s)) { + if (x($a->strings,$s)) { $t = $a->strings[$s]; return is_array($t)?$t[0]:$t; } return $s; }} -if(! function_exists('tt')){ +if (! function_exists('tt')){ function tt($singular, $plural, $count){ global $lang; $a = get_app(); - if(x($a->strings,$singular)) { + if (x($a->strings,$singular)) { $t = $a->strings[$singular]; $f = 'string_plural_select_' . str_replace('-','_',$lang); - if(! function_exists($f)) + if (! function_exists($f)) $f = 'string_plural_select_default'; $k = $f($count); return is_array($t)?$t[$k]:$t; @@ -158,7 +158,7 @@ function tt($singular, $plural, $count){ // provide a fallback which will not collide with // a function defined in any language file -if(! function_exists('string_plural_select_default')) { +if (! function_exists('string_plural_select_default')) { function string_plural_select_default($n) { return ($n != 1); }} @@ -185,7 +185,7 @@ function get_available_languages() { $strings_file_paths[] = 'view/lang/en/strings.php'; } asort($strings_file_paths); - foreach($strings_file_paths as $strings_file_path) { + foreach ($strings_file_paths as $strings_file_path) { $path_array = explode('/', $strings_file_path); $langs[$path_array[2]] = $path_array[2]; } diff --git a/include/plugin.php b/include/plugin.php index 83f6f1ab95..c5364822ec 100644 --- a/include/plugin.php +++ b/include/plugin.php @@ -20,7 +20,7 @@ function uninstall_plugin($plugin){ ); @include_once('addon/' . $plugin . '/' . $plugin . '.php'); - if(function_exists($plugin . '_uninstall')) { + if (function_exists($plugin . '_uninstall')) { $func = $plugin . '_uninstall'; $func(); } @@ -36,12 +36,12 @@ if (! function_exists('install_plugin')){ function install_plugin($plugin) { // silently fail if plugin was removed - if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php')) + if (! file_exists('addon/' . $plugin . '/' . $plugin . '.php')) return false; logger("Addons: installing " . $plugin); $t = @filemtime('addon/' . $plugin . '/' . $plugin . '.php'); @include_once('addon/' . $plugin . '/' . $plugin . '.php'); - if(function_exists($plugin . '_install')) { + if (function_exists($plugin . '_install')) { $func = $plugin . '_install'; $func(); @@ -57,7 +57,7 @@ function install_plugin($plugin) { // once most site tables have been updated. // This way the system won't fall over dead during the update. - if(file_exists('addon/' . $plugin . '/.hidden')) { + if (file_exists('addon/' . $plugin . '/.hidden')) { q("UPDATE `addon` SET `hidden` = 1 WHERE `name` = '%s'", dbesc($plugin) ); @@ -73,10 +73,10 @@ function install_plugin($plugin) { // reload all updated plugins -if(! function_exists('reload_plugins')) { +if (! function_exists('reload_plugins')) { function reload_plugins() { $plugins = get_config('system','addon'); - if(strlen($plugins)) { + if (strlen($plugins)) { $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); if (dbm::is_result($r)) @@ -86,25 +86,25 @@ function reload_plugins() { $parr = explode(',',$plugins); - if(count($parr)) { - foreach($parr as $pl) { + if (count($parr)) { + foreach ($parr as $pl) { $pl = trim($pl); $fname = 'addon/' . $pl . '/' . $pl . '.php'; - if(file_exists($fname)) { + if (file_exists($fname)) { $t = @filemtime($fname); - foreach($installed as $i) { - if(($i['name'] == $pl) && ($i['timestamp'] != $t)) { + foreach ($installed as $i) { + if (($i['name'] == $pl) && ($i['timestamp'] != $t)) { logger('Reloading plugin: ' . $i['name']); @include_once($fname); - if(function_exists($pl . '_uninstall')) { + if (function_exists($pl . '_uninstall')) { $func = $pl . '_uninstall'; $func(); } - if(function_exists($pl . '_install')) { + if (function_exists($pl . '_install')) { $func = $pl . '_install'; $func(); } @@ -142,7 +142,7 @@ function plugin_enabled($plugin) { * @param int $priority A priority (defaults to 0) * @return mixed|bool */ -if(! function_exists('register_hook')) { +if (! function_exists('register_hook')) { function register_hook($hook,$file,$function,$priority=0) { $r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1", @@ -170,7 +170,7 @@ function register_hook($hook,$file,$function,$priority=0) { * @param string $function the name of the function that the hook called * @return array */ -if(! function_exists('unregister_hook')) { +if (! function_exists('unregister_hook')) { function unregister_hook($hook,$file,$function) { $r = q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s'", @@ -182,7 +182,7 @@ function unregister_hook($hook,$file,$function) { }} -if(! function_exists('load_hooks')) { +if (! function_exists('load_hooks')) { function load_hooks() { $a = get_app(); $a->hooks = array(); @@ -190,7 +190,7 @@ function load_hooks() { if (dbm::is_result($r)) { foreach ($r as $rr) { - if(! array_key_exists($rr['hook'],$a->hooks)) + if (! array_key_exists($rr['hook'],$a->hooks)) $a->hooks[$rr['hook']] = array(); $a->hooks[$rr['hook']][] = array($rr['file'],$rr['function']); } @@ -244,13 +244,13 @@ function call_single_hook($a, $name, $hook, &$data = null) { //check if an app_menu hook exist for plugin $name. //Return true if the plugin is an app -if(! function_exists('plugin_is_app')) { +if (! function_exists('plugin_is_app')) { function plugin_is_app($name) { $a = get_app(); - if(is_array($a->hooks) && (array_key_exists('app_menu',$a->hooks))) { - foreach($a->hooks['app_menu'] as $hook) { - if($hook[0] == 'addon/'.$name.'/'.$name.'.php') + if (is_array($a->hooks) && (array_key_exists('app_menu',$a->hooks))) { + foreach ($a->hooks['app_menu'] as $hook) { + if ($hook[0] == 'addon/'.$name.'/'.$name.'.php') return true; } } @@ -297,7 +297,7 @@ function get_plugin_info($plugin){ if ($r){ $ll = explode("\n", $m[0]); - foreach( $ll as $l ) { + foreach ( $ll as $l ) { $l = trim($l,"\t\n\r */"); if ($l!=""){ list($k,$v) = array_map("trim", explode(":",$l,2)); @@ -352,9 +352,9 @@ function get_theme_info($theme){ 'unsupported' => false ); - if(file_exists("view/theme/$theme/experimental")) + if (file_exists("view/theme/$theme/experimental")) $info['experimental'] = true; - if(file_exists("view/theme/$theme/unsupported")) + if (file_exists("view/theme/$theme/unsupported")) $info['unsupported'] = true; if (!is_file("view/theme/$theme/theme.php")) return $info; @@ -368,7 +368,7 @@ function get_theme_info($theme){ if ($r){ $ll = explode("\n", $m[0]); - foreach( $ll as $l ) { + foreach ( $ll as $l ) { $l = trim($l,"\t\n\r */"); if ($l!=""){ list($k,$v) = array_map("trim", explode(":",$l,2)); @@ -412,7 +412,7 @@ function get_theme_info($theme){ */ function get_theme_screenshot($theme) { $exts = array('.png','.jpg'); - foreach($exts as $ext) { + foreach ($exts as $ext) { if (file_exists('view/theme/' . $theme . '/screenshot' . $ext)) { return(App::get_baseurl() . '/view/theme/' . $theme . '/screenshot' . $ext); } @@ -511,11 +511,11 @@ function service_class_fetch($uid,$property) { $service_class = $r[0]['service_class']; } } - if(! x($service_class)) + if (! x($service_class)) return false; // everything is allowed $arr = get_config('service_class',$service_class); - if(! is_array($arr) || (! count($arr))) + if (! is_array($arr) || (! count($arr))) return false; return((array_key_exists($property,$arr)) ? $arr[$property] : false); @@ -524,12 +524,14 @@ function service_class_fetch($uid,$property) { function upgrade_link($bbcode = false) { $l = get_config('service_class','upgrade_link'); - if(! $l) + if (! $l) { return ''; - if($bbcode) + } + if ($bbcode) { $t = sprintf('[url=%s]' . t('Click here to upgrade.') . '[/url]', $l); - else + } else { $t = sprintf('' . t('Click here to upgrade.') . '
', $l); + } return $t; } @@ -556,13 +558,15 @@ function upgrade_bool_message($bbcode = false) { */ function theme_include($file, $root = '') { // Make sure $root ends with a slash / if it's not blank - if($root !== '' && $root[strlen($root)-1] !== '/') + if ($root !== '' && $root[strlen($root)-1] !== '/') { $root = $root . '/'; + } $theme_info = $a->theme_info; - if(is_array($theme_info) AND array_key_exists('extends',$theme_info)) + if (is_array($theme_info) AND array_key_exists('extends',$theme_info)) { $parent = $theme_info['extends']; - else + } else { $parent = 'NOPATH'; + } $theme = current_theme(); $thname = $theme; $ext = substr($file,strrpos($file,'.')+1); @@ -571,12 +575,13 @@ function theme_include($file, $root = '') { "{$root}view/theme/$parent/$ext/$file", "{$root}view/$ext/$file", ); - foreach($paths as $p) { + foreach ($paths as $p) { // strpos() is faster than strstr when checking if one string is in another (http://php.net/manual/en/function.strstr.php) - if(strpos($p,'NOPATH') !== false) + if (strpos($p,'NOPATH') !== false) { continue; - if(file_exists($p)) + } elseif (file_exists($p)) { return $p; + } } return ''; } diff --git a/include/poller.php b/include/poller.php index 5560b3340e..27f8c7831a 100644 --- a/include/poller.php +++ b/include/poller.php @@ -17,11 +17,11 @@ require_once("boot.php"); function poller_run($argv, $argc){ global $a, $db; - if(is_null($a)) { + if (is_null($a)) { $a = new App; } - if(is_null($db)) { + if (is_null($db)) { @include(".htconfig.php"); require_once("include/dba.php"); $db = new dba($db_host, $db_user, $db_pass, $db_data); @@ -49,7 +49,7 @@ function poller_run($argv, $argc){ return; } - if(($argc <= 1) OR ($argv[1] != "no_cron")) { + if (($argc <= 1) OR ($argv[1] != "no_cron")) { poller_run_cron(); } @@ -364,7 +364,7 @@ function poller_kill_stale_workers() { return; } - foreach ($r AS $pid) { + foreach ($r AS $pid) if (!posix_kill($pid["pid"], 0)) { q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = 0 WHERE `pid` = %d", dbesc(NULL_DATE), intval($pid["pid"])); @@ -372,8 +372,9 @@ function poller_kill_stale_workers() { // Kill long running processes // Check if the priority is in a valid range - if (!in_array($pid["priority"], array(PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_MEDIUM, PRIORITY_LOW, PRIORITY_NEGLIGIBLE))) + if (!in_array($pid["priority"], array(PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_MEDIUM, PRIORITY_LOW, PRIORITY_NEGLIGIBLE))) { $pid["priority"] = PRIORITY_MEDIUM; + } // Define the maximum durations $max_duration_defaults = array(PRIORITY_CRITICAL => 360, PRIORITY_HIGH => 10, PRIORITY_MEDIUM => 60, PRIORITY_LOW => 180, PRIORITY_NEGLIGIBLE => 360); @@ -418,7 +419,7 @@ function poller_too_much_workers() { // Decrease the number of workers at higher load $load = current_load(); - if($load) { + if ($load) { $maxsysload = intval(Config::get("system", "maxloadavg", 50)); $maxworkers = $queues; diff --git a/include/post_update.php b/include/post_update.php index f9649961d9..45bcb16d3a 100644 --- a/include/post_update.php +++ b/include/post_update.php @@ -68,7 +68,7 @@ function post_update_1192() { } // Set the "gcontact-id" in the item table and add a new gcontact entry if needed - foreach($item_arr AS $item) { + foreach ($item_arr AS $item) { $gcontact_id = get_gcontact_id(array("url" => $item['author-link'], "network" => $item['network'], "photo" => $item['author-avatar'], "name" => $item['author-name'])); q("UPDATE `item` SET `gcontact-id` = %d WHERE `uid` = %d AND `author-link` = '%s' AND `gcontact-id` = 0", @@ -204,7 +204,7 @@ function post_update_1198() { } // Set the "gcontact-id" in the item table and add a new gcontact entry if needed - foreach($item_arr AS $item) { + foreach ($item_arr AS $item) { $author_id = get_contact($item["author-link"], 0); $owner_id = get_contact($item["owner-link"], 0); diff --git a/include/profile_selectors.php b/include/profile_selectors.php index 8d29fd0998..af6c0d96c4 100644 --- a/include/profile_selectors.php +++ b/include/profile_selectors.php @@ -8,8 +8,8 @@ function gender_selector($current="",$suffix="") { call_hooks('gender_selector', $select); $o .= ""; - foreach($select as $selection) { - if($selection !== 'NOTRANSLATION') { + foreach ($select as $selection) { + if ($selection !== 'NOTRANSLATION') { $selected = (($selection == $current) ? ' selected="selected" ' : ''); $o .= ""; } @@ -44,8 +44,8 @@ function marital_selector($current="",$suffix="") { call_hooks('marital_selector', $select); $o .= " ' . t("Post to Email") . ''; diff --git a/mod/events.php b/mod/events.php index 60e7b9f390..19078ab26a 100644 --- a/mod/events.php +++ b/mod/events.php @@ -112,7 +112,7 @@ function events_post(App $a) { $c = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", intval(local_user()) ); - if (count($c)) { + if (dbm::is_result($c)) { $self = $c[0]['id']; } else { $self = 0; @@ -126,7 +126,7 @@ function events_post(App $a) { $str_contact_deny = perms2str($_POST['contact_deny']); // Undo the pseudo-contact of self, since there are real contacts now - if (strpos($str_contact_allow, '<' . $self . '>') !== false ) { + if (strpos($str_contact_allow, '<' . $self . '>') !== false) { $str_contact_allow = str_replace('<' . $self . '>', '', $str_contact_allow); } // Make sure to set the `private` field as true. This is necessary to @@ -142,7 +142,7 @@ function events_post(App $a) { $str_group_allow = $str_contact_deny = $str_group_deny = ''; } - + /// @TODO One-time array initialization, one large block $datarray = array(); $datarray['guid'] = get_guid(32); $datarray['start'] = $start; @@ -407,7 +407,9 @@ function events_content(App $a) { // Passed parameters overrides anything found in the DB if ($mode === 'edit' || $mode === 'new') { - if (!x($orig_event)) {$orig_event = array();} + if (!x($orig_event)) { + $orig_event = array(); + } // In case of an error the browser is redirected back here, with these parameters filled in with the previous values if (x($_REQUEST, 'nofinish')) {$orig_event['nofinish'] = $_REQUEST['nofinish'];} if (x($_REQUEST, 'adjust')) {$orig_event['adjust'] = $_REQUEST['adjust'];} diff --git a/mod/fbrowser.php b/mod/fbrowser.php index 9a0e9244c1..ae62ce9a32 100644 --- a/mod/fbrowser.php +++ b/mod/fbrowser.php @@ -66,10 +66,9 @@ function fbrowser_content(App $a) { $types = Photo::supportedTypes(); $ext = $types[$rr['type']]; - if($a->theme['template_engine'] === 'internal') { + if ($a->theme['template_engine'] === 'internal') { $filename_e = template_escape($rr['filename']); - } - else { + } else { $filename_e = $rr['filename']; } diff --git a/mod/filer.php b/mod/filer.php index 47c4aa5e4c..d2df7f24cd 100644 --- a/mod/filer.php +++ b/mod/filer.php @@ -16,7 +16,7 @@ function filer_content(App $a) { logger('filer: tag ' . $term . ' item ' . $item_id); - if($item_id && strlen($term)){ + if ($item_id && strlen($term)){ // file item file_tag_save_file(local_user(),$item_id,$term); } else { diff --git a/mod/friendica.php b/mod/friendica.php index f613dfd39c..f1f0a6a0f1 100644 --- a/mod/friendica.php +++ b/mod/friendica.php @@ -7,7 +7,7 @@ function friendica_init(App $a) { $register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN'); $sql_extra = ''; - if(x($a->config,'admin_nickname')) { + if (x($a->config,'admin_nickname')) { $sql_extra = sprintf(" AND nickname = '%s' ",dbesc($a->config['admin_nickname'])); } if (isset($a->config['admin_email']) && $a->config['admin_email']!=''){ @@ -24,18 +24,18 @@ function friendica_init(App $a) { } $visible_plugins = array(); - if(is_array($a->plugins) && count($a->plugins)) { + if (is_array($a->plugins) && count($a->plugins)) { $r = q("select * from addon where hidden = 0"); if (dbm::is_result($r)) - foreach($r as $rr) + foreach ($r as $rr) $visible_plugins[] = $rr['name']; } Config::load('feature_lock'); $locked_features = array(); - if(is_array($a->config['feature_lock']) && count($a->config['feature_lock'])) { - foreach($a->config['feature_lock'] as $k => $v) { - if($k === 'config_loaded') + if (is_array($a->config['feature_lock']) && count($a->config['feature_lock'])) { + foreach ($a->config['feature_lock'] as $k => $v) { + if ($k === 'config_loaded') continue; $locked_features[$k] = intval($v); } @@ -80,22 +80,24 @@ function friendica_content(App $a) { $o .= '

'; $visible_plugins = array(); - if(is_array($a->plugins) && count($a->plugins)) { + if (is_array($a->plugins) && count($a->plugins)) { $r = q("select * from addon where hidden = 0"); if (dbm::is_result($r)) - foreach($r as $rr) + foreach ($r as $rr) $visible_plugins[] = $rr['name']; } - if(count($visible_plugins)) { + if (count($visible_plugins)) { $o .= '

' . t('Installed plugins/addons/apps:') . '

'; $sorted = $visible_plugins; $s = ''; sort($sorted); - foreach($sorted as $p) { - if(strlen($p)) { - if(strlen($s)) $s .= ', '; + foreach ($sorted as $p) { + if (strlen($p)) { + if (strlen($s)) { + $s .= ', '; + } $s .= $p; } } diff --git a/mod/fsuggest.php b/mod/fsuggest.php index b3d5439712..2cd91ea57c 100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php @@ -29,7 +29,7 @@ function fsuggest_post(App $a) { $note = escape_tags(trim($_POST['note'])); - if($new_contact) { + if ($new_contact) { $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($new_contact), intval(local_user()) @@ -80,8 +80,9 @@ function fsuggest_content(App $a) { return; } - if($a->argc != 2) + if ($a->argc != 2) { return; + } $contact_id = intval($a->argv[1]); diff --git a/mod/group.php b/mod/group.php index 2b332e401f..640fa7e60d 100644 --- a/mod/group.php +++ b/mod/group.php @@ -5,7 +5,7 @@ function validate_members(&$item) { } function group_init(App $a) { - if(local_user()) { + if (local_user()) { require_once('include/group.php'); $a->page['aside'] = group_side('contacts','group','extended',(($a->argc > 1) ? intval($a->argv[1]) : 0)); } @@ -20,7 +20,7 @@ function group_post(App $a) { return; } - if(($a->argc == 2) && ($a->argv[1] === 'new')) { + if (($a->argc == 2) && ($a->argv[1] === 'new')) { check_form_security_token_redirectOnErr('/group/new', 'group_edit'); $name = notags(trim($_POST['groupname'])); @@ -80,10 +80,12 @@ function group_content(App $a) { // Switch to text mode interface if we have more than 'n' contacts or group members $switchtotext = get_pconfig(local_user(),'system','groupedit_image_limit'); - if($switchtotext === false) + if ($switchtotext === false) { $switchtotext = get_config('system','groupedit_image_limit'); - if($switchtotext === false) + } + if ($switchtotext === false) { $switchtotext = 400; + } $tpl = get_markup_template('group_edit.tpl'); @@ -99,8 +101,6 @@ function group_content(App $a) { '$gid' => 'new', '$form_security_token' => get_form_security_token("group_edit"), )); - - } if (($a->argc == 3) && ($a->argv[1] === 'drop')) { @@ -135,8 +135,9 @@ function group_content(App $a) { intval($a->argv[2]), intval(local_user()) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $change = intval($a->argv[2]); + } } if (($a->argc > 1) && (intval($a->argv[1]))) { @@ -153,23 +154,23 @@ function group_content(App $a) { $group = $r[0]; $members = group_get_members($group['id']); $preselected = array(); - if(count($members)) { - foreach($members as $member) + if (count($members)) { + foreach ($members as $member) { $preselected[] = $member['id']; + } } - if($change) { - if(in_array($change,$preselected)) { + if ($change) { + if (in_array($change,$preselected)) { group_rmv_member(local_user(),$group['name'],$change); - } - else { + } else { group_add_member(local_user(),$group['name'],$change); } $members = group_get_members($group['id']); $preselected = array(); - if(count($members)) { - foreach($members as $member) + if (count($members)) { + foreach ($members as $member) $preselected[] = $member['id']; } } @@ -193,8 +194,9 @@ function group_content(App $a) { } - if(! isset($group)) + if (! isset($group)) { return; + } $groupeditor = array( 'label_members' => t('Members'), @@ -206,13 +208,13 @@ function group_content(App $a) { $sec_token = addslashes(get_form_security_token('group_member_change')); $textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false); - foreach($members as $member) { - if($member['url']) { + foreach ($members as $member) { + if ($member['url']) { $member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;'; $groupeditor['members'][] = micropro($member,true,'mpgroup', $textmode); - } - else + } else { group_rmv_member(local_user(),$group['name'],$member['id']); + } } $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `self` ORDER BY `name` ASC", @@ -221,8 +223,8 @@ function group_content(App $a) { if (dbm::is_result($r)) { $textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false); - foreach($r as $member) { - if(! in_array($member['id'],$preselected)) { + foreach ($r as $member) { + if (! in_array($member['id'],$preselected)) { $member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;'; $groupeditor['contacts'][] = micropro($member,true,'mpall', $textmode); } @@ -232,7 +234,7 @@ function group_content(App $a) { $context['$groupeditor'] = $groupeditor; $context['$desc'] = t('Click on a contact to add or remove.'); - if($change) { + if ($change) { $tpl = get_markup_template('groupeditor.tpl'); echo replace_macros($tpl, $context); killme(); diff --git a/mod/help.php b/mod/help.php index c380aa3913..602653eea8 100644 --- a/mod/help.php +++ b/mod/help.php @@ -30,9 +30,10 @@ function help_content(App $a) { $path = ''; // looping through the argv keys bigger than 0 to build // a path relative to /help - for($x = 1; $x < argc(); $x ++) { - if(strlen($path)) + for ($x = 1; $x < argc(); $x ++) { + if (strlen($path)) { $path .= '/'; + } $path .= argv($x); } $title = basename($path); @@ -65,16 +66,22 @@ function help_content(App $a) { $toc="

TOC