MisterN 25 июня 2015 1 5
Написал нехитрый сниппет, созданный с целью подсчета просмотров страницы

if($tv = $modx->getObject('modTemplateVarResource',array('tmplvarid'=>21, 'contentid'=>$modx->resource->id))){
    $value = (int) $tv->get('value');
    $tv->set('value',$value + 1);
    $tv->save();
    return $value;
}

а он после каждой перезагрузки вызывается два раза. Ну, т.е. вместо 1 показывает два, вместо 2 — показывает 4 и вообще по таким результатам получается посещаемость в два раза больше. При каждом обновлении странички со сниппетом число увеличивается на два, а не на 1, как задумано. Не, я конешн могу заменить на плагин и я поменял int на флоэт (типа покопаюсь потом как-нить, решу проблему — верну) и вместо единички добавляю 0.5, но интересно, почему страница дважды отрабатывается. При замене смарти-шаблона на стандартный модихсовский все нормально и логично.
UPD Я решил, что нефиг считать тех, кто залогин в админке, подправил сниппет и пошел смотреть, как обновляется в другом браузере, где не открыта админка. Два раза страница вызывается, если пользователь авторизован в админке. Если нет — то все ок. Ну, поменял .5 на единицу, залогинился во с фронта, посмотрел, как все считается — ок. Значит, страничка дважды для админко-залогененых обрабатывается.
5 комментариев
m
magr0s 25 июня 2015г в 15:01 #
велосипед
setTVValue
Fi1osof1
Fi1osof 25 июня 2015г в 16:24 #
Верно.
M
MisterN 25 июня 2015г в 21:21 #
Не велосипед, а рефлекс на стандартный modx-api )
Вообще делал по аналогии github.com/artdevue/HitsPage/blob/master/core/components/hitspage/elements/snippet/hitspage.snippet.php
Всегда просто ставил и пользовал, а тут поставил — он глючить начал. Я внутрь залез и упростил все, что мне было не нужно, а компонент удалил, оставил сниппетоогрызок. Топик-то про то, что прикольно, для авторизованных в админке шаблон два разА исполняется при загрузке страницы.
Fi1osof1
Fi1osof 25 июня 2015г в 22:06 #
Топик-то про то, что прикольно, для авторизованных в админке шаблон два разА исполняется при загрузке страницы.
Вряд ли это штатная ситуация. Скорее всего где-то так же какой-то велосипед на сайте дописан, из-за чего сниппет и отрабатывается дважды.
Fi1osof1
Fi1osof 25 июня 2015г в 16:23 #
Плагин однозначно рулит. Навешать на правильное событие и все.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.