Подключение списка javascript и css

27 Ноябрь 2010

Для организации примеров с работой скриптов мне понадобилось подключить дополнительные файлы со скриптами javascript и файлы со стилями css. И подключать их необходимо только к тем страницам где есть в них необходимость. Сам список скриптов и стилей может меняться. Реализовать это в системе TEXTPATTERN можно по разному. Я предлагаю такой метод.

В системе Textpattern есть возможность определить "Настраиваемые поля". Определяются они во вкладке "Настройки"->"Главнае"->"Продвинутые настройки". Всего там 10 "Настраиваемых полей". Я использовал последние 2, но это не принципиально. Одно поле назвал "css", другое соответственно   "javascript". Эти поля отображаются в пункте меню "Продвинутые настройки" при написании или редактировании статьи. В этих полях можно через запятую перечислять файлы которые необходимо подключать к статье. Только необходимо учитывать максимальный размер этих полей 254 символа. Для большенства случаев наверно этого достаточно.

Далее необходимо создать две формы типа "misc". Я назвал их "custom_css" и "custom_js".

Вот код PHP формы "custom_css":
<txp:php>
$strcss='<link rel="stylesheet" type="text/css" media="screen" href="http://www.solo-line.ru/css/';
$str=trim(custom_field(array('name' => 'css')));
$str=strip_tags($str);
if (strlen($str)>10) {
$css=preg_split("/[\s,]+/",$str);
foreach($css as $x){
echo $strcss.$x.'" />'."\n";
}
}
</txp:php>

Как видно я использовал тег системы textpattern позволяющий вставлять произвольный PHP код(<txp:php>).

И вот код "custom_js":
<txp:php>
$strjs='<script type="text/javascript" src="/js/';
$str=trim(custom_field(array('name' => 'js')));
$str=strip_tags($str);
if (strlen($str)>10) {
$js=preg_split("/[\s,]+/",$str);
foreach($js as $x){
echo $strjs.$x.'"></script>'."\n";
}
}
</txp:php>

Остается только подключить эти формы, в моем случаи я подключал их в другой форме отвечающей за вывод заголовков и мета тегов. Вот таким образом:
<txp:if_custom_field name="js"><txp:output_form form="custom_js" /></txp:if_custom_field>
<txp:if_custom_field name="css"><txp:output_form form="custom_css" /></txp:if_custom_field>


Вот и все. Как видно система Textpattern позволяет программисту сделать очень и очень многое. Практически столько же сколько и дизайнеру.

Андрей Лебедев

,

, , ,

Комментарий

Нет комментарий.

Комментировать: