Пример #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;
 }
Пример #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);
 }
Пример #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']);
 }
Пример #4
0
 public static function delete($menuId)
 {
     $conn = Gio_Db_Connection::getConnection();
     $dao = new Modules_Menu_Models_Mysql_Menu();
     $dao->setConnection($conn);
     /**
      * Delete all menu item
      */
     Modules_Menu_Services_Item::delete($menuId);
     /**
      * Delete menu translation
      */
     Modules_Core_Services_Translation::delete($menuId, get_parent_class($dao));
     /**
      * Delete menu
      */
     return $dao->delete($menuId);
 }