Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Поиск по каталогу (поиск товаров/объектов)

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

Ответов: 14
Просмотров: 4127
Последний ответ 26 Январь 2015, 12:07:22
от Axiomateria
Изменение количества товара в списке товаров и карточке товара

Автор bepluyРаздел JS и AJAX

Ответов: 2
Просмотров: 913
Последний ответ 14 Ноябрь 2015, 13:52:43
от bepluy
Импортировать "Опционные свойтва" товаров в UMIDump из CML 2.0. Хэлп!

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

Ответов: 3
Просмотров: 3054
Последний ответ 09 Февраль 2012, 13:08:00
от admin
Добавление тегов для товаров, и вывод блока с тегами в любом месте сайта

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

Ответов: 9
Просмотров: 2370
Последний ответ 26 Июль 2014, 10:58:09
от FelixTheCat
фильтр товаров с условием OR и поиск по нескольким (не всем) разделам каталога

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

Ответов: 3
Просмотров: 3632
Последний ответ 18 Май 2012, 11:08:37
от web-industry

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

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Обновление товаров с помощью крон!?
« : 19 Октябрь 2013, 02:32:59 »
Здравствуйте!
Есть товары на сайте, у них созданы поля с датой те туда устанавливается значение до конца акции, но как становится понятно это число вычисляется и устанавливается  при открытии страницы!
Но вот как сделать возможным автоматическое обновление этого числа не пойму!
Пришел к выводу что лучше использовать крон, но как и какие параметры ему задать?

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Обновление товаров с помощью крон!?
« Ответ #1 : 19 Октябрь 2013, 08:28:33 »
Цитировать
автоматическое обновление этого числа

у вас есть поле в котором указана дата и если она меньше чем текущее время товар не выводим, так? или о какои обновлении идет речь?

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Обновление товаров с помощью крон!?
« Ответ #2 : 20 Октябрь 2013, 15:37:13 »
Да именно про это и говорю, что товар не надо выводить!)

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Обновление товаров с помощью крон!?
« Ответ #3 : 20 Октябрь 2013, 15:49:01 »
по крону вы можете отключать данные страницы, но можете также воспользоваться и встроенным решением Управление контентом и тамже внизу ссылка на подробное объяснение Настройка актуальности публикации

P.S. обратите внимание, что крон у вас должен быть включен. То есть ваш хостинг должен периодически запускать файл /cron.php

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Обновление товаров с помощью крон!?
« Ответ #4 : 20 Октябрь 2013, 15:58:10 »
Это решение я видел но проблема в том что мне надо, оставить страницу а не отключать ее!
Те мне всего требуется обновлять дату в поле, и все а остальной функционал уже готов)

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Обновление товаров с помощью крон!?
« Ответ #5 : 20 Октябрь 2013, 16:09:55 »
тогда я не совсем понял, для чего вам обновлять дату в поле и по какому признаку она должна обновляться.

Но, в любом случае, это скорее всего задача cron.php. Напишите event, который будет срабатывать на событие cron. Можете посмотреть как это происходит с событием обновление валют в emarket модуле (обработчик в файле /classes/modules/emarket/events.php, строчка "new umiEventListener('cron', 'emarket', 'onCronSyncCurrency');")

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Обновление товаров с помощью крон!?
« Ответ #6 : 20 Октябрь 2013, 16:25:06 »
Обновляется дата и ставиться статус товара в поле!
По событию буду разбираться!

*

muldy

  • ***
  • 222
  • +9/-1
    • Просмотр профиля
Re:Обновление товаров с помощью крон!?
« Ответ #7 : 22 Октябрь 2013, 19:11:09 »
Решил поделится способом реализации, данной задачи!

Итак:
Есть поле "akciya" это страницы которые учавствуют в акции!
Также нужное поле с временем окончания акции "konec_akcii" и поле с отклюением акции "akciya_neaktivena".
И еще есть поле в котором указывается количество дней до окончания акции "do_konca_ostalos"

Идем в /classes/modules/catalog/, добавляем события в файл custom_events.php:

new umiEventListener("cron", "catalog", "updateObjects");

Далее создаем функцию которая будет выполнять, отбор и установку значения для товара:

public function updateObjects(){

  // ВЫБИРАЕМ СТРАНИЦЫ В АКЦИЯХ
 
        $pages = new selector('pages');
         
         $pages->types('object-type')->id(83);

         $pages->where('akciya')->equals('1');

         $pages->where('akciya_neaktivena')->notequals(1);

foreach($pages as $page){

  // ДАЛЕЕ ИСПОЛЬЗУЕМ ТЕКУЩУЮ ДАТУ И СРАВНИВАЕМ ЕЕ С ОКОНЧАНИЕМ АКЦИИ, ТЕ С ПОЛЕМ "konec_akcii"

 И УСТАНАВЛИВАЕМ ЗНАЧЕНИИ:

   $page->setValue('do_konca_ostalos',  'Здесь дни');
   
   
}

И В ИТОГЕ СОХРАНЯЕМ     

     $page->commit();

     return true;

}

Все функция готова осталось на сервере запустить команду: /cron.php?module=catalog' с нужной переодичностью.

В итоге мы получаем, при отображении товаров Количество дней, которое осталось до конца акции для конкретного товара!