From 3cebdee8677687466aa5597026ab4d37c76bba9f Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 29 Nov 2017 20:28:30 -0500 Subject: [PATCH 01/10] Fix mod/admin.php formatting --- mod/admin.php | 586 +++++++++++++++++++++++++------------------------- 1 file changed, 291 insertions(+), 295 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index 4b034b8ccc..cdcd688f2d 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -1,11 +1,10 @@ argc > 2 && - is_file("addon/".$a->argv[2]."/".$a->argv[2].".php")) { - @include_once("addon/".$a->argv[2]."/".$a->argv[2].".php"); - if (function_exists($a->argv[2].'_plugin_admin_post')) { - $func = $a->argv[2].'_plugin_admin_post'; - $func($a); - } + is_file("addon/" . $a->argv[2] . "/" . $a->argv[2] . ".php")) { + @include_once("addon/" . $a->argv[2] . "/" . $a->argv[2] . ".php"); + if (function_exists($a->argv[2] . '_plugin_admin_post')) { + $func = $a->argv[2] . '_plugin_admin_post'; + $func($a); + } } - goaway('admin/plugins/'.$a->argv[2]); + goaway('admin/plugins/' . $a->argv[2]); return; // NOTREACHED break; case 'themes': @@ -75,7 +75,9 @@ function admin_post(App $a) { $theme = $a->argv[2]; if (is_file("view/theme/$theme/config.php")) { - function __call_theme_admin_post(App $a, $theme) { + + function __call_theme_admin_post(App $a, $theme) + { $orig_theme = $a->theme; $orig_page = $a->page; $orig_session_theme = $_SESSION['theme']; @@ -84,7 +86,7 @@ function admin_post(App $a) { $_SESSION['theme'] = $theme; - $init = $theme."_init"; + $init = $theme . "_init"; if (function_exists($init)) { $init($a); } @@ -103,7 +105,7 @@ function admin_post(App $a) { if (is_ajax()) { return; } - goaway('admin/themes/'.$theme); + goaway('admin/themes/' . $theme); return; break; case 'features': @@ -145,13 +147,14 @@ function admin_post(App $a) { * @param App $a * @return string */ -function admin_content(App $a) { +function admin_content(App $a) +{ if (!is_site_admin()) { return login(false); } - if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) { + if (x($_SESSION, 'submanage') && intval($_SESSION['submanage'])) { return ""; } @@ -160,7 +163,6 @@ function admin_content(App $a) { // $toDelete = new APCIterator('user', APC_ITER_VALUE); // apc_delete($toDelete); //} - // Header stuff $a->page['htmlhead'] .= replace_macros(get_markup_template('admin_settings_head.tpl'), array()); @@ -171,25 +173,25 @@ function admin_content(App $a) { // array(url, name, extra css classes) // not part of $aside to make the template more adjustable $aside_sub = array( - 'site' => array("admin/site/", t("Site") , "site"), - 'users' => array("admin/users/", t("Users") , "users"), - 'plugins'=> array("admin/plugins/", t("Plugins") , "plugins"), - 'themes' => array("admin/themes/", t("Themes") , "themes"), - 'features' => array("admin/features/", t("Additional features") , "features"), - 'dbsync' => array("admin/dbsync/", t('DB updates'), "dbsync"), - 'queue' => array("admin/queue/", t('Inspect Queue'), "queue"), - 'blocklist' => array("admin/blocklist/", t('Server Blocklist'), "blocklist"), - 'federation' => array("admin/federation/", t('Federation Statistics'), "federation"), - 'deleteitem' => array("admin/deleteitem/", t('Delete Item'), 'deleteitem'), + 'site' => array("admin/site/" , t("Site") , "site"), + 'users' => array("admin/users/" , t("Users") , "users"), + 'plugins' => array("admin/plugins/" , t("Plugins") , "plugins"), + 'themes' => array("admin/themes/" , t("Themes") , "themes"), + 'features' => array("admin/features/" , t("Additional features") , "features"), + 'dbsync' => array("admin/dbsync/" , t('DB updates') , "dbsync"), + 'queue' => array("admin/queue/" , t('Inspect Queue') , "queue"), + 'blocklist' => array("admin/blocklist/" , t('Server Blocklist') , "blocklist"), + 'federation' => array("admin/federation/" , t('Federation Statistics'), "federation"), + 'deleteitem' => array("admin/deleteitem/" , t('Delete Item') , 'deleteitem'), ); /* get plugins admin page */ $r = q("SELECT `name` FROM `addon` WHERE `plugin_admin` = 1 ORDER BY `name`"); - $aside_tools['plugins_admin']=array(); + $aside_tools['plugins_admin'] = array(); foreach ($r as $h) { - $plugin =$h['name']; - $aside_tools['plugins_admin'][] = array("admin/plugins/".$plugin, $plugin, "plugin"); + $plugin = $h['name']; + $aside_tools['plugins_admin'][] = array("admin/plugins/" . $plugin, $plugin, "plugin"); // temp plugins with admin $a->plugins_admin[] = $plugin; } @@ -208,7 +210,7 @@ function admin_content(App $a) { '$logtxt' => t('Logs'), '$diagnosticstxt' => t('diagnostics'), '$h_pending' => t('User registrations waiting for confirmation'), - '$admurl'=> "admin/" + '$admurl' => "admin/" )); @@ -283,15 +285,16 @@ function admin_content(App $a) { * @param App $a * @return string */ -function admin_page_blocklist(App $a) { +function admin_page_blocklist(App $a) +{ $blocklist = Config::get('system', 'blocklist'); $blocklistform = array(); if (is_array($blocklist)) { - foreach($blocklist as $id => $b) { + foreach ($blocklist as $id => $b) { $blocklistform[] = array( 'domain' => array("domain[$id]", t('Blocked domain'), $b['domain'], '', t('The blocked domain'), 'required', '', ''), - 'reason' => array("reason[$id]", t("Reason for the block"), $b['reason'], t('The reason why you blocked this domain.').'('.$b['domain'].')', 'required', '', ''), - 'delete' => array("delete[$id]", t("Delete domain").' ('.$b['domain'].')', False , t("Check to delete this entry from the blocklist")) + 'reason' => array("reason[$id]", t("Reason for the block"), $b['reason'], t('The reason why you blocked this domain.') . '(' . $b['domain'] . ')', 'required', '', ''), + 'delete' => array("delete[$id]", t("Delete domain") . ' (' . $b['domain'] . ')', False, t("Check to delete this entry from the blocklist")) ); } } @@ -313,7 +316,7 @@ function admin_page_blocklist(App $a) { '$entries' => $blocklistform, '$baseurl' => System::baseUrl(true), '$confirm_delete' => t('Delete entry from blocklist?'), - '$form_security_token' => get_form_security_token("admin_blocklist") + '$form_security_token' => get_form_security_token("admin_blocklist") )); } @@ -322,8 +325,9 @@ function admin_page_blocklist(App $a) { * * @param App $a */ -function admin_page_blocklist_post(App $a) { - if (!x($_POST,"page_blocklist_save") && (!x($_POST['page_blocklist_edit']))) { +function admin_page_blocklist_post(App $a) +{ + if (!x($_POST, "page_blocklist_save") && (!x($_POST['page_blocklist_edit']))) { return; } @@ -337,7 +341,7 @@ function admin_page_blocklist_post(App $a) { 'reason' => notags(trim($_POST['newentry_reason'])) ); Config::set('system', 'blocklist', $blocklist); - info(t('Server added to blocklist.').EOL); + info(t('Server added to blocklist.') . EOL); } else { // Edit the entries from blocklist $blocklist = array(); @@ -353,7 +357,7 @@ function admin_page_blocklist_post(App $a) { } } Config::set('system', 'blocklist', $blocklist); - info(t('Site blocklist updated.').EOL); + info(t('Site blocklist updated.') . EOL); } goaway('admin/blocklist'); @@ -370,7 +374,8 @@ function admin_page_blocklist_post(App $a) { * @param App $a * @return string */ -function admin_page_deleteitem(App $a) { +function admin_page_deleteitem(App $a) +{ $t = get_markup_template("admin_deleteitem.tpl"); return replace_macros($t, array( @@ -381,9 +386,10 @@ function admin_page_deleteitem(App $a) { '$intro2' => t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'), '$deleteitemguid' => array('deleteitemguid', t("GUID"), '', t("The GUID of the item you want to delete."), 'required', 'autofocus'), '$baseurl' => System::baseUrl(), - '$form_security_token' => get_form_security_token("admin_deleteitem") + '$form_security_token' => get_form_security_token("admin_deleteitem") )); } + /** * @brief Process send data from Admin Delete Item Page * @@ -392,7 +398,8 @@ function admin_page_deleteitem(App $a) { * * @param App $a */ -function admin_page_deleteitem_post(App $a) { +function admin_page_deleteitem_post(App $a) +{ if (!x($_POST['page_deleteitem_submit'])) { return; } @@ -404,19 +411,19 @@ function admin_page_deleteitem_post(App $a) { // The GUID should not include a "/", so if there is one, we got an URL // and the last part of it is most likely the GUID. if (strpos($guid, '/')) { - $guid = substr($guid, strrpos($guid, '/')+1); + $guid = substr($guid, strrpos($guid, '/') + 1); } // Now that we have the GUID get all IDs of the associated entries in the // item table of the DB and drop those items, which will also delete the // associated threads. - $r = dba::select('item', array('id'), array('guid'=>$guid)); + $r = dba::select('item', array('id'), array('guid' => $guid)); while ($row = dba::fetch($r)) { drop_item($row['id'], false); } dba::close($r); } - info(t('Item marked for deletion.').EOL); + info(t('Item marked for deletion.') . EOL); goaway('admin/deleteitem'); return; // NOTREACHED } @@ -435,7 +442,8 @@ function admin_page_deleteitem_post(App $a) { * @param App $a * @return string */ -function admin_page_federation(App $a) { +function admin_page_federation(App $a) +{ // get counts on active friendica, diaspora, redmatrix, hubzilla, gnu // social and statusnet nodes this node is knowing // @@ -445,15 +453,17 @@ function admin_page_federation(App $a) { // Add more platforms if you like, when one returns 0 known nodes it is not // displayed on the stats page. $platforms = array('Friendi%%a', 'Diaspora', '%%red%%', 'Hubzilla', 'BlaBlaNet', 'GNU Social', 'StatusNet', 'Mastodon', 'Pleroma'); - $colors = array('Friendi%%a' => '#ffc018', // orange from the logo - 'Diaspora' => '#a1a1a1', // logo is black and white, makes a gray - '%%red%%' => '#c50001', // fire red from the logo - 'Hubzilla' => '#43488a', // blue from the logo - 'BlaBlaNet' => '#3B5998', // blue from the navbar at blablanet-dot-com - 'GNU Social'=> '#a22430', // dark red from the logo - 'StatusNet' => '#789240', // the green from the logo (red and blue have already others - 'Mastodon' => '#1a9df9', // blue from the Mastodon logo - 'Pleroma' => '#E46F0F'); // Orange from the text that is used on Pleroma instances + $colors = array( + 'Friendi%%a' => '#ffc018', // orange from the logo + 'Diaspora' => '#a1a1a1', // logo is black and white, makes a gray + '%%red%%' => '#c50001', // fire red from the logo + 'Hubzilla' => '#43488a', // blue from the logo + 'BlaBlaNet' => '#3B5998', // blue from the navbar at blablanet-dot-com + 'GNU Social' => '#a22430', // dark red from the logo + 'StatusNet' => '#789240', // the green from the logo (red and blue have already others + 'Mastodon' => '#1a9df9', // blue from the Mastodon logo + 'Pleroma' => '#E46F0F' // Orange from the text that is used on Pleroma instances + ); $counts = array(); $total = 0; @@ -480,7 +490,7 @@ function admin_page_federation(App $a) { // to the version string for the displayed list. foreach ($v as $key => $value) { if ($v[$key]['version'] == '') { - $v[$key] = array('total'=>$v[$key]['total'], 'version'=>t('unknown')); + $v[$key] = array('total' => $v[$key]['total'], 'version' => t('unknown')); } } // in the DB the Diaspora versions have the format x.x.x.x-xx the last @@ -503,7 +513,7 @@ function admin_page_federation(App $a) { } } foreach ($newV as $key => $value) { - array_push($newVv, array('total'=>$value, 'version'=>$key)); + array_push($newVv, array('total' => $value, 'version' => $key)); } $v = $newVv; } @@ -517,9 +527,9 @@ function admin_page_federation(App $a) { foreach ($v as $vv) { $newVC = $vv['total']; $newVV = $vv['version']; - $lastDot = strrpos($newVV,'.'); - $len = strlen($newVV)-1; - if (($lastDot == $len-4) && (!strrpos($newVV,'-rc') == $len-3)) { + $lastDot = strrpos($newVV, '.'); + $len = strlen($newVV) - 1; + if (($lastDot == $len - 4) && (!strrpos($newVV, '-rc') == $len - 3)) { $newVV = substr($newVV, 0, $lastDot); } if (isset($newV[$newVV])) { @@ -529,7 +539,7 @@ function admin_page_federation(App $a) { } } foreach ($newV as $key => $value) { - array_push($newVv, array('total'=>$value, 'version'=>$key)); + array_push($newVv, array('total' => $value, 'version' => $key)); } $v = $newVv; } @@ -539,7 +549,7 @@ function admin_page_federation(App $a) { // the 3rd array item is needed for the JavaScript graphs as JS does // not like some characters in the names of variables... - $counts[$p]=array($c[0], $v, str_replace(array(' ','%'),'',$p), $colors[$p]); + $counts[$p] = array($c[0], $v, str_replace(array(' ', '%'), '', $p), $colors[$p]); } // some helpful text @@ -574,7 +584,8 @@ function admin_page_federation(App $a) { * @param App $a * @return string */ -function admin_page_queue(App $a) { +function admin_page_queue(App $a) +{ // get content from the queue table $r = q("SELECT `c`.`name`, `c`.`nurl`, `q`.`id`, `q`.`network`, `q`.`created`, `q`.`last` FROM `queue` AS `q`, `contact` AS `c` @@ -608,10 +619,10 @@ function admin_page_queue(App $a) { * @param App $a * @return string */ -function admin_page_summary(App $a) { +function admin_page_summary(App $a) +{ // are there MyISAM tables in the DB? If so, trigger a warning message - $r = q("SELECT `engine` FROM `information_schema`.`tables` WHERE `engine` = 'myisam' AND `table_schema` = '%s' LIMIT 1", - dbesc(dba::database_name())); + $r = q("SELECT `engine` FROM `information_schema`.`tables` WHERE `engine` = 'myisam' AND `table_schema` = '%s' LIMIT 1", dbesc(dba::database_name())); $showwarning = false; $warningtext = array(); if (DBM::is_result($r)) { @@ -620,8 +631,8 @@ function admin_page_summary(App $a) { } // Check if github.com/friendica/master/VERSION is higher then // the local version of Friendica. Check is opt-in, source may be master or devel branch - if (Config::get('system', 'check_new_version_url', 'none') != 'none' ) { - $gitversion = Config::get('system','git_friendica_version'); + if (Config::get('system', 'check_new_version_url', 'none') != 'none') { + $gitversion = Config::get('system', 'git_friendica_version'); if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) { $warningtext[] = sprintf(t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s'), $FRIENDICA_VERSION, $gitversion); $showwarning = true; @@ -656,13 +667,13 @@ function admin_page_summary(App $a) { array(t('Private Forum Account'), 0) ); - $users=0; + $users = 0; foreach ($r as $u) { $accounts[$u['page-flags']][1] = $u['count']; $users+= $u['count']; } - logger('accounts: '.print_r($accounts,true),LOGGER_DATA); + logger('accounts: ' . print_r($accounts, true), LOGGER_DATA); $r = q("SELECT COUNT(`id`) AS `count` FROM `register`"); $pending = $r[0]['count']; @@ -690,7 +701,7 @@ function admin_page_summary(App $a) { '$baseurl' => System::baseUrl(), '$platform' => FRIENDICA_PLATFORM, '$codename' => FRIENDICA_CODENAME, - '$build' => Config::get('system','build'), + '$build' => Config::get('system', 'build'), '$plugins' => array(t('Active plugins'), $a->plugins), '$showwarning' => $showwarning, '$warningtext' => $warningtext @@ -702,7 +713,8 @@ function admin_page_summary(App $a) { * * @param App $a */ -function admin_page_site_post(App $a) { +function admin_page_site_post(App $a) +{ check_form_security_token_redirectOnErr('/admin/site', 'admin_site'); if (!empty($_POST['republish_directory'])) { @@ -710,17 +722,17 @@ function admin_page_site_post(App $a) { return; } - if (!x($_POST,"page_site")) { + if (!x($_POST, "page_site")) { return; } // relocate - if (x($_POST,'relocate') && x($_POST,'relocate_url') && $_POST['relocate_url'] != "") { + if (x($_POST, 'relocate') && x($_POST, 'relocate_url') && $_POST['relocate_url'] != "") { $new_url = $_POST['relocate_url']; - $new_url = rtrim($new_url,"/"); + $new_url = rtrim($new_url, "/"); $parsed = @parse_url($new_url); - if (!$parsed || (!x($parsed,'host') || !x($parsed,'scheme'))) { + if (!$parsed || (!x($parsed, 'host') || !x($parsed, 'scheme'))) { notice(t("Can not parse base url. Must have at least ://")); goaway('admin/site'); } @@ -736,7 +748,8 @@ function admin_page_site_post(App $a) { $new_host = str_replace("http://", "@", normalise_link($new_url)); $old_host = str_replace("http://", "@", normalise_link($old_url)); - function update_table($table_name, $fields, $old_url, $new_url) { + function update_table($table_name, $fields, $old_url, $new_url) + { global $a; $dbold = dbesc($old_url); @@ -754,26 +767,25 @@ function admin_page_site_post(App $a) { $q = sprintf("UPDATE %s SET %s;", $table_name, $upds); $r = q($q); if (!$r) { - notice("Failed updating '$table_name': ".dba::errorMessage()); + notice("Failed updating '$table_name': " . dba::errorMessage()); goaway('admin/site'); } } - // update tables // update profile links in the format "http://server.tld" update_table("profile", array('photo', 'thumb'), $old_url, $new_url); update_table("term", array('url'), $old_url, $new_url); - update_table("contact", array('photo','thumb','micro','url','nurl','alias','request','notify','poll','confirm','poco', 'avatar'), $old_url, $new_url); - update_table("gcontact", array('url','nurl','photo','server_url','notify','alias'), $old_url, $new_url); - update_table("item", array('owner-link','owner-avatar','author-link','author-avatar','body','plink','tag'), $old_url, $new_url); + update_table("contact", array('photo', 'thumb', 'micro', 'url', 'nurl', 'alias', 'request', 'notify', 'poll', 'confirm', 'poco', 'avatar'), $old_url, $new_url); + update_table("gcontact", array('url', 'nurl', 'photo', 'server_url', 'notify', 'alias'), $old_url, $new_url); + update_table("item", array('owner-link', 'owner-avatar', 'author-link', 'author-avatar', 'body', 'plink', 'tag'), $old_url, $new_url); // update profile addresses in the format "user@server.tld" update_table("contact", array('addr'), $old_host, $new_host); - update_table("gcontact", array('connect','addr'), $old_host, $new_host); + update_table("gcontact", array('connect', 'addr'), $old_host, $new_host); // update config $a->set_baseurl($new_url); - Config::set('system','url',$new_url); + Config::set('system', 'url', $new_url); // send relocate $users = q("SELECT `uid` FROM `user` WHERE `account_removed` = 0 AND `account_expired` = 0"); @@ -873,7 +885,7 @@ function admin_page_site_post(App $a) { if ($a->get_path() != "") { $diaspora_enabled = false; } - if ($ssl_policy != intval(Config::get('system','ssl_policy'))) { + if ($ssl_policy != intval(Config::get('system', 'ssl_policy'))) { if ($ssl_policy == SSL_POLICY_FULL) { q("UPDATE `contact` SET `url` = REPLACE(`url` , 'http:' , 'https:'), @@ -912,52 +924,50 @@ function admin_page_site_post(App $a) { ); } } - Config::set('system','ssl_policy',$ssl_policy); - Config::set('system','maxloadavg',$maxloadavg); - Config::set('system','maxloadavg_frontend',$maxloadavg_frontend); - Config::set('system','min_memory',$min_memory); - Config::set('system','optimize_max_tablesize',$optimize_max_tablesize); - Config::set('system','optimize_fragmentation',$optimize_fragmentation); - Config::set('system','poco_completion',$poco_completion); - Config::set('system','poco_requery_days',$poco_requery_days); - Config::set('system','poco_discovery',$poco_discovery); - Config::set('system','poco_discovery_since',$poco_discovery_since); - Config::set('system','poco_local_search',$poco_local_search); - Config::set('system','nodeinfo',$nodeinfo); - Config::set('config','sitename',$sitename); - Config::set('config','hostname',$hostname); - Config::set('config','sender_email', $sender_email); - Config::set('system','suppress_tags',$suppress_tags); - Config::set('system','shortcut_icon',$shortcut_icon); - Config::set('system','touch_icon',$touch_icon); + Config::set('system', 'ssl_policy', $ssl_policy); + Config::set('system', 'maxloadavg', $maxloadavg); + Config::set('system', 'maxloadavg_frontend', $maxloadavg_frontend); + Config::set('system', 'min_memory', $min_memory); + Config::set('system', 'optimize_max_tablesize', $optimize_max_tablesize); + Config::set('system', 'optimize_fragmentation', $optimize_fragmentation); + Config::set('system', 'poco_completion', $poco_completion); + Config::set('system', 'poco_requery_days', $poco_requery_days); + Config::set('system', 'poco_discovery', $poco_discovery); + Config::set('system', 'poco_discovery_since', $poco_discovery_since); + Config::set('system', 'poco_local_search', $poco_local_search); + Config::set('system', 'nodeinfo', $nodeinfo); + Config::set('config', 'sitename', $sitename); + Config::set('config', 'hostname', $hostname); + Config::set('config', 'sender_email', $sender_email); + Config::set('system', 'suppress_tags', $suppress_tags); + Config::set('system', 'shortcut_icon', $shortcut_icon); + Config::set('system', 'touch_icon', $touch_icon); if ($banner == "") { // don't know why, but del_config doesn't work... - q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", - dbesc("system"), - dbesc("banner") + q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", dbesc("system"), dbesc("banner") ); } else { - Config::set('system','banner', $banner); + Config::set('system', 'banner', $banner); } if ($info == "") { - Config::delete('config','info'); + Config::delete('config', 'info'); } else { - Config::set('config','info',$info); + Config::set('config', 'info', $info); } - Config::set('system','language', $language); - Config::set('system','theme', $theme); + Config::set('system', 'language', $language); + Config::set('system', 'theme', $theme); if ($theme_mobile == '---') { - Config::delete('system','mobile-theme'); + Config::delete('system', 'mobile-theme'); } else { - Config::set('system','mobile-theme', $theme_mobile); + Config::set('system', 'mobile-theme', $theme_mobile); } if ($singleuser == '---') { - Config::delete('system','singleuser'); + Config::delete('system', 'singleuser'); } else { - Config::set('system','singleuser', $singleuser); + Config::set('system', 'singleuser', $singleuser); } Config::set('system', 'maximagesize', $maximagesize); Config::set('system', 'max_image_length', $maximagelength); @@ -1023,10 +1033,9 @@ function admin_page_site_post(App $a) { Config::set('system', 'frontend_worker', $worker_frontend); Config::set('system', 'rino_encrypt', $rino); - info(t('Site settings updated.').EOL); + info(t('Site settings updated.') . EOL); goaway('admin/site'); return; // NOTREACHED - } /** @@ -1037,15 +1046,15 @@ function admin_page_site_post(App $a) { * @param App $a * @return string */ -function admin_page_site(App $a) { - +function admin_page_site(App $a) +{ /* Installed langs */ $lang_choices = get_available_languages(); - if (strlen(Config::get('system','directory_submit_url')) && - !strlen(Config::get('system','directory'))) { - Config::set('system','directory', dirname(Config::get('system','directory_submit_url'))); - Config::delete('system','directory_submit_url'); + if (strlen(Config::get('system', 'directory_submit_url')) && + !strlen(Config::get('system', 'directory'))) { + Config::set('system', 'directory', dirname(Config::get('system', 'directory_submit_url'))); + Config::delete('system', 'directory_submit_url'); } /* Installed themes */ @@ -1058,8 +1067,9 @@ function admin_page_site(App $a) { $allowed_theme_list = Config::get('system', 'allowed_themes'); foreach ($files as $file) { - if (intval(file_exists($file.'/unsupported'))) + if (intval(file_exists($file . '/unsupported'))) { continue; + } $f = basename($file); @@ -1068,9 +1078,9 @@ function admin_page_site(App $a) { continue; } - $theme_name = ((file_exists($file.'/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f); + $theme_name = ((file_exists($file . '/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f); - if (file_exists($file.'/mobile')) { + if (file_exists($file . '/mobile')) { $theme_choices_mobile[$f] = $theme_name; } else { $theme_choices[$f] = $theme_name; @@ -1083,7 +1093,7 @@ function admin_page_site(App $a) { CP_NO_COMMUNITY_PAGE => t("No community page"), CP_USERS_ON_SERVER => t("Public postings from users of this site"), CP_GLOBAL_COMMUNITY => t("Global community page") - ); + ); /* OStatus conversation poll choices */ $ostatus_poll_choices = array( @@ -1093,21 +1103,21 @@ function admin_page_site(App $a) { "60" => t("Hourly"), "720" => t("Twice daily"), "1440" => t("Daily") - ); + ); $poco_discovery_choices = array( "0" => t("Disabled"), "1" => t("Users"), "2" => t("Users, Global Contacts"), "3" => t("Users, Global Contacts/fallback"), - ); + ); $poco_discovery_since_choices = array( "30" => t("One month"), "91" => t("Three months"), "182" => t("Half a year"), "365" => t("One year"), - ); + ); /* get user names to make the install a personal install of X */ $user_names = array(); @@ -1118,12 +1128,12 @@ function admin_page_site(App $a) { } /* Banner */ - $banner = Config::get('system','banner'); + $banner = Config::get('system', 'banner'); if ($banner == false) { $banner = 'logoFriendica'; } $banner = htmlspecialchars($banner); - $info = Config::get('config','info'); + $info = Config::get('config', 'info'); $info = htmlspecialchars($info); // Automatically create temporary paths @@ -1156,7 +1166,7 @@ function admin_page_site(App $a) { } $diaspora_able = ($a->get_path() == ""); - $optimize_max_tablesize = Config::get('system','optimize_max_tablesize', 100); + $optimize_max_tablesize = Config::get('system', 'optimize_max_tablesize', 100); if ($optimize_max_tablesize < -1) { $optimize_max_tablesize = -1; @@ -1179,7 +1189,7 @@ function admin_page_site(App $a) { '$portable_contacts' => t('Auto Discovered Contact Directory'), '$performance' => t('Performance'), '$worker_title' => t('Worker'), - '$relocate'=> t('Relocate - WARNING: advanced function. Could make this server unreachable.'), + '$relocate' => t('Relocate - WARNING: advanced function. Could make this server unreachable.'), '$baseurl' => System::baseUrl(true), // name, label, value, help string, extra data... '$sitename' => array('sitename', t("Site name"), $a->config['sitename'],''), @@ -1264,9 +1274,7 @@ function admin_page_site(App $a) { '$worker_frontend' => array('worker_frontend', t('Enable frontend worker'), Config::get('system','frontend_worker'), sprintf(t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.'), System::baseUrl())), '$form_security_token' => get_form_security_token("admin_site") - )); - } /** @@ -1280,18 +1288,18 @@ function admin_page_site(App $a) { * * @param App $a * @return string - **/ -function admin_page_dbsync(App $a) { - + * */ +function admin_page_dbsync(App $a) +{ $o = ''; if ($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') { - Config::set('database', 'update_'.intval($a->argv[3]), 'success'); - $curr = Config::get('system','build'); + Config::set('database', 'update_' . intval($a->argv[3]), 'success'); + $curr = Config::get('system', 'build'); if (intval($curr) == intval($a->argv[3])) { - Config::set('system','build',intval($curr) + 1); + Config::set('system', 'build', intval($curr) + 1); } - info(t('Update has been marked successful').EOL); + info(t('Update has been marked successful') . EOL); goaway('admin/dbsync'); } @@ -1299,11 +1307,10 @@ function admin_page_dbsync(App $a) { require_once("include/dbstructure.php"); $retval = update_structure(false, true); if (!$retval) { - $o .= sprintf(t("Database structure update %s was successfully applied."), DB_UPDATE_VERSION)."
"; - Config::set('database', 'dbupdate_'.DB_UPDATE_VERSION, 'success'); + $o .= sprintf(t("Database structure update %s was successfully applied."), DB_UPDATE_VERSION) . "
"; + Config::set('database', 'dbupdate_' . DB_UPDATE_VERSION, 'success'); } else { - $o .= sprintf(t("Executing of database structure update %s failed with error: %s"), - DB_UPDATE_VERSION, $retval)."
"; + $o .= sprintf(t("Executing of database structure update %s failed with error: %s"), DB_UPDATE_VERSION, $retval) . "
"; } if ($a->argv[2] === 'check') { return $o; @@ -1311,22 +1318,21 @@ function admin_page_dbsync(App $a) { } if ($a->argc > 2 && intval($a->argv[2])) { - require_once('update.php'); - $func = 'update_'.intval($a->argv[2]); + require_once 'update.php'; + $func = 'update_' . intval($a->argv[2]); if (function_exists($func)) { $retval = $func(); if ($retval === UPDATE_FAILED) { $o .= sprintf(t("Executing %s failed with error: %s"), $func, $retval); - } - elseif ($retval === UPDATE_SUCCESS) { + } elseif ($retval === UPDATE_SUCCESS) { $o .= sprintf(t('Update %s was successfully applied.', $func)); - Config::set('database',$func, 'success'); + Config::set('database', $func, 'success'); } else { $o .= sprintf(t('Update %s did not return a status. Unknown if it succeeded.'), $func); } } else { - $o .= sprintf(t('There was no additional update function %s that needed to be called.'), $func)."
"; - Config::set('database',$func, 'success'); + $o .= sprintf(t('There was no additional update function %s that needed to be called.'), $func) . "
"; + Config::set('database', $func, 'success'); } return $o; } @@ -1335,32 +1341,31 @@ function admin_page_dbsync(App $a) { $r = q("SELECT `k`, `v` FROM `config` WHERE `cat` = 'database' "); if (DBM::is_result($r)) { foreach ($r as $rr) { - $upd = intval(substr($rr['k'],7)); + $upd = intval(substr($rr['k'], 7)); if ($upd < 1139 || $rr['v'] === 'success') { continue; } $failed[] = $upd; } } - if (! count($failed)) { - $o = replace_macros(get_markup_template('structure_check.tpl'),array( - '$base' => System::baseUrl(true), + if (!count($failed)) { + $o = replace_macros(get_markup_template('structure_check.tpl'), array( + '$base' => System::baseUrl(true), '$banner' => t('No failed updates.'), - '$check' => t('Check database structure'), + '$check' => t('Check database structure'), )); } else { - $o = replace_macros(get_markup_template('failed_updates.tpl'),array( - '$base' => System::baseUrl(true), + $o = replace_macros(get_markup_template('failed_updates.tpl'), array( + '$base' => System::baseUrl(true), '$banner' => t('Failed Updates'), - '$desc' => t('This does not include updates prior to 1139, which did not return a status.'), - '$mark' => t('Mark success (if update was manually applied)'), - '$apply' => t('Attempt to execute this update step automatically'), + '$desc' => t('This does not include updates prior to 1139, which did not return a status.'), + '$mark' => t('Mark success (if update was manually applied)'), + '$apply' => t('Attempt to execute this update step automatically'), '$failed' => $failed )); } return $o; - } /** @@ -1368,7 +1373,8 @@ function admin_page_dbsync(App $a) { * * @param App $a */ -function admin_page_users_post(App $a) { +function admin_page_users_post(App $a) +{ $pending = (x($_POST, 'pending') ? $_POST['pending'] : array()); $users = (x($_POST, 'user') ? $_POST['user'] : array()); $nu_name = (x($_POST, 'new_user_name') ? $_POST['new_user_name'] : ''); @@ -1379,11 +1385,11 @@ function admin_page_users_post(App $a) { check_form_security_token_redirectOnErr('/admin/users', 'admin_users'); if (!($nu_name === "") && !($nu_email === "") && !($nu_nickname === "")) { - require_once('include/user.php'); + require_once 'include/user.php'; - $result = create_user(array('username'=>$nu_name, 'email'=>$nu_email, - 'nickname'=>$nu_nickname, 'verified'=>1, 'language'=>$nu_language)); - if (! $result['success']) { + $result = create_user(array('username' => $nu_name, 'email' => $nu_email, + 'nickname' => $nu_nickname, 'verified' => 1, 'language' => $nu_language)); + if (!$result['success']) { notice($result['message']); return; } @@ -1423,34 +1429,32 @@ function admin_page_users_post(App $a) { notification(array( 'type' => SYSTEM_EMAIL, 'to_email' => $nu['email'], - 'subject'=> sprintf(t('Registration details for %s'), $a->config['sitename']), - 'preamble'=> $preamble, + 'subject' => sprintf(t('Registration details for %s'), $a->config['sitename']), + 'preamble' => $preamble, 'body' => $body)); - } - if (x($_POST,'page_users_block')) { + if (x($_POST, 'page_users_block')) { foreach ($users as $uid) { - q("UPDATE `user` SET `blocked` = 1-`blocked` WHERE `uid` = %s", - intval($uid) + q("UPDATE `user` SET `blocked` = 1-`blocked` WHERE `uid` = %s", intval($uid) ); } notice(sprintf(tt("%s user blocked/unblocked", "%s users blocked/unblocked", count($users)), count($users))); } - if (x($_POST,'page_users_delete')) { + if (x($_POST, 'page_users_delete')) { foreach ($users as $uid) { User::remove($uid); } notice(sprintf(tt("%s user deleted", "%s users deleted", count($users)), count($users))); } - if (x($_POST,'page_users_approve')) { + if (x($_POST, 'page_users_approve')) { require_once("mod/regmod.php"); foreach ($pending as $hash) { user_allow($hash); } } - if (x($_POST,'page_users_deny')) { + if (x($_POST, 'page_users_deny')) { require_once("mod/regmod.php"); foreach ($pending as $hash) { user_deny($hash); @@ -1472,35 +1476,33 @@ function admin_page_users_post(App $a) { * @param App $a * @return string */ -function admin_page_users(App $a) { - if ($a->argc>2) { +function admin_page_users(App $a) +{ + if ($a->argc > 2) { $uid = $a->argv[3]; $user = q("SELECT `username`, `blocked` FROM `user` WHERE `uid` = %d", intval($uid)); if (count($user) == 0) { - notice('User not found'.EOL); + notice('User not found' . EOL); goaway('admin/users'); return ''; // NOTREACHED } - switch($a->argv[2]) { + switch ($a->argv[2]) { case "delete": check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); // delete user User::remove($uid); - notice(sprintf(t("User '%s' deleted"), $user[0]['username']).EOL); + notice(sprintf(t("User '%s' deleted"), $user[0]['username']) . EOL); break; case "block": check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); - q("UPDATE `user` SET `blocked` = %d WHERE `uid` = %s", - intval(1-$user[0]['blocked']), - intval($uid) + q("UPDATE `user` SET `blocked` = %d WHERE `uid` = %s", intval(1 - $user[0]['blocked']), intval($uid) ); - notice(sprintf(($user[0]['blocked']?t("User '%s' unblocked"):t("User '%s' blocked")) , $user[0]['username']).EOL); + notice(sprintf(($user[0]['blocked'] ? t("User '%s' unblocked") : t("User '%s' blocked")), $user[0]['username']) . EOL); break; } goaway('admin/users'); return ''; // NOTREACHED - } /* get pending */ @@ -1529,31 +1531,29 @@ function admin_page_users(App $a) { $order = "contact.name"; $order_direction = "+"; - if (x($_GET,'o')) { + if (x($_GET, 'o')) { $new_order = $_GET['o']; if ($new_order[0] === "-") { $order_direction = "-"; - $new_order = substr($new_order,1); + $new_order = substr($new_order, 1); } if (in_array($new_order, $valid_orders)) { $order = $new_order; } - if (x($_GET,'d')) { + if (x($_GET, 'd')) { $new_direction = $_GET['d']; } } - $sql_order = "`".str_replace('.','`.`',$order)."`"; - $sql_order_direction = ($order_direction === "+")?"ASC":"DESC"; + $sql_order = "`" . str_replace('.', '`.`', $order) . "`"; + $sql_order_direction = ($order_direction === "+") ? "ASC" : "DESC"; $users = q("SELECT `user`.*, `contact`.`name`, `contact`.`url`, `contact`.`micro`, `user`.`account_expired`, `contact`.`last-item` AS `lastitem_date` FROM `user` INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` WHERE `user`.`verified` - ORDER BY $sql_order $sql_order_direction LIMIT %d, %d", - intval($a->pager['start']), - intval($a->pager['itemspage']) - ); + ORDER BY $sql_order $sql_order_direction LIMIT %d, %d", intval($a->pager['start']), intval($a->pager['itemspage']) + ); //echo "
$users"; killme();
 
@@ -1563,7 +1563,7 @@ function admin_page_users(App $a) {
 			t('Normal Account'),
 			t('Automatic Follower Account'),
 			t('Public Forum Account'),
-						t('Automatic Friend Account')
+			t('Automatic Friend Account')
 		);
 		$e['page-flags'] = $accounts[$e['page-flags']];
 		$e['register_date'] = relative_date($e['register_date']);
@@ -1572,7 +1572,7 @@ function admin_page_users(App $a) {
 		//$e['is_admin'] = ($e['email'] === $a->config['admin_email']);
 		$e['is_admin'] = in_array($e['email'], $adminlist);
 		$e['is_deletable'] = (intval($e['uid']) != local_user());
-		$e['deleted'] = ($e['account_removed']?relative_date($e['account_expires_on']):False);
+		$e['deleted'] = ($e['account_removed'] ? relative_date($e['account_expires_on']) : False);
 		return $e;
 	};
 	$users = array_map($_setup_users, $users);
@@ -1587,7 +1587,7 @@ function admin_page_users(App $a) {
 	while (count($users)) {
 		$new_user = array();
 		foreach (array_pop($users) as $k => $v) {
-			$k = str_replace('-','_',$k);
+			$k = str_replace('-', '_', $k);
 			$new_user[$k] = $v;
 		}
 		if ($new_user['deleted']) {
@@ -1602,9 +1602,7 @@ function admin_page_users(App $a) {
 		array_push($users, array_pop($tmp_users));
 	}
 
-	$th_users = array_map(null,
-		array(t('Name'), t('Email'), t('Register date'), t('Last login'), t('Last item'),  t('Account')),
-		$valid_orders
+	$th_users = array_map(null, array(t('Name'), t('Email'), t('Register date'), t('Last login'), t('Last item'), t('Account')), $valid_orders
 	);
 
 	$t = get_markup_template("admin_users.tpl");
@@ -1617,7 +1615,7 @@ function admin_page_users(App $a) {
 		'$h_pending' => t('User registrations waiting for confirm'),
 		'$h_deleted' => t('User waiting for permanent deletion'),
 		'$th_pending' => array(t('Request date'), t('Name'), t('Email')),
-		'$no_pending' =>  t('No registrations.'),
+		'$no_pending' => t('No registrations.'),
 		'$pendingnotetext' => t('Note from the user'),
 		'$approve' => t('Approve'),
 		'$deny' => t('Deny'),
@@ -1653,7 +1651,6 @@ function admin_page_users(App $a) {
 	return $o;
 }
 
-
 /**
  * @brief Plugins admin page
  *
@@ -1670,8 +1667,8 @@ function admin_page_users(App $a) {
  * @param App $a
  * @return string
  */
-function admin_page_plugins(App $a) {
-
+function admin_page_plugins(App $a)
+{
 	/*
 	 * Single plugin
 	 */
@@ -1682,7 +1679,7 @@ function admin_page_plugins(App $a) {
 			return '';
 		}
 
-		if (x($_GET,"a") && $_GET['a']=="t") {
+		if (x($_GET, "a") && $_GET['a'] == "t") {
 			check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't');
 
 			// Toggle plugin status
@@ -1696,7 +1693,7 @@ function admin_page_plugins(App $a) {
 				install_plugin($plugin);
 				info(sprintf(t("Plugin %s enabled."), $plugin));
 			}
-			Config::set("system","addon", implode(", ",$a->plugins));
+			Config::set("system", "addon", implode(", ", $a->plugins));
 			goaway('admin/plugins');
 			return ''; // NOTREACHED
 		}
@@ -1705,23 +1702,25 @@ function admin_page_plugins(App $a) {
 		require_once('library/markdown.php');
 
 		if (in_array($plugin, $a->plugins)) {
-			$status="on"; $action= t("Disable");
+			$status = "on";
+			$action = t("Disable");
 		} else {
-			$status="off"; $action= t("Enable");
+			$status = "off";
+			$action = t("Enable");
 		}
 
-		$readme=Null;
+		$readme = Null;
 		if (is_file("addon/$plugin/README.md")) {
 			$readme = file_get_contents("addon/$plugin/README.md");
 			$readme = Markdown($readme, false);
 		} elseif (is_file("addon/$plugin/README")) {
-			$readme = "
". file_get_contents("addon/$plugin/README") ."
"; + $readme = "
" . file_get_contents("addon/$plugin/README") . "
"; } - $admin_form=""; + $admin_form = ""; if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)) { @require_once("addon/$plugin/$plugin.php"); - $func = $plugin.'_plugin_admin'; + $func = $plugin . '_plugin_admin'; $func($a, $admin_form); } @@ -1750,17 +1749,14 @@ function admin_page_plugins(App $a) { )); } - - /* * List plugins */ - - if (x($_GET,"a") && $_GET['a']=="r") { - check_form_security_token_redirectOnErr(System::baseUrl().'/admin/plugins', 'admin_themes', 't'); + if (x($_GET, "a") && $_GET['a'] == "r") { + check_form_security_token_redirectOnErr(System::baseUrl() . '/admin/plugins', 'admin_themes', 't'); reload_plugins(); info("Plugins reloaded"); - goaway(System::baseUrl().'/admin/plugins'); + goaway(System::baseUrl() . '/admin/plugins'); } $plugins = array(); @@ -1768,12 +1764,12 @@ function admin_page_plugins(App $a) { if ($files) { foreach ($files as $file) { if (is_dir($file)) { - list($tmp, $id)=array_map("trim", explode("/",$file)); + list($tmp, $id) = array_map("trim", explode("/", $file)); $info = get_plugin_info($id); $show_plugin = true; // If the addon is unsupported, then only show it, when it is enabled - if ((strtolower($info["status"]) == "unsupported") && !in_array($id, $a->plugins)) { + if ((strtolower($info["status"]) == "unsupported") && !in_array($id, $a->plugins)) { $show_plugin = false; } @@ -1783,7 +1779,7 @@ function admin_page_plugins(App $a) { } if ($show_plugin) { - $plugins[] = array($id, (in_array($id, $a->plugins)?"on":"off") , $info); + $plugins[] = array($id, (in_array($id, $a->plugins) ? "on" : "off"), $info); } } } @@ -1809,14 +1805,14 @@ function admin_page_plugins(App $a) { * @param string $th * @param int $result */ -function toggle_theme(&$themes,$th,&$result) { - for($x = 0; $x < count($themes); $x ++) { +function toggle_theme(&$themes, $th, &$result) +{ + for ($x = 0; $x < count($themes); $x ++) { if ($themes[$x]['name'] === $th) { if ($themes[$x]['allowed']) { $themes[$x]['allowed'] = 0; $result = 0; - } - else { + } else { $themes[$x]['allowed'] = 1; $result = 1; } @@ -1829,13 +1825,13 @@ function toggle_theme(&$themes,$th,&$result) { * @param string $th * @return int */ -function theme_status($themes,$th) { - for($x = 0; $x < count($themes); $x ++) { +function theme_status($themes, $th) +{ + for ($x = 0; $x < count($themes); $x ++) { if ($themes[$x]['name'] === $th) { if ($themes[$x]['allowed']) { return 1; - } - else { + } else { return 0; } } @@ -1843,12 +1839,12 @@ function theme_status($themes,$th) { return 0; } - /** * @param array $themes * @return string */ -function rebuild_theme_table($themes) { +function rebuild_theme_table($themes) +{ $o = ''; if (count($themes)) { foreach ($themes as $th) { @@ -1863,7 +1859,6 @@ function rebuild_theme_table($themes) { return $o; } - /** * @brief Themes admin page * @@ -1880,10 +1875,10 @@ function rebuild_theme_table($themes) { * @param App $a * @return string */ -function admin_page_themes(App $a) { - - $allowed_themes_str = Config::get('system','allowed_themes'); - $allowed_themes_raw = explode(',',$allowed_themes_str); +function admin_page_themes(App $a) +{ + $allowed_themes_str = Config::get('system', 'allowed_themes'); + $allowed_themes_raw = explode(',', $allowed_themes_str); $allowed_themes = array(); if (count($allowed_themes_raw)) { foreach ($allowed_themes_raw as $x) { @@ -1900,16 +1895,16 @@ function admin_page_themes(App $a) { $f = basename($file); // Is there a style file? - $theme_files = glob('view/theme/'.$f.'/style.*'); + $theme_files = glob('view/theme/' . $f . '/style.*'); // If not then quit if (count($theme_files) == 0) { continue; } - $is_experimental = intval(file_exists($file.'/experimental')); - $is_supported = 1-(intval(file_exists($file.'/unsupported'))); - $is_allowed = intval(in_array($f,$allowed_themes)); + $is_experimental = intval(file_exists($file . '/experimental')); + $is_supported = 1 - (intval(file_exists($file . '/unsupported'))); + $is_allowed = intval(in_array($f, $allowed_themes)); if ($is_allowed || $is_supported || Config::get("system", "show_unsupported_themes")) { $themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed); @@ -1917,7 +1912,7 @@ function admin_page_themes(App $a) { } } - if (! count($themes)) { + if (!count($themes)) { notice(t('No themes found.')); return ''; } @@ -1928,38 +1923,40 @@ function admin_page_themes(App $a) { if ($a->argc == 3) { $theme = $a->argv[2]; - if (! is_dir("view/theme/$theme")) { + if (!is_dir("view/theme/$theme")) { notice(t("Item not found.")); return ''; } - if (x($_GET,"a") && $_GET['a']=="t") { + if (x($_GET, "a") && $_GET['a'] == "t") { check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't'); // Toggle theme status - toggle_theme($themes,$theme,$result); + toggle_theme($themes, $theme, $result); $s = rebuild_theme_table($themes); if ($result) { install_theme($theme); - info(sprintf('Theme %s enabled.',$theme)); + info(sprintf('Theme %s enabled.', $theme)); } else { uninstall_theme($theme); - info(sprintf('Theme %s disabled.',$theme)); + info(sprintf('Theme %s disabled.', $theme)); } - Config::set('system','allowed_themes',$s); + Config::set('system', 'allowed_themes', $s); goaway('admin/themes'); return ''; // NOTREACHED } // display theme details - require_once('library/markdown.php'); + require_once 'library/markdown.php'; - if (theme_status($themes,$theme)) { - $status="on"; $action= t("Disable"); + if (theme_status($themes, $theme)) { + $status = "on"; + $action = t("Disable"); } else { - $status="off"; $action= t("Enable"); + $status = "off"; + $action = t("Enable"); } $readme = Null; @@ -1967,12 +1964,14 @@ function admin_page_themes(App $a) { $readme = file_get_contents("view/theme/$theme/README.md"); $readme = Markdown($readme, false); } elseif (is_file("view/theme/$theme/README")) { - $readme = "
". file_get_contents("view/theme/$theme/README") ."
"; + $readme = "
" . file_get_contents("view/theme/$theme/README") . "
"; } $admin_form = ""; if (is_file("view/theme/$theme/config.php")) { - function __get_theme_admin_form(App $a, $theme) { + + function __get_theme_admin_form(App $a, $theme) + { $orig_theme = $a->theme; $orig_page = $a->page; $orig_session_theme = $_SESSION['theme']; @@ -1981,7 +1980,7 @@ function admin_page_themes(App $a) { $_SESSION['theme'] = $theme; - $init = $theme."_init"; + $init = $theme . "_init"; if (function_exists($init)) { $init($a); } @@ -1998,7 +1997,7 @@ function admin_page_themes(App $a) { } $screenshot = array(get_theme_screenshot($theme), t('Screenshot')); - if (! stristr($screenshot[0],$theme)) { + if (!stristr($screenshot[0], $theme)) { $screenshot = null; } @@ -2026,8 +2025,8 @@ function admin_page_themes(App $a) { // reload active themes - if (x($_GET,"a") && $_GET['a']=="r") { - check_form_security_token_redirectOnErr(System::baseUrl().'/admin/themes', 'admin_themes', 't'); + if (x($_GET, "a") && $_GET['a'] == "r") { + check_form_security_token_redirectOnErr(System::baseUrl() . '/admin/themes', 'admin_themes', 't'); if ($themes) { foreach ($themes as $th) { if ($th['allowed']) { @@ -2037,7 +2036,7 @@ function admin_page_themes(App $a) { } } info("Themes reloaded"); - goaway(System::baseUrl().'/admin/themes'); + goaway(System::baseUrl() . '/admin/themes'); } /* @@ -2047,11 +2046,10 @@ function admin_page_themes(App $a) { $xthemes = array(); if ($themes) { foreach ($themes as $th) { - $xthemes[] = array($th['name'],(($th['allowed']) ? "on" : "off"), get_theme_info($th['name'])); + $xthemes[] = array($th['name'], (($th['allowed']) ? "on" : "off"), get_theme_info($th['name'])); } } - $t = get_markup_template("admin_plugins.tpl"); return replace_macros($t, array( '$title' => t('Administration'), @@ -2069,23 +2067,23 @@ function admin_page_themes(App $a) { )); } - /** * @brief Prosesses data send by Logs admin page * * @param App $a */ -function admin_page_logs_post(App $a) { - if (x($_POST,"page_logs")) { +function admin_page_logs_post(App $a) +{ + if (x($_POST, "page_logs")) { check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs'); $logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : ''); $debugging = ((x($_POST,'debugging')) ? true : false); $loglevel = ((x($_POST,'loglevel')) ? intval(trim($_POST['loglevel'])) : 0); - Config::set('system','logfile', $logfile); - Config::set('system','debugging', $debugging); - Config::set('system','loglevel', $loglevel); + Config::set('system', 'logfile', $logfile); + Config::set('system', 'debugging', $debugging); + Config::set('system', 'loglevel', $loglevel); } info(t("Log settings updated.")); @@ -2109,8 +2107,8 @@ function admin_page_logs_post(App $a) { * @param App $a * @return string */ -function admin_page_logs(App $a) { - +function admin_page_logs(App $a) +{ $log_choices = array( LOGGER_NORMAL => 'Normal', LOGGER_TRACE => 'Trace', @@ -2133,13 +2131,11 @@ function admin_page_logs(App $a) { '$submit' => t('Save Settings'), '$clear' => t('Clear'), '$baseurl' => System::baseUrl(true), - '$logname' => Config::get('system','logfile'), - + '$logname' => Config::get('system', 'logfile'), // name, label, value, help string, extra data... - '$debugging' => array('debugging', t("Enable Debugging"),Config::get('system','debugging'), ""), - '$logfile' => array('logfile', t("Log file"), Config::get('system','logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")), - '$loglevel' => array('loglevel', t("Log level"), Config::get('system','loglevel'), "", $log_choices), - + '$debugging' => array('debugging', t("Enable Debugging"), Config::get('system', 'debugging'), ""), + '$logfile' => array('logfile', t("Log file"), Config::get('system', 'logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")), + '$loglevel' => array('loglevel', t("Log level"), Config::get('system', 'loglevel'), "", $log_choices), '$form_security_token' => get_form_security_token("admin_logs"), '$phpheader' => t("PHP logging"), '$phphint' => t("To enable logging of PHP errors and warnings you can add the following to the .htconfig.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."), @@ -2166,9 +2162,10 @@ function admin_page_logs(App $a) { * @param App $a * @return string */ -function admin_page_viewlogs(App $a) { +function admin_page_viewlogs(App $a) +{ $t = get_markup_template("admin_viewlogs.tpl"); - $f = Config::get('system','logfile'); + $f = Config::get('system', 'logfile'); $data = ''; if (!file_exists($f)) { @@ -2184,11 +2181,11 @@ function admin_page_viewlogs(App $a) { if ($size > 5000000 || $size < 0) { $size = 5000000; } - $seek = fseek($fp,0-$size,SEEK_END); + $seek = fseek($fp, 0 - $size, SEEK_END); if ($seek === 0) { - $data = escape_tags(fread($fp,$size)); - while (! feof($fp)) { - $data .= escape_tags(fread($fp,4096)); + $data = escape_tags(fread($fp, $size)); + while (!feof($fp)) { + $data .= escape_tags(fread($fp, 4096)); } } } @@ -2199,7 +2196,7 @@ function admin_page_viewlogs(App $a) { '$title' => t('Administration'), '$page' => t('View Logs'), '$data' => $data, - '$logname' => Config::get('system','logfile') + '$logname' => Config::get('system', 'logfile') )); } @@ -2208,11 +2205,11 @@ function admin_page_viewlogs(App $a) { * * @param App $a */ -function admin_page_features_post(App $a) { - +function admin_page_features_post(App $a) +{ check_form_security_token_redirectOnErr('/admin/features', 'admin_manage_features'); - logger('postvars: '.print_r($_POST,true),LOGGER_DATA); + logger('postvars: ' . print_r($_POST, true), LOGGER_DATA); $arr = array(); $features = get_features(false); @@ -2256,8 +2253,8 @@ function admin_page_features_post(App $a) { * @param App $a * @return string */ -function admin_page_features(App $a) { - +function admin_page_features(App $a) +{ if ((argc() > 1) && (argv(1) === 'features')) { $arr = array(); $features = get_features(false); @@ -2265,12 +2262,11 @@ function admin_page_features(App $a) { foreach ($features as $fname => $fdata) { $arr[$fname] = array(); $arr[$fname][0] = $fdata[0]; - foreach (array_slice($fdata,1) as $f) { - + foreach (array_slice($fdata, 1) as $f) { $set = Config::get('feature', $f[0], $f[3]); $arr[$fname][1][] = array( - array('feature_' .$f[0],$f[1],$set,$f[2],array(t('Off'), t('On'))), - array('featurelock_' .$f[0],sprintf(t('Lock feature %s'),$f[1]),(($f[4] !== false) ? "1" : ''),'',array(t('Off'), t('On'))) + array('feature_' . $f[0], $f[1], $set, $f[2], array(t('Off'), t('On'))), + array('featurelock_' . $f[0], sprintf(t('Lock feature %s'), $f[1]), (($f[4] !== false) ? "1" : ''), '', array(t('Off'), t('On'))) ); } } From 84418860bd315bc97de1c0d3aefce2b9f3d9a612 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 1 Dec 2017 00:34:54 -0500 Subject: [PATCH 02/10] Improve dba - Add dba::count - Add support for LIMIT X,X --- include/dba.php | 85 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 12 deletions(-) diff --git a/include/dba.php b/include/dba.php index 684f53ea47..fe191a9e21 100644 --- a/include/dba.php +++ b/include/dba.php @@ -1104,7 +1104,8 @@ class dba { * * $data = dba::select($table, $fields, $condition, $params); */ - public static function select($table, $fields = array(), $condition = array(), $params = array()) { + public static function select($table, array $fields = [], array $condition = [], array $params = []) + { if ($table == '') { return false; } @@ -1115,17 +1116,7 @@ class dba { $select_fields = "*"; } - if (count($condition) > 0) { - $array_element = each($condition); - $array_key = $array_element['key']; - if (is_int($array_key)) { - $condition_string = " WHERE ".array_shift($condition); - } else { - $condition_string = " WHERE `".implode("` = ? AND `", array_keys($condition))."` = ?"; - } - } else { - $condition_string = ""; - } + $condition_string = self::buildCondition($condition); $param_string = ''; $single_row = false; @@ -1147,6 +1138,11 @@ class dba { $single_row = ($params['limit'] == 1); } + if (isset($params['limit']) && is_array($params['limit'])) { + $param_string .= " LIMIT ".intval($params['limit'][0]).", ".intval($params['limit'][1]); + $single_row = ($params['limit'][1] == 1); + } + if (isset($params['only_query']) && $params['only_query']) { $single_row = !$params['only_query']; } @@ -1164,6 +1160,71 @@ class dba { } } + /** + * @brief Counts the rows from a table satisfying the provided condition + * + * @param string $table Table name + * @param array $condition array of fields for condition + * + * @return int + * + * Example: + * $table = "item"; + * + * $condition = ["uid" => 1, "network" => 'dspr']; + * or: + * $condition = ["`uid` = ? AND `network` IN (?, ?)", 1, 'dfrn', 'dspr']; + * + * $count = dba::count($table, $condition); + */ + public static function count($table, array $condition = []) + { + if ($table == '') { + return false; + } + + $condition_string = self::buildCondition($condition); + + $sql = "SELECT COUNT(*) AS `count` FROM `".$table."`".$condition_string; + + $row = self::fetch_first($sql, $condition); + + return $row['count']; + } + + /** + * @brief Returns the SQL condition string built from the provided condition array + * + * This function operates with two modes. + * - Supplied with a filed/value associative array, it builds simple strict + * equality conditions linked by AND. + * - Supplied with a flat list, the first element is the condition string and + * the following arguments are the values to be interpolated + * + * $condition = ["uid" => 1, "network" => 'dspr']; + * or: + * $condition = ["`uid` = ? AND `network` IN (?, ?)", 1, 'dfrn', 'dspr']; + * + * In either case, the provided array is left with the parameters only + * + * @param array $condition + * @return string + */ + private static function buildCondition(array &$condition = []) + { + $condition_string = ''; + if (count($condition) > 0) { + $array_element = each($condition); + $array_key = $array_element['key']; + if (is_int($array_key)) { + $condition_string = " WHERE ".array_shift($condition); + } else { + $condition_string = " WHERE `".implode("` = ? AND `", array_keys($condition))."` = ?"; + } + } + + return $condition_string; + } /** * @brief Fills an array with data from a query From 052ba729d7867f411d8cfd3657bcb502d3a4d17e Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 1 Dec 2017 00:35:40 -0500 Subject: [PATCH 03/10] Improved translation functions - Add built-in vsprintf to t() - Add built-in sprintf to tt() --- include/pgettext.php | 98 ++++++++--- view/templates/admin_aside.tpl | 47 ----- view/templates/admin_blocklist.tpl | 33 ---- view/templates/admin_deleteitem.tpl | 11 -- view/templates/admin_federation.tpl | 58 ------- view/templates/admin_logs.tpl | 22 --- view/templates/admin_plugins.tpl | 22 --- view/templates/admin_plugins_details.tpl | 37 ---- view/templates/admin_queue.tpl | 25 --- view/templates/admin_settings_features.tpl | 21 --- view/templates/admin_settings_head.tpl | 9 - view/templates/admin_site.tpl | 160 ------------------ view/templates/admin_summary.tpl | 48 ------ view/templates/admin_users.tpl | 155 ----------------- view/templates/admin_viewlogs.tpl | 6 - view/theme/frio/templates/admin_aside.tpl | 85 ---------- .../frost-mobile/templates/admin_aside.tpl | 32 ---- .../frost-mobile/templates/admin_site.tpl | 65 ------- .../frost-mobile/templates/admin_users.tpl | 98 ----------- view/theme/frost/templates/admin_aside.tpl | 32 ---- view/theme/frost/templates/admin_site.tpl | 73 -------- view/theme/frost/templates/admin_users.tpl | 98 ----------- view/theme/quattro/templates/admin_users.tpl | 155 ----------------- 23 files changed, 70 insertions(+), 1320 deletions(-) delete mode 100644 view/templates/admin_aside.tpl delete mode 100644 view/templates/admin_blocklist.tpl delete mode 100644 view/templates/admin_deleteitem.tpl delete mode 100644 view/templates/admin_federation.tpl delete mode 100644 view/templates/admin_logs.tpl delete mode 100644 view/templates/admin_plugins.tpl delete mode 100644 view/templates/admin_plugins_details.tpl delete mode 100644 view/templates/admin_queue.tpl delete mode 100644 view/templates/admin_settings_features.tpl delete mode 100644 view/templates/admin_settings_head.tpl delete mode 100644 view/templates/admin_site.tpl delete mode 100644 view/templates/admin_summary.tpl delete mode 100644 view/templates/admin_users.tpl delete mode 100644 view/templates/admin_viewlogs.tpl delete mode 100644 view/theme/frio/templates/admin_aside.tpl delete mode 100644 view/theme/frost-mobile/templates/admin_aside.tpl delete mode 100644 view/theme/frost-mobile/templates/admin_site.tpl delete mode 100644 view/theme/frost-mobile/templates/admin_users.tpl delete mode 100644 view/theme/frost/templates/admin_aside.tpl delete mode 100644 view/theme/frost/templates/admin_site.tpl delete mode 100644 view/theme/frost/templates/admin_users.tpl delete mode 100644 view/theme/quattro/templates/admin_users.tpl diff --git a/include/pgettext.php b/include/pgettext.php index 2e902a6ab0..ae1ce009c1 100644 --- a/include/pgettext.php +++ b/include/pgettext.php @@ -120,48 +120,90 @@ function load_translation_table($lang) { }} -// translate string if translation exists - -if (! function_exists('t')) { -function t($s) { - +/** + * @brief Return the localized version of the provided string with optional string interpolation + * + * This function takes a english string as parameter, and if a localized version + * exists for the current language, substitutes it before performing an eventual + * string interpolation (sprintf) with additional optional arguments. + * + * Usages: + * - t('This is an example') + * - t('URL %s returned no result', $url) + * - t('Current version: %s, new version: %s', $current_version, $new_version) + * + * @param string $s + * @return string + */ +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; + $s = is_array($t) ? $t[0] : $t; + } + if (func_num_args() > 1) { + $args = array_slice(func_get_args(), 1); + $s = @vsprintf($s, $args); } - return $s; -}} -if (! function_exists('tt')){ -function tt($singular, $plural, $count){ + return $s; +} + +/** + * @brief Return the localized version of a singular/plural string with optional string interpolation + * + * This function takes two english strings as parameters, singular and plural, as + * well as a count. If a localized version exists for the current language, they + * are used instead. Discrimination between singular and plural is done using the + * localized function if any or the default one. Finally, a string interpolation + * is performed using the count as parameter. + * + * Usages: + * - tt('Like', 'Likes', $count) + * - tt("%s user deleted", "%s users deleted", count($users)) + * + * @global type $lang + * @param string $singular + * @param string $plural + * @param int $count + * @return string + */ +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)) - $f = 'string_plural_select_default'; - $k = $f($count); - return is_array($t)?$t[$k]:$t; + if (is_array($t)) { + $plural_function = 'string_plural_select_' . str_replace('-', '_', $lang); + if (function_exists($plural_function)) { + $plural_function = 'string_plural_select_default'; + } + $i = $plural_function($count); + $s = $t[$i]; + } else { + $s = $t; + } + } elseif (string_plural_select_default($count)) { + $s = $plural; + } else { + $s = $singular; } - if ($count!=1){ - return $plural; - } else { - return $singular; - } -}} + $s = @sprintf($s, $count); + + return $s; +} // provide a fallback which will not collide with // a function defined in any language file - -if (! function_exists('string_plural_select_default')) { -function string_plural_select_default($n) { - return ($n != 1); -}} +function string_plural_select_default($n) +{ + return $n != 1; +} diff --git a/view/templates/admin_aside.tpl b/view/templates/admin_aside.tpl deleted file mode 100644 index 5c9cce0d0c..0000000000 --- a/view/templates/admin_aside.tpl +++ /dev/null @@ -1,47 +0,0 @@ - - -

{{$admtxt}}

- - -{{if $admin.update}} - -{{/if}} - - -{{if $admin.plugins_admin}}

{{$plugadmtxt}}

{{/if}} - - - -

{{$logtxt}}

- - -

{{$diagnosticstxt}}

- diff --git a/view/templates/admin_blocklist.tpl b/view/templates/admin_blocklist.tpl deleted file mode 100644 index 1484c987e9..0000000000 --- a/view/templates/admin_blocklist.tpl +++ /dev/null @@ -1,33 +0,0 @@ - -
-

{{$title}} - {{$page}}

-

{{$intro}}

-

{{$public}}

- -

{{$addtitle}}

-
- - {{include file="field_input.tpl" field=$newdomain}} - {{include file="field_input.tpl" field=$newreason}} -
-
- - {{if $entries}} -

{{$currenttitle}}

-

{{$currentintro}}

-
- - {{foreach $entries as $e}} - {{include file="field_input.tpl" field=$e.domain}} - {{include file="field_input.tpl" field=$e.reason}} - {{include file="field_checkbox.tpl" field=$e.delete}} - {{/foreach}} -
- {{/if}} -
- -
diff --git a/view/templates/admin_deleteitem.tpl b/view/templates/admin_deleteitem.tpl deleted file mode 100644 index cf819dea67..0000000000 --- a/view/templates/admin_deleteitem.tpl +++ /dev/null @@ -1,11 +0,0 @@ -
-

{{$title}} - {{$page}}

-

{{$intro1}}

-

{{$intro2}}

-
- -
- - {{include file="field_input.tpl" field=$deleteitemguid}} -
-
diff --git a/view/templates/admin_federation.tpl b/view/templates/admin_federation.tpl deleted file mode 100644 index ee33df09b2..0000000000 --- a/view/templates/admin_federation.tpl +++ /dev/null @@ -1,58 +0,0 @@ - - -
-

{{$title}} - {{$page}}

-

{{$intro}}

- {{if not $autoactive}} -

{{$hint}}

- {{/if}} -

{{$legendtext}} -

    - {{foreach $counts as $c}} - {{if $c[0]['total'] > 0}} -
  • {{$c[0]['platform']}} ({{$c[0]['total']}})
  • - {{/if}} - {{/foreach}} -
-

-
- - - -{{foreach $counts as $c}} - {{if $c[0]['total'] > 0}} - - - - - - - - {{/if}} -{{/foreach}} -
{{$c[0]['platform']}}{{$c[0]['total']}} - {{$c[0]['network']}}
- - -
    - {{foreach $c[1] as $v}} -
  • {{if ($c[0]['platform']==='Friendica' and $version===$v['version']) }}{{$v['version']}}{{else}}{{$v['version']}}{{/if}} ({{$v['total']}})
  • - {{/foreach}} -
-
diff --git a/view/templates/admin_logs.tpl b/view/templates/admin_logs.tpl deleted file mode 100644 index b2e6357a9a..0000000000 --- a/view/templates/admin_logs.tpl +++ /dev/null @@ -1,22 +0,0 @@ -
-

{{$title}} - {{$page}}

- -
- - - {{include file="field_checkbox.tpl" field=$debugging}} - {{include file="field_input.tpl" field=$logfile}} - {{include file="field_select.tpl" field=$loglevel}} - -
- -
- -

{{$phpheader}}

-
-

{{$phplogenabled}}

-

{{$phphint}}

-
{{$phplogcode}}
-
- -
diff --git a/view/templates/admin_plugins.tpl b/view/templates/admin_plugins.tpl deleted file mode 100644 index 75565dd2ed..0000000000 --- a/view/templates/admin_plugins.tpl +++ /dev/null @@ -1,22 +0,0 @@ - -
-

{{$title}} - {{$page}}

- {{if $pcount eq 0}} -
- {{$noplugshint}} -
- {{else}} - {{$reload}} -
    - {{foreach $plugins as $p}} -
  • - - {{$p.2.name}} - {{$p.2.version}} - {{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}} - -
    {{$p.2.description}}
    -
  • - {{/foreach}} -
- {{/if}} -
diff --git a/view/templates/admin_plugins_details.tpl b/view/templates/admin_plugins_details.tpl deleted file mode 100644 index 9def8fc605..0000000000 --- a/view/templates/admin_plugins_details.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

{{$title}} - {{$page}}

- -

{{$info.name}} - {{$info.version}} : {{$action}}

-

{{$info.description}}

- -

{{$str_author}} - {{foreach $info.author as $a}} - {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}, - {{/foreach}} -

- -

{{$str_maintainer}} - {{foreach $info.maintainer as $a}} - {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}, - {{/foreach}} -

- - {{if $screenshot}} - {{$screenshot.1}} - {{/if}} - - {{if $admin_form}} -

{{$settings}}

-
- {{$admin_form}} -
- {{/if}} - - {{if $readme}} -

Readme

-
- {{$readme}} -
- {{/if}} -
diff --git a/view/templates/admin_queue.tpl b/view/templates/admin_queue.tpl deleted file mode 100644 index aaca9b0148..0000000000 --- a/view/templates/admin_queue.tpl +++ /dev/null @@ -1,25 +0,0 @@ -
-

{{$title}} - {{$page}} ({{$count}})

- -

{{$info}}

- - - - - - - - - - {{foreach $entries as $e}} - - - - - - - - - {{/foreach}} -
{{$id_header}}{{$to_header}}{{$url_header}}{{$network_header}}{{$created_header}}{{$last_header}}
{{$e.id}}{{$e.name}}{{$e.nurl}}{{$e.network}}{{$e.created}}{{$e.last}}
-
diff --git a/view/templates/admin_settings_features.tpl b/view/templates/admin_settings_features.tpl deleted file mode 100644 index abcc527d42..0000000000 --- a/view/templates/admin_settings_features.tpl +++ /dev/null @@ -1,21 +0,0 @@ -

{{$title}}

- -
- - -{{foreach $features as $g => $f}} -

{{$f.0}}

- -
- {{foreach $f.1 as $fcat}} - {{include file="field_yesno.tpl" field=$fcat.0}} - {{include file="field_yesno.tpl" field=$fcat.1}} - {{/foreach}} - -
- -
-
-{{/foreach}} - -
diff --git a/view/templates/admin_settings_head.tpl b/view/templates/admin_settings_head.tpl deleted file mode 100644 index 25c0f804e4..0000000000 --- a/view/templates/admin_settings_head.tpl +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/view/templates/admin_site.tpl b/view/templates/admin_site.tpl deleted file mode 100644 index 9f7b3601e5..0000000000 --- a/view/templates/admin_site.tpl +++ /dev/null @@ -1,160 +0,0 @@ - -
-

{{$title}} - {{$page}}

- -
- - - {{include file="field_input.tpl" field=$sitename}} - {{include file="field_input.tpl" field=$hostname}} - {{include file="field_input.tpl" field=$sender_email}} - {{include file="field_textarea.tpl" field=$banner}} - {{include file="field_input.tpl" field=$shortcut_icon}} - {{include file="field_input.tpl" field=$touch_icon}} - {{include file="field_textarea.tpl" field=$info}} - {{include file="field_select.tpl" field=$language}} - {{include file="field_select.tpl" field=$theme}} - {{include file="field_select.tpl" field=$theme_mobile}} - {{include file="field_select.tpl" field=$ssl_policy}} - {{if $ssl_policy.2 == 1}}{{include file="field_checkbox.tpl" field=$force_ssl}}{{/if}} - {{include file="field_checkbox.tpl" field=$hide_help}} - {{include file="field_select.tpl" field=$singleuser}} -
- -

{{$registration}}

- {{include file="field_input.tpl" field=$register_text}} - {{include file="field_select.tpl" field=$register_policy}} - {{include file="field_input.tpl" field=$daily_registrations}} - {{include file="field_checkbox.tpl" field=$no_multi_reg}} - {{include file="field_checkbox.tpl" field=$no_openid}} - {{include file="field_checkbox.tpl" field=$no_regfullname}} -
- -

{{$upload}}

- {{include file="field_input.tpl" field=$maximagesize}} - {{include file="field_input.tpl" field=$maximagelength}} - {{include file="field_input.tpl" field=$jpegimagequality}} -
- -

{{$corporate}}

- {{include file="field_input.tpl" field=$allowed_sites}} - {{include file="field_input.tpl" field=$allowed_email}} - {{include file="field_checkbox.tpl" field=$block_public}} - {{include file="field_checkbox.tpl" field=$force_publish}} - {{include file="field_select.tpl" field=$community_page_style}} - {{include file="field_input.tpl" field=$max_author_posts_community_page}} - - {{include file="field_checkbox.tpl" field=$ostatus_disabled}} - {{include file="field_checkbox.tpl" field=$ostatus_full_threads}} - - {{if $diaspora_able}} - {{include file="field_checkbox.tpl" field=$diaspora_enabled}} - {{else}} -
- - {{$diaspora_not_able}} -
- {{/if}} - {{include file="field_checkbox.tpl" field=$dfrn_only}} - {{include file="field_input.tpl" field=$global_directory}} -
- {{include file="field_checkbox.tpl" field=$newuser_private}} - {{include file="field_checkbox.tpl" field=$enotify_no_content}} - {{include file="field_checkbox.tpl" field=$private_addons}} - {{include file="field_checkbox.tpl" field=$disable_embedded}} - {{include file="field_checkbox.tpl" field=$allow_users_remote_self}} -
- -

{{$advanced}}

- {{include file="field_select.tpl" field=$rino}} - {{include file="field_checkbox.tpl" field=$verifyssl}} - {{include file="field_input.tpl" field=$proxy}} - {{include file="field_input.tpl" field=$proxyuser}} - {{include file="field_input.tpl" field=$timeout}} - {{include file="field_input.tpl" field=$maxloadavg_frontend}} - {{include file="field_input.tpl" field=$optimize_max_tablesize}} - {{include file="field_input.tpl" field=$optimize_fragmentation}} - {{include file="field_input.tpl" field=$abandon_days}} - {{include file="field_input.tpl" field=$temppath}} - {{include file="field_input.tpl" field=$basepath}} - {{include file="field_checkbox.tpl" field=$suppress_tags}} - {{include file="field_checkbox.tpl" field=$nodeinfo}} - {{include file="field_select.tpl" field=$check_new_version_url}} -
- -

{{$portable_contacts}}

- {{include file="field_checkbox.tpl" field=$poco_completion}} - {{include file="field_input.tpl" field=$poco_requery_days}} - {{include file="field_select.tpl" field=$poco_discovery}} - {{include file="field_select.tpl" field=$poco_discovery_since}} - {{include file="field_checkbox.tpl" field=$poco_local_search}} -
- -

{{$performance}}

- {{include file="field_checkbox.tpl" field=$only_tag_search}} - {{include file="field_input.tpl" field=$itemcache}} - {{include file="field_input.tpl" field=$itemcache_duration}} - {{include file="field_input.tpl" field=$max_comments}} - {{include file="field_checkbox.tpl" field=$proxy_disabled}} -
- -

{{$worker_title}}

- {{include file="field_input.tpl" field=$maxloadavg}} - {{include file="field_input.tpl" field=$min_memory}} - {{include file="field_input.tpl" field=$worker_queues}} - {{include file="field_checkbox.tpl" field=$worker_dont_fork}} - {{include file="field_checkbox.tpl" field=$worker_fastlane}} - {{include file="field_checkbox.tpl" field=$worker_frontend}} -
- -
- - {{* separate form for relocate... *}} -
- -

{{$relocate}}

- {{include file="field_input.tpl" field=$relocate_url}} - -
-
- -
diff --git a/view/templates/admin_summary.tpl b/view/templates/admin_summary.tpl deleted file mode 100644 index e650144134..0000000000 --- a/view/templates/admin_summary.tpl +++ /dev/null @@ -1,48 +0,0 @@ - -
-

{{$title}} - {{$page}}

-{{if $showwarning}} -
- {{foreach $warningtext as $wt}} -

{{$wt}}

- {{/foreach}} -
-{{/if}} - -
-
{{$queues.label}}
-
{{$queues.queue}} - {{$queues.workerq}}
-
-
-
{{$pending.0}}
-
{{$pending.1}} -
- -
-
{{$users.0}}
-
{{$users.1}}
-
- {{foreach $accounts as $p}} -
-
{{$p.0}}
-
{{if $p.1}}{{$p.1}}{{else}}0{{/if}}
-
- {{/foreach}} - - -
-
{{$plugins.0}}
- - {{foreach $plugins.1 as $p}} -
{{$p}}
- {{/foreach}} - -
- -
-
{{$version.0}}
-
{{$platform}} '{{$codename}}' {{$version.1}} - {{$build}} -
- - -
diff --git a/view/templates/admin_users.tpl b/view/templates/admin_users.tpl deleted file mode 100644 index a842d6e364..0000000000 --- a/view/templates/admin_users.tpl +++ /dev/null @@ -1,155 +0,0 @@ - - -
-

{{$title}} - {{$page}}

- -
- - -

{{$h_pending}}

- {{if $pending}} - - - - {{foreach $th_pending as $th}}{{/foreach}} - - - - - - {{foreach $pending as $u}} - - - - - - - - - - - {{/foreach}} - -
{{$th}}
{{$u.created}}{{$u.name}} - - -

{{$pendingnotetext}}: {{$u.note}}

- -
- {{else}} -

{{$no_pending}}

- {{/if}} - -

{{$h_users}}

- {{if $users}} - - - - - {{foreach $th_users as $th}} - - {{/foreach}} - - - - - - {{foreach $users as $u}} - - - - - - - - - - {{else}} -   - {{/if}} - - - {{/foreach}} - -
- - {{if $order_users == $th.1}} - {{if $order_direction_users == "+"}} - ↓ - {{else}} - ↑ - {{/if}} - {{else}} - ↕ - {{/if}} - {{$th.0}} -
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} - {{if $u.is_deletable}} - - {{if $u.is_deletable}} - - - {{else}} -   - {{/if}} -
- -
- {{else}} - NO USERS?!? - {{/if}} -
- {{if $deleted}} -

{{$h_deleted}}

- - - - - {{foreach $th_deleted as $th}}{{/foreach}} - - - - {{foreach $deleted as $u}} - - - - - - - - - - {{/foreach}} - -
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}}
- {{/if}} -

{{$h_newuser}}

-
- - - - - - - - - - - - - -
{{include file="field_input.tpl" field=$newusername}}
{{include file="field_input.tpl" field=$newusernickname}}
{{include file="field_input.tpl" field=$newuseremail}}
-
-
-
diff --git a/view/templates/admin_viewlogs.tpl b/view/templates/admin_viewlogs.tpl deleted file mode 100644 index c80264c52a..0000000000 --- a/view/templates/admin_viewlogs.tpl +++ /dev/null @@ -1,6 +0,0 @@ -
-

{{$title}} - {{$page}}

- -

{{$logname}}

-
{{$data}}
-
diff --git a/view/theme/frio/templates/admin_aside.tpl b/view/theme/frio/templates/admin_aside.tpl deleted file mode 100644 index a90ec69163..0000000000 --- a/view/theme/frio/templates/admin_aside.tpl +++ /dev/null @@ -1,85 +0,0 @@ - - -
-

{{$admtxt}}

- - - - {{if $admin.update}} - - {{/if}} -
- -{{if $admin.plugins_admin}} -
-

{{$plugadmtxt}}

-
    - {{foreach $admin.plugins_admin as $name => $item}} - - {{/foreach}} -
-
-{{/if}} - - - - diff --git a/view/theme/frost-mobile/templates/admin_aside.tpl b/view/theme/frost-mobile/templates/admin_aside.tpl deleted file mode 100644 index 74b6cd5f69..0000000000 --- a/view/theme/frost-mobile/templates/admin_aside.tpl +++ /dev/null @@ -1,32 +0,0 @@ - - -

{{$admtxt}}

- - -{{if $admin.update}} - -{{/if}} - - -{{if $admin.plugins_admin}}

{{$plugadmtxt}}

{{/if}} - - - -

{{$logtxt}}

- - diff --git a/view/theme/frost-mobile/templates/admin_site.tpl b/view/theme/frost-mobile/templates/admin_site.tpl deleted file mode 100644 index d5b64e58dd..0000000000 --- a/view/theme/frost-mobile/templates/admin_site.tpl +++ /dev/null @@ -1,65 +0,0 @@ - - -
-

{{$title}} - {{$page}}

- -
- - - {{include file="field_input.tpl" field=$sitename}} - {{include file="field_textarea.tpl" field=$banner}} - {{include file="field_select.tpl" field=$language}} - {{include file="field_select.tpl" field=$theme}} - {{include file="field_select.tpl" field=$theme_mobile}} - {{include file="field_select.tpl" field=$ssl_policy}} - {{include file="field_checkbox.tpl" field=$old_share}} - {{include file="field_checkbox.tpl" field=$hide_help}} - {{include file="field_select.tpl" field=$singleuser}} - -
- -

{{$registration}}

- {{include file="field_input.tpl" field=$register_text}} - {{include file="field_select.tpl" field=$register_policy}} - - {{include file="field_checkbox.tpl" field=$no_multi_reg}} - {{include file="field_checkbox.tpl" field=$no_openid}} - {{include file="field_checkbox.tpl" field=$no_regfullname}} - -
- -

{{$upload}}

- {{include file="field_input.tpl" field=$maximagesize}} - {{include file="field_input.tpl" field=$maximagelength}} - {{include file="field_input.tpl" field=$jpegimagequality}} - -

{{$corporate}}

- {{include file="field_input.tpl" field=$allowed_sites}} - {{include file="field_input.tpl" field=$allowed_email}} - {{include file="field_checkbox.tpl" field=$block_public}} - {{include file="field_checkbox.tpl" field=$force_publish}} - {{include file="field_checkbox.tpl" field=$no_community_page}} - {{include file="field_checkbox.tpl" field=$ostatus_disabled}} - {{include file="field_checkbox.tpl" field=$diaspora_enabled}} - {{include file="field_checkbox.tpl" field=$dfrn_only}} - {{include file="field_input.tpl" field=$global_directory}} - {{include file="field_checkbox.tpl" field=$newuser_private}} - {{include file="field_checkbox.tpl" field=$enotify_no_content}} - {{include file="field_checkbox.tpl" field=$private_addons}} - {{include file="field_checkbox.tpl" field=$disable_embedded}} -
- -

{{$advanced}}

- {{include file="field_checkbox.tpl" field=$verifyssl}} - {{include file="field_input.tpl" field=$proxy}} - {{include file="field_input.tpl" field=$proxyuser}} - {{include file="field_input.tpl" field=$timeout}} - {{include file="field_input.tpl" field=$delivery_interval}} - {{include file="field_input.tpl" field=$poll_interval}} - {{include file="field_input.tpl" field=$maxloadavg}} - {{include file="field_input.tpl" field=$abandon_days}} - -
- -
-
diff --git a/view/theme/frost-mobile/templates/admin_users.tpl b/view/theme/frost-mobile/templates/admin_users.tpl deleted file mode 100644 index f0c4869a70..0000000000 --- a/view/theme/frost-mobile/templates/admin_users.tpl +++ /dev/null @@ -1,98 +0,0 @@ - -
-

{{$title}} - {{$page}}

- -
- - -

{{$h_pending}}

- {{if $pending}} - - - - {{foreach $th_pending as $th}}{{/foreach}} - - - - - - {{foreach $pending as $u}} - - - - - - - - {{/foreach}} - -
{{$th}}
{{$u.created}}{{$u.name}} - - -
- -
- {{else}} -

{{$no_pending}}

- {{/if}} - - - - -

{{$h_users}}

- {{if $users}} - - - - - {{foreach $th_users as $th}}{{/foreach}} - - - - - - {{foreach $users as $u}} - - - - - - - - - - {{/if}} - - - {{/foreach}} - -
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} - {{if $u.is_admin}} -   - {{else}} - - {{if $u.is_admin}} -   - {{else}} - - - {{/if}} -
- -
- {{else}} - NO USERS?!? - {{/if}} -
-
diff --git a/view/theme/frost/templates/admin_aside.tpl b/view/theme/frost/templates/admin_aside.tpl deleted file mode 100644 index 74b6cd5f69..0000000000 --- a/view/theme/frost/templates/admin_aside.tpl +++ /dev/null @@ -1,32 +0,0 @@ - - -

{{$admtxt}}

- - -{{if $admin.update}} - -{{/if}} - - -{{if $admin.plugins_admin}}

{{$plugadmtxt}}

{{/if}} - - - -

{{$logtxt}}

- - diff --git a/view/theme/frost/templates/admin_site.tpl b/view/theme/frost/templates/admin_site.tpl deleted file mode 100644 index 8dcfa91294..0000000000 --- a/view/theme/frost/templates/admin_site.tpl +++ /dev/null @@ -1,73 +0,0 @@ - - -
-

{{$title}} - {{$page}}

- -
- - - {{include file="field_input.tpl" field=$sitename}} - {{include file="field_textarea.tpl" field=$banner}} - {{include file="field_select.tpl" field=$language}} - {{include file="field_select.tpl" field=$theme}} - {{include file="field_select.tpl" field=$theme_mobile}} - {{include file="field_select.tpl" field=$ssl_policy}} - {{include file="field_checkbox.tpl" field=$old_share}} - {{include file="field_checkbox.tpl" field=$hide_help}} - {{include file="field_select.tpl" field=$singleuser}} - -
- -

{{$registration}}

- {{include file="field_input.tpl" field=$register_text}} - {{include file="field_select.tpl" field=$register_policy}} - {{include file="field_input.tpl" field=$daily_registrations}} - {{include file="field_checkbox.tpl" field=$no_multi_reg}} - {{include file="field_checkbox.tpl" field=$no_openid}} - {{include file="field_checkbox.tpl" field=$no_regfullname}} - -
- -

{{$upload}}

- {{include file="field_input.tpl" field=$maximagesize}} - {{include file="field_input.tpl" field=$maximagelength}} - {{include file="field_input.tpl" field=$jpegimagequality}} - -

{{$corporate}}

- {{include file="field_input.tpl" field=$allowed_sites}} - {{include file="field_input.tpl" field=$allowed_email}} - {{include file="field_checkbox.tpl" field=$block_public}} - {{include file="field_checkbox.tpl" field=$force_publish}} - {{include file="field_checkbox.tpl" field=$no_community_page}} - {{include file="field_checkbox.tpl" field=$ostatus_disabled}} - {{include file="field_checkbox.tpl" field=$diaspora_enabled}} - {{include file="field_checkbox.tpl" field=$dfrn_only}} - {{include file="field_input.tpl" field=$global_directory}} - {{include file="field_checkbox.tpl" field=$newuser_private}} - {{include file="field_checkbox.tpl" field=$enotify_no_content}} - {{include file="field_checkbox.tpl" field=$private_addons}} - {{include file="field_checkbox.tpl" field=$disable_embedded}} -
- -

{{$advanced}}

- {{include file="field_checkbox.tpl" field=$verifyssl}} - {{include file="field_input.tpl" field=$proxy}} - {{include file="field_input.tpl" field=$proxyuser}} - {{include file="field_input.tpl" field=$timeout}} - {{include file="field_input.tpl" field=$delivery_interval}} - {{include file="field_input.tpl" field=$poll_interval}} - {{include file="field_input.tpl" field=$maxloadavg}} - {{include file="field_input.tpl" field=$abandon_days}} - {{include file="field_input.tpl" field=$lockpath}} - {{include file="field_input.tpl" field=$temppath}} - {{include file="field_input.tpl" field=$basepath}} - -

{{$performance}}

- {{include file="field_input.tpl" field=$itemcache}} - {{include file="field_input.tpl" field=$itemcache_duration}} - - -
- -
-
diff --git a/view/theme/frost/templates/admin_users.tpl b/view/theme/frost/templates/admin_users.tpl deleted file mode 100644 index f0c4869a70..0000000000 --- a/view/theme/frost/templates/admin_users.tpl +++ /dev/null @@ -1,98 +0,0 @@ - -
-

{{$title}} - {{$page}}

- -
- - -

{{$h_pending}}

- {{if $pending}} - - - - {{foreach $th_pending as $th}}{{/foreach}} - - - - - - {{foreach $pending as $u}} - - - - - - - - {{/foreach}} - -
{{$th}}
{{$u.created}}{{$u.name}} - - -
- -
- {{else}} -

{{$no_pending}}

- {{/if}} - - - - -

{{$h_users}}

- {{if $users}} - - - - - {{foreach $th_users as $th}}{{/foreach}} - - - - - - {{foreach $users as $u}} - - - - - - - - - - {{/if}} - - - {{/foreach}} - -
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} - {{if $u.is_admin}} -   - {{else}} - - {{if $u.is_admin}} -   - {{else}} - - - {{/if}} -
- -
- {{else}} - NO USERS?!? - {{/if}} -
-
diff --git a/view/theme/quattro/templates/admin_users.tpl b/view/theme/quattro/templates/admin_users.tpl deleted file mode 100644 index ddb395db9c..0000000000 --- a/view/theme/quattro/templates/admin_users.tpl +++ /dev/null @@ -1,155 +0,0 @@ - - -
-

{{$title}} - {{$page}}

- -
- - -

{{$h_pending}}

- {{if $pending}} - - - - {{foreach $th_pending as $th}}{{/foreach}} - - - - - - {{foreach $pending as $u}} - - - - - - - - - - - {{/foreach}} - -
{{$th}}
{{$u.created}}{{$u.name}} - - -

{{$pendingnotetext}}: {{$u.note}}

- -
- {{else}} -

{{$no_pending}}

- {{/if}} - -

{{$h_users}}

- {{if $users}} - - - - - {{foreach $th_users as $th}} - - {{/foreach}} - - - - - - {{foreach $users as $u}} - - - - - - - - - - {{else}} -   - {{/if}} - - - {{/foreach}} - -
- - {{if $order_users == $th.1}} - {{if $order_direction_users == "+"}} - ↓ - {{else}} - ↑ - {{/if}} - {{else}} - ↕ - {{/if}} - {{$th.0}} -
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} - {{if $u.is_deletable}} - - {{if $u.is_deletable}} - - - {{else}} -   - {{/if}} -
- -
- {{else}} - NO USERS?!? - {{/if}} -
- {{if $deleted}} -

{{$h_deleted}}

- - - - - {{foreach $th_deleted as $th}}{{/foreach}} - - - - {{foreach $deleted as $u}} - - - - - - - - - - {{/foreach}} - -
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}}
- {{/if}} -

{{$h_newuser}}

-
- - - - - - - - - - - - - -
{{include file="field_input.tpl" field=$newusername}}
{{include file="field_input.tpl" field=$newusernickname}}
{{include file="field_input.tpl" field=$newuseremail}}
-
-
-
From 16d0c30328730ceb29442e150f443407df28fe4e Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 1 Dec 2017 00:40:55 -0500 Subject: [PATCH 04/10] Move admin templates to dedicated sub-folder --- mod/admin.php | 39 ++--- view/templates/admin/aside.tpl | 47 +++++ view/templates/admin/blocklist.tpl | 33 ++++ view/templates/admin/deleteitem.tpl | 11 ++ view/templates/admin/federation.tpl | 58 +++++++ view/templates/admin/logs.tpl | 22 +++ view/templates/admin/plugins.tpl | 22 +++ view/templates/admin/plugins_details.tpl | 37 ++++ view/templates/admin/queue.tpl | 25 +++ view/templates/admin/settings_features.tpl | 21 +++ view/templates/admin/settings_head.tpl | 9 + view/templates/admin/site.tpl | 160 ++++++++++++++++++ view/templates/admin/summary.tpl | 48 ++++++ view/templates/admin/users.tpl | 155 +++++++++++++++++ view/templates/admin/viewlogs.tpl | 6 + view/theme/frio/templates/admin/aside.tpl | 85 ++++++++++ .../frost-mobile/templates/admin/aside.tpl | 32 ++++ .../frost-mobile/templates/admin/site.tpl | 65 +++++++ .../frost-mobile/templates/admin/users.tpl | 98 +++++++++++ view/theme/frost/templates/admin/aside.tpl | 32 ++++ view/theme/frost/templates/admin/site.tpl | 73 ++++++++ view/theme/frost/templates/admin/users.tpl | 98 +++++++++++ view/theme/quattro/templates/admin/users.tpl | 155 +++++++++++++++++ 23 files changed, 1309 insertions(+), 22 deletions(-) create mode 100644 view/templates/admin/aside.tpl create mode 100644 view/templates/admin/blocklist.tpl create mode 100644 view/templates/admin/deleteitem.tpl create mode 100644 view/templates/admin/federation.tpl create mode 100644 view/templates/admin/logs.tpl create mode 100644 view/templates/admin/plugins.tpl create mode 100644 view/templates/admin/plugins_details.tpl create mode 100644 view/templates/admin/queue.tpl create mode 100644 view/templates/admin/settings_features.tpl create mode 100644 view/templates/admin/settings_head.tpl create mode 100644 view/templates/admin/site.tpl create mode 100644 view/templates/admin/summary.tpl create mode 100644 view/templates/admin/users.tpl create mode 100644 view/templates/admin/viewlogs.tpl create mode 100644 view/theme/frio/templates/admin/aside.tpl create mode 100644 view/theme/frost-mobile/templates/admin/aside.tpl create mode 100644 view/theme/frost-mobile/templates/admin/site.tpl create mode 100644 view/theme/frost-mobile/templates/admin/users.tpl create mode 100644 view/theme/frost/templates/admin/aside.tpl create mode 100644 view/theme/frost/templates/admin/site.tpl create mode 100644 view/theme/frost/templates/admin/users.tpl create mode 100644 view/theme/quattro/templates/admin/users.tpl diff --git a/mod/admin.php b/mod/admin.php index cdcd688f2d..de981bb900 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -149,7 +149,6 @@ function admin_post(App $a) */ function admin_content(App $a) { - if (!is_site_admin()) { return login(false); } @@ -164,7 +163,7 @@ function admin_content(App $a) // apc_delete($toDelete); //} // Header stuff - $a->page['htmlhead'] .= replace_macros(get_markup_template('admin_settings_head.tpl'), array()); + $a->page['htmlhead'] .= replace_macros(get_markup_template('admin/settings_head.tpl'), array()); /* * Side bar links @@ -201,7 +200,7 @@ function admin_content(App $a) $aside_tools['diagnostics_probe'] = array('probe/', t('probe address'), 'probe'); $aside_tools['diagnostics_webfinger'] = array('webfinger/', t('check webfinger'), 'webfinger'); - $t = get_markup_template("admin_aside.tpl"); + $t = get_markup_template('admin/aside.tpl'); $a->page['aside'] .= replace_macros($t, array( '$admin' => $aside_tools, '$subpages' => $aside_sub, @@ -213,11 +212,7 @@ function admin_content(App $a) '$admurl' => "admin/" )); - - - /* - * Page content - */ + // Page content $o = ''; // urls if ($a->argc > 1) { @@ -298,7 +293,7 @@ function admin_page_blocklist(App $a) ); } } - $t = get_markup_template("admin_blocklist.tpl"); + $t = get_markup_template('admin/blocklist.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Server Blocklist'), @@ -376,7 +371,7 @@ function admin_page_blocklist_post(App $a) */ function admin_page_deleteitem(App $a) { - $t = get_markup_template("admin_deleteitem.tpl"); + $t = get_markup_template('admin/deleteitem.tpl'); return replace_macros($t, array( '$title' => t('Administration'), @@ -557,7 +552,7 @@ function admin_page_federation(App $a) $hint = t('The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here.'); // load the template, replace the macros and return the page content - $t = get_markup_template("admin_federation.tpl"); + $t = get_markup_template('admin/federation.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Federation Statistics'), @@ -592,7 +587,7 @@ function admin_page_queue(App $a) WHERE `c`.`id` = `q`.`cid` ORDER BY `q`.`cid`, `q`.`created`;"); - $t = get_markup_template("admin_queue.tpl"); + $t = get_markup_template('admin/queue.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Inspect Queue'), @@ -689,7 +684,7 @@ function admin_page_summary(App $a) $queues = array('label' => t('Message queues'), 'queue' => $queue, 'workerq' => $workerqueue); - $t = get_markup_template("admin_summary.tpl"); + $t = get_markup_template('admin/summary.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Summary'), @@ -1176,7 +1171,7 @@ function admin_page_site(App $a) $optimize_max_tablesize = 100; } - $t = get_markup_template("admin_site.tpl"); + $t = get_markup_template('admin/site.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Site'), @@ -1605,7 +1600,7 @@ function admin_page_users(App $a) $th_users = array_map(null, array(t('Name'), t('Email'), t('Register date'), t('Last login'), t('Last item'), t('Account')), $valid_orders ); - $t = get_markup_template("admin_users.tpl"); + $t = get_markup_template('admin/users.tpl'); $o = replace_macros($t, array( // strings // '$title' => t('Administration'), @@ -1724,7 +1719,7 @@ function admin_page_plugins(App $a) $func($a, $admin_form); } - $t = get_markup_template("admin_plugins_details.tpl"); + $t = get_markup_template('admin/plugins_details.tpl'); return replace_macros($t, array( '$title' => t('Administration'), @@ -1785,7 +1780,7 @@ function admin_page_plugins(App $a) } } - $t = get_markup_template("admin_plugins.tpl"); + $t = get_markup_template('admin/plugins.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Plugins'), @@ -2001,7 +1996,7 @@ function admin_page_themes(App $a) $screenshot = null; } - $t = get_markup_template("admin_plugins_details.tpl"); + $t = get_markup_template('admin/plugins_details.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Themes'), @@ -2050,7 +2045,7 @@ function admin_page_themes(App $a) } } - $t = get_markup_template("admin_plugins.tpl"); + $t = get_markup_template('admin/plugins.tpl'); return replace_macros($t, array( '$title' => t('Administration'), '$page' => t('Themes'), @@ -2123,7 +2118,7 @@ function admin_page_logs(App $a) $phplogenabled = t('PHP log currently disabled.'); } - $t = get_markup_template("admin_logs.tpl"); + $t = get_markup_template('admin/logs.tpl'); return replace_macros($t, array( '$title' => t('Administration'), @@ -2164,7 +2159,7 @@ function admin_page_logs(App $a) */ function admin_page_viewlogs(App $a) { - $t = get_markup_template("admin_viewlogs.tpl"); + $t = get_markup_template('admin/viewlogs.tpl'); $f = Config::get('system', 'logfile'); $data = ''; @@ -2271,7 +2266,7 @@ function admin_page_features(App $a) } } - $tpl = get_markup_template("admin_settings_features.tpl"); + $tpl = get_markup_template('admin/settings_features.tpl'); $o .= replace_macros($tpl, array( '$form_security_token' => get_form_security_token("admin_manage_features"), '$title' => t('Manage Additional Features'), diff --git a/view/templates/admin/aside.tpl b/view/templates/admin/aside.tpl new file mode 100644 index 0000000000..5c9cce0d0c --- /dev/null +++ b/view/templates/admin/aside.tpl @@ -0,0 +1,47 @@ + + +

{{$admtxt}}

+ + +{{if $admin.update}} + +{{/if}} + + +{{if $admin.plugins_admin}}

{{$plugadmtxt}}

{{/if}} + + + +

{{$logtxt}}

+ + +

{{$diagnosticstxt}}

+ diff --git a/view/templates/admin/blocklist.tpl b/view/templates/admin/blocklist.tpl new file mode 100644 index 0000000000..1484c987e9 --- /dev/null +++ b/view/templates/admin/blocklist.tpl @@ -0,0 +1,33 @@ + +
+

{{$title}} - {{$page}}

+

{{$intro}}

+

{{$public}}

+ +

{{$addtitle}}

+
+ + {{include file="field_input.tpl" field=$newdomain}} + {{include file="field_input.tpl" field=$newreason}} +
+
+ + {{if $entries}} +

{{$currenttitle}}

+

{{$currentintro}}

+
+ + {{foreach $entries as $e}} + {{include file="field_input.tpl" field=$e.domain}} + {{include file="field_input.tpl" field=$e.reason}} + {{include file="field_checkbox.tpl" field=$e.delete}} + {{/foreach}} +
+ {{/if}} +
+ +
diff --git a/view/templates/admin/deleteitem.tpl b/view/templates/admin/deleteitem.tpl new file mode 100644 index 0000000000..cf819dea67 --- /dev/null +++ b/view/templates/admin/deleteitem.tpl @@ -0,0 +1,11 @@ +
+

{{$title}} - {{$page}}

+

{{$intro1}}

+

{{$intro2}}

+
+ +
+ + {{include file="field_input.tpl" field=$deleteitemguid}} +
+
diff --git a/view/templates/admin/federation.tpl b/view/templates/admin/federation.tpl new file mode 100644 index 0000000000..ee33df09b2 --- /dev/null +++ b/view/templates/admin/federation.tpl @@ -0,0 +1,58 @@ + + +
+

{{$title}} - {{$page}}

+

{{$intro}}

+ {{if not $autoactive}} +

{{$hint}}

+ {{/if}} +

{{$legendtext}} +

    + {{foreach $counts as $c}} + {{if $c[0]['total'] > 0}} +
  • {{$c[0]['platform']}} ({{$c[0]['total']}})
  • + {{/if}} + {{/foreach}} +
+

+
+ + + +{{foreach $counts as $c}} + {{if $c[0]['total'] > 0}} + + + + + + + + {{/if}} +{{/foreach}} +
{{$c[0]['platform']}}{{$c[0]['total']}} + {{$c[0]['network']}}
+ + +
    + {{foreach $c[1] as $v}} +
  • {{if ($c[0]['platform']==='Friendica' and $version===$v['version']) }}{{$v['version']}}{{else}}{{$v['version']}}{{/if}} ({{$v['total']}})
  • + {{/foreach}} +
+
diff --git a/view/templates/admin/logs.tpl b/view/templates/admin/logs.tpl new file mode 100644 index 0000000000..b2e6357a9a --- /dev/null +++ b/view/templates/admin/logs.tpl @@ -0,0 +1,22 @@ +
+

{{$title}} - {{$page}}

+ +
+ + + {{include file="field_checkbox.tpl" field=$debugging}} + {{include file="field_input.tpl" field=$logfile}} + {{include file="field_select.tpl" field=$loglevel}} + +
+ +
+ +

{{$phpheader}}

+
+

{{$phplogenabled}}

+

{{$phphint}}

+
{{$phplogcode}}
+
+ +
diff --git a/view/templates/admin/plugins.tpl b/view/templates/admin/plugins.tpl new file mode 100644 index 0000000000..75565dd2ed --- /dev/null +++ b/view/templates/admin/plugins.tpl @@ -0,0 +1,22 @@ + +
+

{{$title}} - {{$page}}

+ {{if $pcount eq 0}} +
+ {{$noplugshint}} +
+ {{else}} + {{$reload}} +
    + {{foreach $plugins as $p}} +
  • + + {{$p.2.name}} - {{$p.2.version}} + {{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}} + +
    {{$p.2.description}}
    +
  • + {{/foreach}} +
+ {{/if}} +
diff --git a/view/templates/admin/plugins_details.tpl b/view/templates/admin/plugins_details.tpl new file mode 100644 index 0000000000..9def8fc605 --- /dev/null +++ b/view/templates/admin/plugins_details.tpl @@ -0,0 +1,37 @@ + +
+

{{$title}} - {{$page}}

+ +

{{$info.name}} - {{$info.version}} : {{$action}}

+

{{$info.description}}

+ +

{{$str_author}} + {{foreach $info.author as $a}} + {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}, + {{/foreach}} +

+ +

{{$str_maintainer}} + {{foreach $info.maintainer as $a}} + {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}, + {{/foreach}} +

+ + {{if $screenshot}} + {{$screenshot.1}} + {{/if}} + + {{if $admin_form}} +

{{$settings}}

+
+ {{$admin_form}} +
+ {{/if}} + + {{if $readme}} +

Readme

+
+ {{$readme}} +
+ {{/if}} +
diff --git a/view/templates/admin/queue.tpl b/view/templates/admin/queue.tpl new file mode 100644 index 0000000000..aaca9b0148 --- /dev/null +++ b/view/templates/admin/queue.tpl @@ -0,0 +1,25 @@ +
+

{{$title}} - {{$page}} ({{$count}})

+ +

{{$info}}

+ + + + + + + + + + {{foreach $entries as $e}} + + + + + + + + + {{/foreach}} +
{{$id_header}}{{$to_header}}{{$url_header}}{{$network_header}}{{$created_header}}{{$last_header}}
{{$e.id}}{{$e.name}}{{$e.nurl}}{{$e.network}}{{$e.created}}{{$e.last}}
+
diff --git a/view/templates/admin/settings_features.tpl b/view/templates/admin/settings_features.tpl new file mode 100644 index 0000000000..abcc527d42 --- /dev/null +++ b/view/templates/admin/settings_features.tpl @@ -0,0 +1,21 @@ +

{{$title}}

+ +
+ + +{{foreach $features as $g => $f}} +

{{$f.0}}

+ +
+ {{foreach $f.1 as $fcat}} + {{include file="field_yesno.tpl" field=$fcat.0}} + {{include file="field_yesno.tpl" field=$fcat.1}} + {{/foreach}} + +
+ +
+
+{{/foreach}} + +
diff --git a/view/templates/admin/settings_head.tpl b/view/templates/admin/settings_head.tpl new file mode 100644 index 0000000000..25c0f804e4 --- /dev/null +++ b/view/templates/admin/settings_head.tpl @@ -0,0 +1,9 @@ + diff --git a/view/templates/admin/site.tpl b/view/templates/admin/site.tpl new file mode 100644 index 0000000000..9f7b3601e5 --- /dev/null +++ b/view/templates/admin/site.tpl @@ -0,0 +1,160 @@ + +
+

{{$title}} - {{$page}}

+ +
+ + + {{include file="field_input.tpl" field=$sitename}} + {{include file="field_input.tpl" field=$hostname}} + {{include file="field_input.tpl" field=$sender_email}} + {{include file="field_textarea.tpl" field=$banner}} + {{include file="field_input.tpl" field=$shortcut_icon}} + {{include file="field_input.tpl" field=$touch_icon}} + {{include file="field_textarea.tpl" field=$info}} + {{include file="field_select.tpl" field=$language}} + {{include file="field_select.tpl" field=$theme}} + {{include file="field_select.tpl" field=$theme_mobile}} + {{include file="field_select.tpl" field=$ssl_policy}} + {{if $ssl_policy.2 == 1}}{{include file="field_checkbox.tpl" field=$force_ssl}}{{/if}} + {{include file="field_checkbox.tpl" field=$hide_help}} + {{include file="field_select.tpl" field=$singleuser}} +
+ +

{{$registration}}

+ {{include file="field_input.tpl" field=$register_text}} + {{include file="field_select.tpl" field=$register_policy}} + {{include file="field_input.tpl" field=$daily_registrations}} + {{include file="field_checkbox.tpl" field=$no_multi_reg}} + {{include file="field_checkbox.tpl" field=$no_openid}} + {{include file="field_checkbox.tpl" field=$no_regfullname}} +
+ +

{{$upload}}

+ {{include file="field_input.tpl" field=$maximagesize}} + {{include file="field_input.tpl" field=$maximagelength}} + {{include file="field_input.tpl" field=$jpegimagequality}} +
+ +

{{$corporate}}

+ {{include file="field_input.tpl" field=$allowed_sites}} + {{include file="field_input.tpl" field=$allowed_email}} + {{include file="field_checkbox.tpl" field=$block_public}} + {{include file="field_checkbox.tpl" field=$force_publish}} + {{include file="field_select.tpl" field=$community_page_style}} + {{include file="field_input.tpl" field=$max_author_posts_community_page}} + + {{include file="field_checkbox.tpl" field=$ostatus_disabled}} + {{include file="field_checkbox.tpl" field=$ostatus_full_threads}} + + {{if $diaspora_able}} + {{include file="field_checkbox.tpl" field=$diaspora_enabled}} + {{else}} +
+ + {{$diaspora_not_able}} +
+ {{/if}} + {{include file="field_checkbox.tpl" field=$dfrn_only}} + {{include file="field_input.tpl" field=$global_directory}} +
+ {{include file="field_checkbox.tpl" field=$newuser_private}} + {{include file="field_checkbox.tpl" field=$enotify_no_content}} + {{include file="field_checkbox.tpl" field=$private_addons}} + {{include file="field_checkbox.tpl" field=$disable_embedded}} + {{include file="field_checkbox.tpl" field=$allow_users_remote_self}} +
+ +

{{$advanced}}

+ {{include file="field_select.tpl" field=$rino}} + {{include file="field_checkbox.tpl" field=$verifyssl}} + {{include file="field_input.tpl" field=$proxy}} + {{include file="field_input.tpl" field=$proxyuser}} + {{include file="field_input.tpl" field=$timeout}} + {{include file="field_input.tpl" field=$maxloadavg_frontend}} + {{include file="field_input.tpl" field=$optimize_max_tablesize}} + {{include file="field_input.tpl" field=$optimize_fragmentation}} + {{include file="field_input.tpl" field=$abandon_days}} + {{include file="field_input.tpl" field=$temppath}} + {{include file="field_input.tpl" field=$basepath}} + {{include file="field_checkbox.tpl" field=$suppress_tags}} + {{include file="field_checkbox.tpl" field=$nodeinfo}} + {{include file="field_select.tpl" field=$check_new_version_url}} +
+ +

{{$portable_contacts}}

+ {{include file="field_checkbox.tpl" field=$poco_completion}} + {{include file="field_input.tpl" field=$poco_requery_days}} + {{include file="field_select.tpl" field=$poco_discovery}} + {{include file="field_select.tpl" field=$poco_discovery_since}} + {{include file="field_checkbox.tpl" field=$poco_local_search}} +
+ +

{{$performance}}

+ {{include file="field_checkbox.tpl" field=$only_tag_search}} + {{include file="field_input.tpl" field=$itemcache}} + {{include file="field_input.tpl" field=$itemcache_duration}} + {{include file="field_input.tpl" field=$max_comments}} + {{include file="field_checkbox.tpl" field=$proxy_disabled}} +
+ +

{{$worker_title}}

+ {{include file="field_input.tpl" field=$maxloadavg}} + {{include file="field_input.tpl" field=$min_memory}} + {{include file="field_input.tpl" field=$worker_queues}} + {{include file="field_checkbox.tpl" field=$worker_dont_fork}} + {{include file="field_checkbox.tpl" field=$worker_fastlane}} + {{include file="field_checkbox.tpl" field=$worker_frontend}} +
+ +
+ + {{* separate form for relocate... *}} +
+ +

{{$relocate}}

+ {{include file="field_input.tpl" field=$relocate_url}} + +
+
+ +
diff --git a/view/templates/admin/summary.tpl b/view/templates/admin/summary.tpl new file mode 100644 index 0000000000..e650144134 --- /dev/null +++ b/view/templates/admin/summary.tpl @@ -0,0 +1,48 @@ + +
+

{{$title}} - {{$page}}

+{{if $showwarning}} +
+ {{foreach $warningtext as $wt}} +

{{$wt}}

+ {{/foreach}} +
+{{/if}} + +
+
{{$queues.label}}
+
{{$queues.queue}} - {{$queues.workerq}}
+
+
+
{{$pending.0}}
+
{{$pending.1}} +
+ +
+
{{$users.0}}
+
{{$users.1}}
+
+ {{foreach $accounts as $p}} +
+
{{$p.0}}
+
{{if $p.1}}{{$p.1}}{{else}}0{{/if}}
+
+ {{/foreach}} + + +
+
{{$plugins.0}}
+ + {{foreach $plugins.1 as $p}} +
{{$p}}
+ {{/foreach}} + +
+ +
+
{{$version.0}}
+
{{$platform}} '{{$codename}}' {{$version.1}} - {{$build}} +
+ + +
diff --git a/view/templates/admin/users.tpl b/view/templates/admin/users.tpl new file mode 100644 index 0000000000..a842d6e364 --- /dev/null +++ b/view/templates/admin/users.tpl @@ -0,0 +1,155 @@ + + +
+

{{$title}} - {{$page}}

+ +
+ + +

{{$h_pending}}

+ {{if $pending}} + + + + {{foreach $th_pending as $th}}{{/foreach}} + + + + + + {{foreach $pending as $u}} + + + + + + + + + + + {{/foreach}} + +
{{$th}}
{{$u.created}}{{$u.name}} + + +

{{$pendingnotetext}}: {{$u.note}}

+ +
+ {{else}} +

{{$no_pending}}

+ {{/if}} + +

{{$h_users}}

+ {{if $users}} + + + + + {{foreach $th_users as $th}} + + {{/foreach}} + + + + + + {{foreach $users as $u}} + + + + + + + + + + {{else}} +   + {{/if}} + + + {{/foreach}} + +
+ + {{if $order_users == $th.1}} + {{if $order_direction_users == "+"}} + ↓ + {{else}} + ↑ + {{/if}} + {{else}} + ↕ + {{/if}} + {{$th.0}} +
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} + {{if $u.is_deletable}} + + {{if $u.is_deletable}} + + + {{else}} +   + {{/if}} +
+ +
+ {{else}} + NO USERS?!? + {{/if}} +
+ {{if $deleted}} +

{{$h_deleted}}

+ + + + + {{foreach $th_deleted as $th}}{{/foreach}} + + + + {{foreach $deleted as $u}} + + + + + + + + + + {{/foreach}} + +
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}}
+ {{/if}} +

{{$h_newuser}}

+
+ + + + + + + + + + + + + +
{{include file="field_input.tpl" field=$newusername}}
{{include file="field_input.tpl" field=$newusernickname}}
{{include file="field_input.tpl" field=$newuseremail}}
+
+
+
diff --git a/view/templates/admin/viewlogs.tpl b/view/templates/admin/viewlogs.tpl new file mode 100644 index 0000000000..c80264c52a --- /dev/null +++ b/view/templates/admin/viewlogs.tpl @@ -0,0 +1,6 @@ +
+

{{$title}} - {{$page}}

+ +

{{$logname}}

+
{{$data}}
+
diff --git a/view/theme/frio/templates/admin/aside.tpl b/view/theme/frio/templates/admin/aside.tpl new file mode 100644 index 0000000000..a90ec69163 --- /dev/null +++ b/view/theme/frio/templates/admin/aside.tpl @@ -0,0 +1,85 @@ + + +
+

{{$admtxt}}

+ + + + {{if $admin.update}} + + {{/if}} +
+ +{{if $admin.plugins_admin}} +
+

{{$plugadmtxt}}

+
    + {{foreach $admin.plugins_admin as $name => $item}} + + {{/foreach}} +
+
+{{/if}} + + + + diff --git a/view/theme/frost-mobile/templates/admin/aside.tpl b/view/theme/frost-mobile/templates/admin/aside.tpl new file mode 100644 index 0000000000..74b6cd5f69 --- /dev/null +++ b/view/theme/frost-mobile/templates/admin/aside.tpl @@ -0,0 +1,32 @@ + + +

{{$admtxt}}

+ + +{{if $admin.update}} + +{{/if}} + + +{{if $admin.plugins_admin}}

{{$plugadmtxt}}

{{/if}} + + + +

{{$logtxt}}

+ + diff --git a/view/theme/frost-mobile/templates/admin/site.tpl b/view/theme/frost-mobile/templates/admin/site.tpl new file mode 100644 index 0000000000..d5b64e58dd --- /dev/null +++ b/view/theme/frost-mobile/templates/admin/site.tpl @@ -0,0 +1,65 @@ + + +
+

{{$title}} - {{$page}}

+ +
+ + + {{include file="field_input.tpl" field=$sitename}} + {{include file="field_textarea.tpl" field=$banner}} + {{include file="field_select.tpl" field=$language}} + {{include file="field_select.tpl" field=$theme}} + {{include file="field_select.tpl" field=$theme_mobile}} + {{include file="field_select.tpl" field=$ssl_policy}} + {{include file="field_checkbox.tpl" field=$old_share}} + {{include file="field_checkbox.tpl" field=$hide_help}} + {{include file="field_select.tpl" field=$singleuser}} + +
+ +

{{$registration}}

+ {{include file="field_input.tpl" field=$register_text}} + {{include file="field_select.tpl" field=$register_policy}} + + {{include file="field_checkbox.tpl" field=$no_multi_reg}} + {{include file="field_checkbox.tpl" field=$no_openid}} + {{include file="field_checkbox.tpl" field=$no_regfullname}} + +
+ +

{{$upload}}

+ {{include file="field_input.tpl" field=$maximagesize}} + {{include file="field_input.tpl" field=$maximagelength}} + {{include file="field_input.tpl" field=$jpegimagequality}} + +

{{$corporate}}

+ {{include file="field_input.tpl" field=$allowed_sites}} + {{include file="field_input.tpl" field=$allowed_email}} + {{include file="field_checkbox.tpl" field=$block_public}} + {{include file="field_checkbox.tpl" field=$force_publish}} + {{include file="field_checkbox.tpl" field=$no_community_page}} + {{include file="field_checkbox.tpl" field=$ostatus_disabled}} + {{include file="field_checkbox.tpl" field=$diaspora_enabled}} + {{include file="field_checkbox.tpl" field=$dfrn_only}} + {{include file="field_input.tpl" field=$global_directory}} + {{include file="field_checkbox.tpl" field=$newuser_private}} + {{include file="field_checkbox.tpl" field=$enotify_no_content}} + {{include file="field_checkbox.tpl" field=$private_addons}} + {{include file="field_checkbox.tpl" field=$disable_embedded}} +
+ +

{{$advanced}}

+ {{include file="field_checkbox.tpl" field=$verifyssl}} + {{include file="field_input.tpl" field=$proxy}} + {{include file="field_input.tpl" field=$proxyuser}} + {{include file="field_input.tpl" field=$timeout}} + {{include file="field_input.tpl" field=$delivery_interval}} + {{include file="field_input.tpl" field=$poll_interval}} + {{include file="field_input.tpl" field=$maxloadavg}} + {{include file="field_input.tpl" field=$abandon_days}} + +
+ +
+
diff --git a/view/theme/frost-mobile/templates/admin/users.tpl b/view/theme/frost-mobile/templates/admin/users.tpl new file mode 100644 index 0000000000..f0c4869a70 --- /dev/null +++ b/view/theme/frost-mobile/templates/admin/users.tpl @@ -0,0 +1,98 @@ + +
+

{{$title}} - {{$page}}

+ +
+ + +

{{$h_pending}}

+ {{if $pending}} + + + + {{foreach $th_pending as $th}}{{/foreach}} + + + + + + {{foreach $pending as $u}} + + + + + + + + {{/foreach}} + +
{{$th}}
{{$u.created}}{{$u.name}} + + +
+ +
+ {{else}} +

{{$no_pending}}

+ {{/if}} + + + + +

{{$h_users}}

+ {{if $users}} + + + + + {{foreach $th_users as $th}}{{/foreach}} + + + + + + {{foreach $users as $u}} + + + + + + + + + + {{/if}} + + + {{/foreach}} + +
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} + {{if $u.is_admin}} +   + {{else}} + + {{if $u.is_admin}} +   + {{else}} + + + {{/if}} +
+ +
+ {{else}} + NO USERS?!? + {{/if}} +
+
diff --git a/view/theme/frost/templates/admin/aside.tpl b/view/theme/frost/templates/admin/aside.tpl new file mode 100644 index 0000000000..74b6cd5f69 --- /dev/null +++ b/view/theme/frost/templates/admin/aside.tpl @@ -0,0 +1,32 @@ + + +

{{$admtxt}}

+ + +{{if $admin.update}} + +{{/if}} + + +{{if $admin.plugins_admin}}

{{$plugadmtxt}}

{{/if}} + + + +

{{$logtxt}}

+ + diff --git a/view/theme/frost/templates/admin/site.tpl b/view/theme/frost/templates/admin/site.tpl new file mode 100644 index 0000000000..8dcfa91294 --- /dev/null +++ b/view/theme/frost/templates/admin/site.tpl @@ -0,0 +1,73 @@ + + +
+

{{$title}} - {{$page}}

+ +
+ + + {{include file="field_input.tpl" field=$sitename}} + {{include file="field_textarea.tpl" field=$banner}} + {{include file="field_select.tpl" field=$language}} + {{include file="field_select.tpl" field=$theme}} + {{include file="field_select.tpl" field=$theme_mobile}} + {{include file="field_select.tpl" field=$ssl_policy}} + {{include file="field_checkbox.tpl" field=$old_share}} + {{include file="field_checkbox.tpl" field=$hide_help}} + {{include file="field_select.tpl" field=$singleuser}} + +
+ +

{{$registration}}

+ {{include file="field_input.tpl" field=$register_text}} + {{include file="field_select.tpl" field=$register_policy}} + {{include file="field_input.tpl" field=$daily_registrations}} + {{include file="field_checkbox.tpl" field=$no_multi_reg}} + {{include file="field_checkbox.tpl" field=$no_openid}} + {{include file="field_checkbox.tpl" field=$no_regfullname}} + +
+ +

{{$upload}}

+ {{include file="field_input.tpl" field=$maximagesize}} + {{include file="field_input.tpl" field=$maximagelength}} + {{include file="field_input.tpl" field=$jpegimagequality}} + +

{{$corporate}}

+ {{include file="field_input.tpl" field=$allowed_sites}} + {{include file="field_input.tpl" field=$allowed_email}} + {{include file="field_checkbox.tpl" field=$block_public}} + {{include file="field_checkbox.tpl" field=$force_publish}} + {{include file="field_checkbox.tpl" field=$no_community_page}} + {{include file="field_checkbox.tpl" field=$ostatus_disabled}} + {{include file="field_checkbox.tpl" field=$diaspora_enabled}} + {{include file="field_checkbox.tpl" field=$dfrn_only}} + {{include file="field_input.tpl" field=$global_directory}} + {{include file="field_checkbox.tpl" field=$newuser_private}} + {{include file="field_checkbox.tpl" field=$enotify_no_content}} + {{include file="field_checkbox.tpl" field=$private_addons}} + {{include file="field_checkbox.tpl" field=$disable_embedded}} +
+ +

{{$advanced}}

+ {{include file="field_checkbox.tpl" field=$verifyssl}} + {{include file="field_input.tpl" field=$proxy}} + {{include file="field_input.tpl" field=$proxyuser}} + {{include file="field_input.tpl" field=$timeout}} + {{include file="field_input.tpl" field=$delivery_interval}} + {{include file="field_input.tpl" field=$poll_interval}} + {{include file="field_input.tpl" field=$maxloadavg}} + {{include file="field_input.tpl" field=$abandon_days}} + {{include file="field_input.tpl" field=$lockpath}} + {{include file="field_input.tpl" field=$temppath}} + {{include file="field_input.tpl" field=$basepath}} + +

{{$performance}}

+ {{include file="field_input.tpl" field=$itemcache}} + {{include file="field_input.tpl" field=$itemcache_duration}} + + +
+ +
+
diff --git a/view/theme/frost/templates/admin/users.tpl b/view/theme/frost/templates/admin/users.tpl new file mode 100644 index 0000000000..f0c4869a70 --- /dev/null +++ b/view/theme/frost/templates/admin/users.tpl @@ -0,0 +1,98 @@ + +
+

{{$title}} - {{$page}}

+ +
+ + +

{{$h_pending}}

+ {{if $pending}} + + + + {{foreach $th_pending as $th}}{{/foreach}} + + + + + + {{foreach $pending as $u}} + + + + + + + + {{/foreach}} + +
{{$th}}
{{$u.created}}{{$u.name}} + + +
+ +
+ {{else}} +

{{$no_pending}}

+ {{/if}} + + + + +

{{$h_users}}

+ {{if $users}} + + + + + {{foreach $th_users as $th}}{{/foreach}} + + + + + + {{foreach $users as $u}} + + + + + + + + + + {{/if}} + + + {{/foreach}} + +
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} + {{if $u.is_admin}} +   + {{else}} + + {{if $u.is_admin}} +   + {{else}} + + + {{/if}} +
+ +
+ {{else}} + NO USERS?!? + {{/if}} +
+
diff --git a/view/theme/quattro/templates/admin/users.tpl b/view/theme/quattro/templates/admin/users.tpl new file mode 100644 index 0000000000..ddb395db9c --- /dev/null +++ b/view/theme/quattro/templates/admin/users.tpl @@ -0,0 +1,155 @@ + + +
+

{{$title}} - {{$page}}

+ +
+ + +

{{$h_pending}}

+ {{if $pending}} + + + + {{foreach $th_pending as $th}}{{/foreach}} + + + + + + {{foreach $pending as $u}} + + + + + + + + + + + {{/foreach}} + +
{{$th}}
{{$u.created}}{{$u.name}} + + +

{{$pendingnotetext}}: {{$u.note}}

+ +
+ {{else}} +

{{$no_pending}}

+ {{/if}} + +

{{$h_users}}

+ {{if $users}} + + + + + {{foreach $th_users as $th}} + + {{/foreach}} + + + + + + {{foreach $users as $u}} + + + + + + + + + + {{else}} +   + {{/if}} + + + {{/foreach}} + +
+ + {{if $order_users == $th.1}} + {{if $order_direction_users == "+"}} + ↓ + {{else}} + ↑ + {{/if}} + {{else}} + ↕ + {{/if}} + {{$th.0}} +
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}} + {{if $u.is_deletable}} + + {{if $u.is_deletable}} + + + {{else}} +   + {{/if}} +
+ +
+ {{else}} + NO USERS?!? + {{/if}} +
+ {{if $deleted}} +

{{$h_deleted}}

+ + + + + {{foreach $th_deleted as $th}}{{/foreach}} + + + + {{foreach $deleted as $u}} + + + + + + + + + + {{/foreach}} + +
{{$th}}
{{$u.nickname}}{{$u.name}}{{$u.register_date}}{{$u.lastitem_date}}
+ {{/if}} +

{{$h_newuser}}

+
+ + + + + + + + + + + + + +
{{include file="field_input.tpl" field=$newusername}}
{{include file="field_input.tpl" field=$newusernickname}}
{{include file="field_input.tpl" field=$newuseremail}}
+
+
+
From 5fd4086fdcc7725dc2eddaf631b4819e84dfb61b Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 1 Dec 2017 00:41:26 -0500 Subject: [PATCH 05/10] Add block/unblock methods to Contact class --- src/Object/Contact.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Object/Contact.php b/src/Object/Contact.php index 919113672e..1aee2c2b57 100644 --- a/src/Object/Contact.php +++ b/src/Object/Contact.php @@ -821,4 +821,30 @@ class Contact extends BaseObject return $account_type; } + + /** + * @brief Blocks a contact + * + * @param int $uid + * @return bool + */ + public static function block($uid) + { + $return = dba::update('contact', ['blocked' => true], ['id' => $uid]); + + return $return; + } + + /** + * @brief Unblocks a contact + * + * @param int $uid + * @return bool + */ + public static function unblock($uid) + { + $return = dba::update('contact', ['blocked' => false], ['id' => $uid]); + + return $return; + } } From dc093196957f9106234e9270161c3bbad1c555f9 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 1 Dec 2017 00:43:39 -0500 Subject: [PATCH 06/10] Add admin/contactblock page - Add page template --- mod/admin.php | 93 +++++++++++++++++++ view/templates/admin/contactblock.tpl | 64 +++++++++++++ .../frio/templates/admin/contactblock.tpl | 63 +++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 view/templates/admin/contactblock.tpl create mode 100644 view/theme/frio/templates/admin/contactblock.tpl diff --git a/mod/admin.php b/mod/admin.php index de981bb900..83ef15f4a0 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -11,6 +11,8 @@ use Friendica\Core\Config; use Friendica\Core\Worker; use Friendica\Database\DBM; use Friendica\Model\User; +use Friendica\Network\Probe; +use Friendica\Object\Contact; require_once 'include/enotify.php'; require_once 'include/text.php'; @@ -117,6 +119,9 @@ function admin_post(App $a) case 'dbsync': admin_page_dbsync_post($a); break; + case 'contactblock': + admin_page_contactblock_post($a); + break; case 'blocklist': admin_page_blocklist_post($a); break; @@ -179,6 +184,7 @@ function admin_content(App $a) 'features' => array("admin/features/" , t("Additional features") , "features"), 'dbsync' => array("admin/dbsync/" , t('DB updates') , "dbsync"), 'queue' => array("admin/queue/" , t('Inspect Queue') , "queue"), + 'contactblock' => array("admin/contactblock/", t('Contact Blocklist') , "contactblock"), 'blocklist' => array("admin/blocklist/" , t('Server Blocklist') , "blocklist"), 'federation' => array("admin/federation/" , t('Federation Statistics'), "federation"), 'deleteitem' => array("admin/deleteitem/" , t('Delete Item') , 'deleteitem'), @@ -247,6 +253,9 @@ function admin_content(App $a) case 'federation': $o = admin_page_federation($a); break; + case 'contactblock': + $o = admin_page_contactblock($a); + break; case 'blocklist': $o = admin_page_blocklist($a); break; @@ -359,6 +368,90 @@ function admin_page_blocklist_post(App $a) return; // NOTREACHED } +/** + * @brief Process data send by the contact block admin page + * + * @param App $a + */ +function admin_page_contactblock_post(App $a) +{ + $contact_url = x($_POST, 'contact_url') ? $_POST['contact_url'] : ''; + $contacts = x($_POST, 'contacts') ? $_POST['contacts'] : []; + + check_form_security_token_redirectOnErr('/admin/contactblock', 'admin_contactblock'); + + if (x($_POST, 'page_contactblock_block')) { + $net = Probe::uri($contact_url); + if (in_array($net['network'], array(NETWORK_PHANTOM, NETWORK_MAIL))) { + notice(t('This contact doesn\'t seem to exist.')); + } + $nurl = normalise_link($net['url']); + $r = dba::select('contact', ['id'], ['nurl' => $nurl, 'uid' => 0], ['limit' => 1]); + if (DBM::is_result($r)) { + Contact::block($r['id']); + notice(t('The contact has been blocked from the node')); + } else { + notice(t('Could not find any contact entry for this URL (%s)', $nurl)); + } + } + if (x($_POST, 'page_contactblock_unblock')) { + foreach ($contacts as $uid) { + Contact::unblock($uid); + } + notice(tt("%s contact unblocked", "%s contacts unblocked", count($contacts))); + } + goaway('admin/contactblock'); + return; // NOTREACHED +} + +/** + * @brief Admin panel for server-wide contact block + * + * @param App $a + * @return string + */ +function admin_page_contactblock(App $a) +{ + $condition = ['uid' => 0, 'blocked' => true]; + + $total = dba::count('contact', $condition); + + $a->set_pager_total($total); + $a->set_pager_itemspage(30); + + $statement = dba::select('contact', [], $condition, ['limit' => [$a->pager['start'], $a->pager['itemspage']]]); + + $contacts = dba::inArray($statement); + + $t = get_markup_template('admin/contactblock.tpl'); + $o = replace_macros($t, array( + // strings // + '$title' => t('Administration'), + '$page' => t('Remote Contact Blocklist'), + '$description' => t('This page allows you to prevent any message from a remote contact to reach your node. However, your node must have knowledge of the contact before you can block it.'), + '$submit' => t('Block Remote Contact'), + '$select_all' => t('select all'), + '$select_none' => t('select none'), + '$block' => t('Block'), + '$unblock' => t('Unblock'), + '$no_data' => t('No remote contact is blocked from this node.'), + + '$h_contacts' => t('Blocked Remote Contacts'), + '$h_newblock' => t('Block New Remote Contact'), + '$th_contacts' => [t('Photo'), t('Name'), t('Address'), t('Profile URL')], + + '$form_security_token' => get_form_security_token("admin_contactblock"), + + // values // + '$baseurl' => System::baseUrl(true), + + '$contacts' => $contacts, + '$paginate' => paginate($a), + '$contacturl' => ['contact_url', t("Profile URL"), '', t("URL of the remote contact to block.")], + )); + return $o; +} + /** * @brief Subpage where the admin can delete an item from their node given the GUID * diff --git a/view/templates/admin/contactblock.tpl b/view/templates/admin/contactblock.tpl new file mode 100644 index 0000000000..dcd33e8793 --- /dev/null +++ b/view/templates/admin/contactblock.tpl @@ -0,0 +1,64 @@ + + +
+

{{$title}} - {{$page}}

+

{{$description}}

+
+ + +

{{$h_contacts}}

+ {{if $contacts}} + + + + + {{foreach $th_contacts as $th}} + + {{/foreach}} + + + + + {{foreach $contacts as $contact}} + + + + + + + + {{/foreach}} + +
+ {{$th}} +
{{$contact.nickname}}{{$contact.name}}{{$contact.addr}}{{$contact.url}}
+

{{$select_all}} | {{$select_none}}

+ {{$paginate}} +
+ {{else}} +

{{$no_data|escape:'html'}}

+ {{/if}} +
+ +

{{$h_newblock}}

+
+ + + + + + + +
{{include file="field_input.tpl" field=$contacturl}}
+
+
+
diff --git a/view/theme/frio/templates/admin/contactblock.tpl b/view/theme/frio/templates/admin/contactblock.tpl new file mode 100644 index 0000000000..db0d2ed9db --- /dev/null +++ b/view/theme/frio/templates/admin/contactblock.tpl @@ -0,0 +1,63 @@ + + +
+

{{$title}} - {{$page}}

+

{{$description}}

+
+ + +

{{$h_contacts}}

+ {{if $contacts}} + + + + + {{foreach $th_contacts as $th}} + + {{/foreach}} + + + + + {{foreach $contacts as $contact}} + + + + + + + {{/foreach}} + +
+ {{$th}} +
{{$contact.nickname}}{{$contact.name}}{{$contact.url}}
+

{{$select_all}} | {{$select_none}}

+ {{$paginate}} +
+ {{else}} +

{{$no_data|escape:'html'}}

+ {{/if}} +
+ +

{{$h_newblock}}

+
+ + + + + + + +
{{include file="field_input.tpl" field=$contacturl}}
+
+
+
From 8826ece55e50c68596bb25062dd31fb643d2163a Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 1 Dec 2017 22:32:24 -0500 Subject: [PATCH 07/10] Use Contact::getIdForURL instead of probing - Add change to mod/admin - Add change to util/global_community_block --- mod/admin.php | 15 ++++------- util/global_community_block.php | 44 +++++++++++++-------------------- 2 files changed, 22 insertions(+), 37 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index 83ef15f4a0..1bcbb45e75 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -381,17 +381,12 @@ function admin_page_contactblock_post(App $a) check_form_security_token_redirectOnErr('/admin/contactblock', 'admin_contactblock'); if (x($_POST, 'page_contactblock_block')) { - $net = Probe::uri($contact_url); - if (in_array($net['network'], array(NETWORK_PHANTOM, NETWORK_MAIL))) { - notice(t('This contact doesn\'t seem to exist.')); - } - $nurl = normalise_link($net['url']); - $r = dba::select('contact', ['id'], ['nurl' => $nurl, 'uid' => 0], ['limit' => 1]); - if (DBM::is_result($r)) { - Contact::block($r['id']); + $contact_id = Contact::getIdForURL($contact_url, 0); + if ($contact_id) { + Contact::block($contact_id); notice(t('The contact has been blocked from the node')); } else { - notice(t('Could not find any contact entry for this URL (%s)', $nurl)); + notice(t('Could not find any contact entry for this URL (%s)', $contact_url)); } } if (x($_POST, 'page_contactblock_unblock')) { @@ -428,7 +423,7 @@ function admin_page_contactblock(App $a) // strings // '$title' => t('Administration'), '$page' => t('Remote Contact Blocklist'), - '$description' => t('This page allows you to prevent any message from a remote contact to reach your node. However, your node must have knowledge of the contact before you can block it.'), + '$description' => t('This page allows you to prevent any message from a remote contact to reach your node.'), '$submit' => t('Block Remote Contact'), '$select_all' => t('select all'), '$select_none' => t('select none'), diff --git a/util/global_community_block.php b/util/global_community_block.php index cb6789e45c..db68fdb4b1 100755 --- a/util/global_community_block.php +++ b/util/global_community_block.php @@ -1,6 +1,5 @@ #!/usr/bin/env php ".$argv[0]." https://example.com/profiles/bob\r\n"; + echo "$> " . $argv[0] . " https://example.com/profiles/bob\r\n"; echo "\r\n"; exit(0); } -use Friendica\Database\DBM; -use Friendica\Network\Probe; +use Friendica\BaseObject; +use Friendica\Object\Contact; require_once 'boot.php'; + +$a = get_app();; +BaseObject::setApp($a); + +require_once '.htconfig.php'; require_once 'include/dba.php'; require_once 'include/text.php'; -$a = get_app(); -require_once '.htconfig.php'; dba::connect($db_host, $db_user, $db_pass, $db_data); unset($db_host, $db_user, $db_pass, $db_data); -/** - * 1. make nurl from last parameter - * 2. check DB (contact) if there is a contact with uid=0 and that nurl, get the ID - * 3. set the flag hidden=1 for the contact entry with the found ID - **/ -$net = Probe::uri($argv[1]); -if (in_array($net['network'], array(NETWORK_PHANTOM, NETWORK_MAIL))) { - echo 'This account seems not to exist.'; +$contact_id = Contact::getIdForURL($argv[1], 0); +if (!$contact_id) { + echo t('Could not find any contact entry for this URL (%s)', $nurl); echo "\r\n"; exit(1); } -$nurl = normalise_link($net['url']); -$r = dba::select('contact', array('id'), array('nurl' => $nurl, 'uid' => 0), array('limit' => 1)); -if (DBM::is_result($r)) { - dba::update('contact', array('blocked' => true), array('id' => $r['id'])); - echo "NOTICE: The account should be blocked from the node now\r\n"; -} else { - echo "NOTICE: Could not find any entry for this URL (".$nurl.")\r\n"; -} - -?> +Contact::block($contact_id); +echo t('The contact has been blocked from the node'); +echo "\r\n"; +exit(0); From 75181322baabc7b99ca0c919131a266d6987aa6d Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 1 Dec 2017 22:33:04 -0500 Subject: [PATCH 08/10] Improve page contacblock for frio theme --- mod/admin.php | 1 + view/templates/admin/contactblock.tpl | 1 - view/theme/frio/js/mod_admin.js | 31 +++++++++++++++++++ .../frio/templates/admin/contactblock.tpl | 27 +++++++--------- 4 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 view/theme/frio/js/mod_admin.js diff --git a/mod/admin.php b/mod/admin.php index 1bcbb45e75..fcd67aa9e1 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -441,6 +441,7 @@ function admin_page_contactblock(App $a) '$baseurl' => System::baseUrl(true), '$contacts' => $contacts, + '$total_contacts' => tt('%s total blocked contact', '%s total blocked contacts', $total), '$paginate' => paginate($a), '$contacturl' => ['contact_url', t("Profile URL"), '', t("URL of the remote contact to block.")], )); diff --git a/view/templates/admin/contactblock.tpl b/view/templates/admin/contactblock.tpl index dcd33e8793..152550f017 100644 --- a/view/templates/admin/contactblock.tpl +++ b/view/templates/admin/contactblock.tpl @@ -1,4 +1,3 @@ - +

{{$title}} - {{$page}}

{{$description}}

@@ -20,7 +10,7 @@ - + {{foreach $th_contacts as $th}} {{/foreach}} + + + + + +
{{$th}} @@ -39,10 +29,17 @@
+ {{$total_contacts}} +
-

{{$select_all}} | {{$select_none}}

+
{{$paginate}} -
{{else}}

{{$no_data|escape:'html'}}

{{/if}} @@ -58,6 +55,6 @@ -
+
From 4d10f3b3b7223627e9f623d89415a70680560b55 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 2 Dec 2017 08:42:44 -0500 Subject: [PATCH 09/10] Remove unused use statement --- mod/admin.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/mod/admin.php b/mod/admin.php index fcd67aa9e1..1e7d90436f 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -11,7 +11,6 @@ use Friendica\Core\Config; use Friendica\Core\Worker; use Friendica\Database\DBM; use Friendica\Model\User; -use Friendica\Network\Probe; use Friendica\Object\Contact; require_once 'include/enotify.php'; @@ -33,8 +32,6 @@ require_once 'include/items.php'; */ function admin_post(App $a) { - - if (!is_site_admin()) { return; } From 7bd0ab8360c672638d6a347ff35e4d21a25378fa Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 2 Dec 2017 08:43:13 -0500 Subject: [PATCH 10/10] Move includes around in global_community_block --- util/global_community_block.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/util/global_community_block.php b/util/global_community_block.php index db68fdb4b1..ab586b6510 100755 --- a/util/global_community_block.php +++ b/util/global_community_block.php @@ -32,14 +32,13 @@ use Friendica\BaseObject; use Friendica\Object\Contact; require_once 'boot.php'; +require_once 'include/dba.php'; +require_once 'include/text.php'; $a = get_app();; BaseObject::setApp($a); require_once '.htconfig.php'; -require_once 'include/dba.php'; -require_once 'include/text.php'; - dba::connect($db_host, $db_user, $db_pass, $db_data); unset($db_host, $db_user, $db_pass, $db_data);