[Закрыть]
 
popoff.donetsk.ua
Надменное извинение - ещё одно оскорбление.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - Программирование - Модули - xmlfilter - Расширение возможностей - xmlfilter_user_tag
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Деньги, но неинтересная работа и невозможность уделить время семье
Интересная работа, возможность саморазвиваться, но нищенский заработок
Ваш возраст (не обязательно)
Почему? (не обязательно)

Голосование закрыто.

Поиск по сайту
Реклама
Обмен электронных валют
money.dn.ua
Статистика

xmlfilter_user_tag

Постоянный адрес статьи

xmlfilter_user_tag -- Задает специальный способ обработки тегов

Описание

mixed xmlfilter_user_tag(string $s_tag,array $a_attr,string $s_body)

Выполняет специальную обработку тегов.

Если эта функция не определена, то специальная обработка тегов не производится.

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

$s_tag
Имя обрабатываемого тега
$a_attr
Ассоциативный массив со списком атрибутов этого тега. В качестве ключа указывается имя атрибута, в качестве значения - значение атрибута.
$s_body
Весь вложенный текст в таком виде, как он будет вставлен в результирующий xml-документ, включая все обработанные дочерние теги. Эта функция вызывается при закрытии тега, поэтому на момент вызова все дочерние теги уже обработаны.

Возвращаемые значения

строка
на месте этого тега в результирующем xml-документе должно появиться это значение.
true (логическая истина)
тег распознан, но при его обработке возникла ошибка, и поэтому этот тег должен быть запрещен.
false (логическая ложь)
тег не распознан. Использовать обработку по умолчанию.

Пример реализации функции

Этот пример очень упрощен для демонстрации основных особенностей функции. В реальности используется другая функция.

<?php function xmlfilter_user_tag($s_tag,$a_attr,$s_body)
// return values:
// - string - строка, на которую следует заменить этот тег
// - false - тег не известен, использовать обработку по умолчанию
// - true - тег известен, возникла ошибка при обработке
{
  global 
$XMLFILTER_PARSE;

  switch(
$s_tag)
  {
    case 
'h1':
      if(empty(
$XMLFILTER_PARSE['a_param']['xml.text']))
        return 
'<h1>'.$s_body.'<hr /></h1>';
      else
        return 
$s_body."\n".str_repeat('*',strlen($s_body));
    case 
'h2':
      if(empty(
$XMLFILTER_PARSE['a_param']['xml.text']))
        return 
'<h2>'.$s_body.'<hr /></h2>';
      else
        return 
$s_body."\n".str_repeat('~',strlen($s_body));
    case 
'title':
      if(empty(
$a_attr['level']))
      {
        
_xmlfilter_parse_error(m('Required attribute (level) is not specified|xmlfilter.error'));
        return 
true;
      }
      switch(
$a_attr['level'])
      {
        case 
'1':
          if(empty(
$XMLFILTER_PARSE['a_param']['xml.text']))
            return 
'<h1>'.$s_body.'<hr /></h1>';
          else
            return 
$s_body."\n".str_repeat('*',strlen($s_body));
        case 
'2':
          if(empty(
$XMLFILTER_PARSE['a_param']['xml.text']))
            return 
'<h2>'.$s_body.'<hr /></h2>';
          else
            return 
$s_body."\n".str_repeat('~',strlen($s_body));
        default:
          
_xmlfilter_parse_error(m('The (level) attrubute contains an invalid value. Allowed values are|: a list of values;xmlfilter.user')).': 1,2';
          return 
true;
      }
  }
  return 
false;
}
?>

Использование приведенной выше функции означает, что если в исходном xml-документе мы напишем так:

<?html <h1>
    
Мой заголовок первого уровня
  
</h1>
  <
title level="2">
    
Мой заголовок второго уровня
  
</title>
?>

то в результате получится такое:

<?html <h1>
    
Мой заголовок первого уровня
  
<hr /><h1>
  <
h2>
    
Мой заголовок второго уровня
  
<hr /><h2>
?>

Смотрите так же

Статьи
 Статьи, расположенные на этом сайте
 
Программирование
 Здесь описан бесплатный движок для портала, приведена документация по всем модулям разрабатываемой мной системы на PHP, описаны некоторые подходы к программированию и приведены некоторые мои разработки на Delphi.
 
Модули
 Описание модулей системы
 
xmlfilter
 Модуль фильтрации и визуального ввода xml-документов
 
Расширение возможностей
 О том, как расширять возможности модуля фильтрации xml-документов
 
Настройки по умолчанию
 Предопределенные настройки модуля фильтрации xml-документов
xmlfilter_user_format
 Определяет возможные форматы значений атрибутов
xmlfilter_user_instruction
 Обрабатывает xml-инструкции
xmlfilter_user_morph
 Выполнить проверку орфографии
xmlfilter_user_smile
 Определяет перечень простых смайлов
xmlfilter_user_tag
 Задает специальный способ обработки тегов
xmlfilter_user_url
 Проверить и преобразовать URL

Последняя модификация: 31.08.05 17:02

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>