diff --git a/inc/3rdparty/libraries/feedwriter/FeedItem.php b/inc/3rdparty/libraries/feedwriter/FeedItem.php
index 0eae5e0..3487423 100644
--- a/inc/3rdparty/libraries/feedwriter/FeedItem.php
+++ b/inc/3rdparty/libraries/feedwriter/FeedItem.php
@@ -10,177 +10,188 @@
*/
class FeedItem
{
- private $elements = array(); //Collection of feed elements
- private $version;
-
- /**
- * Constructor
- *
- * @param contant (RSS1/RSS2/ATOM) RSS2 is default.
- */
- function __construct($version = RSS2)
- {
- $this->version = $version;
- }
+ private $elements = array(); //Collection of feed elements
+ private $version;
+
+ /**
+ * Constructor
+ *
+ * @param contant (RSS1/RSS2/ATOM) RSS2 is default.
+ */
+ function __construct($version = RSS2)
+ {
+ $this->version = $version;
+ }
- /**
- * Set element (overwrites existing elements with $elementName)
- *
- * @access public
- * @param srting The tag name of an element
- * @param srting The content of tag
- * @param array Attributes(if any) in 'attrName' => 'attrValue' format
- * @return void
- */
- public function setElement($elementName, $content, $attributes = null)
- {
- if (isset($this->elements[$elementName])) {
- unset($this->elements[$elementName]);
- }
- $this->addElement($elementName, $content, $attributes);
- }
-
- /**
- * Add an element to elements array
- *
- * @access public
- * @param srting The tag name of an element
- * @param srting The content of tag
- * @param array Attributes(if any) in 'attrName' => 'attrValue' format
- * @return void
- */
- public function addElement($elementName, $content, $attributes = null)
- {
- $i = 0;
- if (isset($this->elements[$elementName])) {
- $i = count($this->elements[$elementName]);
- } else {
- $this->elements[$elementName] = array();
- }
- $this->elements[$elementName][$i]['name'] = $elementName;
- $this->elements[$elementName][$i]['content'] = $content;
- $this->elements[$elementName][$i]['attributes'] = $attributes;
- }
-
- /**
- * Set multiple feed elements from an array.
- * Elements which have attributes cannot be added by this method
- *
- * @access public
- * @param array array of elements in 'tagName' => 'tagContent' format.
- * @return void
- */
- public function addElementArray($elementArray)
- {
- if(! is_array($elementArray)) return;
- foreach ($elementArray as $elementName => $content)
- {
- $this->addElement($elementName, $content);
- }
- }
-
- /**
- * Return the collection of elements in this feed item
- *
- * @access public
- * @return array
- */
- public function getElements()
- {
- return $this->elements;
- }
-
- // Wrapper functions ------------------------------------------------------
-
- /**
- * Set the 'dscription' element of feed item
- *
- * @access public
- * @param string The content of 'description' element
- * @return void
- */
- public function setDescription($description)
- {
- $tag = 'description';
- $this->setElement($tag, $description);
- }
-
- /**
- * @desc Set the 'title' element of feed item
- * @access public
- * @param string The content of 'title' element
- * @return void
- */
- public function setTitle($title)
- {
- $this->setElement('title', $title);
- }
-
- /**
- * Set the 'date' element of feed item
- *
- * @access public
- * @param string The content of 'date' element
- * @return void
- */
- public function setDate($date)
- {
- if(! is_numeric($date))
- {
- $date = strtotime($date);
- }
+ /**
+ * Set element (overwrites existing elements with $elementName)
+ *
+ * @access public
+ * @param srting The tag name of an element
+ * @param srting The content of tag
+ * @param array Attributes(if any) in 'attrName' => 'attrValue' format
+ * @return void
+ */
+ public function setElement($elementName, $content, $attributes = null)
+ {
+ if (isset($this->elements[$elementName])) {
+ unset($this->elements[$elementName]);
+ }
+ $this->addElement($elementName, $content, $attributes);
+ }
+
+ /**
+ * Add an element to elements array
+ *
+ * @access public
+ * @param srting The tag name of an element
+ * @param srting The content of tag
+ * @param array Attributes(if any) in 'attrName' => 'attrValue' format
+ * @return void
+ */
+ public function addElement($elementName, $content, $attributes = null)
+ {
+ $i = 0;
+ if (isset($this->elements[$elementName])) {
+ $i = count($this->elements[$elementName]);
+ } else {
+ $this->elements[$elementName] = array();
+ }
+ $this->elements[$elementName][$i]['name'] = $elementName;
+ $this->elements[$elementName][$i]['content'] = $content;
+ $this->elements[$elementName][$i]['attributes'] = $attributes;
+ }
+
+ /**
+ * Set multiple feed elements from an array.
+ * Elements which have attributes cannot be added by this method
+ *
+ * @access public
+ * @param array array of elements in 'tagName' => 'tagContent' format.
+ * @return void
+ */
+ public function addElementArray($elementArray)
+ {
+ if(! is_array($elementArray)) return;
+ foreach ($elementArray as $elementName => $content)
+ {
+ $this->addElement($elementName, $content);
+ }
+ }
+
+ /**
+ * Return the collection of elements in this feed item
+ *
+ * @access public
+ * @return array
+ */
+ public function getElements()
+ {
+ return $this->elements;
+ }
+
+ // Wrapper functions ------------------------------------------------------
+
+ /**
+ * Set the 'dscription' element of feed item
+ *
+ * @access public
+ * @param string The content of 'description' element
+ * @return void
+ */
+ public function setDescription($description)
+ {
+ $this->setElement('description', $description);
+ }
+
+ /**
+ * @desc Set the 'title' element of feed item
+ * @access public
+ * @param string The content of 'title' element
+ * @return void
+ */
+ public function setTitle($title)
+ {
+ $this->setElement('title', $title);
+ }
+
+ /**
+ * Set the 'date' element of feed item
+ *
+ * @access public
+ * @param string The content of 'date' element
+ * @return void
+ */
+ public function setDate($date)
+ {
+ if(! is_numeric($date))
+ {
+ $date = strtotime($date);
+ }
- if($this->version == RSS2)
- {
- $tag = 'pubDate';
- $value = date(DATE_RSS, $date);
- }
- else
- {
- $tag = 'dc:date';
- $value = date("Y-m-d", $date);
- }
-
- $this->setElement($tag, $value);
- }
-
- /**
- * Set the 'link' element of feed item
- *
- * @access public
- * @param string The content of 'link' element
- * @return void
- */
- public function setLink($link)
- {
- if($this->version == RSS2 || $this->version == RSS1)
- {
- $this->setElement('link', $link);
- $this->setElement('guid', $link);
- }
- else
- {
- $this->setElement('link','',array('href'=>$link));
- $this->setElement('id', FeedWriter::uuid($link,'urn:uuid:'));
- }
-
- }
-
- /**
- * Set the 'encloser' element of feed item
- * For RSS 2.0 only
- *
- * @access public
- * @param string The url attribute of encloser tag
- * @param string The length attribute of encloser tag
- * @param string The type attribute of encloser tag
- * @return void
- */
- public function setEncloser($url, $length, $type)
- {
- $attributes = array('url'=>$url, 'length'=>$length, 'type'=>$type);
- $this->setElement('enclosure','',$attributes);
- }
-
+ if($this->version == RSS2)
+ {
+ $tag = 'pubDate';
+ $value = date(DATE_RSS, $date);
+ }
+ else
+ {
+ $tag = 'dc:date';
+ $value = date("Y-m-d", $date);
+ }
+
+ $this->setElement($tag, $value);
+ }
+
+ /**
+ * Set the 'link' element of feed item
+ *
+ * @access public
+ * @param string The content of 'link' element
+ * @return void
+ */
+ public function setLink($link)
+ {
+ if($this->version == RSS2 || $this->version == RSS1)
+ {
+ $this->setElement('link', $link);
+ $this->setElement('guid', $link);
+ }
+ else
+ {
+ $this->setElement('link','',array('href'=>$link));
+ $this->setElement('id', FeedWriter::uuid($link,'urn:uuid:'));
+ }
+
+ }
+
+ /**
+ * Set the 'source' element of feed item
+ *
+ * @access public
+ * @param string The content of 'source' element
+ * @return void
+ */
+ public function setSource($link)
+ {
+ $this->setElement('source', $link);
+ }
+
+ /**
+ * Set the 'encloser' element of feed item
+ * For RSS 2.0 only
+ *
+ * @access public
+ * @param string The url attribute of encloser tag
+ * @param string The length attribute of encloser tag
+ * @param string The type attribute of encloser tag
+ * @return void
+ */
+ public function setEncloser($url, $length, $type)
+ {
+ $attributes = array('url'=>$url, 'length'=>$length, 'type'=>$type);
+ $this->setElement('enclosure','',$attributes);
+ }
+
} // end of class FeedItem
-?>
+?>
\ No newline at end of file
diff --git a/inc/3rdparty/libraries/feedwriter/FeedWriter.php b/inc/3rdparty/libraries/feedwriter/FeedWriter.php
index 5d16e76..df4c8b4 100755
--- a/inc/3rdparty/libraries/feedwriter/FeedWriter.php
+++ b/inc/3rdparty/libraries/feedwriter/FeedWriter.php
@@ -18,424 +18,423 @@ define('JSONP', 3, true);
*/
class FeedWriter
{
- private $self = null; // self URL - http://feed2.w3.org/docs/warning/MissingAtomSelfLink.html
- private $hubs = array(); // PubSubHubbub hubs
- private $channels = array(); // Collection of channel elements
- private $items = array(); // Collection of items as object of FeedItem class.
- private $data = array(); // Store some other version wise data
- private $CDATAEncoding = array(); // The tag names which have to encoded as CDATA
- private $xsl = null; // stylesheet to render RSS (used by Chrome)
- private $json = null; // JSON object
+ private $self = null; // self URL - http://feed2.w3.org/docs/warning/MissingAtomSelfLink.html
+ private $hubs = array(); // PubSubHubbub hubs
+ private $channels = array(); // Collection of channel elements
+ private $items = array(); // Collection of items as object of FeedItem class.
+ private $data = array(); // Store some other version wise data
+ private $CDATAEncoding = array(); // The tag names which have to encoded as CDATA
+ private $xsl = null; // stylesheet to render RSS (used by Chrome)
+ private $json = null; // JSON object
- private $version = null;
+ private $version = null;
- /**
- * Constructor
- *
- * @param constant the version constant (RSS2 or JSON).
- */
- function __construct($version = RSS2)
- {
- $this->version = $version;
+ /**
+ * Constructor
+ *
+ * @param constant the version constant (RSS2 or JSON).
+ */
+ function __construct($version = RSS2)
+ {
+ $this->version = $version;
- // Setting default value for assential channel elements
- $this->channels['title'] = $version . ' Feed';
- $this->channels['link'] = 'http://www.ajaxray.com/blog';
+ // Setting default value for assential channel elements
+ $this->channels['title'] = $version . ' Feed';
+ $this->channels['link'] = 'http://www.ajaxray.com/blog';
- //Tag names to encode in CDATA
- $this->CDATAEncoding = array('description', 'content:encoded', 'content', 'subtitle', 'summary');
- }
+ //Tag names to encode in CDATA
+ $this->CDATAEncoding = array('description', 'content:encoded', 'content', 'subtitle', 'summary');
+ }
- public function setFormat($format) {
- $this->version = $format;
- }
+ public function setFormat($format) {
+ $this->version = $format;
+ }
- // Start # public functions ---------------------------------------------
+ // Start # public functions ---------------------------------------------
- /**
- * Set a channel element
- * @access public
- * @param srting name of the channel tag
- * @param string content of the channel tag
- * @return void
- */
- public function setChannelElement($elementName, $content)
- {
- $this->channels[$elementName] = $content ;
- }
+ /**
+ * Set a channel element
+ * @access public
+ * @param srting name of the channel tag
+ * @param string content of the channel tag
+ * @return void
+ */
+ public function setChannelElement($elementName, $content)
+ {
+ $this->channels[$elementName] = $content ;
+ }
- /**
- * Set multiple channel elements from an array. Array elements
- * should be 'channelName' => 'channelContent' format.
- *
- * @access public
- * @param array array of channels
- * @return void
- */
- public function setChannelElementsFromArray($elementArray)
- {
- if(! is_array($elementArray)) return;
- foreach ($elementArray as $elementName => $content)
- {
- $this->setChannelElement($elementName, $content);
- }
- }
+ /**
+ * Set multiple channel elements from an array. Array elements
+ * should be 'channelName' => 'channelContent' format.
+ *
+ * @access public
+ * @param array array of channels
+ * @return void
+ */
+ public function setChannelElementsFromArray($elementArray)
+ {
+ if(! is_array($elementArray)) return;
+ foreach ($elementArray as $elementName => $content)
+ {
+ $this->setChannelElement($elementName, $content);
+ }
+ }
- /**
- * Genarate the actual RSS/JSON file
- *
- * @access public
- * @return void
- */
- public function genarateFeed()
- {
- if ($this->version == RSS2) {
-// header('Content-type: text/xml; charset=UTF-8');
- // this line prevents Chrome 20 from prompting download
- // used by Google: https://news.google.com/news/feeds?ned=us&topic=b&output=rss
-// header('X-content-type-options: nosniff');
- } elseif ($this->version == JSON) {
-// header('Content-type: application/json; charset=UTF-8');
- $this->json = new stdClass();
- } elseif ($this->version == JSONP) {
-// header('Content-type: application/javascript; charset=UTF-8');
- $this->json = new stdClass();
- }
- $this->printHead();
- $this->printChannels();
- $this->printItems();
- $this->printTale();
- if ($this->version == JSON || $this->version == JSONP) {
- echo json_encode($this->json);
- }
- }
+ /**
+ * Genarate the actual RSS/JSON file
+ *
+ * @access public
+ * @return void
+ */
+ public function genarateFeed()
+ {
+ if ($this->version == RSS2) {
+// header('Content-type: text/xml; charset=UTF-8');
+ // this line prevents Chrome 20 from prompting download
+ // used by Google: https://news.google.com/news/feeds?ned=us&topic=b&output=rss
+// header('X-content-type-options: nosniff');
+ } elseif ($this->version == JSON) {
+// header('Content-type: application/json; charset=UTF-8');
+ $this->json = new stdClass();
+ } elseif ($this->version == JSONP) {
+// header('Content-type: application/javascript; charset=UTF-8');
+ $this->json = new stdClass();
+ }
+ $this->printHead();
+ $this->printChannels();
+ $this->printItems();
+ $this->printTale();
+ if ($this->version == JSON || $this->version == JSONP) {
+ echo json_encode($this->json);
+ }
+ }
- /**
- * Create a new FeedItem.
- *
- * @access public
- * @return object instance of FeedItem class
- */
- public function createNewItem()
- {
- $Item = new FeedItem($this->version);
- return $Item;
- }
+ /**
+ * Create a new FeedItem.
+ *
+ * @access public
+ * @return object instance of FeedItem class
+ */
+ public function createNewItem()
+ {
+ $Item = new FeedItem($this->version);
+ return $Item;
+ }
- /**
- * Add a FeedItem to the main class
- *
- * @access public
- * @param object instance of FeedItem class
- * @return void
- */
- public function addItem($feedItem)
- {
- $this->items[] = $feedItem;
- }
+ /**
+ * Add a FeedItem to the main class
+ *
+ * @access public
+ * @param object instance of FeedItem class
+ * @return void
+ */
+ public function addItem($feedItem)
+ {
+ $this->items[] = $feedItem;
+ }
- // Wrapper functions -------------------------------------------------------------------
+ // Wrapper functions -------------------------------------------------------------------
- /**
- * Set the 'title' channel element
- *
- * @access public
- * @param srting value of 'title' channel tag
- * @return void
- */
- public function setTitle($title)
- {
- $this->setChannelElement('title', $title);
- }
+ /**
+ * Set the 'title' channel element
+ *
+ * @access public
+ * @param srting value of 'title' channel tag
+ * @return void
+ */
+ public function setTitle($title)
+ {
+ $this->setChannelElement('title', $title);
+ }
- /**
- * Add a hub to the channel element
- *
- * @access public
- * @param string URL
- * @return void
- */
- public function addHub($hub)
- {
- $this->hubs[] = $hub;
- }
+ /**
+ * Add a hub to the channel element
+ *
+ * @access public
+ * @param string URL
+ * @return void
+ */
+ public function addHub($hub)
+ {
+ $this->hubs[] = $hub;
+ }
- /**
- * Set XSL URL
- *
- * @access public
- * @param string URL
- * @return void
- */
- public function setXsl($xsl)
- {
- $this->xsl = $xsl;
- }
+ /**
+ * Set XSL URL
+ *
+ * @access public
+ * @param string URL
+ * @return void
+ */
+ public function setXsl($xsl)
+ {
+ $this->xsl = $xsl;
+ }
- /**
- * Set self URL
- *
- * @access public
- * @param string URL
- * @return void
- */
- public function setSelf($self)
- {
- $this->self = $self;
- }
+ /**
+ * Set self URL
+ *
+ * @access public
+ * @param string URL
+ * @return void
+ */
+ public function setSelf($self)
+ {
+ $this->self = $self;
+ }
- /**
- * Set the 'description' channel element
- *
- * @access public
- * @param srting value of 'description' channel tag
- * @return void
- */
- public function setDescription($desciption)
- {
- $tag = ($this->version == ATOM)? 'subtitle' : 'description';
- $this->setChannelElement($tag, $desciption);
- }
+ /**
+ * Set the 'description' channel element
+ *
+ * @access public
+ * @param srting value of 'description' channel tag
+ * @return void
+ */
+ public function setDescription($description)
+ {
+ $this->setChannelElement('description', $description);
+ }
- /**
- * Set the 'link' channel element
- *
- * @access public
- * @param srting value of 'link' channel tag
- * @return void
- */
- public function setLink($link)
- {
- $this->setChannelElement('link', $link);
- }
+ /**
+ * Set the 'link' channel element
+ *
+ * @access public
+ * @param srting value of 'link' channel tag
+ * @return void
+ */
+ public function setLink($link)
+ {
+ $this->setChannelElement('link', $link);
+ }
- /**
- * Set the 'image' channel element
- *
- * @access public
- * @param srting title of image
- * @param srting link url of the imahe
- * @param srting path url of the image
- * @return void
- */
- public function setImage($title, $link, $url)
- {
- $this->setChannelElement('image', array('title'=>$title, 'link'=>$link, 'url'=>$url));
- }
+ /**
+ * Set the 'image' channel element
+ *
+ * @access public
+ * @param srting title of image
+ * @param srting link url of the imahe
+ * @param srting path url of the image
+ * @return void
+ */
+ public function setImage($title, $link, $url)
+ {
+ $this->setChannelElement('image', array('title'=>$title, 'link'=>$link, 'url'=>$url));
+ }
- // End # public functions ----------------------------------------------
+ // End # public functions ----------------------------------------------
- // Start # private functions ----------------------------------------------
+ // Start # private functions ----------------------------------------------
- /**
- * Prints the xml and rss namespace
- *
- * @access private
- * @return void
- */
- private function printHead()
- {
- if ($this->version == RSS2)
- {
- $out = ''."\n";
- if ($this->xsl) $out .= 'xsl).'"?>' . PHP_EOL;
- $out .= '' . PHP_EOL;
- echo $out;
- }
- elseif ($this->version == JSON || $this->version == JSONP)
- {
- $this->json->rss = array('@attributes' => array('version' => '2.0'));
- }
- }
+ /**
+ * Prints the xml and rss namespace
+ *
+ * @access private
+ * @return void
+ */
+ private function printHead()
+ {
+ if ($this->version == RSS2)
+ {
+ $out = ''."\n";
+ if ($this->xsl) $out .= 'xsl).'"?>' . PHP_EOL;
+ $out .= '' . PHP_EOL;
+ echo $out;
+ }
+ elseif ($this->version == JSON || $this->version == JSONP)
+ {
+ $this->json->rss = array('@attributes' => array('version' => '2.0'));
+ }
+ }
- /**
- * Closes the open tags at the end of file
- *
- * @access private
- * @return void
- */
- private function printTale()
- {
- if ($this->version == RSS2)
- {
- echo '',PHP_EOL,'';
- }
- // do nothing for JSON
- }
+ /**
+ * Closes the open tags at the end of file
+ *
+ * @access private
+ * @return void
+ */
+ private function printTale()
+ {
+ if ($this->version == RSS2)
+ {
+ echo '',PHP_EOL,'';
+ }
+ // do nothing for JSON
+ }
- /**
- * Creates a single node as xml format
- *
- * @access private
- * @param string name of the tag
- * @param mixed tag value as string or array of nested tags in 'tagName' => 'tagValue' format
- * @param array Attributes(if any) in 'attrName' => 'attrValue' format
- * @return string formatted xml tag
- */
- private function makeNode($tagName, $tagContent, $attributes = null)
- {
- if ($this->version == RSS2)
- {
- $nodeText = '';
- $attrText = '';
- if (is_array($attributes))
- {
- foreach ($attributes as $key => $value)
- {
- $attrText .= " $key=\"$value\" ";
- }
- }
- $nodeText .= "<{$tagName}{$attrText}>";
- if (is_array($tagContent))
- {
- foreach ($tagContent as $key => $value)
- {
- $nodeText .= $this->makeNode($key, $value);
- }
- }
- else
- {
- //$nodeText .= (in_array($tagName, $this->CDATAEncoding))? $tagContent : htmlentities($tagContent);
- $nodeText .= htmlspecialchars($tagContent);
- }
- //$nodeText .= (in_array($tagName, $this->CDATAEncoding))? "]]>$tagName>" : "$tagName>";
- $nodeText .= "$tagName>";
- return $nodeText . PHP_EOL;
- }
- elseif ($this->version == JSON || $this->version == JSONP)
- {
- $tagName = (string)$tagName;
- $tagName = strtr($tagName, ':', '_');
- $node = null;
- if (!$tagContent && is_array($attributes) && count($attributes))
- {
- $node = array('@attributes' => $this->json_keys($attributes));
- } else {
- if (is_array($tagContent)) {
- $node = $this->json_keys($tagContent);
- } else {
- $node = $tagContent;
- }
- }
- return $node;
- }
- return ''; // should not get here
- }
+ /**
+ * Creates a single node as xml format
+ *
+ * @access private
+ * @param string name of the tag
+ * @param mixed tag value as string or array of nested tags in 'tagName' => 'tagValue' format
+ * @param array Attributes(if any) in 'attrName' => 'attrValue' format
+ * @return string formatted xml tag
+ */
+ private function makeNode($tagName, $tagContent, $attributes = null)
+ {
+ if ($this->version == RSS2)
+ {
+ $nodeText = '';
+ $attrText = '';
+ if (is_array($attributes))
+ {
+ foreach ($attributes as $key => $value)
+ {
+ $attrText .= " $key=\"$value\" ";
+ }
+ }
+ $nodeText .= "<{$tagName}{$attrText}>";
+ if (is_array($tagContent))
+ {
+ foreach ($tagContent as $key => $value)
+ {
+ $nodeText .= $this->makeNode($key, $value);
+ }
+ }
+ else
+ {
+ //$nodeText .= (in_array($tagName, $this->CDATAEncoding))? $tagContent : htmlentities($tagContent);
+ $nodeText .= htmlspecialchars($tagContent);
+ }
+ //$nodeText .= (in_array($tagName, $this->CDATAEncoding))? "]]>$tagName>" : "$tagName>";
+ $nodeText .= "$tagName>";
+ return $nodeText . PHP_EOL;
+ }
+ elseif ($this->version == JSON || $this->version == JSONP)
+ {
+ $tagName = (string)$tagName;
+ $tagName = strtr($tagName, ':', '_');
+ $node = null;
+ if (!$tagContent && is_array($attributes) && count($attributes))
+ {
+ $node = array('@attributes' => $this->json_keys($attributes));
+ } else {
+ if (is_array($tagContent)) {
+ $node = $this->json_keys($tagContent);
+ } else {
+ $node = $tagContent;
+ }
+ }
+ return $node;
+ }
+ return ''; // should not get here
+ }
- private function json_keys(array $array) {
- $new = array();
- foreach ($array as $key => $val) {
- if (is_string($key)) $key = strtr($key, ':', '_');
- if (is_array($val)) {
- $new[$key] = $this->json_keys($val);
- } else {
- $new[$key] = $val;
- }
- }
- return $new;
- }
+ private function json_keys(array $array) {
+ $new = array();
+ foreach ($array as $key => $val) {
+ if (is_string($key)) $key = strtr($key, ':', '_');
+ if (is_array($val)) {
+ $new[$key] = $this->json_keys($val);
+ } else {
+ $new[$key] = $val;
+ }
+ }
+ return $new;
+ }
- /**
- * @desc Print channels
- * @access private
- * @return void
- */
- private function printChannels()
- {
- //Start channel tag
- if ($this->version == RSS2) {
- echo '' . PHP_EOL;
- // add hubs
- foreach ($this->hubs as $hub) {
- //echo $this->makeNode('link', '', array('rel'=>'hub', 'href'=>$hub, 'xmlns'=>'http://www.w3.org/2005/Atom'));
- echo '' . PHP_EOL;
- }
- // add self
- if (isset($this->self)) {
- //echo $this->makeNode('link', '', array('rel'=>'self', 'href'=>$this->self, 'xmlns'=>'http://www.w3.org/2005/Atom'));
- echo '' . PHP_EOL;
- }
- //Print Items of channel
- foreach ($this->channels as $key => $value)
- {
- echo $this->makeNode($key, $value);
- }
- } elseif ($this->version == JSON || $this->version == JSONP) {
- $this->json->rss['channel'] = (object)$this->json_keys($this->channels);
- }
- }
+ /**
+ * @desc Print channels
+ * @access private
+ * @return void
+ */
+ private function printChannels()
+ {
+ //Start channel tag
+ if ($this->version == RSS2) {
+ echo '' . PHP_EOL;
+ // add hubs
+ foreach ($this->hubs as $hub) {
+ //echo $this->makeNode('link', '', array('rel'=>'hub', 'href'=>$hub, 'xmlns'=>'http://www.w3.org/2005/Atom'));
+ echo '' . PHP_EOL;
+ }
+ // add self
+ if (isset($this->self)) {
+ //echo $this->makeNode('link', '', array('rel'=>'self', 'href'=>$this->self, 'xmlns'=>'http://www.w3.org/2005/Atom'));
+ echo '' . PHP_EOL;
+ }
+ //Print Items of channel
+ foreach ($this->channels as $key => $value)
+ {
+ echo $this->makeNode($key, $value);
+ }
+ } elseif ($this->version == JSON || $this->version == JSONP) {
+ $this->json->rss['channel'] = (object)$this->json_keys($this->channels);
+ }
+ }
- /**
- * Prints formatted feed items
- *
- * @access private
- * @return void
- */
- private function printItems()
- {
- foreach ($this->items as $item) {
- $itemElements = $item->getElements();
+ /**
+ * Prints formatted feed items
+ *
+ * @access private
+ * @return void
+ */
+ private function printItems()
+ {
+ foreach ($this->items as $item) {
+ $itemElements = $item->getElements();
- echo $this->startItem();
+ echo $this->startItem();
- if ($this->version == JSON || $this->version == JSONP) {
- $json_item = array();
- }
+ if ($this->version == JSON || $this->version == JSONP) {
+ $json_item = array();
+ }
- foreach ($itemElements as $thisElement) {
- foreach ($thisElement as $instance) {
- if ($this->version == RSS2) {
- echo $this->makeNode($instance['name'], $instance['content'], $instance['attributes']);
- } elseif ($this->version == JSON || $this->version == JSONP) {
- $_json_node = $this->makeNode($instance['name'], $instance['content'], $instance['attributes']);
- if (count($thisElement) > 1) {
- $json_item[strtr($instance['name'], ':', '_')][] = $_json_node;
- } else {
- $json_item[strtr($instance['name'], ':', '_')] = $_json_node;
- }
- }
- }
- }
- echo $this->endItem();
- if ($this->version == JSON || $this->version == JSONP) {
- if (count($this->items) > 1) {
- $this->json->rss['channel']->item[] = $json_item;
- } else {
- $this->json->rss['channel']->item = $json_item;
- }
- }
- }
- }
+ foreach ($itemElements as $thisElement) {
+ foreach ($thisElement as $instance) {
+ if ($this->version == RSS2) {
+ echo $this->makeNode($instance['name'], $instance['content'], $instance['attributes']);
+ } elseif ($this->version == JSON || $this->version == JSONP) {
+ $_json_node = $this->makeNode($instance['name'], $instance['content'], $instance['attributes']);
+ if (count($thisElement) > 1) {
+ $json_item[strtr($instance['name'], ':', '_')][] = $_json_node;
+ } else {
+ $json_item[strtr($instance['name'], ':', '_')] = $_json_node;
+ }
+ }
+ }
+ }
+ echo $this->endItem();
+ if ($this->version == JSON || $this->version == JSONP) {
+ if (count($this->items) > 1) {
+ $this->json->rss['channel']->item[] = $json_item;
+ } else {
+ $this->json->rss['channel']->item = $json_item;
+ }
+ }
+ }
+ }
- /**
- * Make the starting tag of channels
- *
- * @access private
- * @return void
- */
- private function startItem()
- {
- if ($this->version == RSS2)
- {
- echo '- ' . PHP_EOL;
- }
- // nothing for JSON
- }
+ /**
+ * Make the starting tag of channels
+ *
+ * @access private
+ * @return void
+ */
+ private function startItem()
+ {
+ if ($this->version == RSS2)
+ {
+ echo '
- ' . PHP_EOL;
+ }
+ // nothing for JSON
+ }
- /**
- * Closes feed item tag
- *
- * @access private
- * @return void
- */
- private function endItem()
- {
- if ($this->version == RSS2)
- {
- echo '
' . PHP_EOL;
- }
- // nothing for JSON
- }
+ /**
+ * Closes feed item tag
+ *
+ * @access private
+ * @return void
+ */
+ private function endItem()
+ {
+ if ($this->version == RSS2)
+ {
+ echo ' ' . PHP_EOL;
+ }
+ // nothing for JSON
+ }
- // End # private functions ----------------------------------------------
+ // End # private functions ----------------------------------------------
}
\ No newline at end of file
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index 90fbcb2..613377c 100755
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -846,13 +846,13 @@ class Poche
foreach ($html->find($list) as $ul) {
foreach ($ul->find('li') as $li) {
$tmpEntry = array();
- $a = $li->find('a');
- $tmpEntry['url'] = $a[0]->href;
- $tmpEntry['tags'] = $a[0]->tags;
- $tmpEntry['is_read'] = $read;
- if ($tmpEntry['url']) {
- $data[] = $tmpEntry;
- }
+ $a = $li->find('a');
+ $tmpEntry['url'] = $a[0]->href;
+ $tmpEntry['tags'] = $a[0]->tags;
+ $tmpEntry['is_read'] = $read;
+ if ($tmpEntry['url']) {
+ $data[] = $tmpEntry;
+ }
}
# the second is for read links
$read = ((sizeof($data) && $read)?0:1);
@@ -943,16 +943,15 @@ class Poche
* export poche entries in json
* @return json all poche entries
*/
- public function export()
- {
- $filename = "wallabag-export-".$this->user->getId()."-".date("Y-m-d").".json";
- header('Content-Disposition: attachment; filename='.$filename);
+ public function export() {
+ $filename = "wallabag-export-".$this->user->getId()."-".date("Y-m-d").".json";
+ header('Content-Disposition: attachment; filename='.$filename);
- $entries = $this->store->retrieveAll($this->user->getId());
- echo $this->tpl->render('export.twig', array(
- 'export' => Tools::renderJson($entries),
- ));
- Tools::logm('export view');
+ $entries = $this->store->retrieveAll($this->user->getId());
+ echo $this->tpl->render('export.twig', array(
+ 'export' => Tools::renderJson($entries),
+ ));
+ Tools::logm('export view');
}
/**
@@ -960,43 +959,42 @@ class Poche
* @param string $which 'prod' or 'dev'
* @return string latest $which version
*/
- private function getPocheVersion($which = 'prod')
- {
- $cache_file = CACHE . '/' . $which;
- $check_time = time();
+ private function getPocheVersion($which = 'prod') {
+ $cache_file = CACHE . '/' . $which;
+ $check_time = time();
- # checks if the cached version file exists
- if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 86400 ))) {
- $version = file_get_contents($cache_file);
- $check_time = filemtime($cache_file);
- } else {
- $version = file_get_contents('http://static.wallabag.org/versions/' . $which);
- file_put_contents($cache_file, $version, LOCK_EX);
- }
- return array($version, $check_time);
+ # checks if the cached version file exists
+ if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 86400 ))) {
+ $version = file_get_contents($cache_file);
+ $check_time = filemtime($cache_file);
+ } else {
+ $version = file_get_contents('http://static.wallabag.org/versions/' . $which);
+ file_put_contents($cache_file, $version, LOCK_EX);
+ }
+ return array($version, $check_time);
}
public function generateToken()
{
- if (ini_get('open_basedir') === '') {
- if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
- echo 'This is a server using Windows!';
- // alternative to /dev/urandom for Windows
- $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
- } else {
- $token = substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15);
+ if (ini_get('open_basedir') === '') {
+ if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+ echo 'This is a server using Windows!';
+ // alternative to /dev/urandom for Windows
+ $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
+ } else {
+ $token = substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15);
+ }
+ }
+ else {
+ $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
}
- }
- else {
- $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
- }
- $token = str_replace('+', '', $token);
- $this->store->updateUserConfig($this->user->getId(), 'token', $token);
- $currentConfig = $_SESSION['poche_user']->config;
- $currentConfig['token'] = $token;
- $_SESSION['poche_user']->setConfig($currentConfig);
- Tools::redirect();
+ $token = str_replace('+', '', $token);
+ $this->store->updateUserConfig($this->user->getId(), 'token', $token);
+ $currentConfig = $_SESSION['poche_user']->config;
+ $currentConfig['token'] = $token;
+ $_SESSION['poche_user']->setConfig($currentConfig);
+ Tools::redirect();
}
public function generateFeeds($token, $user_id, $tag_id, $type = 'home')
@@ -1032,6 +1030,7 @@ class Poche
foreach ($entries as $entry) {
$newItem = $feed->createNewItem();
$newItem->setTitle($entry['title']);
+ $newItem->setSource(Tools::getPocheUrl() . '?view=view&id=' . $entry['id']);
$newItem->setLink($entry['url']);
$newItem->setDate(time());
$newItem->setDescription($entry['content']);
diff --git a/inc/poche/Tools.class.php b/inc/poche/Tools.class.php
index a130e94..7f06402 100755
--- a/inc/poche/Tools.class.php
+++ b/inc/poche/Tools.class.php
@@ -59,8 +59,10 @@ class Tools
return $scriptname;
}
+ $host = (isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']));
+
return 'http' . ($https ? 's' : '') . '://'
- . $_SERVER["HTTP_HOST"] . $serverport . $scriptname;
+ . $host . $serverport . $scriptname;
}
public static function redirect($url = '')
diff --git a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo
old mode 100644
new mode 100755
index 600b328..7bcde86
Binary files a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo and b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo differ
diff --git a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po
old mode 100644
new mode 100755
index 5053e9e..bd8dd9b
--- a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po
+++ b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po
@@ -1,26 +1,25 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: wallabag 1.6.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-02-25 18:33+0300\n"
"PO-Revision-Date: \n"
-"Last-Translator: Maryana \n"
+"Last-Translator: Gilles WITTEZAELE \n"
"Language-Team: \n"
-"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: Poedit 1.5.7\n"
-"X-Poedit-SearchPath-0: /home/mariroz/_DEV/web/wallabag/wallabag-master-testing\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 1.6.4\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: fr_FR\n"
msgid "wallabag, a read it later open source system"
msgstr "wallabag, un système open source de lecture différé"
msgid "login failed: user doesn't exist"
-msgstr "identification échouée : l'utilisateur n'existe pas"
+msgstr "échec de l'identification : cet utilisateur n'existe pas"
msgid "return home"
msgstr "retour à l'accueil"
@@ -32,13 +31,13 @@ msgid "Saving articles"
msgstr "Sauvegarde des articles"
msgid "There are several ways to save an article:"
-msgstr "Il y a plusieurs façons de sauver un article :"
+msgstr "Il y a plusieurs façons d'enregistrer un article :"
msgid "read the documentation"
msgstr "lisez la documentation"
msgid "download the extension"
-msgstr "télécharger l'extension"
+msgstr "téléchargez l'extension"
msgid "via F-Droid"
msgstr "via F-Droid"
@@ -50,7 +49,7 @@ msgid "via Google Play"
msgstr "via Google PlayStore"
msgid "download the application"
-msgstr "télécharger l'application"
+msgstr "téléchargez l'application"
msgid "By filling this field"
msgstr "En remplissant ce champ"
@@ -85,8 +84,13 @@ msgstr "Une version de développement plus récente est disponible."
msgid "Feeds"
msgstr "Flux"
-msgid "Your feed token is currently empty and must first be generated to enable feeds. Click here to generate it."
-msgstr "Votre jeton de flux est actuellement vide doit d'abord être généré pour activer les flux. Cliquez ici pour le générer."
+msgid ""
+"Your feed token is currently empty and must first be generated to enable "
+"feeds. Click here to generate it."
+msgstr ""
+"Votre jeton de flux est actuellement vide et doit d'abord être généré pour "
+"activer les flux. Cliquez ici pour "
+"le générer."
msgid "Unread feed"
msgstr "Flux des non lus"
@@ -103,8 +107,12 @@ msgstr "Votre jeton :"
msgid "Your user id:"
msgstr "Votre ID utilisateur :"
-msgid "You can regenerate your token: generate!."
-msgstr "Vous pouvez regénérer votre jeton : génération !."
+msgid ""
+"You can regenerate your token: generate!"
+"."
+msgstr ""
+"Vous pouvez regénérer votre jeton : génération !."
msgid "Change your theme"
msgstr "Changer votre thème"
@@ -136,8 +144,11 @@ msgstr "Répétez votre nouveau mot de passe :"
msgid "Import"
msgstr "Importer"
-msgid "Please execute the import script locally as it can take a very long time."
-msgstr "Merci d'exécuter l'import en local car cela peut prendre du temps."
+msgid ""
+"Please execute the import script locally as it can take a very long time."
+msgstr ""
+"Merci d'exécuter le script d'importation en local car cela peut prendre du "
+"temps."
msgid "More info in the official documentation:"
msgstr "Plus d'infos dans la documentation officielle :"
@@ -150,13 +161,13 @@ msgid "(you must have a %s file on your server)"
msgstr "(le fichier %s doit être présent sur le serveur)"
msgid "Import from Readability"
-msgstr "Import depuis Readability"
+msgstr "Importer depuis Readability"
msgid "Import from Instapaper"
-msgstr "Import depuis Instapaper"
+msgstr "Importer depuis Instapaper"
msgid "Import from wallabag"
-msgstr "Import depuis wallabag"
+msgstr "Importer depuis wallabag"
msgid "Export your wallabag data"
msgstr "Exporter vos données de wallabag"
@@ -185,8 +196,12 @@ msgstr "retourner à l'article"
msgid "plop"
msgstr "plop"
-msgid "You can check your configuration here."
-msgstr "Vous pouvez vérifier votre configuration ici."
+msgid ""
+"You can check your configuration "
+"here."
+msgstr ""
+"Vous pouvez vérifier votre configuration ici."
msgid "favoris"
msgstr "favoris"
@@ -248,8 +263,14 @@ msgstr "installation"
msgid "install your wallabag"
msgstr "installez votre wallabag"
-msgid "wallabag is still not installed. Please fill the below form to install it. Don't hesitate to read the documentation on wallabag website."
-msgstr "wallabag n'est pas encore installé. Merci de remplir le formulaire suivant pour l'installer. N'hésitez pas à lire la documentation sur le site de wallabag."
+msgid ""
+"wallabag is still not installed. Please fill the below form to install it. "
+"Don't hesitate to read the documentation "
+"on wallabag website."
+msgstr ""
+"wallabag n'est pas encore installé. Merci de remplir le formulaire suivant "
+"pour l'installer. N'hésitez pas à lire la "
+"documentation sur le site de wallabag."
msgid "Login"
msgstr "Nom d'utilisateur"
@@ -267,7 +288,8 @@ msgid "Login to wallabag"
msgstr "Se connecter à wallabag"
msgid "you are in demo mode, some features may be disabled."
-msgstr "vous êtes en mode démo, certaines fonctionnalités peuvent être désactivées."
+msgstr ""
+"vous êtes en mode démo, certaines fonctionnalités peuvent être désactivées."
msgid "Username"
msgstr "Nom d'utilisateur"
@@ -318,10 +340,10 @@ msgid "tags:"
msgstr "tags :"
msgid "Edit tags"
-msgstr "Editer les tags"
+msgstr "Modifier les tags"
msgid "save link!"
-msgstr "sauver le lien !"
+msgstr "enregistrer le lien !"
msgid "powered by"
msgstr "propulsé par"
@@ -360,7 +382,7 @@ msgid "tweet"
msgstr "tweet"
msgid "email"
-msgstr "ee-mail"
+msgstr "e-mail"
msgid "this article appears wrong?"
msgstr "cet article s'affiche mal ?"
@@ -369,7 +391,7 @@ msgid "No link available here!"
msgstr "Aucun lien n'est disponible ici !"
msgid "Poching a link"
-msgstr "Sauver un lien"
+msgstr "Enregistrer un lien"
msgid "by filling this field"
msgstr "en remplissant ce champ"
@@ -396,19 +418,21 @@ msgid "a more recent development version is available."
msgstr "une version de développement plus récente est disponible."
msgid "Please execute the import script locally, it can take a very long time."
-msgstr "Merci d'exécuter l'import en local car cela peut prendre du temps."
+msgstr ""
+"Merci d'exécuter le script d'importation en local car cela peut prendre du "
+"temps."
msgid "More infos in the official doc:"
msgstr "Plus d'infos dans la documentation officielle :"
msgid "import from Pocket"
-msgstr "import depuis Pocket"
+msgstr "importation depuis Pocket"
msgid "import from Readability"
-msgstr "import depuis Readability"
+msgstr "importation depuis Readability"
msgid "import from Instapaper"
-msgstr "import depuis Instapaper"
+msgstr "importation depuis Instapaper"
msgid "estimated reading time :"
msgstr "temps de lecture estimé :"
@@ -449,8 +473,12 @@ msgstr "en mode démo, vous ne pouvez pas mettre à jour le mot de passe"
msgid "your password has been updated"
msgstr "votre mot de passe a été mis à jour"
-msgid "the two fields have to be filled & the password must be the same in the two fields"
-msgstr "les deux champs doivent être remplis & le mot de passe doit être le même dans les deux"
+msgid ""
+"the two fields have to be filled & the password must be the same in the two "
+"fields"
+msgstr ""
+"les deux champs doivent être remplis & le mot de passe doit être le même "
+"dans les deux"
msgid "still using the \""
msgstr "utilise encore \""
@@ -459,7 +487,7 @@ msgid "that theme does not seem to be installed"
msgstr "ce thème ne semble pas installé"
msgid "you have changed your theme preferences"
-msgstr "vous avez changez vos préférences de thème"
+msgstr "vous avez changé vos préférences de thème"
msgid "that language does not seem to be installed"
msgstr "cette langue ne semble pas être installée"
@@ -468,28 +496,28 @@ msgid "you have changed your language preferences"
msgstr "vous avez changé vos préférences de langue"
msgid "login failed: you have to fill all fields"
-msgstr "identification échouée : vous devez remplir tous les champs"
+msgstr "échec de l'identification : vous devez remplir tous les champs"
msgid "welcome to your wallabag"
msgstr "bienvenue dans votre wallabag"
msgid "login failed: bad login or password"
-msgstr "identification échouée : mauvais identifiant ou mot de passe"
+msgstr "échec de l'identification : mauvais identifiant ou mot de passe"
msgid "import from instapaper completed"
-msgstr "Import depuis Instapaper complété"
+msgstr "Importation depuis Instapaper complété"
msgid "import from pocket completed"
-msgstr "Import depuis Pocket complété"
+msgstr "Importation depuis Pocket complété"
msgid "import from Readability completed. "
-msgstr "Import depuis Readability complété"
+msgstr "Importation depuis Readability complété"
msgid "import from Poche completed. "
-msgstr "Import depuis Pocket complété"
+msgstr "Importation depuis Pocket complété"
msgid "Unknown import provider."
-msgstr "Fournisseur d'import inconnu."
+msgstr "Format d'importation inconnu."
msgid "Incomplete inc/poche/define.inc.php file, please define \""
msgstr "Fichier inc/poche/define.inc.php incomplet, merci de définir \""
@@ -498,7 +526,7 @@ msgid "Could not find required \""
msgstr "Ne peut pas trouver \""
msgid "Uh, there is a problem while generating feeds."
-msgstr "Ih, il y a un problème lors de la génération des flux."
+msgstr "Hum, il y a un problème lors de la génération des flux."
msgid "Cache deleted."
msgstr "Cache effacé."