Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 22 Ответов
  • 2975 Просмотров
*

lesh1j

  • Захожу иногда
  • 257
  • 35 / 0
Мульти поле в админке
« : 25.09.2014, 17:11:52 »
Здравствуйте, такой вопрос, пишу компонент
Чтобы добавить поле image в админке, в XML пишу
Код: xml
<field name="image"
type="media"
hide_none="1"
label=""
description="" />

ну и потом его вызываю в edit.php
А может есть в Joomla стандартные метод поля с неограниченным количеством изображений(т.е. грубо говоря под полем image кнопка добавить еще, появляется еще одно поле) или направьте, как это реализовать.

В принципе интересует не только image, но и текстовые поля
« Последнее редактирование: 25.09.2014, 17:37:03 от lesh1j »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

lesh1j

  • Захожу иногда
  • 257
  • 35 / 0
Re: Мульти поле в админке
« Ответ #2 : 22.10.2014, 02:39:51 »
Всё-таки я, наконец, собрался с силами и сделал этот, как мне кажется, весьма нужный тип поля(на скрине обведен), архив прикрепляю, проверял только Joomla 3.3, может пригодится кому, мне так постоянно нужен, когда делаю небольшие каталоги, раньше делал просто 5-10 полей типа "media", но это - шило=)
кто не знает - скидываем файлик из прикрепленного архива в administrator\components\com_вашКомпонент\models\fields\multiimage.php и всё, с этим полем можно работать так же как со стандартными, type="multiimage"
в БД заносятся value всех полей через запятую, соответственно если нужно вывести на фронт-энде, то можно это сделать примерно так:
Код: php
$images= explode(",", $this->item->images);

foreach ( $images as $image) {
echo '<img src="/' . $image . '" /><br>';
}
« Последнее редактирование: 22.10.2014, 14:44:15 от lesh1j »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #3 : 27.10.2014, 13:17:17 »
А как быть с модулем, не привязанном к компоненту, как применять файл?
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #5 : 27.10.2014, 13:26:18 »
Закинуть в administrator/components/com_modules/models/fields/ ? так там папки fields в models даже нет...
Может попробовать в /libraries/cms/form/field/, где все поля лежат?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #6 : 27.10.2014, 13:28:32 »
Кстати, косяк: запятая в качестве разделителя - не лучший вариант, ибо запятая может быть частью имени файла, за то никак не может быть прямой слэш |
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Мульти поле в админке
« Ответ #7 : 27.10.2014, 13:31:37 »
Закинуть в administrator/components/com_modules/models/fields/ ? так там папки fields в models даже нет...
у меня есть. но я не пробовала...лениво)
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #8 : 27.10.2014, 14:49:06 »
Еще один косяк: строка 425, поправить это:
Код: php
		$imageinput = $this->getMediaInput($value, 1, 0);
на это:
Код: php
		$imageinput = $this->getMediaInput($this->value, 1, 0);

*

fbr

  • Завсегдатай
  • 1683
  • 210 / 7
Re: Мульти поле в админке
« Ответ #9 : 27.10.2014, 15:40:25 »
А может есть в Joomla стандартные метод поля с неограниченным количеством изображений(т.е. грубо говоря под полем image кнопка добавить еще, появляется еще одно поле) или направьте, как это реализовать.

В принципе интересует не только image, но и текстовые поля
Есть такое поле type="Repeatable"
http://docs.joomla.org/Repeatable_form_field_type
*

lesh1j

  • Захожу иногда
  • 257
  • 35 / 0
Re: Мульти поле в админке
« Ответ #10 : 27.10.2014, 16:18:16 »
Закинуть в administrator/components/com_modules/models/fields/ ? так там папки fields в models даже нет...
Может попробовать в /libraries/cms/form/field/, где все поля лежат?
Ну да, можно в /libraries/cms/form/field, тогда по идее должно быть доступно во всех местах

Кстати, косяк: запятая в качестве разделителя - не лучший вариант, ибо запятая может быть частью имени файла, за то никак не может быть прямой слэш |

Это jquery each по умолчанию через запятую просто значения в переменную заносит, лень было разбираться, можно ли как-то заменить разделитель

Еще один косяк: строка 425, поправить это:
Код: php
		$imageinput = $this->getMediaInput($value, 1, 0);
на это:
Код: php
		$imageinput = $this->getMediaInput($this->value, 1, 0);

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

Есть такое поле type="Repeatable"
http://docs.joomla.org/Repeatable_form_field_type

Спасибо, вроде то, что нужно было мне, вот только с полем "media" у меня не получается выбрать изображение, открывается не модальное окно при клике на "выбрать", а на новую страницу переходит и, соответственно выбрать изображение не получается
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #11 : 27.10.2014, 16:29:27 »
Ну да, можно в /libraries/cms/form/field, тогда по идее должно быть доступно во всех местах
Уже проверил, в libraries положил - работает.

Не, это строка для динамического добавления нового поля, там value должно быть пустым
А без этого notice выскакивает, неприятно. Да и value по умолчанию пустое изначально, я у себя исправил - работает норм.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #12 : 27.10.2014, 16:31:17 »
Поправите косячки (разделитель, notice всякие там) и выкладывайте pull-request, пусть включают в поставку J )))
*

lesh1j

  • Захожу иногда
  • 257
  • 35 / 0
Re: Мульти поле в админке
« Ответ #13 : 27.10.2014, 16:39:05 »
А без этого notice выскакивает, неприятно. Да и value по умолчанию пустое изначально, я у себя исправил - работает норм.
Это оно по умолчанию пустое при создании нового item'а в компоненте, а при редактировании? У Вас тогда при редактировании существующего item'а новое поле будет добавляться c value равным значению всех полей, типа "images/1.jpg,images/2.jpg,images/3,jpg,images/4.jpg", тогда уж вот так
Код: php
$imageinput = $this->getMediaInput('', 1, 0);
« Последнее редактирование: 27.10.2014, 18:54:28 от lesh1j »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #14 : 27.10.2014, 19:32:16 »
Да, поправил у себя на ''
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Re: Мульти поле в админке
« Ответ #15 : 22.02.2015, 15:19:58 »
Большое спасибо! очень полезная вещь! И отличный пример как создавать свое кастомное поле для расширений.
*

NeuroZ

  • Захожу иногда
  • 121
  • 0 / 0
  • Разработка сайтов и расширений под ключ
Re: Мульти поле в админке
« Ответ #16 : 22.02.2015, 18:51:22 »
Кстати нашел 2 недочета в скрипте:
1. Если вызывать этот тип поля 2 (и более) раза в одной форме, то в виду отсутствия уникальности классов - происходят глюки при динамическом добавлении/удалении элементов.
2. Если динамически добавить поля, выбрать картинку, а потом удалить - input type=hidden не очищается и в БД сохраняется даже удаленный вариант (связано с динамическим добавлением кнопки "удалить" - на нее нужно повесить обработчик по событию "on")
Цитировать
$(document).on("click", ".deleteDynamicButton" ,function(event) {
« Последнее редактирование: 22.02.2015, 18:56:34 от NeuroZ »
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Мульти поле в админке
« Ответ #17 : 12.03.2015, 18:40:14 »
Добрый день. Подскажите как переделать этот тип поля на обычные input и textarea, тоесть чтобы не картинка загружалась и 2 текстовых поля ввода, при нажатии добавить появлялось еще 2 поля и т д. А при сохранении данные складывались объектом в поле БД а не как сейчас через "," Заранее спасибо за ответ.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Мульти поле в админке
« Ответ #19 : 12.03.2015, 19:22:33 »
Думаю, что Вам поможет MiniCCK
Это плагин к материалам, а я создаю свой компонент и мне такой тип поля нужен.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Мульти поле в админке
« Ответ #20 : 12.03.2015, 19:32:19 »
В своем компоненте создайте кастомный тип поля, подключите его через addfieldpath параметр в xml-ке и делайте там что хотите с php/js-ом.
« Последнее редактирование: 12.03.2015, 19:36:30 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Мульти поле в админке
« Ответ #21 : 12.03.2015, 19:56:31 »
А при сохранении данные складывались объектом в поле БД а не как сейчас через ","
Скорее всего, это будет многомерный массив, загнанный в json, а не объект, ибо объект в multipart-поле вы никак не сохраните
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Мульти поле в админке
« Ответ #22 : 13.03.2015, 11:37:30 »
Скорее всего, это будет многомерный массив, загнанный в json, а не объект, ибо объект в multipart-поле вы никак не сохраните
можно и так, главное чтобы я потом достал эти данные из базы
В своем компоненте создайте кастомный тип поля, подключите его через addfieldpath параметр в xml-ке и делайте там что хотите с php/js-ом.
это понятно и так, по этому же принципу и сделан multiimage который здесь обсуждается.
Есть такое поле type="Repeatable"
http://docs.joomla.org/Repeatable_form_field_type
Может как раз это то что мне нужно, но я не смог найти в инете как его прикрутить, и отобразить потом в представлении.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Затроились все записи в админке Joomla 3.10

Автор rimm

Ответов: 7
Просмотров: 1069
Последний ответ 17.04.2023, 12:41:58
от sivers
Блок особенностей, как добавить в поле с информацией кнопку или ссылку Подробнее

Автор Alex from SPb

Ответов: 5
Просмотров: 1017
Последний ответ 28.11.2022, 19:54:42
от marksetter
Как вывести в категории VirtueMart кастомное поле с редактором?

Автор dc_web

Ответов: 4
Просмотров: 883
Последний ответ 05.10.2022, 11:07:00
от sivers
Почему в админке Joomla в Менеджере категорий не отображаются счетчики материало

Автор mak200

Ответов: 0
Просмотров: 787
Последний ответ 28.07.2022, 16:42:17
от mak200
Пропал пункт меню Компоненты в админке

Автор muzzy76

Ответов: 5
Просмотров: 951
Последний ответ 12.05.2022, 08:36:20
от marksetter