Новости 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 Ответов
  • 1493 Просмотров
*

ninth

  • Захожу иногда
  • 59
  • 0 / 0
  • [ 9 ]
Доброго времени суток, помогите разобраться.

Есть массив:
Код: php
Array
(
    [0] => stdClass Object
        (
            [title] => Творчество
            [id] => 15
            [params] => {"category_layout":"","image":"images\/portfolio\/category\/Tv.png"}
        )

    [1] => stdClass Object
        (
            [title] => Разное
            [id] => 16
            [params] => {"category_layout":"","image":"images\/portfolio\/category\/R.png"}
        )

)

Как в ВИДЕ (default.php) добратся до параметра - "image":"images\/portfolio\/category\/Tv.png"?
...нужно просто достать ссылку на картинку...

Делаю так ...

Модель:
Код: php
<?php
defined('_JEXEC') or die;

jimport('joomla.application.component.modelitem');
class MyworksModelMyworks extends JModelList
{
     public function getMycategories()
    {

$db = $this->getDbo();
$query = $db->getQuery(true);

$query->select(array('title', 'id', 'params'));
$query->from('#__categories');

$query->where('extension = "com_myworks"');
$query->order('rgt');

$db->setQuery($query);
$query = $db->loadObjectlist();

        return $query;
}
}

Вид:
Код: php
<?php

defined('_JEXEC') or die('Restricted access');

jimport('joomla.application.component.view');

class MyworksViewMyworks extends JViewLegacy
{
    protected $mycategory;

    public function display($tpl = null)
    {
        $this->mycategory = $this->get('Mycategories');

        parent::display($tpl);
    }
}


default.php:
Код: php
<?php
defined('_JEXEC') or die;
?>
<?php foreach($this->mycategory as $category) : ?>
    <?php echo $category->params->get("image"); ?>
<?php endforeach; ?>

Выдаёт ошибку - "Fatal error: Call to a member function get() on a non-object in..."
« Последнее редактирование: 17.08.2014, 20:47:57 от b2z »
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Код: php
<?php foreach($this->mycategory as $category) : ?>
  <?php $params = new JRegistry( $category->params ); ?>
  <?php echo $params->get('image'); ?>
<?php endforeach; ?>
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
p.s. В Joomla 3.x эти строки
jimport('joomla.application.component.modelitem');
jimport('joomla.application.component.view');
ненужны!
*

ninth

  • Захожу иногда
  • 59
  • 0 / 0
  • [ 9 ]
Нигде пример найти не мог.
Большое вам спасибо.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
А как передать в функцию getMycategories параметр?
Чтоб в выборке он участвовал
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] Дублирование при создании

Автор platonische

Ответов: 7
Просмотров: 1204
Последний ответ 12.02.2021, 11:24:26
от platonische
[РЕШЕНО] onChange в админке на field modal

Автор platonische

Ответов: 1
Просмотров: 581
Последний ответ 30.01.2021, 16:40:45
от platonische
Избранное для меню и/или категорий

Автор platonische

Ответов: 3
Просмотров: 605
Последний ответ 19.10.2020, 12:34:12
от platonische
Пример представления компонента с выводом списка с фильтром по связанной таблице

Автор borro

Ответов: 36
Просмотров: 2361
Последний ответ 14.10.2020, 11:59:15
от b2z
Обработка AJAX в компоненте Joomla!3

Автор balancer

Ответов: 33
Просмотров: 11375
Последний ответ 23.07.2020, 07:45:53
от Dolphin4ik_1