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

orsy

  • Давно я тут
  • 393
  • 21
  • Web-Factor Ukraine
Предыстория: есть сайт на трех языках (UA/RU/EN). По умолчанию для фронта в настройках сайта выбран украинский язык.

Вопрос: Как в шаблоне получить адрес главной страницы или переменную, которая будет давать TRUE если текущая страница является главной.
То есть скрипт должен понимать что и "site.ru/" и "site.ru/ru/" и "site.ru/en/" это всё главные страницы.
Я мог бы просто прописать все эти варианты, но хотелось бы иметь универсальный вариант для определения главной страницы независимо от установленных языков и текущего языка сайта.

Заранее благодарен.
*

Ilhom666

  • Живу я здесь
  • 1305
  • 166
Стандартный способ -
Код: php
$app = JFactory::getApplication();
$menu = $app->getMenu();
$lang = JFactory::getLanguage();
if ($menu->getActive() == $menu->getDefault($lang->getTag())) {
echo 'This is the front page';
}
else {
echo 'Accueil';
}
*

orsy

  • Давно я тут
  • 393
  • 21
  • Web-Factor Ukraine
Мой вариант http://joomlaforum.ru/index.php/topic,205202.msg1456524.html#msg1456524

К меню можно привязываться, но это не всегда срабатывает.

В каких случаях не срабатывает привязка к пункту меню?
*

orsy

  • Давно я тут
  • 393
  • 21
  • Web-Factor Ukraine
А Вы почитайте начало темы, которую я привёл.

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

То есть если сравнивать адреса то главная страница, которая не имеет префикса языка не будет считаться главной?

Всплывает проблема, над решением которой я бьюсь уже 3 дня. Как узнать язык контента, выбранный по умолчанию для фронта.
« Последнее редактирование: 22.02.2016, 16:32:02 от orsy »
*

Aleks.Denezh

  • Практически профи
  • 2806
  • 377
Я определяю так:
Код: php
$language = JFactory::getLanguage();
$languages = JLanguageHelper::getLanguages( 'lang_code' );
$isHomePage = $language->getTag() === $language->getDefault()? JUri::base() === JUri::current() : JUri::base(). $languages[$language->getTag()]->sef === rtrim( JUri::current(), '/' );
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

orsy

  • Давно я тут
  • 393
  • 21
  • Web-Factor Ukraine
А Вы почитайте начало темы, которую я привёл.

Немного доработал ваш вариант, подскажите везде ли будет работать вот этот код:

Код
$currUrl = substr(JUri::base(), 0, -1).$_SERVER['REQUEST_URI'];
$defLang = JComponentHelper::getParams('com_languages')->get('site');

if (JLanguageMultilang::isEnabled()){
    $uris = array();
foreach (JLanguageHelper::getLanguages() as $lang){
if($lang->lang_code === $defLang){
$uris[$lang->lang_code] = JUri::base();
}else{
$uris[$lang->lang_code] = JUri::base(). $lang->sef . '/';
}
}
if($currUrl ==  $uris[JFactory::getLanguage()->getTag()] ){
$isHomePage = 1;
} else {
$isHomePage = 0;
}
}else{
if($currUrl ==  JUri::base() ){
$isHomePage = 1;
} else {
$isHomePage = 0;
}
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенаправление url при смене версии Joomla и прежней структуры сайта

Автор Afman

Ответов: 19
Просмотров: 293
Последний ответ 22.09.2017, 22:08:18
от AdWeb
Notice: Undefined offset: 1 in /libraries/joomla/environment/browser.php on line 282

Автор planetaryi

Ответов: 3
Просмотров: 237
Последний ответ 17.09.2017, 11:24:53
от botva
Искажается отображение модуля при прокрутке сайта

Автор vipex

Ответов: 2
Просмотров: 54
Последний ответ 10.09.2017, 16:43:36
от vipex
Как открыть материал без шаблона сайта

Автор m1804

Ответов: 2
Просмотров: 65
Последний ответ 08.09.2017, 13:50:37
от m1804
Вместо сайта отображается форма Joomla

Автор sts34

Ответов: 15
Просмотров: 207
Последний ответ 06.09.2017, 11:27:48
от lexxbry