Дополнительные изображения производители

Тема в разделе "Общие вопросы", создана пользователем garfild304, 31 янв 2017.

  1. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Здравствуйте вот решил создать поле в админки дополнительные изображения.

    1) Создал admin/view/template/catalog/manufacturer_form.tpl Поле по аналогии

    2) Создал в бд новую таблицу image_new

    3) в admin/model/catalog/manufacturer.php

    if (isset($data['image_new'])) {
    $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET image_new= '" . $this->db->escape($data['image_new']) . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'");
    }

    4) admin/controller/catalog/manufacturer.php

    Добавил

    if (isset($this->request->post['image_new'])) {
    $data['image_new'] = $this->request->post['image_new'];
    } elseif (!empty($manufacturer_info)) {
    $data['image_image_new'] = $manufacturer_info['image_new'];
    } else {
    $data['image_image_new'] = '';
    }

    5) admin/view/template/catalog/manufacturer_form.tpl

    <div class="form-group">
    <label class="col-sm-2 control-label" for="input-image"><?php echo $entry_image_new; ?></label>
    <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a>
    <input type="hidden" name="image" value="<?php echo $image_new; ?>" id="input-image" />
    </div>


    В итоге появилось поле новое и картинка no-image, загружаю туда картинку и он вместо этого поля image_new закидывает в стандартное image. Как я понял не записывает в бд. Помогите решить эту проблему.
     
  2. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    Вы таблицу создали или строку в таблице manufacturer?
     
  3. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Создал колонку image_new в таблице manufacturer по аналогии с image
     
  4. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
     
  5. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    А тут вы попутали опечатались походу:
    if (isset($this->request->post['image_new'])) {
    $data['image_new'] = $this->request->post['image_new'];
    } elseif (!empty($manufacturer_info)) {
    $data['image_image_new'] = $manufacturer_info['image_new'];
    } else {
    $data['image_image_new'] = '';
    }
     
  6. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    У вас классические ошибки копи-паста.
    Да скопируйте форму из товара и код из контроллера. Там уже все готово. И не заморачивайтесь..
     
  7. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Ну мне же нужно как то указать для производителей? Там сильные различия в продукте например


    product.tpl

    PHP:
      <div class="tab-pane" id="tab-image">
                  <div class="table-responsive">
                    <table id="images" class="table table-striped table-bordered table-hover">
                      <thead>
                        <tr>
                          <td class="text-left"><?php echo $entry_image?></td>
                          <td class="text-right"><?php echo $entry_sort_order?></td>
                          <td></td>
                        </tr>
                      </thead>
                      <tbody>
                        <?php $image_row 0?>
                        <?php foreach ($product_images as $product_image) { ?>
                        <tr id="image-row<?php echo $image_row?>">
                          <td class="text-left"><a href="" id="thumb-image<?php echo $image_row?>" data-toggle="image" class="img-thumbnail"><img src="<?php echo $product_image['thumb']; ?>" alt="" title="" data-placeholder="<?php echo $placeholder?>" /></a><input type="hidden" name="product_image[<?php echo $image_row?>][image]" value="<?php echo $product_image['image']; ?>" id="input-image<?php echo $image_row?>" /></td>
                          <td class="text-right"><input type="text" name="product_image[<?php echo $image_row?>][sort_order]" value="<?php echo $product_image['sort_order']; ?>" placeholder="<?php echo $entry_sort_order?>" class="form-control" /></td>
                          <td class="text-left"><button type="button" onclick="$('#image-row<?php echo $image_row?>').remove();" data-toggle="tooltip" title="<?php echo $button_remove?>" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>
                        </tr>
                        <?php $image_row++; ?>
                        <?php ?>
                      </tbody>
                      <tfoot>
                        <tr>
                          <td colspan="2"></td>
                          <td class="text-left"><button type="button" onclick="addImage();" data-toggle="tooltip" title="<?php echo $button_image_add?>" class="btn btn-primary"><i class="fa fa-plus-circle"></i></button></td>
                        </tr>
                      </tfoot>
                    </table>
                  </div>
                </div>


    Мне же посути в контроллере нужно указать что это дополнительные изображение
     
  8. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    думаю многим поможет если удаться сделать... поле с изображением с выводом в продукты
     
  9. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    Так а что вас смущает переименовать все product в manufacturer?

    Потом, необходимо будет создать отдельную таблицу, а не поле в таблице, где будут храниться ваши изображения. А таблицу manufacturer не трогать. Там только лого пусть храниться. И далее вы сможете отредактировать аналогичный запрос к БД
    PHP:
            if (isset($data['product_image'])) {
                foreach (
    $data['product_image'] as $product_image) {
                    
    $this->db->query("INSERT INTO " DB_PREFIX "product_image SET product_id = '" . (int)$product_id "', image = '" $this->db->escape($product_image['image']) . "', sort_order = '" . (int)$product_image['sort_order'] . "'");
                }
            }
     
  10. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    А вообще зачем вам это? Лого вывести около товара? Так вроде тема есть такая тут, была раньше по крайней мере.

    Но если вы хотите несколько изображений, то да, придется этим путём идти.
     
  11. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Мне нужно поле для талонов (они в картинках будут).Для каждого проихводителя своя картинка
     
  12. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    Что за талоны? ))))
    А опции картинками не подойдут?
     
  13. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    У каждого производителя есть свой гарантийный талон(картинка)> мне нужно добавить поле с картинкой в админке и вывести потом его в шаблон.Я создал колонку в бд...попробовал с контроллерам прописать но видно что то не так...
     
    Последнее редактирование: 31 янв 2017
  14. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Спасайте ребята...
     
  15. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    Так я же вроде всё рассказал как делать. Что непонятного?
     
  16. garfild304

    garfild304 Пользователь

    Сообщения:
    128
    Симпатии:
    1
    Не получилось сделать....ошибки лезут из контроллера...

    Может за оплату сделаете?
     
  17. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    926
    Симпатии:
    241
    Конечно сделаем.
     
  18. orion555

    orion555 Новичок

    Сообщения:
    12
    Симпатии:
    1
    подниму тему
    сделано
    создал таблицу в БД

    manufacturer_image

    (в прикрепленных изображениях)

    в админке сайта внесены изменения и доп картинки сохраняются
    (в прикрепленных изображениях)

    имеется модуль Стена производителей, куда нужно вывести эти изображения в блок с каждым производителем

    (в прикрепленных изображениях)

    в папке catalog

    catalog/model/catalog/manufacturer.php


    Код:
    public function getManufacturerImages($manufacturer_id) {
    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_image WHERE manufacturer_id = '" . (int)$manufacturer_id . "' ORDER BY sort_order ASC");
     return $query->rows;
     }

    в контроллере модуля
    Код:
    $data['manufacturerimages'] = array();
                $results = $this->model_catalog_manufacturer->getManufacturerImages($manufacturer_id);
                foreach ($results as $result) {
                    $data['manufacturerimages'][] = array(
                      'image' => $this->model_tool_image->resize($result['image'], 150, 150),    
                    );
                }
    
    в вью модуля
    Код:
    {% for manufacturerimage in manufacturerimages %}
                                <img src="{{ manufacturerimages['image'] }}"  alt="" title="" />
                            {% endfor %}
    
    изображения не выводятся. Подскажите где не верно?
     

    Вложения:

    • 01.png
      01.png
      Размер файла:
      52,4 КБ
      Просмотров:
      19
    • 2526.png
      2526.png
      Размер файла:
      56,1 КБ
      Просмотров:
      15
    • 02.png
      02.png
      Размер файла:
      100 КБ
      Просмотров:
      10
    Последнее редактирование: 3 июл 2023
  19. Tom

    Tom Специалист

    Сообщения:
    1.053
    Симпатии:
    386
    Вместо manufacturerimages['image'], видимо должно быть manufacturerimage['image'].
    Код:
    {% for manufacturerimage in manufacturerimages %}
        <img src="{{ manufacturerimage['image'] }}"  alt="" title="" />
    {% endfor %}
    
     
  20. orion555

    orion555 Новичок

    Сообщения:
    12
    Симпатии:
    1
    Да..спасибо...вывелось, но во всех блоках одно и то же...хотя в БД все фиксируется как нужно...видимо где то нужно условие вывода привязанных изображений к бренду по ID бренда
     

    Вложения:

    • 03.png
      03.png
      Размер файла:
      79,2 КБ
      Просмотров:
      6
    • 04.png
      04.png
      Размер файла:
      139,1 КБ
      Просмотров:
      5
    Rexus нравится это.