Leingard Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Здравствуйте... Подскажите пожалуйста, в админке я заполняю описание, все с новой строки, но в списке товаров оно все в одну строчку... см. рис Подскажите пожлауйста, как реализовать, что б в кратком описании было так же как и заполнялось в админке... Заранее большое спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Нажмите на "Источник" и попробуйте написать с кодом... Или, переходите на новую строку (не клавишей Enter) а сочетанием "Shift + Enter" - иногда помогает. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 20 лютого 2013 Автор Share Опубліковано: 20 лютого 2013 Нажмите на "Источник" и попробуйте написать с кодом... Или, переходите на новую строку (не клавишей Enter) а сочетанием "Shift + Enter" - иногда помогает. коды не работают... тэги <br> не переносят... Сочитания так же не работают... Выбор параметра списка так же не дает ничего... В самом описании товара все хорошо и отображается как в админке, в кратком product-list когбудто без форматирования... Пробовал использовать стиль, что и в полном описании товара не помогает... Пробовал в category.php заменить на параметры description из product.php ошибку выдает... Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Когдато я делал как-то так 'description' =>html_entity_decode($result['description']), Попробуйте может поможет. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 21 лютого 2013 Автор Share Опубліковано: 21 лютого 2013 Когдато я делал как-то так '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) Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 23 лютого 2013 Автор Share Опубліковано: 23 лютого 2013 Странно, что никто не может помочь... Хотя сколько просматривал магазинов на ОС никто это не реализовал... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 25 лютого 2013 Share Опубліковано: 25 лютого 2013 Как вы и писали, взял строку из product.php и поставил в category.php. Получилось 'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), И все работает. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 25 лютого 2013 Автор Share Опубліковано: 25 лютого 2013 Мб не туда ввел? 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()); } } } ?> Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
tim21701 Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Нажмите на "Источник" и попробуйте написать с кодом... Или, переходите на новую строку (не клавишей Enter) а сочетанием "Shift + Enter" - иногда помогает. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 20 лютого 2013 Автор Share Опубліковано: 20 лютого 2013 Нажмите на "Источник" и попробуйте написать с кодом... Или, переходите на новую строку (не клавишей Enter) а сочетанием "Shift + Enter" - иногда помогает. коды не работают... тэги <br> не переносят... Сочитания так же не работают... Выбор параметра списка так же не дает ничего... В самом описании товара все хорошо и отображается как в админке, в кратком product-list когбудто без форматирования... Пробовал использовать стиль, что и в полном описании товара не помогает... Пробовал в category.php заменить на параметры description из product.php ошибку выдает... Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Когдато я делал как-то так 'description' =>html_entity_decode($result['description']), Попробуйте может поможет. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 21 лютого 2013 Автор Share Опубліковано: 21 лютого 2013 Когдато я делал как-то так '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) Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 23 лютого 2013 Автор Share Опубліковано: 23 лютого 2013 Странно, что никто не может помочь... Хотя сколько просматривал магазинов на ОС никто это не реализовал... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 25 лютого 2013 Share Опубліковано: 25 лютого 2013 Как вы и писали, взял строку из product.php и поставил в category.php. Получилось 'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), И все работает. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 25 лютого 2013 Автор Share Опубліковано: 25 лютого 2013 Мб не туда ввел? 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()); } } } ?> Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Leingard Опубліковано: 20 лютого 2013 Автор Share Опубліковано: 20 лютого 2013 Нажмите на "Источник" и попробуйте написать с кодом... Или, переходите на новую строку (не клавишей Enter) а сочетанием "Shift + Enter" - иногда помогает. коды не работают... тэги <br> не переносят... Сочитания так же не работают... Выбор параметра списка так же не дает ничего... В самом описании товара все хорошо и отображается как в админке, в кратком product-list когбудто без форматирования... Пробовал использовать стиль, что и в полном описании товара не помогает... Пробовал в category.php заменить на параметры description из product.php ошибку выдает... Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Когдато я делал как-то так 'description' =>html_entity_decode($result['description']), Попробуйте может поможет. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 21 лютого 2013 Автор Share Опубліковано: 21 лютого 2013 Когдато я делал как-то так '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) Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 23 лютого 2013 Автор Share Опубліковано: 23 лютого 2013 Странно, что никто не может помочь... Хотя сколько просматривал магазинов на ОС никто это не реализовал... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 25 лютого 2013 Share Опубліковано: 25 лютого 2013 Как вы и писали, взял строку из product.php и поставил в category.php. Получилось 'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), И все работает. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 25 лютого 2013 Автор Share Опубліковано: 25 лютого 2013 Мб не туда ввел? 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()); } } } ?> Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
askirov Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Когдато я делал как-то так 'description' =>html_entity_decode($result['description']), Попробуйте может поможет. 1 Надіслати Поділитися на інших сайтах More sharing options...
Leingard Опубліковано: 21 лютого 2013 Автор Share Опубліковано: 21 лютого 2013 Когдато я делал как-то так '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) Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 23 лютого 2013 Автор Share Опубліковано: 23 лютого 2013 Странно, что никто не может помочь... Хотя сколько просматривал магазинов на ОС никто это не реализовал... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 25 лютого 2013 Share Опубліковано: 25 лютого 2013 Как вы и писали, взял строку из product.php и поставил в category.php. Получилось 'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), И все работает. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 25 лютого 2013 Автор Share Опубліковано: 25 лютого 2013 Мб не туда ввел? 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()); } } } ?> Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Leingard Опубліковано: 23 лютого 2013 Автор Share Опубліковано: 23 лютого 2013 Странно, что никто не может помочь... Хотя сколько просматривал магазинов на ОС никто это не реализовал... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 25 лютого 2013 Share Опубліковано: 25 лютого 2013 Как вы и писали, взял строку из product.php и поставил в category.php. Получилось 'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), И все работает. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 25 лютого 2013 Автор Share Опубліковано: 25 лютого 2013 Мб не туда ввел? 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()); } } } ?> Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Napolnasrakis Опубліковано: 25 лютого 2013 Share Опубліковано: 25 лютого 2013 Как вы и писали, взял строку из product.php и поставил в category.php. Получилось 'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), И все работает. 1 Надіслати Поділитися на інших сайтах More sharing options...
Leingard Опубліковано: 25 лютого 2013 Автор Share Опубліковано: 25 лютого 2013 Мб не туда ввел? 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()); } } } ?> Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. 1 Надіслати Поділитися на інших сайтах More sharing options...
Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 У меня в файле category.php все аналогично. В двух местах ,как и у вас, написано "'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),". Вы уверены что измененный файл на сервер залили? А может быть вы не там смотрите на сайте? Не в категориях, а в поиске, например. Тогда надо так же изменить файл search.php, лежащий в той же папке. Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Что Вы имеете ввиду? Я по www/catalog/controller/product данному пути...) Хотя заметил интересное, походу внутри не стоит изменять верхнюю строчку с такими же данными... там где находится переменная $category_info - а то не отображается описание категории...) А вы б не могли пожалуйста скинуть структуру Ваших файликов product.php и category.php ...) Заранее пасибки... Мб как-то поможет...) Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php category.php 1 Надіслати Поділитися на інших сайтах More sharing options...
Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Как вы получаете список товара, где хотите поменять описание? Тут возможно два варианта: 1. Нажимаете на какую-нибудь подкатегорию 2. Вводите что-то в поле "поиск" и нажимаете "искать" В первом случае надо менять файл catagory.php, а во-втором файл search.php Вот, посмотрите... - http://android-marke...ategory&path=20 - это с установленными параметрами Я смотрю непосредственно в категории Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. 1 Надіслати Поділитися на інших сайтах More sharing options...
Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Так у вас там какой-то модуль для фильтрации стоит. Это в нем надо искать, где описание выводится и там лечить. Попробуйте, для начала, этот модуль отключить. Спасииииииибо)))) :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, подскажи пожалуйста, как его сократить и сделать юзабельным... Как не сокращаю ошибка... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Napolnasrakis Опубліковано: 26 лютого 2013 Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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 Надіслати Поділитися на інших сайтах More sharing options...
Leingard Опубліковано: 26 лютого 2013 Автор Share Опубліковано: 26 лютого 2013 Если мне не изменяет гугл, то 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); } } ?> Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Видимо оно скрывало все тэги(stripn_tags) и писало в строчку, потому, что сама функция обработки тэгов не подключена в данный фильтр... Посему оно скрывает тэги, что б они не отображались как на скрине... Нужно как-то подключить функцию обработки тэгов в этот фильтр... Только вот не могу понять как... Надіслати Поділитися на інших сайтах More sharing options... Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО] Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
Napolnasrakis Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. 1 Надіслати Поділитися на інших сайтах More sharing options...
Leingard Опубліковано: 27 лютого 2013 Автор Share Опубліковано: 27 лютого 2013 Ну больше я ничего посоветовать без самого модуля не могу. Дай ссылку на этот модуль. Вот этот фильтр... Посмотри пожалуйста - http://webfile.ru/6402128 Надіслати Поділитися на інших сайтах More sharing options... Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину Красивое описание товара [РЕШЕНО]
Leingard Опубліковано: 1 березня 2013 Автор Share Опубліковано: 1 березня 2013 Народ, ну что сможете помочь? Как сделать в отдельном фильтре обработку html тегов для описания... Без фильтра все работает... С фильтром оно не активирует теги в описании товара... Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options... tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
romka Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 Извините что пишу тут Но может кто нибудь знает или возможно ли сделать ограничение символов 'description'=> html_entity_decode($result['description'], ENT_QUOTES,'UTF-8'), Тоесть что бы текст выводился в разные строчки но и ограничение на символы было Заранее спасибо! Надіслати Поділитися на інших сайтах More sharing options...
tim21701 Опубліковано: 11 березня 2013 Share Опубліковано: 11 березня 2013 ...что бы текст выводился в разные строчки но и ограничение на символы было... Что то я не понял... :-) Можно подробнее Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options... askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options... romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
romka Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Возможно ли: Чтобы текст в категориях был как в админке (с новой строки и совсем форматированием), но чтобы количесвто текста было было ограничено например 200 символов везде. Тоесть Есть три столбика (в одном столбике один товар). В каждом товаре разное описание где то больше где то меньше. Я бы хотел что бы в категориях можно было опубликовать определенное количество описания (тоесть 200 символов например) Столбик 1 Столбик2 Столбик3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 описание1 описание2 описание3 Надіслати Поділитися на інших сайтах More sharing options...
askirov Опубліковано: 12 березня 2013 Share Опубліковано: 12 березня 2013 Вот еще такой вариант Надіслати Поділитися на інших сайтах More sharing options...
romka Опубліковано: 13 березня 2013 Share Опубліковано: 13 березня 2013 Спасибо большое! Решил. ) Добавил в strip_tags <br/><b> utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), '<br><b>' ), 0, 190) . '..', 1 Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts