/** * @brief Get the points */ function getPoint($member_srl, $from_db = false) { $member_srl = abs($member_srl); // Get from instance memory if (!$from_db && $this->pointList[$member_srl]) { return $this->pointList[$member_srl]; } // Get from file cache $path = sprintf(_XE_PATH_ . 'files/member_extra_info/point/%s', getNumberingPath($member_srl)); $cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl); if (!$from_db && file_exists($cache_filename)) { return $this->pointList[$member_srl] = trim(FileHandler::readFile($cache_filename)); } // Get from the DB $args = new stdClass(); $args->member_srl = $member_srl; $output = executeQuery('point.getPoint', $args); if (isset($output->data->member_srl)) { $point = (int) $output->data->point; $this->pointList[$member_srl] = $point; if (!is_dir($path)) { FileHandler::makeDir($path); } FileHandler::writeFile($cache_filename, $point); return $point; } return 0; }
/** * @brief 설치시 추가 작업이 필요할시 구현 **/ function moduleInstall() { // action forward에 등록 (관리자 모드에서 사용하기 위함) $oModuleController =& getController('module'); // 첨부파일의 기본 설정 저장 $config->allowed_filesize = '2'; $config->allowed_attach_size = '2'; $config->allowed_filetypes = '*.*'; $oModuleController->insertModuleConfig('file', $config); // file 모듈에서 사용할 디렉토리 생성 FileHandler::makeDir('./files/attach/images'); FileHandler::makeDir('./files/attach/binaries'); // 2007. 10. 17 글/댓글의 입력/수정/삭제에 대한 trigger 등록 $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before'); $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after'); $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before'); $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after'); $oModuleController->insertTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after'); $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'); $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'); $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'); $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'); $oModuleController->insertTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after'); // 2009. 6. 9 자동저장문서 삭제시 첨부 파일도 같이 삭제 $oModuleController->insertTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after'); // 2007. 10. 17 모듈이 삭제될때 등록된 첨부파일도 모두 삭제하는 트리거 추가 $oModuleController->insertTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after'); // 2007. 10. 19 출력하기 전에 file 권한등을 세팅하는 트리거 호출 $oModuleController->insertTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before'); return new Object(); }
/** * @brief 설치시 추가 작업이 필요할시 구현 **/ function moduleInstall() { // action forward에 등록 (관리자 모드에서 사용하기 위함) $oModuleController =& getController('module'); $oDB =& DB::getInstance(); $oDB->addIndex("modules", "idx_site_mid", array("site_srl", "mid"), true); // module 모듈에서 사용할 디렉토리 생성 FileHandler::makeDir('./files/cache/module_info'); FileHandler::makeDir('./files/cache/triggers'); // sites 테이블에 기본 사이트 정보 입력 $args->site_srl = 0; $output = $oDB->executeQuery('module.getSite', $args); if (!$output->data || !$output->data->index_module_srl) { $db_info = Context::getDBInfo(); $domain = Context::getDefaultUrl(); $url_info = parse_url($domain); $domain = $url_info['host'] . (!empty($url_info['port']) && $url_info['port'] != 80 ? ':' . $url_info['port'] : '') . $url_info['path']; $site_args->site_srl = 0; $site_args->index_module_srl = 0; $site_args->domain = $domain; $site_args->default_language = $db_info->lang_type; $output = executeQuery('module.insertSite', $site_args); if (!$output->toBool()) { return $output; } } return new Object(); }
/** * @brief 업데이트 실행 **/ function moduleUpdate() { if (!is_dir("./files/member_extra_info/new_message_flags")) { FileHandler::makeDir('./files/member_extra_info/new_message_flags'); } return new Object(0, 'success_updated'); }
/** * @brief Implement if additional tasks are necessary when installing */ function moduleInstall() { // Register action forward (to use in administrator mode) $oModuleController = getController('module'); // Add the default editor component $oEditorController = getAdminController('editor'); $oEditorController->insertComponent('colorpicker_text', true); $oEditorController->insertComponent('colorpicker_bg', true); $oEditorController->insertComponent('emoticon', true); $oEditorController->insertComponent('url_link', true); $oEditorController->insertComponent('image_link', true); $oEditorController->insertComponent('multimedia_link', true); $oEditorController->insertComponent('quotation', true); $oEditorController->insertComponent('table_maker', true); $oEditorController->insertComponent('poll_maker', true); $oEditorController->insertComponent('image_gallery', true); // Create a directory to use in the editor module FileHandler::makeDir('./files/cache/editor'); // 2007. 10. 17 Add a trigger to delete automatically saved document whenever the document(insert or update) is modified $oModuleController->insertTrigger('document.insertDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after'); $oModuleController->insertTrigger('document.updateDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after'); // 2007. 10. 23 Add an editor trigger on the module addition setup $oModuleController->insertTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before'); // 2009. 04. 14 Add a trigger from compiled codes of the editor component $oModuleController->insertTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before'); return new Object(); }
/** * @brief 설치시 추가 작업이 필요할시 구현 **/ function moduleInstall() { // action forward에 등록 (관리자 모드에서 사용하기 위함) $oModuleController =& getController('module'); // 기본 에디터 컴포넌트를 추가 $oEditorController =& getAdminController('editor'); $oEditorController->insertComponent('colorpicker_text', true); $oEditorController->insertComponent('colorpicker_bg', true); $oEditorController->insertComponent('emoticon', true); $oEditorController->insertComponent('url_link', true); $oEditorController->insertComponent('image_link', true); $oEditorController->insertComponent('multimedia_link', true); $oEditorController->insertComponent('quotation', true); $oEditorController->insertComponent('table_maker', true); $oEditorController->insertComponent('poll_maker', true); $oEditorController->insertComponent('image_gallery', true); // 에디터 모듈에서 사용할 디렉토리 생성 FileHandler::makeDir('./files/cache/editor'); // 2007. 10. 17 글의 입력(신규 or 수정)이 일어날때마다 자동 저장된 문서를 삭제하는 trigger 추가 $oModuleController->insertTrigger('document.insertDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after'); $oModuleController->insertTrigger('document.updateDocument', 'editor', 'controller', 'triggerDeleteSavedDoc', 'after'); // 2007. 10. 23 모듈의 추가 설정에서 에디터 trigger 추가 $oModuleController->insertTrigger('module.dispAdditionSetup', 'editor', 'view', 'triggerDispEditorAdditionSetup', 'before'); // 2009. 04. 14 editor component 변환 코드를 trigger로 독립 $oModuleController->insertTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before'); return new Object(); }
/** * Implement if additional tasks are necessary when installing * * @return Object */ function moduleInstall() { // Register action forward (to use in administrator mode) $oModuleController = getController('module'); // Save the default settings for attachments $config = new stdClass(); $config->allowed_filesize = '2'; $config->allowed_attach_size = '2'; $config->allowed_filetypes = '*.*'; $oModuleController->insertModuleConfig('file', $config); // Generate a directory for the file module FileHandler::makeDir('./files/attach/images'); FileHandler::makeDir('./files/attach/binaries'); // 2007. 10. 17 Create a trigger to insert, update, delete documents and comments $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before'); $oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after'); $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before'); $oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after'); $oModuleController->insertTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after'); $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'); $oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'); $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'); $oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'); $oModuleController->insertTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after'); // 2009. 6. 9 Delete all the attachements when auto-saved document is deleted $oModuleController->insertTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after'); // 2007. 10. 17 Create a trigger to delete all the attachements when the module is deleted $oModuleController->insertTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after'); // 2007. 10. 19 Call a trigger to set up the file permissions before displaying $oModuleController->insertTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before'); return new Object(); }
/** * Constructor * * @return void */ function CacheFile() { $this->cache_dir = _XE_PATH_ . $this->cache_dir; if (!is_dir($this->cache_dir)) { FileHandler::makeDir($this->cache_dir); } }
/** * @brief RSS 전체피드 설정 **/ function procRssAdminInsertConfig() { $oModuleModel =& getModel('module'); $total_config = $oModuleModel->getModuleConfig('rss'); $config_vars = Context::getRequestVars(); $config_vars->feed_document_count = (int) $config_vars->feed_document_count; if (!$config_vars->use_total_feed) { $alt_message = 'msg_invalid_request'; } if (!in_array($config_vars->use_total_feed, array('Y', 'N'))) { $config_vars->open_rss = 'Y'; } if ($config_vars->image || $config_vars->del_image) { $image_obj = $config_vars->image; $config_vars->image = $total_config->image; // 삭제 요청에 대한 변수를 구함 if ($config_vars->del_image == 'Y' || $image_obj) { FileHandler::removeFile($config_vars->image); $config_vars->image = ''; $total_config->image = ''; } // 정상적으로 업로드된 파일이 아니면 무시 if ($image_obj['tmp_name'] && is_uploaded_file($image_obj['tmp_name'])) { // 이미지 파일이 아니어도 무시 (swf는 패스~) $image_obj['name'] = Context::convertEncodingStr($image_obj['name']); if (!preg_match("/\\.(jpg|jpeg|gif|png)\$/i", $image_obj['name'])) { $alt_message = 'msg_rss_invalid_image_format'; } else { // 경로를 정해서 업로드 $path = './files/attach/images/rss/'; // 디렉토리 생성 if (!FileHandler::makeDir($path)) { $alt_message = 'msg_error_occured'; } else { $filename = $path . $image_obj['name']; // 파일 이동 if (!move_uploaded_file($image_obj['tmp_name'], $filename)) { $alt_message = 'msg_error_occured'; } else { $config_vars->image = $filename; } } } } } if (!$config_vars->image && $config_vars->del_image != 'Y') { $config_vars->image = $total_config->image; } $output = $this->setFeedConfig($config_vars); if (!$alt_message) { $alt_message = 'success_updated'; } $alt_message = Context::getLang($alt_message); Context::set('msg', $alt_message); $this->setLayoutPath('./common/tpl'); $this->setLayoutFile('default_layout.html'); $this->setTemplatePath($this->module_path . 'tpl'); $this->setTemplateFile("top_refresh.html"); }
function pluginInstall($args) { // mkdir FileHandler::makeDir(sprintf(_XE_PATH_ . "files/epay/%s/log", $args->plugin_srl)); // copy files FileHandler::copyFile(_XE_PATH_ . 'modules/epay/plugins/payplus6/.htaccess', sprintf(_XE_PATH_ . "files/epay/%s/.htaccess", $args->plugin_srl)); FileHandler::copyFile(_XE_PATH_ . 'modules/epay/plugins/payplus6/readme.txt', sprintf(_XE_PATH_ . "files/epay/%s/readme.txt", $args->plugin_srl)); }
/** * @brief 설치가 이상이 없는지 체크하는 method **/ function checkUpdate() { // cache 디렉토리가 없으면 바로 디렉토리 생성 if (!is_dir('./files/cache/opage')) { FileHandler::makeDir('./files/cache/opage'); } return false; }
/** * @brief Additional tasks required to accomplish during the installation */ function moduleInstall() { // Registration in action forward (for using in the administrator mode) $oModuleController = getController('module'); // Create a directory to store points information FileHandler::makeDir('./files/member_extra_info/point'); $oModuleController = getController('module'); // The highest level $config = new stdClass(); // default, point module is OFF $config->able_module = 'N'; $config->max_level = 30; // Per-level score for ($i = 1; $i <= 30; $i++) { $config->level_step[$i] = pow($i, 2) * 90; } // Points for registration $config->signup_point = 10; // Login points $config->login_point = 5; // Point's name $config->point_name = 'point'; // Level icon directory $config->level_icon = "default"; // Prevent downloads if there are no scores $config->disable_download = false; /** * Define the default points per module as well as all actions (as we do not know if it is forum or blogs, specify "act") */ // Insert document $config->insert_document = 10; $config->insert_document_act = 'procBoardInsertDocument'; $config->delete_document_act = 'procBoardDeleteDocument'; // Insert comment $config->insert_comment = 5; $config->insert_comment_act = 'procBoardInsertComment,procBlogInsertComment'; $config->delete_comment_act = 'procBoardDeleteComment,procBlogDeleteComment'; // Upload $config->upload_file = 5; $config->upload_file_act = 'procFileUpload'; $config->delete_file_act = 'procFileDelete'; // Download $config->download_file = -5; $config->download_file_act = 'procFileDownload'; // View $config->read_document = 0; // Vote up / Vote down $config->voted = 0; $config->blamed = 0; // Save configurations $oModuleController->insertModuleConfig('point', $config); // Cash act list for faster execution $oPointController = getAdminController('point'); $oPointController->cacheActList(); return new Object(); }
/** * @brief 설치시 추가 작업이 필요할시 구현 **/ function moduleInstall() { // widget 에서 사용할 cache디렉토리 생성 FileHandler::makeDir('./files/cache/widget'); FileHandler::makeDir('./files/cache/widget_cache'); // widget compile을 위한 display.after 트리거 추가 $oModuleController =& getController('module'); $oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before'); return new Object(); }
/** * @brief Implement if additional tasks are necessary when installing **/ function moduleInstall() { // Create cache directory used by widget FileHandler::makeDir('./files/cache/widget'); FileHandler::makeDir('./files/cache/widget_cache'); // Add this widget compile the trigger for the display.after $oModuleController =& getController('module'); $oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before'); return new Object(); }
function getThumbnailByUrl($image_url, $width = 80, $height = 0, $thumbnail_type = '') { if (!$height) { $height = $width; } if (!in_array($thumbnail_type, array('crop', 'ratio'))) { $config = $GLOBALS['__document_config__']; if (!$config) { $oDocumentModel = getModel('document'); $config = $oDocumentModel->getDocumentConfig(); $GLOBALS['__document_config__'] = $config; } $thumbnail_type = $config->thumbnail_type; } if (!is_dir('./files/thumbnails/magiccontent_thumbnail')) { FileHandler::makeDir('./files/thumbnails/magiccontent_thumbnail'); } $thumbnail_path = sprintf('files/thumbnails/magiccontent_thumbnail/%s', base64_encode($image_url)); $thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, $width, $height, $thumbnail_type); $thumbnail_url = Context::getRequestUri() . $thumbnail_file; if (file_exists($thumbnail_file)) { if (filesize($thumbnail_file) < 1) { return false; } else { return $thumbnail_url; } } $tmp_file = sprintf('./files/cache/tmp/%s', md5(rand(111111, 999999) . $image_url)); if (!is_dir('./files/cache/tmp')) { FileHandler::makeDir('./files/cache/tmp'); } if (!preg_match('/^(http|https):\\/\\//i', $image_url)) { $image_url = Context::getRequestUri() . $image_url; } FileHandler::getRemoteFile($image_url, $tmp_file); if (!file_exists($tmp_file)) { return false; } else { list($_w, $_h, $_t, $_a) = @getimagesize($tmp_file); if (!in_array($_t, array(1, 2, 3, 6, 7, 8))) { FileHandler::writeFile($thumbnail_file, '', 'w'); return false; } $source_file = $tmp_file; } $output = FileHandler::createImageFile($source_file, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type); FileHandler::removeFile($source_file); if ($output) { return $thumbnail_url; } else { FileHandler::writeFile($thumbnail_file, '', 'w'); } return false; }
function setExifCache($cache_path, $cache_file, &$exif_data) { if (!$exif_data['make']) { return false; } unset($exif_data['Thumbnail']); $cache = '<?php if(!defined("__ZBXE__")) exit();' . "\r\n"; foreach ($exif_data as $key => $val) { $cache .= "\$exif_data['" . $key . "'] = \"" . $val . "\";\r\n"; } $cache .= '?>'; if (!is_dir($cache_path)) { FileHandler::makeDir($cache_path); } FileHandler::writeFile($cache_path . $cache_file, $cache); }
/** * @brief 캐시 파일 재생성 **/ function recompileCache() { // 레이아웃 캐시 삭제 (수정본은 지우지 않음) $path = './files/cache/layout'; if (!is_dir($path)) { FileHandler::makeDir($path); return; } $directory = dir($path); while ($entry = $directory->read()) { if ($entry == "." || $entry == ".." || preg_match('/\\.html$/i', $entry)) { continue; } FileHandler::removeFile($path . "/" . $entry); } $directory->close(); }
/** * @brief 생성자, 대상 파일이름과 시작-끝 태그명, 그리고 각 개별 아이템 태그명을 인자로 받음 **/ function set($filename, $startTag, $endTag, $itemTag, $itemEndTag) { $this->filename = $filename; $this->startTag = $startTag; if ($endTag) { $this->endTag = $endTag; } $this->itemStartTag = $itemTag; $this->itemEndTag = $itemEndTag; $this->key = md5($filename); $this->cache_path = './files/cache/importer/' . $this->key; $this->cache_index_file = $this->cache_path . '/index'; if (!is_dir($this->cache_path)) { FileHandler::makeDir($this->cache_path); } return $this->openFile(); }
function procTranslationAdminInsertTranslation() { // get module model/module controller $oModuleController =& getController('module'); $oModuleModel =& getModel('module'); // get variables from admin page form $args = Context::getRequestVars(); $args->module = 'translation'; $args->mid = $args->translation_name; unset($args->translation_name); // set up addtional variables $args->default_lang = $args->default_lang; // if module_srl exists if ($args->module_srl) { $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl); if ($module_info->module_srl != $args->module_srl) { unset($args->module_srl); } } // insert/update translation module, depending on whether module_srl exists or not if (!$args->module_srl) { $output = $oModuleController->insertModule($args); // make module folder for saving the files $file_folder = './files/translation_files/' . $output->get('module_srl'); FileHandler::makeDir($file_folder); // make cache folder for downloading files $cache_folder = './files/cache/translation/' . $output->get('module_srl'); FileHandler::makeDir($cache_folder); $msg_code = 'success_registed'; } else { $output = $oModuleController->updateModule($args); $msg_code = 'success_updated'; } if (!$output->toBool()) { return $output; } $this->add('page', Context::get('page')); $this->add('module_srl', $output->get('module_srl')); $this->setMessage($msg_code); if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) { $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'module_srl', $output->get('module_srl'), 'act', 'dispTranslationAdminTranslationInfo'); header('location:' . $returnUrl); return; } }
/** * @brief 포인트를 구해옴 **/ function getPoint($member_srl, $from_db = false) { $member_srl = abs($member_srl); $path = sprintf('./files/member_extra_info/point/%s', getNumberingPath($member_srl)); if (!is_dir($path)) { FileHandler::makeDir($path); } $cache_filename = sprintf('%s%d.cache.txt', $path, $member_srl); if (!$from_db && file_exists($cache_filename)) { return trim(FileHandler::readFile($cache_filename)); } // DB에서 가져옴 $args->member_srl = $member_srl; $output = executeQuery('point.getPoint', $args); $point = (int) $output->data->point; FileHandler::writeFile($cache_filename, $point); return $point; }
public function __construct() { // Retrieve the FrontEndFileHandler instance from the Context class. $this->fefh = Context::getInstance()->oFrontEndFileHandler; // Create the cache directory if it does not exist. $this->cacheDir = _XE_PATH_ . 'files/cache/zipperupper'; if (!file_exists($this->cacheDir)) { $fileHandler = new FileHandler(); $fileHandler->makeDir($this->cacheDir); } // Find out the absolute or relative path of XE installation. if (strncasecmp(_XE_PATH_, $_SERVER['DOCUMENT_ROOT'], strlen($_SERVER['DOCUMENT_ROOT'])) === 0) { $this->urlPrefix = substr(_XE_PATH_, strlen(rtrim($_SERVER['DOCUMENT_ROOT'], '/\\'))); $this->urlPrefix = str_replace('\\', '/', $this->urlPrefix); } else { $this->urlPrefix = '../../../'; } }
function Svn($url, $svn_cmd = '/usr/bin/svn', $userid = null, $passwd = null) { if (substr($url, -1) != '/') { $url .= '/'; } $this->url = $url; if (strstr($svn_cmd, " ") != FALSE) { $this->svn_cmd = '"' . $svn_cmd . '"'; } else { $this->svn_cmd = $svn_cmd; } $this->tmp_dir = _XE_PATH_ . 'files/cache/tmp'; if (!is_dir($this->tmp_dir)) { FileHandler::makeDir($this->tmp_dir); } $this->userid = $userid; $this->passwd = $passwd; $this->oXml = new XmlParser(); }
/** * Update * @return Object */ function moduleUpdate() { $oModuleModel = getModel('module'); $oModuleController = getController('module'); foreach ($this->triggers as $trigger) { if (!$oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4])) { $oModuleController->insertTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]); } } foreach ($this->delete_triggers as $trigger) { if ($oModuleModel->getTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4])) { $oModuleController->deleteTrigger($trigger[0], $trigger[1], $trigger[2], $trigger[3], $trigger[4]); } } if (!is_dir("./files/member_extra_info/new_message_flags")) { FileHandler::makeDir('./files/member_extra_info/new_message_flags'); } return new Object(0, 'success_updated'); }
/** * Update * @return Object **/ function moduleUpdate() { if (!is_dir("./files/member_extra_info/new_message_flags")) { FileHandler::makeDir('./files/member_extra_info/new_message_flags'); } $oModuleModel =& getModel('module'); $config = $oModuleModel->getModuleConfig('message'); if ($config->skin) { $config_parse = explode('.', $config->skin); if (count($config_parse) > 1) { $template_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]); if (is_dir($template_path)) { $config->skin = implode('|@|', $config_parse); $oModuleController =& getController('module'); $oModuleController->updateModuleConfig('communication', $config); } } } return new Object(0, 'success_updated'); }
/** * Returns a cache file path * * @param $type pc or mobile * @return string Returns a path */ function getCacheFilePath($type = "pc") { static $addon_file; if (isset($addon_file)) { return $addon_file; } $site_module_info = Context::get('site_module_info'); $site_srl = $site_module_info->site_srl; $addon_path = RX_BASEDIR . 'files/cache/addons/'; $addon_file = $addon_path . 'addons.' . intval($site_srl) . '.' . $type . '.php'; if ($this->addon_file_called) { return $addon_file; } $this->addon_file_called = TRUE; FileHandler::makeDir($addon_path); if (!file_exists($addon_file) || filemtime($addon_file) < filemtime(__FILE__)) { $this->makeCacheFile($site_srl, $type); } return $addon_file; }
/** * @brief writes module instance configuration. */ function procInipaymobileAdminInsertModInst() { // get the instance of the model and controller of the module. $oModuleController =& getController('module'); $oModuleModel =& getModel('module'); // get all requested vars $args = Context::getRequestVars(); // set module name $args->module = 'inipaymobile'; // check if the module instance already exists if ($args->module_srl) { $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl); if ($module_info->module_srl != $args->module_srl) { // unset the module_srl to be reallocated if the module instance already exists unset($args->module_srl); } } // insert or update depending on the module_srl existence if (!$args->module_srl) { $output = $oModuleController->insertModule($args); if (!$output->toBool()) { return $output; } $msg_code = 'success_registed'; } else { $output = $oModuleController->updateModule($args); if (!$output->toBool()) { return $output; } $msg_code = 'success_updated'; } // make log directory $path = sprintf(_XE_PATH_ . "files/epay/%s/log", $output->get('module_srl')); if (!FileHandler::makeDir($path)) { return new Object(-1, 'could not create a directory'); } $this->add('module_srl', $output->get('module_srl')); $this->setMessage($msg_code); $returnUrl = getNotEncodedUrl('', 'module', Context::get('module'), 'act', 'dispInipaymobileAdminInsertModInst', 'module_srl', $output->get('module_srl')); $this->setRedirectUrl($returnUrl); }
private function insertProfileImageFromUrl($member_srl, $url) { $oModuleModel =& getModel('module'); $config = $oModuleModel->getModuleConfig('member'); $max_width = $config->profile_image_max_width; if (!$max_width) { $max_width = "80"; } //default 90 $max_height = $config->profile_image_max_height; if (!$max_height) { $max_height = "80"; } //default 20 $target_path = sprintf('files/member_extra_info/profile_image/%s', getNumberingPath($member_srl)); $target_tmpfile = $target_path . "sample.jpg"; FileHandler::makeDir($target_path); //지정된 URL 로부터 프로필 이미지 가져오기 if (file_exists($target_tmpfile)) { unlink($target_tmpfile); } $this->getProfileImageFromUrl($url, $target_tmpfile); list($width, $height, $type, $attrs) = @getimagesize($target_tmpfile); if ($type == 3) { $ext = 'png'; } elseif ($type == 2) { $ext = 'jpg'; } else { $ext = 'gif'; } $target_filename = sprintf('%s%d.%s', $target_path, $member_srl, $ext); $target_filename_mask = sprintf('%s%d.%s', $target_path, $member_srl, '*'); array_map('unlink', glob($target_filename_mask)); if ($width > $max_width || $height > $max_height || !$type != 1) { FileHandler::createImageFile($target_tmpfile, $target_filename, $max_width, $max_height, $ext); } else { @copy($target_tmpfile, $target_filename); } unlink($target_tmpfile); }
/** * @brief Additional tasks required to accomplish during the installation **/ function moduleInstall() { // Registration in action forward (for using in the administrator mode) $oModuleController =& getController('module'); // Create a directory to store points information FileHandler::makeDir('./files/member_extra_info/point'); $oModuleController =& getController('module'); // The highest level $config->max_level = 30; // Per-level score for ($i = 1; $i <= 30; $i++) { $config->level_step[$i] = pow($i, 2) * 90; } // Points for registration $config->signup_point = 10; // Login points $config->login_point = 5; // Point's name $config->point_name = 'point'; // Level icon directory $config->level_icon = "default"; // Prevent downloads if there are no scores $config->disable_download = false; /** * Define the default points per module as well as all actions (as we do not know if it is forum or blogs, specify "act") **/ // Insert document $config->insert_document = 10; $config->insert_document_act = 'procBoardInsertDocument'; $config->delete_document_act = 'procBoardDeleteDocument'; // Insert comment $config->insert_comment = 5; $config->insert_comment_act = 'procBoardInsertComment,procBlogInsertComment'; $config->delete_comment_act = 'procBoardDeleteComment,procBlogDeleteComment'; // Upload $config->upload_file = 5; $config->upload_file_act = 'procFileUpload'; $config->delete_file_act = 'procFileDelete'; // Download $config->download_file = -5; $config->download_file_act = 'procFileDownload'; // View $config->read_document = 0; // Vote up / Vote down $config->voted = 0; $config->blamed = 0; // Save configurations $oModuleController->insertModuleConfig('point', $config); // Cash act list for faster execution $oPointController =& getAdminController('point'); $oPointController->cacheActList(); // Add a trigger for registration/insert document/insert comment/upload a file/download $oModuleController->insertTrigger('member.insertMember', 'point', 'controller', 'triggerInsertMember', 'after'); $oModuleController->insertTrigger('document.insertDocument', 'point', 'controller', 'triggerInsertDocument', 'after'); $oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerBeforeDeleteDocument', 'before'); $oModuleController->insertTrigger('document.deleteDocument', 'point', 'controller', 'triggerDeleteDocument', 'after'); $oModuleController->insertTrigger('comment.insertComment', 'point', 'controller', 'triggerInsertComment', 'after'); $oModuleController->insertTrigger('comment.deleteComment', 'point', 'controller', 'triggerDeleteComment', 'after'); $oModuleController->insertTrigger('file.insertFile', 'point', 'controller', 'triggerInsertFile', 'after'); $oModuleController->insertTrigger('file.deleteFile', 'point', 'controller', 'triggerDeleteFile', 'after'); $oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerBeforeDownloadFile', 'before'); $oModuleController->insertTrigger('file.downloadFile', 'point', 'controller', 'triggerDownloadFile', 'after'); $oModuleController->insertTrigger('member.doLogin', 'point', 'controller', 'triggerAfterLogin', 'after'); $oModuleController->insertTrigger('module.dispAdditionSetup', 'point', 'view', 'triggerDispPointAdditionSetup', 'after'); $oModuleController->insertTrigger('document.updateReadedCount', 'point', 'controller', 'triggerUpdateReadedCount', 'after'); // Add a trigger for voting up and down 2008.05.13 haneul $oModuleController->insertTrigger('document.updateVotedCount', 'point', 'controller', 'triggerUpdateVotedCount', 'after'); // Add a trigger for using points for permanent saving of a temporarily saved document 2009.05.19 zero $oModuleController->insertTrigger('document.updateDocument', 'point', 'controller', 'triggerUpdateDocument', 'before'); return new Object(); }
private function _checkCacheDir() { // check htmlpurifier cache directory $this->_cacheDir = _XE_PATH_ . 'files/cache/htmlpurifier'; FileHandler::makeDir($this->_cacheDir); }
/** * @brief 메뉴 이미지 버튼을 등록 **/ function procMenuAdminUploadButton() { $menu_srl = Context::get('menu_srl'); $menu_item_srl = Context::get('menu_item_srl'); $target = Context::get('target'); $target_file = Context::get($target); // 필수 요건이 없거나 업로드된 파일이 아니면 오류 발생 if (!$menu_srl || !$menu_item_srl || !$target_file || !is_uploaded_file($target_file['tmp_name']) || !preg_match('/\\.(gif|jpeg|jpg|png)/i', $target_file['name'])) { Context::set('error_messge', Context::getLang('msg_invalid_request')); // 요건을 만족하고 업로드된 파일이면 지정된 위치로 이동 } else { $tmp_arr = explode('.', $target_file['name']); $ext = $tmp_arr[count($tmp_arr) - 1]; $path = sprintf('./files/attach/menu_button/%d/', $menu_srl); $filename = sprintf('%s%d.%s.%s', $path, $menu_item_srl, $target, $ext); if (!is_dir($path)) { FileHandler::makeDir($path); } move_uploaded_file($target_file['tmp_name'], $filename); Context::set('filename', $filename); } $this->setTemplatePath($this->module_path . 'tpl'); $this->setTemplateFile('menu_file_uploaded'); }