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

Fix305

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

    917
  • З нами

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

Повідомлення, опубліковані користувачем Fix305

  1. в ..wwwcatalogmodelcatalogproduct.php вставить:

    public function getProductsArr($arr) {		$query = $this->db->query("SELECT *, pd.name AS name, p.image AS image, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p.product_id IN (" . $arr . ") ORDER BY p.product_id ASC");				return $query->rows;	}

    в ..wwwcatalogcontrollercommonhome.php

    заменить

    foreach ($this->model_catalog_product->getLatestProducts(8) as $result) {
    на

    foreach ($this->model_catalog_product->getProductsArr('43, 46, 41, 44') as $result) {

    соответственно вписываем нужные ид

  2. а чего его искать то? - я тут =)бесплатную доставку могу сделать (причем бесплатно), ну а кому захочется может подонатить)я так понимаю бесплатная доставка она всегда 0, независимо от суммы, веса и погодных условий?)

  3. в ..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 ."'");	}
    • +1 1
  4. ну вообще это запрос напрямую в базу данных (через phpmyadmin например и ему подобные СУБД)ну а если уж так действительно надо (и не хочется лазить по всяким phpmyadmin'ам), то через пару-тройку дней могу написать модуль для изменения через админку, благо ничего сложного в этом нет.

  5. Fix305, взываю к тебе о помощи ;)

    Сейчас, к сожалению, нету времени - завтра с утра уезжаю на сборы (спортивные), как только чуточку там освоюсь (денек-2) займусь твоей просьбой, если ее, конечно, уже не решат =)
  6. для 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дюймовом мониторе что либо делать, так что допиливайте сами)

    ну и при желании для остальных страничек делаем аналогично)

  7. Появляются квадратики =)Ну и внутри возле выбора опций товара цена отображается так же цыфрой ноль =Решение и задумка и правда не самая лучшая, потому что если стереть это поле то товары которые не имеют Атрибутов - остаются без отображения цены, на последней страничке (страничке конкретного товара). =)

    перекодируйте в UTF-8 не будет квадратиков)честно говоря я и не предлагал законченное решение, это всего лишь направление куда надо копать, а дальше уж сами. Готовый магазин по Вашему ТЗ на форуме не сделают =)
  8. расхвалили то =)

    вот вам за это)

    EMS модуль (только Россия), вроде даже работает (1.4.7 - 0.4)

    тест драйв для городов куда возможна отправка:

    abakan - ok

    aginskoe - fail

    anadyr - ok

    arhangelsk - ok

    astrahan - ok

    barnaul - ok

    belgorod - ok

    birobidzhan - ok

    blagoveshhensk - ok

    brjansk - ok

    cheboksary - ok

    cheljabinsk - ok

    cherkessk - ok

    chita - ok

    dudinka - ok

    elista - ok

    gomo-altajsk - fail

    gorno-altajsk - ok

    groznyj - ok

    irkutsk - ok

    ivanovo - ok

    izhevsk - ok

    kaliningrad - ok

    kaluga - ok

    kasnodar - fail

    kazan - ok

    kemerovo - ok

    khabarovsk - ok

    khanty-mansijsk - ok

    kostroma - ok

    krasnodar - ok

    krasnojarsk - ok

    kudymkar - fail

    kurgan - ok

    kursk - ok

    kyzyl - ok

    lipeck - ok

    magadan - ok

    mahachkala - ok

    majkop - ok

    moskva - ok

    murmansk - ok

    nalchik - ok

    narjan-mar - ok

    nazran - ok

    nizhnij-novgorod - ok

    novgorod - fail

    novosibirsk - ok

    omsk - ok

    orel - ok

    orenburg - ok

    palana - fail

    penza - ok

    perm - ok

    petropavlovsk-kamchatskij - ok

    petrozavodsk - ok

    pskov - ok

    rostov-na-donu - ok

    rjazan - ok

    salehard - ok

    samara - ok

    saransk - ok

    saratov - ok

    smolensk - ok

    sankt-peterburg - ok

    stavropol - ok

    syktyvkar - ok

    tambov - ok

    tomsk - ok

    tula - ok

    tura - fail

    tver - ok

    tjumen - ok

    ufa - ok

    uljanovsk - ok

    ulan-udje - ok

    ust-ordynskij - fail

    vladikavkaz - ok

    vladimir - ok

    vladivostok - ok

    volgograd - ok

    vologda - ok

    voronezh - ok

    vjatka - fail

    yakutsk - ok

    yaroslavl - ok

    ekaterinburg - ok

    ioshkar-ola - ok

    кто захочет дополнить список городов, а как оказалось в базе не весь список, массив городов можно взять отсюда:

    http://emspost.ru/api/rest/?method=ems. ... plain=true

    и пихать их сюда админка - система - локализация - регионы.

    бекап не забываем, возможны ошибки =)

    ems_module.zip

  9. теоретически если отключить проверку 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'ы через запятую, и должно работать.
  10. для того чтобы скрыть цену или написать что надо выбрать опции делаем следующее:

    в ..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'ом выводить туда цену в зависимости от выбранной опции, но это из другой сказки)
  11. не все так просто, к сожалению. При первом переходе на другую страничку, менюшка будет сворачиваться в первоначальный вид, что немного пересекается с юзабилити. Так что проблема здесь не как сделать сам эффект, а как его сделать правильно.

  12. а не проще просто в шаблоне написать нужную информацию, без 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; ?>
  13. в ..catalogviewthemedefaulttemplateproductproduct.tpl

    найти (у меня 53 строка):

    <?php if ($options) { ?>

    заменить на:

    <?php if ($options && ($price == 0)) { ?>

    ток честно говоря затея не очень, в каталоге будут наверно странно выглядеть товары с ценой 0. Хотя цену можно там скрыть.

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

Important Information

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