Public Member Functions

ilUserFeedWriter Class Reference
[Services/Feeds]

Feed writer for personal user feeds. More...

Inheritance diagram for ilUserFeedWriter:
Collaboration diagram for ilUserFeedWriter:

Public Member Functions

 ilUserFeedWriter ($a_user_id, $a_hash)

Detailed Description

Feed writer for personal user feeds.

Author:
Alex Killing <alex.killing@gmx.de>
Version:
$Id$

Definition at line 38 of file class.ilUserFeedWriter.php.


Member Function Documentation

ilUserFeedWriter::ilUserFeedWriter ( a_user_id,
a_hash 
)

Definition at line 41 of file class.ilUserFeedWriter.php.

References $ilSetting, ilFeedWriter::$items, $lng, $title, ilNewsItem::_getNewsItemsOfUser(), ilObjUser::_lookupFeedHash(), ilObject::_lookupObjId(), ilObjMediaCastAccess::_lookupOnline(), ilNewsItem::_lookupRSSPeriod(), ilObject::_lookupTitle(), ilObject::_lookupType(), ilFeedWriter::addItem(), ilNewsItem::determineNewsTitle(), ilFeedWriter::ilFeedWriter(), ilFeedWriter::prepareStr(), ilFeedWriter::setChannelAbout(), ilFeedWriter::setChannelLink(), and ilFeedWriter::setChannelTitle().

        {
                global $ilSetting, $lng;
                
                parent::ilFeedWriter();
                
                //$lng->loadLanguageModule("news");
                
                if ($a_user_id == "" || $a_hash == "")
                {
                        return;
                }
                
                $news_set = new ilSetting("news");
                if (!$news_set->get("enable_rss_for_internal"))
                {
                        return;
                }

                $hash = ilObjUser::_lookupFeedHash($a_user_id);
                
                include_once("./Services/News/classes/class.ilNewsItem.php");
                $rss_period = ilNewsItem::_lookupRSSPeriod();

                if ($a_hash == $hash)
                {
                        $items = ilNewsItem::_getNewsItemsOfUser($a_user_id, true, true, $rss_period);
                        if ($ilSetting->get('short_inst_name') != "")
                        {
                                $this->setChannelTitle($ilSetting->get('short_inst_name'));
                        }
                        else
                        {
                                $this->setChannelTitle("ILIAS");
                        }

                        $this->setChannelAbout(ILIAS_HTTP_PATH);
                        $this->setChannelLink(ILIAS_HTTP_PATH);
                        //$this->setChannelDescription("ILIAS Channel Description");
                        $i = 0;
                        foreach($items as $item)
                        {
                                $obj_id = ilObject::_lookupObjId($item["ref_id"]);
                                $obj_type = ilObject::_lookupType($obj_id);
                                $obj_title = ilObject::_lookupTitle($obj_id);

                                // not nice, to do: general solution
                                if ($obj_type == "mcst")
                                {
                                        include_once("./Modules/MediaCast/classes/class.ilObjMediaCastAccess.php");
                                        if (!ilObjMediaCastAccess::_lookupOnline($obj_id))
                                        {
                                                continue;
                                        }
                                }

                                $i++;
                                $feed_item = new ilFeedItem();
                                $title = ilNewsItem::determineNewsTitle
                                        ($item["context_obj_type"], $item["title"], $item["content_is_lang_var"],
                                        $item["agg_ref_id"], $item["aggregation"]);

                                // path
                                $cont_loc = new ilLocatorGUI();
                                $cont_loc->addContextItems($item["ref_id"], true);
                                $cont_loc->setTextOnly(true);
                                $loc = "[".$cont_loc->getHTML()."]";
                                
                                // title
                                $feed_item->setTitle($this->prepareStr($loc)." ".$this->prepareStr($obj_title).": ".$this->prepareStr(str_replace("<br />", " ", $title)));
                                                                
                                // description
                                $content = $this->prepareStr(nl2br($item["content"]));
                                $feed_item->setDescription($content);
                                $feed_item->setLink(ILIAS_HTTP_PATH."/goto.php?client_id=".CLIENT_ID.
                                        "&amp;target=".$item["context_obj_type"]."_".$item["ref_id"]);
                                $feed_item->setAbout($feed_item->getLink()."&amp;il_about_feed=".$item["id"]);
                                $this->addItem($feed_item);
                        }
                }
        }

Here is the call graph for this function:


The documentation for this class was generated from the following file: