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

Allod

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Добрый день, Смарт. Записал видео, где демонстрируется баг на примере моего сайта. http://narod.ru/disk/44732417001.6070e9520c55d37ad60b1d8fe3904ebc/1.mp4.html

Как из него видно, правая колонка на сайте просто слетает вниз, если при цитировании не закрыть квадратную скобку.
С размером моей БД, Вы уже знакомы, так что представляете вероятность случайного или специального удаления этой скобки.
Стоит последняя версия jcomments 2.3.0, на старой такого не замечал.

Текст сообщения из видео:
[quote name="Мальчик"][quote name="Девочка [/quote]
Привет. Как дела?[/quote]
Нормально. У тебя как?[/quote]
Я тебя тоже везде нахожу и комментирую
« Последнее редактирование: 03.09.2013, 15:08:23 от smart »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Хм, есть одно решение. Правда надо потестировать, не вылезет ли в других ситуациях проблем.

1. Открываем файл /components/com_jcomments/jcomments.class.php
2. Заменяем (строка 1063):
Код: php
$quotePattern = '#\[quote\s?name=\"([^\"\'\<\>\(\)]*?)\"\](<br\s?\/?\>)*?(.*?)(<br\s?\/?\>)*\[\/quote\](<br\s?\/?\>)*?#ism' . JCOMMENTS_PCRE_UTF8;
на
Код: php
$quotePattern = '#\[quote\s?name=\"([^\"\'\<\>\(\)]*?)\"\](<br\s?\/?\>)*?(.*?)(<br\s?\/?\>)*\[\/quote\](<br\s?\/?\>)*?#ismU' . JCOMMENTS_PCRE_UTF8;
*

Allod

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Спасибо, всё работает. В других ситуациях проблем не обнаружил.
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Тех, кто умышленно будет "ложить" мои шаблоны, буду посылать в Бан! )))

Смарту респект за быстрое реагирование!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

jiva242

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
Здравствуйте, smart.

Наконец то отловил уязвимость.

Если закрывающий [/b] идет сразу после кавычек, то есть так "[/b] - то происходит ошибка интерпретации и "ломается шаблон". На выходе это выглядит так (см.скрин)

http://yadi.sk/d/PHaNoZtN3I446

Будем весьма признательны за практический совет по устранению этого недостатка.

*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Да, вопщем проблема наблюдается если
1. за двойной английской кавычкой - " - следует квадратная скобка [
2. а затем /b или /i или /s
3. а затем закрывающая квадратная скобка ]
4. а затем URL

например, если оригинальный текст:
Код
Добавить комментарий [b]"Добавить комментарий"[/b]
http://google.com

в случае с [/b] получаем
Код
Добавить комментарий <strong>"Добави<span style="font-size:0;padding:0;margin:0;"> </span>ть комментарий" trong&gt;<a href="http://google.com" target="_blank" rel="external nofollow">google.com</a>

в случае с [/i] получаем
Код
Добавить комментарий <em>"Добавить комментарий" m&gt;<br><a href="http://google.com" target="_blank" rel="external nofollow">google.com</a></em>

в случае с [/s] получаем
Код
Добавить комментарий <del>"Добавить комментарий" el&gt;<br><a href="http://google.com" target="_blank" rel="external nofollow">google.com</a>

Похоже что вставливание URL каким-то непостижимым образом обрубает первую букву закрывающего HTML-овского тага.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Если закрывающий [/b] идет сразу после кавычек, то есть так "[/b] - то происходит ошибка интерпретации и "ломается шаблон". На выходе это выглядит так (см.скрин)
Так, попробуйте сделать следующее:

1. Открываем файл /components/com_jcomments/jcomments.class.php
2. Меняем строчку:
Код: php
$plainText = preg_replace('#(^|\s|\>|\()((http://|https://|news://|ftp://|www.)\w+[^\s\[\]\<\>\"\'\)]+)#i'. JCOMMENTS_PCRE_UTF8, '', $plainText);
на
Код: php
$plainText = preg_replace('#(^|\s|\>|\()((http://|https://|news://|ftp://|www.)\w+[^\s\[\]\<\>\"\'\)]+)#i'. JCOMMENTS_PCRE_UTF8, '\\1', $plainText);
3. Сохраняем изменения.

Отпишитесь пожалуйста по результатам...
*

jiva242

  • Осваиваюсь на форуме
  • 14
  • 2 / 0
Решение работает. Благодарю вас, smart  ::)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Разрешить комментирование гостям

Автор Taatshi

Ответов: 21
Просмотров: 8442
Последний ответ 19.12.2020, 11:54:49
от Nobillis
[Решено] Не отображаются аватары CommunityBuilder в JComments

Автор Ishti39

Ответов: 10
Просмотров: 2791
Последний ответ 11.07.2017, 19:09:32
от warlocksp
[Решено] Не удаляются комментарии в админке. (Joomla 2.5.28, JComments 3.0.5)

Автор Esken

Ответов: 5
Просмотров: 2946
Последний ответ 08.05.2017, 17:47:54
от Esken
[Решено] Не обновляется CAPTCHA в JComments 2.3.0

Автор chilly_bang

Ответов: 24
Просмотров: 17452
Последний ответ 28.04.2016, 15:31:15
от Risska
[Решено] Отображается код {jcomments off}

Автор the_nickname

Ответов: 5
Просмотров: 5803
Последний ответ 24.03.2016, 17:31:50
от Lukart