HelperForm的商店协会

时间:2017-09-07 17:49:46

标签: prestashop prestashop-1.6

在我的prestashop helperForm中,我想使用内置的商店选择器。选择树显示,但我无法正确设置tpl_vars。奇怪的是,我所说的名字'并不重要。 (布拉布拉)。复选框的名称始终为" checkBoxShopAsso_configuration"。

    if (Shop::isFeatureActive()) {
        $inputs[] = array(
            'type' => 'shop',
            'label' => $this->l('Shop association:'),
            'name' => 'genzo_link',
        );
    }

    $fields_form = array(
        'form' => array(
            'legend' => array(
                'title' => ('Add Link'),
                'icon' => 'icon-cogs'
            ),
            'input' => $inputs,
            'submit' => array(
                'title' => ('Update'),
                'class' => 'btn btn-default pull-right'
            )
        )
    );

    $helper = new HelperForm();
    $helper->submit_action = 'saveLink';
    $helper->default_form_language = $this->context->language->id;
    $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) . '&configure=' . $this->name .'&module_name=' . $this->name;
    $helper->token = Tools::getAdminTokenLite('AdminModules');

    $vars['blabla'][3] = 0;

    $helper->tpl_vars = array(
        'fields_value' => $vars,
        'languages' => $this->context->controller->getLanguages(),
        'id_language' => $this->context->language->id,
    );

我如何设置tpl_vars,以便只选择带有条目的商店?我们说我有3家商店,只有前两家商店有一个入口。我想我必须这样做:

$vars['blabla'][1] = 1;
$vars['blabla'][2] = 1;
$vars['blabla'][3] = 0;

但这不起作用。它总是选择所有3家商店。

感谢您的帮助!如果不清楚,请告诉我你需要更好的解释。

更新 对于其他人。您只需要使用这三个信息设置对象。

$helper->table = 'genzo_link';
$helper->id = $id_genzo_link;
$helper->identifier = 'id_genzo_link';

1 个答案:

答案 0 :(得分:1)

您没有(或无法)在表单创建中输入所选商店。它将从数据库中为您完成。

当类型是' shop'它会执行:

  $ ssh admin@remotehost "sudo passwd -u admin"
  sudo: no tty present and no askpass program specified

  $ ssh -t admin@remotehost "sudo passwd -u admin"
  [sudo] password for admin: 
  Sorry, try again.
  [sudo] password for admin: 
  Sorry, try again.
  [sudo] password for admin: 
  sudo: 3 incorrect password attempts
  Connection to remotehost closed.

$params['html'] = $this->renderAssoShop($disable_shops); 中,它会检查该功能是否有效,然后:

HelperForm::renderAssoShop($disable_shared = false, $template_directory = null)

所以,如果你的对象表是blabla,你只需要用id_blabla和id_shop创建blabla_shop。 顺便说一句,如果(int)$ this-> id为0,它将从上下文中预选所有商店。