`
禹爸爸
  • 浏览: 79932 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

CodeIgniter类库之Calendar Class

    博客分类:
  • PHP
 
阅读更多

CodeIgniter作为一款优秀的PHP开源框架,提供了相当丰富的类库供编程人员使用,这其中也包括对日历进行处理的Calendar Class。

Claendar Class能够帮助我们动态的创建日历,支持使用模板对其进行样式化以便给提供更好的用户体验,还能够对日历中的日期单元格进行链接设置。

在使用Calendar Class之前,需要使用

$this->load->library('calendar');

之后就可以使用$this->calendar对其进行操作。

$this->load->library('calendar');
$this->calendar->generate();

上面的代码会依据服务器上的当前年、月创建一个日历。如果想显示指定年月的日历则需要将年份和月份以参数的形式传递给generate函数。

$this->load->library('calendar');
$this->calendar->generate(2008, 8);

上面的代码会动态创建出2008年8月的日历。

若希望为日历中的某一天或是某些天指定超链接,则需要先构建一个数组,并在指中指定日期和链接地址,然后作为generate的第三个参数传入。

$this->load->library('calendar');
$data = array(
3 => 'http://your-site.com/news/article/2008/03/',
7 => 'http://your-site.com/news/article/2008/07/',
13 => 'http://your-site.com/news/article/2008/13/',
26 => 'http://your-site.com/news/article/2008/26/'
);
$this->calendar->generate(2008, 6, $data);

上面的代码会将动态创建的日历中的3、7、13、26四个日期单元格设置为超链接。

如果希望可以动态的调整日历显示的月份,我们可以在日历上添加“上个月”和“下个月”的链接。CodeIgniter中的Calendar Class可以很简单快速的实现。

$prefs = array (
'show_next_prev'=> TRUE,
'next_prev_url' => 'http://www.your-site.com/index.php/your-controller/your-function/'
);
$this->load->library('calendar', $prefs);
$this->calendar->generate();

上面的代码就实现了“上个月”和“下个月”的链接。很简单,不是吗?现在应该感觉到CodeIgniter的Power了吧,真的很棒!!

Calenday Class为我们提供了若干个Preference,上面提到的“上个月”和“下个月”的显示就是其中的一个。

Preference

Default

Options

Description

start_day sunday 一周内的任一天(sunday,monday,ect.) 指定每周的第一天
month_type long long, short 月份的显示样式long = January, short = Jan
day_type abr long, short, abr 星期的显示样式long = Sunday, short = Sun, abr = Su
local_time time() None  
show_next_prev FALSE TRUE/FALSE 是否显示“上个月”和“下个月”链接
next_prev_url None A URL “上个月”和“下个月”链接地址
template None None 模板字符串

如果希望提供更好的用户体验,我们可以使用Template为日历指定一个模板,使其按我们的格式进行显示。

$prefs['template'] ='
{table_open}<table border="0" cellpadding="0" cellspacing="0">{/table_open}
{heading_row_start}<tr>{/heading_row_start}
{heading_previous_cell}<th><a href="{previous_url}">&lt;&lt;</a></th>{/heading_previous_cell}
{heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}
{heading_next_cell}<th><a href="{next_url}">&gt;&gt;</a></th>{/heading_next_cell}
{heading_row_end}</tr>{/heading_row_end}
{week_row_start}<tr>{/week_row_start}
{week_day_cell}<td>{week_day}</td>{/week_day_cell}
{week_row_end}</tr>{/week_row_end}
{cal_row_start}<tr>{/cal_row_start}
{cal_cell_start}<td>{/cal_cell_start}
{cal_cell_content}<a href="{content}">{day}</a>{/cal_cell_content}
{cal_cell_content_today}<div class="highlight"><a href="{content}">{day}</a></div>{/cal_cell_content_today}
{cal_cell_no_content}{day}{/cal_cell_no_content}
{cal_cell_no_content_today}<div class="highlight">{day}</div>{/cal_cell_no_content_today}
{cal_cell_blank}&nbsp;{/cal_cell_blank}
{cal_cell_end}</td>{/cal_cell_end}
{cal_row_end}</tr>{/cal_row_end}
{table_close}</table>{/table_close}
');
$this->load->library('calendar', $prefs);
$this->calendar->generate();

注:请将文章中的“'http://www.your-site.com”替换为您自己的网站地址,请将“your-controller”替换为您自己的控制器类名,请将“your-function”替换为您自己的控制器函数名称。

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    codeigniter 的模板类库及日志类库

    codeigniter 的模板类库及日志类库 codeigniter 的模板类库及日志类库 codeigniter 的模板类库及日志类库 英文的

    codeigniter_1.7.1_类库

    提供codeigniter_1.7.1_类库供广大的CI学习或开发者参考。

    CodeIgniter辅助函数和类库的使用

    Codeigniter常用类库及辅助函数的使用

    【共享】codeigniter配置类库

    NULL 博文链接:https://baiyuxiong.iteye.com/blog/935817

    codeigniter日志类库

    NULL 博文链接:https://baiyuxiong.iteye.com/blog/865478

    PHP基于Codeigniter第三方登录类库

    / Codeigniter的oauth登录类库 Following sites supported: china/国内网站: 163登录 奇虎360登录 豆瓣登录 QQ登录 人人登录 新浪微博登录 English/国外 bitbucket dropbox facebook flickr google linkedin ...

    CodeIgniter辅助之第三方类库third_party用法分析

    主要介绍了CodeIgniter辅助之第三方类库third_party用法,以CI集成Twig模版为例分析了CodeIgniter集成第三方类库的实现步骤与相关技巧,需要的朋友可以参考下

    Codeigniter无限分类类库

    NULL 博文链接:https://baiyuxiong.iteye.com/blog/815247

    PHP框架之CodeIgniter留言板实例

    PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter留言板实例PHP框架之CodeIgniter...

    使用CodeIgniter的类库做图片上传

    CodeIgniter的文件上传类允许文件被上传。您可以设置指定上传某类型的文件及指定大小的文件。这篇文章主要介绍了使用CodeIgniter的类库做图片上传,需要的朋友可以参考下

    CodeIgniter框架验证码类库文件与用法示例

    主要介绍了CodeIgniter框架验证码类库文件与用法,结合实例形式分析了CodeIgniter框架验证码类库文件的定义与具体使用方法,具有一定参考借鉴价值,需要的朋友可以参考下

    Codeigniter一级分类类库

    NULL 博文链接:https://baiyuxiong.iteye.com/blog/949243

    Codeigniter整合Tank Auth权限类库详解

    相交其他CodeIgniter的类库,tank_auth,配置简单,使用也简单,并且作者也一直在更新,现在是1.0.9。1.0.8已经支持CI2.0了,我现在一般的项目都是用它,所以推荐给大家。 安装Tankauth的步骤 下载最新版类库(下载...

    PHP各大网站登录类库.zip

    / Codeigniter的oauth登录类库 Following sites supported: china/国内网站: 163登录 奇虎360登录 豆瓣登录 QQ登录 人人登录 新浪微博登录 English/国外 bitbucket dropbox facebook flickr ...

    codeigniter分页类的使用

    codeigniter分页类的使用 Codeigniter 分页类的使用 对于codeigniter框架分页类的使用非常的简单,下面通过一个实例来讲解一下这个分类的使用。 首先分页要设计到一个数据库中的记录,所以先建立一个数据表books,...

Global site tag (gtag.js) - Google Analytics