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

sega

  • Захожу иногда
  • 272
  • 5 / 0
Есть строка. Нужно заменить подстроку, но не во всех вхождениях, а только например при втором, как такое реализовать?
те то же самое что и str_replace только не все вхождения.
Наверное можно разбить на массив, но есть же способ проще?

*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
preg_replace
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Что надо заменить, Оракул? И на что?
*

sega

  • Захожу иногда
  • 272
  • 5 / 0
Что надо заменить, Оракул? И на что?
Код
<p>111</p>
<p>222</p>
<p>333</p>
<p>444</p>

нужно, например, заменить
Код
<p>222</p>
на
Код
<p>222яяя</p>

но тест может быть любой. Поиск нужно вести именно по второму вхождению тега <p>

*

sega

  • Захожу иногда
  • 272
  • 5 / 0
preg_replace
как я понял у preg_replace параметр limit указывает не на номер вхождения а на количество вхождений же?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Ну я бы как нибудь так сделал:
Код: php
$str = preg_replace_callback(
        '|<p>(.*?)<\/p>|i',
        function ($matches) {
   static $count = 0;
   if($count == 1) {
      $matches[1] .= 'aaa';
   }
           $count++;
   return '<p>' . $matches[1]  .'</p>';
        },
        $str
    );
echo $str;

Но это если там простой и валидный HTML. В противном случае XML парсер + xpath
интернет-блог: http://websiteprog.ru
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Код: "php"
function replacer($m)
{
    static $cnt = 0;
    return !$cnt++ ? $m[0] : $m[1] . 'замена' .  $m[3];
}

$replaced = preg_replace_callback('#(<p>)(.*?)(</p>)#is', 'replacer', $string, 2);
« Последнее редактирование: 24.02.2016, 16:47:56 от Филипп Сорокин »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

PHP вывод и замена значения из БД

Автор CityCat

Ответов: 11
Просмотров: 716
Последний ответ 29.07.2021, 15:53:58
от CityCat
Замена в плагине контента

Автор aspidy

Ответов: 7
Просмотров: 1312
Последний ответ 30.01.2015, 16:54:00
от aspidy