We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 25599
    • 59 Posts
    Всех приветствую!

    На сайте есть группа событий. Есть DittoCal, подправленный таким образом, что выводит не дату создания документа, а дату из TV (чтобы анонсы событий делать — опубликована новость может быть задолго до самого события). Но вот, незадача. При выводе самой сетки календаря по умолчанию отображается месяц последнего события (из того самого TV).

    То есть последняя новость опубликована в августе. Речь в ней идет о том, что произойдет 6 октября (в TV проставлена эта дата). В самой сетке 6 октября подсвечивается и ссылка работает. Но и при заходе на страницу с календарем по-умолчанию отображается сетка именно на октябрь.
    А хочется, чтобы отображался текущий месяц. Где копать?

    Заранее спасибо.


    _________________________________________

    Все. Вроде победил.

    Если, кому интересно, рассказываю.

    Делаем, чтобы DittoCal показывал не дату создания, а произвольную (из TV)

    Создаем TV параметр с типом ввода "Date" и визуальным компонентом "Unixtime".
    Называем его как-нибудь без символа "_" (спасибо Yurik: http://modxcms.com/forums/index.php/topic,38146.msg235086.html#msg235086).

    В файле assets/snippets/ditto/format/json.format.inc.php в шаблонах вывода меняем:
    "date":"[+json_createdon+]",

    на
    "date":"[+json_имясозданногоTVпараметра+]",

    Теперь в качестве даты в DittoCal будет передаваться значение TV, но... и сетку месяца по-умолчанию он выводит по этому же полю последнего созданного документа, что не есть гуд. Посему:

    Установка текущего месяца как месяца по-умолчанию
    В том же файле (assets/snippets/ditto/format/json.format.inc.php)создаем в самом начале новую переменную, которая принимает значение текущей даты:
    $curdate = time();

    ниже в те же два шаблона вводим новую строку (допустим, с именем "dateu"), в которой выводим это значение:
     "dateu":"$curdate",


    Теперь JSON выводит в шаблон две даты: из TV и текущую дату:
    {
    	 "title":"Бла-бла-бла",
    	 "link":"ссылка на событие",
    	 "date":"1254837300",
             "dateu":"1251121680",
    	 "guid":"ссылка на событие",
    	 "author":"автор",
    	 "description":"описание",
    	 "introtext":"интротекст",
    	},
    


    Теперь в коде самого сниппета ищем:
    $timestamp = getDate($postData->entries[0]->date);

    и меняем "date" на "dateu":
    $timestamp = getDate($postData->entries[0]->dateu);


    Может, оно и криво (в PHP — полный чайник), но вроде все работает.
    По умолчанию выводит текущий месяц, а ссылку на событие формирует по дате из TV.

    Спасибо за внимание.
    Буду рад, если помог кому-то.
    ;D