Автор Тема: Проблема с комбослайдером  (Прочитано 7993 раз)

13 Октябрь 2011, 01:53:05
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Из темы http://prestashop-forum.ru/index.php/topic,83.0.html   -переношу сюда.
На главной странице  есть слайдер. Когда нажимаешь на описание товара, то все приходит правильно, а когда просто на товар, то - страница переехала и на уровень выше урл идет.
http://kubantoner.ru/ вот магазин, он еще не рабочий, поэтому не реклама. Просто на словах не понятно будет. Делала пробный вариант магазина с этим же шаблоном, там все приходит куда нужно. Не могу понять откуда ошибка вылезла и где ее править.. уже товары переставляла в подкатегории.. все не то.

ЧПУ включено, но как проверить соответствие адресов страниц, проверить правила в  htaccess.  -  я не знаю
И где учитывается категории, к которым принадлежит страница ?
13 Октябрь 2011, 12:02:28
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Трудно что-то посоветывать не видя кода.
Можно попробывать отлючить чпу. Тогда будет ясно с чпу проблема или в другом.
Можно удалить показ категории в url для всех адресов, только нужно проверить чтобы не было повторяющихся url.
Для url страниц функция getProductLink в файле /classes/Link.php
/**
 * Return the correct link for product/category/supplier/manufacturer
  *
  * @param mixed $id_OBJ Can be either the object or the ID only
  * @param string $alias Friendly URL (only if $id_OBJ is the object)
  * @return string link
  */
public function getProductLink($id_product, $alias = NULL, $category = NULL, $ean13 = NULL, $id_lang = NULL)
{
if (is_object($id_product))
return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang).((isset($id_product->category) AND !empty($id_product->category) AND $id_product->category != 'home') ? $id_product->category.'/' : '').(int)$id_product->id.'-'.$id_product->link_rewrite.($id_product->ean13 ? '-'.$id_product->ean13 : '').'.html') :
(_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product->id);
elseif ($alias)
return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang).(($category AND $category != 'home') ? ($category.'/') : '').(int)$id_product.'-'.$alias.($ean13 ? '-'.$ean13 : '').'.html') :
(_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product);
else
return _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product;
}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
13 Октябрь 2011, 12:56:50
Ответ #2
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нужно не удалять категорию, там по всему сайту адресация с учетом категорий.
Наоборот добавить в шаблон модуля комбослайдер featured-list.tpl вывод категории.
В getProductLink - $category = NULL, в шаблоне тоже не указана категория - $productLink = $link->getProductLink($product.id_product, $product.link_rewrite). Добавить вывод категории $id_product->category.
13 Октябрь 2011, 17:10:07
Ответ #3
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
чейта я совсем запуталась.  :'(
Файлы featured-list.tpl  и в тестовом магазине и в этом одинаковые, а итог разный. Вот код.
<div id="featured-products_block_center" class="block products_block">
 
  <div class="block_content">

<ul style="width:3000px!important; height:150px;" id="mycarousel" class="bullet-slider {$idul}">
{foreach from=$products item=product name=homeFeaturedProducts}
{assign var='productLink' value=$link->getProductLink($product.id_product, $product.link_rewrite)}
<li class="ajax_block_product">

<a href="{$productLink}" title="{$product.legend}"  id="slide-animate"><img src="{$img_prod_dir}{$product.id_image}-large.jpg" alt="{$product.legend}" /></a>
<div class="wrapper_product">
<div class="wrapper_name_product">
<a href="{$productLink}" title="{$product.name}">{$product.name|escape:htmlall:'UTF-8'|truncate:35}</a>
{if $displayprice}
{if !$priceDisplay || $priceDisplay == 2}<p class="price_container"><span class="price">{convertPrice price=$product.price}</span>{if $priceDisplay == 2} {l s='Tax inc.' mod='comboslider'}{/if}</p>{/if}
      {if $priceDisplay}<p class="price_container"><span class="price">{convertPrice price=$product.price_tax_exc}</span>{if $priceDisplay == 2} {l s='Tax exc.' mod='comboslider'}{/if}</p>{/if}
{/if}
</div>
<div class="wrapper_button">
{if $view}
  <a class="button" href="{$product.link}" title="{l s='Detail' mod='comboslider'}">{l s='Detail' mod='comboslider'}</a>
{/if}

{if $addcart}
  {if ($product.quantity > 0 OR $product.allow_oosp) AND $product.customizable != 2}
  <a class="exclusive" rel="ajax_id_product_{$product.id_product}" href="{$base_dir}cart.php?qty=1&amp;id_product={$product.id_product}&amp;token={$static_token}&amp;add" title="{l s='Add to cart' mod='comboslider'}">{l s='Add to cart' mod='comboslider'}</a>
  {else}
  <span class="exclusive">{l s='Add to cart' mod='comboslider'}</span>
  {/if}
{/if}
                       
</div>
</div>
</li>

{/foreach}
</ul>
</div>
</div>
И classes/Link.php точно совпадает с ниже приведенным.
Думаю все же именно код комбослайдера править нужно, т.к по всем глобальным ссылкам все приходит куда нужно.
ЧПУ уже трогать боюсь, еле настроила, все съезжало по началу. В IE картинки вообще в разные стороны разъезжались.
13 Октябрь 2011, 18:18:58
Ответ #4
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
ЧПУ и размещение картинок на странице никак не связаны. Размещение элементов на странице - это верстка.
Вам необходимо установить источник проблемы. Только потом решать что удалять или исправлять.

Первое, что нужно проверить это ЧПУ. Для этого отключите эту функцию.
1.Панель Управления -> Настройки -> SEO & URLs  -> URL-адреса установки -> ЧПУ  выбираете  НЕТ
2. Удалите файл htaccess с вашего сервера (можно переименовать, чтобы потом не восстанавливать)
3. Очистите кеш

Смотрите, проблемы остались или нет.
Это не помогло, проверьте настройки модуля Comboslider. 
Отключение чпу решило проблему - нужно подправить правила в htaccess.
13 Октябрь 2011, 23:06:06
Ответ #5
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Картинки, я имела ввиду модули на странице... разъезжались когда только подключила ЧПУ, потом встало все на места.
Да, дело в ЧПУ, без него все приходит куда нужно. Примерно так и предполагала, что .htaccess нужно где-то подправлять. Просмотрела там все, вроде все верно.. вот кусок

RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1 [QSA,L]
RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 [QSA,L]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L]
RewriteRule ^content/category/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L]

здесь что-то подправлять нужно, или я не там копаю?
14 Октябрь 2011, 11:19:31
Ответ #6
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Возможно нужно учесть настройки сервера, на котором находиться ваш сайт.
Посомотрите разницу в настройках сервера, на котором был тестовый вариант и все работало и на котором сейчас расположен сайт.
14 Октябрь 2011, 13:06:51
Ответ #7
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
я, если честно, пока с это информацией еще на вы :))

вот информация по тестовому магазину:
Информация о сервере
Версия Prestashop: 1.4.4.0
Информация о сервере: FreeBSD FreeBSD 8.2-STABLE #2: Wed Mar 16 23:57:49 MSK 2011 root@server.nereala.ru:/usr/obj/usr/src/sys/NEREALA.2011-16-03 amd64
Версия ПО: Apache/2.2.17 (FreeBSD) DAV/2 PHP/5.2.17 with Suhosin-Patch mod_ssl/2.2.17 OpenSSL/1.0.0d
Версия PHP: 5.2.17
Версия MySQL: 5.1.55

а это по реальному:

Информация о сервере
Версия Prestashop: 1.4.4.0
Информация о сервере: Linux #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64
Версия ПО: Apache/1.3.42 (Unix) mod_gzip/1.3.26.1a mod_log_bytes/1.2 mod_bwlimited/1.4 mod_auth_passthrough/1.8 FrontPage/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.8e-fips-rhel5
Версия PHP: 5.2.16
Версия MySQL: 5.0.92-community-log

где тут искать проблему? или еще какие-то данные по серверу должны быть?
еще знаю, что на тестовом  хостинге установлен nginx , а на этом - нет. Может это как-то влияет, я пока в этом не разбираюсь. Учусь только.
14 Октябрь 2011, 13:42:26
Ответ #8
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
14 Октябрь 2011, 13:59:17
Ответ #9
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это что? :o
Можно с подробностями, пожалуйста :)
14 Октябрь 2011, 14:31:34
Ответ #10
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Цитата: anjik
Это что? :o
Можно с подробностями, пожалуйста :)
создаете файл phpinfо.php
в нем пишите
<html>
<head>
</head>
<body>
<?php  phpinfo();?>
</body>
</html>
Запускаете. Видите конфигурацию PHP на хостинге. Сравниваете, находите различия, подгоняете ваш htaccess под ваши нужды, с учетом конф. php
Cоздание интернет сайтов Webstudio UwK
14 Октябрь 2011, 15:06:27
Ответ #11
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Пример htaccess в зависимости от конф. сервера
AddType x-mapp-php5 .php

# URL rewriting module activation
RewriteEngine on
RewriteBase /(корень вашего сайта)

# URL rewriting rules
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L,E]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg [L,E]
RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$3&isolang;=$1$5 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2&isolang;=$1$4 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$2&isolang;=$1 [QSA,L,E]
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ /supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ /manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
RewriteRule ^lang-([a-z]{2})/(.*)$ /$2?isolang=$1 [QSA,L,E]

или так
# URL rewriting module activation
RewriteEngine on
Rewritebase /(корень сайта)

# URL rewriting rules
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ img/p/$1-$2$3.jpg [L,E]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ img/c/$1$2.jpg [L,E]
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]

Для активации PHP5:
AddType x-mapp-php5 .php
или
AddHandler application/x-httpd-php5 .php
или
php 1
или
SetEnv PHP_VER 5
или
SetEnv DEFAULT_PHP_VERSION 5
или
AddHandler php-fastcgi5 .php

Для активации url-rewriting :
RewriteBase /
Несколько правил, если они не соответствуют требованиям:
SetEnv REGISTER_GLOBALS 0
или
php_flag register_globals Off

php_flag allow_url_fopen On
php_flag allow_url_include On
Cоздание интернет сайтов Webstudio UwK
14 Октябрь 2011, 15:18:20
Ответ #12
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Как уже писали, не возможно точно определить ошибку не имея полной картины.
ЧПУ у вас работает, при вкл. другие ссылки открываются правильно. Вам нужно обратить внимание на сам модуль.
Cоздание интернет сайтов Webstudio UwK
14 Октябрь 2011, 18:16:30
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитата: anjik
Это что? :o
Можно с подробностями, пожалуйста :)

Если нет понятия о phpinfo(), то трудно будет что-то сделать. Лучше взяться за азы php, а потом уже с prestashop разбираться.
14 Октябрь 2011, 23:38:07
Ответ #14
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Для этого и существует форум, спрашивать, пробывать и все получиться.
Cоздание интернет сайтов Webstudio UwK