Новости Joomla

Вышел релиз Joomla 6.2

Релиз Joomla 6.2.0

Проект Joomla! рад сообщить о выходе новой минорной версии — Joomla 6.2 (кодовое имя Mwezi).

Вышел релиз Joomla 5.4.10

Релиз Joomla 5.4.10

Проект Joomla! рад сообщить о выходе Joomla 5.4.10. Это последний релиз исправления ошибок для серии Joomla 5.x.

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

x1

  • Давно я тут
  • 639
  • 15 / 0
  • Linux — это Windows для бытовой техники
Предлагается решение проблемы для J6.1:
Пользователь перелпределяет com_contact, создаёт свой layout для отображения контакта во фронте, этот шаблон  появляется в выборе Параметров отображения контакта, его можно даже выбрать и сохранить в настройках, но во фронте ваш шаблон игнорируется и грузится дефолтный. В материалах этотой ошибки нет.
Пока не исправили, предлагается такое решение, мне помогло:
в файле /components/com_contact/src/Model/ContactModel.php
надо этот блок:
Код
$temp    = clone $this->getState('params');
$contact = $this->getItem($this->getState('contact.id'));
$active  = Factory::getContainer()->get(SiteApplication::class)->getMenu()->getActive();

if ($active) {
    if (strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) {
        $contact->params->merge($temp);
    } else {
        $temp->merge($contact->params);
        $contact->params = $temp;
    }
} else {
    $temp->merge($contact->params);
    $contact->params = $temp;
}

if (!$contact->params->get('show_email_copy', 0)) {
    $form->removeField('contact_email_copy');
}

... заменить на этот блок:
Код
$temp          = clone $this->getState('params');
$contact       = $this->getItem($this->getState('contact.id'));
$contactParams = clone $contact->params;
$active        = Factory::getContainer()->get(SiteApplication::class)->getMenu()->getActive();

if ($active) {
    if (strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) {
        $contactParams->merge($temp);
    } else {
        $temp->merge($contactParams);
        $contactParams = $temp;
    }
} else {
    $temp->merge($contactParams);
    $contactParams = $temp;
}

if (!$contactParams->get('show_email_copy', 0)) {
    $form->removeField('contact_email_copy');
}
*

hstq

  • Новичок
  • 9
  • 0 / 0
  • Хостинг провайдер HSTQ
К этому исправлению полезно добавить проверку двух сценариев: открытие контакта через отдельный пункт меню и по прямой ссылке без него. В вашем коде ветки зависят от активного меню, поэтому одного успешного открытия недостаточно.

Ещё стоит сохранить патч отдельным diff: правка ContactModel.php находится в ядре и может исчезнуть при обновлении Joomla. После обновления сначала проверить воспроизведение ошибки, а не автоматически возвращать старый файл поверх нового.
*

hstq

  • Новичок
  • 9
  • 0 / 0
  • Хостинг провайдер HSTQ
В обоих вариантах осталась отдельная неточность: поиск &id=1 найдёт и &id=10

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

Сделал шаблон для Joomla 5

Автор fbr

Ответов: 9
Просмотров: 3125
Последний ответ 15.10.2025, 16:49:33
от fbr
Переопределение шаблон com_content

Автор triode-master

Ответов: 10
Просмотров: 9109
Последний ответ 20.08.2025, 14:57:54
от kostet7
Не отображаться версия для ПК на android (шаблон cassiopeia)

Автор web1

Ответов: 1
Просмотров: 1052
Последний ответ 05.08.2025, 17:14:31
от web1
Как в js указать свой путь к стилю, чтоб все работало?

Автор web1

Ответов: 4
Просмотров: 1082
Последний ответ 22.09.2024, 21:07:30
от sivers
Выбрать собственный шаблон для полей layouts/com_fields/fields/

Автор Zelyonkin

Ответов: 0
Просмотров: 1078
Последний ответ 26.08.2024, 11:52:05
от Zelyonkin