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

Kumigy

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Доброго времени суток, Форумчане.
Подскажите пожалуйста как сделать так, что бы блок вывода контента был виден на всех страницах кроме главной?
« Последнее редактирование: 29.08.2013, 10:11:14 от b2z »
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Доброго времени суток, Форумчане.
Подскажите пожалуйста как сделать так, что бы блок вывода контента был виден на всех страницах кроме главной?
Примерно так:

Код
$menu = & JSite::getMenu();

<?php if ($menu->getActive()!= $menu->getDefault()) {?>
        <jdoc:include type="component" />
<?php } ?>
Мои расширения - http://eco-joom.com/ru/
*

Kumigy

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Примерно так:

Код
$menu = & JSite::getMenu();

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

Извиняюсь за наглость, не мог бы ты объяснить, что есть что в этом кусочке. Хочется очень понимать что я делаю))) Я лишь только понял, что переменную меню сравниваем с дефолтовым меню и при успешном сравнении выводим контент.
*

Kumigy

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
<?php
$menu =& JSite::getMenu();
?>
<?php if ($menu->getActive()!= $menu->getDefault()) : ?>
<div id="content">
        <jdoc:include type="component" />
</div>
<?php endif ?>


вот так вот у меня заработало)

огромное спасибо
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Я лишь только понял, что переменную меню сравниваем с дефолтовым меню и при успешном сравнении выводим контент.
Так и есть ;) Чуток подправил код, для общего использования и добавил тему в J1.6 FAQ.

Код: php
<?php 
$menu = JSite::getMenu();
if ($menu->getActive()!= $menu->getDefault()): ?>
        // здесь выводим все, что не хотим показать на главной
<?php endif; ?>
*

kozovod

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Добрый день.
А если наоборот, необходимо вывести контент только на главной странице, она же главная страница JoomShopping?
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
А если наоборот, необходимо вывести контент только на главной странице, она же главная страница JoomShopping?
воскл. знак в коде уберите
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Код: php
<?php 
$menu = JSite::getMenu();
if ($menu->getActive()!= $menu->getDefault()): ?>
        // здесь выводим все, что не хотим показать на главной
<?php endif; ?>
а может лучше сравнивать только id: $menu->getActive()->id == $menu->getDefault()->id а не целые объекты?
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
а может лучше сравнивать только id: $menu->getActive()->id == $menu->getDefault()->id а не целые объекты?

Да так будет более правильнее. Исправил код:

Код: php
<?php $menu = JSite::getMenu();
if ($menu->getActive()->id != $menu->getDefault()->id): ?>
        // здесь выводим все, что не хотим показать на главной
<?php endif; ?>


Код: php
<?php $menu = JSite::getMenu();
if ($menu->getActive()->id == $menu->getDefault()->id): ?>
        // здесь выводим все, что хотим показать на главной
<?php endif; ?>
*

Kumigy

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Ребят, поясните пожалуйста,ну так для общего развития, чем второй вариант правильнее?
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
В первом варианте мы сравниваем целые объекты (меню), а во втром варианте только свойсто id объектов (меню).
*

TerribleZ

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Не срабатывает, если например находимся мы на главной странице и на главной, есть поиск - Нажимаем искать и Itemid остаётся тот же что и на главной. Или вывод модуля последних материалов(mod_articles_latest). Itemid - остаётся тот же, в ссылке меняется только id - новости.
И вообще не пойму что это за Itemid, к которому идёт привязка вывода позиций(я так понял)
« Последнее редактирование: 21.06.2011, 19:09:27 от TerribleZ »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Itemid - это уникальный Id пункта меню. Видимо у Вас не на все разделы созданы пункты меню, поэтому он остается один и тот же.
*

TerribleZ

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Конечно не на все. Я ж не буду создавать пункт меню на поиск если он у меня выводится в виде модуля. И не буду ж создавать меню для каждой вновь созданной новости.
Решил проблему так:
Код
<?php if (JRequest::getVar('view', null) == 'featured'): ?>
// здесь выводим все, что хотим показать на главной
<?php endif; ?>
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
JRequest::getVar('view') == 'featured' - это проверка на страницу с избранными материалами. Если она у Вас главная, то все ок. Если же главаная другая страница, то этот код не сработает.
*

TerribleZ

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Ещё проблема. Ставлю в настройке модуле "Привязка к пунктам меню" -> "Привязка модуля" -> "На всех страницах, кроме указанных" и выбираю не показывать когда пункт меню "Главная". Вроде всё ок.
НО! модуль также не отображается на тех страницах где нет никакой привязки к пунктам меню т.е. Itemid - не существует.
К примеру страница регистрации "site.ru/index.php?option=com_comprofiler&task=registers" или страница поиска "site.ru/index.php?searchword=слово&searchphrase=all&option=com_search".
Как решить эту проблему?
*

saturn

  • Осваиваюсь на форуме
  • 19
  • 0 / 0

<?php $menu = JSite::getMenu();
if ($menu->getActive()->id != $menu->getDefault()->id): ?>
        // здесь выводим все, что не хотим показать на главной
<?php endif; ?>


Подскажите, пожалуйста, куда нужно это вставить?
*

TerribleZ

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Подскажите, пожалуйста, куда нужно это вставить?
как вариант:
www\templates\название_вашего_шаблона_сайта\index.php
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Ещё проблема. Ставлю в настройке модуле "Привязка к пунктам меню" -> "Привязка модуля" -> "На всех страницах, кроме указанных" и выбираю не показывать когда пункт меню "Главная". Вроде всё ок.
НО! модуль также не отображается на тех страницах где нет никакой привязки к пунктам меню т.е. Itemid - не существует.
К примеру страница регистрации "site.ru/index.php?option=com_comprofiler&task=registers" или страница поиска "site.ru/index.php?searchword=слово&searchphrase=all&option=com_search".
Как решить эту проблему?
Как вариант - создать меню (которое нигде не будет выводится), и в нем сделать пункты для index.php?option=com_comprofiler&task=registers и index.php?searchword=слово&searchphrase=all&option=com_search
*

TerribleZ

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Как вариант - создать меню (которое нигде не будет выводится), и в нем сделать пункты для index.php?option=com_comprofiler&task=registers и index.php?searchword=слово&searchphrase=all&option=com_search

Это не есть решение проблемы, так как таких ссылок на сайте будет добавляться больше в зависимости от расширения возможностей(добавления новых компонентов) сайта. К примеру вот ещё сылки index.php?option=com_comprofiler&task=lostpassword (ввостановление пароля) или index.php?option=com_some_component&view=events(какой-то компонент).

Ваши предложения? Буду очень благодарен.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

czp

  • Новичок
  • 6
  • 0 / 0
Извеняюсь что пишу в этой теме, но что бы новую не создавтаь решил в похожей, есле что могу новую, подскажите как сделать что бы:
1.Когда заходит админ на сайт он видел БЛОК1 и в нем спрятаную инфу
2.А когда заходит модератор или кто то ниже с рангом, то он видит БЛОК2 а БЛОК1 он не видит?
3.Ну и естественно обычные бзеры не видят БЛОК1 и БЛОК2
я так понял там PHP код с доступом, типа аккес ну там ненмого поглядел в коде Joomla но сам не знаю как сделать подскажите как написать код
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
czp, здесь посмотрите
*

czp

  • Новичок
  • 6
  • 0 / 0
ну не фурычит вот так написал, пробовал вместо администратора писать ник всеровно не фурычит, может из за того что Joomla 1,6 а там бы мануал на 1,5?

Код
<?php
$user =& JFactory::getUser();
?>
<?php if($user-> Administrator) : ?>
<div class="tos">

</div>
<?php endif ?>

перепробовал все доступные там комбинации не робит, помогите ! :(
« Последнее редактирование: 09.07.2011, 00:04:46 от czp »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
В 1.6+ группы можно переименовывать. Поэтому проверку лучше делать по ID группы. По умолчанию администратор находится в группе Super Users и ID этой группы 8. Проверить можно так:

Код: php
<?php
$user = JFactory::getUser();
if ( in_array( 8, $user->groups ) ) : ?>
Здесь выводим блок для Super Users.
<?php endif; ?>

Посмотреть ID групп можно в Менеджер пользователей -> Группы пользователей.
*

czp

  • Новичок
  • 6
  • 0 / 0
заработало,благодарю)) еше такой вопрос есле можно, есть что то типа jcoments на  1.6  а то тот модуль только с 1,5 робит а мне нужны, коменты подскажите есле не сложно
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
заработало,благодарю)) еше такой вопрос есле можно, есть что то типа jcoments на  1.6  а то тот модуль только с 1,5 робит а мне нужны, коменты подскажите есле не сложно
Читаем Правила форума! Одна тема = один вопрос!
*

TerribleZ

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
А что я могу предложить? Так работает Joomla...
Решил свою проблему. Вроде бы правильно.
Т.е. если нам нужно вывести модуль везде кроме выбранных страниц(параметр "Все, кроме выбранных"). Т.е. независимо существует ItemId или нет(есть привязка к меню или нет).
Нужно в файле \libraries\joomla\application\module\helper.php
Добавить строку после строчек 317-318, чтоб было так:
Код
$negHit	= ($negId === (int) $module->menuid)
|| (!$negId && (int)$module->menuid < 0);
if (!$negId && $module->menuid <0) {$negHit = 0;}



« Последнее редактирование: 11.07.2011, 17:38:49 от TerribleZ »
*

nik_neman

  • Захожу иногда
  • 52
  • 2 / 0
Спасибо. То что искал.
« Последнее редактирование: 18.01.2012, 14:46:03 от nik_neman »
*

wfedin

  • Завсегдатай
  • 1273
  • 102 / 0
Нашёл решение от:
Код: php-brief
<?php if (JURI::current() == JURI::base()) : ?>
<jdoc:include type="modules" name="имя позици модуля ваше" />
<?php endif; ?>
На данный момент лучший вариант проверки на главную
вставлять в файл шаблона отвечающий за вывод модулей. Обычно index.php
В клубных шаблонах ищите в папке layouts обычно
Хотелось бы понять достоинства и возможные недостатки обоих подходов
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод материала в результатах поиска всего или до подробнее

Автор Drawmy

Ответов: 0
Просмотров: 1312
Последний ответ 02.02.2017, 16:41:38
от Drawmy
Отображение материала на главной

Автор timssky

Ответов: 13
Просмотров: 1696
Последний ответ 15.12.2016, 17:26:48
от timssky
Вывод информации на страницах материала после заголовка

Автор GuardianStation

Ответов: 5
Просмотров: 1347
Последний ответ 16.11.2016, 13:06:48
от effrit
Как редактировать код HTML на главной странице сайта?

Автор geroi1

Ответов: 45
Просмотров: 89531
Последний ответ 29.10.2016, 13:16:19
от savole
При добавлении к адресу главной страницы UTM метки отображается другая страница

Автор Xenoks

Ответов: 4
Просмотров: 1648
Последний ответ 28.10.2016, 16:37:22
от Xenoks