From: Jan Schneider Date: Wed, 9 Dec 2009 14:07:48 +0000 (+0100) Subject: Use Horde_Url. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=a0a22dc8230b41eeb738795f1688c7ccbdb9ed16;p=horde.git Use Horde_Url. --- diff --git a/kronolith/lib/Block/monthlist.php b/kronolith/lib/Block/monthlist.php index 5a1c2ae72..14d2134c1 100644 --- a/kronolith/lib/Block/monthlist.php +++ b/kronolith/lib/Block/monthlist.php @@ -43,13 +43,12 @@ class Horde_Block_Kronolith_monthlist extends Horde_Block { */ function _title() { - global $registry; - if (isset($this->_params['calendar']) && $this->_params['calendar'] != '__all') { - $url_params = array('display_cal' => $this->_params['calendar']); - } else { - $url_params = array(); + $url = Horde::url($GLOBALS['registry']->getInitialPage(), true); + if (isset($this->_params['calendar']) && + $this->_params['calendar'] != '__all') { + $url->add('display_cal', $this->_params['calendar']); } - return Horde::link(Horde::url(Horde_Util::addParameter($registry->getInitialPage(), $url_params), true)) . _("Upcoming Events") . ''; + return $url->link() . _("Upcoming Events") . ''; } /** diff --git a/kronolith/lib/FreeBusy/View/Day.php b/kronolith/lib/FreeBusy/View/Day.php index 96dce8a45..af46d02a2 100644 --- a/kronolith/lib/FreeBusy/View/Day.php +++ b/kronolith/lib/FreeBusy/View/Day.php @@ -22,11 +22,11 @@ class Kronolith_FreeBusy_View_Day extends Kronolith_FreeBusy_View { $prev->mday--; $next = new Horde_Date($this->_start); $next->mday++; - return Horde::link('#', _("Previous Day"), '', '', 'return switchDate(' . $prev->dateString() . ');') + return Horde::url('#')->link(array('title' => _("Previous Day"), 'onclick' => 'return switchDate(' . $prev->dateString() . ');')) . Horde::img('nav/left.png', '<', null, $registry->getImageDir('horde')) . '' . $this->_start->strftime($prefs->getValue('date_format')) - . Horde::link('#', _("Next Day"), '', '', 'return switchDate(' . $next->dateString() . ');') + . Horde::url('#')->link(array('title' => _("Next Day"), 'onclick' => 'return switchDate(' . $next->dateString() . ');')) . Horde::img('nav/right.png', '>', null, $registry->getImageDir('horde')) . ''; } diff --git a/kronolith/lib/FreeBusy/View/Month.php b/kronolith/lib/FreeBusy/View/Month.php index ee9b75448..497b13b32 100644 --- a/kronolith/lib/FreeBusy/View/Month.php +++ b/kronolith/lib/FreeBusy/View/Month.php @@ -25,11 +25,11 @@ class Kronolith_FreeBusy_View_Month extends Kronolith_FreeBusy_View { $prev->month--; $next = new Horde_Date($this->_start); $next->month++; - return Horde::link('#', _("Previous Month"), '', '', 'return switchDate(' . $prev->dateString() . ');') + return Horde::url('#')->link(array('title' => _("Previous Month"), 'onclick' => 'return switchDate(' . $prev->dateString() . ');')) . Horde::img('nav/left.png', '<', null, $registry->getImageDir('horde')) . '' . $this->_start->strftime('%B %Y') - . Horde::link('#', _("Next Month"), '', '', 'return switchDate(' . $next->dateString() . ');') + . Horde::url('#')->link(array('title' => _("Next Month"), 'onclick' => 'return switchDate(' . $next->dateString() . ');')) . Horde::img('nav/right.png', '>', null, $registry->getImageDir('horde')) . ''; } @@ -48,7 +48,8 @@ class Kronolith_FreeBusy_View_Month extends Kronolith_FreeBusy_View { $t = new Horde_Date($this->_start); while ($span_left > 0) { $span_left -= $span; - $week_label = Horde::link('#', '', '', '', 'return switchDateView(\'Week\',' . $t->dateString() . ');') . ("Week") . ' ' . $week . ''; + $week_label = Horde::url('#')->link(array('onclick' => 'return switchDateView(\'Week\',' . $t->dateString() . ');')) + . ("Week") . ' ' . $week . ''; $hours_html .= sprintf('%s', $span, $dayWidth, $week_label); $week++; @@ -61,7 +62,8 @@ class Kronolith_FreeBusy_View_Month extends Kronolith_FreeBusy_View { $t = new Horde_Date(array('month' => $this->_start->month, 'mday' => $this->_start->mday + $i, 'year' => $this->_start->year)); - $day_label = Horde::link('#', '', '', '', 'return switchDateView(\'Day\',' . $t->dateString() . ');') . sprintf("%s.", $i + 1) . ''; + $day_label = Horde::url('#')->link(array('onclick' => 'return switchDateView(\'Day\',' . $t->dateString() . ');')) + . ($i + 1) . '.'; $hours_html .= sprintf('%s', $dayWidth, $day_label); } diff --git a/kronolith/lib/FreeBusy/View/Week.php b/kronolith/lib/FreeBusy/View/Week.php index b0ea0c65d..1e9f4dd4a 100644 --- a/kronolith/lib/FreeBusy/View/Week.php +++ b/kronolith/lib/FreeBusy/View/Week.php @@ -25,14 +25,14 @@ class Kronolith_FreeBusy_View_Week extends Kronolith_FreeBusy_View { $next->mday += 7; $end = new Horde_Date($this->_start); $end->mday += $this->_days - 1; - return Horde::link('#', _("Previous Week"), '', '', 'return switchDate(' . $prev->dateString() . ');') + return Horde::url('#')->link(array('title' => _("Previous Week"), 'onclick' => 'return switchDate(' . $prev->dateString() . ');')) . Horde::img('nav/left.png', '<', null, $registry->getImageDir('horde')) . '' . $this->_start->strftime($prefs->getValue('date_format')) . ' - ' . $end->strftime($prefs->getValue('date_format')) - . Horde::link('#', _("Next Week"), '', '', 'return switchDate(' . $next->dateString() . ');') . - Horde::img('nav/right.png', '>', null, $registry->getImageDir('horde')) . - ''; + . Horde::url('#')->link(array('title' => _("Next Week"), 'onclick' => 'return switchDate(' . $next->dateString() . ');')) + . Horde::img('nav/right.png', '>', null, $registry->getImageDir('horde')) + . ''; } function _hours() @@ -50,7 +50,8 @@ class Kronolith_FreeBusy_View_Week extends Kronolith_FreeBusy_View { $t = new Horde_Date(array('month' => $this->_start->month, 'mday' => $this->_start->mday + $i, 'year' => $this->_start->year)); - $day_label = Horde::link('#', '', '', '', 'return switchDateView(\'Day\',' . $t->dateString() . ');') . $t->strftime($date_format) . ''; + $day_label = Horde::url('#')->link(array('onclick' => 'return switchDateView(\'Day\',' . $t->dateString() . ');')) + . $t->strftime($date_format) . ''; $hours_html .= sprintf('%s', $span, $dayWidth, $day_label); } diff --git a/kronolith/lib/View/EditEvent.php b/kronolith/lib/View/EditEvent.php index 2e2782725..0419ea4b7 100644 --- a/kronolith/lib/View/EditEvent.php +++ b/kronolith/lib/View/EditEvent.php @@ -88,7 +88,7 @@ class Kronolith_View_EditEvent { } if (isset($url)) { - $cancelurl = $url; + $cancelurl = new Horde_Url($url); } else { $cancelurl = Horde::applicationUrl('month.php', true) ->add(array('month' => $month, 'year' => $year)); diff --git a/kronolith/templates/attendees/attendees.inc b/kronolith/templates/attendees/attendees.inc index 09bd87a3f..c0874b6f6 100644 --- a/kronolith/templates/attendees/attendees.inc +++ b/kronolith/templates/attendees/attendees.inc @@ -55,7 +55,7 @@ function switchDateView(view, date) $status): ?> - getImageDir('horde')) . ' ' . Horde::link('#', sprintf(_("Edit %s"), $name), '', '', "performAction('edit', decodeURIComponent('" . rawurlencode($email) . "')); return false;") . Horde::img('edit.png', '', null, $registry->getImageDir('horde')) . '' ?> + link(array('title' => sprintf(_("Remove %s"), $name), 'onclick' => "performAction('remove', decodeURIComponent('" . rawurlencode($email) . "')); return false;")) . Horde::img('delete.png', '', null, $registry->getImageDir('horde')) . ' ' . Horde::url('#')->link(array('title' => sprintf(_("Edit %s"), $name), 'onclick' => "performAction('edit', decodeURIComponent('" . rawurlencode($email) . "')); return false;")) . Horde::img('edit.png', '', null, $registry->getImageDir('horde')) . '' ?> '))) ?> @@ -91,7 +91,7 @@ function switchDateView(view, date) $resource): ?> - getImageDir('horde')) ?> + link(array('title' => sprintf(_("Remove %s"), $resource['name']), 'onclick' => "performAction('removeResource', " . $id . "); return false;")) . Horde::img('delete.png', '', null, $registry->getImageDir('horde')) ?> @@ -127,7 +127,7 @@ function switchDateView(view, date) hasMethod('contacts/search')): ?> - ' . _("Address Book") . '' ?> + link(array('class' => 'widget', 'onclick' => 'window.open(\'' . Horde::applicationUrl('contacts.php') . '\', \'contacts\', \'toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,width=550,height=270,left=100,top=100\'); return false;')) . Horde::img('addressbook_browse.png') . '
' . _("Address Book") . '' ?> diff --git a/kronolith/templates/calendar_list.php b/kronolith/templates/calendar_list.php index 721457184..b65344006 100644 --- a/kronolith/templates/calendar_list.php +++ b/kronolith/templates/calendar_list.php @@ -36,7 +36,7 @@ add('display_cal', 'remote_' . $calendar['url']); echo $url->link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($url)) . '' ?> - ' ?> + link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($calendar['url'])) . '' ?> add('url', $calendar['url'])->link(array('title' => _("Edit"))) . $edit_img . '' ?>   @@ -46,7 +46,7 @@ get('name')) ?> add('display_cal', $calendar->getName()); echo $url->link(array('title' => _("Click or copy this URL to display this calendar"))) . htmlspecialchars(shorten_url($url)) . '' ?> - get('owner') ? $calendar->get('owner') : '-system-') . '/' . $calendar->getName() . '.ics'; echo Horde::link($url, _("Click or copy this URL to display this calendar"), '', '_blank') . htmlspecialchars(shorten_url($url)) . '' ?> + get('owner') ? $calendar->get('owner') : '-system-') . '/' . $calendar->getName() . '.ics'; echo $url->link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($url)) . '' ?> add('c', $calendar->getName())->link(array('title' => _("Edit"))) . $edit_img . '' ?> add('share', $calendar->getName())->link(array('title' => _("Change Permissions"), 'target' => '_blank', 'onclick' => Horde::popupJs($perms_url_base, array('params' => array('share' => $calendar->getName()), 'urlencode' => true)) . 'return false;')) . $perms_img . '' ?> diff --git a/kronolith/templates/day/head.inc b/kronolith/templates/day/head.inc index 97ef786c2..fae90b096 100644 --- a/kronolith/templates/day/head.inc +++ b/kronolith/templates/day/head.inc @@ -2,9 +2,9 @@ getTomorrow(); $yesterday = $this->getYesterday(); -echo Horde::link($this->link(-1), _("Previous day"), 'iconNav', '', 'return ShowView(\'Day\', \'' . $yesterday->dateString() . '\');') . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(-1)->link(array('title' => _("Previous day"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Day\', \'' . $yesterday->dateString() . '\');')) . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; echo '' . htmlspecialchars($this->getTime($prefs->getValue('date_format'))) . ''; -echo Horde::link($this->link(1), _("Next day"), 'iconNav', '', 'return ShowView(\'Day\', \'' . $tomorrow->dateString() . '\');') . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(1)->link(array('title' => _("Next day"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Day\', \'' . $tomorrow->dateString() . '\');')) . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; ?> diff --git a/kronolith/templates/edit/edit.inc b/kronolith/templates/edit/edit.inc index bfff30f23..902f2f703 100644 --- a/kronolith/templates/edit/edit.inc +++ b/kronolith/templates/edit/edit.inc @@ -48,7 +48,7 @@ @@ -244,7 +244,7 @@ if ($event->alarm) { @@ -343,8 +343,8 @@ if ($event->alarm) { @@ -413,7 +413,7 @@ endif; diff --git a/kronolith/templates/edit/edit_timespan.inc b/kronolith/templates/edit/edit_timespan.inc index 5ab501b3f..3c6d9518b 100644 --- a/kronolith/templates/edit/edit_timespan.inc +++ b/kronolith/templates/edit/edit_timespan.inc @@ -26,7 +26,7 @@ @@ -75,8 +75,8 @@ diff --git a/kronolith/templates/month/head.inc b/kronolith/templates/month/head.inc index 45faabb4c..6cca9b0a9 100644 --- a/kronolith/templates/month/head.inc +++ b/kronolith/templates/month/head.inc @@ -2,9 +2,9 @@ getMonth(-1); $next = $this->getMonth(1); -echo Horde::link($this->link(-1), _("Last Month"), 'iconNav', '', 'return ShowView(\'Month\', \'' . $prev->dateString() . '\');') . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(-1)->link(array('title' => _("Last Month"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Month\', \'' . $prev->dateString() . '\');')) . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; echo '' . htmlspecialchars($this->date->strftime('%B %Y')) . ''; -echo Horde::link($this->link(1), _("Next Month"), 'iconNav', '', 'return ShowView(\'Month\', \'' . $next->dateString() . '\');') . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(1)->link(array('title' => _("Next Month"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Month\', \'' . $next->dateString() . '\');')) . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; ?> diff --git a/kronolith/templates/month/head_side_by_side.inc b/kronolith/templates/month/head_side_by_side.inc index 21c0bf463..44e1a6a7c 100644 --- a/kronolith/templates/month/head_side_by_side.inc +++ b/kronolith/templates/month/head_side_by_side.inc @@ -2,9 +2,9 @@ getMonth(-1); $next = $this->getMonth(1); -echo Horde::link($this->link(-1), _("Last Month"), 'iconNav', '', 'return ShowView(\'Month\', \'' . $prev->dateString() . '\');') . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(-1)->link(array('title' => _("Last Month"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Month\', \'' . $prev->dateString() . '\');')) . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; echo htmlspecialchars($this->date->strftime('%B %Y')); -echo Horde::link($this->link(1), _("Next Month"), 'iconNav', '', 'return ShowView(\'Month\', \'' . $next->dateString() . '\');') . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(1)->link(array('title' => _("Next Month"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Month\', \'' . $next->dateString() . '\');')) . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; ?> diff --git a/kronolith/templates/view/view.inc b/kronolith/templates/view/view.inc index 02457a315..7013a001b 100644 --- a/kronolith/templates/view/view.inc +++ b/kronolith/templates/view/view.inc @@ -160,7 +160,7 @@ if ($this->event->isInitialized() && $this->event->alarm > 0): hasMethod('mail/compose'); foreach ($attendees as $email => $status): $full = empty($status['name']) ? $email : Horde_Mime_Address::trimAddress($status['name'] . (strpos($email, '@') === false ? '' : ' <' . $email . '>')) ?> - + diff --git a/kronolith/templates/week/head.inc b/kronolith/templates/week/head.inc index 503c96b70..354b2f6e8 100644 --- a/kronolith/templates/week/head.inc +++ b/kronolith/templates/week/head.inc @@ -3,9 +3,9 @@ $currentView = is_a($this, 'Kronolith_View_WorkWeek') ? 'WorkWeek' : 'Week'; $prev = $this->getWeek(-1); $next = $this->getWeek(1); -echo Horde::link($this->link(-1), _("Last week"), 'iconNav', '', 'return ShowView(\'' . $currentView . '\', \'' . $prev->dateString() . '\');') . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(-1)->link(array('title' => _("Last week"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'' . $currentView . '\', \'' . $prev->dateString() . '\');')) . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; echo '' . htmlspecialchars($this->days[$this->startDay]->getTime($prefs->getValue('date_format')) . ' - ' . $this->days[$this->endDay]->getTime($prefs->getValue('date_format'))) . ''; -echo Horde::link($this->link(1), _("Next week"), 'iconNav', '', 'return ShowView(\'' . $currentView . '\', \'' . $next->dateString() . '\');') . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(1)->link(array('title' => _("Next week"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'' . $currentView . '\', \'' . $next->dateString() . '\');')) . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; ?> @@ -31,7 +31,7 @@ if (Kronolith::getDefaultCalendar(Horde_Perms::EDIT) && . ''; } ?> - link(), '', 'widget') . $day->getTime('%A, %d.') ?> + link()->link(array('class' => 'widget')) . $day->getTime('%A, %d.') ?> diff --git a/kronolith/templates/year/head.inc b/kronolith/templates/year/head.inc index 5ce84533e..e3fa8a769 100644 --- a/kronolith/templates/year/head.inc +++ b/kronolith/templates/year/head.inc @@ -1,7 +1,7 @@

link(-1), _("Last Year"), 'iconNav', '', 'return ShowView(\'Year\', \'' . sprintf('%04d', $this->year - 1) . '0101\');') . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(-1)->link(array('title' => _("Last Year"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Year\', \'' . sprintf('%04d', $this->year - 1) . '0101\');')) . Horde::img('nav/left.png', '<', '', $GLOBALS['registry']->getImageDir('horde')) . ''; echo '' . htmlspecialchars($this->year) . ''; -echo Horde::link($this->link(1), _("Next Year"), 'iconNav', '', 'return ShowView(\'Year\', \'' . sprintf('%04d', $this->year + 1) . '0101\');') . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; +echo $this->link(1)->link(array('title' => _("Next Year"), 'class' => 'iconNav', 'onclick' => 'return ShowView(\'Year\', \'' . sprintf('%04d', $this->year + 1) . '0101\');')) . Horde::img('nav/right.png', '>', '', $GLOBALS['registry']->getImageDir('horde')) . ''; ?>

- ' ?> + link(array('class' => 'button')) . _("Cancel") . '' ?> " onclick="document.eventform.reset(); KronolithEventForm.updateWday('start_wday'); KronolithEventForm.updateWday('end_wday');" />
- ' ?> + link(array('class' => 'button', 'target' => '_blank', 'onclick' => 'var date = (\'000\' + $F(\'start_year\')).slice(-4) + (\'0\' + $F(\'start_month\')).slice(-2) + (\'0\' + $F(\'start_day\')).slice(-2) + (\'0\' + $(\'start_hour\').value).slice(-2) + (\'0\' + $(\'start_min\').value).slice(-2) + \'00\';var enddate = (\'000\' + $F(\'end_year\')).slice(-4) + (\'0\' + $F(\'end_month\')).slice(-2) + (\'0\' + $F(\'end_day\')).slice(-2) + (\'0\' + $(\'end_hour\').value).slice(-2) + (\'0\' + $(\'end_min\').value).slice(-2) + \'00\'; this.href += (this.href.indexOf(\'?\') == -1 ? \'?\' : \'&\') + \'date=\' + date + \'&enddate=\' + enddate;Horde.popup({ url: this.href });return false;')) . _("Edit Attendees and Resources") . '' ?>
false)); - echo Horde::link('#', _("Select a date"), '', '', 'openCalendar(\'recur_endimg\', \'recur_end\', \'' . addslashes($event->js('recur_end')) . '\'); return false;') . Horde::img('calendar.png', _("Set recurrence end date"), 'id="recur_endimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; +Horde::addScriptFile('open_calendar.js', 'horde', array('direct' => false)); +echo Horde::url('#')->link(array('title' => _("Select a date"), 'onclick' => 'openCalendar(\'recur_endimg\', \'recur_end\', \'' . addslashes($event->js('recur_end')) . '\'); return false;')) . Horde::img('calendar.png', _("Set recurrence end date"), 'id="recur_endimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; endif; ?> - ' ?> + link(array('class' => 'button')) . _("Cancel") . '' ?> " onclick="document.eventform.reset(); KronolithEventForm.updateWday('start_wday'); KronolithEventForm.updateWday('end_wday');" />
false)); ?> -js('start')) . '\'); return false;') . Horde::img('calendar.png', _("Set start date"), 'id="startimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; endif; ?> + link(array('title' => _("Select a date"), 'onclick' => 'openCalendar(\'startimg\', \'start\', \'' . addslashes($event->js('start')) . '\'); return false;')) . Horde::img('calendar.png', _("Set start date"), 'id="startimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; endif; ?>
false)); - echo Horde::link('#', _("Select a date"), '', '', 'openCalendar(\'endimg\', \'end\', \'' . addslashes($event->js('end')) . '\'); return false;') . Horde::img('calendar.png', _("Set end date"), 'id="endimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; +Horde::addScriptFile('open_calendar.js', 'horde', array('direct' => false)); +echo Horde::url('#')->link(array('title' => _("Select a date"), 'onclick' => 'openCalendar(\'endimg\', \'end\', \'' . addslashes($event->js('end')) . '\'); return false;')) . Horde::img('calendar.png', _("Set end date"), 'id="endimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; endif; ?>
call('mail/compose', array(array('to' => $full))), sprintf(_("Send an email to %s"), empty($status['name']) ? $email : $status['name'])) . htmlspecialchars($full) . '') : htmlspecialchars($full) ?>call('mail/compose', array(array('to' => $full)))->link(array('title' => sprintf(_("Send an email to %s"), empty($status['name']) ? $email : $status['name']))) . htmlspecialchars($full) . '') : htmlspecialchars($full) ?>