Вход Регистрация
Файл: textpattern-4.5.7/textpattern/lib/txplib_update.php
Строк: 122
<?php

/*
$HeadURL: https://textpattern.googlecode.com/svn/releases/4.5.7/source/textpattern/lib/txplib_update.php $
$LastChangedRevision: 4020 $
*/

//-------------------------------------------------------------
function install_language_from_file($lang)
{
    
$lang_file txpath.'/lang/'.$lang.'.txt';

    if (
is_file($lang_file) && is_readable($lang_file))
    {
        
$lang_file txpath.'/lang/'.$lang.'.txt';
        if (!
is_file($lang_file) || !is_readable($lang_file)) return;
        
$file = @fopen($lang_file"r");
        if (
$file) {
            
$lastmod = @filemtime($lang_file);
            
$lastmod date('YmdHis',$lastmod);
            
$data $core_events = array();
            
$event '';

            while (!
feof($file)) {
                
$line fgets($file4096);
                
# ignore empty lines and simple comments (any line starting with #, not followed by @)
                
if(trim($line) === '' || ($line[0] == '#' && $line[1] != '@' && $line[1] != '#')) continue;
                
# if available use the lastmod time from the file
                
if (strpos($line,'#@version') === 0)
                {    
# Looks like: "#@version id;unixtimestamp"
                    
@list($fversion,$ftime) = explode(';',trim(substr($line,strpos($line,' ',1))));
                    
$lastmod date("YmdHis",min($ftimetime()));
                }
                
# each language section should be prefixed by #@
                
if($line[0] == '#' && $line[1] == '@')
                {
                    if (!empty(
$data))
                    {
                        foreach (
$data as $name => $value)
                        {
                            
$value addslashes($value);
                            
$exists mysql_query('SELECT name, lastmod FROM `'.PFX."txp_lang` WHERE `lang`='".$lang."' AND `name`='$name' AND `event`='$event'");
                            if (
$exists$exists mysql_fetch_row($exists);
                            if (
$exists[1])
                            {
                                
mysql_query("UPDATE `".PFX."txp_lang` SET `lastmod`='$lastmod', `data`='$value' WHERE `lang`='".$lang."' AND `name`='$name' AND `event`='$event'");
                                echo 
mysql_error();
                            } else
                                
mysql_query("INSERT DELAYED INTO `".PFX."txp_lang`  SET    `lang`='".$lang."', `name`='$name', `lastmod`='$lastmod', `event`='$event', `data`='$value'");
                                echo 
mysql_error();
                        }
                    }
                    
# reset
                    
$data = array();
                    
$event substr($line,2, (strlen($line)-2));
                    
$event rtrim($event);
                    if (
strpos($event'version') === false) {
                        
$core_events[] = $event;
                    }
                    continue;
                }

                
# Guard against setup strings being loaded.
                # TODO: Setup strings will be removed from the .txt files at some point; this check can then be removed
                
if ($event !== 'setup')
                {
                    @list(
$name,$val) = explode(' => ',trim($line));
                    
$data[$name] = $val;
                }
            }
            
# remember to add the last one
            
if (!empty($data))
            {
                foreach (
$data as $name => $value)
                {
                     
mysql_query("INSERT DELAYED INTO `".PFX."txp_lang`  SET `lang`='".$lang."', `name`='$name', `lastmod`='$lastmod', `event`='$event', `data`='$value'");
                }
            }
            
mysql_query("DELETE FROM `".PFX."txp_lang`  WHERE `lang`='".$lang."' AND `event` IN ('".join("','"array_unique($core_events))."') AND `lastmod`>$lastmod");
            @
fclose($filename);
            
#delete empty fields if any
            
mysql_query("DELETE FROM `".PFX."txp_lang` WHERE `data`=''");
            
mysql_query("FLUSH TABLE `".PFX."txp_lang`");

            return 
true;
        }
    }
    return 
false;
}

?>
Онлайн: 0
Реклама