From: Jan Schneider Date: Sat, 7 Nov 2009 17:43:52 +0000 (+0100) Subject: Generate non-volatile data outside of loops. (patrick.abiven@apitech.fr). X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=f7f6d7d66a66f6bc0d8d185eb74f0619b7e38abc;p=horde.git Generate non-volatile data outside of loops. (patrick.abiven@apitech.fr). --- diff --git a/kronolith/docs/CHANGES b/kronolith/docs/CHANGES index 2c5b813f9..0407fcdb2 100644 --- a/kronolith/docs/CHANGES +++ b/kronolith/docs/CHANGES @@ -25,6 +25,7 @@ v3.0-git v2.3.3-cvs ---------- +[jan] Optimize event link generation (patrick.abiven@apitech.fr). [jan] Fix Oracle SQL scripts. [jan] Fix charset of ajax responses. [jan] Add Croatian translation (Matej Vela ). diff --git a/kronolith/lib/Event.php b/kronolith/lib/Event.php index 88ff1c90b..4bc9f4196 100644 --- a/kronolith/lib/Event.php +++ b/kronolith/lib/Event.php @@ -2294,13 +2294,16 @@ abstract class Kronolith_Event $from_url = Horde::selfUrl(true, false, true); } - $link = ''; $event_title = $this->getTitle(); + $view_url = $this->getViewUrl(array('datetime' => $datetime->strftime('%Y%m%d%H%M%S'), 'url' => $from_url), $full); + $read_permission = $this->hasPermission(PERMS_READ); + + $link = ''; if (isset($this->external) && !empty($this->external_link)) { $link = $this->external_link; $link = Horde::linkTooltip(Horde::url($link), '', 'event-tentative', '', '', Horde_String::wrap($this->description)); - } elseif (isset($this->eventID) && $this->hasPermission(PERMS_READ)) { - $link = Horde::linkTooltip($this->getViewUrl(array('datetime' => $datetime->strftime('%Y%m%d%H%M%S'), 'url' => $from_url), $full), + } elseif (isset($this->eventID) && $read_permission) { + $link = Horde::linkTooltip($view_url, $event_title, $this->getStatusClass(), '', '', $this->getTooltip(), @@ -2310,9 +2313,7 @@ abstract class Kronolith_Event $link .= @htmlspecialchars($event_title, ENT_QUOTES, Horde_Nls::getCharset()); - if ($this->hasPermission(PERMS_READ) && - (isset($this->eventID) || - isset($this->external))) { + if ($read_permission && (isset($this->eventID) || isset($this->external))) { $link .= ''; } @@ -2364,15 +2365,13 @@ abstract class Kronolith_Event $delete = ''; if ((!$this->isPrivate() || $this->getCreatorId() == Horde_Auth::getAuth()) && $this->hasPermission(PERMS_EDIT)) { - $editurl = $this->getEditUrl(array('datetime' => $datetime->strftime('%Y%m%d%H%M%S'), - 'url' => $from_url)); + $editurl = Horde_Util::addParameter($view_url, 'view', 'EditEvent', !$full); $edit = Horde::link($editurl, sprintf(_("Edit %s"), $event_title), 'iconEdit') . Horde::fullSrcImg('edit-' . $icon_color . '.png', array('attr' => 'alt="' . _("Edit") . '"')) . ''; } if ($this->hasPermission(PERMS_DELETE)) { - $delurl = $this->getDeleteUrl(array('datetime' => $datetime->strftime('%Y%m%d%H%M%S'), - 'url' => $from_url)); + $delurl = Horde_Util::addParameter($view_url, 'view', 'DeleteEvent', !$full); $delete = Horde::link($delurl, sprintf(_("Delete %s"), $event_title), 'iconDelete') . Horde::fullSrcImg('delete-' . $icon_color . '.png', array('attr' => 'alt="' . _("Delete") . '"')) . ''; diff --git a/kronolith/lib/View/Month.php b/kronolith/lib/View/Month.php index 795306f0b..909748e4a 100644 --- a/kronolith/lib/View/Month.php +++ b/kronolith/lib/View/Month.php @@ -135,6 +135,10 @@ class Kronolith_View_Month { $showLocation = Kronolith::viewShowLocation(); $showTime = Kronolith::viewShowTime(); + $day_url = Horde::applicationUrl('day.php'); + $this_link = $this->link(0, true); + $new_url = Horde_Util::addParameter(Horde::applicationUrl('new.php'), 'url', $this_link); + $new_img = Horde::img('new_small.png', '+'); foreach ($this->_currentCalendars as $id => $cal) { if ($sidebyside) { @@ -166,19 +170,16 @@ class Kronolith_View_Month { $html .= '
'; - $url = Horde_Util::addParameter(Horde::applicationUrl('day.php'), - 'date', $date->dateString()); + $url = Horde_Util::addParameter($day_url, 'date', $date->dateString()); $html .= '' . $date->mday . ''; if ($addLinks) { - $url = Horde_Util::addParameter(Horde::applicationUrl('new.php'), - array('date' => $date->dateString(), - 'url' => $this->link(0, true))); + $url = Horde_Util::addParameter($new_url, 'date', $date->dateString()); if ($sidebyside) { $url = Horde_Util::addParameter($url, 'calendar', $id); } $html .= Horde::link($url, _("Create a New Event"), 'newEvent') . - Horde::img('new_small.png', '+') . ''; + $new_img . ''; } if ($date->dayOfWeek() == Horde_Date::DATE_MONDAY) { @@ -193,7 +194,7 @@ class Kronolith_View_Month { foreach ($this->_events[$date_stamp] as $event) { if (!$sidebyside || $event->getCalendar() == $id) { $html .= '
getCSSColors() . '>' - . $event->getLink($date, true, $this->link(0, true)); + . $event->getLink($date, true, $this_link); if ($showTime) { $html .= '
' . htmlspecialchars($event->getTimeRange()) . '
'; }