Помощь Выбор категорий и производителей в админке чекбоксами

Тема в разделе "Opencart", создана пользователем Amazko, 3 мар 2015.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. Amazko

    Amazko #АдминОтпиши

    Moderator
    Регистр.:
    4 мар 2012
    Сообщения:
    569
    Симпатии:
    311
    Как в кастомном шаблоне сменить вот такой выбор:
    [​IMG]
    На такой:
    [​IMG]
    тоесть показыват ьв категориях сделать с чекбоксами, а производитеть сделать выпадающим списком.
     
  2. Dj-Tiesto

    Dj-Tiesto Стероид

    Регистр.:
    19 авг 2010
    Сообщения:
    272
    Симпатии:
    88
    в кастомном шаблоне Чего?? это же две админки, как я понимаю

    Что за первый скрин? Какая версия сборки или оригинала??
     
  3. Amazko

    Amazko #АдминОтпиши

    Moderator
    Регистр.:
    4 мар 2012
    Сообщения:
    569
    Симпатии:
    311
    версии однаковые, просто то opencart а ето ocstore.
     
  4. drozd22

    drozd22

    Регистр.:
    17 июн 2011
    Сообщения:
    317
    Симпатии:
    172
    Откройте из админки product_form.tpl из opencart, находите <div id="tab-links"> и кромсаете по образцу ocstore. Не проверял, но похоже даже контроллер править не потребуется.
    Но на мой взгляд, диз. opencart более удобен для шопов с большим количеством категорий и производителей.
     
  5. Amazko

    Amazko #АдминОтпиши

    Moderator
    Регистр.:
    4 мар 2012
    Сообщения:
    569
    Симпатии:
    311
    я все поправил, и не проканывает, говорю же, что в контролере надо чтото менять, но там очень много одинаковых фишек которые проверял через araxis merge
     
  6. drozd22

    drozd22

    Регистр.:
    17 июн 2011
    Сообщения:
    317
    Симпатии:
    172
    Жестоко ошибался, контроллер у ocstore значительно отличается, но решаемо.
    Рассматриваю изменения для Opencart 1.5.6.4
    Сначала попробуем сделать выбор для "Производитель". Находим в product_form.tpl фрагмент:
    Код:
                <tr>
                  <td><?php echo $entry_manufacturer; ?></td>
                  <td><input type="text" name="manufacturer" value="<?php echo $manufacturer ?>" /><input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id; ?>" /></td>
                </tr>
    и меняем на код из ocstore:
    Код:
                <tr>
                  <td><?php echo $entry_manufacturer; ?></td>
    
    
                  <td><select name="manufacturer_id">
                      <option value="0" selected="selected"><?php echo $text_none; ?></option>
                      <?php foreach ($manufacturers as $manufacturer) { ?>
                      <?php if ($manufacturer['manufacturer_id'] == $manufacturer_id) { ?>
                      <option value="<?php echo $manufacturer['manufacturer_id']; ?>" selected="selected"><?php echo $manufacturer['name']; ?></option>
                      <?php } else { ?>
                      <option value="<?php echo $manufacturer['manufacturer_id']; ?>"><?php echo $manufacturer['name']; ?></option>
                      <?php } ?>
                      <?php } ?>
                    </select></td>
                </tr>
    В контроллере /admin/controller/catalog/product.php перед
    Код:
            // Categories
    добавляем строчку:
    Код:
    $this->data['manufacturers'] = $this->model_catalog_manufacturer->getManufacturers();
    Проверьте, похоже на рабочей вариант.
     
    Amazko нравится это.
  7. drozd22

    drozd22

    Регистр.:
    17 июн 2011
    Сообщения:
    317
    Симпатии:
    172
    Для "Показывать в категориях:" приблизительно можно попробовать по аналогии.
    Находим в product_form.tpl фрагмент:
    Код:
                <tr>
                  <td><?php echo $entry_category; ?></td>
                  <td><input type="text" name="category" value="" /></td>
                </tr>
                <tr>
                  <td>&nbsp;</td>
                  <td><div id="product-category" class="scrollbox">
                      <?php $class = 'odd'; ?>
                      <?php foreach ($product_categories as $product_category) { ?>
                      <?php $class = ($class == 'even' ? 'odd' : 'even'); ?>
                      <div id="product-category<?php echo $product_category['category_id']; ?>" class="<?php echo $class; ?>"><?php echo $product_category['name']; ?><img src="view/image/delete.png" alt="" />
                        <input type="hidden" name="product_category[]" value="<?php echo $product_category['category_id']; ?>" />
                      </div>
                      <?php } ?>
                    </div></td>
                </tr> 
    и меняем на (сделал грубо, будьте внимательны с кодировкой)
    Код:
                <tr>
                  <td><?php echo $entry_category; ?></td>
                  <td><div class="scrollbox">
                      <?php $class = 'odd'; ?>
                      <?php foreach ($categories as $category) { ?>
                      <?php $class = ($class == 'even' ? 'odd' : 'even'); ?>
    
                      <div class="<?php echo $class; ?>">
                        <?php if (in_array($category['category_id'], $product_category)) { ?>
                        <input type="checkbox" name="product_category[]" value="<?php echo $category['category_id']; ?>" checked="checked" />
                        <?php echo $category['name']; ?>
                        <?php } else { ?>
                        <input type="checkbox" name="product_category[]" value="<?php echo $category['category_id']; ?>" />
                        <?php echo $category['name']; ?>
                        <?php } ?>
                      </div>
                      <?php } ?>
                    </div>
                    <a onclick="$(this).parent().find(':checkbox').attr('checked', true);">Выбрать всё</a> / <a onclick="$(this).parent().find(':checkbox').attr('checked', false);">Снять выделение</a></td>
                </tr>
    В контроллере /admin/controller/catalog/product.php кусок
    Код:
            $this->data['product_categories'] = array();
    
            foreach ($categories as $category_id) {
                $category_info = $this->model_catalog_category->getCategory($category_id);
    
                if ($category_info) {
                    $this->data['product_categories'][] = array(
                        'category_id' => $category_info['category_id'],
                        'name'        => ($category_info['path'] ? $category_info['path'] . ' &gt; ' : '') . $category_info['name']
                    );
                }
            }
    
    меняем на код
    Код:
            $this->data['categories'] = $this->model_catalog_category->getCategories(0);
            $this->data['product_categories'] = array();
    
            foreach ($categories as $category_id) {
                $category_info = $this->model_catalog_category->getCategory($category_id);
    
                if ($category_info) {
                    $this->data['product_categories'][] = array(
                        'category_id' => $category_info['category_id'],
                        'name'        => ($category_info['path'] ? $category_info['path'] . ' &gt; ' : '') . $category_info['name']
                    );
                }
            }
    
            if (isset($this->request->post['product_category'])) {
                $this->data['product_category'] = $this->request->post['product_category'];
            } elseif (isset($this->request->get['product_id'])) {
                $this->data['product_category'] = $this->model_catalog_product->getProductCategories($this->request->get['product_id']);
            } else {
                $this->data['product_category'] = array();
            }      
    
    Т.к. для тестов использую 1.5.6.4, то с "Главная категория" не могу проверить, другая структура.
     
    Последнее редактирование: 5 мар 2015
    KoNnY нравится это.
  8. KoNnY

    KoNnY Постоялец

    Регистр.:
    14 дек 2014
    Сообщения:
    68
    Симпатии:
    5
    А "Главная категория" появляется для нужд ЧПУ, если ставишь vqmod Seo Pro и там уже заведомо она реализована выпадающим списком. Единственный минус, что задавать главную категорию можно только после выбора категорий товара и сохранения значений. Было бы здорово реализовать это через ajax, без перезагрузки
     
  9. Rubiks

    Rubiks Писатель

    Регистр.:
    9 окт 2014
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, подскажите пж, а для Главная категория: выпадающий список как сделать?