ILIAS  release_7 Revision v7.30-3-g800a261c036
ilNewsTimelineItemGUI Class Reference

Single news timeline item. More...

+ Inheritance diagram for ilNewsTimelineItemGUI:
+ Collaboration diagram for ilNewsTimelineItemGUI:

Public Member Functions

 setNewsItem (ilNewsItem $a_val)
 Set news item. More...
 
 getNewsItem ()
 Get news item. More...
 
 setUserEditAll ($a_val)
 Set user can edit other users postings. More...
 
 getUserEditAll ()
 Get user can edit other users postings. More...
 
 getDateTime ()
 Get datetime.
Returns
ilDateTime timestamp
More...
 
 render ()
 Render item.
Returns
string html
More...
 
 renderFooter ()
 Render footer. More...
 
 render ()
 Render item. More...
 
 getDateTime ()
 Get datetime. More...
 

Static Public Member Functions

static getInstance (ilNewsItem $a_news_item, $a_news_ref_id, \ilLikeGUI $a_like_gui)
 Get instance. More...
 

Protected Member Functions

 __construct (ilNewsItem $a_news_item, $a_news_ref_id, \ilLikeGUI $a_like_gui)
 Constructor. More...
 
 renderMedia (ilNewsItem $i)
 Render media. More...
 
 renderMediaModal (ilNewsItem $i)
 Render media. More...
 
 getMediaPath (ilNewsItem $i)
 

Protected Attributes

 $lng
 
 $news_item
 
 $obj_def
 
 $user
 
 $user_edit_all
 
 $news_item_ref_id
 
 $ref_id
 
 $ctrl
 
 $like_gui
 

Detailed Description

Single news timeline item.

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

Definition at line 11 of file class.ilNewsTimelineItemGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilNewsTimelineItemGUI::__construct ( ilNewsItem  $a_news_item,
  $a_news_ref_id,
\ilLikeGUI  $a_like_gui 
)
protected

Constructor.

Parameters
ilNewsItem$a_news_item
$a_news_ref_id
ilLikeGUI$a_like_gui

Definition at line 66 of file class.ilNewsTimelineItemGUI.php.

67 {
68 global $DIC;
69
70 $this->like_gui = $a_like_gui;
71
72 $this->lng = $DIC->language();
73 $this->ctrl = $DIC->ctrl();
74 $this->setNewsItem($a_news_item);
75 $this->user = $DIC->user();
76 $this->obj_def = $DIC["objDefinition"];
77 $this->news_item_ref_id = $a_news_ref_id;
78
79 $this->ref_id = (int) $_GET["ref_id"];
80 }
user()
Definition: user.php:4
$_GET["client_id"]
setNewsItem(ilNewsItem $a_val)
Set news item.
global $DIC
Definition: goto.php:24

References $_GET, $DIC, setNewsItem(), and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ getDateTime()

ilNewsTimelineItemGUI::getDateTime ( )

Get datetime.

Returns
ilDateTime timestamp

Implements ilTimelineItemInt.

Definition at line 131 of file class.ilNewsTimelineItemGUI.php.

132 {
133 $i = $this->getNewsItem();
134 return new ilDateTime($i->getCreationDate(), IL_CAL_DATETIME);
135 }
const IL_CAL_DATETIME
@classDescription Date and time handling
$i
Definition: metadata.php:24

References $i, getNewsItem(), and IL_CAL_DATETIME.

Referenced by render().

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

◆ getInstance()

static ilNewsTimelineItemGUI::getInstance ( ilNewsItem  $a_news_item,
  $a_news_ref_id,
\ilLikeGUI  $a_like_gui 
)
static

Get instance.

Parameters
ilNewsItem$a_news_itemnews item
Returns
ilNewsTimelineItemGUI

Definition at line 87 of file class.ilNewsTimelineItemGUI.php.

88 {
89 return new self($a_news_item, $a_news_ref_id, $a_like_gui);
90 }

Referenced by ilNewsTimelineGUI\loadMore(), and ilNewsTimelineGUI\show().

+ Here is the caller graph for this function:

◆ getMediaPath()

ilNewsTimelineItemGUI::getMediaPath ( ilNewsItem  $i)
protected
Parameters
ilNewsItem$i
Returns
string

Definition at line 365 of file class.ilNewsTimelineItemGUI.php.

366 {
367 $media_path = "";
368 if ($i->getMobId() > 0) {
369 include_once("./Services/MediaObjects/classes/class.ilObjMediaObject.php");
370 include_once("./Services/MediaObjects/classes/class.ilMediaPlayerGUI.php");
371 $mob = new ilObjMediaObject($i->getMobId());
372 $med = $mob->getMediaItem("Standard");
373 if (strcasecmp("Reference", $med->getLocationType()) == 0) {
374 $media_path = $med->getLocation();
375 } else {
376 $media_path = ilObjMediaObject::_getURL($mob->getId()) . "/" . $med->getLocation();
377 }
378 }
379 return $media_path;
380 }
Class ilObjMediaObject.
static _getURL($a_mob_id)
get directory for files of media object (static)

References $i, and ilObjMediaObject\_getURL().

Referenced by renderMedia(), and renderMediaModal().

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

◆ getNewsItem()

ilNewsTimelineItemGUI::getNewsItem ( )

Get news item.

Returns
ilNewsItem news item

Definition at line 105 of file class.ilNewsTimelineItemGUI.php.

References $news_item.

Referenced by getDateTime(), render(), and renderFooter().

+ Here is the caller graph for this function:

◆ getUserEditAll()

ilNewsTimelineItemGUI::getUserEditAll ( )

Get user can edit other users postings.

Returns
bool user can edit all postings

Definition at line 123 of file class.ilNewsTimelineItemGUI.php.

References $user_edit_all.

◆ render()

ilNewsTimelineItemGUI::render ( )

Render item.

Returns
string html

Implements ilTimelineItemInt.

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

141 {
142 $i = $this->getNewsItem();
143 $tpl = new ilTemplate("tpl.timeline_item.html", true, true, "Services/News");
144
145 include_once("./Services/News/classes/class.ilNewsRendererFactory.php");
146 $news_renderer = ilNewsRendererFactory::getRenderer($i->getContextObjType());
147 $news_renderer->setLanguage($this->lng->getLangKey());
148 $news_renderer->setNewsItem($i, $this->news_item_ref_id);
149
150 $obj_id = $i->getContextObjId();
151
152 // edited?
153 if ($i->getCreationDate() != $i->getUpdateDate()) {
154 $tpl->setCurrentBlock("edited");
155 $update_date = new ilDateTime($i->getUpdateDate(), IL_CAL_DATETIME);
156 $tpl->setVariable("TXT_EDITED", $this->lng->txt("cont_news_edited"));
157 if ($i->getUpdateUserId() > 0 && ($i->getUpdateUserId() != $i->getUserId())) {
158 include_once("./Services/User/classes/class.ilUserUtil.php");
159 $tpl->setVariable("TXT_USR_EDITED", ilUserUtil::getNamePresentation(
160 $i->getUpdateUserId(),
161 false,
162 true,
163 $this->ctrl->getLinkTargetByClass("ilnewstimelinegui")
164 ) . " - ");
165 }
166 include_once("./Services/Calendar/classes/class.ilDatePresentation.php");
167 $tpl->setVariable("TIME_EDITED", ilDatePresentation::formatDate($update_date));
168 $tpl->parseCurrentBlock();
169 }
170
171 // context object link
172 include_once("./Services/Link/classes/class.ilLink.php");
173 if ($this->news_item_ref_id > 0 && $this->ref_id != $this->news_item_ref_id) {
174 $tpl->setCurrentBlock("object");
175 $tpl->setVariable("OBJ_TITLE", ilObject::_lookupTitle($obj_id));
176 $tpl->setVariable("OBJ_IMG", ilObject::_getIcon($obj_id));
177 $tpl->setVariable("OBJ_HREF", $news_renderer->getObjectLink());
178 $tpl->parseCurrentBlock();
179 }
180
181 // media
182 if ($i->getMobId() > 0 && ilObject::_exists($i->getMobId())) {
183 $media = $this->renderMedia($i);
184 $tpl->setCurrentBlock("player");
185 $tpl->setVariable("PLAYER", $media);
186 $tpl->parseCurrentBlock();
187 }
188
189 $tpl->setVariable("USER_IMAGE", ilObjUser::_getPersonalPicturePath($i->getUserId(), "small"));
190 $tpl->setVariable(
191 "TITLE",
192 ilNewsItem::determineNewsTitle($i->getContextObjType(), $i->getTitle(), $i->getContentIsLangVar())
193 );
194
195 // content
196 $tpl->setVariable("CONTENT", $news_renderer->getTimelineContent());
197
198 include_once("./Services/User/classes/class.ilUserUtil.php");
199 $tpl->setVariable("TXT_USR", ilUserUtil::getNamePresentation(
200 $i->getUserId(),
201 false,
202 true,
203 $this->ctrl->getLinkTargetByClass("ilnewstimelinegui")
204 ));
205
206 include_once("./Services/Calendar/classes/class.ilDatePresentation.php");
207 $tpl->setVariable("TIME", ilDatePresentation::formatDate($this->getDateTime()));
208
209 // actions
210 include_once("Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
211 $list = new ilAdvancedSelectionListGUI();
212 $list->setListTitle("");
213 $list->setId("news_tl_act_" . $i->getId());
214 //$list->setSelectionHeaderClass("small");
215 //$list->setItemLinkClass("xsmall");
216 //$list->setLinksMode("il_ContainerItemCommand2");
218 $list->setUseImages(false);
219
220 if ($i->getPriority() == 1 && ($i->getUserId() == $this->user->getId() || $this->getUserEditAll())) {
221 if (!$news_renderer->preventEditing()) {
222 $list->addItem(
223 $this->lng->txt("edit"),
224 "",
225 "",
226 "",
227 "",
228 "",
229 "",
230 false,
231 "il.News.edit(" . $i->getId() . ");"
232 );
233 $list->addItem(
234 $this->lng->txt("delete"),
235 "",
236 "",
237 "",
238 "",
239 "",
240 "",
241 false,
242 "il.News.delete(" . $i->getId() . ");"
243 );
244 }
245 }
246
247 $news_renderer->addTimelineActions($list);
248
249 $tpl->setVariable("ACTIONS", $list->getHTML());
250
251 return $tpl->get();
252 }
User interface class for advanced drop-down selection lists.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
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 getRenderer($a_context_obj_type)
Get renderer.
renderMedia(ilNewsItem $i)
Render media.
getDateTime()
Get datetime.ilDateTime timestamp
static _getPersonalPicturePath( $a_usr_id, $a_size="small", $a_force_pic=false, $a_prevent_no_photo_image=false, $html_export=false)
Get path to personal picture.
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:
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41

References $i, $tpl, ilObject\_exists(), ilObject\_getIcon(), ilObjUser\_getPersonalPicturePath(), ilObject\_lookupTitle(), ilNewsItem\determineNewsTitle(), ilAdvancedSelectionListGUI\DOWN_ARROW_DARK, ilDatePresentation\formatDate(), getDateTime(), ilUserUtil\getNamePresentation(), getNewsItem(), ilNewsRendererFactory\getRenderer(), IL_CAL_DATETIME, and renderMedia().

+ Here is the call graph for this function:

◆ renderFooter()

ilNewsTimelineItemGUI::renderFooter ( )

Render footer.

Exceptions
ilCtrlException

Definition at line 325 of file class.ilNewsTimelineItemGUI.php.

326 {
327 $i = $this->getNewsItem();
328
329 // like
330 $this->ctrl->setParameterByClass("ilnewstimelinegui", "news_id", $i->getId());
331 $this->like_gui->setObject(
332 $i->getContextObjId(),
333 $i->getContextObjType(),
334 $i->getContextSubObjId(),
335 $i->getContextSubObjType(),
336 $i->getId()
337 );
338 $html = $this->ctrl->getHTML($this->like_gui);
339
340 // comments
341 $notes_obj_type = ($i->getContextSubObjType() == "")
342 ? $i->getContextObjType()
343 : $i->getContextSubObjType();
344 $note_gui = new ilNoteGUI(
345 $i->getContextObjId(),
346 $i->getContextSubObjId(),
347 $notes_obj_type,
348 false,
349 $i->getId()
350 );
351 $note_gui->setDefaultCommand("getWidget");
352
353 //ilNoteGUI::getListCommentsJSCall($this->ajax_hash, $redraw_js)
354 $html .= $this->ctrl->getHTML($note_gui);
355
356 $this->ctrl->setParameterByClass("ilnewstimelinegui", "news_id", $_GET["news_id"]);
357
358 return $html . $this->renderMediaModal($i);
359 }
renderMediaModal(ilNewsItem $i)
Render media.
Notes GUI class.

References $_GET, $i, getNewsItem(), and renderMediaModal().

+ Here is the call graph for this function:

◆ renderMedia()

ilNewsTimelineItemGUI::renderMedia ( ilNewsItem  $i)
protected

Render media.

Parameters

return

Definition at line 259 of file class.ilNewsTimelineItemGUI.php.

260 {
261 global $DIC;
262
263 $media_path = $this->getMediaPath($i);
264 $mime = ilObjMediaObject::getMimeType($media_path);
265
266 $ui_factory = $DIC->ui()->factory();
267 $ui_renderer = $DIC->ui()->renderer();
268
269 if (in_array($mime, array("image/jpeg", "image/svg+xml", "image/gif", "image/png"))) {
270 $item_id = "il-news-modal-img-" . $i->getId();
271 $title = basename($media_path);
272 $image = $ui_renderer->render($ui_factory->image()->responsive($media_path, $title));
273
274 $img_tpl = new ilTemplate("tpl.news_timeline_image_file.html", true, true, "Services/News");
275 $img_tpl->setVariable("ITEM_ID", $item_id);
276 $img_tpl->setVariable("IMAGE", $image);
277
278 $html = $img_tpl->get();
279 } elseif (in_array($mime, array("audio/mpeg", "audio/ogg", "video/mp4", "video/x-flv", "video/webm"))) {
280 $mp = new ilMediaPlayerGUI();
281 $mp->setFile($media_path);
282 $html = $mp->getMediaPlayerHtml();
283 } else {
284 // download?
285 $html = "";
286 }
287 return $html;
288 }
User interface for media player.
static getMimeType($a_file, $a_external=null)
get mime type for file

References $DIC, $i, getMediaPath(), and ilObjMediaObject\getMimeType().

Referenced by render().

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

◆ renderMediaModal()

ilNewsTimelineItemGUI::renderMediaModal ( ilNewsItem  $i)
protected

Render media.

Parameters
ilNewsItem
Returns
string

Definition at line 295 of file class.ilNewsTimelineItemGUI.php.

296 {
297 global $DIC;
298
299 $media_path = $this->getMediaPath($i);
300 $mime = ilObjMediaObject::getMimeType($media_path);
301
302 $ui_factory = $DIC->ui()->factory();
303 $ui_renderer = $DIC->ui()->renderer();
304
305 $modal_html = "";
306
307 if (in_array($mime, array("image/jpeg", "image/svg+xml", "image/gif", "image/png"))) {
308 $title = basename($media_path);
309 $item_id = "il-news-modal-img-" . $i->getId();
310 $image = $ui_renderer->render($ui_factory->image()->responsive($media_path, $title));
311 $modal = ilModalGUI::getInstance();
312 $modal->setId($item_id);
313 $modal->setType(ilModalGUI::TYPE_LARGE);
314 $modal->setBody($image);
315 $modal->setHeading($title);
316 $modal_html = $modal->getHTML();
317 }
318 return $modal_html;
319 }
static getInstance()
Get instance.

References $DIC, $i, ilModalGUI\getInstance(), getMediaPath(), ilObjMediaObject\getMimeType(), and ilModalGUI\TYPE_LARGE.

Referenced by renderFooter().

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

◆ setNewsItem()

ilNewsTimelineItemGUI::setNewsItem ( ilNewsItem  $a_val)

Set news item.

Parameters
ilNewsItem$a_valnews item

Definition at line 96 of file class.ilNewsTimelineItemGUI.php.

97 {
98 $this->news_item = $a_val;
99 }

Referenced by __construct().

+ Here is the caller graph for this function:

◆ setUserEditAll()

ilNewsTimelineItemGUI::setUserEditAll (   $a_val)

Set user can edit other users postings.

Parameters
bool$a_valuser can edit all postings

Definition at line 114 of file class.ilNewsTimelineItemGUI.php.

115 {
116 $this->user_edit_all = $a_val;
117 }

Field Documentation

◆ $ctrl

ilNewsTimelineItemGUI::$ctrl
protected

Definition at line 53 of file class.ilNewsTimelineItemGUI.php.

◆ $like_gui

ilNewsTimelineItemGUI::$like_gui
protected

Definition at line 58 of file class.ilNewsTimelineItemGUI.php.

◆ $lng

ilNewsTimelineItemGUI::$lng
protected

Definition at line 16 of file class.ilNewsTimelineItemGUI.php.

◆ $news_item

ilNewsTimelineItemGUI::$news_item
protected

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

Referenced by getNewsItem().

◆ $news_item_ref_id

ilNewsTimelineItemGUI::$news_item_ref_id
protected

Definition at line 42 of file class.ilNewsTimelineItemGUI.php.

◆ $obj_def

ilNewsTimelineItemGUI::$obj_def
protected

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

◆ $ref_id

ilNewsTimelineItemGUI::$ref_id
protected

Definition at line 48 of file class.ilNewsTimelineItemGUI.php.

◆ $user

ilNewsTimelineItemGUI::$user
protected

Definition at line 31 of file class.ilNewsTimelineItemGUI.php.

◆ $user_edit_all

ilNewsTimelineItemGUI::$user_edit_all
protected

Definition at line 36 of file class.ilNewsTimelineItemGUI.php.

Referenced by getUserEditAll().


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