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

Fix305

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

    917
  • З нами

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

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

  1. нету такой возможности, разве что напрямую в описание написать и сделать отдельным товаром этот набор
  2. в ..catalogcontrollerproductmanufacturer.php вставить $this->data['img_man'] = $manufacturer_info['image'];после $this->data['heading_title'] = $manufacturer_info['name']; в ..catalogviewthemedefaulttemplateproductmanufacturer.tpl по вкусу вставить <img src="image/<? echo $img_man; ?>" />
  3. а чего его искать то? - я тут =)бесплатную доставку могу сделать (причем бесплатно), ну а кому захочется может подонатить)я так понимаю бесплатная доставка она всегда 0, независимо от суммы, веса и погодных условий?)
  4. "50" - увеличивает на 50%"-50" - уменьшает на 50% (правда уже от увеличенной цены, так что процент придется пересчитывать)для экспериментов желательно сделать бекап базы)
  5. в ..adminviewtemplatecatalogproduct_list.tpl: встивить <table class="list"> <tr> <td width="140px" align="center">Изменить цену на:</td> <td> <form action="<? echo $addprice; ?>" method="POST"> <input type="text" name="nacenka" /> % <input type="submit" value="ОК" /> </form> </td> </tr> </table>после <div class="content"> в ..admincontrollercatalogproduct.php вставить $this->data['addprice'] = HTTPS_SERVER . 'index.php?route=catalog/product/addprice&token=' . $this->session->data['token'] . $url;после $this->data['insert'] = HTTPS_SERVER . 'index.php?route=catalog/product/insert&token=' . $this->session->data['token'] . $url;$this->data['copy'] = HTTPS_SERVER . 'index.php?route=catalog/product/copy&token=' . $this->session->data['token'] . $url; $this->data['delete'] = HTTPS_SERVER . 'index.php?route=catalog/product/delete&token=' . $this->session->data['token'] . $url; в этот же файл вставить функцию public function addprice() { $this->load->model('catalog/product'); $addPrice = 1+($this->request->post['nacenka']/100); $this->model_catalog_product->addPrice($addPrice); $this->redirect(HTTPS_SERVER . 'index.php?route=catalog/product&token=' . $this->session->data['token']); } в ..admin/model/catalog/product.php вставить public function addPrice ($nacenka) { $this->db->query("UPDATE oc_product SET price = price*'". (float)$nacenka ."'"); }
  6. ну так настрой в админке (в настройках магазина ставишь можно покупать при отсутствии на складе, и указываешь нужное "Состояние склада", при отсутствии на складе)
  7. в договоре пункт прописывай - что изменение цен происходит с уведомлением за [..] дней.
  8. ну вообще это запрос напрямую в базу данных (через phpmyadmin например и ему подобные СУБД)ну а если уж так действительно надо (и не хочется лазить по всяким phpmyadmin'ам), то через пару-тройку дней могу написать модуль для изменения через админку, благо ничего сложного в этом нет.
  9. Сейчас, к сожалению, нету времени - завтра с утра уезжаю на сборы (спортивные), как только чуточку там освоюсь (денек-2) займусь твоей просьбой, если ее, конечно, уже не решат =)
  10. вполне очевиден =) UPDATE product SET price=price*1.5
  11. дай купон только Ивану Ивановичу, а другим не давай.а копать можно в саду =)
  12. для 1.4.0 в ..catalogcontrollerproductcategory.php блок foreach ($results as $result) {.....}меняем на foreach ($results as $result) { if ($result['image']) { $image = $result['image']; } else { $image = 'no_image.jpg'; } // $options_arr = array(); $options = $this->model_catalog_product->getProductOptions($result['product_id']); echo $result['product_id'].' - '; foreach ($options as $option) { $option_value_data = array(); foreach ($option['option_value'] as $option_value) { $option_value_data[] = array( 'option_value_id' => $option_value['product_option_value_id'], 'name' => $option_value['name'], 'price' => (float)$option_value['price'], 'prefix' => $option_value['prefix'] ); } $options_arr[] = array( 'option_id' => $option['product_option_id'], 'name' => $option['name'], 'option_value' => $option_value_data ); unset($option_value_data); } // $rating = $this->model_catalog_review->getAverageRating($result['product_id']); $special = FALSE; $discount = $this->model_catalog_product->getProductDiscount($result['product_id']); if ($discount) { $price = $this->currency->format($this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); $special = $this->model_catalog_product->getProductSpecial($result['product_id']); if ($special) { $special = $this->currency->format($this->tax->calculate($special, $result['tax_class_id'], $this->config->get('config_tax'))); } } $this->data['products'][] = array( 'id' => $result['product_id'], 'name' => $result['name'], 'model' => $result['model'], 'rating' => $rating, 'stars' => sprintf($this->language->get('text_stars'), $rating), 'thumb' => image_resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'price' => $price, 'special' => $special, 'options_arr' => $options_arr, // 'href' => $this->model_tool_seo_url->rewrite($this->url->http('product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])) ); unset ($options_arr); // } в ..catalogviewthemedefaulttemplateproductcategory.tpl блок <td width="25%"><?php if (isset($products[$j])) { ?>.....<?php } ?></td>меняем на <td width="25%"><?php if (isset($products[$j])) { ?> <form action="" method="post" enctype="multipart/form-data" id="formproduct_<? echo $products[$j]['id']; ?>"> <a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" id="image<? echo $products[$j]['id']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a> <a href="<?php echo $products[$j]['href']; ?>"><?php echo $products[$j]['name']; ?></a> [color= #999; font-size: 11px;]<?php echo $products[$j]['model']; ?>[/color] <?php if ($display_price) { ?> <?php if (!$products[$j]['special']) { ?> [color= #900; font-weight: bold;]<?php echo $products[$j]['price']; ?>[/color] <?php } else { ?> [color= #900; font-weight: bold; text-decoration: line-through;]<?php echo $products[$j]['price']; ?>[/color] [color= #F00;]<?php echo $products[$j]['special']; ?>[/color] <?php } ?> <?php } ?> <?php if ($products[$j]['rating']) { ?> <img src="catalog/view/theme/default/image/stars_<?php echo $products[$j]['rating'] . '.png'; ?>" alt="<?php echo $products[$j]['stars']; ?>" /> <?php } ?> <?php if ($products[$j]['options_arr']) { ?> <?php foreach ($products[$j]['options_arr'] as $option) { ?> <?php echo $option['name']; ?>: <select name="option[<?php echo $option['option_id']; ?>]"> <?php foreach ($option['option_value'] as $option_value) { ?> <option value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> <?php echo $option_value['prefix']; ?><?php echo $option_value['price']; ?> <?php } ?> </option> <?php } ?> </select> <?php } ?> <?php } ?> <input type="text" name="quantity" /> <input type="hidden" name="product_id" value="<? echo $products[$j]['id']; ?>" /> [url="#"]);return false;" class="button"><span>В корзину</span>[/url] </form> <?php } ?></td> в ..catalogviewthemedefaulttemplatemodulecart.tpl снизу добавить по смыслу: function buyProduct(id){ $.ajax({ type: 'post', url: 'index.php?route=module/cart/callback', dataType: 'html', data: $('#formproduct_'+id+' :input'), success: function (html) { $('#module_cart .middle').html(html); }, complete: function () { var image = $('#image'+id).offset(); var cart = $('#module_cart').offset(); $('#image'+id).before('<img src="' + $('#image'+id).attr('src') + '" id="temp" style="position: absolute; top: ' + image.top + 'px; left: ' + image.left + 'px;" />'); params = { top : cart.top + 'px', left : cart.left + 'px', opacity : 0.0, width : $('#module_cart').width(), heigth : $('#module_cart').height() }; $('#temp').animate(params, 'slow', false, function () { $('#temp').remove(); }); } }); } вроде ничего не забыл) единственный недочет который заметил, если не ввести количество то в корзину товар не добавится, исправить легко (либо в контроллере прописать если нету значения то количество 1, либо тупо прописать в поле input стартовое значение 1), но чет я устал на 10дюймовом мониторе что либо делать, так что допиливайте сами) ну и при желании для остальных страничек делаем аналогично)
  13. перекодируйте в UTF-8 не будет квадратиков)честно говоря я и не предлагал законченное решение, это всего лишь направление куда надо копать, а дальше уж сами. Готовый магазин по Вашему ТЗ на форуме не сделают =)
  14. расхвалили то =) вот вам за это) EMS модуль (только Россия), вроде даже работает (1.4.7 - 0.4) тест драйв для городов куда возможна отправка: кто захочет дополнить список городов, а как оказалось в базе не весь список, массив городов можно взять отсюда:http://emspost.ru/api/rest/?method=ems. ... plain=true и пихать их сюда админка - система - локализация - регионы. бекап не забываем, возможны ошибки =) ems_module.zip
  15. теоретически если отключить проверку config_email в в ..admincontrollersettingsetting.php /*$pattern = '/^[A-Z0-9._%-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9].[A-Z]{2,6}$/i';if ((strlen(utf8_decode($this->request->post['config_email'])) > 32) || (!preg_match($pattern, $this->request->post['config_email']))) { $this->error['email'] = $this->language->get('error_email');}*/то можно в админке перечислить все email'ы через запятую, и должно работать.
  16. ./catalog/controller/module/featured.php - контроллер./catalog/view/theme/default/template/module/featured.tpl - шаблон
  17. для того чтобы скрыть цену или написать что надо выбрать опции делаем следующее: в ..catalogviewthemedefaulttemplateproductcategory.tpl находим <?php echo $products[$j]['price']; ?>меняем на <?php if ($products[$j]['price'] == 0) { echo "Чтоб узнать цену выберите опции";} else {echo $products[$j]['price'];}; ?> аналогично надо сделать с шаблонами поиска, главной страницы и где там еще выводится каталог товаров. ну и ко всем опциям в обязаловку надо написать цену, а то продадите товар за 0 рубликов) чтоб не смущала цена 0 при просмотре товара в файле ..catalogviewthemedefaulttemplateproductproduct.tpl удаляем <?php if ($display_price) { ?> <tr> <td>[b]<?php echo $text_price; ?>[/b]</td> <td><?php if (!$special) { ?> <?php echo $price; ?> <?php } else { ?> <span style="text-decoration: line-through;"><?php echo $price; ?></span> [color= #F00;]<?php echo $special; ?>[/color] <?php } ?></td> </tr> <?php } ?>хотя при желании можно JavaScript'ом выводить туда цену в зависимости от выбранной опции, но это из другой сказки)
  18. Тоже недавно задумывался про EMS и наложенный платеж. В принципе можешь выложить, попробую что нибудь придумать (обещать 100% не буду)
  19. не все так просто, к сожалению. При первом переходе на другую страничку, менюшка будет сворачиваться в первоначальный вид, что немного пересекается с юзабилити. Так что проблема здесь не как сделать сам эффект, а как его сделать правильно.
  20. а не проще просто в шаблоне написать нужную информацию, без ckeditor'a? не каждый же день, наверно, будет редактироваться эта статья) ну раз уж так хочется, то делаем вот так: в файле ..catalogcontrollerinformationcontact.php: сразу после public function index() {вставить это $this->load->model('catalog/information');$information_info = $this->model_catalog_information->getInformation('4'); // здесь указываем id статьи, а в админке ее отключаем if ($information_info) { $this->data['description'] = html_entity_decode($information_info['description']);} в ..catalogmodelcataloginformation.php: меняем public function getInformation($information_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "information i LEFT JOIN " . DB_PREFIX . "information_description id ON (i.information_id = id.information_id) LEFT JOIN " . DB_PREFIX . "information_to_store i2s ON (i.information_id = i2s.information_id) WHERE i.information_id = '" . (int)$information_id . "' AND id.language_id = '" . (int)$this->config->get('config_language_id') . "' AND i2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND i.status = '1'"); return $query->row; }на public function getInformation($information_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "information i LEFT JOIN " . DB_PREFIX . "information_description id ON (i.information_id = id.information_id) LEFT JOIN " . DB_PREFIX . "information_to_store i2s ON (i.information_id = i2s.information_id) WHERE i.information_id = '" . (int)$information_id . "' AND id.language_id = '" . (int)$this->config->get('config_language_id') . "' AND i2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); return $query->row; } в ..catalogviewthemedefaulttemplateinformationcontact.tpl: вставить куда нравится <? echo $description; ?>
  21. в ..catalogviewthemedefaulttemplateproductproduct.tpl найти (у меня 53 строка): <?php if ($options) { ?> заменить на: <?php if ($options && ($price == 0)) { ?> ток честно говоря затея не очень, в каталоге будут наверно странно выглядеть товары с ценой 0. Хотя цену можно там скрыть.
  22. где ставите и где появляется надпись?поподробнее бы - мы волшебники, а не экстрасенсы =)
  23. не стоит так себя критиковать) делал по инструкции с офф сайта: <!-- m -->http://tobia.github.com/CrossSlide/<!-- m --> 1) кинул скрипт в папку ..catalogviewjavascriptjquery.cross-slide.min.js 2) в header.tpl добавил <script src="catalog/view/javascript/jquery.cross-slide.min.js" type="text/javascript"></script> 3) создал папку slider в ../image/ (не та image что ..catalogviewthemedefault ) и закинул туда 4 картинки 4) ну и добавить по вкусу куда надо <div id="slideshow" style="width: 550px; height: 200px;"></div> <script> $('#slideshow').crossSlide({ sleep: 2, fade: 1 }, [ { src: '/image/slider/1.jpg' }, { src: '/image/slider/2.jpg' }, { src: '/image/slider/3.jpg' }, { src: '/image/slider/4.jpg' } ]) </script> вроде ничего не забыл

×
×
  • Створити...

Important Information

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