Esempio n. 1
0
 /**
  * Set custom name for a specific user category
  *
  * @param RDR_Category $category
  * @param string $name
  */
 public function setCustomName(RDR_Category $category, $name)
 {
     $key = $this->getId() . "-name";
     $category->add("feedsData", $name, $key);
 }
Esempio n. 2
0
 /**
  * Import new feed from url
  *
  * @param mixed $url
  * @param RDR_Category $category
  * @return RDR_Event The last event for that import
  */
 static function addFeed($url, RDR_Category $category)
 {
     $feed = RDR_Feed::get($url);
     if ($feed->getId()) {
         $categories = user()->getCategories();
         $feedExist = false;
         foreach ($categories as $category) {
             if ($category->getByKey("feeds", $feed->getId())) {
                 $feedExist = true;
                 break;
             }
         }
         if (!$feedExist) {
             $category->add("feeds", $feed);
             $category->store();
             return RDR_Event::log(RDR_Event::TYPE_FEED_ADD_OK, array("feed" => $feed));
         }
         return RDR_Event::log(RDR_Event::TYPE_FEED_EXIST, array("text" => $url));
     }
     $xml = self::getSimpleXMLFromUrl($feed->url);
     if (!$xml) {
         return RDR_Event::$lastEvent;
     }
     $title = "";
     $tmp = $xml->xpath("/rss/channel/title");
     if ($tmp) {
         $title = self::xmlValue($tmp);
     }
     if (!$title) {
         $tmp = $xml->title;
         if ($tmp) {
             $title = self::xmlValue($tmp);
         }
     }
     if (!$title) {
         $tmp = $xml->channel && $xml->channel->title ? $xml->channel->title : null;
         if ($tmp) {
             $title = self::xmlValue($tmp);
         }
     }
     if (!$title) {
         return RDR_Event::log(RDR_Event::TYPE_MISSING_PARSER, array("text" => $url . ":title"));
     }
     $feed->name = trim($title);
     $feed->store();
     $category->add("feeds", $feed);
     $category->store();
     return RDR_Event::log(RDR_Event::TYPE_FEED_ADD_OK, array("feed" => $feed));
 }