Здравствуйте. Подскажите, как можно сделать копию подробного описания. Т.е. мне нужно, что бы на карточке товара было два\три таких блока с разным описанием. Понимаю что теоретически нужно скопировать код и создать ячейки в базе данных (если правильно выражаюсь), но далека от этого. Буду благодарна за помощь.
Здравствуйте. Подскажите, как можно сделать копию подробного описания. Т.е. мне нужно, что бы на карточке товара было два\три таких блока с разным описанием. Понимаю что теоретически нужно скопировать код и создать ячейки в базе данных (если правильно выражаюсь), но далека от этого. Буду благодарна за помощь.
Так еще пару полей создайте — это если разные описания у одного товара. Ели одинаковое, то просто вывести одно и тоже поле ещё пару раз в шаблоне записи или списка.
поля разные, но как сделать не знаю, копирования одной формы в админке явно недостаточно
поля разные, но как сделать не знаю, копирования одной формы в админке явно недостаточно
В настройках типа контента есть вкладка поля, там есть кнопка создать поле
Happy, речь идёт о старой (первой) ветке Instantcms, там немного по-другому устроено, понятия «типы контента» там нет, есть компоненты, модули, плагины и конструктор форм.
Happy, речь идёт о старой (первой) ветке Instantcms, там немного по-другому устроено, понятия «типы контента» там нет, есть компоненты, модули, плагины и конструктор форм.
Сорян, не обратил внимание на ветку в вопросе .
там есть кнопка создать поле
Да, только выглядит и работает она немного иначе.
Полина Емелина, открываете файл admin\components\shop\backend.php
ищете строки с кодами и дублируете их сколько надо раз с переименованием слов description и show_full_desc
<div style="margin-top:12px"><strong>Подробное описание</strong></div> <div><?php $inCore->insertEditor('description', $mod['description'], '400', '100%'); ?></div> ... <tr> <td><strong>Показывать подробное описание: </strong></td> <td> <input name="show_full_desc" type="radio" value="1" <?php if (@$cfg['show_full_desc']) { echo 'checked="checked"'; } ?>/> Да <input name="show_full_desc" type="radio" value="0" <?php if (@!$cfg['show_full_desc']) { echo 'checked="checked"'; } ?>/> Нет </td> </tr> ... <option value="description">Подробное описание</option>
Это добавит поля в форму товара.
Затем в файле вашего шаблона templates\_default_\components\com_inshop_item.tpl выводите эти поля дублированием этих строк (не забываем про переименование слов на те, что добавляли ранее)
{if $cfg.show_full_desc} <div class="description">{$item.description}</div> {/if}
И потом надо создать столбцы в базе данных в таблице «префикс_таблиц»_shop_items с теми названиями, что вы придумали в файле backend.php
Решила взять за основу разновидности товара, уж очень удобно если что добавлять любое кол-во. И вроде даже разобралась, но вот в чем проблема. Мне нужно что бы там был редактор, даже добавила, но у меня в каждом текстовом полне одно и тоже значение (((
<input type="text" name="vars_title[]" style="width:99%" value="<?php echo htmlspecialchars($var['title']); ?>" />
Сверху оригинал (из функции разновидности товара)
Снизу как сделала я (взяла код из подробного писания) в базе поменяла тип на longtext
<?php $inCore->insertEditor('vars_title[]', $var['title[]'], '400', '100%'); ?>
Подскажите что я сделала не так? :(
Подскажите что я сделала не так? :(
Не перешли на двойку :)
Подскажите что я сделала не так? :(
Не перешли на двойку :)
К сожалению есть масса доработок, которые сделаны на первую версию. Десятки разных калькуляторов, опций и прочего. Как только будет версия instantShop для двойки, возможно будем рассматривать и переносить. Первую ветку делали словно с широкой душой и размахом, с хорошим разнообразием функционала и удобства.
Вот полный код. Подскажите что поменять, что бы поле «название» было с редактором и многострочное.Готова оплатить.
<div style="margin-top:10px"><strong>Разновидности товара</strong></div> <div style="padding:5px;background:#ECECEC;margin-top:10px;margin-bottom:10px;margin-right:0px;"> <table border="0" cellpadding="5" cellspacing="0" width="100%" id="variants"> <tr> <td width="53">Артикул</td> <td>Название</td> <td width="63">Цена</td> <td width="63">На складе</td> <td width="17" class="char_del"> </td> </tr> <?php if (!$mod['vars']){ ?> <tr class="var"> <td><input type="text" name="vars_art_no[]" style="width:50px" /></td> <td><input type="text" name="vars_title[]" style="width:99%" /></td> <td><input type="text" name="vars_price[]" style="width:60px" /></td> <td><input type="text" name="vars_qty[]" style="width:60px" /></td> <td width="17" class="char_del"> <a href="javascript:" onclick="deleteVariant(this)" title="Удалить вариант"> <img src="/admin/images/actions/delete.gif" alt="Удалить вариант" border="0"> </a> </td> </tr> <?php } else { ?> <?php foreach($mod['vars'] as $var){?> <tr class="var"> <td><input type="text" name="vars_art_no[]" style="width:50px" value="<?php echo htmlspecialchars($var['art_no']); ?>" /></td> <td><input type="text" name="vars_title[]" style="width:99%" value="<?php echo htmlspecialchars($var['title']); ?>" /></td> <td><input type="text" name="vars_price[]" style="width:60px" value="<?php echo htmlspecialchars($var['price']); ?>" /></td> <td><input type="text" name="vars_qty[]" style="width:60px" value="<?php echo htmlspecialchars($var['qty']); ?>" /></td> <td width="17" class="char_del"> <a href="javascript:" onclick="deleteVariant(this)" title="Удалить разновидность"> <img src="/admin/images/actions/delete.gif" alt="Удалить разновидность" border="0"> </a> </td> </tr> <?php } ?> <?php } ?> </table> <script type="text/javascript"> updateVariants(); </script> <div style="margin:5px;margin-bottom:10px;"> <a href="javascript:addVariant()">Добавить разновидность</a> </div> </div>
Строку
<td><input type="text" name="vars_title[]" style="width:99%" /></td>
заменить на
<td><textarea name="vars_title[]" style="width:99%"></textarea></td> или на <td><?php $inCore->insertEditor('vars_title[]', '', '400', '100%'); ?></td>
И строку
<td><input type="text" name="vars_title[]" style="width:99%" value="<?php echo htmlspecialchars($var['title']); ?>" /></td>
На это
<td><textarea name="vars_title[]" style="width:99%"><?php echo htmlspecialchars($var['title']); ?></textarea></td> или на <td><?php $inCore->insertEditor('vars_title[]', $var['title'], '400', '100%'); ?></td>
к сожалению проблема та же, что и на картнике выше. Начинает отображать одинаковое значение, даже если создаешь новое. Т.е. если в первом написать «123» этот же текст отображается во всех остальных, в т.ч. сразу при добавлении нового варианта. ((
Может как то отвечать фаил admin/backend.php ? Там упоминание vars_title тоже встречается
Там скорее всего проблема в js. Откройте файл admin\components\shop\js\common.js
замените это
function addVariant(){ $('table#variants tr').eq(1).clone().appendTo('table#variants').find('input').val(''); if ($('table#variants tr.var').length > 1){ $('table#variants td.char_del').show(); } }
на что-то такое (пишу наугад)
function addVariant(){ var new_variant = $('table#variants tr').eq(1).clone().appendTo('table#variants'); new_variant.find('input').val(''); new_variant.find('textarea').html(''); if ($('table#variants tr.var').length > 1){ $('table#variants td.char_del').show(); } }
В обычном варианте сработало, а вот те что с insertEditor не хочет
Тогда в этой строке
new_variant.find('textarea').html('');
сделать так
new_variant.find('textarea').html('').triggerHandler('change');
и обновить страницу с очисткой кэша в браузере