[Модуль] Продукты (app_products)
Модератор: immortal
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Модуль Продукты
Ещё одна проблемка вылезла, видимо из-за phpmorphy, не получается добавить голосом fairy. Английское слово выпадает из перечня. А Гугл упорно воспринимает его как английское среди фразы на русском. Боюсь может попасться ещё какой бред на английском. Памперс и хагес вроде как русскими буквами распознаётся, а вот fairy упорно латинскими.
Отправлено с моего Redmi Note 4 через Tapatalk
Отправлено с моего 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. И говорящий апельсин.
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Модуль Продукты
Отправьте Сергею и это, а то не доверяет мне, игнорирует)webms писал(а):в этом же файле нужно изменить вот это, иначе не показывает заголовок "в корзине" товару из последней категории
Код: Выделить всё
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; } }
- webms
- Сообщения: 498
- Зарегистрирован: Чт дек 15, 2016 3:13 am
- Благодарил (а): 221 раз
- Поблагодарили: 88 раз
Re: Модуль Продукты
Только что скачал с маркета, и действительно нет измененийnick7zmail писал(а):Я вроде пулл реквест в основную ветку модуля делал...так что из маркета с оформлением должно качаться уже и с возможностями выставить картинку категорий из админки.
Вот что сейчас там
- Вложения
-
- Clip2net_180306165246.png (30.35 КБ) 3391 просмотр
-
- Clip2net_180306165301.png (65.94 КБ) 3391 просмотр
Последний раз редактировалось webms Вт мар 06, 2018 5:06 pm, всего редактировалось 1 раз.
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Модуль Продукты
Сергей иногда видимо очень занят, и принимает реквест с задержкой.
Отправлено с моего Redmi Note 4 через Tapatalk
Отправлено с моего 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. И говорящий апельсин.
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Модуль Продукты
Мой реквест принят 2 часа назад.
А от nick7zmail 4 дня назад, если конечно не было ещё реквестов позже.
Отправлено с моего Redmi Note 4 через Tapatalk
А от nick7zmail 4 дня назад, если конечно не было ещё реквестов позже.
Отправлено с моего 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. И говорящий апельсин.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Модуль Продукты
Нет...не было
Я гляну...мож у меня что не так пошло))
Я гляну...мож у меня что не так пошло))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль Продукты
Точно-точно - из-за phpmorphy. Цифры отсеивались кусочком кода, который я взял у Сергея, а вот про английские названия не подумал. Сделаю анализ и буду считать все английские слова существительными мужского рода единственного числа.lanket писал(а):Ещё одна проблемка вылезла, видимо из-за phpmorphy, не получается добавить голосом fairy. Английское слово выпадает из перечня. А Гугл упорно воспринимает его как английское среди фразы на русском. Боюсь может попасться ещё какой бред на английском. Памперс и хагес вроде как русскими буквами распознаётся, а вот fairy упорно латинскими.
Отправлено с моего Redmi Note 4 через Tapatalk
Ещё вылезли сливка для кофе и корма для дегу - тоже гляну.
Ещё надо будет добавить в функцию второй параметр-флаг. 0 - по умолчанию, добавление продуктов в список. 1 - удаление продуктов из списка и 2 удаление всего из списка, кроме списка продуктов.
0 - отработка Надо купить .... список продуктов...
1 - отработака Удали из списка ... список продуктов...
2 - купил всё кроме ..список продуктов....
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль Продукты
Думаю, что это тоже будет не сложно сделать. В зависимости от параметра shopping, надо вызывать разные функции - если 0, то корректировать кол-во продукта, если 1, то количество в списке покупок.lanket писал(а):Так речь не о вкладке наличии. Вкладка список покупок сейчас отображает и сколько заказано и наличие. + и - меняют наличие, а напрашивается менять заказанное.nick7zmail писал(а):Можно ведь сделать и для того и для другого...на вкладке с корзиной - сколько купить, на вкладке с наличием - сколько имеется...вкладка с наличием всё равно будет прятаться у тех, кому не нужна.
Отправлено с моего Xperia XZ1 Compact через Tapatalk
Отправлено с моего Redmi Note 4 через Tapatalk
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Модуль Продукты
Ток что из маркета обновился...вроде всё ок.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль Продукты
Очередная версия - добавлено распознавание слов на английском, понимание конструкции бутылка пива, улучшено распознавание правильной словоформы, скрипт считает что существительное произносится либо в именительном, либо винительном падеже. (корм стал заносится правильно), добавил перевод из слов в цифры в тех случаях когда гугл выдаёт два вместо 2.
Ещё поправил файл template
СпойлерПоказать
Код: Выделить всё
<?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 ($words[$is]=='один' or $words[$is]=='одну') $words[$is]='1';
if ($words[$is]=='два' or $words[$is]=='две') $words[$is]='2';
if ($words[$is]=='три') $words[$is]='3';
if ($words[$is]=='четыре') $words[$is]='4';
if ($words[$is]=='пять') $words[$is]='5';
if ($words[$is]=='шесть') $words[$is]='6';
if ($words[$is]=='семь') $words[$is]='7';
if ($words[$is]=='восемь') $words[$is]='8';
if ($words[$is]=='девять') $words[$is]='9';
if ($words[$is]=='десять') $words[$is]='10';
if (preg_match('/^(\d+)$/', $words[$is])) {
$base_forms[$is] = array($words[$is]);
$partsOfSpeech[$is]=array('ЧИСЛ');
$f_word[$is]=array('');
}
elseif (preg_match('/([a-zA-Z])/',$words[$is])) {
$base_forms[$is] = array($words[$is]);
$partsOfSpeech[$is]=array('С');
$f_word[$is][0][0]['grammems'][0]='МР';
$f_word[$is][0][0]['grammems'][1]='ЕД';
}
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;
}
}
if ( count($base_forms[$is])>1){
if ($f_word[$is][0][0]['pos']=="С" and $f_word[$is][1][0]['pos']=="С") {
// Из нескольких форм существительного выбираем ту, которая в именительном или винительном падеже
$padezh=array_intersect($f_word[$is][0][0]['grammems'],['ИМ', 'РД', 'ДТ', 'ВН', 'ТВ', 'ПР', 'ЗВ']);
$padezh=reset($padezh);
if ($padezh!='ИМ' and $padezh!='ВН') {
$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);
$padezh=array_intersect($f_word[$is][1][0]['grammems'],['ИМ', 'РД', 'ДТ', 'ВН', 'ТВ', 'ПР', 'ЗВ']);
$padezh=reset($padezh);
$f_word[$is][0][0]['grammems'][0]=$chislo;
$f_word[$is][0][0]['grammems'][1]=$rod;
$f_word[$is][0][0]['grammems'][2]=$padezh;
}
}
}
}
}
$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];
$is++;
}
}
}
elseif (in_array($base_forms[$is][0],array('БУТЫЛКА','ПАЧКА','ШТУКА','УПАКОВКА','ГРАММ','КИЛОГРАММ','РУЛОН'))) {
$ed_izm=$base_forms[$is][0];
}
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]=='ФИРМА') {
if (preg_match('/([a-zA-Z])/',$words[$is])) $product=$words[$is];
else {
if ($chislo=='ЕД') $product=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$rod1,'ЕД','ИМ']);
else $product=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,'ИМ']);
$product=$product[0]['form'];
}
$product=$product . ' ' . $words[$is+1] . ' ' . $words[$is+2];
$is=$is+2;
}
else {
if (preg_match('/([a-zA-Z])/',$words[$is])) $product=$words[$is];
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]=='ПРЕДЛ') {
if (preg_match('/([a-zA-Z])/',$words[$is])) $noun=$words[$is];
else {
if ($chislo=='ЕД') {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$rod1,'ЕД','ИМ']);
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,'ИМ']);
}
$noun=$noun[0]['form'];
}
$product=$noun . ' ' . $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 (preg_match('/([a-zA-Z])/',$words[$is])) $noun=$words[$is];
else {
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 (preg_match('/([a-zA-Z])/',$words[$is])) $noun=$words[$is];
else {
if ($chislo=='ЕД') {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$rod,'ЕД','ИМ']);
}
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is][0],'С',[$chislo,'ИМ']);
}
$noun=$noun[0]['form'];
}
$product=$noun;
}
}
}
else {
if (preg_match('/([a-zA-Z])/',$words[$is])) $noun=$words[$is];
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])>1){
// выбираем форму согласованную по роду
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 {
if (preg_match('/([a-zA-Z])/',$words[$is+1])) $noun=$words[$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])>1){
// выбираем форму согласованную по роду
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 {
if (preg_match('/([a-zA-Z])/',$words[$is+2])) $noun=$words[$is+2];
else {
$noun=$morphy->castFormByGramInfo($base_forms[$is+2][0],'С',[$chislo,'ИМ']);
$noun=$noun[0]['form'];
}
$product=$adjective .' ' . $adjective1 .' ' . $noun;
$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);
}
}
}
}
?>
- Вложения
-
- products_search_admin.zip
- (3.24 КБ) 109 скачиваний