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

Undertaker

Новачок
  
  • Публікації

    11
  • З нами

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

Відвідувачі профілю

966 переглядів профілю

Undertaker's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

3

Репутація

  1. Приоритеты правильно ставьте. 1, 2 и 3
  2. Приветствую уважаемые форумчане, моё изучение ocstore продолжается, но процент знаний ничтожно мал Теперь к сути В админке для товара есть вкладки скидки и акции С акциями всё понятно там есть цена старая и цена новая Если же для товара поставить "скидку" то старая цена не выводится, хотя в базе она есть. В контроллере прописан вот такой код <?php class ControllerModuleFeaturedcarusel extends Controller { public function index($setting) { static $module = 0; $this->load->language('module/featuredcarusel'); if ($setting['displaytitle'] == '1') { $data['heading_title'] = $setting['name']; } else { $data['heading_title'] = false; } $data['class'] = $setting['class']; $data['items'] = $setting['items']; $data['prodview'] = $setting['prodview']; $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/owl.carousel.css'); $this->document->addStyle('catalog/view/javascript/jquery/owl-carousel/featuredcarusel.css'); $this->document->addScript('catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js'); $data['text_tax'] = $this->language->get('text_tax'); $data['text_more'] = $this->language->get('text_more'); $data['button_cart'] = $this->language->get('button_cart'); $data['button_wishlist'] = $this->language->get('button_wishlist'); $data['button_compare'] = $this->language->get('button_compare'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['products'] = array(); if (!$setting['limit']) { $setting['limit'] = 4; } if (!empty($setting['product'])) { $products = array_slice($setting['product'], 0, (int)$setting['limit']); foreach ($products as $product_id) { $categories = $this->model_catalog_product->getCategories($product_id); if ($categories) { $categories_href=""; foreach ($categories as $cat) { $categories_href.="_".$cat['category_id']; } $end_category = array_pop($categories); $categories_info = $this->model_catalog_category->getCategory($end_category['category_id']); $categories_href="/index.php?route=product/category&path=".$categories_info['parent_id'].$categories_href; //$this->data['category_title'] = $categories_info['name']; } $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { // echo $product_info['stock_status_id']."<br />"; if ($product_info['image']) { $image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']); } else { $image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']); } echo $product_info['price']."<br>"; if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$product_info['special']) { $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = $product_info['rating']; } else { $rating = false; } $data['products'][] = array( 'product_id' => $product_info['product_id'], 'thumb' => $image, 'name' => $product_info['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $rating, 'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']), 'stock_status' => $product_info['stock_status'] ); $data['products_category'][] = array( 'id' => $categories_info['category_id'], 'name' => $categories_info['name'], 'href' => $categories_href ); } } } $data['module'] = $module++; if ($data['products']) { if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featuredcarusel.tpl')) { return $this->load->view($this->config->get('config_template') . '/template/module/featuredcarusel.tpl', $data); } else { return $this->load->view('default/template/module/featuredcarusel.tpl', $data); } } } } Если на товаре стоит акция то в $price записывается старая цена, а в $special записывается новая цена Если же на товаре стоит скида то в переменную $price падает просто новая цена, а где взять старую я не могу понять Подскажите как получить старую цену, процент я разумеется посчитаю сам. И ещё подскажите от чего зависит переменная $rating, как она повышается? Я так полагаю от количества купленного товара. но хотелось бы быть уверенным в этом
  3. Всё то же самое только писать надо $data['compare'] = $this->url->link('product/compare'); $this->language->load('product/compare'); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); Вместо $this->data['compare'] = $this->url->link('product/compare'); $this->language->load('product/compare'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); Иными словами первая и третья строка без "this->"
  4. Ох не знаю повторю ли снова, но всё вышло очень даже отлично. Спасибо Вам большое... Я обшерстил google но так и не нашёл ответа на свой вопрос, а потому выкладываю тот код что сделал я, по инструкции thentru. Может кому и пригодится. Для начала из файла catalog/controller/product/search.php я скопировал код // 3 Level Category Search $data['categories'] = array(); $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $data['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } Код я вставил в файл catalog/controller/common/search.php немного дописав вывод // 3 Level Category Search $data['categories'] = array(); $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $data['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } if (isset($this->request->get['category_id'])) { $data['category_id'] = $this->request->get['category_id']; } else { $data['category_id'] = '0'; } Следующим этапом я выдернул <select> из файла catalog/view/theme/default/template/product/search.tpl и вставил его в файл catalog/view/theme/default/template/common/search.tpl добавив для него id <select id="category_id" name="category_id" class="form-control"> <?php foreach ($categories as $category_1) { ?> <?php if ($category_1['category_id'] == $category_id) { ?> <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option> <?php } else { ?> <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option> <?php } ?> <?php foreach ($category_1['children'] as $category_2) { ?> <?php if ($category_2['category_id'] == $category_id) { ?> <option value="<?php echo $category_2['category_id']; ?>" selected="selected"> <?php echo $category_2['name']; ?></option> <?php } else { ?> <option value="<?php echo $category_2['category_id']; ?>"> <?php echo $category_2['name']; ?></option> <?php } ?> <?php foreach ($category_2['children'] as $category_3) { ?> <?php if ($category_3['category_id'] == $category_id) { ?> <option value="<?php echo $category_3['category_id']; ?>" selected="selected"> <?php echo $category_3['name']; ?></option> <?php } else { ?> <option value="<?php echo $category_3['category_id']; ?>"> <?php echo $category_3['name']; ?></option> <?php } ?> <?php } ?> <?php } ?> <?php } ?> </select> И разумеется не забыл добавить в файл catalog/view/javascript/common.js код для передачи ещё 2-х параметров /* Search */ $('#search input[name=\'search\']').parent().find('button').on('click', function() { url = $('base').attr('href') + 'index.php?route=product/search'; var value = $('input[name=\'search\']').val(); var kat = $('#search #category_id option:selected').text(); var category_id = $("#search #category_id").val(); if (value) { url += '&search=' + encodeURIComponent(value); } if (category_id) { url += '&category_id=' + encodeURIComponent(category_id); url += '&sub_category=true'; } location = url; }); Спасибо Вам огромное, thentru. Своим бы умом я не допёр бы до данных действий
  5. Приветствую уважаемые форумчане. Знания у меня по Opencart никакие, но хочется их получить. Возникла задача добавить в строку поиска в заголовке так же выпадающий список с категориями (примерно как в поиске). На скриншоте я сфотографировал. ак вот мне необходимо, что бы строка поиска выглядела как строка ниже. т.е. Сама строка, категории к ней и соответственно кнопка поиска. Полазив в коде я попытался просто скопировать поля из файла catalog/view/theme/default/template/product/search.tpl в файл catalog/view/theme/default/template/common/search.tpl одкако куча нотисов спустила меня с небес на землю. Так же я попробовал вариант залить код в header.tpl, но и здесь меня постигла неудача: нотисов не было, но значение в выпадающем списке не сохранялось. Вдоволь поиздевавшись над шаболном я решил обратиться на форум, ибо побоялся, что запилю какой нить костыль, будет он работать через задницу, а пользы не принесёт. Расскажите как правильнее всего будет реализовать мою задачу, желательно без использования модулей, в крайнем случае что бы модуль был бесплатным... Версия ocStore-2.1.0.2.1
  6. Может из-за регистрации сегодня, а может из-за малого количества сообщений, у меня зелёной стрелочки нет (всё ни как у людей), буду должен...
  7. Вот как всё просто, огромнейшее спасибо. Действительно модуль назывался как "Category Groups" и у него оказался параметр "Category Limit:", который по умолчанию 5. Я заходил в этот модуль ранее, но просто не обращал внимание на данный параметр... Прямо как в басне "А ларчик просто открывался". Вы спасли мой день) P.S. Не могу найти как тут у пользователя репутация меняется
  8. А можно поточнее, ибо пункт категории я изучил, товары тоже по плагинам пробежался, как итог ничего похожего не нашёл
  9. Ну если коротко то всё=) А если поточнее задача состоит в том, что бы понять как выводятся товары вот на этой странице http://starke.cc/index.php?route=latest/latest и вывести правильное их количество. т.е. сейчас в категории "Стеновые материалы" есть несколько товаров: Блок стеновой (с утолщенной стенкой) Камень стеновой (классический) Камень стеновой (для Вентиляционных шахт ) Камень стеновой (перегородочный) Камень стеновой (30% пустотность) Однако мне надо что бы выводилось: Блок стеновой (с утолщенной стенкой) Камень стеновой (классический) Камень стеновой (для Вентиляционных шахт ) Камень стеновой (перегородочный) Камень стеновой (30% пустотность) Кирпич облицовочный (пустотелый, красный) Газобетонный блок (ГС-250) Камень стеновой (полнотелый) Как это реализовано я не знаю, в коде разобраться не смог и потому обратился на форум...
  10. Эх как бы я хотел что бы эти товарищи ответили за свои поделки, однако они походу так специально и делали, что бы потом люди снова обращались к ним за платными правками... И что теперь, никак нельзя разобраться в этой ситуации, нет никаких вариантов. Посоветуйте как бы вы поступили в такой ситуации когда есть сайт и нет помощи от разработчиков???
  11. Прошу прощение за нубский вопрос, но выбора у меня нет. Есть сайт, его делал не я а сторонние разработчики, которые поспешили откреститься от него, как только сайт был сдан. На все дальнейшие ошибки и недочёты разработчики разводили руками и говорили "ваш сайт - вы с ним и удовлетворяйтесь" Ну это пред история... А вопрос такой: На страницу http://starke.cc/index.php?route=latest/latest выводятся материалы. Сначала идёт категория, описание, а потом и сами материалы, но дело в том, что выводятся они не все. По категории Стеновые материалы можно увидеть различия между выводимыми материалами в первом блоке и втором Побегав по форуму я определил, что путь до страницы, которая выводит материалы /catalog/controller/latest/latest.php Открыв страницу я увидел код class ControllerLatestLatest extends Controller { public function index() { $this->document->setTitle($this->config->get('config_title')); $this->document->setDescription($this->config->get('config_meta_description')); $this->data['heading_title'] = $this->config->get('config_title'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/latest/latest.tpl')) { $this->template = $this->config->get('config_template') . '/template/latest/latest.tpl'; $this->data['template'] = $this->config->get('config_template'); } else { $this->template = 'default/template/latest/latest.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } Где то видел, на этом же форуме, что код opencart понятен для любого программиста. Судя по всему я грузчик( $this->config->get('config_title'); Здесь нашёл, что это значение из таблицы настроек редактируется в админке. система->настройки. Однако у себя в админке такого не нашёл, но понял что это вроде как системные $this->data['heading_title'] Тут я предположил, что это вывод из базы Однако у себя в базе я не нашёл поля "heading_title" $this->template = 'default/template/latest/latest.tpl'; А вот этот код предполагает ссылку на какой то файл, однако ничего подобного на сервере я не нашёл. По итогу я окончательно запутался и понял, что без знающих мозгов я не обойдусь. Помогите новичку не только выполнить поставленную задачу(сделать правильный вывод материалов), но и разобраться в непонятном (пока) для меня коде...
×
×
  • Створити...

Important Information

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