2011-03-13 2 views
0

어쩌면 누군가 알고 있습니다. Zend_Form_Element_Radio를 랩핑하는 방법. 라디오 입력 전체 스택의 라벨 (입력 라벨 포함). 예를 들어 위 Wraping Labels in Zend_Form_Element_Radio


public $radioDecorators = array(
    'ViewHelper', 
    array('Description',array('tag'=>'div','class'=>'','placement' => 'prepend')), 
    array('Errors',array('class'=>'error_message_show','placement' => 'prepend')), 
    array(array('data' => 'HtmlTag'), array('tag' => 'div', 'class' => 'element')), 
    array('label', array('class'=>'label_text','placement' => 'prepend')), 
    array(array('rows' => 'HtmlTag'), array('tag' => 'div', 'class' => 'radio')), 
); 


    $offer_type = new Zend_Form_Element_Radio('offer_type', array(
       'label' => 'Label I'd like to wrap with inputs', //Label to wrap 
       'required' => true, 
       'description' => '', 
       'decorators' => $this->radioDecorators, 
       'multioptions' => array (
        'standard' => 'standard', 
        'premium' => 'premium', 
       ), 
      )); 
    $this->addElement($offer_type); 

은 단지 몇 가지 입력 라벨의 랩으로의 제를 해결 didn를.

+1

랩핑이란 무엇을 의미합니까? 지금 얻을 수있는 HTML의 예를 제공 할 수 있습니까? 그리고 달성하고자하는 것은 무엇입니까? – Marcin

답변

2

나는 당신이 무엇을하는지 알고 있다고 생각합니다. 만약 그렇다면, 당신은 운이 좋았습니다. 전일에 이것을해야만했습니다.

표준 ZF 다중 옵션 요소는 separator 속성 (기본값은 라디오의 경우 <br />이고 선택하는 경우에는 줄임표)을 사용하여 각 "옵션"을 구분합니다. <option> 요소에는 괜찮 으면서도 라디오 버튼 모음에는 꽤 까다로운 요소입니다.

용액,

  • 가 HtmlTag
  • 를 닫고 다시 열어야하는 세퍼레이터 설정 내용을 감싸는

    요소에 HtmlTag 데코 (들)를 추가
    • 이고 정렬되지 않은 목록에 입력 컬렉션을 래핑하는 솔루션입니다.

      $offer_type = new Zend_Form_Element_Radio('offer_type', array(
          'separator' => '</li><li>', 
          'decorators' => array(
           'ViewHelper', 
           array(array('liWrapper' => 'HtmlTag'), array('tag' => 'li')), 
           array(array('ulWrapper' => 'HtmlTag'), array('tag' => 'ul')), 
           // the rest 
          ) 
      )); 
      

      다른 방법은 자신의보기 도우미를 작성하는 것입니다. formRadio의 자신 만의 버전을 만드는 것은 꽤 쉬워야합니다.

    +0

    정확히 내가 무엇을 찾고 있었습니까. 감사 :) –