Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. <?php
  2. /**
  3. * Find a Collection Item by a field. If not exists, create new.
  4. *
  5. * @param string $collectionKey
  6. * @param string $template
  7. * @param array $field $field = ['id' => '', 'value' => '']
  8. * @param array $data
  9. * @param boolean $return_item set to true to return item instead of _id
  10. *
  11. */
  12. function find_or_create_collection_item($collectionKey, $template, $field, $data = [], $return_item = false) {
  13. $ImporterAPI = new PerchAPI(1.0, 'my_importer');
  14. $Importer = $ImporterAPI->get('CollectionImporter');
  15. $Template = $ImporterAPI->get('Template');
  16.  
  17. $Importer->set_collection($collectionKey);
  18. $Template->set($template, 'content');
  19. $Importer->set_template($Template);
  20.  
  21. $items = $Importer->find_items([
  22. 'filter' => $field['id'],
  23. 'value' => $field['value'],
  24. ]);
  25.  
  26.  
  27. if (count($items)) {
  28. // found existing
  29. foreach($items as $item) {
  30. if($return_item) {
  31. return $item;
  32. } else {
  33. return $item['_id'];
  34. }
  35. }
  36. } elseif(is_array($data) && !empty($data)) {
  37. // new item
  38. try {
  39. return $Importer->add_item($data);
  40. } catch (Exception $e) {
  41. die('Error: '.$e->getMessage());
  42. }
  43. }
  44.  
  45.  
  46. return false;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement