Модуль FullCalendar Yii: функция actionList в MainController.php

Я пытаюсь понять, как/где переменные $start и $end передаются функции actionList в сценарии MainController.php модуля FullCalendar Yii:

http://www.yiiframework.com/extension/cal/

http://arshaw.com/fullcalendar/

public function actionList($start = 0, $end = 0)
{
    if ((Yii::app()->request->isAjaxRequest) and (Yii::app()->user->hasState('calUserId')) )
    {
        $criteria = new CDbCriteria(array(
                    'condition' => 'user_id=:user_id',
                    'params'=>array(':user_id'=> Yii::app()->user->getState('calUserId')),
                ));
        $criteria->addBetweenCondition('start', $start, $end);
        $events = Event::model()->findAll($criteria);
        echo CJSON::encode($events);
        Yii::app()->end();
    }
}

Это происходит из сценария fullcalendar.min.js? Кажется, единственное место, где это называется, находится в eventCal.js:

var defaultCalendarOptions = {
        events: params.baseUrl+'list',

Передаются ли когда-нибудь переменные с помощью модуля Yii или они всегда $start=0,$end=0? Если они переданы, пожалуйста, объясните, как...


person ews2001    schedule 02.08.2012    source источник
comment
ссылка на этот модуль поможет   -  person bool.dev    schedule 03.08.2012


Ответы (1)


Переменные $start и $end на самом деле являются $_GET параметрами, которые передаются методу actionList. Фреймворк Yii часто делает это — если у метода действия есть параметры, он ищет $_GET параметров с тем же именем и вместо них передает их.

Вы сделали хорошее предположение, что для этого используется строка events: params.baseUrl+'list', но фактический фрагмент кода, который отправляет запрос GET, скрыт глубоко внутри файла fullcalendar.js:

$.ajax($.extend({}, ajaxDefaults, source, {
    data: data,
    ...

В этом коде source — это параметр events, указанный выше, который передается фактическому сценарию полного календаря, а data — это массив с параметрами start и end. Полный исходный код скрипта можно найти здесь. Расширение, которое вы используете, имеет только уменьшенную версию.

person Grampa    schedule 05.08.2012
comment
Это имеет смысл, спасибо за подробное объяснение. - person ews2001; 06.08.2012