Prestashop HelperForm商店协会

Prestashop HelperForm商店协会,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,在我的prestashop helperForm中,我想使用内置的商店选择器。此时会显示select树,但我无法正确设置tpl_变量。奇怪的是,我在“名字”(布拉布拉)下面写什么并不重要。复选框的名称始终为“CheckboxShopaso_配置” 我需要如何设置tpl_VAR,以便只选择具有入口的商店?假设我有3家商店,只有前两家商店有一个入口。我想我必须这样做: $vars['blabla'][1] = 1; $vars['blabla'][2] = 1; $vars['blabla'][3]

在我的prestashop helperForm中,我想使用内置的商店选择器。此时会显示select树,但我无法正确设置tpl_变量。奇怪的是,我在“名字”(布拉布拉)下面写什么并不重要。复选框的名称始终为“CheckboxShopaso_配置”

我需要如何设置tpl_VAR,以便只选择具有入口的商店?假设我有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';
您没有(或无法)在表单创建中输入所选店铺。它将从数据库中为您执行此操作

当类型为“车间”时,它将执行:

$params['html'] = $this->renderAssoShop($disable_shops);
HelperForm::renderAssoShop($disable\u shared=false,$template\u directory=null)
中,它将检查功能是否处于活动状态,然后:

 if ((int)$this->id) {
      $sql = 'SELECT `id_shop`, `'.bqSQL($this->identifier).'`
              FROM `'._DB_PREFIX_.bqSQL($this->table).'_shop`
              WHERE `'.bqSQL($this->identifier).'` = '.(int)$this->id;

      foreach (Db::getInstance()->executeS($sql) as $row) {
          $assos[$row['id_shop']] = $row['id_shop'];
      }
  }
因此,如果您的对象表是blabla,则只需使用id_bla和id_shop创建blabla_shop。
顺便说一句,如果(int)$this->id为0,它将从上下文中预选所有商店。

非常感谢!我现在就知道了!我为其他人更新了我的初始帖子!
 if ((int)$this->id) {
      $sql = 'SELECT `id_shop`, `'.bqSQL($this->identifier).'`
              FROM `'._DB_PREFIX_.bqSQL($this->table).'_shop`
              WHERE `'.bqSQL($this->identifier).'` = '.(int)$this->id;

      foreach (Db::getInstance()->executeS($sql) as $row) {
          $assos[$row['id_shop']] = $row['id_shop'];
      }
  }