Jump to content
Sign in to follow this  
Leingard

Красивое описание товара [РЕШЕНО]

Recommended Posts

Здравствуйте...

Подскажите пожалуйста, в админке я заполняю описание, все с новой строки, но в списке товаров оно все в одну строчку... см. рис

vva.jpg

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

Заранее большое спасибо!

Share this post


Link to post
Share on other sites

Нажмите на "Источник" и попробуйте написать с кодом...

Или, переходите на новую строку (не клавишей Enter) а сочетанием "Shift + Enter" - иногда помогает.

  • +1 1

Share this post


Link to post
Share on other sites

Нажмите на "Источник" и попробуйте написать с кодом...

Или, переходите на новую строку (не клавишей Enter) а сочетанием "Shift + Enter" - иногда помогает.

коды не работают... тэги <br> не переносят... Сочитания так же не работают...

Выбор параметра списка так же не дает ничего...

В самом описании товара все хорошо и отображается как в админке, в кратком product-list когбудто без форматирования...

Пробовал использовать стиль, что и в полном описании товара не помогает...

Пробовал в category.php заменить на параметры description из product.php ошибку выдает...

Share this post


Link to post
Share on other sites

Когдато я делал как-то так

'description' =>html_entity_decode($result['description']),

Попробуйте может поможет.

  • +1 1

Share this post


Link to post
Share on other sites

Когдато я делал как-то так

'description' =>html_entity_decode($result['description']),

Попробуйте может поможет.

Не работает... Пробую

'description' =>utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, ENT_HTML401, 'UTF-8')), 0, 100) . 

никакой реакции... Мне нужно, что б хотя б работали переносы в описании, а оно все-равно в одну строчку...

Даже добавил

ENT_HTML401

всеравно...

На сколько я понимаю html_entity_decode выполняет функцию декодирования кода в обычные слова (utf-8), а htmlentities наоборот создает из текста код если в нем используются коды... Но одного я понять не могу... В product.php используется тоже html_entity_decode как и в category.php ... Почему тогда в product.php отображает все правильно (как в админке с переносами т.п.), а в списке товаров category.php не отображает форматирование (хотя и там и там html_entity_decode)

Share this post


Link to post
Share on other sites

Странно, что никто не может помочь...

Хотя сколько просматривал магазинов на ОС никто это не реализовал...

Share this post


Link to post
Share on other sites

Как вы и писали, взял строку из product.php и поставил в category.php. Получилось

'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),

И все работает.

post-29331-0-00416400-1361792805_thumb.png

  • +1 1

Share this post


Link to post
Share on other sites

Мб не туда ввел?

www/catalog/controller/product/category.php

<?php
class ControllerProductCategory extends Controller {
public function index() {
 $this->language->load('product/category');

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

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

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

 if (isset($this->request->get['sort'])) {
  $sort = $this->request->get['sort'];
 } else {
  $sort = 'p.sort_order';
 }
 if (isset($this->request->get['order'])) {
  $order = $this->request->get['order'];
 } else {
  $order = 'ASC';
 }

 if (isset($this->request->get['page'])) {
  $page = $this->request->get['page'];
 } else {
  $page = 1;
 }

 if (isset($this->request->get['limit'])) {
  $limit = $this->request->get['limit'];
 } else {
  $limit = $this->config->get('config_catalog_limit');
 }

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

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

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

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

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

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

  $category_id = (int)array_pop($parts);
 } else {
  $category_id = 0;
 }

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

 if ($category_info) {
  if ($category_info['seo_title']) {
  $this->document->setTitle($category_info['seo_title']);
  } else {
  $this->document->setTitle($category_info['name']);
  }
  $this->document->setDescription($category_info['meta_description']);
  $this->document->setKeywords($category_info['meta_keyword']);

  $this->data['seo_h1'] = $category_info['seo_h1'];
  $this->data['heading_title'] = $category_info['name'];

  $this->data['text_refine'] = $this->language->get('text_refine');
  $this->data['text_empty'] = $this->language->get('text_empty');  
  $this->data['text_quantity'] = $this->language->get('text_quantity');
  $this->data['text_manufacturer'] = $this->language->get('text_manufacturer');
  $this->data['text_model'] = $this->language->get('text_model');
  $this->data['text_price'] = $this->language->get('text_price');
  $this->data['text_tax'] = $this->language->get('text_tax');
  $this->data['text_points'] = $this->language->get('text_points');
  $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
  $this->data['text_or'] = $this->language->get('text_or');
  $this->data['text_display'] = $this->language->get('text_display');
  $this->data['text_list'] = $this->language->get('text_list');
  $this->data['text_grid'] = $this->language->get('text_grid');
  $this->data['text_sort'] = $this->language->get('text_sort');
  $this->data['text_limit'] = $this->language->get('text_limit');

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

  if ($category_info['image']) {
$this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
  } else {
$this->data['thumb'] = '';
  }

$this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
  $this->data['compare'] = $this->url->link('product/compare');

  $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['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
  }

  $this->data['categories'] = array();

  $results = $this->model_catalog_category->getCategories($category_id);

  foreach ($results as $result) {
$data = array(
 'filter_category_id'  => $result['category_id'],
 'filter_sub_category' => true
);

$product_total = $this->model_catalog_product->getTotalProducts($data);  

$this->data['categories'][] = array(
 'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
 'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
);
  }

  $this->data['products'] = array();

  $data = array(
'filter_category_id' => $category_id,
'sort'			   => $sort,
'order'			  => $order,
'start'			  => ($page - 1) * $limit,
'limit'			  => $limit
  );

  $product_total = $this->model_catalog_product->getTotalProducts($data);

  $results = $this->model_catalog_product->getProducts($data);

  foreach ($results as $result) {
if ($result['image']) {
 $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
} else {
 $image = false;
}

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;
}

$this->data['products'][] = array(
 'product_id'  => $result['product_id'],
 'thumb'	   => $image,
 'name'		=> $result['name'],
 'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),
 'price'	   => $price,
 'special'	 => $special,
 'tax'		 => $tax,
 'rating'	  => $result['rating'],
 'reviews'	 => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
 'href'		=> $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
);
  }

  $url = '';

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

  $this->data['sorts'] = array();

  $this->data['sorts'][] = array(
'text'  => $this->language->get('text_default'),
'value' => 'p.sort_order-ASC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
  );


  $this->data['sorts'][] = array(
'text'  => $this->language->get('text_price_asc'),
'value' => 'p.price-ASC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url)
  );
  $this->data['sorts'][] = array(
'text'  => $this->language->get('text_price_desc'),
'value' => 'p.price-DESC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url)
  );



  $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'];
  }

  $this->data['limits'] = array();

  $this->data['limits'][] = array(
'text'  => $this->config->get('config_catalog_limit'),
'value' => $this->config->get('config_catalog_limit'),
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $this->config->get('config_catalog_limit'))
  );

  $this->data['limits'][] = array(
'text'  => 25,
'value' => 25,
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=25')
  );

  $this->data['limits'][] = array(
'text'  => 50,
'value' => 50,
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=50')
  );
  $this->data['limits'][] = array(
'text'  => 75,
'value' => 75,
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=75')
  );

  $this->data['limits'][] = array(
'text'  => 100,
'value' => 100,
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=100')
  );

  $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['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
  }

  $pagination = new Pagination();
  $pagination->total = $product_total;
  $pagination->page = $page;
  $pagination->limit = $limit;
  $pagination->text = $this->language->get('text_pagination');
  $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}');

  $this->data['pagination'] = $pagination->render();

  $this->data['sort'] = $sort;
  $this->data['order'] = $order;
  $this->data['limit'] = $limit;

  $this->data['continue'] = $this->url->link('common/home');
  if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/category.tpl';
  } else {
$this->template = 'default/template/product/category.tpl';
  }

  $this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
  );

  $this->response->setOutput($this->render());		
 } else {
  $url = '';

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

  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'];
  }

  $this->data['breadcrumbs'][] = array(
'text'	  => $this->language->get('text_error'),
'href'	  => $this->url->link('product/category', $url),
'separator' => $this->language->get('text_separator')
  );

  $this->document->setTitle($this->language->get('text_error'));
	$this->data['heading_title'] = $this->language->get('text_error');
	$this->data['text_error'] = $this->language->get('text_error');
	$this->data['button_continue'] = $this->language->get('button_continue');
	$this->data['continue'] = $this->url->link('common/home');
  if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
$this->template = $this->config->get('config_template') . '/template/error/not_found.tpl';
  } else {
$this->template = 'default/template/error/not_found.tpl';
  }

  $this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
  );

  $this->response->setOutput($this->render());
 }
  }
}
?>

Share this post


Link to post
Share on other sites

У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),".

Вы уверены что измененный файл на сервер залили?

А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке.

  • +1 1

Share this post


Link to post
Share on other sites

У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),".

Вы уверены что измененный файл на сервер залили?

А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке.

Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...)

А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...)

Share this post


Link to post
Share on other sites

Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...)

А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...)

Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта:

1. Нажимаете на какую-нибудь подкатегорию

2. Вводите что-то в поле "поиск" и нажимаете "искать"

В первом случае надо менять файл catagory.php, а во-втором файл search.php

category.php

  • +1 1

Share this post


Link to post
Share on other sites

Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта:

1. Нажимаете на какую-нибудь подкатегорию

2. Вводите что-то в поле "поиск" и нажимаете "искать"

В первом случае надо менять файл catagory.php, а во-втором файл search.php

Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами

Я смотрю непосредственно в категории

Share this post


Link to post
Share on other sites

Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить.

  • +1 1

Share this post


Link to post
Share on other sites

Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить.

Спасииииииибо)))) :wub:

В фильтре используется код:

$description = function_exists('utf8_substr') ?
utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0,
100) . '..' :

substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..';

и ниже на вывод:

'description' => $description,

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

Share this post


Link to post
Share on other sites

Если мне не изменяет гугл, то strip_tags режет html тэги (как раз превращает форматированный текст в обычный), а substr выводит только первые 100 символов.

Можно изменить функцию

$description = function_exists('utf8_substr') ?
utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0,
100) . '..' :
substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..';

заменить на

$description = html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8');

ЛИБО изменить вызов этой функции

'description' => $description,

заменить на

'description' => html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8'),

  • +1 1

Share this post


Link to post
Share on other sites

Если мне не изменяет гугл, то strip_tags режет html тэги (как раз превращает форматированный текст в обычный), а substr выводит только первые 100 символов.

Можно изменить функцию

$description = function_exists('utf8_substr') ?
utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0,
100) . '..' :
substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..';

заменить на

$description = html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8');

ЛИБО изменить вызов этой функции

'description' => $description,

заменить на

'description' => html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8'),

В обоих случаях оно отображает в описании теги как текст... Вот как на скриншоте внизу сообщения... :(

Помогите уже добить его)

Вот полный код скрипта:

<?php
class ControllerModuleFilterPro extends Controller {
protected function index($setting) {
 $this->language->load('module/filterpro');
 $this->data['text_tax'] = $this->language->get('text_tax');
 $this->data['button_cart'] = $this->language->get('button_cart');
 $this->data['button_wishlist'] = $this->language->get('button_wishlist');
 $this->data['button_compare'] = $this->language->get('button_compare');
 $this->data['text_price_range'] = $this->language->get('text_price_range');
 $this->data['text_manufacturers'] = $this->language->get
('text_manufacturers');
 $this->data['text_attributes'] = $this->language->get('text_attributes');
 $this->data['text_all'] = $this->language->get('text_all');
 $this->data['clear_filter'] = $this->language->get('clear_filter');
 $this->data['heading_title'] = $this->language->get('heading_title');
 $this->data['pds_sku'] = $this->language->get('pds_sku');
 $this->data['pds_upc'] = $this->language->get('pds_upc');
 $this->data['pds_location'] = $this->language->get('pds_location');
 $this->data['pds_model'] = $this->language->get('pds_model');
 $this->data['pds_brand'] = $this->language->get('pds_brand');
 $this->data['pds_stock'] = $this->language->get('pds_stock');
 $this->data['setting'] = $setting;
 if(VERSION == '1.5.0') {
  $filterpro_setting = unserialize($this->config->get
('filterpro_setting'));
 } else {
  $filterpro_setting = $this->config->get('filterpro_setting');
 }
 $category_id = 0;
 $this->data['path'] = "";
 if(isset($this->request->get['path'])) {
  $this->data['path'] = $this->request->get['path'];
  $parts = explode('_', (string)$this->request->get['path']);
  $category_id = array_pop($parts);
 }
 $this->data['category_id'] = $category_id;
 $this->load->model('module/filterpro');
 $this->data['manufacturers'] = false;
 if($filterpro_setting['display_manufacturer'] != 'none') {
  $this->data['manufacturers'] = $this->model_module_filterpro-
>getManufacturersByCategoryId($category_id);
  $this->data['display_manufacturer'] = $filterpro_setting
['display_manufacturer'];
 }
 $this->data['options'] = $this->model_module_filterpro-
>getOptionsByCategoryId($category_id);
 foreach($this->data['options'] as $i => $option) {
  $display_option = $filterpro_setting['display_option_' . $option
['option_id']];
  if($display_option != 'none') {
   $this->data['options'][$i]['display'] = $display_option;
  } else {
   unset($this->data['options'][$i]);
  }
 }
 $this->data['attributes'] = $this->model_module_filterpro-
>getAttributesByCategoryId($category_id);
 foreach($this->data['attributes'] as $j => $attribute_group) {
  foreach($attribute_group['attribute_values'] as $attribute_id =>
$attribute) {
   $display_attribute = $filterpro_setting['display_attribute_'
. $attribute_id];
   if($display_attribute != 'none') {
 $this->data['attributes'][$j]['attribute_values']
[$attribute_id]['display'] = $display_attribute;
   } else {
 unset($this->data['attributes'][$j]
['attribute_values'][$attribute_id]);
 if(!$this->data['attributes'][$j]
['attribute_values']) {
  unset($this->data['attributes'][$j]);
 }
   }
  }
 }
 $this->data['price_slider'] = $filterpro_setting['price_slider'];
 if($this->data['options'] || $this->data['manufacturers'] || $this->data
['attributes'] ||$this->data['price_slider']) {
  $this->document->addScript
('catalog/view/javascript/jquery/jquery.tmpl.min.js');
  $this->document->addScript
('catalog/view/javascript/jquery/jquery.deserialize.js');
  $this->document->addScript
('catalog/view/javascript/filterpro.min.js');
  $this->document->addStyle
('catalog/view/theme/default/stylesheet/filterpro.css');
 }
 if(file_exists(DIR_TEMPLATE . $this->config->get('config_template') .
'/template/module/filterpro.tpl')) {
  $this->template = $this->config->get('config_template') .
'/template/module/filterpro.tpl';
 } else {
  $this->template = 'default/template/module/filterpro.tpl';
 }
 $this->render();
}
private function array_clean(array $haystack) {
 foreach($haystack as $key => $value) {
  if(is_array($value)) {
   $haystack[$key] = $this->array_clean($value);
   if(!count($haystack[$key])) {
 unset($haystack[$key]);
   }
  } elseif(is_string($value)) {
   $value = trim($value);
   if(!$value) {
 unset($haystack[$key]);
   }
  }
 }
 return $haystack;
}
public function getProducts() {
 //  $cache = md5(http_build_query($this->request->post));
 //  $json = $this->cache->get('filterpro.' . (int)$this->config-
>get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' .
$cache);
 //  if(!$json) {
 $this->language->load('module/filterpro');
 if(VERSION == '1.5.0') {
  $filterpro_setting = unserialize($this->config->get
('filterpro_setting'));
 } else {
  $filterpro_setting = $this->config->get('filterpro_setting');
 }

 $page = 1;
 if(isset($this->request->post['page'])) {
  $page = (int)$this->request->post['page'];
 }
 if(isset($this->request->post['sort'])) {
  $sort = $this->request->post['sort'];
 } else {
  $sort = 'p.sort_order';
 }
 if(isset($this->request->post['order'])) {
  $order = $this->request->post['order'];
 } else {
  $order = 'ASC';
 }
 if(isset($this->request->post['limit'])) {
  $limit = $this->request->post['limit'];
 } else {
  $limit = $this->config->get('config_catalog_limit');
 }

 $this->load->model('module/filterpro');
 $this->load->model('catalog/product');
 $this->load->model('tool/image');
 $manufacturer = false;
 if(isset($this->request->post['manufacturer'])) {
  $manufacturer = $this->array_clean($this->request->post
['manufacturer']);
  if(!count($manufacturer)) {
   $manufacturer = false;
  }
 }
 $option_value = false;
 if(isset($this->request->post['option_value'])) {
  $option_value = $this->array_clean($this->request->post
['option_value']);
  if(!count($option_value)) {
   $option_value = false;
  }
 }
 $attribute_value = false;
 if(isset($this->request->post['attribute_value'])) {
  $attribute_value = $this->array_clean($this->request->post
['attribute_value']);
  if(!count($attribute_value)) {
   $attribute_value = false;
  }
 }
 $data = array(
  'option_value' => $option_value,
  'manufacturer' => $manufacturer,
  'attribute_value' => $attribute_value,
  'category_id' => $this->request->post['category_id'],
  'min_price' => $this->request->post['min_price'],
  'max_price' => $this->request->post['max_price'],
  'start' => ($page - 1) * $limit,
  'limit' => $limit,
  'sort' => $sort,
  'order' => $order
 );
 $product_total = $this->model_module_filterpro->getTotalProducts($data);
 $totals_manufacturers = $this->model_module_filterpro->getTotalManufacturers
($data);
 $totals_options = $this->model_module_filterpro->getTotalOptions($data);
 $totals_attributes = $this->model_module_filterpro->getTotalAttributes
($data);
 $products = $this->model_module_filterpro->getProducts($data);

 $result = array();
 $min_price = false;
 $max_price = false;
 if(isset($this->request->post['getPriceLimits']) && $this->request->post
['getPriceLimits']) {
  $priceLimits = $this->model_module_filterpro->getPriceLimits($data);
  $min_price = $priceLimits['min_price'];
  $max_price = $priceLimits['max_price'];
 }
 foreach($products as $product) {
  if($product['image']) {
   $image = $this->model_tool_image->resize($product['image'],
$this->config->get('config_image_product_width'), $this->config->get
('config_image_product_height'));
  } else {
   $image = false;
  }
  if(($this->config->get('config_customer_price') && $this->customer-
>isLogged()) || !$this->config->get('config_customer_price')) {
   $price = $this->currency->format($this->tax->calculate
($product['price'], $product['tax_class_id'], $this->config->get('config_tax')));
  } else {
   $price = false;
  }
  if((float)$product['special']) {
   $special = $this->currency->format($this->tax->calculate
($product['special'], $product['tax_class_id'], $this->config->get('config_tax')));
  } else {
   $special = false;
  }
  if($this->config->get('config_tax')) {
   $tax = $this->currency->format((float)$product['special'] ?
$product['special'] : $product['price']);
  } else {
   $tax = false;
  }
  if($this->config->get('config_review_status')) {
   $rating = (int)$product['rating'];
  } else {
   $rating = false;
  }
$description = function_exists('utf8_substr') ?
utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0,
100) . '..' :
substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 100)
. '..';
  if($product['quantity'] <= 0) {
   $rstock = $product['stock_status'];
  } elseif($this->config->get('config_stock_display')) {
   $rstock = $product['quantity'];
  } else {
   $rstock = $this->language->get('text_instock');
  }
  $result[] = array(
   'product_id' => $product['product_id'],
   'sku' => $filterpro_setting['sku_display'] ? $product['sku']
: false,
   'model' => $filterpro_setting['model_display'] ? $product
['model'] : false,
   'brand' => $filterpro_setting['brand_display'] ? $product
['manufacturer'] : false,
   'location' => $filterpro_setting['location_display'] ?
$product['location'] : false,
   'upc' => $filterpro_setting['upc_display'] ? $product['upc']
: false,
   'stock' => $filterpro_setting['stock_display'] ? $rstock :
false,
   'image' => $image,
   'thumb' => $image,
   'special' => $special,
   'tax' => $tax,
   'rating' => $rating,
   'name' => $product['name'],
   'description' => $description,
   'price' => $price,
   'href' => $this->url->link('product/product', (isset($this-
>request->post['path']) ? 'path=' . $this->request->post['path']
  : '') . '&product_id=' . $product
['product_id'])
  );
 }
 $pagination = new Pagination();
 $pagination->total = $product_total;
 $pagination->page = $page;
 $pagination->limit = $limit;
 $pagination->text = $this->language->get('text_pagination');
 $pagination->url = 'page={page}';
 $min_price = $this->currency->convert($min_price, $this->config->get
('config_currency'), $this->currency->getCode());
 $max_price = $this->currency->convert($max_price, $this->config->get
('config_currency'), $this->currency->getCode());
 $json = json_encode(array('result' => $result, 'min_price' => $min_price,
'max_price' => $max_price, 'pagination' => $pagination->render(),
	 'totals_data' => array
('manufacturers' => $totals_manufacturers, 'options' => $totals_options, 'attributes' =>
$totals_attributes)));
 //   $this->cache->set('filterpro.' . (int)$this->config-
>get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $cache,
$json);
 //  }
 $this->response->setOutput($json);
}
}
?>

post-17442-0-62029600-1361919445_thumb.jpg

Share this post


Link to post
Share on other sites

Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как...

Share this post


Link to post
Share on other sites

Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль.

  • +1 1

Share this post


Link to post
Share on other sites

Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль.

Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128

Share this post


Link to post
Share on other sites

Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара...

Share this post


Link to post
Share on other sites

Извините что пишу тут

Но может кто нибудь знает или возможно ли сделать ограничение символов

'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'),

Тоесть что бы текст выводился в разные строчки но и ограничение на символы было

Заранее спасибо!

Share this post


Link to post
Share on other sites
...что бы текст выводился в разные строчки но и ограничение на символы было...

Что то я не понял... :-) Можно подробнее

Share this post


Link to post
Share on other sites

Возможно ли:

Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде.

Тоесть

Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например)

Столбик 1 Столбик2 Столбик3

описание1 описание2 описание3

описание1 описание2 описание3

описание1 описание2 описание3

описание1 описание2 описание3

Share this post


Link to post
Share on other sites

Спасибо большое! Решил. )

Добавил в strip_tags <br/><b>

utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..',

  • +1 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.