Новости Joomla

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

orsy

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

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

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

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
Стандартный способ -
Код: 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';
}
*

b2z

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

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Мой вариант http://joomlaforum.ru/index.php/topic,205202.msg1456524.html#msg1456524

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

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

b2z

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

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
А Вы почитайте начало темы, которую я привёл.

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

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

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

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Я определяю так:
Код: 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(), '/' );
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • 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;
}
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Что хранится в таблице overrider Joomla 3?

Автор web1

Ответов: 2
Просмотров: 227
Последний ответ 04.04.2024, 22:10:48
от web1
Шаблон для данной страницы недоступен. сообщите об этом Администратору сайта

Автор 62411

Ответов: 2
Просмотров: 212
Последний ответ 30.03.2024, 13:15:16
от web1
Как установить header Cache-Control только для одной страницы по URL?

Автор Slava77

Ответов: 0
Просмотров: 151
Последний ответ 23.03.2024, 00:16:36
от Slava77
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 3885
Последний ответ 21.02.2024, 11:03:08
от saynez
Убрать блок в мобильной версии сайта

Автор Grigorii

Ответов: 10
Просмотров: 708
Последний ответ 10.02.2024, 19:38:34
от darkghost