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

lesh1j

  • Давно я тут
  • 221
  • 30
Мульти поле в админке
« : 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 »
*

lesh1j

  • Давно я тут
  • 221
  • 30
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

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

AlekVolsk

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

AlekVolsk

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

ELLE

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

AlekVolsk

  • Профи
  • 6312
  • 336
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

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

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

lesh1j

  • Давно я тут
  • 221
  • 30
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

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

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

AlekVolsk

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

lesh1j

  • Давно я тут
  • 221
  • 30
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

  • Профи
  • 6312
  • 336
Re: Мульти поле в админке
« Ответ #14 : 27.10.2014, 19:32:16 »
Да, поправил у себя на ''
*

NeuroZ

  • Осваиваюсь на форуме
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
Re: Мульти поле в админке
« Ответ #15 : 22.02.2015, 15:19:58 »
Большое спасибо! очень полезная вещь! И отличный пример как создавать свое кастомное поле для расширений.
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть
*

NeuroZ

  • Осваиваюсь на форуме
  • 129
  • 0
  • Разработка сайтов и J! расширений под ключ
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 »
<h1 id="h2" class="h3" data-h4="h5"> или как заставить мир тебя ненавидеть
*

vickof

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

vickof

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

zomby6888

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

AlekVolsk

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

vickof

  • Осваиваюсь на форуме
  • 52
  • 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
Может как раз это то что мне нужно, но я не смог найти в инете как его прикрутить, и отобразить потом в представлении.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пропала позиция на сайте, в админке она есть

Автор DIeKon

Ответов: 1
Просмотров: 39
Последний ответ 30.08.2017, 09:27:52
от DIeKon
Дополнительное поле - цвет

Автор Аня

Ответов: 1
Просмотров: 115
Последний ответ 26.07.2017, 00:07:31
от Septdir
Не работает поиск в админке на русском

Автор WinssLioN29

Ответов: 5
Просмотров: 364
Последний ответ 17.07.2017, 17:34:30
от vipiusss
Ошибка загрузки сайта при установке русского языка в админке

Автор vipex

Ответов: 5
Просмотров: 341
Последний ответ 16.07.2017, 23:31:00
от vipex
Выпадает jquery в админке

Автор Mitriy

Ответов: 12
Просмотров: 182
Последний ответ 29.06.2017, 13:34:25
от SeBun