Esempio n. 1
0
 public function testFileMethods()
 {
     $mock = dirname(__FILE__) . '/mock.txt';
     $mock2 = dirname(__FILE__) . '/mock2.txt';
     touch($mock);
     // copy file
     $this->assertTrue(is_readable($mock));
     FileHandler::copyFile($mock, $mock2);
     $this->assertTrue(is_readable($mock2));
     // remove file
     $this->assertTrue(FileHandler::removeFile($mock2));
     $this->assertFalse(is_readable($mock2));
     $this->assertFalse(FileHandler::removeFile($mock2));
     // rename file
     $this->assertTrue(FileHandler::rename($mock, $mock2));
     $this->assertFalse(is_readable($mock));
     $this->assertTrue(is_readable($mock2));
     $this->assertFalse(FileHandler::rename($mock, $mock2));
     // move file
     $this->assertTrue(FileHandler::rename($mock2, $mock));
     $this->assertTrue(is_readable($mock));
     $this->assertFalse(is_readable($mock2));
     $this->assertTrue(touch($mock2) && is_readable($mock2));
     $this->assertTrue(FileHandler::moveFile($mock, $mock2));
     $this->assertFalse(is_readable($mock));
     $this->assertTrue(is_readable($mock2));
     // remove file
     $this->assertFalse(FileHandler::removeFile($mock));
     $this->assertTrue(FileHandler::removeFile($mock2));
     $this->assertFalse(is_readable($mock));
     $this->assertFalse(is_readable($mock2));
 }
Esempio n. 2
0
 /**
  * Find selected languages to serve in the site
  *
  * @return array Selected languages
  */
 public static function loadLangSelected()
 {
     static $lang_selected = null;
     if (!$lang_selected) {
         $selected_lang_file = _XE_PATH_ . 'files/config/lang_selected.info';
         if (!FileHandler::hasContent($selected_lang_file)) {
             $old_selected_lang_file = _XE_PATH_ . 'files/cache/lang_selected.info';
             FileHandler::moveFile($old_selected_lang_file, $selected_lang_file);
         }
         if (!FileHandler::hasContent($selected_lang_file)) {
             $lang_selected = Rhymix\Framework\Lang::getSupportedList();
             $buff = '';
             foreach ($lang_selected as $key => $val) {
                 $buff .= "{$key},{$val}\n";
             }
             FileHandler::writeFile($selected_lang_file, $buff);
         } else {
             $langs = file($selected_lang_file);
             foreach ($langs as $val) {
                 list($lang_prefix, $lang_text) = explode(',', $val);
                 if ($lang_prefix === 'jp') {
                     $lang_prefix = 'ja';
                 }
                 $lang_text = trim($lang_text);
                 $lang_selected[$lang_prefix] = $lang_text;
             }
         }
     }
     return $lang_selected;
 }
Esempio n. 3
0
 /**
  * Update layout information
  * Apply a title of the new layout and extra vars
  * @return Object
  */
 function procLayoutAdminUpdate()
 {
     // Consider the rest of items as extra vars, except module, act, layout_srl, layout, and title  .. Some gurida ..
     $extra_vars = Context::getRequestVars();
     unset($extra_vars->module);
     unset($extra_vars->act);
     unset($extra_vars->layout_srl);
     unset($extra_vars->layout);
     unset($extra_vars->title);
     unset($extra_vars->apply_layout);
     unset($extra_vars->apply_mobile_view);
     $is_sitemap = $extra_vars->is_sitemap;
     unset($extra_vars->is_sitemap);
     $args = Context::gets('layout_srl', 'title');
     // Get layout information
     $oLayoutModel = getModel('layout');
     $oMenuAdminModel = getAdminModel('menu');
     $layout_info = $oLayoutModel->getLayout($args->layout_srl);
     if ($layout_info->menu) {
         $menus = get_object_vars($layout_info->menu);
     }
     if (count($menus)) {
         foreach ($menus as $menu_id => $val) {
             $menu_srl = Context::get($menu_id);
             if (!$menu_srl) {
                 continue;
             }
             // if menu is -1, get default menu in site
             if ($menu_srl == -1) {
                 $oModuleModel = getModel('module');
                 $start_module = $oModuleModel->getSiteInfo(0, $columnList);
                 $tmpArgs->url = $start_module->mid;
                 $tmpArgs->site_srl = 0;
                 $output = executeQuery('menu.getMenuItemByUrl', $tmpArgs);
                 if (!$output->toBool()) {
                     return new Object(-1, 'fail_to_update');
                 }
                 $menu_srl = $output->data->menu_srl;
             }
             $output = $oMenuAdminModel->getMenu($menu_srl);
             $menu_srl_list[] = $menu_srl;
             $menu_name_list[$menu_srl] = $output->title;
             $apply_layout = Context::get('apply_layout');
             $apply_mobile_view = Context::get('apply_mobile_view');
             if ($apply_layout == 'Y' || $apply_mobile_view == 'Y') {
                 $menu_args = new stdClass();
                 $menu_args->menu_srl = $menu_srl;
                 $menu_args->site_srl = $layout_info->site_srl;
                 $output = executeQueryArray('layout.getLayoutModules', $menu_args);
                 if ($output->data) {
                     $modules = array();
                     for ($i = 0; $i < count($output->data); $i++) {
                         $modules[] = $output->data[$i]->module_srl;
                     }
                     if (count($modules)) {
                         $update_args = new stdClass();
                         $update_args->module_srls = implode(',', $modules);
                         if ($apply_layout == "Y") {
                             $update_args->layout_srl = $args->layout_srl;
                         }
                         if ($layout_info->layout_type == "M") {
                             if (Context::get('apply_mobile_view') == "Y") {
                                 $update_args->use_mobile = "Y";
                             }
                             $output = executeQuery('layout.updateModuleMLayout', $update_args);
                         } else {
                             $output = executeQuery('layout.updateModuleLayout', $update_args);
                         }
                         $oCacheHandler = CacheHandler::getInstance('object', null, true);
                         if ($oCacheHandler->isSupport()) {
                             $oCacheHandler->invalidateGroupKey('site_and_module');
                         }
                     }
                 }
             }
         }
     }
     $tmpDir = sprintf('./files/attach/images/%s/tmp', $args->layout_srl);
     // Separately handle if a type of extra_vars is an image
     if ($layout_info->extra_var) {
         foreach ($layout_info->extra_var as $name => $vars) {
             if ($vars->type != 'image') {
                 continue;
             }
             $fileName = $extra_vars->{$name};
             if ($vars->value == $fileName) {
                 continue;
             }
             FileHandler::removeFile($vars->value);
             if (!$fileName) {
                 continue;
             }
             $pathInfo = pathinfo($fileName);
             $tmpFileName = sprintf('%s/tmp/%s', $pathInfo['dirname'], $pathInfo['basename']);
             if (!FileHandler::moveFile($tmpFileName, $fileName)) {
                 unset($extra_vars->{$name});
             }
         }
     }
     // Save header script into "config" of layout module
     $oModuleModel = getModel('module');
     $oModuleController = getController('module');
     $layout_config = new stdClass();
     $layout_config->header_script = Context::get('header_script');
     $oModuleController->insertModulePartConfig('layout', $args->layout_srl, $layout_config);
     // Save a title of the menu
     $extra_vars->menu_name_list = $menu_name_list;
     // Variable setting for DB insert
     $args->extra_vars = serialize($extra_vars);
     $output = $this->updateLayout($args);
     if (!$output->toBool()) {
         return $output;
     }
     FileHandler::removeDir($tmpDir);
     if (!$is_sitemap) {
         return $this->setRedirectUrl(Context::get('error_return_url'), $output);
     } else {
         $context = Context::getInstance();
         $context->setRequestMethod('JSON');
         $this->setMessage('success');
     }
 }
Esempio n. 4
0
 /**
  * Find selected languages to serve in the site
  *
  * @return array Selected languages
  */
 function loadLangSelected()
 {
     static $lang_selected = null;
     if (!$lang_selected) {
         $orig_lang_file = _XE_PATH_ . 'common/lang/lang.info';
         $selected_lang_file = _XE_PATH_ . 'files/config/lang_selected.info';
         if (!FileHandler::hasContent($selected_lang_file)) {
             $old_selected_lang_file = _XE_PATH_ . 'files/cache/lang_selected.info';
             FileHandler::moveFile($old_selected_lang_file, $selected_lang_file);
         }
         if (!FileHandler::hasContent($selected_lang_file)) {
             $buff = FileHandler::readFile($orig_lang_file);
             FileHandler::writeFile($selected_lang_file, $buff);
             $lang_selected = self::loadLangSupported();
         } else {
             $langs = file($selected_lang_file);
             foreach ($langs as $val) {
                 list($lang_prefix, $lang_text) = explode(',', $val);
                 $lang_text = trim($lang_text);
                 $lang_selected[$lang_prefix] = $lang_text;
             }
         }
     }
     return $lang_selected;
 }
 private function updateIcon($iconname, $deleteIcon = false)
 {
     $image_filepath = _XE_PATH_ . 'files/attach/xeicon/';
     if ($deleteIcon) {
         FileHandler::removeFile($image_filepath . $iconname);
         return;
     }
     $tmpicon_filepath = $image_filepath . 'tmp/' . $iconname;
     $icon_filepath = $image_filepath . $iconname;
     if (file_exists($tmpicon_filepath)) {
         FileHandler::moveFile($tmpicon_filepath, $icon_filepath);
     }
     FileHandler::removeFile($tmpicon_filepath);
 }
 private function _saveFavicon($iconname, $deleteIcon = false)
 {
     $site_info = Context::get('site_module_info');
     $virtual_site = '';
     if ($site_info->site_srl) {
         $virtual_site = $site_info->site_srl . '/';
     }
     $image_filepath = RX_BASEDIR . 'files/attach/xeicon/' . $virtual_site;
     if ($deleteIcon) {
         FileHandler::removeFile($image_filepath . $iconname);
         return;
     }
     $tmpicon_filepath = $image_filepath . 'tmp/' . $iconname;
     $icon_filepath = $image_filepath . $iconname;
     if (file_exists($tmpicon_filepath)) {
         FileHandler::moveFile($tmpicon_filepath, $icon_filepath);
     }
     FileHandler::removeFile($tmpicon_filepath);
 }
 /**
  * image file handling
  */
 function procPurplebookFilePicker()
 {
     $oPurplebookModel =& getModel('purplebook');
     //$this->setTemplatePath($this->module_path.'tpl');
     if (!$this->module_info->skin) {
         $this->module_info->skin = 'default';
     }
     $this->setTemplatePath($this->module_path . "skins/{$this->module_info->skin}");
     $this->setLayoutFile('default_layout');
     $this->setTemplateFile('filepicker');
     $logged_info = Context::get('logged_info');
     if (!$logged_info) {
         Context::set('message', Context::getLang('msg_login_required'));
         return;
     }
     $vars = Context::gets('addfile', 'filter');
     $source_file = $vars->addfile['tmp_name'];
     if (!is_uploaded_file($source_file)) {
         Context::set('message', Context::getLang('msg_invalid_request'));
         return;
     }
     // check file format, size
     $ext = strtolower(substr(strrchr($vars->addfile['name'], '.'), 1));
     if ($vars->filter) {
         $filter = explode(',', $vars->filter);
     } else {
         $filter = array('jpg', 'jpeg', 'gif', 'png');
     }
     if (!in_array($ext, $filter)) {
         Context::set('message', Context::getLang('msg_invalid_file_format'));
         return;
     }
     // 파일 정보 구함
     list($width, $height, $type, $attrs) = @getimagesize($source_file);
     switch ($type) {
         case '1':
             $type = 'gif';
             break;
         case '2':
             $type = 'jpg';
             break;
         case '3':
             $type = 'png';
             break;
         case '6':
             $type = 'bmp';
             break;
         default:
             return;
             break;
     }
     $file_srl = getNextSequence();
     $path = $oPurplebookModel->getFilePickerPath($file_srl);
     $save_filename = sprintf('%s%s.%s', $path, $file_srl, $type);
     // create directory
     if (!is_dir($path)) {
         FileHandler::makeDir($path);
     }
     if (!FileHandler::moveFile($source_file, $save_filename)) {
         Context::set('message', Context::getLang('msg_error_occured'));
         return;
     }
     $output = $this->insertFile($save_filename, $file_srl);
     if (!$output->toBool()) {
         Context::set('message', $output->getMessage());
         return;
     }
     Context::set('filename', $save_filename);
     Context::set('purplebook_file_srl', $file_srl);
     $this->setLayoutFile('default_layout');
     $this->setTemplateFile('filepicker_selected');
 }