X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=boot.php;h=170c9953b9d4098948b8e1e05197a6785211e738;hb=8742beb772c82123d3abab605d918ab361642e66;hp=be47184aa254e541c5c52c104f88a162b622c814;hpb=6e4760dd9c512147309b5e4a98d25216610f81da;p=friendica.git diff --git a/boot.php b/boot.php index be47184aa2..170c9953b9 100644 --- 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.1382' ); +define ( 'FRIENDICA_VERSION', '3.0.1423' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1149 ); +define ( 'DB_UPDATE_VERSION', 1155 ); define ( 'EOL', "
\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,6 +390,16 @@ if(! class_exists('App')) { if(x($_SERVER,'SERVER_NAME')) { $this->hostname = $_SERVER['SERVER_NAME']; + + // 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($_SERVER['SERVER_NAME']); + //} + if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) $this->hostname .= ':' . $_SERVER['SERVER_PORT']; /** @@ -369,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=") { @@ -434,6 +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'] < 0) + $this->pager['start'] = 0; $this->pager['total'] = 0; } @@ -509,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(), @@ -522,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; } @@ -697,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 @@ -722,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); } } } @@ -1191,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'); @@ -1252,6 +1318,9 @@ if(! function_exists('get_birthdays')) { '$event_reminders' => t('Birthday Reminders'), '$event_title' => t('Birthdays this week:'), '$events' => $r, + '$lbr' => '{', // raw brackets mess up if/endif macro processing + '$rbr' => '}' + )); } } @@ -1267,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'); @@ -1374,9 +1450,9 @@ if(! function_exists('proc_run')) { if(count($args) && $args[0] === 'php') $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); - foreach ($args as $arg){ - $arg = escapeshellarg($arg); - } + for($x = 0; $x < count($args); $x ++) + $args[$x] = escapeshellarg($args[$x]); + $cmdline = implode($args," "); proc_close(proc_open($cmdline." &",array(),$foo)); } @@ -1388,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'))) @@ -1526,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', ), ); @@ -1547,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', ); }