Формат для подключения включаемых файлов
43 / 177
Комментарий для подстановки включаемого кода позволяет указать имя файла и параметры, которые ему передаются.

Начиная с версии модуля 2.0.0 мы рекомендуем вместо специального комментария писать вызов функции CAskaronInclude::IncludeFile:

<?CAskaronInclude::IncludeFile(
  "iblock.vote.php",
  array(
    "IBLOCK_ID" => 3,
    "ELEMENT_ID" => 15
  ),
);?>


Но бывают ситуации, когда включаемый файл надо вызвать прямо внутри текста новости или в описании товара. Для этого используйте специальный HTML-комментарий, на его месте будет вызван включаемый файл.


Простой пример:

<!--askaron.include
date.php
-->


Пример с параметрами:


<!--askaron.include
iblock.vote.php
<PARAMS>
    <IBLOCK_ID>3</IBLOCK_ID>
    <ELEMENT_ID>15</ELEMENT_ID>
    <VOTE_NAMES>
        <ITEM>ужасно</ITEM>
        <ITEM>плохо</ITEM>
        <ITEM>нормально</ITEM>
        <ITEM>хорошо</ITEM>
        <ITEM>отлично</ITEM>
    </VOTE_NAMES>
</PARAMS>
-->


Общий формат:

1. заголовок <!--askaron.include
2. один или более пробельных символов (пробелы, табы, переносы строк)
3. имя файла
4. один или более пробельных символов (пробелы, табы, переносы строк)
5. любое количество любых символов
6. окончание -->

В пункте 3 имя файла не должно содержать пробелов.

В пункте 5 может содержаться XML, с основным тэгом <PARAMS>, а может не быть ничего.


Формат XML <PARAMS>:

XML содержит список параметров, которые получит включаемый файл в массиве $arParams. Главный тэг должен быть <PARAMS>

Парсер обрабатывает XML-тэги только первого уровня ключ => значение:

В качестве значения может быть или текст, или тэги <ITEM>. Список тэгов ITEM приводится к массиву.

Внутри тэга <ITEM> может быть только текст. Вложенные тэги не допускаются.

Приведенный выше пример с параметрами соответствует коду:


$APPLICATION->IncludeFile(
  "/bitrix/php_interface/include/askaron.include/iblock.vote.php",
  array(
    "IBLOCK_ID" => "3",
    "ELEMENT_ID" => "15",
    "VOTE_NAMES" => array(
      0 => "ужасно",
      1 => "плохо",
      2 => "нормально",
      3 => "хорошо",
      4 => "отлично",
    )
  )
);


Спецсимволы:

В XML используется набор спецсимволов:

<    &lt;
>    &gt;
&    &amp;
"    &quot;
'    &apos;

Спецсимволы следует заменять, когда они попадают в XML, например для подстановки баннера вместе с HTML:

<!--askaron.include
showbanner.php
<PARAMS>
    <BANNER_TYPE>LEFT</BANNER_TYPE>
    <HTML_BEFORE>&lt;div style=&quot;text-align: center;&quot;&gt;</HTML_BEFORE>
    <HTML_AFTER>&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;</HTML_AFTER>
</PARAMS>
-->

Приведенный пример соответствует коду:

$APPLICATION->IncludeFile(
  "/bitrix/php_interface/include/askaron.include/showbanner.php",
  array(
    "BANNER_TYPE" => 'LEFT',
    "HTML_BEFORE" => '<div style="text-align:center;">',
    "HTML_AFTER" => '<br></div><br>',
  )
);

Автоматически заменить все спецсимволы в строке можно функцией:

function specialchars_for_xml( $str )
{
    //htmlspecialchars с параметром можно с версии php 5.4, и тогда кавычка ' будет &apos;
    //htmlspecialchars("'", ENT_HTML5);

    // традиционный способ
    $arFrom = array( "&", "\"", "'", "<", ">"   );
    $arTo = array( "&amp;", "&quot;", "&apos;", "&lt;", "&gt;"  );
    return str_replace( $arFrom, $arTo, $str );
}


0  


 Быстрое создание включаемого файла на основе примера | Описание курса | Классы и функции