Перейти к содержанию
Leingard

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

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

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

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

vva.jpg

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

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

Поделиться сообщением


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

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

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

  • +1 1

Поделиться сообщением


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

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

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

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

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

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

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

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

Поделиться сообщением


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

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

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

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

  • +1 1

Поделиться сообщением


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

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

'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)

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

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

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

  • +1 1

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

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

  • +1 1

Поделиться сообщением


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

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

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

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

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

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

Поделиться сообщением


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

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

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

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

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

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

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

category.php

  • +1 1

Поделиться сообщением


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

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

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

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

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

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

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

Поделиться сообщением


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

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

  • +1 1

Поделиться сообщением


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

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

Спасииииииибо)))) :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,

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

Поделиться сообщением


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

Если мне не изменяет гугл, то 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

Поделиться сообщением


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

Если мне не изменяет гугл, то 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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

  • +1 1

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
...что бы текст выводился в разные строчки но и ограничение на символы было...

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

Поделиться сообщением


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

Возможно ли:

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

Тоесть

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

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

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

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

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

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

Поделиться сообщением


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

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

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

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

  • +1 1

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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