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

Arpeccop

  • Новичок
  • 8
  • 0 / 0
Всем привет, пишу свой первый модуль, поэтому прошу сильно не ругать.
вообщем застопорился на следующей задачке.
надо в админку модуля добавить кнопки "Удалить" и  "Добавить" (см. рис. ниже).
Если кто знает как такое сделать, пожалуйста подскажите.

*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
я так понимаю это эти кнопки будут делать...

Удалить - удалять данные.
Добавить - добавлять данные.

А куда они будут сохраняться...
...
*

Arpeccop

  • Новичок
  • 8
  • 0 / 0
А куда они будут сохраняться...
формируются они из .xml а куда изменения будут записываться я честно говоря не знаю, возможно в этот .xml и будут.
*

robert

  • Живу я здесь
  • 4950
  • 456 / 20
Ну, если это параметры, то первое, что пришло в голову: скрипт, который переписывает .xml.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Arpeccop

  • Новичок
  • 8
  • 0 / 0
Ну, если это параметры, то первое, что пришло в голову: скрипт, который переписывает .xml.
может есть где нить примеры таких скриптов?
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Ну, если это параметры, то первое, что пришло в голову: скрипт, который переписывает .xml.

Нет! ты не прав. Все настройки модуля сохраняются в БД....

Просто очисти требуемые поля и сохрани. А в файле default.php выводи проверками - если все три поля заполнены, то выводить данные о видео, если ничего не указано то ничего не выводить и будет пустое место...
...
*

Arpeccop

  • Новичок
  • 8
  • 0 / 0
Все настройки модуля сохраняются в БД....
Эм тут такое дело, параметры модуля прописываются вручную в файле .xml модуля.
например:
Код
<field name="fwd_label_1" type="input" filter="raw" default="" label="Название №1" description="Наименование видеоролика" cols="100" rows="1" />
<field name="fwd_html_1" type="textarea" filter="raw" default="" label="Видео №1" description="Вставьте в это поле видео из сайта Vk.com" cols="100" rows="3" />
<field name="fwd_img_1" type="media" directory="video" label="Картинка видеоролика №1"/>
в базу записываются только значения - указанные в параметрах. и потом эти значения можно вывести на сайт. А вот как добавить или удалить сами параметры я еще не разобрался.
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
в базу записываются только значения - указанные в параметрах.

не только значение, но и имя параметра...

А вот как добавить или удалить сами параметры я еще не разобрался.

Их нельзя добавлять... Все что находится на странице настроек модуля все записывается в БД...
...
*

robert

  • Живу я здесь
  • 4950
  • 456 / 20
Нет! ты не прав. Все настройки модуля сохраняются в БД....
Это вы не правы.
Их нельзя добавлять... Все что находится на странице настроек модуля все записывается в БД...
Ну и что? Arpeccop, вручную добавьте какое-нибудь поле в свой .xml. Войдите в админку модуля, оно там появится, задайте ему какое-нибудь значение, сохраните. Теперь откройте таблицу #__modules, найдите свой модуль и в столбце params вы увидите новое поле со своим значением.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlterEgo

  • Захожу иногда
  • 170
  • 71 / 5
Я подобный функционал реализовывал следующим образом.
1. Создавал собственный класс поля JFormField. Подробнее здесь.
2. В В xml-файле модуля прописывал это поле и путь до папки с ним.
3. Каждый класс поля, расширяющий класс JFormField, наследует его методы, в часности getInput. Этот метод отвечает за вывод html-разметки. Через него и выводим верстку основных параметров модуля (Название №1, Видео №1, Картинка №1). К этому добавляем код кнопок и самое главное - js-код.
4. Также туда нужно добавить скрытое поле, в котором будут храниться все данные из блоков основных параметров.
4. Далее пишем обработчики событий на js. При нажатии на "Добавить" будет клонироваться блок параметров и добавляться в разметку. При нажатии "Удалить" соответственно удаляться.
5. Следом за этим пишем обработчик для кнопок "Сохранить" в админке. При нажатии должны парситься все данные из блоков параметров. Затем переводим эти данные в json-формат и сохраняем в скрытое поле. Далее Joomla сама сохранит в БД эти данные.
6. Внутри нашего класса поля эти сохранённые данные доступны через свойство $this->value. Пропускаем их через json_decode и через цикл формируем заново вёрстку.
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
вручную добавьте какое-нибудь поле в свой .xml. Войдите в админку модуля, оно там появится, задайте ему какое-нибудь значение, сохраните. Теперь откройте таблицу #__modules, найдите свой модуль и в столбце params вы увидите новое поле со своим значением.

А это не тоже самое... все параметры который находится в настройках модуля записываются в БД... только они находятся в одном столбце...

...
*

robert

  • Живу я здесь
  • 4950
  • 456 / 20
А это не тоже самое...
Конечно нет. Это просто наглядный пример того, что можно добавить параметры модуля, меняя его .xml.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Кастомное поле и js код, какие тут еще варианты? Для компонента писал подобное (там основные данные и модель тоже c XML формой работали):

интернет-блог: http://websiteprog.ru
*

robert

  • Живу я здесь
  • 4950
  • 456 / 20
AlterEgo, решение интересное. Беспокоит такой момент: при повторном входе в админку модуля JForm загружает настройки по .xml, а в него (.xml) не было внесено последнее изменение и, соответственно, (не) будут отображены поля, которые я удалил (добавил). Все еще хорошо, пока я не нажму "Сохранить" - тогда последнее изменение сотрется из БД, верно?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlterEgo

  • Захожу иногда
  • 170
  • 71 / 5
Суть реализации в том, что xml-файл настроек модуля не изменяется при сохранении / изменении. В нём прописываем только подключение custom field. Все значения параметров, которые будут создаваться / удаляться, хранятся в БД. При повторном входе или обновлении страницы настроек модуля будет выводится последняя сохранённая конфигурация. Это относится и к custom field, и к остальным настройкам.

Данного типа решения используется в большинстве модулей, скажем в слайдерах, где нужно задать определенное количество слайдов, для каждого из которых требуются настройки ссылки, размеров изображения и.т.д. К примеру, такая реализация у расширений от Gavick Pro.

Кроме этого, можно использовать не custom field, а системный плагин, через который можно подгрузить доп. функционал на страницу настроек. Это решение используется чаще в шаблонах.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить много меток сразу?

Автор Sergeyy

Ответов: 1
Просмотров: 321
Последний ответ 10.12.2018, 16:49:03
от Sergeyy
[SP Page Builder] Модуль ajax contact в модальном окне

Автор TW-WEB

Ответов: 2
Просмотров: 1460
Последний ответ 24.02.2018, 17:34:50
от TW-WEB
params->get для компонента, как получить свои собственные параметры для компонента

Автор klubnichkaaa

Ответов: 13
Просмотров: 11004
Последний ответ 01.06.2017, 20:20:28
от Septdir
Модуль авторизации OpenId

Автор greytm

Ответов: 7
Просмотров: 2468
Последний ответ 04.11.2016, 00:04:31
от KypuHa9_Hora
Как вставить модуль в контент компонента

Автор sava36

Ответов: 21
Просмотров: 17158
Последний ответ 15.06.2016, 09:55:51
от Ilja93