/interfaces/admin/components/pages/controllers/assets.php

https://gitlab.com/x33n/platform · PHP · 213 lines · 153 code · 18 blank · 42 comment · 36 complexity · 37d34d2c10d5baec44bb66d5f5346ebc MD5 · raw file

  1. <?php
  2. $user_id = $cash_admin->effective_user_id;
  3. // get all assets for page
  4. $releases_response = $cash_admin->requestAndStore(
  5. array(
  6. 'cash_request_type' => 'asset',
  7. 'cash_action' => 'getassetsforuser',
  8. 'type' => 'release',
  9. 'parent_id' => 0,
  10. 'user_id' => $user_id
  11. )
  12. );
  13. /*
  14. $playlists_response = $cash_admin->requestAndStore(
  15. array(
  16. 'cash_request_type' => 'asset',
  17. 'cash_action' => 'getassetsforuser',
  18. 'type' => 'playlist',
  19. 'parent_id' => 0,
  20. 'user_id' => $user_id
  21. )
  22. );
  23. */
  24. $files_response = $cash_admin->requestAndStore(
  25. array(
  26. 'cash_request_type' => 'asset',
  27. 'cash_action' => 'getassetsforuser',
  28. 'type' => 'file',
  29. 'parent_id' => 0,
  30. 'user_id' => $user_id
  31. )
  32. );
  33. // we need to get all items for the user to determine if an asset is monetized
  34. $items_response = $cash_admin->requestAndStore(
  35. array(
  36. 'cash_request_type' => 'commerce',
  37. 'cash_action' => 'getitemsforuser',
  38. 'user_id' => $cash_admin->effective_user_id
  39. )
  40. );
  41. //Commerce connection, release or files present?
  42. $cash_admin->page_data['connection'] = AdminHelper::getConnectionsByScope('assets') || $releases_response['payload'] || $files_response['payload'];
  43. // Return Connection
  44. $page_data_object = new CASHConnection(AdminHelper::getPersistentData('cash_effective_user'));
  45. $settings_types_data = $page_data_object->getConnectionTypes('assets');
  46. $all_services = array();
  47. $typecount = 1;
  48. foreach ($settings_types_data as $key => $data) {
  49. if ($typecount % 2 == 0) {
  50. $alternating_type = true;
  51. } else {
  52. $alternating_type = false;
  53. }
  54. if (file_exists(ADMIN_BASE_PATH.'/assets/images/settings/' . $key . '.png')) {
  55. $service_has_image = true;
  56. } else {
  57. $service_has_image = false;
  58. }
  59. if (in_array($cash_admin->platform_type, $data['compatibility'])) {
  60. $all_services[] = array(
  61. 'key' => $key,
  62. 'name' => $data['name'],
  63. 'description' => $data['description'],
  64. 'link' => $data['link'],
  65. 'alternating_type' => $alternating_type,
  66. 'service_has_image' => $service_has_image
  67. );
  68. $typecount++;
  69. }
  70. }
  71. $cash_admin->page_data['all_services'] = new ArrayIterator($all_services);
  72. // releases
  73. if (is_array($releases_response['payload'])) {
  74. $releases_response['payload'] = array_reverse($releases_response['payload']); // newest first
  75. if (count($releases_response['payload']) == 2) {
  76. $cash_admin->page_data['one_remaining'] = true;
  77. } else if (count($releases_response['payload']) == 1) {
  78. $cash_admin->page_data['two_remaining'] = true;
  79. }
  80. foreach ($releases_response['payload'] as &$asset) {
  81. if ($asset['modification_date']) {
  82. $asset['descriptor_string'] = 'updated: ' . CASHSystem::formatTimeAgo($asset['modification_date']);
  83. } else {
  84. $asset['descriptor_string'] = 'updated: ' . CASHSystem::formatTimeAgo($asset['creation_date']);
  85. }
  86. $asset['cover_url'] = ADMIN_WWW_BASE_PATH . '/assets/images/release.jpg';
  87. if (isset($asset['metadata']['cover'])) {
  88. if ($asset['metadata']['cover']) { // effectively non-zero
  89. $cover_response = $cash_admin->requestAndStore(
  90. array(
  91. 'cash_request_type' => 'asset',
  92. 'cash_action' => 'getasset',
  93. 'id' => $asset['metadata']['cover']
  94. )
  95. );
  96. if ($cover_response['payload']) {
  97. $cover_asset = $cover_response['payload'];
  98. if (strpos(CASHSystem::getMimeTypeFor($cover_asset['location']),'image') !== false) {
  99. $cover_url_response = $cash_admin->requestAndStore(
  100. array(
  101. 'cash_request_type' => 'asset',
  102. 'cash_action' => 'getasseturl',
  103. 'connection_id' => $cover_asset['connection_id'],
  104. 'user_id' => AdminHelper::getPersistentData('cash_effective_user'),
  105. 'asset_location' => $cover_asset['location'],
  106. 'inline' => true
  107. )
  108. );
  109. if ($cover_url_response['payload']) {
  110. $asset['cover_url'] = $cover_url_response['payload'];
  111. }
  112. }
  113. }
  114. }
  115. }
  116. if (isset($asset['metadata']['artist_name'])) {
  117. $asset['artist_name'] = $asset['metadata']['artist_name'];
  118. }
  119. if (isset($asset['metadata']['fulfillment'])) {
  120. if (is_array($asset['metadata']['fulfillment'])) {
  121. if (count($asset['metadata']['fulfillment'])) {
  122. $asset['has_fulfillment'] = true;
  123. }
  124. }
  125. }
  126. if (is_array($items_response['payload'])) {
  127. foreach ($items_response['payload'] as $item) {
  128. if ($item['fulfillment_asset'] == $asset['id']) {
  129. $asset['monetized'] = true;
  130. break;
  131. }
  132. }
  133. }
  134. }
  135. $featured_releases = array_slice($releases_response['payload'],0,3);
  136. $cash_admin->page_data['featured_releases'] = new ArrayIterator($featured_releases);
  137. if (count($releases_response['payload']) > 3) {
  138. $remaining_releases = array_slice($releases_response['payload'],3);
  139. $cash_admin->page_data['more_releases'] = true;
  140. $cash_admin->page_data['remaining_releases'] = new ArrayIterator($remaining_releases);
  141. }
  142. }
  143. /*
  144. if (is_array($playlists_response['payload'])) {
  145. $playlists_response['payload'] = array_reverse($playlists_response['payload']); // newest first
  146. $asset_count = 0;
  147. foreach ($playlists_response['payload'] as &$asset) {
  148. $asset_count++;
  149. if ($asset_count % 3 == 0) {
  150. $asset['third_asset'] = true;
  151. }
  152. if ($asset_count == 6) {
  153. $asset['last_feature'] = true;
  154. }
  155. $asset['descriptor_string'] = 'created: ' . CASHSystem::formatTimeAgo($asset['creation_date']);
  156. if ($asset['modification_date']) {
  157. $asset['descriptor_string'] = 'last edited: ' . CASHSystem::formatTimeAgo($asset['modification_date']);
  158. }
  159. }
  160. $featured_playlists = array_slice($playlists_response['payload'],0,6);
  161. $cash_admin->page_data['featured_playlists'] = new ArrayIterator($featured_playlists);
  162. if (count($playlists_response['payload']) > 6) {
  163. $remaining_playlists = array_slice($playlists_response['payload'],6);
  164. $cash_admin->page_data['more_playlists'] = true;
  165. $cash_admin->page_data['remaining_playlists'] = new ArrayIterator($remaining_playlists);
  166. }
  167. }
  168. */
  169. if (is_array($files_response['payload'])) {
  170. $files_response['payload'] = array_reverse($files_response['payload']); // newest first
  171. foreach ($files_response['payload'] as &$asset) {
  172. if ($asset['modification_date']) {
  173. $asset['descriptor_string'] = 'updated: ' . CASHSystem::formatTimeAgo($asset['modification_date']);
  174. } else {
  175. $asset['descriptor_string'] = 'updated: ' . CASHSystem::formatTimeAgo($asset['creation_date']);
  176. }
  177. if (is_array($items_response['payload'])) {
  178. foreach ($items_response['payload'] as $item) {
  179. if ($item['fulfillment_asset'] == $asset['id']) {
  180. $asset['monetized'] = true;
  181. break;
  182. }
  183. }
  184. }
  185. }
  186. $featured_files = array_slice($files_response['payload'],0,5);
  187. if (count($files_response['payload']) > 5) {
  188. $remaining_files = array_slice($files_response['payload'],5);
  189. $cash_admin->page_data['more_files'] = true;
  190. $cash_admin->page_data['remaining_files'] = new ArrayIterator($remaining_files);
  191. }
  192. $cash_admin->page_data['featured_files'] = new ArrayIterator($featured_files);
  193. }
  194. $cash_admin->setPageContentTemplate('assets');
  195. ?>