5include_once(
"./Services/News/classes/class.ilNewsItem.php");
63 $this->lng =
$DIC->language();
64 $this->tabs =
$DIC->tabs();
65 $this->
user = $DIC->user();
66 $this->toolbar =
$DIC->toolbar();
72 include_once(
"Services/News/classes/class.ilNewsItem.php");
73 if (
$_GET[
"news_item_id"] > 0) {
77 $this->ctrl->saveParameter($this, array(
"news_item_id"));
88 $lng->loadLanguageModule(
"news");
90 $ilCtrl->saveParameter($this,
"add_mode");
103 $lng->LoadLanguageModule(
"news");
117 if (is_object($this->news_item) && $this->news_item->getId() > 0
119 throw new ilException(
"News ID does not match object context.");
124 $next_class = $this->ctrl->getNextClass($this);
125 $cmd = $this->ctrl->getCmd();
127 switch ($next_class) {
129 $html = $this->$cmd();
143 $this->enable_edit = $a_enable_edit;
163 $this->context_obj_id = $a_context_obj_id;
183 $this->context_obj_type = $a_context_obj_type;
203 $this->context_sub_obj_id = $a_context_sub_obj_id;
223 $this->context_sub_obj_type = $a_context_sub_obj_type;
243 $this->form_edit_mode = $a_form_edit_mode;
263 return $form->getHtml();
274 return $form->getHtml();
288 $ilTabs->clearTargets();
290 $form->setFormAction($this->ctrl->getFormAction($this));
307 $lng->loadLanguageModule(
"news");
309 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
315 $text_input->setInfo(
"");
316 $text_input->setRequired(
true);
317 $text_input->setMaxLength(200);
318 $form->addItem($text_input);
322 $text_area->setInfo(
"");
323 $text_area->setRequired(
false);
324 $text_area->setRows(
"4");
326 $text_area->setUseRte(
true);
328 $form->addItem($text_area);
333 $radio_group->addOption($radio_option);
334 $radio_option =
new ilRadioOption(
$lng->txt(
"news_visibility_public"),
"public");
335 $radio_group->addOption($radio_option);
336 $radio_group->setInfo(
$lng->txt(
"news_news_item_visibility_info"));
337 $radio_group->setRequired(
false);
338 $radio_group->setValue(
"users");
339 $form->addItem($radio_group);
343 $media->setSuffixes(array(
"jpeg",
"jpg",
"png",
"gif",
"mp4",
"mp3"));
344 $media->setRequired(
false);
345 $media->setALlowDeletion(
true);
346 $media->setValue(
" ");
347 $form->addItem($media);
361 if (in_array($a_mode, array(self::FORM_CREATE, self::FORM_RE_CREATE))) {
362 $form->addCommandButton(
"saveNewsItem",
$lng->txt(
"save"),
"news_btn_create");
363 $form->addCommandButton(
"cancelSaveNewsItem",
$lng->txt(
"cancel"),
"news_btn_cancel_create");
365 $form->addCommandButton(
"updateNewsItem",
$lng->txt(
"save"),
"news_btn_update");
366 $form->addCommandButton(
"cancelUpdateNewsItem",
$lng->txt(
"cancel"),
"news_btn_cancel_update");
369 $form->setTitle(
$lng->txt(
"news_news_item_head"));
372 if (!$news_set->get(
"enable_rss_for_internal")) {
373 $form->removeItemByPostVar(
"news_visibility");
375 $nv = $form->getItemByPostVar(
"news_visibility");
376 if (is_object($nv)) {
392 $values[
"news_title"] = $this->news_item->getTitle();
393 $values[
"news_content"] = $this->news_item->getContent() . $this->news_item->getContentLong();
394 $values[
"news_visibility"] = $this->news_item->getVisibility();
396 $values[
"news_content_long"] =
"";
400 if ($this->news_item->getMobId() > 0) {
419 if ($form->checkInput()) {
421 $this->news_item->setTitle($form->getInput(
"news_title"));
422 $this->news_item->setContent($form->getInput(
"news_content"));
423 $this->news_item->setVisibility($form->getInput(
"news_visibility"));
428 $media = $_FILES[
"media"];
429 if ($media[
"name"] !=
"") {
431 $this->news_item->setMobId($mob->getId());
435 $this->news_item->setContentLong(
"");
436 if (self::isRteActivated()) {
437 $this->news_item->setContentHtml(
true);
448 $this->news_item->setUserId(
$ilUser->getId());
451 if (!$news_set->get(
"enable_rss_for_internal")) {
452 $this->news_item->setVisibility(
"users");
455 $this->news_item->create();
458 $form->setValuesByPost();
459 return $form->getHtml();
467 if (
$_GET[
"add_mode"] ==
"block") {
468 $ilCtrl->returnToParent($this);
470 $ilCtrl->redirect($this,
"editNews");
487 if ($form->checkInput()) {
488 $this->news_item->setUpdateUserId(
$ilUser->getId());
489 $this->news_item->setTitle($form->getInput(
"news_title"));
490 $this->news_item->setContent($form->getInput(
"news_content"));
491 $this->news_item->setVisibility($form->getInput(
"news_visibility"));
493 $this->news_item->setContentLong(
"");
495 $media = $_FILES[
"media"];
499 if ($media[
"name"] !=
"" ||
$_POST[
"media_delete"] !=
"") {
500 if ($this->news_item->getMobId() > 0 &&
ilObject::_lookupType($this->news_item->getMobId()) ==
"mob") {
501 $old_mob_id = $this->news_item->getMobId();
503 $this->news_item->setMobId(0);
506 if ($media[
"name"] !=
"") {
508 $this->news_item->setMobId($mob->getId());
511 if (self::isRteActivated()) {
512 $this->news_item->setContentHtml(
true);
514 $this->news_item->update();
516 if ($old_mob_id > 0) {
523 $form->setValuesByPost();
524 return $form->getHtml();
532 $ilCtrl->redirect($this,
"editNews");
552 if (
$_GET[
"add_mode"] ==
"block") {
553 $ilCtrl->returnToParent($this);
573 $ilToolbar->addButton(
574 $lng->txt(
"news_add_news"),
575 $ilCtrl->getLinkTarget($this,
"createNewsItem")
606 if (count(
$_POST[
"news_id"]) == 0) {
611 $ilTabs->clearTargets();
613 include_once(
"Services/Utilities/classes/class.ilConfirmationGUI.php");
617 $c_gui->setFormAction(
$ilCtrl->getFormAction($this,
"deleteNewsItems"));
618 $c_gui->setHeaderText(
$lng->txt(
"info_delete_sure"));
619 $c_gui->setCancel(
$lng->txt(
"cancel"),
"editNews");
620 $c_gui->setConfirm(
$lng->txt(
"confirm"),
"deleteNewsItems");
623 foreach (
$_POST[
"news_id"] as $news_id) {
625 $c_gui->addItem(
"news_id[]", $news_id, $news->getTitle());
628 return $c_gui->getHTML();
640 foreach (
$_POST[
"news_id"] as $news_id) {
656 include_once(
"Services/News/classes/class.ilNewsForContextBlockGUI.php");
659 $block_gui->setParentClass(
"ilinfoscreengui");
660 $block_gui->setParentCmd(
"showSummary");
674 $data = $news_item->queryNewsForContext();
676 $block_gui->setTitle(
$lng->txt(
"news_block_news_for_context"));
677 $block_gui->setRowTemplate(
"tpl.block_row_news_for_context.html",
"Services/News");
678 $block_gui->setData(
$data);
680 return $block_gui->getHTML();
700 $data = $news_item->getNewsForRefId(
711 $perm_ref_id =
$_GET[
"ref_id"];
713 $data = $news_item->queryNewsForContext(
721 $data = $news_item->queryNewsForContext();
725 include_once(
"Services/News/classes/class.ilNewsForContextTableGUI.php");
728 $table_gui->setTitle(
$lng->txt(
"news_table_news_for_context"));
729 $table_gui->setRowTemplate(
"tpl.table_row_news_for_context.html",
"Services/News");
730 $table_gui->setData(
$data);
732 $table_gui->setDefaultOrderField(
"creation_date");
733 $table_gui->setDefaultOrderDirection(
"desc");
734 $table_gui->addMultiCommand(
"confirmDeletionNewsItems",
$lng->txt(
"delete"));
735 $table_gui->setTitle(
$lng->txt(
"news"));
736 $table_gui->setSelectAllCheckbox(
"news_id");
739 return $table_gui->getHTML();
754 $ilTabs->clearTargets();
755 $ilTabs->setBackTarget(
757 $ilCtrl->getParentReturn($this)
768 include_once(
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php");
An exception for terminatinating execution or to throw for unit testing.
Confirmation screen class.
Base class for ILIAS Exception handling.
BlockGUI class for block NewsForContext.
TableGUI class for table NewsForContext.
User Interface for NewsItem entities.
getFormEditMode()
Get FormEditMode.
updateNewsItem()
FORM NewsItem: Save NewsItem.
getValuesNewsItem(\ilPropertyFormGUI $a_form)
FORM NewsItem: Get current values for NewsItem form.
__construct()
Constructor.
getNewsForContextTable()
TABLE NewsForContext: Get table HTML.
editNewsItem()
FORM NewsItem: Edit form.
getContextObjType()
Get ContextObjType.
initFormNewsItem($a_mode)
FORM NewsItem: Init form.
cancelUpdate()
Cancel update.
getContextObjId()
Get ContextObjId.
executeCommand()
Execute command.
createNewsItem()
FORM NewsItem: Create NewsItem.
setContextSubObjType($a_context_sub_obj_type)
Set ContextSubObjType.
setContextObjId($a_context_obj_id)
Set ContextObjId.
static isRteActivated()
Is Rte activated.
deleteNewsItems()
Delete news items.
setEnableEdit($a_enable_edit=0)
Set EnableEdit.
getContextSubObjId()
Get ContextSubObjId.
setFormEditMode($a_form_edit_mode)
Set FormEditMode.
setContextSubObjId($a_context_sub_obj_id)
Set ContextSubObjId.
getContextSubObjType()
Get ContextSubObjType.
cancelUpdateNewsItem()
FORM NewsItem: Save NewsItem.
setContextObjType($a_context_obj_type)
Set ContextObjType.
cancelSaveNewsItem()
FORM NewsItem: Save NewsItem.
getEnableEdit()
Get EnableEdit.
saveNewsItem()
FORM NewsItem: Save NewsItem.
getNewsForContextBlock()
BLOCK NewsForContext: Get block HTML.
confirmDeletionNewsItems()
Confirmation Screen.
static getEditForm($a_mode, $a_ref_id)
FORM NewsItem: Init form.
static _getDefaultVisibilityForRefId($a_ref_id)
Get default visibility for reference id.
static _lookupContextObjId($a_news_id)
Context Object ID.
static _getRichTextEditor()
Returns the identifier for the Rich Text Editor.
static _lookupTitle($a_id)
lookup object title
static _lookupType($a_id, $a_reference=false)
lookup object type
This class represents an option in a radio group.
This class represents a text area property in a property form.
This class represents a text property in a property form.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.