aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xboot.php402
1 files changed, 202 insertions, 200 deletions
diff --git a/boot.php b/boot.php
index 9b127aa8f..bf30031bc 100755
--- a/boot.php
+++ b/boot.php
@@ -653,61 +653,63 @@ class ZotlabsAutoloader {
*/
class App {
- public $install = false; // true if we are installing the software
-
- public $account = null; // account record of the logged-in account
- public $channel = null; // channel record of the current channel of the logged-in account
- public $observer = null; // xchan record of the page observer
- public $profile_uid = 0; // If applicable, the channel_id of the "page owner"
- public $poi = null; // "person of interest", generally a referenced connection
- private $oauth_key = null; // consumer_id of oauth request, if used
- public $layout = array(); // Comanche parsed template
- public $pdl = null; // Comanche page description
- private $perms = null; // observer permissions
- private $widgets = array(); // widgets for this page
-
- public $groups;
- public $language;
- public $module_loaded = false;
- public $query_string;
- public $config; // config cache
- public $page;
- public $profile;
- public $user;
- public $cid;
- public $contact;
- public $contacts;
- public $content;
- public $data = array();
- public $error = false;
- public $cmd;
- public $argv;
- public $argc;
- public $module;
- public $pager;
- public $strings;
- public $hooks;
- public $timezone;
- public $interactive = true;
- public $plugins;
- private $apps = array();
- public $identities;
- public $css_sources = array();
- public $js_sources = array();
- public $theme_info = array();
- public $is_sys = false;
- public $nav_sel;
-
- public $category;
+ public static $install = false; // true if we are installing the software
+
+ public static $account = null; // account record of the logged-in account
+ public static $channel = null; // channel record of the current channel of the logged-in account
+ public static $observer = null; // xchan record of the page observer
+ public static $profile_uid = 0; // If applicable, the channel_id of the "page owner"
+ public static $poi = null; // "person of interest", generally a referenced connection
+ private static $oauth_key = null; // consumer_id of oauth request, if used
+ public static $layout = array(); // Comanche parsed template
+ public static $pdl = null; // Comanche page description
+ private static $perms = null; // observer permissions
+ private static $widgets = array(); // widgets for this page
+
+ public static $groups;
+ public static $language;
+ public static $module_loaded = false;
+ public static $query_string;
+ public static $config; // config cache
+ public static $page;
+ public static $profile;
+ public static $user;
+ public static $cid;
+ public static $contact;
+ public static $contacts;
+ public static $content;
+ public static $data = array();
+ public static $error = false;
+ public static $cmd;
+ public static $argv;
+ public static $argc;
+ public static $module;
+ public static $pager;
+ public static $strings;
+ public static $hooks;
+ public static $timezone;
+ public static $interactive = true;
+ public static $plugins;
+ private static $apps = array();
+ public static $identities;
+ public static $css_sources = array();
+ public static $js_sources = array();
+ public static $theme_info = array();
+ public static $is_sys = false;
+ public static $nav_sel;
+ public static $is_mobile = false;
+ public static $is_tablet = false;
+
+ public static $category;
// Allow themes to control internal parameters
// by changing App values in theme.php
- public $sourcename = '';
- public $videowidth = 425;
- public $videoheight = 350;
- public $force_max_items = 0;
- public $theme_thread_allow = true;
+ public static $sourcename = '';
+ public static $videowidth = 425;
+ public static $videoheight = 350;
+ public static $force_max_items = 0;
+ public static $theme_thread_allow = true;
/**
* @brief An array for all theme-controllable parameters
@@ -715,7 +717,7 @@ class App {
* Mostly unimplemented yet. Only options 'template_engine' and
* beyond are used.
*/
- private $theme = array(
+ private static $theme = array(
'sourcename' => '',
'videowidth' => 425,
'videoheight' => 350,
@@ -728,33 +730,33 @@ class App {
/**
* @brief An array of registered template engines ('name'=>'class name')
*/
- public $template_engines = array();
+ public static $template_engines = array();
/**
* @brief An array of instanced template engines ('name'=>'instance')
*/
- public $template_engine_instance = array();
+ public static $template_engine_instance = array();
- private $ldelim = array(
+ private static $ldelim = array(
'internal' => '',
'smarty3' => '{{'
);
- private $rdelim = array(
+ private static $rdelim = array(
'internal' => '',
'smarty3' => '}}'
);
// These represent the URL which was used to access the page
- private $scheme;
- private $hostname;
- private $path;
+ private static $scheme;
+ private static $hostname;
+ private static $path;
// This is our standardised URL - regardless of what was used
// to access the page
- private $baseurl;
+ private static $baseurl;
- private $meta;
+ private static $meta;
/**
* App constructor.
@@ -763,11 +765,11 @@ class App {
// we'll reset this after we read our config file
date_default_timezone_set('UTC');
- $this->config = array('system'=>array());
- $this->page = array();
- $this->pager= array();
+ self::$config = array('system'=>array());
+ self::$page = array();
+ self::$pager= array();
- $this->query_string = '';
+ self::$query_string = '';
startup();
@@ -778,64 +780,64 @@ class App {
. 'library/langdet' . PATH_SEPARATOR
. '.' );
- $this->scheme = 'http';
+ self::$scheme = 'http';
if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
- $this->scheme = 'https';
+ self::$scheme = 'https';
elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
- $this->scheme = 'https';
+ self::$scheme = 'https';
if(x($_SERVER,'SERVER_NAME')) {
- $this->hostname = $_SERVER['SERVER_NAME'];
+ self::$hostname = $_SERVER['SERVER_NAME'];
if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
- $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
+ self::$hostname .= ':' . $_SERVER['SERVER_PORT'];
/**
* Figure out if we are running at the top of a domain
* or in a sub-directory and adjust accordingly
*/
$path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
- if(isset($path) && strlen($path) && ($path != $this->path))
- $this->path = $path;
+ if(isset($path) && strlen($path) && ($path != self::$path))
+ self::$path = $path;
}
- set_include_path("include/$this->hostname" . PATH_SEPARATOR . get_include_path());
+ set_include_path("include/self::$hostname" . PATH_SEPARATOR . get_include_path());
if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'], 0, 2) === "q=") {
- $this->query_string = substr($_SERVER['QUERY_STRING'], 2);
+ self::$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 (substr(self::$query_string, 0, 1) == "/")
+ self::$query_string = substr(self::$query_string, 1);
}
if(x($_GET,'q'))
- $this->cmd = trim($_GET['q'],'/\\');
+ self::$cmd = trim($_GET['q'],'/\\');
// unix style "homedir"
- if(substr($this->cmd, 0, 1) === '~')
- $this->cmd = 'channel/' . substr($this->cmd, 1);
+ if(substr(self::$cmd, 0, 1) === '~')
+ self::$cmd = 'channel/' . substr(self::$cmd, 1);
/*
* Break the URL path into C style argc/argv style arguments for our
- * modules. Given "http://example.com/module/arg1/arg2", $this->argc
- * will be 3 (integer) and $this->argv will contain:
+ * modules. Given "http://example.com/module/arg1/arg2", self::$argc
+ * will be 3 (integer) and self::$argv will contain:
* [0] => 'module'
* [1] => 'arg1'
* [2] => 'arg2'
*
* There will always be one argument. If provided a naked domain
- * URL, $this->argv[0] is set to "home".
+ * URL, self::$argv[0] is set to "home".
*/
- $this->argv = explode('/', $this->cmd);
- $this->argc = count($this->argv);
- if ((array_key_exists('0', $this->argv)) && strlen($this->argv[0])) {
- $this->module = str_replace(".", "_", $this->argv[0]);
- $this->module = str_replace("-", "_", $this->module);
+ self::$argv = explode('/', self::$cmd);
+ self::$argc = count(self::$argv);
+ if ((array_key_exists('0', self::$argv)) && strlen(self::$argv[0])) {
+ self::$module = str_replace(".", "_", self::$argv[0]);
+ self::$module = str_replace("-", "_", self::$module);
} else {
- $this->argc = 1;
- $this->argv = array('home');
- $this->module = 'home';
+ self::$argc = 1;
+ self::$argv = array('home');
+ self::$module = 'home';
}
/*
@@ -843,22 +845,22 @@ class App {
* pagination
*/
- $this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
- $this->pager['itemspage'] = 60;
- $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
- if($this->pager['start'] < 0)
- $this->pager['start'] = 0;
- $this->pager['total'] = 0;
+ self::$pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
+ self::$pager['itemspage'] = 60;
+ self::$pager['start'] = (self::$pager['page'] * self::$pager['itemspage']) - self::$pager['itemspage'];
+ if(self::$pager['start'] < 0)
+ self::$pager['start'] = 0;
+ self::$pager['total'] = 0;
/*
* Detect mobile devices
*/
$mobile_detect = new Mobile_Detect();
- $this->is_mobile = $mobile_detect->isMobile();
- $this->is_tablet = $mobile_detect->isTablet();
+ self::$is_mobile = $mobile_detect->isMobile();
+ self::$is_tablet = $mobile_detect->isTablet();
- $this->head_set_icon('/images/hz-32.png');
+ self::head_set_icon('/images/hz-32.png');
BaseObject::set_app($this);
@@ -868,146 +870,146 @@ class App {
$dc = get_declared_classes();
foreach ($dc as $k) {
if (in_array("ITemplateEngine", class_implements($k))){
- $this->register_template_engine($k);
+ self::register_template_engine($k);
}
}
spl_autoload_register('ZotlabsAutoloader::loader');
- $this->meta= new Zotlabs\Web\HttpMeta();
+ self::$meta= new Zotlabs\Web\HttpMeta();
}
- function get_baseurl($ssl = false) {
- if(is_array($this->config)
- && array_key_exists('system',$this->config)
- && is_array($this->config['system'])
- && array_key_exists('baseurl',$this->config['system'])
- && strlen($this->config['system']['baseurl'])) {
- $url = $this->config['system']['baseurl'];
+ public static function get_baseurl($ssl = false) {
+ if(is_array(self::$config)
+ && array_key_exists('system',self::$config)
+ && is_array(self::$config['system'])
+ && array_key_exists('baseurl',self::$config['system'])
+ && strlen(self::$config['system']['baseurl'])) {
+ $url = self::$config['system']['baseurl'];
$url = trim($url,'\\/');
return $url;
}
- $scheme = $this->scheme;
+ $scheme = self::$scheme;
- $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
+ self::$baseurl = $scheme . "://" . self::$hostname . ((isset(self::$path) && strlen(self::$path)) ? '/' . self::$path : '' );
- return $this->baseurl;
+ return self::$baseurl;
}
- function set_baseurl($url) {
- if(is_array($this->config)
- && array_key_exists('system',$this->config)
- && is_array($this->config['system'])
- && array_key_exists('baseurl',$this->config['system'])
- && strlen($this->config['system']['baseurl'])) {
- $url = $this->config['system']['baseurl'];
+ public static function set_baseurl($url) {
+ if(is_array(self::$config)
+ && array_key_exists('system',self::$config)
+ && is_array(self::$config['system'])
+ && array_key_exists('baseurl',self::$config['system'])
+ && strlen(self::$config['system']['baseurl'])) {
+ $url = self::$config['system']['baseurl'];
$url = trim($url,'\\/');
}
$parsed = @parse_url($url);
- $this->baseurl = $url;
+ self::$baseurl = $url;
if($parsed) {
- $this->scheme = $parsed['scheme'];
+ self::$scheme = $parsed['scheme'];
- $this->hostname = $parsed['host'];
+ self::$hostname = $parsed['host'];
if(x($parsed,'port'))
- $this->hostname .= ':' . $parsed['port'];
+ self::$hostname .= ':' . $parsed['port'];
if(x($parsed,'path'))
- $this->path = trim($parsed['path'],'\\/');
+ self::$path = trim($parsed['path'],'\\/');
}
}
- function get_scheme() {
- return $this->scheme;
+ public static function get_scheme() {
+ return self::$scheme;
}
- function get_hostname() {
- return $this->hostname;
+ public static function get_hostname() {
+ return self::$hostname;
}
- function set_hostname($h) {
- $this->hostname = $h;
+ public static function set_hostname($h) {
+ self::$hostname = $h;
}
- function set_path($p) {
- $this->path = trim(trim($p), '/');
+ public static function set_path($p) {
+ self::$path = trim(trim($p), '/');
}
- function get_path() {
- return $this->path;
+ public static function get_path() {
+ return self::$path;
}
- function set_account($acct) {
- $this->account = $acct;
+ public static function set_account($acct) {
+ self::$account = $acct;
}
- function get_account() {
- return $this->account;
+ public static function get_account() {
+ return self::$account;
}
- function set_channel($channel) {
- $this->channel = $channel;
+ public static function set_channel($channel) {
+ self::$channel = $channel;
}
- function get_channel() {
- return $this->channel;
+ public static function get_channel() {
+ return self::$channel;
}
- function set_observer($xchan) {
- $this->observer = $xchan;
+ public static function set_observer($xchan) {
+ self::$observer = $xchan;
}
- function get_observer() {
- return $this->observer;
+ public static function get_observer() {
+ return self::$observer;
}
- function set_perms($perms) {
- $this->perms = $perms;
+ public static function set_perms($perms) {
+ self::$perms = $perms;
}
- function get_perms() {
- return $this->perms;
+ public static function get_perms() {
+ return self::$perms;
}
- function set_oauth_key($consumer_id) {
- $this->oauth_key = $consumer_id;
+ public static function set_oauth_key($consumer_id) {
+ self::$oauth_key = $consumer_id;
}
- function get_oauth_key() {
- return $this->oauth_key;
+ public static function get_oauth_key() {
+ return self::$oauth_key;
}
- function get_apps() {
- return $this->apps;
+ public static function get_apps() {
+ return self::$apps;
}
- function set_apps($arr) {
- $this->apps = $arr;
+ public static function set_apps($arr) {
+ self::$apps = $arr;
}
- function set_groups($g) {
- $this->groups = $g;
+ public static function set_groups($g) {
+ self::$groups = $g;
}
- function get_groups() {
- return $this->groups;
+ public static function get_groups() {
+ return self::$groups;
}
- function set_pager_total($n) {
- $this->pager['total'] = intval($n);
+ public static function set_pager_total($n) {
+ self::$pager['total'] = intval($n);
}
- function set_pager_itemspage($n) {
- $this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
- $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+ public static function set_pager_itemspage($n) {
+ self::$pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
+ self::$pager['start'] = (self::$pager['page'] * self::$pager['itemspage']) - self::$pager['itemspage'];
}
- function build_pagehead() {
+ public static function build_pagehead() {
$user_scalable = ((local_channel()) ? get_pconfig(local_channel(),'system','user_scalable') : 1);
if ($user_scalable === false)
@@ -1021,36 +1023,36 @@ class App {
if($interval < 10000)
$interval = 80000;
- if(! x($this->page,'title'))
- $this->page['title'] = $this->config['system']['sitename'];
+ if(! x(self::$page,'title'))
+ self::$page['title'] = self::$config['system']['sitename'];
- if(! $this->meta->get_field('og:title'))
- $this->meta->set('og:title',$this->page['title']);
+ if(! self::$meta->get_field('og:title'))
+ self::$meta->set('og:title',self::$page['title']);
- $this->meta->set('generator', Zotlabs\Project\System::get_platform_name());
+ self::$meta->set('generator', Zotlabs\Project\System::get_platform_name());
/* put the head template at the beginning of page['htmlhead']
* since the code added by the modules frequently depends on it
* being first
*/
$tpl = get_markup_template('head.tpl');
- $this->page['htmlhead'] = replace_macros($tpl, array(
+ self::$page['htmlhead'] = replace_macros($tpl, array(
'$preload_images' => $preload_images,
'$user_scalable' => $user_scalable,
- '$baseurl' => $this->get_baseurl(),
+ '$baseurl' => self::get_baseurl(),
'$local_channel' => local_channel(),
- '$metas' => $this->meta->get(),
+ '$metas' => self::$meta->get(),
'$update_interval' => $interval,
'$icon' => head_get_icon(),
'$head_css' => head_get_css(),
'$head_js' => head_get_js(),
'$js_strings' => js_strings(),
'$zid' => get_my_address(),
- '$channel_id' => $this->profile['uid'],
- )) . $this->page['htmlhead'];
+ '$channel_id' => self::$profile['uid'],
+ )) . self::$page['htmlhead'];
// always put main.js at the end
- $this->page['htmlhead'] .= head_get_main_js();
+ self::$page['htmlhead'] .= head_get_main_js();
}
/**
@@ -1059,7 +1061,7 @@ class App {
* @param string $class
* @param string $name
*/
- function register_template_engine($class, $name = '') {
+ public static function register_template_engine($class, $name = '') {
if ($name === ""){
$v = get_class_vars( $class );
if(x($v, "name")) $name = $v['name'];
@@ -1068,7 +1070,7 @@ class App {
echo "template engine <tt>$class</tt> cannot be registered without a name.\n";
killme();
}
- $this->template_engines[$name] = $class;
+ self::$template_engines[$name] = $class;
}
/**
@@ -1079,23 +1081,23 @@ class App {
*
* @return object Template Engine instance
*/
- function template_engine($name = ''){
+ public static function template_engine($name = ''){
if ($name !== "") {
$template_engine = $name;
} else {
$template_engine = 'smarty3';
- if (x($this->theme, 'template_engine')) {
- $template_engine = $this->theme['template_engine'];
+ if (x(self::$theme, 'template_engine')) {
+ $template_engine = self::$theme['template_engine'];
}
}
- if (isset($this->template_engines[$template_engine])){
- if(isset($this->template_engine_instance[$template_engine])){
- return $this->template_engine_instance[$template_engine];
+ if (isset(self::$template_engines[$template_engine])){
+ if(isset(self::$template_engine_instance[$template_engine])){
+ return self::$template_engine_instance[$template_engine];
} else {
- $class = $this->template_engines[$template_engine];
+ $class = self::$template_engines[$template_engine];
$obj = new $class;
- $this->template_engine_instance[$template_engine] = $obj;
+ self::$template_engine_instance[$template_engine] = $obj;
return $obj;
}
}
@@ -1108,28 +1110,28 @@ class App {
*
* @return string
*/
- function get_template_engine() {
- return $this->theme['template_engine'];
+ public static function get_template_engine() {
+ return self::$theme['template_engine'];
}
- function set_template_engine($engine = 'smarty3') {
- $this->theme['template_engine'] = $engine;
+ public static function set_template_engine($engine = 'smarty3') {
+ self::$theme['template_engine'] = $engine;
}
- function get_template_ldelim($engine = 'smarty3') {
- return $this->ldelim[$engine];
+ public static function get_template_ldelim($engine = 'smarty3') {
+ return self::$ldelim[$engine];
}
- function get_template_rdelim($engine = 'smarty3') {
- return $this->rdelim[$engine];
+ public static function get_template_rdelim($engine = 'smarty3') {
+ return self::$rdelim[$engine];
}
- function head_set_icon($icon) {
- $this->data['pageicon'] = $icon;
+ public static function head_set_icon($icon) {
+ self::$data['pageicon'] = $icon;
}
- function head_get_icon() {
- $icon = $this->data['pageicon'];
+ public static function head_get_icon() {
+ $icon = self::$data['pageicon'];
if(! strpos($icon,'://'))
$icon = z_root() . $icon;
return $icon;