Если нужен дополнительный параметр для материалов Joomla можно обойтись без добавления поля в таблицу базы данных.
Нужные поля можно добавлять в xml файл, делается это просто, но минусом тут то, что при обновлении Joomla сделанные изменения скорее всего затрутся и их нужно будет восстанавливать заново. А если сохранить материал без исчезнувших полей в xml файле, то потеряются и сохраненные ранее значения. В общем, это не удобно, но есть и более лучший способ, о нем потом, а пока рассмотри вариант с xml файлом.
Посмотрим как это сделать в Joomla 2.5, в Joomla 3, думаю примерно также будет...)
Нужное поле добавляем в xml файл - article.xml, этот файл находится в папке папке форм
administrator\components\com_content\models\forms
Сохраняется значение добавленного в форму поля в поле attribs таблицы #__content в json формате и если посмотрите с помощью phpMyAdmin, то содержание поля attribs должно будет выглядеть примерно вот так:
{"show_title":"","link_titles":"","show_intro":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","urls_position":"","alternative_readmore":"","article_layout":"","show_publishing_options":"","show_article_options":"","show_urls_images_backend":"","show_urls_images_frontend":""}
Для картинок и URLs используются поля images и urls соответственно.
Чтобы добавить поле, открываем файл article.xml и находим там группу полей fields с именем attribs.
Вот в эту группу attribs и добавляем нужное нам поле - я для пробы добавил поле c именем test_field:
Теперь проверяем - смотрим как добавленное поле отображается в админке и сохраняются ли введеные в него значения.
Поменяли сначение, нажали сохранить - видим, что значение поля сохраняется.
Как получить значение добавленного поля в шаблоне материала components\com_content\views\article\tmpl\default.php?
В файле шаблона материала default.php получить его значение можно так:
$this->params->get('test_field')
Из других компонент так:
$params =& $mainframe->getParams('com_content'); //или так //$params = &JComponentHelper::getParams( 'com_content' ); foreach ($articles as $article){ $aparams = new JParameter($article->attribs); $params->merge($aparams); $article_tab = $params->get( 'test_field' ); }
$articles - массив объектов материалов