Строка запроса и следующий / предыдущий в классе календаря - PullRequest
0 голосов
/ 08 февраля 2011

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

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

Спасибо.

1 Ответ

0 голосов
/ 09 февраля 2011

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

Во-первых, убедитесь, что вы установили свои настройки так, чтобы "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-адресов, соответствует стилю строки запроса.

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

...