ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilNewsForContextBlockGUI Class Reference

BlockGUI class for block NewsForContext. More...

+ Inheritance diagram for ilNewsForContextBlockGUI:
+ Collaboration diagram for ilNewsForContextBlockGUI:

Public Member Functions

 ilNewsForContextBlockGUI ()
 Constructor. More...
 
 getNewsData ()
 Get news for context. More...
 
executeCommand ()
 execute command More...
 
 setEnableEdit ($a_enable_edit=0)
 Set EnableEdit. More...
 
 getEnableEdit ()
 Get EnableEdit. More...
 
 fillDataSection ()
 Fill data section. More...
 
 getHTML ()
 Get bloch HTML code. More...
 
 handleView ()
 Handles show/hide notification view and removes notifications if hidden. More...
 
 fillRow ($news)
 get flat bookmark list for personal desktop More...
 
 getOverview ()
 Get overview. More...
 
 showNews ()
 show news More...
 
 makeClickable ($a_str)
 Make clickable. More...
 
 unsubscribeNews ()
 Unsubscribe current user from news. More...
 
 subscribeNews ()
 Subscribe current user from news. More...
 
 fillFooter ()
 block footer More...
 
 showViewFooter ()
 Show additional footer for show/hide notifications. More...
 
 showNotifications ()
 
 hideNotifications ()
 
 editSettings ()
 Show settings screen. More...
 
 initSettingsForm ()
 Init setting form. More...
 
 cancelSettings ()
 Cancel settings. More...
 
 saveSettings ()
 Save settings. More...
 
 showFeedUrl ()
 Show feed URL. More...
 
 addCloseCommand ($a_content_block)
 
 getDynamic ()
 
 getDynamicReload ()
 
 getJSEnabler ()
 
 disableJS ()
 
 enableJS ()
 
- Public Member Functions inherited from ilBlockGUI
 ilBlockGUI ()
 Constructor. More...
 
 addHeaderLink ($a_href, $a_text, $status=true)
 
 getHeaderLinks ()
 
 setData ($a_data)
 Set Data. More...
 
 getData ()
 Get Data. More...
 
 setBigMode ($a_bigmode)
 Set Big Mode. More...
 
 getBigMode ()
 Get Big Mode. More...
 
 setBlockId ($a_block_id=0)
 Set Block Id. More...
 
 getBlockId ()
 Get Block Id. More...
 
 setAvailableDetailLevels ($a_max, $a_min=0)
 Set Available Detail Levels. More...
 
 setCurrentDetailLevel ($a_currentdetaillevel)
 Set Current Detail Level. More...
 
 setGuiObject (&$a_gui_object)
 Set GuiObject. More...
 
 getGuiObject ()
 Get GuiObject. More...
 
 getCurrentDetailLevel ()
 Get Current Detail Level. More...
 
 setTitle ($a_title)
 Set Title. More...
 
 getTitle ()
 Get Title. More...
 
 setImage ($a_image)
 Set Image. More...
 
 getImage ()
 Get Image. More...
 
 setOffset ($a_offset)
 Set Offset. More...
 
 getOffset ()
 Get Offset. More...
 
 correctOffset ()
 
 setLimit ($a_limit)
 Set Limit. More...
 
 getLimit ()
 Get Limit. More...
 
 setEnableEdit ($a_enableedit)
 Set EnableEdit. More...
 
 getEnableEdit ()
 Get EnableEdit. More...
 
 setRepositoryMode ($a_repositorymode)
 Set RepositoryMode. More...
 
 getRepositoryMode ()
 Get RepositoryMode. More...
 
 setFooterInfo ($a_footerinfo, $a_hide_and_icon=false)
 Set Footer Info. More...
 
 getFooterInfo ($a_hide_and_icon=false)
 Get Footer Info. More...
 
 setSubtitle ($a_subtitle)
 Set Subtitle. More...
 
 getSubtitle ()
 Get Subtitle. More...
 
 setRefId ($a_refid)
 Set Ref Id (only used if isRepositoryObject() is true). More...
 
 getRefId ()
 Get Ref Id (only used if isRepositoryObject() is true). More...
 
 setAdminCommands ($a_admincommands)
 Set Administration Commmands. More...
 
 getAdminCommands ()
 Get Administration Commmands. More...
 
 setColSpan ($a_colspan)
 Set Columns Span. More...
 
 getColSpan ()
 Get Columns Span. More...
 
 setEnableDetailRow ($a_enabledetailrow)
 Set EnableDetailRow. More...
 
 getEnableDetailRow ()
 Get EnableDetailRow. More...
 
 setEnableNumInfo ($a_enablenuminfo)
 Set Enable Item Number Info. More...
 
 getEnableNumInfo ()
 Get Enable Item Number Info. More...
 
 setProperties ($a_properties)
 This function is supposed to be used for block type specific properties, that should be inherited through ilColumnGUI->setBlockProperties. More...
 
 getProperty ($a_property)
 
 setProperty ($a_property, $a_value)
 
 setRowTemplate ($a_rowtemplatename, $a_rowtemplatedir="")
 Set Row Template Name. More...
 
 getNavParameter ()
 
 getDetailParameter ()
 
 getConfigParameter ()
 
 getMoveParameter ()
 
 getRowTemplateName ()
 Get Row Template Name. More...
 
 getRowTemplateDir ()
 Get Row Template Directory. More...
 
 addBlockCommand ($a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
 Add Block Command. More...
 
 getBlockCommands ()
 Get Block commands. More...
 
 addHeaderCommand ($a_href, $a_text, $a_as_close=false)
 Add Header Block Command. More...
 
 getHeaderCommands ()
 Get Header Block commands. More...
 
 addFooterLink ($a_text, $a_href="", $a_onclick="", $a_block_id="", $a_top=false, $a_omit_separator=false, $a_checked=false)
 Add a footer text/link. More...
 
 getFooterLinks ()
 Get footer links. More...
 
 clearFooterLinks ()
 Clear footer links. More...
 
 handleDetailLevel ()
 Handle read/write current detail level. More...
 
 getHTML ()
 Handle config status. More...
 
 fillHeaderCommands ()
 Fill header commands block. More...
 
 fillHeaderTitleBlock ()
 Fill header title block (title and. More...
 
 setDataSection ($a_content)
 Call this from overwritten fillDataSection(), if standard row based data is not used. More...
 
 fillDataSection ()
 Standard implementation for row based data. More...
 
 fillRow ($a_set)
 
 fillFooter ()
 
 fillPreviousNext ()
 Fill previous/next row. More...
 
 setPreviousNextLinks ()
 Get previous/next linkbar. More...
 
 fillFooterLinks ($a_top=false, $a_numinfo="")
 Fill footer links. More...
 
 fillDetailRow ()
 Fill Detail Setting Row. More...
 

Static Public Member Functions

static getBlockType ()
 Get block type. More...
 
static isRepositoryObject ()
 Is this a repository object. More...
 
static getScreenMode ()
 Get Screen Mode for current command. More...
 
static getBlockType ()
 
static isRepositoryObject ()
 
static getScreenMode ()
 Get Screen Mode for current command. More...
 

Static Public Attributes

static $block_type = "news"
 
static $st_data
 

Additional Inherited Members

- Protected Member Functions inherited from ilBlockGUI
 fillRowColor ($a_placeholder="CSS_ROW")
 
 preloadData (array $data)
 Can be overwritten in subclasses. More...
 
- Protected Attributes inherited from ilBlockGUI
 $data = array()
 
 $colspan = 1
 
 $enablenuminfo = true
 
 $detail_min = 0
 
 $detail_max = 0
 
 $bigmode = false
 
 $footer_links = array()
 
 $block_id = 0
 
 $header_commands = array()
 
 $allow_moving = true
 
 $move = array("left" => false, "right" => false, "up" => false, "down" => false)
 
 $enabledetailrow = true
 
 $header_links = array()
 
 $footerinfo = false
 
 $footerinfo_icon = false
 
 $block_commands = array()
 
 $max_count = false
 
 $close_command = false
 
 $image = false
 
 $property = false
 
 $nav_value = ""
 
 $css_row = ""
 
 $dropdown
 

Detailed Description

BlockGUI class for block NewsForContext.

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

@ilCtrl_IsCalledBy ilNewsForContextBlockGUI: ilColumnGUI @ilCtrl_Calls ilNewsForContextBlockGUI: ilNewsItemGUI

Definition at line 18 of file class.ilNewsForContextBlockGUI.php.

Member Function Documentation

◆ addCloseCommand()

ilNewsForContextBlockGUI::addCloseCommand (   $a_content_block)

Reimplemented in ilPDNewsBlockGUI.

Definition at line 1211 of file class.ilNewsForContextBlockGUI.php.

1212 {
1213 global $lng, $ilCtrl;
1214
1215 $a_content_block->addHeaderCommand($ilCtrl->getParentReturn($this),
1216 $lng->txt("close"), true);
1217 }
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40

References $ilCtrl, and $lng.

Referenced by showNews().

+ Here is the caller graph for this function:

◆ cancelSettings()

ilNewsForContextBlockGUI::cancelSettings ( )

Cancel settings.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 1116 of file class.ilNewsForContextBlockGUI.php.

1117 {
1118 global $ilCtrl;
1119
1120 $ilCtrl->returnToParent($this);
1121 }

References $ilCtrl.

◆ disableJS()

ilNewsForContextBlockGUI::disableJS ( )

Definition at line 1288 of file class.ilNewsForContextBlockGUI.php.

1289 {
1290 global $ilCtrl, $ilUser;
1291
1292 $_SESSION["il_feed_js"] = "n";
1293 $ilUser->writePref("il_feed_js", "n");
1294$ilCtrl->returnToParent($this);
1295 //$ilCtrl->redirectByClass("ilpersonaldesktopgui", "show");
1296 }
$_SESSION["AccountId"]
global $ilUser
Definition: imgupload.php:15

References $_SESSION, $ilCtrl, and $ilUser.

◆ editSettings()

ilNewsForContextBlockGUI::editSettings ( )

Show settings screen.

Definition at line 987 of file class.ilNewsForContextBlockGUI.php.

988 {
989 $this->initSettingsForm();
990 return $this->settings_form->getHTML();
991 }

References initSettingsForm().

Referenced by ilPDNewsBlockGUI\changeFeedSettings().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enableJS()

ilNewsForContextBlockGUI::enableJS ( )

Definition at line 1298 of file class.ilNewsForContextBlockGUI.php.

1299 {
1300 global $ilUser;
1301//echo "enableJS";
1302 $_SESSION["il_feed_js"] = "y";
1303 $ilUser->writePref("il_feed_js", "y");
1304 echo $this->getHTML();
1305 exit;
1306 }
exit
Definition: login.php:54

References $_SESSION, $ilUser, exit, and getHTML().

+ Here is the call graph for this function:

◆ executeCommand()

& ilNewsForContextBlockGUI::executeCommand ( )

execute command

Reimplemented in ilPDNewsBlockGUI.

Definition at line 178 of file class.ilNewsForContextBlockGUI.php.

179 {
180 global $ilCtrl;
181
182 $next_class = $ilCtrl->getNextClass();
183 $cmd = $ilCtrl->getCmd("getHTML");
184
185 switch ($next_class)
186 {
187 case "ilnewsitemgui":
188 include_once("./Services/News/classes/class.ilNewsItemGUI.php");
189 $news_item_gui = new ilNewsItemGUI();
190 $news_item_gui->setEnableEdit($this->getEnableEdit());
191 $html = $ilCtrl->forwardCommand($news_item_gui);
192 return $html;
193
194 default:
195 return $this->$cmd();
196 }
197 }
User Interface for NewsItem entities.
$html
Definition: example_001.php:87
$cmd
Definition: sahs_server.php:35

References $cmd, $html, $ilCtrl, and getEnableEdit().

+ Here is the call graph for this function:

◆ fillDataSection()

ilNewsForContextBlockGUI::fillDataSection ( )

Fill data section.

Reimplemented from ilBlockGUI.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 222 of file class.ilNewsForContextBlockGUI.php.

223 {
224 if ($this->dynamic)
225 {
226 $this->setDataSection($this->getDynamicReload());
227 }
228 else if ($this->getCurrentDetailLevel() > 1 && count($this->getData()) > 0)
229 {
230 parent::fillDataSection();
231 }
232 else
233 {
234 $this->setDataSection($this->getOverview());
235 }
236 }
getCurrentDetailLevel()
Get Current Detail Level.
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
getData()
Get Data.

References ilBlockGUI\getCurrentDetailLevel(), ilBlockGUI\getData(), getDynamicReload(), getOverview(), and ilBlockGUI\setDataSection().

+ Here is the call graph for this function:

◆ fillFooter()

ilNewsForContextBlockGUI::fillFooter ( )

block footer

Reimplemented from ilBlockGUI.

Definition at line 886 of file class.ilNewsForContextBlockGUI.php.

887 {
888 global $ilCtrl, $lng, $ilUser;
889
890 parent::fillFooter();
891
892 if ($this->show_view_selection)
893 {
894 $this->showViewFooter();
895 }
896 }
showViewFooter()
Show additional footer for show/hide notifications.

References $ilCtrl, $ilUser, $lng, and showViewFooter().

+ Here is the call graph for this function:

◆ fillRow()

ilNewsForContextBlockGUI::fillRow (   $news)

get flat bookmark list for personal desktop

Reimplemented from ilBlockGUI.

Definition at line 391 of file class.ilNewsForContextBlockGUI.php.

392 {
393 global $ilUser, $ilCtrl, $lng;
394
395 if ($this->getCurrentDetailLevel() > 2)
396 {
397 $this->tpl->setCurrentBlock("long");
398 //$this->tpl->setVariable("VAL_CONTENT", $news["content"]);
399 $this->tpl->setVariable("VAL_CREATION_DATE",
400 ilDatePresentation::formatDate(new ilDateTime($news["creation_date"],IL_CAL_DATETIME)));
401 $this->tpl->parseCurrentBlock();
402 }
403
404 // notification
405 if ($news["priority"] == 0)
406 {
407/*
408 $this->tpl->setCurrentBlock("notification");
409 $this->tpl->setVariable("CHAR_NOT", $lng->txt("news_first_letter_of_word_notification"));
410 $this->tpl->parseCurrentBlock();
411*/
412 }
413
414
415 // title image type
416 if ($news["ref_id"] > 0)
417 {
418 if ($news["agg_ref_id"] > 0)
419 {
420 $obj_id = ilObject::_lookupObjId($news["agg_ref_id"]);
421 $type = ilObject::_lookupType($obj_id);
422 $context_ref = $news["agg_ref_id"];
423 }
424 else
425 {
426 $obj_id = $news["context_obj_id"];
427 $type = $news["context_obj_type"];
428 $context_ref = $news["ref_id"];
429 }
430
431 $lang_type = in_array($type, array("sahs", "lm", "dbk", "htlm"))
432 ? "lres"
433 : "obj_".$type;
434
435 $this->tpl->setCurrentBlock("news_context");
436 $this->tpl->setVariable("TYPE", $lng->txt($lang_type));
437 $this->tpl->setVariable("IMG_TYPE",
438 ilObject::_getIcon($obj_id, "tiny", $type));
439 $this->tpl->setVariable("TITLE",
441 if ($news["user_read"] > 0)
442 {
443 $this->tpl->setVariable("TITLE_CLASS", 'class="light"');
444 }
445
446 $this->tpl->parseCurrentBlock();
447 $ilCtrl->setParameter($this, "news_context", $context_ref);
448 }
449 else
450 {
451 $ilCtrl->setParameter($this, "news_context", "");
452 }
453
454 // title
455 $this->tpl->setVariable("VAL_TITLE",
457 ($news["context_obj_type"], $news["title"], $news["content_is_lang_var"],
458 $news["agg_ref_id"], $news["aggregation"])));
459
460
461 if ($news["user_read"] > 0)
462 {
463 $this->tpl->setVariable("A_CLASS", 'class="light"');
464 }
465
466 $ilCtrl->setParameter($this, "news_id", $news["id"]);
467 $this->tpl->setVariable("HREF_SHOW",
468 $ilCtrl->getLinkTarget($this, "showNews"));
469 $ilCtrl->clearParameters($this);
470 }
const IL_CAL_DATETIME
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
static determineNewsTitle($a_context_obj_type, $a_title, $a_content_is_lang_var, $a_agg_ref_id=0, $a_aggregation="")
Determine title for news item entry.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static _lookupType($a_id, $a_reference=false)
lookup object type
static shortenWords($a_str, $a_len=30, $a_dots=true)
Ensure that the maximum word lenght within a text is not longer than $a_len.

References $ilCtrl, $ilUser, $lng, ilObject\_getIcon(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ilNewsItem\determineNewsTitle(), ilDatePresentation\formatDate(), ilBlockGUI\getCurrentDetailLevel(), IL_CAL_DATETIME, and ilUtil\shortenWords().

+ Here is the call graph for this function:

◆ getBlockType()

static ilNewsForContextBlockGUI::getBlockType ( )
static

Get block type.

Returns
string Block type.

Reimplemented from ilBlockGUI.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 130 of file class.ilNewsForContextBlockGUI.php.

References $block_type.

Referenced by getDynamicReload(), getHTML(), getJSEnabler(), handleView(), hideNotifications(), initSettingsForm(), saveSettings(), and showNotifications().

+ Here is the caller graph for this function:

◆ getDynamic()

ilNewsForContextBlockGUI::getDynamic ( )

Definition at line 1219 of file class.ilNewsForContextBlockGUI.php.

1220 {
1221 global $ilCtrl, $ilUser;
1222
1223 if ($ilCtrl->getCmd() == "hideNotifications" ||
1224 $ilCtrl->getCmd() == "showNotifications")
1225 {
1226 return false;
1227 }
1228
1229 if ($ilCtrl->getCmdClass() != "ilcolumngui" && $ilCtrl->getCmd() != "enableJS")
1230 {
1231 $sess_feed_js = "";
1232 if (isset($_SESSION["il_feed_js"]))
1233 {
1234 $sess_feed_js = $_SESSION["il_feed_js"];
1235 }
1236
1237 if ($sess_feed_js != "n" &&
1238 ($ilUser->getPref("il_feed_js") != "n" || $sess_feed_js == "y"))
1239 {
1240 // do not get feed dynamically, if cache hit is given.
1241// if (!$this->feed->checkCacheHit())
1242// {
1243 return true;
1244// }
1245 }
1246 }
1247
1248 return false;
1249 }

References $_SESSION, $ilCtrl, and $ilUser.

Referenced by ilNewsForContextBlockGUI(), and ilPDNewsBlockGUI\ilPDNewsBlockGUI().

+ Here is the caller graph for this function:

◆ getDynamicReload()

ilNewsForContextBlockGUI::getDynamicReload ( )

Definition at line 1251 of file class.ilNewsForContextBlockGUI.php.

1252 {
1253 global $ilCtrl, $lng;
1254
1255 $ilCtrl->setParameterByClass("ilcolumngui", "block_id",
1256 "block_".$this->getBlockType()."_".$this->getBlockId());
1257
1258 $rel_tpl = new ilTemplate("tpl.dynamic_reload.html", true, true, "Services/News");
1259 $rel_tpl->setVariable("TXT_LOADING", $lng->txt("news_loading_news"));
1260 $rel_tpl->setVariable("BLOCK_ID", "block_".$this->getBlockType()."_".$this->getBlockId());
1261 $rel_tpl->setVariable("TARGET",
1262 $ilCtrl->getLinkTargetByClass("ilcolumngui", "updateBlock", "", true));
1263
1264 // no JS
1265 $rel_tpl->setVariable("TXT_NEWS_CLICK_HERE", $lng->txt("news_no_js_click_here"));
1266 $rel_tpl->setVariable("TARGET_NO_JS",
1267 $ilCtrl->getLinkTargetByClass(strtolower(get_class($this)), "disableJS"));
1268
1269 return $rel_tpl->get();
1270 }
getBlockId()
Get Block Id.
special template class to simplify handling of ITX/PEAR

References $ilCtrl, $lng, ilBlockGUI\getBlockId(), and getBlockType().

Referenced by fillDataSection(), and ilPDNewsBlockGUI\fillDataSection().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getEnableEdit()

ilNewsForContextBlockGUI::getEnableEdit ( )

Get EnableEdit.

Returns
boolean Edit mode on/off

Reimplemented from ilBlockGUI.

Definition at line 214 of file class.ilNewsForContextBlockGUI.php.

215 {
216 return $this->enable_edit;
217 }

Referenced by executeCommand(), and getHTML().

+ Here is the caller graph for this function:

◆ getHTML()

ilNewsForContextBlockGUI::getHTML ( )

Get bloch HTML code.

Reimplemented from ilBlockGUI.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 241 of file class.ilNewsForContextBlockGUI.php.

242 {
243 global $ilCtrl, $lng, $ilUser;
244
245 $news_set = new ilSetting("news");
246 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
247
248 $hide_block = ilBlockSetting::_lookup($this->getBlockType(), "hide_news_block",
249 0, $this->block_id);
250 if ($hide_block)
251 {
252 $this->setFooterInfo($lng->txt("news_hidden_news_block"));
253 }
254
255 if ($this->getProperty("title") != "")
256 {
257 $this->setTitle($this->getProperty("title"));
258 }
259
260 $public_feed = ilBlockSetting::_lookup($this->getBlockType(), "public_feed",
261 0, $this->block_id);
262 if ($public_feed)
263 {
264 if ($enable_internal_rss)
265 {
266 include_once("./Services/News/classes/class.ilRSSButtonGUI.php");
267 $this->addBlockCommand(
268 ILIAS_HTTP_PATH."/feed.php?client_id=".rawurlencode(CLIENT_ID)."&".
269 "ref_id=".$_GET["ref_id"],
270 $lng->txt("news_feed_url"), "", "", true, false, ilRSSButtonGUI::get(ilRSSButtonGUI::ICON_RSS));
271
272 }
273 }
274
275/* Subscription Concept is abandonded for now (Alex)
276 // subscribe/unsibscribe link
277 include_once("./Services/News/classes/class.ilNewsSubscription.php");
278 if (ilNewsSubscription::_hasSubscribed($_GET["ref_id"], $ilUser->getId()))
279 {
280 $this->addBlockCommand(
281 $ilCtrl->getLinkTarget($this, "unsubscribeNews"),
282 $lng->txt("news_unsubscribe"));
283 }
284 else
285 {
286 $this->addBlockCommand(
287 $ilCtrl->getLinkTarget($this, "subscribeNews"),
288 $lng->txt("news_subscribe"));
289 }
290*/
291
292 // add edit commands
293 if ($this->getEnableEdit())
294 {
295 $this->addBlockCommand(
296 $ilCtrl->getLinkTargetByClass("ilnewsitemgui", "editNews"),
297 $lng->txt("edit"));
298
299 $ilCtrl->setParameter($this, "add_mode", "block");
300 $this->addBlockCommand(
301 $ilCtrl->getLinkTargetByClass("ilnewsitemgui", "createNewsItem"),
302 $lng->txt("add"));
303 $ilCtrl->setParameter($this, "add_mode", "");
304 }
305
306 if ($this->getProperty("settings") == true)
307 {
308 $this->addBlockCommand(
309 $ilCtrl->getLinkTarget($this, "editSettings"),
310 $lng->txt("settings"));
311 }
312
313 // do not display hidden repository news blocks for users
314 // who do not have write permission
315 if (!$this->getEnableEdit() && $this->getRepositoryMode() &&
316 ilBlockSetting::_lookup($this->getBlockType(), "hide_news_block",
317 0, $this->block_id))
318 {
319 return "";
320 }
321
322 // do not display empty news blocks for users
323 // who do not have write permission
324 if (count($this->getData()) == 0 && !$this->getEnableEdit() &&
325 $this->getRepositoryMode() && !$this->dynamic
326 && (!$news_set->get("enable_rss_for_internal") ||
327 !ilBlockSetting::_lookup($this->getBlockType(), "public_feed",
328 0, $this->block_id)))
329 {
330 return "";
331 }
332
333 $en = "";
334 if ($ilUser->getPref("il_feed_js") == "n")
335 {
336// $en = getJSEnabler();
337 }
338
339 return parent::getHTML().$en;
340 }
$_GET["client_id"]
setFooterInfo($a_footerinfo, $a_hide_and_icon=false)
Set Footer Info.
getRepositoryMode()
Get RepositoryMode.
addBlockCommand($a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
Add Block Command.
getProperty($a_property)
setTitle($a_title)
Set Title.
static _lookup($a_type, $a_setting, $a_user=0, $a_block_id=0)
Lookup setting from database.
static get($a_type, $a_href="")
Get icon html.
ILIAS Setting Class.

References $_GET, $ilCtrl, $ilUser, $lng, ilBlockSetting\_lookup(), ilBlockGUI\addBlockCommand(), ilRSSButtonGUI\get(), getBlockType(), ilBlockGUI\getData(), getEnableEdit(), ilBlockGUI\getProperty(), ilBlockGUI\getRepositoryMode(), ilRSSButtonGUI\ICON_RSS, ilBlockGUI\setFooterInfo(), and ilBlockGUI\setTitle().

Referenced by enableJS(), hideNotifications(), and showNotifications().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getJSEnabler()

ilNewsForContextBlockGUI::getJSEnabler ( )

Definition at line 1272 of file class.ilNewsForContextBlockGUI.php.

1273 {
1274 global $ilCtrl, $lng;
1275
1276 $ilCtrl->setParameterByClass("ilcolumngui", "block_id",
1277 "block_".$this->getBlockType()."_".$this->getBlockId());
1278//echo "hh";
1279 $rel_tpl = new ilTemplate("tpl.js_enabler.html", true, true, "Services/News");
1280 $rel_tpl->setVariable("BLOCK_ID", "block_".$this->getBlockType()."_".$this->getBlockId());
1281 $rel_tpl->setVariable("TARGET",
1282 $ilCtrl->getLinkTargetByClass(strtolower(get_class($this)), "enableJS", true, "", false));
1283
1284 return $rel_tpl->get();
1285 }

References $ilCtrl, $lng, ilBlockGUI\getBlockId(), and getBlockType().

Referenced by ilPDNewsBlockGUI\getHTML().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getNewsData()

ilNewsForContextBlockGUI::getNewsData ( )

Get news for context.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 84 of file class.ilNewsForContextBlockGUI.php.

85 {
86 global $ilCtrl, $ilUser;
87
88 include_once("./Services/News/classes/class.ilNewsCache.php");
89 $this->acache = new ilNewsCache();
90/* $cres = $this->acache->getEntry($ilUser->getId().":".$_GET["ref_id"]);
91 if ($this->acache->getLastAccessStatus() == "hit" && false)
92 {
93 $news_data = unserialize($cres);
94 }
95 else
96 {*/
97 $news_item = new ilNewsItem();
98 $news_item->setContextObjId($ilCtrl->getContextObjId());
99 $news_item->setContextObjType($ilCtrl->getContextObjType());
100
101 // workaround, better: reduce constructor and introduce
102 //$prevent_aggregation = $this->getProperty("prevent_aggregation");
103 $prevent_aggregation = true;
104 if ($ilCtrl->getContextObjType() != "frm")
105 {
106 $forum_grouping = true;
107 }
108 else
109 {
110 $forum_grouping = false;
111 }
112
113
114 $news_data = $news_item->getNewsForRefId($_GET["ref_id"], false, false, 0,
115 $prevent_aggregation, $forum_grouping);
116
117 $this->acache->storeEntry($ilUser->getId().":".$_GET["ref_id"],
118 serialize($news_data));
119
120// }
121//var_dump($news_data);
122 return $news_data;
123 }

References $_GET, $ilCtrl, and $ilUser.

Referenced by hideNotifications(), ilNewsForContextBlockGUI(), showNews(), and showNotifications().

+ Here is the caller graph for this function:

◆ getOverview()

ilNewsForContextBlockGUI::getOverview ( )

Get overview.

Definition at line 475 of file class.ilNewsForContextBlockGUI.php.

476 {
477 global $ilUser, $lng, $ilCtrl;
478
479 return '<div class="small">'.((int) count($this->getData()))." ".$lng->txt("news_news_items")."</div>";
480 }

References $ilCtrl, $ilUser, $lng, and ilBlockGUI\getData().

Referenced by fillDataSection(), and ilPDNewsBlockGUI\fillDataSection().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getScreenMode()

static ilNewsForContextBlockGUI::getScreenMode ( )
static

Get Screen Mode for current command.

Reimplemented from ilBlockGUI.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 148 of file class.ilNewsForContextBlockGUI.php.

149 {
150 global $ilCtrl;
151
152 if ($ilCtrl->getCmdClass() == "ilnewsitemgui")
153 {
154 return IL_SCREEN_FULL;
155 }
156
157 switch($ilCtrl->getCmd())
158 {
159 case "showNews":
160 case "showFeedUrl":
161 return IL_SCREEN_CENTER;
162 break;
163
164 case "editSettings":
165 case "saveSettings":
166 return IL_SCREEN_FULL;
167 break;
168
169 default:
170 return IL_SCREEN_SIDE;
171 break;
172 }
173 }
const IL_SCREEN_SIDE
const IL_SCREEN_CENTER
const IL_SCREEN_FULL

References $ilCtrl, IL_SCREEN_CENTER, IL_SCREEN_FULL, and IL_SCREEN_SIDE.

◆ handleView()

ilNewsForContextBlockGUI::handleView ( )

Handles show/hide notification view and removes notifications if hidden.

Definition at line 345 of file class.ilNewsForContextBlockGUI.php.

346 {
347 global $ilUser;
348
349 include_once("Services/Block/classes/class.ilBlockSetting.php");
350 $this->view = ilBlockSetting::_lookup($this->getBlockType(), "view",
351 $ilUser->getId(), $this->block_id);
352
353 // check whether notices and messages exist
354 $got_notices = $got_messages = false;
355 foreach($this->data as $row)
356 {
357 if ($row["priority"] == 0) $got_notices = true;
358 if ($row["priority"] == 1) $got_messages = true;
359 }
360 $this->show_view_selection = false;
361
362 if ($got_notices && $got_messages)
363 {
364 $this->show_view_selection = true;
365 }
366 else if ($got_notices)
367 {
368 $this->view = "";
369 }
370
371 // remove notifications if hidden
372/*
373 if (($this->view == "hide_notifications") && $this->show_view_selection)
374 {
375 $rset = array();
376 foreach($this->data as $k => $row)
377 {
378 if ($row["priority"] == 1)
379 {
380 $rset[$k] = $row;
381 }
382 }
383 $this->data = $rset;
384 }
385*/
386 }

References $ilUser, $row, ilBlockSetting\_lookup(), and getBlockType().

Referenced by hideNotifications(), ilNewsForContextBlockGUI(), ilPDNewsBlockGUI\ilPDNewsBlockGUI(), and showNotifications().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hideNotifications()

ilNewsForContextBlockGUI::hideNotifications ( )

Definition at line 960 of file class.ilNewsForContextBlockGUI.php.

961 {
962 global $ilCtrl, $ilUser;
963
964 include_once("Services/Block/classes/class.ilBlockSetting.php");
965 $view = ilBlockSetting::_write($this->getBlockType(), "view", "hide_notifications",
966 $ilUser->getId(), $this->block_id);
967
968 // reload data
969 $data = $this->getNewsData();
970 $this->setData($data);
971 $this->handleView();
972
973 if ($ilCtrl->isAsynch())
974 {
975 echo $this->getHTML();
976 exit;
977 }
978 else
979 {
980 $ilCtrl->returnToParent($this);
981 }
982 }
setData($a_data)
Set Data.
static _write($a_type, $a_setting, $a_value, $a_user=0, $a_block_id=0)
Write setting to database.
handleView()
Handles show/hide notification view and removes notifications if hidden.

References ilBlockGUI\$data, $ilCtrl, $ilUser, ilBlockSetting\_write(), exit, getBlockType(), getHTML(), getNewsData(), handleView(), and ilBlockGUI\setData().

+ Here is the call graph for this function:

◆ ilNewsForContextBlockGUI()

ilNewsForContextBlockGUI::ilNewsForContextBlockGUI ( )

Constructor.

Definition at line 26 of file class.ilNewsForContextBlockGUI.php.

27 {
28 global $ilCtrl, $lng, $ilUser, $ilHelp;
29
30 parent::ilBlockGUI();
31
32 $lng->loadLanguageModule("news");
33 $ilHelp->addHelpSection("news_block");
34
35 include_once("./Services/News/classes/class.ilNewsItem.php");
36 $this->setBlockId($ilCtrl->getContextObjId());
37 $this->setLimit(5);
39 $this->setEnableNumInfo(true);
40
41 $this->dynamic = false;
42 include_once("./Services/News/classes/class.ilNewsCache.php");
43 $this->acache = new ilNewsCache();
44 $cres = $this->acache->getEntry($ilUser->getId().":".$_GET["ref_id"]);
45 $this->cache_hit = false;
46
47 if ($this->acache->getLastAccessStatus() == "hit")
48 {
49 self::$st_data = ilNewsItem::prepareNewsDataFromCache($cres);
50 $this->cache_hit = true;
51 }
52 if ($this->getDynamic() && !$this->cache_hit)
53 {
54 $this->dynamic = true;
55 $data = array();
56 }
57 else if ($this->getCurrentDetailLevel() > 0)
58 {
59 if (!empty(self::$st_data))
60 {
62 }
63 else
64 {
65 $data = $this->getNewsData();
66 self::$st_data = $data;
67 }
68 }
69 else
70 {
71 $data = array();
72 }
73
74 $this->setTitle($lng->txt("news_internal_news"));
75 $this->setRowTemplate("tpl.block_row_news_for_context.html", "Services/News");
76 $this->setData($data);
77 $this->allow_moving = false;
78 $this->handleView();
79 }
setRowTemplate($a_rowtemplatename, $a_rowtemplatedir="")
Set Row Template Name.
setLimit($a_limit)
Set Limit.
setAvailableDetailLevels($a_max, $a_min=0)
Set Available Detail Levels.
setBlockId($a_block_id=0)
Set Block Id.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
static prepareNewsDataFromCache($a_cres)
Prepare news data from cache.

References $_GET, ilBlockGUI\$data, $ilCtrl, $ilUser, $lng, $st_data, ilBlockGUI\getCurrentDetailLevel(), getDynamic(), getNewsData(), handleView(), ilNewsItem\prepareNewsDataFromCache(), ilBlockGUI\setAvailableDetailLevels(), ilBlockGUI\setBlockId(), ilBlockGUI\setData(), ilBlockGUI\setEnableNumInfo(), ilBlockGUI\setLimit(), ilBlockGUI\setRowTemplate(), and ilBlockGUI\setTitle().

+ Here is the call graph for this function:

◆ initSettingsForm()

ilNewsForContextBlockGUI::initSettingsForm ( )

Init setting form.

Definition at line 996 of file class.ilNewsForContextBlockGUI.php.

997 {
998 global $ilUser, $lng, $ilCtrl, $ilSetting, $ilTabs;
999
1000 $ilTabs->clearTargets();
1001
1002 $news_set = new ilSetting("news");
1003 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
1004
1005 $public = ilBlockSetting::_lookup($this->getBlockType(), "public_notifications",
1006 0, $this->block_id);
1007 $public_feed = ilBlockSetting::_lookup($this->getBlockType(), "public_feed",
1008 0, $this->block_id);
1009 $hide_block = ilBlockSetting::_lookup($this->getBlockType(), "hide_news_block",
1010 0, $this->block_id);
1011 $hide_news_per_date = ilBlockSetting::_lookup($this->getBlockType(), "hide_news_per_date",
1012 0, $this->block_id);
1013 $hide_news_date = ilBlockSetting::_lookup($this->getBlockType(), "hide_news_date",
1014 0, $this->block_id);
1015
1016 if ($hide_news_date != "")
1017 {
1018 $hide_news_date = explode(" ", $hide_news_date);
1019 }
1020
1021 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1022 $this->settings_form = new ilPropertyFormGUI();
1023 $this->settings_form->setTitle($lng->txt("news_settings"));
1024
1025 // hide news block for learners
1026 if ($this->getProperty("hide_news_block_option"))
1027 {
1028 $ch = new ilCheckboxInputGUI($lng->txt("news_hide_news_block"),
1029 "hide_news_block");
1030 $ch->setInfo($lng->txt("news_hide_news_block_info"));
1031 $ch->setChecked($hide_block);
1032 $this->settings_form->addItem($ch);
1033
1034 $hnpd = new ilCheckboxInputGUI($lng->txt("news_hide_news_per_date"),
1035 "hide_news_per_date");
1036 $hnpd->setInfo($lng->txt("news_hide_news_per_date_info"));
1037 $hnpd->setChecked($hide_news_per_date);
1038
1039 $dt_prop = new ilDateTimeInputGUI($lng->txt("news_hide_news_date"),
1040 "hide_news_date");
1041 if ($hide_news_date != "")
1042 {
1043 $dt_prop->setDate(new ilDateTime($hide_news_date[0].' '.$hide_news_date[1],IL_CAL_DATETIME));
1044 }
1045 #$dt_prop->setDate($hide_news_date[0]);
1046 #$dt_prop->setTime($hide_news_date[1]);
1047 $dt_prop->setShowTime(true);
1048 //$dt_prop->setInfo($lng->txt("news_hide_news_date_info"));
1049 $hnpd->addSubItem($dt_prop);
1050
1051 $this->settings_form->addItem($hnpd);
1052
1053 }
1054
1055 // default visibility
1056 if ($this->getProperty("default_visibility_option") &&
1057 $enable_internal_rss)
1058 {
1059 $default_visibility = ilBlockSetting::_lookup($this->getBlockType(), "default_visibility",
1060 0, $this->block_id);
1061 if ($default_visibility == "")
1062 {
1063 $default_visibility =
1065 }
1066
1067 // Default Visibility
1068 $radio_group = new ilRadioGroupInputGUI($lng->txt("news_default_visibility"), "default_visibility");
1069 $radio_option = new ilRadioOption($lng->txt("news_visibility_users"), "users");
1070 $radio_group->addOption($radio_option);
1071 $radio_option = new ilRadioOption($lng->txt("news_visibility_public"), "public");
1072 $radio_group->addOption($radio_option);
1073 $radio_group->setInfo($lng->txt("news_news_item_visibility_info"));
1074 $radio_group->setRequired(false);
1075 $radio_group->setValue($default_visibility);
1076 $this->settings_form->addItem($radio_group);
1077 }
1078
1079 // public notifications
1080 if ($this->getProperty("public_notifications_option") &&
1081 $enable_internal_rss)
1082 {
1083 $ch = new ilCheckboxInputGUI($lng->txt("news_notifications_public"),
1084 "notifications_public");
1085 $ch->setInfo($lng->txt("news_notifications_public_info"));
1086 $ch->setChecked($public);
1087 $this->settings_form->addItem($ch);
1088 }
1089
1090 // extra rss feed
1091 if ($enable_internal_rss)
1092 {
1093 $ch = new ilCheckboxInputGUI($lng->txt("news_public_feed"),
1094 "notifications_public_feed");
1095 $ch->setInfo($lng->txt("news_public_feed_info"));
1096 $ch->setChecked($public_feed);
1097 $this->settings_form->addItem($ch);
1098 }
1099
1100
1101 //$this->settings_form->addCheckboxProperty($lng->txt("news_public_feed"), "notifications_public_feed",
1102 // "1", $public_feed, $lng->txt("news_public_feed_info"));
1103 //if ($this->getProperty("public_notifications_option"))
1104 //{
1105 // $this->settings_form->addCheckboxProperty($lng->txt("news_notifications_public"), "notifications_public",
1106 // "1", $public, $lng->txt("news_notifications_public_info"));
1107 //}
1108 $this->settings_form->addCommandButton("saveSettings", $lng->txt("save"));
1109 $this->settings_form->addCommandButton("cancelSettings", $lng->txt("cancel"));
1110 $this->settings_form->setFormAction($ilCtrl->getFormaction($this));
1111 }
This class represents a checkbox property in a property form.
This class represents a date/time property in a property form.
static _getDefaultVisibilityForRefId($a_ref_id)
Get default visibility for reference id.
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
global $ilSetting
Definition: privfeed.php:40

References $_GET, $ilCtrl, $ilSetting, $ilUser, $lng, ilNewsItem\_getDefaultVisibilityForRefId(), ilBlockSetting\_lookup(), getBlockType(), ilBlockGUI\getProperty(), and IL_CAL_DATETIME.

Referenced by editSettings(), and saveSettings().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isRepositoryObject()

static ilNewsForContextBlockGUI::isRepositoryObject ( )
static

Is this a repository object.

Returns
string Block type.

Reimplemented from ilBlockGUI.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 140 of file class.ilNewsForContextBlockGUI.php.

141 {
142 return false;
143 }

◆ makeClickable()

ilNewsForContextBlockGUI::makeClickable (   $a_str)

Make clickable.

Parameters

return

Definition at line 846 of file class.ilNewsForContextBlockGUI.php.

847 {
848 // this fixes bug 8744. We assume that strings that contain < and >
849 // already contain html, we do not handle these
850 if (is_int(strpos($a_str, ">")) && is_int(strpos($a_str, "<")))
851 {
852 return $a_str;
853 }
854
855 return ilUtil::makeClickable($a_str);
856 }
static makeClickable($a_text, $detectGotoLinks=false)
makeClickable In Texten enthaltene URLs und Mail-Adressen klickbar machen

References ilUtil\makeClickable().

Referenced by showNews().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveSettings()

ilNewsForContextBlockGUI::saveSettings ( )

Save settings.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 1126 of file class.ilNewsForContextBlockGUI.php.

1127 {
1128 global $ilCtrl, $ilUser;
1129
1130 $this->initSettingsForm();
1131
1132 if ($this->settings_form->checkInput())
1133 {
1134 $news_set = new ilSetting("news");
1135 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
1136
1137 if ($enable_internal_rss)
1138 {
1139 ilBlockSetting::_write($this->getBlockType(), "public_notifications", $_POST["notifications_public"],
1140 0, $this->block_id);
1141 ilBlockSetting::_write($this->getBlockType(), "public_feed", $_POST["notifications_public_feed"],
1142 0, $this->block_id);
1143 ilBlockSetting::_write($this->getBlockType(), "default_visibility", $_POST["default_visibility"],
1144 0, $this->block_id);
1145 }
1146
1147 if ($this->getProperty("hide_news_block_option"))
1148 {
1149 ilBlockSetting::_write($this->getBlockType(), "hide_news_block", $_POST["hide_news_block"],
1150 0, $this->block_id);
1151 ilBlockSetting::_write($this->getBlockType(), "hide_news_per_date", $_POST["hide_news_per_date"],
1152 0, $this->block_id);
1153
1154 // hide date
1155 $hd = $this->settings_form->getInput("hide_news_date");
1156 $hide_date = new ilDateTime($hd["date"]." ".
1157 $hd["time"],IL_CAL_DATETIME,$ilUser->getTimeZone());
1158 ilBlockSetting::_write($this->getBlockType(), "hide_news_date",
1159 $hide_date->get(IL_CAL_DATETIME),
1160 0, $this->block_id);
1161 }
1162
1163 include_once("./Services/News/classes/class.ilNewsCache.php");
1164 $cache = new ilNewsCache();
1165 $cache->deleteEntry($ilUser->getId().":".$_GET["ref_id"]);
1166
1167 $ilCtrl->returnToParent($this);
1168 }
1169 else
1170 {
1171 $this->settings_form->setValuesByPost();
1172 return $this->settings_form->getHtml();
1173 }
1174 }
$_POST['username']
Definition: cron.php:12

References $_GET, $_POST, $ilCtrl, $ilUser, ilBlockSetting\_write(), getBlockType(), ilBlockGUI\getProperty(), IL_CAL_DATETIME, and initSettingsForm().

+ Here is the call graph for this function:

◆ setEnableEdit()

ilNewsForContextBlockGUI::setEnableEdit (   $a_enable_edit = 0)

Set EnableEdit.

Parameters
boolean$a_enable_editEdit mode on/off

Reimplemented from ilBlockGUI.

Definition at line 204 of file class.ilNewsForContextBlockGUI.php.

205 {
206 $this->enable_edit = $a_enable_edit;
207 }

◆ showFeedUrl()

ilNewsForContextBlockGUI::showFeedUrl ( )

Show feed URL.

Reimplemented in ilPDNewsBlockGUI.

Definition at line 1179 of file class.ilNewsForContextBlockGUI.php.

1180 {
1181 global $lng, $ilCtrl, $ilUser;
1182
1183 include_once("./Services/News/classes/class.ilNewsItem.php");
1184
1185 $title = ilObject::_lookupTitle($this->block_id);
1186
1187 $tpl = new ilTemplate("tpl.show_feed_url.html", true, true, "Services/News");
1188 $tpl->setVariable("TXT_TITLE",
1189 sprintf($lng->txt("news_feed_url_for"), $title));
1190 $tpl->setVariable("TXT_INFO", $lng->txt("news_get_feed_info"));
1191 $tpl->setVariable("TXT_FEED_URL", $lng->txt("news_feed_url"));
1192 $tpl->setVariable("VAL_FEED_URL",
1193 ILIAS_HTTP_PATH."/feed.php?client_id=".rawurlencode(CLIENT_ID)."&user_id=".$ilUser->getId().
1194 "&obj_id=".$this->block_id.
1195 "&hash=".ilObjUser::_lookupFeedHash($ilUser->getId(), true));
1196 $tpl->setVariable("VAL_FEED_URL_TXT",
1197 ILIAS_HTTP_PATH."/feed.php?client_id=".rawurlencode(CLIENT_ID)."&<br />user_id=".$ilUser->getId().
1198 "&obj_id=".$this->block_id.
1199 "&hash=".ilObjUser::_lookupFeedHash($ilUser->getId(), true));
1200
1201 include_once("./Services/PersonalDesktop/classes/class.ilPDContentBlockGUI.php");
1202 $content_block = new ilPDContentBlockGUI();
1203 $content_block->setContent($tpl->get());
1204 $content_block->setTitle($lng->txt("news_internal_news"));
1205 $content_block->addHeaderCommand($ilCtrl->getParentReturn($this),
1206 $lng->txt("close"), true);
1207
1208 return $content_block->getHTML();
1209 }
global $tpl
Definition: ilias.php:8
BlockGUI class for (centered) Content on Personal Desktop.

References $ilCtrl, $ilUser, $lng, $tpl, and ilObject\_lookupTitle().

+ Here is the call graph for this function:

◆ showNews()

ilNewsForContextBlockGUI::showNews ( )

show news

Reimplemented in ilPDNewsBlockGUI.

Definition at line 485 of file class.ilNewsForContextBlockGUI.php.

486 {
487 global $lng, $ilCtrl, $ilUser, $ilAccess;
488
489 // workaround for dynamic mode (if cache is disabled, showNews has no data)
490 if (empty(self::$st_data))
491 {
492 $this->setData($this->getNewsData());
493 }
494
495 $news_set = new ilSetting("news");
496 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
497
498 include_once("./Services/News/classes/class.ilNewsItem.php");
499 $news = new ilNewsItem($_GET["news_id"]);
500
501 $tpl = new ilTemplate("tpl.show_news.html", true, true, "Services/News");
502
503 // get current item in data set
504 $previous = $next = "";
505 reset($this->data);
506 $c = current($this->data);
507 $curr_cnt = 1;
508
509 while($c["id"] > 0 &&
510 $c["id"] != $_GET["news_id"])
511 {
512 $previous = $c;
513 $c = next($this->data);
514 $curr_cnt++;
515 }
516
517 // collect news items to show
518 $news_list = array();
519 if (is_array($c["aggregation"])) // we have an aggregation
520 {
521 $news_list[] = array("ref_id" => $c["agg_ref_id"],
522 "agg_ref_id" => $c["agg_ref_id"],
523 "aggregation" => $c["aggregation"],
524 "user_id" => "",
525 "content_type" => "text",
526 "mob_id" => 0,
527 "visibility" => "",
528 "content" => "",
529 "content_long" => "",
530 "update_date" => $news->getUpdateDate(),
531 "creation_date" => "",
532 "content_is_lang_var" => false,
533 "loc_context" => $_GET["news_context"],
534 "context_obj_type" => $news->getContextObjType(),
535 "title" => "");
536
537 foreach($c["aggregation"] as $c_item)
538 {
539 ilNewsItem::_setRead($ilUser->getId(), $c_item["id"]);
540 $c_item["loc_context"] = $c_item["ref_id"];
541 $c_item["loc_stop"] = $_GET["news_context"];
542 $news_list[] = $c_item;
543 }
544 }
545 else // no aggregation, simple news item
546 {
547 $news_list[] = array("ref_id" => $_GET["news_context"],
548 "user_id" => $news->getUserId(),
549 "content_type" => $news->getContentType(),
550 "mob_id" => $news->getMobId(),
551 "visibility" => $news->getVisibility(),
552 "priority" => $news->getPriority(),
553 "content" => $news->getContent(),
554 "content_long" => $news->getContentLong(),
555 "update_date" => $news->getUpdateDate(),
556 "creation_date" => $news->getCreationDate(),
557 "context_sub_obj_type" => $news->getContextSubObjType(),
558 "context_obj_type" => $news->getContextObjType(),
559 "context_sub_obj_id" => $news->getContextSubObjId(),
560 "content_is_lang_var" => $news->getContentIsLangVar(),
561 "content_text_is_lang_var" => $news->getContentTextIsLangVar(),
562 "loc_context" => $_GET["news_context"],
563 "title" => $news->getTitle());
564 ilNewsItem::_setRead($ilUser->getId(), $_GET["news_id"]);
565 }
566
567 $row_css = "";
568 $cache_deleted = false;
569 foreach ($news_list as $item)
570 {
571 $row_css = ($row_css != "tblrow1")
572 ? "tblrow1"
573 : "tblrow2";
574
575 if ($item["ref_id"] > 0 && !$ilAccess->checkAccess("read", "", $item["ref_id"]))
576 {
577 $tpl->setCurrentBlock("content");
578 $tpl->setVariable("VAL_CONTENT", $lng->txt("news_sorry_not_accessible_anymore"));
579 $tpl->parseCurrentBlock();
580 $tpl->setCurrentBlock("item");
581 $tpl->setVariable("ITEM_ROW_CSS", $row_css);
582 $tpl->parseCurrentBlock();
583 if (!$cache_deleted)
584 {
585 $this->acache->deleteEntry($ilUser->getId() . ":" . $_GET["ref_id"]);
586 $cache_deleted = true;
587 }
588 continue;
589 }
590
591 // user
592 if ($item["user_id"] > 0 && ilObject::_exists($item["user_id"]))
593 {
594 // get login
595 if (ilObjUser::_exists($item["user_id"]))
596 {
597 $user = new ilObjUser($item["user_id"]);
598 $displayname = $user->getLogin();
599 } else
600 {
601 // this should actually not happen, since news entries
602 // should be deleted when the user is going to be removed
603 $displayname = "&lt;". strtolower($lng->txt("deleted")) ."&gt;";
604 }
605
606 $tpl->setCurrentBlock("user_info");
607 $tpl->setVariable("VAL_AUTHOR", $displayname);
608 $tpl->setVariable("TXT_AUTHOR", $lng->txt("author"));
609 $tpl->parseCurrentBlock();
610 }
611
612 // media player
613 if ($item["content_type"] == NEWS_AUDIO &&
614 $item["mob_id"] > 0 && ilObject::_exists($item["mob_id"]))
615 {
616 include_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
617 include_once("./Services/MediaObjects/classes/class.ilMediaPlayerGUI.php");
618 $mob = new ilObjMediaObject($item["mob_id"]);
619 $med = $mob->getMediaItem("Standard");
620 $mpl = new ilMediaPlayerGUI("news_pl_".$item["mob_id"]);
621 if (strcasecmp("Reference", $med->getLocationType()) == 0)
622 $mpl->setFile($med->getLocation());
623 else
624 $mpl->setFile(ilObjMediaObject::_getURL($mob->getId())."/".$med->getLocation());
625 $mpl->setDisplayHeight($med->getHeight());
626 $tpl->setCurrentBlock("player");
627 $tpl->setVariable("PLAYER",
628 $mpl->getMp3PlayerHtml());
629 $tpl->parseCurrentBlock();
630 }
631
632 // access
633 if ($enable_internal_rss && $item["visibility"] != "")
634 {
635 $obj_id = ilObject::_lookupObjId($item["ref_id"]);
636 $tpl->setCurrentBlock("access");
637 $tpl->setVariable("TXT_ACCESS", $lng->txt("news_news_item_visibility"));
638 if ($item["visibility"] == NEWS_PUBLIC ||
639 ($item["priority"] == 0 &&
640 ilBlockSetting::_lookup("news", "public_notifications",
641 0, $obj_id)))
642 {
643 $tpl->setVariable("VAL_ACCESS", $lng->txt("news_visibility_public"));
644 }
645 else
646 {
647 $tpl->setVariable("VAL_ACCESS", $lng->txt("news_visibility_users"));
648 }
649 $tpl->parseCurrentBlock();
650 }
651
652 // content
653 if (trim($item["content"]) != "") // content
654 {
655 $tpl->setCurrentBlock("content");
656 $tpl->setVariable("VAL_CONTENT",
657 nl2br($this->makeClickable(
658 ilNewsItem::determineNewsContent($item["context_obj_type"], $item["content"], $item["content_text_is_lang_var"])
659 )));
660//$tpl->setVariable("VAL_CONTENT", nl2br($item["content"]));
661 $tpl->parseCurrentBlock();
662 }
663 if (trim($item["content_long"]) != "") // long content
664 {
665 $tpl->setCurrentBlock("long");
666 $tpl->setVariable("VAL_LONG_CONTENT", $this->makeClickable($item["content_long"]));
667 $tpl->parseCurrentBlock();
668 }
669 if ($item["update_date"] != $item["creation_date"]) // update date
670 {
671 $tpl->setCurrentBlock("ni_update");
672 $tpl->setVariable("TXT_LAST_UPDATE", $lng->txt("last_update"));
673 $tpl->setVariable("VAL_LAST_UPDATE",
675 $tpl->parseCurrentBlock();
676 }
677
678 // creation date
679 if ($item["creation_date"] != "")
680 {
681 $tpl->setCurrentBlock("ni_update");
682 $tpl->setVariable("VAL_CREATION_DATE",
683 ilDatePresentation::formatDate(new ilDateTime($item["creation_date"],IL_CAL_DATETIME)));
684 $tpl->setVariable("TXT_CREATED", $lng->txt("created"));
685 $tpl->parseCurrentBlock();
686 }
687
688
689 // context / title
690 if ($_GET["news_context"] > 0)
691 {
692 //$obj_id = ilObject::_lookupObjId($_GET["news_context"]);
693 $obj_id = ilObject::_lookupObjId($item["ref_id"]);
694 $obj_type = ilObject::_lookupType($obj_id);
695 $obj_title = ilObject::_lookupTitle($obj_id);
696
697 // file hack, not nice
698 if ($obj_type == "file")
699 {
700 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $item["ref_id"]);
701 $url = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "sendfile");
702 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
703
704 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
705 $button = ilLinkButton::getInstance();
706 $button->setUrl($url);
707 $button->setCaption("download");
708
709 $tpl->setCurrentBlock("download");
710 $tpl->setVariable("BUTTON_DOWNLOAD", $button->render());
711 $tpl->parseCurrentBlock();
712 }
713
714 // forum hack, not nice
715 $add = "";
716 if ($obj_type == "frm" && $item["context_sub_obj_type"] == "pos"
717 && $item["context_sub_obj_id"] > 0)
718 {
719 include_once("./Modules/Forum/classes/class.ilObjForumAccess.php");
720 $pos = $item["context_sub_obj_id"];
721 $thread = ilObjForumAccess::_getThreadForPosting($pos);
722 if ($thread > 0)
723 {
724 $add = "_".$thread."_".$pos;
725 }
726 }
727
728 // wiki hack, not nice
729 if ($obj_type == "wiki" && $item["context_sub_obj_type"] == "wpg"
730 && $item["context_sub_obj_id"] > 0)
731 {
732 include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
733 $wptitle = ilWikiPage::lookupTitle($item["context_sub_obj_id"]);
734 if ($wptitle != "")
735 {
736 $add = "_".ilWikiUtil::makeUrlTitle($wptitle);
737 }
738 }
739
740 $url_target = "./goto.php?client_id=".rawurlencode(CLIENT_ID)."&target=".
741 $obj_type."_".$item["ref_id"].$add;
742
743 // lm page hack, not nice
744 if (in_array($obj_type, array("dbk", "lm")) && $item["context_sub_obj_type"] == "pg"
745 && $item["context_sub_obj_id"] > 0)
746 {
747 $url_target = "./goto.php?client_id=".rawurlencode(CLIENT_ID)."&target=".
748 "pg_".$item["context_sub_obj_id"]."_".$item["ref_id"];
749 }
750
751
752 $context_opened = false;
753 if ($item["loc_context"] != null && $item["loc_context"] != $item["loc_stop"])
754 {
755
756 $tpl->setCurrentBlock("context");
757 $context_opened = true;
758 $cont_loc = new ilLocatorGUI();
759 $cont_loc->addContextItems($item["loc_context"], true, $item["loc_stop"]);
760 $tpl->setVariable("CONTEXT_LOCATOR", $cont_loc->getHTML());
761 }
762
763//var_dump($item);
764 if ($item["no_context_title"] !== true)
765 {
766 if (!$context_opened)
767 {
768 $tpl->setCurrentBlock("context");
769 }
770 $tpl->setVariable("HREF_CONTEXT_TITLE", $url_target);
771 $tpl->setVariable("CONTEXT_TITLE", $obj_title);
772 $tpl->setVariable("IMG_CONTEXT_TITLE", ilObject::_getIcon($obj_id, "big", $obj_type));
773 }
774 if ($context_opened)
775 {
776 $tpl->parseCurrentBlock();
777 }
778
779 $tpl->setVariable("HREF_TITLE", $url_target);
780 }
781
782 // title
783 $tpl->setVariable("VAL_TITLE",
784 ilNewsItem::determineNewsTitle($item["context_obj_type"],
785 $item["title"], $item["content_is_lang_var"], $item["agg_ref_id"],
786 $item["aggregation"]));
787
788
789 $tpl->setCurrentBlock("item");
790 $tpl->setVariable("ITEM_ROW_CSS", $row_css);
791 $tpl->parseCurrentBlock();
792 }
793
794 include_once("./Services/PersonalDesktop/classes/class.ilPDContentBlockGUI.php");
795 $content_block = new ilPDContentBlockGUI();
796 $content_block->setContent($tpl->get());
797 if ($this->getProperty("title") != "")
798 {
799 $content_block->setTitle($this->getProperty("title"));
800 }
801 else
802 {
803 $content_block->setTitle($lng->txt("news_internal_news"));
804 }
805 $this->addCloseCommand($content_block);
806
807 // previous
808 if ($previous != "")
809 {
810 if ($previous["ref_id"] > 0)
811 {
812 $ilCtrl->setParameter($this, "news_context", $previous["ref_id"]);
813 }
814 $ilCtrl->setParameter($this, "news_id", $previous["id"]);
815 $content_block->addFooterLink($lng->txt("previous"),
816 $ilCtrl->getLinkTarget($this, "showNews"), "", "", true);
817 $ilCtrl->setParameter($this, "news_context", "");
818 }
819
820 // next
821 if ($c = next($this->data))
822 {
823 if ($c["ref_id"] > 0)
824 {
825 $ilCtrl->setParameter($this, "news_context", $c["ref_id"]);
826 }
827 $ilCtrl->setParameter($this, "news_id", $c["id"]);
828 $content_block->addFooterLink($lng->txt("next"),
829 $ilCtrl->getLinkTarget($this, "showNews"), "", "", true);
830 }
831 $ilCtrl->setParameter($this, "news_context", "");
832 $ilCtrl->setParameter($this, "news_id", "");
833 $content_block->setCurrentItemNumber($curr_cnt);
834 $content_block->setEnableNumInfo(true);
835 $content_block->setData($this->getData());
836
837 return $content_block->getHTML();
838 }
const NEWS_AUDIO
const NEWS_PUBLIC
static getInstance()
Factory.
locator handling class
User interface for media player.
static determineNewsContent($a_context_obj_type, $a_content, $a_is_lang_var)
Determine new content.
_setRead($a_user_id, $a_news_id)
Set item read.
Class ilObjMediaObject.
static _getURL($a_mob_id)
get directory for files of media object (static)
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
static lookupTitle($a_page_id)
Checks whether a page with given title exists.
$url
Definition: shib_logout.php:72

References $_GET, $ilCtrl, $ilUser, $lng, $tpl, $url, ilObject\_exists(), ilObject\_getIcon(), ilObjMediaObject\_getURL(), ilBlockSetting\_lookup(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ilNewsItem\_setRead(), addCloseCommand(), ilNewsItem\determineNewsContent(), ilNewsItem\determineNewsTitle(), ilDatePresentation\formatDate(), ilBlockGUI\getData(), ilLinkButton\getInstance(), getNewsData(), ilBlockGUI\getProperty(), IL_CAL_DATETIME, ilWikiPage\lookupTitle(), makeClickable(), NEWS_AUDIO, NEWS_PUBLIC, and ilBlockGUI\setData().

+ Here is the call graph for this function:

◆ showNotifications()

ilNewsForContextBlockGUI::showNotifications ( )

Definition at line 936 of file class.ilNewsForContextBlockGUI.php.

937 {
938 global $ilCtrl, $ilUser;
939
940 include_once("Services/Block/classes/class.ilBlockSetting.php");
941 $view = ilBlockSetting::_write($this->getBlockType(), "view", "",
942 $ilUser->getId(), $this->block_id);
943
944 // reload data
945 $data = $this->getNewsData();
946 $this->setData($data);
947 $this->handleView();
948
949 if ($ilCtrl->isAsynch())
950 {
951 echo $this->getHTML();
952 exit;
953 }
954 else
955 {
956 $ilCtrl->returnToParent($this);
957 }
958 }

References ilBlockGUI\$data, $ilCtrl, $ilUser, ilBlockSetting\_write(), exit, getBlockType(), getHTML(), getNewsData(), handleView(), and ilBlockGUI\setData().

+ Here is the call graph for this function:

◆ showViewFooter()

ilNewsForContextBlockGUI::showViewFooter ( )

Show additional footer for show/hide notifications.

Definition at line 901 of file class.ilNewsForContextBlockGUI.php.

902 {
903 global $ilUser, $lng, $ilCtrl;
904
905 return; // notifications always shown
906
907 $this->clearFooterLinks();
908 $this->addFooterLink("[".$lng->txt("news_first_letter_of_word_notification")."] ".
909 $lng->txt("news_notifications").": ", "", "", "", false, true);
910 if ($this->view == "hide_notifications")
911 {
912 $this->addFooterLink($lng->txt("show"),
913 $ilCtrl->getLinkTarget($this,
914 "showNotifications"),
915 $ilCtrl->getLinkTarget($this,
916 "showNotifications", "", true),
917 "block_".$this->getBlockType()."_".$this->block_id
918 );
919 $this->addFooterLink($lng->txt("hide"));
920 }
921 else
922 {
923 $this->addFooterLink($lng->txt("show"));
924 $this->addFooterLink($lng->txt("hide"),
925 $ilCtrl->getLinkTarget($this,
926 "hideNotifications"),
927 $ilCtrl->getLinkTarget($this,
928 "hideNotifications", "", true),
929 "block_".$this->getBlockType()."_".$this->block_id
930 );
931 }
932
933 $this->fillFooterLinks();
934 }
fillFooterLinks($a_top=false, $a_numinfo="")
Fill footer links.
addFooterLink($a_text, $a_href="", $a_onclick="", $a_block_id="", $a_top=false, $a_omit_separator=false, $a_checked=false)
Add a footer text/link.
clearFooterLinks()
Clear footer links.

References $ilCtrl, $ilUser, $lng, ilBlockGUI\addFooterLink(), ilBlockGUI\clearFooterLinks(), and ilBlockGUI\fillFooterLinks().

Referenced by fillFooter().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ subscribeNews()

ilNewsForContextBlockGUI::subscribeNews ( )

Subscribe current user from news.

Definition at line 874 of file class.ilNewsForContextBlockGUI.php.

875 {
876 global $ilUser, $ilCtrl;
877
878 include_once("./Services/News/classes/class.ilNewsSubscription.php");
879 ilNewsSubscription::_subscribe($_GET["ref_id"], $ilUser->getId());
880 $ilCtrl->returnToParent($this);
881 }
static _subscribe($a_ref_id, $a_user_id)
Subscribe a user to an object (ref id).

References $_GET, $ilCtrl, $ilUser, and ilNewsSubscription\_subscribe().

+ Here is the call graph for this function:

◆ unsubscribeNews()

ilNewsForContextBlockGUI::unsubscribeNews ( )

Unsubscribe current user from news.

Definition at line 862 of file class.ilNewsForContextBlockGUI.php.

863 {
864 global $ilUser, $ilCtrl;
865
866 include_once("./Services/News/classes/class.ilNewsSubscription.php");
868 $ilCtrl->returnToParent($this);
869 }
static _unsubscribe($a_ref_id, $a_user_id)
Unsubscribe a user from an object (ref id).

References $_GET, $ilCtrl, $ilUser, and ilNewsSubscription\_unsubscribe().

+ Here is the call graph for this function:

Field Documentation

◆ $block_type

ilNewsForContextBlockGUI::$block_type = "news"
static

Definition at line 20 of file class.ilNewsForContextBlockGUI.php.

Referenced by getBlockType().

◆ $st_data

ilNewsForContextBlockGUI::$st_data
static

Definition at line 21 of file class.ilNewsForContextBlockGUI.php.

Referenced by ilNewsForContextBlockGUI().


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