Как передать многомерный массив с событиями в библиотеку календаря Codeigniter? - PullRequest
0 голосов
/ 17 февраля 2012

Я строю календарь и столкнулся с проблемой.Мне нужно передать многомерный массив с событиями в библиотеку календаря

Это из руководства пользователя Codeingiter:

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

$data = array(
               3  => 'http://example.com/news/article/2006/03/',
               7  => 'http://example.com/news/article/2006/07/',
               13 => 'http://example.com/news/article/2006/13/',
               26 => 'http://example.com/news/article/2006/26/'
             );

echo $this->calendar->generate(2006, 6, $data);

Можно ли передать многомерный массив, например:

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

$data = array(
               3  => array('url'=>'article/2006/03/', 'title'=>'Hello1'),
               7  => array('url'=>'article/2006/07/', 'title'=>'Hello2'),
               13 => array('url'=>'article/2006/13/', 'title'=>'Hello3'),
               26 => array('url'=>'article/2006/26/', 'title'=>'Hello4')
             );

echo $this->calendar->generate(2006, 6, $data);

и затем как-то ссылаться на него в шаблоне календаря, что-то вроде:

{cal_cell_content}<h1>{title}</h1><a href="{url}">{day}</a>{/cal_cell_content}

Спасибо!

1 Ответ

2 голосов
/ 17 февраля 2012

То, что я хотел бы сделать, это расширить встроенную библиотеку CodeIgniter Calendar и перезаписать функцию generate().В цикле while, который содержит основную часть календаря, измените код, который создает содержимое ячейки.Заставьте его заменить {title} на заданный вами заголовок, а {url} - на ваш URL.

Я думаю изменить:

$out .= str_replace('{day}', $day, str_replace('{content}', $data[$day], $temp));

На

$out .= str_replace('{day}', $day, str_replace('{title}', $data[$day]['title'],
str_replace('{url}', $data[$day]['url'], $temp)));

многие делают это, но у меня нет времени, чтобы проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...