ILIAS  release_8 Revision v8.24
ilNewsTimelineItemGUI Class Reference

Single news timeline item. More...

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

Public Member Functions

 setNewsItem (ilNewsItem $a_val)
 
 getNewsItem ()
 
 setUserEditAll (bool $a_val)
 Set user can edit other users postings. More...
 
 getUserEditAll ()
 Get user can edit other users postings. More...
 
 getDateTime ()
 Get datetime. More...
 
 render ()
 Render item. More...
 
 renderFooter ()
 
 render ()
 Render item. More...
 
 getDateTime ()
 Get datetime. More...
 

Static Public Member Functions

static getInstance (ilNewsItem $a_news_item, int $a_news_ref_id, ilLikeGUI $a_like_gui)
 

Protected Member Functions

 __construct (ilNewsItem $a_news_item, int $a_news_ref_id, ilLikeGUI $a_like_gui)
 
 renderMedia (ilNewsItem $i)
 
 renderMediaModal (ilNewsItem $i)
 
 getMediaPath (ilNewsItem $i)
 

Protected Attributes

ilLanguage $lng
 
ilNewsItem $news_item
 
ilObjectDefinition $obj_def
 
ilObjUser $user
 
bool $user_edit_all
 
int $news_item_ref_id
 
int $ref_id
 
ilCtrl $ctrl
 
ilLikeGUI $like_gui
 
StandardGUIRequest $std_request
 

Detailed Description

Single news timeline item.

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

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

Constructor & Destructor Documentation

◆ __construct()

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

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

42 {
43 global $DIC;
44
45 $this->like_gui = $a_like_gui;
46 $this->lng = $DIC->language();
47 $this->ctrl = $DIC->ctrl();
48 $this->setNewsItem($a_news_item);
49 $this->user = $DIC->user();
50 $this->obj_def = $DIC["objDefinition"];
51 $this->news_item_ref_id = $a_news_ref_id;
52
53 $this->std_request = new StandardGUIRequest(
54 $DIC->http(),
55 $DIC->refinery()
56 );
57 $this->ref_id = $this->std_request->getRefId();
58 }
global $DIC
Definition: feed.php:28

References $DIC, ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), setNewsItem(), and ILIAS\Repository\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 94 of file class.ilNewsTimelineItemGUI.php.

95 {
96 $i = $this->getNewsItem();
97 return new ilDateTime($i->getCreationDate(), IL_CAL_DATETIME);
98 }
const IL_CAL_DATETIME
@classDescription Date and time handling
$i
Definition: metadata.php:41

References $i, and IL_CAL_DATETIME.

◆ getInstance()

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

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

64 : self {
65 return new self($a_news_item, $a_news_ref_id, $a_like_gui);
66 }

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

+ Here is the caller graph for this function:

◆ getMediaPath()

ilNewsTimelineItemGUI::getMediaPath ( ilNewsItem  $i)
protected

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

299 : string
300 {
301 $media_path = "";
302 if ($i->getMobId() > 0) {
303 $mob = new ilObjMediaObject($i->getMobId());
304 $med = $mob->getMediaItem("Standard");
305 if (strcasecmp("Reference", $med->getLocationType()) === 0) {
306 $media_path = $med->getLocation();
307 } else {
308 $media_path = ilObjMediaObject::_getURL($mob->getId()) . "/" . $med->getLocation();
309 }
310 }
311 return $media_path;
312 }
static _getURL(int $a_mob_id)
get directory for files of media object

References $i, and ilObjMediaObject\_getURL().

+ Here is the call graph for this function:

◆ getNewsItem()

ilNewsTimelineItemGUI::getNewsItem ( )

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

74 {
75 return $this->news_item;
76 }
A news item can be created by different sources.

◆ getUserEditAll()

ilNewsTimelineItemGUI::getUserEditAll ( )

Get user can edit other users postings.

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

89 : bool
90 {
92 }

◆ render()

ilNewsTimelineItemGUI::render ( )

Render item.

Returns
string html

Implements ilTimelineItemInt.

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

100 : string
101 {
102 $i = $this->getNewsItem();
103 $tpl = new ilTemplate("tpl.timeline_item.html", true, true, "Services/News");
104
105 $news_renderer = ilNewsRendererFactory::getRenderer($i->getContextObjType());
106 $news_renderer->setLanguage($this->lng->getLangKey());
107 $news_renderer->setNewsItem($i, $this->news_item_ref_id);
108
109 $obj_id = $i->getContextObjId();
110
111 // edited?
112 if ($i->getCreationDate() !== $i->getUpdateDate()) {
113 $tpl->setCurrentBlock("edited");
114 $update_date = new ilDateTime($i->getUpdateDate(), IL_CAL_DATETIME);
115 $tpl->setVariable("TXT_EDITED", $this->lng->txt("cont_news_edited"));
116 if ($i->getUpdateUserId() > 0 && ($i->getUpdateUserId() !== $i->getUserId())) {
117 $tpl->setVariable("TXT_USR_EDITED", ilUserUtil::getNamePresentation(
118 $i->getUpdateUserId(),
119 false,
120 true,
121 $this->ctrl->getLinkTargetByClass("ilnewstimelinegui")
122 ) . " - ");
123 }
124 $tpl->setVariable("TIME_EDITED", ilDatePresentation::formatDate($update_date));
125 $tpl->parseCurrentBlock();
126 }
127
128 // context object link
129 if ($this->news_item_ref_id > 0 && $this->ref_id !== $this->news_item_ref_id) {
130 $tpl->setCurrentBlock("object");
131 $tpl->setVariable("OBJ_TITLE", ilObject::_lookupTitle($obj_id));
132 $tpl->setVariable("OBJ_IMG", ilObject::_getIcon($obj_id));
133 $tpl->setVariable("OBJ_HREF", $news_renderer->getObjectLink());
134 $tpl->parseCurrentBlock();
135 }
136
137 // media
138 if ($i->getMobId() > 0 && ilObject::_exists($i->getMobId())) {
139 $media = $this->renderMedia($i);
140 $tpl->setCurrentBlock("player");
141 $tpl->setVariable("PLAYER", $media);
142 $tpl->parseCurrentBlock();
143 }
144
145 $tpl->setVariable("USER_IMAGE", ilObjUser::_getPersonalPicturePath($i->getUserId(), "small"));
146 $tpl->setVariable(
147 "TITLE",
148 ilNewsItem::determineNewsTitle($i->getContextObjType(), $i->getTitle(), $i->getContentIsLangVar())
149 );
150
151 // content
152 $tpl->setVariable("CONTENT", $news_renderer->getTimelineContent());
153
154 $tpl->setVariable("TXT_USR", ilUserUtil::getNamePresentation(
155 $i->getUserId(),
156 false,
157 true,
158 $this->ctrl->getLinkTargetByClass("ilnewstimelinegui")
159 ));
160
161 $tpl->setVariable("TIME", ilDatePresentation::formatDate($this->getDateTime()));
162
163 // actions
164 $list = new ilAdvancedSelectionListGUI();
165 $list->setListTitle("");
166 $list->setId("news_tl_act_" . $i->getId());
168 $list->setUseImages(false);
169
170 if ($i->getPriority() === 1 && ($i->getUserId() === $this->user->getId() || $this->getUserEditAll())) {
171 if (!$news_renderer->preventEditing()) {
172 $list->addItem(
173 $this->lng->txt("edit"),
174 "",
175 "",
176 "",
177 "",
178 "",
179 "",
180 false,
181 "il.News.edit(" . $i->getId() . ");"
182 );
183 $list->addItem(
184 $this->lng->txt("delete"),
185 "",
186 "",
187 "",
188 "",
189 "",
190 "",
191 false,
192 "il.News.delete(" . $i->getId() . ");"
193 );
194 }
195 }
196
197 $news_renderer->addTimelineActions($list);
198
199 $tpl->setVariable("ACTIONS", $list->getHTML());
200
201 return $tpl->get();
202 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
static determineNewsTitle(string $a_context_obj_type, string $a_title, bool $a_content_is_lang_var, int $a_agg_ref_id=0, array $a_aggregation=[])
Determine title for news item entry.
static getRenderer(string $a_context_obj_type)
static _getPersonalPicturePath(int $a_usr_id, string $a_size="small", bool $a_force_pic=false, bool $a_prevent_no_photo_image=false, bool $html_export=false)
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _exists(int $id, bool $reference=false, ?string $type=null)
checks if an object exists in object_data
static _lookupTitle(int $obj_id)
special template class to simplify handling of ITX/PEAR
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link="", bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $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(), ilUserUtil\getNamePresentation(), ilNewsRendererFactory\getRenderer(), IL_CAL_DATETIME, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ renderFooter()

ilNewsTimelineItemGUI::renderFooter ( )

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

263 : string
264 {
265 $i = $this->getNewsItem();
266
267 // like
268 $this->ctrl->setParameterByClass("ilnewstimelinegui", "news_id", $i->getId());
269 $this->like_gui->setObject(
270 $i->getContextObjId(),
271 $i->getContextObjType(),
272 $i->getContextSubObjId(),
273 (string) $i->getContextSubObjType(),
274 $i->getId()
275 );
276 $html = $this->ctrl->getHTML($this->like_gui);
277
278 // comments
279 $notes_obj_type = ($i->getContextSubObjType() == "")
280 ? $i->getContextObjType()
281 : $i->getContextSubObjType();
282 $note_gui = new ilNoteGUI(
283 $i->getContextObjId(),
284 $i->getContextSubObjId(),
285 $notes_obj_type,
286 false,
287 $i->getId()
288 );
289 $note_gui->setDefaultCommand("getWidget");
290 $note_gui->setShowEmptyListMessage(false);
291 $note_gui->setShowHeader(false);
292 $html .= $this->ctrl->getHTML($note_gui);
293
294 $this->ctrl->setParameterByClass("ilnewstimelinegui", "news_id", $this->std_request->getNewsId());
295
296 return $html . $this->renderMediaModal($i);
297 }
Notes GUI class.

References $i, and ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ renderMedia()

ilNewsTimelineItemGUI::renderMedia ( ilNewsItem  $i)
protected

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

204 : string
205 {
206 global $DIC;
207
208 $media_path = $this->getMediaPath($i);
209 $mime = ilObjMediaObject::getMimeType($media_path);
210
211 $ui_factory = $DIC->ui()->factory();
212 $ui_renderer = $DIC->ui()->renderer();
213
214 if (in_array($mime, ["image/jpeg", "image/svg+xml", "image/gif", "image/png"])) {
215 $item_id = "il-news-modal-img-" . $i->getId();
216 $title = basename($media_path);
217 $image = $ui_renderer->render($ui_factory->image()->responsive($media_path, $title));
218
219 $img_tpl = new ilTemplate("tpl.news_timeline_image_file.html", true, true, "Services/News");
220 $img_tpl->setVariable("ITEM_ID", $item_id);
221 $img_tpl->setVariable("IMAGE", $image);
222
223 $html = $img_tpl->get();
224 } elseif (in_array($mime, ["video/mp4"])) {
225 $video = $ui_factory->player()->video($media_path);
226 $html = $ui_renderer->render($video);
227 } elseif (in_array($mime, ["audio/mpeg"])) {
228 $audio = $ui_factory->player()->audio($media_path);
229 $html = $ui_renderer->render($audio);
230 } else {
231 // download?
232 $html = "";
233 }
234 return $html;
235 }
static getMimeType(string $a_file, bool $a_external=false)
get mime type for file

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

+ Here is the call graph for this function:

◆ renderMediaModal()

ilNewsTimelineItemGUI::renderMediaModal ( ilNewsItem  $i)
protected

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

237 : string
238 {
239 global $DIC;
240
241 $media_path = $this->getMediaPath($i);
242 $mime = ilObjMediaObject::getMimeType($media_path);
243
244 $ui_factory = $DIC->ui()->factory();
245 $ui_renderer = $DIC->ui()->renderer();
246
247 $modal_html = "";
248
249 if (in_array($mime, ["image/jpeg", "image/svg+xml", "image/gif", "image/png"])) {
250 $title = basename($media_path);
251 $item_id = "il-news-modal-img-" . $i->getId();
252 $image = $ui_renderer->render($ui_factory->image()->responsive($media_path, $title));
253 $modal = ilModalGUI::getInstance();
254 $modal->setId($item_id);
255 $modal->setType(ilModalGUI::TYPE_LARGE);
256 $modal->setBody($image);
257 $modal->setHeading($title);
258 $modal_html = $modal->getHTML();
259 }
260 return $modal_html;
261 }
static getInstance()

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

+ Here is the call graph for this function:

◆ setNewsItem()

ilNewsTimelineItemGUI::setNewsItem ( ilNewsItem  $a_val)

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

68 : void
69 {
70 $this->news_item = $a_val;
71 }

Referenced by __construct().

+ Here is the caller graph for this function:

◆ setUserEditAll()

ilNewsTimelineItemGUI::setUserEditAll ( bool  $a_val)

Set user can edit other users postings.

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

81 : void
82 {
83 $this->user_edit_all = $a_val;
84 }

Field Documentation

◆ $ctrl

ilCtrl ilNewsTimelineItemGUI::$ctrl
protected

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

◆ $like_gui

ilLikeGUI ilNewsTimelineItemGUI::$like_gui
protected

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

◆ $lng

ilLanguage ilNewsTimelineItemGUI::$lng
protected

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

◆ $news_item

ilNewsItem ilNewsTimelineItemGUI::$news_item
protected

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

◆ $news_item_ref_id

int ilNewsTimelineItemGUI::$news_item_ref_id
protected

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

◆ $obj_def

ilObjectDefinition ilNewsTimelineItemGUI::$obj_def
protected

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

◆ $ref_id

int ilNewsTimelineItemGUI::$ref_id
protected

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

◆ $std_request

StandardGUIRequest ilNewsTimelineItemGUI::$std_request
protected

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

◆ $user

ilObjUser ilNewsTimelineItemGUI::$user
protected

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

◆ $user_edit_all

bool ilNewsTimelineItemGUI::$user_edit_all
protected

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


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