ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilNewsTimelineItemGUI.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2014 ILIAS open source, Extended GPL, see docs/LICENSE */
4
13{
17 protected $lng;
18
22 protected $news_item;
23
27 protected $obj_def;
28
32 protected $user;
33
37 protected $user_edit_all;
38
45
50 protected $ref_id;
51
55 protected $ctrl;
56
62 protected function __construct(ilNewsItem $a_news_item, $a_news_ref_id)
63 {
64 global $DIC;
65
66 $this->lng = $DIC->language();
67 $this->ctrl = $DIC->ctrl();
68 $this->setNewsItem($a_news_item);
69 $this->user = $DIC->user();
70 $this->obj_def = $DIC["objDefinition"];
71 $this->news_item_ref_id = $a_news_ref_id;
72
73 $this->ref_id = (int) $_GET["ref_id"];
74 }
75
82 public static function getInstance(ilNewsItem $a_news_item, $a_news_ref_id)
83 {
84 return new self($a_news_item, $a_news_ref_id);
85 }
86
87
93 public function setNewsItem(ilNewsItem $a_val)
94 {
95 $this->news_item = $a_val;
96 }
97
103 public function getNewsItem()
104 {
105 return $this->news_item;
106 }
107
113 public function setUserEditAll($a_val)
114 {
115 $this->user_edit_all = $a_val;
116 }
117
123 public function getUserEditAll()
124 {
126 }
127
131 public function getDateTime()
132 {
133 $i = $this->getNewsItem();
134 return new ilDateTime($i->getCreationDate(), IL_CAL_DATETIME);
135 }
136
137
141 public function render()
142 {
143 $i = $this->getNewsItem();
144 $tpl = new ilTemplate("tpl.timeline_item.html", true, true, "Services/News");
145
146 include_once("./Services/News/classes/class.ilNewsRendererFactory.php");
147 $news_renderer = ilNewsRendererFactory::getRenderer($i->getContextObjType());
148 $news_renderer->setLanguage($this->lng->getLangKey());
149 $news_renderer->setNewsItem($i, $this->news_item_ref_id);
150
151 $obj_id = $i->getContextObjId();
152
153 // edited?
154 if ($i->getCreationDate() != $i->getUpdateDate()) {
155 $tpl->setCurrentBlock("edited");
156 $update_date = new ilDateTime($i->getUpdateDate(), IL_CAL_DATETIME);
157 $tpl->setVariable("TXT_EDITED", $this->lng->txt("cont_news_edited"));
158 if ($i->getUpdateUserId() > 0 && ($i->getUpdateUserId() != $i->getUserId())) {
159 include_once("./Services/User/classes/class.ilUserUtil.php");
160 $tpl->setVariable("TXT_USR_EDITED", ilUserUtil::getNamePresentation(
161 $i->getUpdateUserId(),
162 false,
163 true,
164 $this->ctrl->getLinkTargetByClass("ilnewstimelinegui")
165 ) . " - ");
166 }
167 include_once("./Services/Calendar/classes/class.ilDatePresentation.php");
168 $tpl->setVariable("TIME_EDITED", ilDatePresentation::formatDate($update_date));
169 $tpl->parseCurrentBlock();
170 }
171
172
173 // context object link
174 include_once("./Services/Link/classes/class.ilLink.php");
175 if ($this->news_item_ref_id > 0 && $this->ref_id != $this->news_item_ref_id) {
176 $tpl->setCurrentBlock("object");
177 $tpl->setVariable("OBJ_TITLE", ilObject::_lookupTitle($obj_id));
178 $tpl->setVariable("OBJ_IMG", ilObject::_getIcon($obj_id));
179 $tpl->setVariable("OBJ_HREF", $news_renderer->getObjectLink());
180 $tpl->parseCurrentBlock();
181 }
182
183 // media
184 if ($i->getContentType() == NEWS_AUDIO &&
185 $i->getMobId() > 0 && ilObject::_exists($i->getMobId())) {
186 include_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
187 include_once("./Services/MediaObjects/classes/class.ilMediaPlayerGUI.php");
188 $mob = new ilObjMediaObject($i->getMobId());
189 $med = $mob->getMediaItem("Standard");
190 $mpl = new ilMediaPlayerGUI("news_pl_" . $i->getMobId());
191 if (strcasecmp("Reference", $med->getLocationType()) == 0) {
192 $mpl->setFile($med->getLocation());
193 } else {
194 $mpl->setFile(ilObjMediaObject::_getURL($mob->getId()) . "/" . $med->getLocation());
195 }
196 $mpl->setDisplayHeight($med->getHeight());
197 //$mpl->setDisplayWidth("100%");
198 //$mpl->setDisplayHeight("320");
199 $tpl->setCurrentBlock("player");
200 $tpl->setVariable(
201 "PLAYER",
202 $mpl->getMp3PlayerHtml()
203 );
204 $tpl->parseCurrentBlock();
205 }
206
207
208 $tpl->setVariable("USER_IMAGE", ilObjUser::_getPersonalPicturePath($i->getUserId(), "xsmall"));
209 if (!$i->getContentIsLangVar()) {
210 $tpl->setVariable("TITLE", $i->getTitle());
211 } else {
212 $tpl->setVariable("TITLE", $this->lng->txt($i->getTitle()));
213 }
214
215 // content
216 $tpl->setVariable("CONTENT", $news_renderer->getTimelineContent());
217
218 include_once("./Services/User/classes/class.ilUserUtil.php");
219 $tpl->setVariable("TXT_USR", ilUserUtil::getNamePresentation(
220 $i->getUserId(),
221 false,
222 true,
223 $this->ctrl->getLinkTargetByClass("ilnewstimelinegui")
224 ));
225
226 include_once("./Services/Calendar/classes/class.ilDatePresentation.php");
227 $tpl->setVariable("TIME", ilDatePresentation::formatDate($this->getDateTime()));
228
229 // actions
230 include_once("Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
232 $list->setListTitle("");
233 $list->setId("news_tl_act_" . $i->getId());
234 //$list->setSelectionHeaderClass("small");
235 //$list->setItemLinkClass("xsmall");
236 //$list->setLinksMode("il_ContainerItemCommand2");
238 $list->setUseImages(false);
239
240 if ($i->getPriority() == 1 && ($i->getUserId() == $this->user->getId() || $this->getUserEditAll())) {
241 $list->addItem(
242 $this->lng->txt("edit"),
243 "",
244 "",
245 "",
246 "",
247 "",
248 "",
249 false,
250 "il.News.edit(" . $i->getId() . ");"
251 );
252 $list->addItem(
253 $this->lng->txt("delete"),
254 "",
255 "",
256 "",
257 "",
258 "",
259 "",
260 false,
261 "il.News.delete(" . $i->getId() . ");"
262 );
263 }
264
265 $news_renderer->addTimelineActions($list);
266
267 $tpl->setVariable("ACTIONS", $list->getHTML());
268
269
270 return $tpl->get();
271 }
272}
user()
Definition: user.php:4
$tpl
Definition: ilias.php:10
$_GET["client_id"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_DATETIME
const NEWS_AUDIO
User interface class for advanced drop-down selection lists.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date @access public.
@classDescription Date and time handling
User interface for media player.
static getRenderer($a_context_obj_type)
Get renderer.
Single news timeline item.
__construct(ilNewsItem $a_news_item, $a_news_ref_id)
Constructor.
getDateTime()
Get datetime.ilDateTime timestamp
render()
Render item.string html
setNewsItem(ilNewsItem $a_val)
Set news item.
static getInstance(ilNewsItem $a_news_item, $a_news_ref_id)
Get instance.
getUserEditAll()
Get user can edit other users postings.
setUserEditAll($a_val)
Set user can edit other users postings.
Class ilObjMediaObject.
static _getURL($a_mob_id)
get directory for files of media object (static)
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 _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
special template class to simplify handling of ITX/PEAR
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
$i
Definition: disco.tpl.php:19
Interface for timeline items.
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
global $DIC
Definition: saml.php:7