Example #1
0
 /**
  * 生成语言包js
  *
  * @author          mrmsl <*****@*****.**>
  * @date            2012-07-04 08:35:38
  * @lastmodify      2013-01-27 14:14:23 by mrmsl
  *
  * @return void 无返回值
  */
 public function createAction()
 {
     require CORE_PATH . 'functions/dir.php';
     create_dir(WEB_JS_LANG_PATH);
     $loop_arr = array('admin' => LANG_PATH, str_replace('modules/admin/', 'modules/' . FRONT_MODULE_NAME . '/', LANG_PATH));
     foreach ($loop_arr as $key => $item) {
         $lang_arr = scand_dir($item);
         //语言包
         foreach ($lang_arr as $k => $v) {
             $lang = is_file($filename = SYS_LANG_PATH . $k . '.php') ? include $filename : array();
             foreach ($v as $file) {
                 $lang = array_merge($lang, array_change_key_case(include $file, CASE_UPPER));
             }
             array2js($lang, 'L', WEB_JS_LANG_PATH . (is_string($key) ? $key . '.' : '') . $k . '.js');
         }
     }
 }
Example #2
0
/**
 * 遍历目录及其子目录
 *
 * @param string $path    路径
 * @param bool   $recursive true递归。默认true
 * @param string $pattern 匹配模式。默认*
 *
 * @return array 文件列表
 */
function scand_dir($path, $recursive = true, $pattern = '*')
{
    if (!is_dir($path)) {
        return false;
    }
    $path = dir_path($path);
    $list = array();
    $files = glob($path . $pattern);
    foreach ($files as $v) {
        if (is_dir($v) && $recursive) {
            $v = dir_path($v);
            $k = basename($v);
            $list[$k] = scand_dir($v, $recursive, $pattern);
        } else {
            $list[] = $v;
        }
    }
    return $list;
}
 /**
  * 本地环境,将之前的语言文件语言项入库
  *
  * @author          mrmsl <*****@*****.**>
  * @data            2013-06-24 08:53:24
  *
  * @return void 无返回值
  */
 public function localInsertItemsAction()
 {
     if (!is_dir($dir = YAB_APP_PATH . 'language_backup/') || !IS_LOCAL) {
         return;
     }
     require CORE_PATH . 'functions/dir.php';
     $file_arr = scand_dir($dir);
     $module_arr = array('front' => array('blog' => 24, 'comments' => 25, 'common' => 5), 'admin' => array('admin' => 7, 'adminloginhistory' => 8, 'area' => 9, 'blog' => 10, 'category' => 11, 'comments' => 12, 'js' => 6, 'common' => 6, 'field' => 13, 'html' => 14, 'languageitems' => 15, 'languagemodules' => 16, 'log' => 17, 'login' => 18, 'mail' => 19, 'mailhistory' => 20, 'menu' => 21, 'miniblog' => 22, 'role' => 23));
     $values = '';
     foreach ($module_arr as $k => $v) {
         foreach ($file_arr[$k]['zh_cn'] as $item) {
             $basename = basename($item, '.php');
             if ('guestbook' == $basename) {
                 continue;
             }
             foreach (include $item as $key => $lang) {
                 $values .= ",({$v[$basename]},'{$key}','" . addslashes($lang) . "','')";
             }
         }
     }
     foreach (include array_pop($file_arr) as $key => $lang) {
         $values .= ",(1,'{$key}','" . addslashes($lang) . "','')";
     }
     if ($values) {
         $this->_model->startTrans();
         $db = $this->_model->getDb();
         $result1 = $db->execute('DELETE FROM ' . TB_LANGUAGE_ITEMS);
         $result2 = $db->execute('INSERT INTO ' . TB_LANGUAGE_ITEMS . '(module_id,var_name,var_value_zh_cn,var_value_en) VALUES' . substr($values, 1) . ' ON DUPLICATE KEY UPDATE module_id=module_id');
         if ($result1 && $result2 && $db->execute('UPDATE ' . TB_LANGUAGE_ITEMS . ' SET sort_order=item_id,to_js=1')) {
             $this->_model->commit();
         }
     }
 }