Настройка верстки для каждого поля при использовании webforms add

Материал из Umicms
Перейти к:навигация, поиск

Макрос %webforms add()%, для отображения каждого поля формы обратной связи, использует шаблон tpls/data/reflection/webforms.tpl. Несколько строковых полей будут отображены с одинаковым форматированием, но не всегда это приемлемо. Бывают ситуации, когда нужно указать определенную длину для каждого из полей. В данном случае поможет простой кастомный макрос. В файле classes/modules/custom.php после слов //TODO: Write your own macroses here пропишем следующий макрос:

  public function width($name){
    $width = 300;
    switch($name){
      case 'trete_strokovoe_pole': 
        $width = 250;
        break;
      case 'email': 
        $width = 180;
        break;
      case 'vtoroe_strokovoe_pole': 
        $width = 200;
        break;
    }               
    return $width;  
  }


а в нужных вам блоках шаблона tpls/data/reflection/webforms.tpl, вместо атрибута

 style="width:300px;"

пропишем:

style="width:%custom width(%name%)%px;"

в кастомном макросе, в case'ах прописаны идентификаторы полей, в зависимости от них макрос custom width() будет отдавать определенное значение. Аналогичным образом можно написать макрос который будет выдавать значения по умолчанию для атрибута 'value'.