예제 #1
0
파일: lang.php 프로젝트: 453111208/bbc
 public function install()
 {
     $dir = $this->getPathname();
     $dir = str_replace('\\', '/', $dir);
     $app_lang_dir = str_replace('\\', '/', $this->target_app->lang_dir);
     $lang_name = basename($dir);
     foreach (utils::tree($dir) as $k => $v) {
         if (!is_file($v)) {
             continue;
         }
         $tree[$lang_name][] = str_replace($app_lang_dir . '/' . $lang_name . '/', '', $v);
     }
     logger::info($this->target_app->app_id . ' "' . $lang_name . '" language resource stored');
     lang::set_res($this->target_app->app_id, $tree);
 }
예제 #2
0
 public function last_modified($app_id)
 {
     $info_arr = array();
     foreach ($this->detect($app_id) as $item) {
         $dir = $this->getPathname();
         if (is_dir($dir) && realpath($dir) == realpath($this->target_app->res_dir . '/bundle')) {
             foreach (utils::tree($dir) as $k => $v) {
                 if (!is_file($v)) {
                     continue;
                 }
                 $info_arr[$v] = md5_file($v);
             }
             ksort($info_arr);
             continue;
         }
     }
     return md5(serialize($info_arr));
 }
예제 #3
0
 function last_modified($app_id)
 {
     $info_arr = array();
     foreach ($this->detect($app_id) as $item) {
         //$modified = max($modified,filemtime($this->getPathname()));
         //todo: md5
         $filename = $this->getPathname();
         if (is_dir($filename)) {
             foreach (utils::tree($filename) as $k => $v) {
                 if (is_dir($v)) {
                     continue;
                 }
                 $info_arr[$v] = md5_file($v);
             }
         } else {
             $info_arr[$filename] = md5_file($filename);
         }
     }
     ksort($info_arr);
     return md5(serialize($info_arr));
 }
예제 #4
0
파일: buildin.php 프로젝트: syjzwjj/quyeba
 function command_update()
 {
     $options = $this->get_options();
     if ($options['sync'] || $options['sync-only']) {
         kernel::single('base_application_manage')->sync();
     } else {
         kernel::single('base_application_manage')->update_local();
     }
     if ($options['sync-only']) {
         return true;
     }
     $args = func_get_args();
     if (!$args) {
         $rows = app::get('base')->model('apps')->getList('app_id', array('installed' => 1));
         foreach ($rows as $r) {
             if ($r['app_id'] == 'base') {
                 continue;
             }
             $args[] = $r['app_id'];
         }
     }
     array_unshift($args, 'base');
     //todo:总是需要先更新base
     $args = array_unique($args);
     if (!$options['ignore-download']) {
         foreach ($args as $app_id) {
             //kernel::single('base_application_manage')->download($app_id,$options['force-download']);  //todo:临时去掉
         }
     }
     if ($options['force-update-db']) {
         base_application_dbtable::$force_update = true;
     }
     if ($options['custom-force-update-db']) {
         if (defined('CUSTOM_CORE_DIR')) {
             foreach (utils::tree(CUSTOM_CORE_DIR) as $k => $v) {
                 if (is_file($v)) {
                     touch($v);
                 }
             }
         }
     }
     if (!$options['download-only']) {
         foreach ($args as $app_id) {
             $appinfo = app::get('base')->model('apps')->getList('*', array('app_id' => $app_id));
             if (version_compare($appinfo[0]['local_ver'], $appinfo[0]['dbver'], '>') || $options['force-update-app']) {
                 app::get($app_id)->runtask('pre_update', array('dbver' => $appinfo[0]['dbver']));
                 kernel::single('base_application_manage')->update_app_content($app_id);
                 app::get($app_id)->runtask('post_update', array('dbver' => $appinfo[0]['dbver']));
                 app::get('base')->model('apps')->update(array('dbver' => $appinfo[0]['local_ver']), array('app_id' => $app_id));
             } else {
                 kernel::single('base_application_manage')->update_app_content($app_id);
             }
             //新更版本等信息
             $app_info = app::get($app_id)->define();
             if (isset($app_info['node_id']) && $app_info['node_id'] == "true" && base_shopnode::node_id($app_id)) {
                 if (base_shopnode::update($app_id)) {
                     kernel::log('Applications info send to center, ok.');
                 }
             }
         }
         kernel::log('Applications database and services is up-to-date, ok.');
     }
 }