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

HYBRID

  • Захожу иногда
  • 228
  • 47 / 0
  • Они захватят мир
Joomla вырезает теги, не дает вставить видео, начисто удаляет теги object, iframe, embed или пустые div-ы и span-ы  - типичная проблема для начинающего, да и порой опытного Joomla-юзверя впервые столкнувшегося с этим.

Способов избежать этого есть множество, ставить JCE со всеми его плюшками, отключать очистку кода в редакторе, но при этом давиться такими дублирующимися тегами с префиксом mce_, вообще отключить визуальный редактор (вариант для любителей легкого садомазо) даже как вариант "только чтобы вставить нужный код, а потом снова включить редактор" не очень привлекателен. А вот самый простой, гибкий и при этом надежный вариант я нашел только на просторах англоязычного интернета и делюсь им с вами.

Отбираем дудку у TinyMCE
Типичная ситуация, надо вставить видео с Youtube но редактор, зараза, вырезает код, гуглим, joomlaфорумим, паника нарастает, ответов нет, ищем плагины, совершаем манипуляции описанные выше, пиво уже кипит... глубоко вздыхаем и идем в настройки плагина TinyMCE (Расширения --> Менеджер плагинов --> Редактор - TinyMCE 2.0), включаем очистку кода, в поле расширенных валидных элементов прописываем нужный нам тег:



А потом снова пробуем вставить видео в редактор, через просмотр кода конечно же:



Я был бы рад что бы все было так просто, но увы, кликаем пару раз по кнопке "Показать/Скрыть редактор" и видим:



Опять черти что, но уже хотя бы тег на месте. Но куда девались все атрибуты?

Отступление: Изначально тег iframe наряду с другими (object, embed, script и т.д.) находится в черном списке конфигурационного файла TinyMCE по причине своей "небезопасности", но дело не ограничивается только тегами, все их атрибуты так же запрещены к использованию.

Заставляем TinyMCE плясать под нашу мелодию
Итак, для того чтобы редактор делал все то что мы хотим надо его надрессировать, к нужному тегу необходимо дописать все допустимые атрибуты
у нас есть код:

Код
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/_Gv7fo6mefo" frameborder="0" allowfullscreen></iframe>

прописываем в поле разрешенных элементов следующее:

Код
iframe[src|title|width|height|frameborder|allowfullscreen]

а после наслаждаемся результатом:



Заметка номер раз: Атрибуты без заголовков такие как allowfullscreen вырезаются, их необходимо записывать в XML-подобном виде: allowfullscreen="allowfullscreen".
Заметка номер два раза: Все неблочные элементы, коим является iframe, редактор оборачивает тегом <p>, если вас это не устраивает просто оберните iframe в div.

Bellissimo:



А кроме того
Если вы доверяете себе и остальным людям которые могут создавать публикации на вашем сайте и уверены что никто не подложит вам свинью, вместо того чтобы прописывать каждый атрибут по отдельности, как тут:

Код
iframe[src|title|width|height|frameborder|allowfullscreen]

прописываете:

Код
iframe[*]

Иногда необходимо использование пустых div-ов и span-ов в статьях, частая особенность типографики клубных шаблонов, так же вносим их в в список и наслаждаемся:

Код
iframe[*],div[*],span[*]

Теперь ваш редактор умеет сидеть, давать лапу, изображать "умри", приносить тапки и даже танцевать на задних лапках. А если очень нужно то может сыграть Мурку ;)
Можно допивать перекипяченное пиво.

Если собираетесь копировать в свой блог, укажите ссылку на источник.

В исходной статье предлагается извращенный метод изменения конфигурационного файла, оно тоже будет работать... до следующего обновления, тогда все ваши изменения затрутся, а вы и не вспомните даже. Если учесть что сайтов может быть не 1 а 10, и настройки могут быть разными... жестокое самоистязание это.
« Последнее редактирование: 26.03.2011, 00:08:43 от HYBRID »
http://hybrid-lab.com - лаборатория
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Столкнулся с проблемой.
Не могу вставить код стилей для одного материала TinyMCE 4.5.8
Код
<style>
div.textbox {
    width: 99%;
    border: 1px solid #66787F;
    border-radius: 20px;
...
}
</style>
Ну немного раздражает, что этот стиль нужен для одной страницы, и надо пихать его в стили всего шаблона
*

Progreccor

  • Захожу иногда
  • 270
  • 25 / 1
Столкнулся с проблемой.
Не могу вставить код стилей для одного материала TinyMCE 4.5.8

Ну немного раздражает, что этот стиль нужен для одной страницы, и надо пихать его в стили всего шаблона
добавить
Код
style[*]
в Дополнительные валидные элементы
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
*

kabban

  • Захожу иногда
  • 73
  • 0 / 0
Супер, мне помогло allowfullscreen="allowfullscreen"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться