[Модуль] Продукты (app_products)
Модератор: immortal
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль Продукты
nick7zmail, webms вы же разбирались в разметке и шаблонах этого модуля. Где поменять, чтобы в покупках количество бралось не из таблицы Products, а из таблицы shopping_list_items? Почти доделал возможность при голосовом вводе сказать количество, но не понимаю, что сделать чтобы это количество потом было видно в списке покупок....
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Модуль Продукты
nick7zmail, круто!! этого я не умею уже делать)
у меня в админке вообще не получается создавать категории и подкатегории (я через добавление нового товара добавляю новую категорию)
но после твоих изменений, все работает, спасибо
ps:еще нужно рядом с картинкой кнопку удаление самой картинки сделать
предлагаю вот так выводить подкатегории, чуть позже сделаю
у меня в админке вообще не получается создавать категории и подкатегории (я через добавление нового товара добавляю новую категорию)
но после твоих изменений, все работает, спасибо
ps:еще нужно рядом с картинкой кнопку удаление самой картинки сделать
предлагаю вот так выводить подкатегории, чуть позже сделаю
- Вложения
-
- Clip2net_180301225129.png (90.83 КБ) 3777 просмотров
Последний раз редактировалось webms Чт мар 01, 2018 11:29 pm, всего редактировалось 2 раза.
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Модуль Продукты
это к nick7zmail, я не знаю как(fandaymon писал(а):nick7zmail, webms вы же разбирались в разметке и шаблонах этого модуля. Где поменять, чтобы в покупках количество бралось не из таблицы Products, а из таблицы shopping_list_items? Почти доделал возможность при голосовом вводе сказать количество, но не понимаю, что сделать чтобы это количество потом было видно в списке покупок....
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Модуль Продукты
Если не хотите чтоб добавлялся +1 или -1 при добавление в корзину,
то нужно в файле products_search.inc.php закомментировать
и
то нужно в файле products_search.inc.php закомментировать
Код: Выделить всё
//SQLExec("UPDATE products SET QTY=QTY+1 WHERE ID='".(int)$id."'");
Код: Выделить всё
//SQLExec("UPDATE products SET QTY=QTY-1 WHERE ID='".(int)$id."'");
- Рейтинг: 1.16%
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Модуль Продукты
в этом же файле нужно изменить вот это, иначе не показывает заголовок "в корзине" товару из последней категории
Код: Выделить всё
if ($res[$i]['CATEGORY_ID']!=$old_category_id) {
$old_category_id=$res[$i]['CATEGORY_ID'];
$res[$i]['NEW_CATEGORY']=1;
}
if ($out['SHOPPING']) {
if ($res[$i]['IN_CART']!=$incart) {
$res[$i]['CATEGORY_TITLE']='<br><br><hr><span style="color:red;">В карзине:</span><br/>'.$res[$i]['CATEGORY_TITLE'];
$incart=$res[$i]['IN_CART'];
$res[$i]['NEW_CATEGORY']=1;
}
}
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль Продукты
Поискал в том районе и нашёл, что если добавить в select LIST_QTY из shopping_list_itemswebms писал(а):Если не хотите чтоб добавлялся +1 или -1 при добавление в корзину,
то нужно в файле products_search.inc.php закомментироватьиКод: Выделить всё
//SQLExec("UPDATE products SET QTY=QTY+1 WHERE ID='".(int)$id."'");
Код: Выделить всё
//SQLExec("UPDATE products SET QTY=QTY-1 WHERE ID='".(int)$id."'");
// SEARCH RESULTS
$res=SQLSelect("SELECT shopping_list_items.LIST_QTY,products.*, shopping_list_items.IN_CART, (TO_DAYS(EXPIRE_DATE)-TO_DAYS(NOW())) as EXPIRE_TERM, product_categories.TITLE as CATEGORY_TITLE FROM products LEFT JOIN product_categories ON products.CATEGORY_ID=product_categories.ID LEFT JOIN shopping_list_items ON products.ID=shopping_list_items.PRODUCT_ID WHERE $qry ORDER BY $sortby");
А потом в /templates/products_search_admin.html вместо [#QTY#] написать [#LIST_QTY#], то в покупках будет показывать количество не из products, а из shopping_list_items, что и требовалось. Правда такое исправление затирает QTY и в других вкладках - ВСЕ ПРОДУКТЫ, ИСТЕКШИЕ, ОТСУТСТВУЮЩИЕ, но наверное это можно исправить каким-нибудь условием. Буду копать дальше
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Модуль Продукты
Ну на это есть я))webms писал(а):nick7zmail, круто!! этого я не умею уже делать)
у меня в админке вообще не получается создавать категории и подкатегории (я через добавление нового товара добавляю новую категорию)
но после твоих изменений, все работает, спасибо
ps:еще нужно рядом с картинкой кнопку удаление самой картинки сделать
предлагаю вот так выводить подкатегории, чуть позже сделаю
У меня в админке модуль даже со старым оформлением работать не хочет...тыкал на категорию - на несколько секунд появляется то что надо, а потом перекидывает на дашборд...и да, категории тоже не хотели создаваться. А вот если открыть приложения, там модуль продукты, и на "ключ гаечный" нажать - вот там всё работает на ура!
Про удаление картинки как то не подумал)) добавим.
Про подкатегории - у них тоже могут быть картинки во-первых, а во-вторых уровень вложенности может быть бесконечный)) ну 3-4 уровня по крайней мере точно стоит проработать...чтобы и картинки и количество было...Предлагаю примерно так сделать, если это возможно Ну или ещё вариант - вообще убрать вложенности...ну это на крайний случай, и, наверное, по согласованию с Сергеем.
И кстати я сделал, чтобы весь блок ссылкой был, а не только надпись...так что можно в любое место блока тыкать, так как-то правильнее наверное.
П.С.: По поводу базы - разве в shopping_list_items есть количество?...вроде не видел...вообще - посмотрел немножко модуль - что-то много таблиц он юзает...мне кажется от половины избавиться можно...products и product_categories оставить.
Вместо shopping_list_items - делать выборку из products по условию, product_log - что это вообще?, product_codes - тоже табличка непонятная...всё в products же вносить можно...
Отправлено с моего Xperia XZ1 Compact через Tapatalk
- За это сообщение автора nick7zmail поблагодарил:
- webms (Пт мар 02, 2018 8:50 am)
- Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль Продукты
По умолчанию - нету, но я добавил. Логика простая - products это то что есть, shopping_list_items это то что надо купить. Хочется иметь возможность указать сколько именно требуется купить продукта. Т.е. не вести учёт что есть и в магазине смотреть чего дома нету и покупать, а заранее составить список чего и сколько надо купить. Ну или что бы этот список составил кто-то другой.nick7zmail писал(а):
П.С.: По поводу базы - разве в shopping_list_items есть количество?...вроде не видел...вообще - посмотрел немножко модуль - что-то много таблиц он юзает...мне кажется от половины избавиться можно...products и product_categories оставить.
Вместо shopping_list_items - делать выборку из products по условию, product_log - что это вообще?, product_codes - тоже табличка непонятная...всё в products же вносить можно...
Табличка shopping_list я так понимаю задумано для развития модуля - если скажем я планирую заскочить в несколько разных магазинов и для каждого из них делаю свой список покупок. Наверное это было бы удобно, но вроде на данный момент это не реализовано
product_log - это логирование движения продуктов - когда купили, когда израсходовали. Если добавить цены, то можно посчитатать, например, сколько денег в семье тратится на хлеб Как для меня ценность этой информации сомнительная, но люди все разные - может кому-то это и нужно. product_codes это чисто справочник кодов. Скачивается какая-нибудь большая таблица со списком кодов и если вдруг в магазине покупается что-то, чего ещё не покупалось и чего нету в таблице products, то по коду из таблицы product_codes приходит название.
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль Продукты
Очередная версия - добавлено распознавание конструкций - 1 бутылку красного вина, 200 грамм сливочного масла. Исправлены ошибки согласования рода прилагательных и существительных в разных сложных случаях. Добавил 2 новых поля в таблицу shopping_list_items и проверку их наличия в скрипте. Если их нету, то поля добавляются следующим скриптом
В products_search.inc.php поменять
// SEARCH RESULTS
$res=SQLSelect("SELECT LIST_QTY,ED_IZM, products.*, shopping_list_items.IN_CART, (TO_DAYS(EXPIRE_DATE)-TO_DAYS(NOW())) as EXPIRE_TERM, product_categories.TITLE as CATEGORY_TITLE FROM products LEFT JOIN product_categories ON products.CATEGORY_ID=product_categories.ID LEFT JOIN shopping_list_items ON products.ID=shopping_list_items.PRODUCT_ID WHERE $qry ORDER BY $sortby");
А потом в /templates/products_search_admin.html
[#if "<#SHOPPING#>"=="1"#]
<span id="product[#ID#]_qty">[#LIST_QTY#] [#ED_IZM#]</span>
[#else#]
<span id="product[#ID#]_qty">[#QTY#]</span>
[#endif#]
И вуаля - в список добавляется продукт с количеством и единицей измерения и это же количество и единица измерения видны во вкладке Покупки
Код: Выделить всё
//Добавляем 2 поля в shopping_list_items если их там нету
$res=SQLSelect('show fields from shopping_list_items;');
$is_qty=0;
$is_ed_izm=0;
$totals = count($res);
for ($is = 0; $is < $totals; $is++) {
if ($res[$is]['Field']=='List_Qty') $is_qty=1;
if ($res[$is]['Field']=='Ed_Izm') $is_ed_izm=1;
}
if ($is_qty==0) SQLExec('ALTER TABLE shopping_list_items ADD List_Qty INT DEFAULT 1');
if ($is_ed_izm==0) SQLExec('ALTER TABLE shopping_list_items ADD Ed_Izm varchar(15)');
СпойлерПоказать
Код: Выделить всё
<?php
//$command='черный молотый перец белого лука гель для душа хлеба белого мыло марки пальмалив 1 бутылку красного вина';
require_once(ROOT . "lib/phpmorphy/common.php");
$opts = array(
'storage' => PHPMORPHY_STORAGE_MEM,
'predict_by_suffix' => true,
'predict_by_db' => true,
'graminfo_as_text' => true,
);
$dir = ROOT . 'lib/phpmorphy/dicts';
$lang = 'ru_RU';
try {
$morphy = new phpMorphy($dir, $lang, $opts);
$this->morphy =& $morphy;
} catch (phpMorphy_Exception $e) {
die('Error occured while creating phpMorphy instance: ' . PHP_EOL . $e);
}
$words = explode(' ', $command);
$base_forms = array();
$partsOfSpeech=array();
$f_word=array();
$totals = count($words);
for ($is = 0; $is < $totals; $is++) {
if (preg_match('/^(\d+)$/', $words[$is])) {
$base_forms[$is] = array($words[$is]);
$partsOfSpeech[$is]=array('ЧИСЛ');
$f_word[$is]=array('');
} else {
$Word = mb_strtoupper($words[$is], 'UTF-8');
$base_forms[$is] = $morphy->getBaseForm($Word);
$partsOfSpeech[$is] = $morphy->getPartOfSpeech($Word);
$f_word[$is] = $morphy->getGramInfo($Word);
if ($base_forms[$is][0]=='ВОД') {
$base_forms[$is][0]='ВОДА';
for ($kk= 0; $kk < count($f_word[$is][0][0]['grammems'])-1; $kk++) {
if ($f_word[$is][0][0]['grammems'][$kk]=='МР') {
$f_word[$is][0][0]['grammems'][$kk]='ЖР';
break;
}
}
}
if ( count($partsOfSpeech[$is])==2) {
if ($partsOfSpeech[$is][0]=="С" and $partsOfSpeech[$is][1]=="П") {
$partsOfSpeech[$is][0]="П";
$chislo=array_intersect($f_word[$is][1][0]['grammems'],['ЕД', 'МН']);
$chislo=reset($chislo);
$rod=array_intersect($f_word[$is][1][0]['grammems'],['МР', 'ЖР', 'СР']);
$rod=reset($rod);
$f_word[$is][0][0]['grammems'][0]=$chislo;
$f_word[$is][0][0]['grammems'][1]=$rod;
}
elseif ($partsOfSpeech[$is][0]=="Г" and $partsOfSpeech[$is][1]=="С") {
$partsOfSpeech[$is][0]="С";
$base_forms[$is][0]=$base_forms[$is][1];
$chislo=array_intersect($f_word[$is][1][0]['grammems'],['ЕД', 'МН']);
$chislo=reset($chislo);
$rod=array_intersect($f_word[$is][1][0]['grammems'],['МР', 'ЖР', 'СР']);
$rod=reset($rod);
$f_word[$is][0][0]['grammems'][0]=$chislo;
$f_word[$is][0][0]['grammems'][1]=$rod;
}
}
$base_forms[$is][]=$words[$is];
}
}
$products='';
$qty=1;
$ed_izm='';
for ($is = 0; $is < $totals; $is++) {
if (preg_match('/^(\d+)$/', $words[$is])) {
$qty=(int)$words[$is];
if (($is+1)<$totals) {
if (in_array($base_forms[$is+1][0],array('БУТЫЛКА','ПАЧКА','ШТУКА','УПАКОВКА','ГРАММ','КИЛОГРАММ','РУЛОН'))) {
$ed_izm=$base_forms[$is+1][0];
$ed_izm=mb_strtolower($ed_izm, 'UTF-8');
$is++;
}
}
}
else {
if ($partsOfSpeech[$is][0]=='С') {
$chislo=array_intersect($f_word[$is][0][0]['grammems'],['ЕД', 'МН']);
$chislo=reset($chislo);
$rod1=array_intersect($f_word[$is][0][0]['grammems'],['МР', 'ЖР', 'СР']);
$rod1=reset($rod1);
if (($is+1)<$totals) {
if ($partsOfSpeech[$is+1][0]=='С') {
if ($base_forms[$is+1][0]=='МАРКА' or $base_forms[$is+1][0]=='ФИРМА') {
$product=$base_forms[$is][0]. ' ' . $words[$is+1] . ' ' . $words[$is+2];
$is=$is+2;
}
else {
if ($chislo=='ЕД') {
$product=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$rod1,'ЕД','ИМ']);
}
else {
$product=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,'ИМ']);
}
$product=$product[0]['form'];
}
}
elseif ($partsOfSpeech[$is+1][0]=='ПРЕДЛ') {
$product=$base_forms[$is][0] . ' ' . $words[$is+1] . ' ' . $words[$is+2];
$is=$is+2;
}
elseif ($partsOfSpeech[$is+1][0]=='П') {
$rod=array_intersect($f_word[$is+1][0][0]['grammems'],['МР', 'ЖР', 'СР']);
$rod=reset($rod);
// Выбираем форму прилагательного правильного рода
if ($chislo=='ЕД') {
$adjective=$morphy->castFormByGramInfo($base_forms[$is+1][0],"П",[$rod,'ЕД','ИМ']);
}
else {
$adjective=$morphy->castFormByGramInfo($base_forms[$is+1][0],"П",['МН','ИМ']);
}
$adjective=$adjective[0]['form'];
if ($chislo=='ЕД') {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$rod,'ЕД','ИМ']);
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,'ИМ']);
}
$noun=$noun[0]['form'];
if (Get_Product_ID($adjective . " " . $noun)>0) {
$product=$adjective . " " . $noun;
$is=$is+1;
}
else {
if ($chislo=='ЕД') {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$rod,'ЕД','ИМ']);
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,'ИМ']);
}
$product=$noun[0]['form'];
}
}
}
else {
if ($chislo=='ЕД') {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,$rod1,'ИМ']);
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,'ИМ']);
}
$noun=$noun[0]['form'];
$product=$noun;
}
}
elseif ($partsOfSpeech[$is][0]=='П') {
$rod=array_intersect($f_word[$is][0][0]['grammems'],['МР', 'ЖР', 'СР']);
$rod=reset($rod);
$chislo=array_intersect($f_word[$is][0][0]['grammems'],['МН', 'ЕД']);
$chislo=reset($chislo);
// Выбираем форму прилагательного правильного рода
if ($chislo=='ЕД') {
$adjective=$morphy->castFormByGramInfo($base_forms[$is][0],"П",[$rod,'ЕД','ИМ']);
}
else {
$adjective=$morphy->castFormByGramInfo($base_forms[$is][0],"П",['МН','ИМ']);
}
$adjective=$adjective[0]['form'];
if (($is+1)<$totals) {
if ($partsOfSpeech[$is+1][0]=='С') {
if (count($base_forms[$is+1])>2){
// выбираем форму согласованную по роду
for ($kk= 0; $kk < count($base_forms[$is+1])-1; $kk++) {
$rod1=array_intersect($f_word[$is+1][$kk][0]['grammems'],['МР', 'ЖР', 'СР']);
$rod1=reset($rod1);
if ($rod==$rod1) break;
}
if ($chislo=='ЕД') {
$noun=$morphy->castFormByGramInfo($base_forms[$is+1][$kk],'С',['ЕД',$rod,'ИМ']);
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is+1][$kk],'С',[$chislo,'ИМ']);
}
$noun=$noun[0]['form'];
$product=$adjective .' ' . $noun ;
$is=$is+1;
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is+1][0],'С',[$chislo,'ИМ']);
$noun=$noun[0]['form'];
$product=$adjective .' ' . $noun ;
$is=$is+1;
}
}
elseif ($partsOfSpeech[$is+1][0]=='П') {
if ($chislo=='ЕД') {
$adjective1=$morphy->castFormByGramInfo($base_forms[$is+1][0],"П",[$rod,'ЕД','ИМ']);
}
else {
$adjective1=$morphy->castFormByGramInfo($base_forms[$is+1][0],"П",['МН','ИМ']);
}
$adjective1=$adjective1[0]['form'];
if (($is+2)<$totals) {
if ($partsOfSpeech[$is+2][0]=='С') {
if (count($base_forms[$is+2])>2){
// выбираем форму согласованную по роду
for ($kk= 0; $kk < count($base_forms[$is+2])-1; $kk++) {
$rod1=array_intersect($f_word[$is+2][$kk][0]['grammems'],['МР', 'ЖР', 'СР']);
$rod1=reset($rod1);
}
if ($chislo=='ЕД') {
$noun=$morphy->castFormByGramInfo($base_forms[$is+2][$kk],'С',['ЕД',$rod,'ИМ']);
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is+2][$kk],'С',[$chislo,'ИМ']);
}
$noun=$noun[0]['form'];
$product=$adjective .' ' . $adjective1 . ' ' . $noun ;
$is=$is+2;
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is+2][0],'С',[$chislo,'ИМ']);
$noun=$noun[0]['form'];
$product=$adjective .' ' . $adjective1 .' ' . $base_forms[$is+2][0];
$is=$is+2;
}
}
else {
$product=$adjective .' ' . $adjective1;
$is=$is+1;
}
}
else {
$product=$adjective .' ' . $adjective1;
$is=$is+1;
}
}
}
else {
$product=$adjective;
}
}
$product = mb_strtolower($product, 'UTF-8');
//say($product);
if ($products=='') $products.=$product; else $products.='. ' . $product;
if($debugEnabled) debmes('Products produkt:'. $product);
$id=Get_Product_ID( $product);
if ($id > 0){
addToListQty($id,$qty,$ed_izm);
if($debugEnabled) debmes('Products produkt '.$product.' found, ID:'. $id);
}
Else {
if($debugEnabled) debmes('Products produkt '.$product.' not found, adding');
$category_id = Get_Category_ID("Неотсортированные");
if ($category_id > 0){
if($debugEnabled) debmes('Products category exiting unknown');
$this->category_id = $category_id;
}
Else {
if($debugEnabled) debmes('Products creating unknown');
$Record = Array();
$Record['TITLE'] = "Неотсортированные";
$Record['ID']=SQLInsert('product_categories', $Record);
$category_id = $Record['ID'];
if($debugEnabled) debmes('Products produkt '.$product.' adding to created unknown');
}
$Record = Array();
$Record['TITLE'] = $product;
$Record['CATEGORY_ID'] = $category_id;
$Record['QTY'] = 1;
$Record['ID']=SQLInsert('products', $Record);
$id = $Record['ID'];
addToListQty($id,$qty,$ed_izm);
if($debugEnabled) debmes('Products produkt '.$product.' not found, added to category id '.$category_id);
}
$qty=1;
$ed_izm='';
}
}
say('Я добавила в список покупок: ' . $products,2);
function Get_Product_ID($product) {
$res=SQLSelectOne("select ID from products where TITLE='" . $product . "'");
$id=0;
if ($res['ID']) {
$id=$res['ID'];
}
return $id;
}
function Get_Category_ID($category) {
$res=SQLSelectOne("select ID from product_categories where TITLE='" . $category . "'");
$id=0;
if ($res['ID']) {
$id=$res['ID'];
}
return $id;
}
function addToListQty($id,$qty,$ed_izm) {
$product=SQLSelectOne("SELECT * FROM products WHERE ID='".(int)$id."'");
if ($product['ID']) {
SQLExec("DELETE FROM shopping_list_items WHERE PRODUCT_ID='".(int)$id."'");
$rec=array();
$rec['PRODUCT_ID']=$product['ID'];
$rec['TITLE']=$product['TITLE'];
$rec['IN_CART']=0;
$rec['List_Qty']=$qty;
$rec['Ed_Izm']=$ed_izm;
SQLInsert('shopping_list_items', $rec);
if (defined('DROPBOX_SHOPPING_LIST')) {
$data=LoadFile(DROPBOX_SHOPPING_LIST);
$data=str_replace("\r", '', $data);
$lines=explode("\n", $data);
$total=count($lines);
$found=0;
for($i=0;$i<$total;$i++) {
if ($found) {
continue;
}
if (is_integer(strpos($lines[$i], $product['TITLE']))) {
$found=1;
}
}
if (!$found) {
if (!$data) {
$lines=array();
$lines[]='SHOPPING LIST';
$lines[]='';
}
$lines[]=$product['TITLE'];
$data=implode("\n", $lines);
SaveFile(DROPBOX_SHOPPING_LIST, $data);
}
}
}
}
?>
// SEARCH RESULTS
$res=SQLSelect("SELECT LIST_QTY,ED_IZM, products.*, shopping_list_items.IN_CART, (TO_DAYS(EXPIRE_DATE)-TO_DAYS(NOW())) as EXPIRE_TERM, product_categories.TITLE as CATEGORY_TITLE FROM products LEFT JOIN product_categories ON products.CATEGORY_ID=product_categories.ID LEFT JOIN shopping_list_items ON products.ID=shopping_list_items.PRODUCT_ID WHERE $qry ORDER BY $sortby");
А потом в /templates/products_search_admin.html
[#if "<#SHOPPING#>"=="1"#]
<span id="product[#ID#]_qty">[#LIST_QTY#] [#ED_IZM#]</span>
[#else#]
<span id="product[#ID#]_qty">[#QTY#]</span>
[#endif#]
И вуаля - в список добавляется продукт с количеством и единицей измерения и это же количество и единица измерения видны во вкладке Покупки
- Рейтинг: 1.16%
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Модуль Продукты
Хорошая новость, спасибо.fandaymon писал(а):Очередная версия -...
Очень рад что идея прижилась.
Отправлю пуллреквест.
Может, чтобы не было ошибки, будешь сюда архив всех файлов модуля выкладывать.
Отправлено с моего Redmi Note 4 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.