Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Шаблон отображения списка категорий (магазин "Современный")

Автор manadsgnРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3119
Последний ответ 03 Июля 2012, 15:22:23
от manadsgn
Можно ли в UMI менять количество вложенных в адресную строку категорий?

Автор disallowРаздел Настройка системы и модулей

Ответов: 1
Просмотров: 2558
Последний ответ 19 Ноября 2011, 17:16:12
от admin
Вывод категорий с отмеченым полем Кнопак-Флажок?

Автор muldyРаздел Custom макросы

Ответов: 1
Просмотров: 1521
Последний ответ 15 Июля 2013, 14:48:53
от admin
Вывод товаров из дочерних категорий в родительской

Автор sodavinegarРаздел Шаблоны XSLT

Ответов: 6
Просмотров: 2564
Последний ответ 21 Июля 2015, 12:16:09
от sodavinegar
Ограничить вывод категорий каталога

Автор disallowРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 3369
Последний ответ 04 Октября 2011, 13:33:48
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

crazygeorgio

  • ***
  • 140
  • +7/-0
    • Просмотр профиля
Так вот, о чем я говорил на встрече разработчиков...

итоговый файл выгрузки составляется после подготовки к выгрузке из папки /sys-temp/yml/

суть в том, что система позволяет возможность кастомизации только отдельного предложения, т.е. то что внутри <offer> мы можем менять, и то не все, та же <category> не поддается изменению, а вот то что в секции <categories> менять через /xsl/export/custom/YML.xsl не получится и вовсе!!! Конечно, умники скажут, мол приведи структуру сайта как в яндекс маркете и все будет ок, но не всегда структуру можно подогнать под маркет и не всегда заказчик пойдет на это.

Пришлось создать справочник Категория YM с категориями у которых были указаны так же родители и добавить поле типа "выпадающий список" в тип данных Объекта каталога, и все, все что можно сделать легальным способом, далее так...

/classes/system/subsystems/export/exporters/YMLExporter.php
выводим список своих категорий в <category>
	
if (file_exists($dirName . 'categories' . $id))
{
file_put_contents($xml, '<categories>', FILE_APPEND);
$categories = new selector('objects');
$categories->types('object-type')->id('141');
foreach($categories as $category)
{
$id = $category->id;
$parent_id = $category->parent;
file_put_contents($xml, iconv('utf-8', 'windows-1251', '<category id="' . $id . '"' . ($parent_id ? ' parentId="' . $parent_id . '"' : '') . '>' . $category->name . '</category>') , FILE_APPEND);
}

file_put_contents($xml, '</categories>', FILE_APPEND);
}
 


меняем категорию в <offer>
	
$hierarchy = umiHierarchy::getInstance();

foreach($elementsToExport as $fileId)
{
$filePath = $dirName . $fileId . '.txt';
if (is_file($filePath))
{
$offer = file_get_contents($filePath);

preg_match('|<url>http://(.*)</url>|', $offer, $matches);
$url = explode('/', $matches[1]);
unset($url[0]);
$url = '/' . implode('/', $url);
$id = $hierarchy->getIdByPath($url, true);
$element = $hierarchy->getElement($id, true, true);
$category_ym = $element->category_ym;
$offer = preg_replace("!<categoryId>(.*)</categoryId>!", '<categoryId>' . $category_ym . '</categoryId>', $offer);
file_put_contents($xml, $offer, FILE_APPEND);
}


вот как-то, в прогинге не асс, если есть более простые и элегантные способы решения данной задачи, то хотелось бы увидеть ваши предложения
« Последнее редактирование: 03 Октября 2015, 03:27:03 от crazygeorgio »