Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

ZeroHero

Користувачі
  
  • Публікації

    158
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем ZeroHero

  1. как сделать его уникальным для нескольких тысяч товаров.

    Ответ прост: написать несколько тысяч уникальный описаний или нанять того, кто сделает это за вас. Или вас смущает не количество? Почему вы считаете, что описание товаров должно получиться на 60-80% одинаковым? Если вы, допустим, продаёте одинаковую обувь, которая отличается только размером, то для таких товаров в магазине не нужно делать отдельную позицию для каждого размера, используйте опции.

  2. Вариант №1:

    Идёте в шаблон карточки товара, добавляете кнопку в нужное место. Пишете небольшой скрипт на JS, которым перехватываете событие клика по кнопке и рисуете модальное окно с формой. Делаете контроллер, который будет обрабатывать данные, получаемые из формы, и отправлять вам письмо на почту. Если хотите сохранять заявки в БД, то делаете ещё таблицу в БД с соответствующей структурой и модель. Делаете шаблон для страницы с формой заявки, на которую будет осуществляться переход при клике по кнопке "вызвать оценщика", если событие не удастся перехватить скриптом (например, если в браузере отключен JS или ещё по каким-то неведомым причинам).

    Если вы хотите видеть заявки в админке, то делаете почти всё то же самое, но только для административной части.

     

    Вариант №2:

    Ищите какой-то модуль для заказа обратного звонка (например этот или этот, или ещё какой-то), немного переделываете (меняете текст, стили и т.д.) и пользуетесь.

  3. 
    

    CREATE TEMPORARY TABLE `copy_temp_table` (

    `product_id` INT UNSIGNED,

    `image` varchar(255)

    ) DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

    INSERT INTO `copy_temp_table` (`product_id`, `image`)

    SELECT `a`.`product_id`, `b`.`image`

    FROM `oc_product_to_category` AS `a`

    INNER JOIN `oc_category` AS `b`

    ON `a`.`category_id` = `b`.`category_id`

    WHERE `a`.`main_category` = 1

    GROUP BY `a`.`product_id`;

    INSERT INTO `oc_product` (`product_id`, `image`)

    SELECT `product_id`, `image`

    FROM `copy_temp_table`

    ON DUPLICATE KEY UPDATE `image` = VALUES(`image`);

  4. Видели код IPS - это 3.14ц какой г...код

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

  5. Это связанно с тем, что у вас другая версия. Только что скачал OpenCart версии 1.5.6, там нету метода filter в контроллере ControllerCatalogProduct. Значит, предложенное мною решение вам не подходит.

  6. Вы смотрите код в методе getList, а нужно в методе filter. Ищите точное вхождение

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }
            
            $data = array(
                'filter_name'      => $filter_name, 
                'filter_category_id'      => $filter_category_id, 
                'filter_manufacturer_id'      => $filter_manufacturer_id, 
                'filter_model'      => $filter_model,
                'filter_price'      => $filter_price,
                'filter_quantity' => $filter_quantity,
                'filter_status'   => $filter_status,
                'sort'            => $sort,
                'order'           => $order,
                'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
                'limit'           => $this->config->get('config_admin_limit')
            );
    
  7. На самом деле, возвращение к странице списка, на которой находится товар, при сохранении или отмене редактирования, предусмотрено по-умолчанию, просто там, видать, баг (по крайней мере в версии 1.5.5.1.2). Его можно самостоятельно исправить в файле admin/controller/catalog/product.php. Нужно найти фрагмент текста

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }
            
            $data = array(
                'filter_name'      => $filter_name, 
                'filter_category_id'      => $filter_category_id, 
                'filter_manufacturer_id'      => $filter_manufacturer_id, 
                'filter_model'      => $filter_model,
                'filter_price'      => $filter_price,
                'filter_quantity' => $filter_quantity,
                'filter_status'   => $filter_status,
                'sort'            => $sort,
                'order'           => $order,
                'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
                'limit'           => $this->config->get('config_admin_limit')
            );
    

    и после

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }
    

    добавить

            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }
    

    чтобы получилось так

            if (isset($this->request->get['order'])) {
                $url .= '&order=' . $this->request->get['order'];
            }
            
            if (isset($this->request->get['page'])) {
                $url .= '&page=' . $this->request->get['page'];
            }
            
            $data = array(
                'filter_name'     => $filter_name, 
                'filter_category_id'      => $filter_category_id, 
                'filter_manufacturer_id'      => $filter_manufacturer_id, 
                'filter_model'    => $filter_model,
                'filter_price'    => $filter_price,
                'filter_quantity' => $filter_quantity,
                'filter_status'   => $filter_status,
                'sort'            => $sort,
                'order'           => $order,
                'start'           => ($page - 1) * $this->config->get('config_admin_limit'),
                'limit'           => $this->config->get('config_admin_limit')
            );
    

    Данное решение подходит для версии ocStore 1.5.5.1.2, для других не проверялось.

  8. $data['mymodule_name'] = $this->config->get('mymodule_name')[1];
    Хотя функция/метод $this->config->get('mymodule_name') ведь как раз возвращает массив, как же мне к нему подступиться, чтобы получить допустим первый его элемент без вот этой двойной работы и транзитной переменной $mymodule_name, что в первом куске кода?
    Нельзя. Этого не позволяет синтаксис языка. Если функция возвращает массив, то нужно сначала присвоить его переменной, а только потом обращаться к элементам этого массива.
  9. Метод query возвращает объект, а вы его в строку пытаетесь засунуть. Это ничего не даст, если в классе не определён волшебный метод __toString, а он там не определён. Можно сделать так, если вы уверенны, что в результате запроса вернётся хотя бы одна строка.

    $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(),$this->db->query("SELECT balance FROM vor_customer WHERE customer_id = '".$this->customer->getId()."'")->row['balance'], $this->url->link('account/logout', '', 'SSL'));
    
  10. Если в таблице записи для украинского языка уже существуют, то сделайте так:

    INSERT INTO `oc_product_description` (`product_id`, `language_id`, `name`, `description`, `meta_description`, `meta_keyword`, `seo_title`, `seo_h1`, `tag`)
    SELECT `product_id`, id_украинского_языка, `name`, `description`, `meta_description`, `meta_keyword`, `seo_title`, `seo_h1`, `tag`
    FROM `oc_product_description`
    WHERE `language_id` = id_русского_языка
    ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `description` = VALUES(`description`), `meta_description` = VALUES(`meta_description`), `meta_keyword` = VALUES(`meta_keyword`), `seo_title` = VALUES(`seo_title`), `seo_h1` = VALUES(`seo_h1`), `tag` = VALUES(`tag`)
    
  11. Таким запросом можно сделать

    INSERT IGNORE INTO `oc_product_description` (`product_id`, `language_id`, `name`, `description`, `meta_description`, `meta_keyword`, `seo_title`, `seo_h1`, `tag`)
    SELECT `product_id`, id_украинского_языка, `name`, `description`, `meta_description`, `meta_keyword`, `seo_title`, `seo_h1`, `tag`
    FROM `oc_product_description`
    
    только вместо oc_ нужно поставить свой префикс, который у вас задан в настройках, а вместо id_украинского_языка - id украинского языка, который можно посмотреть в таблице oc_language.
  12. Мне нужно вывести в левую колонку стандартный модуль "Категории", но допустим на главной странице и на внутренних страницах - верстка этого блока разная, поидее должно быть несколько шаблонов. Как вообще поступать в этой ситуации?

    Скопировать модуль и сделать для него другой шаблон.
  13. Поставьте расширение Firebug для Firefox, запустите его, перейдите на вкладку "Сеть", нажмите кнопку "Не очищать" и попробуйте зайти в админку. У вас там, скорее всего, идёт редирект на несуществующий URL. Посмотрите, куда именно вас редиректит. Может быть, что в файле admin/config.php у вас неправильно прописан URL для админки.

  14. Если нужно просто вывести одним списком, то я бы сделал как-то так. Задумку с колонками не понял вашу.

    $this->load->model('catalog/manufacturer');
    $manufacturers = $this->model_catalog_manufacturer->getManufacturers();
    $this->data['manufacturers'] = array();
    foreach ($manufacturers as $manufacturer) {
        $this->data['manufacturers'][] = array(
            'name'      => $manufacturer['name'],    
            'image'     => $manufacturer['image'],
            'image_src' => $server . 'image/' . $manufacturer['image'],
            'href'      => $this->url->link('product/manufacturer/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'])    
        );
    }
    

    А это в шаблон:

    <?php if(!empty($manufacturers)) : ?>
        <ul>
            <?php foreach($manufacturers as $manufacturer) : ?>
                <li>
                    <a href="<?php echo htmlspecialchars($manufacturer['href']); ?>">
                        <img src="<?php echo htmlspecialchars($manufacturer['image_src']); ?>" alt="<?php echo htmlspecialchars($manufacturer['name']); ?>" title="<?php echo htmlspecialchars($manufacturer['name']); ?>" />
                    </a>
                </li>
            <?php endforeach; ?>
        </ul>
    <?php endif; ?>
    
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.