Перейти к содержимому


Фотография
- - - - -

Сохранение элементов в БД

парсер сохранение материала создание элемента

Лучший Ответ SmetDenis , 05 March 2014 - 11:01

а как именно внести новый элемент в базу


Создаете пустой объект материала, наполняете его, сохраняете.
// пустышка
$item                   = $this->app->object->create('Item');

// наполняем стандартные поля
$item->application_id   = 10;
$item->name             = 'Item name';
$item->alias            = 'item-alias';
$item->type             = 'type-alias';
$item->publish_up       = $this->app->date->create()->toSQL();
$item->publish_down     = $this->app->database->getNullDate();
$item->created          = $this->app->date->create()->toSQL();
$item->created_by       = JFactory::getUser()->get('id');
$item->created_by_alias = '';
$item->state            = 1;
$item->searchable       = 1;

// наполняем пользовательские поля
$item->getElement('<element_id>')->bindData(array(
  'value' => '123' // данные в формате элемента, можно посмотреть PMA
));

// сохраняем
$this->app->table->item->save($item);

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 5

#1 arist0

arist0

Отправлено 04 March 2014 - 23:02

Здравствуйте.

Пишу парсер элементов для каталога на базе JBZoo (каталог предприятий). С самим парсером всё понятно: получил название, адрес, телефон, мыло... теперь в каталоге надо добавить новое предприятие с этими данными. Вот тут и всё... не могу найти решение ни для zoo ни для jbzoo... Есть вариант копировать существующий элемент, а потом изменять в нём грубо говоря всё, но что-то мне кажется что это не самое лучшее решение при условии что мне надо спарсить 160000 предприятий. Есть возможности API для сохранения нового элемента? Кто-то решал подобную задачу и как? 


Сообщение отредактировал arist0: 04 March 2014 - 23:03

  • 0

#2 Sliapy

Sliapy

Отправлено 05 March 2014 - 00:57

Смотрели эту тему - http://forum.jbzoo.c...enta-zoo-jbzoo/ ?


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#3 arist0

arist0

Отправлено 05 March 2014 - 10:13

ну если вы про последние 2 строчки по поводу как изменить данные и сохранить обратно в базу, то да. а как именно внести новый элемент в базу. Смотрел и http://forum.jbzoo.c...-v-bd-mimo-zoo/ там тоже ничего не решено...


  • 0

#4 Sliapy

Sliapy

Отправлено 05 March 2014 - 10:30

Так в указанной теме Денис дал рекомендации, что нужно делать.


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#5 SmetDenis

SmetDenis

Отправлено 05 March 2014 - 11:01   Лучший Ответ

а как именно внести новый элемент в базу


Создаете пустой объект материала, наполняете его, сохраняете.
// пустышка
$item                   = $this->app->object->create('Item');

// наполняем стандартные поля
$item->application_id   = 10;
$item->name             = 'Item name';
$item->alias            = 'item-alias';
$item->type             = 'type-alias';
$item->publish_up       = $this->app->date->create()->toSQL();
$item->publish_down     = $this->app->database->getNullDate();
$item->created          = $this->app->date->create()->toSQL();
$item->created_by       = JFactory::getUser()->get('id');
$item->created_by_alias = '';
$item->state            = 1;
$item->searchable       = 1;

// наполняем пользовательские поля
$item->getElement('<element_id>')->bindData(array(
  'value' => '123' // данные в формате элемента, можно посмотреть PMA
));

// сохраняем
$this->app->table->item->save($item);


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 arist0

arist0

Отправлено 05 March 2014 - 13:24

спасибо, разобрался :)


  • 0





Темы с аналогичным тегами парсер, сохранение материала, создание элемента

Click to return to top of page in style!