Форум русской поддержки Joomla!® CMS
07.12.2016, 22:25:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как принимать значения кастомных полей в

 (Прочитано 321 раз)
0 Пользователей и 1 Гость смотрят эту тему.
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« : 02.04.2016, 16:31:41 »

Есть в админке поля своего типа, для вывода и редактирования определенного поля в таблице БД.

Т.е. создаю наследник JFormFieldText, получаю значение и создаю поле.
Показать текстовый блок

Прописываю это поле в XML
Показать текстовый блок
Получается поле с именем form[params][price1].  Какой метод нужно создать в классе поля или в хэлпере чтобы получить значение этого поля при нажатии кнопки "Сохранить" в админке модуля?  Как я понял получить можно через $params->get('price1') только в каком методе?
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #1 : 02.04.2016, 17:50:23 »

А где имя поля? Как система по вашему поймет что поле послало какие то значения что бы их записать?

return '<input type="text" value="' . $value . '" name="'.$this->name.'">';

И тогда в сможете получить в модуле в точке входа в модуль и в подключаемом шаблоне параметры через echo $params->get('price1');
Записан
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #2 : 02.04.2016, 19:42:40 »

Забыл написать, что у меня name было прописано вручную, т.е.
return '<input type="text" value="' . $value . '" name="jform[params][price1]" >';

« Последнее редактирование: 02.04.2016, 19:45:47 от eugenex » Записан
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #3 : 02.04.2016, 20:09:01 »

В общем, написал в точке входа в модуль mod_mymodule.php код сохраняющий новое значения поля:

Показать текстовый блок

Поле обновляется но только если я перезагружу страницу, где выводится модуль. То есть, если я просто изменил значение в админке и сохранился, то обновления поля не происходит и в поле я вижу старое значение. Если я сохранился, перезагрузил страницу с модулем, потом перезагрузил админку - тогда я вижу поле с обновленным значением. Т.е. точка входа в модуль не совсем подходящее место для обработки параметров, в моём случае. 
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #4 : 02.04.2016, 22:01:40 »

Вы задали некорректный вопрос, из-за чего вам не могли дать нужный ответ - надо было просто описать ситуацию.
Вам нужно не получить значение поля, а записать его новое значение в свою таблицу plots. Для этого напишите плагин на событие onExtensionAfterSave.
Я только не понял, зачем вы навязали своему полю значение из таблицы plots, когда по-умолчанию оно записывается в таблицу modules и берется оттуда же?
« Последнее редактирование: 02.04.2016, 22:23:07 от robert » Записан
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #5 : 02.04.2016, 23:41:36 »

Я только не понял, зачем вы навязали своему полю значение из таблицы plots, когда по-умолчанию оно записывается в таблицу modules и берется оттуда же?
Кстати да, нашел в таблице modules в поле params такой ассоциативный массив:
Цитировать
{"price1":"45","price2":"40000" ...

Его нужно доставать запросом или существует штатное средство доступа к параметрам модуля?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7773



« Ответ #6 : 02.04.2016, 23:53:19 »

откуда именно вы хотите достучаться к параметрам модуля?
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #7 : 03.04.2016, 00:43:02 »

Очень часто почему-то придумали себе логику действия, затем поверили, что она единственная верная и в ее контексте начали задавать вопросы. Не зацикливайтесь на своем алгоритме, просто расскажите, что вы хотите делать.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7773



« Ответ #8 : 03.04.2016, 01:15:30 »

да, действительно очень часто. в том числе и от заказчиков. иногда ловишь себя на мысли, что тебе уже даже рассказали как сделать, но при этом до что именно сделать так и не дошли Azn приходится отматывать на начало Azn

ТС, скорее всего robert абсолютно прав, и вы изначально выбрали не тот путь. расскажите, что вы хотите сделать.
Записан
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #9 : 03.04.2016, 14:20:02 »

откуда именно вы хотите достучаться к параметрам модуля?

Очень часто почему-то придумали себе логику действия, затем поверили, что она единственная верная и в ее контексте начали задавать вопросы. Не зацикливайтесь на своем алгоритме, просто расскажите, что вы хотите делать.


Есть участки, у них есть цена, площадь, номер и т.д. Должна быть возможность из админки менять цену. То есть, если я в админке модуля ввел новую цену и нажал "Сохранить" то я должен увидеть свою новую цену.   
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7773



« Ответ #10 : 03.04.2016, 14:28:52 »

что такое "участки" с точки зрения программной реализации? это какой то компонент, в котором создаются новые элементы?
как они выводятся на фронте?
Записан
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #11 : 03.04.2016, 16:11:08 »

На фронтэнде участок это <area> в интерактивной карте. Координаты <area> заданы статически, в самом теге. При наведении мыши показывается всплывающее окошко с информацией об участке(цена, площадь и т.д.). С точки зрения программной реализации это просто записи из таблицы БД.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #12 : 03.04.2016, 16:22:15 »

Если цена - статическая текстовая величина, то не нужно придумывать свой тип поля, достаточно добавить в XML новое поле type="text" name="price1", а на фронте получить его в params.
Записан
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #13 : 03.04.2016, 16:36:25 »

Если цена - статическая текстовая величина, то не нужно придумывать свой тип поля, достаточно добавить в XML новое поле type="text" name="price1", а на фронте получить его в params.

Цена как раз не статическая величина. Она должна редактироваться.

А в общем, да - идея понятна. Можно цену менять и без своего типа поля. Только надо как-то связать эту цену по id  с остальными атрибутами участка.   
Хотя, их тоже можно хранить статически. Тогда, наверное да - свой тип поля не нужен.
« Последнее редактирование: 03.04.2016, 16:43:45 от eugenex » Записан
eugenex
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #14 : 03.04.2016, 23:55:31 »

Только надо как-то связать эту цену по id  с остальными атрибутами участка.   
Хотя, их тоже можно хранить статически.
Туплю неподеццки)) В моём случае вообще всё равно - статически хранить остальные атрибуты или в таблице.
В общем, вопрос решён, спасибо.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet