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

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Всем привет!
Использую компонент FaLang для мультиязчности и встроенный компонент меток (тэгов).
При выводе статей перевод меток работает как положено.
Но вот при выводе этих самых меток посредством плагина "Популярные метки", перевод уже не срабатывает.
Метки выводятся на языке по-умолчанию (на русском).
Кто нибудь сталкивался с таким и есть ли идеи, как это исправить?
Заранее спасибо всем отозвавшимся.
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Re: Joomla 3, FaLang и вывод меток (тэгов)
« Ответ #1 : 18.07.2018, 23:44:49 »
Вобщем, для тех, кто будет искать решение подобных задач (не только для плагина, а для вывода тех или иных значений переводов FaLang), вот примерная основа для этого:

Код
<?php
$lang = JFactory::getLanguage();
$curlang = $lang->getTag();
if ($curlang == 'en-GB') { $idx = 1; } else if ($curlang == 'de-DE') { $idx = 3; }
$translations = JFactory::getDBO()->setQuery("SELECT * FROM #__falang_content WHERE reference_table = 'tags' AND reference_field = 'title' AND language_id = $idx")->loadObjectList();
foreach ($translations as $item) {
    $items = [];
    array_push($items, $item->value);
    foreach ($items as $item) {
        echo '<div>'.$item.'</div>';
    }
}
?>

$curlang — текущий язык отображения сайта (в моём примере было три языка, основной — русский, и два дополнительных — английский и немецкий)
$idx — это индекс языка внутри компонента FaLang (узнать его можно с помощью phpMyAdmin, в таблице #__falang_content и столбце language_id)

В моём случае я делаю выборку по трём столбцам: 'reference_table' (область контента, где мне нужно найти переводы) и 'reference_field ' (поле, из которого мне нужно получить перевод). И последний параметр это ID языка, о котором говорилось ранее.

Собственно, как это применить, каждый решит сам.
Меняя значние reference_table, вы будете выбирать значения для той или иной области контента.
Например  reference_table = 'menu' позволит получить значения переводов для пунктов меню и т.д.
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Re: Joomla 3, FaLang и вывод меток (тэгов)
« Ответ #2 : 23.01.2019, 15:05:09 »
Подскажи пожалуйста, где искать: язык по умолчанию ru и выбрано, что префикс для основного языка в ссылке не отображается, Falang корректно переводит материал, заголовок и прочее на английский. Проблема в тегах: сам тег и его имя в ссылке переводятся корректно hxxp://site.org/en/events/tag/MyTag.html,  но при переходе по ссылке вылетает ошибка 404. На русском все нормально, открывается страница со списком патериалов с данным тегом
« Последнее редактирование: 23.01.2019, 15:09:05 от x1 »
*

x1

  • Давно я тут
  • 617
  • 15 / 0
  • Linux — это Windows для бытовой техники
Re: Joomla 3, FaLang и вывод меток (тэгов)
« Ответ #3 : 23.01.2019, 15:55:39 »
Самсебе и отвечаю.
Цитировать
For me changing part of components/com_k2/views/itemlist/view.html.php code mentioned by AlexanderSk to this helped:
Примерно строка 250, заменить на этот код:
Код
$tag = JRequest::getString('tag');
$db = JFactory::getDBO();
$db->setQuery('SELECT id, name FROM #__k2_tags WHERE name = '.$db->quote($tag));
$tag = $db->loadObject();
if (!$tag || !$tag->id)
{
$tag = JRequest::getString('tag');
$db = JFactory::getDBO();
$db->setQuery('SELECT id, value FROM #__falang_content WHERE value = '.$db->quote($tag));
$tag = $db->loadObject();
if (!$tag || !$tag->id) {
JError::raiseError(404, JText::_('K2_NOT_FOUND'));
return false;
}
}
*

Slava77

  • Захожу иногда
  • 85
  • 7 / 0
Re: Joomla 3, FaLang и вывод меток (тэгов)
« Ответ #4 : 09.02.2022, 16:04:31 »
Самсебе и отвечаю. Примерно строка 250, заменить на этот код:
Код
$tag = JRequest::getString('tag');
$db = JFactory::getDBO();
$db->setQuery('SELECT id, name FROM #__k2_tags WHERE name = '.$db->quote($tag));
$tag = $db->loadObject();
if (!$tag || !$tag->id)
{
$tag = JRequest::getString('tag');
$db = JFactory::getDBO();
$db->setQuery('SELECT id, value FROM #__falang_content WHERE value = '.$db->quote($tag));
$tag = $db->loadObject();
if (!$tag || !$tag->id) {
JError::raiseError(404, JText::_('K2_NOT_FOUND'));
return false;
}
}

Большое спасибо, способ рабочий! Обычные и переведенные теги начали работать так, как и должны!

Жаль что при обновлении K2 данную правку кода нужно проводить повторно, но так как K2 обновляется очень редко это можно не считать за проблему  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla Quiz Deluxe

Автор Mick_20

Ответов: 1
Просмотров: 1493
Последний ответ 11.11.2020, 13:35:16
от Mick_20
JBETOLO — оптимизация вашего сайта на Joomla!

Автор wfedin

Ответов: 7
Просмотров: 9017
Последний ответ 25.12.2019, 16:38:22
от auto-teacher
Joomla Tags. Перенос тэгов на Joomla 3

Автор dron

Ответов: 11
Просмотров: 1982
Последний ответ 05.08.2019, 11:51:52
от dron
JEM Joomla event manager

Автор Andrew92

Ответов: 0
Просмотров: 4509
Последний ответ 16.08.2017, 05:49:42
от Andrew92
Komento вывод количества комментариев в категории товара

Автор ZekeV

Ответов: 0
Просмотров: 1059
Последний ответ 26.06.2017, 11:57:26
от ZekeV