CONTENT MANAGEMENT SYSTEM
Blox Logo
Blox CMS — блочный метод сайтостроения
.
 
Blox Help

←→

Метод Blox::addToHead()

Назначение метода — добавление кода в раздел head документа.

Аргументы метода

Blox::addToHead($str, $orderKey=null, $isFile=null);
  1. $str — код

    Дополнительный код в раздел head добавляется с помощью метода Blox::addToHead(), например:

    Blox::addToHead('<!--[if IE]><script type="text/javascript"
    src="http://blox.ru/rotator.js" ></script><![endif]-->');
    
    Blox::addToHead('<link type="text/css" rel="stylesheet"
    href="http://blox.ru/style.css" />');
  2. $orderKey — сортировочный аргумент

    Для контроля над порядком вывода кодов (см. ниже), можно применять второй необязательный аргумент (целочисленный или ассоциативный), например:

    Blox::addToHead('<base href="http://blox.ru" />', 99);
    Blox::addToHead('<link type="text/css" rel="stylesheet"
    href="http://blox.ru/style.css" />', 'style-1');

    Если сортировочный аргумент опущен, для записи кода порядковый номер будет присвоен автоматически.

  3. $isFile — код подключать из файла

    Когда в раздел head нужно нужно вставить сразу большое количество строк кода, то этот код записать в отдельный файл, и подключать его.

    Blox::addToHead('templates/head.php', '', true);
    В этом случае, в качестве первого аргумента пишется путь к файлу, и добавляется третий аргумент (он должен быть просто непустым).

Подробности

  • С помощью метода Blox::addToHead() дополнительный код можно вставлять в любом php-файле (.php, .tpl, .tdd, .uh).

    Отсюда следует, что если метод Blox::addToHead() вызвать в одном из файлов шаблона (.tpl, .tdd), код появится на всех страницах, где выводится этот шаблон.

    Если метод применить в файле конфигурации сайта config.php, то код появится на всех страницах сайта (хотя там же, в файле конфигурации, можно наложить условия, на каких страницах должна объявляться эта переменная).

  • Основное предназначение метода Blox::addToHead() – это подключение css и js файлов, поэтому для таких случаев существует сокращенная форма записи, без тегов. Для подключения css или js файла достаточно указывать только URL подключаемого файла (необходимый код припишется автоматически при выводе страницы). Пример:
    Blox::addToHead('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
    Blox::addToHead('http://jqueryui.com/web-base-template/themes/jquery/css/base.css');
    Можно использовать как относительный, так и абсолютный URL файлов
    Blox::addToHead($GLOBALS['templatesUrl'].'/flashPlayer.js');
    В любом случае, URL будут приведены к абсолютному виду.
  • Перед выводом страницы, все коды введенные с помощью метода Blox::addToHead() будут отсортированы по второму аргументу.

    Этот факт можно использовать, чтобы управлять последовательностью вывода кодов.
    • Если задать целочисленный ключ, заведомо больший количества подключенных дополнительных кодов, то соответствующий код будет выведен последним.
      Blox::addToHead('jquery-ui-1.8.13.custom.css', 100);
    • Чтобы вывести код выше других кодов, можно задать отрицательный целочисленный ключ.
      Blox::addToHead('jquery-ui-1.8.13.custom.css', -2);
      Blox::addToHead('mapit.css', -1;
      В данном примере файл mapit.css будет подключен вторым.

    • При явном задании сортировочного ключа, может случится накладка. В этом случае будет применен автоматически сгенерированный другой последовательный номер.
    • Удобный способ управления последовательностью добавления кода - это использование ассоциативных ключей по названию шаблона c добавлением целочисленных суффиксов.
      Blox::addToHead('jquery-ui-1.8.13.custom.css', 'mapit1');
      Blox::addToHead('mapit.css', 'mapit2');
    • Нужно также учитывать последовательность исполнения файлов шаблона. В частности, у внешнего блока дескриптор вызывается раньше всех других блоков, а его шаблон – позже всех. Исходя из этого, чтобы код был в самом начале раздела head, запись Blox::addToHead(...) нужно делать в дескрипторе (.tdd), а чтобы код появился в конце раздела head, эту запись нужно поместить в шаблон (.tpl).
  • Если к массиву Blox::addToHead() добавятся элементы с повторяющимся кодом, то в дальнейшей сортировке и выводе будет участвовать, только первый элемент массива с соответствующим ключом.

Примечания

  • В принципе, с помощью массива Blox::addToHead() можно также задать титул страницы, ключевые слова и описание страницы. Однако для этих целей лучше воспользоваться окном: Страница > Информация о странице

См. также