コード例 #1
0
ファイル: zoo2.php プロジェクト: NavaINT1876/ccustoms
 /**
  * Do the real exporting
  *
  * @return string The JSON dump of the items and categories
  *
  * @throws AppExporterException
  *
  * @since 2.0
  */
 public function export()
 {
     if (!($this->_application = $this->app->zoo->getApplication())) {
         throw new AppExporterException('No application selected.');
     }
     // export frontpage
     $frontpage = $this->app->object->create('Category');
     $frontpage->name = 'Root';
     $frontpage->alias = '_root';
     $frontpage->description = $this->_application->description;
     // export categories
     $this->_categories = $this->_application->getCategories();
     $this->_categories[0] = $frontpage;
     foreach ($this->_categories as $category) {
         $this->_addZooCategory($category);
     }
     // export items
     $this->_comment_table = $this->app->table->comment;
     $item_table = $this->app->table->item;
     foreach ($this->_application->getTypes() as $type) {
         foreach ($item_table->getByType($type->id, $this->_application->id) as $key => $item) {
             $this->_addZooItem($item, $type);
             $item_table->unsetObject($key);
         }
     }
     return parent::export();
 }
コード例 #2
0
ファイル: k2.php プロジェクト: NavaINT1876/ccustoms
 /**
  * Do the real export of items and categories
  *
  * @return string The JSON dump of the items and categories
  *
  * @since 2.0
  */
 public function export()
 {
     $db = $this->app->database;
     // get k2 categories
     $query = "SELECT a.*, b.name AS extra_field_group_name " . " FROM #__k2_categories AS a" . " LEFT JOIN #__k2_extra_fields_groups AS b ON b.id = a.extraFieldsGroup";
     $categories = $db->queryObjectList($query, 'id');
     // sanatize category aliases
     $aliases = array();
     foreach ($categories as $category) {
         $i = 2;
         $alias = $this->app->string->sluggify($category->alias);
         while (in_array($alias, $aliases)) {
             $alias = $category->alias . '-' . $i++;
         }
         $category->alias = $alias;
         // remember used aliases to ensure unique aliases
         $aliases[] = $category->alias;
     }
     // export categories
     foreach ($categories as $category) {
         // assign attributes
         $data = array();
         foreach ($this->category_attributes as $attribute) {
             if (isset($category->{$attribute})) {
                 $data[$attribute] = $category->{$attribute};
             }
         }
         // sanatize parent
         if ($category->parent && isset($categories[$category->parent])) {
             $data['parent'] = $categories[$category->parent]->alias;
         }
         // add category
         if ($category->image) {
             $data['content']['image'] = '/media/k2/categories/' . $category->image;
         }
         $this->_addCategory($category->name, $category->alias, $data);
     }
     // get k2 items
     $query = "SELECT * FROM #__k2_items";
     $items = $db->queryObjectList($query, 'id');
     // get k2 extra fields
     $query = "SELECT * FROM #__k2_extra_fields";
     $extra_fields = $db->queryObjectList($query, 'id');
     // get k2 tags
     $query = "SELECT a.itemID, b.name" . " FROM #__k2_tags_xref as a" . " JOIN #__k2_tags AS b ON a.tagID = b.id";
     $tag_result = $db->queryObjectList($query);
     $tags = array();
     foreach ($tag_result as $tag) {
         $tags[$tag->itemID][] = $tag->name;
     }
     // sanatize item aliases
     $aliases = array();
     foreach ($items as $item) {
         $i = 2;
         $alias = $this->app->string->sluggify($item->alias);
         while (in_array($alias, $aliases)) {
             $alias = $item->alias . '-' . $i++;
         }
         $item->alias = $alias;
         // remember used aliases to ensure unique aliases
         $aliases[] = $item->alias;
     }
     // export items
     foreach ($items as $item) {
         if (!$item->trash) {
             if (!($type = $categories[$item->catid]->extra_field_group_name)) {
                 $type = JText::_('K2-Unassigned');
             }
             $this->_addK2Item($item, $extra_fields, $categories, $tags, $type);
         }
     }
     return parent::export();
 }
コード例 #3
0
ファイル: joomla.php プロジェクト: alexmixaylov/real
 /**
  * Perform the actual export of categories and articles
  *
  * @return string The exported data in JSON format
  *
  * @since 2.0
  */
 public function export()
 {
     $categories = $this->app->database->queryObjectList('SELECT * FROM #__categories WHERE published != -2 ORDER BY lft ASC', 'id');
     $category_aliases = array();
     $ordered_categories = array();
     foreach ($categories as $category) {
         $ordered_categories[$category->parent_id][] = $category->id;
     }
     foreach ($categories as $category) {
         if ($category->alias != 'root' && $category->extension != 'com_content') {
             continue;
         }
         if ($category->alias == 'root') {
             $category->title = 'Root';
             $category->alias = '_root';
         }
         $i = 2;
         $new_alias = $category->alias;
         while (in_array($new_alias, $category_aliases)) {
             $new_alias = $category->alias . '-' . $i++;
         }
         $category_aliases[] = $category->alias = $new_alias;
         // store category parent
         if (isset($categories[$category->parent_id])) {
             $category->parent = $categories[$category->parent_id]->alias;
         }
         if (isset($ordered_categories[$category->parent_id]) && is_array($ordered_categories[$category->parent_id])) {
             $category->ordering = array_search($category->id, $ordered_categories[$category->parent_id]);
         }
         $params = $this->app->parameter->create($category->params);
         $data = array();
         foreach ($this->category_attributes as $attribute) {
             if (isset($category->{$attribute})) {
                 $data[$attribute] = $category->{$attribute};
             }
         }
         if ($params->get('image')) {
             $data['content']['image'] = $params->get('image');
         }
         $this->_addCategory($category->title, $category->alias, $data);
         $query = "SELECT * FROM #__content WHERE catid =" . $category->id;
         $articles = $this->app->database->queryObjectList($query);
         foreach ($articles as $article) {
             if ($article->state != -2) {
                 $this->_addJoomlaItem($article, $category->alias, JText::_('Joomla article'));
             }
         }
     }
     $query = "SELECT * FROM #__content WHERE catid = 0";
     $articles = $this->app->database->queryObjectList($query);
     foreach ($articles as $article) {
         if ($article->state != -2) {
             $this->_addJoomlaItem($article, 0, JText::_('Joomla article'));
         }
     }
     return parent::export();
 }