Browse Source

Add enclosures support, see example in DemoBridge.

Teromene 8 years ago
parent
commit
4deefdfd7d
3 changed files with 29 additions and 5 deletions
  1. 11 1
      bridges/DemoBridge.php
  2. 10 0
      formats/AtomFormat.php
  3. 8 4
      lib/Item.php

+ 11 - 1
bridges/DemoBridge.php

@@ -53,6 +53,16 @@ class DemoBridge extends BridgeAbstract{
 
 	public function collectData(array $param){
 
+		$item = new \Item();
+	    $item->name = "TestElement";
+	    $item->title = "Test";
+	    $item->content = "Awesome content !";
+	    $item->id = "Lalala";
+	    $item->uri = "http://test.test/test";
+		$item->enclosures[] = "http://www.ardmediathek.de/ard/servlet/image/00/32/68/18/38/1135274624/16x9/960";
+
+	    $this->items[] = $item;
+
     }
 
 	public function getName() {
@@ -68,6 +78,6 @@ class DemoBridge extends BridgeAbstract{
 	}
 
 	public function getCacheDuration(){
-		return 3600; // 1 hour
+		return 00; // 1 hour
 	}
 }

+ 10 - 0
formats/AtomFormat.php

@@ -36,6 +36,15 @@ class AtomFormat extends FormatAbstract{
             // We prevent content from closing the CDATA too early.
             $entryContent = is_null($data->content) ? '' : '<![CDATA[' . $this->sanitizeHtml(str_replace(']]>','',$data->content)) . ']]>';
 
+			// We generate a list of the enclosure links
+			$entryEnclosure = "";
+            
+			foreach($data->enclosures as $enclosure) {
+
+				$entryEnclosures .= "<link rel=\"enclosure\" href=\"".$enclosure."\"></link>";
+
+			}
+
             $entries .= <<<EOD
 
     <entry>
@@ -48,6 +57,7 @@ class AtomFormat extends FormatAbstract{
         <id>{$entryUri}</id>
         <updated>{$entryTimestamp}</updated>
         <content type="html">{$entryContent}</content>
+		{$entryEnclosures}
     </entry>
 
 EOD;

+ 8 - 4
lib/Item.php

@@ -2,15 +2,19 @@
 interface ItemInterface{}
 
 /**
-* Object to store datas collect informations
-* FIXME : not sur this logic is the good, I think recast all is necessary
-*/
+ * Object to store datas collect informations
+ * FIXME : not sur this logic is the good, I think recast all is necessary
+ */
 class Item implements ItemInterface{
+
+    // FIXME : use the arrayInterface instead
+    public $enclosures = array();
+    
     public function __set($name, $value){
         $this->$name = $value;
     }
 
     public function __get($name){
-        return isset($this->$name) ? $this->$name : null;
+        return (isset($this->$name) ? $this->$name : null);
     }
 }