24 include_once(
"./Services/Block/classes/class.ilBlockGUI.php");
25 include_once(
"./Services/Block/classes/class.ilExternalFeedBlockGUIGen.php");
26 include_once(
"./Services/Feeds/classes/class.ilExternalFeed.php");
55 $this->ctrl = $DIC->ctrl();
56 $this->lng = $DIC->language();
57 $this->
user = $DIC->user();
58 $this->access = $DIC->access();
60 $lng = $DIC->language();
62 parent::__construct();
64 $lng->loadLanguageModule(
"feed");
67 $this->
setRowTemplate(
"tpl.block_external_feed_row.html",
"Services/Feeds");
77 return self::$block_type;
102 case "saveFeedBlock":
103 case "updateFeedBlock":
104 case "editFeedBlock":
106 case "confirmDeleteFeedBlock":
124 $this->feed_block = $a_block;
125 $this->
setTitle($this->feed_block->getTitle());
126 $this->
setBlockId($this->feed_block->getId());
129 include_once(
"./Services/Feeds/classes/class.ilExternalFeed.php");
131 $this->feed->setUrl($this->feed_block->getFeedUrl());
136 $ilCtrl->setParameter($this,
"block_id", $this->feed_block->getId());
146 $next_class =
$ilCtrl->getNextClass();
147 $cmd =
$ilCtrl->getCmd(
"getHTML");
149 switch ($next_class) {
151 return $this->$cmd();
163 parent::fillDataSection();
180 if (
$ilSetting->get(
"block_limit_pdfeed") == 0) {
191 $this->feed->fetch();
192 $this->
setData($this->feed->getItems());
197 "external_feed_block_id",
210 "confirmDeleteFeedBlock" 214 $ilCtrl->setParameter($this,
"external_feed_block_id",
"");
219 (
$ilUser->getPref(
"il_feed_js") ==
"n" &&
$_SESSION[
"il_feed_js"] !=
"y")) {
223 return parent::getHTML() . $add;
231 if (
$ilCtrl->getCmdClass() !=
"ilcolumngui" &&
$ilCtrl->getCmd() !=
"enableJS") {
236 if ($sess_feed_js !=
"n" &&
237 (
$ilUser->getPref(
"il_feed_js") !=
"n" || $sess_feed_js ==
"y")) {
239 if (!$this->feed->checkCacheHit()) {
259 $rel_tpl =
new ilTemplate(
"tpl.dynamic_reload.html",
true,
true,
"Services/Feeds");
260 $rel_tpl->setVariable(
"TXT_LOADING",
$lng->txt(
"feed_loading_feed"));
261 $rel_tpl->setVariable(
"BLOCK_ID",
"block_pdfeed_" . $this->
getBlockId());
262 $rel_tpl->setVariable(
264 $ilCtrl->getLinkTargetByClass(
"ilcolumngui",
"updateBlock",
"",
true)
268 $rel_tpl->setVariable(
"TXT_FEED_CLICK_HERE",
$lng->txt(
"feed_no_js_click_here"));
269 $rel_tpl->setVariable(
271 $ilCtrl->getLinkTargetByClass(
"ilpdexternalfeedblockgui",
"disableJS")
274 return $rel_tpl->get();
287 $rel_tpl =
new ilTemplate(
"tpl.js_enabler.html",
true,
true,
"Services/Feeds");
288 $rel_tpl->setVariable(
"BLOCK_ID",
"block_pdfeed_" . $this->
getBlockId());
289 $rel_tpl->setVariable(
291 $ilCtrl->getLinkTargetByClass(
"ilpdexternalfeedblockgui",
"enableJS",
true)
294 return $rel_tpl->get();
304 $ilUser->writePref(
"il_feed_js",
"n");
305 $ilCtrl->redirectByClass(
"ilpersonaldesktopgui",
"show");
313 $ilUser->writePref(
"il_feed_js",
"y");
325 $ilCtrl->setParameter($this,
"feed_item_id", $item->getId());
326 $this->tpl->setVariable(
"VAL_TITLE", $item->getTitle());
327 $this->tpl->setVariable(
329 $ilCtrl->getLinkTarget($this,
"showFeedItem")
331 $ilCtrl->setParameter($this,
"feed_item_id",
"");
342 return '<div class="small">' . ((int) count($this->
getData())) .
" " .
$lng->txt(
"feed_feed_items") .
"</div>";
353 include_once(
"./Services/News/classes/class.ilNewsItem.php");
355 $this->feed->fetch();
356 foreach ($this->feed->getItems() as $item) {
357 if ($item->getId() ==
$_GET[
"feed_item_id"]) {
363 $tpl =
new ilTemplate(
"tpl.show_feed_item.html",
true,
true,
"Services/Feeds");
365 if (is_object($c_item)) {
366 if (trim($c_item->getSummary()) !=
"") {
367 $tpl->setCurrentBlock(
"content");
368 $tpl->setVariable(
"VAL_CONTENT", $c_item->getSummary());
369 $tpl->parseCurrentBlock();
371 if (trim($c_item->getDate()) !=
"" || trim($c_item->getAuthor()) !=
"") {
372 $tpl->setCurrentBlock(
"date_author");
373 if (trim($c_item->getAuthor()) !=
"") {
374 $tpl->setVariable(
"VAL_AUTHOR", $c_item->getAuthor() .
" - ");
376 $tpl->setVariable(
"VAL_DATE", $c_item->getDate());
377 $tpl->parseCurrentBlock();
380 if (trim($c_item->getLink()) !=
"") {
381 $tpl->setCurrentBlock(
"plink");
382 $tpl->setVariable(
"HREF_LINK", $c_item->getLink());
383 $tpl->setVariable(
"TXT_LINK",
$lng->txt(
"feed_open_source_page"));
384 $tpl->parseCurrentBlock();
386 $tpl->setVariable(
"VAL_TITLE", $c_item->getTitle());
389 include_once(
"./Services/PersonalDesktop/classes/class.ilPDContentBlockGUI.php");
391 $content_block->setContent(
$tpl->get());
392 $content_block->setTitle($this->
getTitle());
394 $content_block->addHeaderCommand(
395 $ilCtrl->getParentReturn($this),
396 $lng->txt(
"selected_items_back")
399 return $content_block->getHTML();
420 $lng->loadLanguageModule(
"block");
422 require_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
429 $text_input->setRequired(
true);
430 $text_input->setMaxLength(200);
431 $this->form_gui->addItem($text_input);
435 $text_input->
setInfo(
$lng->txt(
"block_feed_block_feed_url_info"));
436 $text_input->setRequired(
true);
437 $text_input->setMaxLength(250);
438 $this->form_gui->addItem($text_input);
443 $this->form_gui->addCommandButton(
"saveFeedBlock",
$lng->txt(
"save"));
444 $this->form_gui->addCommandButton(
"cancelSaveFeedBlock",
$lng->txt(
"cancel"));
446 $this->form_gui->addCommandButton(
"updateFeedBlock",
$lng->txt(
"save"));
447 $this->form_gui->addCommandButton(
"cancelUpdateFeedBlock",
$lng->txt(
"cancel"));
450 $this->form_gui->setTitle(
$lng->txt(
"block_feed_block_head"));
451 $this->form_gui->setFormAction($this->ctrl->getFormAction($this));
465 $a_feed_block->setContextObjId(
$ilCtrl->getContextObjId());
466 $a_feed_block->setContextObjType(
$ilCtrl->getContextObjType());
467 $a_feed_block->setType(
"pdfeed");
478 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
482 $c_gui->setFormAction(
$ilCtrl->getFormAction($this,
"deleteFeedBlock"));
483 $c_gui->setHeaderText(
$lng->txt(
"info_delete_sure"));
484 $c_gui->setCancel(
$lng->txt(
"cancel"),
"exitDeleteFeedBlock");
485 $c_gui->setConfirm(
$lng->txt(
"confirm"),
"deleteFeedBlock");
489 "external_feed_block_id",
490 $this->feed_block->getId(),
491 $this->feed_block->getTitle(),
495 return $c_gui->getHTML();
505 $ilCtrl->returnToParent($this);
515 $this->feed_block->delete();
516 $ilCtrl->returnToParent($this);
createFeedBlock()
FORM FeedBlock: Create ExternalFeedBlock.
fillRow($item)
Fill feed item row.
prepareFormFeedBlock(&$a_form_gui)
FORM FeedBlock: Prepare form.
getOverview()
Get overview.
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
setBlock($a_block)
Do most of the initialisation.
BlockGUI class for external feed block on the personal desktop.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
confirmDeleteFeedBlock()
Confirmation of feed block deletion.
static getBlockType()
Get block type.
Handles external Feeds via Magpie library.
deleteFeedBlock()
Delete feed block.
GUI class for external news feed custom block.
getHTML()
Get block HTML code.
setTitle($a_title)
Set Title.
fillDataSection()
Fill data section.
setBlockId($a_block_id=0)
Set Block Id.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static getScreenMode()
Get Screen Mode for current command.
static isRepositoryObject()
Get block type.
setData($a_data)
Set Data.
prepareSaveFeedBlock(&$a_feed_block)
FORM FeedBlock: Prepare Saving of FeedBlock.
special template class to simplify handling of ITX/PEAR
setAvailableDetailLevels($a_max, $a_min=0)
Set Available Detail Levels.
This class represents a text property in a property form.
Create styles array
The data for the language used.
getBlockId()
Get Block Id.
showFeedItem()
Show Feed Item.
create()
Create Form for Block.
addBlockCommand( $a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
Add Block Command.
initFormFeedBlock($a_mode)
FORM FeedBlock: Init form.
setLimit($a_limit)
Set Limit.
exitDeleteFeedBlock()
Cancel deletion of feed block.
executeCommand()
execute command
BlockGUI class for (centered) Content on Personal Desktop.
setRowTemplate($a_rowtemplatename, $a_rowtemplatedir="")
Set Row Template Name.
getCurrentDetailLevel()
Get Current Detail Level.
Confirmation screen class.
__construct()
Constructor.