/** * แสดงผลหน้าหลักเว็บไซต์ * * @param Request $request */ public function index(Request $request) { // ตัวแปรป้องกันการเรียกหน้าเพจโดยตรง define('MAIN_INIT', __FILE__); // session cookie $request->initSession(); // ตรวจสอบการ login Login::create(); // กำหนด skin ให้กับ template Template::init($request->get('skin', self::$cfg->skin)->toString()); // backend Gcms::$view = new \Kotchasan\View(); if ($login = Login::adminAccess()) { // โหลดโมดูลที่ติดตั้งแล้ว \Index\Index\Model::installedmodules(); // Controller หลัก $main = new \Index\Main\Controller(); } else { // forgot or login if ($request->request('action')->toString() === 'forgot') { $main = new \Index\Forgot\Controller(); } else { $main = new \Index\Login\Controller(); } } $languages = array(); $uri = $request->getUri(); foreach (array_merge(self::$cfg->languages, Language::installedLanguage()) as $i => $item) { $languages[$item] = '<a id=lang_' . $item . ' href="' . $uri->withParams(array('lang' => $item), true) . '" title="{LNG_Language} ' . strtoupper($item) . '" style="background-image:url(' . WEB_URL . 'language/' . $item . '.gif)" tabindex=1> </a>'; } // เนื้อหา Gcms::$view->setContents(array('/{MAIN}/' => $main->execute($request), '/{VERSION}/' => self::$cfg->version, '/{LANGUAGES}/' => implode('', $languages), '/{TITLE}/' => $main->title() . ' (Admin)', '/{BACKURL(\\?([a-zA-Z0-9=&\\-_@\\.]+))?}/e' => '\\Kotchasan\\View::back')); if ($login) { $name = trim($login['fname'] . ' ' . $login['lname']); Gcms::$view->setContents(array('/{LOGINID}/' => $login['id'], '/{LOGINNAME}/' => empty($name) ? $login['email'] : $name, '/{STATUS}/' => $login['status'], '/{MENUS}/' => \Index\Menu\View::render())); } // ส่งออก เป็น HTML $response = new Response(); $response->withContent(Gcms::$view->renderHTML())->send(); }
/** * ฟังก์ชั่นส่งอีเมล์ */ public function save() { $ret = array(); // referer, session, member if (self::$request->initSession() && self::$request->isSafe() && ($login = Login::adminAccess())) { if ($login['email'] == 'demo') { $ret['alert'] = Language::get('Unable to complete the transaction'); } else { // รับค่าจากการ POST $save = array('reciever' => self::$request->post('reciever')->toString(), 'from' => self::$request->post('from')->toString(), 'subject' => self::$request->post('subject')->topic(), 'detail' => self::$request->post('detail')->toString()); // ตรวจสอบค่าที่ส่งมา $input = false; // reciever if (!empty($save['reciever'])) { foreach (explode(',', $save['reciever']) as $item) { if (!Validator::email($item)) { if (!$input) { $input = 'reciever'; break; } } } } else { $ret['reciever'] = ''; } // subject if (empty($save['subject'])) { $input = !$input ? 'subject' : $input; } else { $ret['ret_subject'] = ''; } // from if (Login::isAdmin()) { if ($save['from'] == self::$cfg->noreply_email) { $save['from'] = self::$cfg->noreply_email . '<' . strip_tags(self::$cfg->web_title) . '>'; } else { $user = $this->db()->createQuery()->from('user')->where(array('email', $save['from']))->first('email', 'displayname'); if ($user) { $save['from'] = $user->email . (empty($user->displayname) ? '' : '<' . $user->displayname . '>'); } else { // ไม่พบผู้ส่ง ให้ส่งโดยตัวเอง $save['from'] = $login['email']; } } } else { // ไม่ใช่แอดมิน ผู้ส่งเป็นตัวเองเท่านั้น $save['from'] = $login['email']; } // detail $patt = array('/^( |\\s){0,}<br[\\s\\/]+?>( |\\s){0,}$/iu' => '', '/<\\?(.*?)\\?>/su' => '', '@<script[^>]*?>.*?</script>@siu' => ''); $save['detail'] = trim(preg_replace(array_keys($patt), array_values($patt), $save['detail'])); if (!$input) { $err = Email::send($save['reciever'], $save['from'], $save['subject'], $save['detail']); if (empty($err)) { // ส่งอีเมล์สำเร็จ $ret['alert'] = Language::get('Your message was sent successfully'); $ret['location'] = self::$request->getUri()->postBack('index.php', array('id' => 0)); } else { // ข้อผิดพลาดการส่งอีเมล์ $ret['alert'] = $err; } // clear self::$request->removeToken(); } else { // คืนค่า input ตัวแรกที่ error $ret['input'] = $input; } } } else { $ret['alert'] = Language::get('Unable to complete the transaction'); } // คืนค่าเป็น JSON echo json_encode($ret); }