define ( 'FRIENDICA_CODENAME', 'Asparagus');
define ( 'FRIENDICA_VERSION', '3.5.1-dev' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
-define ( 'DB_UPDATE_VERSION', 1208 );
+define ( 'DB_UPDATE_VERSION', 1211 );
/**
* @brief Constant with a HTML line break.
public $videoheight = 350;
public $force_max_items = 0;
public $theme_thread_allow = true;
+ public $theme_richtext_editor = true;
public $theme_events_in_profile = true;
/**
$this->performance["markstart"] = microtime(true);
$this->callstack["database"] = array();
+ $this->callstack["database_write"] = array();
$this->callstack["network"] = array();
$this->callstack["file"] = array();
$this->callstack["rendering"] = array();
#set_include_path("include/$this->hostname" . PATH_SEPARATOR . get_include_path());
- if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,9) === "pagename=") {
+ if ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,9) === "pagename=") {
$this->query_string = substr($_SERVER['QUERY_STRING'],9);
// removing trailing / - maybe a nginx problem
if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1);
- } elseif((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
+ } elseif ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
$this->query_string = substr($_SERVER['QUERY_STRING'],2);
// removing trailing / - maybe a nginx problem
if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1);
}
- if (x($_GET,'pagename'))
+ if (x($_GET,'pagename')) {
$this->cmd = trim($_GET['pagename'],'/\\');
- elseif (x($_GET,'q'))
+ } elseif (x($_GET,'q')) {
$this->cmd = trim($_GET['q'],'/\\');
+ }
// fix query_string
// unix style "homedir"
- if(substr($this->cmd,0,1) === '~')
+ if (substr($this->cmd,0,1) === '~') {
$this->cmd = 'profile/' . substr($this->cmd,1);
+ }
// Diaspora style profile url
- if(substr($this->cmd,0,2) === 'u/')
+ if (substr($this->cmd,0,2) === 'u/') {
$this->cmd = 'profile/' . substr($this->cmd,2);
+ }
/*
}
- function get_basepath() {
+ public static function get_basepath() {
$basepath = get_config("system", "basepath");
function get_baseurl($ssl = false) {
// Is the function called statically?
- if (!is_object($this)) {
+ if (!(isset($this) && get_class($this) == __CLASS__)) {
return self::$a->get_baseurl($ssl);
}
} else {
$r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'",
$common_filename);
- if(! dbm::is_result($r)){
+ if (! dbm::is_result($r)) {
$this->cached_profile_image[$avatar_image] = $avatar_image;
} else {
$this->cached_profile_picdate[$common_filename] = "?rev=".urlencode($r[0]['picdate']);
/**
* @brief Removes the baseurl from an url. This avoids some mixed content problems.
*
- * @param string $url
+ * @param string $orig_url
*
* @return string The cleaned url
*/
- function remove_baseurl($url){
+ function remove_baseurl($orig_url){
// Is the function called statically?
- if (!is_object($this))
- return(self::$a->remove_baseurl($url));
+ if (!(isset($this) && get_class($this) == __CLASS__)) {
+ return(self::$a->remove_baseurl($orig_url));
+ }
- $url = normalise_link($url);
+ // Remove the hostname from the url if it is an internal link
+ $nurl = normalise_link($orig_url);
$base = normalise_link($this->get_baseurl());
- $url = str_replace($base."/", "", $url);
- return $url;
+ $url = str_replace($base."/", "", $nurl);
+
+ // if it is an external link return the orignal value
+ if ($url == normalise_link($orig_url)) {
+ return $orig_url;
+ } else {
+ return $url;
+ }
}
/**
q("START TRANSACTION");
$r = q("SELECT `pid` FROM `process` WHERE `pid` = %d", intval(getmypid()));
- if(!dbm::is_result($r)) {
+ if (!dbm::is_result($r)) {
q("INSERT INTO `process` (`pid`,`command`,`created`) VALUES (%d, '%s', '%s')",
intval(getmypid()),
dbesc($command),
q("START TRANSACTION");
$r = q("SELECT `pid` FROM `process`");
- if(dbm::is_result($r)) {
+ if (dbm::is_result($r)) {
foreach ($r AS $process) {
if (!posix_kill($process["pid"], 0)) {
q("DELETE FROM `process` WHERE `pid` = %d", intval($process["pid"]));
*/
function max_processes_reached() {
- // Is the function called statically?
- if (!is_object($this))
- return(self::$a->max_processes_reached());
-
if ($this->is_backend()) {
$process = "backend";
$max_processes = get_config('system', 'max_processes_backend');
*/
function maxload_reached() {
- // Is the function called statically?
- if (!is_object($this))
- return(self::$a->maxload_reached());
-
if ($this->is_backend()) {
$process = "backend";
$maxsysload = intval(get_config('system', 'maxloadavg'));
function proc_run($args) {
+ if (!function_exists("proc_open")) {
+ return;
+ }
+
// Add the php path if it is a php call
- if (count($args) && ($args[0] === 'php' OR is_int($args[0]))) {
+ if (count($args) && ($args[0] === 'php' OR !is_string($args[0]))) {
// If the last worker fork was less than 10 seconds before then don't fork another one.
// This should prevent the forking of masses of workers.
function clean_urls() {
- global $a;
+ $a = get_app();
// if($a->config['system']['clean_urls'])
return true;
// return false;
}
function z_path() {
- global $a;
- $base = $a->get_baseurl();
+ $base = App::get_baseurl();
+
if(! clean_urls())
$base .= '/?q=';
+
return $base;
}
* @see App::get_baseurl()
*
* @return string
+ * @TODO Maybe super-flous and deprecated? Seems to only wrap App::get_baseurl()
*/
function z_root() {
- global $a;
- return $a->get_baseurl();
+ return App::get_baseurl();
}
/**
// We will only change the url to an ip address if there is no existing setting
if(! x($url))
- $url = set_config('system','url',$a->get_baseurl());
- if((! link_compare($url,$a->get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
- $url = set_config('system','url',$a->get_baseurl());
+ $url = set_config('system','url',App::get_baseurl());
+ if((! link_compare($url,App::get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
+ $url = set_config('system','url',App::get_baseurl());
return;
}
function check_plugins(&$a) {
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
- if(dbm::is_result($r))
+ if (dbm::is_result($r))
$installed = $r;
else
$installed = array();
* @return int
*/
function get_max_import_size() {
- global $a;
+ $a = get_app();
return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
}
$r = q("select theme from user where uid = %d limit 1",
intval($a->profile_uid)
);
- if(dbm::is_result($r))
+ if (dbm::is_result($r))
$page_theme = $r[0]['theme'];
}
* @return string
*/
function current_theme_url() {
- global $a;
+ $a = get_app();
$t = current_theme();
intval($uid)
);
- if(dbm::is_result($p)) {
+ if (dbm::is_result($p)) {
$tmp_dob = substr($p[0]['dob'],5);
if(intval($tmp_dob)) {
$y = datetime_convert($tz,$tz,'now','Y');
return "";
}
+/**
+ * @brief Returns the path where spool files are stored
+ *
+ * @return string Spool path
+ */
+function get_spoolpath() {
+ $spoolpath = get_config('system','spoolpath');
+ if (($spoolpath != "") AND is_dir($spoolpath) AND is_writable($spoolpath)) {
+ return($spoolpath);
+ }
+
+ $temppath = get_temppath();
+
+ if ($temppath != "") {
+ $spoolpath = $temppath."/spool";
+
+ if (!is_dir($spoolpath)) {
+ mkdir($spoolpath);
+ } elseif (!is_writable($spoolpath)) {
+ $spoolpath = $temppath;
+ }
+
+ if (is_dir($spoolpath) AND is_writable($spoolpath)) {
+ set_config("system", "spoolpath", $spoolpath);
+ return($spoolpath);
+ }
+ }
+ return "";
+}
+
function get_temppath() {
$a = get_app();