Новости Joomla

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

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

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

orsy

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

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

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

b2z

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

orsy

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

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

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

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

Aleks.Denezh

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

Ошибка Missing field in database: Joomla\CMS\Table\Extension   extension_id

Автор Ragivort

Ответов: 1
Просмотров: 2123
Последний ответ 25.12.2025, 21:10:01
от fbr
Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 11
Просмотров: 6890
Последний ответ 05.06.2025, 04:48:29
от andrey222
По поводу сессий Joomla 3

Автор azm1n

Ответов: 0
Просмотров: 2867
Последний ответ 25.05.2025, 09:26:17
от azm1n
Не работает мобильная версия сайта

Автор jeans

Ответов: 4
Просмотров: 2741
Последний ответ 21.05.2025, 12:44:06
от jeans
Стоит ли ставить плагин rel="canonical" на Joomla 3

Автор azm1n

Ответов: 2
Просмотров: 3368
Последний ответ 09.05.2025, 12:39:18
от azm1n