Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
не работает Файловый менеджер - Некорректный ответ сервера. Данные отсутствуют

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

Ответов: 3
Просмотров: 4090
Последний ответ 30 Ноября 2018, 16:44:45
от MrUnless
как узнать id заказа (корзины) с которой работает покупатель

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

Ответов: 6
Просмотров: 5266
Последний ответ 22 Августа 2013, 22:57:57
от atach
Почему-то не работает edit-in-place для одного из полей

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

Ответов: 2
Просмотров: 3123
Последний ответ 16 Сентября 2014, 03:38:31
от Veinard
Опции товара - почему не работает код взятый с вики?

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

Ответов: 0
Просмотров: 1357
Последний ответ 09 Августа 2017, 12:07:14
от Canekt
Скрипт не работает при подключении Edit-in-Place

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

Ответов: 3
Просмотров: 3545
Последний ответ 20 Марта 2012, 12:01:52
от diii3

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

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #15 : 02 Сентября 2014, 16:18:23 »
Но,как я полнял, custom_event.php
запускает фунцию из __custom.php
код которой в принципе не отличается от обычной
abstract class __custom_news {
//TODO: Write here your own macroses

public function cronDeactivateNews(){
$pages = new selector('pages');
$pages->types('hierarchy-type')->name('news', 'item');
$pages->where('end_time')->eqless(time());

foreach ($pages as $page){
$page->setValue(date("h:i:s"));
$page->setIsActive(false);
$page->commit();
}
}
};

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #16 : 02 Сентября 2014, 16:19:16 »
Вот это не понял. Как,что и где запустить.
Цитировать
запустите udata://news/cronActivateNews

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #17 : 02 Сентября 2014, 16:28:51 »
Если имелось ввиду сайт.ру/udata/news/cronActivateNews
то ответ такой
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="news" method="cronActivateNew" generation-time="0.020110"/>
<!--
 This page generated in 0.130268 secs by XSLT, HTTP SCHEME MODE
-->

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #18 : 02 Сентября 2014, 17:33:12 »
неважно какой ответ, важно просто запцустить макрос. Новость, активной стала? Если нет, то проблема в макросе.

P.S. какой тип данных у многострадальной новости, которую мы пытаемся включить?

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #19 : 02 Сентября 2014, 17:42:56 »
тип данных новость, родитель лента новостей.
Нет,активной не стала. В каком именно макросе. Они же лишь в шаблонах, выводят что-то, обрабатывают инфу,но не управляют в целом. Новость остается неактивной и в админке,а не просто не отображается.
« Последнее редактирование: 02 Сентября 2014, 17:55:19 от sinneren »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #20 : 03 Сентября 2014, 07:59:27 »
Они же лишь в шаблонах, выводят что-то, обрабатывают инфу,но не управляют в целом. Новость остается неактивной и в админке,а не просто не отображается.

в umi версии 2.x макросы не только выводят, но и могут менять данные (отправка форм, создание объектов редактирвоание данных)

ваш макрос cronActivateNews, например ищет все страницы относящиеся к иерархическому типу данных "Новость" со значением поля begin_time меньше чем текущее время и делает их активными. Ну, по крайней мере должен делать.

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #21 : 03 Сентября 2014, 12:26:06 »
В общем, я залогировал $page массив и получил такое нечто:
umiHierarchyElement Object
(
    [rel:private] => 21
    [alt_name:private] => set_qualification_august
    [ord:private] => 18098
    [object_id:private] => 28302
    [type_id:private] => 24
    [domain_id:private] => 1
    [lang_id:private] => 1
    [tpl_id:private] => 12
    [is_deleted:private] =>
    [is_active:private] =>
    [is_visible:private] =>
    [is_default:private] =>
    [name:private] => Набор Квалификация (1 августа - 31 августа)
    [update_time:private] => 1409659797
    [object:private] =>
    [is_broken:private] =>
    [store_type:protected] => element
    [id:protected] => 20430
    [is_updated:protected] =>
    [bNeedUpdateCache:protected] =>
)
Это пример одной из акций. В целом тут не много не мало разные материалы, НО все они из RU версии, и ни одной деактивированной. Во-вторых нет нигде в массиве begin\end времени. Что, по моему, и является причиной(или одной из).

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #22 : 03 Сентября 2014, 12:32:07 »

Вот скрин настройки типа данных

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #23 : 03 Сентября 2014, 14:03:29 »
Переделал с правильной(по идее) датой и временем, но тоже не сработало
public function cronActivateNews() {
$pages = new selector('pages');
$pages->types('hierarchy-type')->name('news', 'item');
$pages->where('is_active')->notequals(true);
$pages->where('begin_time')->eqless(date("Y-m-d H:i:s", time()));

foreach ($pages as $page){
if($page->getValue("end_time") <= date("Y-m-d H:i:s", time())){
$page->setIsActive(false);
} else {
$page->setIsActive(true);
}
$page->commit();
}
}
« Последнее редактирование: 03 Сентября 2014, 14:28:34 от sinneren »

*

sinneren

  • *
  • 21
  • +0/-0
    • Просмотр профиля
Re:Не работает событие активности
« Ответ #24 : 03 Сентября 2014, 14:59:38 »
Попробовал поиграться с выборкой
$pages->where('is_active')->equals(false);
      $pages->where('begin_time')->eqless(time());
      $pages->where('end_time')->more(time()); и без этой строки. с ней вообще ноль.
При выборке $pages->where('begin_time')->eqless(date("Y-m-d H:i:s", time())); и старой eqless(time()) выборка аналогична. НО,если убрать вообще, то она колоссальна,160 метров лог. странно.
Выборка по ID не дает результата