return;
}
-$a->set_baseurl(Config::get('system', 'url'));
+$a->setBaseURL(Config::get('system', 'url'));
Addon::loadHooks();
// 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());
}
$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;
}
$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();
mkdir($itemcache);
}
- if (App::directory_usable($itemcache)) {
+ if (App::isDirectoryUsable($itemcache)) {
Config::set("system", "itemcache", $itemcache);
return $itemcache;
}
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;
}
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;
$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';
}
$sender_name = $sitename;
- $hostname = $a->get_hostname();
+ $hostname = $a->getHostName();
if (strpos($hostname, ':')) {
$hostname = substr($hostname, 0, strpos($hostname, ':'));
}
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;
// 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) {
killme();
}
- $a->save_timestamp($stamp1, "rendering");
+ $a->saveTimestamp($stamp1, "rendering");
return $output;
}
$stamp1 = microtime(true);
$a = get_app();
- $t = $a->template_engine();
+ $t = $a->getTemplateEngine();
try {
$template = $t->getTemplateFile($s, $root);
} catch (Exception $e) {
killme();
}
- $a->save_timestamp($stamp1, "file");
+ $a->saveTimestamp($stamp1, "file");
return $template;
}
$stamp1 = microtime(true);
@file_put_contents($logfile, $logline, FILE_APPEND);
- $a->save_timestamp($stamp1, "file");
+ $a->saveTimestamp($stamp1, "file");
}
/**
$stamp1 = microtime(true);
@file_put_contents($logfile, $logline, FILE_APPEND);
- $a->save_timestamp($stamp1, "file");
+ $a->saveTimestamp($stamp1, "file");
}
];
if (x($item, 'plink')) {
- $ret["href"] = $a->remove_baseurl($item['plink']);
+ $ret["href"] = $a->removeBaseURL($item['plink']);
$ret["title"] = L10n::t('link to source');
}
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;
}
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')) {
*/
// 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();
$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']]]);
// 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`");
// 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");
Worker::add(PRIORITY_LOW, 'Directory');
}
- if ($a->get_path() != "") {
+ if ($a->getURLpath() != "") {
$diaspora_enabled = false;
}
if ($ssl_policy != intval(Config::get('system', 'ssl_policy'))) {
Config::set('system', 'dbclean-expire-unclaimed', $dbclean_unclaimed);
if ($itemcache != '') {
- $itemcache = App::realpath($itemcache);
+ $itemcache = App::getRealPath($itemcache);
}
Config::set('system', 'itemcache', $itemcache);
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);
];
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);
/* 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 */
$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)) {
}
if ($t > 0) {
- $a->set_pager_total($t);
+ $a->setPagerTotal($t);
} else {
notice(L10n::t('No contacts in common.') . EOL);
return $o;
$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);
intval($_SESSION['uid'])
);
if (DBA::isResult($r)) {
- $a->set_pager_total($r[0]['total']);
+ $a->setPagerTotal($r[0]['total']);
$total = $r[0]['total'];
}
// 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);
} 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);
function directory_init(App $a)
{
- $a->set_pager_itemspage(60);
+ $a->setPagerItemsPage(60);
if (local_user()) {
$a->page['aside'] .= Widget::findPeople();
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 ";
}
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)) {
$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;
$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);
$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)) {
$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'))]
$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)) {
);
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']);
$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']));
}
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;
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;
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;
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);
$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']]];
}
// Set the pager
- $a->set_pager_itemspage($perpage);
+ $a->setPagerItemsPage($perpage);
// Add additional informations (needed for json output)
$notifs['items_page'] = $a->pager['itemspage'];
$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"]);
if((x($_GET,'openid_mode')) && (x($_SESSION,'openid'))) {
- $openid = new LightOpenID($a->get_hostname());
+ $openid = new LightOpenID($a->getHostName());
if($openid->validate()) {
$o = replace_macros($tpl, [
'$baseurl' => System::baseUrl(),
- '$nodename' => $a->get_hostname(),
+ '$nodename' => $a->getHostName(),
]);
echo $o;
// 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");
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?
$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);
);
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`,
$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']);
}
$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);
$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']));
$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'],
// 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) {
}
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
'$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,
'$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'),
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 {
$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');
);
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`,
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`
$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') {
public $argc;
public $module;
public $strings;
- public $basepath;
- public $urlpath;
public $hooks = [];
public $timezone;
public $interactive = true;
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
*/
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().
*/
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, '/');
}
*/
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, '/');
}
];
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;
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);
$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');
}
/**
$this->loadDatabase();
- $this->getMode()->determine($this->basepath);
+ $this->getMode()->determine($this->getBasePath());
- $this->determineUrlPath();
+ $this->determineURLPath();
Config::load();
*/
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);
}
}
- 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);
}
}
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);
}
}
/**
* 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');
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');
}
/**
*
* @return string
*/
- public function get_basepath()
+ public function getBasePath()
{
$basepath = $this->basepath;
$basepath = $_SERVER['PWD'];
}
- return self::realpath($basepath);
+ return self::getRealPath($basepath);
}
/**
* @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);
}
}
- public function get_scheme()
+ public function getScheme()
{
return $this->scheme;
}
* @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;
$this->hostname = Config::get('config', 'hostname');
}
- return $scheme . '://' . $this->hostname . (!empty($this->urlpath) ? '/' . $this->urlpath : '' );
+ return $scheme . '://' . $this->hostname . (!empty($this->getURLpath()) ? '/' . $this->getURLpath() : '' );
}
/**
*
* @param string $url
*/
- public function set_baseurl($url)
+ public function setBaseURL($url)
{
$parsed = @parse_url($url);
$hostname = '';
$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') != '') {
}
}
- public function get_hostname()
+ public function getHostName()
{
if (Config::get('config', 'hostname') != '') {
$this->hostname = Config::get('config', 'hostname');
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'];
* 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?'),
$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.
*
*
* @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
*
* @param string $class
*/
- private function register_template_engine($class)
+ private function registerTemplateEngine($class)
{
$v = get_class_vars($class);
if (x($v, 'name')) {
*
* @return object Template Engine instance
*/
- public function template_engine()
+ public function getTemplateEngine()
{
$template_engine = 'smarty3';
if (x($this->theme, 'template_engine')) {
*
* @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
$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();
+ }
+
+ /**
+ * 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()
+ {
+ // Friendica-Client
+ $this->isFriendicaApp = isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == 'Apache-HttpClient/UNAVAILABLE (java 1.4)';
}
- public function is_friendica_app()
+ /**
+ * 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->is_friendica_app;
+ return $this->isFriendicaApp;
}
/**
* 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',
];
// 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;
}
/**
*
* @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) {
*/
public function isMaxLoadReached()
{
- if ($this->is_backend()) {
+ if ($this->isBackend()) {
$process = 'backend';
$maxsysload = intval(Config::get('system', 'maxloadavg'));
if ($maxsysload < 1) {
}
}
- 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);
*
* @return string system username
*/
- private static function systemuser()
+ private static function getSystemUser()
{
if (!function_exists('posix_getpwuid') || !function_exists('posix_geteuid')) {
return '';
*
* @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);
}
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;
}
* @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)
{
* @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)
{
{
$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, ':'));
}
/**
* Returns the current theme name.
*
- * @return string
+ * @return string the name of the current theme
*/
public function getCurrentTheme()
{
/// https://github.com/friendica/friendica/issues/5092)
$this->computeCurrentTheme();
- return $this->current_theme;
+ return $this->currentTheme;
}
/**
}
// Sane default
- $this->current_theme = $system_theme;
+ $this->currentTheme = $system_theme;
$allowed_themes = explode(',', Config::get('system', 'allowed_themes', $system_theme));
&& (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;
}
}
// 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 {
$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]";
$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/") {
// unmask the special chars back to HTML
$text = str_replace(['&\_lt\_;', '&\_gt\_;', '&\_amp\_;'], ['<', '>', '&'], $text);
- $a->save_timestamp($stamp1, "parser");
+ $a->saveTimestamp($stamp1, "parser");
// Libertree has a problem with escaped hashtags.
$text = str_replace(['\#'], ['#'], $text);
$MarkdownParser->code_class_prefix = 'language-';
$html = $MarkdownParser->transform($text);
- self::getApp()->save_timestamp($stamp1, "parser");
+ self::getApp()->saveTimestamp($stamp1, "parser");
return $html;
}
*/
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);
*/
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];
$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);
$return = self::getDriver()->getAllKeys($prefix);
- self::getApp()->save_timestamp($time, 'cache');
+ self::getApp()->saveTimestamp($time, 'cache');
return $return;
}
$return = self::getDriver()->get($key);
- self::getApp()->save_timestamp($time, 'cache');
+ self::getApp()->saveTimestamp($time, 'cache');
return $return;
}
$return = self::getDriver()->set($key, $value, $duration);
- self::getApp()->save_timestamp($time, 'cache_write');
+ self::getApp()->saveTimestamp($time, 'cache_write');
return $return;
}
$return = self::getDriver()->delete($key);
- self::getApp()->save_timestamp($time, 'cache_write');
+ self::getApp()->saveTimestamp($time, 'cache_write');
return $return;
}
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;
}
/**
} 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);
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");
}
}
}
//return from util folder to frindica base dir
- $dir = get_app()->get_basepath();
+ $dir = get_app()->getBasePath();
//stack for dirs to search
$dirstack = [];
$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;
}
// 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',
*/
public static function baseUrl($ssl = false)
{
- return self::getApp()->get_baseurl($ssl);
+ return self::getApp()->getBaseURL($ssl);
}
/**
*/
public static function removedBaseUrl($orig_url)
{
- return self::getApp()->remove_baseurl($orig_url);
+ return self::getApp()->removeBaseURL($orig_url);
}
/**
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)) {
$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);
}
// Do we have too few memory?
- if ($a->min_memory_reached()) {
+ if ($a->isMinMemoryReached()) {
logger('Pre check: Memory limit reached, quitting.', LOGGER_DEBUG);
return;
}
}
// Check free memory
- if ($a->min_memory_reached()) {
+ if ($a->isMinMemoryReached()) {
logger('Memory limit reached, quitting.', LOGGER_DEBUG);
Lock::release('worker');
return;
self::$errorno = $errorno;
}
- $a->save_timestamp($stamp1, 'database');
+ $a->saveTimestamp($stamp1, 'database');
if ($a->getConfigValue('system', 'db_log')) {
$stamp2 = microtime(true);
self::$errorno = $errorno;
}
- $a->save_timestamp($stamp, "database_write");
+ $a->saveTimestamp($stamp, "database_write");
return $retval;
}
}
}
- $a->save_timestamp($stamp1, 'database');
+ $a->saveTimestamp($stamp1, 'database');
return $columns;
}
break;
}
- $a->save_timestamp($stamp1, 'database');
+ $a->saveTimestamp($stamp1, 'database');
return $ret;
}
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');
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");
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 = '';
$guid = System::createUUID();
}
- return self::getApp()->get_baseurl() . '/objects/' . $guid;
+ return self::getApp()->getBaseURL() . '/objects/' . $guid;
}
/**
}
// 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;
}
// 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();
* 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)) {
$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);
}
$_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'];
}
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);
// 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());
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
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', [],
);
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
$a->page['htmlhead'] .= replace_macros(
get_markup_template('login_head.tpl'),
[
- '$baseurl' => $a->get_baseurl(true)
+ '$baseurl' => $a->getBaseURL(true)
]
);
$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'),
Addon::callHooks("logging_out");
nuke_session();
info(L10n::t('Logged out.') . EOL);
- goaway(self::getApp()->get_baseurl());
+ goaway(self::getApp()->getBaseURL());
}
}
$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;
$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.
$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)) {
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
--- /dev/null
+<?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;
+ }
+}
*/
private static function ownHost($host)
{
- $own_host = get_app()->get_hostname();
+ $own_host = get_app()->getHostName();
$parts = parse_url($host);
$stamp1 = microtime(true);
file_put_contents($path, $string);
- $a->save_timestamp($stamp1, "file");
+ $a->saveTimestamp($stamp1, "file");
}
/**
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) {
$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);
$stamp1 = microtime(true);
$imagedata = @file_get_contents($url);
- $a->save_timestamp($stamp1, "file");
+ $a->saveTimestamp($stamp1, "file");
}
$maximagesize = Config::get('system', 'maximagesize');
$stamp1 = microtime(true);
file_put_contents($tempfile, $imagedata);
- $a->save_timestamp($stamp1, "file");
+ $a->saveTimestamp($stamp1, "file");
$data = getimagesize($tempfile);
'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,
'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 : '',
'$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'),
$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
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;
}
$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;
}
/// @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']);
$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;
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
// 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']);
}
$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'];
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;
}
]);
$a = get_app();
- $return_code = $a->get_curl_code();
+ $return_code = Network::getCurl()->getCode();
// check for success, e.g. 2xx
'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) {
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);
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;
}
$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;
$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 {
$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]);
$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);
}
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;
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
*
*
* @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);
*
* @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,
}
@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));
@curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
}
- $a->set_curl_code(0);
-
// don't let curl abort the entire application
// if it throws any errors.
$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']);
}
}
- $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;
@curl_close($ch);
- $a->save_timestamp($stamp1, 'network');
+ $a->saveTimestamp($stamp1, 'network');
return($ret);
}
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);
}
}
- $a->set_curl_code(0);
+ self::getCurl()->setCode(0);
// don't let curl abort the entire application
// if it throws any errors.
}
}
- $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);
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;
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;
$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);
// 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');
}
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');
// 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, ':'));
}
$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";
// 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,':'));
}
$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);
}
}
- $fromarr = imap_rfc822_parse_adrlist($fromdecoded, $a->get_hostname());
+ $fromarr = imap_rfc822_parse_adrlist($fromdecoded, $a->getHostName());
$frommail = $fromarr[0]->mailbox."@".$fromarr[0]->host;
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']];
{
parent::tearDown();
- $app = get_app();
- $app->argc = 1;
- $app->argv = ['home'];
+ $this->app->argc = 1;
+ $this->app->argv = ['home'];
}
/**
namespace Friendica\Test;
+use Friendica\App;
use Friendica\BaseObject;
use Friendica\Core\Config;
use Friendica\Database\DBA;
*/
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();
*/
protected $instance;
- function setUp()
+ protected function setUp()
{
parent::setUp();
if (!($this->instance instanceof IMemoryCacheDriver)) {
function duepuntozero_init(App $a) {
-$a->set_template_engine('smarty3');
+$a->setActiveTemplateEngine('smarty3');
$colorset = PConfig::get( local_user(), 'duepuntozero','colorset');
if (!$colorset)
<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
$a->theme_events_in_profile = false;
$a->videowidth = 622;
- $a->set_template_engine('smarty3');
+ $a->setActiveTemplateEngine('smarty3');
$baseurl = System::baseUrl();
// 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()));
use Friendica\Core\System;
function smoothly_init(App $a) {
- $a->set_template_engine('smarty3');
+ $a->setActiveTemplateEngine('smarty3');
$cssFile = null;
$ssl_state = null;
{
$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();
$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;
}