[ Index ] |
PHP Cross Reference of Textpattern 4.0.8 |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 $HeadURL: https://textpattern.googlecode.com/svn/releases/4.0.8/source/textpattern/lib/txplib_update.php $ 5 $LastChangedRevision: 2812 $ 6 */ 7 8 //------------------------------------------------------------- 9 function install_language_from_file($lang) 10 { 11 $lang_file = txpath.'/lang/'.$lang.'.txt'; 12 # first attempt with local file 13 if (is_file($lang_file) && is_readable($lang_file)) 14 { 15 $lang_file = txpath.'/lang/'.$lang.'.txt'; 16 if (!is_file($lang_file) || !is_readable($lang_file)) return; 17 $file = @fopen($lang_file, "r"); 18 if ($file) { 19 $lastmod = @filemtime($lang_file); 20 $lastmod = date('YmdHis',$lastmod); 21 $data = array(); 22 $event = ''; 23 24 while (!feof($file)) { 25 $line = fgets($file, 4096); 26 # any line starting with #, not followed by @ is a simple comment 27 if($line[0]=='#' && $line[1]!='@' && $line[1]!='#') continue; 28 # if available use the lastmod time from the file 29 if (strpos($line,'#@version') === 0) 30 { # Looks like: "#@version id;unixtimestamp" 31 @list($fversion,$ftime) = explode(';',trim(substr($line,strpos($line,' ',1)))); 32 $lastmod = date("YmdHis",min($ftime, time())); 33 } 34 # each language section should be prefixed by #@ 35 if($line[0]=='#' && $line[1]=='@') 36 { 37 if (!empty($data)){ 38 foreach ($data as $name => $value) 39 { 40 $value = addslashes($value); 41 $exists = mysql_query('SELECT name, lastmod FROM `'.PFX."txp_lang` WHERE `lang`='".$lang."' AND `name`='$name' AND `event`='$event'"); 42 if ($exists) $exists = mysql_fetch_row($exists); 43 if ($exists[1]) 44 { 45 mysql_query("UPDATE `".PFX."txp_lang` SET `lastmod`='$lastmod', `data`='$value' WHERE `lang`='".$lang."' AND `name`='$name' AND `event`='$event'"); 46 echo mysql_error(); 47 } else 48 mysql_query("INSERT DELAYED INTO `".PFX."txp_lang` SET `lang`='".$lang."', `name`='$name', `lastmod`='$lastmod', `event`='$event', `data`='$value'"); 49 echo mysql_error(); 50 } 51 } 52 # reset 53 $data = array(); 54 $event = substr($line,2, (strlen($line)-2)); 55 $event = rtrim($event); 56 continue; 57 } 58 59 @list($name,$val) = explode(' => ',trim($line)); 60 $data[$name] = $val; 61 } 62 # remember to add the last one 63 if (!empty($data)){ 64 foreach ($data as $name => $value) 65 { 66 mysql_query("INSERT DELAYED INTO `".PFX."txp_lang` SET `lang`='".$lang."', `name`='$name', `lastmod`='$lastmod', `event`='$event', `data`='$value'"); 67 } 68 } 69 mysql_query("DELETE FROM `".PFX."txp_lang` WHERE `lang`='".$lang."' AND `lastmod`>$lastmod"); 70 @fclose($filename); 71 #delete empty fields if any 72 mysql_query("DELETE FROM `".PFX."txp_lang` WHERE `data`=''"); 73 mysql_query("FLUSH TABLE `".PFX."txp_lang`"); 74 75 return true; 76 } 77 } 78 return false; 79 } 80 81 //------------------------------------------------------------- 82 # check for updates through xml-rpc 83 function checkUpdates() 84 { 85 require_once txpath.'/lib/IXRClass.php'; 86 $client = new IXR_Client('http://rpc.textpattern.com'); 87 $uid = safe_field('val','txp_prefs',"name='blog_uid'"); 88 if (!$client->query('tups.getTXPVersion',$uid)) 89 { 90 return gTxt('problem_connecting_rpc_server'); 91 }else{ 92 $msg = array(); 93 $response = $client->getResponse(); 94 if (is_array($response)) 95 { 96 ksort($response); 97 $version = safe_field('val','txp_prefs',"name='version'"); 98 $lversion = explode('.',$version); 99 100 $branch = substr($version,0,3); 101 foreach ($response as $key => $val) 102 { 103 $rversion = explode('.',$val); 104 105 if ($key == 'txp_current_version_'.$branch) 106 { 107 if (isset($lversion[2]) && isset($rversion[2]) && (intval($rversion[2])>intval($lversion[2]))) 108 { 109 $msg[]= gTxt('updated_branch_version_available'); 110 }else{ 111 $msg[]= gTxt('your_branch_is_updated'); 112 } 113 }else{ 114 if (intval($rversion[0])>intval($lversion[0]) || intval($rversion[1])>intval($lversion[1])) 115 { 116 $msg[]= gTxt('new_textpattern_version_available').': '.$val; 117 } 118 } 119 } 120 return $msg; 121 } 122 } 123 } 124 125 126 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu May 21 23:03:01 2009 | Cross-referenced by PHPXref 0.7 |