使用renderList进行Prestashop问题

时间:2016-02-04 15:20:26

标签: input module prestashop helpers

我正在为我的公司创建一个prestashop模块。 我正在帮助他们做一份干净的工作。 问题出在我的renderForm上!当我尝试编辑一行时,只有id_product字段获取值,而不是其他3个.. 所以我想明白为什么?

/* Constructeur */
public function __construct()
{
    $this->bootstrap = true;
    /* Pour aller chercher la table correspondante dans la base */
    $this->table = 'reverdy_aliments';
    $this->className = 'ReverdyPrices';
    $this->deleted = false;

    $this->context = Context::getContext();
    /* Pour ajouter la checkbox à gauche */
    /*$this->bulk_actions = array(
        'delete' => array(
            'text' => $this->l('Delete selected'),
            'confirm' => $this->l('Delete selected items?'),
            'icon' => 'icon-trash'
        )
    );*/

    /* Pour préciser que la clé primaire n'est pas 'id_'.$table */
    $this->identifier = 'id_product';

    parent::__construct();
}

/* Pour ajouter les boutons */
public function renderList()
{
    /* Boutons sur les lignes du tableau */
    $this->addRowAction('edit');

    /* Champs voulus dans le tableau */
    $this->fields_list = array(
        'id_product' => array(
            'title' => $this->l('Produit'),
            'align' => 'center',
            'callback' => 'getAlimentNameById'
        ),
        'departement' => array(
            'title' => $this->l('Département'),
            'align' => 'center'
        ),
        'quantite_kg' => array(
            'title' => $this->l('Quantité'),
            'align' => 'center'
        ),
        'prix_ht' => array(
            'title' => $this->l('Prix H.T.'),
            'align' => 'center'
        )
    );

    return parent::renderList();
}

/* Pour récupérer directement le nom des produits */
public function getAlimentNameById($echo,$row)
{
    $id_product = (int)$row['id_product'];
    if($id_product){
        $produit = new Product($id_product);
        return $produit->name[$this->context->language->id];
    }
    return "";
}

/* Pour le formulaire de modification */
public function renderForm()
{
    if (!($obj = $this->loadObject(true)))
        return;

    $this->fields_form = array(
        'tinymce'=> false,
        'legend' => array(
            'title' => $this->l('Produit'),
            'icon' => 'icon-cogs',
        ),
        'input' => array(
            array(
                'type' => 'text',
                'name' => 'id_product',
                'label' =>  $this->l('Produit'),
                'disabled' => true
            ),
            array(
                'type' => 'text',
                'name' => 'departement',
                'label' =>  $this->l('Département'),
                'disabled' => true
            ),
            array(
                'type' => 'text',
                'name' => 'quantite_kg',
                'label' =>  $this->l('Quantité en kg'),
                'disabled' => true
            ),
            array(
                'type' => 'text',
                'name' => 'prix_ht',
                'label' =>  $this->l('Prix H.T.')
            )
        ),
        'submit' => array(
            'title' => $this->l('Save'),
            'name' => 'submitAdd'.$this->table
        )
    );

    /*$this->fields_value = array('departement' => 'test');
    $this->fields_value['id_employee_default'] = $default_employee;*/

    return parent::renderForm();
}

1 个答案:

答案 0 :(得分:0)

我们在Benoit看到问题出在ObjectModel" ReverdyPrices"哪一个没有包含在带有include或require_once的模块中。