We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 45664
    • 2 Posts
    Доброго времени суток всем. Помогите пожалуйста разобраться. На сайте есть вот такой календарь.

    В него каким-то чудным образом записываются различные события. Я в админке он есть только в чанках в 2х видах и имеет вот такой код:

    calendaritems
    events[[+count+]] = {};
    var str = '[+pagetitle+]';
    events[[+count+]][new Date("[+date+]")] = new Event(str.replace(/'/g, '"'), '[+url+]', "events_day");


    js_calendarBlock
    <script type="text/javascript">
    $(document).ready(function(){
        var Event = function(text, url, className) {
            this.text = text;
            this.url = url;
            this.className = className;
        };
        
        var events = {};
        [+calendarItems+]
        var event_size = [+size+]; 
    
        $('#datepicker').datepicker({
            showOtherMonths: true,
            dateFormat: 'd.mm.yy',
            beforeShowDay: function(date) {
                var item = '';
                for (var i = 0; i <= event_size; i++) {
                    var event = events[i][date];
                    if (event) {
                        item = [true, event.className, event.text];
                        return item;
                    } else {
                        item = [true, '', ''];
                    }
                }
                return item;
            },
            onSelect: function(dateText, dt){
                var data = dateText
                var a = dateText.split('.')[0];
                var ch = $('#datepicker .ui-datepicker-calendar tr').each(function(){
                            $(this).find('td').children('.ui-state-default').html();
                         });
                
                d = new Date(dateText.split('.')[1]+"/"+dateText.split('.')[0]+"/"+dateText.split('.')[2]);
                var items = '';
                for(var p in events) {
                    event = events[p][d];
                    if (event) {
                       items = items + '<a href="'+events[p][d].url+'">'+events[p][d].text+'</a>';
                    } 
                };
                var str = '<div class="info-datepicker2"><div class="gray-block">'+items+'</div></div>';
                $('.ui-datepicker-inline').parent().find('.info-datepicker2').remove();
                $('#datepicker').append(str);
            }
        });
    });
                
    </script>


    У меня есть 2 статьи в блоге, скажем статьи А и В. Абсолютно одинаковые (только разное содержание). Тем не менее статья А есть в календаре, а статьи В там нет. Я не могу понять как в него записываются события? Подскажите пожалуйста.
    Если посмотреть код страницы в браузере, кликнув на календарь, то можно увидеть следующее:
    var events = {};
        events[0] = {};
    var str = 'Мастерская коучинга с Открытым сердцем';
    events[0][new Date("11/11/2013")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/online/masterskaya-kouchinga/', "events_day");events[1] = {};
    var str = 'Тренинг "Желай, дерзай, осуществляй"';
    events[1][new Date("10/24/2013")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/v-zapisi/trening-zhelaj-derzaj-osushhestvlyaj/', "events_day");events[2] = {};
    var str = 'Курс "Книга успеха — изучи Правила жизни"';
    events[2][new Date("10/24/2013")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/v-zapisi/kurs-kniga-uspexa-izuchi-pravila-zhizni/', "events_day");events[3] = {};
    var str = 'Пробуждение счастливой женщины';
    events[3][new Date("10/24/2013")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/v-zapisi/probuzdenia-schastlivoy-zhenshini/', "events_day");events[4] = {};
    var str = 'Авторский курс "Без долгов"';
    events[4][new Date("10/19/2013")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/v-zapisi/trening-3/', "events_day");events[5] = {};
    var str = 'Медитации для женщин и девушек';
    events[5][new Date("10/18/2013")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/v-zapisi/trening-2/', "events_day");events[6] = {};
    var str = 'Мастер-класс "Без долгов"';
    events[6][new Date("01/01/1970")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/vyiezdnyie-treningi/avtorskij-kurs-bez-dolgov/', "events_day");events[7] = {};
    var str = 'Мастер-класс "Без долгов"';
    events[7][new Date("01/01/1970")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/vyiezdnyie-treningi/avtorskij-kurs-bez-dolgov/', "events_day");events[8] = {};
    var str = 'Мастер-класс "Без долгов"';
    events[8][new Date("01/01/1970")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/vyiezdnyie-treningi/trening-5/', "events_day");events[9] = {};
    var str = 'Истинное Призвание - определи свой путь.';
    events[9][new Date("01/01/1970")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/online/istinnoe-prizvanie-opredeli-svoj-put/', "events_day");events[10] = {};
    var str = 'Duplicate of Мастерская коучинга с Открытым сердцем';
    events[10][new Date("01/01/1970")] = new Event(str.replace(/'/g, '"'), '/treningi-i-kursyi/online/170/', "events_day");
        var event_size = 10;

    Не могу найти как же он генерируется то [ed. note: razor355 last edited this post 12 years, 11 months ago.]
      • 17149
      • 19 Posts
      calendaritems - видимо чанк используется как темплейт в вызове сниппета Ditto, в результате получается
      js_calendarBlock - чанк с яваскриптом для jQueryUI datepicker, в него с помощью плейсхолдера [+calendarItems+] вставляется отработавший сниппет в формате из чанка calendaritems, скорее всего вызов сниппета происходит в содержимом одноимёного TV который прикреплен к шаблону, который используется на странице с календарём.
      Набор ключевиков для гугления я вам привёл, это предположение, информации маловато, с разработчиком не нужно было ссориться, а расставаясь не нужно терять контакт =)