Альтернативный макет категории в joomla 3 (с привязкой к пункту меню)

Дата редактирования: 12.03.2015 Просмотрен: 12047

Столкнулся с необходимостью создания дополнительного или альтернативного макета для вывода блога категории в Joomla 3. Что бы не трогать основные файлы компонента перенес их в папку /templates/мойшаблон/html/com_content (об этом много написано так что не буду расписывать подробно).

Задача состояла в следующем: нужно при создании пункта меню выбирать свой шаблон вывода блога категории. При этом его изменение не как не должно затронуть основной шаблон blog.php. Для решения этой задачи нужно создать копии файлов blog.php, blog.xml, blog_item.php, blog_children.php, blog_links.php, но со своими именами вместо "blog" например : newblog.php, newblog.xml, newblog_item.php, newblog_children.php, newblog_links.php. Открываем файл newblog.xml и меняем

<?xml version="1.0" encoding="utf-8"?>
<metadata>
	<layout title="COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE" option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION">
		<help
			key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG"
		/>
		<message>
			<![CDATA[COM_CONTENT_CATEGORY_VIEW_BLOG_DESC]]>
		</message>
	</layout>

	<!-- Add fields to the request variables for the layout. -->
	<fields name="request">
		<fieldset name="request"
		 >

			<field name="id" type="category"
				description="JGLOBAL_CHOOSE_CATEGORY_DESC"
				extension="com_content"
				label="JGLOBAL_CHOOSE_CATEGORY_LABEL"
				required="true"
			/>
		</fieldset>
	</fields>

	<!-- Add fields to the parameters object for the layout. -->
<fields name="params">
<fieldset name="basic" label="JGLOBAL_CATEGORY_OPTIONS">

			<field name="layout_type"
				type="hidden"
				default="blog"/>

На

<?xml version="1.0" encoding="utf-8"?>
<metadata>
	<layout title="COM_CONTENT_CATEGORY_VIEW_NEWBLOG_TITLE" option="COM_CONTENT_CATEGORY_VIEW_PORTFOLIO_OPTION">
		<help
			key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_NEWBLOG"
		/>
		<message>
			<![CDATA[COM_CONTENT_CATEGORY_VIEW_NEWBLOG_DESC]]>
		</message>
	</layout>

	<!-- Add fields to the request variables for the layout. -->
	<fields name="request">
		<fieldset name="request"
		 >

			<field name="id" type="category"
				description="JGLOBAL_CHOOSE_CATEGORY_DESC"
				extension="com_content"
				label="JGLOBAL_CHOOSE_CATEGORY_LABEL"
				required="true"
			/>
		</fieldset>
	</fields>

	<!-- Add fields to the parameters object for the layout. -->
<fields name="params">
<fieldset name="basic" label="JGLOBAL_CATEGORY_OPTIONS">

			<field name="layout_type"
				type="hidden"
				default="newblog"
			/>

 

Открываем файл /language/ru-RU/ru-RU.com_content.sys.ini И добавляем переменные

COM_CONTENT_CATEGORY_VIEW_NEWBLOG_DESC="Отображает вводные части материалов в одном или нескольких столбцах."
COM_CONTENT_CATEGORY_VIEW_NEWBLOG_OPTION="Новый блог"
COM_CONTENT_CATEGORY_VIEW_NEWBLOG_TITLE="Новый блог категории"

Все меняем созданные файлы так как нужно. А в пункте меню выбираем Материал-Новый блог



Создан: 06.01.2014 14:19 | Отредактирован: 12.03.2015 06:39