Получение значения заполненных полей обратной связи — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Актуально для версии 2.9''' Задача: Получить значение заполненных полей в форме обратной …»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 2: Строка 2:
  
 
Задача:  Получить значение заполненных полей в форме обратной связи.  
 
Задача:  Получить значение заполненных полей в форме обратной связи.  
Может возникнуть задача, когда необходимо вытащить из формы обратной связи значение тех полей, которые пользователь только что заполнил и отправил. Одним из способов реализации этой задачи является выборка с помощью selector, пример которой приведен ниже:
+
Может возникнуть задача, когда необходимо вытащить из формы обратной связи значение тех полей, которые пользователь только что заполнил и отправил. Одним из способов реализации этой задачи является выборка с помощью selector, пример которой приведен ниже (расположите данный код в classes/modules/custom.php):
  
 
<source lang="php">
 
<source lang="php">
 +
public function lastForm () {
 +
 
$pages = new selector('objects');
 
$pages = new selector('objects');
 
$pages->types('object-type')->id(126);  
 
$pages->types('object-type')->id(126);  
Строка 21: Строка 23:
 
$page = $pages->result;
 
$page = $pages->result;
  
echo " email: {$page[0]->getValue('pochta')}, name: {$page[0]->getValue('imya')}";
+
$item_arr[0]['attribute:id']=401;
 +
$item_arr[0]['node:value']= $page[0]->getValue('pochta');
 +
$item_arr[1]['attribute:id']=400;
 +
$item_arr[1]['node:value']= $page[0]->getValue('imya');
 +
 +
$block_arr['items']['nodes:value'] = $item_arr;
 +
return $block_arr;
 +
}
 
</source>   
 
</source>   
 
вывели значение полей pochta и imya, которые заполняются в выбранной форме обратной связи. Вместо этих полей Вам необходимо указать поля, которые имеются в Вашей форме обратной связи.
 
вывели значение полей pochta и imya, которые заполняются в выбранной форме обратной связи. Вместо этих полей Вам необходимо указать поля, которые имеются в Вашей форме обратной связи.
  
Таким образом, мы выбрали последнее сообщение из обратной связи - т.е. то, что пользователь только что отправил, и теперь мы можем вывести информацию, которую пользователь ввел в сообщение.
+
Таким образом, мы выбрали последнее сообщение из обратной связи - т.е. то, что пользователь только что отправил, и теперь мы можем вывести информацию, которую пользователь ввел в сообщение. Вывести данную информацию в шаблон можно, например, следующим образом:
 +
<source lang="xml">
 +
<xsl:value-of  select="document('udata://custom/lastForm')/udata/items/value[@id='400']" />
 +
</source>
 +
Данный код выведет значение поля imya в Вашем шаблоне.
 +
[[Категория:API]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Написание кастомных макросов]][[Категория:Модуль Обратная связь]]

Текущая версия на 07:41, 28 июня 2013

Актуально для версии 2.9

Задача: Получить значение заполненных полей в форме обратной связи. Может возникнуть задача, когда необходимо вытащить из формы обратной связи значение тех полей, которые пользователь только что заполнил и отправил. Одним из способов реализации этой задачи является выборка с помощью selector, пример которой приведен ниже (расположите данный код в classes/modules/custom.php):

public function lastForm () {

$pages = new selector('objects');
$pages->types('object-type')->id(126);

126 - id формы обратной связи, через которую пользователь отправляет письма

$pages->order('sending_time')->desc();

отсортировали по убыванию

$pages->limit(0,1);

остался 1 результат

$page = $pages->result;

$item_arr[0]['attribute:id']=401;
$item_arr[0]['node:value']= $page[0]->getValue('pochta');
$item_arr[1]['attribute:id']=400;
$item_arr[1]['node:value']= $page[0]->getValue('imya');
		
$block_arr['items']['nodes:value'] = $item_arr;
return $block_arr;
}

вывели значение полей pochta и imya, которые заполняются в выбранной форме обратной связи. Вместо этих полей Вам необходимо указать поля, которые имеются в Вашей форме обратной связи.

Таким образом, мы выбрали последнее сообщение из обратной связи - т.е. то, что пользователь только что отправил, и теперь мы можем вывести информацию, которую пользователь ввел в сообщение. Вывести данную информацию в шаблон можно, например, следующим образом:

<xsl:value-of  select="document('udata://custom/lastForm')/udata/items/value[@id='400']" />

Данный код выведет значение поля imya в Вашем шаблоне.