2014-02-07 3 views
0

Пытается получить дополнительные изображения Продукта, видимые на других страницах, например, в списке желаний (но я на самом деле использую его для оптового мод, который аналогичен). Я действительно пытаюсь узнать, как работает эта часть OpenCart, но я не могу ее понять.Opencart - Дополнительные изображения в листом пожеланий

Я добавил это к «Wholesale.php» контроллера (от контроллера «product.php»):

$results = $this->model_catalog_product->getProductImages($this->request->get['product_id']); 

foreach ($results as $product_info) { 
$this->data['image'][] = array(
    'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), 
    'image' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')) 
); 
} 

Тогда я добавить («IMAGE2») в массив прямо под ним :

$this->data['products'][$product_info['product_id']] = array(
     'num' => $start + $count, 
     'image' => $product_info['image'] ? $this->model_tool_image->resize($product_info['image'], $pricelist['image_width'], $pricelist['image_height']) : $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),       
THIS ONE >>> 'image2' => $product_info['image'] ? $this->model_tool_image->resize($product_info['image'], $pricelist['image_width'], $pricelist['image_height']) : $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')), 
     'popup' => $product_info['image'] ? $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')) : false, 
     'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']), 
    ); 

И, наконец, (для простоты) тега IMG на шаблоне:

<img src="<?php echo $product['image2']; ?>" /> 

Я сумел Wh пока я не останусь с UndefinedIndex: product_id (и изображение основного продукта просто дублируется на странице) ... но теперь я полностью застрял.

Я умираю, чтобы узнать это ... но я даже не уверен, в чем проблема ... «product_id» уже используется в этом контроллере несколько раз, я не знаю, зачем мне нужно зарегистрируйте его снова ... поэтому я не понимаю, почему это неопределенно.

Извините за длинный пост, любое понимание было бы оценен ... просто пытаюсь получить дополнительные изображения продукта для отображения на странице, кроме «Product.tpl»


EDIT: Добавление полного кода страницы для справки ... слишком долго для стека, используемого Pastebin:

Wholesale.php (соответствующий код легко обнаружить, широко расставленные/комментировал): http://pastebin.com/7HRdw3Sp

TemplateFile.tpl (отделанное для простоты/резервирования): http://pastebin.com/tdMB0kpe

Во всяком случае, я ценю любое понимание ... Я это возможность проверки миллионов различных способов в течение последних 3-х дней, я не могу даже приблизиться. :/

ответ

0

вы должны попытаться таким образом в "Wholesale.php" контроллер (от контроллера "product.php"):

$ this-> load-> модель ('инструмент/изображение');

 if ($product_info['image']) { 
      $this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); 
     } else { 
      $this->data['popup'] = ''; 
     } 

     if ($product_info['image']) { 
      $this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height')); 
     } else { 
      $this->data['thumb'] = ''; 
     } 

     $this->data['images'] = array(); 

     $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']); 

     foreach ($results as $result) { 
      $this->data['images'][] = array(
       'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), 
       'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')) 
      ); 
     } 

вперед, чтобы посмотреть

  $this->data['products'][] = array(
        'product_id' => $result['product_id'], 
        'thumb'  => $image, 

IMG наклеивают.TPL файл «ссылка темы по умолчанию»

<?php if ($thumb || $images) { ?> 
    <div class="left"> 
     <?php if ($thumb) { ?> 
     <div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="colorbox" rel="colorbox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div> 
     <?php } ?> 
     <?php if ($images) { ?> 
     <div class="image-additional"> 
     <?php foreach ($images as $image) { ?> 
     <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" class="colorbox" rel="colorbox"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a> 
     <?php } ?> 
     </div> 
     <?php } ?> 
    </div> 
    <?php } ?> 
+0

Спасибо, что нашли время ... К сожалению, в этом модном варианте есть что-то странное, оно написано немного иначе, чем стандартные контроллеры OC ... Я собираюсь разместить контроллер/шаблонные страницы ... но я понимаю, если никто не хочет прикасаться к нему. :) – JacksonJJ

+0

опубликовать мод, дайте мне посмотреть, могу ли я помочь вам опубликовать его в pastebin или на любом другом сайте и поделиться ссылкой – mudasirahanger

0

Я вижу несколько ошибок в контроллере

  1. В вашей модификации, начиная с линии 124 используется массив $product_info[], который определен в строке 427 (также, что будет изменяться на каждой итерации, поэтому вы должны делать все изменения внутри этого цикла foreach)

  2. В той же модификации вы используете $this->request->get['product_id'], который я уверен, не определен. чтобы проверить это увидеть, если URL есть что-то вроде product_id=, он не был бы там, так что вы не можете использовать его

  3. изменения вокруг линии 407 не имеет особого смысла

Я надеюсь, что эти очки должно быть достаточно, чтобы вы начали

Смежные вопросы