function procNcenterliteUserConfig()
 {
     $logged_info = Context::get('logged_info');
     $oNcenterliteModel = getModel('ncenterlite');
     $member_srl = Context::get('member_srl');
     if (!$member_srl) {
         $member_srl = $logged_info->member_srl;
     }
     if ($logged_info->member_srl != $member_srl && $logged_info->is_admin != 'Y') {
         return new Object(-1, 'ncenterlite_stop_no_permission_other_user_settings');
     }
     $output = $oNcenterliteModel->getMemberConfig($member_srl);
     $obj = Context::getRequestVars();
     $args = new stdClass();
     $args->member_srl = $member_srl;
     $args->comment_notify = $obj->comment_notify;
     $args->mention_notify = $obj->mention_notify;
     $args->message_notify = $obj->message_notify;
     if (!$output) {
         $outputs = executeQuery('ncenterlite.insertUserConfig', $args);
     } else {
         $outputs = executeQuery('ncenterlite.updateUserConfig', $args);
     }
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'act', 'dispNcenterliteUserConfig', 'member_srl', $member_srl);
         header('location: ' . $returnUrl);
         return;
     }
 }
 /**
  * @brief 출석부 기록
  **/
 function procAttendanceInsertAttendance()
 {
     $today = zDate(date('YmdHis'), "Ymd");
     if ($_SESSION['is_attended'] == $today) {
         return new Object(-1, 'attend_already_checked');
     }
     /*attendance model 객체 생성*/
     $oAttendanceController = getController('attendance');
     $oAttendanceModel = getModel('attendance');
     $obj = Context::getRequestVars();
     $oModuleModel = getModel('module');
     $config = $oModuleModel->getModuleConfig('attendance');
     $ip_count = $oAttendanceModel->getDuplicateIpCount($today, $_SERVER['REMOTE_ADDR']);
     if ($ip_count >= $config->allow_duplicaton_ip_count) {
         return new Object(-1, 'attend_allow_duplicaton_ip_count');
     }
     //인사말 필터링('#'시작문자 '^'시작문자 필터링)
     if (preg_match("/^\\#/", $obj->greetings)) {
         return new Object(-1, 'attend_greetings_error');
     }
     $oAttendanceController->insertAttendance($obj->about_position, $obj->greetings);
     $this->setMessage('att_success');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', 'attendance');
         header('location: ' . $returnUrl);
         return;
     }
 }
Example #3
0
 /**
  * @brief inserts virtual account numbers into the epos DB table, called by dispEposAdminInsert
  */
 function procEposAdminInsert()
 {
     $count = 0;
     // count for inserting records
     $bank = Context::get('bank');
     $van_list = explode("\n", Context::get('van_list'));
     foreach ($van_list as $van) {
         if (!$van) {
             continue;
         }
         // check if $van is empty
         $args->bank = $bank;
         $args->van = trim($van);
         $output = executeQuery('epos.insertAccount', $args);
         if (!$output->toBool()) {
             return $output;
         }
         $count++;
     }
     $this->setMessage(sprintf(Context::getLang('msg_regist_count'), $count));
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', Context::get('module'), 'act', 'dispEposAdminInsert');
         $this->setRedirectUrl($returnUrl);
     }
 }
Example #4
0
 /**
  * Produce JSON compliant content given a module object.\n
  * @param ModuleObject $oModule the module object
  * @return string
  */
 public function toDoc($oModule)
 {
     $variables = $oModule->getVariables();
     $variables['error'] = $oModule->getError();
     $variables['message'] = $oModule->getMessage();
     self::_convertCompat($variables, Context::getRequestMethod());
     return json_encode($variables);
 }
Example #5
0
 /**
  * @brief Page information
  */
 function dispPageIndex(&$oModule)
 {
     $page_content = Context::get('page_content');
     $oWidgetController = getController('widget');
     $requestMethod = Context::getRequestMethod();
     Context::setResponseMethod('HTML');
     $oWidgetController->triggerWidgetCompile($page_content);
     Context::setResponseMethod($requestMethod);
     $oModule->add('page_content', $page_content);
 }
 /**
  * setter to set an url for redirection
  * @param string $url url for redirection
  * @remark redirect_url is used only for ajax requests
  * @return void
  * */
 function setRedirectUrl($url = './', $output = NULL)
 {
     $ajaxRequestMethod = array_flip($this->ajaxRequestMethod);
     if (!isset($ajaxRequestMethod[Context::getRequestMethod()])) {
         $this->add('redirect_url', $url);
     }
     if ($output !== NULL && is_object($output)) {
         return $output;
     }
 }
 function procRhclaimAdminInsertConfig()
 {
     $vars = Context::getRequestVars();
     $oModuleController = getController('module');
     $oModuleController->updateModuleConfig('Rhclaim', $vars);
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispRhclaimAdminConfig');
         header('location: ' . $returnUrl);
         return;
     }
 }
        function before_module_init(&$ModuleHandler)
        {
            $logged_info = Context::get('logged_info');
            if ($logged_info->is_admin == 'Y' || $logged_info->is_site_admin) {
                return false;
            }
            // if($this->addon_info->target != 'all' && Context::get('is_logged'))
            // {
            // 	return false;
            // }
            if ($_SESSION['XE_VALIDATOR_ERROR'] == -1) {
                $_SESSION['member_captcha_authed'] = false;
            }
            if ($_SESSION['member_captcha_authed']) {
                return false;
            }
            $type = Context::get('captchaType');
            $this->target_acts = array();
            if ($this->addon_info->apply_find_account == 'apply') {
                $this->target_acts[] = 'procMemberFindAccount';
            }
            if ($this->addon_info->apply_resend_auth_mail == 'apply') {
                $this->target_acts[] = 'procMemberResendAuthMail';
            }
            if ($this->addon_info->apply_signup == 'apply') {
                $this->target_acts[] = 'procMemberInsert';
            }
            if (Context::getRequestMethod() != 'XMLRPC' && Context::getRequestMethod() !== 'JSON') {
                if ($type == 'inline') {
                    if (!$this->compareCaptcha()) {
                        Context::loadLang(_XE_PATH_ . 'addons/captcha_member/lang');
                        $_SESSION['XE_VALIDATOR_ERROR'] = -1;
                        $_SESSION['XE_VALIDATOR_MESSAGE'] = Context::getLang('captcha_denied');
                        $_SESSION['XE_VALIDATOR_MESSAGE_TYPE'] = 'error';
                        $_SESSION['XE_VALIDATOR_RETURN_URL'] = Context::get('error_return_url');
                        $ModuleHandler->_setInputValueToSession();
                    }
                } else {
                    Context::addHtmlHeader('<script>
						if(!captchaTargetAct) {var captchaTargetAct = [];}
						captchaTargetAct.push("' . implode('","', $this->target_acts) . '");
						</script>');
                    Context::loadFile(array('./addons/captcha_member/captcha.min.js', 'body', '', null), true);
                }
            }
            // compare session when calling actions such as writing a post or a comment on the board/issue tracker module
            if (!$_SESSION['member_captcha_authed'] && in_array(Context::get('act'), $this->target_acts)) {
                Context::loadLang(_XE_PATH_ . 'addons/captcha_member/lang');
                $ModuleHandler->error = "captcha_denied";
            }
            return true;
        }
 function procNmileageAdminConfig()
 {
     $args = Context::getRequestVars();
     // save module configuration.
     $oModuleControll = getController('module');
     $output = $oModuleControll->insertModuleConfig('nmileage', $args);
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', Context::get('module'), 'act', 'dispNmileageAdminConfig', 'module_srl', Context::get('module_srl'));
         $this->setRedirectUrl($returnUrl);
         return;
     }
 }
 function procCympusadminAdminConfig()
 {
     $oModuleController = getController('module');
     $obj = Context::getRequestVars();
     $output = $oModuleController->updateModuleConfig('cympusadmin', $obj);
     if (!$output->toBool()) {
         return new Object(-1, 'ncenterlite_msg_setting_error');
     }
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispCympusadminAdminConfig');
         header('location: ' . $returnUrl);
         return;
     }
 }
 function procAndroidpushappAdminDelete()
 {
     $args = new stdClass();
     $output = executeQuery('androidpushapp.deleteAll', $args);
     if (!$output->toBool()) {
         $oDB->rollback();
         return $output;
     }
     $this->setMessage('모든 정보를 삭제하였습니다.');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAndroidpushappAdminList');
         header('location: ' . $returnUrl);
         return;
     }
 }
 /**
  * @brief 모듈 환경설정값 쓰기
  **/
 function procLicenseAdminConfig()
 {
     $args = Context::getRequestVars();
     debugPrint($args);
     // save module configuration.
     $oModuleControll = getController('module');
     $output = $oModuleControll->insertModuleConfig('license', $args);
     $oLicenseModel =& getModel('license');
     $oLicenseModel->checkLicense('nstore', $args->user_id, $args->serial_number, TRUE);
     $oLicenseModel->checkLicense('nstore_digital', $args->d_user_id, $args->d_serial_number, TRUE);
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', Context::get('module'), 'act', 'dispLicenseAdminConfig', 'module_srl', Context::get('module_srl'));
         $this->setRedirectUrl($returnUrl);
     }
 }
 /**
  * @brief 모듈 환경설정값 쓰기
  **/
 function procNotificationAdminConfig()
 {
     $args = Context::gets('cellphone_fieldname', 'use_authdata');
     // save module configuration.
     $oModuleControll = getController('module');
     $output = $oModuleControll->insertModuleConfig('notification', $args);
     if (!$output->toBool()) {
         return $output;
     }
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispNotificationAdminConfig');
         $this->setRedirectUrl($returnUrl);
         return;
     }
 }
 function procSejin7940_nickAdminConfig()
 {
     $config->use_change_nick = Context::get('use_change_nick');
     $config->use_deny_nick = Context::get('use_deny_nick');
     $config->change_nick_term = Context::get('change_nick_term');
     $config->use_same_nick = Context::get('use_same_nick');
     $oModuleController =& getController('module');
     $oModuleController->insertModuleConfig('sejin7940_nick', $config);
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispSejin7940_nickAdminConfig');
         header('location:' . $returnUrl);
         return;
     } else {
         return $output;
     }
 }
 function procSyndicationAdminInsertConfig()
 {
     $oModuleController = getController('module');
     $oSyndicationController = getController('syndication');
     $oSyndicationModel = getModel('syndication');
     $config = new stdClass();
     $config->syndication_use = Context::get('syndication_use');
     $config->site_url = preg_replace('/\\/+$/is', '', Context::get('site_url'));
     $config->year = Context::get('year');
     $config->syndication_token = Context::get('syndication_token');
     $config->syndication_password = urlencode(Context::get('syndication_password'));
     if (!$config->site_url) {
         return new Object(-1, 'msg_site_url_is_null');
     }
     if (!$config->syndication_token) {
         return new Object(-1, 'msg_syndication_token_is_null');
     }
     $oModuleController->updateModuleConfig('syndication', $config);
     $except_module = Context::get('except_module');
     $output = executeQuery('syndication.deleteExceptModules');
     if (!$output->toBool()) {
         return $output;
     }
     if ($except_module) {
         $modules = explode(',', $except_module);
         for ($i = 0, $c = count($modules); $i < $c; $i++) {
             $args->module_srl = $modules[$i];
             $output = executeQuery('syndication.insertExceptModule', $args);
             if (!$output->toBool()) {
                 return $output;
             }
         }
     }
     if (!$this->checkOpenSSLSupport()) {
         return new Object(-1, 'msg_need_openssl_support');
     }
     $this->setMessage('success_applied');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispSyndicationAdminConfig');
         $this->setRedirectUrl($returnUrl);
         return;
     }
 }
 /**
  * @brief saving config values.
  **/
 function procPaynotyAdminConfig()
 {
     $oModuleController = getController('module');
     $obj = Context::getRequestVars();
     $config = new stdClass();
     $config_vars = array('use', 'mail_content', 'sending_method', 'sender_no', 'admin_phones', 'content', 'admin_emails', 'sender_name', 'sender_email', 'sender_key', 'variable_name', 'phone_number_type');
     foreach ($config_vars as $val) {
         $config->{$val} = $obj->{$val};
     }
     $output = $oModuleController->insertModuleConfig('paynoty', $config);
     if (!$output->toBool()) {
         return new Object(-1, '설정에 오류가 있었습니다.');
     }
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPaynotyAdminConfig');
         header('location: ' . $returnUrl);
         return;
     }
 }
Example #17
0
 /**
  * Trackbacks sent
  * @return object
  */
 function procTrackbackSend()
 {
     // Yeokingeul to post numbers and shipping addresses Wanted
     $document_srl = Context::get('target_srl');
     $trackback_url = Context::get('trackback_url');
     $charset = Context::get('charset');
     if (!$document_srl || !$trackback_url || !$charset) {
         return new Object(-1, 'msg_invalid_request');
     }
     // Login Information Wanted
     $logged_info = Context::get('logged_info');
     if (!$logged_info->member_srl) {
         return new Object(-1, 'msg_not_permitted');
     }
     // Posts of the information obtained permission to come and check whether
     $oDocumentModel =& getModel('document');
     $oDocument = $oDocumentModel->getDocument($document_srl);
     if (!$oDocument->isExists() || !$oDocument->getSummary()) {
         return new Object(-1, 'msg_invalid_request');
     }
     if ($oDocument->getMemberSrl() != $logged_info->member_srl) {
         return new Object(-1, 'msg_not_permitted');
     }
     // Specify the title of the module, the current article
     $oModuleModel =& getModel('module');
     $module_info = $oModuleModel->getModuleInfoByModuleSrl($oDocument->get('module_srl'));
     Context::setBrowserTitle($module_info->browser_title);
     // Shipping yeokingeul
     $output = $this->sendTrackback($oDocument, $trackback_url, $charset);
     if ($output->toBool() && !in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         global $lang;
         htmlHeader();
         alertScript($lang->success_registed);
         reload(true);
         closePopupScript();
         htmlFooter();
         Context::close();
         exit;
     }
     return $output;
 }
 function procSyndicationAdminInsertService()
 {
     $oModuleController = getController('module');
     $oSyndicationController = getController('syndication');
     $oSyndicationModel = getModel('syndication');
     $config = new stdClass();
     $config->target_services = explode('|@|', Context::get('target_services'));
     $config->site_url = preg_replace('/\\/+$/is', '', Context::get('site_url'));
     $config->year = Context::get('year');
     if (!$config->site_url) {
         return new Object(-1, 'msg_site_url_is_null');
     }
     $oModuleController->insertModuleConfig('syndication', $config);
     $oSyndicationController->ping($oSyndicationModel->getID('site'), 'site');
     $except_module = Context::get('except_module');
     $output = executeQuery('syndication.deleteExceptModules');
     if (!$output->toBool()) {
         return $output;
     }
     if ($except_module) {
         $modules = explode(',', $except_module);
         for ($i = 0, $c = count($modules); $i < $c; $i++) {
             $args->module_srl = $modules[$i];
             $output = executeQuery('syndication.insertExceptModule', $args);
             if (!$output->toBool()) {
                 return $output;
             }
         }
     }
     $this->setMessage('success_applied');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispSyndicationAdminConfig');
         header('location:' . $returnUrl);
         return;
     }
 }
Example #19
0
 public function testRequsetResponseMethod()
 {
     $this->assertEquals(Context::getRequestMethod(), 'GET');
     $_SERVER['REQUEST_METHOD'] = 'POST';
     Context::setRequestMethod();
     $this->assertEquals(Context::getRequestMethod(), 'POST');
     $GLOBALS['HTTP_RAW_POST_DATA'] = 'abcde';
     Context::setRequestMethod();
     $this->assertEquals(Context::getRequestMethod(), 'XMLRPC');
     $_SERVER['CONTENT_TYPE'] = 'application/json';
     Context::setRequestMethod();
     $this->assertEquals(Context::getRequestMethod(), 'JSON');
     Context::setRequestMethod('POST');
     $this->assertEquals(Context::getRequestMethod(), 'POST');
     $this->assertEquals(Context::getResponseMethod(), 'HTML');
     Context::setRequestMethod('JSON');
     $this->assertEquals(Context::getResponseMethod(), 'JSON');
     Context::setResponseMethod('WRONG_TYPE');
     $this->assertEquals(Context::getResponseMethod(), 'HTML');
     Context::setResponseMethod('XMLRPC');
     $this->assertEquals(Context::getResponseMethod(), 'XMLRPC');
     Context::setResponseMethod('HTML');
     $this->assertEquals(Context::getResponseMethod(), 'HTML');
 }
 /**
  * @brief insert item
  **/
 function procNproductAdminInsertItem()
 {
     $oFileController =& getController('file');
     $oNproductController =& getController('nproduct');
     $oNproductModel =& getModel('nproduct');
     $args = Context::getRequestVars();
     $args_check = $args;
     // before
     $output = ModuleHandler::triggerCall('nproduct.insertItem', 'before', $args);
     if (!$output->toBool()) {
         return $output;
     }
     /*
      *  save item info , get item_srl
      */
     $output = $oNproductController->insertItem($args);
     if (!$output->toBool()) {
         return $output;
     }
     $item_srl = $output->get('item_srl');
     $this->add('item_srl', $item_srl);
     if ($item_stock > 0) {
         $args->item_stock = $iem_stock;
     }
     /*
      *  save file
      */
     $args = Context::gets('module_srl', 'thumbnail_image', 'contents_file');
     $args->item_srl = $item_srl;
     if (is_uploaded_file($args->thumbnail_image['tmp_name'])) {
         $output = $oFileController->insertFile($args->thumbnail_image, $args->module_srl, $args->item_srl);
         if (!$output || !$output->toBool()) {
             return $output;
         }
         $args->thumb_file_srl = $output->get('file_srl');
     }
     if (is_uploaded_file($args->contents_file['tmp_name'])) {
         $output = $oFileController->insertFile($args->contents_file, $args->module_srl, $item_srl);
         if (!$output || !$output->toBool()) {
             return $output;
         }
         $args->file_srl = $output->get('file_srl');
     }
     if ($args->file_srl || $args->thumb_file_srl) {
         $output = executeQuery('nproduct.updateItemFile', $args);
         if (!$output->toBool()) {
             return $output;
         }
     }
     $oFileController->setFilesValid($item_srl);
     /*
      * extra_vars insert
      */
     // extras
     $extra_vars = $oNproductModel->getExtraVars($args->module_srl);
     $extra_vars = delObjectVars($extra_vars, $args);
     unset($args);
     foreach ($extra_vars as $k => $v) {
         $ex_args->item_srl = $item_srl;
         $ex_args->name = $k;
         $ex_args->value = $v->getValuePlain();
         $output = executeQuery('nproduct.deleteNproductExtraVars', $ex_args);
         if (!$output->toBool()) {
             return $output;
         }
         $output = executeQuery('nproduct.insertNproductExtraVars', $ex_args);
         if (!$output->toBool()) {
             return $output;
         }
     }
     // before
     $output = ModuleHandler::triggerCall('nproduct.insertItem', 'after', $args);
     if (!$output->toBool()) {
         return $output;
     }
     $this->setMessage('success_registed');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', Context::get('module'), 'act', 'dispNproductAdminUpdateItem', 'module_srl', Context::get('module_srl'), 'item_srl', $item_srl);
         $this->setRedirectUrl($returnUrl);
         return;
     }
 }
 /**
  * @ 실행된 모듈의 컨텐츠를 출력
  **/
 function displayContent($oModule = NULL)
 {
     // 설정된 모듈이 정상이지 않을 경우 message 모듈 객체 생성
     if (!$oModule || !is_object($oModule)) {
         $this->error = 'msg_module_is_not_exists';
     }
     // install 모듈이 아닐 때 DB 접속에 문제가 있으면 오류
     if ($this->module != 'install' && $GLOBALS['__DB__'][Context::getDBType()]->is_connected == false) {
         $this->error = 'msg_dbconnect_failed';
     }
     // 모듈 동작을 마친 후 trigger call
     $output = ModuleHandler::triggerCall('moduleHandler.proc', 'after', $oModule);
     if (!$output->toBool()) {
         $this->error = $output->getMessage();
     }
     // HTML call 이면 message view 객체 이용하도록
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         // 에러가 발생하였을시 처리
         if ($this->error) {
             // message 모듈 객체를 생성해서 컨텐츠 생성
             $oMessageView =& getView('message');
             $oMessageView->setError(-1);
             $oMessageView->setMessage($this->error);
             $oMessageView->dispMessage();
             // 정상적으로 호출된 객체가 있을 경우 해당 객체의 template를 변경
             if ($oModule) {
                 $oModule->setTemplatePath($oMessageView->getTemplatePath());
                 $oModule->setTemplateFile($oMessageView->getTemplateFile());
                 // 그렇지 않으면 message 객체를 호출된 객체로 지정
             } else {
                 $oModule = $oMessageView;
             }
         }
         // 해당 모듈에 layout_srl이 있는지 확인
         if ($oModule->module_info->layout_srl && !$oModule->getLayoutFile()) {
             // layout_srl이 있으면 해당 레이아웃 정보를 가져와 layout_path/ layout_file 위치 변경
             $oLayoutModel =& getModel('layout');
             $layout_info = $oLayoutModel->getLayout($oModule->module_info->layout_srl);
             if ($layout_info) {
                 // 레이아웃 정보중 extra_vars의 이름과 값을 $layout_info에 입력
                 if ($layout_info->extra_var_count) {
                     foreach ($layout_info->extra_var as $var_id => $val) {
                         if ($val->type == 'image') {
                             if (preg_match('/^\\.\\/files\\/attach\\/images\\/(.+)/i', $val->value)) {
                                 $val->value = Context::getRequestUri() . substr($val->value, 2);
                             }
                         }
                         $layout_info->{$var_id} = $val->value;
                     }
                 }
                 // 레이아웃 정보중 menu를 Context::set
                 if ($layout_info->menu_count) {
                     foreach ($layout_info->menu as $menu_id => $menu) {
                         if (file_exists($menu->php_file)) {
                             @(include $menu->php_file);
                         }
                         Context::set($menu_id, $menu);
                     }
                 }
                 // 레이아웃 정보를 Context::set
                 Context::set('layout_info', $layout_info);
                 $oModule->setLayoutPath($layout_info->path);
                 $oModule->setLayoutFile('layout');
                 // 레이아웃이 수정되었을 경우 수정본을 지정
                 $edited_layout = $oLayoutModel->getUserLayoutHtml($layout_info->layout_srl);
                 if (file_exists($edited_layout)) {
                     $oModule->setEditedLayoutFile($edited_layout);
                 }
             }
         }
     }
     // 컨텐츠 출력
     $oDisplayHandler = new DisplayHandler();
     $oDisplayHandler->printContent($oModule);
 }
Example #22
0
 /**
  * Find ID/Password
  *
  * @return Object
  */
 function procMemberFindAccount()
 {
     $email_address = Context::get('email_address');
     if (!$email_address) {
         return new Object(-1, 'msg_invalid_request');
     }
     $oMemberModel = getModel('member');
     $oModuleModel = getModel('module');
     // Check if a member having the same email address exists
     $member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address);
     if (!$member_srl) {
         return new Object(-1, 'msg_email_not_exists');
     }
     // Get information of the member
     $columnList = array('denied', 'member_srl', 'user_id', 'user_name', 'email_address', 'nick_name');
     $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList);
     // Check if possible to find member's ID and password
     if ($member_info->denied == 'Y') {
         $chk_args = new stdClass();
         $chk_args->member_srl = $member_info->member_srl;
         $output = executeQuery('member.chkAuthMail', $chk_args);
         if ($output->toBool() && $output->data->count != '0') {
             return new Object(-1, 'msg_user_not_confirmed');
         }
     }
     // Insert data into the authentication DB
     $args = new stdClass();
     $args->user_id = $member_info->user_id;
     $args->member_srl = $member_info->member_srl;
     $args->new_password = Rhymix\Framework\Password::getRandomPassword(8);
     $args->auth_key = Rhymix\Framework\Security::getRandom(40, 'hex');
     $args->is_register = 'N';
     $output = executeQuery('member.insertAuthMail', $args);
     if (!$output->toBool()) {
         return $output;
     }
     // Get content of the email to send a member
     Context::set('auth_args', $args);
     $member_config = $oModuleModel->getModuleConfig('member');
     $memberInfo = array();
     global $lang;
     if (is_array($member_config->signupForm)) {
         $exceptForm = array('password', 'find_account_question');
         foreach ($member_config->signupForm as $form) {
             if (!in_array($form->name, $exceptForm) && $form->isDefaultForm && ($form->required || $form->mustRequired)) {
                 $memberInfo[$lang->{$form->name}] = $member_info->{$form->name};
             }
         }
     } else {
         $memberInfo[$lang->user_id] = $args->user_id;
         $memberInfo[$lang->user_name] = $args->user_name;
         $memberInfo[$lang->nick_name] = $args->nick_name;
         $memberInfo[$lang->email_address] = $args->email_address;
     }
     Context::set('memberInfo', $memberInfo);
     if (!$member_config->skin) {
         $member_config->skin = "default";
     }
     if (!$member_config->colorset) {
         $member_config->colorset = "white";
     }
     Context::set('member_config', $member_config);
     $tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
     if (!is_dir($tpl_path)) {
         $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
     }
     $find_url = getFullUrl('', 'module', 'member', 'act', 'procMemberAuthAccount', 'member_srl', $member_info->member_srl, 'auth_key', $args->auth_key);
     Context::set('find_url', $find_url);
     $oTemplate =& TemplateHandler::getInstance();
     $content = $oTemplate->compile($tpl_path, 'find_member_account_mail');
     // Get information of the Webmaster
     $oModuleModel = getModel('module');
     $member_config = $oModuleModel->getModuleConfig('member');
     // Send a mail
     $oMail = new Mail();
     $oMail->setTitle(lang('msg_find_account_title'));
     $oMail->setContent($content);
     $oMail->setSender($member_config->webmaster_name ? $member_config->webmaster_name : 'webmaster', $member_config->webmaster_email);
     $oMail->setReceiptor($member_info->user_name, $member_info->email_address);
     $oMail->send();
     // Return message
     $msg = sprintf(lang('msg_auth_mail_sent'), $member_info->email_address);
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberFindAccount');
         $this->setRedirectUrl($returnUrl);
     }
     return new Object(0, $msg);
 }
<?php

if (!defined("__ZBXE__")) {
    exit;
}
if (Context::getRequestMethod() == "XMLRPC" || Context::getResponseMethod() == "XMLRPC") {
    return;
}
if (Context::getRequestMethod() == "POST" && $called_position == 'before_module_proc') {
    $mode = $_REQUEST['mode'];
    if (!$mode || $mode != "fb") {
        return;
    }
    $oController =& getController('tccommentnotify');
    if (!$oController) {
        return;
    }
    $oController->procNotifyReceived();
    return;
}
if ($called_position == "after_module_proc") {
    $oModel =& getModel('tccommentnotify');
    if (!$oModel) {
        return;
    }
    if ($oModel->checkShouldNotify()) {
        $scriptCode = <<<EndOfScript
        <script type="text/javascript">
        // <![CDATA[
            exec_xml("tccommentnotify", "procDoNotify");
        // ]]>
 /**
  * Update a group of selected memebrs
  * @return void|Object (void : success, Object : fail)
  */
 function procMemberAdminUpdateMembersGroup()
 {
     $member_srl = Context::get('member_srl');
     if (!$member_srl) {
         return new Object(-1, 'msg_invalid_request');
     }
     $member_srls = explode(',', $member_srl);
     $group_srl = Context::get('group_srls');
     if (!is_array($group_srl)) {
         $group_srls = explode('|@|', $group_srl);
     } else {
         $group_srls = $group_srl;
     }
     $oDB =& DB::getInstance();
     $oDB->begin();
     // Delete a group of selected members
     $args = new stdClass();
     $args->member_srl = $member_srl;
     $output = executeQuery('member.deleteMembersGroup', $args);
     if (!$output->toBool()) {
         $oDB->rollback();
         return $output;
     }
     // Add to a selected group
     $group_count = count($group_srls);
     $member_count = count($member_srls);
     for ($j = 0; $j < $group_count; $j++) {
         $group_srl = (int) trim($group_srls[$j]);
         if (!$group_srl) {
             continue;
         }
         for ($i = 0; $i < $member_count; $i++) {
             $member_srl = (int) trim($member_srls[$i]);
             if (!$member_srl) {
                 continue;
             }
             $args = new stdClass();
             $args->member_srl = $member_srl;
             $args->group_srl = $group_srl;
             $output = executeQuery('member.addMemberToGroup', $args);
             if (!$output->toBool()) {
                 $oDB->rollback();
                 return $output;
             }
         }
     }
     $oDB->commit();
     $this->_deleteMemberGroupCache();
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         global $lang;
         htmlHeader();
         alertScript($lang->success_updated);
         reload(true);
         closePopupScript();
         htmlFooter();
         Context::close();
         exit;
     }
 }
Example #25
0
 /**
  * @brief send email 
  **/
 function procContactSendEmail()
 {
     $logged_info = Context::get('logged_info');
     if ($this->module_info->send_grant_all != 'Y' && !$logged_info) {
         return new Object(-1, 'msg_logged_can_send_mail');
     }
     if (!$this->module_info->admin_mail) {
         return new Object(-1, 'msg_do_set_admin_mail');
     }
     $oMail = new Mail();
     $oMail->setContentType("plain");
     // get form variables submitted
     $obj = Context::getRequestVars();
     if ($obj->enable_terms == 'Y' && !$obj->check_agree) {
         return new Object(-1, 'msg_terms_of_license_agreement');
     }
     $obj->email = $obj->Email;
     $obj->subject = $obj->Subject;
     $obj->comment = $obj->Comment;
     $oDocumentModel =& getModel('document');
     $extra_keys = $oDocumentModel->getExtraKeys($obj->module_srl);
     $mail_content = array();
     $filter_lang = Context::getLang('filter');
     $content = '';
     if (count($extra_keys)) {
         $oModuleController =& getController('module');
         foreach ($extra_keys as $idx => $extra_item) {
             $value = '';
             if (isset($obj->{'extra_vars' . $idx})) {
                 $value = $obj->{'extra_vars' . $idx};
             } elseif (isset($obj->{$extra_item->eid})) {
                 $value = $obj->{$extra_item->eid};
             }
             if (!is_array($value)) {
                 $value = trim($value);
             }
             if (!isset($value)) {
                 continue;
             }
             //check if extra item is required
             $oModuleController->replaceDefinedLangCode($extra_item->name);
             if ($extra_item->is_required == 'Y' && $value == "") {
                 return new Object(-1, sprintf($filter_lang->invalid, $extra_item->name));
             }
             //if the type of form component is email address
             if ($extra_item->type == 'email_address' && !$oMail->isVaildMailAddress($value)) {
                 return new Object(-1, sprintf($filter_lang->invalid_email, $extra_item->name));
             }
             if ($extra_item->type == "tel") {
                 $mail_content[$extra_item->eid] = $obj->{'extra_vars' . $idx}[2];
                 $content .= $extra_item->name . ':  ' . $obj->{'extra_vars' . $idx}[2] . "\r\n";
             } elseif (is_array($obj->{'extra_vars' . $idx})) {
                 $mail_content[$extra_item->eid] = implode(",", $obj->{'extra_vars' . $idx});
                 $content .= $extra_item->name . ':  ' . implode(",", $obj->{'extra_vars' . $idx}) . "\r\n";
             } else {
                 $mail_content[$extra_item->eid] = $value;
                 $content .= $extra_item->name . ':  ' . $value . "\r\n";
             }
             $mail_title[$extra_item->eid] = htmlspecialchars($extra_item->name);
         }
     }
     if (!$oMail->isVaildMailAddress($obj->email)) {
         return new Object(-1, sprintf($filter_lang->invalid_email, Context::getLang('email_address')));
     }
     $oMail->setTitle($obj->subject);
     $content_all = $content . "\r\nComments:\r\n" . htmlspecialchars($obj->comment);
     $mail_content['Comments'] = $obj->comment;
     $oMail->setContent(htmlspecialchars($content_all));
     //$oMail->setSender("XE Contact Us", $obj->email);
     $oMail->setSender($obj->email . "(" . $_SERVER['REMOTE_ADDR'] . ")", $obj->email);
     $target_mail = explode(',', $this->module_info->admin_mail);
     for ($i = 0; $i < count($target_mail); $i++) {
         $email_address = trim($target_mail[$i]);
         if (!$email_address || !$oMail->isVaildMailAddress($email_address)) {
             continue;
         }
         $oMail->setReceiptor($email_address, $email_address);
         if ($logged_info->is_admin != 'Y') {
             if ($this->module_info->module_srl) {
                 $oModuleModel =& getModel('module');
                 $moduleExtraVars = $oModuleModel->getModuleExtraVars($this->module_info->module_srl);
                 if ($moduleExtraVars[$this->module_info->module_srl]->interval) {
                     $interval = $moduleExtraVars[$this->module_info->module_srl]->interval;
                     //transfer interval to mins
                     $interval = $interval * 60;
                     $oContactModel =& getModel('contact');
                     $output = $oContactModel->checkLimited($interval);
                     if (!$output->toBool()) {
                         return $output;
                     }
                 }
             }
         }
         $oMail->send();
     }
     if (isset($_SESSION['mail_content'])) {
         unset($_SESSION['mail_content']);
     }
     if (isset($_SESSION['mail_title'])) {
         unset($_SESSION['mail_title']);
     }
     $_SESSION['mail_content'] = $mail_content;
     $_SESSION['mail_title'] = $mail_title;
     if ($logged_info->is_admin != 'Y') {
         $oSpamController =& getController('spamfilter');
         $oSpamController->insertLog();
     }
     $this->add('mid', Context::get('mid'));
     $this->setMessage('msg_email_send_successfully');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'act', 'dispCompleteSendMail', 'mid', $obj->mid);
         header('location:' . $returnUrl);
         return;
     }
 }
 /**
  * @brief License agreement
  */
 function procInstallLicenseAggrement()
 {
     $vars = Context::getRequestVars();
     $license_agreement = $vars->license_agreement == 'Y' ? true : false;
     if ($license_agreement) {
         $currentTime = $_SERVER['REQUEST_TIME'];
         FileHandler::writeFile($this->flagLicenseAgreement, $currentTime);
     } else {
         FileHandler::removeFile($this->flagLicenseAgreement);
         return new Object(-1, 'msg_must_accept_license_agreement');
     }
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'act', 'dispInstallCheckEnv');
         $this->setRedirectUrl($returnUrl);
     }
 }
 /**
  * delete plugin info. (it will be deleted in the future)
  */
 function procEpayAdminDeletePlugin()
 {
     $plugin_srl = Context::get('plugin_srl');
     if (!$plugin_srl) {
         return new Object(-1, 'msg_invalid_request');
     }
     $args->plugin_srl = $plugin_srl;
     $output = executeQuery('epay.deletePlugin', $args);
     if (!$output->toBool()) {
         return $output;
     }
     FileHandler::removeDir(sprintf(_XE_PATH_ . "files/epay/%s", $plugin_srl));
     $this->setMessage('success_deleted');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', Context::get('module'), 'act', 'dispEpayAdminPluginList', 'module_srl', Context::get('module_srl'));
         $this->setRedirectUrl($returnUrl);
         return;
     }
 }
 /**
  * layout copy
  * @return void
  */
 function procLayoutAdminCopyLayout()
 {
     $sourceArgs = Context::getRequestVars();
     if ($sourceArgs->layout == 'faceoff') {
         return $this->stop('not supported');
     }
     if (!$sourceArgs->layout_srl) {
         return $this->stop('msg_empty_origin_layout');
     }
     $oLayoutModel = getModel('layout');
     $layout = $oLayoutModel->getLayout($sourceArgs->layout_srl);
     if (!$sourceArgs->title) {
         $sourceArgs->title = array($layout->title . '_' . $this->_makeRandomMid());
     }
     if (!is_array($sourceArgs->title) || count($sourceArgs->title) == 0) {
         return $this->stop('msg_empty_target_layout');
     }
     $output = $oLayoutModel->getLayoutRawData($sourceArgs->layout_srl, array('extra_vars'));
     $args = new stdClass();
     $args->extra_vars = $output->extra_vars;
     $extra_vars = unserialize($args->extra_vars);
     if ($layout->extra_var_count) {
         $reg = "/^.\\/files\\/attach\\/images\\/([0-9]+)\\/(.*)/";
         if ($extra_vars) {
             foreach ($extra_vars as $key => $val) {
                 if ($layout->extra_var->{$key}->type == 'image') {
                     if (!preg_match($reg, $val, $matches)) {
                         continue;
                     }
                     $image_list[$key]->filename = $matches[2];
                     $image_list[$key]->old_file = $val;
                 }
             }
         }
     }
     $oModuleController = getController('module');
     $layout_config = new stdClass();
     $layout_config->header_script = $extra_vars->header_script;
     // Get information to create a layout
     $args->site_srl = (int) $layout->site_srl;
     $args->layout = $layout->layout;
     $args->layout_type = $layout->layout_type;
     if (!$args->layout_type) {
         $args->layout_type = "P";
     }
     $oDB =& DB::getInstance();
     $oDB->begin();
     if (is_array($sourceArgs->title)) {
         foreach ($sourceArgs->title as $key => $value) {
             if (!trim($value)) {
                 continue;
             }
             $args->layout_srl = getNextSequence();
             $args->title = $value;
             if (is_array($image_list)) {
                 foreach ($image_list as $key => $val) {
                     $new_file = sprintf("./files/attach/images/%s/%s", $args->layout_srl, $val->filename);
                     FileHandler::copyFile($val->old_file, $new_file);
                     $extra_vars->{$key} = $new_file;
                 }
                 $args->extra_vars = serialize($extra_vars);
             }
             // for header script
             $oModuleController->insertModulePartConfig('layout', $args->layout_srl, $layout_config);
             // Insert into the DB
             $output = $this->insertLayout($args);
             if (!$output->toBool()) {
                 $oDB->rollback();
                 return $output;
             }
             // initiate if it is faceoff layout
             $this->initLayout($args->layout_srl, $args->layout);
             // update layout info
             $output = $this->updateLayout($args);
             if (!$output->toBool()) {
                 $oDB->rollback();
                 return $output;
             }
             $this->_copyLayoutFile($layout->layout_srl, $args->layout_srl);
         }
     }
     $oDB->commit();
     $this->setMessage('success_registed');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         global $lang;
         htmlHeader();
         alertScript($lang->success_registed);
         reload(true);
         closePopupScript();
         htmlFooter();
         Context::close();
         exit;
     }
 }
 /**
  * @brief Save per-module configurations
  */
 function procPointAdminInsertModuleConfig()
 {
     $args = Context::getRequestVars();
     $configTypeList = array('insert_document', 'insert_comment', 'upload_file', 'download_file', 'read_document', 'voted', 'blamed');
     foreach ($configTypeList as $config) {
         if (is_array($args->{$config})) {
             foreach ($args->{$config} as $key => $value) {
                 $module_config[$key][$config] = $value;
             }
         }
     }
     $oModuleController = getController('module');
     if (count($module_config)) {
         foreach ($module_config as $module_srl => $config) {
             $oModuleController->insertModulePartConfig('point', $module_srl, $config);
         }
     }
     $this->setMessage('success_updated');
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPointAdminModuleConfig');
         header('location:' . $returnUrl);
         return;
     }
 }
 function procNproductInsertOptions()
 {
     $oNproductModel =& getModel('nproduct');
     $item_srl = Context::get('item_srl');
     if (!$item_srl) {
         return new Object(-1, 'msg_invalid_request');
     }
     $option_srls = Context::get('option_srls');
     $options_title = Context::get('options_title');
     $options_price = Context::get('options_price');
     $existing_options = $oNproductModel->getOptions($item_srl);
     foreach ($options_title as $key => $val) {
         if (!$val) {
             continue;
         }
         $args->option_srl = $option_srls[$key];
         if (!$args->option_srl) {
             $args->option_srl = getNextSequence();
             $args->item_srl = $item_srl;
             $args->list_order = $args->option_srl * -1;
             $args->title = $val;
             $args->price = $options_price[$key];
             $output = executeQuery('nproduct.insertOption', $args);
             if (!$output->toBool()) {
                 return $output;
             }
         } else {
             $args->item_srl = $item_srl;
             $args->list_order = $args->option_srl * -1;
             $args->title = $val;
             $args->price = $options_price[$key];
             $output = executeQuery('nproduct.updateOption', $args);
             if (!$output->toBool()) {
                 return $output;
             }
             unset($existing_options[$args->option_srl]);
         }
     }
     if (count($existing_options)) {
         $args->option_srl = array_keys($existing_options);
         $output = executeQuery('nproduct.deleteOptions', $args);
         if (!$output->toBool()) {
             return $output;
         }
     }
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispNproductAdminUpdateItem', 'module_srl', Context::get('module_srl'), 'item_srl', $item_srl);
         $this->setRedirectUrl($returnUrl);
         return;
     }
 }