X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=boot.php;h=1c7a1570526cfb88f5c4b19012d30ae31fed0f2b;hb=894dfde122639cbcb90e4a07143fbe2f1d5c124a;hp=12d392b44eb301a4850a1d420bb9f8875559cc1b;hpb=c052d688284fda76c612325b237d8352f2abb5d4;p=friendica.git diff --git a/boot.php b/boot.php index 12d392b44e..1c7a157052 100644 --- a/boot.php +++ b/boot.php @@ -4,9 +4,9 @@ set_time_limit(0); ini_set('pcre.backtrack_limit', 250000); -define ( 'FRIENDIKA_VERSION', '2.2.976' ); +define ( 'FRIENDIKA_VERSION', '2.2.1005' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); -define ( 'DB_UPDATE_VERSION', 1054 ); +define ( 'DB_UPDATE_VERSION', 1063 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); @@ -481,17 +481,26 @@ function check_config(&$a) { $stored = intval($build); $current = intval(DB_UPDATE_VERSION); if(($stored < $current) && file_exists('update.php')) { + // We're reporting a different version than what is currently installed. // Run any existing update scripts to bring the database up to current. require_once('update.php'); - for($x = $stored; $x < $current; $x ++) { - if(function_exists('update_' . $x)) { - $func = 'update_' . $x; - $func($a); + + // make sure that boot.php and update.php are the same release, we might be + // updating right this very second and the correct version of the update.php + // file may not be here yet. This can happen on a very busy site. + + if(DB_UPDATE_VERSION == UPDATE_VERSION) { + + for($x = $stored; $x < $current; $x ++) { + if(function_exists('update_' . $x)) { + $func = 'update_' . $x; + $func($a); + } } + set_config('system','build', DB_UPDATE_VERSION); } - set_config('system','build', DB_UPDATE_VERSION); } } @@ -682,7 +691,7 @@ function fetch_url($url,$binary = false, &$redirects = 0) { $s = substr($s,strlen($header)+4); $header = substr($s,0,strpos($s,"\r\n\r\n")); } - if($http_code == 301 || $http_code == 302 || $http_code == 303) { + if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) { $matches = array(); preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches); $url = trim(array_pop($matches)); @@ -828,7 +837,7 @@ function escape_tags($string) { if(! function_exists('login')) { function login($register = false) { $o = ""; - $register_tpl = (($register) ? file_get_contents("view/register-link.tpl") : ""); + $register_tpl = (($register) ? get_markup_template("register-link.tpl") : ""); $register_html = replace_macros($register_tpl,array( '$title' => t('Create a New Account'), @@ -852,10 +861,10 @@ function login($register = false) { $lostlink = t('Password Reset'); if(local_user()) { - $tpl = file_get_contents("view/logout.tpl"); + $tpl = get_markup_template("logout.tpl"); } else { - $tpl = file_get_contents("view/login.tpl"); + $tpl = get_markup_template("login.tpl"); } @@ -1007,6 +1016,13 @@ function notice($s) { if($a->interactive) $_SESSION['sysmsg'] .= $s; }} +if(! function_exists('info')) { +function info($s) { + $a = get_app(); + if($a->interactive) + $_SESSION['sysmsg_info'] .= $s; +}} + // wrapper around config to limit the text length of an incoming message @@ -1508,6 +1524,8 @@ function lrdd($uri) { logger('lrdd: host_meta: ' . $xml, LOGGER_DATA); $h = parse_xml_string($xml); + if(! $h) + return array(); $arr = convert_xml_element_to_array($h); @@ -1672,6 +1690,9 @@ function fetch_xrd_links($url) { logger('fetch_xrd_links: ' . $xml, LOGGER_DATA); $h = parse_xml_string($xml); + if(! $h) + return array(); + $arr = convert_xml_element_to_array($h); $links = array(); @@ -1864,6 +1885,8 @@ function allowed_email($email) { // wrapper to load a view template, checking for alternate // languages before falling back to the default +// obsolete, deprecated. + if(! function_exists('load_view_file')) { function load_view_file($s) { global $lang, $a; @@ -1882,6 +1905,37 @@ function load_view_file($s) { return file_get_contents($s); }} +if(! function_exists('get_intltext_template')) { +function get_intltext_template($s) { + global $lang; + + if(! isset($lang)) + $lang = 'en'; + + if(file_exists("view/$lang/$s")) + return file_get_contents("view/$lang/$s"); + elseif(file_exists("view/en/$s")) + return file_get_contents("view/en/$s"); + else + return file_get_contents("view/$s"); +}} + +if(! function_exists('get_markup_template')) { +function get_markup_template($s) { + + $theme = current_theme(); + + if(file_exists("view/theme/$theme/$s")) + return file_get_contents("view/theme/$theme/$s"); + else + return file_get_contents("view/$s"); + +}} + + + + + // for html,xml parsing - let's say you've got // an attribute foobar="class1 class2 class3" // and you want to find out if it contains 'class3'. @@ -1938,15 +1992,15 @@ function get_tags($s) { $s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s); if(preg_match_all('/([@#][^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) { - foreach($match[1] as $match) { - if(strstr($match,"]")) { + foreach($match[1] as $mtch) { + if(strstr($mtch,"]")) { // we might be inside a bbcode color tag - leave it alone continue; } - if(substr($match,-1,1) === '.') - $ret[] = substr($match,0,-1); + if(substr($mtch,-1,1) === '.') + $ret[] = substr($mtch,0,-1); else - $ret[] = $match; + $ret[] = $mtch; } } @@ -2023,7 +2077,7 @@ function contact_block() { }} if(! function_exists('micropro')) { -function micropro($contact, $redirect = false, $class = '') { +function micropro($contact, $redirect = false, $class = '', $textmode = false) { if($class) $class = ' ' . $class; @@ -2042,20 +2096,29 @@ function micropro($contact, $redirect = false, $class = '') { $click = ((x($contact,'click')) ? ' onclick="' . $contact['click'] . '" ' : ''); if($click) $url = ''; - return '
' . $contact['name'] 
-		. '
' . "\r\n"; + if($textmode) { + return '
'. $contact['name'] . '
' . "\r\n"; + } + else { + return '
' . $contact['name'] 
+			. '
' . "\r\n"; + } }} if(! function_exists('search')) { -function search($s) { +function search($s,$id='search-box',$url='/search') { $a = get_app(); - $o = ''; } - - return $o; - + return $o; }} @@ -2483,8 +2550,41 @@ function link_compare($a,$b) { if(! function_exists('prepare_body')) { -function prepare_body($item) { - return prepare_text($item['body']); +function prepare_body($item,$attach = false) { + + $s = prepare_text($item['body']); + if(! $attach) + return $s; + + $arr = explode(',',$item['attach']); + if(count($arr)) { + $s .= '
'; + foreach($arr as $r) { + $matches = false; + $icon = ''; + $cnt = preg_match('|\[attach\]href=\"(.*?)\" size=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches); + if($cnt) { + $icontype = strtolower(substr($matches[3],0,strpos($matches[3],'/'))); + switch($icontype) { + case 'video': + case 'audio': + case 'image': + case 'text': + $icon = '
'; + break; + default: + $icon = '
'; + break; + } + $title = ((strlen(trim($matches[4]))) ? escape_tags(trim($matches[4])) : escape_tags($matches[1])); + $title .= ' ' . $matches[2] . ' ' . t('bytes'); + + $s .= '' . $icon . ''; + } + } + $s .= '
'; + } + return $s; }} if(! function_exists('prepare_text')) { @@ -2661,15 +2761,19 @@ function unamp($s) { }} + + if(! function_exists('lang_selector')) { function lang_selector() { global $lang; + $o .= '
'; $o .= '