/**
  * module=menuwrite
  *
  * @param object $menu
  * @return string
  */
 public function render($menu)
 {
     // form
     $form = Html::create('form', array('id' => 'setup_frm', 'class' => 'setup_frm', 'autocomplete' => 'off', 'action' => 'index.php/index/model/menuwrite/save', 'onsubmit' => 'doFormSubmit', 'ajax' => true));
     $fieldset = $form->add('fieldset', array('title' => '{LNG_Menu details}'));
     $groups = $fieldset->add('groups-table', array('label' => '{LNG_Language}', 'id' => 'language', 'comment' => '{LNG_Select the language of this item (Select the first Is present in every language)}'));
     // language
     $groups->add('select', array('id' => 'language', 'labelClass' => 'g-input icon-language', 'itemClass' => 'width', 'options' => ArrayTool::replace(array('' => '{LNG_all languages}'), Language::installedLanguage()), 'value' => empty($menu->id) ? '' : $menu->language));
     $groups->add('a', array('id' => 'copy_menu', 'class' => 'button icon-copy copy', 'title' => '{LNG_Copy this item to the selected language}'));
     // menu_text
     $fieldset->add('text', array('id' => 'menu_text', 'labelClass' => 'g-input icon-menus', 'itemClass' => 'item', 'label' => '{LNG_Text}', 'comment' => '{LNG_Text displayed on the menu}', 'maxlength' => 100, 'value' => $menu->menu_text));
     // menu_tooltip
     $fieldset->add('text', array('id' => 'menu_tooltip', 'labelClass' => 'g-input icon-edit', 'itemClass' => 'item', 'label' => '{LNG_Tooltip}', 'comment' => '{LNG_Message when mouse over the menu}', 'maxlength' => 100, 'value' => $menu->menu_tooltip));
     // accesskey
     $fieldset->add('text', array('id' => 'accesskey', 'labelClass' => 'g-input icon-keyboard', 'itemClass' => 'item', 'label' => '{LNG_Accesskey}', 'comment' => '{LNG_Enter lowercase English letters or numbers to be used as a shortcut to this menu. (Sub-menus do not support the shortcut menu. Do not duplicate keys of the system shortcut)}', 'value' => $menu->accesskey));
     $fieldset = $form->add('fieldset', array('title' => '{LNG_Installation and position of the menu}'));
     // alias
     $fieldset->add('text', array('id' => 'alias', 'labelClass' => 'g-input icon-edit', 'itemClass' => 'item', 'label' => '{LNG_Alias}', 'comment' => '{LNG_The name of the menu (the default is the name of the module is installed)}', 'value' => $menu->alias));
     // parent
     $fieldset->add('select', array('id' => 'parent', 'labelClass' => 'g-input icon-config', 'itemClass' => 'item', 'label' => '{LNG_Menu position}', 'comment' => '{LNG_Select the menu position. The menu will be displayed on the website at the selected position. (Based on templates you are using)}', 'options' => Language::find('MENU_PARENTS', array('MAINMENU' => 'Main menu')), 'value' => $menu->parent));
     // type
     if ($menu->menu_order == 1) {
         $m = 0;
     } elseif ($menu->level == 0) {
         $m = 1;
     } elseif ($menu->level == 1) {
         $m = 2;
     } else {
         $m = 3;
     }
     $fieldset->add('select', array('id' => 'type', 'labelClass' => 'g-input icon-config', 'itemClass' => 'item', 'label' => '{LNG_Menu type}', 'comment' => '{LNG_Select the type of menu}', 'options' => Language::get('MENU_TYPES'), 'value' => $m));
     // menu_order
     $fieldset->add('select', array('id' => 'menu_order', 'labelClass' => 'g-input icon-config', 'itemClass' => 'item', 'label' => '{LNG_Menu order}', 'size' => 8, 'comment' => '{LNG_The sequence of the desired menu. The menu will be displayed next from the selected item}'));
     // published
     $fieldset->add('select', array('id' => 'published', 'labelClass' => 'g-input icon-published1', 'itemClass' => 'item', 'label' => '{LNG_Status}', 'comment' => '{LNG_Publish this item}', 'options' => Language::get('MENU_PUBLISHEDS'), 'value' => $menu->published));
     $fieldset = $form->add('fieldset', array('id' => 'menu_action', 'title' => '{LNG_Action when click on menu}'));
     // action
     if ($menu->menu_url != '') {
         $m = 2;
     } elseif ($menu->index_id == 0) {
         $m = 0;
     } else {
         $m = 1;
     }
     $fieldset->add('select', array('id' => 'action', 'labelClass' => 'g-input icon-config', 'itemClass' => 'item', 'label' => '{LNG_When choosing the menu}', 'comment' => '{LNG_Choose how to proceed. When you click on the menu}', 'options' => Language::get('MENU_ACTIONS'), 'value' => $m));
     // index_id
     $fieldset->add('select', array('id' => 'index_id', 'labelClass' => 'g-input icon-modules', 'itemClass' => 'item action 1', 'label' => '{LNG_installed module}', 'comment' => '{LNG_Choose the page you want to open when you click a menu item from a list of web pages or modules already installed}', 'optgroup' => \Index\Menuwrite\Model::getModules(), 'value' => $menu->owner . '_' . $menu->index_id));
     // menu_url
     $fieldset->add('text', array('id' => 'menu_url', 'labelClass' => 'g-input icon-world', 'itemClass' => 'item action 2', 'label' => '{LNG_URL}', 'comment' => '{LNG_Links for this item, which will open this page when click on it}', 'value' => str_replace(array('{', '}'), array('{', '}'), $menu->menu_url)));
     // menu_target
     $fieldset->add('select', array('id' => 'menu_target', 'labelClass' => 'g-input icon-forward', 'itemClass' => 'item action 1 2', 'label' => '{LNG_The opening page of links}', 'comment' => '{LNG_Determine how to turn the page when a link is clicked}', 'options' => Language::get('MENU_TARGET'), 'value' => $menu->menu_target));
     $fieldset = $form->add('fieldset', array('class' => 'submit'));
     // submit
     $fieldset->add('submit', array('class' => 'button ok large', 'value' => '{LNG_Save}'));
     // id
     $fieldset->add('hidden', array('id' => 'id', 'value' => $menu->id));
     $form->script('initMenuwrite();');
     return $form->render();
 }
 /**
  * จัดการแสดงผลแถวของตาราง
  *
  * @param array $item
  * @return array
  */
 public function onRow($item)
 {
     $item['key'] = Form::text(array('name' => 'save_array[]', 'labelClass' => 'g-input', 'value' => $item['key']))->render();
     foreach (Language::installedLanguage() as $key) {
         $item[$key] = Form::textarea(array('name' => 'language_' . $key . '[]', 'labelClass' => 'g-input', 'value' => isset($item[$key]) ? $item[$key] : ''))->render();
     }
     return $item;
 }
 /**
  * module=maintenance
  *
  * @param string $language
  * @param string $template
  * @return string
  */
 public function render($language, $template)
 {
     // form
     $form = Html::create('form', array('id' => 'setup_frm', 'class' => 'setup_frm', 'autocomplete' => 'off', 'action' => 'index.php/index/model/maintenance/save', 'onsubmit' => 'doFormSubmit', 'ajax' => true));
     $fieldset = $form->add('fieldset', array('title' => '{LNG_The page will appear on your site is in maintenance mode}'));
     // maintenance_mode
     $fieldset->add('select', array('id' => 'maintenance_mode', 'labelClass' => 'g-input icon-config', 'itemClass' => 'item', 'label' => '{LNG_Settings}', 'options' => Language::get('BOOLEANS'), 'value' => isset(self::$cfg->maintenance_mode) ? self::$cfg->maintenance_mode : 0));
     $div = $fieldset->add('groups-table', array('label' => '{LNG_Language}'));
     // language
     $div->add('select', array('id' => 'language', 'labelClass' => 'g-input icon-language', 'itemClass' => 'width', 'options' => Language::installedLanguage(), 'value' => $language));
     $div->add('button', array('id' => 'btn_go', 'itemClass' => 'width', 'class' => 'button go', 'value' => '{LNG_Go}'));
     // detail
     $fieldset->add('ckeditor', array('id' => 'detail', 'itemClass' => 'item', 'height' => 300, 'language' => Language::name(), 'toolbar' => 'Document', 'label' => '{LNG_Detail}', 'value' => $template, 'upload' => true));
     $fieldset = $form->add('fieldset', array('class' => 'submit'));
     // submit
     $fieldset->add('submit', array('class' => 'button ok large', 'value' => '{LNG_Save}'));
     $form->script('doChangeLanguage("btn_go", "index.php?module=maintenance");');
     return $form->render();
 }
 /**
  * ตารางภาษา
  *
  * @return string
  */
 public function render()
 {
     // ชนิดของภาษาที่เลือก php,js
     $type = self::$request->get('type')->toString();
     $type = $type == 'js' ? 'js' : 'php';
     // โหลดภาษา
     $datas = Language::installed($type);
     $installed_language = Language::installedLanguage();
     // Uri
     $uri = self::$request->getUri();
     // ตารางภาษา
     $table = new DataTable(array('datas' => $datas, 'onRow' => array($this, 'onRow'), 'perPage' => max(10, self::$request->cookie('language_perPage', 30)->toInt()), 'sort' => self::$request->cookie('language_sort', 'key')->toString(), 'searchColumns' => array_merge(array('key'), $installed_language), 'headers' => array('id' => array('text' => '{LNG_ID}', 'sort' => 'id'), 'key' => array('text' => '{LNG_Key}', 'sort' => 'key')), 'action' => 'index.php/index/model/language/action?type=' . $type, 'actionCallback' => 'doFormSubmit', 'actionConfirm' => 'confirmAction', 'actions' => array(array('id' => 'action', 'class' => 'ok', 'text' => '{LNG_With selected}', 'options' => array('delete' => '{LNG_Delete}')), array('class' => 'button add icon-plus', 'href' => $uri->createBackUri(array('module' => 'languageedit', 'id' => null, 'type' => $type)), 'text' => '{LNG_Add New}')), 'buttons' => array(array('class' => 'icon-edit button green', 'href' => $uri->createBackUri(array('module' => 'languageedit', 'id' => ':id', 'type' => $type)), 'text' => '{LNG_Edit}')), 'filters' => array('type' => array('name' => 'type', 'text' => '{LNG_Type}', 'options' => array('php' => 'php', 'js' => 'js'), 'value' => $type))));
     foreach ($installed_language as $lng) {
         $table->headers[$lng]['sort'] = $lng;
     }
     // save cookie
     setcookie('language_perPage', $table->perPage, time() + 3600 * 24 * 365, '/');
     setcookie('language_sort', $table->sort, time() + 3600 * 24 * 365, '/');
     return $table->render();
 }
Esempio n. 5
0
 /**
  * แสดงผลหน้าหลักเว็บไซต์
  *
  * @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>&nbsp;</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();
 }
 /**
  * module=languageadd
  *
  * @param string $id
  * @return string
  */
 public function render($id)
 {
     // form
     $form = Html::create('form', array('id' => 'setup_frm', 'class' => 'setup_frm', 'autocomplete' => 'off', 'action' => 'index.php/index/model/languageadd/save', 'onsubmit' => 'doFormSubmit', 'ajax' => true));
     $fieldset = $form->add('fieldset', array('title' => '{LNG_Details of} {LNG_Language}'));
     // language_name
     $fieldset->add('text', array('id' => 'language_name', 'labelClass' => 'g-input icon-language', 'itemClass' => 'item', 'label' => '{LNG_Language}', 'comment' => '{LNG_Language name English lowercase two letters}', 'maxlength' => 2, 'value' => $id));
     if (empty($id)) {
         // copy
         $fieldset->add('select', array('id' => 'lang_copy', 'labelClass' => 'g-input icon-copy', 'itemClass' => 'item', 'label' => '{LNG_Copy}', 'comment' => '{LNG_Copy language from the installation}', 'options' => Language::installedLanguage()));
     }
     // lang_icon
     $img = is_file(ROOT_PATH . "language/{$id}.gif") ? WEB_URL . "language/{$id}.gif" : "../skin/img/blank.gif";
     $fieldset->add('file', array('id' => 'lang_icon', 'labelClass' => 'g-input icon-upload', 'itemClass' => 'item', 'label' => '{LNG_Icon}', 'comment' => '{LNG_Image upload types :type only, should be prepared to have the same size}', 'dataPreview' => 'icoImage', 'previewSrc' => $img));
     $fieldset = $form->add('fieldset', array('class' => 'submit'));
     // submit
     $fieldset->add('submit', array('class' => 'button ok large', 'value' => '{LNG_Save}'));
     // language
     $fieldset->add('hidden', array('id' => 'language', 'value' => $id));
     Gcms::$view->setContents(array('/:type/' => 'gif'), false);
     return $form->render();
 }
 /**
  * module=mailwrite
  *
  * @param object $index
  * @return string
  */
 public function render($index)
 {
     // form
     $form = Html::create('form', array('id' => 'setup_frm', 'class' => 'setup_frm', 'autocomplete' => 'off', 'action' => 'index.php/index/model/mailwrite/save', 'onsubmit' => 'doFormSubmit', 'ajax' => true));
     $fieldset = $form->add('fieldset', array('title' => '{LNG_Details of} {LNG_Email}'));
     // from_email
     $fieldset->add('text', array('id' => 'from_email', 'labelClass' => 'g-input icon-email', 'itemClass' => 'item', 'label' => '{LNG_Sender}', 'comment' => '{LNG_E-mail address for replies. If you do not want a response, please leave blank.}', 'maxlength' => 255, 'value' => $index->from_email));
     // copy_to
     $fieldset->add('text', array('id' => 'copy_to', 'labelClass' => 'g-input icon-cc', 'itemClass' => 'item', 'label' => '{LNG_Copy to}', 'comment' => '{LNG_More email addresses to send a copy of the email. Separate each item with comma (,)}', 'value' => $index->copy_to));
     // subject
     $fieldset->add('text', array('id' => 'subject', 'labelClass' => 'g-input icon-edit', 'itemClass' => 'item', 'label' => '{LNG_Subject}', 'title' => '{LNG_Please fill in} {LNG_Subject}', 'maxlength' => 64, 'value' => $index->subject));
     // language
     $fieldset->add('select', array('id' => 'language', 'labelClass' => 'g-input icon-language', 'itemClass' => 'item', 'label' => '{LNG_Language}', 'comment' => '{LNG_The system will e-mail the selected language. If you do not use the default language.}', 'options' => Language::installedLanguage(), 'value' => $index->language));
     // detail
     $fieldset->add('ckeditor', array('id' => 'detail', 'itemClass' => 'item', 'height' => 300, 'language' => Language::name(), 'toolbar' => 'Document', 'upload' => true, 'label' => '{LNG_Detail}', 'value' => $index->detail));
     $fieldset = $form->add('fieldset', array('class' => 'submit'));
     // submit
     $fieldset->add('submit', array('class' => 'button ok large', 'value' => '{LNG_Save}'));
     // id
     $fieldset->add('hidden', array('id' => 'id', 'value' => $index->id));
     return $form->render();
 }
 /**
  * module=pagewrite
  *
  * @param string $id
  * @return string
  */
 public function render($index)
 {
     // form
     $form = Html::create('form', array('id' => 'setup_frm', 'class' => 'setup_frm', 'autocomplete' => 'off', 'action' => 'index.php/index/model/pagewrite/save', 'onsubmit' => 'doFormSubmit', 'ajax' => true, 'upload' => true));
     $fieldset = $form->add('fieldset', array('title' => '{LNG_Details of} ' . Language::get($index->owner === 'index' ? 'Page' : 'Module')));
     $groups = $fieldset->add('groups-table', array('label' => '{LNG_Language}', 'id' => 'language', 'comment' => '{LNG_Select the language of this item (Select the first Is present in every language)}'));
     // language
     $groups->add('select', array('id' => 'language', 'labelClass' => 'g-input icon-language', 'itemClass' => 'width', 'options' => ArrayTool::replace(array('' => '{LNG_all languages}'), Language::installedLanguage()), 'value' => $index->language));
     $groups->add('a', array('id' => 'btn_copy', 'class' => 'button icon-copy copy', 'title' => '{LNG_Copy this item to the selected language}'));
     // module
     $fieldset->add('text', array('id' => 'module', 'labelClass' => 'g-input icon-modules', 'itemClass' => 'item', 'label' => '{LNG_Module}', 'comment' => '{LNG_Name of this module. English lowercase and number only, short. (Can not use a reserve or a duplicate)}', 'maxlength' => 64, 'value' => $index->module));
     // topic
     $fieldset->add('text', array('id' => 'topic', 'labelClass' => 'g-input icon-edit', 'itemClass' => 'item', 'label' => '{LNG_Topic}', 'comment' => '{LNG_Text displayed on the Title Bar of the browser (3 - 255 characters)}', 'maxlength' => 255, 'value' => $index->topic));
     // keywords
     $fieldset->add('textarea', array('id' => 'keywords', 'labelClass' => 'g-input icon-tags', 'itemClass' => 'item', 'label' => '{LNG_Keywords}', 'comment' => '{LNG_Text keywords for SEO or Search Engine to search}', 'value' => $index->keywords));
     // description
     $fieldset->add('textarea', array('id' => 'description', 'labelClass' => 'g-input icon-file', 'itemClass' => 'item', 'label' => '{LNG_Description}', 'comment' => '{LNG_Text short summary of your story. Which can be used to show in your theme. (If not the program will fill in the contents of the first paragraph)}', 'value' => $index->description));
     // detail
     $fieldset->add('ckeditor', array('id' => 'detail', 'itemClass' => 'item', 'height' => 300, 'language' => Language::name(), 'toolbar' => 'Document', 'upload' => true, 'label' => '{LNG_Detail}', 'value' => $index->detail));
     // published_date
     $fieldset->add('date', array('id' => 'published_date', 'labelClass' => 'g-input icon-calendar', 'itemClass' => 'item', 'label' => '{LNG_Published date}', 'comment' => '{LNG_The date of publication of this information. The publisher will start automatically when you log on due date}', 'value' => $index->published_date));
     // published
     $fieldset->add('select', array('id' => 'published', 'labelClass' => 'g-input icon-published1', 'itemClass' => 'item', 'label' => '{LNG_Published}', 'comment' => '{LNG_Publish this item}', 'options' => Language::get('PUBLISHEDS'), 'value' => $index->published));
     $fieldset = $form->add('fieldset', array('class' => 'submit'));
     // submit
     $fieldset->add('submit', array('class' => 'button ok large', 'value' => '{LNG_Save}'));
     // preview button
     if ($index->owner == 'index') {
         $fieldset->add('button', array('id' => 'btn_preview', 'class' => 'button preview large', 'value' => '{LNG_Preview}'));
     }
     // owner
     $fieldset->add('hidden', array('id' => 'owner', 'value' => $index->owner));
     // id
     $fieldset->add('hidden', array('id' => 'id', 'value' => $index->id));
     $form->script('initIndexWrite();');
     return $form->render();
 }
 /**
  * module=languages
  *
  * @return string
  */
 public function render()
 {
     $section = Html::create('div', array('class' => 'subtitle', 'innerHTML' => '{LNG_Add, edit, and reorder the language of the site. The first item is the default language of the site.}'));
     $list = $section->add('ol', array('class' => 'editinplace_list', 'id' => 'languages'));
     $languages = array();
     foreach (array_merge(self::$cfg->languages, Language::installedLanguage()) as $item) {
         if (empty($languages[$item])) {
             $languages[$item] = $item;
             $row = $list->add('li', array('id' => 'L_' . $item, 'class' => 'sort'));
             $row->add('span', array('class' => 'icon-move'));
             $row->add('span', array('id' => 'delete_' . $item, 'class' => 'icon-delete', 'title' => '{LNG_Delete}'));
             $row->add('a', array('class' => 'icon-edit', 'href' => '?module=languageadd&amp;id=' . $item, 'title' => '{LNG_Edit}'));
             $chk = in_array($item, self::$cfg->languages) ? 'check' : 'uncheck';
             $row->add('span', array('id' => 'check_' . $item, 'class' => 'icon-' . $chk));
             $row->add('span', array('style' => 'background-image:url(' . WEB_URL . 'language/' . $item . '.gif)'));
             $row->add('span', array('innerHTML' => $item));
         }
     }
     $div = $section->add('div', array('class' => 'submit'));
     $a = $div->add('a', array('class' => 'button add large', 'href' => '?module=languageadd'));
     $a->add('span', array('class' => 'icon-plus', 'innerHTML' => '{LNG_Add New} {LNG_Language}'));
     $section->script('initLanguages("languages");');
     return $section->render();
 }
 /**
  * form submit
  */
 public function save()
 {
     $ret = array();
     // referer, session, member
     if (self::$request->initSession() && self::$request->isReferer() && ($login = Login::isAdmin())) {
         if ($login['email'] == 'demo') {
             $ret['alert'] = Language::get('Unable to complete the transaction');
         } else {
             // ชนิดของภาษาที่เลือก php,js
             $type = self::$request->post('write_type')->toString();
             $type = $type == 'js' ? 'js' : 'php';
             // โหลดไฟล์ภาษา ที่ติดตั้ง
             $languages = Language::installed($type);
             // -1 ใหม่ มากกว่า -1แก้ไข
             $write_id = self::$request->post('write_id', -1)->toInt();
             $id = $write_id >= 0 ? $write_id : sizeof($languages);
             // ข้อมูลที่ POST มา
             $key = self::$request->post('write_topic')->quote();
             // ตรวจสอบข้อมูลซ้ำ
             $search = Language::keyExists($languages, $key);
             if ($search == -1 || $search == $id) {
                 $save = array();
                 $languages[$id] = array('key' => $key);
                 foreach (self::$request->post('save_array')->toString() as $key => $value) {
                     foreach (Language::installedLanguage() as $lng) {
                         $v = self::$request->post('language_' . $lng)->get($key)->quote();
                         if ($type == 'php') {
                             if ($v != '' && $v != $languages[$id]['key']) {
                                 $languages[$id][$lng]["{$value}"] = $v;
                             }
                         } elseif ($type == 'js') {
                             if ($v == '' || $v == $languages[$id]['key']) {
                                 if ($v == '') {
                                     $v = $languages[$id]['key'];
                                 }
                                 $languages[$id]['key'] = strtoupper(trim(preg_replace(array('/[\\s_\\!]{1,}/', '/[\\?\\[\\]<>\\{\\}%]/', '/_$/'), array('_', '', ''), $languages[$id]['key'])));
                             }
                             $languages[$id][$lng][''] = $v;
                         }
                     }
                 }
                 foreach ($languages[$id] as $lng => $value) {
                     if ($lng != 'key' && sizeof($value) == 1) {
                         $keys = array_keys($value);
                         if (reset($keys) === '') {
                             $languages[$id][$lng] = $value[$keys[0]];
                         }
                     }
                 }
                 // บันทึกเป็นไฟล์
                 $result = Language::save($languages, $type);
                 // คืนค่า
                 if (empty($result)) {
                     $ret['alert'] = Language::get('Saved successfully');
                     if ($write_id >= 0) {
                         $ret['location'] = self::$request->getUri()->postBack('index.php', array('module' => 'language', 'type' => $type)) . '#datatable_' . $id;
                     } else {
                         $ret['location'] = self::$request->getUri()->postBack('index.php', array('module' => 'language', 'type' => $type, 'sort' => 'id', 'sort_type' => 'desc')) . '#datatable_' . $id;
                     }
                 } else {
                     $ret['alert'] = $result;
                 }
             } else {
                 $ret['alert'] = Language::get('This message already exist');
             }
         }
     } else {
         $ret['alert'] = Language::get('Unable to complete the transaction');
     }
     // คืนค่า json
     echo json_encode($ret);
 }
 /**
  * แสดงผล
  */
 public function render()
 {
     // แอดมิน
     if (Login::isAdmin()) {
         // ชนิดของภาษาที่เลือก php,js
         $this->type = self::$request->get('type')->toString();
         $this->type = $this->type == 'js' ? 'js' : 'php';
         // รายการที่แก้ไข (id)
         $this->id = self::$request->get('id', -1)->toInt();
         // โหลดไฟล์ภาษา ที่ติดตั้ง
         $languages = Language::installed($this->type);
         $installed_languages = Language::installedLanguage();
         $this->languages = array();
         if ($this->id > -1) {
             $this->language = $languages[$this->id];
             foreach ($installed_languages as $item) {
                 if (isset($this->language['array'])) {
                     if (isset($this->language[$item])) {
                         foreach ($this->language[$item] as $k => $v) {
                             if (!isset($this->languages[$k]['key'])) {
                                 $this->languages[$k]['key'] = $k;
                                 foreach ($installed_languages as $a) {
                                     $this->languages[$k][$a] = '';
                                 }
                             }
                             $this->languages[$k][$item] = $v;
                         }
                     }
                 } else {
                     if (!isset($this->languages[0]['key'])) {
                         $this->languages[0]['key'] = '';
                         foreach ($installed_languages as $a) {
                             $this->languages[0][$a] = '';
                         }
                     }
                     if (isset($this->language[$item])) {
                         $this->languages[0][$item] = $this->language[$item];
                     }
                 }
             }
         } else {
             // ใหม่
             $this->language = array('key' => '');
             $this->languages[0]['key'] = '';
             foreach ($installed_languages as $item) {
                 $this->languages[0][$item] = '';
             }
         }
         // แสดงผล
         $section = Html::create('section');
         // breadcrumbs
         $breadcrumbs = $section->add('div', array('class' => 'breadcrumbs'));
         $ul = $breadcrumbs->add('ul');
         $ul->appendChild('<li><span class="icon-tools">{LNG_Tools}</span></li>');
         $ul->appendChild('<li><a href="{BACKURL?module=language}">{LNG_Language}</a></li>');
         $ul->appendChild('<li><span>{LNG_' . ($this->id > -1 ? 'Edit' : 'Create') . '}</span></li>');
         $section->add('header', array('innerHTML' => '<h1 class="icon-language">' . $this->title() . '</h1>'));
         // แสดงฟอร์ม
         $section->appendChild(createClass('Index\\Languageedit\\View')->render($this));
         return $section->render();
     } else {
         // 404.html
         return \Index\Error\Controller::page404();
     }
 }