Jump to content
shoma

Добавить поддержку html к полю attribute

Recommended Posts

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

Тоесть сейчас на сайте необходимо реализовать атрибут - состав, где указано около 20 параметров товара, все эти данные есть в виде таблиц.

Share this post


Link to post
Share on other sites

так а зачем там нтмл ? сделайте группу атрибутов состав

потом через импортэкспорт банально в экселе добавьте свои составы да и все к тому же они у Вас уже в таблицах

Share this post


Link to post
Share on other sites

так а зачем там нтмл ? сделайте группу атрибутов состав

потом через импортэкспорт банально в экселе добавьте свои составы да и все к тому же они у Вас уже в таблицах

У товара порядка 20 параметров в составе, при том некоторые идут в подразделах. они все есть в виде таблиц что идут на упаковке продуктов. в данный момент атрибуты даже не поддерживают перенос на след строку :(

Share this post


Link to post
Share on other sites

ну наверно мы просто более уперты :-) и вдолбили руками

Share this post


Link to post
Share on other sites

ну наверно мы просто более уперты :-) и вдолбили руками

было бы 100 товаров вбил бы, а их 500 при том не у всех одно и тоже в составе)) придется ручками более 100 параметров вбивать

Share this post


Link to post
Share on other sites

боюсь Вас испугать вбили порядка 100 000

  • +1 1

Share this post


Link to post
Share on other sites

боюсь Вас испугать вбили порядка 100 000

100 000 руками? о_О

Share this post


Link to post
Share on other sites

Да :-) но это при заполнении товаров еще на старой версии :-) в итоге около 5000 товаров получилось около 100к характеристик к ним :-) на новую все удалось перенести без перезаполнения но первый раз пришлось все вбить

Share this post


Link to post
Share on other sites

shoma задал вполне адекватный вопрос не очень хочется иметь воспаленные ладони безумный взгляд и красные глаза

Share this post


Link to post
Share on other sites

В файле 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; ?>'
	});
  • +1 7

Share this post


Link to post
Share on other sites

а вот немного сложный способ который позволяет забить атрибуты из таблиц этот способ хорош только при большом количестве товаров и их атрибутов

1)набиваем вручную несколько товаров с их атрибутами

2)экспортируем данные с помощью модуля import /export

3)INTERNET EXPLOREROM заходим на сайт к соторого хотим взять данные

4)Таблицу с названиями атрибутов и их значениями копируем и вставляем в эксел переходим к следующему товару и повторяем процедуру вторую таблицу вставляем под первой и так много раз

5) открываем таблицу экспортированную из опенкарт и вставляем в нужные столбцы те данные которые мы собрали в пункте 4

5.1)

6)в екселе включаем автофильтр и делаем фильтрацию по одному из названий атрибутов

сгруппировав таким образом строки мы видим что некоторые строки были в исходном документе (в этих строках заполнены все необходимые значения) а остальные добавлены нами теперь нам остается только скопировать недостающие значения из старых строк в новые

7)пункт 6 выполняем для всех названий атрибутов

8) отключаем автофильтр и улаживаем вопрос с нумерацией product_id

9) переходим во вкладку products и под номером product_id который получила та или иная таблица вводим название товара который ей соответствует

Share this post


Link to post
Share on other sites

Выводится с тегами, появился редактор. На странице видно хтмл теги, кто-то смотрел?

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

Маленькое дополнение к посту от Yesvik.

Что бы наш html не превращался в обычный текст, а оставался 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 (на странице продукта и странице сравнения).

  • +1 2

Share this post


Link to post
Share on other sites

Маленькое дополнение к посту от Yesvik.

Что бы наш html не превращался в обычный текст, а оставался 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');

 

В файле admin/model/catalog/product.php строка 

foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) {

присутствует два раза. 

Добавлял также два раза. Ничего не произошло :(

Share this post


Link to post
Share on other sites

РЕСПЕКТОС - СРАБОТАЛО НА ОКСТОРЕ 1.5.5.1.2

Share this post


Link to post
Share on other sites

Если атрибуты закинули импортом в товары, то на странице отображается просто текстом всё.

Для того чтобы сразу появлялась html разметка в файле:

\catalog\view\theme\so-shoppystore\template\product\product.php

нужно добавить примерно те же строчки, скорее всего этого, наверное, хватило бы...

 

Перед 

<?php echo $attribute['text']; ?>

 

добавил

<?php
$attribute['text'] = html_entity_decode($attribute['text'], ENT_QUOTES, 'UTF-8');
?>
 
Данный вывод атрибута встречается три раза - для вывода в разных местах...
opencart 2.1 у меня

Share this post


Link to post
Share on other sites
В 30.07.2012 в 20:17, Tom сказал:

На ocStore 2.1.0.2.1 не работает, а очень нужно. Может быть есть другие аналогичные решения?

 

В идеале, чтобы было как здесь (только там мод для опций)

Мод изменяет вывод опций картинок, теперь текст выводится при наведении тултипом

post-711086-0-05070900-1470162407_thumb.pngpost-711086-0-26449400-1470162420_thumb.png

 

То есть, чтобы атрибут не просто выводился картинкой, а еще при наведении на него выпадало бы подробное описание.

Share this post


Link to post
Share on other sites
6 часов назад, Paint сказал:

На ocStore 2.1.0.2.1 не работает, а очень нужно. Может быть есть другие аналогичные решения?

 

Прошу прощения, работает. Не увидел редактора текста в поле Текст на вкладке Атрибуты в карточке товара и решил, что не работает. Прочитал инструкцию. Оказалось, редактор текста вызывается двойным кликом на поле Текст.

 

Подскажите пример HTML кода, чтобы было как на примере выше, т.е. при клике (или наведении) на картинку, чтобы выше в окошке текст с описанием выпадал.

post-711086-0-26449400-1470162420_thumb.png

Edited by Paint

Share this post


Link to post
Share on other sites
В 30.07.2012 в 21:17, Tom сказал:

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

 

<file path="admin/view/template/catalog/product_form.tpl">
    <operation>
        <search><![CDATA[
        <?php echo $footer; ?>
        ]]></search>
        <add position="before"><![CDATA[
        <script type="text/javascript"><!--
        function htmlProductAttribute(textarea) {
            if (!textarea.hasClass('htmlProductAttribute')) {
                textarea.addClass('htmlProductAttribute');
                textarea.tooltip({'title': 'Double Click for HTML'});
                textarea.on('dblclick', function() {
                    textarea.summernote({height: 100});
                    $('#attribute .note-editor.note-frame.panel').css('margin-bottom', '1px');
                });
            }
        }

        $('#attribute textarea[name^="product_attribute["]').each(function(i, e) {
            htmlProductAttribute($(this));
        });

        $('#attribute').on('click', function() {
            $(this).find('textarea[name^="product_attribute["]').each(function(i, e) {
                htmlProductAttribute($(this));
            });
        });
        //--></script>
        ]]></add>
    </operation>
</file>
<file path="catalog/model/catalog/product.php">
    <operation>
        <search><![CDATA[
        $product_attribute_data[] = array(
        ]]></search>
        <add position="before"><![CDATA[
        $product_attribute['text'] = html_entity_decode($product_attribute['text'], ENT_QUOTES, 'UTF-8');
        ]]></add>
    </operation>
</file>
</modification>

Share this post


Link to post
Share on other sites
В 23.12.2018 в 14:57, tadi сказал:

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

 

Удалось решить эту проблему? Я меня тоже CKEditor, который функциональнее summernote

Share this post


Link to post
Share on other sites

Как мне объяснили, перевести на CKEditor сложно. Лучше сделать, чтобы к полям описания саммерноут не подцеплялся, а подцеплялся только к атрибутам. В общем будут работать оба редактора -  summernote на атрибуты, CKEditor  остальное. Но я пока решил не менять себе шаблон под такое.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.