Add enclosures support, see example in DemoBridge.

This commit is contained in:
Teromene 2016-01-19 12:34:38 +00:00
parent e7595391cd
commit 4deefdfd7d
3 changed files with 29 additions and 5 deletions

View file

@ -53,6 +53,16 @@ class DemoBridge extends BridgeAbstract{
public function collectData(array $param){ 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() { public function getName() {
@ -68,6 +78,6 @@ class DemoBridge extends BridgeAbstract{
} }
public function getCacheDuration(){ public function getCacheDuration(){
return 3600; // 1 hour return 00; // 1 hour
} }
} }

View file

@ -36,6 +36,15 @@ class AtomFormat extends FormatAbstract{
// We prevent content from closing the CDATA too early. // We prevent content from closing the CDATA too early.
$entryContent = is_null($data->content) ? '' : '<![CDATA[' . $this->sanitizeHtml(str_replace(']]>','',$data->content)) . ']]>'; $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 $entries .= <<<EOD
<entry> <entry>
@ -48,6 +57,7 @@ class AtomFormat extends FormatAbstract{
<id>{$entryUri}</id> <id>{$entryUri}</id>
<updated>{$entryTimestamp}</updated> <updated>{$entryTimestamp}</updated>
<content type="html">{$entryContent}</content> <content type="html">{$entryContent}</content>
{$entryEnclosures}
</entry> </entry>
EOD; EOD;

View file

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