Новости Joomla

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

Новый способ добавления и рендера полей в 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.
// В Controller/View добавляем поля$this->form  ->addControlField('task', '')  ->addControlField('return', $input->getBase64('return', ''))  ->addControlField('forcedLanguage', $forcedLanguage);
А в layout'е просто используем метод
renderControlFields()
// В layout формыecho $this->form->renderControlFields();
Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.Смотреть
Pull Request@joomlafeed#joomla #разработка #php

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 Гость просматривают эту тему.
  • 13 Ответов
  • 3866 Просмотров
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
mosFormatDate и смещение
« : 08.10.2008, 01:01:14 »
Возник такой вопрос. Есть дата и время записанные в виде 2008-10-10 00:00:00
Когда пишу echo mosFormatDate($rel_date); мне выводит
09.10.2008 г.

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

с настройками на сервере все в порядке.
в самой joomla с датой тоже все в порядке. а вот в моем компоненте что-то совсем плохо.
/* Have a nice day! */
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: mosFormatDate и смещение
« Ответ #1 : 08.10.2008, 01:20:49 »
А в каком формате дата хранится у вас в базе, и что непосредственно в поле $rel_date? Сделайте var_dump($rel_date); и посмотрите, что там сейчас находится...
*

Helios

  • Захожу иногда
  • 421
  • 31 / 1
  • Аэтошозадеталь?
Re: mosFormatDate и смещение
« Ответ #2 : 08.10.2008, 03:02:17 »
формат даты в базе - 2008-10-10 00:00:00
результат var_dump($rel_date); - string(19) "2008-10-10 00:00:00"
результат echo mosFormatDate($rel_date); - 09.10.2008 г.

PS! То ли я тупой, то ли уже поздно...
/* Have a nice day! */
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: mosFormatDate и смещение
« Ответ #3 : 08.10.2008, 03:13:04 »
В функцию mosFormatDate нужно передавать дату, а не строку. Т.е. сначала, вам прийдется из указанной строки, сделать дату, с помощью strtotime, а уже потом, полученную дату вы сможете переформатировать.

Т.е. примерно вот так:

Код: php
if (is_string($rel_date)) {
$rel_date = strtotime($rel_date);
}
echo mosFormatDate($rel_date);
*

Arina

  • Захожу иногда
  • 164
  • 1 / 0
Re: mosFormatDate и смещение
« Ответ #4 : 13.07.2009, 00:04:33 »
В функцию mosFormatDate нужно передавать дату, а не строку. Т.е. сначала, вам прийдется из указанной строки, сделать дату, с помощью strtotime, а уже потом, полученную дату вы сможете переформатировать.

Т.е. примерно вот так:

Код: php
if (is_string($rel_date)) {
$rel_date = strtotime($rel_date);
}
echo mosFormatDate($rel_date);


Где этот код можно прописать ? Все никак не могу найти, где можно время изменить в формате на главной: день.месяц.год + время публикации.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: mosFormatDate и смещение
« Ответ #5 : 13.07.2009, 00:15:15 »
Все никак не могу найти, где можно время изменить в формате на главной: день.месяц.год + время публикации.
что именно вам нужно изменить-то?
*

Arina

  • Захожу иногда
  • 164
  • 1 / 0
Re: mosFormatDate и смещение
« Ответ #6 : 13.07.2009, 12:03:09 »
что именно вам нужно изменить-то?

Сайт один попросили доработать информационный, новости на главной выводятся таким образом:

Заголовок
Дата публикации
Первый абзац

а нужно сделать:

Заголовок
Дата публикации + ВРЕМЯ ПУБЛИКАЦИИ
Первый абзац

Сайт под управлением Joomla Lavra edition 12 вроде, не 15 точно.

*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: mosFormatDate и смещение
« Ответ #7 : 13.07.2009, 12:25:15 »
А что у Вас в $mosConfig_offset?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: mosFormatDate и смещение
« Ответ #8 : 13.07.2009, 14:04:25 »
Чтобы у вас отображалось время публикации, исправьте в языковом файле (/language/russian.php) строчку:

Код: php
DEFINE('_DATE_FORMAT_LC',"%A, %d %B %Y");
на
Код: php
DEFINE('_DATE_FORMAT_LC',"%d.%m.%Y %H:%M");
*

Arina

  • Захожу иногда
  • 164
  • 1 / 0
Re: mosFormatDate и смещение
« Ответ #9 : 13.07.2009, 16:12:45 »
А что у Вас в $mosConfig_offset?

а где его найти ?
*

Arina

  • Захожу иногда
  • 164
  • 1 / 0
Re: mosFormatDate и смещение
« Ответ #10 : 13.07.2009, 16:13:40 »
Чтобы у вас отображалось время публикации, исправьте в языковом файле (/language/russian.php) строчку:

Код: php
DEFINE('_DATE_FORMAT_LC',"%A, %d %B %Y");
на
Код: php
DEFINE('_DATE_FORMAT_LC',"%d.%m.%Y %H:%M");

оки, спасибо, вечером попробую
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: mosFormatDate и смещение
« Ответ #11 : 13.07.2009, 16:18:06 »
а где его найти ?

В configuration.php
*

Arina

  • Захожу иногда
  • 164
  • 1 / 0
Re: mosFormatDate и смещение
« Ответ #12 : 13.07.2009, 20:34:07 »
А что у Вас в $mosConfig_offset?

$mosConfig_offset = '0';
*

Arina

  • Захожу иногда
  • 164
  • 1 / 0
Re: mosFormatDate и смещение
« Ответ #13 : 13.07.2009, 20:47:45 »
Чтобы у вас отображалось время публикации, исправьте в языковом файле (/language/russian.php) строчку:

Код: php
DEFINE('_DATE_FORMAT_LC',"%A, %d %B %Y");
на
Код: php
DEFINE('_DATE_FORMAT_LC',"%d.%m.%Y %H:%M");

SMART!!! уже какой раз убеждаюсь, что ты не реально умный!!! СПАСИБО! мне очень помогло!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Смещение материала.

Автор alivsyk

Ответов: 1
Просмотров: 1682
Последний ответ 06.05.2009, 19:44:17
от alivsyk