• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

Services/News/classes/class.ilNewsItemGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2006 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
00021         +-----------------------------------------------------------------------------+
00022 */
00023 
00024 include_once ("Services/News/classes/class.ilNewsItemGUIGen.php");
00025 
00034 class ilNewsItemGUI extends ilNewsItemGUIGen
00035 {
00036 
00037         function __construct()
00038         {
00039                 global $ilCtrl;
00040                 
00041                 parent::__construct();
00042                 
00043                 $ilCtrl->saveParameter($this, "add_mode");
00044         }
00045         
00046         function getHTML()
00047         {
00048                 global $lng, $ilCtrl;
00049                 
00050                 $lng->LoadLanguageModule("news");
00051                 
00052                 return $this->getNewsForContextBlock();
00053         }
00054         
00060         public function prepareBlockNewsForContext(&$a_block_gui)
00061         {
00062                 $a_block_gui->setParentClass("ilinfoscreengui");
00063                 $a_block_gui->setParentCmd("showSummary");
00064                 $a_block_gui->setEnableEdit($this->getEnableEdit());
00065         }
00066 
00070         function prepareBlockQueryNewsForContext(&$a_news_item)
00071         {
00072                 $a_news_item->setContextObjId($this->ctrl->getContextObjId());
00073                 $a_news_item->setContextObjType($this->ctrl->getContextObjType());
00074         }
00075         
00079         function prepareSaveNewsItem(&$a_news_item)
00080         {
00081                 global $ilUser;
00082                 
00083                 $a_news_item->setContextObjId($this->ctrl->getContextObjId());
00084                 $a_news_item->setContextObjType($this->ctrl->getContextObjType());
00085                 $a_news_item->setUserId($ilUser->getId());
00086 
00087                 $news_set = new ilSetting("news");
00088                 if (!$news_set->get("enable_rss_for_internal"))
00089                 {
00090                         $a_news_item->setVisibility("users");
00091                 }
00092         }
00093         
00099         public function prepareFormNewsItem(&$a_form_gui)
00100         {
00101                 $a_form_gui->setTitleIcon(ilUtil::getImagePath("icon_news.gif"));
00102                 
00103                 $news_set = new ilSetting("news");
00104                 if (!$news_set->get("enable_rss_for_internal"))
00105                 {
00106                         $a_form_gui->removeItemByPostVar("news_visibility");
00107                 }
00108                 else
00109                 {
00110                         $nv = $a_form_gui->getItemByPostVar("news_visibility");
00111                         if (is_object($nv))
00112                         {
00113                                 $nv->setValue(ilNewsItem::_getDefaultVisibilityForRefId($_GET["ref_id"]));
00114                         }
00115                 }
00116         }
00117         
00122         function saveNewsItem()
00123         {
00124                 if (!$this->getEnableEdit())
00125                 {
00126                         return;
00127                 }
00128                 
00129                 return parent::saveNewsItem();
00130         }
00131         
00132         function exitSaveNewsItem()
00133         {
00134                 global $ilCtrl;
00135                 
00136                 if ($_GET["add_mode"] == "block")
00137                 {
00138                         $ilCtrl->returnToParent($this);
00139                 }
00140                 else
00141                 {
00142                         $ilCtrl->redirect($this, "editNews");
00143                 }
00144         }
00145 
00150         function updateNewsItem()
00151         {
00152                 if (!$this->getEnableEdit())
00153                 {
00154                         return;
00155                 }
00156                 
00157                 return parent::updateNewsItem();
00158         }
00159 
00160         function exitUpdateNewsItem()
00161         {
00162                 global $ilCtrl;
00163                 
00164                 $ilCtrl->redirect($this, "editNews");
00165         }
00166 
00171         function cancelUpdateNewsItem()
00172         {
00173                 return $this->editNews();
00174         }
00175 
00180         function cancelSaveNewsItem()
00181         {
00182                 global $ilCtrl;
00183                 
00184                 if ($_GET["add_mode"] == "block")
00185                 {
00186                         $ilCtrl->returnToParent($this);
00187                 }
00188                 else
00189                 {
00190                         return $this->editNews();
00191                 }
00192         }
00193 
00194         function editNews()
00195         {
00196                 if (!$this->getEnableEdit())
00197                 {
00198                         return;
00199                 }
00200                 return $this->getNewsForContextTable();
00201         }
00202 
00203         
00204         function cancelUpdate()
00205         {
00206                 return $this->editNews();
00207         }
00208         
00212         function prepareTableNewsForContext(&$a_table_gui)
00213         {
00214                 global $ilCtrl, $lng;
00215                 
00216                 $a_table_gui->setDefaultOrderField("creation_date");
00217                 $a_table_gui->setDefaultOrderDirection("desc");
00218                 $a_table_gui->addCommandButton("createNewsItem", $lng->txt("add"));
00219                 $a_table_gui->addMultiCommand("confirmDeletionNewsItems", $lng->txt("delete"));
00220                 $a_table_gui->setTitle($lng->txt("news"), "icon_news.gif", $lng->txt("news"));
00221                 $a_table_gui->setSelectAllCheckbox("news_id");
00222         }
00223 
00227         function confirmDeletionNewsItems()
00228         {
00229                 global $ilCtrl, $lng;
00230 
00231                 if (!$this->getEnableEdit())
00232                 {
00233                         return;
00234                 }
00235                 
00236                 // check whether at least one item is selected
00237                 if (count($_POST["news_id"]) == 0)
00238                 {
00239                         ilUtil::sendInfo($lng->txt("no_checkbox"));
00240                         return $this->editNews();
00241                 }
00242 
00243                 include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
00244                 $c_gui = new ilConfirmationGUI();
00245                 
00246                 // set confirm/cancel commands
00247                 $c_gui->setFormAction($ilCtrl->getFormAction($this, "deleteNewsItems"));
00248                 $c_gui->setHeaderText($lng->txt("info_delete_sure"));
00249                 $c_gui->setCancel($lng->txt("cancel"), "editNews");
00250                 $c_gui->setConfirm($lng->txt("confirm"), "deleteNewsItems");
00251 
00252                 // add items to delete
00253                 foreach($_POST["news_id"] as $news_id)
00254                 {
00255                         $news = new ilNewsItem($news_id);
00256                         $c_gui->addItem("news_id[]", $news_id, $news->getTitle(),
00257                                 ilUtil::getImagePath("icon_news.gif"));
00258                 }
00259                 
00260                 return $c_gui->getHTML();
00261         }
00262 
00266         function deleteNewsItems()
00267         {
00268                 if (!$this->getEnableEdit())
00269                 {
00270                         return;
00271                 }
00272                 // delete all selected news items
00273                 foreach($_POST["news_id"] as $news_id)
00274                 {
00275                         $news = new ilNewsItem($news_id);
00276                         $news->delete();
00277                 }
00278                 
00279                 return $this->editNews();
00280         }
00281 }

Generated on Fri Dec 13 2013 17:57:00 for ILIAS Release_3_9_x_branch .rev 46835 by  doxygen 1.7.1