1

誰でも私を助けてください。本当に単純かもしれませんが、何かが足りないようです。

ここで非常に単純なモジュールを開発しようとしています。

編集セクションでは、地域を選択していません

ここに画像の説明を入力

store_id 1 はオーストラリアです

コード:

<?php

class Ubt_Faq_Block_Adminhtml_Faq_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{

protected function _prepareForm()
{
      $x = Mage::registry('ubt_faq')->getData();   
      var_dump($x);

      $form = new Varien_Data_Form();

      $fieldset = $form->addFieldset('faq_form', array(
             'legend'     => Mage::helper('ubt_faq')->__('FAQ'),
             'class'        => 'fieldset-wide',
      ));

      $fieldset->addField('faq_term', 'text', array(
             'name'      => 'faq_term',
             'label'     => Mage::helper('ubt_faq')->__('Term'),
             'class'     => 'required-entry',
             'required'  => true,
      ));

      $fieldset->addField('faq_answer', 'textarea', array(
             'name'      => 'faq_answer',
             'label'     => Mage::helper('ubt_faq')->__('Answer'),
             'class'     => 'required-entry',
             'required'  => true,
      ));           

      if (!Mage::app()->isSingleStoreMode()) {
           $fieldset->addField('store_ids', 'multiselect', array(
                 'label'     => Mage::helper('ubt_faq')->__('Visible In'),
                 'required'  => true,
                 'name'      => 'store_ids[]',
                 'values'    => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(),
                 'value'     => Mage::registry('ubt_faq')->getStoreId()
           ));          
       }

       if (Mage::registry('ubt_faq')) {
             $form->setValues(Mage::registry('ubt_faq')->getData());
       }
       $this->setForm($form);
       return parent::_prepareForm();
     }

}

class Varien_Data_Form_Element_Multiselect extends Varien_Data_Form_Element_Abstract

$value = $this->getValue(); getElementHtml(); で null になっています。

すでに値を割り当てているため、この $value は null であってはならないと思います。

4

3 に答える 3

1

こんにちはチェック次の手順はあなたを助けるかもしれません

Grid.phpで

 protected function _prepareCollection(){

      $collection Mage::getModel("faq/faq")->getCollection();

      foreach($collection as $link){

           if($link->getStoreId() && $link->getStoreId() != 0 ){

                $link->setStoreId(explode(',',$link->getStoreId()));

           }                
           else{                    
                $link->setStoreId(array('0'));                  
           }

       }

      $this->setCollection($collection);

      return parent::_prepareCollection();

 }

列を追加

 $this->addColumn("store_id", array(
      "header"        => Mage::helper("faq")->__("Store View"),         
      "index"        => "store_id",
      "type"          => "store",
      "store_all"     => true,
      "store_view"    => true,
      "sortable"      => true,
      "filter_condition_callback" => array($this,  
      "_filterStoreCondition"),
 ));

form.phpで

 $fieldset->addField('store_id', 'multiselect', array(
      'name'      => 'store_id[]',
      'label'     => 'Store View',
      'title'     => '',
      'required'  => true,
      'values'    => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true),
 ));
于 2012-11-06T05:23:41.593 に答える
0

モジュールのデータベースにテーブル store_id を追加してから、モジュール データ コントローラーに保存アクションを追加する必要があります。

于 2013-05-03T06:52:55.240 に答える
0

form.php を更新してみてください

  if (!Mage::app()->isSingleStoreMode()) {
       $fieldset->addField('store_ids', 'multiselect', array(
             'label'     => Mage::helper('ubt_faq')->__('Visible In'),
             'required'  => true,
             'name'      => 'store_ids',
             'values'    => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(),
       ));          
   }
于 2012-11-06T13:45:41.603 に答える