<?php define('MODX_API_MODE', true); require dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php'; if (($handle = fopen(dirname(__FILE__) . '/import.csv', "r")) !== FALSE) { $modelPath = $modx->getOption('autoredirector_core_path',null,$modx->getOption('core_path').'components/autoredirector/').'model/'; $modx->addPackage('autoredirector', $modelPath); $processorProps = array('processors_path' => $modx->getOption('autoredirector_core_path',null,$modx->getOption('core_path').'components/autoredirector/').'processors/'); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $uri = str_replace($modx->getOption('site_url'), '', $data[0]); $id = $data[1]; $arRule = array('uri' => $uri, 'res_id' => $id); if (!$modx->getObject('arRule', $arRule)) { $response = $modx->runProcessor('mgr/item/create', $arRule, $processorProps); if ($response->isError()) { print '<span style="color: #c00;">AutoRedirector creating error. Message: ' . $response->getMessage() . '<br></span>'; $modx->error->reset(); } else { print '<span style="color: #060;">AutoRedirector created rule. URL: ' . $uri . '<br></span>'; } } else { print '<span style="color: #666;">AutoRedirector rule dublicate. URL: ' . $uri . '<br></span>'; } } fclose($handle); }
Импорт правил для autoRedirector из CSV
10 мая 2016, 14:39
Загружаем CSV в папку assets/components/autoredirector/. В этой же папке создаём файл, в котором указываем имя файла для импорта. Открываем файл в браузере.
А затем используется проверка
Но если у нас допустим уже есть ссылка «test/» указывающая на ресурс с id = 2, а мы попытаемся добавить ссылку «test/», указывающую на ресурс 3, она же должна будет создаться? Я правильно понимаю? И как в таком случае поведет себя autoRedirector, если будем обращаться к ссылке «test/»?
И как раз будет выдавать дублирование правила.
Или может что-то подскажете по моей проблеме другое?
Вот такой файл csv
prntscr.com/co2kcd
А вот такие правила получились))
prntscr.com/co2kgc
надо заменить на
(запятую на точку с запятой)