1
0
Fork 0

Rename App Methods

- renamed a lot of App methods to CamelCase
- replaced direct public variables with get-/set-Methods
This commit is contained in:
Philipp Holzer 2018-10-09 19:58:58 +02:00
parent 5f9dd11cfb
commit 5a02e39a65
No known key found for this signature in database
GPG key ID: 517BE60E2CE5C8A5
94 changed files with 481 additions and 338 deletions

View file

@ -45,7 +45,7 @@ if (Config::get('system', 'maintenance', false, true)) {
return;
}
$a->set_baseurl(Config::get('system', 'url'));
$a->setBaseURL(Config::get('system', 'url'));
Addon::loadHooks();

View file

@ -556,7 +556,7 @@ function check_url(App $a)
// and www.example.com vs example.com.
// We will only change the url to an ip address if there is no existing setting
if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname()))) {
if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->getHostName()))) {
Config::set('system', 'url', System::baseUrl());
}
@ -975,27 +975,27 @@ function get_temppath()
$temppath = Config::get("system", "temppath");
if (($temppath != "") && App::directory_usable($temppath)) {
if (($temppath != "") && App::isDirectoryUsable($temppath)) {
// We have a temp path and it is usable
return App::realpath($temppath);
return App::getRealPath($temppath);
}
// We don't have a working preconfigured temp path, so we take the system path.
$temppath = sys_get_temp_dir();
// Check if it is usable
if (($temppath != "") && App::directory_usable($temppath)) {
if (($temppath != "") && App::isDirectoryUsable($temppath)) {
// Always store the real path, not the path through symlinks
$temppath = App::realpath($temppath);
$temppath = App::getRealPath($temppath);
// To avoid any interferences with other systems we create our own directory
$new_temppath = $temppath . "/" . $a->get_hostname();
$new_temppath = $temppath . "/" . $a->getHostName();
if (!is_dir($new_temppath)) {
/// @TODO There is a mkdir()+chmod() upwards, maybe generalize this (+ configurable) into a function/method?
mkdir($new_temppath);
}
if (App::directory_usable($new_temppath)) {
if (App::isDirectoryUsable($new_temppath)) {
// The new path is usable, we are happy
Config::set("system", "temppath", $new_temppath);
return $new_temppath;
@ -1077,8 +1077,8 @@ function get_itemcachepath()
}
$itemcache = Config::get('system', 'itemcache');
if (($itemcache != "") && App::directory_usable($itemcache)) {
return App::realpath($itemcache);
if (($itemcache != "") && App::isDirectoryUsable($itemcache)) {
return App::getRealPath($itemcache);
}
$temppath = get_temppath();
@ -1089,7 +1089,7 @@ function get_itemcachepath()
mkdir($itemcache);
}
if (App::directory_usable($itemcache)) {
if (App::isDirectoryUsable($itemcache)) {
Config::set("system", "itemcache", $itemcache);
return $itemcache;
}
@ -1105,7 +1105,7 @@ function get_itemcachepath()
function get_spoolpath()
{
$spoolpath = Config::get('system', 'spoolpath');
if (($spoolpath != "") && App::directory_usable($spoolpath)) {
if (($spoolpath != "") && App::isDirectoryUsable($spoolpath)) {
// We have a spool path and it is usable
return $spoolpath;
}
@ -1120,7 +1120,7 @@ function get_spoolpath()
mkdir($spoolpath);
}
if (App::directory_usable($spoolpath)) {
if (App::isDirectoryUsable($spoolpath)) {
// The new path is usable, we are happy
Config::set("system", "spoolpath", $spoolpath);
return $spoolpath;

View file

@ -3344,7 +3344,7 @@ function api_statusnet_config($type)
$a = get_app();
$name = Config::get('config', 'sitename');
$server = $a->get_hostname();
$server = $a->getHostName();
$logo = System::baseUrl() . '/images/friendica-64.png';
$email = Config::get('config', 'admin_email');
$closed = intval(Config::get('config', 'register_policy')) === REGISTER_CLOSED ? 'true' : 'false';

View file

@ -61,7 +61,7 @@ function notification($params)
}
$sender_name = $sitename;
$hostname = $a->get_hostname();
$hostname = $a->getHostName();
if (strpos($hostname, ':')) {
$hostname = substr($hostname, 0, strpos($hostname, ':'));
}

View file

@ -318,7 +318,7 @@ function subscribe_to_hub($url, array $importer, array $contact, $hubmode = 'sub
Network::post($url, $params);
logger('subscribe_to_hub: returns: ' . $a->get_curl_code(), LOGGER_DEBUG);
logger('subscribe_to_hub: returns: ' . Network::getCurl()->getCode(), LOGGER_DEBUG);
return;

View file

@ -42,7 +42,7 @@ function replace_macros($s, $r) {
// pass $baseurl to all templates
$r['$baseurl'] = System::baseUrl();
$t = $a->template_engine();
$t = $a->getTemplateEngine();
try {
$output = $t->replaceMacros($s, $r);
} catch (Exception $e) {
@ -50,7 +50,7 @@ function replace_macros($s, $r) {
killme();
}
$a->save_timestamp($stamp1, "rendering");
$a->saveTimestamp($stamp1, "rendering");
return $output;
}
@ -473,7 +473,7 @@ function get_markup_template($s, $root = '') {
$stamp1 = microtime(true);
$a = get_app();
$t = $a->template_engine();
$t = $a->getTemplateEngine();
try {
$template = $t->getTemplateFile($s, $root);
} catch (Exception $e) {
@ -481,7 +481,7 @@ function get_markup_template($s, $root = '') {
killme();
}
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
return $template;
}
@ -574,7 +574,7 @@ function logger($msg, $level = LOGGER_INFO) {
$stamp1 = microtime(true);
@file_put_contents($logfile, $logline, FILE_APPEND);
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
}
/**
@ -634,7 +634,7 @@ function dlogger($msg, $level = LOGGER_INFO) {
$stamp1 = microtime(true);
@file_put_contents($logfile, $logline, FILE_APPEND);
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
}
@ -1414,7 +1414,7 @@ function get_plink($item) {
];
if (x($item, 'plink')) {
$ret["href"] = $a->remove_baseurl($item['plink']);
$ret["href"] = $a->removeBaseURL($item['plink']);
$ret["title"] = L10n::t('link to source');
}

View file

@ -23,11 +23,9 @@ use Friendica\Module\Login;
require_once 'boot.php';
$a = new App(__DIR__);
// We assume that the index.php is called by a frontend process
// The value is set to "true" by default in boot.php
$a->backend = false;
$a = new App(__DIR__, false);
/**
* Try to open the database;
@ -49,7 +47,7 @@ if ($a->isMaxProcessesReached() || $a->isMaxLoadReached()) {
}
if (!$a->getMode()->isInstall()) {
if (Config::get('system', 'force_ssl') && ($a->get_scheme() == "http")
if (Config::get('system', 'force_ssl') && ($a->getScheme() == "http")
&& (intval(Config::get('system', 'ssl_policy')) == SSL_POLICY_FULL)
&& (substr(System::baseUrl(), 0, 8) == "https://")
&& ($_SERVER['REQUEST_METHOD'] == 'GET')) {
@ -78,10 +76,10 @@ L10n::loadTranslationTable($lang);
*/
// Exclude the backend processes from the session management
if (!$a->is_backend()) {
if (!$a->isBackend()) {
$stamp1 = microtime(true);
session_start();
$a->save_timestamp($stamp1, "parser");
$a->saveTimestamp($stamp1, "parser");
} else {
$_SESSION = [];
Worker::executeIfIdle();

View file

@ -475,8 +475,8 @@ function admin_page_contactblock(App $a)
$total = DBA::count('contact', $condition);
$a->set_pager_total($total);
$a->set_pager_itemspage(30);
$a->setPagerTotal($total);
$a->setPagerItemsPage(30);
$statement = DBA::select('contact', [], $condition, ['limit' => [$a->pager['start'], $a->pager['itemspage']]]);
@ -866,15 +866,15 @@ function admin_page_summary(App $a)
// Legacy config file warning
if (file_exists('.htconfig.php')) {
$showwarning = true;
$warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.ini.php, please copy config/local-sample.ini.php and move your config from <code>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', $a->get_baseurl() . '/help/Config');
$warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.ini.php, please copy config/local-sample.ini.php and move your config from <code>.htconfig.php</code>. See <a href="%s">the Config help page</a> for help with the transition.', $a->getBaseURL() . '/help/Config');
}
// Check server vitality
if (!admin_page_server_vital()) {
$showwarning = true;
$well_known = $a->get_baseurl() . '/.well-known/host-meta';
$well_known = $a->getBaseURL() . '/.well-known/host-meta';
$warningtext[] = L10n::t('<a href="%s">%s</a> is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See <a href="%s">the installation page</a> for help.',
$well_known, $well_known, $a->get_baseurl() . '/help/Install');
$well_known, $well_known, $a->getBaseURL() . '/help/Install');
}
$r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`");
@ -1012,7 +1012,7 @@ function admin_page_site_post(App $a)
// update config
Config::set('system', 'hostname', parse_url($new_url, PHP_URL_HOST));
Config::set('system', 'url', $new_url);
$a->set_baseurl($new_url);
$a->setBaseURL($new_url);
// send relocate
$users = q("SELECT `uid` FROM `user` WHERE `account_removed` = 0 AND `account_expired` = 0");
@ -1124,7 +1124,7 @@ function admin_page_site_post(App $a)
Worker::add(PRIORITY_LOW, 'Directory');
}
if ($a->get_path() != "") {
if ($a->getURLpath() != "") {
$diaspora_enabled = false;
}
if ($ssl_policy != intval(Config::get('system', 'ssl_policy'))) {
@ -1261,7 +1261,7 @@ function admin_page_site_post(App $a)
Config::set('system', 'dbclean-expire-unclaimed', $dbclean_unclaimed);
if ($itemcache != '') {
$itemcache = App::realpath($itemcache);
$itemcache = App::getRealPath($itemcache);
}
Config::set('system', 'itemcache', $itemcache);
@ -1269,13 +1269,13 @@ function admin_page_site_post(App $a)
Config::set('system', 'max_comments', $max_comments);
if ($temppath != '') {
$temppath = App::realpath($temppath);
$temppath = App::getRealPath($temppath);
}
Config::set('system', 'temppath', $temppath);
if ($basepath != '') {
$basepath = App::realpath($basepath);
$basepath = App::getRealPath($basepath);
}
Config::set('system', 'basepath', $basepath);
@ -1419,9 +1419,9 @@ function admin_page_site(App $a)
];
if (empty(Config::get('config', 'hostname'))) {
Config::set('config', 'hostname', $a->get_hostname());
Config::set('config', 'hostname', $a->getHostName());
}
$diaspora_able = ($a->get_path() == "");
$diaspora_able = ($a->getURLpath() == "");
$optimize_max_tablesize = Config::get('system', 'optimize_max_tablesize', -1);
@ -1801,8 +1801,8 @@ function admin_page_users(App $a)
/* get users */
$total = q("SELECT COUNT(*) AS `total` FROM `user` WHERE 1");
if (count($total)) {
$a->set_pager_total($total[0]['total']);
$a->set_pager_itemspage(100);
$a->setPagerTotal($total[0]['total']);
$a->setPagerItemsPage(100);
}
/* ordering */

View file

@ -46,7 +46,7 @@ function allfriends_content(App $a)
$total = GContact::countAllFriends(local_user(), $cid);
$a->set_pager_total($total);
$a->setPagerTotal($total);
$r = GContact::allFriends(local_user(), $cid, $a->pager['start'], $a->pager['itemspage']);
if (!DBA::isResult($r)) {

View file

@ -88,7 +88,7 @@ function common_content(App $a)
}
if ($t > 0) {
$a->set_pager_total($t);
$a->setPagerTotal($t);
} else {
notice(L10n::t('No contacts in common.') . EOL);
return $o;

View file

@ -153,7 +153,7 @@ function community_content(App $a, $update = 0)
$itemspage_network = $a->force_max_items;
}
$a->set_pager_itemspage($itemspage_network);
$a->setPagerItemsPage($itemspage_network);
$r = community_getitems($a->pager['start'], $a->pager['itemspage'], $content, $accounttype);

View file

@ -793,7 +793,7 @@ function contacts_content(App $a, $update = 0)
intval($_SESSION['uid'])
);
if (DBA::isResult($r)) {
$a->set_pager_total($r[0]['total']);
$a->setPagerTotal($r[0]['total']);
$total = $r[0]['total'];
}

View file

@ -451,10 +451,10 @@ function dfrn_request_post(App $a)
// Diaspora needs the uri in the format user@domain.tld
// Diaspora will support the remote subscription in a future version
if ($network == Protocol::DIASPORA) {
$uri = $nickname . '@' . $a->get_hostname();
$uri = $nickname . '@' . $a->getHostName();
if ($a->get_path()) {
$uri .= '/' . $a->get_path();
if ($a->getURLpath()) {
$uri .= '/' . $a->getURLpath();
}
$uri = urlencode($uri);
@ -609,7 +609,7 @@ function dfrn_request_content(App $a)
} elseif (x($_GET, 'address') && ($_GET['address'] != "")) {
$myaddr = $_GET['address'];
} elseif (local_user()) {
if (strlen($a->urlpath)) {
if (strlen($a->getURLpath())) {
$myaddr = System::baseUrl() . '/profile/' . $a->user['nickname'];
} else {
$myaddr = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);

View file

@ -16,7 +16,7 @@ use Friendica\Util\Proxy as ProxyUtils;
function directory_init(App $a)
{
$a->set_pager_itemspage(60);
$a->setPagerItemsPage(60);
if (local_user()) {
$a->page['aside'] .= Widget::findPeople();
@ -87,7 +87,7 @@ function directory_content(App $a)
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` $sql_extra");
if (DBA::isResult($cnt)) {
$a->set_pager_total($cnt['total']);
$a->setPagerTotal($cnt['total']);
}
$order = " ORDER BY `name` ASC ";

View file

@ -188,8 +188,8 @@ function dirfind_content(App $a, $prefix = "") {
}
if ($j->total) {
$a->set_pager_total($j->total);
$a->set_pager_itemspage($j->items_page);
$a->setPagerTotal($j->total);
$a->setPagerItemsPage($j->items_page);
}
if (!empty($j->results)) {

View file

@ -365,7 +365,7 @@ function display_content(App $a, $update = false, $update_uid = 0)
$title = trim(HTML::toPlaintext(BBCode::convert($item["title"], false), 0, true));
$author_name = $item["author-name"];
$image = $a->remove_baseurl($item["author-avatar"]);
$image = $a->removeBaseURL($item["author-avatar"]);
if ($title == "") {
$title = $author_name;

View file

@ -50,7 +50,7 @@ function hcard_init(App $a)
$a->page['htmlhead'] .= '<meta name="dfrn-global-visibility" content="' . (($a->profile['net-publish']) ? 'true' : 'false') . '" />' . "\r\n" ;
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . System::baseUrl() . '/dfrn_poll/' . $which .'" />' . "\r\n" ;
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->urlpath) ? '/' . $a->urlpath : ''));
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->getHostName() . (($a->getURLpath()) ? '/' . $a->getURLpath() : ''));
$a->page['htmlhead'] .= '<link rel="lrdd" type="application/xrd+xml" href="' . System::baseUrl() . '/xrd/?uri=' . $uri . '" />' . "\r\n";
header('Link: <' . System::baseUrl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false);

View file

@ -38,8 +38,8 @@ function home_content(App $a) {
$customhome = false;
$defaultheader = '<h1>' . (Config::get('config', 'sitename') ? L10n::t('Welcome to %s', Config::get('config', 'sitename')) : '') . '</h1>';
$homefilepath = $a->basepath . "/home.html";
$cssfilepath = $a->basepath . "/home.css";
$homefilepath = $a->getBasePath() . "/home.html";
$cssfilepath = $a->getBasePath() . "/home.css";
if (file_exists($homefilepath)) {
$customhome = $homefilepath;
if (file_exists($cssfilepath)) {

View file

@ -23,7 +23,7 @@ function hostxrd_init(App $a)
$tpl = get_markup_template('xrd_host.tpl');
echo replace_macros($tpl, [
'$zhost' => $a->get_hostname(),
'$zhost' => $a->getHostName(),
'$zroot' => System::baseUrl(),
'$domain' => System::baseUrl(),
'$bigkey' => Salmon::salmonKey(Config::get('system', 'site_pubkey'))]

View file

@ -67,8 +67,8 @@ function match_content(App $a)
$j = json_decode($x);
if ($j->total) {
$a->set_pager_total($j->total);
$a->set_pager_itemspage($j->items_page);
$a->setPagerTotal($j->total);
$a->setPagerItemsPage($j->items_page);
}
if (count($j->results)) {

View file

@ -279,7 +279,7 @@ function message_content(App $a)
);
if (DBA::isResult($r)) {
$a->set_pager_total($r[0]['total']);
$a->setPagerTotal($r[0]['total']);
}
$r = get_messages(local_user(), $a->pager['start'], $a->pager['itemspage']);

View file

@ -302,7 +302,7 @@ function networkPager($a, $update)
$itemspage_network = $a->force_max_items;
}
$a->set_pager_itemspage($itemspage_network);
$a->setPagerItemsPage($itemspage_network);
return sprintf(" LIMIT %d, %d ", intval($a->pager['start']), intval($a->pager['itemspage']));
}
@ -721,7 +721,7 @@ function networkThreadedView(App $a, $update, $parent)
if ($last_received != '') {
$last_date = $last_received;
$sql_range .= sprintf(" AND $sql_table.`received` < '%s'", DBA::escape($last_received));
$a->set_pager_page(1);
$a->setPagerPage(1);
$pager_sql = sprintf(" LIMIT %d, %d ", intval($a->pager['start']), intval($a->pager['itemspage']));
}
break;
@ -729,7 +729,7 @@ function networkThreadedView(App $a, $update, $parent)
if ($last_commented != '') {
$last_date = $last_commented;
$sql_range .= sprintf(" AND $sql_table.`commented` < '%s'", DBA::escape($last_commented));
$a->set_pager_page(1);
$a->setPagerPage(1);
$pager_sql = sprintf(" LIMIT %d, %d ", intval($a->pager['start']), intval($a->pager['itemspage']));
}
break;
@ -737,14 +737,14 @@ function networkThreadedView(App $a, $update, $parent)
if ($last_created != '') {
$last_date = $last_created;
$sql_range .= sprintf(" AND $sql_table.`created` < '%s'", DBA::escape($last_created));
$a->set_pager_page(1);
$a->setPagerPage(1);
$pager_sql = sprintf(" LIMIT %d, %d ", intval($a->pager['start']), intval($a->pager['itemspage']));
}
break;
case 'id':
if (($last_id > 0) && ($sql_table == '`thread`')) {
$sql_range .= sprintf(" AND $sql_table.`iid` < '%s'", DBA::escape($last_id));
$a->set_pager_page(1);
$a->setPagerPage(1);
$pager_sql = sprintf(" LIMIT %d, %d ", intval($a->pager['start']), intval($a->pager['itemspage']));
}
break;

View file

@ -215,7 +215,7 @@ function nodeinfo_cron() {
logger('local_comments: ' . $local_comments, LOGGER_DEBUG);
// Now trying to register
$url = 'http://the-federation.info/register/'.$a->get_hostname();
$url = 'http://the-federation.info/register/'.$a->getHostName();
logger('registering url: '.$url, LOGGER_DEBUG);
$ret = Network::fetchUrl($url);
logger('registering answer: '.$ret, LOGGER_DEBUG);

View file

@ -61,7 +61,7 @@ function notes_content(App $a, $update = false)
$condition = ['uid' => local_user(), 'post-type' => Item::PT_PERSONAL_NOTE, 'gravity' => GRAVITY_PARENT,
'wall' => false, 'contact-id'=> $a->contact['id']];
$a->set_pager_itemspage(40);
$a->setPagerItemsPage(40);
$params = ['order' => ['created' => true],
'limit' => [$a->pager['start'], $a->pager['itemspage']]];

View file

@ -120,7 +120,7 @@ function notifications_content(App $a)
}
// Set the pager
$a->set_pager_itemspage($perpage);
$a->setPagerItemsPage($perpage);
// Add additional informations (needed for json output)
$notifs['items_page'] = $a->pager['itemspage'];

View file

@ -27,7 +27,7 @@ function notify_init(App $a)
$nm->setSeen($note);
// The friendica client has problems with the GUID. this is some workaround
if ($a->is_friendica_app()) {
if ($a->isFriendicaApp()) {
require_once("include/items.php");
$urldata = parse_url($note['link']);
$guid = basename($urldata["path"]);

View file

@ -19,7 +19,7 @@ function openid_content(App $a) {
if((x($_GET,'openid_mode')) && (x($_SESSION,'openid'))) {
$openid = new LightOpenID($a->get_hostname());
$openid = new LightOpenID($a->getHostName());
if($openid->validate()) {

View file

@ -11,7 +11,7 @@ function opensearch_content(App $a) {
$o = replace_macros($tpl, [
'$baseurl' => System::baseUrl(),
'$nodename' => $a->get_hostname(),
'$nodename' => $a->getHostName(),
]);
echo $o;

View file

@ -192,7 +192,7 @@ function photo_init(App $a)
// If the photo is public and there is an existing photo directory store the photo there
if ($public and $file != '') {
// If the photo path isn't there, try to create it
$basepath = $a->get_basepath();
$basepath = $a->getBasePath();
if (!is_dir($basepath . "/photo")) {
if (is_writable($basepath)) {
mkdir($basepath . "/photo");

View file

@ -1143,8 +1143,8 @@ function photos_content(App $a)
DBA::escape($album)
);
if (DBA::isResult($r)) {
$a->set_pager_total(count($r));
$a->set_pager_itemspage(20);
$a->setPagerTotal(count($r));
$a->setPagerItemsPage(20);
}
/// @TODO I have seen this many times, maybe generalize it script-wide and encapsulate it?
@ -1393,7 +1393,7 @@ function photos_content(App $a)
$link_item = Item::selectFirst([], ['id' => $linked_items[0]['id']]);
$condition = ["`parent` = ? AND `parent` != `id`", $link_item['parent']];
$a->set_pager_total(DBA::count('item', $condition));
$a->setPagerTotal(DBA::count('item', $condition));
$params = ['order' => ['id'], 'limit' => [$a->pager['start'], $a->pager['itemspage']]];
$result = Item::selectForUser($link_item['uid'], Item::ITEM_FIELDLIST, $condition, $params);
@ -1655,8 +1655,8 @@ function photos_content(App $a)
);
if (DBA::isResult($r)) {
$a->set_pager_total(count($r));
$a->set_pager_itemspage(20);
$a->setPagerTotal(count($r));
$a->setPagerItemsPage(20);
}
$r = q("SELECT `resource-id`, ANY_VALUE(`id`) AS `id`, ANY_VALUE(`filename`) AS `filename`,

View file

@ -350,7 +350,7 @@ function ping_init(App $a)
$regularnotifications = (!empty($_GET['uid']) && !empty($_GET['_']));
foreach ($notifs as $notif) {
if ($a->is_friendica_app() || !$regularnotifications) {
if ($a->isFriendicaApp() || !$regularnotifications) {
$notif['message'] = str_replace("{0}", $notif['name'], $notif['message']);
}

View file

@ -91,7 +91,7 @@ function profile_init(App $a)
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . System::baseUrl() . '/feed/' . $which . '/" title="' . L10n::t('%s\'s posts', $a->profile['username']) . '"/>' . "\r\n";
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . System::baseUrl() . '/feed/' . $which . '/comments" title="' . L10n::t('%s\'s comments', $a->profile['username']) . '"/>' . "\r\n";
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . System::baseUrl() . '/feed/' . $which . '/activity" title="' . L10n::t('%s\'s timeline', $a->profile['username']) . '"/>' . "\r\n";
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . ($a->urlpath ? '/' . $a->urlpath : ''));
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->getHostName() . ($a->getURLpath() ? '/' . $a->getURLpath() : ''));
$a->page['htmlhead'] .= '<link rel="lrdd" type="application/xrd+xml" href="' . System::baseUrl() . '/xrd/?uri=' . $uri . '" />' . "\r\n";
header('Link: <' . System::baseUrl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false);
@ -307,7 +307,7 @@ function profile_content(App $a, $update = 0)
$itemspage_network = $a->force_max_items;
}
$a->set_pager_itemspage($itemspage_network);
$a->setPagerItemsPage($itemspage_network);
$pager_sql = sprintf(" LIMIT %d, %d ", intval($a->pager['start']), intval($a->pager['itemspage']));

View file

@ -667,7 +667,7 @@ function profiles_content(App $a) {
$profiles = '';
foreach ($r as $rr) {
$profiles .= replace_macros($tpl, [
'$photo' => $a->remove_baseurl($rr['thumb']),
'$photo' => $a->removeBaseURL($rr['thumb']),
'$id' => $rr['id'],
'$alt' => L10n::t('Profile Image'),
'$profile_name' => $rr['profile-name'],

View file

@ -105,7 +105,7 @@ function pubsubhubbub_init(App $a) {
// Social/StatusNet doesn't honour it (yet)
$body = Network::fetchUrl($hub_callback . "?" . $params);
$ret = $a->get_curl_code();
$ret = Network::getCurl()->getCode();
// give up if the HTTP return code wasn't a success (2xx)
if ($ret < 200 || $ret > 299) {

View file

@ -57,7 +57,7 @@ function redir_init(App $a) {
}
if (remote_user()) {
$host = substr(System::baseUrl() . ($a->urlpath ? '/' . $a->urlpath : ''), strpos(System::baseUrl(), '://') + 3);
$host = substr(System::baseUrl() . ($a->getURLpath() ? '/' . $a->getURLpath() : ''), strpos(System::baseUrl(), '://') + 3);
$remotehost = substr($contact['addr'], strpos($contact['addr'], '@') + 1);
// On a local instance we have to check if the local user has already authenticated

View file

@ -274,7 +274,7 @@ function register_content(App $a)
'$passwords' => $passwords,
'$password1' => ['password1', L10n::t('New Password:'), '', L10n::t('Leave empty for an auto generated password.')],
'$password2' => ['confirm', L10n::t('Confirm:'), '', ''],
'$nickdesc' => L10n::t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@%s</strong>\'.', $a->get_hostname()),
'$nickdesc' => L10n::t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@%s</strong>\'.', $a->getHostName()),
'$nicklabel' => L10n::t('Choose a nickname: '),
'$photo' => $photo,
'$publish' => $profile_publish,
@ -283,7 +283,7 @@ function register_content(App $a)
'$email' => $email,
'$nickname' => $nickname,
'$license' => $license,
'$sitename' => $a->get_hostname(),
'$sitename' => $a->getHostName(),
'$importh' => L10n::t('Import'),
'$importt' => L10n::t('Import your profile to this friendica instance'),
'$showtoslink' => Config::get('system', 'tosdisplay'),

View file

@ -547,7 +547,7 @@ function settings_post(App $a)
if ($openid != $a->user['openid'] || (strlen($openid) && (!strlen($openidserver)))) {
if (Network::isUrlValid($openid)) {
logger('updating openidserver');
$open_id_obj = new LightOpenID($a->get_hostname());
$open_id_obj = new LightOpenID($a->getHostName());
$open_id_obj->identity = $openid;
$openidserver = $open_id_obj->discover($open_id_obj->identity);
} else {
@ -1136,8 +1136,8 @@ function settings_content(App $a)
$tpl_addr = get_markup_template('settings/nick_set.tpl');
$prof_addr = replace_macros($tpl_addr,[
'$desc' => L10n::t("Your Identity Address is <strong>'%s'</strong> or '%s'.", $nickname . '@' . $a->get_hostname() . $a->get_path(), System::baseUrl() . '/profile/' . $nickname),
'$basepath' => $a->get_hostname()
'$desc' => L10n::t("Your Identity Address is <strong>'%s'</strong> or '%s'.", $nickname . '@' . $a->getHostName() . $a->getURLpath(), System::baseUrl() . '/profile/' . $nickname),
'$basepath' => $a->getHostName()
]);
$stpl = get_markup_template('settings/settings.tpl');

View file

@ -341,8 +341,8 @@ function videos_content(App $a)
);
if (DBA::isResult($r)) {
$a->set_pager_total(count($r));
$a->set_pager_itemspage(20);
$a->setPagerTotal(count($r));
$a->setPagerItemsPage(20);
}
$r = q("SELECT hash, ANY_VALUE(`id`) AS `id`, ANY_VALUE(`created`) AS `created`,

View file

@ -71,7 +71,7 @@ function viewcontacts_content(App $a)
DBA::escape(Protocol::OSTATUS)
);
if (DBA::isResult($r)) {
$a->set_pager_total($r[0]['total']);
$a->setPagerTotal($r[0]['total']);
}
$r = q("SELECT * FROM `contact`

View file

@ -55,9 +55,9 @@ function xrd_init(App $a)
$alias = str_replace('/profile/', '/~', $profile_url);
$addr = 'acct:'.$user['nickname'].'@'.$a->get_hostname();
if ($a->get_path()) {
$addr .= '/'.$a->get_path();
$addr = 'acct:'.$user['nickname'].'@'.$a->getHostName();
if ($a->getURLpath()) {
$addr .= '/'.$a->getURLpath();
}
if ($mode == 'xml') {

View file

@ -54,8 +54,6 @@ class App
public $argc;
public $module;
public $strings;
public $basepath;
public $urlpath;
public $hooks = [];
public $timezone;
public $interactive = true;
@ -65,11 +63,9 @@ class App
public $identities;
public $is_mobile = false;
public $is_tablet = false;
public $is_friendica_app;
public $performance = [];
public $callstack = [];
public $theme_info = [];
public $backend = true;
public $nav_sel;
public $category;
// Allow themes to control internal parameters
@ -89,6 +85,31 @@ class App
*/
private $mode;
/**
* @var string The App basepath
*/
private $basepath;
/**
* @var string The App URL path
*/
private $urlpath;
/**
* @var bool true, if the call is from the Friendica APP, otherwise false
*/
private $isFriendicaApp;
/**
* @var bool true, if the call is from an backend node (f.e. worker)
*/
private $isBackend;
/**
* @var string The name of the current theme
*/
private $currentTheme;
/**
* Register a stylesheet file path to be included in the <head> tag of every page.
* Inclusion is done in App->initHead().
@ -100,7 +121,7 @@ class App
*/
public function registerStylesheet($path)
{
$url = str_replace($this->get_basepath() . DIRECTORY_SEPARATOR, '', $path);
$url = str_replace($this->getBasePath() . DIRECTORY_SEPARATOR, '', $path);
$this->stylesheets[] = trim($url, '/');
}
@ -116,7 +137,7 @@ class App
*/
public function registerFooterScript($path)
{
$url = str_replace($this->get_basepath() . DIRECTORY_SEPARATOR, '', $path);
$url = str_replace($this->getBasePath() . DIRECTORY_SEPARATOR, '', $path);
$this->footerScripts[] = trim($url, '/');
}
@ -157,26 +178,26 @@ class App
];
private $scheme;
private $hostname;
private $curl_code;
private $curl_content_type;
private $curl_headers;
/**
* @brief App constructor.
*
* @param string $basepath Path to the app base folder
* @param bool $backend true, if the call is from backend, otherwise set to true (Default true)
*
* @throws Exception if the Basepath is not usable
*/
public function __construct($basepath)
public function __construct($basepath, $backend = true)
{
if (!static::directory_usable($basepath, false)) {
if (!static::isDirectoryUsable($basepath, false)) {
throw new Exception('Basepath ' . $basepath . ' isn\'t usable.');
}
BaseObject::setApp($this);
$this->basepath = rtrim($basepath, DIRECTORY_SEPARATOR);
$this->checkBackend($backend);
$this->checkFriendicaApp();
$this->performance['start'] = microtime(true);
$this->performance['database'] = 0;
@ -230,9 +251,9 @@ class App
set_include_path(
get_include_path() . PATH_SEPARATOR
. $this->basepath . DIRECTORY_SEPARATOR . 'include' . PATH_SEPARATOR
. $this->basepath . DIRECTORY_SEPARATOR . 'library' . PATH_SEPARATOR
. $this->basepath);
. $this->getBasePath() . DIRECTORY_SEPARATOR . 'include' . PATH_SEPARATOR
. $this->getBasePath(). DIRECTORY_SEPARATOR . 'library' . PATH_SEPARATOR
. $this->getBasePath());
if ((x($_SERVER, 'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'], 0, 9) === 'pagename=') {
$this->query_string = substr($_SERVER['QUERY_STRING'], 9);
@ -301,11 +322,8 @@ class App
$this->is_mobile = $mobile_detect->isMobile();
$this->is_tablet = $mobile_detect->isTablet();
// Friendica-Client
$this->is_friendica_app = isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == 'Apache-HttpClient/UNAVAILABLE (java 1.4)';
// Register template engines
$this->register_template_engine('Friendica\Render\FriendicaSmartyEngine');
$this->registerTemplateEngine('Friendica\Render\FriendicaSmartyEngine');
}
/**
@ -334,9 +352,9 @@ class App
$this->loadDatabase();
$this->getMode()->determine($this->basepath);
$this->getMode()->determine($this->getBasePath());
$this->determineUrlPath();
$this->determineURLPath();
Config::load();
@ -372,20 +390,20 @@ class App
*/
private function loadConfigFiles()
{
$this->loadConfigFile($this->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.ini.php');
$this->loadConfigFile($this->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'settings.ini.php');
$this->loadConfigFile($this->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.ini.php');
$this->loadConfigFile($this->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'settings.ini.php');
// Legacy .htconfig.php support
if (file_exists($this->basepath . DIRECTORY_SEPARATOR . '.htpreconfig.php')) {
if (file_exists($this->getBasePath() . DIRECTORY_SEPARATOR . '.htpreconfig.php')) {
$a = $this;
include $this->basepath . DIRECTORY_SEPARATOR . '.htpreconfig.php';
include $this->getBasePath() . DIRECTORY_SEPARATOR . '.htpreconfig.php';
}
// Legacy .htconfig.php support
if (file_exists($this->basepath . DIRECTORY_SEPARATOR . '.htconfig.php')) {
if (file_exists($this->getBasePath() . DIRECTORY_SEPARATOR . '.htconfig.php')) {
$a = $this;
include $this->basepath . DIRECTORY_SEPARATOR . '.htconfig.php';
include $this->getBasePath() . DIRECTORY_SEPARATOR . '.htconfig.php';
$this->setConfigValue('database', 'hostname', $db_host);
$this->setConfigValue('database', 'username', $db_user);
@ -413,8 +431,8 @@ class App
}
}
if (file_exists($this->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php')) {
$this->loadConfigFile($this->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php', true);
if (file_exists($this->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php')) {
$this->loadConfigFile($this->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php', true);
}
}
@ -473,8 +491,8 @@ class App
Core\Addon::callHooks('load_config');
// Load the local addon config file to overwritten default addon config values
if (file_exists($this->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'addon.ini.php')) {
$this->loadConfigFile($this->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'addon.ini.php', true);
if (file_exists($this->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'addon.ini.php')) {
$this->loadConfigFile($this->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'addon.ini.php', true);
}
}
@ -502,7 +520,7 @@ class App
/**
* Figure out if we are running at the top of a domain or in a sub-directory and adjust accordingly
*/
private function determineUrlPath()
private function determineURLPath()
{
$this->urlpath = $this->getConfigValue('system', 'urlpath');
@ -562,7 +580,7 @@ class App
DBA::connect($db_host, $db_user, $db_pass, $db_data, $charset);
unset($db_host, $db_user, $db_pass, $db_data, $charset);
$this->save_timestamp($stamp1, 'network');
$this->saveTimestamp($stamp1, 'network');
}
/**
@ -573,7 +591,7 @@ class App
*
* @return string
*/
public function get_basepath()
public function getBasePath()
{
$basepath = $this->basepath;
@ -589,7 +607,7 @@ class App
$basepath = $_SERVER['PWD'];
}
return self::realpath($basepath);
return self::getRealPath($basepath);
}
/**
@ -602,7 +620,7 @@ class App
* @param string $path The path that is about to be normalized
* @return string normalized path - when possible
*/
public static function realpath($path)
public static function getRealPath($path)
{
$normalized = realpath($path);
@ -613,7 +631,7 @@ class App
}
}
public function get_scheme()
public function getScheme()
{
return $this->scheme;
}
@ -632,7 +650,7 @@ class App
* @param bool $ssl Whether to append http or https under SSL_POLICY_SELFSIGN
* @return string Friendica server base URL
*/
public function get_baseurl($ssl = false)
public function getBaseURL($ssl = false)
{
$scheme = $this->scheme;
@ -655,7 +673,7 @@ class App
$this->hostname = Config::get('config', 'hostname');
}
return $scheme . '://' . $this->hostname . (!empty($this->urlpath) ? '/' . $this->urlpath : '' );
return $scheme . '://' . $this->hostname . (!empty($this->getURLpath()) ? '/' . $this->getURLpath() : '' );
}
/**
@ -665,7 +683,7 @@ class App
*
* @param string $url
*/
public function set_baseurl($url)
public function setBaseURL($url)
{
$parsed = @parse_url($url);
$hostname = '';
@ -686,8 +704,8 @@ class App
$this->urlpath = trim($parsed['path'], '\\/');
}
if (file_exists($this->basepath . DIRECTORY_SEPARATOR . '.htpreconfig.php')) {
include $this->basepath . DIRECTORY_SEPARATOR . '.htpreconfig.php';
if (file_exists($this->getBasePath() . DIRECTORY_SEPARATOR . '.htpreconfig.php')) {
include $this->getBasePath() . DIRECTORY_SEPARATOR . '.htpreconfig.php';
}
if (Config::get('config', 'hostname') != '') {
@ -700,7 +718,7 @@ class App
}
}
public function get_hostname()
public function getHostName()
{
if (Config::get('config', 'hostname') != '') {
$this->hostname = Config::get('config', 'hostname');
@ -709,23 +727,23 @@ class App
return $this->hostname;
}
public function get_path()
public function getURLpath()
{
return $this->urlpath;
}
public function set_pager_total($n)
public function setPagerTotal($n)
{
$this->pager['total'] = intval($n);
}
public function set_pager_itemspage($n)
public function setPagerItemsPage($n)
{
$this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
}
public function set_pager_page($n)
public function setPagerPage($n)
{
$this->pager['page'] = $n;
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
@ -791,7 +809,7 @@ class App
* being first
*/
$this->page['htmlhead'] = replace_macros($tpl, [
'$baseurl' => $this->get_baseurl(),
'$baseurl' => $this->getBaseURL(),
'$local_user' => local_user(),
'$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
'$delitem' => L10n::t('Delete this item?'),
@ -847,41 +865,11 @@ class App
$tpl = get_markup_template('footer.tpl');
$this->page['footer'] = replace_macros($tpl, [
'$baseurl' => $this->get_baseurl(),
'$baseurl' => $this->getBaseURL(),
'$footerScripts' => $this->footerScripts,
]) . $this->page['footer'];
}
public function set_curl_code($code)
{
$this->curl_code = $code;
}
public function get_curl_code()
{
return $this->curl_code;
}
public function set_curl_content_type($content_type)
{
$this->curl_content_type = $content_type;
}
public function get_curl_content_type()
{
return $this->curl_content_type;
}
public function set_curl_headers($headers)
{
$this->curl_headers = $headers;
}
public function get_curl_headers()
{
return $this->curl_headers;
}
/**
* @brief Removes the base url from an url. This avoids some mixed content problems.
*
@ -889,11 +877,11 @@ class App
*
* @return string The cleaned url
*/
public function remove_baseurl($orig_url)
public function removeBaseURL($orig_url)
{
// Remove the hostname from the url if it is an internal link
$nurl = normalise_link($orig_url);
$base = normalise_link($this->get_baseurl());
$base = normalise_link($this->getBaseURL());
$url = str_replace($base . '/', '', $nurl);
// if it is an external link return the orignal value
@ -909,7 +897,7 @@ class App
*
* @param string $class
*/
private function register_template_engine($class)
private function registerTemplateEngine($class)
{
$v = get_class_vars($class);
if (x($v, 'name')) {
@ -929,7 +917,7 @@ class App
*
* @return object Template Engine instance
*/
public function template_engine()
public function getTemplateEngine()
{
$template_engine = 'smarty3';
if (x($this->theme, 'template_engine')) {
@ -956,33 +944,40 @@ class App
*
* @return string
*/
public function get_template_engine()
public function getActiveTemplateEngine()
{
return $this->theme['template_engine'];
}
public function set_template_engine($engine = 'smarty3')
public function setActiveTemplateEngine($engine = 'smarty3')
{
$this->theme['template_engine'] = $engine;
}
public function get_template_ldelim($engine = 'smarty3')
public function getTemplateLdelim($engine = 'smarty3')
{
return $this->ldelim[$engine];
}
public function get_template_rdelim($engine = 'smarty3')
public function getTemplateRdelim($engine = 'smarty3')
{
return $this->rdelim[$engine];
}
public function save_timestamp($stamp, $value)
/**
* Saves a timestamp for a value - f.e. a call
* Necessary for profiling Friendica
*
* @param int $timestamp the Timestamp
* @param string $value A value to profile
*/
public function saveTimestamp($timestamp, $value)
{
if (!isset($this->config['system']['profiler']) || !$this->config['system']['profiler']) {
return;
}
$duration = (float) (microtime(true) - $stamp);
$duration = (float) (microtime(true) - $timestamp);
if (!isset($this->performance[$value])) {
// Prevent ugly E_NOTICE
@ -1002,19 +997,41 @@ class App
$this->callstack[$value][$callstack] += (float) $duration;
}
public function get_useragent()
/**
* Returns the current UserAgent as a String
*
* @return string the UserAgent as a String
*/
public function getUserAgent()
{
return
FRIENDICA_PLATFORM . " '" .
FRIENDICA_CODENAME . "' " .
FRIENDICA_VERSION . '-' .
DB_UPDATE_VERSION . '; ' .
$this->get_baseurl();
$this->getBaseURL();
}
public function is_friendica_app()
/**
* Checks, if the call is from the Friendica App
*
* Reason:
* The friendica client has problems with the GUID in the notify. this is some workaround
*/
private function checkFriendicaApp()
{
return $this->is_friendica_app;
// Friendica-Client
$this->isFriendicaApp = isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == 'Apache-HttpClient/UNAVAILABLE (java 1.4)';
}
/**
* Is the call via the Friendica app? (not a "normale" call)
*
* @return bool true if it's from the Friendica app
*/
public function isFriendicaApp()
{
return $this->isFriendicaApp;
}
/**
@ -1023,10 +1040,8 @@ class App
* This isn't a perfect solution. But we need this check very early.
* So we cannot wait until the modules are loaded.
*
* @return bool Is it a known backend?
*/
public function is_backend()
{
private function checkBackend($backend) {
static $backends = [
'_well_known',
'api',
@ -1050,7 +1065,17 @@ class App
];
// Check if current module is in backend or backend flag is set
return (in_array($this->module, $backends) || $this->backend);
$this->isBackend = (in_array($this->module, $backends) || $this->isBackend);
}
/**
* Returns true, if the call is from a backend node (f.e. from a worker)
*
* @return bool Is it a known backend?
*/
public function isBackend()
{
return $this->isBackend;
}
/**
@ -1098,7 +1123,7 @@ class App
*
* @return bool Is the memory limit reached?
*/
public function min_memory_reached()
public function isMinMemoryReached()
{
$min_memory = Config::get('system', 'min_memory', 0);
if ($min_memory == 0) {
@ -1144,7 +1169,7 @@ class App
*/
public function isMaxLoadReached()
{
if ($this->is_backend()) {
if ($this->isBackend()) {
$process = 'backend';
$maxsysload = intval(Config::get('system', 'maxloadavg'));
if ($maxsysload < 1) {
@ -1193,14 +1218,14 @@ class App
}
}
if ($this->min_memory_reached()) {
if ($this->isMinMemoryReached()) {
return;
}
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$resource = proc_open('cmd /c start /b ' . $cmdline, [], $foo, $this->get_basepath());
$resource = proc_open('cmd /c start /b ' . $cmdline, [], $foo, $this->getBasePath());
} else {
$resource = proc_open($cmdline . ' &', [], $foo, $this->get_basepath());
$resource = proc_open($cmdline . ' &', [], $foo, $this->getBasePath());
}
if (!is_resource($resource)) {
logger('We got no resource for command ' . $cmdline, LOGGER_DEBUG);
@ -1216,7 +1241,7 @@ class App
*
* @return string system username
*/
private static function systemuser()
private static function getSystemUser()
{
if (!function_exists('posix_getpwuid') || !function_exists('posix_geteuid')) {
return '';
@ -1231,7 +1256,7 @@ class App
*
* @return boolean the directory is usable
*/
public static function directory_usable($directory, $check_writable = true)
public static function isDirectoryUsable($directory, $check_writable = true)
{
if ($directory == '') {
logger('Directory is empty. This shouldn\'t happen.', LOGGER_DEBUG);
@ -1239,22 +1264,22 @@ class App
}
if (!file_exists($directory)) {
logger('Path "' . $directory . '" does not exist for user ' . self::systemuser(), LOGGER_DEBUG);
logger('Path "' . $directory . '" does not exist for user ' . self::getSystemUser(), LOGGER_DEBUG);
return false;
}
if (is_file($directory)) {
logger('Path "' . $directory . '" is a file for user ' . self::systemuser(), LOGGER_DEBUG);
logger('Path "' . $directory . '" is a file for user ' . self::getSystemUser(), LOGGER_DEBUG);
return false;
}
if (!is_dir($directory)) {
logger('Path "' . $directory . '" is not a directory for user ' . self::systemuser(), LOGGER_DEBUG);
logger('Path "' . $directory . '" is not a directory for user ' . self::getSystemUser(), LOGGER_DEBUG);
return false;
}
if ($check_writable && !is_writable($directory)) {
logger('Path "' . $directory . '" is not writable for user ' . self::systemuser(), LOGGER_DEBUG);
logger('Path "' . $directory . '" is not writable for user ' . self::getSystemUser(), LOGGER_DEBUG);
return false;
}
@ -1265,6 +1290,8 @@ class App
* @param string $cat Config category
* @param string $k Config key
* @param mixed $default Default value if it isn't set
*
* @return string Returns the value of the Config entry
*/
public function getConfigValue($cat, $k, $default = null)
{
@ -1347,6 +1374,8 @@ class App
* @param string $cat Config category
* @param string $k Config key
* @param mixed $default Default value if key isn't set
*
* @return string The value of the config entry
*/
public function getPConfigValue($uid, $cat, $k, $default = null)
{
@ -1408,7 +1437,7 @@ class App
{
$sender_email = Config::get('config', 'sender_email');
if (empty($sender_email)) {
$hostname = $this->get_hostname();
$hostname = $this->getHostName();
if (strpos($hostname, ':')) {
$hostname = substr($hostname, 0, strpos($hostname, ':'));
}
@ -1422,7 +1451,7 @@ class App
/**
* Returns the current theme name.
*
* @return string
* @return string the name of the current theme
*/
public function getCurrentTheme()
{
@ -1435,7 +1464,7 @@ class App
/// https://github.com/friendica/friendica/issues/5092)
$this->computeCurrentTheme();
return $this->current_theme;
return $this->currentTheme;
}
/**
@ -1451,7 +1480,7 @@ class App
}
// Sane default
$this->current_theme = $system_theme;
$this->currentTheme = $system_theme;
$allowed_themes = explode(',', Config::get('system', 'allowed_themes', $system_theme));
@ -1490,7 +1519,7 @@ class App
&& (file_exists('view/theme/' . $theme_name . '/style.css')
|| file_exists('view/theme/' . $theme_name . '/style.php'))
) {
$this->current_theme = $theme_name;
$this->currentTheme = $theme_name;
}
}

View file

@ -107,7 +107,7 @@ class Nav
// user info
$contact = DBA::selectFirst('contact', ['micro'], ['uid' => $a->user['uid'], 'self' => true]);
$userinfo = [
'icon' => (DBA::isResult($contact) ? $a->remove_baseurl($contact['micro']) : 'images/person-48.jpg'),
'icon' => (DBA::isResult($contact) ? $a->removeBaseURL($contact['micro']) : 'images/person-48.jpg'),
'name' => $a->user['username'],
];
} else {

View file

@ -1060,11 +1060,11 @@ class BBCode extends BaseObject
$ch = @curl_init($match[1]);
@curl_setopt($ch, CURLOPT_NOBODY, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
@curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
@curl_exec($ch);
$curl_info = @curl_getinfo($ch);
$a->save_timestamp($stamp1, "network");
$a->saveTimestamp($stamp1, "network");
if (substr($curl_info["content_type"], 0, 6) == "image/") {
$text = "[url=" . $match[1] . "]" . $match[1] . "[/url]";
@ -1119,11 +1119,11 @@ class BBCode extends BaseObject
$ch = @curl_init($match[1]);
@curl_setopt($ch, CURLOPT_NOBODY, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
@curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
@curl_exec($ch);
$curl_info = @curl_getinfo($ch);
$a->save_timestamp($stamp1, "network");
$a->saveTimestamp($stamp1, "network");
// if its a link to a picture then embed this picture
if (substr($curl_info["content_type"], 0, 6) == "image/") {
@ -1946,7 +1946,7 @@ class BBCode extends BaseObject
// unmask the special chars back to HTML
$text = str_replace(['&\_lt\_;', '&\_gt\_;', '&\_amp\_;'], ['&lt;', '&gt;', '&amp;'], $text);
$a->save_timestamp($stamp1, "parser");
$a->saveTimestamp($stamp1, "parser");
// Libertree has a problem with escaped hashtags.
$text = str_replace(['\#'], ['#'], $text);

View file

@ -35,7 +35,7 @@ class Markdown extends BaseObject
$MarkdownParser->code_class_prefix = 'language-';
$html = $MarkdownParser->transform($text);
self::getApp()->save_timestamp($stamp1, "parser");
self::getApp()->saveTimestamp($stamp1, "parser");
return $html;
}

View file

@ -197,7 +197,7 @@ class Addon extends BaseObject
*/
public static function registerHook($hook, $file, $function, $priority = 0)
{
$file = str_replace(self::getApp()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
$file = str_replace(self::getApp()->getBasePath() . DIRECTORY_SEPARATOR, '', $file);
$condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
$exists = DBA::exists('hook', $condition);
@ -220,7 +220,7 @@ class Addon extends BaseObject
*/
public static function unregisterHook($hook, $file, $function)
{
$relative_file = str_replace(self::getApp()->get_basepath() . DIRECTORY_SEPARATOR, '', $file);
$relative_file = str_replace(self::getApp()->getBasePath() . DIRECTORY_SEPARATOR, '', $file);
// This here is only needed for fixing a problem that existed on the develop branch
$condition = ['hook' => $hook, 'file' => $file, 'function' => $function];
@ -368,7 +368,7 @@ class Addon extends BaseObject
$stamp1 = microtime(true);
$f = file_get_contents("addon/$addon/$addon.php");
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
$r = preg_match("|/\*.*\*/|msU", $f, $m);

View file

@ -61,7 +61,7 @@ class Cache extends \Friendica\BaseObject
$return = self::getDriver()->getAllKeys($prefix);
self::getApp()->save_timestamp($time, 'cache');
self::getApp()->saveTimestamp($time, 'cache');
return $return;
}
@ -79,7 +79,7 @@ class Cache extends \Friendica\BaseObject
$return = self::getDriver()->get($key);
self::getApp()->save_timestamp($time, 'cache');
self::getApp()->saveTimestamp($time, 'cache');
return $return;
}
@ -101,7 +101,7 @@ class Cache extends \Friendica\BaseObject
$return = self::getDriver()->set($key, $value, $duration);
self::getApp()->save_timestamp($time, 'cache_write');
self::getApp()->saveTimestamp($time, 'cache_write');
return $return;
}
@ -119,7 +119,7 @@ class Cache extends \Friendica\BaseObject
$return = self::getDriver()->delete($key);
self::getApp()->save_timestamp($time, 'cache_write');
self::getApp()->saveTimestamp($time, 'cache_write');
return $return;
}

View file

@ -20,7 +20,7 @@ abstract class AbstractCacheDriver extends BaseObject
protected function getCacheKey($key)
{
// We fetch with the hostname as key to avoid problems with other applications
return self::getApp()->get_hostname() . ":" . $key;
return self::getApp()->getHostName() . ":" . $key;
}
/**
@ -34,7 +34,7 @@ abstract class AbstractCacheDriver extends BaseObject
} else {
// Keys are prefixed with the node hostname, let's remove it
array_walk($keys, function (&$value) {
$value = preg_replace('/^' . self::getApp()->get_hostname() . ':/', '', $value);
$value = preg_replace('/^' . self::getApp()->getHostName() . ':/', '', $value);
});
sort($keys);

View file

@ -84,8 +84,8 @@ HELP;
if ($config_file != 'config' . DIRECTORY_SEPARATOR . 'local.ini.php') {
// Copy config file
$this->out("Copying config file...\n");
if (!copy($a->basepath . DIRECTORY_SEPARATOR . $config_file, $a->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php')) {
throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '$a->basepath" . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "local.ini.php' manually.\n");
if (!copy($a->getBasePath() . DIRECTORY_SEPARATOR . $config_file, $a->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php')) {
throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '" . $a->getBasePath() . "'" . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "local.ini.php' manually.\n");
}
}

View file

@ -60,7 +60,7 @@ HELP;
}
//return from util folder to frindica base dir
$dir = get_app()->get_basepath();
$dir = get_app()->getBasePath();
//stack for dirs to search
$dirstack = [];

View file

@ -86,7 +86,7 @@ class Install extends BaseObject
$app = self::getApp();
$result = file_put_contents($app->basepath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php', $txt);
$result = file_put_contents($app->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.ini.php', $txt);
if (!$result) {
$app->data['txt'] = $txt;
}

View file

@ -631,7 +631,7 @@ class NotificationsManager extends BaseObject
// We have to distinguish between these two because they use different data.
// Contact suggestions
if ($it['fid']) {
$return_addr = bin2hex(self::getApp()->user['nickname'] . '@' . self::getApp()->get_hostname() . ((self::getApp()->urlpath) ? '/' . self::getApp()->urlpath : ''));
$return_addr = bin2hex(self::getApp()->user['nickname'] . '@' . self::getApp()->getHostName() . ((self::getApp()->getURLpath()) ? '/' . self::getApp()->getURLpath() : ''));
$intro = [
'label' => 'friend_suggestion',

View file

@ -27,7 +27,7 @@ class System extends BaseObject
*/
public static function baseUrl($ssl = false)
{
return self::getApp()->get_baseurl($ssl);
return self::getApp()->getBaseURL($ssl);
}
/**
@ -39,7 +39,7 @@ class System extends BaseObject
*/
public static function removedBaseUrl($orig_url)
{
return self::getApp()->remove_baseurl($orig_url);
return self::getApp()->removeBaseURL($orig_url);
}
/**
@ -185,7 +185,7 @@ class System extends BaseObject
if (is_bool($prefix) && !$prefix) {
$prefix = '';
} elseif (empty($prefix)) {
$prefix = hash('crc32', self::getApp()->get_hostname());
$prefix = hash('crc32', self::getApp()->getHostName());
}
while (strlen($prefix) < ($size - 13)) {

View file

@ -50,7 +50,7 @@ class Theme
$a = get_app();
$stamp1 = microtime(true);
$theme_file = file_get_contents("view/theme/$theme/theme.php");
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
$result = preg_match("|/\*.*\*/|msU", $theme_file, $matches);

View file

@ -62,7 +62,7 @@ class Worker
}
// Do we have too few memory?
if ($a->min_memory_reached()) {
if ($a->isMinMemoryReached()) {
logger('Pre check: Memory limit reached, quitting.', LOGGER_DEBUG);
return;
}
@ -122,7 +122,7 @@ class Worker
}
// Check free memory
if ($a->min_memory_reached()) {
if ($a->isMinMemoryReached()) {
logger('Memory limit reached, quitting.', LOGGER_DEBUG);
Lock::release('worker');
return;

View file

@ -570,7 +570,7 @@ class DBA
self::$errorno = $errorno;
}
$a->save_timestamp($stamp1, 'database');
$a->saveTimestamp($stamp1, 'database');
if ($a->getConfigValue('system', 'db_log')) {
$stamp2 = microtime(true);
@ -641,7 +641,7 @@ class DBA
self::$errorno = $errorno;
}
$a->save_timestamp($stamp, "database_write");
$a->saveTimestamp($stamp, "database_write");
return $retval;
}
@ -809,7 +809,7 @@ class DBA
}
}
$a->save_timestamp($stamp1, 'database');
$a->saveTimestamp($stamp1, 'database');
return $columns;
}
@ -1547,7 +1547,7 @@ class DBA
break;
}
$a->save_timestamp($stamp1, 'database');
$a->saveTimestamp($stamp1, 'database');
return $ret;
}

View file

@ -842,7 +842,7 @@ class DBStructure
public static function definition() {
$a = \Friendica\BaseObject::getApp();
$filename = $a->get_basepath() . '/config/dbstructure.json';
$filename = $a->getBasePath() . '/config/dbstructure.json';
if (!is_readable($filename)) {
throw new Exception('Missing database structure config file config/dbstructure.json');

View file

@ -1632,10 +1632,10 @@ class Contact extends BaseObject
if (($ret['network'] === Protocol::DFRN) && !DBA::isResult($contact)) {
if ($interactive) {
if (strlen($a->urlpath)) {
if (strlen($a->getURLpath())) {
$myaddr = bin2hex(System::baseUrl() . '/profile/' . $a->user['nickname']);
} else {
$myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname());
$myaddr = bin2hex($a->user['nickname'] . '@' . $a->getHostName());
}
goaway($ret['request'] . "&addr=$myaddr");

View file

@ -1166,7 +1166,7 @@ class Item extends BaseObject
if ($notify) {
// We have to avoid duplicates. So we create the GUID in form of a hash of the plink or uri.
// We add the hash of our own host because our host is the original creator of the post.
$prefix_host = get_app()->get_hostname();
$prefix_host = get_app()->getHostName();
} else {
$prefix_host = '';
@ -2361,7 +2361,7 @@ class Item extends BaseObject
$guid = System::createUUID();
}
return self::getApp()->get_baseurl() . '/objects/' . $guid;
return self::getApp()->getBaseURL() . '/objects/' . $guid;
}
/**
@ -2644,7 +2644,7 @@ class Item extends BaseObject
}
// Prevent to forward already forwarded posts
if ($datarray["app"] == $a->get_hostname()) {
if ($datarray["app"] == $a->getHostName()) {
logger('Already forwarded (second test)', LOGGER_DEBUG);
return false;
}

View file

@ -146,7 +146,7 @@ class Photo
// Remove the cached photo
$a = get_app();
$basepath = $a->get_basepath();
$basepath = $a->getBasePath();
if (is_dir($basepath . "/photo")) {
$filename = $basepath . '/photo/' . $hash . '-4.' . $Image->getExt();

View file

@ -162,7 +162,7 @@ class Profile
* load/reload current theme info
*/
$a->set_template_engine(); // reset the template engine to the default in case the user's theme doesn't specify one
$a->setActiveTemplateEngine(); // reset the template engine to the default in case the user's theme doesn't specify one
$theme_info_file = 'view/theme/' . $a->getCurrentTheme() . '/theme.php';
if (file_exists($theme_info_file)) {
@ -1116,7 +1116,7 @@ class Profile
$a->contact = $arr['visitor'];
info(L10n::t('OpenWebAuth: %1$s welcomes %2$s', $a->get_hostname(), $visitor['name']));
info(L10n::t('OpenWebAuth: %1$s welcomes %2$s', $a->getHostName(), $visitor['name']));
logger('OpenWebAuth: auth success from ' . $visitor['addr'], LOGGER_DEBUG);
}

View file

@ -414,7 +414,7 @@ class User
$_SESSION['register'] = 1;
$_SESSION['openid'] = $openid_url;
$openid = new LightOpenID($a->get_hostname());
$openid = new LightOpenID($a->getHostName());
$openid->identity = $openid_url;
$openid->returnUrl = System::baseUrl() . '/openid';
$openid->required = ['namePerson/friendly', 'contact/email', 'namePerson'];

View file

@ -39,7 +39,7 @@ class Login extends BaseModule
}
if (local_user()) {
goaway(self::getApp()->get_baseurl());
goaway(self::getApp()->getBaseURL());
}
return self::form($_SESSION['return_url'], intval(Config::get('config', 'register_policy')) !== REGISTER_CLOSED);
@ -86,18 +86,18 @@ class Login extends BaseModule
// if it's an email address or doesn't resolve to a URL, fail.
if ($noid || strpos($openid_url, '@') || !Network::isUrlValid($openid_url)) {
notice(L10n::t('Login failed.') . EOL);
goaway(self::getApp()->get_baseurl());
goaway(self::getApp()->getBaseURL());
// NOTREACHED
}
// Otherwise it's probably an openid.
try {
$a = get_app();
$openid = new LightOpenID($a->get_hostname());
$openid = new LightOpenID($a->getHostName());
$openid->identity = $openid_url;
$_SESSION['openid'] = $openid_url;
$_SESSION['remember'] = $remember;
$openid->returnUrl = self::getApp()->get_baseurl(true) . '/openid';
$openid->returnUrl = self::getApp()->getBaseURL(true) . '/openid';
goaway($openid->authUrl());
} catch (Exception $e) {
notice(L10n::t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.') . '<br /><br >' . L10n::t('The error message was:') . ' ' . $e->getMessage());
@ -191,7 +191,7 @@ class Login extends BaseModule
if ($data->hash != cookie_hash($user)) {
logger("Hash for user " . $data->uid . " doesn't fit.");
nuke_session();
goaway(self::getApp()->get_baseurl());
goaway(self::getApp()->getBaseURL());
}
// Renew the cookie
@ -228,7 +228,7 @@ class Login extends BaseModule
logger('Session address changed. Paranoid setting in effect, blocking session. ' .
$_SESSION['addr'] . ' != ' . $_SERVER['REMOTE_ADDR']);
nuke_session();
goaway(self::getApp()->get_baseurl());
goaway(self::getApp()->getBaseURL());
}
$user = DBA::selectFirst('user', [],
@ -242,7 +242,7 @@ class Login extends BaseModule
);
if (!DBA::isResult($user)) {
nuke_session();
goaway(self::getApp()->get_baseurl());
goaway(self::getApp()->getBaseURL());
}
// Make sure to refresh the last login time for the user if the user
@ -297,7 +297,7 @@ class Login extends BaseModule
$a->page['htmlhead'] .= replace_macros(
get_markup_template('login_head.tpl'),
[
'$baseurl' => $a->get_baseurl(true)
'$baseurl' => $a->getBaseURL(true)
]
);
@ -308,7 +308,7 @@ class Login extends BaseModule
$o .= replace_macros(
$tpl,
[
'$dest_url' => self::getApp()->get_baseurl(true) . '/login',
'$dest_url' => self::getApp()->getBaseURL(true) . '/login',
'$logout' => L10n::t('Logout'),
'$login' => L10n::t('Login'),

View file

@ -26,6 +26,6 @@ class Logout extends BaseModule
Addon::callHooks("logging_out");
nuke_session();
info(L10n::t('Logged out.') . EOL);
goaway(self::getApp()->get_baseurl());
goaway(self::getApp()->getBaseURL());
}
}

View file

@ -47,7 +47,7 @@ class Magic extends BaseModule
$contact = DBA::selectFirst('contact', ['id', 'nurl', 'url'], ['id' => $cid]);
// Redirect if the contact is already authenticated on this site.
if (!empty($a->contact) && array_key_exists('id', $a->contact) && strpos($contact['nurl'], normalise_link(self::getApp()->get_baseurl())) !== false) {
if (!empty($a->contact) && array_key_exists('id', $a->contact) && strpos($contact['nurl'], normalise_link(self::getApp()->getBaseURL())) !== false) {
if ($test) {
$ret['success'] = true;
$ret['message'] .= 'Local site - you are already authenticated.' . EOL;
@ -78,7 +78,7 @@ class Magic extends BaseModule
$headers = HTTPSignature::createSig(
$headers,
$user['prvkey'],
'acct:' . $user['nickname'] . '@' . $a->get_hostname() . ($a->urlpath ? '/' . $a->urlpath : '')
'acct:' . $user['nickname'] . '@' . $a->getHostName() . ($a->getURLpath() ? '/' . $a->getURLpath() : '')
);
// Try to get an authentication token from the other instance.

View file

@ -71,7 +71,7 @@ class Proxy extends BaseModule
$thumb = false;
$size = 1024;
$sizetype = '';
$basepath = $a->get_basepath();
$basepath = $a->getBasePath();
// If the cache path isn't there, try to create it
if (!is_dir($basepath . '/proxy') && is_writable($basepath)) {
@ -196,7 +196,7 @@ class Proxy extends BaseModule
unlink($tempfile);
// If there is an error then return a blank image
if ((substr($a->get_curl_code(), 0, 1) == '4') || (!$img_str)) {
if ((substr(Network::getCurl()->getCode(), 0, 1) == '4') || (!$img_str)) {
$img_str = file_get_contents('images/blank.png');
$mime = 'image/png';
$cachefile = ''; // Clear the cachefile so that the dummy isn't stored

92
src/Network/Curl.php Normal file
View file

@ -0,0 +1,92 @@
<?php
namespace Friendica\Network;
/**
* A content class for Curl call results
*/
class Curl
{
/**
* @var string the Code of the Curl call
*/
private $code;
/**
* @var string the content type of the Curl call
*/
private $contentType;
/**
* @var string the headers of the Curl call
*/
private $headers;
public function __construct($code = '', $contentType = '', $headers = '')
{
$this->code = $code;
$this->contentType = $contentType;
$this->headers = $headers;
}
/**
* Sets the Curl Code
*
* @param string $code The Curl Code
*/
public function setCode($code)
{
$this->code = $code;
}
/**
* Gets the Curl Code
*
* @return string The Curl Code
*/
public function getCode()
{
return $this->code;
}
/**
* Sets the Curl Content Type
*
* @param string $content_type The Curl Content Type
*/
public function setContentType($content_type)
{
$this->contentType = $content_type;
}
/**
* Returns the Curl Content Type
*
* @return string the Curl Content Type
*/
public function getContentType()
{
return $this->contentType;
}
/**
* Sets the Curl headers
*
* @param string $headers the Curl headers
*/
public function setHeaders($headers)
{
$this->headers = $headers;
}
/**
* Returns the Curl headers
*
* @return string the Curl headers
*/
public function getHeaders()
{
return $this->headers;
}
}

View file

@ -74,7 +74,7 @@ class Probe
*/
private static function ownHost($host)
{
$own_host = get_app()->get_hostname();
$own_host = get_app()->getHostName();
$parts = parse_url($host);

View file

@ -655,7 +655,7 @@ class Image
$stamp1 = microtime(true);
file_put_contents($path, $string);
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
}
/**
@ -730,7 +730,7 @@ class Image
if ($fromcurl) {
$a = get_app();
$headers=[];
$h = explode("\n", $a->get_curl_headers());
$h = explode("\n", Network::getCurl()->getHeaders());
foreach ($h as $l) {
$data = array_map("trim", explode(":", trim($l), 2));
if (count($data) > 1) {
@ -799,7 +799,7 @@ class Image
$a = get_app();
$stamp1 = microtime(true);
file_put_contents($tempfile, $img_str);
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
$data = getimagesize($tempfile);
unlink($tempfile);
@ -907,7 +907,7 @@ class Image
$stamp1 = microtime(true);
$imagedata = @file_get_contents($url);
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
}
$maximagesize = Config::get('system', 'maximagesize');
@ -921,7 +921,7 @@ class Image
$stamp1 = microtime(true);
file_put_contents($tempfile, $imagedata);
$a->save_timestamp($stamp1, "file");
$a->saveTimestamp($stamp1, "file");
$data = getimagesize($tempfile);

View file

@ -368,7 +368,7 @@ class Post extends BaseObject
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => $name_e,
'thumb' => $a->remove_baseurl(ProxyUtils::proxifyUrl($item['author-avatar'], false, ProxyUtils::SIZE_THUMB)),
'thumb' => $a->removeBaseURL(ProxyUtils::proxifyUrl($item['author-avatar'], false, ProxyUtils::SIZE_THUMB)),
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => $title_e,
@ -381,7 +381,7 @@ class Post extends BaseObject
'indent' => $indent,
'shiny' => $shiny,
'owner_url' => $this->getOwnerUrl(),
'owner_photo' => $a->remove_baseurl(ProxyUtils::proxifyUrl($item['owner-avatar'], false, ProxyUtils::SIZE_THUMB)),
'owner_photo' => $a->removeBaseURL(ProxyUtils::proxifyUrl($item['owner-avatar'], false, ProxyUtils::SIZE_THUMB)),
'owner_name' => htmlentities($owner_name_e),
'plink' => get_plink($item),
'edpost' => Feature::isEnabled($conv->getProfileOwner(), 'edit_posts') ? $edpost : '',
@ -788,9 +788,9 @@ class Post extends BaseObject
'$parent' => $this->getId(),
'$qcomment' => $qcomment,
'$profile_uid' => $uid,
'$mylink' => $a->remove_baseurl($a->contact['url']),
'$mylink' => $a->removeBaseURL($a->contact['url']),
'$mytitle' => L10n::t('This is you'),
'$myphoto' => $a->remove_baseurl($a->contact['thumb']),
'$myphoto' => $a->removeBaseURL($a->contact['thumb']),
'$comment' => L10n::t('Comment'),
'$submit' => L10n::t('Submit'),
'$edbold' => L10n::t('Bold'),

View file

@ -1220,7 +1220,7 @@ class DFRN
$xml = $ret['body'];
$curl_stat = $a->get_curl_code();
$curl_stat = Network::getCurl()->getCode();
if (empty($curl_stat)) {
Contact::markForArchival($contact);
return -3; // timed out
@ -1372,13 +1372,13 @@ class DFRN
logger('dfrn_deliver: ' . "RECEIVED: " . $xml, LOGGER_DATA);
$curl_stat = $a->get_curl_code();
$curl_stat = Network::getCurl()->getCode();
if (empty($curl_stat) || empty($xml)) {
Contact::markForArchival($contact);
return -9; // timed out
}
if (($curl_stat == 503) && stristr($a->get_curl_headers(), 'retry-after')) {
if (($curl_stat == 503) && stristr(Network::getCurl()->getHeaders(), 'retry-after')) {
Contact::markForArchival($contact);
return -10;
}
@ -1469,14 +1469,14 @@ class DFRN
$xml = Network::post($dest_url, $envelope, ["Content-Type: ".$content_type]);
$curl_stat = $a->get_curl_code();
$curl_stat = Network::getCurl()->getCode();
if (empty($curl_stat) || empty($xml)) {
logger('Empty answer from ' . $contact['id'] . ' - ' . $dest_url);
Contact::markForArchival($contact);
return -9; // timed out
}
if (($curl_stat == 503) && (stristr($a->get_curl_headers(), 'retry-after'))) {
if (($curl_stat == 503) && (stristr(Network::getCurl()->getHeaders(), 'retry-after'))) {
Contact::markForArchival($contact);
return -10;
}
@ -2496,7 +2496,7 @@ class DFRN
/// @todo Do we really need this check for HTML elements? (It was copied from the old function)
if ((strpos($item['body'], '<') !== false) && (strpos($item['body'], '>') !== false)) {
$base_url = get_app()->get_baseurl();
$base_url = get_app()->getBaseURL();
$item['body'] = reltoabs($item['body'], $base_url);
$item['body'] = html2bb_video($item['body']);

View file

@ -3080,7 +3080,7 @@ class Diaspora
$content_type = (($public_batch) ? "application/magic-envelope+xml" : "application/json");
Network::post($dest_url."/", $envelope, ["Content-Type: ".$content_type]);
$return_code = $a->get_curl_code();
$return_code = Network::getCurl()->getCode();
} else {
logger("test_mode");
return 200;
@ -3089,7 +3089,7 @@ class Diaspora
logger("transmit: ".$logid."-".$guid." to ".$dest_url." returns: ".$return_code);
if (!$return_code || (($return_code == 503) && (stristr($a->get_curl_headers(), "retry-after")))) {
if (!$return_code || (($return_code == 503) && (stristr(Network::getCurl()->getHeaders(), "retry-after")))) {
if (!$no_queue && !empty($contact['contact-type']) && ($contact['contact-type'] != Contact::ACCOUNT_TYPE_RELAY)) {
logger("queue message");
// queue message for redelivery

View file

@ -430,7 +430,7 @@ class Feed {
// Distributed items should have a well formatted URI.
// Additionally we have to avoid conflicts with identical URI between imported feeds and these items.
if ($notify) {
$item['guid'] = Item::guidFromUri($orig_plink, $a->get_hostname());
$item['guid'] = Item::guidFromUri($orig_plink, $a->getHostName());
unset($item['uri']);
unset($item['parent-uri']);

View file

@ -1830,7 +1830,7 @@ class OStatus
}
$item["uri"] = $item['parent-uri'] = $item['thr-parent']
= 'tag:'.get_app()->get_hostname().
= 'tag:'.get_app()->getHostName().
','.date('Y-m-d').':'.$action.':'.$owner['uid'].
':person:'.$connect_id.':'.$item['created'];

View file

@ -90,9 +90,9 @@ class PortableContact
logger('load: returns ' . $s, LOGGER_DATA);
logger('load: return code: ' . $a->get_curl_code(), LOGGER_DEBUG);
logger('load: return code: ' . Network::getCurl()->getCode(), LOGGER_DEBUG);
if (($a->get_curl_code() > 299) || (! $s)) {
if ((Network::getCurl()->getCode() > 299) || (! $s)) {
return;
}

View file

@ -139,7 +139,7 @@ class Salmon
]);
$a = get_app();
$return_code = $a->get_curl_code();
$return_code = Network::getCurl()->getCode();
// check for success, e.g. 2xx
@ -163,7 +163,7 @@ class Salmon
'Content-type: application/magic-envelope+xml',
'Content-length: ' . strlen($salmon)
]);
$return_code = $a->get_curl_code();
$return_code = Network::getCurl()->getCode();
}
if ($return_code > 299) {
@ -185,7 +185,7 @@ class Salmon
Network::post($url, $salmon, [
'Content-type: application/magic-envelope+xml',
'Content-length: ' . strlen($salmon)]);
$return_code = $a->get_curl_code();
$return_code = Network::getCurl()->getCode();
}
logger('slapper for '.$url.' returned ' . $return_code);
@ -194,7 +194,7 @@ class Salmon
return -1;
}
if (($return_code == 503) && (stristr($a->get_curl_headers(), 'retry-after'))) {
if (($return_code == 503) && (stristr(Network::getCurl()->getHeaders(), 'retry-after'))) {
return -1;
}

View file

@ -38,8 +38,8 @@ class FriendicaSmarty extends Smarty
$this->setConfigDir('view/smarty3/config/');
$this->setCacheDir('view/smarty3/cache/');
$this->left_delimiter = $a->get_template_ldelim('smarty3');
$this->right_delimiter = $a->get_template_rdelim('smarty3');
$this->left_delimiter = $a->getTemplateLdelim('smarty3');
$this->right_delimiter = $a->getTemplateRdelim('smarty3');
// Don't report errors so verbosely
$this->error_reporting = E_ALL & ~E_NOTICE;

View file

@ -141,7 +141,7 @@ class ExAuth
$sUser = str_replace(['%20', '(a)'], [' ', '@'], $aCommand[1]);
// Does the hostname match? So we try directly
if ($a->get_hostname() == $aCommand[2]) {
if ($a->getHostName() == $aCommand[2]) {
$this->writeLog(LOG_INFO, 'internal user check for ' . $sUser . '@' . $aCommand[2]);
$found = DBA::exists('user', ['nickname' => $sUser]);
} else {
@ -221,7 +221,7 @@ class ExAuth
$sUser = str_replace(['%20', '(a)'], [' ', '@'], $aCommand[1]);
// Does the hostname match? So we try directly
if ($a->get_hostname() == $aCommand[2]) {
if ($a->getHostName() == $aCommand[2]) {
$this->writeLog(LOG_INFO, 'internal auth for ' . $sUser . '@' . $aCommand[2]);
$aUser = DBA::selectFirst('user', ['uid', 'password', 'legacy_password'], ['nickname' => $sUser]);

View file

@ -303,7 +303,7 @@ class HTTPSignature
$headers[] = 'Content-Type: application/activity+json';
Network::post($target, $content, $headers);
$return_code = BaseObject::getApp()->get_curl_code();
$return_code = BaseObject::getApp()->getCurlCode();
logger('Transmit to ' . $target . ' returned ' . $return_code);
}

View file

@ -9,6 +9,8 @@ use Friendica\Core\Addon;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\Core\Config;
use Friendica\Network\Curl;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Network\Probe;
use Friendica\Object\Image;
use Friendica\Util\XML;
@ -17,6 +19,25 @@ use DomXPath;
class Network
{
/**
* @var Curl The latest Curl output
*/
private static $curl;
/**
* Returns the latest Curl output
*
* @return Curl The latest Curl output
*/
public static function getCurl()
{
if (empty(self::$curl)) {
self::$curl = new Curl();
}
return self::$curl;
}
/**
* Curl wrapper
*
@ -35,7 +56,7 @@ class Network
*
* @return string The fetched content
*/
public static function fetchUrl($url, $binary = false, &$redirects = 0, $timeout = 0, $accept_content = null, $cookiejar = 0)
public static function fetchUrl($url, $binary = false, &$redirects = 0, $timeout = 0, $accept_content = null, $cookiejar = '')
{
$ret = self::fetchUrlFull($url, $binary, $redirects, $timeout, $accept_content, $cookiejar);
@ -59,7 +80,7 @@ class Network
*
* @return array With all relevant information, 'body' contains the actual fetched content.
*/
public static function fetchUrlFull($url, $binary = false, &$redirects = 0, $timeout = 0, $accept_content = null, $cookiejar = 0)
public static function fetchUrlFull($url, $binary = false, &$redirects = 0, $timeout = 0, $accept_content = null, $cookiejar = '')
{
return self::curl(
$url,
@ -145,7 +166,7 @@ class Network
}
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
@curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
$range = intval(Config::get('system', 'curl_range_bytes', 0));
@ -203,8 +224,6 @@ class Network
@curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
}
$a->set_curl_code(0);
// don't let curl abort the entire application
// if it throws any errors.
@ -242,9 +261,7 @@ class Network
$base = substr($base, strlen($chunk));
}
$a->set_curl_code($http_code);
$a->set_curl_content_type($curl_info['content_type']);
$a->set_curl_headers($header);
self::$curl = new Curl($http_code, (isset($curl_info['content_type']) ? $curl_info['content_type'] : ''), $header);
if ($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
$new_location_info = @parse_url($curl_info['redirect_url']);
@ -277,8 +294,10 @@ class Network
}
}
$a->set_curl_code($http_code);
$a->set_curl_content_type($curl_info['content_type']);
self::$curl->setCode($http_code);
if (isset($curl_info['content_type'])) {
self::$curl->setContentType($curl_info['content_type']);
}
$rc = intval($http_code);
$ret['return_code'] = $rc;
@ -301,7 +320,7 @@ class Network
@curl_close($ch);
$a->save_timestamp($stamp1, 'network');
$a->saveTimestamp($stamp1, 'network');
return($ret);
}
@ -339,7 +358,7 @@ class Network
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
if (Config::get('system', 'ipv4_resolve', false)) {
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
@ -384,7 +403,7 @@ class Network
}
}
$a->set_curl_code(0);
self::getCurl()->setCode(0);
// don't let curl abort the entire application
// if it throws any errors.
@ -427,15 +446,15 @@ class Network
}
}
$a->set_curl_code($http_code);
self::getCurl()->setCode($http_code);
$body = substr($s, strlen($header));
$a->set_curl_headers($header);
self::getCurl()->setHeaders($header);
curl_close($ch);
$a->save_timestamp($stamp1, 'network');
$a->saveTimestamp($stamp1, 'network');
logger('post_url: end ' . $url, LOGGER_DATA);
@ -729,14 +748,14 @@ class Network
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
curl_exec($ch);
$curl_info = @curl_getinfo($ch);
$http_code = $curl_info['http_code'];
curl_close($ch);
$a->save_timestamp($stamp1, "network");
$a->saveTimestamp($stamp1, "network");
if ($http_code == 0) {
return $url;
@ -773,12 +792,12 @@ class Network
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
$body = curl_exec($ch);
curl_close($ch);
$a->save_timestamp($stamp1, "network");
$a->saveTimestamp($stamp1, "network");
if (trim($body) == "") {
return $url;

View file

@ -91,7 +91,7 @@ class Proxy
$url = html_entity_decode($url, ENT_NOQUOTES, 'utf-8');
// Creating a sub directory to reduce the amount of files in the cache directory
$basepath = $a->get_basepath() . '/proxy';
$basepath = $a->getBasePath() . '/proxy';
$shortpath = hash('md5', $url);
$longpath = substr($shortpath, 0, 2);

View file

@ -115,7 +115,7 @@ class Cron
// Ensure to have a .htaccess file.
// this is a precaution for systems that update automatically
$basepath = $a->get_basepath();
$basepath = $a->getBasePath();
if (!file_exists($basepath . '/.htaccess')) {
copy($basepath . '/.htaccess-dist', $basepath . '/.htaccess');
}

View file

@ -157,14 +157,14 @@ class CronJobs
clear_cache();
// clear cache for photos
clear_cache($a->get_basepath(), $a->get_basepath() . "/photo");
clear_cache($a->getBasePath(), $a->getBasePath() . "/photo");
// clear smarty cache
clear_cache($a->get_basepath() . "/view/smarty3/compiled", $a->get_basepath() . "/view/smarty3/compiled");
clear_cache($a->getBasePath() . "/view/smarty3/compiled", $a->getBasePath() . "/view/smarty3/compiled");
// clear cache for image proxy
if (!Config::get("system", "proxy_disabled")) {
clear_cache($a->get_basepath(), $a->get_basepath() . "/proxy");
clear_cache($a->getBasePath(), $a->getBasePath() . "/proxy");
$cachetime = Config::get('system', 'proxy_cache_time');

View file

@ -112,7 +112,7 @@ class Delivery extends BaseObject
// if $parent['wall'] == 1 we will already have the parent message in our array
// and we will relay the whole lot.
$localhost = self::getApp()->get_hostname();
$localhost = self::getApp()->getHostName();
if (strpos($localhost, ':')) {
$localhost = substr($localhost, 0, strpos($localhost, ':'));
}
@ -435,7 +435,7 @@ class Delivery extends BaseObject
$headers = 'From: ' . Email::encodeHeader($local_user['username'],'UTF-8').' <' . $local_user['email'] . '>' . "\n";
}
} else {
$headers = 'From: '. Email::encodeHeader($local_user['username'], 'UTF-8') . ' <noreply@' . self::getApp()->get_hostname() . '>' . "\n";
$headers = 'From: '. Email::encodeHeader($local_user['username'], 'UTF-8') . ' <noreply@' . self::getApp()->getHostName() . '>' . "\n";
}
$headers .= 'Message-Id: <' . Email::iri2msgid($target_item['uri']) . '>' . "\n";

View file

@ -194,7 +194,7 @@ class Notifier
// if $parent['wall'] == 1 we will already have the parent message in our array
// and we will relay the whole lot.
$localhost = str_replace('www.','',$a->get_hostname());
$localhost = str_replace('www.','',$a->getHostName());
if (strpos($localhost,':')) {
$localhost = substr($localhost,0,strpos($localhost,':'));
}

View file

@ -196,7 +196,7 @@ class OnePoll
$handshake_xml = $ret['body'];
$html_code = $a->get_curl_code();
$html_code = Network::getCurl()->getCode();
logger('handshake with url ' . $url . ' returns xml: ' . $handshake_xml, LOGGER_DATA);
@ -507,7 +507,7 @@ class OnePoll
}
}
$fromarr = imap_rfc822_parse_adrlist($fromdecoded, $a->get_hostname());
$fromarr = imap_rfc822_parse_adrlist($fromdecoded, $a->getHostName());
$frommail = $fromarr[0]->mailbox."@".$fromarr[0]->host;

View file

@ -57,7 +57,7 @@ class PubSubPublish
logger('POST ' . print_r($headers, true) . "\n" . $params, LOGGER_DATA);
Network::post($subscriber['callback_url'], $params, $headers);
$ret = $a->get_curl_code();
$ret = Network::getCurl()->getCode();
$condition = ['id' => $subscriber['id']];

View file

@ -75,9 +75,8 @@ class ApiTest extends DatabaseTest
{
parent::tearDown();
$app = get_app();
$app->argc = 1;
$app->argv = ['home'];
$this->app->argc = 1;
$this->app->argv = ['home'];
}
/**

View file

@ -5,6 +5,7 @@
namespace Friendica\Test;
use Friendica\App;
use Friendica\BaseObject;
use Friendica\Core\Config;
use Friendica\Database\DBA;
@ -18,7 +19,12 @@ use PHPUnit_Extensions_Database_DB_IDatabaseConnection;
*/
abstract class DatabaseTest extends TestCase
{
public function setUp()
/**
* @var App The Friendica App
*/
protected $app;
protected function setUp()
{
// Reusable App object
$this->app = BaseObject::getApp();

View file

@ -11,7 +11,7 @@ abstract class MemoryCacheTest extends CacheTest
*/
protected $instance;
function setUp()
protected function setUp()
{
parent::setUp();
if (!($this->instance instanceof IMemoryCacheDriver)) {

View file

@ -6,7 +6,7 @@ use Friendica\Core\PConfig;
function duepuntozero_init(App $a) {
$a->set_template_engine('smarty3');
$a->setActiveTemplateEngine('smarty3');
$colorset = PConfig::get( local_user(), 'duepuntozero','colorset');
if (!$colorset)

View file

@ -26,7 +26,7 @@ if (!isset($minimal)) {
<script type="text/javascript">var baseurl = "<?php echo System::baseUrl(); ?>";</script>
<script type="text/javascript">var frio = "<?php echo 'view/theme/frio'; ?>";</script>
<?php
$basepath = $a->urlpath ? "/" . $a->urlpath . "/" : "/";
$basepath = $a->getURLpath() ? "/" . $a->getURLpath() . "/" : "/";
$frio = "view/theme/frio";
// Because we use minimal for modals the header and the included js stuff should be only loaded

View file

@ -28,7 +28,7 @@ function frio_init(App $a)
$a->theme_events_in_profile = false;
$a->videowidth = 622;
$a->set_template_engine('smarty3');
$a->setActiveTemplateEngine('smarty3');
$baseurl = System::baseUrl();
@ -241,7 +241,7 @@ function frio_remote_nav($a, &$nav)
// user info
$r = q("SELECT `micro` FROM `contact` WHERE `uid` = %d AND `self`", intval($a->user['uid']));
$r[0]['photo'] = (DBA::isResult($r) ? $a->remove_baseurl($r[0]['micro']) : 'images/person-48.jpg');
$r[0]['photo'] = (DBA::isResult($r) ? $a->removeBaseURL($r[0]['micro']) : 'images/person-48.jpg');
$r[0]['name'] = $a->user['username'];
} elseif (!local_user() && remote_user()) {
$r = q("SELECT `name`, `nick`, `micro` AS `photo` FROM `contact` WHERE `id` = %d", intval(remote_user()));

View file

@ -14,7 +14,7 @@ use Friendica\App;
use Friendica\Core\System;
function smoothly_init(App $a) {
$a->set_template_engine('smarty3');
$a->setActiveTemplateEngine('smarty3');
$cssFile = null;
$ssl_state = null;

View file

@ -25,7 +25,7 @@ function vier_init(App $a)
{
$a->theme_events_in_profile = false;
$a->set_template_engine('smarty3');
$a->setActiveTemplateEngine('smarty3');
if (!empty($a->argv[0]) && $a->argv[0] . defaults($a->argv, 1, '') === "profile".$a->user['nickname'] || $a->argv[0] === "network" && local_user()) {
vier_community_info();
@ -184,7 +184,7 @@ function vier_community_info()
$entry = replace_macros($tpl, [
'$id' => $rr['id'],
'$profile_link' => $profile_link,
'$photo' => $a->remove_baseurl($rr['thumb']),
'$photo' => $a->removeBaseURL($rr['thumb']),
'$alt_text' => $rr['name']]);
$aside['$lastusers_items'][] = $entry;
}