コード例 #1
0
ファイル: Locale.php プロジェクト: piratevn/cms-gio
 public function configAction()
 {
     $request = $this->getRequest();
     $languagesFile = ROOT_DIR . DS . 'configs' . DS . 'languages.xml';
     if (!file_exists($languagesFile)) {
         return;
     }
     $languagesXml = @simplexml_load_file($languagesFile);
     if (null == $languagesXml) {
         return;
     }
     $locales = array();
     foreach ($languagesXml->language as $language) {
         $arr = explode('|', $language);
         $locales[$arr[0]] = array('code' => $arr[0], 'localName' => $arr[1], 'englishName' => $arr[2]);
     }
     $this->view->locales = $locales;
     $this->view->availableLanguages = array();
     $configs = Gio_Core_Config_Xml::getConfig();
     $this->view->configs = $configs;
     $default = isset($configs->localization->languages->default) ? $configs->localization->languages->default : $configs->web->language;
     $available = isset($configs->localization->languages->list) ? explode(',', $configs->localization->languages->list) : array($default);
     $this->view->availableLanguages = $available;
     if ($request->isPost()) {
         $localizationEenable = $request->getPost('localization_enable') != null ? 'true' : 'false';
         $default = $request->getPost('default_language');
         $available = $request->getPost('supported_languages');
         $listLangs = array($default);
         if ($available != null) {
             foreach ($available as $index => $locale) {
                 if ($locale != $default) {
                     $listLangs[] = $locale;
                 }
             }
         }
         $configs->web->language = $default;
         $configs->localization->enable = $localizationEenable;
         $configs->localization->languages->default = $default;
         $configs->localization->languages->list = implode(',', $listLangs);
         /**
          * Reset language details
          */
         $configs->localization->languages->details = null;
         foreach ($listLangs as $lang) {
             $configs->localization->languages->details->{$lang} = implode('|', array($locales[$lang]['code'], $locales[$lang]['localName'], $locales[$lang]['englishName']));
         }
         $configFile = Gio_Core_Config_Xml::getConfigFile();
         $content = $configs->asXML();
         $fileName = Gio_Core_Config_Xml::getConfigFile();
         Gio_Core_File::writeToFile($fileName, $content);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('locale_actions_config_success'));
         $this->redirect($this->view->url('core_locale_config'));
     }
 }
コード例 #2
0
ファイル: Config.php プロジェクト: piratevn/cms-gio
 /**
  * Configure mail server
  * 
  * @return void
  */
 public function serverAction()
 {
     $config = Modules_Mail_Services_Mail::getConfig();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $data = $request->getPost('config');
         Modules_Mail_Services_Mail::saveConfig($data);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('config_actions_server_success'));
         $this->redirect($this->view->url('mail_config_server'));
     }
     $this->view->configData = $config;
 }
コード例 #3
0
ファイル: View.php プロジェクト: piratevn/cms-gio
 public function __construct($blocks = array())
 {
     $this->setBlocks($blocks);
     $configs = Gio_Core_Config_Xml::getConfig();
     /**
      * Not installed GioCMS
      */
     if (!Gio_Core_Application::_initInstallChecker()) {
         $request = Gio_Core_Request::getInstance();
         $configs->server->static = $request->getBaseUrl();
         $configs->server->resource = $request->getBaseUrl();
         $configs->web->url = $request->getBaseUrl();
     }
     $this->APP_STATIC_SERVER = (string) $configs->server->static;
     $this->APP_RESOURCE_SERVER = (string) $configs->server->resource;
     $this->APP_WEB_URL = (string) $configs->web->url;
     $this->APP_WEB_NAME = (string) $configs->web->name;
     $this->APP_TEMPLATE = (string) $configs->web->template;
     $this->APP_SKIN = (string) $configs->web->skin;
     $this->APP_META_KEYWORD = (string) $configs->web->meta->keyword;
     $this->APP_META_DESCRIPTION = (string) $configs->web->meta->description;
     $defaultLanguage = (string) $configs->web->language;
     //$lang						= Gio_Core_Request::getInstance()->getParam('lang');
     //$this->APP_LANG				= ($lang && $defaultLanguage != $lang) ? $lang : $defaultLanguage;
     $this->APP_LANG = $defaultLanguage;
     $routes = Gio_Core_Route::getInstance();
     $this->routes = $routes;
     $string = Gio_Core_String::getInstance();
     $this->STRING = $string;
     $translator = new Gio_Core_Translator();
     $this->TRANSLATOR = $translator;
     if (Gio_Core_Application::_initInstallChecker() == true) {
         $acl = Gio_Core_Acl::getIntance();
         $this->ACL = $acl;
     }
     $messenger = Gio_Core_Messenger::getInstance();
     $this->MESSENGER = $messenger;
     if (Gio_Core_Application::_initInstallChecker()) {
         $user = Gio_Core_Session::getUser();
         $this->USER = $user;
     }
     /**
      * JSON
      */
     $json = new Services_JSON();
     $this->JSON = $json;
     $this->CONFIG = $configs;
 }
コード例 #4
0
ファイル: Comment.php プロジェクト: piratevn/cms-gio
 public function sendAction()
 {
     $this->disableLayout();
     $this->setNoRender();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $commentData = $request->getPost('comment');
         $paramString = $commentData['params'];
         $json = new Services_JSON();
         $params = base64_decode($paramString);
         $comment = array('title' => $this->view->STRING->escape($commentData['title']), 'content' => $this->view->STRING->escape($commentData['content']), 'full_name' => $this->view->STRING->escape($commentData['full_name']), 'email' => $this->view->STRING->escape($commentData['email']), 'phone' => $this->view->STRING->escape($commentData['phone']), 'web_site' => '', 'ip' => $request->getRemoteIp(), 'created_date' => date('Y-m-d H:i:s'), 'status' => 'inactive', 'reply_to' => 0, 'route' => $commentData['route'], 'params' => $paramString);
         $id = Modules_Comment_Services_Comment::add($comment);
         $comment['comment_id'] = $id;
         Modules_Comment_Services_Comment::reupdateOrderInThread($comment);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('comment_actions_send_success'));
         $this->redirect($this->view->url($comment['route'], (array) $json->decode($params)));
     }
 }
コード例 #5
0
ファイル: Web.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $webId = $request->getParam('web_id');
     $web = Modules_News_Services_Web::getById($webId);
     if (null == $web) {
         Modules_Core_Services_Exception::error('DATA_NOT_FOUND');
     }
     $this->view->webData = $web;
     if ($request->isPost()) {
         $webData = $request->getPost('web');
         $webData = Modules_News_Services_Web::validate($webData);
         if (isset($webData['messages_error']) && $webData['messages_error']) {
             $this->view->errorMessages = $webData['messages'];
             $webData['web_id'] = $web['web_id'];
             $this->view->webData = $webData;
             return;
         }
         $web['name'] = $this->view->STRING->escape($webData['name']);
         $web['screen_name'] = $this->view->STRING->escape($webData['screen_name']);
         $web['status'] = $webData['status'];
         Modules_News_Services_Web::update($web);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('web_actions_edit_success'));
         $this->redirect($this->view->url('news_web_edit', $web));
     }
 }
コード例 #6
0
ファイル: Page.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $template = $request->getParam('template_id');
     $this->view->template = $template;
     $pageId = $request->getParam('page_id');
     $page = Modules_Core_Services_Page::getById($pageId);
     if (null == $page) {
         return;
     }
     $page['template_id'] = $template;
     $this->view->pageData = $page;
     $dbRoutesPage = Modules_Core_Services_Page::dbPages('route');
     $routes = array();
     if ($dbRoutesPage) {
         foreach ($dbRoutesPage as $index => $route) {
             $routes[] = $route['route'];
         }
     }
     $this->view->dbRoutesPage = $routes;
     $routesFrontend = Gio_Core_Route::getInstance()->getRoutes(true);
     $this->view->routesFrontend = $routesFrontend;
     if ($request->isPost()) {
         $pageData = $request->getPost('page');
         $pageData = Modules_Core_Services_Page::validate($pageData);
         if (isset($pageData['messages_error']) && $pageData['messages_error']) {
             $this->view->errorMessages = $pageData['messages'];
             $pageData['page_id'] = $pageId;
             $pageData['template_id'] = $template;
             $this->view->pageData = $pageData;
             return;
         }
         if (in_array($pageData['route'], $routes) && $page['route'] != $pageData['route']) {
             Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('page_actions_edit_exist'));
             $this->redirect($this->view->url('core_page_edit', $page));
             return;
         }
         Modules_Core_Services_Page::update($pageData);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('page_actions_edit_success'));
         $this->redirect($this->view->url('core_page_edit', $page));
     }
 }
コード例 #7
0
ファイル: Template.php プロジェクト: piratevn/cms-gio
 /**
  * Update mail template
  * 
  * @return void
  */
 public function editAction()
 {
     $user = Gio_Core_Session::getUser();
     $request = $this->getRequest();
     $templateId = $request->getParam('template_id');
     $template = Modules_Mail_Services_Template::getById($templateId);
     if (null == $template || $user['user_id'] != $template['created_user_id']) {
         Modules_Core_Services_Exception::error('DATA_NOT_FOUND');
     }
     $this->view->templateData = $template;
     if ($request->isPost()) {
         $templateData = $request->getPost('template');
         $templateData = Modules_Mail_Services_Template::validate($templateData);
         if (isset($templateData['messages_error']) && $templateData['messages_error']) {
             $this->view->errorMessages = $templateData['messages'];
             $templateData['template_id'] = $template['template_id'];
             $this->view->templateData = $templateData;
             return;
         }
         $template['name'] = $templateData['name'];
         $template['title'] = $templateData['title'];
         $template['subject'] = $templateData['subject'];
         $template['body'] = $templateData['body'];
         $template['from_mail'] = $templateData['from_mail'];
         $template['from_name'] = $templateData['from_name'];
         $template['reply_to_mail'] = $templateData['reply_to_mail'];
         $template['reply_to_name'] = $templateData['reply_to_name'];
         Modules_Mail_Services_Template::update($template);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('template_edit_success'));
         $this->redirect($this->view->url('mail_template_edit', $template));
     }
 }
コード例 #8
0
ファイル: Banner.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $bannerId = $request->getParam('banner_id');
     $banner = Modules_Ad_Services_Banner::getById($bannerId);
     if (null == $banner) {
         throw new Exception('Banner with id : ' . $bannerId . ' was not found');
     }
     $zones = Modules_Ad_Services_Zone::getAllZones(true);
     $this->view->zones = $zones;
     $pages = Modules_Core_Services_Page::dbPages();
     $this->view->pages = $pages;
     $bannerPagesAssoc = Modules_Ad_Services_BannerPageAssoc::getBannerPageAssoc($bannerId);
     $items = array('title' => array(), 'route' => array(), 'zone_id' => array(), 'zone_code' => array(), 'url' => array());
     if ($bannerPagesAssoc) {
         foreach ($bannerPagesAssoc as $index => $page) {
             $items['title'][] = $page['page_title'];
             $items['route'][] = $page['route'];
             $items['zone_id'][] = $page['zone_id'];
             $items['zone_code'][] = $page['code'];
             $items['url'][] = $page['page_url'];
         }
     }
     $bannerData = $banner;
     $bannerData['items'] = $items;
     $this->view->bannerData = $bannerData;
     if ($request->isPost()) {
         $bannerData = $request->getPost('banner');
         $bannerData = Modules_Ad_Services_Banner::validate($bannerData);
         $items = $request->getPost('items');
         $bannerData['items'] = $items;
         $bannerData['banner_id'] = $bannerId;
         if (isset($bannerData['messages_error']) && $bannerData['messages_error']) {
             $this->view->errorMessages = $bannerData['messages'];
             $this->view->bannerData = $bannerData;
             return;
         }
         $banner = array('banner_id' => $bannerData['banner_id'], 'name' => $this->view->STRING->escape($bannerData['name']), 'description' => null, 'mode' => $this->view->STRING->escape($bannerData['mode']), 'format' => $this->view->STRING->escape($bannerData['format']), 'width' => (int) $bannerData['width'], 'height' => (int) $bannerData['height'], 'html_code' => $this->view->STRING->escape($bannerData['html_code']), 'url' => $this->view->STRING->escape($bannerData['url']), 'file_url' => $this->view->STRING->escape($bannerData['file_url']), 'status' => $this->view->STRING->escape($bannerData['status']));
         $bannerId = Modules_Ad_Services_Banner::update($banner, $items);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('banner_edit_action_success'));
         $this->redirect($this->view->url('ad_banner_edit', $banner));
     }
 }
コード例 #9
0
ファイル: Menu.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $this->view->lang = $request->getParam('lang');
     $menuId = $request->getParam('menu_id');
     $menu = Modules_Menu_Services_Menu::getById($menuId);
     if (null == $menu) {
         Modules_Core_Services_Exception::error('DATA_NOT_FOUND');
     }
     $menuData = $menu;
     /**
      * Get menu items
      */
     $items = Modules_Menu_Services_Item::getTree($menuId);
     $menuData['items'] = $items;
     $this->view->menuData = $menuData;
     /**
      * Get source item
      */
     $sourceMenu = Modules_Menu_Services_Menu::getSource($menu);
     $this->view->sourceMenu = $sourceMenu;
     if ($request->isPost()) {
         $user = Gio_Core_Session::getUser();
         $menuData = $request->getPost('menu');
         $json = new Services_JSON();
         $items = $menuData['items'] ? (array) $json->decode($menuData['items']) : array();
         $menuData = Modules_Menu_Services_Menu::validate($menuData);
         if (isset($menuData['messages_error']) && $menuData['messages_error']) {
             $this->view->errorMessages = $menuData['messages'];
             $menuData['items'] = $items;
             $this->view->menuData = $menuData;
             return;
         }
         $menu = array('menu_id' => $menuId, 'name' => $this->view->STRING->escape($menuData['name']), 'description' => $this->view->STRING->escape($menuData['description']), 'language' => $this->view->STRING->escape($menuData['language']));
         $sourceItem = isset($menuData['source_item']) ? $menuData['source_item'] : null;
         $id = Modules_Menu_Services_Menu::update($menu, $items, $sourceItem);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('menu_edit_success'));
         $this->redirect($this->view->url('menu_menu_edit', $menu));
     }
 }
コード例 #10
0
ファイル: Article.php プロジェクト: piratevn/cms-gio
 /**
  * Edit news article
  */
 public function editAction()
 {
     $request = $this->getRequest();
     $this->view->lang = $request->getParam('lang');
     $articleId = $request->getParam('article_id');
     $article = Modules_News_Services_Article::getById($articleId);
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $this->view->frontendTemplate = $configs->template;
     $this->view->frontendSkin = $configs->skin;
     if (null == $article) {
         Modules_Core_Services_Exception::error('DATA_NOT_FOUND');
     }
     $this->view->categories = Modules_News_Services_Article::getCategoryIds($article);
     $this->view->articleData = $article;
     /**
      * Get source item
      */
     $this->view->sourceArticle = Modules_News_Services_Article::getSource($article);
     /**
      * Web source
      */
     $webSource = Modules_News_Services_Web::getAllWebs();
     $this->view->webSource = $webSource;
     if ($request->isPost()) {
         $user = Gio_Core_Session::getUser();
         $articleData = $request->getPost('article');
         $articleData = Modules_News_Services_Article::validate($articleData);
         if (isset($articleData['messages_error']) && $articleData['messages_error']) {
             $this->view->errorMessages = $articleData['messages'];
             $this->view->articleData = $articleData;
             return;
         }
         $hotArticle = isset($articleData['article_hot']) && $articleData['article_hot'] == 1 ? 1 : 0;
         $photoArticle = isset($articleData['article_photo']) && $articleData['article_photo'] == 1 ? 1 : 0;
         $videoArticle = isset($articleData['article_video']) && $articleData['article_video'] == 1 ? 1 : 0;
         $article = array('article_id' => $articleId, 'title' => $this->view->STRING->escape($articleData['title']), 'slug' => $this->view->STRING->escape($articleData['slug']), 'description' => $articleData['description'], 'content' => $articleData['content'], 'status' => $articleData['status'] == 'active' ? 'active' : 'inactive', 'category_id' => $articleData['category_id'], 'web_id' => $articleData['web_id'], 'link_source' => $this->view->STRING->escape($articleData['link_source']), 'image_url_data' => $articleData['image_url_data'], 'image_url' => $this->view->STRING->escape($articleData['image_url']), 'article_hot' => $hotArticle, 'article_photo' => $photoArticle, 'article_video' => $videoArticle, 'language' => $articleData['language'], 'author' => $this->view->STRING->escape($articleData['author']));
         $sourceItem = isset($articleData['source_item']) ? $articleData['source_item'] : null;
         $categories = $request->getPost('categories');
         Modules_News_Services_Article::update($article, $categories, $sourceItem);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('article_edit_success'));
         $this->redirect($this->view->url('news_article_edit', $article));
     }
 }
コード例 #11
0
ファイル: Category.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $this->view->defaultModule = $this->_defaultModule;
     $categoryId = $request->getParam('category_id');
     $category = Modules_Category_Services_Category::getById($categoryId);
     if (null == $category) {
         throw new Exception('Data not found');
     }
     $oldCategory = $category;
     $this->view->categoryData = $category;
     $sourceCategory = Modules_Category_Services_Category::getSource($category);
     $this->view->sourceCategory = $sourceCategory;
     if ($request->isPost()) {
         $categoryData = $request->getPost('category');
         $categoryData['language'] = $category['language'];
         $categoryData['module_id'] = $category['module_id'];
         $categoryData['language'] = $category['language'];
         $categoryData = Modules_Category_Services_Category::validate($categoryData);
         if (isset($categoryData['messages_error']) && $categoryData['messages_error']) {
             $this->view->errorMessages = $categoryData['messages'];
             $categoryData['category_id'] = $categoryId;
             $this->view->categoryData = $categoryData;
             return;
         }
         $parentId = $category['parent_id'];
         $parentCategory = null;
         if ($parentId) {
             $parentCategory = Modules_Category_Services_Category::getById($parentId);
         }
         $path = $parentCategory && $parentCategory['category_path'] ? $parentCategory['category_path'] . '/' . $categoryData['slug'] : $categoryData['slug'];
         $category = array('category_id' => $categoryId, 'name' => $this->view->STRING->escape($categoryData['name']), 'slug' => $this->view->STRING->escape($categoryData['slug']), 'category_path' => $this->view->STRING->escape($path), 'meta' => $this->view->STRING->escape($categoryData['meta']), 'module_id' => $this->view->STRING->escape($categoryData['module_id']), 'parent_id' => $this->view->STRING->escape($categoryData['parent_id']), 'language' => $this->view->STRING->escape($categoryData['language']), 'created_date' => $this->view->STRING->escape($oldCategory['created_date']), 'modified_date' => date('Y-m-d H:i:s'), 'status' => $this->view->STRING->escape($categoryData['status']), 'user_id' => $oldCategory['user_id']);
         $sourceItem = isset($categoryData['source_item']) ? $categoryData['source_item'] : null;
         /**
          * Get parent category
          */
         if ($category['parent_id'] == $parentId) {
             /**
              * User do NOT change the parent category value
              */
             Modules_Category_Services_Category::update($category, $sourceItem);
         } else {
             /**
              * User changed parent category
              */
             Modules_Category_Services_Category::delete($oldCategory);
             Modules_Category_Services_Category::add($category, $sourceItem);
             Modules_Category_Services_Category::updateParents($category['language'], $category['module_id']);
         }
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('category_actions_edit_success'));
         $this->redirect($this->view->url('category_category_edit', $category));
     }
 }
コード例 #12
0
ファイル: Cron.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $cronId = $request->getParam('cron_id');
     $cron = Modules_News_Services_Cron::getById($cronId);
     if (null == $cron) {
         Modules_Core_Services_Exception::error('DATA_NOT_FOUND');
     }
     $webs = Modules_News_Services_Web::getAllWebs();
     $this->view->webs = $webs;
     $categories = explode('-', $cron['category_ids']);
     $cron['main_category_id'] = count($categories) > 0 ? $categories[0] : null;
     $this->view->categories = $categories;
     $this->view->cronData = $cron;
     if ($request->isPost()) {
         $cronData = $request->getPost('cron');
         $cronData = Modules_News_Services_Cron::validate($cronData);
         $categoryIds = '';
         $categories = $request->getPost('categories');
         if (isset($cronData['messages_error']) && $cronData['messages_error']) {
             $this->view->errorMessages = $cronData['messages'];
             $cronData['cron_id'] = $cron['cron_id'];
             $this->view->cronData = $cronData;
             $this->view->cronData = $cronData;
             return;
         }
         if (empty($categories)) {
             $categoryIds = $cronData['main_category_id'];
         } else {
             $categoryIds[] = $cronData['main_category_id'];
             foreach ($categories as $index => $categoryId) {
                 if ($categoryId != $cronData['main_category_id']) {
                     $categoryIds[] = $categoryId;
                 }
             }
             $categoryIds = implode('-', $categoryIds);
         }
         $cron['name'] = $this->view->STRING->escape($cronData['name']);
         $cron['source'] = $this->view->STRING->escape($cronData['source']);
         $cron['website'] = $this->view->STRING->escape($cronData['website']);
         $cron['website_name'] = $this->view->STRING->escape($cronData['website_name']);
         $cron['frequency'] = $this->view->STRING->escape($cronData['frequency']);
         $cron['priority'] = $this->view->STRING->escape($cronData['priority']);
         $cron['category_ids'] = $categoryIds;
         $cron['status'] = $cronData['status'];
         Modules_News_Services_Cron::update($cron);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('cron_actions_edit_success'));
         $this->redirect($this->view->url('news_cron_edit', $cron));
     }
 }
コード例 #13
0
ファイル: Role.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $roleId = $request->getParam('role_id');
     $role = Modules_Core_Services_Role::getById($roleId);
     if (null == $role) {
         throw new Exception();
     }
     $this->view->roleData = $role;
     if ($request->isPost()) {
         $roleData = $request->getPost('role');
         $roleData = Modules_Core_Services_Role::validate($roleData);
         if (isset($roleData['messages_error']) && $roleData['messages_error']) {
             $this->view->errorMessages = $roleData['messages'];
             $roleData['role_id'] = $roleId;
             $this->view->roleData = $roleData;
             return;
         }
         $salt = $role['salt'];
         $role = array('role_id' => $roleId, 'name' => $this->view->STRING->escape($roleData['name']), 'description' => $this->view->STRING->escape($roleData['description']), 'status' => $this->view->STRING->escape($roleData['status']));
         Modules_Core_Services_Role::update($role);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('role_actions_edit_success'));
         $this->redirect($this->view->url('core_role_edit', $role));
     }
 }
コード例 #14
0
ファイル: Tag.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $tagId = $request->getParam('tag_id');
     $tag = Modules_Tag_Services_Tag::getById($tagId);
     if (null == $tag) {
         Modules_Core_Services_Exception::error('DATA_NOT_FOUND');
     }
     $this->view->tagData = $tag;
     if ($request->isPost()) {
         $tagData = $request->getPost('tag');
         $tagData = Modules_Tag_Services_Tag::validate($tagData);
         if (isset($tagData['messages_error']) && $tagData['messages_error']) {
             $this->view->errorMessages = $tagData['messages'];
             $this->view->tagData = $tagData;
             return;
         }
         if (Modules_Tag_Services_Tag::checkExist($tagData['tag_text'], $tag['tag_id'])) {
             $this->view->tagData = $tagData;
             $this->view->existMessage = true;
             return;
         }
         $tag['tag_text'] = $tagData['tag_text'];
         $tag['slug'] = $tagData['slug'];
         Modules_Tag_Services_Tag::update($tag);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('tag_actions_edit_success'));
         $this->redirect($this->view->url('tag_tag_edit', $tag));
     }
 }
コード例 #15
0
ファイル: User.php プロジェクト: piratevn/cms-gio
 public function forgotpasswordAction()
 {
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $this->setTemplate($configs->admin->template);
     $this->setLayout('forgotpassword');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $email = $request->getPost('email');
         if (!$email) {
             $this->view->error = $this->view->TRANSLATOR->translator('user_forgotpassword_email_notnull');
             return;
         }
         $user = Modules_Core_Services_User::checkEmailExist($email);
         if (null == $user) {
             $this->view->error = $this->view->TRANSLATOR->translator('user_forgotpassword_email_notexist');
             return;
         }
         $code = Gio_Core_String::generateString(50);
         $user['code'] = $code;
         Modules_Core_Services_User::update($user);
         Modules_Core_Services_User::sendPassword($user['username'], $user['email'], $code);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('user_forgotpassword_send_success'));
         $this->redirect($this->view->url('core_user_forgotpassword'));
     }
 }
コード例 #16
0
ファイル: Page.php プロジェクト: piratevn/cms-gio
 /**
  * Edit page
  * 
  * @return void
  */
 public function editAction()
 {
     $request = $this->getRequest();
     $pageId = $request->getParam('page_id');
     $page = Modules_Page_Services_Page::getById($pageId);
     if (null == $page) {
         throw new Exception('Not found page with id of ' . $pageId);
     }
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $this->view->frontendTemplate = $configs->template;
     $this->view->frontendSkin = $configs->skin;
     $sourcePage = Modules_Page_Services_Page::getSource($page);
     $request->setParam('lang', $page['language']);
     $this->view->lang = $page['language'];
     $this->view->pageData = $page;
     $oldParentId = $page['parent_id'];
     $this->view->sourcePage = $sourcePage;
     if ($request->isPost()) {
         $pageData = $request->getPost('page');
         $pageData = Modules_Page_Services_Page::validate($pageData);
         if (isset($pageData['messages_error']) && $pageData['messages_error']) {
             $this->view->errorMessages = $pageData['messages'];
             $pageData['page_id'] = $page['page_id'];
             $this->view->pageData = $pageData;
             return;
         }
         /**
          * Check page slug exist 
          */
         if (Modules_Page_Services_Page::getBySlug($pageData['slug'], $page['page_id'])) {
             $pageData['messages']['slug'] = 'page_slug_exist';
             $this->view->errorMessages = $pageData['messages'];
             $pageData['page_id'] = $page['page_id'];
             $this->view->pageData = $pageData;
             return;
         }
         $page = $page;
         $page['name'] = $this->view->STRING->escape($pageData['name']);
         $page['slug'] = $this->view->STRING->escape($pageData['slug']);
         $page['description'] = $pageData['description'];
         $page['content'] = $pageData['content'];
         $page['parent_id'] = $pageData['parent_id'];
         $page['modified_date'] = date('Y-m-d H:i:s');
         $page['status'] = null == $pageData['status'] ? 'inactive' : $pageData['status'];
         $sourceItem = isset($pageData['source_item']) ? $pageData['source_item'] : null;
         Modules_Page_Services_Page::update($page, $oldParentId, $sourceItem);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('page_actions_edit_success'));
         $this->redirect($this->view->url('page_page_edit', $page));
     }
 }
コード例 #17
0
ファイル: Website.php プロジェクト: piratevn/cms-gio
 public function configAction()
 {
     $request = $this->getRequest();
     $configs = Gio_Core_Config_Xml::getConfig();
     $this->view->configs = $configs;
     $languagesFile = ROOT_DIR . DS . 'configs' . DS . 'languages.xml';
     if (!file_exists($languagesFile)) {
         return;
     }
     $languagesXml = @simplexml_load_file($languagesFile);
     if (null == $languagesXml) {
         return;
     }
     $locales = array();
     foreach ($languagesXml->language as $language) {
         $arr = explode('|', $language);
         $locales[$arr[0]] = array('code' => $arr[0], 'localName' => $arr[1], 'englishName' => $arr[2]);
     }
     $this->view->locales = $locales;
     if ($request->isPost()) {
         $act = $request->getPost('act');
         switch ($act) {
             case 'testdbconn':
                 $this->setNoRender();
                 $this->disableLayout();
                 $this->_testdbconn();
                 break;
             default:
                 $version = isset($configs->install->version) ? $configs->install->version : Gio_Core_Cms::getVersion();
                 $date = isset($configs->install->date) ? $configs->install->date : date('Y-m-d H:i:s');
                 $author = isset($configs->install->author) ? (array) $configs->install->author : Gio_Core_Cms::getAuthor();
                 $localization = array('localization' => array('enable' => (string) $configs->localization->enable, 'languages' => array('default' => (string) $configs->localization->languages->default, 'list' => (string) $configs->localization->languages->list, 'details' => array())));
                 $timezone = array('timezone' => array('date' => (string) $configs->timezone->date, 'datetime' => (string) $configs->timezone->datetime));
                 if ($configs->localization->languages->list != null) {
                     $list = explode(',', $configs->localization->languages->list);
                     foreach ($list as $value) {
                         $localization['localization']['languages']['details'][$value] = (string) $configs->localization->languages->details->{$value};
                     }
                 }
                 $configs = $request->getPost('configs');
                 $localization['localization']['languages']['default'] = $configs['web']['language'];
                 $data = Modules_Core_Services_Installer::validate($configs);
                 if (isset($data['messages_error']) && $data['messages_error']) {
                     $this->view->errorMessages = $data['messages'];
                     $configs = Gio_Core_Array::toObject($configs);
                     $this->view->configs = $configs;
                     return;
                 }
                 $install = array('install' => array('version' => $version, 'date' => $date, 'author' => $author));
                 $configs = array_merge($configs, $install);
                 $configs = array_merge($configs, $localization);
                 $configs = array_merge($configs, $timezone);
                 $content = utf8_decode(Gio_Core_Array::toXml($configs, 'config'));
                 $fileName = Gio_Core_Config_Xml::getConfigFile();
                 Gio_Core_File::writeToFile($fileName, $content);
                 Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('website_actions_config_success'));
                 $this->redirect($this->view->url('core_website_config'));
                 break;
         }
     }
 }
コード例 #18
0
ファイル: Zone.php プロジェクト: piratevn/cms-gio
 public function editAction()
 {
     $request = $this->getRequest();
     $zoneId = $request->getParam('zone_id');
     $zone = Modules_Ad_Services_Zone::getById($zoneId);
     if (null == $zone) {
         throw new Exception();
     }
     $this->view->zoneData = $zone;
     if ($request->isPost()) {
         $zoneData = $request->getPost('zone');
         $zoneData = Modules_Ad_Services_Zone::validate($zoneData);
         if (isset($zoneData['messages_error']) && $zoneData['messages_error']) {
             $this->view->errorMessages = $zoneData['messages'];
             $zoneData['zone_id'] = $zoneId;
             $this->view->zoneData = $zoneData;
             return;
         }
         $zoneData['description'] = null;
         $zone = array('zone_id' => $zoneId, 'code' => $this->view->STRING->escape($zoneData['code']), 'description' => $this->view->STRING->escape($zoneData['description']), 'width' => $this->view->STRING->escape($zoneData['width']), 'height' => $this->view->STRING->escape($zoneData['height']), 'price' => $this->view->STRING->escape($zoneData['price']), 'status' => $this->view->STRING->escape($zoneData['status']));
         Modules_Ad_Services_Zone::update($zone);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('zone_edit_action_success'));
         $this->redirect($this->view->url('ad_zone_edit', $zone));
     }
 }