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

Leaderboard

Popular Content

Showing content with the highest reputation on 03/17/2011 in all areas

  1. Добавление дополнительных полей для продукта Q: Как добавить дополнительное поле для продукта? A: Вам нужно сделать ряд изменений: 0) Определится что хотим сделать :) К примеру, хотим добавить дополнительное поле "Цена за:" "шт.". 1) Приступим. Сначала придумаем алиас для нашего поля. К примеру price_for. а) Определяемся в каком формате будут храниться данные. В нашем случае это будет varchar(64) (символьный). б) Добавляем новый столбец в таблицу: ALTER TABLE `имя_таблицы` ADD `price_for` varchar(64) NOT NULL; 2) Далее говорим админ панеле OpenCart'а о существовании этого столбца. То есть, нам нужно: а) "обновить" в модели продукта запросы к нашей БД. Открываем /admin/model/catalog/product.php мы увидем такой вот запросик: в строке 5 (или 6):$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', measurement_class_id = '" . (int)$data['measurement_class_id'] . "', status = '" . (int)$data['status'] . "',tax_class_id = '" . (int)$data['tax_class_id'] . "', date_added = NOW()"); Это основной запрос из админки для добавления товара. Нам нужно добавить нашу переменную price_for. Так $this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', price_for = '" . (float)$data['price_for'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', measurement_class_id = '" . (int)$data['measurement_class_id'] . "', status = '" . (int)$data['status'] . "',tax_class_id = '" . (int)$data['tax_class_id'] . "', date_added = NOW()"); А также правим запрос обновления продукта (когда жмём изменить продукт). тотже файл. строка 87(88, 89):$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "',manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', price_for = '" . (float)$data['price_for'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', measurement_class_id = '" . (int)$data['measurement_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'"); б) добавляем проверку заносимых данных в /admin/controller/catalog/product.php. Сначала укажем о существовании текстовой переменной: строка 440:$this->data['entry_price'] = $this->language->get('entry_price');Добавляем ниже своё $this->data['entry_price_for'] = $this->language->get('entry_price_for');И самое главное, добавляем проверку вносимых данных. Смотрим: строка 679 if (isset($this->request->post['price'])) { $this->data['price'] = $this->request->post['price']; } else if (isset($product_info)) { $this->data['price'] = $product_info['price']; } else { $this->data['price'] = ''; }Ниже добавляем своё if (isset($this->request->post['price_for'])) { $this->data['price_for'] = $this->request->post['price_for']; } else if (isset($product_info)) { $this->data['price_for'] = $product_info['price_for']; } else { $this->data['price_for'] = ''; }в) теперь нужно поправить шаблон в аминке. Что бы мы смогли увидеть поле куда забивать всё это дело. Открываем /admin/view/template/catalog/product_form.tpl строка 141 <tr> <td><?php echo $entry_price; ?></td> <td><input type="text" name="price" value="<?php echo $price; ?>" /></td> </tr>Вставляем наше поле: <tr> <td><?php echo $entry_price_for; ?></td> <td><input type="text" name="price_for" value="<?php echo $price_for; ?>" /></td> </tr>г) Ну и самое главное! в файле /admin/language/russian/catalog/product.phpОписываем какой текст мы будем видеть: $_['entry_price_for'] = 'Цена за:';Всё! С админкой покончено. Можно добавлять товар.2) Теперь делаем самое главное - показуем покупателям єто поле =) а) Говорим продуктам о существовании поля. Открываем файлик /catalog/controller/product/product.php строка 122$this->data['text_price'] = $this->language->get('text_price');Ниже добавляем наше: $this->data['text_price_for'] = $this->language->get('text_price_for');а также вносим переменную в масив: строка 430'price' => $price,добавляем 'price_for' => $price_for,Забыл.... нужно добавить $this->data['price_for'] = $product_info['price_for'];гдето в строке 320б) Добавляем в шаблон. Открываем /catalog/view/theme/ваша_тема/template/product/product.tpl строка 18 <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>ниже добавляем наше <tr> <td><b><?php echo $text_price_for; ?></b></td> <td><?php echo $price_for; ?></td> </tr>в) Ну и напоследок добавляем в файл языка /catalog/language/russian/product/product.php $_['text_price_for'] = 'Цена за:'; Вот и всё! Пользуйтесь. PS. Вопрос к разработчикам. Как мне в шаблоне сделать такую проверку: Если заходит пользователь группы А то делаем что то, а если заходит пользователь из группы Б то делаем чёто другое.
    1 point
  2. Наверное, многие видели такую рекламу; в углу страницы - загнутый уголок, подводишь к нему курсор - и он отгибается, открывая пространство с информацией... Сделаем тоже самое в нашем магазине. Пример Зарание, прошу прощения у администрации сайта за использования в качастве примера Символики/Логотипа... 1). Открываем файл catalog/view/theme/ВАША ТЕМА/template/common/header.tpl и перед закрывающимся тегом </head> вставляем код: <script type="text/javascript">$(document).ready(function(){$("#pageflip").hover(function() {$("#pageflip img , .msg_block").stop().animate({width: '307px',height: '319px'}, 500);} , function() {$("#pageflip img").stop().animate({width: '50px',height: '52px'}, 220);$(".msg_block").stop().animate({width: '50px',height: '50px'}, 200);});});</script> 2). Далее (в этом же файле), после тега <body> вставляем этот код: <div id="pageflip"><a href="http://myopencart.ru/download.php"><img src="catalog/view/theme/ВАША_ТЕМА/image/page_flip.png" alt="" /><span class="msg_block">Скачать русский OpenCart</span></a></div> 3). Затем, открываем файл со стилями нашей темы catalog/view/theme/ВАША ТЕМА/stylesheet/stylesheet.css и в самом конце добавляем три блока: #pageflip {position: absolute;top: 0px;right: 0px;}#pageflip img {width: 50px; height: 52px;z-index: 99;position: absolute;top: 0px;right: 0px;-ms-interpolation-mode: bicubic;}#pageflip .msg_block {width: 50px; height: 50px;position: absolute;z-index: 50;top: 0px;right: 0px;background: url('../image/download.png') no-repeat right top;text-indent: -9999px;} 4). Теперь нам надо скопировать в папку catalog/view/theme/ВАША ТЕМА/image два png файла: (ссылка ниже) download.png и page_flip.png. Всё. P.S. Убедительная просьба отписаться у кого браузеры Mozilla, Safari, Netscape, Google Chrome и прочие, на проверку совместимости. Работает в IE6.0 и Opera 11.01. Архив: image.zip
    1 point
  3. Материал взят с оф.сайта и переработан для легкого восприятия . Например 1. Редактируем: catalog/controller/product/product.php находим: $product_info = $this->model_catalog_product->getProduct($product_id);после добавляем: $this->data['product_info'] = $product_info; 2. Редактируем: catalog/view/theme/YOURTHEME/template/product/product.tplнаходим: <tr> <td>[b]<?php echo $text_model; ?>[/b]</td> <td><?php echo $model; ?></td></tr>после добавляем: <tr> <td>[b]SKU:[/b]</td> <td><?php echo $product_info['sku']; ?></td></tr>Для добавления других стандартных аттрибутов заменяете строку: <?php echo $product_info['xxx']; ?>Где "xxx" будет принимать вид определенных имен переменных базы данных:$product_info['weight'] $product_info['sku'] $product_info['location'] $product_info['length'] и т.п.
    1 point
  4. ну если сильно нужно (лично мне не нравится...:( ) ...вот вам "толчок"...http://htmlbook.ru/css/background-image http://htmlbook.ru/css/background-repeat а чтоб ротатор был...думаю можно использовать вот этот код...(использовал раньше как ротатор баннеров...:))... <!-- Image slider start --> <p style="display:none"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script><script type="text/javascript">$(document).ready(function() {$('.slideshow').cycle({fx: 'fade'});});</script></p> <div class="slideshow" style="width:550px;height:200px;"> <a href=""><img height="200" src="./image/data/slide1.jpg" width="550" /></a> <a href="ваша_ссылка1"><img height="200" src="./image/data/slide2.jpg" width="550" /></a> <a href="ваша_ссылка2"><img height="200" src="./image/data/slide3.jpg" width="550" /></a><a href="ваша_ссылка3"><img height="200" src="./image/data/slide4.jpg" width="550" /></a></div> <!-- / Image slider end --> надеюсь что у вас всё получится ...для наглядности скиньте потом ссылку...интересно посмотреть что получилось...;)
    1 point
  5. Неправильно поняли :-) 1. Идете в Дополнения-->Оплата Там включаете метод оплаты - "Квитанция Сбербанка РФ". 2. Затем идете правее и жмете ссылку "Изменить". 3. Вбиваете Ваши реквизиты, которые Вам должны были выдать в банке, после открытия счета. 4. Жмете сохранить. Теперь будет печататься квитанция для оплаты по указанным реквизитам. Так же вы можете вынести эти реквизиты в контактную информацию, чтобы люди могли переводить на них ден. средства доступным для них способом. Неужели не понятно и теперь? :-)
    1 point
  6. https://opencartforum.com/topic/2039-%d0%bf%d0%be%d0%bc%d0%be%d0%b3%d0%b8%d1%82%d0%b5-%d0%bf%d0%be%d0%bd%d1%8f%d1%82%d1%8c-%d0%bc%d0%be%d0%b6%d0%b5%d1%82-%d0%bb%d0%b8-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d0%b0%d1%8f-%d0%b0%d0%b4%d0%bc%d0%b8%d0%bd%d0%ba%d0%b0-%d1%8d/page__view__findpost__p__12319
    1 point
  7. это не фон, а баннер меняющийся, только большой. А вообще нафига это нужно? Внимание отвлекать от контента? Можно гипнотизирующую спираль какую-нибудь вставить, чтобы клиент не смог отказаться от покупки :)
    1 point
  8. могу вас успокоить....в скором времени он проиндексирует ваши страницы...у меня например неделю показывало лишь главную страницу проиндексированной, после этого за пару дней все страницы были проиндексированны....;)
    1 point
  9. Можно...Поставьте запятую после строки: 'easingOut' : 'easeInBack' И добавьтеэтот код: 'titlePosition' : 'over', 'titleFormat' : function(title, currentArray, currentIndex, currentOpts) { return '<span id="fancybox-title-over">Изображение ' + (currentIndex + 1) + ' из ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>'; } Значение поля 'over' в строке 'titlePosition' можете поменять на: 'inside' или 'outside'. И ещё... Если, Вы хотите изменить цвет затемнения страницы - во время просмотра, добавьте эти две строки: 'overlayColor' : '#7fc7ff', //* Цвет затемнения 'overlayOpacity' : 0.6, //* Сила затемнения, (допустимые значения от 0.1 до 1) 0.1 - самое слабое, 1 - самое сильное
    1 point
×
×
  • 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.