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

Hol1killer

  • Захожу иногда
  • 215
  • 3 / 0
Вопрос по JFormField
« : 26.01.2015, 10:35:28 »
Всем доброго дня.

Возник вопрос если в модуле используется 2 созданных ( кастомных ) типа полей XML возможно ли передать во второе поле массив $this->value из первого поля ? В первом поле создается много текстовых полей и я бы хотел их передать во второе поле.

Надеюсь на помощь, спасибо !
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Вопрос по JFormField
« Ответ #1 : 26.01.2015, 10:43:21 »
Наверное можно, сделав дополнительный метод для возврата $this->value. Правда не уверен, что сработает, но попробуйте.
*

Hol1killer

  • Захожу иногда
  • 215
  • 3 / 0
Re: Вопрос по JFormField
« Ответ #2 : 26.01.2015, 11:08:06 »
пробовал не работает.

Примерно так:

Код
поле 1:
<?php

class JFormField1 extends JFormField {

protected $type = 'Field1';

protected function getInput() {
$this->value = "Поле 1";
}

protected function returnValue() {
return $this->value;
}

?>

поле 2:

<?php
class JFormField2 extends JFormField1 {
protected $type = 'Field2';

protected function getInput() {
$value = JFormField1::returnValue();
var_dump($value) // вижу пустоту....
}
}
?>

Возможно ошибся, не знаю нужно ли class JFormField2 extends JFormField1 тут наследование ??
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вопрос по JFormField
« Ответ #3 : 26.01.2015, 11:16:12 »
Чтобы передать данные на сервер, нужна форма (POST) или переход на страницу (GET) - в общем, REQUEST. Чтобы не перезагружать страницу, нужен AJAX, а если просто подставлять данные - JS.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Вопрос по JFormField
« Ответ #4 : 26.01.2015, 11:19:08 »
Насчет наследования конечно сомнительно... А объект класса JFormField1 уже создан на момент использования JFormField2?

И зачем темы дублировать... Каша теперь. 

Hol1killer еще раз попишите задачу
*

Hol1killer

  • Захожу иногда
  • 215
  • 3 / 0
Re: Вопрос по JFormField
« Ответ #5 : 26.01.2015, 12:58:57 »
За дубль извините, мой косяк. Я просто немного не понял тема улетела в компонент JForm хотя она не имеет отношения к этому... http://joomlaforum.ru/index.php/topic,307433.0.html - вот эту тему можно закрывать ( или удалить ). Я просто не нашел ветку про разработку расширения...


Подробнее опишу.

Я создаю небольшой модуль, типо конструктора форм. В нем есть 2 таба в файле манифеста в каждом табе по своему кастомному типу поля. Все идет для бекенда. В первом поле уже все работает, там есть кнопка на ней висит события создание 2-ух обычных инпутов и одного select

- имя будущего поля (text)
- label будущего поля (text)
- тип будущего поля. (select)

Все это пишется в массив $this->value. Это первое поле.

Во втором табе создается второе кастомное поле. В него после сохранения модуля я хочу вывести приблизительную версию с разметкой как это будет выглядеть и поэтому мне нужен доступ к массиву $this->value первого созданного поля. Но как это сделать я не понимаю. Вообще я думал задача тривиальная и должны быть примеры но уже везде смотрел ничего не пойму... Неужели нельзя передавать полученные параметры между собственными типами полей ?

Насчет наследования конечно сомнительно... А объект класса JFormField1 уже создан на момент использования JFormField2?

Я так понимаю что он создан, в файле манифеста модуля JFormField1 определен выше чем JFormField2 и в JFormField2 печается var_dump($this->value) она возвращает пустую строку string(""), значит класс JFormField2 наследует параметры JFormField1 но почему не работает метод $this->returnValue() я не понимаю....

Еще раз выражаю свою благодарность за помощь !
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Вопрос по JFormField
« Ответ #6 : 26.01.2015, 13:35:39 »
Лучше не городите огород, а воспользуйтесь для записи значения в первом поле
Код
JFactory::getApplication()->setUserState('modulename.fieldname', $this->value);
во втором поле
Код
$fieldValue1 = JFactory::getApplication()->getUserState('modulename.fieldname', [default_value]);
Единственное условие - первое поле должно отработать первым, иначе там будет пусто или предыдущее значение.
 
*

Hol1killer

  • Захожу иногда
  • 215
  • 3 / 0
Re: Вопрос по JFormField
« Ответ #7 : 26.01.2015, 13:59:13 »
Лучше не городите огород, а воспользуйтесь для записи значения в первом поле
Код
JFactory::getApplication()->setUserState('modulename.fieldname', $this->value);
во втором поле
Код
$fieldValue1 = JFactory::getApplication()->getUserState('modulename.fieldname', [default_value]);
Единственное условие - первое поле должно отработать первым, иначе там будет пусто или предыдущее значение.


Спасибо за ответ.

JFactory::getApplication()->setUserState('modulename.fieldname', $this->value);

Так у меня же inputы в первом поле создаются на JQuery как я смогу записать с помощью, этой инструкции ? Я просто не совсем щас понимаю.

У меня в файле манифеста модуля одно поле в первом табе

Код
<fieldset name="basic" addfieldpath="путь">

<field name="field1" type="cform" label="" description="" />

</fieldset>

и похожая разметка и во втором файле только название поля меняется и все.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Вопрос по JFormField
« Ответ #8 : 26.01.2015, 14:04:45 »
Если у вас javascript, так и действуйте на уровне javascript, это еще проще.
*

Hol1killer

  • Захожу иногда
  • 215
  • 3 / 0
Re: Вопрос по JFormField
« Ответ #9 : 26.01.2015, 14:19:09 »
А как я смогу получить во второе поле с помощью Javascript массив созданных inputов из первого поля ?

Я вот честно не знаю как это сделать...

У меня цель получить во второе поле массив созданных inputов из первого поля.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Вопрос по JFormField
« Ответ #10 : 26.01.2015, 14:28:11 »
Не проблема http://habrahabr.ru/post/51717/
Если не единичный элемент, то та-же выборка, потом .each() цикл и каждый элемент отдельно в этом цикле разбираем.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вопрос по JFormField
« Ответ #11 : 26.01.2015, 14:39:41 »
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос на засыпку

Автор Aleks.Denezh

Ответов: 5
Просмотров: 683
Последний ответ 10.03.2019, 23:15:22
от Aleks.Denezh
Вопрос к создателям модулей и компонентов. Стилевое оформление модулей.

Автор master-smeta

Ответов: 5
Просмотров: 1027
Последний ответ 12.02.2015, 17:19:45
от master-smeta
Вопрос по PROFILER и JFactory

Автор Haybul

Ответов: 2
Просмотров: 1599
Последний ответ 02.08.2014, 04:33:57
от Haybul
Вопрос об использовании AJAX в модуле

Автор maxakagaret

Ответов: 13
Просмотров: 1597
Последний ответ 26.02.2014, 18:16:17
от maxakagaret
Вопрос к программистам. id средствами Sourcerer

Автор megavovan

Ответов: 6
Просмотров: 1381
Последний ответ 17.10.2013, 18:08:33
от Aleks.Denezh