pashast Опубліковано: 29 листопада 2011 Share Опубліковано: 29 листопада 2011 Как делать перенос строк в описании атрибута? <br> не работает, Хотя если заливать XLS-прайс с атрибутами через модуль export-import, то перенос строк работает. Где можно подправить? Надіслати Поділитися на інших сайтах More sharing options... Fizik87 Опубліковано: 29 листопада 2011 Share Опубліковано: 29 листопада 2011 в описании при выводе тебе нужно или в файле? в файле "\n" при выводе, по-моему тоже...но точно не помню... Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 29 листопада 2011 Автор Share Опубліковано: 29 листопада 2011 \n тоже не работает может каким-то хитрым способом заэкранировать ? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 29 листопада 2011 Автор Share Опубліковано: 29 листопада 2011 Вот такая картина если лить через export-import модуль br работают Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Подскажите хоть в какую сторону копать? :rolleyes: Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Слава буржуйским форумам ) файл system\library\request.php <?php final class Request { public $get = array(); public $post = array(); public $cookie = array(); public $files = array(); public $server = array(); public function __construct() { $_GET = $this->clean($_GET); $_POST = $this->clean($_POST); // added by Hac // handel the case user wants a line break $_POST = $this->replaceSlashN($_POST); $_REQUEST = $this->clean($_REQUEST); $_COOKIE = $this->clean($_COOKIE); $_FILES = $this->clean($_FILES); $_SERVER = $this->clean($_SERVER); $this->get = $_GET; $this->post = $_POST; $this->request = $_REQUEST; $this->cookie = $_COOKIE; $this->files = $_FILES; $this->server = $_SERVER; } public function clean($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->clean($key)] = $this->clean($value); } } else { $data = htmlspecialchars($data, ENT_COMPAT); } return $data; } // вот-оно вооот-оно костыль монй мечты :D public function replaceSlashN($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->replaceSlashN($key)] = $this->replaceSlashN($value); } } else { // <br/> or <br> are simply reconstitued before saving in the db $data = str_replace(array("</br>","<br>","<br/>"),"<br/>",$data); } return $data; } } ?> 2 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... see84 Опубліковано: 18 лютого 2013 Share Опубліковано: 18 лютого 2013 что-то всё равно не робит. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... kisluk Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 pashast, спасибо, выручил :-) see84, "1 строка<br/>2 строка" Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 1 березня 2013 Share Опубліковано: 1 березня 2013 вырезал в контроллере просто чистку html. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Yesvik вырезал в контроллере просто чистку html. http://forum.opencar...t=33539#p185775как я и думал, если отключить фильтр "htmlspecialchars" то магазин становиться уязвимым к xss атакам. так что лучше включить фильтр чистки html тэгов. примечательно что вариант предложенный pashast с <br> работает только для самого атрибута, для описания товара <br> не работает :( пошарился в нете нашел модуль http://www.opencart....=0#.UTRwwpZP1v8 p.s. на моем опен карте не захотел работать, встраивать руками не стал. тут топик как добавить поддержку html атрибутам http://opencartforum...полю-attribute/ - html добавил но фильтр режет его. получаем html в виде текста. Объединил оба решения в одно. В файле admin/view/template/catalog/product_form.tpl после строки <script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> добавить строку <script type="text/javascript" src="view/javascript/ckeditor/adapters/jquery.js"></script> после блока <?php foreach ($languages as $language) { ?> CKEDITOR.replace('description<?php echo $language['language_id']; ?>', { filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); <?php } ?> добавить $('#attribute textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); после строки attributeautocomplete(attribute_row); добавить $('#attribute-row' + attribute_row + ' textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); И собственно что бы наш html не превращался в обычный текст. В файле admin/model/catalog/product.php ищем foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) { добавляем $product_attribute_description['text'] = html_entity_decode($product_attribute_description['text'], ENT_QUOTES, 'UTF-8'); По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 4 березня 2013 Автор Share Опубліковано: 4 березня 2013 По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Вроде в конфигах редактора можно прописать параметр, чтобы он не ставил теги когда ему захочется. На форуме тема где-то есть, не найду. Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Например, из /catalog/controller/product/category.php 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', удаляется strip_tags. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 pashast, знаю, но проще 2 строчки в .css дописать, имхо. see84, может просто с backup vqmod восстановил файл? у меня все ок. 0, 400) . '..', стоит. при сохранении товара ничего не происходит... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... groog Опубліковано: 9 травня 2013 Share Опубліковано: 9 травня 2013 Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =)Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: 4 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... komone Опубліковано: 18 травня 2013 Share Опубліковано: 18 травня 2013 Если кому надо, то есть способ перенести атрибуты в верхнюю часть карточки товара: В файле catalog/view/theme/default/template/product/product.tpl После строки : <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> Вставил следующее: <?php if ($attribute_groups) { ?> <?php } ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <span><?php echo $attribute['name']; ?><?php echo ":"; ?></span> <?php echo $attribute['text']; ?> <?php echo "<br/>"; ?> <?php } ?> <?php } ?> А чтобы отключить характеристики внизу вначале этих блоков поставить <!--, а в конце //--> (эти символы отключают блоки) Вдруг потом еще потребуются... <!-- <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> //--> <!-- <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> //--> 1 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... kisluk Опубліковано: 9 липня 2015 Share Опубліковано: 9 липня 2015 (змінено) Спасибо, groog. Только дополню еще исправлением для переноса в сравнении товаров (catalog/view/theme/default/template/product/compare.tpl) <td><?php echo $products[$product['product_id']]['attribute'][$key]; ?></td> Заменяем на <td><?php echo str_replace(" ","<br>",$products[$product['product_id']]['attribute'][$key]); ?></td> Змінено 9 липня 2015 користувачем kisluk Надіслати Поділитися на інших сайтах More sharing options... 8 months later... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 (змінено) супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? Змінено 30 березня 2016 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Dimasscus Опубліковано: 24 травня 2017 Share Опубліковано: 24 травня 2017 В 30.03.2016 в 20:27, rodigy сказал: + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки здравствуйте. удалось решить проблему с переносом в compare ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... rodigy Опубліковано: 7 липня 2017 Share Опубліковано: 7 липня 2017 Dimasscus, Не помню уже, давно было, там не сложно по аналогии можно сделать Надіслати Поділитися на інших сайтах More sharing options... 1 year later... mister12 Опубліковано: 2 серпня 2018 Share Опубліковано: 2 серпня 2018 В 09.05.2013 в 20:12, groog сказал: Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =) Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: Блин, это же гениально) Можно любую комбинацию символов использовать при наполнении и потом просто подмену этой комбинации делать. Надіслати Поділитися на інших сайтах More sharing options... 2 months later... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options... 6 months later... Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options... 5 months later... palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница [Решено] Перенос строк в описании атрибута. Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Fizik87 Опубліковано: 29 листопада 2011 Share Опубліковано: 29 листопада 2011 в описании при выводе тебе нужно или в файле? в файле "\n" при выводе, по-моему тоже...но точно не помню... Надіслати Поділитися на інших сайтах More sharing options...
pashast Опубліковано: 29 листопада 2011 Автор Share Опубліковано: 29 листопада 2011 \n тоже не работает может каким-то хитрым способом заэкранировать ? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 29 листопада 2011 Автор Share Опубліковано: 29 листопада 2011 Вот такая картина если лить через export-import модуль br работают Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Подскажите хоть в какую сторону копать? :rolleyes: Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Слава буржуйским форумам ) файл system\library\request.php <?php final class Request { public $get = array(); public $post = array(); public $cookie = array(); public $files = array(); public $server = array(); public function __construct() { $_GET = $this->clean($_GET); $_POST = $this->clean($_POST); // added by Hac // handel the case user wants a line break $_POST = $this->replaceSlashN($_POST); $_REQUEST = $this->clean($_REQUEST); $_COOKIE = $this->clean($_COOKIE); $_FILES = $this->clean($_FILES); $_SERVER = $this->clean($_SERVER); $this->get = $_GET; $this->post = $_POST; $this->request = $_REQUEST; $this->cookie = $_COOKIE; $this->files = $_FILES; $this->server = $_SERVER; } public function clean($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->clean($key)] = $this->clean($value); } } else { $data = htmlspecialchars($data, ENT_COMPAT); } return $data; } // вот-оно вооот-оно костыль монй мечты :D public function replaceSlashN($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->replaceSlashN($key)] = $this->replaceSlashN($value); } } else { // <br/> or <br> are simply reconstitued before saving in the db $data = str_replace(array("</br>","<br>","<br/>"),"<br/>",$data); } return $data; } } ?> 2 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... see84 Опубліковано: 18 лютого 2013 Share Опубліковано: 18 лютого 2013 что-то всё равно не робит. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... kisluk Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 pashast, спасибо, выручил :-) see84, "1 строка<br/>2 строка" Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 1 березня 2013 Share Опубліковано: 1 березня 2013 вырезал в контроллере просто чистку html. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Yesvik вырезал в контроллере просто чистку html. http://forum.opencar...t=33539#p185775как я и думал, если отключить фильтр "htmlspecialchars" то магазин становиться уязвимым к xss атакам. так что лучше включить фильтр чистки html тэгов. примечательно что вариант предложенный pashast с <br> работает только для самого атрибута, для описания товара <br> не работает :( пошарился в нете нашел модуль http://www.opencart....=0#.UTRwwpZP1v8 p.s. на моем опен карте не захотел работать, встраивать руками не стал. тут топик как добавить поддержку html атрибутам http://opencartforum...полю-attribute/ - html добавил но фильтр режет его. получаем html в виде текста. Объединил оба решения в одно. В файле admin/view/template/catalog/product_form.tpl после строки <script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> добавить строку <script type="text/javascript" src="view/javascript/ckeditor/adapters/jquery.js"></script> после блока <?php foreach ($languages as $language) { ?> CKEDITOR.replace('description<?php echo $language['language_id']; ?>', { filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); <?php } ?> добавить $('#attribute textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); после строки attributeautocomplete(attribute_row); добавить $('#attribute-row' + attribute_row + ' textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); И собственно что бы наш html не превращался в обычный текст. В файле admin/model/catalog/product.php ищем foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) { добавляем $product_attribute_description['text'] = html_entity_decode($product_attribute_description['text'], ENT_QUOTES, 'UTF-8'); По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 4 березня 2013 Автор Share Опубліковано: 4 березня 2013 По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Вроде в конфигах редактора можно прописать параметр, чтобы он не ставил теги когда ему захочется. На форуме тема где-то есть, не найду. Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Например, из /catalog/controller/product/category.php 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', удаляется strip_tags. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 pashast, знаю, но проще 2 строчки в .css дописать, имхо. see84, может просто с backup vqmod восстановил файл? у меня все ок. 0, 400) . '..', стоит. при сохранении товара ничего не происходит... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... groog Опубліковано: 9 травня 2013 Share Опубліковано: 9 травня 2013 Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =)Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: 4 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... komone Опубліковано: 18 травня 2013 Share Опубліковано: 18 травня 2013 Если кому надо, то есть способ перенести атрибуты в верхнюю часть карточки товара: В файле catalog/view/theme/default/template/product/product.tpl После строки : <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> Вставил следующее: <?php if ($attribute_groups) { ?> <?php } ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <span><?php echo $attribute['name']; ?><?php echo ":"; ?></span> <?php echo $attribute['text']; ?> <?php echo "<br/>"; ?> <?php } ?> <?php } ?> А чтобы отключить характеристики внизу вначале этих блоков поставить <!--, а в конце //--> (эти символы отключают блоки) Вдруг потом еще потребуются... <!-- <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> //--> <!-- <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> //--> 1 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... kisluk Опубліковано: 9 липня 2015 Share Опубліковано: 9 липня 2015 (змінено) Спасибо, groog. Только дополню еще исправлением для переноса в сравнении товаров (catalog/view/theme/default/template/product/compare.tpl) <td><?php echo $products[$product['product_id']]['attribute'][$key]; ?></td> Заменяем на <td><?php echo str_replace(" ","<br>",$products[$product['product_id']]['attribute'][$key]); ?></td> Змінено 9 липня 2015 користувачем kisluk Надіслати Поділитися на інших сайтах More sharing options... 8 months later... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 (змінено) супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? Змінено 30 березня 2016 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Dimasscus Опубліковано: 24 травня 2017 Share Опубліковано: 24 травня 2017 В 30.03.2016 в 20:27, rodigy сказал: + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки здравствуйте. удалось решить проблему с переносом в compare ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... rodigy Опубліковано: 7 липня 2017 Share Опубліковано: 7 липня 2017 Dimasscus, Не помню уже, давно было, там не сложно по аналогии можно сделать Надіслати Поділитися на інших сайтах More sharing options... 1 year later... mister12 Опубліковано: 2 серпня 2018 Share Опубліковано: 2 серпня 2018 В 09.05.2013 в 20:12, groog сказал: Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =) Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: Блин, это же гениально) Можно любую комбинацию символов использовать при наполнении и потом просто подмену этой комбинации делать. Надіслати Поділитися на інших сайтах More sharing options... 2 months later... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options... 6 months later... Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options... 5 months later... palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница [Решено] Перенос строк в описании атрибута. Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
pashast Опубліковано: 29 листопада 2011 Автор Share Опубліковано: 29 листопада 2011 Вот такая картина если лить через export-import модуль br работают Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Подскажите хоть в какую сторону копать? :rolleyes: Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Слава буржуйским форумам ) файл system\library\request.php <?php final class Request { public $get = array(); public $post = array(); public $cookie = array(); public $files = array(); public $server = array(); public function __construct() { $_GET = $this->clean($_GET); $_POST = $this->clean($_POST); // added by Hac // handel the case user wants a line break $_POST = $this->replaceSlashN($_POST); $_REQUEST = $this->clean($_REQUEST); $_COOKIE = $this->clean($_COOKIE); $_FILES = $this->clean($_FILES); $_SERVER = $this->clean($_SERVER); $this->get = $_GET; $this->post = $_POST; $this->request = $_REQUEST; $this->cookie = $_COOKIE; $this->files = $_FILES; $this->server = $_SERVER; } public function clean($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->clean($key)] = $this->clean($value); } } else { $data = htmlspecialchars($data, ENT_COMPAT); } return $data; } // вот-оно вооот-оно костыль монй мечты :D public function replaceSlashN($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->replaceSlashN($key)] = $this->replaceSlashN($value); } } else { // <br/> or <br> are simply reconstitued before saving in the db $data = str_replace(array("</br>","<br>","<br/>"),"<br/>",$data); } return $data; } } ?> 2 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... see84 Опубліковано: 18 лютого 2013 Share Опубліковано: 18 лютого 2013 что-то всё равно не робит. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... kisluk Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 pashast, спасибо, выручил :-) see84, "1 строка<br/>2 строка" Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 1 березня 2013 Share Опубліковано: 1 березня 2013 вырезал в контроллере просто чистку html. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Yesvik вырезал в контроллере просто чистку html. http://forum.opencar...t=33539#p185775как я и думал, если отключить фильтр "htmlspecialchars" то магазин становиться уязвимым к xss атакам. так что лучше включить фильтр чистки html тэгов. примечательно что вариант предложенный pashast с <br> работает только для самого атрибута, для описания товара <br> не работает :( пошарился в нете нашел модуль http://www.opencart....=0#.UTRwwpZP1v8 p.s. на моем опен карте не захотел работать, встраивать руками не стал. тут топик как добавить поддержку html атрибутам http://opencartforum...полю-attribute/ - html добавил но фильтр режет его. получаем html в виде текста. Объединил оба решения в одно. В файле admin/view/template/catalog/product_form.tpl после строки <script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> добавить строку <script type="text/javascript" src="view/javascript/ckeditor/adapters/jquery.js"></script> после блока <?php foreach ($languages as $language) { ?> CKEDITOR.replace('description<?php echo $language['language_id']; ?>', { filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); <?php } ?> добавить $('#attribute textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); после строки attributeautocomplete(attribute_row); добавить $('#attribute-row' + attribute_row + ' textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); И собственно что бы наш html не превращался в обычный текст. В файле admin/model/catalog/product.php ищем foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) { добавляем $product_attribute_description['text'] = html_entity_decode($product_attribute_description['text'], ENT_QUOTES, 'UTF-8'); По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 4 березня 2013 Автор Share Опубліковано: 4 березня 2013 По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Вроде в конфигах редактора можно прописать параметр, чтобы он не ставил теги когда ему захочется. На форуме тема где-то есть, не найду. Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Например, из /catalog/controller/product/category.php 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', удаляется strip_tags. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 pashast, знаю, но проще 2 строчки в .css дописать, имхо. see84, может просто с backup vqmod восстановил файл? у меня все ок. 0, 400) . '..', стоит. при сохранении товара ничего не происходит... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... groog Опубліковано: 9 травня 2013 Share Опубліковано: 9 травня 2013 Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =)Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: 4 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... komone Опубліковано: 18 травня 2013 Share Опубліковано: 18 травня 2013 Если кому надо, то есть способ перенести атрибуты в верхнюю часть карточки товара: В файле catalog/view/theme/default/template/product/product.tpl После строки : <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> Вставил следующее: <?php if ($attribute_groups) { ?> <?php } ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <span><?php echo $attribute['name']; ?><?php echo ":"; ?></span> <?php echo $attribute['text']; ?> <?php echo "<br/>"; ?> <?php } ?> <?php } ?> А чтобы отключить характеристики внизу вначале этих блоков поставить <!--, а в конце //--> (эти символы отключают блоки) Вдруг потом еще потребуются... <!-- <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> //--> <!-- <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> //--> 1 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... kisluk Опубліковано: 9 липня 2015 Share Опубліковано: 9 липня 2015 (змінено) Спасибо, groog. Только дополню еще исправлением для переноса в сравнении товаров (catalog/view/theme/default/template/product/compare.tpl) <td><?php echo $products[$product['product_id']]['attribute'][$key]; ?></td> Заменяем на <td><?php echo str_replace(" ","<br>",$products[$product['product_id']]['attribute'][$key]); ?></td> Змінено 9 липня 2015 користувачем kisluk Надіслати Поділитися на інших сайтах More sharing options... 8 months later... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 (змінено) супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? Змінено 30 березня 2016 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Dimasscus Опубліковано: 24 травня 2017 Share Опубліковано: 24 травня 2017 В 30.03.2016 в 20:27, rodigy сказал: + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки здравствуйте. удалось решить проблему с переносом в compare ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... rodigy Опубліковано: 7 липня 2017 Share Опубліковано: 7 липня 2017 Dimasscus, Не помню уже, давно было, там не сложно по аналогии можно сделать Надіслати Поділитися на інших сайтах More sharing options... 1 year later... mister12 Опубліковано: 2 серпня 2018 Share Опубліковано: 2 серпня 2018 В 09.05.2013 в 20:12, groog сказал: Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =) Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: Блин, это же гениально) Можно любую комбинацию символов использовать при наполнении и потом просто подмену этой комбинации делать. Надіслати Поділитися на інших сайтах More sharing options... 2 months later... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options... 6 months later... Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options... 5 months later... palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница [Решено] Перенос строк в описании атрибута. Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Подскажите хоть в какую сторону копать? :rolleyes: Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Слава буржуйским форумам ) файл system\library\request.php <?php final class Request { public $get = array(); public $post = array(); public $cookie = array(); public $files = array(); public $server = array(); public function __construct() { $_GET = $this->clean($_GET); $_POST = $this->clean($_POST); // added by Hac // handel the case user wants a line break $_POST = $this->replaceSlashN($_POST); $_REQUEST = $this->clean($_REQUEST); $_COOKIE = $this->clean($_COOKIE); $_FILES = $this->clean($_FILES); $_SERVER = $this->clean($_SERVER); $this->get = $_GET; $this->post = $_POST; $this->request = $_REQUEST; $this->cookie = $_COOKIE; $this->files = $_FILES; $this->server = $_SERVER; } public function clean($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->clean($key)] = $this->clean($value); } } else { $data = htmlspecialchars($data, ENT_COMPAT); } return $data; } // вот-оно вооот-оно костыль монй мечты :D public function replaceSlashN($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->replaceSlashN($key)] = $this->replaceSlashN($value); } } else { // <br/> or <br> are simply reconstitued before saving in the db $data = str_replace(array("</br>","<br>","<br/>"),"<br/>",$data); } return $data; } } ?> 2 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... see84 Опубліковано: 18 лютого 2013 Share Опубліковано: 18 лютого 2013 что-то всё равно не робит. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... kisluk Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 pashast, спасибо, выручил :-) see84, "1 строка<br/>2 строка" Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 1 березня 2013 Share Опубліковано: 1 березня 2013 вырезал в контроллере просто чистку html. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Yesvik вырезал в контроллере просто чистку html. http://forum.opencar...t=33539#p185775как я и думал, если отключить фильтр "htmlspecialchars" то магазин становиться уязвимым к xss атакам. так что лучше включить фильтр чистки html тэгов. примечательно что вариант предложенный pashast с <br> работает только для самого атрибута, для описания товара <br> не работает :( пошарился в нете нашел модуль http://www.opencart....=0#.UTRwwpZP1v8 p.s. на моем опен карте не захотел работать, встраивать руками не стал. тут топик как добавить поддержку html атрибутам http://opencartforum...полю-attribute/ - html добавил но фильтр режет его. получаем html в виде текста. Объединил оба решения в одно. В файле admin/view/template/catalog/product_form.tpl после строки <script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> добавить строку <script type="text/javascript" src="view/javascript/ckeditor/adapters/jquery.js"></script> после блока <?php foreach ($languages as $language) { ?> CKEDITOR.replace('description<?php echo $language['language_id']; ?>', { filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); <?php } ?> добавить $('#attribute textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); после строки attributeautocomplete(attribute_row); добавить $('#attribute-row' + attribute_row + ' textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); И собственно что бы наш html не превращался в обычный текст. В файле admin/model/catalog/product.php ищем foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) { добавляем $product_attribute_description['text'] = html_entity_decode($product_attribute_description['text'], ENT_QUOTES, 'UTF-8'); По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 4 березня 2013 Автор Share Опубліковано: 4 березня 2013 По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Вроде в конфигах редактора можно прописать параметр, чтобы он не ставил теги когда ему захочется. На форуме тема где-то есть, не найду. Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Например, из /catalog/controller/product/category.php 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', удаляется strip_tags. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 pashast, знаю, но проще 2 строчки в .css дописать, имхо. see84, может просто с backup vqmod восстановил файл? у меня все ок. 0, 400) . '..', стоит. при сохранении товара ничего не происходит... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... groog Опубліковано: 9 травня 2013 Share Опубліковано: 9 травня 2013 Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =)Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: 4 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... komone Опубліковано: 18 травня 2013 Share Опубліковано: 18 травня 2013 Если кому надо, то есть способ перенести атрибуты в верхнюю часть карточки товара: В файле catalog/view/theme/default/template/product/product.tpl После строки : <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> Вставил следующее: <?php if ($attribute_groups) { ?> <?php } ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <span><?php echo $attribute['name']; ?><?php echo ":"; ?></span> <?php echo $attribute['text']; ?> <?php echo "<br/>"; ?> <?php } ?> <?php } ?> А чтобы отключить характеристики внизу вначале этих блоков поставить <!--, а в конце //--> (эти символы отключают блоки) Вдруг потом еще потребуются... <!-- <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> //--> <!-- <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> //--> 1 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... kisluk Опубліковано: 9 липня 2015 Share Опубліковано: 9 липня 2015 (змінено) Спасибо, groog. Только дополню еще исправлением для переноса в сравнении товаров (catalog/view/theme/default/template/product/compare.tpl) <td><?php echo $products[$product['product_id']]['attribute'][$key]; ?></td> Заменяем на <td><?php echo str_replace(" ","<br>",$products[$product['product_id']]['attribute'][$key]); ?></td> Змінено 9 липня 2015 користувачем kisluk Надіслати Поділитися на інших сайтах More sharing options... 8 months later... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 (змінено) супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? Змінено 30 березня 2016 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Dimasscus Опубліковано: 24 травня 2017 Share Опубліковано: 24 травня 2017 В 30.03.2016 в 20:27, rodigy сказал: + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки здравствуйте. удалось решить проблему с переносом в compare ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... rodigy Опубліковано: 7 липня 2017 Share Опубліковано: 7 липня 2017 Dimasscus, Не помню уже, давно было, там не сложно по аналогии можно сделать Надіслати Поділитися на інших сайтах More sharing options... 1 year later... mister12 Опубліковано: 2 серпня 2018 Share Опубліковано: 2 серпня 2018 В 09.05.2013 в 20:12, groog сказал: Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =) Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: Блин, это же гениально) Можно любую комбинацию символов использовать при наполнении и потом просто подмену этой комбинации делать. Надіслати Поділитися на інших сайтах More sharing options... 2 months later... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options... 6 months later... Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options... 5 months later... palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница [Решено] Перенос строк в описании атрибута. Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
pashast Опубліковано: 30 листопада 2011 Автор Share Опубліковано: 30 листопада 2011 Слава буржуйским форумам ) файл system\library\request.php <?php final class Request { public $get = array(); public $post = array(); public $cookie = array(); public $files = array(); public $server = array(); public function __construct() { $_GET = $this->clean($_GET); $_POST = $this->clean($_POST); // added by Hac // handel the case user wants a line break $_POST = $this->replaceSlashN($_POST); $_REQUEST = $this->clean($_REQUEST); $_COOKIE = $this->clean($_COOKIE); $_FILES = $this->clean($_FILES); $_SERVER = $this->clean($_SERVER); $this->get = $_GET; $this->post = $_POST; $this->request = $_REQUEST; $this->cookie = $_COOKIE; $this->files = $_FILES; $this->server = $_SERVER; } public function clean($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->clean($key)] = $this->clean($value); } } else { $data = htmlspecialchars($data, ENT_COMPAT); } return $data; } // вот-оно вооот-оно костыль монй мечты :D public function replaceSlashN($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->replaceSlashN($key)] = $this->replaceSlashN($value); } } else { // <br/> or <br> are simply reconstitued before saving in the db $data = str_replace(array("</br>","<br>","<br/>"),"<br/>",$data); } return $data; } } ?> 2 Надіслати Поділитися на інших сайтах More sharing options... 1 year later... see84 Опубліковано: 18 лютого 2013 Share Опубліковано: 18 лютого 2013 что-то всё равно не робит. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... kisluk Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 pashast, спасибо, выручил :-) see84, "1 строка<br/>2 строка" Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 1 березня 2013 Share Опубліковано: 1 березня 2013 вырезал в контроллере просто чистку html. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Yesvik вырезал в контроллере просто чистку html. http://forum.opencar...t=33539#p185775как я и думал, если отключить фильтр "htmlspecialchars" то магазин становиться уязвимым к xss атакам. так что лучше включить фильтр чистки html тэгов. примечательно что вариант предложенный pashast с <br> работает только для самого атрибута, для описания товара <br> не работает :( пошарился в нете нашел модуль http://www.opencart....=0#.UTRwwpZP1v8 p.s. на моем опен карте не захотел работать, встраивать руками не стал. тут топик как добавить поддержку html атрибутам http://opencartforum...полю-attribute/ - html добавил но фильтр режет его. получаем html в виде текста. Объединил оба решения в одно. В файле admin/view/template/catalog/product_form.tpl после строки <script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> добавить строку <script type="text/javascript" src="view/javascript/ckeditor/adapters/jquery.js"></script> после блока <?php foreach ($languages as $language) { ?> CKEDITOR.replace('description<?php echo $language['language_id']; ?>', { filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); <?php } ?> добавить $('#attribute textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); после строки attributeautocomplete(attribute_row); добавить $('#attribute-row' + attribute_row + ' textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); И собственно что бы наш html не превращался в обычный текст. В файле admin/model/catalog/product.php ищем foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) { добавляем $product_attribute_description['text'] = html_entity_decode($product_attribute_description['text'], ENT_QUOTES, 'UTF-8'); По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 4 березня 2013 Автор Share Опубліковано: 4 березня 2013 По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Вроде в конфигах редактора можно прописать параметр, чтобы он не ставил теги когда ему захочется. На форуме тема где-то есть, не найду. Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Например, из /catalog/controller/product/category.php 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', удаляется strip_tags. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 pashast, знаю, но проще 2 строчки в .css дописать, имхо. see84, может просто с backup vqmod восстановил файл? у меня все ок. 0, 400) . '..', стоит. при сохранении товара ничего не происходит... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... groog Опубліковано: 9 травня 2013 Share Опубліковано: 9 травня 2013 Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =)Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: 4 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... komone Опубліковано: 18 травня 2013 Share Опубліковано: 18 травня 2013 Если кому надо, то есть способ перенести атрибуты в верхнюю часть карточки товара: В файле catalog/view/theme/default/template/product/product.tpl После строки : <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> Вставил следующее: <?php if ($attribute_groups) { ?> <?php } ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <span><?php echo $attribute['name']; ?><?php echo ":"; ?></span> <?php echo $attribute['text']; ?> <?php echo "<br/>"; ?> <?php } ?> <?php } ?> А чтобы отключить характеристики внизу вначале этих блоков поставить <!--, а в конце //--> (эти символы отключают блоки) Вдруг потом еще потребуются... <!-- <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> //--> <!-- <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> //--> 1 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... kisluk Опубліковано: 9 липня 2015 Share Опубліковано: 9 липня 2015 (змінено) Спасибо, groog. Только дополню еще исправлением для переноса в сравнении товаров (catalog/view/theme/default/template/product/compare.tpl) <td><?php echo $products[$product['product_id']]['attribute'][$key]; ?></td> Заменяем на <td><?php echo str_replace(" ","<br>",$products[$product['product_id']]['attribute'][$key]); ?></td> Змінено 9 липня 2015 користувачем kisluk Надіслати Поділитися на інших сайтах More sharing options... 8 months later... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 (змінено) супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? Змінено 30 березня 2016 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Dimasscus Опубліковано: 24 травня 2017 Share Опубліковано: 24 травня 2017 В 30.03.2016 в 20:27, rodigy сказал: + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки здравствуйте. удалось решить проблему с переносом в compare ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... rodigy Опубліковано: 7 липня 2017 Share Опубліковано: 7 липня 2017 Dimasscus, Не помню уже, давно было, там не сложно по аналогии можно сделать Надіслати Поділитися на інших сайтах More sharing options... 1 year later... mister12 Опубліковано: 2 серпня 2018 Share Опубліковано: 2 серпня 2018 В 09.05.2013 в 20:12, groog сказал: Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =) Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: Блин, это же гениально) Можно любую комбинацию символов использовать при наполнении и потом просто подмену этой комбинации делать. Надіслати Поділитися на інших сайтах More sharing options... 2 months later... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options... 6 months later... Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options... 5 months later... palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница [Решено] Перенос строк в описании атрибута.
see84 Опубліковано: 18 лютого 2013 Share Опубліковано: 18 лютого 2013 что-то всё равно не робит. Надіслати Поділитися на інших сайтах More sharing options...
kisluk Опубліковано: 27 лютого 2013 Share Опубліковано: 27 лютого 2013 pashast, спасибо, выручил :-) see84, "1 строка<br/>2 строка" Надіслати Поділитися на інших сайтах More sharing options...
see84 Опубліковано: 1 березня 2013 Share Опубліковано: 1 березня 2013 вырезал в контроллере просто чистку html. Надіслати Поділитися на інших сайтах More sharing options...
kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Yesvik вырезал в контроллере просто чистку html. http://forum.opencar...t=33539#p185775как я и думал, если отключить фильтр "htmlspecialchars" то магазин становиться уязвимым к xss атакам. так что лучше включить фильтр чистки html тэгов. примечательно что вариант предложенный pashast с <br> работает только для самого атрибута, для описания товара <br> не работает :( пошарился в нете нашел модуль http://www.opencart....=0#.UTRwwpZP1v8 p.s. на моем опен карте не захотел работать, встраивать руками не стал. тут топик как добавить поддержку html атрибутам http://opencartforum...полю-attribute/ - html добавил но фильтр режет его. получаем html в виде текста. Объединил оба решения в одно. В файле admin/view/template/catalog/product_form.tpl после строки <script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script> добавить строку <script type="text/javascript" src="view/javascript/ckeditor/adapters/jquery.js"></script> после блока <?php foreach ($languages as $language) { ?> CKEDITOR.replace('description<?php echo $language['language_id']; ?>', { filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); <?php } ?> добавить $('#attribute textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); после строки attributeautocomplete(attribute_row); добавить $('#attribute-row' + attribute_row + ' textarea').ckeditor({ filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>', filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>' }); И собственно что бы наш html не превращался в обычный текст. В файле admin/model/catalog/product.php ищем foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) { добавляем $product_attribute_description['text'] = html_entity_decode($product_attribute_description['text'], ENT_QUOTES, 'UTF-8'); По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Надіслати Поділитися на інших сайтах More sharing options...
pashast Опубліковано: 4 березня 2013 Автор Share Опубліковано: 4 березня 2013 По скольку <p> в редакторе вставляется везде, а после </p> у нас идет пустое место, то это не очень красиво смотрится, поэтому: В файле catalog/view/theme/default/stylesheet/stylesheet.css нужно добавить в любое место или после.tab-content { ... } .tab-content p { margin-bottom:0px; } После .compare-info .price-new { ... } или в любое другое место добавляем .compare-info p { margin-bottom: 0px; } Таким образом мы задали отступ снизу для тэга p равный 0 (на странице продукта и странице сравнения). Вроде в конфигах редактора можно прописать параметр, чтобы он не ставил теги когда ему захочется. На форуме тема где-то есть, не найду. Надіслати Поділитися на інших сайтах More sharing options... see84 Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Например, из /catalog/controller/product/category.php 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', удаляется strip_tags. Надіслати Поділитися на інших сайтах More sharing options... kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 pashast, знаю, но проще 2 строчки в .css дописать, имхо. see84, может просто с backup vqmod восстановил файл? у меня все ок. 0, 400) . '..', стоит. при сохранении товара ничего не происходит... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... groog Опубліковано: 9 травня 2013 Share Опубліковано: 9 травня 2013 Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =)Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: 4 Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... komone Опубліковано: 18 травня 2013 Share Опубліковано: 18 травня 2013 Если кому надо, то есть способ перенести атрибуты в верхнюю часть карточки товара: В файле catalog/view/theme/default/template/product/product.tpl После строки : <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> Вставил следующее: <?php if ($attribute_groups) { ?> <?php } ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <span><?php echo $attribute['name']; ?><?php echo ":"; ?></span> <?php echo $attribute['text']; ?> <?php echo "<br/>"; ?> <?php } ?> <?php } ?> А чтобы отключить характеристики внизу вначале этих блоков поставить <!--, а в конце //--> (эти символы отключают блоки) Вдруг потом еще потребуются... <!-- <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> //--> <!-- <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> //--> 1 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... kisluk Опубліковано: 9 липня 2015 Share Опубліковано: 9 липня 2015 (змінено) Спасибо, groog. Только дополню еще исправлением для переноса в сравнении товаров (catalog/view/theme/default/template/product/compare.tpl) <td><?php echo $products[$product['product_id']]['attribute'][$key]; ?></td> Заменяем на <td><?php echo str_replace(" ","<br>",$products[$product['product_id']]['attribute'][$key]); ?></td> Змінено 9 липня 2015 користувачем kisluk Надіслати Поділитися на інших сайтах More sharing options... 8 months later... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 (змінено) супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? Змінено 30 березня 2016 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options... rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Dimasscus Опубліковано: 24 травня 2017 Share Опубліковано: 24 травня 2017 В 30.03.2016 в 20:27, rodigy сказал: + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки здравствуйте. удалось решить проблему с переносом в compare ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... rodigy Опубліковано: 7 липня 2017 Share Опубліковано: 7 липня 2017 Dimasscus, Не помню уже, давно было, там не сложно по аналогии можно сделать Надіслати Поділитися на інших сайтах More sharing options... 1 year later... mister12 Опубліковано: 2 серпня 2018 Share Опубліковано: 2 серпня 2018 В 09.05.2013 в 20:12, groog сказал: Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =) Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: Блин, это же гениально) Можно любую комбинацию символов использовать при наполнении и потом просто подмену этой комбинации делать. Надіслати Поділитися на інших сайтах More sharing options... 2 months later... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options... 6 months later... Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options... 5 months later... palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
see84 Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Например, из /catalog/controller/product/category.php 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', удаляется strip_tags. Надіслати Поділитися на інших сайтах More sharing options...
kisluk Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 pashast, знаю, но проще 2 строчки в .css дописать, имхо. see84, может просто с backup vqmod восстановил файл? у меня все ок. 0, 400) . '..', стоит. при сохранении товара ничего не происходит... Надіслати Поділитися на інших сайтах More sharing options...
groog Опубліковано: 9 травня 2013 Share Опубліковано: 9 травня 2013 Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =)Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: 4 Надіслати Поділитися на інших сайтах More sharing options...
komone Опубліковано: 18 травня 2013 Share Опубліковано: 18 травня 2013 Если кому надо, то есть способ перенести атрибуты в верхнюю часть карточки товара: В файле catalog/view/theme/default/template/product/product.tpl После строки : <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> Вставил следующее: <?php if ($attribute_groups) { ?> <?php } ?> <?php foreach ($attribute_groups as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <span><?php echo $attribute['name']; ?><?php echo ":"; ?></span> <?php echo $attribute['text']; ?> <?php echo "<br/>"; ?> <?php } ?> <?php } ?> А чтобы отключить характеристики внизу вначале этих блоков поставить <!--, а в конце //--> (эти символы отключают блоки) Вдруг потом еще потребуются... <!-- <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> //--> <!-- <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> <?php } ?> //--> 1 Надіслати Поділитися на інших сайтах More sharing options...
kisluk Опубліковано: 9 липня 2015 Share Опубліковано: 9 липня 2015 (змінено) Спасибо, groog. Только дополню еще исправлением для переноса в сравнении товаров (catalog/view/theme/default/template/product/compare.tpl) <td><?php echo $products[$product['product_id']]['attribute'][$key]; ?></td> Заменяем на <td><?php echo str_replace(" ","<br>",$products[$product['product_id']]['attribute'][$key]); ?></td> Змінено 9 липня 2015 користувачем kisluk Надіслати Поділитися на інших сайтах More sharing options...
rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 (змінено) супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? Змінено 30 березня 2016 користувачем rodigy Надіслати Поділитися на інших сайтах More sharing options...
rodigy Опубліковано: 30 березня 2016 Share Опубліковано: 30 березня 2016 супер, то что доктор прописал, ток с вот с compare не работает у меня вот так выглядит <td><?php echo $product['attribute'][$key]; ?></td> как сделать перенос? + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки Надіслати Поділитися на інших сайтах More sharing options...
Dimasscus Опубліковано: 24 травня 2017 Share Опубліковано: 24 травня 2017 В 30.03.2016 в 20:27, rodigy сказал: + еще бы не помешало добавить отступ вначале строки , а то пробелы тоже режет вначале строки здравствуйте. удалось решить проблему с переносом в compare ? Надіслати Поділитися на інших сайтах More sharing options...
rodigy Опубліковано: 7 липня 2017 Share Опубліковано: 7 липня 2017 Dimasscus, Не помню уже, давно было, там не сложно по аналогии можно сделать Надіслати Поділитися на інших сайтах More sharing options...
mister12 Опубліковано: 2 серпня 2018 Share Опубліковано: 2 серпня 2018 В 09.05.2013 в 20:12, groog сказал: Только что сам столкнулся с этой проблемой. Но контроллер трогать мне не захотелось, убирать обработку спецсимволов - это оставить на сайте огромную дырень. Я порылся в исходниках и решил сделать так: перед самым выводом на страницу заменять символы переноса строк на тег <br>. Если вы записывали атрибуты разделяя по строкам все, то вам нужно будет только поменять одну строку в шаблоне и все. Контроллеры целы, переносы есть, все счастливы =) Для этого требуется в файле /catalog/view/theme/default/template/product/product.tpl приблизительно в 254 строку в стандартном шаблоне заменить <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> на <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo str_replace(" ","<br>",$attribute['text']); ?></td> </tr> <?php } ?> В с непечатными символами это выглядит так: Блин, это же гениально) Можно любую комбинацию символов использовать при наполнении и потом просто подмену этой комбинации делать. Надіслати Поділитися на інших сайтах More sharing options... 2 months later... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options... pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options... 6 months later... Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options... 5 months later... palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 (змінено) коллеги, а как ограничить длину поля text в атрибуте например 30 символами, а далее, чтобы на новую строку перенос шёл, но не разбивая целое слово, а от пробела делая отсчёт? сейчас выглядит так: Змінено 1 листопада 2018 користувачем pavels1978 Надіслати Поділитися на інших сайтах More sharing options...
pavels1978 Опубліковано: 1 листопада 2018 Share Опубліковано: 1 листопада 2018 Вернее, как прописать отдельный класс для отдельно взятого атрибута, чтобы выводить его, например h5? Надіслати Поділитися на інших сайтах More sharing options...
Tellegin Опубліковано: 22 травня 2019 Share Опубліковано: 22 травня 2019 Уточните кто знает, а как на 3-м opencarte сделать? Надіслати Поділитися на інших сайтах More sharing options...
palex Опубліковано: 3 листопада 2019 Share Опубліковано: 3 листопада 2019 On 5/22/2019 at 10:41 PM, Tellegin said: Уточните кто знает, а как на 3-м opencarte сделать? Присоединяюсь - как сделать на OpenCart 3? С уважением... Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts