Ykitero
@Ykitero

Как описывать поле position в файле templateDetails.xml?

Доброго времени суток. Пишу шаблон для joomla (с самого нуля) и дошел я до файла templateDetails.xml и есть там такое поле как position. Что писать туда, как выделять эти самые position из шаблона?

Я уже понял, что файл templateDetails.xml связан с версткой, но как описывать - не понял. В интернете попадаются ответы коротко - "вот есть position, его надо заполнить". А как? Чем? - раскрывать не хотят. Или я не там смотрю

Знаю, что вопрос глупейший, но знающих, прошу ответом прикрепить кусок поля position и кусок кода html/php где эта position есть. С комментариями, без сокращений
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
ordinarySomebody
@ordinarySomebody
Senior web-balabol
Тэг positions нужен для перечисления позиций для модулей, используемых в шаблоне.
Функция этого тэга только одна - в панели управления сайтом, когда выбираете позицию куда устанавливать модуль, джумла предлагает вам уже готовый список позиций. В противном случае приходилось бы прописывать название позиции вручную.

Пример:

Если у вас в файле index.php установлено несколько позиций, например:
<jdoc:include type="modules" name="social-share" />
<jdoc:include type="modules" name="contacts" />
<jdoc:include type="modules" name="main-menu" />


То в файле templatesDetail.xml нужно заполнить тэг positions следующим образом:
<positions>
        <position>social-share</position>
        <position>contacts</position>
        <position>main-menu</position>
    </positions>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@exmmth
CMS Joomla, JBZoo
Александр, ответ правильны, но вы человека Евгений невероятно запутываете дальше в комментариях)
Вот для примера https://master3.alekvolsk.info/ шаблон-болванка, там можно посмотреть и отследить как устроен шаблон joomla. Или если у вас joomla 3 смотрите стандарный шаблон protostar, если joomla 4 то cassiopeia.
Если вам надо меню как примитив(набор html) без редактирования в админке, можно просто в index.php шаблона добавить этот код в нужном месте.
Если вы хотите чтобы меню можно было редактировать через админку в пунктах меню. То нужно использовать тип модуля для меню (Панель меню --> Расширения --> Модули) у него выбрать position, этот position через код в index.php в нужно месте конструкцией:
<?php if ($this->countModules('my-menu')) { ?>
            <jdoc:include type="modules" name="my-menu"/>
<?php } ?>

сам код, как именно будет формироваться меню можно посмотреть в папке modules/mod_menu/tmpl/ но лучше использовать стандартные переопределения в папке вашего шаблона templates/my_templates/html/mod_menu/
для примера переопределений: https://github.com/master3-blank-template/Master3/...
Думаю исчерпывающе ответил на ваш вопрос как это всё устроено, если что-то нужно уточнить, спрашивайте!)
Приходите в чате в телеге по https://t.me/joomlaru там вам оперативно помогут разобраться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы