Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


Recommended Posts

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

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

vva.jpg

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

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

Link to comment
Share on other sites

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

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

  • +1 1
Link to comment
Share on other sites

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

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

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

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

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

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

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

Link to comment
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)

Link to comment
Share on other sites

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

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

Link to comment
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());
 }
  }
}
?>

Link to comment
Share on other sites

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

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

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

  • +1 1
Link to comment
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 ...) Заранее пасибки... Мб как-то поможет...)

Link to comment
Share on other sites

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

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

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

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

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

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

category.php

  • +1 1
Link to comment
Share on other sites


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

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

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

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

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

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

Link to comment
Share on other sites

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

  • +1 1
Link to comment
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,

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

Link to comment
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
Link to comment
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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 2 weeks later...

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

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

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

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

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

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites

Возможно ли:

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

Тоесть

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

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

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

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

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

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

Link to comment
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
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.