We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 31716
    • 61 Posts
    Добрый день!

    Простая задача, сделать счетчик.
    Делаю снипет:
    <?php
    static $i=0;
    return $i++;
    ?>

    и сохраняю его под именем "test"

    Делаю на странице вызовов снипетта несколько раз:
    [!test!], [!test!], [!test!]

    При загрузке страницы получаю:
    0, 0, 0

    :(

    А я ожидал, что у меня будет на выходе
    0, 1, 2

    Вопрос: А что делать? smiley Как тогда задать в сниппете статичную переменную? И как вообще в МОДх делать снипетты, требующие инкрементной работы, в частности, счетчики?

    С уважением, Владимир
      www.verseq.ru - необычный клавиатурный тренажер, уже через час вы сможете печатать вслепую. smiley
      www.taiso.ru - арт-группа Taiso Style (портфолио, правда до сих пор нет времени выложить за последних два года smiley )
      • 28814 ☆ A M B ☆
      • 1,086 Posts
      Хм.. а я вот даже и не знал такой конструкции в PHP - static smiley. Вы уверены, что это в принципе работает? Может быть это из C++ (или аналога? )?
      А вообще я бы в Вашем случае использовал сессии (session).
        Разработка сайтов и программных модулей на MODX.
        Опыт работы на MODx с 2005 года. Высокое качество.
        Компания Baltic Design Colors: http://www.bdcolors.ru.
        • 31716
        • 61 Posts
        Здравствуйте Игорь!
        Quote from: Igor at Apr 14, 2007, 02:00 PM

        Хм.. а я вот даже и не знал такой конструкции в PHP - static smiley. Вы уверены, что это в принципе работает? Может быть это из C++ (или аналога? )?
        Не пугайте меня smiley Вроде пока все на месте, все есть - http://ru2.php.net/static

        Quote from: Igor at Apr 14, 2007, 02:00 PM

        А вообще я бы в Вашем случае использовал сессии (session).
        Сессии они не совсем такие. Сессии работают на протяжении работы пользовательской сессии и больше, а статическая переменная в пределах времени выполнения скрипта.

        Просто в пределах вывода Ditto хочу пронумеровать выводимые документы (вывод в таблицу идет, по этому <ol> не подойдет). Как раз в чанк для Ditto я хочу вставить сниппет счетчика... И тут такой облом smiley

        С уважением, Владимир
          www.verseq.ru - необычный клавиатурный тренажер, уже через час вы сможете печатать вслепую. smiley
          www.taiso.ru - арт-группа Taiso Style (портфолио, правда до сих пор нет времени выложить за последних два года smiley )
          • 26586
          • 184 Posts
          $GLOBALS не подойдет?
            • 33694
            • 742 Posts
            Снипеты через eval() выполняются, поэтому и не работает ($i=0 в каждом вызове будет другой).

            Я думаю проще будет подпилить Ditto wink Сделать дополнительный PH и через него, без всякой химии, выводить номера.
              • 31716
              • 61 Posts
              Добрый вечер!
              Quote from: Segr at Apr 14, 2007, 02:54 PM

              $GLOBALS не подойдет?
              Пробывал... Почему-то то тоже не работает... sad

              Quote from: [e
              Bu$ter link=topic=13988.msg91572#msg91572 date=1176580895]
              Снипеты через eval() выполняются, поэтому и не работает ($i=0 в каждом вызове будет другой).

              Я думаю проще будет подпилить Ditto wink Сделать дополнительный PH и через него, без всякой химии, выводить номера.
              Ой... smiley

              Мдя... smiley Ситуация, оказывается, совсем не простая...
              С уважением, Владимир
                www.verseq.ru - необычный клавиатурный тренажер, уже через час вы сможете печатать вслепую. smiley
                www.taiso.ru - арт-группа Taiso Style (портфолио, правда до сих пор нет времени выложить за последних два года smiley )
                • 26586
                • 184 Posts
                ну в ditto, где мне нужно было нумеровать каждый item, япросто вставил одну строчку в рендер
                $placeholders['x'] = $x;

                счетчики оказались не нужны
                  • 31716
                  • 61 Posts
                  Quote from: Segr at Apr 14, 2007, 03:56 PM

                  ну в ditto, где мне нужно было нумеровать каждый item, япросто вставил одну строчку в рендер
                  $placeholders['x'] = $x;

                  счетчики оказались не нужны
                  А "в рендер" - это где? smiley Пилили Дитто?

                  С уважением, Владимир
                    www.verseq.ru - необычный клавиатурный тренажер, уже через час вы сможете печатать вслепую. smiley
                    www.taiso.ru - арт-группа Taiso Style (портфолио, правда до сих пор нет времени выложить за последних два года smiley )
                    • 897
                    • 1,620 Posts
                    да в дитто.
                      "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                      Не используйте Revo для "просто сайтов". Используйте Evo

                      Who can defeat the Russian bear?
                      • 31716
                      • 61 Posts
                      Спасибо за ответ!

                      Пилить модули у меня рука не поднимается. Иначе будет постоянно повторятся стандартная ситуация - после очередного обновления сайт не работает и ищешь потом где глюк smiley

                      Скорее всего кастомный сниппет для вывода напишу...

                      С уважением, Владимир
                        www.verseq.ru - необычный клавиатурный тренажер, уже через час вы сможете печатать вслепую. smiley
                        www.taiso.ru - арт-группа Taiso Style (портфолио, правда до сих пор нет времени выложить за последних два года smiley )