Оглавление

xs2Fetch

Эта функция возвращает строку, которую генерирует метод, вызванный по адресу, который параметры mod, obj и met задают по стандартным правилам системы. При вызове из шаблона Smarty результат оказывается в переменной с именем, которое задано в параметре var.

Адресация

Если задан только метод met, - запрашивается метод проекта; если заданы метод met и модуль mod - запрашивается метод модуля; если заданы метод met, модуль mod и тип объектов obj - запрашивается метод типа.

Назначение

Включение методов удобно для того, чтобы вынести в отдельные блоки повторяющиеся части разных страниц для совместного использования общего кода из разных методов. Разбиение кода на логические блоки, хранящиеся в разных методах, также упрощает структуру текста в процессорах и шаблонах. Допускается произвольная глубина вложенности методов.

Окружение

Во включаемом методе параметры запроса (переменные окружения $_THE['PARAMS'] и $_THE['QUE'] в процессоре, она же - $_THE.QUE в шаблоне) не переопределяются! Их значения остаются такими же, какими они были на странице, запрошенной пользователем, чтобы метод знал, откуда он был вызван.

Параметры

string mod

название модуля, метод которого запрашивается.

string obj

название типа объектов, к которому относится запрашиваемый метод.

string met

название метода

Обязательный параметр.

string atr

передаваемые во включаемый метод атрибуты (доступны в нем через массив $_THE.FETCH.PARAMS).

string var

название переменной шаблона, в которую будет помещен результат работы включаемого метода.

Используется только в шаблоне.

Примеры

Пример 16

Допустим, что метод banner относится ко всему проекту, и требуется вставить баннер в шаблон show, показывающий статью у объектов article в модуле library. Шаблон баннера может содержать произвольный код:
{strip}
  <A href="http://www.solutecs.com">
    solutecs
  </A>
{/strip}
Вставленный фрагмент с гиперссылкой:
...
<P>
  {xs2Fetch met="banner"}
</P>
...
будет виден на странице http://www.quickie.ru/library/article/show:
...
<P>
   <A href="http://www.solutecs.com">solutecs</A>
</P>
...

Пример 17

Допустим, запрошена страница http://www.quickie.ru/check/two.htm, c простым шаблоном:
{$_THE.PARAMS[0]} = {$number}
И с процессором, вызывающим метод number объектов translate из модуля words:
<?php
  $_HTML->assign(
    'number',
    xs2Fetch(array(
      'met'=>'number',
      'obj'=>'translate',
      'mod'=>'words'))
?>
Если number принимает атрибут из запроса и состоит из подобного процессора:
<?php
  switch($_THE['PARAMS'][0]){
    case 'one':
      $num = 'один'; break;
    case 'two':
      $num = 'два'; break;
    case 'three':
      $num = 'три'; break;
    ...
  }
  echo $num;
?>
То на странице будет выведено:
two = два