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; } }
/** * @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); } }
/** * 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); }
/** * @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; } }
/** * 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; } }
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); }
/** * 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; } }
/** * @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; } }