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

fedragon

  • Захожу иногда
  • 232
  • 22 / 0
  • You move like an insect
Как в 2.5 Joomla в коде проверить, на главной ли ты странице или нет?

Пробовал так
Цитировать
<?php
$menu = &JSite::getMenu();
if ($menu->getActive()!= $menu->getDefault()) {
?>
ТУТ ВЫПОЛНЯЕМЫЙ КОД
<?php } ?>

но код не лишен недостатков, срабатывает ложно бывает; хотелось бы какую-то точную проверку, чтоб знать - на главной ли я или нет.
« Последнее редактирование: 29.08.2013, 09:57:31 от b2z »
Your flesh is an insult to the perfection of the digital.
*

Fedor Vlasenko

  • Живу я здесь
  • 3842
  • 726 / 7
  • Все начинается с Value
При определенных условиях (главная имя домена) работает такой код
Код
<? php if (JFactory::getURI()->toString() == JURI::base()) : ?>
<h1>Мы на главной</h1>
<?php endif; ?>
*

Fedor Vlasenko

  • Живу я здесь
  • 3842
  • 726 / 7
  • Все начинается с Value
Простой пример. VirtueMart в качестве главной. Нажимаешь на категорию( я так понимаю на ссылку не привязанную к меню) и ваша проверка не срабатывает. Она вообще, по принципу работает как в первом посте от fedragon . Я же предложил совсем иной принцип сверять JFactory::getURI()->toString() адрес текущей страницы с адресом сайта JURI::base()
*

Fedor Vlasenko

  • Живу я здесь
  • 3842
  • 726 / 7
  • Все начинается с Value
Цитировать
вам не кажется что вы бред написали?! перейдете в категорию то вы уже будете не на главной! (перешли в категорию ссылка стала mysite.ru/cat.html и она не равна mysite.ru) что то вы выдумываете!
нет не кажется. Прежде чем так заявлять, тестируйте. Ваше решение я протестировал. Автор темы не зря поднял этот вопрос. Ссылка, да имеет другое значение mysite.ru/cat.html, но проверка ваша говорит, что мы на главной странице. Мы же находимся на странице категории VirtueMart
Похожая тема

P.S. И это не решает проблему
Код
if ($menu->getActive()->id == $menu->getDefault()->id) {}
*

fedragon

  • Захожу иногда
  • 232
  • 22 / 0
  • You move like an insect
Poznakomlus, спасибо, всё работает в лучшем виде.
frisian, не стал проверять ваш код, потому что всё заработало и так, так что не могу сказать за его эффективность
Your flesh is an insult to the perfection of the digital.
*

Stake1988

  • Захожу иногда
  • 66
  • 0 / 0
При определенных условиях (главная имя домена) работает такой код
Код
<? php if (JFactory::getURI()->toString() == JURI::base()) : ?>
<h1>Мы на главной</h1>
<?php endif; ?>

Странно, почему-то при добавлении этого кода сайт падает (в данное условие заключается только один блок div), точнее в тэге <body> пусто. Может это быть связанно с тем что сайт располагается в домене .рф?
*

Stake1988

  • Захожу иногда
  • 66
  • 0 / 0
Поковырялся немного, заработал такой вариант:

Код
<?php $uri = &JFactory::getURI();
$url = $uri->toString(array('path', 'query', 'fragment'));
if ($url == "/") : ?>
<div >

</div>
<?php endif ?>
Кривовато конечно, но зато работает. Не проверял как оно будет работать в выше описанных вариантах с категориями VirtueMart и т.д.
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
Код: php
if ( JRequest::getVar('view') == 'featured' ) {$start=1;};
//и далее используем условие как хотим. Например так:
if ($start){
   echo 'Превед! Йа на главной!';
};

*

angpyxa

  • Новичок
  • 1
  • 0 / 0
Привет! я попробовал ваши способы они что то не комильфо.. и написал свой
100% проверка

в шаблоне статьи например
templates/kino7/html/com_content/article/default.php

добавляем в любое место
$GLOBALS["myitem"] = $this->item->id; (айдишник статьи Привязанный к главному пункту меню)

templates/kino7/index.php (главный файл шаблона)

$myid = $GLOBALS["myitem"];

и где то в коде

<? if ($myid==24) :?>

тут все что на главной

 <? endif;?>
 к этому методу добавить ифку по поиску, но это уже производная..) задача решается просто

« Последнее редактирование: 31.03.2012, 17:26:55 от angpyxa »
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
angpyxa молодцом. Хороший велосипед. Работать с глобальными переменными при наличии фреймворка... Явно прописывать айдишники в разметке... В общем, я бы до такого не додумался.
Код: php
if ( JRequest::getVar('view') == 'featured' )
Всё, это самый универсальный, компактный и правильный способ проверки.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Shustry, не у всех же на главной отображается featured, ты не подумал?

Давайте помыслим.

Как вобще определить на главной мы или нет?

Можно сравнивать пункты меню - активный, и домашний.
Но домашний пункт может быть активным, даже когда мы не на домашней странице.
Тот же пример выше с виртом, который приводил Poznakomlus
Значит, этот способ не для всех случаев подходит.

Можно сравнивать url главной страницы, и урл текущей.
Если игнорировать подстроку параметров урла (то что после ?) будут например проблемы с кривожопым виртом, который шлет все формы на index.php

Можно сравнивать урлы с учетом параметров, тогда например если у нас на главной выводится категория с пагинацией, то перейдя на след. страницу мы будем какбы уже не на главной.

Подводим итог:
Каждый "главная страница" понимает по-своему. Кто то - домашний пункт меню, кто-то site.ru/ , кто-то featured статьи Joomla и тд.

А значит нет универсального способа. В каждом случае надо выбирать под свои задачи.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
danik.html, затупил, не то скопипастил. :( Вот оно, вот оно решение моей мечты: написано Poznakomlus, доработано мной:
Код: php
 if (JURI::current() == JURI::base()){}
Абсолютно универсально и компактно.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Универсально, но не абсолютно. читай пост выше. А так да, наверно в 90% подойдет )
Так что закину к себе в копилку, чтоб потом самому не велосипедить.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

genetics

  • Захожу иногда
  • 51
  • 5 / 0
  • «GeneticsPro»
 ^-^ Смотрите Joomla-документацию >> http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
genetics, с этого (из документации по ссылке который) способа и начал тему ТС :)
*

dron

  • Завсегдатай
  • 1483
  • 15 / 10
Подскажите, пожалуйста, а как вывести модуль только на главной странице? я только что на 2.5. перешел... извиняюсь за ламерский вопрос
*

genetics

  • Захожу иногда
  • 51
  • 5 / 0
  • «GeneticsPro»
Менеджер модулей - Привязка к пунктам меню
*

dron

  • Завсегдатай
  • 1483
  • 15 / 10
Менеджер модулей - Привязка к пунктам меню
ненене... условие в шаблоне как-то прописывается... в предыдущих Joomlaх так было.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
http://joomlaforum.ru/index.php/topic,199690.msg1059654.html#msg1059654 - Ответ #8 - Проверено - все работает на ура!
*

ivan414

  • Новичок
  • 3
  • 0 / 0
Помогите. Перестали открываться ссылки. Открывается только главная страница. сайт http://foto-ivan.ru/
*

b2z

  • Глобальный модератор
  • 7084
  • 768 / 0
  • Разраблю понемногу
Помогите. Перестали открываться ссылки. Открывается только главная страница. сайт http://foto-ivan.ru/
И как это относиться к этой теме? Создайте отдельную!
*

swyatoslaw.ivanovich

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

Shustry

  • Гуру
  • 6436
  • 743 / 3
Поставить перед условием восклицательный знак. Например так:
Код: php
if (!((JURI::current() == JURI::base())||(JRequest::getVar('view') == 'featured')))
{};
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Поставить перед условием восклицательный знак. Например так:
Код: php
if (!((JURI::current() == JURI::base())||(JRequest::getVar('view') == 'featured')))
{};
Я чайник полный, так не получается=)) Мне кажется, что я совсем неправильно сделал=)) Код написал ниже, который вставлял в шаблон.
Код
<?php if (!((JURI::current() == JURI::base())||(JRequest::getVar('view') == 'featured')))
{}; ?> модуль на внутренних страницах <?php endif; ?>
*

Fedor Vlasenko

  • Живу я здесь
  • 3842
  • 726 / 7
  • Все начинается с Value
что нужно для того, что бы выводить модули только на внутренних страницах?
Все страницы кроме главной
Код: php-brief
<?php if(JURI::current()!= JURI::base()){}?>
Все страницы кроме главной, привязанные к меню главной
Код: php-brief
<?php if(JURI::current()!= JURI::base() && JMenuSite::getInstance('site')->getActive()->home){}?>
*

Shustry

  • Гуру
  • 6436
  • 743 / 3
Тогда может так?
Код: php
<?php if(JURI::current()!== JURI::base()){}>
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Пробую, вставляю, выдает ошибку Parse error: syntax error, unexpected '>' in /home/sandro2584/3v1.biz/docs/stylage/templates/stylage/index.php on line 38, ребят, как именно нужно прописывать в шаблоне, так?:
Код
<?php if(JURI::current()!== JURI::base()){}>
проверка
<?php endif; ?>
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Спасибо огромное за помощь! yes!
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Рано я радовался=)) Если писать что нибудь или вставлять между, то выводит внутри, но если в таком виде:
Код
<?php if (JURI::current()!== JURI::base()) : ?>
<jdoc:include type="modules" name="topblock" style="xhtml" />
<?php endif; ?>
, то ничего не отображает, не выводит модули на позицию.
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Причем странно, что если пписать следующее:
Код
 <?php if (JURI::current() == JURI::base()) : ?>
<jdoc:include type="modules" name="позиция" style="xhtml" />
<?php endif; ?>
, то модули выводятся(только на главной)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Миграция на Joomla с другой CMS

Автор cntrl

Ответов: 5
Просмотров: 430
Последний ответ 05.09.2020, 00:34:40
от effrit
Руководство пользователя Joomla! 2.5 + 10 легких шагов к освоению Joomla! 3 (книги в pdf)

Автор Marques

Ответов: 66
Просмотров: 183412
Последний ответ 07.08.2020, 11:00:23
от AlexB
[РЕШЕНО] Как в Joomla 2.5 автоматом удалять пользователей, не активировавшихся?

Автор pH43

Ответов: 2
Просмотров: 728
Последний ответ 01.06.2020, 17:16:26
от pH43
Скачивание файла после внесения контактных данных Joomla 2.5.11?

Автор marketingMLS

Ответов: 0
Просмотров: 1265
Последний ответ 11.03.2020, 17:25:39
от marketingMLS
Как вывести путь материала на страницу?

Автор Gromz

Ответов: 6
Просмотров: 516
Последний ответ 14.12.2019, 20:19:21
от Gromz