Вы не зашли.
Хм, а может ли быть причиной, что я использую последние версии плагинов из SVN?
у меня все самое последнее,поменяй локалку на опен сервер,вертиго немного глючный
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
FOQRussia пишет:Хм, а может ли быть причиной, что я использую последние версии плагинов из SVN?
у меня все самое последнее,поменяй локалку на опен сервер,вертиго немного глючный
ну это как я понимаю касаемо компа, а сайт на хостинге уже висит.
Не в сети
давай попробуем разобраться,доступ в личку
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
FOQRussia, Надо читать внимательнее
далее двигаем в папку НАЗВАНИЕ ВАШЕГО ШАБЛОНА\plugins\ там мы должны сделать папку basket и поместить в созданную папку файлы из папки engine\plugin\basket\tpl.
дальше разберешся как тебе надо.я там все сделал
Изменено irbees2008 (2014-06-08 18:25:44)
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
FOQRussia, Надо читать внимательнее
далее двигаем в папку НАЗВАНИЕ ВАШЕГО ШАБЛОНА\plugins\ там мы должны сделать папку basket и поместить в созданную папку файлы из папки engine\plugin\basket\tpl.
дальше разберешся как тебе надо.я там все сделал
Блин, спасибо огромное!!! Дальше сам разберусь, главное работает )))
Не в сети
посмотри как здесь реализовано http://oriflame.vv.si/
если понравится выложу
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
Не в сети
В шаблоне плагина feedback в mail.html.tpl
{% for entry in entries %}
<tr style="background: #FFFFFF;" valign="top">
<td style="background: #EFEFEF;">{{ entry.id }}</td>
<td style="background: #EFEFEF;">{{ entry.title }}</td>
<td style="background: #EFEFEF;">{{ entry.value }}</td>
</tr>
{% endfor %}
почему-то обрабатывается плагином basket, поэтому вместо имени, фамилии и прочего приходит информация о товаре.
Почему так происходит? Как сделать, чтобы этот кусок обрабатывался как полагается, feedback'ом?
Не в сети
Тоже заметил этот косяк,при добавлении формы в баскет ничего кроме инфы по товару на почту не приходит,если не указывать форму в баскет то фидбэк работает нормально.
Видимо когда переводили на твиг где то появилась ошибка.
Изменено irbees2008 (2014-07-15 11:07:37)
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
Тоже заметил этот косяк,при добавлении формы в баскет ничего кроме инфы по товару на почту не приходит,если не указывать форму в баскет то фидбэк работает нормально.
Видимо когда переводили на твиг где то появилась ошибка.
Скрины несмотрибельны, но там вроде бы есть кнопки "удалить продукт" или товар.. Сам добавлял? script'ом удаляешь?
Кстати, при пересчёте товаров: если увеличить кол-во любого товара, то общая сумма пересчитывается, а общее кол-во единиц товара - нет
Пока других косяков не нашёл.
Хотелось бы ещё иметь возможность сразу добавлять любое кол-во единиц товара.
Как об этом говорилось выше, на странице товара и в таблице всех товаров - кнопки "+" и "-" и <input type="text" />, в котором можно вводить кол-во вручную.
И те же возможности в форме заказа: удалить товар из заказа, увеличить и уменьшить кол-во (кнопками), <input type="text" /> уже есть.
Вот, тогда корзина была бы практически готова к широкому использованию, а NG - к использованию в качестве магазина.
Кстати, порадовало то, что форму feedback при оформлении заказов можно автозаполнять данными из xfields
из профиля пользователя, если они заполнил эти доп.поля в профиле.
Изменено nimiko (2014-07-16 20:37:16)
Не в сети
кнопка удаления http://ngcms.ru/forum/viewtopic.php?pid=36533#p36533 демкаhttp://oriflame.vv.si/
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
кнопка удаления http://ngcms.ru/forum/viewtopic.php?pid=36533#p36533 демка http://oriflame.vv.si/
Благодарю, добавил себе в функционал
Не в сети
На странице корзины (шаблон list.tpl) маленьким плагином jquery добавил возможность регулировать кол-во при помощи + и -
Но на странице товаров (новостей) нет инпут=текст с кол-вом. Там только:
[basket]<a href="#" onclick="rpcBasketRequest('plugin.basket.manage', {'action': 'add', 'ds':1,'id':{news-id},'count':1}); return false;">В корзину</a>[/basket]
В этом самом 'count':1 - эту единичку возможно завернуть в виде какой-нить переменной для js? Чтобы добавленный мною инпут=текст синхронизировался с этим count.
Меня интересует как сделать переменную. Синхронизировать с input я смогу.
Вопрос по некорректной отправке заказа на почту ещё в силе: http://ngcms.ru/forum/viewtopic.php?pid=38412#p38412
Изменено nimiko (2014-07-19 21:57:24)
Не в сети
На странице корзины (шаблон list.tpl) маленьким плагином jquery добавил возможность регулировать кол-во при помощи + и -
Но на странице товаров (новостей) нет инпут=текст с кол-вом. Там только:[basket]<a href="#" onclick="rpcBasketRequest('plugin.basket.manage', {'action': 'add', 'ds':1,'id':{news-id},'count':1}); return false;">В корзину</a>[/basket]
В этом самом 'count':1 - эту единичку возможно завернуть в виде какой-нить переменной для js? Чтобы добавленный мною инпут=текст синхронизировался с этим count.
Меня интересует как сделать переменную. Синхронизировать с input я смогу.
Вот реализация - + это файл list.tpl,ну стили и стили под себя,проверенно работает.
<div id="cont-4" role="main">
<h1>Ваша <br>корзина </h1>
{% if (recs > 0) %}
<p class="nocommand">Ваши товары</p>
<aside id="shippinginfos">
<style type="text/css">
span {cursor:pointer; }
.number{
margin:100px 30%;
}
.minus, .plus{
width:12px;
height:12px;
background:#f2f2f2;
padding:3px 5px 3px 5px;
border:1px solid #ddd;
}
</style>
<form method="post" action="/plugin/basket/update/"/>
<table class="table" style="width: 100%;">
<tr style="border-bottom: 1px solid #E5E5E5;color: #787878;width: 100%;">
<th style="
padding: 10px 0;">#</th>
<th style="
padding: 10px 0;">Наименование</th>
<th style="
padding: 10px 0;">Цена</th>
<th style="
padding: 10px 0;">Кол-во</th>
<th align="right" style="
padding: 10px 0;">Стоимость</th>
</tr>
{% for entry in entries %}
<tr style="border-bottom: 1px solid #E5E5E5;color: #787878;width: 100%;">
<td class="f11">{{ loop.index }}|</td>
<td>{{ entry.title }}</td>
<td align="center"><strong>{{ entry.price }}</strong></td>
<td align="center"><span class="minus">-</span><input name="count_{{ entry.id }}" type="text" maxlength="5" style="width: 35px;" value="{{ entry.count }}"/><span class="plus">+</span></td>
<td align="right" class="blue_t">{{ entry.sum }}</td>
<td align="right"><input type="submit" name="count_{{ entry.id }}"value="очистить" onclick="this.form.reset(); "></td>
</tr>
{% endfor %}
<tr class="muted" style="border-bottom: 1px solid #E5E5E5;color: #787878;width: 100%;">
<td style="
padding: 10px 0;">Итого:</td>
<td style="
padding: 10px 0;"><strong class="green_t">{{ total }}</strong></td>
</tr>
</table>
<div class="btn-group">
<input type="submit" class="btn" value="Пересчитать"/> <input type="button" value="Оформить заказ" class="btn btn-primary" onclick="document.location='{{ form_url }}';"/>
</div>
</form>
<script type="text/javascript" >
$(document).ready(function() {
$('.minus').click(function () {
var $input = $(this).parent().find('input');
var count = parseInt($input.val()) - 1;
count = count < 1 ? 1 : count;
$input.val(count);
$input.change();
return false;
});
$('.plus').click(function () {
var $input = $(this).parent().find('input');
$input.val(parseInt($input.val()) + 1);
$input.change();
return false;
});
});
</script>
<div class="clear20"></div>
{% else %}
<div class="msge">Ваша корзина пуста!</div>
{% endif %}
</aside>
</div>
Вопрос по некорректной отправке заказа на почту ещё в силе: http://ngcms.ru/forum/viewtopic.php?pid=38412#p38412
Исправлено.Спасибо infinity237
Изменено irbees2008 (2014-09-28 11:03:14)
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
irbees2008, спасибо, но я говорил о странице товара и списка товаров (news.full и news.table). А в плагине корзины я плюсы-минусы реализовал лёгким jQuery плагином.
Баг с отправкой исправлен? Исправления уже включены в ночные сборки?
Не в сети
irbees2008, спасибо, но я говорил о странице товара и списка товаров (news.full и news.table). А в плагине корзины я плюсы-минусы реализовал лёгким jQuery плагином.
Баг с отправкой исправлен? Исправления уже включены в ночные сборки?
На странице с товаром надо сделать через форму
да изменения в свн есть
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
irbees2008, спасибо, но я говорил о странице товара и списка товаров (news.full и news.table).
http://ngcmshak.ru/nastroika-plaginov/b … lenii.html
вот реализация для страници товара
посмотреть как работает http://liv.ngcmshak.ru/dekorativnye-ele … 2-sht.html
Изменено irbees2008 (2014-10-02 21:55:41)
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
1/
Предположим у нас есть каталог продукции, с различными параметрами не влияющими на стоимость (например размер или цвет).
Задача: сделать вывод этого параметра в корзину и в письмо feedback'a. Решение задачи, когда параметр влияет на стоимость представлено в другой теме.
1) Создаем в xfields дополнительное текстовое поле: Новости → табличные данные. Например, size (Размер модели).
2) Заполняем таблицу из одного столбца для каждого продукта. Если продукт не имеет такого показателя, оставляем незаполненным.
3) Редактируем basket/lib/librpc.php, для того чтобы плагин мог работать с таблицами без "ценового столбца".
Найти https://github.com/vponomarev/ngcms-plu … #L130-L139
Заменить на:
$xc = xf_configLoad();
$xfData = xf_decode($nrec['xfields']);
$xfTData = unserialize($rec['xfields']);
// Get price
if (pluginGetVariable('basket', 'ntable_price') && isset($xfTData[pluginGetVariable('basket', 'ntable_price')])) {
$price = $xfTData[pluginGetVariable('basket', 'ntable_price')];
} elseif (pluginGetVariable('basket', 'news_price') && isset($xfData[pluginGetVariable('basket', 'news_price')])) {
$price = $xfData[pluginGetVariable('basket', 'news_price')];
} else {
$price = 0;
}
4) Выводим в news.full.tpl элементы - radio переключатели выбора параметра:
{% if p.xfields._table.countRec > 0 %}
{% for xdata in p.xfields._table.data %}
<input id="{{ xdata.id }}" type="radio" name="size" value="{{ xdata.field_size }}">
<label for="{{ xdata.id }}">{{ xdata.field_size }}</label>
{% endfor %}
<hh>
{% endif %}
5) Выводим кнопку/ссылку "Добавить в корзину" (в news.full.tpl):
<a href="#" class="purchase">Добавить В корзину</a>
6) Пишем обработчик на JS + TWIG (в news.full.tpl):
Работает по принципу: если таблица размеров в новости заполнена, то заставить пользователя выбрать размер и добавить продукт в корзину. Если таблица не заполнена, то добавить продукт в корзину. TWIG конструкции можно переписать на JS/JQ, если в этом есть необходимость.
<script>
$(document).ready(function() {
$(".purchase").click(function(e){
{% if p.xfields._table.countRec > 0 %}
var count = 1;
var tblid = 0;
tblid = $("input[type='radio']:checked").attr('id');
if(typeof tblid == "undefined"){
alert('<red>Вы не выбрали размер!</red>');
return false;
}
rpcBasketRequest('plugin.basket.manage', {'action': 'add', 'ds':51,'id':tblid,'count':count});
return false;
{% else %}
rpcBasketRequest('plugin.basket.manage', {'action': 'add', 'ds':1,'id':{news-id},'count':1});
{% endif %}
e.preventDefault();
});
});
</script>
7) Вывести переменную в таблицу в шаблонах /plugins/basket/list.tpl и /plugins/basket/lfeedback.tpl
{{ entry.xfields.tdata.size }}
2/
Предположим у нас есть каталог продукции, с различными параметрами среди которых есть изображения.
Задача: сделать вывод изображения продукта в корзине, сделать возможным использовать ссылку на новость в письмах-заказах feedback'a.
0) Важно не забывать, что в шаблонах /plugins/basket/list.tpl и /plugins/basket/lfeedback.tpl, как и в любых других TWIG шаблонах работают функции debagValue() и debugContext(), которые позволяют вывеси все возможные для использования переменные. Например:
{{ debugValue(entries) }}
Однако, к некоторым данным из новости нет доступа из шаблонов /plugins/basket/list.tpl и /plugins/basket/lfeedback.tpl (например ссылка на новость или изображения новости).
1) Редактируем basket/basket.php, для того чтобы плагин мог доставать нужные данные из таблиц news и images.
Требуется найти функциях plugin_basket_list(), onShow($formID, $formStruct, $formData, &$tvars), onProcess($formID, $formStruct, $formData, $flagHTML, &$tvars):
$total += round($rec['price'] * $rec['count'], 2);
Ниже добавить:
$linked_ds = $rec['linked_ds'];
$linked_id = $rec['linked_id'];
// Check if linked item is available
switch ($linked_ds) {
case $DSlist['news']:
// Retrieve news record
$recf = $mysql->record("select * from ".prefix."_news where id = ".db_squote($linked_id));
if (!is_array($recf)) {
return array('status' => 0, 'errorCode' => 3, 'errorText' => 'Item [news] with ID ('.$linked_id.') is not found');
}
$rec_img = array();
$img_urls = array();
foreach ($mysql->select("select * from ".prefix."_images where (plugin = 'xfields') AND (linked_id = ".db_squote($linked_id).")") as $irec) {
$rec_img []= $irec;
}
foreach ($rec_img as $imgInfo) {
$img_urls[] = ($imgInfo['storage']?$config['attach_url']:$config['images_url']).'/'.$imgInfo['folder'].'/'.$imgInfo['name'];
}
$xc = xf_configLoad();
$xfData = xf_decode($recf['xfields']);
$rec['news'] = $recf;
$rec['images'] = $img_urls;
$rec['news_url'] = home.newsGenerateLink($recf);
case $DSlist['#xfields:tdata']:
// Retrieve XFields record
$recf = $mysql->record("select * from ".prefix."_xfields where id = ".db_squote($linked_id));
if (!is_array($recf)) {
return array('status' => 0, 'errorCode' => 4, 'errorText' => 'Item [tdata] with ID ('.$linked_id.') is not found');
}
// Retrieve joined record (assume that it can be only news
if ($recf['linked_ds'] != $DSlist['news']) {
return array('status' => 0, 'errorCode' => 5, 'errorText' => 'Sorry, only news related XFields tables are supported now');
}
$nrec = $mysql->record("select * from ".prefix."_news where id = ".db_squote($recf['linked_id']));
if (!is_array($nrec)) {
return array('status' => 0, 'errorCode' => 6, 'errorText' => 'Item found, but related [news] is lost');
}
$rec_img = array();
$img_urls = array();
foreach ($mysql->select("select * from ".prefix."_images where (plugin = 'xfields') AND (linked_id = ".db_squote($nrec['id']).")") as $irec) {
$rec_img []= $irec;
}
foreach ($rec_img as $imgInfo) {
$img_urls[] = ($imgInfo['storage']?$config['attach_url']:$config['images_url']).'/'.$imgInfo['folder'].'/'.$imgInfo['name'];
}
$xc = xf_configLoad();
$xfData = xf_decode($nrec['xfields']);
$xfTData = unserialize($recf['xfields']);
$rec['news'] = $nrec;
$rec['images'] = $img_urls;
$rec['news_url'] = home.newsGenerateLink($nrec);
}
+ добавить $DSlist в global.
Внимание, решение делает в наихудшем случае 2n запросов к БД на действие, где n - число продуктов в корзине, что может повысить нагрузку на БД при больших количествах заказов.
2) После этого в шаблонах /plugins/basket/list.tpl и /plugins/basket/lfeedback.tpl появится возможность доставать данные из массивов news и images.
Например вывод изображения:
{% for entry in entries %}
...
{{ entry.images[0] }}
...
{% endfor %}
Вывод ссылки на новость:
{% for entry in entries %}
...
{{ entry.news_url }}
...
{% endfor %}
Результат:
Не в сети
Супер
жизнь бьёт ключом......,ну иногда и гайкой.....
Хаки и Скрипты| Бесплатные шаблоны NGCMS
На Районе - Шахтинск Украшение Windows
Не в сети
infinity237, Огромное спасибо.
просто предложу ..
Может нужна ссылка на FAQ (поста) или возможно вложить faq.txd в сам плагин.
Дабы не отвечать 100500 раз на вопросы таких "как я" с раздела "как сделать" !?
Не в сети