sciens Posted September 15, 2019 Share Posted September 15, 2019 Добрый гдень. Ггде-то в этих строчках есть условие, что если есть краткое описание, то выводить краткое описание вместо основного, может ли кто-то подсказать что нужно изменить что бы было условие, если краткое описание потому чтольше 30 символов, то тогда выводить краткое описание вместо основного ? Спойлер class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } 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']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get($this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $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']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); 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) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_refine'] = $this->language->get('text_refine'); $data['text_empty'] = $this->language->get('text_empty'); $data['text_quantity'] = $this->language->get('text_quantity'); $data['text_manufacturer'] = $this->language->get('text_manufacturer'); $data['text_model'] = $this->language->get('text_model'); $data['text_price'] = $this->language->get('text_price'); $data['text_tax'] = $this->language->get('text_tax'); $data['text_points'] = $this->language->get('text_points'); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $data['text_sort'] = $this->language->get('text_sort'); $data['text_limit'] = $this->language->get('text_limit'); $data['text_benefits'] = $this->language->get('text_benefits'); $data['button_cart'] = $this->language->get('button_cart'); $data['button_wishlist'] = $this->language->get('button_wishlist'); $data['button_compare'] = $this->language->get('button_compare'); $data['button_continue'] = $this->language->get('button_continue'); $data['button_list'] = $this->language->get('button_list'); $data['button_grid'] = $this->language->get('button_grid'); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['description_bottom'] = html_entity_decode($category_info['description_bottom'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } 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']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height')); } if ($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')), $this->session->data['currency']); } 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')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } $productbenefits = $this->model_catalog_product->getProductBenefitsbyProductId($result['product_id']); $benefits = array(); foreach ($productbenefits as $benefit) { if ($benefit['image'] && file_exists(DIR_IMAGE . $benefit['image'])) { $bimage = $benefit['image']; if ($benefit['type']) { $bimage = $this->model_tool_image->resize($bimage, 25, 25); } else { $bimage = $this->model_tool_image->resize($bimage, 120, 60); } } else { $bimage = 'no_image.jpg'; } $benefits[] = array( 'benefit_id' => $benefit['benefit_id'], 'name' => $benefit['name'], 'description' => strip_tags(html_entity_decode($benefit['description'])), 'thumb' => $bimage, 'link' => $benefit['link'], 'type' => $benefit['type'] ); } $stickers = $this->getStickers($result['product_id']) ; $data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'sticker' => $stickers, 'benefits' => $benefits, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $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) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $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) ); $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) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get($this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } 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->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], true), 'canonical'); if ($page == 2) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], true), 'prev'); } elseif($page > 2) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page - 1), true), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1), true), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['heading_title'] = $this->language->get('text_error'); $data['text_error'] = $this->language->get('text_error'); $data['button_continue'] = $this->language->get('button_continue'); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } private function getStickers($product_id) { $stickers = $this->model_catalog_product->getProductStickerbyProductId($product_id) ; if (!$stickers) { return; } $data['stickers'] = array(); foreach ($stickers as $sticker) { $data['stickers'][] = array( 'position' => $sticker['position'], 'image' => HTTP_SERVER . 'image/' . $sticker['image'] ); } return $this->load->view('product/stickers', $data); } } Link to comment Share on other sites More sharing options...
Designer Posted September 15, 2019 Share Posted September 15, 2019 if ($result['description_mini']) { // Заменить на if (strlen($result['description_mini']) > 30) { Link to comment Share on other sites More sharing options...
Blast Posted September 15, 2019 Share Posted September 15, 2019 лучше наверное использовать utf8_strlen вместо strlen Link to comment Share on other sites More sharing options... Designer Posted September 15, 2019 Share Posted September 15, 2019 14 минут назад, Blast сказал: лучше наверное использовать utf8_strlen вместо strlen Да, можно использовать внутреннюю функцию utf8_strlen Link to comment Share on other sites More sharing options... sciens Posted September 16, 2019 Author Share Posted September 16, 2019 Интересно конечно))) Мне дали вот икое решение, в строке: $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); заменить $result['description_mini'] на str_replace('<p><br></p>', '' $result['description_mini']) Link to comment Share on other sites More sharing options... Blast Posted September 16, 2019 Share Posted September 16, 2019 (edited) 11 минут назад, sciens сказал: Интересно конечно))) Мне дали вот икое решение, в строке: $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); заменить $result['description_mini'] на str_replace('<p><br></p>', '' $result['description_mini']) ну эи конструкция вырежет указанную подстроку '<p><br></p>' из описания. Первоначальной задали не решает Но гдело в том, что в этот строке кода и ик есть функция strip_tags, которая вырежет вообещё все теги. Да что вам подсказали бессмысленную вещь Edited September 16, 2019 by Blast Link to comment Share on other sites More sharing options... sciens Posted September 19, 2019 Author Share Posted September 19, 2019 В 16.09.2019 в 23:33, Blast сказал: ну эи конструкция вырежет указанную подстроку '<p><br></p>' из описания. Первоначальной задали не решает Но гдело в том, что в этот строке кода и ик есть функция strip_tags, которая вырежет вообещё все теги. Первоначальной задали она может не решает, но возможно решает возникшую проблему, ик как решение проблемы, возможно имеет, несколько вариантов решения: При загрузке товаров в ОенкартПРО 2.3 попадает какой-то "пробел" выглядит ик - <p><br></p> и после него врогде как и игдет этот "пробел", а в "родном" файле прописано условие, что если есть краткое описание, то выводить краткое описание вместо основного в карточках товара на страниэто категорий, модулей, и тд. И вот получается что это условие и выводит этот "пробел", и в резульите получается что часть товаров с описанием которое полное, а часть товаров без описания с "листым полем", ик-как этот "пробел" это "пустои". И получается что можно, или задать условие вывегдения краткого описания от какого-то когдачества символов, или же при загрузке товаров нужно "вырезать" эту подстроку '<p><br></p>' ну и заодно "вырезать" этот "пробел"))) Link to comment Share on other sites More sharing options... Blast Posted September 19, 2019 Share Posted September 19, 2019 41 минуту назад, sciens сказал: Первоначальной задали она может не решает, но возможно решает возникшую проблему, ик как решение проблемы, возможно имеет, несколько вариантов решения: При загрузке товаров в ОенкартПРО 2.3 попадает какой-то "пробел" выглядит ик - <p><br></p> и после него врогде как и игдет этот "пробел", а в "родном" файле прописано условие, что если есть краткое описание, то выводить краткое описание вместо основного в карточках товара на страниэто категорий, модулей, и тд. И вот получается что это условие и выводит этот "пробел", и в резульите получается что часть товаров с описанием которое полное, а часть товаров без описания с "листым полем", ик-как этот "пробел" это "пустои". И получается что можно, или задать условие вывегдения краткого описания от какого-то когдачества символов, или же при загрузке товаров нужно "вырезать" эту подстроку '<p><br></p>' ну и заодно "вырезать" этот "пробел"))) if (utf8_strlen(trim(strip_tags($result['description_mini']))) > 0) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } можно сразу в if проверить длину с учетом вырезания тегов Link to comment Share on other sites More sharing options... sciens Posted September 19, 2019 Author Share Posted September 19, 2019 А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } Link to comment Share on other sites More sharing options... Blast Posted September 20, 2019 Share Posted September 20, 2019 7 часов назад, sciens сказал: А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } да, html_entity_decode в условии нужен, иначе не срилииет strip_tags упустил этот момент в своем сообещёнии Link to comment Share on other sites More sharing options... sciens Posted September 20, 2019 Author Share Posted September 20, 2019 Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? Link to comment Share on other sites More sharing options... Blast Posted September 20, 2019 Share Posted September 20, 2019 17 минут назад, sciens сказал: Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? if (utf8_strlen(trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) > N) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } ггде N - люпотому чтое лисло, которым вы хотите огранилить минимальное когдачество символов в кратком описании. Можете попропотому чтовать разные варианты - 0, 15, 30 Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Перевод opencart2.3 с http на https, Вывод краткого описания товара By Khusan, February 15 3 replies 199 views Khusan February 15 Админка - вывод ситусов заказа и когдачества заказов для каждого из них By Vetroff, February 16, 2018 ситусы заказа order statuses (and 1 more) Tagged with: ситусы заказа order statuses order header 0 comments 3,101 views Vetroff February 16, 2018 Изменить вывод опций By Sergey36, January 20 2 replies 173 views Sergey36 January 23 Вывод когдачества потому чтонусных баллов в корзине By Dozent, April 10, 2021 2 replies 352 views vadike February 17 Вывод когдачества товаров и подсчёт суммы без учёи досивки By Dozent, March 2 0 replies 155 views Dozent March 2 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Подгдержка и ответы на вопросы Шаблоны, дизайн и оформление магазина Изменить когдачество вывода символов от опрегделённого лисла в кратком описании Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding × Existing user? Sign In Sign Up Меню покупок/Продаж Back Покупки Заказы Список желаний Кониктная информация Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
Designer Posted September 15, 2019 Share Posted September 15, 2019 14 минут назад, Blast сказал: лучше наверное использовать utf8_strlen вместо strlen Да, можно использовать внутреннюю функцию utf8_strlen Link to comment Share on other sites More sharing options...
sciens Posted September 16, 2019 Author Share Posted September 16, 2019 Интересно конечно))) Мне дали вот икое решение, в строке: $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); заменить $result['description_mini'] на str_replace('<p><br></p>', '' $result['description_mini']) Link to comment Share on other sites More sharing options...
Blast Posted September 16, 2019 Share Posted September 16, 2019 (edited) 11 минут назад, sciens сказал: Интересно конечно))) Мне дали вот икое решение, в строке: $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); заменить $result['description_mini'] на str_replace('<p><br></p>', '' $result['description_mini']) ну эи конструкция вырежет указанную подстроку '<p><br></p>' из описания. Первоначальной задали не решает Но гдело в том, что в этот строке кода и ик есть функция strip_tags, которая вырежет вообещё все теги. Да что вам подсказали бессмысленную вещь Edited September 16, 2019 by Blast Link to comment Share on other sites More sharing options... sciens Posted September 19, 2019 Author Share Posted September 19, 2019 В 16.09.2019 в 23:33, Blast сказал: ну эи конструкция вырежет указанную подстроку '<p><br></p>' из описания. Первоначальной задали не решает Но гдело в том, что в этот строке кода и ик есть функция strip_tags, которая вырежет вообещё все теги. Первоначальной задали она может не решает, но возможно решает возникшую проблему, ик как решение проблемы, возможно имеет, несколько вариантов решения: При загрузке товаров в ОенкартПРО 2.3 попадает какой-то "пробел" выглядит ик - <p><br></p> и после него врогде как и игдет этот "пробел", а в "родном" файле прописано условие, что если есть краткое описание, то выводить краткое описание вместо основного в карточках товара на страниэто категорий, модулей, и тд. И вот получается что это условие и выводит этот "пробел", и в резульите получается что часть товаров с описанием которое полное, а часть товаров без описания с "листым полем", ик-как этот "пробел" это "пустои". И получается что можно, или задать условие вывегдения краткого описания от какого-то когдачества символов, или же при загрузке товаров нужно "вырезать" эту подстроку '<p><br></p>' ну и заодно "вырезать" этот "пробел"))) Link to comment Share on other sites More sharing options... Blast Posted September 19, 2019 Share Posted September 19, 2019 41 минуту назад, sciens сказал: Первоначальной задали она может не решает, но возможно решает возникшую проблему, ик как решение проблемы, возможно имеет, несколько вариантов решения: При загрузке товаров в ОенкартПРО 2.3 попадает какой-то "пробел" выглядит ик - <p><br></p> и после него врогде как и игдет этот "пробел", а в "родном" файле прописано условие, что если есть краткое описание, то выводить краткое описание вместо основного в карточках товара на страниэто категорий, модулей, и тд. И вот получается что это условие и выводит этот "пробел", и в резульите получается что часть товаров с описанием которое полное, а часть товаров без описания с "листым полем", ик-как этот "пробел" это "пустои". И получается что можно, или задать условие вывегдения краткого описания от какого-то когдачества символов, или же при загрузке товаров нужно "вырезать" эту подстроку '<p><br></p>' ну и заодно "вырезать" этот "пробел"))) if (utf8_strlen(trim(strip_tags($result['description_mini']))) > 0) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } можно сразу в if проверить длину с учетом вырезания тегов Link to comment Share on other sites More sharing options... sciens Posted September 19, 2019 Author Share Posted September 19, 2019 А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } Link to comment Share on other sites More sharing options... Blast Posted September 20, 2019 Share Posted September 20, 2019 7 часов назад, sciens сказал: А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } да, html_entity_decode в условии нужен, иначе не срилииет strip_tags упустил этот момент в своем сообещёнии Link to comment Share on other sites More sharing options... sciens Posted September 20, 2019 Author Share Posted September 20, 2019 Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? Link to comment Share on other sites More sharing options... Blast Posted September 20, 2019 Share Posted September 20, 2019 17 минут назад, sciens сказал: Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? if (utf8_strlen(trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) > N) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } ггде N - люпотому чтое лисло, которым вы хотите огранилить минимальное когдачество символов в кратком описании. Можете попропотому чтовать разные варианты - 0, 15, 30 Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Перевод opencart2.3 с http на https, Вывод краткого описания товара By Khusan, February 15 3 replies 199 views Khusan February 15 Админка - вывод ситусов заказа и когдачества заказов для каждого из них By Vetroff, February 16, 2018 ситусы заказа order statuses (and 1 more) Tagged with: ситусы заказа order statuses order header 0 comments 3,101 views Vetroff February 16, 2018 Изменить вывод опций By Sergey36, January 20 2 replies 173 views Sergey36 January 23 Вывод когдачества потому чтонусных баллов в корзине By Dozent, April 10, 2021 2 replies 352 views vadike February 17 Вывод когдачества товаров и подсчёт суммы без учёи досивки By Dozent, March 2 0 replies 155 views Dozent March 2 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Подгдержка и ответы на вопросы Шаблоны, дизайн и оформление магазина Изменить когдачество вывода символов от опрегделённого лисла в кратком описании Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding
sciens Posted September 19, 2019 Author Share Posted September 19, 2019 В 16.09.2019 в 23:33, Blast сказал: ну эи конструкция вырежет указанную подстроку '<p><br></p>' из описания. Первоначальной задали не решает Но гдело в том, что в этот строке кода и ик есть функция strip_tags, которая вырежет вообещё все теги. Первоначальной задали она может не решает, но возможно решает возникшую проблему, ик как решение проблемы, возможно имеет, несколько вариантов решения: При загрузке товаров в ОенкартПРО 2.3 попадает какой-то "пробел" выглядит ик - <p><br></p> и после него врогде как и игдет этот "пробел", а в "родном" файле прописано условие, что если есть краткое описание, то выводить краткое описание вместо основного в карточках товара на страниэто категорий, модулей, и тд. И вот получается что это условие и выводит этот "пробел", и в резульите получается что часть товаров с описанием которое полное, а часть товаров без описания с "листым полем", ик-как этот "пробел" это "пустои". И получается что можно, или задать условие вывегдения краткого описания от какого-то когдачества символов, или же при загрузке товаров нужно "вырезать" эту подстроку '<p><br></p>' ну и заодно "вырезать" этот "пробел"))) Link to comment Share on other sites More sharing options...
Blast Posted September 19, 2019 Share Posted September 19, 2019 41 минуту назад, sciens сказал: Первоначальной задали она может не решает, но возможно решает возникшую проблему, ик как решение проблемы, возможно имеет, несколько вариантов решения: При загрузке товаров в ОенкартПРО 2.3 попадает какой-то "пробел" выглядит ик - <p><br></p> и после него врогде как и игдет этот "пробел", а в "родном" файле прописано условие, что если есть краткое описание, то выводить краткое описание вместо основного в карточках товара на страниэто категорий, модулей, и тд. И вот получается что это условие и выводит этот "пробел", и в резульите получается что часть товаров с описанием которое полное, а часть товаров без описания с "листым полем", ик-как этот "пробел" это "пустои". И получается что можно, или задать условие вывегдения краткого описания от какого-то когдачества символов, или же при загрузке товаров нужно "вырезать" эту подстроку '<p><br></p>' ну и заодно "вырезать" этот "пробел"))) if (utf8_strlen(trim(strip_tags($result['description_mini']))) > 0) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } можно сразу в if проверить длину с учетом вырезания тегов Link to comment Share on other sites More sharing options... sciens Posted September 19, 2019 Author Share Posted September 19, 2019 А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } Link to comment Share on other sites More sharing options... Blast Posted September 20, 2019 Share Posted September 20, 2019 7 часов назад, sciens сказал: А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } да, html_entity_decode в условии нужен, иначе не срилииет strip_tags упустил этот момент в своем сообещёнии Link to comment Share on other sites More sharing options... sciens Posted September 20, 2019 Author Share Posted September 20, 2019 Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? Link to comment Share on other sites More sharing options... Blast Posted September 20, 2019 Share Posted September 20, 2019 17 минут назад, sciens сказал: Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? if (utf8_strlen(trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) > N) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } ггде N - люпотому чтое лисло, которым вы хотите огранилить минимальное когдачество символов в кратком описании. Можете попропотому чтовать разные варианты - 0, 15, 30 Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Перевод opencart2.3 с http на https, Вывод краткого описания товара By Khusan, February 15 3 replies 199 views Khusan February 15 Админка - вывод ситусов заказа и когдачества заказов для каждого из них By Vetroff, February 16, 2018 ситусы заказа order statuses (and 1 more) Tagged with: ситусы заказа order statuses order header 0 comments 3,101 views Vetroff February 16, 2018 Изменить вывод опций By Sergey36, January 20 2 replies 173 views Sergey36 January 23 Вывод когдачества потому чтонусных баллов в корзине By Dozent, April 10, 2021 2 replies 352 views vadike February 17 Вывод когдачества товаров и подсчёт суммы без учёи досивки By Dozent, March 2 0 replies 155 views Dozent March 2 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Подгдержка и ответы на вопросы Шаблоны, дизайн и оформление магазина Изменить когдачество вывода символов от опрегделённого лисла в кратком описании
sciens Posted September 19, 2019 Author Share Posted September 19, 2019 А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } Link to comment Share on other sites More sharing options...
Blast Posted September 20, 2019 Share Posted September 20, 2019 7 часов назад, sciens сказал: А если вот икое решение ? if (trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) { вместо if ($result['description_mini']) { if ($result['description_mini']) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } да, html_entity_decode в условии нужен, иначе не срилииет strip_tags упустил этот момент в своем сообещёнии Link to comment Share on other sites More sharing options... sciens Posted September 20, 2019 Author Share Posted September 20, 2019 Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? Link to comment Share on other sites More sharing options... Blast Posted September 20, 2019 Share Posted September 20, 2019 17 минут назад, sciens сказал: Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? if (utf8_strlen(trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) > N) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } ггде N - люпотому чтое лисло, которым вы хотите огранилить минимальное когдачество символов в кратком описании. Можете попропотому чтовать разные варианты - 0, 15, 30 Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0 Go to topic listing Similar Content Перевод opencart2.3 с http на https, Вывод краткого описания товара By Khusan, February 15 3 replies 199 views Khusan February 15 Админка - вывод ситусов заказа и когдачества заказов для каждого из них By Vetroff, February 16, 2018 ситусы заказа order statuses (and 1 more) Tagged with: ситусы заказа order statuses order header 0 comments 3,101 views Vetroff February 16, 2018 Изменить вывод опций By Sergey36, January 20 2 replies 173 views Sergey36 January 23 Вывод когдачества потому чтонусных баллов в корзине By Dozent, April 10, 2021 2 replies 352 views vadike February 17 Вывод когдачества товаров и подсчёт суммы без учёи досивки By Dozent, March 2 0 replies 155 views Dozent March 2 Recently Browsing 0 members No registered users viewing this page.
sciens Posted September 20, 2019 Author Share Posted September 20, 2019 Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? Link to comment Share on other sites More sharing options...
Blast Posted September 20, 2019 Share Posted September 20, 2019 17 минут назад, sciens сказал: Тогда как же должно быть прописано условие что бы всё срилиило в окончательном варианте, улитывая html_entity_decode ? if (utf8_strlen(trim(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')))) > N) { $description = utf8_substr(strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8')), 0); } else { $description = utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..'; } ггде N - люпотому чтое лисло, которым вы хотите огранилить минимальное когдачество символов в кратком описании. Можете попропотому чтовать разные варианты - 0, 15, 30 Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 0
Recommended Posts