Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - techengine

Страницы: [1]
1
Получилось как то так:

//Составляем данные из CSV в массив.
$parts = array();
$goods_dump = file('goods_dump.csv');
foreach ($goods_dump as $line) {
    $parts[] = explode(";", $line);
}
//Ключами элементов должны стать коды товара
$goods = array();
foreach ($parts as $value) {
$goods[$value[0]] = $value[1];
}

//Адрес корневой страницы каталога
define('CATALOG_URI', '/catalog-root-page/');

$hierarchy = umiHierarchy::getInstance();
$catID = $hierarchy->getIdByPath(CATALOG_URI);
if(!$catID) {
  echo "Нет такого адреса на сайте: ".CATALOG_URI;
  exit();
}
//Получаем все узлы
$nodes = $hierarchy->getChildrenTree($catID);

setNewValues($hierarchy, $nodes, $goods);

function setNewValues($hierarchy, $nodes, &$goods){
foreach ($nodes as $k => $node) {
if(empty($node)){
                        //Это объекты каталога
$item = $hierarchy->getElement($k);
echo $item->getName()."<br>";
                        //Замена значения sku значением из массива goods
$item->setValue("price", $goods[$item->getValue('sku')]);
continue;
}
//Это разделы каталога
$item = $hierarchy->getElement($k);
echo "<b>".$item->getName()."</b><br>";
setNewValues($hierarchy, $node, $goods);
}
}

2
Интересует возможность автообновления цен на сайте из CSV-файла с помощью кастомного макроса

Формат CSV такой:
код_товара; цена
123456;100.50

В объектах каталога заведено поле [sku](код товара), с помощью которого и планируется организовать поиск нужного объекта и обновления значения поля [price]
Теоретически видится так - поиск по полю, которое должно совпадать со значением SKU и выбор obj_id получаемой записи с помощью Selector (http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/proizvolnye_vyborki/selector/)
Следующий шаг - обновление поля [price] для страницы с выбранным obj_id (тут неясно, какой задействовать механизм?)
Вопрос: Как оцените: реальна ли такая возможность? Есть ли примеры подобной реализации?

3
Шаблоны XSLT / Re: Google captcha в XSLT-шаблоне
« : 28 Февраля 2017, 17:43:49 »
Ну как-то так для гугловской:
<xsl:template match="udata[@module = 'system' and @method = 'captcha' and count(recaptcha-sitekey)]">
   <div class="g-recaptcha" data-sitekey="{recaptcha-sitekey}"></div>
</xsl:template>

4
Шаблоны XSLT / Google captcha в XSLT-шаблоне
« : 28 Февраля 2017, 17:20:42 »
Кто нибудь уже пробовал совместить в шаблоне штатную и Googl'овскую капчу?

Ответ штатной капчи:
<udata random_string="?123456789" module="system" method="captcha" generation-time="0.000893">
   <url random-string="?123456789">/captcha.php</url>
</udata>

Ответ при выборе гугловской
<udata module="system" method="captcha"  generation-time="0.000860">
   <recaptcha-url>https://www.google.com/recaptcha/api.js</recaptcha-url>
   <recaptcha-class>g-recaptcha</recaptcha-class>
   <recaptcha-sitekey>SiteKey-Code-0000000000000000000</recaptcha-sitekey>
</udata>

Вопрос, что делать с XSLT шаблоном?

Страницы: [1]