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

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Если вы не хотите, чтобы форма обратной связи появлялась сразу при просмотре объекта недвижимости, можно сделать возможности вызвать ее по кнопке. По умолчанию она спрятана, если кому-то она понадобится - нажмут на кнопку и напишут сообщение.

В файле: /components/com_jea/views/properties/tmpl/default_item.php
Найти кусок кода:
Код
<form action="<?php echo $this->getViewUrl ($this->row->id,'&task=sendmail' )?>" method="post" enctype="application/x-www-form-urlencoded">

    <fieldset><legend><?php echo JText::_('FORMCONTACTLEGEND')?></legend>
        <p><label for="name"><?php echo JText::_('Name')?> :</label><br />
           <input type="text" name="name" id="name" value="<?php echo $this->escape(JRequest::getVar('name', ''))?>" size="40" />
        </p>
       
        <p><label for="email"><?php echo JText::_('Email')?> :</label><br />
           <input type="text" name="email" id="email" value="<?php echo $this->escape(JRequest::getVar('email', ''))?>" size="40" />
        </p>
       
        <p><label for="subject"><?php echo JText::_('Subject')?> :</label><br />
           <input type="text" name="subject" id="subject" value="Ref : <?php echo $this->escape( $this->row->ref )?>" size="40" />
        </p>
       
        <p><label for="e_message"><?php echo JText::_('Message')?> :</label><br />
           <textarea name="e_message" id="e_message" rows="10" cols="40"><?php echo $this->escape(JRequest::getVar('e_message', ''))?></textarea>
        </p>
        <p>
        <input type="hidden" name="created_by" value="<?php echo $this->row->created_by ?>" />
        <input type="submit" value="<?php echo JText::_('Send')?>" />
       
        </p>
   
    </fieldset>
</form>

Перед ним вставить вот это:
Код
<script type="text/javascript">
function show_hide(_element_id) {
    var element = document.getElementById(_element_id);
    if (element) {
        element.style.display = element.style.display == 'none' ? '' : 'none';
    }
}
</script>

<div id="hiddenDiv1" style="display: none;">

И после него закрыть тег:
Код
</div>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться