Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

При включении SeoPro перестает работать QuickView


 Поделиться

Рекомендованные сообщения

В магазине реализованном на ocStore v1.5.5.1.1 при включении SeoPro перестает работать функция быстрого просмотра товара (QuickView).

Окно открывается как и положено, но вместо карточки товара в фрейме загружается весь сайт

Со стандартным чпу все работает нормально.
Буду признателен за подсказку.

 

 

 

Ссылка на комментарий
Поделиться на других сайтах


Вы бы сайт показали...

с включенным SeoPro

Ссылка на комментарий
Поделиться на других сайтах

Вы правы конечно.

Просто первый мой магазин на OpenCart. Дизайн шаблонный. К тому же, еще в стадии доработки...

Ну да ладно

 

Заранее спасибо за помощь.

Ссылка на комментарий
Поделиться на других сайтах


Покажите код, как вы формируете ссылку для quickview

т..е.

в коде шаблона

там где в выводите

<a class="quickview" href="h**p://****-systems.ru/bumajnik-mujskoi-dc-naturalnaya-koja-km-002.html" data-height="510" data-width="700">Просмотр</a>

дело в том, что эту ссылку нельзя "прогонять" через

$this->url->link(

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Честно говоря я в php не особо.

В category.tpl насколько я смог разобраться quickview вызывается так:

 if (typeof(init_quickview) === 'function') {
      init_quickview();
    }

А сам quickview вроде тут.

 

дело в том, что эту ссылку нельзя "прогонять" через

$this->url->link(

 

Да но при включенном стандартном seo все работает.

 

Ссылка на комментарий
Поделиться на других сайтах


Да я увидел

 

в том-то и дело, что в данном случае шаблон не подключается, а подключается шаблон продукта, потому что

 в коде прописан полный путь

<a class="quickview" href="h**tp://center-systems.ru/koshelek-toni-perotti-km-001.html" data-height="510" data-width="700">Просмотр</a>

а должен быть, скорей всего href=?route=module/quick_view ( я не знаю этого модуля, только предполагаю)

 

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

<a class="quickview" 
Ссылка на комментарий
Поделиться на других сайтах

Тогда возможно вот это из файла product.tpl

<?php if (isset($this->request->get['boxer'])): ?>
<?php require_once DIR_TEMPLATE . '/journal/template/product/product_quick_view.tpl'; ?>
<?php else: ?>

Ничего более подходящего найти не удалось.

Ссылка на комментарий
Поделиться на других сайтах


Это в tpl?

Все же это должно быть в контроллере..

Отключите seopro и посмотрите как выглядит ссылка на кнопке qickview

Ссылка на комментарий
Поделиться на других сайтах

Отключил

<a class="quickview" data-width="700" data-height="510" href="http://center-systems.ru/damskii-koshelek-iz-naturalnoi-koji-CANEVO-kw-003" style="z-index: 10005;">Просмотр</a>

В коде ничего особо не изменилось, помимо того, что  quickview заработал.

Ссылка на комментарий
Поделиться на других сайтах


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

 

на вскидку

найдите строку

$quickview.attr('href', href);
$quickview.attr('href', href+'?boxer=true');

и переключитесь в seopro

Ссылка на комментарий
Поделиться на других сайтах

Нашел указанную строку в header.tpl заменил. Ссылка теперь имеет вид:

<a class="quickview" href="h**p://****-systems.ru/bumajnik-mujskoi-dc-naturalnaya-koja-km-002.html?boxer=true" data-height="510" data-width="700">Просмотр</a>

Глюк некуда не исчез. 

Ссылка на комментарий
Поделиться на других сайтах


вот что происходит при включенном seopro

 

По какой-то причине страница получает редирект

А при редиректе уже параметр boxer отстутвует

 

1. нужно выяснить - почему редирект

 

2. Как избавиться? надо смотреть в код

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Поставьте вот это и все заработает.. Было тоже самое. https://opencartforum.com/topic/10270-%D0%B4%D1%83%D0%B1%D0%BB%D0%B8-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86-seopro/

 Ставьте этот файлик.  seo_pro.php(ocStore1.5.5).zip

Ссылка на комментарий
Поделиться на других сайтах


  • 8 месяцев спустя...

вопрос актуален, предложение без танцев с бубном не работает. :-D

могу предложить даже ...легкое вознаграждение за решение данного вопроса

Ссылка на комментарий
Поделиться на других сайтах


Видимо, так никто и не нашел решения. А между тем все наиболее популярные западные шаблоны (от Lexus и PavoThemes, например) страдают этой болезнью.

Ссылка на комментарий
Поделиться на других сайтах


  • 10 месяцев спустя...

В магазине реализованном на ocStore v1.5.5.1.1 при включении SeoPro перестает работать функция быстрого просмотра товара (QuickView).

Окно открывается как и положено, но вместо карточки товара в фрейме загружается весь сайт

 
Со стандартным чпу все работает нормально.
Буду признателен за подсказку.

 

 

вопрос актуален

Ссылка на комментарий
Поделиться на других сайтах


ответ уже был подробно расписан chukcha

 

задавайте актуальный вопрос автору шаблона/модуля quickview

Ссылка на комментарий
Поделиться на других сайтах

  • 7 месяцев спустя...

В 2.1 такая же проблема с быстрым просмотром. Тема от themeforest.

Подскажите с кодом.

Product.tpl

Код кнопки быстрого просмотра

<div class="quickview">
<a href="index.php?route=product/quickview&product_id=<?php echo $product['product_id']; ?>" title="<?php echo $product['name']; ?>"><?php if($theme_options->get( 'quickview_text', $config->get( 'config_language_id' ) ) != '') { echo html_entity_decode($theme_options->get( 'quickview_text', $config->get( 'config_language_id' ) )); } else { echo 'QUICKVIEW'; } ?></a>
</div>

 

Т.е. ссылка формируется без учета SEO URL по типу index.php?route=product/quickview&product_id=  

В итоге в фрейме выводится вся страница товара целиком, а не quickview.tpl

 

Подскажите где копнуть код? 

Ссылка на комментарий
Поделиться на других сайтах


&product_id

 

заменить на prod_id

 

в контроллере $this->request->get['product_id']

заменить на $this->request->get['prod_id']

Ссылка на комментарий
Поделиться на других сайтах

Спасибо, заработал вывод в фрейме. :eek:

А добиться ЧПУ получится? Дубли ссылок не хочется делать. 

 

Смотрю в одном интернет магазине на таком же шаблоне работает с ЧПУ.

Ссылка на комментарий
Поделиться на других сайтах


самій правильный вариант,  делать post запрос.

Да. читал об этом. Опыта не сильно хватает весь php код перебрать. Хотя интерес берет свое.

Придется что-то внешнее лепить, а-ля fastorder вместо быстрого просмотра.

Ссылка на комментарий
Поделиться на других сайтах


  • 3 месяца спустя...

Вопрос актуален для версии 2.1.0.2 тема Fastor, также при открытии фрейма быстрого просмотра выдает весь сайт. Правда модуль реализован в отдельном файле. 

controller/catalog/product/

class ControllerProductQuickview extends Controller {
private $error = array();

public function index() {
$this->load->language('product/product');

$data['breadcrumbs'] = array();

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home')
);

$this->load->model('catalog/category');

if (isset($this->request->get['path'])) {
$path = '';

$parts = explode('_', (string)$this->request->get['path']);

$category_id = (int)array_pop($parts);

foreach ($parts as $path_id) {
if (!$path) {
$path = $path_id;
} else {
$path .= '_' . $path_id;
}

$category_info = $this->model_catalog_category->getCategory($path_id);

if ($category_info) {
$data['breadcrumbs'][] = array(
'text' => $category_info['name'],
'href' => $this->url->link('product/category', 'path=' . $path)
);
}
}

// Set the last category breadcrumb
$category_info = $this->model_catalog_category->getCategory($category_id);

if ($category_info) {
$url = '';

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$data['breadcrumbs'][] = array(
'text' => $category_info['name'],
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url)
);
}
}

$this->load->model('catalog/manufacturer');

if (isset($this->request->get['manufacturer_id'])) {
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_brand'),
'href' => $this->url->link('product/manufacturer')
);

$url = '';

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($this->request->get['manufacturer_id']);

if ($manufacturer_info) {
$data['breadcrumbs'][] = array(
'text' => $manufacturer_info['name'],
'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url)
);
}
}

if (isset($this->request->get['search']) || isset($this->request->get['tag'])) {
$url = '';

if (isset($this->request->get['search'])) {
$url .= '&search=' . $this->request->get['search'];
}

if (isset($this->request->get['tag'])) {
$url .= '&tag=' . $this->request->get['tag'];
}

if (isset($this->request->get['description'])) {
$url .= '&description=' . $this->request->get['description'];
}

if (isset($this->request->get['category_id'])) {
$url .= '&category_id=' . $this->request->get['category_id'];
}

if (isset($this->request->get['sub_category'])) {
$url .= '&sub_category=' . $this->request->get['sub_category'];
}

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_search'),
'href' => $this->url->link('product/search', $url)
);
}

if (isset($this->request->get['product_id'])) {
$product_id = (int)$this->request->get['product_id'];
} else {
$product_id = 0;
}

$this->load->model('catalog/product');

$product_info = $this->model_catalog_product->getProduct($product_id);

if ($product_info) {
$url = '';

if (isset($this->request->get['path'])) {
$url .= '&path=' . $this->request->get['path'];
}

if (isset($this->request->get['filter'])) {
$url .= '&filter=' . $this->request->get['filter'];
}

if (isset($this->request->get['manufacturer_id'])) {
$url .= '&manufacturer_id=' . $this->request->get['manufacturer_id'];
}

if (isset($this->request->get['search'])) {
$url .= '&search=' . $this->request->get['search'];
}

if (isset($this->request->get['tag'])) {
$url .= '&tag=' . $this->request->get['tag'];
}

if (isset($this->request->get['description'])) {
$url .= '&description=' . $this->request->get['description'];
}

if (isset($this->request->get['category_id'])) {
$url .= '&category_id=' . $this->request->get['category_id'];
}

if (isset($this->request->get['sub_category'])) {
$url .= '&sub_category=' . $this->request->get['sub_category'];
}

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$data['breadcrumbs'][] = array(
'text' => $product_info['name'],
'href' => $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id'])
);

$this->document->setTitle($product_info['meta_title']);
$this->document->setDescription($product_info['meta_description']);
$this->document->setKeywords($product_info['meta_keyword']);
$this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical');
$this->document->addScript('catalog/view/javascript/jquery/magnific/jquery.magnific-popup.min.js');
$this->document->addStyle('catalog/view/javascript/jquery/magnific/magnific-popup.css');
$this->document->addScript('catalog/view/javascript/jquery/datetimepicker/moment.js');
$this->document->addScript('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js');
$this->document->addStyle('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css');

$data['heading_title'] = $product_info['name'];

$data['text_select'] = $this->language->get('text_select');
$data['text_manufacturer'] = $this->language->get('text_manufacturer');
$data['text_model'] = $this->language->get('text_model');
$data['text_reward'] = $this->language->get('text_reward');
$data['text_points'] = $this->language->get('text_points');
$data['text_stock'] = $this->language->get('text_stock');
$data['text_discount'] = $this->language->get('text_discount');
$data['text_tax'] = $this->language->get('text_tax');
$data['text_option'] = $this->language->get('text_option');
$data['text_minimum'] = sprintf($this->language->get('text_minimum'), $product_info['minimum']);
$data['text_write'] = $this->language->get('text_write');
$data['text_login'] = sprintf($this->language->get('text_login'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'));
$data['text_note'] = $this->language->get('text_note');
$data['text_tags'] = $this->language->get('text_tags');
$data['text_related'] = $this->language->get('text_related');
$data['text_loading'] = $this->language->get('text_loading');

$data['entry_qty'] = $this->language->get('entry_qty');
$data['entry_name'] = $this->language->get('entry_name');
$data['entry_review'] = $this->language->get('entry_review');
$data['entry_rating'] = $this->language->get('entry_rating');
$data['entry_good'] = $this->language->get('entry_good');
$data['entry_bad'] = $this->language->get('entry_bad');
$data['entry_captcha'] = $this->language->get('entry_captcha');

$data['button_cart'] = $this->language->get('button_cart');
$data['button_wishlist'] = $this->language->get('button_wishlist');
$data['button_compare'] = $this->language->get('button_compare');
$data['button_upload'] = $this->language->get('button_upload');
$data['button_continue'] = $this->language->get('button_continue');

$this->load->model('catalog/review');

$data['tab_description'] = $this->language->get('tab_description');
$data['tab_attribute'] = $this->language->get('tab_attribute');
$data['tab_review'] = sprintf($this->language->get('tab_review'), $product_info['reviews']);

$data['product_id'] = (int)$this->request->get['product_id'];
$data['manufacturer'] = $product_info['manufacturer'];
$data['manufacturers'] = $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $product_info['manufacturer_id']);
$data['model'] = $product_info['model'];
$data['reward'] = $product_info['reward'];
$data['points'] = $product_info['points'];

if ($product_info['quantity'] <= 0) {
$data['stock'] = $product_info['stock_status'];
} elseif ($this->config->get('config_stock_display')) {
$data['stock'] = $product_info['quantity'];
} else {
$data['stock'] = $this->language->get('text_instock');
}

$this->load->model('tool/image');

if ($product_info['image']) {
$data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));
} else {
$data['popup'] = '';
}

if ($product_info['image']) {
$data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));
} else {
$data['thumb'] = '';
}

$data['images'] = array();

$results = $this->model_catalog_product->getProductImages($this->request->get['product_id']);

foreach ($results as $result) {
$data['images'][] = array(
'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')),
'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height'))
);
}

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$data['price'] = false;
}

if ((float)$product_info['special']) {
$data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
} else {
$data['special'] = false;
}

if ($this->config->get('config_tax')) {
$data['tax'] = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']);
} else {
$data['tax'] = false;
}

$discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']);

$data['discounts'] = array();

foreach ($discounts as $discount) {
$data['discounts'][] = array(
'quantity' => $discount['quantity'],
'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')))
);
}

$data['options'] = array();

foreach ($this->model_catalog_product->getProductOptions($this->request->get['product_id']) as $option) {
$product_option_value_data = array();

foreach ($option['product_option_value'] as $option_value) {
if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {
if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) {
$price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false));
} else {
$price = false;
}

$product_option_value_data[] = array(
'product_option_value_id' => $option_value['product_option_value_id'],
'option_value_id' => $option_value['option_value_id'],
'name' => $option_value['name'],
'image' => $this->model_tool_image->resize($option_value['image'], 50, 50),
'price' => $price,
'price_prefix' => $option_value['price_prefix']
);
}
}

$data['options'][] = array(
'product_option_id' => $option['product_option_id'],
'product_option_value' => $product_option_value_data,
'option_id' => $option['option_id'],
'name' => $option['name'],
'type' => $option['type'],
'value' => $option['value'],
'required' => $option['required']
);
}

if ($product_info['minimum']) {
$data['minimum'] = $product_info['minimum'];
} else {
$data['minimum'] = 1;
}

$data['review_status'] = $this->config->get('config_review_status');

if ($this->config->get('config_review_guest') || $this->customer->isLogged()) {
$data['review_guest'] = true;
} else {
$data['review_guest'] = false;
}

if ($this->customer->isLogged()) {
$data['customer_name'] = $this->customer->getFirstName() . ' ' . $this->customer->getLastName();
} else {
$data['customer_name'] = '';
}

$data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']);
$data['rating'] = (int)$product_info['rating'];
$data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');
$data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);

$data['products'] = array();

$results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);

foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_related_width'), $this->config->get('config_image_related_height'));
} else {
$image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_related_width'), $this->config->get('config_image_related_height'));
}

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = false;
}

if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}

if ($this->config->get('config_tax')) {
$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
} else {
$tax = false;
}

if ($this->config->get('config_review_status')) {
$rating = (int)$result['rating'];
} else {
$rating = false;
}

$data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
'price' => $price,
'special' => $special,
'tax' => $tax,
'rating' => $rating,
'href' => $this->url->link('product/product', 'product_id=' . $result['product_id'])
);
}

$data['tags'] = array();

if ($product_info['tag']) {
$tags = explode(',', $product_info['tag']);

foreach ($tags as $tag) {
$data['tags'][] = array(
'tag' => trim($tag),
'href' => $this->url->link('product/search', 'tag=' . trim($tag))
);
}
}

$data['text_payment_recurring'] = $this->language->get('text_payment_recurring');
$data['recurrings'] = $this->model_catalog_product->getProfiles($this->request->get['product_id']);

$this->model_catalog_product->updateViewed($this->request->get['product_id']);

$data['column_left'] = $this->load->controller('common/column_left');
$data['column_right'] = $this->load->controller('common/column_right');
$data['content_top'] = $this->load->controller('common/content_top');
$data['content_bottom'] = $this->load->controller('common/content_bottom');
$data['footer'] = $this->load->controller('common/footer');
$data['header'] = $this->load->controller('common/header');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/quickview.tpl')) {
$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/quickview.tpl', $data));
} else {
$this->response->setOutput($this->load->view('default/template/product/quickview.tpl', $data));
}
} else {
die('Product not found!');
}
}
}

Ссылка на комментарий
Поделиться на других сайтах


  • 1 месяц спустя...

Розархивируйте и скопируйте с заменой.

Перед заменой ОБЯЗАТЕЛЬНО сделайте бэкап оригинальных файлов.

Файлы для FASTOR 1.3.7

catalog.zip

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.