We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 785
    • 2,113 Posts
    Quote from: Avis at May 17, 2008, 04:33 AM

    Собственно, то, с чем сравнивается дата.
    Так значит, все же сниппет нужен для определения текущей даты? То есть получается примерно такой вариант:
    [+phx:if=`[*this_date:date=`%d.%m`*]`:is=`01.01`:then=`С новым Годом!`+]

    и сниппет:
    return time(); 

    Мне непонятно, чем он лучше такого сниппета:
    $output = "";
    if (date("d.m") == "01.01") $output = "С новым Годом!";
    return $output;
    

    Или еще проще:
     
    return date("d.m") == "01.01" ? "С новым Годом!" : "";
    
      Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
      Статьи о MODx, регулярно новые публикации
      • 2495
      • 30 Posts
      Ну, тут уже идёт полемика о рациональности использования PHx... smiley

      При единственном таком случае, согласен - проще пользовать специально написанный сниппет, специально под данный случай. smiley

      Но вот если у Вас на странице сравнений с текущей датой (датой создания документа/коммента, датой/времени события), танете Вы писать сниппеты? (Хм, а может и станете. Если Вам это удобно...) Во всяком случае - всё уместно в нужное время и в нужном месте. Тут уж Вам, как разработчику виднее, когда  что пользовать. Функционал PHx менее богат, чем тот, который даёт вам сниппет. Но он просто даёт  возможность НЕ создавать сниппет, если такое возможно. А это бывает полезно...:)

      Моя ИМХа...
        • 1611
        • 591 Posts
        А я не понял две вещи:
        1. обязательно ли задавать дату через TV или можно как-то добраться до системной даты?
        2. все-таки как будет работать с кешированием? не получится ли так, что при наступлении нужной даты картинка "с новым годом" не появится, из-за того, что в кеше еще старый документ?
          • 785
          • 2,113 Posts
          Quote from: andrnag at May 17, 2008, 05:48 AM

          А я не понял две вещи:
          1. Вроде бы стандартными средствами нельзя, может, ошибаюсь, пусть другие поправят. Хотя можно добавить TV и прописать у него значение по умолчанию:
          @EVAL return time();
          Хотя проще сразу получать дату:
          @EVAL return date("d.m");
          2. Если использовать сниппет, то на кэшированной странице ставится некэшированный вызов. А как с PHx, пусть его сторонники расскажут.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации