查询字符串和日历类中的下一个/上一个

时间:2011-02-08 08:13:51

标签: php codeigniter codeigniter-url codeigniter-2

如何在使用查询字符串时显示日历中的下一个/上一个链接?

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

感谢。

1 个答案:

答案 0 :(得分:0)

这应该相当简单,但并不像设置选项那么容易。

首先,请确保设置首选项,以便将“show_next_prev”设置为true,并将“next_prev_url”设置为您日历所在的任何网址。确保你没有在URL的末尾添加任何内容,例如斜杠或问号等。

其次,为了不破解核心库文件,创建一个名为MY_Calendar的新类并将其放在应用程序/库文件夹中。使此类扩展Calendar类。

接下来,将原始Calendar类中的generate()函数复制并粘贴到新的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行附近,看起来非常相似。

那应该是它。您所做的就是确保为next和prev url生成的语法与查询字符串样式匹配。

请注意,我没有对此进行测试,但它应该有效!