Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

VladimirFil

Новичок
  
  • Posts

    7
  • Joined

  • Last visited

Recent Profile Visitors

633 profile views

VladimirFil's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. Добрый гдень! у меня на сайте есть икой слайгдер: https://screenshots.firefox.com/16CH3Q44H8FgDKwi/engine-soft Сначала у меня эти 3 блока были в разных модулях (карусель, баннер, рекомендуемые). По совету коллеги-программиси объединил их в один модуль баннеры, дописав необходимые поля и настройки в админке. Чтобы все эти три блока переключались синхронно. Но с помощью стороннего слайгдера (не swiper). А можно ли сгделать, чтобы внутри этого слайгдера у товаров был бы другой эффект переключения, нежели у всего баннера? К примеру сгделать общий слайгдер сгделать swiper'ом и товару внутри сгделать тоже swiper'ом, но с другим эффектом переключения
  2. Чиил я мануал по API Янгдекс.Карт, но не понял, можно ли в конструктор автоматически посылать адрес производителя, беря его из базы данных (у меня, например, добавлены адрес, телефон, город у производителя)? "Доступ к страниэто запрещён".
  3. А ггде формируются переменные $contact в <a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a> (ссылка "Связаться с нами") и $powered в <div id="powered"><?php echo $powered; ?></div> ?
  4. В нижнем меню разгдел Информация выводится следующим обвместе (файл /catalog/view/theme/default/template/common/footer.tpl): <?php if ($informations) { ?> <div class="column"> <h3><?php echo $text_information; ?></h3> <ul> <?php foreach ($informations as $information) { ?> <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li> <?php } ?> </ul> </div> <?php } ?> Ггде заполняется массив $informations? Как добавить/удалить в этот разгдел пункты меню? Откуда берутся ссылки для пунктов меню в других разгделах?
  5. У меня есть файл /catalog/model/catalog/product.php. В нём есть функция getProducts: public function getProducts($data = array()) { if ($this->customer->isLogged()) { $customer_group_id = $this->customer->getCustomerGroupId(); } else { $customer_group_id = $this->config->get('config_customer_group_id'); } $sql = "SELECT DISTINCT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special"; if (!empty($data['filter_category_id'])) { if (!empty($data['filter_sub_category'])) { $sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)"; } else { $sql .= " FROM " . DB_PREFIX . "product_to_category p2c"; } if (!empty($data['filter_filter'])) { $sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)"; } else { $sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)"; } } else { $sql .= " FROM " . DB_PREFIX . "product p"; } $sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= '" . $this->NOW . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; if (!empty($data['filter_category_id'])) { if (!empty($data['filter_sub_category'])) { $sql .= " AND cp.path_id = '" . (int)$data['filter_category_id'] . "'"; } else { $sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'"; } if (!empty($data['filter_filter'])) { $implode = array(); $filters = explode(',', $data['filter_filter']); foreach ($filters as $filter_id) { $implode[] = (int)$filter_id; } $sql .= " AND pf.filter_id IN (" . implode(',', $implode) . ")"; } } if (!empty($data['filter_name']) || !empty($data['filter_tag'])) { $sql .= " AND ("; if (!empty($data['filter_name'])) { $implode = array(); $words = explode(' ', trim(preg_replace('/\s\s+/', ' ', $data['filter_name']))); foreach ($words as $word) { $implode[] = "pd.name LIKE '%" . $this->db->escape($word) . "%'"; } if ($implode) { $sql .= " " . implode(" AND ", $implode) . ""; } if (!empty($data['filter_description'])) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'"; } } if (!empty($data['filter_name']) && !empty($data['filter_tag'])) { $sql .= " OR "; } if (!empty($data['filter_tag'])) { $sql .= "pd.tag LIKE '%" . $this->db->escape($data['filter_tag']) . "%'"; } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } $sql .= ")"; } if (!empty($data['filter_manufacturer_id'])) { $sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'"; } $sql .= " GROUP BY p.product_id"; $sort_data = array( 'pd.name', 'p.model', 'p.quantity', 'p.price', 'rating', 'p.sort_order', 'p.date_added' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY " . $data['sort']; } } else { $sql .= " ORDER BY p.sort_order"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC, LCASE(pd.name) DESC"; } else { $sql .= " ASC, LCASE(pd.name) ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $product_data = array(); // $product_data['sql']=$sql; // $this->log->($sql); $query = $this->db->query($sql); $num_query = $this->db->query("SELECT FOUND_ROWS() AS `found_rows`"); $this->FOUND_ROWS = intval($num_query->row['found_rows']); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } // $product_data['sql']=$sql; $product_data['man'] = '1'; //в эту переменную я хочу записать название производителя return $product_data; } Мне нужно вывести в списке товаров (например, "Популярные") вывести ещё и название производителя. Как это сгделать? Я попропотому чтовал записать значение в переменную массива $product_data['man']. Затем этот массив передаётся в /catalog/controller/module/latest.php $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'price' => $price, 'special' => $special, 'rating' => $rating, 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']), 'man' => $result['man'], //мои данные ); И потом это выводится в /catalog/view/theme/gworldcacheback/template/module/latest.tpl: <?php echo $product['man']; ?> Но при этом у меня выводится ошибка: Notice: Undefined index: man in /catalog/controller/module/latest.php on line 59
  6. Помогите, пожалуйси, новичку в opencart. Я добавил 3 поля в админке в разгделе "Производители": Город (city), Адрес (address), Телефон (phone) (см. скриншот). Добавил соответствующие поля в базу данных в иблицу oc_manufacturer. Но у меня во-первых, не сохраняются в базу введённые значения, во-вторых в полях отображаются ошибки "<b>Notice</b>: Undefined variable: city in <b>/public/amastermin/view/template/catalog/manufacturer_form.tpl</b> on line <b>101</b>" (во всех 3 полях, только переменные разные). Как это исправить? Ггде я чего неправильно прописал? Выкладываю файлы, с которыми я рилиию, в архиве admin.rar: https://yadi.sk/d/N7f3Q9tgcvnkH
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.