Борис
С нами с 15 марта 2016; Место в рейтинге пользователей: #1021Разбор xml и импорт в modx
Один из поставщиков даёт прайсы в формате XML.
В настройках каждого товара я указываю его id в данном xml-прайсе.
Каждое утро я кроном забираю файл со свежими ценами с сервера поставщика.
Направьте, пожалуйста, на дальнейшие действия.
Писать сниппет, чтоб при открытии страницы обновлялась цена с xmlки или как-то единоразово или централизованно массово апдейтнуть цены?
P.S.: Подскажите решения для этого, если таковые имеются
В настройках каждого товара я указываю его id в данном xml-прайсе.
Каждое утро я кроном забираю файл со свежими ценами с сервера поставщика.
Направьте, пожалуйста, на дальнейшие действия.
Писать сниппет, чтоб при открытии страницы обновлялась цена с xmlки или как-то единоразово или централизованно массово апдейтнуть цены?
P.S.: Подскажите решения для этого, если таковые имеются
Экспорт товаров Minishop2 в CSV – без программирования
Задача: экспорт товаров в CSV с возможностью выгрузки всех опций или tv как захочется.
Сложность: 0 знаний в php :-)
Решение:
Сложность: 0 знаний в php :-)
Решение:
- Создаем новый ресурс: > опубликован > не показывать в меню > тип содержимого: HTML > не использовать HTML редактор > заморозить uri c .csv в конце.
- Вызываем msProducts с нужными настройками, у меня так:
{'!msProducts'|snippet:[ 'hideContainers' => 1, 'parents' => 3, 'limit' => 150, 'depth' => 3, 'includeTV' => '1', 'includeTVs' => 'video', 'sortby' => 'menuindex', 'sortdir' => 'DESC', 'showLog' => 1, 'tplFirst' => '@FILE chunks/export/first_row_drom.tpl', 'tpl' => '@FILE chunks/export/eng_drom.tpl' ]}
- Сохраняем
mFilter2 - из метода boolean убрать значение "нет"
Здравствуйте!
Помогите, пожалуйста, доработать метод фильтрации. У товара есть поле ms|favorite. У некоторых товаров это поле отмечено (чекбокс). Нужно в фильтре вывести только одну галочку, по клику на которую бы фильтровались товары. Можно выводить методом boolean, но тогда будет выбор «да» и «нет».
Нашел направление, куда копать.
Создал новый метод Positive, присвоил:
Грубо говоря, из метода boolean, который я взял за основу, нужно убрать те варианты, где поле не отмечено (нулевое?). Далее чистый boolean с исправленными названиями на positive.
Помогите, пожалуйста, доработать метод фильтрации. У товара есть поле ms|favorite. У некоторых товаров это поле отмечено (чекбокс). Нужно в фильтре вывести только одну галочку, по клику на которую бы фильтровались товары. Можно выводить методом boolean, но тогда будет выбор «да» и «нет».
Нашел направление, куда копать.
Создал новый метод Positive, присвоил:
&filters=`ms|favorite:positive`
Но дальше эксперименты-правки не увенчались успехом. Грубо говоря, из метода boolean, который я взял за основу, нужно убрать те варианты, где поле не отмечено (нулевое?). Далее чистый boolean с исправленными названиями на positive.
<?php
class myCustomFilter extends mse2FiltersHandler {
public function buildPositiveFilter(array $values, $name = '') {
if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
return array();
}
$results = array();
foreach ($values as $value => $ids) {
$empty = empty($value) || (is_numeric($value) && (int)$value === 0);
$title = $empty
? $this->modx->lexicon('mse2_filter_positive_no')
: $this->modx->lexicon('mse2_filter_positive_yes');
if (!isset($results[$title])) {
$results[$title] = array(
'title' => $title,
'value' => (int)!$empty,
'type' => '<b>positive</b>',
'resources' => $ids,
);
}
else {
$results[$title]['resources'] = array_merge($results[$title]['resources'], $ids);
}
}
ksort($results);
return $results;
}
public function filterPositive(array $requested, array $values, array $ids) {
$matched = array();
$tmp = array_flip($ids);
foreach ($requested as $value) {
foreach ($values as $k => $resources) {
$empty = empty($k) || (is_numeric($k) && (int)$k === 0);
if ((empty($value) && !$empty) || (!empty($value) && $empty)) {
continue;
}
foreach ($resources as $id) {
if (isset($tmp[$id])) {
$matched[] = $id;
}
}
}
}
return $matched;
}
}
Подготавливаем ЛК для "ГдеПосылка"
Это продолжение статей по работе с заказами MS2, в последней статье я обещал, что расскажу как интегрировать сервис «ГдеПосылка» в Minishop2, а пока я жду пока очухается администрация «ГдеПосылка» чтобы дать мне доступ к API подготовим почву для интеграции, что мы будем делать:
- Добавим новое поле в заказы minishop2
- Сделаем вывод для пользователей их историю заказов без extJS и каких либо дополнений, на чистом pdoTools
- Научимся делать leftJoin и select на pdoTools и pdoFetch
- Бонусом идут сразу готовые стили для всего этого добра и написанный JS
За объяснением кода — под кат, за кодом на GitHub
[msOrderAnalytics] Отправляем заказы в Google Analytics
Небольшой пакет, позволяет слать данные заказов вместе с товарами в Электронную коммерцию Google Analytics. Написан по следам статьи о том, как слать данные в Google Analytics средствами PHP. За идею благодарим Алексея.
Sendex и AjaxForm - подписка на рассылку ч/з ajax
Sendex, как учебный компонент, особо не развивается, но он довольно удобен и приятен в обращении изнутри сайта. В связи с чем регулярно его использую. Но вот «снаружи», на фронте, он не очень удобен. Очередная просьба от клиента «чтобы окошко появлялось, а страничка не перезагружалась», побудила переписать для себя сниппет так, чтобы потом пользовать его через ajaxform. Получилось три чанка, один сниппет и немного джаваскрипта.
Автоматическая оптимизация изображений
Предлагаю вашему вниманию решение для оптимизации изображений при загрузке на сайт.
Раньше использовал данный способ просто как плагин, решил отдать в массы в виде компонента.
Что делает данный компонент?
Оптимизация изображения для сайта — это уменьшение объема изображения без видимой потери качества.
При загрузке файла через файловый менеджер или тв-поле в ресурсе файла изображения (jpg/png), он автоматически его оптимизирует.
Раньше использовал данный способ просто как плагин, решил отдать в массы в виде компонента.
Что делает данный компонент?
Оптимизация изображения для сайта — это уменьшение объема изображения без видимой потери качества.
При загрузке файла через файловый менеджер или тв-поле в ресурсе файла изображения (jpg/png), он автоматически его оптимизирует.
Показать анимацию до момента отправки заказа
Здравствуйте!
После нажатия на кнопку отправки заказа ([!msOrder?]]) до момента уведомления об успешном заказе ([[!msGetOrder]]) на сайте проходит примерно 2 секунды, подскажите пожалуйста, как добавить в этот промежуток времени показ какой-нибудь анимации (гифки, например), клиенту, чтоб не было возможности нажать кнопку отправки заказа 100500 раз?
Может посоветуете другие варианты решения проблемы? Оптимизация работы дополнения или запрет отправки нескольких заказов в течение 5 секунд?
Вызываю сниппеты в шаблоне корзины.
Чанки:
После нажатия на кнопку отправки заказа ([!msOrder?]]) до момента уведомления об успешном заказе ([[!msGetOrder]]) на сайте проходит примерно 2 секунды, подскажите пожалуйста, как добавить в этот промежуток времени показ какой-нибудь анимации (гифки, например), клиенту, чтоб не было возможности нажать кнопку отправки заказа 100500 раз?
Может посоветуете другие варианты решения проблемы? Оптимизация работы дополнения или запрет отправки нескольких заказов в течение 5 секунд?
Вызываю сниппеты в шаблоне корзины.
[[!msCart?tpl=`my.tpl.msCart`]]
[[!msOrder?tpl=`my.tpl.msOrder`]]
[[!msGetOrder?tpl=`my.tpl.msGetOrder`]]
Чанки:
Убрать из ЧПУ кавычки и др.
Коллеги, дайте пожалуйста мудрый совет!
Нужно сделать так, что бы при автоматической генерации ЧПУ (*alias) не генерировались разные символы, в основном конечно кавычки («, »)
Как можно это сделать?
Заранее спасибо!
Нужно сделать так, что бы при автоматической генерации ЧПУ (*alias) не генерировались разные символы, в основном конечно кавычки («, »)
Как можно это сделать?
Заранее спасибо!