Действия

XML файл компонента Joomla

Материал из База знаний Joomla

Это статья из раздела Программирование для Joomla. Вернитесь в него для более полной информации.



 
<?xml version="1.0" encoding="windows-1251"?>
<mosinstall type="component" version="4.5.2">
 
	<name>xcomponent</name>
	<author>Имя Автора</author>
 
  <files>
        <filename>xcomponent.php</filename>
        <filename></filename>
  </files>
 
  <install>
        <queries>
 
          <query>
                CREATE TABLE IF NOT EXISTS `#__xxx` (
	  `id` BIGINT UNSIGNED NOT NULL auto_increment PRIMARY KEY,
	  `title` VARCHAR(255) NOT NULL,
	  `description` BLOB NOT NULL
                ) TYPE=MyISAM;
          </query>
 
        </queries>
  </install>
 
  <administration>
        <menu>XComponent</menu>
	<submenu>
		<menu task="">Default task</menu>
		<menu task="list">List Smth</menu>
	</submenu>
        <files>
          <filename>admin.xcomponent.html.php</filename>
          <filename>admin.xcomponent.php</filename>
          <filename>xcomponent.xml</filename>
          <filename>toolbar xcomponent.html.php</filename>
          <filename>toolbar.xcomponent.php</filename>
        </files>
  </administration>
  <params>
		<param name="param_1" type="list" default="1" label="Описание параметра"          
                    description="Подсказка для параметра">
			<option value="1">Опция 1</option>
			<option value="2">Опция 2</option>
			<option value="3">Опция 3</option>
		</param>
		<param name="param_2" type="text" default=""
			label="Описание" lenght="10" description="подсказка"/>
  </params>
</mosinstall>
 


Выше приведен примерный вид XML-файла для компонента. Разберем его основные секции:

  • Mosinstall – корневой тэг, обозначающий, что это расширение именно для Joomla (или Mambo). Его атрибуты:
    • Type – тип расширения (компонент, модуль, мамбот или шаблон)
    • Version – устаревший и нигде не принимаемый во внимание тэг версии Mambo/Joomla.
  • Name, Author и другие тэги – авторство, лицензия, описание и домашняя страница расширения в интернете.
  • Секция Files перечисляет файлы, копируемые во фронт часть компонента. Могут быть скопированы не только файлы, но и директории и файлы внутри этих директорий. Директории создаются автоматически.
  • Секция Install по сути может содержать только запросы, выполняемые при установке компонента после копирований всех файлов. В приведенном примере создается таблица xxx с необходимым префиксом (“#__” это макрос, который автоматически заменяется на записанный в конфигурации префикс таблиц для данной установки Joomla).
  • Секция Administration содержит:
    • Описание создаваемого меню и подменю для навигации в административной части компонента. Каждый подпункт меню отличается от других посредством атрибута task (при вызове компонента значение атрибута подставляется в соответствующую переменную в адресе URL).
    • Файлы, копируемые в административную часть компонента. Стандартно (так общепринято со времен компонентов для Mambo) эта часть состоит из пяти файлов:
      • admin.xcomponent.php – содержит основную логику работы компонента. Файл обязателен.
      • admin.xcomponent.html.php – содержит функции вывода результатов работы пользователю. Файл не обязателен.
      • xcomponent.xml – в xml-файле может присутствовать секция uninstall (не описана выше, идентична секции install) в которой могут быть описаны запросы, удаляющие таблицы при удалении расширения. Если xml-файл не будет найден – компонент удалить не получится.
      • toolbar.xcomponent.php – содержит код, управляющий логикой вывода навигации компонента на Toolbar. Файл обязателен.
      • toolbar xcomponent.html.php – выводит навигацию, определенную в файле toolbar.xcomponent.php. Файл не обязателен.
  • Секция params содержит:
    • параметры доступные при редактировании пункта меню для вашего компонента.
      • name - название параметра
      • type - тип параметра(может быть например list,text,radio )
      • default - значение по умолчанию
      • label - описание параметра
      • description - всплывающая подсказка

В самом компоненте обратиться к параметрам пункта меню можно при помощи следующей конструкции:

   $menu =& new mosMenu( $database );
   $menu->load( $Itemid );
 
   $params =& new mosParameters( $menu->params );
 
   $params->def( 'param_1', 1 );//проверяем заданы ли параметры, если нет то 
   $params->def( 'param_2', 0 );//заносим в них значения по умолчанию(второй параметр def());
 
   $param_1=$params->get('param_1');//получаем значение параметра в нужном месте компонента
   $param_2=$params->get('param_2'); 
 

См. также