public static function add($category, $sourceItem = null) { $conn = Gio_Db_Connection::getConnection(); $dao = new Modules_Category_Models_Mysql_Category(); $dao->setConnection($conn); $id = $dao->add($category); /** * Translation */ $json = new Services_JSON(); $source = (array) $json->decode($sourceItem); $translation = array('item_id' => $id, 'item_class' => get_parent_class($dao), 'source_item_id' => '' == $source['id'] ? $id : $source['id'], 'language' => $category['language'], 'source_language' => '' == $source['language'] ? null : $source['language']); Modules_Core_Services_Translation::add($translation); return $id; }
/** * @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; }
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']); }
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); } } }