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

DEYW

Новачок
  
  • Публікації

    27
  • З нами

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

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

  1. Необходимо разработать модуль для opencart (1.4.9.. (ocstore 0.2.2).

    Глобальные фильтры, атрибуты.

    В админке должна быть возможность вностить атрибуты в модуле.

    Задавать эти атрибуты товарам ( на страничке товара должна быть возможность

    устанавливать эти атрибуты в виде чекбоксов. (задавать несколько атрибутов)

    Front-end:

    На сайте в левой колонке должны отображаться атрибуты, при нажатии или наведении миши должно октрывыаться окно с категориями.

    Атрибуты, категории, товары зависимы.

    Атрибут отображает только те категории,

    в которых товары имеют этот атрибут.

    post-15898-0-10893900-1363603883_thumb.png

  2. Доброй ночи!

    Подскажите пожалуйста насколько сильно может загружать работу сайта фильтр (от Soor) ?

    На одном сервере расположено 2 интернет-магазина.Структура (php,mysql) у них одинакова. Первый работает значительно быстрее, но фильтрами заполнен меньше чем второй магазин

    На втором:

    Скорость загрузки категорий значительно меньше чем страничка товара (около 5 сек). На странице товара все стандартные функции (описание, рекомендованные и т.д).

    Проблем в css, javascript нету.

    Имеет смысл добавлять индексы к product_to_value, category_option_* ?

  3. Это сугубо мое мнение, но я бы советовал не использовать излишества свойств css opacity для области товаров, ведь мы должны сосредоточить посетителя именно на товаре а не на картинке сзади) :-)

  4. Привет всем! Возникла проблема при добавлении товара в корзину в браузере IE. Количество товара умножается в 2 раза. Включена анимация "полета" товара в корзину. В браузерах (не ИЕ), происходит анимация, и количество товаров подсчитывается нормально. Заметил что через ИЕ, после анимации с карточки товара перекидывает сразу в корзину, в других браузерах после попадания товара в корзину - страничка товара остается.

  5. не знаю почему этот функционал до сих пор не сделают в транке

    catalog/controller/checkout/

    в payment.php списки доступных способов оплат

    private $payment_relations=array(
    					'flat.flat' =>  array('cod2'),
    					'flat2.flat2' => array('bank_transfer', 'bank_transfer2'));

    Скажите пожалуйста а для 0.2.2 версии будет ли работать эта функция?

  6. скажите, а как использовать например субдомен image.site.ru для мультисайта на одном хостинге. Проблема с кэшированием изображений.. В конфигах стоят пути DIR_IMAGE к субдомену с изображениями. В админке превьюшки отображаются, а вот в категориях, продукте изображений нет... Пути к кешу картинок указывает для своего поддомена. Может есть идеи где можно это переделать?

  7. Ок, решение вопроса оказалась в настройках сессии :

    изначально :

    session_set_cookie_params(0, '/');

    я изменил на :

    session_set_cookie_params(3600, '/', '.site.ru');

    При переходе между сайтами, логин и корзина сохраняется, но есть проблема:

    В корзине находится товар с основного сайта и с субдомена. Дело в том что ссылки (пути) им прописуються одинаковые.

    Подробней:

    На site.ru мы отложили в корзину футболку (site.ru/t-shirt_black)

    Затем мы перешли на shoes.site.ru. (в корзине эта футболка есть но ссылка для нее стала такая : shoes.site.ru/t-shirt_black, что естественно неправильная

    Есть у кого-то решение данной проблемы?

  8. версия 0.2.2

    ок немножко подробней :

    Пример:

    Основной сайт : site.ru ( Здесь мы продаем футболки)

    Поддомен : shoes.site.ru ( Здесь ботинки)

    ! shoes.site.ru я сделал, методом добавления сайта (тоесть встроенная функция мультимагазина в опенкарт)

    На хостинге создал поддомен shoes.site.ru.

    Перенес файлы сайта в этот поддомен и в конфигах указал пути.

    Выгрузил товары и категории только для этого store_id (Тоесть обувь у меня показывает только на поддомене, что и задумано)

    Захожу я на свой основной сайт : site.ru и там ложу в корзину футболку (но не оформаляю заказ, она просто висит в корзине). Потом с основного сайта попадаю на обувь (shoes.site.ru) а там корзина пуста, тоесть хочется чтобы в корзине лежала футболка... и после того как я положил в корзину еще и ботинки в корзине оказалось 2 предмета. )

  9. Возможно что есть проблема с конфигурации доменного имени (у меня такое было при не правильной настройке DNS сервера на дедике), если было бы все в порядке, то при заходе на сайт писало бы дефолтное сообщение ispmanager'a или какой-нибудь forbidden. И да залейте все не в корень а в public_html

    • +1 1
  10. Версия (0.2.*)

    Подскажите, пожалуйста с решением работы кеширования memcached с seo_url.

    В файле:/model/tool/seo_url.php есть такие строчки, где встречается функция $this->cache-> : Например :

    $path = $this->cache->get('category.seo.path.' . $category_id . '.' . (int)$this->config->get('config_store_id'));

    Если закомментировать строчки с функцией $...= $this->cache->...., Сайт работает хорошо, но появляются PHP.Notice.

    Если проще объяснить то : есть ли решение использовать memcached и seo_url, если нет то как удалить кеширование с seo_url.php?

    Вот мой файл seo_url.php

    <?php
    class ModelToolSeoUrl extends Model {
    	public function rewrite($link, $action = '') {
    		if (!$this->config->get('config_seo_url')) return $link;
    
    		$url_query = parse_url(str_replace('&', '&', $link), PHP_URL_QUERY);
    
    		$data = array();
    		parse_str($url_query, $data);
    
    		$seo_url_postfix = ($this->config->get('config_seo_url_auto') == '1') ? '/' : '';
    
    		if (array_key_exists('product_id', $data)) {
    			$url = $this->getProductSeoUrl($data['product_id']);
    
    			if ($this->config->get('config_seo_url_replace')) {
    				$url = str_replace(' ', '_', $url);
    			}
    
    			if (strpos($url, '&') === false) $url .= $seo_url_postfix;
    
    			return rtrim(HTTP_SERVER, '/') . str_replace('&', '&', $url);
    		} elseif (array_key_exists('path', $data)) {
    			$parts = explode('_', $data['path']);
    			$category_id = array_pop($parts);
    			$path = $this->getPath($category_id);
    
    			if ($path === false && $action == 'validate') return false;
    
    			if ($data['path'] != $path) {
    				$data['path'] = $path;
    				$link = HTTP_SERVER . 'index.php?' . urldecode(http_build_query($data));
    			}
    		}
    
    		$url = '';
    		foreach ($data as $key => $value) {
    			switch ($key)
    			{
    				case 'manufacturer_id':
    				case 'news_id':
    				case 'information_id':
    					$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");
    
    					if ($query->num_rows) {
    						$url .= '/' . $query->row['keyword'];
    
    						unset($data[$key]);
    					}
    					break;
    
    				case 'path':
    					$seo_path = $this->getSeoPath($value);
    
    					if (!$seo_path) return $link;
    
    					$url .= $seo_path;
    
    					unset($data[$key]);
    					break;
    
    				default:
    					break;
    			}
    		}
    
    		if (!$url) return $link;
    
    		unset($data['route']);
    
    		$query = sizeof($data) ? '?' . urldecode(http_build_query($data)) : '';
    
    		if ($this->config->get('config_seo_url_replace')) {
    			$url = str_replace(' ', '_', $url);
    		}
    
    		$url = str_replace('&', '&', $url);
    
    		return rtrim(HTTP_SERVER, '/') . $url . $seo_url_postfix . $query;
    	}
    
    
    	private function getPath($category_id) {
    		$category_id = (int)$category_id;
    		if ($category_id < 1) return false;
    
    		$path = $this->cache->get('category.seo.path.' . $category_id . '.' . (int)$this->config->get('config_store_id'));
    
    		if ($path === null) {
    			$path = '';
    
    			$max_level = 30;
    
    			$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 = $query->num_rows ? $query->row['path'] : false;
    
    			$this->cache->set('category.seo.path.' . $category_id . '.' . (int)$this->config->get('config_store_id'), $path);
    		}
    
    		return $path;
    	}
    
    
    	private function getSeoPath($path) {
    		$seo_path = $this->cache->get('category.seo.' . $path . '.' . (int)$this->config->get('config_store_id'));
    
    		if ($seo_path === null) {
    			$seo_path = '';
    
    			$categories = explode('_', $path);
    
    			foreach ($categories as $category) {
    				$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
    
    				if ($query->num_rows) {
    					$seo_path .= '/' . $query->row['keyword'];
    				} else {
    					$seo_path = false;
    					break;
    				}
    			}
    
    			$this->cache->set('category.seo.' . $path . '.' . (int)$this->config->get('config_store_id'), $seo_path);
    		}
    
    		return $seo_path;
    	}
    
    
    	   private function getProductSeoUrl($product_id) {
    		$product_id = (int)$product_id;
    		if ($product_id < 1) return false;
    
    		$seo_url = $this->cache->get('product.seo.' . $product_id . '.' . (int)$this->config->get('config_store_id'));
    
    		if ($seo_url === null) {
    			$seo_url = false;
    
    			$query = $this->db->query("SELECT IFNULL(p.main_category_id, p2c.category_id) AS category_id FROM " . DB_PREFIX . "product AS p JOIN " . DB_PREFIX . "product_to_category AS p2c USING (product_id) WHERE p.product_id = '" . (int)$product_id . "' LIMIT 1");
    
    			if ($query->num_rows) {
    				$category_id = (int)$query->row['category_id'];
    				if ($path = $this->getPath($category_id)) {
    					$product_alias = '';
    					if ($seo_path = $this->getSeoPath($path)) {
    						$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'product_id=" . $product_id . "'");
    
    						if ($query->num_rows) $product_alias = $query->row['keyword'];
    					}
    					if ($product_alias) {
    						$seo_url = $seo_path . '/' . $product_alias;
    					} else {
    						$seo_url = '/index.php?route=product/product&path=' . $path . '&product_id=' . $product_id;
    					}
    				}
    			}
    
    			$this->cache->set('product.seo.' . $product_id . '.' . (int)$this->config->get('config_store_id'), $seo_url);
    		}
    
    		return $seo_url;
    	}
    
    }
    ?>
×
×
  • Створити...

Important Information

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