微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您应该在模块奶嘴prestashop 1.7.5.1中输入尺寸选择

如何解决您应该在模块奶嘴prestashop 1.7.5.1中输入尺寸选择

我正在尝试将尺寸选择放入产品轮播模块中,但我还是无法摆脱。有人可以帮我吗?我得到的错误是:

通知':未定义的索引:/web/htdocs/www.mysite.it/home/var/cache/prod/smarty/compile / .....中的id_attribute_group”。

我知道要查看这些变量,我必须在模块中对其进行声明,我已经尝试了各种方法,但我做不到。多亏有人帮我。

我相信这是加载产品特征的功能

public function getProductsInfos($items,$id_lang,$id_shop,$settings)
{
    $ids = array();
    foreach ($items as $i) {
        $ids[] = $i['id_product'];
    }
    if (!$ids) {
        return array();
    }
    $show_cat = $settings['product_cat'];
    $show_man = $settings['product_man'];
    $products_infos = array();
    $imploded_ids = implode(',',$ids);

    $products_data = $this->db->executeS('
        SELECT p.*,product_shop.*,pl.*,image.id_image,il.legend,pas.id_product_attribute,pas.minimal_quantity AS pa_minimal_quantity,'.($show_cat ? 'cl.name AS cat_name,cl.link_rewrite as cat_link_rewrite,' : '').'
        '.($show_man ? 'm.name AS man_name,' : '').'
        '.$this->prepareIsNewQuery().' AS new
        FROM '._DB_PREFIX_.'product p
        '.Shop::addsqlAssociation('product','p').'
        INNER JOIN '._DB_PREFIX_.'product_lang pl
            ON (pl.id_product = p.id_product
            AND pl.id_shop = '.(int)$id_shop.' AND pl.id_lang = '.(int)$id_lang.')
        LEFT JOIN '._DB_PREFIX_.'product_attribute_shop pas
            ON pas.id_product_attribute = product_shop.cache_default_attribute
            AND pas.id_shop = product_shop.id_shop
        '.($show_cat ? '
            LEFT JOIN '._DB_PREFIX_.'category_lang cl
                ON (cl.id_category = product_shop.id_category_default
                AND cl.id_shop = '.(int)$id_shop.' AND cl.id_lang = '.(int)$id_lang.')
        ' : '').'
        '.($show_man ? '
            LEFT JOIN '._DB_PREFIX_.'manufacturer m
                ON m.id_manufacturer = p.id_manufacturer AND m.active = 1
        ' : '').'
        LEFT JOIN '._DB_PREFIX_.'image image
            ON (image.id_product = p.id_product AND image.cover = 1)
        LEFT JOIN '._DB_PREFIX_.'image_lang il
            ON (il.id_image = image.id_image AND il.id_lang = '.(int)$id_lang.')
        WHERE p.id_product IN ('.psql($imploded_ids).')
    ');

    $second_images = array();
    if (!empty($settings['second_image'])) {
        $second_images_data = $this->db->executeS('
            SELECT i.id_product,i.id_image
            FROM '._DB_PREFIX_.'image i
            '.Shop::addsqlAssociation('image','i').'
            WHERE i.id_product IN ('.psql($imploded_ids).')
            AND i.cover IS NULL
            GROUP BY i.id_product
        ');
        foreach ($second_images_data as $d) {
            $second_images[$d['id_product']] = $d['id_image'];
        }
    }

    $positions = array_flip($ids);
    foreach ($products_data as $pd) {
        $id = $pd['id_product'];

        if (!empty($pd['pa_minimal_quantity'])) {
            $pd['minimal_quantity'] = $pd['pa_minimal_quantity'];
        }
        // out_of_stock is required to avoid extra queries in getProductProperties
        $pd['out_of_stock'] = StockAvailable::outOfStock($id,$id_shop);
        $pd = Product::getProductProperties($id_lang,$pd);

        $image_type = $settings['image_type'] != 'original' ? $settings['image_type'] : null;
        $link_rewrite = $pd['link_rewrite'];

        if ($this->is_17) {
            $pd = $this->presentProduct($pd);
            if (!$image_type) {
                $original_img_src = $this->context->link->getimageLink(
                    $pd['link_rewrite'],$pd['cover']['id_image']
                );
                $pd['cover']['bySize']['original']['url'] = $original_img_src;
            }
        } else {
            $pd['img_src'] = $this->context->link->getimageLink($link_rewrite,$pd['id_image'],$image_type);
            if ($settings['stock'] && $pd['available_for_order'] && !Configuration::get('PS_CATALOG_MODE') &&
                Configuration::get('PS_STOCK_MANAGEMENT')) {
                $pd = $this->addStockStatus($pd);
            }
        }
        if (!empty($second_images[$id])) {
            $src  = $this->context->link->getimageLink($link_rewrite,$second_images[$id],$image_type);
            $pd['second_img_src'] = $src;
        }
        if ($show_man && !empty($pd['id_manufacturer'])) {
            $alias = Tools::str2url($pd['man_name']);
            $pd['man_url'] = $this->getItemUrl('manufacturer',$pd['id_manufacturer'],$alias);
            if ($show_man != 1) {
                $pd['man_img_src'] = $this->getimageUrl('manufacturer',$show_man);
            }
        }
        if ($show_cat && !empty($pd['id_category_default'])) {
            $pd['cat_url'] = $this->getItemUrl('category',$pd['id_category_default'],$pd['cat_link_rewrite']);
        }
        $products_infos[$positions[$id]] = $pd;
    }
    ksort($products_infos);
    return $products_infos;
}

这是我在tpl中用于查看相对于尺寸的选择的代码

<div class="product-variants">{*important refresh*}
  {foreach from=$groups key=id_attribute_group item=group}
   {if !empty($group.attributes)}
    <div class="clearfix product-variants-item">
    <span class="control-label">{$group.name}</span>
      {if $group.group_type == 'select'}
       <select
         class="form-control form-control-select "
         id="group_{$id_attribute_group}"
         data-product-attribute="{$id_attribute_group}"
         name="group[{$id_attribute_group}]">
          {foreach from=$group.attributes key=id_attribute item=group_attribute}
           <option value="{$id_attribute}" title="{$group_attribute.name}"{if $group_attribute.selected} selected="selected"{/if} >{$group_attribute.name}</option>
          {/foreach}
       </select>
     {elseif $group.group_type == 'color'}
      <ul id="group_{$id_attribute_group}" class="clearfix li_fl">
      {foreach from=$group.attributes key=id_attribute item=group_attribute}
        <li class="input-container {if !$group.attributes_quantity[$id_attribute]} st_unavailable_combination {/if}" title="{$group_attribute.name}">
          <input class="input-color" type="radio" data-product-attribute="{$id_attribute_group}" name="group[{$id_attribute_group}]" value="{$id_attribute}"{if $group_attribute.selected} checked="checked"{/if}/>
          <span class="color {if $group_attribute.texture}texture{/if}"
            {if $group_attribute.html_color_code} style="background-color: {$group_attribute.html_color_code}" {/if}
            {if $group_attribute.texture} style="background-image: url({$group_attribute.texture})" {/if}<span class="sr-only">{$group_attribute.name}</span></span>
          <span class="st-input-loading"><i class="fto-spin5 animate-spin"></i></span>
        </li>
      {/foreach}
    </ul>
  {elseif $group.group_type == 'radio'}
    <ul id="group_{$id_attribute_group}" class="clearfix li_fl">
      {foreach from=$group.attributes key=id_attribute item=group_attribute}
        <li class="input-container {if !$group.attributes_quantity[$id_attribute]} st_unavailable_combination {/if}" title="{$group_attribute.name}">
          <input class="input-radio" type="radio" data-product-attribute="{$id_attribute_group}" name="group[{$id_attribute_group}]" value="{$id_attribute}"{if $group_attribute.selected} checked="checked"{/if}/>
          <span class="radio-label">{$group_attribute.name}</span>
          <span class="st-input-loading"><i class="fto-spin5 animate-spin"></i></span>
        </li>
      {/foreach}
    </ul>
  {/if}
</div>
{/if}

{/ foreach}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。