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

newjey

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

    460
  • З нами

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

Усі публікації користувача newjey

  1. Если выводить переменную <?php echo $description; ?> то выводится основное описание. Где-то что-то не правильно и не могу сообразить где(
  2. Добрый день. Надо вывести дополнительное описание для страницы производителя. Сделал в админке и в базе поля, Всё записывается и сохраняется. Но не получается вывести данные из таблицы на страницу В базе поле ALTER TABLE `manufacturer` ADD `descriptionm` TEXT NOT NULL AFTER `sort_order`; в контроллере catalog/controller/product/manufacturer.php $data['description'] = html_entity_decode($manufacturer_info['descriptionm'], ENT_QUOTES, 'UTF-8'); Ну и в шаблоне catalog/view/theme/*/template/product/manufacturer_info.tpl Вывожу заглушку <?php echo $descriptionm; ?> Но данные не выводит. Пишет Notice: Undefined variable: descriptionm in Что не так?
  3. По аналогии пробовал, прописал вот так: $data['cat_list'] = $this->model_catalog_product->getCategoryNames($product_id); $data['cat_href'] = $this->url->link('product/category', 'path=' . $category_id); но ничего не поменялось. Видимо что-то пропустил.
  4. Попробовал. выдаёт тогда несуществующую страницу с адресом сайт/<b>Notice</b>:%20Undefined%20index:%20href%20in%20<b>/var/www/site/syte.com/system/storage/modification/catalog/view/theme/default/template/product/product.tpl</b>%20on%20line%20<b>553</b>
  5. Подскажите, делаю вывод всех категорий к которым относится (отмечен, добавлен) товар в карточке товара. Получается вот так: catalog/model/catalog/product.phpнаходим строку: public function getCategories($product_id) { перед ней добавляем: public function getCategoryNames($product_id) { $query = $this->db->query("SELECT cd.name FROM " . DB_PREFIX . "category_description cd LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p2c.category_id = cd.category_id) WHERE p2c.product_id = '" . (int)$product_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "'"); return $query->rows; } далее... идем к catalog/controller/product/product.phpнаходим строку: $data['points'] = $product_info['points']; после неё добавляем: //add_cat_list_baco $data['cat_list'] = $this->model_catalog_product->getCategoryNames($product_id); //EOF_add_cat_list_baco и на финал:catalog/view/theme/ВАША_ТЕМА/template/product/product.tplв нужное место вставляем вывод категорий: <?php if ($cat_list) { ?> <?php foreach ($cat_list as $cat_name) { ?> <li><?php echo $cat_name['name']; ?></li> <?php } ?> <?php } ?> Список выводится, как сделать категории ссылками на категории, а не просто текст? Спасибо.
  6. Добрый день. Подскажите, возможно не верно сделал. Мне надо было блок отзывов разместить в разных местах для мобильных и для ПК. Сделал это следующим образом. Для ПК код разместил в див в нужном месте: <div class="col-sm-12 visible-lg visible-md" > <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> <?php if ($review_status) { ?> <div class="rating" style="text-align:center;"> <hr> <?php } ?> <?php if ($review_status) { ?> <div id="review" style="padding-top:10px;"> <?php if ($reviews) { ?> <?php foreach ($reviews_array as $review) { ?> <div itemscope itemtype="http://schema.org/Review"> <div itemprop="itemReviewed" style="text-align:left;" content="<?php echo $heading_title; ?>"> <span style="width: 50%;"><strong itemprop="author"><?php echo $review['author']; ?></strong> / </span> <span class="text-right"><time itemprop="datePublished" datetime="<?php echo $review['date_published']; ?>"><?php echo $review['date_added']; ?> / </time> <span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> <meta itemprop="ratingValue" content="<?php echo $review['rating']; ?>"> <meta itemprop="bestRating" content="5"><meta itemprop="worstRating" content="1"> </span> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($review['rating'] < $i) { ?> <span class="fa fa-stack"> <i class="fa fa-star-o fa-stack-2x"></i> </span> <?php } else { ?> <span class="fa fa-stack"> <i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i> </span> <?php } ?> <?php } ?></span> </div> <div> <div align="justify"> <p itemprop="reviewBody"><?php echo $review['text']; ?></p> </div><br> </div> </div> <?php } ?> <div class="text-right"><?php echo $pagination; ?></div> <?php } else { ?> <p><?php echo $text_no_reviews; ?></p> <?php } ?> </div> <div> <input type="checkbox" id="hd-1" class="hide"/> <label for="hd-1" ><span class="coments1" >Оставить отзыв о товаре <i class="fa fa-commenting-o" aria-hidden="true" style="vertical-align: top;"></i></span></label> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <?php if ($review_guest) { ?> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-name"><?php echo $entry_name; ?></label> <input type="text" name="name" value="" id="input-name" class="form-control" /> </div> </div> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-review"><?php echo $entry_review; ?></label> <textarea name="text" rows="5" id="input-review" class="form-control"></textarea> </div> </div> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label"><?php echo $entry_rating; ?></label> &nbsp;&nbsp;&nbsp; <?php echo $entry_bad; ?>&nbsp; <input type="radio" name="rating" value="1" /> &nbsp; <input type="radio" name="rating" value="2" /> &nbsp; <input type="radio" name="rating" value="3" /> &nbsp; <input type="radio" name="rating" value="4" /> &nbsp; <input type="radio" name="rating" value="5" /> &nbsp;<?php echo $entry_good; ?></div> </div> <?php echo $captcha; ?> <div class="buttons clearfix"> <div class="pull-right"> <button type="button" id="button-review" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><?php echo $button_continue; ?></button> </div> </div> <?php } else { ?> <?php echo $text_login; ?> <?php } ?> </form> </div> </div> <?php echo $reviews; ?> Рейтинг: <?php echo $rating; ?> <p style="color:#fff;font-size:15px;"><?php echo $model; ?></p> </div> <?php } ?> </div> Потом его же продублировал в другое место, в дивах: <div class="col-xs-12 col-sm-12 col-md-5 col-lg-4 hidden-lg hidden-md" style="float:right;"> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> <?php if ($review_status) { ?> <div class="rating" style="text-align:center;"> <hr> <?php } ?> <?php if ($review_status) { ?> <div id="review2"> <?php if ($reviews) { ?> <?php foreach ($reviews_array as $review) { ?> <div itemscope itemtype="http://schema.org/Review"> <div itemprop="itemReviewed" style="text-align:left;" content="<?php echo $heading_title; ?>"> <span style="width: 50%;"><strong itemprop="author"><?php echo $review['author']; ?></strong> / </span> <span class="text-right"><time itemprop="datePublished" datetime="<?php echo $review['date_published']; ?>"><?php echo $review['date_added']; ?> / </time> <span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> <meta itemprop="ratingValue" content="<?php echo $review['rating']; ?>"> <meta itemprop="bestRating" content="5"><meta itemprop="worstRating" content="1"> </span> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($review['rating'] < $i) { ?> <span class="fa fa-stack"> <i class="fa fa-star-o fa-stack-2x"></i> </span> <?php } else { ?> <span class="fa fa-stack"> <i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i> </span> <?php } ?> <?php } ?></span> </div> <div> <div align="justify"> <p itemprop="reviewBody"><?php echo $review['text']; ?></p> </div><br> </div> </div> <?php } ?> <div class="text-right"><?php echo $pagination; ?></div> <?php } else { ?> <p><?php echo $text_no_reviews; ?></p> <?php } ?> </div> <div> <input type="checkbox" id="hd-2" class="hide"/> <label for="hd-2" ><span class="coments1" >Оставить отзыв о товаре <i class="fa fa-commenting-o" aria-hidden="true" style="vertical-align: top;"></i></span></label> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review2"> <?php if ($review_guest) { ?> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-name"><?php echo $entry_name; ?></label> <input type="text" name="name" value="" id="input-name" class="form-control" /> </div> </div> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-review"><?php echo $entry_review; ?></label> <textarea name="text" rows="5" id="input-review" class="form-control"></textarea> </div> </div> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label"><?php echo $entry_rating; ?></label> &nbsp;&nbsp;&nbsp; <?php echo $entry_bad; ?>&nbsp; <input type="radio" name="rating" value="1" /> &nbsp; <input type="radio" name="rating" value="2" /> &nbsp; <input type="radio" name="rating" value="3" /> &nbsp; <input type="radio" name="rating" value="4" /> &nbsp; <input type="radio" name="rating" value="5" /> &nbsp;<?php echo $entry_good; ?></div> </div> <?php echo $captcha; ?> <div class="buttons clearfix"> <div class="pull-right"> <button type="button" id="button-review2" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><?php echo $button_continue; ?></button> </div> </div> <?php } else { ?> <?php echo $text_login; ?> <?php } ?> </form> </div> </div> <?php echo $reviews; ?> Рейтинг: <?php echo $rating; ?> <p style="color:#fff;font-size:15px;"><?php echo $model; ?></p> </div> <?php } ?> </div> При этом продублировал скрипт измени его для мобильных, вот так: <script type="text/javascript"><!-- $('#review').delegate('.pagination a', 'click', function(e) { e.preventDefault(); $('#review').fadeOut('slow'); $('#review').load(this.href); $('#review').fadeIn('slow'); }); $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); $('#button-review').on('click', function() { $.ajax({ url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>', type: 'post', dataType: 'json', data: $("#form-review").serialize(), beforeSend: function() { $('#button-review').button('loading'); }, complete: function() { $('#button-review').button('reset'); }, success: function(json) { $('.alert-success, .alert-danger').remove(); if (json['error']) { $('#review').after('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> <script type="text/javascript"><!-- $('#review2').delegate('.pagination a', 'click', function(e) { e.preventDefault(); $('#review2').fadeOut('slow'); $('#review2').load(this.href); $('#review2').fadeIn('slow'); }); $('#review2').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); $('#button-review2').on('click', function() { $.ajax({ url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>', type: 'post', dataType: 'json', data: $("#form-review2").serialize(), beforeSend: function() { $('#button-review2').button('loading'); }, complete: function() { $('#button-review2').button('reset'); }, success: function(json) { $('.alert-success, .alert-danger').remove(); if (json['error']) { $('#review2').after('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review2').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); $(document).ready(function() { $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); }); //--></script> Не бейте только.) Решение конечно соглашусь глупое, но работает. Но вот сегодня выяснилось что пагинация не работает на ПК, а на мобильном все в порядке. Подскажите, что не так?
  7. Добрый день. Подскажите у кого-то возникал конфликт этого модуля с модулем Multi Image Uploader?
  8. Вообщем разобрался, откатил файлы на дефолтные всё заработало. Но теперь вопрос как сделать что бы при сортировке всё так же осталось но проданные товары (на складе 0) уходили в конец списка. Спасибо за помощь.
  9. Так, понял в чём проблема) В категории сортирует нормально, а вот на странице бренда нет. Как сделать на странице бренда сортировку по цене с учётом цены с акцией? Хотя нет и в категории тоже самое( функция дефолтная: 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"; }
  10. Но этот код в методе getProductSpecials используется, мне надо было что бы на странице Скидки отсутствующие товары уходили в конец списка. А сортировка я так понимаю в другой функции?
  11. А можете подсказать как в имеющийся код дописать ещё проверку на акционную скидку?
  12. Есть вот такой чуть изменённый код if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sort = $data['sort']; } else { $sort = 'p.sort_order'; } $append_order = 'p.price = 0, p.quantity = 0,'; if ($sort == 'pd.name' || $sort == 'p.model') { $sql .= " ORDER BY $append_order LCASE($sort)"; } else { $sql .= " ORDER BY $append_order $sort"; }
  13. ocStore 2.1.0.2 Вот нашёл что такой запрос должен быть $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; Но его почему-то нет в catalog/model/catalog/product.php
  14. Я правильно понимаю что это тут? public function getProducts($data = array()) { $sql = "SELECT 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)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > 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)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > 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 <= 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+/', ' ', $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'])) . "'"; $sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($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)) { $sort = $data['sort']; } else { $sort = 'p.sort_order'; } $append_order = 'p.price = 0, p.quantity = 0,'; if ($sort == 'pd.name' || $sort == 'p.model') { $sql .= " ORDER BY $append_order LCASE($sort)"; } else { $sql .= " ORDER BY $append_order $sort"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC, LCASE(pd.name) DESC"; } else { $sql .= " ASC, LCASE(pd.name) ASC"; }
  15. Подскажите в какой функции формируется сортировка по цене, попробую подправить)
  16. Подскажите как настроить сортировку в категории по цене что бы учитывалась скидка? Может кто уже реализовывал? А то как-то не правильно. понял что сортировка формируется в catalog/model/catalog/product.php но как подправить пока не понял. Точнее цена не со скидкой а с акционной ценой. Спасибо.
  17. Подскажите под ocStore 2.1.0.2 как сделать сортировку с учётом акционной цены?
  18. Ооо, как же я сам не додумался, идеально помоему)
  19. На мобильном сейчас отображается вот так И так должно остаться.
×
×
  • Створити...

Important Information

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