0

我是 CodeIgniter 的新手,我正在尝试使用该库来管理我目前正在处理的应用程序中的事件。经过一点谷歌后,我发现下面提到的图书馆是最好的图书馆。

https://github.com/ericbarnes/CodeIgniter-Events/blob/master/libraries/events.php

但我不知道如何使用它.. 好吧,我已经编写了一些代码,用户可以添加、查看、更新和删除事件。但是我想以这样的方式管理事件,如果用户添加事件然后事件时间结束后,该事件应自动从视图部分隐藏......我可以通过我上面提到的 libaray 来做到这一点吗?或者任何人都可以告诉我最好的事件库....

4

1 回答 1

2

我觉得你搞错了。该库旨在处理事件,特别是在您想要处理的应用程序中发生其他事情时通知您的应用程序。

根据您的问题,我猜您想实现一种功能,使您可以管理诸如聚会、会议或类似活动之类的活动。

您几乎找不到任何现成的解决方案,因为框架(以及它的附加库)只是简化开发过程的工具包。

为了给你一个快速入门,我刚刚为你组装了一些东西。CodeIgniter 提供了一个日历库,它试图简化创建日历系统的工作。

所以让我们创建三个文件。我们的日历模板的控制器、模型和视图文件。

应用程序/控制器/calendar.php

<?php

class Calendar extends CI_Controller{

    /**
     * The constructor loads our calendar library and passes 
     * our custom calendar template to it. Also we load 
     * the calendar model where the events will be pulled from
     * later on.
     */

    public function __construct()
    {
        parent::__construct();

        $calendar_conf['template'] = $this->load->view('calendar_template', null, true);
        $this->load->library('calendar', $calendar_conf);

        $this->load->model('calendar_model');
    }

    /**
     * Pulls events from our Calendar_Model and displays the
     * events
     */

    public function index()
    {
        $year = date('Y');
        $month = date('m');

        $events = $this->calendar_model->get_events($year, $month);
        echo $this->calendar->generate($year, $month, $events);

    }

}

应用程序/模型/calendar_model.php

<?php

class Calendar_Model extends CI_Model{

    private $events = array(
        '2013' => array(
            '07' => array(
                3  => 'Meeting with Mr. Smith',
                7  => 'Big Party tonight bro!',
                13 => 'Something Big will happen here ;)',
            )
        )
    );

    /**
     * Gets events of a given year and month
     * your probably want to pull your events 
     * from a database.
     */

    public function get_events($y, $m)
    {
        if(!isset($this->events[$y][$m]))
            return null;
        return $this->events[$y][$m];
    }

}

最后让我们创建我们的日历模板

应用程序/视图/calendar_template.php

{table_open}<table border="0" cellpadding="0" cellspacing="4">{/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="#" title="{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}

控制器加载存储事件数据的模型并将数据传递到 CI 的本地日历库。然后我们显示日历本身。模型本身专用于保存事件数据并提供读取和(此处未实现,但您可能想要)写入事件的方法。

最后我们有我们的视图文件作为我们的日历模板。它使用由 CodeIgniter 提供的模板变量。你可以在这里阅读:http: //ellislab.com/codeigniter/user-guide/libraries/calendar.html

当然,这只是日历应用程序的一小部分。例如,我们的事件不能保存超过一串数据。一旦您使用 CodeIgniter 变得更好,您可能希望扩展本机日历类以允许存储数组。

但我认为这是一个好的开始。如果您对此有任何进一步的问题,请随时提问。

快乐编码!

于 2013-07-11T08:11:31.850 回答