Как создать страницу только с модулями и без компонента?

10

В Joomla мне нужно связать каждую страницу с представлением компонента. Как я могу создать страницу без вывода компонентов ?

Пример: на моей домашней странице я хочу только вывод модуля. Для этого я могу связать домашнюю страницу с «пустой статьей», но есть ли лучший способ сделать это без использования стороннего расширения?

веб-Тики
источник
2
Вы используете пользовательский шаблон или коммерческий шаблон? Я спрашиваю, потому что многие из них имеют возможность полностью отключить область компонентов.
Брайан Пит
@BrianPeat Я использую пользовательский шаблон
web-tiki
Ах хорошо. Ну, здесь есть несколько хороших ответов, которые должны сработать :)
Brian Peat
2
Аналогичный вопрос: joomla.stackexchange.com/questions/5056/…
FFrewin

Ответы:

15

На самом деле не существует «лучшего способа», чем это.

Единственный другой вариант - проверить, находитесь ли вы на домашней странице в файле шаблона. Чтобы проверить, находитесь ли вы на домашней странице, вы можете использовать метод, описанный в документации здесь:

http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page

и сделать что-то вроде:

<?php
$menu = JFactory::getApplication()->getMenu();

if ($menu->getActive() != $menu->getDefault()) { ?>
        <jdoc:include type="component" />
<?php } ?>

И таким образом вы никогда не включите свой компонент на главной странице

Джордж Уилсон
источник
1
Подсказка с этим методом: если у вас есть ссылка с домашней страницы, которая не переходит на другую страницу, она может выглядеть неработающей, если она загружается под пунктом меню домашней страницы! Следите за любой ссылкой, которая нравится, example.com/component/com_name/viewтак как она будет загружаться в элементе меню по умолчанию, а выходные данные компонента не будут отображаться.
Дэвид Фрич
Возможно, вы захотите добавить еще несколько проверок, чтобы убедиться, что текущий компонент и представление ( JFactory::getApplication()->input->get('view')) также не совпадают с представлением меню ( $menu->getActive()->view)
Дэвид Фрич
@DavidFritsch: Я думаю, что $ menu-> getActive () -> view должно быть $ menu-> getActive () -> query ['view'];
FFrewin
5

В JED также есть «пустой» компонент, который позволяет публиковать пункт меню, чтобы вы могли размещать только модули.

http://extensions.joomla.org/extensions/style-a-design/personal-layout/17363

Тони Мари
источник
У меня возникла проблема с этим расширением, оно не включает, router.phpчто приводит к тому, что недействительные URL-адреса не отвечают 404.
Flimm
4

Вы можете иметь несколько макетов шаблона в вашем файле индекса.

<!--Layout 1-->
<?php if ($BConfig->html=='layoutA') : ?>

<jdoc:include type="component" />

<?php endif; ?>  <!--End Layout 1-->

<!--Dynamically Generated Layout 2-->
<?php if ($BConfig->html=='layoutB') : ?>

<jdoc:include type="modules" name="your-module"/>

<?php endif; ?> <!--End Layout 2-->

Затем убедитесь, что в вашем файле templateDetails есть опция B. Затем в вашем Joomla! шаблоны, вы можете настроить дополнительный шаблон, используя макет б. Перейдите к пункту главного меню, выберите этот шаблон. Компонент не будет загружаться, но ваш модуль будет.

Faye
источник
2

Глупое, очень похожее, но довольно простое решение:

  1. Создать категорию статьи
  2. Оставьте это без содержания (статьи)
  3. Создать ссылку на меню
  4. Назначьте ваши модули этой ссылке меню

Возможно, вам придется отключить некоторые детали, которые будут скрыты для этой категории в параметрах категории и / или пункта меню.

Иво
источник
1
По сути, это то же самое, что и использование пустой статьи.
веб-тики
1

Вы можете создать пустой компонент. Таким образом, в компоненте com_menus вы можете решить, что страница не должна выводить, просто выбирая этот пустой компонент. В этом компоненте вам нужно создать представление и пустой шаблон default.php с файлом default.xml, поэтому вы увидите эту опцию, когда будете выбирать компонент в компоненте com_menus.

csbenjamin
источник
1

В RocketThemes есть удобная функция, позволяющая скрывать избранные статьи com_content.

Я использую, чтобы опубликовать пустую категорию, чтобы минимизировать вывод, и скрыть ее с помощью некоторых стилей CSS.

Анибал
источник
1

Скопируйте шаблон, удалите компонент jdoc и назначьте этот стиль любому элементу меню, не требующему этот компонент.

sovainfo
источник
0

В Joomla! 3.x вы можете сделать следующее:

  • Сначала создайте свои модули,
  • Создать новую категорию внутри новой статьи для основного сайта,
  • Проверьте, включен ли у вас контент плагина - модули загрузки

По умолчанию Joomla! включает в себя библиотеку Bootstrap v2.3.2 , поэтому вы можете использовать CSS в этой библиотеке, например, систему сетки : http://getbootstrap.com/2.3.2/scaffolding.html#gridSystem

  • Отсюда, в вашей статье вы можете увидеть кнопку « Модуль» , просто создайте простую или очень сложную сетку и назначьте свои модули каждому блоку.

Преимущество, которое вы можете получить, используя этот способ, состоит в том, что вы можете получить более легкий шаблон с меньшим количеством позиций и меньшим количеством кода php, js и css, поэтому, если вам не нужно много функциональных возможностей, вы можете создать его самостоятельно.

С уважением.

AlejandroVega
источник