views_rss_media.inc 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * @file
  4. * Preprocess functions for Views RSS: Media Elements module.
  5. */
  6. /**
  7. * Preprocess function for item <media:content> element.
  8. */
  9. function views_rss_media_preprocess_item_content(&$variables) {
  10. // No value = no preprocessing.
  11. if (empty($variables['elements'][0]['value'])) {
  12. return;
  13. }
  14. if (!empty($variables['raw'])) {
  15. $value = array();
  16. foreach ($variables['raw'] as $delta => $element) {
  17. if (!empty($element['rendered']['#rss_element'])) {
  18. $value[] = $element['rendered']['#rss_element'];
  19. }
  20. }
  21. if (count($variables['raw']) > 1 && isset($variables['raw'][0]['rendered']['#settings']['group_multiple_values']) && $variables['raw'][0]['rendered']['#settings']['group_multiple_values']) {
  22. $value = array(array(
  23. 'key' => 'media:group',
  24. 'value' => $value,
  25. ));
  26. }
  27. $variables['elements'] = $value;
  28. }
  29. }
  30. /**
  31. * Preprocess function for item <media:title> and <media:description> elements.
  32. */
  33. function views_rss_media_preprocess_item_text(&$variables) {
  34. // No value = no preprocessing.
  35. if (empty($variables['elements'][0]['value'])) {
  36. return;
  37. }
  38. // Check whether original value format is text or HTML.
  39. $type = 'plain';
  40. $value_decoded = htmlspecialchars_decode($variables['elements'][0]['value'], ENT_QUOTES);
  41. if ($value_decoded != strip_tags($value_decoded)) {
  42. $type = 'html';
  43. }
  44. // Add "type" argument to an element with its format.
  45. $variables['elements'][0]['attributes']['type'] = $type;
  46. }
  47. /**
  48. * Preprocess function for item <media:category> element.
  49. */
  50. function views_rss_media_preprocess_item_category(&$variables) {
  51. // No value = no preprocessing.
  52. if (empty($variables['elements'][0]['value'])) {
  53. return;
  54. }
  55. if (!empty($variables['raw'])) {
  56. $value = array();
  57. foreach ($variables['raw'] as $delta => $element) {
  58. if (!empty($element['rendered']['#rss_element'])) {
  59. $value[] = $element['rendered']['#rss_element'];
  60. }
  61. }
  62. $variables['elements'] = $value;
  63. }
  64. }