Новости Joomla

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

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

<?php // Это файл в /layouts/components/com_component/your_layout.php ?> <input type="hidden" name="task" value=""> <input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"> <input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"> <?php echo HTMLHelper::_('form.token'); ?>

Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.

<?php // В Controller/View добавляем поля $this->form ->addControlField('task', '') ->addControlField('return', $input->getBase64('return', '')) ->addControlField('forcedLanguage', $forcedLanguage);

А в layout'е просто используем метод

renderControlFields()

<?php // В layout формы echo $this->form->renderControlFields();

Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.

Смотреть Pull Request

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

sv9t

  • Новичок
  • 5
  • 0 / 0
Возникла необходимость сделать разный фон для каждой категории меню. Вставил код
Код
<?php
  if (@$Itemid == '1' ) { echo "<img src='images/girl1.jpg' border='0' />";
  } elseif (@$Itemid == '2' ) { echo "<img src='images/girl.jpg' border='0' />";
  } elseif (@$Itemid == '11' ) { echo "<img src='sboku.jpg' border='0' />";
  } else {}
?>
Но почему-то на главной картинка есть, на остальных ссылка картинки такая сайт.ru/index.php/images/girl.jpg. Почему и где взялся index.php не понятно.
Далее, вставил код иной:
Код
<?php
switch( @Itemid )
{
case '1':
{ echo '<img hspace="0" vspace="0" border="0" src="/images/girl1.jpg">';}
break;
case '2':
{ echo '<img hspace="0" vspace="0" border="0" src="/images/girl.jpg">';}
break;
default:
{ echo '<img hspace="0" vspace="0" border="0" src="/images/sboku.jpg">';}
break;
}
?>
Стал отображаться только дефолтовый на всех страницах. Что не так тоже не понятно.
Код
$Itemid = JRequest::getInt( 'id', 1, 'get' );
прописан, по идее должно все работать.
Что я неправильно прописал?
*

sv9t

  • Новичок
  • 5
  • 0 / 0
Я делал все по этому примеру Различные условия в шаблонах 4 пример.
Так то в теории лучше использовать 2 вариант, т.к. у меня в шаблоне титл прописан для каждой страницы вот так
Код
switch($Itemid)
{
  case '1': $document->setTitle('Стоматология, лечение, удаление и протезирование зубов. Отбеливание зубов.');
  break;
  case '2': $document->setTitle('Лечение зубов, профессиональная чистка зубов, имплантация зубов. Детская стоматология.');
  break;
}
?>
Но как соединить 2 пример и прописанный титл без понятия, и возможно вообще ли это сделать.Что вы скажете? как лучше?
*

sv9t

  • Новичок
  • 5
  • 0 / 0
Проблема практически решена: в первом варианте вместо @$Itemid нужно писать просто $Itemid.
Но во втором варианте почему все дефолтовое вопрос остался.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

В Joomla 2.5 VirtueMart 2.0.26d не работает добавление в корзину под мобилку

Автор kvintovskiy

Ответов: 8
Просмотров: 2057
Последний ответ 15.04.2024, 17:29:25
от Vastriet
Модуль устанавливается, но Joomla его не видит

Автор ruppert

Ответов: 20
Просмотров: 18452
Последний ответ 01.08.2022, 05:30:50
от rezon777
[Решено] title материалов и категорий без пунктов меню

Автор pharaoh

Ответов: 269
Просмотров: 63794
Последний ответ 03.02.2022, 02:45:26
от globus812
Как добавить описание к пункту меню в Joomla 2.5? (Как у материалов)?

Автор nia

Ответов: 7
Просмотров: 6016
Последний ответ 29.03.2021, 12:10:26
от sivers
Конструктор страниц (Page Builder) для Joomla 2.5

Автор nia

Ответов: 4
Просмотров: 1933
Последний ответ 14.03.2021, 12:17:35
от nia