ILIAS  Release_4_4_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilUserFeedWriter Class Reference

Feed writer for personal user feeds. More...

+ Inheritance diagram for ilUserFeedWriter:
+ Collaboration diagram for ilUserFeedWriter:

Public Member Functions

 ilUserFeedWriter ($a_user_id, $a_hash, $privFeed=false)
- Public Member Functions inherited from ilFeedWriter
 ilFeedWriter ()
 setEncoding ($a_enc)
 Set feed encoding.
 getEncoding ()
 setChannelAbout ($a_ab)
 Unique URI that defines the channel.
 getChannelAbout ()
 setChannelTitle ($a_title)
 Channel Title.
 getChannelTitle ()
 setChannelLink ($a_link)
 Channel Link URL to which an HTML rendering of the channel title will link.
 getChannelLink ()
 setChannelDescription ($a_desc)
 Channel Description.
 getChannelDescription ()
 addItem ($a_item)
 Add Item Item is an object of type ilFeedItem.
 getItems ()
 prepareStr ($a_str)
 getFeed ()
 get feed xml
 showFeed ()
 getContextPath ($a_ref_id)

Additional Inherited Members

- Data Fields inherited from ilFeedWriter
 $encoding = "UTF-8"
 $ch_about = ""
 $ch_title = ""
 $ch_link = ""
 $ch_description = ""
 $items = array()

Detailed Description

Feed writer for personal user feeds.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

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

Member Function Documentation

ilUserFeedWriter::ilUserFeedWriter (   $a_user_id,
  $a_hash,
  $privFeed = false 
)

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

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

{
global $ilSetting, $lng;
//$lng->loadLanguageModule("news");
if ($a_user_id == "" || $a_hash == "")
{
return;
}
$news_set = new ilSetting("news");
if (!$news_set->get("enable_rss_for_internal"))
{
return;
}
include_once "Services/User/classes/class.ilObjUser.php";
$hash = ilObjUser::_lookupFeedHash($a_user_id);
include_once("./Services/News/classes/class.ilNewsItem.php");
if ($a_hash == $hash)
{
if ($privFeed)
{
//ilNewsItem::setPrivateFeedId($a_user_id);
$items = ilNewsItem::_getNewsItemsOfUser($a_user_id, false, true, $rss_period);
}
else
{
$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");
{
continue;
}
}
$i++;
$feed_item = new ilFeedItem();
($item["context_obj_type"], $item["title"], $item["content_is_lang_var"],
$item["agg_ref_id"], $item["aggregation"]);
// path
$loc = $this->getContextPath($item["ref_id"]);
// title
if ($news_set->get("rss_title_format") == "news_obj")
{
$feed_item->setTitle($this->prepareStr(str_replace("<br />", " ", $title)).
" (".$this->prepareStr($loc)." ".$this->prepareStr($obj_title).
")");
}
else
{
$feed_item->setTitle($this->prepareStr($loc)." ".$this->prepareStr($obj_title).
": ".$this->prepareStr(str_replace("<br />", " ", $title)));
}
// description
$content = $this->prepareStr(nl2br(
ilNewsItem::determineNewsContent($item["context_obj_type"], $item["content"], $item["content_text_is_lang_var"])));
$feed_item->setDescription($content);
// lm page hack, not nice
if (in_array($item["context_obj_type"], array("dbk", "lm")) && $item["context_sub_obj_type"] == "pg"
&& $item["context_sub_obj_id"] > 0)
{
$feed_item->setLink(ILIAS_HTTP_PATH."/goto.php?client_id=".CLIENT_ID.
"&amp;target=pg_".$item["context_sub_obj_id"]."_".$item["ref_id"]);
}
else if ($item["context_obj_type"] == "wiki" && $item["context_sub_obj_type"] == "wpg"
&& $item["context_sub_obj_id"] > 0)
{
include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
$wptitle = ilWikiPage::lookupTitle($item["context_sub_obj_id"]);
$feed_item->setLink(ILIAS_HTTP_PATH."/goto.php?client_id=".CLIENT_ID.
"&amp;target=".$item["context_obj_type"]."_".$item["ref_id"]."_".urlencode($wptitle)); // #14629
}
else if (in_array($item["context_obj_type"], array("frm")) && $item["context_sub_obj_type"] == "pos"
&& $item["context_sub_obj_id"] > 0)
{
// frm hack, not nice
include_once("./Modules/Forum/classes/class.ilObjForumAccess.php");
$thread_id = ilObjForumAccess::_getThreadForPosting($item["context_sub_obj_id"]);
if ($thread_id > 0)
{
$feed_item->setLink(ILIAS_HTTP_PATH."/goto.php?client_id=".CLIENT_ID.
"&amp;target=".$item["context_obj_type"]."_".$item["ref_id"]."_".$thread_id."_".$item["context_sub_obj_id"]);
}
else
{
$feed_item->setLink(ILIAS_HTTP_PATH."/goto.php?client_id=".CLIENT_ID.
"&amp;target=".$item["context_obj_type"]."_".$item["ref_id"]);
}
}
else
{
$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"]);
$feed_item->setDate($item["creation_date"]);
$this->addItem($feed_item);
}
}
}

+ Here is the call graph for this function:


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