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

Undertaker

Newbie
  
  • Posts

    11
  • Joined

  • Last visited

Recent Profile Visitors

1,071 profile views

Undertaker's Achievements

Apprentice

Apprentice (3/14)

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

Recent Badges

3

Reputation

  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'; А вот этот код предполагает ссылку на какой то файл, однако ничего подобного на сервере я не нашёл. По итогу я окончательно запутался и понял, что без знающих мозгов я не обойдусь. Помогите новичку не только выполнить поставленную задачу(сделать правильный вывод материалов), но и разобраться в непонятном (пока) для меня коде...
Guest
×
  • 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.