Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

VladimirFil

Newbie
  
  • Posts

    7
  • Joined

  • Last visited

Recent Profile Visitors

753 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.