Строка запроса и следующий/предыдущий в классе календаря

Как я могу показать следующие/предыдущие ссылки в календаре при использовании строк запроса?

http://codeigniter.com/user_guide/libraries/calendar.html

Спасибо.


person emurad    schedule 08.02.2011    source источник


Ответы (1)


Это должно быть довольно просто, но это не так просто, как установка параметра.

Во-первых, убедитесь, что вы установили свои настройки так, чтобы для параметра «show_next_prev» было установлено значение true, а для параметра «next_prev_url» — любой URL-адрес, по которому находится ваш календарь. Убедитесь, что вы ничего не ставите в конце URL-адреса, например косой черты, вопросительного знака и т. д.

Во-вторых, чтобы не взломать файл основной библиотеки, создайте новый класс с именем MY_Calendar и поместите его в папку вашего приложения/библиотеки. Сделайте этот класс расширением класса Calendar.

Затем скопируйте и вставьте функцию generate() из исходного класса Calendar в новый класс MY_Calendar. Теперь мы можем редактировать эту функцию, и она будет перезаписана без удаления оригинала.

Найдите строку (около строки 163), где косая черта добавляется к переменной next_prev_url, и удалите ее.

Через несколько строк вы увидите:

$out .= str_replace('{previous_url}', $this->next_prev_url.$adjusted_date['year'].'/'.$adjusted_date['month'], $this->temp['heading_previous_cell']);

Замените эту строку на:

$out .= str_replace('{previous_url}', $this->next_prev_url.'?year='.$adjusted_date['year'].'?month='.$adjusted_date['month'], $this->temp['heading_previous_cell']);

Затем сделайте то же самое несколькими строками позже для next_url. Это должно быть около строки 183 и будет выглядеть очень похоже.

И это должно быть так. Все, что вы сделали, это убедились, что синтаксис, сгенерированный для следующего и предыдущего URL-адресов, соответствует стилю строки запроса.

Обратите внимание, я не проверял это, но это должно работать!

person musoNic80    schedule 08.02.2011