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

Baco

Users
  • Posts

    2,247
  • Joined

  • Last visited

Everything posted by Baco

  1. Привязать в админке: "код купона --- товар с "0" ценой", в самом же контроллере, где идёт добавление в корзину, найти условие: if (isset($this->request->post['coupon'])) { //и пишите функцию проверки по таблице привязки "код купона --- товар с "0" ценой $this->load->model('checkout/coupon'); $bonus = $this->model_checkout_coupon->getCouponToProduct($this->request->post['coupon']); //Потом просто добавляете в корзину if ($bonus) { $this->cart->add($bonus, 1); } }
  2. у меня, например, без лишних проблем и Notice работает...
  3. А чем плохо, сделать по такому типу в контроллере header.php после protected function index() { написать: $detect = new Mobile_Detect(); if ($detect->isMobile()){ $this->document->addStyle('catalog/view/theme/default/stylesheet/mobile_stylesheet.css'); } elseif ($detect->isTablet()) { $this->document->addStyle('catalog/view/theme/default/stylesheet/tablet_stylesheet.css'); } else { $this->document->addStyle('catalog/view/theme/default/stylesheet/stylesheet.css'); }
  4. $this->children = array('module/language'); добавить в контроллер footer.php в tpl-ке же вывести в любом месте: <?php echo $language; ?> и наступит кармический баланс ...
  5. проверьте, есть ли языковые файлы обоих модулей в каталоге admin\language\russian\module\
  6. Привязку id заказа, к скрытым комментариям\отзывам по конкретному id товара и id пользователя... не встречал такого модификатора + рассылку подобного на мыло, только создавать... можете поискать, возможно и есть решения.
  7. Такие вещи индивидуально разрабатываются по заранее описанному алгоритму.
  8. Я бы переиначил ответ, что каждый, уважающий себя разработчик, должен поставить "заглушку", в случае не подключенной библиотеки и подключения альтернативного метода или на крайний случай без него, что бы минимум от пользователя ненужных действий требовать, тем более на шаге установки...
  9. В самом контроллере header.php, как написал chukcha, сделайте условие типа: if (!$this->customer->isLogged()) { $this->redirect($this->url->link('account/login', '', 'SSL')); }
  10. можно жизнь сессии продлить в system\library\session.php session_set_cookie_params(time()+60*60*24*90, '/');
  11. Можно реализовать, был бы верстальщик смекалистый, да и вопросы с проплатами, бронированием и логикой доставки прописать бы детальней, а так, то котировка, как описал Pacha, от 1 К американских енотов, за менее сумму на фрилансе можете поискать (но уверен на 75% что вернётесь сюда, без денег и с кучей говнокода), если предложение в силе, то составьте детальней ТЗ, и можно приступать к расписанию этапов реализации проэкта.
  12. ну 2-й селектор корзины, добавить в файлик common.js в функцию addToCart, а так, то не понятно что у вас там и как закодировано...
  13. Во первых: нахуа (это в принципе риторический вопрос), во вторых: ссылку на пациента (то есть сайт), тогда можно о чем то конкретном говорить, а так, то что пальцем в небо...
  14. В начале public function add() { добавляете логгер в журнал ошибок по типу: $this->log->write('POST_data_addToCart:'. print_r($this->request->post,true)); и после добавления в корзину, смотрите на "выхлоп" в журнале... так как сам скрипт добавления, работает по типу: post и get тут не при чем... P.S. проверил только что на Chrome:
  15. $check_cat = $this->checkCat($result['product_id']); if ($check_cat) { $path = $check_cat; } else { $path = 0; } ... 'href' => $this->url->link('product/product', 'path=' . (int)$path . '&product_id=' . $result['product_id']) private function checkCat($product_id) { $product_id = (int)$product_id; if ($product_id < 1) return false; static $path = null; if (!is_array($path)) { $path = $this->cache->get('product.seopath'); if (!is_array($path)) $path = array(); } if (!isset($path[$product_id])) { $query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . $product_id . "' ORDER BY main_category DESC LIMIT 1"); $path[$product_id] = $this->getPathByCategory($query->num_rows ? (int)$query->row['category_id'] : 0); $this->cache->set('product.seopath', $path); } return $path[$product_id]; } private function getPathByCategory($category_id) { $category_id = (int)$category_id; if ($category_id < 1) return false; static $path = null; if (!is_array($path)) { $path = $this->cache->get('category.seopath'); if (!is_array($path)) $path = array(); } if (!isset($path[$category_id])) { $max_level = 10; $sql = "SELECT CONCAT_WS('_'"; for ($i = $max_level-1; $i >= 0; --$i) { $sql .= ",t$i.category_id"; } $sql .= ") AS path FROM " . DB_PREFIX . "category t0"; for ($i = 1; $i < $max_level; ++$i) { $sql .= " LEFT JOIN " . DB_PREFIX . "category t$i ON (t$i.category_id = t" . ($i-1) . ".parent_id)"; } $sql .= " WHERE t0.category_id = '" . $category_id . "'"; $query = $this->db->query($sql); $path[$category_id] = $query->num_rows ? $query->row['path'] : false; $this->cache->set('category.seopath', $path); } return $path[$category_id]; } как то так...
  16. Чего то скрины и ссылка на топик офф форума не в тему, дайте "выхлоп", который передается методом $_POST на функцию add() контроллера checkout_cart
  17. Ну не могут на каждый такой вот персональный вопрос, давать ответ. Вы не один ждёте, выплаты были постоянно, но с возможными задержками, так как декларировать надо это всё. Наберитесь терпения, единственное что могу Вам пожелать.
  18. Дизайнер - рисует PSD-шки, а верстальщик - собирает их на сайте... и я так понял, что с верстальщиком вопрос не решен ?
  19. Можно тюнинговать запрос на вывод в модели товара, то есть добавить проверку текущего id товара, на "непривязанность" к категории, вот как я это сделал с помощью функции: public function getProductsByNullCatId() { $query = $this->db->query("SELECT `" . DB_PREFIX . "product`.product_id, pd.name FROM `" . DB_PREFIX . "product` LEFT JOIN " . DB_PREFIX . "product_description pd ON (`" . DB_PREFIX . "product`.product_id = pd.product_id) LEFT JOIN `" . DB_PREFIX . "product_to_category` on `" . DB_PREFIX . "product`.product_id = `" . DB_PREFIX . "product_to_category`.product_id WHERE `" . DB_PREFIX . "product_to_category`.product_id is null AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY pd.name ASC"); return $query->rows; }
  20. Если не ошибаюсь, то в карте сайта будет фигурировать, хотя точно не скажу, ещё может фигурировать, если установлен модификатор "все товары магазина", больше мест, в которых может всплыть такой не привязанный товар - не вспомню.
  21. Почти реализовал, вернее через $.each( как раз получилось то, что задумывалось, теперь завис на первостепенном этапе - это индексе для ddData[], если автоинкремент ставлю, то обнуляет после каждого forech товара... но это несущественно, как то придумаю уж... как реализую, влеплю контрольно репу, за подсказку по jquery... P.S. Сам забуксовал... вынес начальное значение инкремента за массив и всё стало как надо...
  22. Та как бы систематизированного метода не знаю, чисто интуиция + логика...
  23. Логика хороша, уже ближе к сути, но всё равно, проблема тут: var data = '&' + name + '='+ value; 1. Данные - не массив объектов JSON, они - "вытяжка" из ddData = $('#htmlselect-' + option_id).data('ddslick'); 2. Как разбить по идентификаторам ddData, в зависимости от опции и соответственно как добавить (пусть сам уж jquery разбирается) в data значения: [option] => Array ( [227] => 18, //option #1 ..[ ddData_1.selectedData.name] => ddData_1.selectedData.value, [228] => 22 //option #2 ..[ ddData_2.selectedData.name] => ddData_2.selectedData.value; )
  24. var ddData = $('#htmlselect-' + option_id).data('ddslick'); - входные данные смотреть мануал по работе скрипта, если писать по "индостайлу", то получается так: var ddData_1 = $('#htmlselect-227').data('ddslick'); // Тут получаем набор объектов через библиотеку опции по ID 227 var ddData_2 = $('#htmlselect-228').data('ddslick'); // Тут получаем набор объектов через библиотеку опции по ID 228 if (ddData_1 !== null && ddData_1 !== undefined) { // проверочка... var name_1 = ddData_1.selectedData.name; // option=[227] var value_1 = ddData_1.selectedData.value; // value 18 var data_1 = '&' + name_1 + '='+ value_1; // формирование строки для addToCart } if else (ddData_2 !== null && ddData_2 !== undefined) { var name_2 = ddData_2.selectedData.name; // option=[228] var value_2 = ddData_2.selectedData.value; // value 12 var data_2 = '&' + name_2 + '='+ value_2; // формирование строки для addToCart } else { var data_1 = ''; var data_2 = ''; } вот как бы так не говнокодить, а выбрать и "смержить" значения все в data, кстати объектами не получится послать, надо только в массиве опции высылать постом...
×
×
  • 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.