Будь проще и к тебе потянутся!!! 
Документация ZOO Разработка Программируем свой экспорт

Программируем свой экспорт

В данной инструкции Вы научитесь создавать свой вариант экспорта XML-файла.

Итак, начнем

Первым делом следует понять структуру файлов и класс "ExportHelper", который находится по адресу "/administrator/components/com_zoo/helpers/export.php".

Стандартный XML-экспорт расположен в файле "/administrator/components/com_zoo/helpers/exporter/".

В настоящее время подключено три вида экспорта: "Joomla", "K2" и "Zoo2". Взгляните на них для того, чтобы понять принцип их работы. Теперь расмотрим процесс создания демо-экспорта.

Подробнее об этом

Прежде всего добавьте файл в папку экспортера. Назовем файл demo.php
Далее Вам необходимо добавить в созданный файл класс "ExportHelperDemo" и расширить класс "ExportHelper".
Добавьте конструкцию класса и дайте ей имя.

Это должно выглядеть примерно так:
class ExportHelperJoomla extends ExportHelper {

public function __construct() {
parent::__construct();
$this->_name = 'Demo';
}

}
Класс "ExportHelper" - абстрактный класс с абстрактной функцией "export()". Последняя функция необходима для реализации.

В функцию экспорта нужно добавить всю необходимую информацию, используя базовые классы функций. Начнем с добавления данных о категориях.
public function export() {

// get the categories you want to export
$categories = GET_YOUR_CATEGORIES();

// loop over the categories
foreach ($categories as $category) {

// build attributes array like this
$attributes = array();
// loop over allowed category attributes
foreach (self::$category_attributes as $attribute) {
$attributes[$attribute] = $category->$attribute;
}

// add parent, alias needs to be unique
$attributes['parent'] = $category->parent->alias;

// build category xml and add it to exporter
$this->_addCategory($this->_buildCategory($category->alias, $category->title, $attributes));

...

}
}
Давайте разберемся, что тут происходит: Сначала получаем категории, которые хотим экспортировать. Запускаем цикл по категориям. Базовый класс собирает в массив атрибуты категорий. Далее мы запускаем цикл по этим атрибутам и пытаемся сопоставить их с атрибутами категорий. Родительские атрибуты требуют особого внимания. Они хранят псевдоним, который должен оставаться уникальным. В противном случае при импорте категории могут спутаться.

Последним шагом построения категорий через функцию "_buildCategory($alias, $name, $attributes)", а потом добавить в экспортер функцию "_addCategory($category_xml)".

Далее необходимо обновить элементы:
public function export() {

...

// get the items you want to export
$items = GET_YOUR_ITEMS();

//loop over your items
foreach ($items as $item) {

// build attributes array like this
$attributes = array();
// loop over allowed item attributes
foreach (self::$item_attributes as $attribute) {
$attributes[$attribute] = $item->$attribute;
}

// build item xml like this
$item_xml = $this->_buildItem($item->alias, $item->name, $attributes);

// add item categories like this, category needs to be the categories alias
$this->_addItemCategory($item_xml, $category_alias);

// build item data
// build the element
$element_xml = $this->_buildElement($name, $alias, $element_name, $values);

// add the item data
$this->_addItemData($item_xml, $element_xml);

$this->_addItem($item->group, $item_xml);

}
}
Много кода. В цикле начинаем получать элементы, которые хотим экспортировать. Как и в случае с категориями мы записываем все элементы в массив со всеми атрибутами. Следующим шагом является составление элементов XML с помощью функции "_buildItem($id, $name, $attributes)". В том случае, если элемент привязан к категории, Вы должны добавить его через функцию "_addItemCategory($item_xml, $category_alias)".

Далее Вам необходимо сконструировать формат XML через функцию "_buildElement($name, $alias, $element_name, $values)". Существует список разрешенных элементов и их допустимые значения в базовом классе. После построения XML, мы добавляем данные через функцию "_addItemData($item_xml, $element_xml)".

Завершающим этапом необходимо скомпоновать XML через функцию "_addItem($group, $item_xml)".

Заключение

Вот и все. В результате XML-файл будет в том формате, который позволит импортировать его в каждый установленный компонент ZOO

Рекомендуемый хостинг для сайта:

Лучшие видеокурсы по созданию сайтов:

Оптимизация сайта

При заказе оптимизации и продвижения сайта - новый сайт или редизайн старого - сделаем бесплатно
(обращайтесь лично ко мне: Игорь Вялов )
Обсуждение SEO-энциклопедии на форуме
Видео-уроки SEO — оптимизация Joomla »

Комментарии (2)

  • shiftDELET
    shiftDELET
    27 January 2012 at 21:08 |

    добрый день!
    не получаете сделать экспорт баз данных из Zoo.

    объясните пожалуйста, у меня должен быть один файл demo.php с данным выше? какие файлы надо ещё менять?

    • Игорь Вялов
      Игорь Вялов
      09 March 2012 at 19:36 |

      А всё остальное Вам понятно? Обратите внимание на эту строчку:

      Стандартный XML-экспорт расположен в файле "/administrator/components/com_zoo/helpers/exporter/".

      В настоящее время подключено три вида экспорта: "Joomla", "K2" и "Zoo2". Взгляните на них для того, чтобы понять принцип их работы.

Оставить комментарий

Пожалуйста, войдите, чтобы комментировать.

Навигатор: Документация ZOO Разработка Программируем свой экспорт