0 Пользователей и 1 Гость просматривают эту тему.
  • 24 Ответов
  • 6572 Просмотров
*

zegsoft

  • Новичок
  • 8
  • 0
Всем доброго времени суток. ^-^

Мне нужно создать свой макет вывода списка категорий, но не могу понять, как это сделать?

Столкнулся со следующей проблемой. Создаю тип меню "Список всех категорий", выбираю родительскую категорию, в своем шаблоне в папке html/com_content/categories создаю файл default.php и в нем переопределяю макет вывода списка категорий.
Но таким образом переопределяется вывод для всех списков в шаблоне. А мне нужно создать альтернативный макет вывода. Поэтому переименовываю файл  default.php в new.php. А теперь самый главный вопрос: ГДЕ МОЖНО НАЗНАЧИТЬ НОВЫЙ МАКЕТ ВЫВОДА new.php. Облазил всю Joomla, нигде не могу найти!  >:(  Если кто знает, подскажите, пожалйста!! Буду очень признателен!!
*

Parnirov

  • Новичок
  • 8
  • 0
Альтернативный макет назначается либо при редактировании пункта меню, либо в общих настройках отображения категорий (для всех категорий).
*

Parnirov

  • Новичок
  • 8
  • 0
Альтернативный макет назначается либо при редактировании пункта меню
Тут немного наврал. Работать будет только если будет файл new.xml с описанием параметров (пример можно посмотреть в components/com_content/views/categories/tmpl/)
И когда добавите эту XML, то создавая пункт меню, укажите ваш "Тип пункта меню". (название прописывается в xml).
*

zegsoft

  • Новичок
  • 8
  • 0
Спасибо, Parnirov, буду пробовать в этом направлении!
*

zegsoft

  • Новичок
  • 8
  • 0
Создаю файл new.xml, выбираю новый тип пунката меню, но все равно компонент берет файл default.php. Может где-то надо еще прописать, чтобы брался именно файла new.php?
*

Parnirov

  • Новичок
  • 8
  • 0
а версия Joomla какая?
*

zegsoft

  • Новичок
  • 8
  • 0
*

Parnirov

  • Новичок
  • 8
  • 0
2.5.0? 2.5.1? .....
просто у меня 2.5.4 и случился отчасти похожий на ваш косяк: http://joomlaforum.ru/index.php/topic,219990.0.html
*

zegsoft

  • Новичок
  • 8
  • 0
*

Parnirov

  • Новичок
  • 8
  • 0
Создаю файл new.xml, выбираю новый тип пунката меню, но все равно компонент берет файл default.php. Может где-то надо еще прописать, чтобы брался именно файла new.php?
Должно быть достаточно положить XML файл с тем же именем рядом с вашим php в папку \templates\ваш_шаблон\html\com_content\category\
*

zegsoft

  • Новичок
  • 8
  • 0
Должно быть достаточно положить XML файл с тем же именем рядом с вашим php в папку \templates\ваш_шаблон\html\com_content\category\

Нет, так не работает. Пришлось менять файл  categories\view.html.php. В функцию display перед parent::display($tpl); добавил следующие строки:

$ltype=$params->get('layout_type');
if($ltype)$this->setLayout($ltype);

в new.xml соответственно добавил поле layout_type. Теперь вроде работает. Вот только не знаю, насколько такое решение приемлемо.
« Последнее редактирование: 22.06.2012, 14:15:58 от zegsoft »
*

Parnirov

  • Новичок
  • 8
  • 0
Я пользовался вот этим методом: http://wedal.ru/uroki-joomla/joomla-17-layouts.html (Макеты категорий)
*

zegsoft

  • Новичок
  • 8
  • 0
Я пользовался вот этим методом: http://wedal.ru/uroki-joomla/joomla-17-layouts.html (Макеты категорий)

Тут немного другая проблема. Мне нужен вывод не category, categories. Для category все работает, согласен, а вот для categories такой трюк не подходит(((
*

Alexiez

  • Осваиваюсь на форуме
  • 55
  • 1
zegsoft не нужно ничего мудрить все работает, лучше смотрите как переопределяются макеты, у меня все работает.

1. Нужно создать папку в шаблоне html/com_content
2. Там создаем папки для макетов для которые нужно переопределить (category либо categories), я сделаю для category
3. Туда ложим нужные нам файлы default.php, default_children.php и default.xml, переминовываем эти файлы к примеру new.php new.hml и соответсвенно new_children.php
4. Редактируем файл new.xml
Вот тут нужно поменять только вот эту часть
Код
<layout title="COM_CONTENT_CATEGORY_VIEW_NEW_TITLE" option="COM_CONTENT_CATEGORY_VIEW_NEW_OPTION">
<help
key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_LIST"
/>
<message>
<![CDATA[COM_CONTENT_CATEGORY_VIEW_NEW_DESC]]>
</message>
</layout>

5. Идем в файл administrator/language/ru-RU/ru-RU.com_content.sys.ini и русифицируем наши строчки
6. Нужно теперь пересоздать пункт меню и выбрать наш новый пункт у контента
7. Если нужно для каждой категории в отдельности менять то заходим в категорию и меняем в "Основные параметры" альтернативный макет на наш, либо если нужно это сделать глобально для все категорий, то меняем уже в настройках
Проверяем работоспособность:)
« Последнее редактирование: 01.05.2013, 12:20:52 от Alexiez »
*

sashok113

  • Новичок
  • 4
  • 0
Всем привет!
Я хочу сделать простенький каталог и поэтому мне нужно создать свой макет вывода списка категорий(название + картинка). У меня такая структура Категория->Подкатегория->Продукт(продукт походу будет материалом).
Alexiez, делал по твоей инструкции, почти заработало.
1. Папку создал html/com_content.
2. Создал categories.
3. Положил файлы default.php, default_items.php, default.xml из categories/tmpl, переименовал в catalog.php, catalog_items.php, catalog.xml.
4. Отредактировал catalog.xml, только эту часть
Код: xml
	<layout title="COM_CONTENT_CATEGORIES_VIEW_CATALOG_TITLE" option="COM_CONTENT_CATEGORIES_VIEW_CATALOG_OPTION">
<help
key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORIES"
/>
<message>
<![CDATA[COM_CONTENT_CATEGORIES_VIEW_CATALOG_DESC]]>
</message>
</layout>
5. Русифицировал строки.
6. Пересоздал.
7. Не понял. Ведь если мы переписали XML в 4 пункте, то никакого альтернативного макета не будет(будет тип пункта меню).
Вот что вышло.
В выборе типа пункта меню появился созданный мной русифицированный пункт(Каталог). Но вот если его выбрать то он все равно использует оригинальный default_items.php, а не мой  catalog_items.php.
Проверял так
В catalog_items.php в теге <ul> дописал <ul class="ABC"> и ничего не произошло, а когда дописал в default_items.php на странице появился <ul class="ABC">.
Может я чего упустил или для categories в отличие от category нужно как-то иначе?
« Последнее редактирование: 03.05.2013, 16:28:50 от sashok113 »
*

fbr

  • Живу я здесь
  • 1283
  • 142
попробуйте переименовать catalog_items.php в catalog_newitems.php,

а в файле default.php

Код: php
echo $this->loadTemplate('items');

//заменить на

echo $this->loadTemplate('newitems');

*

sashok113

  • Новичок
  • 4
  • 0
fbr, хороший совет.
Ошибка 500 - Макет simplecatalog_newitems не найден. Мой шаблон называется simple.
Когда я положил в components/com_content/views/categories/tmpl/default_newitems.php. Ошибка пропала и отобразился default_newitems.php.

Мне кажется Joomla просто не видит мои файлы catalog.php, catalog_items.php и вместо них берет стандартные default.php, default_items.php, а когда я пишу в default.php

Код: php
echo $this->loadTemplate('newitems');

то она пытается найти его в components/com_content/views/categories/tmpl/, а не в templates/simple/html/com_content/categories/.
Наверное проблема в путях либо в именах, т.к. в ошибке указана такая строка: simplecatalog_newitems .
Скорей всего в XML надо чего-то подправить. Нужно сделать так что бы использовался не default.php, а catalog.php тогда и catalog_items.php(catalog_newitems.php) будет находиться.
Правда в XML не видно ничего похожего.
« Последнее редактирование: 03.05.2013, 19:23:02 от sashok113 »
*

sashok113

  • Новичок
  • 4
  • 0
Выход найден, он как всегда был перед самым носом ^-^ .
Как я уже писал ошибка выглядела так 500 - Макет simplecatalog_newitems не найден.
Файлы переименовываемые в пункте 3 нужно было назвать simplecatalog.php, simplecatalog_items.php, catalog.xml (simple - название шаблона).
С Joomla работаю недавно, в тонкости не посвящен. Возможно пути и имена файлов можно где-то настроить или это особенность Joomla 2.5.9.
Все заработало, всем спасибо. Особенно fbr, его совет стал ключевым моментом в решении проблемы.
« Последнее редактирование: 04.05.2013, 15:01:29 от sashok113 »
*

Alexiez

  • Осваиваюсь на форуме
  • 55
  • 1
sashok113
Цитировать
7. Не понял. Ведь если мы переписали XML в 4 пункте, то никакого альтернативного макета не будет(будет тип пункта меню).
Вот что вышло.
Альтернативный макет будет не в меню, а в категориях, Менеджер материалов->Менеджер категорий Открываем нужную категорию и с правой стороны ищем Альтернативный макет в Основных парраметрах

COM_CONTENT_CATEGORIES_VIEW_CATALOG_TITLE
вот эта строчка отобразиться в меню

COM_CONTENT_CATEGORIES_VIEW_CATALOG_OPTION
вот эта строчка отобразиться непосрественно в категории

Код: php
echo $this->loadTemplate('newitems');
вот этот код загрузит файл шаблона из вашей папки

Цитировать
Файлы переименовываемые в пункте 3 нужно было назвать simplecatalog.php, simplecatalog_items.php, catalog.xml (simple - название шаблона).
без разницы как их называть

Один момент не учел сорри, файл default.xml переминовываем и оставляем в этой же папке, но оригинал этого файла обязательно оставляйте
« Последнее редактирование: 09.05.2013, 10:17:28 от Alexiez »
*

olf

  • Давно я тут
  • 353
  • 4
А у меня никак не заработает. Несколько раз проделывал все шаги по инструкции - все равно цепляет blog.php.
Версия Joomla! 2.5.11. Косяк и в версии или я что-то недопонимаю?
И еще. Когда в созданном new.xml прописываю <layout title="Новый макет" option="new">, - в меню тип появляется, но почему-то в списке пунктов меню отмечен как "Не опубликован".
« Последнее редактирование: 19.05.2013, 22:44:46 от olf »
PHP код по-русски: если не то {} то это {}
*

olf

  • Давно я тут
  • 353
  • 4
default.xml переминовываем и оставляем в этой же папке, но оригинал этого файла обязательно оставляйте
Ничего себе, - оказывается, blog.xml и new.xml рядом должны быть. Теперь-то заработало, - но почему в выборе Альтернативного макета категории шаблон так и не появился?
PHP код по-русски: если не то {} то это {}
*

beliyadm

  • Профи
  • 8368
  • 1527
  • Севастополь == Россия
Ничего себе, - оказывается, blog.xml и new.xml рядом должны быть. Теперь-то заработало, - но почему в выборе Альтернативного макета категории шаблон так и не появился?
Он и не должен там появиться.
Если вы сделали дубль этого XML блога, в нем переименовали название
Код: xml
<layout title="COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE" option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION">
на
Код: xml
<layout title="My Custom Blog" option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION">
То этот новый шаблон блога у вас появится в админке при выборе типа меню с названием "My Custom Blog"
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

olf

  • Давно я тут
  • 353
  • 4
А как тогда переопределить шаблон материала, на который переходим из категории по ссылке "Подробнее..."? Ведь ему меню не назначается...
PHP код по-русски: если не то {} то это {}
*

rigin

  • Захожу иногда
  • 10
  • 1
Выход найден, он как всегда был перед самым носом ^-^ .
Как я уже писал ошибка выглядела так 500 - Макет simplecatalog_newitems не найден.
Файлы переименовываемые в пункте 3 нужно было назвать simplecatalog.php, simplecatalog_items.php, catalog.xml (simple - название шаблона).
С Joomla работаю недавно, в тонкости не посвящен. Возможно пути и имена файлов можно где-то настроить или это особенность Joomla 2.5.9.
Все заработало, всем спасибо. Особенно fbr, его совет стал ключевым моментом в решении проблемы.
Действительно работает. Но надо файлы дублировать с правильными именами, чтобы когда этот баг поправят сайт не посыпался.

А на счет того, что решение под носом - наверное у вас нос длинный и кривой  ;D
« Последнее редактирование: 17.09.2013, 14:31:56 от rigin »
*

zeppelin

  • Новичок
  • 8
  • 0
Всем привет!
Я хочу сделать простенький каталог и поэтому мне нужно создать свой макет вывода списка категорий(название + картинка). У меня такая структура Категория->Подкатегория->Продукт(продукт походу будет материалом).
Alexiez, делал по твоей инструкции, почти заработало.
1. Папку создал html/com_content.
2. Создал categories.
3. Положил файлы default.php, default_items.php, default.xml из categories/tmpl, переименовал в catalog.php, catalog_items.php, catalog.xml.
4. Отредактировал catalog.xml, только эту часть
Код: xml
	<layout title="COM_CONTENT_CATEGORIES_VIEW_CATALOG_TITLE" option="COM_CONTENT_CATEGORIES_VIEW_CATALOG_OPTION">
<help
key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORIES"
/>
<message>
<![CDATA[COM_CONTENT_CATEGORIES_VIEW_CATALOG_DESC]]>
</message>
</layout>
5. Русифицировал строки.
6. Пересоздал.
7. Не понял. Ведь если мы переписали XML в 4 пункте, то никакого альтернативного макета не будет(будет тип пункта меню).
Вот что вышло.
В выборе типа пункта меню появился созданный мной русифицированный пункт(Каталог). Но вот если его выбрать то он все равно использует оригинальный default_items.php, а не мой  catalog_items.php.
Проверял так
В catalog_items.php в теге <ul> дописал <ul class="ABC"> и ничего не произошло, а когда дописал в default_items.php на странице появился <ul class="ABC">.
Может я чего упустил или для categories в отличие от category нужно как-то иначе?
Спасибо! Все делал как положено, но не выводились материалы в категории... благодаря твоему посту понял, что нужно просто пересоздать меню!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

не работает разделение на колонки в "блоге категорий".

Автор Algemir

Ответов: 7
Просмотров: 5779
Последний ответ 25.04.2016, 08:58:33
от Омск
Изменение вывода шаблона блога категорий

Автор Lepiloff

Ответов: 18
Просмотров: 1407
Последний ответ 22.12.2015, 14:45:15
от Arkadiy
Шаблон Ja-nex модуль вывода новостей

Автор dayoff

Ответов: 2
Просмотров: 573
Последний ответ 12.09.2015, 10:43:57
от dayoff
Изменение шаблона вывода новостей

Автор Pirojkov007

Ответов: 3
Просмотров: 511
Последний ответ 29.04.2015, 20:02:14
от motokraft
Как каждый матерал из списка категорий открывать в модальном окне?

Автор olenik

Ответов: 0
Просмотров: 415
Последний ответ 10.12.2014, 05:14:12
от olenik