Example #1
1
 /**
  * @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;
 }
Example #2
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();
 }
Example #3
0
 /**
  * @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');
 }
Example #5
0
 /**
  * @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();
 }
Example #6
0
 /**
  * @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();
 }
Example #7
0
 /**
  * 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();
 }
Example #8
0
 /**
  * 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");
 }
Example #10
0
 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));
 }
Example #11
0
 /**
  * @brief 설치가 이상이 없는지 체크하는 method
  **/
 function checkUpdate()
 {
     // cache 디렉토리가 없으면 바로 디렉토리 생성
     if (!is_dir('./files/cache/opage')) {
         FileHandler::makeDir('./files/cache/opage');
     }
     return false;
 }
Example #12
0
 /**
  * @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();
 }
Example #13
0
 /**
  * @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();
 }
Example #14
0
 /**
  * @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);
}
Example #17
0
 /**
  * @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();
 }
Example #18
0
 /**
  * @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;
     }
 }
Example #20
0
 /**
  * @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;
 }
Example #21
0
 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 = '../../../';
     }
 }
Example #22
0
 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();
 }
Example #23
0
 /**
  * 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');
 }
Example #24
0
 /**
  * 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');
 }
Example #25
0
 /**
  * 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);
 }
Example #28
0
 /**
  * @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();
 }
Example #29
0
 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');
 }