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...
 

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.

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

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  }
$_GET["client_id"]
user()
Definition: user.php:4
global $DIC
Definition: goto.php:24
setNewsItem(ilNewsItem $a_val)
Set news item.
+ 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.

References $i, getNewsItem(), and IL_CAL_DATETIME.

Referenced by render().

132  {
133  $i = $this->getNewsItem();
134  return new ilDateTime($i->getCreationDate(), IL_CAL_DATETIME);
135  }
const IL_CAL_DATETIME
$i
Definition: metadata.php:24
+ 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.

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

88  {
89  return new self($a_news_item, $a_news_ref_id, $a_like_gui);
90  }
+ 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.

References ilObjMediaObject\_getURL(), ilObjMediaObject\getMediaItem(), and ilNewsItem\getMobId().

Referenced by renderMedia(), and renderMediaModal().

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  }
getMediaItem($a_purpose)
get item for media purpose
getMobId()
Get MobId.
static _getURL($a_mob_id)
get directory for files of media object (static)
Class ilObjMediaObject.
+ 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.

Referenced by render().

+ Here is the caller graph for this function:

◆ render()

ilNewsTimelineItemGUI::render ( )

Render item.

Returns
string html

Implements ilTimelineItemInt.

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

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(), getUserEditAll(), IL_CAL_DATETIME, renderMedia(), and user().

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");
217  $list->setHeaderIcon(ilAdvancedSelectionListGUI::DOWN_ARROW_DARK);
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  }
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
getUserEditAll()
Get user can edit other users postings.
getDateTime()
Get datetime.ilDateTime timestamp
const IL_CAL_DATETIME
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
static _lookupTitle($a_id)
lookup object title
renderMedia(ilNewsItem $i)
Render media.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
user()
Definition: user.php:4
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 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:
static getRenderer($a_context_obj_type)
Get renderer.
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.
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41
$i
Definition: metadata.php:24
+ Here is the call graph for this function:

◆ renderFooter()

ilNewsTimelineItemGUI::renderFooter ( )

Render footer.

Exceptions
ilCtrlException

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

References $_GET, $i, getNewsItem(), renderMediaModal(), and ilNoteGUI\setDefaultCommand().

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.
$_GET["client_id"]
Notes GUI class.
$i
Definition: metadata.php:24
setDefaultCommand($a_val)
Set default command.
+ Here is the call graph for this function:

◆ renderMedia()

ilNewsTimelineItemGUI::renderMedia ( ilNewsItem  $i)
protected

Render media.

Parameters

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

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

Referenced by render().

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  }
static getMimeType($a_file, $a_external=null)
get mime type for file
getId()
Get Id.
global $DIC
Definition: goto.php:24
User interface for media player.
+ 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.

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

Referenced by renderFooter().

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 getMimeType($a_file, $a_external=null)
get mime type for file
getId()
Get Id.
global $DIC
Definition: goto.php:24
static getInstance()
Get instance.
+ 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.

Referenced by __construct().

97  {
98  $this->news_item = $a_val;
99  }
+ 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: