Как установить язык в представлении статьи переднего конца Joomla?

Я создал многоязычный сайт в Joomla. Язык по умолчанию - английский, второй - французский.

Я создал модуль входа в систему и отправку статей на английский язык на английском языке.

Я зарегистрировал пользователя на английском сайте (front end) и вошел в систему. Я нажал кнопку «Отправить статью».

На странице «Создать статью» язык отображается как «Все». Я хочу, чтобы это отображалось как «Английский», когда пользователь заходил на сайт на английском языке.

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

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

Я считаю, что небольшая часть кода сделает это. Может кто-то, пожалуйста, помогите мне достичь этого?

С уважением, Рамеш.

1 голос | спросил Keetru Nandhan 12 Maypm15 2015, 14:29:18

4 ответа


0

Infograf ответил на этот вопрос.

В соответствии с его комментариями я поместил следующий код в:

  

/components/com_content/views/form/view.html.php

после строки: $this->form->setFieldAttribute('catid', 'readonly', 'true'); }

// Propose current language as default when creating new article
if (JLanguageMultilang::isEnabled() && empty($this->item->id))
{
$lang = JFactory::getLanguage()->getTag();
$this->form->setFieldAttribute('language', 'default', $lang);
}

Теперь он работает как ожидалось.

ответил Keetru Nandhan 6 52015vEurope/Moscow11bEurope/MoscowFri, 06 Nov 2015 06:11:34 +0300 2015, 06:11:34
1

Вы можете создать переопределение вида , чтобы изменить способ создания поля языка.

В текущем виде формы ( components /com_content /views /form /tmpl /edit.php ) есть это генерация поля, строка 147:

<div class="tab-pane" id="language">
    <?php echo $this->form->renderField('language'); ?>
</div>

Таким образом, вы можете изменить генерацию HTML в соответствии с JFactory::getLanguage()->getTag().

ответил Anibal 12 Maypm15 2015, 16:56:28
0

Вы можете создать две ссылки в интерфейсе для английского, другую для французского.

<ul class="lang-inline"><br>
<li dir="ltr" class=""><br>
<a href="/fr/">French</a><br>
</li><br>
<li dir="ltr" class="lang-active"><br>
<a href="http://sitepath/en/"><br>
English</a><br>
</li>
</ul>
ответил Jextn 12 J0000006Europe/Moscow 2015, 10:40:00
0

Я не уверен, что мы можем сделать это без переопределения основных файлов. Ниже приведен метод, который я использую:

P.S. Это не рекомендуется, так как файлы ядра будут перезаписаны при обновлении Joomla, и вам нужно будет изменить изменения.

Отредактируйте администратор /компоненты /com_content /models /article.php и найдите функцию ниже:

protected function loadFormData()

И внутри ниже, если условие

if (empty($data))

Добавьте ниже код

$data->set('language', JFactory::getLanguage()->getTag());
ответил Nagarjun 12 J0000006Europe/Moscow 2015, 11:33:04

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132