public function render() { // form $form = Html::create('form', array('id' => 'forgot_frm', 'class' => 'login', 'autocomplete' => 'off', 'ajax' => false, 'action' => '?action=forgot')); // h1 $form->add('h1', array('class' => 'icon-password', 'innerHTML' => '{LNG_Request new password}')); // message if (!empty(Login::$login_message)) { $form->add('p', array('class' => empty(Login::$login_input) ? 'message' : 'error', 'innerHTML' => Login::$login_message)); } // fieldset $fieldset = $form->add('fieldset'); // email $fieldset->add('email', array('id' => 'login_username', 'labelClass' => 'g-input icon-email', 'placeholder' => '{LNG_Email}', 'value' => isset(Login::$text_username) ? Login::$text_username : '', 'autofocus', 'required', 'accesskey' => 'e', 'maxlength' => 255, 'comment' => '{LNG_New password will be sent to the email address registered. If you do not remember or do not receive emails. Please contact your system administrator (Please check in the Junk Box)}')); // input-groups (div สำหรับจัดกลุ่ม input) $group = $fieldset->add('groups'); // a $group->add('a', array('href' => self::$request->getUri()->withParams(array('action' => 'login'), true), 'class' => 'td', 'title' => '{LNG_Administrator Area}', 'innerHTML' => '{LNG_Sign In} ?')); // submit $fieldset->add('submit', array('class' => 'button ok large wide', 'value' => '{LNG_Get new password}')); $fieldset->add('hidden', array('id' => 'action', 'value' => 'forgot')); // template $template = Template::create('', '', 'login'); $template->add(array('/{FORM}/' => $form->render())); return $template->render(); }
/** * แสดงผล * * @return string */ public function render() { $template = Template::create('', '', '404'); $message = Language::get('Sorry, cannot find a page called Please check the URL or try the call again.'); $template->add(array('/{TOPIC}/' => $message, '/{DETAIL}/' => $message)); return (object) array('topic' => $message, 'detail' => $template->render(), 'description' => $message, 'keywords' => $message, 'module' => '404', 'owner' => 'index'); }
/** * แสดงผล * * @return string */ public function render() { // อ่านข้อมูลสมาชิก $rs = Recordset::create('Index\\User\\Model'); $user = $rs->where((int) $_SESSION['login']['id'])->first('id'); $template = Template::create('member', 'member', 'password'); $contents = array('/{ACCEPT}/' => Mime::getEccept(self::$cfg->user_icon_typies), '/{USER_ICON_TYPIES}/' => sprintf(Language::get('Upload a picture of %s resize automatically'), empty(self::$cfg->user_icon_typies) ? 'jpg' : implode(', ', self::$cfg->user_icon_typies))); // ข้อมูลฟอร์ม foreach ($user as $key => $value) { if ($key == 'sex') { $source = Language::get('SEXES'); $datas = array(); foreach ($source as $k => $v) { $sel = $k == $value ? ' selected' : ''; $datas[] = '<option value="' . $k . '"' . $sel . '>' . $v . '</option>'; } $contents['/{' . strtoupper($key) . '}/'] = implode('', $datas); } elseif ($key === 'subscrib') { $contents['/{' . strtoupper($key) . '}/'] = $value == 1 ? 'checked' : ''; } elseif ($key === 'icon') { if (is_file(ROOT_PATH . self::$cfg->usericon_folder . $value)) { $icon = WEB_URL . self::$cfg->usericon_folder . $value; } else { $icon = WEB_URL . 'skin/img/noicon.jpg'; } $contents['/{ICON}/'] = $icon; } else { $contents['/{' . strtoupper($key) . '}/'] = $value; } } $template->add($contents); return $template->render(); }
/** * แสดงผล * * @return string */ public function render(Request $request) { // อ่านข้อมูลสมาชิก $model = new Model(); $user = $model->db()->createQuery()->from('user')->where(array('id', (int) $_SESSION['login']['id']))->first(); $template = Template::create('member', 'member', 'profile'); $contents = array('/<NEWREGISTER>(.*)<\\/NEWREGISTER>/isu' => $request->request('action')->toString() === 'newregister' ? '\\1' : '', '/<IDCARD>(.*)<\\/IDCARD>/isu' => empty(self::$cfg->member_idcard) ? '' : '\\1', '/{ACCEPT}/' => Mime::getEccept(self::$cfg->user_icon_typies)); // ข้อมูลฟอร์ม foreach ($user as $key => $value) { if ($key == 'sex') { $datas = array(); foreach (Language::get('SEXES') as $k => $v) { $sel = $k == $value ? ' selected' : ''; $datas[] = '<option value="' . $k . '"' . $sel . '>' . $v . '</option>'; } $contents['/{SEX}/'] = implode('', $datas); } elseif ($key === 'subscrib') { $contents['/{SUBSCRIB}/'] = $value == 1 ? 'checked' : ''; } elseif ($key === 'icon') { if (is_file(ROOT_PATH . self::$cfg->usericon_folder . $value)) { $icon = WEB_URL . self::$cfg->usericon_folder . $value; } else { $icon = WEB_URL . 'skin/img/noicon.jpg'; } $contents['/{ICON}/'] = $icon; } else { $contents['/{' . strtoupper($key) . '}/'] = $value; } } $template->add($contents); // after render Gcms::$view->setContents(array('/:type/' => empty(self::$cfg->user_icon_typies) ? 'jpg' : implode(', ', self::$cfg->user_icon_typies)), false); return $template->render(); }
/** * แสดงผล */ public function render($login) { // send email form $form = Html::create('form', array('id' => 'write_frm', 'class' => 'setup_frm', 'action' => 'index.php/index/model/sendmail/save', 'onsubmit' => 'doFormSubmit', 'token' => true, 'ajax' => true)); $fieldset = $form->add('fieldset', array('title' => '{LNG_Details of} {LNG_Email}')); // reciever $reciever = self::$request->get('to')->topic(); $fieldset->add('text', array('id' => 'reciever', 'itemClass' => 'item', 'labelClass' => 'g-input icon-email-sent', 'label' => '{LNG_Reciever}', 'comment' => '{LNG_Recipient's Email Address Many can be found Each separated by, (comma).}', 'autofocus', 'value' => $reciever)); // email_from $datas = array($login['email'] => $login['email']); if (Login::isAdmin() && empty($login['fb'])) { $datas[self::$cfg->noreply_email] = self::$cfg->noreply_email; foreach (\Index\Sendmail\Model::findAdmin(self::$request) as $item) { $datas[$item] = $item; } } $fieldset->add('select', array('id' => 'from', 'itemClass' => 'item', 'labelClass' => 'g-input icon-email', 'label' => '{LNG_Sender}', 'options' => $datas)); // subject $fieldset->add('text', array('id' => 'subject', 'itemClass' => 'item', 'labelClass' => 'g-input icon-edit', 'label' => '{LNG_Subject}', 'comment' => '' . '{LNG_Please fill in} {LNG_Subject}')); // detail $fieldset->add('ckeditor', array('id' => 'detail', 'itemClass' => 'item', 'height' => 300, 'language' => Language::name(), 'toolbar' => 'Email', 'label' => '{LNG_Detail}', 'value' => Template::load('', '', 'mailtemplate'))); $fieldset = $form->add('fieldset', array('class' => 'submit')); // submit $fieldset->add('submit', array('class' => 'button ok large', 'value' => '{LNG_Send message}')); return $form->render(); }
/** * แสดงผล * * @return string */ public function render() { // อ่านข้อมูลสมาชิก $rs = Recordset::create('Index\\User\\Model'); $user = $rs->where((int) $_SESSION['login']['id'])->first('id', 'provinceID', 'country', 'fname', 'lname', 'address1', 'address2', 'province', 'zipcode'); $template = Template::create('member', 'member', 'address'); $contents = array(); // ข้อมูลฟอร์ม foreach ($user as $key => $value) { if ($key === 'provinceID' || $key === 'country') { // select if ($key == 'provinceID') { $source = Province::all(); } elseif ($key == 'country') { $source = Country::all(); } $datas = array(); foreach ($source as $k => $v) { $sel = $k == $value ? ' selected' : ''; $datas[] = '<option value="' . $k . '"' . $sel . '>' . $v . '</option>'; } $contents['/{' . strtoupper($key) . '}/'] = implode('', $datas); } else { $contents['/{' . strtoupper($key) . '}/'] = $value; } } $template->add($contents); return $template->render(); }
/** * Class constructor. */ public function __construct() { try { $this->breadcrumb_template = Template::load('', '', 'breadcrumb'); } catch (\Exception $exc) { $this->breadcrumb_template = ''; } }
/** * แสดงผล */ public function render() { // สมาชิก if ($login = Login::isMember()) { // id ที่ต้องการ ถ้าไม่มีใช้คนที่ login $id = self::$request->get('id', $login['id'])->toInt(); // อ่านข้อมูลสมาชิก $user = \Index\Editprofile\Model::getUser($id); if ($user && ($login['status'] == 1 || $login['id'] == $user->id)) { $template = Template::create('', '', 'editprofile'); $contents = array(); foreach ($user as $key => $value) { if ($key === 'provinceID' || $key === 'country' || $key === 'sex' || $key === 'status') { // select if ($key == 'provinceID') { $source = Province::all(); } elseif ($key == 'country') { $source = Country::all(); } elseif ($key == 'sex') { $source = Language::get('SEXES'); } elseif ($key == 'status') { $source = self::$cfg->member_status; } $datas = array(); foreach ($source as $k => $v) { $sel = $k == $value ? ' selected' : ''; $datas[] = '<option value="' . $k . '"' . $sel . '>' . $v . '</option>'; } $contents['/{' . strtoupper($key) . '}/'] = implode('', $datas); } elseif ($key === 'admin_access' || $key === 'subscrib') { $contents['/{' . strtoupper($key) . '}/'] = $value == 1 ? 'checked' : ''; } elseif ($key === 'icon') { if (is_file(ROOT_PATH . self::$cfg->usericon_folder . $value)) { $icon = WEB_URL . self::$cfg->usericon_folder . $value; } else { $icon = WEB_URL . 'skin/img/noicon.jpg'; } $contents['/{ICON}/'] = $icon; } else { $contents['/{' . strtoupper($key) . '}/'] = $value; } } $contents['/{ADMIN}/'] = Login::isAdmin() && $user->fb == 0 ? '' : 'readonly'; $contents['/{HIDDEN}/'] = implode("\n", Form::get2Input()); $contents['/{ACCEPT}/'] = Mime::getEccept(self::$cfg->user_icon_typies); $template->add($contents); Gcms::$view->setContents(array('/:type/' => implode(', ', self::$cfg->user_icon_typies)), false); return $template->render(); } else { // 404.html return \Index\Error\Controller::page404(); } } else { // 404.html return \Index\Error\Controller::page404(); } }
/** * ฟอร์มเข้าระบบ * * @return string */ public function login() { $template = Template::create('member', 'member', 'login'); if ($template->isEmpty()) { $template = Template::create('member', 'member', 'loginfrm'); } $template->add(array('/{LNG_([^}]+)}/e' => '\\Kotchasan\\Language::get(array(1=>"$1"))', '/{SUBTITLE}/' => empty(Login::$login_message) ? self::$cfg->web_description : '<span class=error>' . Login::$login_message . '</span>', '/{EMAIL}/' => Login::$text_username, '/{PASSWORD}/' => Login::$text_password, '/{TOKEN}/' => self::$request->createToken(), '/{REMEMBER}/' => self::$request->cookie('login_remember')->toInt() == 1 ? 'checked' : '', '/{FACEBOOK}/' => empty(self::$cfg->facebook_appId) ? 'hidden' : 'facebook')); return $template->render(); }
/** * หน้า login * * @param Request $request * @return object */ public function render(Request $request) { $index = (object) array('canonical' => WEB_URL . 'index.php?module=dologin', 'topic' => Language::get('Visitors please login'), 'description' => self::$cfg->web_description, 'menu' => 'dologin'); $template = Template::create('member', 'member', 'loginfrm'); $template->add(array('/{TOKEN}/' => $request->createToken(), '/{EMAIL}/' => Login::$text_username, '/{PASSWORD}/' => Login::$text_password, '/{REMEMBER}/' => self::$request->cookie('login_remember')->toInt() == 1 ? 'checked' : '', '/{FACEBOOK}/' => empty(self::$cfg->facebook_appId) ? 'hidden' : 'facebook', '/{TOPIC}/' => $index->topic, '/{SUBTITLE}/' => $index->description)); $index->detail = $template->render(); $index->keywords = $index->topic; if (isset(Gcms::$view)) { Gcms::$view->addBreadcrumb($index->canonical, Language::get('Sign In')); } return $index; }
/** * แสดงผล * * @param Request $request */ public function index(Request $request) { // เริ่มต้นการใช้งาน Template Template::init(self::$cfg->skin); // ถ้าไม่มีโมดูลเลือกหน้า home $module = $request->get('module', 'home')->toString(); // สร้าง View $view = new \Kotchasan\View(); // template default $view->setContents(array('/{MENU}/' => createClass('Index\\Menu\\Controller')->render($module), '/{TITLE}/' => self::$cfg->web_title, '/{CONTENT}/' => Template::load('', '', $module), '/{TIME}/' => Date::format())); // ส่งออกเป็น HTML echo $view->renderHTML(); }
/** * หน้าขอรหัสผ่านใหม่ * * @param Request $request * @param boolean $modal true แสดงแบบ modal, false (default) แสดงหน้าเว็บปกติ * @return object */ public function render(Request $request, $modal = false) { $index = (object) array('canonical' => WEB_URL . 'index.php?module=forgot', 'topic' => Language::get('Request new password'), 'description' => self::$cfg->web_description); $template = Template::create('member', 'member', 'forgotfrm'); $template->add(array('/{LNG_([^}]+)}/e' => '\\Kotchasan\\Language::get(array(1=>"$1"))', '/{TOPIC}/' => $index->topic, '/{EMAIL}/' => Login::$text_username, '/{WEBURL}/' => WEB_URL, '/{MODAL}/' => $modal ? 'true' : WEB_URL . 'index.php')); $index->detail = $template->render(); $index->keywords = $index->topic; if (isset(Gcms::$view)) { Gcms::$view->addBreadcrumb($index->canonical, Language::get('Forgot')); } // เมนู $index->menu = 'forgot'; return $index; }
/** * แสดงผล * * @param object $index ข้อมูลโมดูล */ public function render($index) { // template main.html, home/main.html $template = Template::create('', $index->module, 'main'); // canonical $index->canonical = Gcms::createUrl($index->module); // add template $template->add(array('/{DETAIL}/' => Gcms::showDetail($index->detail, true, false), '/{TOPIC}/' => $index->topic, '/{MODULE}/' => $index->module)); // detail $index->detail = $template->render(); // breadcrumb ของหน้า Gcms::$view->addBreadcrumb($index->canonical, $index->topic, $index->description); return $index; }
/** * แสดงผล * * @param object $index ข้อมูลโมดูล */ public function render($index) { // รายการ $listitem = Grid::create('search', 'search', 'searchitem'); foreach ($index->items as $item) { if ($item->index == 0 && $item->owner == 'document') { // document $uri1 = \Document\Index\Controller::url($item->module, $item->alias, $item->id); $uri2 = \Document\Index\Controller::url($item->module, $item->alias, $item->id, false); } elseif ($item->index == 0 && $item->owner == 'board') { // board $uri1 = \Board\Index\Controller::url($item->module, 0, $item->id); $uri2 = $uri1; } else { // other if (self::$cfg->module_url == 1) { $uri1 = Gcms::createUrl($item->module, $item->alias); $uri2 = Gcms::createUrl($item->module, $item->alias, 0, 0, '', false); } else { $uri1 = Gcms::createUrl($item->module, '', 0, $item->id, ''); $uri2 = $uri1; } } $listitem->add(array('/{URL}/' => $uri1, '/{TOPIC}/' => $item->topic, '/{LINK}/' => $uri2, '/{DETAIL}/' => $item->description)); } // template search/search.html $template = Template::create('search', 'search', 'search'); // canonical $index->canonical = Gcms::createUrl($index->module); // current URL $uri = \Kotchasan\Http\Uri::createFromUri($index->canonical); if ($index->total > 0) { $list = Gcms::highlightSearch($listitem->render(), $index->q); } else { $list = $index->q == '' ? '' : '<div>' . Language::get('No results were found for') . ' <strong>' . $index->q . '</strong></div>'; $list .= '<div><strong>' . Language::get('Search tips') . ' :</strong>' . Language::get('<ul><li>make sure that the spelling correct</li><li>try changing or new phrases. synonyms</li><li>try to identify a non-specific too</li><li>specific keywords to search the most concise</li></ul>') . '</div>'; } // add template $template->add(array('/{LIST}/' => $list, '/{SPLITPAGE}/' => $uri->pagination($index->totalpage, $index->page), '/{SEARCH}/' => $index->q, '/{MODULE}/' => 'search', '/{RESULT}/' => $index->total == 0 ? '' : sprintf(Language::get('Search results <strong>%d - %d</strong> of about <strong>%d</strong> for <strong>%s</strong> (%s sec)'), $index->start + 1, $index->end, $index->total, $index->q, number_format(microtime(true) - REQUEST_TIME, 4)))); $search = Language::get('Search'); $index->detail = $template->render(); $index->topic = ($index->q == '' ? '' : $index->q . ' - ') . $search; $index->description = $index->topic; $index->keywords = $index->topic; $index->menu = 'search'; // breadcrumb ของหน้า Gcms::$view->addBreadcrumb($index->canonical, $search, $search); return $index; }
/** * มาจากการเรียกด้วย Ajax * * @param Request $request */ public function index(Request $request) { // ตรวจสอบ Referer if ($request->initSession() && $request->isReferer()) { // ตัวแปรป้องกันการเรียกหน้าเพจโดยตรง define('MAIN_INIT', __FILE__); // กำหนด skin ให้กับ template Template::init(self::$cfg->skin); // ค่าจาก POST $query_string = $request->getParsedBody(); // เรียก Class ที่กำหนด if (!empty($query_string['class']) && preg_match('/^[a-zA-Z0-9]+$/', $query_string['method']) && method_exists($query_string['class'], $query_string['method'])) { $method = $query_string['method']; createClass($query_string['class'])->{$method}($request->withQueryParams($query_string)); } } }
/** * หน้าแก้ไขข้อมูลส่วนตัว * * @param Request $request * @return object */ public function render(Request $request) { if ($login = Login::isMember()) { // tab ที่เลือก $tab = $request->request('tab')->toString(); $member_tabs = array_keys(Gcms::$member_tabs); $tab = in_array($tab, $member_tabs) ? $tab : reset($member_tabs); $index = (object) array('description' => self::$cfg->web_description); // รายการ tabs $tabs = array(); if (!empty($login['fb'])) { unset(Gcms::$member_tabs['password']); } foreach (Gcms::$member_tabs as $key => $values) { if ($values[0] != '') { if ($key == $tab) { $class = "tab select {$key}"; $index->topic = Language::get($values[0]); $className = $values[1]; } else { $class = "tab {$key}"; } if (preg_match('/^http:\\/\\/.*/', $values[1])) { $tabs[] = '<li class="' . $class . '"><a href="' . $values[1] . '">' . Language::get($values[0]) . '</a></li>'; } else { $tabs[] = '<li class="' . $class . '"><a href="{WEBURL}index.php?module=editprofile&tab=' . $key . '">' . Language::get($values[0]) . '</a></li>'; } } } if (empty($className)) { // FB และแก้ไขรหัสผ่าน return createClass('Index\\PageNotFound\\Controller')->init($request, 'index'); } else { $template = Template::create('member', 'member', 'main'); $template->add(array('/{TAB}/' => implode('', $tabs), '/{DETAIL}/' => createClass($className)->render($request))); $index->detail = $template->render(); $index->keywords = $index->topic; // menu $index->menu = 'member'; return $index; } } else { // ไม่ได้ login return createClass('Index\\PageNotFound\\Controller')->init($request, 'index'); } }
/** * แสดงข้อมูลสมาชิก * * @param Request $request * @return object */ public function render(Request $request) { // ตรวจสอบข้อมูล $user = \Index\Member\Model::getUserByActivateCode($request->get('id')->topic()); if ($user) { // activate \Index\Member\Model::activateUser($user); // ข้อมูลแสดงผล (สำเร็จ) $details = array('/{DETAIL}/' => Language::get('<b>Congratulations!</b> your members have already confirmed. You can use your email address and password sent with the email address used to login.'), '/{CLASS}/' => 'message'); } else { // ข้อมูลแสดงผล (ไม่สำเร็จ) $details = array('/{DETAIL}/' => Language::get('<b>Sorry!</b> can not find it registered. Information of registration may have expired or your registration may be confirmed.'), '/{CLASS}/' => 'error'); } // template $template = Template::create('member', 'member', 'activate'); $template->add($details); // คืนค่า return (object) array('detail' => $template->render(), 'keywords' => self::$cfg->web_title, 'description' => self::$cfg->web_description, 'topic' => Language::get('Activate') . ' ' . self::$cfg->web_title, 'menu' => 'member'); }
/** * ฟังก์ชั่นตรวจสอบการ Login */ public function chklogin() { if (self::$request->initSession() && self::$request->isSafe()) { // กำหนด skin ให้กับ template Template::init(self::$cfg->skin); // ตรวจสอบการ login Login::create(); // ตรวจสอบสมาชิก $login = Login::isMember(); if ($login) { $name = trim($login['fname'] . ' ' . $login['lname']); $ret = array('alert' => str_replace('%s', empty($name) ? $login['email'] : $name, Language::get('Welcome %s, login complete')), 'content' => rawurlencode(\Index\Login\Controller::init($login)), 'action' => self::$request->post('login_action', self::$cfg->login_action)->toString()); // clear self::$request->removeToken(); } else { $ret = array('alert' => Login::$login_message, 'input' => Login::$login_input); } // คืนค่า JSON echo json_encode($ret); } }
/** * แสดงผลหน้าหลักเว็บไซต์ * * @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(); }
/** * หน้าหลักแอดมิน * * @param Request $request * @return string */ public function execute(Request $request) { // โมดูลจาก URL ถ้าไม่มีใช้ default (dashboard) $module = $request->get('module', 'dashboard')->toString(); if (preg_match('/^([a-z]+)([\\/\\-]([a-z]+))?$/i', $module, $match)) { if (empty($match[3])) { $owner = 'index'; $module = $match[1]; } else { $owner = $match[1]; $module = $match[3]; } } else { $owner = 'index'; $module = 'dashboard'; } // ตรวจสอบหน้าที่เรียก if (is_file(APP_PATH . 'modules/' . $owner . '/controllers/' . $module . '.php')) { // หน้าที่เรียก (Admin) include APP_PATH . 'modules/' . $owner . '/controllers/' . $module . '.php'; $controller = ucfirst($owner) . '\\' . ucfirst($module) . '\\Controller'; } elseif (is_file(ROOT_PATH . 'modules/' . $owner . '/controllers/admin/' . $module . '.php')) { // เรียกโมดูลที่ติดตั้ง include ROOT_PATH . 'modules/' . $owner . '/controllers/admin/' . $module . '.php'; $controller = ucfirst($owner) . '\\Admin\\' . ucfirst($module) . '\\Controller'; } elseif (is_file(ROOT_PATH . 'Widgets/' . ucfirst($owner) . '/Controllers/' . ucfirst($module) . '.php')) { // เรียก Widgets ที่ติดตั้ง include ROOT_PATH . 'Widgets/' . ucfirst($owner) . '/Controllers/' . ucfirst($module) . '.php'; $controller = 'Widgets\\' . ucfirst($owner) . '\\Controllers\\' . ucfirst($module); } else { // หน้า default ของ backend include APP_PATH . 'modules/index/controllers/dashboard.php'; $controller = 'Index\\Dashboard\\Controller'; } $this->controller = new $controller(); // tempalate $template = Template::create('', '', 'main'); $template->add(array('/{CONTENT}/' => $this->controller->render($request))); return $template->render(); }
/** * GLoader * * @param Request $request */ public function index(Request $request) { // session cookie $request->initSession(); // กำหนด skin ให้กับ template Template::init(self::$cfg->skin); // ตรวจสอบโมดูลที่เรียก $index = \Index\Export\Model::module($request->get('module')->toString()); if ($index) { $className = ucfirst($index->owner) . '\\Export\\Controller'; if (method_exists($className, 'init')) { $detail = createClass($className)->init($request, $index); } if ($detail != '') { $view = new \Kotchasan\View(); $view->setContents(array('/{CONTENT}/' => $detail)); echo $view->renderHTML(Template::load('', '', 'print')); exit; } } // ไม่พบโมดูลหรือไม่มีสิทธิ new \Kotchasan\Http\NotFound(); }
public function render() { // form $form = Html::create('form', array('id' => 'login_frm', 'class' => 'login', 'autocomplete' => 'off', 'ajax' => false, 'token' => true, 'action' => '?action=login')); // h1 $form->add('h1', array('class' => 'icon-customer', 'innerHTML' => '{LNG_Administrator Area}')); // message if (!empty(Login::$login_message)) { $form->add('p', array('class' => empty(Login::$login_input) ? 'message' : 'error', 'innerHTML' => Login::$login_message)); if (isset(Login::$login_input)) { $a = array(); $a[] = 'var input = $E("' . Login::$login_input . '");'; $a[] = 'input.focus();'; $a[] = 'input.select();'; $form->script(implode("\n", $a)); } } // fieldset $fieldset = $form->add('fieldset'); // email or phone $fieldset->add('text', array('id' => 'login_username', 'labelClass' => 'g-input icon-email', 'placeholder' => '{LNG_Email}', 'value' => isset(Login::$text_username) ? Login::$text_username : '', 'autofocus', 'required', 'accesskey' => 'e', 'maxlength' => 255)); // password $fieldset->add('password', array('id' => 'login_password', 'labelClass' => 'g-input icon-password', 'placeholder' => '{LNG_Password}', 'value' => isset(Login::$text_password) ? Login::$text_password : '')); // input-groups (div สำหรับจัดกลุ่ม input) $group = $fieldset->add('groups'); // a $group->add('a', array('href' => self::$request->getUri()->withParams(array('action' => 'forgot'), true), 'class' => 'td', 'title' => '{LNG_Request new password}', 'innerHTML' => '{LNG_Forgot} ?')); // checkbox $group->add('checkbox', array('id' => 'login_remember', 'checked' => self::$request->cookie('login_remember')->toInt(), 'value' => 1, 'label' => '{LNG_Remember me}', 'labelClass' => 'td right')); // submit $fieldset->add('submit', array('class' => 'button ok large wide', 'value' => '{LNG_Sign In}')); // template $template = Template::create('', '', 'login'); $template->add(array('/{FORM}/' => $form->render())); return $template->render(); }
/** * หน้าส่งอีเมล์ * สมาชิกส่งจดหมายถึงสมาชิก และ แอดมิน * * @param Request $request * @return object */ public function render(Request $request) { // สมาชิก if ($login = Login::isMember()) { // ค่าที่ส่งมา $to = strtolower($request->get('to')->filter('0-9a-zA-Z')); if (preg_match('/^[0-9]+$/', $to)) { $reciever = \Index\Sendmail\Model::getUser($to); $to = ''; foreach ($reciever as $id => $item) { $to_msg = empty($item['name']) ? $item['email'] : $item['name']; $to = $id; } } elseif ($to == 'admin') { $to_msg = self::$cfg->member_status[1]; } else { $to = ''; } if ($to != '') { // antispam $antispam = new Antispam(); // ข้อมูลส่งกลับ $index = (object) array('topic' => Language::replace('Send a message to the :name', array(':name' => $to_msg)), 'keywords' => self::$cfg->web_title, 'description' => self::$cfg->web_description, 'module' => 'sendmail'); $template = Template::create('member', 'member', 'sendmail'); $template->add(array('/{TOPIC}/' => $index->topic, '/{ANTISPAM}/' => $antispam->getId(), '/{ANTISPAMVAL}/' => Login::isAdmin() ? $antispam->getValue() : '', '/{RECIEVER}/' => $to_msg, '/{SENDER}/' => $login['email'], '/{RECIEVERID}/' => $to)); $index->detail = $template->render(); // breadcrumbs $index->canonical = WEB_URL . 'index.php?module=sendmail&to=' . $to; Gcms::$view->addBreadcrumb($index->canonical, $index->topic); return $index; } } // ไม่สามารถส่งอีเมล์ได้ $message = Language::get('Unable to send e-mail, Because you can not send e-mail to yourself or can not find the email address of the recipient.'); return createClass('Index\\PageNotFound\\Controller')->init($request, 'member', $message); }
/** * Generated from @assert ('/{LNG_([\w\s\.\-\'\(\),%\/:&\#;]+)}/e', '\Kotchasan\Language::get(array(1=>"$1"))', '<b>{LNG_Language test}</b>') [==] '<b>Language test</b>'. * * @covers Kotchasan\Template::pregReplace */ public function testPregReplace2() { $this->assertEquals('<b>Language test</b>', \Kotchasan\Template::pregReplace('/{LNG_([\\w\\s\\.\\-\'\\(\\),%\\/:&\\#;]+)}/e', '\\Kotchasan\\Language::get(array(1=>"$1"))', '<b>{LNG_Language test}</b>')); }
/** * ส่งออกเป็น HTML * * @param string|null $template HTML Template ถ้าไม่กำหนด (null) จะใช้ index.html */ public function renderHTML($template = null) { // default for template if (!empty($this->metas)) { $this->contents['/(<head.*)(<\\/head>)/isu'] = '$1' . implode("\n", $this->metas) . "\n" . '$2'; } $this->contents['/{LNG_([^}]+)}/e'] = '\\Kotchasan\\Language::get(array(1=>"$1"))'; $this->contents['/{WEBTITLE}/'] = self::$cfg->web_title; $this->contents['/{WEBDESCRIPTION}/'] = self::$cfg->web_description; $this->contents['/{WEBURL}/'] = WEB_URL; $this->contents['/{SKIN}/'] = Template::$src; $this->contents['/{LANGUAGE}/'] = \Kotchasan\Language::name(); $this->contents['/^[\\s\\t]+/m'] = ''; foreach ($this->after_contents as $key => $value) { $this->contents[$key] = $value; } // แทนที่ลงใน Template if ($template === null) { // ถ้าไม่ได้กำหนดมาใช้ index.html $template = Template::load('', '', 'index'); } return Template::pregReplace(array_keys($this->contents), array_values($this->contents), $template); }
/** * Index */ public static function page404() { $section = Template::create('', '', '404'); $section->add(array('/{CONTENT}/' => Language::get('Can not be performed this request. Because they do not find the information you need or you are not allowed'))); return $section->render(); }
/** * แสดงผล index.html * * @param Request $request */ public function index(Request $request) { // ตัวแปรป้องกันการเรียกหน้าเพจโดยตรง define('MAIN_INIT', __FILE__); // session cookie $request->initSession(); // ตรวจสอบการ login Login::create(); // กำหนด skin ให้กับ template self::$cfg->skin = $request->get('skin', self::$request->session('skin', self::$cfg->skin)->toString())->toString(); self::$cfg->skin = is_file(ROOT_PATH . 'skin/' . self::$cfg->skin . '/style.css') ? self::$cfg->skin : 'bighead'; $_SESSION['skin'] = self::$cfg->skin; Template::init(self::$cfg->skin); // ตรวจสอบหน้าที่จะแสดง if (!empty(self::$cfg->maintenance_mode) && !Login::isAdmin()) { Gcms::$view = new \Index\Maintenance\View(); } elseif (!empty(self::$cfg->show_intro) && str_replace(array(BASE_PATH, '/'), '', $request->getUri()->getPath()) == '') { Gcms::$view = new \Index\Intro\View(); } else { // counter และ useronline $new_day = \Index\Counter\Model::init(); // View Gcms::$view = new \Gcms\View(); // โมดูลที่ติดตั้ง $dir = ROOT_PATH . 'modules/'; // โหลดโมดูลทั้งหมด foreach (\Index\Module\Model::getInstalledModule() as $owner) { if (is_file($dir . $owner . '/controllers/init.php')) { include $dir . $owner . '/controllers/init.php'; $class = ucfirst($owner) . '\\Init\\Controller'; if (method_exists($class, 'init')) { createClass($class)->init(); } } if ($new_day && is_file($dir . $owner . '/controllers/cron.php')) { include $dir . $owner . '/controllers/cron.php'; $class = ucfirst($owner) . '\\Cron\\Controller'; if (method_exists($class, 'init')) { createClass($class)->init(); } } } // โหลด Init ของ Widgets $dir = ROOT_PATH . 'Widgets/'; $f = @opendir($dir); if ($f) { while (false !== ($text = readdir($f))) { if ($text != "." && $text != "..") { if (is_dir($dir . $text)) { if (is_file($dir . $text . '/Controllers/Init.php')) { include $dir . $text . '/Controllers/Init.php'; $class = 'Widgets\\' . ucfirst($text) . '\\Controllers\\Init'; if (method_exists($class, 'init')) { createClass($class)->init(); } } } } } closedir($f); } // หน้า home มาจากเมนูรายการแรก $home = Gcms::$menu->homeMenu(); if ($home) { $home->canonical = WEB_URL . 'index.php'; // breadcrumb หน้า home Gcms::$view->addBreadcrumb($home->canonical, $home->menu_text, $home->menu_tooltip, 'icon-home'); } // ตรวจสอบโมดูลที่เรียก $modules = \Index\Module\Controller::get($request->getQueryParams()); if (!empty($modules)) { // โหลดโมดูลที่เรียก $page = createClass($modules->className)->{$modules->method}($request, $modules->module); } if (empty($page)) { // ไม่พบหน้าที่เรียก (index) $page = createClass('Index\\PageNotFound\\Controller')->init($request, 'index'); } // title ของเว็บไซต์ $web_title = strip_tags($page->topic); // meta tag $meta = array('generator' => '<meta name=generator content="GCMS AJAX CMS design by http://gcms.in.th">', 'og:title' => '<meta property="og:title" content="' . $web_title . '">', 'description' => '<meta name=description content="' . $page->description . '">', 'keywords' => '<meta name=keywords content="' . $page->keywords . '">', 'og:site_name' => '<meta property="og:site_name" content="' . $web_title . '">', 'og:type' => '<meta property="og:type" content="article">'); // โมดูลแรกสุด ใส่ลงใน Javascript $module_list = array_keys(Gcms::$install_modules); $script = array('var FIRST_MODULE = "' . reset($module_list) . '";'); // logo $image_logo = ''; if (!empty(self::$cfg->logo) && is_file(ROOT_PATH . DATA_FOLDER . 'image/' . self::$cfg->logo)) { $image_src = WEB_URL . DATA_FOLDER . 'image/' . self::$cfg->logo; $info = getImageSize(ROOT_PATH . DATA_FOLDER . 'image/' . self::$cfg->logo); if ($info[0] > 0 || $info[1] > 0) { $ext = explode('.', self::$cfg->logo); if (strtolower(end($ext)) == 'swf') { $script[] = '$G(window).Ready(function(){'; $script[] = 'if ($E("logo")) {'; $script[] = "new GMedia('logo_swf', '" . $image_src . "', {$info['0']}, {$info['1']}).write('logo');"; $script[] = '}'; $script[] = '});'; } else { $image_logo = '<img src="' . $image_src . '" alt="{WEBTITLE}">'; } } } if (empty($page->image_src)) { if (is_file(ROOT_PATH . DATA_FOLDER . 'image/facebook_photo.jpg')) { $page->image_src = WEB_URL . DATA_FOLDER . 'image/facebook_photo.jpg'; } } elseif (!empty($image_src)) { $page->image_src = $image_src; } if (!empty($page->image_src)) { $meta['image_src'] = '<link rel=image_src href="' . $page->image_src . '">'; $meta['og:image'] = '<meta property="og:image" content="' . $page->image_src . '">'; } if (!empty(self::$cfg->facebook_appId)) { $meta['og:app_id'] = '<meta property="fb:app_id" content="' . self::$cfg->facebook_appId . '">'; } if (isset($page->canonical)) { $meta['canonical'] = '<meta name=canonical content="' . $page->canonical . '">'; $meta['og:url'] = '<meta property="og:url" content="' . $page->canonical . '">'; } $meta['script'] = "<script>\n" . implode("\n", $script) . "\n</script>"; Gcms::$view->setMetas($meta); // ภาษาที่ติดตั้ง $languages = Template::create('', '', 'language'); foreach (self::$cfg->languages as $lng) { $languages->add(array('/{LNG}/' => $lng)); } // เมนูหลัก Gcms::$view->setContents(Gcms::$menu->render(isset($page->menu) ? $page->menu : $page->module)); // เนื้อหา Gcms::$view->setContents(array('/{CONTENT}/' => $page->detail, '/{TITLE}/' => $web_title, '/{LANGUAGES}/' => $languages->render(), '/{LOGO}/' => $image_logo)); } // ส่งออก เป็น HTML $response = new Response(); $response->withContent(Gcms::$view->renderHTML())->send(); }
/** * GLoader * * @param Request $request */ public function index(Request $request) { // ตรวจสอบ Referer if ($request->initSession() && $request->isReferer()) { // ตัวแปรป้องกันการเรียกหน้าเพจโดยตรง define('MAIN_INIT', __FILE__); // ตรวจสอบการ login Login::create(); // กำหนด skin ให้กับ template Template::init(self::$cfg->skin); // counter และ useronline \Index\Counter\Model::init(); // View Gcms::$view = new \Index\Loader\View(); // โมดูลที่ติดตั้ง $dir = ROOT_PATH . 'modules/'; // โหลดโมดูลทั้งหมด foreach (\Index\Module\Model::getInstalledModule() as $owner) { if (is_file($dir . $owner . '/controllers/init.php')) { include $dir . $owner . '/controllers/init.php'; $class = ucfirst($owner) . '\\Init\\Controller'; if (method_exists($class, 'init')) { createClass($class)->init(); } } } // โหลด Init ของ Widgets $dir = ROOT_PATH . 'Widgets/'; $f = @opendir($dir); if ($f) { while (false !== ($text = readdir($f))) { if ($text != "." && $text != "..") { if (is_dir($dir . $text)) { if (is_file($dir . $text . '/Controllers/Init.php')) { include $dir . $text . '/Controllers/Init.php'; $class = 'Widgets\\' . ucfirst($text) . '\\Controllers\\Init'; if (method_exists($class, 'init')) { createClass($class)->init(); } } } } } closedir($f); } // หน้า home มาจากเมนูรายการแรก $home = Gcms::$menu->homeMenu(); if ($home) { $home->canonical = WEB_URL . 'index.php'; // breadcrumb หน้า home Gcms::$view->addBreadcrumb($home->canonical, $home->menu_text, $home->menu_tooltip, 'icon-home'); } // ตรวจสอบโมดูลที่เรียก $posts = $request->getParsedBody(); $modules = \Index\Module\Controller::get($posts); if (!empty($modules)) { // โหลดโมดูลที่เรียก $page = createClass($modules->className)->{$modules->method}($request->withQueryParams($posts), $modules->module); } if (empty($page)) { // ไม่พบหน้าที่เรียก (index) $page = createClass('Index\\PageNotFound\\Controller')->init($request, 'index'); } // output เป็น HTML $ret = array('db_elapsed' => round(microtime(true) - REQUEST_TIME, 4), 'db_quries' => \Kotchasan\Database\Driver::queryCount()); foreach ($page as $key => $value) { $ret[$key] = $value; } if (empty($ret['menu'])) { $ret['menu'] = $ret['module']; } $ret['detail'] = Gcms::$view->renderHTML($page->detail); echo json_encode($ret); } }
public function view(Request $request) { $topic = Language::get('Personal information') . ' ' . self::$cfg->web_title; $user = \Index\Member\Model::getUserById($request->get('id')->toInt()); if ($user) { $template = Template::create('member', 'member', 'view'); $template->add(array('/{ID}/' => $user->id, '/{EMAIL}/' => $user->email, '/{FNAME}/' => $user->fname, '/{LNAME}/' => $user->lname, '/{SEX}/' => $user->sex === 'f' || $user->sex === 'm' ? $user->sex : 'u', '/{DATE}/' => Date::format($user->create_date), '/{WEBSITE}/' => $user->website, '/{VISITED}/' => $user->visited, '/{LASTVISITED}/' => Date::format($user->lastvisited), '/{POST}/' => number_format($user->post), '/{REPLY}/' => number_format($user->reply), '/{STATUS}/' => isset(self::$cfg->member_status[$user->status]) ? self::$cfg->member_status[$user->status] : 'Unknow', '/{COLOR}/' => $user->status, '/{SOCIAL}/' => $user->fb == 1 ? 'icon-facebook' : '', '/{TOPIC}/' => $topic)); // breadcrumbs $canonical = WEB_URL . 'index.php?module=member&id=' . $user->id; Gcms::$view->addBreadcrumb($canonical, $topic); // คืนค่า return (object) array('detail' => $template->render(), 'keywords' => self::$cfg->web_title, 'description' => self::$cfg->web_description, 'topic' => $topic, 'canonical' => $canonical); } else { // ไม่พบสมาชิก return createClass('Index\\PageNotFound\\Controller')->init($request, 'index'); } }