CodeIgniter: Подключение JS и CSS файлов там, где это нужно.

CodeIgniter: Подключение JS и CSS файлов там, где это нужно. Для разных страниц требуется часто подключать в head-секцию шаблона определённые скрипты и стили именно для этой конктретной страницы. Простой способ, который мы взяли у CodeIgniter-Standard-Project - каркаса для создания сайтов на CodeIgniter.

Делается это достаточно просто. В <head> у шаблона допавляем:

<script type='text/javascript'>
   <?php if (isset($js)){echo $js;}?>          
</script>

<?php 
if(isset($head) && is_array($head)) {
   foreach ($head as $headObject) {
      echo $headObject; 
   }   
}
?>  

Переменная $js для javascript-скриптов, $head содержит массив.

Теперь, например, на страницу фотогалереи мы хотим подключить pyroBox. Тогда в контроллере фотогалереи добавляем:

$this->data['head'][] = "
<link href=\"".base_url()."js/pirobox/css_pirobox/white/style.css\" media=\"screen\" title=\"shadow\" rel=\"stylesheet\" type=\"text/css\" />
";

$this->data['head'][] = "
<script type=\"text/javascript\" src=\"".base_url()."js/pirobox/piroBox.1_2.js\"></script>
";

$this->data['js'] = "
$(document).ready(function() {
$().piroBox({
my_speed: 600, //animation speed
bg_alpha: 0.5, //background opacity
radius: 4, //caption rounded corner
scrollImage : false, // true == image follows the page, false == image remains in the same open position
pirobox_next : 'piro_next', // Nav buttons -> piro_next == inside piroBox , piro_next_out == outside piroBox
pirobox_prev : 'piro_prev',// Nav buttons -> piro_prev == inside piroBox , piro_prev_out == outside piroBox
close_all : '.piro_close',// add class .piro_overlay(with comma)if you want overlay click close piroBox
slideShow : 'slideshow', // just delete slideshow between '' if you don't want it.
slideSpeed : 4 //slideshow duration in seconds(3 to 6 Recommended)
});
});
";  
То есть необходимые css и js мы добавили в переменные. $head содержит 2 элемента (ссылку на стили и на скрипт), а $js содержит javascript функцию с параметрами pirobox. Теперь они будут подключены только для фотогалереи. Таким образом подключение js и css в CodeIgniter вовсе несложная вещь.
Стоит дать ссылку на CodeIgniter Standard Project от Ben Edmunds, в которой реализован этот приём. Может кому-то будет полезным.
Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.