К содержанию

Как в сниппете узнать, сколько раз вызвали его на странице?

Всем Здравия! Пожалуйста, скажи, кто в курсе: как в сниппете узнать в который раз его вызываем на одной странице? Поясню: допустим есть сниппет «test» и есть ресурс 1 с содержимым:

[[!test?test=`test`]]blablablabla[[!test?test=`test`]]

Так вот как в этом сниппете узнать, в первый раз его вызываем или во второй? А может и в третий, или в пятисотый?.. :) Заранее БлагоДарю всех неравнодушных!!!

Ответ:
if(!$_SESSION['uploCallNum'] OR $_SESSION['uploCallNumHash'] != $hash) {
	$_SESSION['uploCallNum']='0';
	$_SESSION['uploCallNumHash']=$hash;
}

/* Здесь используем номер вызова $_SESSION['uploCallNum'] */

$_SESSION['uploCallNum'] = $_SESSION['uploCallNum']+1;
Министерство нефти и газа Республики Казахстан
modx.pro
980
Реклама

Комментарии: 6

Похоже надо с сессиями работать, я правильно понимаю?
    Василий Наумкин
    Василий Наумкин Администратор
    15 сентября 2014, 17:05
    Можно в сниппете делать
    $modx->log(1, 'Меня вызвали!');
    И считать потом сколько отметок в системном журнале.
      хм, а каким кодом считать, сколько отметок в системном журнале?
        Василий Наумкин
        Василий Наумкин Администратор
        15 сентября 2014, 17:11
        Глазами считать.

        Ты ни разу в системный журнал не смотрел, там где ошибки пишутся? Или тебе не для отладки нужно?
          Нет нет, мне совсем не для отладки… Мне необходимо посчитать, сколько раз сниппет вызывался, внутри самого сниппета. Это для вызываемых ID нужно, чтобы не дублировались…
            Разобрался, БлагоДарю!

            if(!$_SESSION['uploCallNum'] OR $_SESSION['uploCallNumHash'] != $hash) {
            	$_SESSION['uploCallNum']='0';
            	$_SESSION['uploCallNumHash']=$hash;
            }
            
            /* Здесь используем номер вызова $_SESSION['uploCallNum'] */
            
            $_SESSION['uploCallNum'] = $_SESSION['uploCallNum']+1;
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6