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

afwollis

Ветеран спільноти
  • Публікації

    11 658
  • З нами

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

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

  1. как и обещал помогаю избавиться от "лишних" товаров :)

    правок очень много :( , поэтому набираемся терпения

    шаг #1

    открываем файл

    catalog/model/catalog/product.php
    находим функцию

    public function getProductOptions($product_id) {
    меняем в ней

    $product_option_value_data[] = array(
    	'product_option_value_id' => $product_option_value['product_option_value_id'],
    	'name'                    => $product_option_value_description_query->row['name'],
    	'price'                   => $product_option_value['price'],
    	'prefix'                  => $product_option_value['prefix']
    );
    на

    $product_option_value_data[] = array(
    	'product_option_value_id' => $product_option_value['product_option_value_id'],
    	'name'                    => $product_option_value_description_query->row['name'],
    	'price'                   => $product_option_value['price'],
    	'prefix'                  => $product_option_value['prefix'],
    	'quantity'              => $product_option_value['quantity'] /* webme - options show|hide - mod */
    );
    сохраняем, закрываем.

    шаг #2

    открываем файл

    catalog/controller/product/product.php
    находим

    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'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : FALSE,
    		'prefix'          => $option_value['prefix']
    	);
    }
    меняем на

    foreach ($option['option_value'] as $option_value) {
    	if ($option_value['quantity'] > 0) {
    		$option_value_data[] = array(
    			'option_value_id' => $option_value['product_option_value_id'],
    			'name'            => $option_value['name'],
    			'price'           => (float)$option_value['price'] ? $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : FALSE,
    			'prefix'          => $option_value['prefix']
    		);
    	}
    }

    сохраняем, закрываем.

    шаг #3

    открываем бутылку пива...

    • +1 1
  2. 1scream, начнем с того, что, если мне не изменяет память, я выкусил оттуда постраничный вывод - ибо "нафик страницы на главной?".

    Далее - как вы себе представляете вывод товаров из нескольких категорий?

    Взять, например, хотя бы "Заголовок" категории. Если категории две или больше - что туда писать?

    Если я вас неправильно понял - объясните подробно, что вы хотите видеть на главной (если возможно - со ссылками на примеры).

  3. Как я и думал :)

    define('DIR_APPLICATION', '/home/electron/public_html/catalog/');

    define('DIR_SYSTEM', '/home/electron/public_html/system/');

    define('DIR_DATABASE', '/home/electron/public_html/system/database/');

    define('DIR_LANGUAGE', '/home/electon/public_html/catalog/language/');

    Это говорит о том, что глупостями занимались :lol: вместо CTRL+R (F4).

    В любом нормальном редакторе [CTRL+R (F4)] = [заменить "строку А" на "строку ББ"].

    Проверяйте :)

  4. Вечер добрый.

    Предложение простое - написал инструкцию для всеобщего пользования.

    Безд-возд-мезд-но! То есть дадом! © Винни-Пух

  5. В комплект движка изначально входит модуль "Latest".

    На главной выводит энное количество последних товаров.

    Если действительно надо что-то эдакое, отличное от оригинала - определитесь, что именно вы хотите получить.

  6. сейчас напишу, как сделать.

    UPD

    решение для товаров, которые входят только в одну категорию

    Обновление от 2011.02.08 - 12:01

    Всем, кто использовал мой метод, настоятельно рекомендую заменить старый код на новый.

    • + исправлена ошибка проявляющаяся при большой вложенности категорий;
    • + исправлено формирование ссылок на категории в "крошках".

    1. Открываем файл

    catalog/controller/product/product.php
    меняем

    if (isset($this->request->get['path'])) {
    			$path = '';
    			
    			foreach (explode('_', $this->request->get['path']) as $path_id) {
    				$category_info = $this->model_catalog_category->getCategory($path_id);
    				
    				if (!$path) {
    					$path = $path_id;
    				} else {
    					$path .= '_' . $path_id;
    				}
    				
    				if ($category_info) {
    					$this->document->breadcrumbs[] = array(
    						'href'      => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $path),
    						'text'      => $category_info['name'],
    						'separator' => $this->language->get('text_separator')
    					);
    				}
    			}
    		}
    на

    /* webme - fix for product breadcrumbs - part_#1 - start */
    		$wRestoreBreadcrumbs = "0";
    		/* webme - fix for product breadcrumbs - part_#1 - end */
    		
    		if (isset($this->request->get['path'])) {
    			$path = '';
    			
    			foreach (explode('_', $this->request->get['path']) as $path_id) {
    				$category_info = $this->model_catalog_category->getCategory($path_id);
    				
    				if (!$path) {
    					$path = $path_id;
    				} else {
    					$path .= '_' . $path_id;
    				}
    				
    				if ($category_info) {
    					$this->document->breadcrumbs[] = array(
    						'href'      => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $path),
    						'text'      => $category_info['name'],
    						'separator' => $this->language->get('text_separator')
    					);
    				}
    			}
    		} else { /* webme - fix for product breadcrumbs - part_#2 - start */
    			$wRestoreBreadcrumbs = "1";
    		} /* webme - fix for product breadcrumbs - part_#2 - end */
    мотаем ниже.

    перед

    $product_info = $this->model_catalog_product->getProduct($product_id);
    вставляем

    /* webme - fix for product breadcrumbs - part_#3 - start */
    		if ($wRestoreBreadcrumbs == "1") {
    			$wcat = $this->model_catalog_product->getCategories($product_id);
    			if (count($wcat) == 1) {
    				$w_category_id = $wcat['0']['category_id'];
    				$w_BreadCrumbs = $this->model_catalog_product->wbm_getPath($w_category_id);
    				
    				$w_totalCrumbs = count($w_BreadCrumbs);
    				foreach ($w_BreadCrumbs as $pos => $w_BreadCrumb) {
    					
    					$w_BreadCrumb_href = "";
    					$w_i = 0;
    					for($w_i = 0; $w_i <= $pos; $w_i++) {
    						if (empty($w_BreadCrumb_href)) {
    							$w_BreadCrumb_href .= $w_BreadCrumbs[$w_i]["category_id"];
    						} else {
    							$w_BreadCrumb_href .= "_".$w_BreadCrumbs[$w_i]["category_id"];
    						}
    					}
    					
    					$this->document->breadcrumbs[] = array(
    						'href'      => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $w_BreadCrumb_href),
    						'text'      => $w_BreadCrumb['name'],
    						'separator' => $this->language->get('text_separator')
    					);
    				}
    			}
    		}
    		/* webme - fix for product breadcrumbs - part_#3 - end */
    сохраняем, закрываем.

    2. Открываем файл

    catalog/model/catalog/product.php
    в конец файла, перед

    }
    ?>
    вставляем

    /* webme - fix for product breadcrumbs - part_#1 - start */
    	public function wbm_getPath($category_id) {
    		$productPath = array();
    		
    		$result = $this->wbm_getProductCategoryInfo($category_id);
    		
    		$productPath2 = array();
    		if ($result['parent_id'] > 0) {
    			$productPath2 = $this->wbm_getPath($result['parent_id']);
    			
    			foreach ($productPath2 as $productPath2_item) {
    				array_push($productPath, $productPath2_item);
    			}
    		}
    		array_push($productPath, $result);
    		
    		return $productPath;
    	}
    	
    	public function wbm_getProductCategoryInfo($catID) {
    		$sql = "SELECT DISTINCT c.category_id as category_id, c.parent_id as parent_id, cd.name as name FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$catID . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'";
    		
    		$query = $this->db->query($sql);
    		
    		return $query->row;
    	}
    	
    	public function wbm_getParentCategory($catID) {
    		$sql = "SELECT DISTINCT c.parent_id as parent_id, cd.name as name FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.parent_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$catID . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'";
    		
    		$query = $this->db->query($sql);
    		
    		return $query->row;
    	}
    	/* webme - fix for product breadcrumbs - part_#1 - end */
    сохраняем, закрываем.

    3. Пользуемся :)

    Возможно в модель запихнул лишнюю функцию (которая не используется).

    Однако ужасно устал, поэтому принимайте "как есть".

    • +1 3
  7. Там не столько по умолчанию сколько валюты с курсом отличным от 1.0000000

    я это и имел ввиду :)

    Если курс меньше, чем 1, тогда сумма будет уменьшаться.

    Причина в данных уходящих в функцию или в самой функции...

    Надо придумать самое оптимальное решение.

    У меня его до сих пор нет :(

    Хотя мысли определенные имеются :)

  8. Изменить "названия" товаров.

    Вот, например, взять

    Серьги Доминика-оригинал.крист.Swarovski
    После слова "Серьги" есть пробел, поэтому если что - следующая часть перенесется на другую строку.

    А вот дальше то длинная сплошная строка без пробелов и, соответственно, без возможности переноса.

    Поэтому оно и выползает.

    Сделайте

    Серьги Доминика - оригинал. крист. Swarovski

    или еще как-то, главное чтобы пробелы были.

  9. Перечитал всю тему, которую предложил - решение должно работать.

    Надо лишь учесть вот это

    ДЛЯ версії 1.4.8:

    /system/helper/image.php файл знаходиться ось тут:

    /catalog/model/tool/image.php

    Также можно пойти другим путем:

    Если с английским порядок, вот ссылка на оф.сайт: Re: watermark

  10. решение для категории

    1.

    открываешь

    catalog/controller/product/category.php
    меняешь

    $options = $this->model_catalog_product->getProductOptions($result['product_id']);
    if ($options) {
    $add = $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']);
    } else {
    $add = HTTPS_SERVER . 'index.php?route=checkout/cart&product_id=' . $result['product_id'];
    }
    на

    $wCategoryID = "123456"; /* id категории, в которую будем отправлять юзера */
    $wRedirectCategory = "&back_to_category=".$wCategoryID;
    $options = $this->model_catalog_product->getProductOptions($result['product_id']);
    
    if ($options) {
    $add = $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']);
    } else {
    $add = HTTPS_SERVER . 'index.php?route=checkout/cart&product_id=' . $result['product_id'] . $wRedirectCategory;
    }
    2.

    открываешь

    catalog/controller/checkout/cart.php
    между (примерно 27-ая строка)

    $this->cart->add($this->request->get['product_id'], $quantity, $option);
    
    $this->redirect(HTTPS_SERVER . 'index.php?route=checkout/cart');
    вставляешь

    /* webme - Back To Category - mod - start */
    if (isset($this->request->get['back_to_category'])) {
    $backToCat = $this->request->get['back_to_category'];
    $this->redirect(HTTPS_SERVER . 'index.php?route=product/category&path='.$backToCat);
    }
    /* webme - Back To Category - mod - end */
  11. а я думаю - "на какую тему я не ответил?" :lol:

    занялся этим вопросом.

    UPD

    Как это ни странно, однако такая проблема существует для всех валют, кроме "валюты по-умолчанию" https://opencartforum.com/public/style_emoticons/default/dry.gif

    Виной тому - строчки:

    'order_total' => $this->currency->format($order_total + $total, $order_info['currency'], $order_info['value'], False),
    'formatted_order_total' => $this->currency->format($order_total + $total, $order_info['currency'], $order_info['value'], True),
    'formatted_total' => $this->currency->format($total, $order_info['currency'], $order_info['value'], True),
    'new_grand_total' => $this->currency->format($order_info['total'] + $total, $order_info['currency'], $order_info['value'], False),
    'formatted_grand_total' => $this->currency->format($order_info['total'] + $total, $order_info['currency'], $order_info['value'], True),
    в функции

    public function addProduct() {
    файла

    admin/controller/sale/order.php

    Как решить эту проблему - пока не могу подсказать.

    Но продолжаю работать над этим вопросом.

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

Important Information

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