Центр документации
Карта сайта


Новая документация

Настройка платежных систем
Настройка способа оплаты КупиВкредит
Настройка способа оплаты Acquiro
Настройка способа оплаты AvisoSMS

Обновленная документация 

Разработчикам (API)
Руководство пользователя

Выполнение операций вручную

Если у вас возникнет надобность выполнять операции импорта из какого-либо модуля, это можно сделать с помощью кода, приведенного ниже.

Предположим, что настройки нашего драйвера находятся в массиве $aDriverData

// получаем драйвер из ресурсов - драйвер должен быть задекларирован в resourceMapping.60.php
$oDriver = AMI::getResource('import_driver/my_driver');
 
// все базовые классы поддерживают method chaining
$oDriver
     ->setModId($myModId)                        // устанавливаем контекст модуля
     ->setContentEncoding('utf-8')               // устанавливаем кодировку данных
     ->setResourceName('http://mysite.com')      // устанавливаем URL-адрес источника
     ->setResourceId('news')                 // устанавливаем ID ресурса модели
;
 
// добавляем список импортируемых полей в драйвер из настроек
for($i = 0; $i < count($aDriverData['table_fields']); $i++){
    $aField = array(
        'name'  => $aDriverData['import_fields'][$i],
        'mapTo' => $aDriverData['table_fields'][$i],
    );
    $oDriver->addImportField($aField);
}
 
// добавляем опции драйвера
$aSettings = array();
if(!empty($aDriverData['driver_settings'])){
    foreach(explode(',', $aDriverData['driver_settings']) as $fieldName){
        if(isset($aDriverData[$fieldName])){
            $aSettings[$fieldName] = $aDriverData[$fieldName];
        }
    }
}
 
// пытаемся установить соединение
$oDriver
    ->setRequestSettings($aSettings)
    ->initConnection();
 
// перегруженная функция isImportResourceAvailable сообщает, что ресурс доступен для чтения
if($oDriver->isImportResourceAvailable()){
    $oDriver
        ->readData()
        ->closeConnection();
    // если данные успешно импортированы, сохраняем в БД
    if($oDriver->doImport() && $oDriver->isImported()){
        $oDriver->save();
        return true;
    }else{
        return false;
    }
}else{
    return false;
}

Поддерживаемые кодировки соединения -  'utf-8', 'utf-16', 'utf-32', 'windows-1251', 'windows-1252', 'koi8-r'.
Необходимо отметить, что наличие модели данных для конечной таблицы импорта необходимо, если только вы не перегружаете метод save(), и, в таком случае, вызывать метод setResourceId() не нужно.

Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API) Документация для скачивания
 2000 – 2011 © Amiro.CMS Все права защищены.