Jump to content


Photo
- - - - -

Добавление атрибута в <input>

форма заказа форма формы

Best Answer myjob495 , 31 August 2014 - 17:08

Получилось что хотел. Спасибо огромное в очередной раз Денису!!!

 

 

в файле \media\zoo\applications\jbuniversal\templates\catalog\renderer\item\папка типа\order.php

 

оставил одну позицию "hdform":

    <?php echo $this->renderPosition('hdform', array('style' => 'hdorder.block'));?>

предварительно, создав свой стиль block.php для нее в:

 

\media\zoo\applications\jbuniversal\templates\catalog\renderer\element\hdorder\

 

от обычного отличается только выводом, убрал echo $label

  <?php
    echo  $element->renderSubmission($params) . $error ;
    ?>

скопировал стандартный эелемент text из папки ZOO в папку JBZOO:

 

папку "text"

 

из

\media\zoo\elements

 

в

\media\zoo\applications\jbuniversal\elements

 

в файле \media\zoo\applications\jbuniversal\elements\text\text.php внес изменения в protected function _edit()

  	protected function _edit() {
          $label =  $this->config->get('name') . ' ' . $this->config->get('description') ;	
          return $this->app->html->_('control.text', $this->getControlName('value'), $this->get('value', $this->config->get('default')), 'size="60" maxlength="255" placeholder="'. $label .'"');
    }

В панеле управления в настройках полей типов в "описании" каждого поля необходимого для заполнения добавил (обязательно).

 

Примерно тоже самое проделал для всех остальных полей формы.

 

Вроде ничего не забыл написать....

 

Еще раз спасибо Денису!

Go to the full post


  • This topic is locked This topic is locked
14 replies to this topic

#11 myjob495

myjob495
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 2.8
  • posts: 215
  • topics: 35

Posted 29 August 2014 - 07:55

а почему

media\zoo\applications\jbuniversal\templates\catalog\renderer\element\submission\block.php

 

я для формы заказа использую

 

media\zoo\applications\jbuniversal\templates\catalog\renderer\element\order, а точней свой каталог

 

media\zoo\applications\jbuniversal\templates\catalog\renderer\element\hdorder

// create class attribute
$classes = array_filter(array(
    'form-field-row',
    'element',
    'element-' . $element->getElementType(),
    $params->get('first') ? ' first' : '',
    $params->get('last') ? ' last' : '',
    $params->get('required') ? ' required' : '',
    $isError ? ' error' : '',
));

$element->loadAssets();

$label = $params->get('altlabel') ? $params->get('altlabel') : $element->config->get('name');
$label = $params->get('required') ? ($label . ' (обязательно)') : $label;

?>
  <?php
    echo  $element->renderSubmission($params) . $error ;?>

или я что-то не понимаю????

 

если я прописываю в text.php даже пустое условие, то получаю ошибку, форма вообще не прорисовывается :

protected function _edit() {
$myattr =  $this->config->get('description');
if ($params->get('required')) {

}
return $this->app->html->_('control.text', $this->getControlName('value'), $this->get('value', $this->config->get('default')), 'size="60" maxlength="255" placeholder="'.$myattr.'"');
    }

  • 1

#12 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 29 August 2014 - 09:08

а почему media\zoo\applications\jbuniversal\templates\catalog\renderer\element\submission\block.php

По умолчанию используется он если, если не указать другого
http://jbzoo.ru/docs/position-styles
http://jbzoo.ru/docs...position-styles
 

если я прописываю в text.php даже пустое условие, то получаю ошибку, форма вообще не прорисовывается :

наверно потому что в _edit нет доступа к параметру required
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#13 myjob495

myjob495
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 2.8
  • posts: 215
  • topics: 35

Posted 29 August 2014 - 11:52

Ок... сделал так......

    	protected function _myattr($params = array())
    {
          $params = $this->app->data->create($params);	

          $label = $params->get('altlabel') ? $params->get('altlabel') : $this->config->get('name');	  
          $label = $params->get('required') ? ($label . ' (обязательно)') : $label;       
	
          return $label;
    }	
	
    	protected function _edit() {
          return $this->app->html->_('control.text', $this->getControlName('value'), $this->get('value', $this->config->get('default')), 'size="60" maxlength="255" placeholder="'. $this->_myattr() .'"');
    }

В атрибуте выводится значение $label без проблем, но судя по всему параметр required ни при каких условиях не возвращает значение.... проверка на обязательно заполняемое поле не проходит....

 

$label всегда возращается без "(обязательно)". :(

 

вариант:

    if ($params->get('required')) {
    $label .= '(обязательное)';
    }

тоже не дает результат....


  • 0

#14 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 31 August 2014 - 06:13

Еще раз вам говорю

В _edit нет доступа к параметрам. Такое уж API у элементов Zoo.
Вы написали красивую оболочку но тем не менее в _myattr нечего не передается и $params внутри функции пуста.

Может вам проще в описание элемента добавить "(обязательное)" ?
Затем $this->config->get('description') вывести в placeholder
Или по аналогии с description добавить в xml элемента свой параметр и выводить его
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#15 myjob495

myjob495
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 2.8
  • posts: 215
  • topics: 35

Posted 31 August 2014 - 17:08   Best Answer

Получилось что хотел. Спасибо огромное в очередной раз Денису!!!

 

send_form.jpg

 

в файле \media\zoo\applications\jbuniversal\templates\catalog\renderer\item\папка типа\order.php

 

оставил одну позицию "hdform":

    <?php echo $this->renderPosition('hdform', array('style' => 'hdorder.block'));?>

предварительно, создав свой стиль block.php для нее в:

 

\media\zoo\applications\jbuniversal\templates\catalog\renderer\element\hdorder\

 

от обычного отличается только выводом, убрал echo $label

  <?php
    echo  $element->renderSubmission($params) . $error ;
    ?>

скопировал стандартный эелемент text из папки ZOO в папку JBZOO:

 

папку "text"

 

из

\media\zoo\elements

 

в

\media\zoo\applications\jbuniversal\elements

 

в файле \media\zoo\applications\jbuniversal\elements\text\text.php внес изменения в protected function _edit()

  	protected function _edit() {
          $label =  $this->config->get('name') . ' ' . $this->config->get('description') ;	
          return $this->app->html->_('control.text', $this->getControlName('value'), $this->get('value', $this->config->get('default')), 'size="60" maxlength="255" placeholder="'. $label .'"');
    }

В панеле управления в настройках полей типов в "описании" каждого поля необходимого для заполнения добавил (обязательно).

 

Примерно тоже самое проделал для всех остальных полей формы.

 

Вроде ничего не забыл написать....

 

Еще раз спасибо Денису!


  • 0





Also tagged with one or more of these keywords: форма заказа, форма, формы

Click to return to top of page in style!