]> git.mxchange.org Git - friendica.git/blobdiff - boot.php
Merge branch 'master' of https://github.com/friendica/friendica into threaded_items
[friendica.git] / boot.php
index b9272c9a68dd19ca13e4cfc7fb543be4a8cec69a..170c9953b9d4098948b8e1e05197a6785211e738 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -8,11 +8,12 @@ require_once('include/datetime.php');
 require_once('include/pgettext.php');
 require_once('include/nav.php');
 require_once('include/cache.php');
+require_once('library/Mobile_Detect/Mobile_Detect.php');
 
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
-define ( 'FRIENDICA_VERSION',      '3.0.1390' );
+define ( 'FRIENDICA_VERSION',      '3.0.1423' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
-define ( 'DB_UPDATE_VERSION',      1151      );
+define ( 'DB_UPDATE_VERSION',      1155      );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
@@ -34,6 +35,24 @@ define ( 'JPEG_QUALITY',            100  );
  */
 define ( 'PNG_QUALITY',             8  );
 
+/**
+ *
+ * An alternate way of limiting picture upload sizes. Specify the maximum pixel
+ * length that pictures are allowed to be (for non-square pictures, it will apply
+ * to the longest side). Pictures longer than this length will be resized to be
+ * this length (on the longest side, the other side will be scaled appropriately).
+ * Modify this value using
+ *
+ *    $a->config['system']['max_image_length'] = n;
+ *
+ * in .htconfig.php
+ *
+ * If you don't want to set a maximum length, set to -1. The default value is
+ * defined by 'MAX_IMAGE_LENGTH' below.
+ *
+ */
+define ( 'MAX_IMAGE_LENGTH',        -1  );
+
 
 /**
  * Not yet used
@@ -173,15 +192,32 @@ define ( 'NOTIFY_SUGGEST',  0x0020 );
 define ( 'NOTIFY_PROFILE',  0x0040 );
 define ( 'NOTIFY_TAGSELF',  0x0080 );
 define ( 'NOTIFY_TAGSHARE', 0x0100 );
+define ( 'NOTIFY_POKE',     0x0200 );
 
 define ( 'NOTIFY_SYSTEM',   0x8000 );
 
 
+/**
+ * Tag/term types
+ */
+
+define ( 'TERM_UNKNOWN',   0 );
+define ( 'TERM_HASHTAG',   1 );
+define ( 'TERM_MENTION',   2 );   
+define ( 'TERM_CATEGORY',  3 );
+define ( 'TERM_PCATEGORY', 4 );
+define ( 'TERM_FILE',      5 );
+
+define ( 'TERM_OBJ_POST',  1 );
+define ( 'TERM_OBJ_PHOTO', 2 );
+
+
+
 /**
  * various namespaces we may need to parse
  */
 
-define ( 'NAMESPACE_ZOT',             'http://purl.org/macgirvin/zot' );
+define ( 'NAMESPACE_ZOT',             'http://purl.org/zot' );
 define ( 'NAMESPACE_DFRN' ,           'http://purl.org/macgirvin/dfrn/1.0' );
 define ( 'NAMESPACE_THREAD' ,         'http://purl.org/syndication/thread/1.0' );
 define ( 'NAMESPACE_TOMB' ,           'http://purl.org/atompub/tombstones/1.0' );
@@ -216,6 +252,8 @@ define ( 'ACTIVITY_UPDATE',      NAMESPACE_ACTIVITY_SCHEMA . 'update' );
 define ( 'ACTIVITY_TAG',         NAMESPACE_ACTIVITY_SCHEMA . 'tag' );
 define ( 'ACTIVITY_FAVORITE',    NAMESPACE_ACTIVITY_SCHEMA . 'favorite' );
 
+define ( 'ACTIVITY_POKE',        NAMESPACE_ZOT . '/activity/poke' );
+
 define ( 'ACTIVITY_OBJ_COMMENT', NAMESPACE_ACTIVITY_SCHEMA . 'comment' );
 define ( 'ACTIVITY_OBJ_NOTE',    NAMESPACE_ACTIVITY_SCHEMA . 'note' );
 define ( 'ACTIVITY_OBJ_PERSON',  NAMESPACE_ACTIVITY_SCHEMA . 'person' );
@@ -352,13 +390,15 @@ if(! class_exists('App')) {
 
                        if(x($_SERVER,'SERVER_NAME')) {
                                $this->hostname = $_SERVER['SERVER_NAME'];
-                               if(stristr($this->hostname,'xn--')) {
+
+                               // See bug 437 - this didn't work so disabling it
+                               //if(stristr($this->hostname,'xn--')) {
                                        // PHP or webserver may have converted idn to punycode, so
                                        // convert punycode back to utf-8
-                                       require_once('library/simplepie/idn/idna_convert.class.php');
-                                       $x = new idna_convert();
-                                       $this->hostname = $x->decode($s);
-                               }
+                               //      require_once('library/simplepie/idn/idna_convert.class.php');
+                               //      $x = new idna_convert();
+                               //      $this->hostname = $x->decode($_SERVER['SERVER_NAME']);
+                               //}
 
                                if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
                                        $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
@@ -377,6 +417,7 @@ if(! class_exists('App')) {
                                        . 'include' . PATH_SEPARATOR
                                        . 'library' . PATH_SEPARATOR
                                        . 'library/phpsec' . PATH_SEPARATOR
+                                       . 'library/langdet' . PATH_SEPARATOR
                                        . '.' );
 
                        if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
@@ -442,8 +483,8 @@ if(! class_exists('App')) {
                        $this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
                        $this->pager['itemspage'] = 50;
                        $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
-                       if($this->pager['start'] < 1)
-                               $this->pager['start'] = 1;
+                       if($this->pager['start'] < 0)
+                               $this->pager['start'] = 0;
                        $this->pager['total'] = 0;
                }
 
@@ -519,7 +560,7 @@ if(! class_exists('App')) {
                                $interval = 40000;
 
                        $this->page['title'] = $this->config['sitename'];
-                       $tpl = file_get_contents('view/head.tpl');
+                       $tpl = get_markup_template('head.tpl');
                        $this->page['htmlhead'] = replace_macros($tpl,array(
                                '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
                                '$local_user' => local_user(),
@@ -532,6 +573,13 @@ if(! class_exists('App')) {
                        ));
                }
 
+               function init_page_end() {
+                       $tpl = get_markup_template('end.tpl');
+                       $this->page['end'] = replace_macros($tpl,array(
+                               '$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
+                       ));
+               }
+
                function set_curl_code($code) {
                        $this->curl_code = $code;
                }
@@ -707,9 +755,10 @@ if(! function_exists('check_config')) {
                                                        // If the update fails or times-out completely you may need to
                                                        // delete the config entry to try again.
 
-                                                       if(get_config('database','update_' . $x))
+                                                       $t = get_config('database','update_' . $x);
+                                                       if($t !== false)
                                                                break;
-                                                       set_config('database','update_' . $x, '1');
+                                                       set_config('database','update_' . $x, time());
 
                                                        // call the specific update
 
@@ -732,13 +781,14 @@ if(! function_exists('check_config')) {
                                                                        . 'Content-transfer-encoding: 8bit' );
                                                                //try the logger
                                                                logger('CRITICAL: Update Failed: '. $x);
+                                                               break;
                                                        }
-                                                       else
+                                                       else {
                                                                set_config('database','update_' . $x, 'success');
-                                                               
+                                                               set_config('system','build', $x + 1);
+                                                       }                                                               
                                                }
                                        }
-                                       set_config('system','build', DB_UPDATE_VERSION);
                                }
                        }
                }
@@ -1201,6 +1251,12 @@ if(! function_exists('get_birthdays')) {
                if(! local_user())
                        return $o;
 
+               $mobile_detect = new Mobile_Detect();
+               $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
+
+               if($is_mobile)
+                       return $o;
+
                $bd_format = t('g A l F d') ; // 8 AM Friday January 18
                $bd_short = t('F d');
 
@@ -1280,6 +1336,13 @@ if(! function_exists('get_events')) {
                if(! local_user())
                        return $o;
 
+
+               $mobile_detect = new Mobile_Detect();
+               $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
+
+               if($is_mobile)
+                       return $o;
+
                $bd_format = t('g A l F d') ; // 8 AM Friday January 18
                $bd_short = t('F d');
 
@@ -1401,9 +1464,18 @@ if(! function_exists('current_theme')) {
        
                $a = get_app();
        
-               $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
-               $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
+               $mobile_detect = new Mobile_Detect();
+               $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
        
+               if($is_mobile) {
+                       $system_theme = ((isset($a->config['system']['mobile-theme'])) ? $a->config['system']['mobile-theme'] : '');
+                       $theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
+               }
+               if(!$is_mobile || ($system_theme === '' && $theme_name === '')) {
+                       $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
+                       $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
+               }
+
                if($theme_name &&
                                (file_exists('view/theme/' . $theme_name . '/style.css') ||
                                                file_exists('view/theme/' . $theme_name . '/style.php')))
@@ -1539,18 +1611,21 @@ if(! function_exists('profile_tabs')){
                                'url' => $url,
                                'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
                                'title' => t('Status Messages and Posts'),
+                               'id' => 'status-tab',
                        ),
                        array(
                                'label' => t('Profile'),
                                'url'   => $url.'/?tab=profile',
                                'sel'   => ((isset($tab) && $tab=='profile')?'active':''),
                                'title' => t('Profile Details'),
+                               'id' => 'profile-tab',
                        ),
                        array(
                                'label' => t('Photos'),
                                'url'   => $a->get_baseurl() . '/photos/' . $nickname,
                                'sel'   => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
                                'title' => t('Photo Albums'),
+                               'id' => 'photo-tab',
                        ),
                );
        
@@ -1560,12 +1635,14 @@ if(! function_exists('profile_tabs')){
                                'url'   => $a->get_baseurl() . '/events',
                                'sel'   =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
                                'title' => t('Events and Calendar'),
+                               'id' => 'events-tab',
                        );
                        $tabs[] = array(
                                'label' => t('Personal Notes'),
                                'url'   => $a->get_baseurl() . '/notes',
                                'sel'   =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
                                'title' => t('Only You Can See This'),
+                               'id' => 'notes-tab',
                        );
                }