Esempio n. 1
0
 /**
  * @param array $page
  * @return bool
  */
 public static function update($page, $oldParentId = null, $sourceItem = null)
 {
     $conn = Gio_Db_Connection::getConnection();
     $dao = new Modules_Page_Models_Mysql_Page();
     $dao->setConnection($conn);
     /**
      * Get parent page
      */
     $parent = $page['parent_id'] ? $dao->getById($page['parent_id']) : null;
     if (null == $parent && (int) $oldParentId == 0 || $parent != null && (int) $oldParentId == (int) $page['parent_id']) {
         /**
          * User do NOT change the parent page value
          */
         $dao->update($page);
     } else {
         /**
          * User changed parent page
          */
         $dao->delete($page);
         $pageId = $dao->add($page);
         /**
          * Reset parent id
          */
         $dao->updateParents($page['language']);
     }
     /**
      * Translation
      */
     $json = new Services_JSON();
     $source = (array) $json->decode($sourceItem);
     $translation = array('item_id' => $page['page_id'], 'item_class' => get_parent_class($dao), 'source_item_id' => !isset($source['page_id']) || $source['page_id'] == '' ? $page['page_id'] : $source['page_id'], 'language' => $page['language'], 'source_language' => !isset($source['language']) || '' == $source['language'] ? null : $source['language']);
     $sourceItem = $json->decode($sourceItem);
     if ($sourceItem != null) {
         $translation['source_item_id'] = $sourceItem->id;
         $translation['source_language'] = $sourceItem->language;
     }
     if ($source != null) {
         Modules_Core_Services_Translation::update($translation);
     } else {
         Modules_Core_Services_Translation::add($translation);
     }
     return true;
 }
Esempio n. 2
0
 public static function update($category, $sourceItem = null)
 {
     $conn = Gio_Db_Connection::getConnection();
     $dao = new Modules_Category_Models_Mysql_Category();
     $dao->setConnection($conn);
     $dao->update($category);
     /**
      * Translation
      */
     $json = new Services_JSON();
     $source = (array) $json->decode($sourceItem);
     $translation = array('item_id' => $category['category_id'], 'item_class' => get_parent_class($dao), 'source_item_id' => !isset($source['id']) || '' == $source['id'] ? $category['category_id'] : $source['id'], 'language' => $category['language'], 'source_language' => '' == $source['language'] ? null : $source['language']);
     Modules_Core_Services_Translation::update($translation);
 }
Esempio n. 3
0
 public static function update($article, $categories = array())
 {
     $conn = Gio_Db_Connection::getConnection();
     $dao = new Modules_News_Models_Mysql_Article();
     $dao->setConnection($conn);
     $dao->update($article);
     /**
      * Update translation relation
      */
     $json = new Services_JSON();
     $source = self::getSource($article);
     $translation = array('item_id' => $article['article_id'], 'item_class' => get_parent_class($dao), 'source_item_id' => !isset($source['article_id']) || $source['article_id'] == '' ? $article['article_id'] : $source['article_id'], 'language' => $article['language'], 'source_language' => !isset($source['language']) || '' == $source['language'] ? null : $source['language']);
     if ($source != null) {
         Modules_Core_Services_Translation::update($translation);
     } else {
         Modules_Core_Services_Translation::add($translation);
     }
     /**
      * Add to categories
      */
     if (is_array($categories) && !empty($categories)) {
         if (!in_array($article['category_id'], $categories)) {
             $categories[] = $article['category_id'];
         }
     } else {
         $categories[] = $article['category_id'];
     }
     $dao->addToCategories($article['article_id'], $categories);
     /**
      * Execute hooks
      */
     Gio_Core_Hook_Registry::getInstance()->executeAction('News_Article_Edit_Success', $article['article_id']);
 }
Esempio n. 4
0
 public static function update($menu, $items = array(), $sourceItem = null)
 {
     $conn = Gio_Db_Connection::getConnection();
     $dao = new Modules_Menu_Models_Mysql_Menu();
     $dao->setConnection($conn);
     $dao->update($menu);
     /**
      * Update translation relation
      */
     $json = new Services_JSON();
     $source = self::getSource($menu);
     $translation = array('item_id' => $menu['menu_id'], 'item_class' => get_parent_class($dao), 'source_item_id' => !isset($source['menu_id']) || $source['menu_id'] == '' ? $menu['menu_id'] : $source['menu_id'], 'language' => $menu['language'], 'source_language' => !isset($source['language']) || '' == $source['language'] ? null : $source['language']);
     $sourceItem = $json->decode($sourceItem);
     if ($sourceItem != null) {
         $translation['source_item_id'] = $sourceItem->id;
         $translation['source_language'] = $sourceItem->language;
     }
     if ($source != null) {
         Modules_Core_Services_Translation::update($translation);
     } else {
         Modules_Core_Services_Translation::add($translation);
     }
     /**
      * Delete all menu items
      */
     Modules_Menu_Services_Item::delete($menu['menu_id']);
     $string = new Gio_Core_String();
     /**
      * Add menu item
      */
     if (!empty($items)) {
         foreach ($items as $index => $item) {
             $item = (array) $item;
             $menuItem = array('item_id' => $item['item_id'], 'label' => $string->escape($item['label']), 'link' => $string->escape($item['link']), 'menu_id' => $menu['menu_id'], 'left_id' => $item['left_id'], 'right_id' => $item['right_id'], 'parent_id' => $item['parent_id']);
             Modules_Menu_Services_Item::add($menuItem);
         }
     }
 }