Форум программистов, компьютерный форум, киберфорум
Joomla
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 6
1

Перезаполнить элемент вместо создания нового

01.11.2015, 16:05. Показов 1206. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В модуле на CMS Joomla есть код загрузки товаров из файла .cvs.
Так вот этот код создает новые элементы вместо перезаполнения существующих. В php полный нуб пока, поэтому прошу помощи.
Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$product = JSFactory::getTable('product', 'jshop');
                    $product->set("product_ean", $row[1]);
                    $product->set("product_quantity", $row[2]);
                    $product->set("product_date_added", $row[3]);
                    $product->set("product_price", $row[4]);
                    $product->set("min_price", $row[4]);
                    $product->set("product_tax_id", $listTax[$tax_value]);                                        
                    $product->set("currency_id", $jshopConfig->mainCurrency);
                    $product->set($lang->get("name"), utf8_encode($row[7]));
                    $product->set($lang->get("short_description"), utf8_encode($row[8]));
                    $product->set($lang->get("description"), utf8_encode($row[9]));
                    $product->store();
                    $product_id = $product->get("product_id");
                    $category_id = $listCat[$category_name];
                    if ($category_name!="" && $category_id){
                        $_products->setCategoryToProduct($product_id, array($category_id));
                    }
Я вот не могу понять, что за процедуры store() и $product->get("product_id") и как мне впихнуть создание нового...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2015, 16:05
Ответы с готовыми решениями:

Старый адрес админки вместо нового
Всем привет! Интересная ситуация. Переносил сайт с одного хостинга на другой. И на новом...

Передача существующего объекта вместо создания нового
Есть класс Word. Он неизменяемый: все методы - константные. Учитывая это я пытаюсь создать класс...

В полученном массиве вместо aх1 запишите наибольший элемент массива, а вместо aхN — наименьший элемент массива
Задан массив AX (N). Добавить массив С(К). Выполнить сортировку разделением. В полученном массиве...

В заданном массиве A(N) вместо a1 запишите наибольший элемент массива, а вместо aN — наименьший элемент массива
В заданном массиве A(N) вместо a1 запишите наибольший элемент массива, а вместо aN — наименьший...

6
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 6
04.11.2015, 17:06  [ТС] 2
Есть кто?)
JSFactory - это ведь класс, насколько я понимаю? где найти его определение, посмотреть код методов?
Разбираюсь в загрузке данных для joomshopping.

Добавлено через 5 минут
Как можно отладку запустить? или, например, сделать вывод сообщений в некоторых точках выполнения кода?

Добавлено через 10 минут
Нашел код из другой загрузки...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
                  $product_id = $row[0];
                    if ($product_id!=""){
                        $product->set("product_id", $product_id);
                    }
                    $product->set("product_ean", $row[1]);
                    $product->set("product_quantity", $row[2]);
                    $product->set("product_date_added", $row[3]);
                    $product->set("product_date_added", date("Y-m-d H:i:s"));
                    $product->set("product_price", $row[4]);
                    $product->set("product_tax_id", $listTax[$tax_value]);
                    $product->set($lang->get("name"), ($row[7]));
                    $product->set($lang->get("short_description"), ($row[8]));
                    $product->set($lang->get("description"), ($row[9]));
                    $product->set("product_manufacturer_id", $row[11]);
                    $product->set($lang->get("meta_description"), ($row[12]));
                    $product->set($lang->get("meta_keyword"), ($row[13]));
                    $product->set("product_publish", $row[14]);
                    $product->set("product_template", $row[15]);
                    $product->set("delivery_times_id", $row[16]);
                    $product->store();
                    if ($product_id==null){
                        $product_id = $product->get("product_id");
Добавлено через 59 минут
теперь вот заморочка как по полю product_ean находить товары.
Методы класса так пока и не нашел.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
                   if ($product_id!=""){
                        $product->set("product_id", $product_id);
                    }               
                    $product->set("product_ean", $row[1]);
                    $product->set("product_quantity", $row[2]);
                    $product->set("product_date_added", $row[3]);
                    $product->set("product_price", $row[4]);
                    $product->set("min_price", $row[4]);
                    $product->set("product_tax_id", $listTax[$tax_value]);                                        
                    $product->set($lang->get("name"), ($row[7]));
                    $product->set($lang->get("short_description"), ($row[8]));
                    $product->set($lang->get("description"), ($row[9]));
                    $product->store();
                     if ($row[0]==""){
                        $product_id = $product->get("product_ean");
                    }  
                 
                    //if ($product_id==null){
                    //       $product_id = $product->get("product_id");
                    //}
создает новый элемент, хотя элемент с таким реквизитом есть
0
Администратор
12268 / 5333 / 268
Регистрация: 05.04.2011
Сообщений: 14,086
Записей в блоге: 2
04.11.2015, 17:09 3
Цитата Сообщение от sanja83 Посмотреть сообщение
JSFactory - это ведь класс, насколько я понимаю? где найти его определение, посмотреть код методов?
По Joomshopping нет вменяемой документации. Ищите поиском по файлам класс и смотрите.
0
1408 / 571 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
07.11.2015, 06:55 4
Цитата Сообщение от sanja83 Посмотреть сообщение
JSFactory - это ведь класс, насколько я понимаю? где найти его определение, посмотреть код методов?
components/com_jshopping/lib/factory.php


Не по теме:

Цитата Сообщение от Taatshi Посмотреть сообщение
По Joomshopping нет вменяемой документации.
вот я тоже с этим столкнулся. Приходится частично "вслепую" все делать.

Еще и триггеров нет где хочется. Сделал бы плагин и все. А так приходится свои функции лепить, что затрудняет обновление версии JS.

0
Администратор
12268 / 5333 / 268
Регистрация: 05.04.2011
Сообщений: 14,086
Записей в блоге: 2
07.11.2015, 10:10 5
_Dimon_, очень многое можно делать не модифицируя ядра магазина. Например, я не понимаю зачем в данном случае туда лезть. Знаю импорт-экспорт, написанный под Joomshopping - и там никаких хаков ядра не проводилось. Но он платный.
0
_Dimon_
07.11.2015, 10:29
  #6

Не по теме:

Taatshi, согласен. Но я не про этот случай. Мне надо было чуть-чуть изменить поведения магазина при оформлении заказа. Пришлось в некоторых местах поставить триггер (вернее он там был, но без параметров).

0
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 6
09.11.2015, 00:04  [ТС] 7
Taatshi, при чем тут допиливание ядра, если стандартная загрузка только создает новые элементы, нет возможности даже прайсы обновить автоматически.
Суть вашего ответа сводится к тому, чтобы купить доработанную загрузку-выгрузку, но я их и так видел, покупать не стал, а смотрю в интернете как сделать.
0
09.11.2015, 00:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2015, 00:04
Помогаю со студенческими работами здесь

В заданном массиве A(N) вместо a1 запишите наибольший элемент массива, а вместо aN — наименьший элемент массива.
В заданном массиве A(N) вместо a1 запишите наибольший элемент массива, а вместо aN — наименьший...

Hайти и записать вместо x[1] наибольший элемент, а вместо x[2] -наименьший для массива x[1],x[2],..., x[100].
Hайти и записать вместо x наибольший элемент, а вместо x -наименьший для массива x,x,..., x.

создания нового сайта
Вопрос к спецам я делаю новый сайт, нужен совет в создании шапки. Это мой стрый сайт. у меня...

Создания нового конструктора
Есть класс new_class. В нем уже есть созданый конструктор "new_class" в котором прописаные все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru