Вход Регистрация
Файл: oc-includes/osclass/locales.php
Строк: 113
<?php
/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

function osc_listLocales() {
    
$languages = array();

    
$codes osc_listLanguageCodes();
    foreach(
$codes as $code) {
        
$path sprintf('%s%s/index.php'osc_translations_path(), $code);
        
$fxName sprintf('locale_%s_info'$code);
        if(
file_exists($path)) {
            require_once 
$path;
            if(
function_exists($fxName)) {
                
$languages[$code] = call_user_func($fxName);
                
$languages[$code]['code'] = $code;
            }
        }
    }

    return 
$languages;
}

function 
osc_checkLocales() {
    
$locales osc_listLocales();

    foreach(
$locales as $locale) {
        
$data OSCLocale::newInstance()->findByPrimaryKey($locale['code']);
        if( !
is_array($data) ) {
            
$values = array(
                
'pk_c_code'         => $locale['code'],
                
's_name'            => $locale['name'],
                
's_short_name'      => $locale['short_name'],
                
's_description'     => $locale['description'],
                
's_version'         => $locale['version'],
                
's_author_name'     => $locale['author_name'],
                
's_author_url'      => $locale['author_url'],
                
's_currency_format' => $locale['currency_format'],
                
's_date_format'     => $locale['date_format'],
                
's_stop_words'      => $locale['stop_words'],
                
'b_enabled'         => 0,
                
'b_enabled_bo'      => 1
            
);
            
$result OSCLocale::newInstance()->insert($values);

            if( !
$result ) {
                return 
false;
            }

            
// if it's a demo, we don't import any sql
            
if( defined('DEMO') ) {
                return 
true;
            }

            
// inserting e-mail translations
            
$path sprintf'%s%s/mail.sql'osc_translations_path(), $locale['code'] );
            if( 
file_exists($path) ) {
                
$sql  file_get_contents($path);
                
$conn DBConnectionClass::newInstance();
                
$c_db $conn->getOsclassDb();
                
$comm = new DBCommandClass$c_db );
                
$result $comm->importSQL$sql );
                if( !
$result ) {
                    return 
false;
                }
            }
        } else {
            
// update language version
            
OSCLocale::newInstance()->update(
                    array(
's_version' => $locale['version']),
                    array(
'pk_c_code' => $locale['code'])
                    );
        }
    }

    return 
true;
}

function 
osc_listLanguageCodes() {
    
$codes = array();

    
$dir opendir(osc_translations_path());
    while(
$file readdir($dir)) {
        if(
preg_match('/^[a-z_]+$/i'$file)) {
                    
$codes[] = $file;
        }
    }
    
closedir($dir);

    return 
$codes;
}

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