PageRenderTime 43ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/actions/item_create.php

https://github.com/fabianmu/shodio
PHP | 132 lines | 79 code | 5 blank | 48 comment | 25 complexity | b55c4bc8ac3452777f2cff6d6699c999 MD5 | raw file
  1. <?php
  2. include("../bootstrap.php");
  3. //print_r($_POST);
  4. /*
  5. Array
  6. (
  7. [appId] => 35997
  8. [types] => Array
  9. (
  10. [219909] => title
  11. [219910] => progress
  12. [219912] => date
  13. [219913] => text
  14. [219911] => member
  15. [225255] => text
  16. [228199] => state
  17. [228560] => state
  18. )
  19. [fields] => Array
  20. (
  21. [219909] => title
  22. [219910] => 10
  23. [219912] => Array
  24. (
  25. [start] => 01/07/2011 20:00
  26. [end] =>
  27. )
  28. [219913] => desc
  29. [219911] => 13026
  30. [225255] => bla
  31. [228199] => state 1
  32. [228560] => test 1
  33. )
  34. [219912_start_date] => 01/07/2011
  35. [219912_start_time] => 20:00
  36. [219912_end_date] =>
  37. [219912_end_time] =>
  38. )
  39. */
  40. // create that item
  41. $newItem = array();
  42. $newItem['tags'] = array();
  43. $newItem['appId'] = $_POST['appId'];
  44. $newItem['external_id'] = null;
  45. foreach ($_POST['fields'] as $field_id => $field) {
  46. $newField = array();
  47. switch ($_POST['types'][$field_id]) {
  48. /*case 'image']:
  49. case 'media']:
  50. case 'money']:
  51. case 'video']:*/
  52. case 'title':
  53. case 'text':
  54. case 'state':
  55. case 'location':
  56. if ($field != '') { // do not send empty fields
  57. $newField["field_id"] = $field_id;
  58. $newField['values'][]['value'] = $field;
  59. }
  60. break;
  61. case 'progress':
  62. case 'number':
  63. case 'duration':
  64. if ($field != '') { // do not send empty fields
  65. $newField["field_id"] = $field_id;
  66. $newField['values'][]['value'] = (int)$field;
  67. }
  68. break;
  69. case 'app':
  70. if ($field != '') { // do not send empty fields
  71. $items = explode(",", $field);
  72. $newField["field_id"] = $field_id;
  73. foreach ($items as $index => $item_id) {
  74. if (is_numeric($item_id)) {
  75. $newField['values'][$index]['value'] = (int)$item_id;
  76. }
  77. }
  78. $newField["field_id"] = $field_id;
  79. }
  80. break;
  81. case 'member':
  82. if ($field != '') { // do not send empty fields
  83. $newField["field_id"] = $field_id;
  84. $newField['values'][]['value'] = $field;
  85. }
  86. break;
  87. case 'date':
  88. // change date to match podio format
  89. if ($field['start'] != '') {
  90. $newField["field_id"] = $field_id;
  91. $dateTime = explode(" ", $field['start']);
  92. $date = explode("/", $dateTime[0]);
  93. $newField['values'][0]["start"] = $date[2] . "-" . $date[0] . "-" . $date[1];
  94. if (isset($dateTime[1]) && $dateTime[1] != '') { // time given as well?
  95. $newField['values'][0]["start"] .= " " . $dateTime[1].":00";
  96. } else {
  97. $newField['values'][0]["start"] .= " 00:00:00";
  98. }
  99. }
  100. if ($field['end'] != '') {
  101. $dateTime = explode(" ", $field['end']);
  102. $date = explode("/", $dateTime[0]);
  103. $newField['values'][0]["end"] = $date[2] . "-" . $date[0] . "-" . $date[1];
  104. if (isset($dateTime[1]) && $dateTime[1] != '') { // time given as well?
  105. $newField['values'][0]["end"] .= " " . $dateTime[1].":00";
  106. } else {
  107. $newField['values'][0]["end"] .= " 00:00:00";
  108. }
  109. }
  110. break;
  111. }
  112. if (isset($newField["field_id"])) {
  113. $newItem['fields'][] = $newField;
  114. }
  115. }
  116. //print_r($newItem);
  117. //exit();
  118. $item = $api->item->create($newItem['appId'], $newItem['fields'], array(), $newItem['tags'], $newItem['external_id']);
  119. if ($item['item_id']) {
  120. echo $item['item_id'];
  121. } else {
  122. echo "ERROR";
  123. }
  124. ?>