From a86a71805e5c3319ad1ebfa7838bd344ca2d4f87 Mon Sep 17 00:00:00 2001 From: Matheus Zych Date: Tue, 16 Dec 2025 12:51:39 +0100 Subject: [PATCH 1/2] Removes plus symbols from title of media objects in news timeline --- .../News/classes/class.ilNewsTimelineItemGUI.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php b/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php index 67f6b3e7aaac..e85539a3e4f4 100755 --- a/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php +++ b/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php @@ -210,7 +210,7 @@ protected function renderMedia(NewsItem $i): string if (isset($this->item_image[$i->getId()]) && isset($this->item_modal[$i->getId()])) { $image = $this->item_image[$i->getId()]; } else { - $title = basename($media_path); + $title = $this->getMediaObject($i)->getTitle(); $image = $ui_factory->image()->responsive($media_path, $title); $modal_page = $ui_factory->modal()->lightboxImagePage($image, $title); $modal = $ui_factory->modal()->lightbox($modal_page); @@ -255,7 +255,7 @@ protected function renderMediaModal(NewsItem $i): string $modal_html = ""; if (in_array($mime, ["image/jpeg", "image/svg+xml", "image/gif", "image/png"])) { - $title = basename($media_path); + $title = $this->getMediaObject($i)->getTitle(); $image = $ui_factory->image()->responsive($media_path, $title); $modal_page = $ui_factory->modal()->lightboxImagePage($image, $title); $modal = $ui_factory->modal()->lightbox($modal_page); @@ -303,11 +303,11 @@ public function renderFooter(): string protected function getMediaPath(NewsItem $i): string { - $media_path = ""; - if ($i->getMobId() > 0) { - $mob = new ilObjMediaObject($i->getMobId()); - $media_path = $mob->getStandardSrc(); - } - return $media_path; + return $i->getMobId() > 0 ? $this->getMediaObject($i)->getStandardSrc() : ""; + } + + protected function getMediaObject(NewsItem $i): ilObjMediaObject + { + return new ilObjMediaObject($i->getMobId()); } } From ea55f6df417a8b1ed09c388bab10eca26dee7e2e Mon Sep 17 00:00:00 2001 From: Matheus Zych Date: Wed, 17 Dec 2025 07:18:31 +0100 Subject: [PATCH 2/2] Moves ilObjMediaObject initialization to constructor of ilNewsTimelineItemGUI --- .../classes/class.ilNewsTimelineItemGUI.php | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php b/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php index e85539a3e4f4..ddc6fb94047d 100755 --- a/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php +++ b/components/ILIAS/News/classes/class.ilNewsTimelineItemGUI.php @@ -43,6 +43,8 @@ class ilNewsTimelineItemGUI implements ilTimelineItemInt */ protected array $item_modal = []; + protected readonly ilObjMediaObject $media_object; + protected function __construct( protected readonly NewsItem $news_item, protected readonly ilLikeGUI $like_gui @@ -63,6 +65,7 @@ protected function __construct( ->internal() ->gui(); $this->notes = $DIC->notes(); + $this->media_object = new ilObjMediaObject($this->news_item->getMobId()); } public static function getInstance( @@ -136,7 +139,7 @@ public function render(): string // media if ($this->news_item->getMobId() > 0 && ilObject::_exists($this->news_item->getMobId())) { - $media = $this->renderMedia($this->news_item); + $media = $this->renderMedia(); $tpl->setCurrentBlock("player"); $tpl->setVariable("PLAYER", $media); $tpl->parseCurrentBlock(); @@ -198,25 +201,25 @@ public function render(): string return $tpl->get(); } - protected function renderMedia(NewsItem $i): string + protected function renderMedia(): string { - $media_path = $this->getMediaPath($i); + $media_path = $this->getMediaPath(); $mime = ilObjMediaObject::getMimeType($media_path); $ui_factory = $this->gui->ui()->factory(); $ui_renderer = $this->gui->ui()->renderer(); if (in_array($mime, ["image/jpeg", "image/svg+xml", "image/gif", "image/png"])) { - if (isset($this->item_image[$i->getId()]) && isset($this->item_modal[$i->getId()])) { - $image = $this->item_image[$i->getId()]; + if (isset($this->item_image[$this->news_item->getId()]) && isset($this->item_modal[$this->news_item->getId()])) { + $image = $this->item_image[$this->news_item->getId()]; } else { - $title = $this->getMediaObject($i)->getTitle(); + $title = $this->media_object->getTitle(); $image = $ui_factory->image()->responsive($media_path, $title); $modal_page = $ui_factory->modal()->lightboxImagePage($image, $title); $modal = $ui_factory->modal()->lightbox($modal_page); $image = $image->withAction($modal->getShowSignal()); - $this->item_image[$i->getId()] = $image; - $this->item_modal[$i->getId()] = $modal; + $this->item_image[$this->news_item->getId()] = $image; + $this->item_modal[$this->news_item->getId()] = $modal; } $html = $ui_renderer->render($image); } elseif (in_array($mime, ["video/mp4", "video/youtube", "video/vimeo"])) { @@ -226,7 +229,7 @@ protected function renderMedia(NewsItem $i): string $audio = $ui_factory->player()->audio($media_path); $html = $ui_renderer->render($audio); } elseif (in_array($mime, ["application/pdf"])) { - $this->ctrl->setParameterByClass(ilNewsTimelineGUI::class, "news_id", $i->getId()); + $this->ctrl->setParameterByClass(ilNewsTimelineGUI::class, "news_id", $this->news_item->getId()); $link = $ui_factory->link()->standard( basename($media_path), $this->ctrl->getLinkTargetByClass(ilNewsTimelineGUI::class, "downloadMob") @@ -239,29 +242,29 @@ protected function renderMedia(NewsItem $i): string return $html; } - protected function renderMediaModal(NewsItem $i): string + protected function renderMediaModal(): string { $ui_factory = $this->gui->ui()->factory(); $ui_renderer = $this->gui->ui()->renderer(); - if (isset($this->item_image[$i->getId()]) && isset($this->item_modal[$i->getId()])) { - $modal = $this->item_modal[$i->getId()]; + if (isset($this->item_image[$this->news_item->getId()]) && isset($this->item_modal[$this->news_item->getId()])) { + $modal = $this->item_modal[$this->news_item->getId()]; return $ui_renderer->render($modal); } - $media_path = $this->getMediaPath($i); + $media_path = $this->getMediaPath(); $mime = ilObjMediaObject::getMimeType($media_path); $modal_html = ""; if (in_array($mime, ["image/jpeg", "image/svg+xml", "image/gif", "image/png"])) { - $title = $this->getMediaObject($i)->getTitle(); + $title = $this->media_object->getTitle(); $image = $ui_factory->image()->responsive($media_path, $title); $modal_page = $ui_factory->modal()->lightboxImagePage($image, $title); $modal = $ui_factory->modal()->lightbox($modal_page); $image = $image->withAction($modal->getShowSignal()); - $this->item_image[$i->getId()] = $image; - $this->item_modal[$i->getId()] = $modal; + $this->item_image[$this->news_item->getId()] = $image; + $this->item_modal[$this->news_item->getId()] = $modal; $modal_html = $ui_renderer->render($modal); } return $modal_html; @@ -301,13 +304,8 @@ public function renderFooter(): string return $html . $this->renderMediaModal($this->news_item); } - protected function getMediaPath(NewsItem $i): string - { - return $i->getMobId() > 0 ? $this->getMediaObject($i)->getStandardSrc() : ""; - } - - protected function getMediaObject(NewsItem $i): ilObjMediaObject + protected function getMediaPath(): string { - return new ilObjMediaObject($i->getMobId()); + return $this->news_item->getMobId() > 0 ? $this->media_object->getStandardSrc() : ""; } }