4 changes: 2 additions & 2 deletions beatnik/templates/view/record.inc
Expand Up @@ -10,9 +10,9 @@ foreach ($zonedata[$type] as $record) {

$params = array('id' => $record['id'], 'rectype' => $type);
echo '<tr>' . "\n";
echo '<td>' . Horde::link(Horde_Util::addParameter($edit, $params))
echo '<td>' . Horde::link($edit->copy()->add($params))
. Horde::img('edit.png', _("Edit")) . '</a> '
. Horde::link(Horde_Util::addParameter($delete, $params))
. Horde::link($delete->copy()->add($params))
. Horde::img('delete.png', _("Delete")) . '</a></td>';
echo '<td>' . $rectypes[$type] . '</td>';

Expand Down
6 changes: 3 additions & 3 deletions beatnik/viewzone.php
Expand Up @@ -37,9 +37,9 @@
}
}

$delete = Horde_Util::addParameter(Horde::url('delete.php'), 'curdomain', $_SESSION['beatnik']['curdomain']['zonename']);
$edit = Horde_Util::addParameter(Horde::url('editrec.php'), 'curdomain', $_SESSION['beatnik']['curdomain']['zonename']);
$autogen = Horde_Util::addParameter(Horde::url('autogenerate.php'), 'curdomain', $_SESSION['beatnik']['curdomain']['zonename']);
$delete = Horde::url('delete.php')->add('curdomain', $_SESSION['beatnik']['curdomain']['zonename']);
$edit = Horde::url('editrec.php')->add('curdomain', $_SESSION['beatnik']['curdomain']['zonename']);
$autogen = Horde::url('autogenerate.php')->add('curdomain', $_SESSION['beatnik']['curdomain']['zonename']);
$rectypes = Beatnik::getRecTypes();

require BEATNIK_TEMPLATES . '/view/header.inc';
Expand Down
4 changes: 2 additions & 2 deletions chora/app/views/file/html.html.php
Expand Up @@ -7,13 +7,13 @@
$data = reset($data);
echo '<div class="fixed">' . $GLOBALS['injector']->getInstance('Horde_Core_Factory_TextFilter')->filter($data['data'], 'text2html', array('parselevel' => Horde_Text_Filter_Text2html::MICRO)) . '</div>';
} elseif (strpos($this->mimeType, 'image/') !== false) {
echo Horde::img(Horde_Util::addParameter(Horde::selfUrl(true), 'p', 1), '', '', '');
echo Horde::img(Horde::selfUrl(true)->add('p', 1), '', '', '');
} elseif ($this->pretty->canRender('inline')) {
$data = $this->pretty->render('inline');
$data = reset($data);
echo $data['data'];
} else {
echo Horde::link(Horde_Util::addParameter(Horde::selfUrl(true), 'p', 1)) . Horde::img('download.png') . ' ' . sprintf(_("Download revision %s"), $r) . '</a>';
echo Horde::link(Horde::selfUrl(true)->add('p', 1)) . Horde::img('download.png') . ' ' . sprintf(_("Download revision %s"), $r) . '</a>';
}
?>
</div>
Expand Down
4 changes: 2 additions & 2 deletions chora/co.php
Expand Up @@ -67,13 +67,13 @@
$data = reset($data);
$rendered = '<div class="fixed">' . $GLOBALS['injector']->getInstance('Horde_Core_Factory_TextFilter')->filter($data['data'], 'text2html', array('parselevel' => Horde_Text_Filter_Text2html::MICRO)) . '</div>';
} elseif (strpos($mime_type, 'image/') !== false) {
$rendered = Horde::img(Horde_Util::addParameter(Horde::selfUrl(true), 'p', 1), '', '', '');
$rendered = Horde::img(Horde::selfUrl(true)->add('p', 1), '', '', '');
} elseif ($pretty->canRender('inline')) {
$data = $pretty->render('inline');
$data = reset($data);
$rendered = $data['data'];
} else {
$rendered = Horde::link(Horde_Util::addParameter(Horde::selfUrl(true), 'p', 1)) . Horde::img('download.png') . ' ' . sprintf(_("Download revision %s"), $r) . '</a>';
$rendered = Horde::link(Horde::selfUrl(true)->add('p', 1)) . Horde::img('download.png') . ' ' . sprintf(_("Download revision %s"), $r) . '</a>';
}

/* Get this revision's attributes in printable form. */
Expand Down
5 changes: 2 additions & 3 deletions folks/config/hooks.php.dist
Expand Up @@ -320,9 +320,8 @@ class Folks_Hooks

require_once $GLOBALS['registry']->get('fileroot', 'folks') . '/lib/Folks.php';
$code = Folks::encodeString($userID, 'activate' . hash('md5', $extra['password']));
$link = Horde_Util::addParameter(Horde::url('account/approve.php', true, -1),
array('user' => $userID, 'code' => $code),
null, false);
$link = Horde::url('account/approve.php', true, -1)->add(array(
'user' => $userID, 'code' => $code))->setRaw(true);

$body = sprintf(_("Your username on %s %s is: %s. \n\n Please confirm the registration by going to this link \n %s"),
$GLOBALS['registry']->get('name', 'horde'),
Expand Down
4 changes: 2 additions & 2 deletions folks/edit/friends/add.php
Expand Up @@ -41,8 +41,8 @@
$body = sprintf(_("User %s added you to his firends list on %s. \nTo approve, go to: %s \nTo reject, go to: %s \nTo see to his profile, go to: %s \n"),
$GLOBALS['registry']->getAuth(),
$registry->get('name', 'horde'),
Horde_Util::addParameter(Horde::url('edit/friends/approve.php', true, -1), 'user', $GLOBALS['registry']->getAuth()),
Horde_Util::addParameter(Horde::url('edit/friends/reject.php', true, -1), 'user', $GLOBALS['registry']->getAuth()),
Horde::url('edit/friends/approve.php', true, -1)->add('user', $GLOBALS['registry']->getAuth()),
Horde::url('edit/friends/reject.php', true, -1)->add('user', $GLOBALS['registry']->getAuth()),
Folks::getUrlFor('user', $GLOBALS['registry']->getAuth(), true, -1));
$result = $friends->sendNotification($user, $title, $body);
if ($result instanceof PEAR_Error) {
Expand Down
4 changes: 2 additions & 2 deletions folks/edit/friends/groups.php
Expand Up @@ -103,9 +103,9 @@
break;
}

$remove_url = Horde_Util::addParameter(Horde::url('edit/friends/groups.php'), 'action', 'delete');
$remove_url = Horde::url('edit/friends/groups.php')->add('action', 'delete');
$remove_img = Horde::img('delete.png');
$edit_url = Horde_Util::addParameter(Horde::url('edit/friends/groups.php'), 'action', 'edit');
$edit_url = Horde::url('edit/friends/groups.php')->add('action', 'edit');
$edit_img = Horde::img('edit.png');
$perms_url = Horde::url('perms.php');
$perms_img = Horde::img('perms.png');
Expand Down
7 changes: 2 additions & 5 deletions folks/lib/Folks.php
Expand Up @@ -59,10 +59,7 @@ static function getCountries()
static public function getImageUrl($user, $view = 'small', $full = false)
{
if (empty($GLOBALS['conf']['images']['direct'])) {
return Horde_Util::addParameter(Horde::url('view.php', $full),
array('view' => $view,
'id' => $user),
null, false);
return Horde::url('view.php', $full)->add(array('view' => $view, 'id' => $user))->setRaw(true);
} else {
$p = hash('md5', $user);
return $GLOBALS['conf']['images']['direct'] .
Expand Down Expand Up @@ -102,7 +99,7 @@ function getUrlFor($controller, $data = null, $full = false, $append_session = 0

case 'user':
if (empty($GLOBALS['conf']['urls']['pretty'])) {
return Horde_Util::addParameter(Horde::url('user.php', $full, $append_session), 'user', $data);
return Horde::url('user.php', $full, $append_session)->add('user', $data);
} else {
return Horde::url('user/' . $data, $full, $append_session);
}
Expand Down
2 changes: 1 addition & 1 deletion folks/login.php
Expand Up @@ -87,7 +87,7 @@ function _loginNotice($user)
* Login parameters
*/
$url_param = Horde_Util::getFormData('url');
$login_url = Horde_Util::addParameter($registry->getServiceLink('login', 'folks'), 'url', $url_param);
$login_url = $registry->getServiceLink('login', 'folks')->add('url', $url_param);

/*
* We are already logged in?
Expand Down
2 changes: 1 addition & 1 deletion folks/templates/block/users.php
Expand Up @@ -7,7 +7,7 @@
<strong><?php echo $user ?></strong></a><br />
<span class="small">
<?php foreach ($actions as $action): ?>
<a href="<?php echo Horde_Util::addParameter($action['url'], $action['id'], $user) ?>"><?php echo $action['name'] ?> </a>
<a href="<?php echo $action['url']->add($action['id'], $user) ?>"><?php echo $action['name'] ?> </a>
<?php endforeach; ?>
<br />
<?php
Expand Down
2 changes: 1 addition & 1 deletion folks/templates/edit/activity.php
Expand Up @@ -28,7 +28,7 @@
</td>
<td><?php echo Folks::format_datetime($activity['activity_date']) ?></td>
<td><?php echo $activity['activity_message']; unset($activity['activity_message']); ?></td>
<td><a href="<?php echo Horde_Util::addParameter($delete_url, $activity) ?>" title="<?php echo _("Delete") ?>"/><?php echo $delete_img ?></a></td>
<td><a href="<?php echo $delete_url->add($activity) ?>" title="<?php echo _("Delete") ?>"/><?php echo $delete_img ?></a></td>
</tr>
<?php } ?>
</tbody>
Expand Down
2 changes: 1 addition & 1 deletion folks/templates/edit/friends.php
Expand Up @@ -35,7 +35,7 @@
<?php
foreach ($actions as $action) {
echo '<td>';
echo '<a href="' . Horde_Util::addParameter($action['url'], $action['id'], $user) . '">'
echo '<a href="' . $action['url']->add($action['id'], $user) . '">'
. $action['img'] . ' ' . $action['name'] . '</a>';
echo '</td>';
}
Expand Down
6 changes: 3 additions & 3 deletions folks/templates/edit/groups.php
Expand Up @@ -21,10 +21,10 @@
echo '<tr><td>' . $group_name . '</td>';
$owner = $friends->getGroupOwner($group_id);
echo '<td style="text-align: center"><a href="' . Folks::getUrlFor('user', $owner) .'"><img src="' . Folks::getImageUrl($owner) . '" class="userMiniIcon" /><br />' . $owner . '</a></td>';
echo '<td><a href="' . Horde_Util::addParameter($members_url, 'g', $group_id) . '">' . $members_img . ' ' . _("Members") . '</a></td>';
echo '<td><a href="' . $members_url->add('g', $group_id) . '">' . $members_img . ' ' . _("Members") . '</a></td>';
if ($friends->hasCapability('groups_add')) {
echo '<td><a href="' . Horde_Util::addParameter($edit_url, 'g', $group_id) . '">' . $edit_img . ' ' . _("Rename") . '</a></td>';
echo '<td><a href="#" onclick="if (confirm(\'' . _("Do you really want to delete this group?") . '\')) {window.location=\'' . Horde_Util::addParameter($remove_url, 'g', $group_id) . '\'}">' . $remove_img . ' ' . _("Delete") . '</a></td>';
echo '<td><a href="' . $edit_url->add('g', $group_id) . '">' . $edit_img . ' ' . _("Rename") . '</a></td>';
echo '<td><a href="#" onclick="if (confirm(\'' . _("Do you really want to delete this group?") . '\')) {window.location=\'' . $remove_url->add('g', $group_id) . '\'}">' . $remove_img . ' ' . _("Delete") . '</a></td>';
echo '<td><a href="#" onclick="' . Horde::popupJs($perms_url, array('params' => array('cid' => $group_id), 'urlencode' => true)) . '">' . $perms_img . ' ' . _("Permissions") . '</a></td>';
}
echo '</tr>';
Expand Down
2 changes: 1 addition & 1 deletion folks/templates/edit/header.php
Expand Up @@ -24,7 +24,7 @@
echo '<tr><td><a href="' . Horde::url('edit/friends/index.php') . '">' . _("All") . '</a>';

foreach ($groups as $group_id => $group_name) {
echo '<tr><td><a href="' . Horde_Util::addParameter(Horde::url('edit/friends/friends.php'), $group_id) . '">' . $group_name . '</a>';
echo '<tr><td><a href="' . Horde::url('edit/friends/friends.php')->add($group_id) . '">' . $group_name . '</a>';
}

echo '<tr><td><a href="' . Horde::url('edit/friends/know.php') . '">' . _("Might know") . '</a>';
Expand Down
2 changes: 1 addition & 1 deletion folks/templates/list/list.php
Expand Up @@ -48,7 +48,7 @@
foreach ($headers as $key => $val) {
echo '<th class="widget leftAlign nowrap">' . "\n";
if ($criteria['sort_by'] == $key) {
echo Horde::link(Horde_Util::addParameter($list_url, 'sort_dir', ($criteria['sort_dir'] == 'DESC') ? 'ASC' : 'DESC'), $val['text'], null, null, null, $val['text']);
echo Horde::link($list_url->add('sort_dir', ($criteria['sort_dir'] == 'DESC') ? 'ASC' : 'DESC'), $val['text'], null, null, null, $val['text']);
echo Horde::img($sortImg, $sortText) . '</a>&nbsp;';
}
echo Horde::widget(array('url' => $list_url->add('sort_by', $key), 'title' => $val['text']));
Expand Down
4 changes: 2 additions & 2 deletions folks/templates/list/search.php
Expand Up @@ -12,8 +12,8 @@
<?php
foreach ($queries as $query) {
$delete_img = Horde::img('delete.png', _("Delete"));
echo '<tr><td>' . Horde::link(Horde_Util::addParameter(Horde::url('search.php'), 'query', $query), '', 'bottom') . $query . '</a></td>';
echo '<td>' . Horde::link(Horde_Util::addParameter(Horde::url('save_search.php'), array('query' => $query, 'delete' => 1))) . $delete_img . '</a></td></tr>';
echo '<tr><td>' . Horde::link(Horde::url('search.php')->add('query', $query), '', 'bottom') . $query . '</a></td>';
echo '<td>' . Horde::link(Horde::url('save_search.php')->add(array('query' => $query, 'delete' => 1))) . $delete_img . '</a></td></tr>';
}
?>
</table>
Expand Down
6 changes: 3 additions & 3 deletions folks/templates/user/actions.php
Expand Up @@ -14,13 +14,13 @@
<a href="javascript: document.getElementById('message_body').focus()" title="<?php echo _("Add a comment") ?>">
<?php echo Horde::img('agora.png', 'agora') ?> <?php echo _("Add a comment") ?></a>

<a href="<?php echo Horde_Util::addParameter(Horde::url('edit/friends/add.php'), 'user', $user); ?>" title="<?php echo sprintf(_("Add %s as a friend?"), $user) ?>" onclick="return confirm('<?php echo sprintf(_("Add %s as a friend?"), $user) ?>')">
<a href="<?php echo Horde::url('edit/friends/add.php')->add('user', $user); ?>" title="<?php echo sprintf(_("Add %s as a friend?"), $user) ?>" onclick="return confirm('<?php echo sprintf(_("Add %s as a friend?"), $user) ?>')">
<?php echo Horde::img('user.png') ?> <?php echo _("Friend") ?></a>

<a href="<?php echo Horde_Util::addParameter(Horde::url('edit/friends/blacklist.php'), 'user', $user); ?>" title="<?php echo sprintf(_("Add %s to you blacklist?"), $user) ?>" onclick="return confirm('<?php echo sprintf(_("Add %s to you blacklist?"), $user) ?>')">
<a href="<?php echo Horde::url('edit/friends/blacklist.php')->add('user', $user); ?>" title="<?php echo sprintf(_("Add %s to you blacklist?"), $user) ?>" onclick="return confirm('<?php echo sprintf(_("Add %s to you blacklist?"), $user) ?>')">
<?php echo Horde::img('locked.png') ?> <?php echo _("Blacklist") ?></a>

<a href="<?php echo Horde_Util::addParameter(Horde::url('report.php'), 'user', $user); ?>" title="<?php echo _("Report user") ?>">
<a href="<?php echo Horde::url('report.php')->add('user', $user); ?>" title="<?php echo _("Report user") ?>">
<?php echo Horde::img('problem.png') ?> <?php echo _("Report") ?></a>

<a href="<?php echo Folks::getUrlFor('list', 'list') ?>" title="<?php echo _("User list") ?>">
Expand Down
2 changes: 1 addition & 1 deletion folks/templates/user/user.php
Expand Up @@ -117,7 +117,7 @@
<td class="header" colspan="2">
<span style="float: right">
<a href="<?php echo Horde::url('edit/friends/index.php') ?>" title="<?php echo _("Edit my firends") ?>"><?php Horde::img('plus.png') ?></a>
<a href="<?php echo Horde_Util::addParameter(Horde::url('edit/friends/index.php'), 'user', $user) ?>" title="<?php echo sprintf(_("Add %s as a friend?"), $user) ?>"><?php echo Horde::img('nav/right.png') ?></a>
<a href="<?php echo Horde::url('edit/friends/index.php')->add('user', $user) ?>" title="<?php echo sprintf(_("Add %s as a friend?"), $user) ?>"><?php echo Horde::img('nav/right.png') ?></a>
</span>
<?php echo _("Friends") ?> (<?php echo count($friends) ?>)
</td>
Expand Down
2 changes: 1 addition & 1 deletion framework/Rampage/scripts/Horde/Rampage/rampage.php
Expand Up @@ -566,7 +566,7 @@ function t_templates_list_list_headers($c)
$n = $i['name']; // shortcut
if ($i['list']) {
$s .= "<th class=\"<?php echo (\$sortby == ZOMBIE_SORT_$n) ? 'selected' : 'item' ?>\" width=\"2%\">
<?php if (\$sortby == ZOMBIE_SORT_$n) echo Horde::link(Horde::url(Horde_Util::addParameter(\$sortbyurl, 'sortby', ZOMBIE_SORT_$n)), _(\"Change sort direction\"), 'widget') . Horde::img(\$sortdir ? 'za.gif' : 'az.gif', _(\"Change sort direction\"), null, \$registry->get('graphics', 'horde')) ?></a>
<?php if (\$sortby == ZOMBIE_SORT_$n) echo Horde::link(Horde::url(\$sortbyurl)->add('sortby', ZOMBIE_SORT_$n)), _(\"Change sort direction\"), 'widget') . Horde::img(\$sortdir ? 'za.gif' : 'az.gif', _(\"Change sort direction\"), null, \$registry->get('graphics', 'horde')) ?></a>
<?php echo Horde::linkTooltip(Horde::url('list.php')->add('sortby', ZOMBIE_SORT_$n), _(\"Sort by User Name\"), 'widget', '', '', _(\"" . $i['desc'] . "\")) ?></a>&nbsp;</th>\n";
}
}
Expand Down
3 changes: 2 additions & 1 deletion framework/Service_Vimeo/lib/Horde/Service/Vimeo/Simple.php
Expand Up @@ -112,7 +112,8 @@ public function getEmbedJson($options)
}

// We should have a url now, and possibly other options.
$url = Horde_Util::addParameter($this->_oembed_endpoint, $options, null, false);
$url = new Horde_Url($this->_oembed_endpoint);
$url->add($options)->setRaw(true);

try {
$response = $this->_http_client->request('GET', $url);
Expand Down
60 changes: 0 additions & 60 deletions framework/Util/lib/Horde/Util.php
Expand Up @@ -81,66 +81,6 @@ static public function nonInputVar($varname, $default = null)
: (isset($GLOBALS[$varname]) ? $GLOBALS[$varname] : $default);
}

/**
* Adds a name=value pair to the end of an URL, taking care of whether
* there are existing parameters and whether to use ?, & or &amp; as the
* glue. All data will be urlencoded.
*
* @deprecated
*
* @param Horde_Url|string $url The URL to modify.
* @param mixed $parameter Either the name value -or- an array of
* name/value pairs.
* @param string $value If specified, the value part ($parameter
* is then assumed to just be the parameter
* name).
* @param boolean $encode Encode the argument separator?
*
* @return Horde_Url The modified URL.
*/
static public function addParameter($url, $parameter, $value = null,
$encode = true)
{
if (empty($parameter)) {
return $url;
}

if ($url instanceof Horde_Url) {
$url = $url->copy()->add($parameter, $value);
if (is_null($url->raw)) {
$url->setRaw(!$encode);
}
return $url;
}

$url = new Horde_Url($url);
if (is_null($url->raw) && count($url->parameters)) {
$url->setRaw(!$encode);
}
return $url->add($parameter, $value);
}

/**
* Removes name=value pairs from a URL.
*
* @deprecated
*
* @param Horde_Url|string $url The URL to modify.
* @param mixed $remove Either a single parameter to remove or an
* array of parameters to remove.
*
* @return Horde_Url The modified URL.
*/
static public function removeParameter($url, $remove)
{
if ($url instanceof Horde_Url) {
return $url->copy()->remove($remove);
}

$horde_url = new Horde_Url($url);
return $horde_url->remove($remove);
}

/**
* Returns a hidden form input containing the session name and id.
*
Expand Down
9 changes: 2 additions & 7 deletions framework/Util/package.xml
Expand Up @@ -29,6 +29,7 @@
</stability>
<license uri="http://www.horde.org/licenses/lgpl21">LGPL-2.1</license>
<notes>
* [mms] Remove Horde_Util::addParameter() and Horde_Util::removeParameter().
* [mms] Remove Horde_Util::cloneObject().
</notes>
<contents>
Expand Down Expand Up @@ -81,13 +82,6 @@
<pearinstaller>
<min>1.7.0</min>
</pearinstaller>
<package>
<name>Horde_Url</name>
<channel>pear.horde.org</channel>
<min>2.0.0beta1</min>
<max>3.0.0alpha1</max>
<exclude>3.0.0alpha1</exclude>
</package>
<extension>
<name>dom</name>
</extension>
Expand Down Expand Up @@ -498,6 +492,7 @@ Converted to package.xml 2.0 for pear.horde.org
<date>2012-07-19</date>
<license uri="http://www.horde.org/licenses/lgpl21">LGPL-2.1</license>
<notes>
* [mms] Remove Horde_Util::addParameter() and Horde_Util::removeParameter().
* [mms] Remove Horde_Util::cloneObject().
</notes>
</release>
Expand Down
76 changes: 0 additions & 76 deletions framework/Util/test/Horde/Util/UtilTest.php
Expand Up @@ -13,82 +13,6 @@
*/
class Horde_Util_UtilTest extends PHPUnit_Framework_TestCase
{
public function testAddParameter()
{
$url = 'test';
$this->assertEquals(
'test?foo=1',
(string)($url = Horde_Util::addParameter($url, 'foo', 1)));
$this->assertEquals(
'test?foo=1&amp;bar=2',
(string)($url = Horde_Util::addParameter($url, 'bar', 2)));
$this->assertEquals(
'test?foo=1&amp;bar=2&amp;baz=3',
(string)Horde_Util::addParameter($url, 'baz', 3));
$this->assertEquals(
'test?foo=1&amp;bar=2',
(string)Horde_Util::addParameter('test', array('foo' => 1, 'bar' => 2)));
$this->assertEquals(
'test?foo=1&amp;bar=2&amp;baz=3',
(string)Horde_Util::addParameter('test?foo=1', array('bar' => 2, 'baz' => 3)));
$this->assertEquals(
'test?foo=1&bar=2&baz=3',
(string)Horde_Util::addParameter('test?foo=1&bar=2', array('baz' => 3)));
$this->assertEquals(
'test?foo=1&bar=3',
(string)Horde_Util::addParameter('test?foo=1&bar=2', array('foo' => 1, 'bar' => 3)));
$this->assertEquals(
'test?foo=1&amp;bar=2&amp;baz=3',
(string)Horde_Util::addParameter('test?foo=1&amp;bar=2', 'baz', 3));
$this->assertEquals(
'test?foo=bar%26baz',
(string)($url = Horde_Util::addParameter('test', 'foo', 'bar&baz')));
$this->assertEquals(
'test?foo=bar%26baz&amp;x=y',
(string)Horde_Util::addParameter($url, 'x', 'y'));
$this->assertEquals(
'test?foo=bar%26baz&x=y',
(string)Horde_Util::addParameter($url, 'x', 'y', false));
$this->assertEquals(
'test?x=y&amp;foo=bar%26baz',
(string)Horde_Util::addParameter(Horde_Util::addParameter('test', 'x', 'y'), 'foo', 'bar&baz'));
}

public function testRemoveParameter()
{
$url = 'test?foo=1&bar=2';
$this->assertEquals(
'test?bar=2',
(string)Horde_Util::removeParameter($url, 'foo'));
$this->assertEquals(
'test?foo=1',
(string)Horde_Util::removeParameter($url, 'bar'));
$this->assertEquals(
'test',
(string)Horde_Util::removeParameter($url, array('foo', 'bar')));

$url = 'test?foo=1&amp;bar=2';
$this->assertEquals(
'test?bar=2',
(string)Horde_Util::removeParameter($url, 'foo'));
$this->assertEquals(
'test?foo=1',
(string)Horde_Util::removeParameter($url, 'bar'));
$this->assertEquals(
'test',
(string)Horde_Util::removeParameter($url, array('foo', 'bar')));

$url = 'test?foo=1&bar=2&baz=3';
$this->assertEquals(
'test?bar=2&baz=3',
(string)Horde_Util::removeParameter($url, 'foo'));

$url = 'test?foo=1&amp;bar=2&amp;baz=3';
$this->assertEquals(
'test?bar=2&amp;baz=3',
(string)Horde_Util::removeParameter($url, 'foo'));
}

public function testGetPathInfo()
{
$this->assertEquals('', Horde_Util::getPathInfo());
Expand Down
2 changes: 1 addition & 1 deletion gollem/selectlist.php
Expand Up @@ -87,7 +87,7 @@
$t->set('navlink', Gollem::directoryNavLink(Gollem::$backend['dir'], $self_url->copy()->add(array('cacheid' => $cacheid, 'formid' => $vars->formid))));
if ($GLOBALS['conf']['backend']['backend_list'] == 'shown') {
// TODO
//$t->set('changeserver', Horde::link(htmlspecialchars(Horde_Auth::addLogoutParameters(Horde_Util::addParameter(Horde::url('login.php'), array('url' => Horde_Util::addParameter(Horde::url('selectlist.php'), array('formid' => $vars->formid)))), Horde_Auth::REASON_LOGOUT)), _("Change Server")) . Horde::img('logout.png', _("Change Server")) . '</a>', true);
//$t->set('changeserver', Horde::link(htmlspecialchars(Horde_Auth::addLogoutParameters(Horde::url('login.php')->add(array('url' => Horde::url('selectlist.php')->add(array('formid' => $vars->formid)))), Horde_Auth::REASON_LOGOUT)), _("Change Server")) . Horde::img('logout.png', _("Change Server")) . '</a>', true);
} else {
$t->set('changeserver', '', true);
}
Expand Down
2 changes: 1 addition & 1 deletion hermes/lib/Table.php
Expand Up @@ -148,7 +148,7 @@ public function render($data = null)
$_SESSION['horde']['tables'][$id] = $this->_config;
$exportlink = Horde::url($GLOBALS['registry']->get('webroot', 'horde') .
'/services/table/export.php');
$exportlink = Horde_Util::addParameter($exportlink, array('id' => $id));
$exportlink->add(array('id' => $id));
$html .= ' &nbsp;' . Horde::link($exportlink, _("Export Data")) .
Horde::img('data.png', _("Export Data"), 'hspace="2"') .
Expand Down
15 changes: 7 additions & 8 deletions hylax/folder.php
Expand Up @@ -20,7 +20,7 @@
$view_url = Horde::url('view.php');
$view_img = Horde::img('view.gif', _("View"), 'align="middle"');

$download_url = Horde_Util::addParameter($view_url, 'action', 'download');
$download_url = $view_url->copy()->add('action', 'download');
$download_img = Horde::img('download.gif', _("Download"));

$edit_url = Horde::url('edit.php');
Expand All @@ -43,20 +43,19 @@
$params['fax_id'] = $value['fax_id'];

/* View. */
$url = Horde_Util::addParameter($view_url, $params);
$url = $view_url->copy()->add($params);
$folder_list[$key]['actions'][] = Horde::link($url, _("View")) . $view_img . '</a>';

/* Download. */
$url = Horde_Util::addParameter($download_url, $params);
$url = $download_url->copy()->add($params);
$folder_list[$key]['actions'][] = Horde::link($url, _("Download")) . $download_img . '</a>';

/* Delete. */
// $url = Horde_Util::addParameter($del_url, $params);
// $url = $del_url->add($params);
// $folder_list[$key]['actions'][] = Horde::link($url, _("Delete")) . $del_img . '</a>';

/* Print. */
$url = Horde_Util::addParameter($print_url, $params);
$url = Horde_Util::addParameter($url, 'url', Horde::selfUrl(true));
$url = $print_url->copy()->add($params)->add('url', Horde::selfUrl(true));
$folder_list[$key]['actions'][] = Horde::link($url, _("Print")) . $print_img . '</a>';
$folder_list[$key]['alt_count'] = $i;
$i = $i ? 0 : 1;
Expand All @@ -65,7 +64,7 @@
$folder_list[$key]['fax_created'] = strftime('%d/%m/%Y %H:%M', $value['fax_created']);

if (empty($value['fax_number']) && $value['fax_type'] != 0) {
$url = Horde_Util::addParameter($send_url, 'fax_id', $value['fax_id']);
$url = $send_url->copy()->add('fax_id', $value['fax_id']);
$folder_list[$key]['fax_number'] = $warn_img . '&nbsp;' . Horde::link($url, _("Insert Number")) . _("Insert Number") . '</a>';
} elseif (empty($value['fax_number']) && $value['fax_type'] == 0) {
$folder_list[$key]['fax_number'] = _("unknown");
Expand All @@ -77,7 +76,7 @@
$actions = array();
foreach ($base_folders as $key => $value) {
if ($folder != $key) {
$url = Horde_Util::addParameter(Horde::url('folder.php'), 'folder', $key);
$url = Horde::url('folder.php')->add('folder', $key);
$actions[] = Horde::link($url) . $value . '</a>';
} else {
$actions[] = $value;
Expand Down
4 changes: 2 additions & 2 deletions hylax/lib/Hylax.php
Expand Up @@ -113,10 +113,10 @@ function getPages($fax_id, $num_pages)

for ($i = 0; $i < $num_pages; $i++) {
$params['page'] = $i;
$url = Horde_Util::addParameter('img.php', $params);
$url = Horde::url('img.php')->add($params);
$img = Horde::img($url, sprintf(_("View page %s"), $i+1), '', $GLOBALS['registry']->get('webroot'));

$full_url = Horde::url(Horde_Util::addParameter('img.php', array('fax_id' => $fax_id, 'page' => $i)));
$full_url = Horde::url('img.php')->add(array('fax_id' => $fax_id, 'page' => $i));

$pages[] = Horde::link('', sprintf(_("View page %s"), $i+1), '', '', "popup('$full_url', $popup_w, $popup_h); return false;") . $img . '</a>';
}
Expand Down
4 changes: 2 additions & 2 deletions jonah/delivery/rss.php
Expand Up @@ -72,8 +72,8 @@
$template->set('channel_desc', htmlspecialchars($channel['channel_desc']));
$template->set('channel_updated', htmlspecialchars(date('r', $channel['channel_updated'])));
$template->set('channel_official', htmlspecialchars($channel['channel_official']));
$template->set('channel_rss', htmlspecialchars(Horde_Util::addParameter(Horde::url('delivery/rss.php', true, -1), array('type' => 'rss', 'channel_id' => $channel['channel_id']))));
$template->set('channel_rss2', htmlspecialchars(Horde_Util::addParameter(Horde::url('delivery/rss.php', true, -1), array('type' => 'rss2', 'channel_id' => $channel['channel_id']))));
$template->set('channel_rss', htmlspecialchars(Horde::url('delivery/rss.php', true, -1)->add(array('type' => 'rss', 'channel_id' => $channel['channel_id']))));
$template->set('channel_rss2', htmlspecialchars(Horde::url('delivery/rss.php', true, -1)->add(array('type' => 'rss2', 'channel_id' => $channel['channel_id']))));
foreach ($stories as &$story) {
$story['title'] = htmlspecialchars($story['title']);
$story['description'] = htmlspecialchars($story['description']);
Expand Down
3 changes: 1 addition & 2 deletions jonah/stories/share.php
Expand Up @@ -95,8 +95,7 @@ function _mail($story_part, $from, $recipients, $subject, $note)

$channel = $GLOBALS['injector']->getInstance('Jonah_Driver')->getChannel($channel_id);
if (empty($channel['channel_story_url'])) {
$story_url = Horde::url('stories/view.php', true);
$story_url = Horde_Util::addParameter($story_url, array('channel_id' => '%c', 'id' => '%s'));
$story_url = Horde::url('stories/view.php', true)->add(array('channel_id' => '%c', 'id' => '%s'));
} else {
$story_url = $channel['channel_story_url'];
}
Expand Down
12 changes: 5 additions & 7 deletions klutz/backend.php
Expand Up @@ -121,9 +121,7 @@ function webPrint($text, $flush = false)
}
$comic_select .= '</select>';

$sums_url = Horde::url('backend.php');
$sums_url = Horde_Util::addParameter($sums_url, 'mode[]', 'sums');
$sums_url = Horde_Util::addParameter($sums_url, 'mode[]', 'menu');
$sums_url = Horde::url('backend.php')->add('mode[]', 'sums')->add('mode[]', 'menu');

$page_output->header(array(
'title' => _("Comics Update")
Expand Down Expand Up @@ -307,10 +305,10 @@ function webPrint($text, $flush = false)

// Redirect?
if (!empty($redirect)) {
header('Location: ' . Horde_Util::addParameter(Horde::url($redirect),
array('actionID' => Horde_Util::getFormData('action'),
'date' => $date,
'index' => $index), null, false));
header('Location: ' . Horde::url($redirect)->add(array(
'actionID' => Horde_Util::getFormData('action'),
'date' => $date,
'index' => $index))->setRaw(true));
}

if (!$cli->runningFromCLI()) {
Expand Down
52 changes: 28 additions & 24 deletions klutz/comics.php
Expand Up @@ -68,7 +68,7 @@
$yesterday = mktime(0, 0, 0, $d['mon'], $d['mday'] - 1, $d['year']);
$tomorrow = mktime(0, 0, 0, $d['mon'], $d['mday'] + 1, $d['year']);

$url = Horde_Util::addParameter(Horde::selfUrl(false, false), 'actionID', $actionID);
$url = Horde::selfUrl(false, false)->add('actionID', $actionID);
$prev_month_url = null;
$yesterday_url = null;
$tomorrow_url = null;
Expand Down Expand Up @@ -152,10 +152,10 @@

// Date navigation.
if (count($klutz_driver->listDates($prev_month))) {
$prev_month_url = Horde_Util::addParameter($url, 'date', $prev_month);
$prev_month_url = $url->copy()->add('date', $prev_month);
}
if (count($klutz_driver->listDates($next_month))) {
$next_month_url = Horde_Util::addParameter($url, 'date', $next_month);
$next_month_url = $url->copy()->add('date', $next_month);
}
$page_output->header(array(
'title' => $title
Expand All @@ -169,10 +169,10 @@

// Display the navbar.
if (in_array($yesterday, $klutz_driver->listDates($yesterday))) {
$yesterday_url = Horde_Util::addParameter($url, 'date', $yesterday);
$yesterday_url = $url->copy()->add('date', $yesterday);
}
if (in_array($tomorrow, $klutz_driver->listDates($tomorrow))) {
$tomorrow_url = Horde_Util::addParameter($url, 'date', $tomorrow);
$tomorrow_url = $url->copy()->add('date', $tomorrow);
}

$page_output->header(array(
Expand Down Expand Up @@ -209,14 +209,16 @@
$homepage = $klutz->getProperty($index, 'homepage');
if ($klutz_driver->imageExists($index, $date)) {
$size = $klutz_driver->imageSize($index, $date);
$url = Horde_Util::addParameter(Horde::selfUrl(false, false), array('actionID' => 'image',
'date' => $date,
'index' => $index));
$url = Horde::selfUrl(false, false)->add(array(
'actionID' => 'image',
'date' => $date,
'index' => $index));

// We have a comic, build a link to save to a gallery.
if (!empty($imageApp)) {
$popupUrl = Horde_Util::addParameter('savecomic.php', array('date' => $date,
'index' => $index));
$popupUrl = Horde::url('savecomic.php')->add(array(
'date' => $date,
'index' => $index));
$saveImgLink = Horde::link('#', _("Save Comic to Gallery"), null,
null, 'popup(\'' . $popupUrl . '\', 450, 290); return false;') .
'<img src="' . $registry->get('icon', $imageApp) . '" alt="' . _("Save Comic to Gallery") . '" /></a>';
Expand Down Expand Up @@ -245,8 +247,9 @@
if ($i === false) {
$notification->push(_("This comic doesn't exist or is disabled."),
'horde.error');
$url = Horde_Util::addParameter(Horde::selfUrl(false, false), array('date' => $date,
'actionID' => 'main'));
$url = Horde::selfUrl(false, false)->add(array(
'date' => $date,
'actionID' => 'main'));
header('Location: ' . $url);
exit;
}
Expand All @@ -270,26 +273,26 @@
}
$comic_select = '<select name="index" onchange="this.form.submit()">'
. $comic_select . '</select>';
$comic_url = Horde_Util::addParameter(Horde::selfUrl(false, false), array('actionID' => $actionID, 'date' => $date));
$comic_url = Horde::selfUrl(false, false)->add(array('actionID' => $actionID, 'date' => $date));
if ($prev_comic) {
$comic_select = Horde::link(Horde_Util::addParameter($comic_url, 'index', $comics[$prev_comic])) . Horde::img('nav/left.png') . '</a> ' . $comic_select;
$comic_select = Horde::link($comic_url->copy()->add('index', $comics[$prev_comic])) . Horde::img('nav/left.png') . '</a> ' . $comic_select;
} else {
$comic_select = Horde::img('nav/left-grey.png') . ' ' . $comic_select;
}
if ($next_comic) {
$comic_select .= ' ' . Horde::link(Horde_Util::addParameter($comic_url, 'index', $comics[$next_comic])) . Horde::img('nav/right.png') . '</a>';
$comic_select .= ' ' . Horde::link($comic_url->copy()->add('index', $comics[$next_comic])) . Horde::img('nav/right.png') . '</a>';
} else {
$comic_select .= ' ' . Horde::img('nav/right-grey.png');
}
}

// Display the navbar.
$url = Horde_Util::addParameter($url, 'index', $index);
$url->add('index', $index);
if (count($klutz_driver->listDates($prev_month))) {
$prev_month_url = Horde_Util::addParameter($url, 'date', $prev_month);
$prev_month_url = $url->copy()->add('date', $prev_month);
}
if (count($klutz_driver->listDates($next_month))) {
$next_month_url = Horde_Util::addParameter($url, 'date', $next_month);
$next_month_url = $url->copy()->add('date', $next_month);
}

$page_output->header(array(
Expand All @@ -308,14 +311,15 @@
foreach (array_reverse($klutz_driver->listDates($date)) as $date) {
if ($klutz_driver->imageExists($index, $date)) {
$size = $klutz_driver->imageSize($index, $date);
$url = Horde_Util::addParameter(Horde::selfUrl(false, false), array('actionID' => 'image',
'date' => $date,

'index' => $index));
$url = Horde::selfUrl(false, false)->add(array(
'actionID' => 'image',
'date' => $date,
'index' => $index));
// We have a comic, build a link to save to a gallery.
if (!empty($imageApp)) {
$popupUrl = Horde_Util::addParameter('savecomic.php', array('date' => $date,
'index' => $index));
$popupUrl = Horde::url('savecomic.php')->add(array(
'date' => $date,
'index' => $index));
$saveImgLink = Horde::link('#', _("Save Comic to Gallery"), null,
null, 'popup(\'' . $popupUrl . '\', 450, 290); return false;') .
'<img src="' . $registry->get('icon', $imageApp) . '" alt="' . _("Save Comic to Gallery") . '" /></a>';
Expand Down
4 changes: 1 addition & 3 deletions klutz/lib/Application.php
Expand Up @@ -64,9 +64,7 @@ public function menu($menu)
{
global $conf, $injector;

$today = Horde::url('comics.php');
$today = Horde_Util::addParameter($today, array('actionID' => 'day',
'date' => mktime(0, 0, 0)));
$today = Horde::url('comics.php')->add(array('actionID' => 'day', 'date' => mktime(0, 0, 0)));

$me = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'];

Expand Down
12 changes: 6 additions & 6 deletions klutz/lib/Block/Comics.php
Expand Up @@ -53,9 +53,9 @@ function _content()
$author = $klutz->getProperty($index, 'author');
if ($klutz_driver->imageExists($index, $date)) {
$size = $klutz_driver->imageSize($index, $date);
$url = Horde_Util::addParameter(Horde::url('comics.php'), array('date' => $date, 'index' => $index));
$img = Horde::img(Horde_Util::addParameter($url, 'actionID', 'image'), sprintf("%s by %s", $name, $author), $size, '');
$link = Horde::link(Horde_Util::addParameter($url, 'actionID', 'comic'), sprintf("%s by %s", $name, $author));
$url = Horde::url('comics.php')->add(array('date' => $date, 'index' => $index));
$img = Horde::img($url->copy()->add('actionID', 'image'), sprintf("%s by %s", $name, $author), $size, '');
$link = Horde::link($url->copy()->add('actionID', 'comic'), sprintf("%s by %s", $name, $author));
$summary .= '<p>' . $link . $img . '</a></p>';
}
}
Expand All @@ -78,9 +78,9 @@ function _content()
$name = $klutz->getProperty($index, 'name');
$author = $klutz->getProperty($index, 'author');
$size = $klutz_driver->imageSize($index, $date);
$url = Horde_Util::addParameter(Horde::url('comics.php'), array('date' => $date, 'index' => $index));
$img = Horde::img(Horde_Util::addParameter($url, 'actionID', 'image'), sprintf("%s by %s", $name, $author), $size, '');
$link = Horde::link(Horde_Util::addParameter($url, 'actionID', 'comic'), sprintf("%s by %s", $name, $author));
$url = Horde::url('comics.php')->add(array('date' => $date, 'index' => $index));
$img = Horde::img($url->copy()->add('actionID', 'image'), sprintf("%s by %s", $name, $author), $size, '');
$link = Horde::link($url->copy()->add('actionID', 'comic'), sprintf("%s by %s", $name, $author));
$summary = '<p class="text">' . $link . $name . ' by ' . $author . '</a></p>' .
'<p>' . $link . $img . '</a></p>';
}
Expand Down
7 changes: 2 additions & 5 deletions klutz/templates/comics/main.inc
Expand Up @@ -15,8 +15,7 @@

<?php foreach ($klutz_driver->listDates($date) as $time): ?>
<div class="linedRow"><?php
$url = Horde_Util::addParameter(Horde::selfUrl(), array('actionID' => 'day',
'date' => $time));
$url = Horde::selfUrl()->add(array('actionID' => 'day', 'date' => $time));
if (in_array(date('Ymd',$time), $visited)) {
echo Horde::link($url, strftime('%B %d, %Y', $time), 'visited');
} else {
Expand All @@ -34,9 +33,7 @@ echo strftime('%B %d, %Y', $time);

<?php foreach ($comics as $index => $comic): ?>
<div class="linedRow"><?php
$url = Horde_Util::addParameter(Horde::selfUrl(), array('actionID' => 'comic',
'index' => $index,
'date' => $date));
$url = Horde::selfUrl()->add(array('actionID' => 'comic', 'index' => $index, 'date' => $date));
if (!in_array($index, $selected)) {
echo Horde::link($url, $comic['name'], 'unselected');
} else {
Expand Down
12 changes: 6 additions & 6 deletions klutz/templates/comics/missing.inc
Expand Up @@ -12,12 +12,12 @@
<?php
echo _("This image is not currently available.");
if ($registry->isAdmin('klutz:admin')) {
$fetchurl = Horde::url('backend.php');
$fetchurl = Horde_Util::addParameter($fetchurl, array('mode' => 'fetch',
'date' => $date,
'index' => $index,
'redirect' => 'comics.php',
'action' => $actionID));
$fetchurl = Horde::url('backend.php')->add(array(
'mode' => 'fetch',
'date' => $date,
'index' => $index,
'redirect' => 'comics.php',
'action' => $actionID));
echo '<br /><a href="' . $fetchurl . '">' .
_("Try to fetch this comic") . '</a>';
}
Expand Down
2 changes: 1 addition & 1 deletion koward/www/horde/config/prefs.php.dist
Expand Up @@ -399,7 +399,7 @@ $_prefs['moz_sidebar'] = array(
'type' => 'link',
'xurl' => sprintf('javascript:if (window.sidebar && window.sidebar.addPanel) window.sidebar.addPanel(\'%s\', \'%s\', \'%s\'); else alert(\'%s\');',
$GLOBALS['registry']->get('name', 'horde'),
Horde_Util::addParameter(Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/sidebar.php', true, -1), 'mozbar', '1'),
Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/sidebar.php', true, -1)->add('mozbar', '1'),
Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/prefs.php', true, -1),
addslashes(_("Couldn't find the Mozilla Sidebar. Make sure the sidebar is open."))),
'desc' => sprintf(_("Add the %s Menu as a Mozilla Sidebar"), $GLOBALS['registry']->get('name', 'horde'))
Expand Down
3 changes: 1 addition & 2 deletions luxor/lib/Lang/Generic.php
Expand Up @@ -181,8 +181,7 @@ function processCode($code, $altsources = array())
if (!in_array($string, $this->_langmap['reserved']) &&
!in_array($match[0][$id], $replaced) && $idx = $index->isSymbol($string, $altsources)) {

$link = Horde::url(Horde_Util::addParameter('symbol.php', 'i', $idx));
$link = Horde_Util::addParameter($link, 'source', $sourceid);
$link = Horde::url('symbol.php')->add(array('i' => $idx, 'source' => $sourceid));
$match0 = str_replace($string, '<a href="' . $link . '" class="fixed"><span class="symbol">' . $string . "</span></a>", $match[0][$id]);
$code = str_replace($match[0][$id], $match0, $code);
$replaced[] = $match[0][$id];
Expand Down
4 changes: 2 additions & 2 deletions luxor/lib/Luxor.php
Expand Up @@ -48,9 +48,9 @@ function url($uri = '', $args = array(), $anchor = '')
$uri = 'source.php';
}

$url = Horde_Util::addParameter(Horde::url($uri), $arglist);
$url = Horde::url($uri)->add($arglist);
if (!empty($anchor)) {
$url .= "#$anchor";
$url->setAnchor($anchor);
}

return $url;
Expand Down
10 changes: 3 additions & 7 deletions mnemo/lib/Block/Summary.php
Expand Up @@ -83,12 +83,9 @@ protected function _content()

if (!empty($this->_params['show_actions'])) {
$editImg = Horde_Themes::img('edit.png');
$editurl = Horde_Util::addParameter(
'memo.php',
array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));
$editurl = Horde::url('memo.php')->add(array('memo' => $memo['memo_id'], 'memolist' => $memo['memolist_id']));
$html .= '<td width="1%">'
. Horde::link(htmlspecialchars(Horde::url(Horde_Util::addParameter($editurl, 'actionID', 'modify_memo'), true)), _("Edit Note"))
. Horde::link(htmlspecialchars(Horde::url($editurl, true)->add('actionID', 'modify_memo')), _("Edit Note"))
. Horde::img($editImg, _("Edit Note"))
. '</a></td>';
}
Expand All @@ -100,8 +97,7 @@ protected function _content()
$html .= '<td>' . htmlspecialchars($owner) . '</td>';
}

$viewurl = Horde_Util::addParameter(
'view.php',
$viewurl = Horde::url('view.php')->add(
array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));

Expand Down
9 changes: 4 additions & 5 deletions mnemo/notes/index.php
Expand Up @@ -58,14 +58,13 @@
require MNEMO_TEMPLATES . '/list/memo_headers.inc';

foreach ($memos as $memo_id => $memo) {
$viewurl = Horde_Util::addParameter(
'view.php',
$viewurl = Horde::url('view.php')->add(
array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));

$memourl = Horde_Util::addParameter(
'memo.php', array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));
$memourl = Horde::url('memo.php')->add(
array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));
try {
$share = $GLOBALS['mnemo_shares']->getShare($memo['memolist_id']);
$notepad = $share->get('name');
Expand Down
2 changes: 1 addition & 1 deletion mnemo/templates/list/memo_headers.inc
Expand Up @@ -28,7 +28,7 @@ function table_sortCallback(tableId, column, sortDown)
echo Horde::widget(array('url' => Horde::url('list.php')->add('sortby', Mnemo::SORT_CATEGORY), 'class' => 'sortlink', 'title' => _("_Category")));
if ($GLOBALS['registry']->getAuth() && (!$GLOBALS['prefs']->isLocked('categories') ||
!$GLOBALS['prefs']->isLocked('category_colors'))) {
$categoryUrl = Horde_Util::addParameter(Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/prefs.php'), array('app' => 'horde', 'group' => 'categories'));
$categoryUrl = Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/prefs.php')->add(array('app' => 'horde', 'group' => 'categories'));
echo ' ' . Horde::link($categoryUrl, _("Edit categories and colors"), '', '_blank', 'HordePopup.popup({url:this.href});Event.stop(event);return false;') . Horde::img('colorpicker.png', _("Edit categories and colors"), '') . '</a>';
}
?>
Expand Down
2 changes: 1 addition & 1 deletion mnemo/templates/list/memo_summaries.inc
Expand Up @@ -3,7 +3,7 @@
<?php
if ($share->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::EDIT)) {
$label = sprintf(_("Edit \"%s\""), $memo['desc']);
echo Horde::link(Horde::url(Horde_Util::addParameter($memourl, 'actionID', 'modify_memo')), $label) .
echo Horde::link(Horde::url($memourl)->add('actionID', 'modify_memo')), $label) .
Horde::img('edit.png', $label, '') . '</a>';
}
?>
Expand Down
9 changes: 4 additions & 5 deletions mnemo/templates/stickies.html.php
Expand Up @@ -77,14 +77,13 @@
<ul>
<?php
foreach ($memos as $memo_id => $memo) {
$viewurl = Horde_Util::addParameter(
'view.php',
$viewurl = Horde::url('view.php')->add(
array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));

$memourl = Horde_Util::addParameter(
'memo.php', array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));
$memourl = Horde::url('memo.php')->add(
array('memo' => $memo['memo_id'],
'memolist' => $memo['memolist_id']));
try {
$share = $GLOBALS['mnemo_shares']->getShare($memo['memolist_id']);
$notepad = $share->get('name');
Expand Down
8 changes: 4 additions & 4 deletions nag/lib/Nag.php
Expand Up @@ -975,10 +975,10 @@ static public function sendNotification($action, $task, $old_task = null)
foreach ($addresses as $lang => $twentyFour) {
$GLOBALS['registry']->setLanguageEnvironment($lang);

$view_link = Horde_Util::addParameter(Horde::url('view.php', true),
array('tasklist' => $task->tasklist,
'task' => $task->id),
null, false);
$view_link = Horde::url('view.php', true)->add(array(
'tasklist' => $task->tasklist,
'task' => $task->id
))->setRaw(true);

switch ($action) {
case 'add':
Expand Down
12 changes: 6 additions & 6 deletions nag/lib/Task.php
Expand Up @@ -676,8 +676,8 @@ public function process($indent = 0)
}

if (!isset($view_url_list[$this->tasklist])) {
$view_url_list[$this->tasklist] = Horde_Util::addParameter(Horde::url('view.php'), 'tasklist', $this->tasklist);
$task_url_list[$this->tasklist] = Horde_Util::addParameter(Horde::url('task.php'), 'tasklist', $this->tasklist);
$view_url_list[$this->tasklist] = Horde::url('view.php')->add('tasklist', $this->tasklist);
$task_url_list[$this->tasklist] = Horde::url('task.php')->add('tasklist', $this->tasklist);
}

/* Obscure private tasks. */
Expand All @@ -687,12 +687,12 @@ public function process($indent = 0)
}

/* Create task links. */
$this->view_link = Horde_Util::addParameter($view_url_list[$this->tasklist], 'task', $this->id);
$this->view_link = $view_url_list[$this->tasklist]->copy()->add('task', $this->id);

$task_url_task = Horde_Util::addParameter($task_url_list[$this->tasklist], 'task', $this->id);
$task_url_task = $task_url_list[$this->tasklist]->copy()->add('task', $this->id);
$this->complete_link = Horde::url('t/complete')->add(array('url' => Horde::url('list.php'), 'task' => $this->id, 'tasklist' => $this->tasklist));
$this->edit_link = Horde_Util::addParameter($task_url_task, 'actionID', 'modify_task');
$this->delete_link = Horde_Util::addParameter($task_url_task, 'actionID', 'delete_task');
$this->edit_link = $task_url_task->copy()->add('actionID', 'modify_task');
$this->delete_link = $task_url_task->copy()->add('actionID', 'delete_task');
}

/**
Expand Down
2 changes: 1 addition & 1 deletion nag/templates/alarm/mail.html.php
@@ -1,4 +1,4 @@
<p><font size="4"><strong><a href="<?php echo Horde_Util::removeParameter($this->task->view_link, session_name()) ?>"><?php echo $this->h($this->task->name) ?></a></strong></font></p>
<p><font size="4"><strong><a href="<?php $url = new Horde_Url($this->task_view_link); echo $url->removeParameter(session_name()) ?>"><?php echo $this->h($this->task->name) ?></a></strong></font></p>

<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
<td width="140" valign="top">
Expand Down
3 changes: 1 addition & 2 deletions operator/viewgraph.php
Expand Up @@ -83,8 +83,7 @@
$graphtypes = Operator::getGraphInfo();

foreach($graphtypes as $type => $info) {
$graphs[$type] = Horde_Util::addParameter($url, array(
'graph' => $type, 'key' => $cachekey));
$graphs[$type] = $url->add(array('graph' => $type, 'key' => $cachekey));
}
}
$curgraph = $vars->get('graph');
Expand Down
27 changes: 13 additions & 14 deletions sesha/admin.php
Expand Up @@ -35,7 +35,7 @@
switch ($actionID) {

case 'add_category':
$url = Horde_Util::addParameter('admin.php', 'actionID', 'list_categories');
$url = Horde::url('admin.php')->add('actionID', 'list_categories');
$title = _("Add a category");
$vars->set('actionID', $actionID);
$renderer = new Horde_Form_Renderer();
Expand Down Expand Up @@ -65,7 +65,7 @@
break;

case 'edit_category':
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'list_categories');
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'list_categories');
try {
$category = $sesha_driver->getCategory($category_id);
} catch (Sesha_Exception $e) {
Expand Down Expand Up @@ -114,7 +114,7 @@
break;

case 'delete_category':
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'list_categories');
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'list_categories');
if ($vars->get('confirm') == 'yes') {
try {
$sesha_driver->deleteCategory($category_id);
Expand All @@ -131,7 +131,7 @@
exit;

case 'edit_property':
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'list_properties');
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'list_properties');
try {
$property = $sesha_driver->getProperty($property_id);
} catch (Sesha_Exception $e) {
Expand Down Expand Up @@ -173,7 +173,7 @@
break;

case 'delete_property':
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'list_properties');
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'list_properties');
if ($vars->get('confirm') == 'yes') {
try {
$sesha_driver->deleteProperty($property_id);
Expand All @@ -190,7 +190,7 @@
exit;

case 'add_property':
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'list_properties');
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'list_properties');
$title = _("Add a property");
$vars->set('actionID', $actionID);
$renderer = new Horde_Form_Renderer();
Expand All @@ -214,15 +214,15 @@

default:
case 'list_categories':
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'edit_category');
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'edit_category');
$vars->set('actionID', 'edit_category');
$renderer = new Horde_Form_Renderer();
$form = new Sesha_Form_CategoryList($vars, 'admin.php', 'post');
$valid = $form->validate($vars);
if ($valid) {
// Redirect to the category list form.
$url = Horde_Util::addParameter($url, 'category_id', $vars->get('category_id'));
header('Location: ' . Horde::url($url, true));
$url = Horde::url($url, true)->add('category_id', $vars->get('category_id'));
header('Location: ' . $url);
exit;
}
$vars2 = Horde_Variables::getDefaultVariables();
Expand All @@ -232,7 +232,7 @@
$valid = $form2->validate($vars2);
if ($valid) {
// Redirect to the category form.
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'list_categories');
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'list_categories');
header('Location: ' . Horde::url($url, true));
exit;
}
Expand All @@ -245,8 +245,7 @@
$valid = $form->validate($vars);
if ($valid) {
// Redirect to the property list form.
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'edit_property');
$url = Horde_Util::addParameter($url, 'property_id', $vars->get('property_id'));
$url = Horde::url($baseUrl . '/admin.php')->add('actionID', 'edit_property')->add('property_id', $vars->get('property_id'));
header('Location: ' . Horde::url($url, true));
exit;
}
Expand All @@ -257,8 +256,8 @@
$valid = $form2->validate($vars2);
if ($valid) {
// Redirect to the property form.
$url = Horde_Util::addParameter($baseUrl . '/admin.php', 'actionID', 'list_properties');
header('Location: ' . Horde::url($url, true));
$url = Horde::url($baseUrl . '/admin.php', true)->add('actionID', 'list_properties');
header('Location: ' . $url);
exit;
}
break;
Expand Down
4 changes: 2 additions & 2 deletions sesha/lib/Api.php
Expand Up @@ -42,7 +42,7 @@ public function getQueueDetails($queue_id)
return array('id' => $queue_id,
'name' => $category->category,
'description' => $category->description,
'link' => Horde_Util::addParameter(Horde::applicationUrl('list.php', true), 'display_category', $queue_id - 1, false),
'link' => Horde::applicationUrl('list.php', true)->add('display_category', $queue_id - 1)->setRaw(true),
'subjectlist' => $GLOBALS['conf']['tickets']['subjects'],
'versioned' => $registry->hasMethod('tickets/listVersions') == $registry->getApp(),
'readonly' => true);
Expand Down Expand Up @@ -79,7 +79,7 @@ public function getVersionDetails($version_id)
return array('id' => $version_id,
'name' => $item->stock_name,
'description' => $item->note,
'link' => Horde_Util::addParameter(Horde::applicationUrl('stock.php', true), array('stock_id' => $version_id, 'actionId' => 'view_stock'), null, false),
'link' => Horde::applicationUrl('stock.php', true)->add(array('stock_id' => $version_id, 'actionId' => 'view_stock'))->setRaw(true),
'readonly' => true);
}
}
8 changes: 4 additions & 4 deletions sesha/lib/View/List.php
Expand Up @@ -93,25 +93,25 @@ protected function columnHeaders($sortDir, $sortBy)
$column_headers = array(
array('id' => 's' . Sesha::SORT_STOCKID,
'class' => $sortBy == Sesha::SORT_STOCKID ? ' class="' . $sortdirclass . '"' : '',
'link' => Horde::link(Horde_Util::addParameter($baseurl, 'sortby', Sesha::SORT_STOCKID), _("Sort by stock ID"), 'sortlink') . _("Stock ID") . '</a>',
'link' => Horde::link($baseurl->copy()->add('sortby', Sesha::SORT_STOCKID), _("Sort by stock ID"), 'sortlink') . _("Stock ID") . '</a>',
'width' => ' width="5%"'),
array('id' => 's' . Sesha::SORT_NAME,
'class' => $sortBy == Sesha::SORT_NAME ? ' class="' . $sortdirclass . '"' : '',
'link' => Horde::link(Horde_Util::addParameter($baseurl, 'sortby', Sesha::SORT_NAME), _("Sort by item name"), 'sortlink') . _("Item Name") . '</a>',
'link' => Horde::link($baseurl->copy()->add('sortby', Sesha::SORT_NAME), _("Sort by item name"), 'sortlink') . _("Item Name") . '</a>',
'width' => '')
);
foreach ($this->shownProperties as $property) {
$column_headers[] = array(
'id' => 'sp' . $property->property_id,
'class' => $sortBy == 'p' . $property->property_id ? ' class="' . $sortdirclass . '"' : '',
'link' => Horde::link(Horde_Util::addParameter($baseurl, 'sortby', 'p' . $property->property_id), sprintf(_("Sort by %s"), htmlspecialchars($property->property)), 'sortlink') . htmlspecialchars($property->property) . '</a>',
'link' => Horde::link($baseurl->copy()->add('sortby', 'p' . $property->property_id), sprintf(_("Sort by %s"), htmlspecialchars($property->property)), 'sortlink') . htmlspecialchars($property->property) . '</a>',
'width' => '',
);
}
$column_headers[] = array(
'id' => 's' . Sesha::SORT_NOTE,
'class' => $sortby == Sesha::SORT_NOTE ? ' class="' . $sortdirclass . '"' : '',
'link' => Horde::link(Horde_Util::addParameter($baseurl, 'sortby', Sesha::SORT_NOTE), _("Sort by note"), 'sortlink') . _("Note") . '</a>',
'link' => Horde::link($baseurl->copy()->add('sortby', Sesha::SORT_NOTE), _("Sort by note"), 'sortlink') . _("Note") . '</a>',
'width' => '',
);
return $column_headers;
Expand Down
9 changes: 4 additions & 5 deletions sesha/stock.php
Expand Up @@ -130,7 +130,7 @@
$form = new Sesha_Form_Stock($vars);
$form->setTitle((!isset($form_title) ? _("Edit Inventory Item") : $form_title));
if (!$active) {
$form->setExtra('<span class="smallheader">' . Horde::link(Horde_Util::addParameter(Horde::url('stock.php'), array('stock_id' => $vars->get('stock_id'), 'actionId' => 'update_stock'))) . _("Edit") . '</a></span>');
$form->setExtra('<span class="smallheader">' . Horde::link(Horde::url('stock.php')->add(array('stock_id' => $vars->get('stock_id'), 'actionId' => 'update_stock'))) . _("Edit") . '</a></span>');
}

if ($form->validate($vars) && $form->isSubmitted()) {
Expand Down Expand Up @@ -160,10 +160,9 @@
$notification->push(_("The stock item was successfully updated."), 'horde.success');

// Redirect after update.
$url = Horde::selfUrl(false, true, true);
$url = Horde_Util::addParameter($url, array('actionId' => 'view_stock',
'stock_id' => $vars->get('stock_id')),
null, false);
$url = Horde::selfUrl(false, true, true)->add(array(
'actionId' => 'view_stock',
'stock_id' => $vars->get('stock_id')))->setRaw(true);
header('Location: ' . $url);
exit;
}
Expand Down
5 changes: 1 addition & 4 deletions shout/templates/admin/accounts/edit.inc
Expand Up @@ -2,9 +2,6 @@
$Form->renderActive($RENDERER, $vars, Horde::url('admin/accounts.php'), 'post');

if ($vars->get('action') == 'edit') {
$deleteUrl = Horde::url('admin/accounts.php');
$params = array ('action' => 'delete',
'account' => $account);
$deleteUrl = Horde_Util::addParameter($deleteUrl, $params);
$deleteUrl = Horde::url('admin/accounts.php')->add(array('action' => 'delete', 'account' => $account));
echo '<a href="' . $deleteUrl . '">Delete Account</a>';
}
11 changes: 5 additions & 6 deletions shout/templates/admin/accounts/list.inc
Expand Up @@ -7,15 +7,14 @@
</tr>
<?php
$url = Horde::url("admin/accounts.php");
$editurl = Horde_Util::addParameter($url, 'action', 'edit');
$deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
$editurl = $url->copy()->add('action', 'edit');
$deleteurl = $url->copy()->('action', 'delete');
foreach ($accounts as $acctinfo) {
$code = $acctinfo['code'];
?>
<tr class="item" style="vertical-align: top">
<td>
<?php echo Horde::link(Horde_Util::addParameter($editurl,
array('account' => $code))); echo $code; echo '</a>'; ?>
<?php echo Horde::link($editurl->add(array('account' => $code))); echo $code; echo '</a>'; ?>
</td>
<td>
<?php echo $acctinfo['name']; ?>
Expand All @@ -31,10 +30,10 @@
</div>
<ul id="controls">
<?php
$addurl = Horde_Util::addParameter($url, 'action', 'add');
$addurl = $url->copy()->add('action', 'add');
?>
<li><a class="horde-create" href="<?php echo $addurl; ?>">
<?php echo Horde::img('extension-add.png'); ?>&nbsp;New Account
</a>
</li>
</ul>
</ul>
11 changes: 5 additions & 6 deletions shout/templates/admin/numbers/list.inc.php
Expand Up @@ -7,15 +7,14 @@
</tr>
<?php
$url = Horde::url("admin/numbers.php");
$editurl = Horde_Util::addParameter($url, 'action', 'edit');
$deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
$editurl = $url->copy()->add('action', 'edit');
$deleteurl = $url->copy()->add('action', 'delete');
foreach ($numbers as $numberinfo) {
$accountcode = $numberinfo['accountcode'];
?>
<tr class="item">
<td>
<?php echo Horde::link(Horde_Util::addParameter($editurl,
array('number' => $numberinfo['number'])));
<?php echo Horde::link($editurl->add(array('number' => $numberinfo['number'])));
echo $numberinfo['number']; echo '</a>'; ?>
</td>
<td>
Expand All @@ -32,10 +31,10 @@
</div>
<ul id="controls">
<?php
$addurl = Horde_Util::addParameter($url, 'action', 'add');
$addurl = $url->add('action', 'add');
?>
<li><a class="horde-create" href="<?php echo $addurl; ?>">
<?php echo Horde::img('extension-add.png'); ?>&nbsp;New Number
</a>
</li>
</ul>
</ul>
13 changes: 4 additions & 9 deletions shout/templates/conferences/list.inc
Expand Up @@ -12,14 +12,10 @@
</tr>
<?php
$url = Horde::url("conferences.php");
$editurl = Horde_Util::addParameter($url, 'action', 'edit');
$deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
$editurl = $url->copy()->add('action', 'edit');
$deleteurl = $url->copy()->add('action', 'delete');
foreach ($conferences as $roomno => $info) {
$editurl = Horde_Util::addParameter($editurl,
array(
'roomno' => $roomno,
)
);
$editurl->add(array('roomno' => $roomno));
?>
<tr class="item">
<td>
Expand All @@ -42,8 +38,7 @@
</div>
<ul id="controls">
<?php
$addurl = Horde::url('conferences.php');
$addurl = Horde_Util::addParameter($addurl, 'action', 'add');
$addurl = Horde::url('conferences.php')->add('action', 'add');
?>
<li><a class="horde-create" href="<?php echo $addurl; ?>">
<?php echo Horde::img('conference-add.png'); ?>&nbsp;New Conference Room
Expand Down
14 changes: 4 additions & 10 deletions shout/templates/devices/list.inc
Expand Up @@ -13,14 +13,9 @@
$line = 0;
foreach ($devices as $devid => $info) {

$url = Horde::url("devices.php");
$url = Horde_Util::addParameter($url,
array(
'devid' => $devid,
)
);
$editurl = Horde_Util::addParameter($url, 'action', 'edit');
$deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
$url = Horde::url("devices.php")->add('devid', $devid);
$editurl = $url->copy()->add('action', 'edit');
$deleteurl = $url->copy()->add('action', 'delete');
?>
<tr class="item">
<td>
Expand All @@ -40,8 +35,7 @@
</div>
<ul id="controls">
<?php
$addurl = Horde::url('devices.php');
$addurl = Horde_Util::addParameter($addurl, 'action', 'add');
$addurl = Horde::url('devices.php')->add('action', 'add');
?>
<li><a class="horde-create" href="<?php echo $addurl; ?>">
<?php echo Horde::img('device-add.png'); ?>&nbsp;New Device
Expand Down
3 changes: 1 addition & 2 deletions shout/templates/dialplan/edit.inc
Expand Up @@ -38,8 +38,7 @@
<br style="clear:both;">
<ul id="dialplanControls" class="controls">
<?php
$addurl = Horde::url('dialplan.php');
$addurl = Horde_Util::addParameter($addurl, 'action', 'add');
$addurl = Horde::url('dialplan.php')->add('action', 'add');
?>

<li>
Expand Down
14 changes: 4 additions & 10 deletions shout/templates/extensions.inc.php
Expand Up @@ -11,14 +11,9 @@
<?php
foreach ($extensions as $extension => $info) {

$url = Horde::url("extensions.php");
$url = Horde_Util::addParameter($url,
array(
'extension' => $extension,
)
);
$editurl = Horde_Util::addParameter($url, 'action', 'edit');
$deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
$url = Horde::url("extensions.php")->add(array('extension' => $extension));
$editurl = $url->copy()->add('action', 'edit');
$deleteurl = $url->copy()->add('action', 'delete');
?>
<tr class="item" style="vertical-align: top">
<td>
Expand All @@ -44,8 +39,7 @@
<br />
<ul id="extensionsControls" class="controls">
<?php
$addurl = Horde::url('extensions.php');
$addurl = Horde_Util::addParameter($addurl, 'action', 'add');
$addurl = Horde::url('extensions.php')->add('action', 'add');
?>
<li><span class="button" onclick="showExtensionForm()">
<?php echo Horde::img('extension-add.png'); ?>&nbsp;New Extension
Expand Down
8 changes: 2 additions & 6 deletions shout/templates/recordings/list.inc
Expand Up @@ -9,8 +9,7 @@
<td class="uheader">Recording ID</td>
</tr>
<?php
$url = Horde::url("recordings.php");
$deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
$url = Horde::url("recordings.php")->add('action', 'delete');
foreach ($recordings as $info) {
?>
<tr class="item" style="vertical-align: top">
Expand All @@ -27,10 +26,7 @@
</table>
</div>
<ul id="controls">
<?php
$addurl = Horde_Util::addParameter($url, 'action', 'add');
?>
<li><a class="horde-create" href="<?php echo $addurl; ?>">
<li><a class="horde-create" href="<?php echo $url->add('action', 'add') ?>">
<?php echo Horde::img('recording-add.png'); ?>&nbsp;New Recording
</a>
</li>
Expand Down
6 changes: 3 additions & 3 deletions trean/lib/Api.php
Expand Up @@ -70,15 +70,15 @@ public function getAddUrl($params = array())
$browser = $GLOBALS['injector']->getInstance('Horde_Browser');
if ($browser->hasFeature('javascript')) {
if ($browser->hasFeature('dom')) {
$addurl = Horde_Util::addParameter(Horde::url('add.php', true, -1), 'iframe', 1);
$addurl = Horde::url('add.php', true, -1)->add('iframe', 1);
$url = "javascript:(function(){o=document.createElement('div');o.id='overlay';o.style.background='#000';o.style.position='absolute';o.style.top=0;o.style.left=0;o.style.width='100%';o.style.height='100%';o.style.zIndex=5000;o.style.opacity=.8;document.body.appendChild(o);i=document.createElement('iframe');i.id='frame';i.style.zIndex=5001;i.style.border='thin solid #000';i.src='$addurl'+'&title=' + encodeURIComponent(document.title) + '&url=' + encodeURIComponent(location.href);i.style.position='absolute';i.style.width='350px';i.style.height='150px';i.style.left='100px';i.style.top='100px';document.body.appendChild(i);l=document.createElement('a');l.style.position='absolute';l.style.background='#ccc';l.style.color='#000';l.style.border='thin solid #000';l.style.display='block';l.style.top='250px';l.style.left='100px';l.style.zIndex=5001;l.style.padding='5px';l.appendChild(document.createTextNode('" . _("Close") . "'));l.onclick=function(){var o=document.getElementById('overlay');o.parentNode.removeChild(o);var i=document.getElementById('frame');i.parentNode.removeChild(i);this.parentNode.removeChild(this);};document.body.appendChild(l);})()";
} else {
$addurl = Horde::url(Horde_Util::addParameter('add.php', 'popup', 1), true, -1);
$addurl = Horde::url('add.php', true, -1)->add('popup', 1);
$url = "javascript:d = new Date(); w = window.open('$addurl' + '&amp;title=' + encodeURIComponent(document.title) + '&amp;url=' + encodeURIComponent(location.href) + '&amp;d=' + d.getTime(), d.getTime(), 'height=200,width=400'); w.focus();";
}
} else {
// Fallback to a regular URL
$url = Horde::url(Horde_Util::addParameter('add.php', $params), true);
$url = Horde::url('add.php', true)->add($params);
}

return $url;
Expand Down
3 changes: 1 addition & 2 deletions trean/lib/Trean.php
Expand Up @@ -60,8 +60,7 @@ static function getFavicon($bookmark)
if ($bookmark->favicon
&& $vfs->exists('.horde/trean/favicons/', $bookmark->favicon)) {

return Horde_Util::addParameter(Horde::url('favicon.php'),
'bookmark_id', $bookmark->id);
return Horde::url('favicon.php')->add('bookmark_id', $bookmark->id);
}
} catch (Exception $e) {
}
Expand Down
2 changes: 1 addition & 1 deletion trean/templates/block/1line.inc
@@ -1,5 +1,5 @@
<?php
$bookmark_url = Horde_Util::addParameter(Horde::url('redirect.php'), 'b', $bookmark->id);
$bookmark_url = Horde::url('redirect.php')->add('b', $bookmark->id);
$target = $GLOBALS['prefs']->getValue('show_in_new_window') ? '_blank' : '';
if ($bookmark->http_status == 'error') {
$status = 'error.png';
Expand Down
2 changes: 1 addition & 1 deletion trean/templates/block/2line.inc
@@ -1,5 +1,5 @@
<?php
$bookmark_url = Horde_Util::addParameter(Horde::url('redirect.php'), 'b', $bookmark->id);
$bookmark_url = Horde::url('redirect.php')->add('b', $bookmark->id);
$target = $GLOBALS['prefs']->getValue('show_in_new_window') ? '_blank' : '';
if ($bookmark->http_status == 'error') {
$status = 'error.png';
Expand Down
2 changes: 1 addition & 1 deletion trean/templates/block/standard.inc
@@ -1,6 +1,6 @@
<?php
$target = $GLOBALS['prefs']->getValue('show_in_new_window') ? '_blank' : '';
$bookmark_url = Horde_Util::addParameter(Horde::url('redirect.php'), 'b', $bookmark->id);
$bookmark_url = Horde::url('redirect.php')->add('b', $bookmark->id);
if ($bookmark->http_status == 'error') {
$status = 'error.png';
} elseif ($bookmark->http_status == '') {
Expand Down
2 changes: 1 addition & 1 deletion turba/templates/browse/column_headers.inc
Expand Up @@ -17,7 +17,7 @@
<?php if ($this->showGroup): $col_count++; ?>
<th class="turba-browse-icon item" width="1%"><span class="iconImg groupImg" title="<?php echo htmlspecialchars(_("List")) ?>"></span></th>
<?php endif; ?>
<?php $s_url = Horde_Util::removeParameter(Horde::selfUrl(true), array('sortadd', 'sortby', 'sortdir')); for ($i = 0, $imax = count($this->columns); $i <= $imax; ++$i): ?>
<?php $s_url = Horde::selfUrl(true)->remove(array('sortadd', 'sortby', 'sortdir')); for ($i = 0, $imax = count($this->columns); $i <= $imax; ++$i): ?>
<?php $columnlabel = $GLOBALS['attributes'][$i == 0 ? 'name' : $this->getColumnName($i)]['label']; ?>
<th class="<?php echo ($this->showSort && $this->isSortColumn($i)) ? 'selected' : 'item' ?> leftAlign" width="<?php echo $width ?>%" nowrap="nowrap">
<?php if ($this->showSort): ?>
Expand Down
6 changes: 3 additions & 3 deletions whups/lib/Form/Admin/EditQueueStepTwo.php
Expand Up @@ -65,7 +65,7 @@ public function __construct(&$vars)
if ($registry->hasMethod('tickets/listVersions') == $registry->getApp()) {
$versionlink = array(
'text' => _("Edit the versions for this queue"),
'url' => Horde_Util::addParameter(Horde::url('admin/?formname=whups_form_admin_editversionstepone'), 'queue', $queue));
'url' => Horde::url('admin/?formname=whups_form_admin_editversionstepone')->add('queue', $queue));
$this->addVariable('', 'link', 'link', false, true, null, array($versionlink));
}

Expand All @@ -82,7 +82,7 @@ public function __construct(&$vars)
$musers->setDefault($whups_driver->getQueueUsers($queue));
$userlink = array(
'text' => _("Edit the users responsible for this queue"),
'url' => Horde_Util::addParameter(Horde::url('admin/?formname=edituserform'), 'queue', $queue));
'url' => Horde::url('admin/?formname=edituserform')->add('queue', $queue));
$this->addVariable('', 'link', 'link', false, true, null,
array($userlink));

Expand All @@ -99,4 +99,4 @@ public function __construct(&$vars)
}
}

}
}
4 changes: 2 additions & 2 deletions whups/lib/Form/Admin/EditReplyStepTwo.php
Expand Up @@ -33,9 +33,9 @@ public function __construct(&$vars)
if ($GLOBALS['registry']->isAdmin(array('permission' => 'whups:admin', 'permlevel' => Horde_Perms::EDIT))) {
$permslink = array(
'text' => _("Edit the permissions on this form reply"),
'url' => Horde_Util::addParameter(Horde_Util::addParameter(Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/admin/perms/edit.php'), 'category', "whups:replies:$reply"), 'autocreate', '1'));
'url' => Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/admin/perms/edit.php')->add(array('category' => "whups:replies:$reply", 'autocreate' => '1')));
$this->addVariable('', 'link', 'link', false, true, null, array($permslink));
}
}

}
}
13 changes: 5 additions & 8 deletions whups/lib/Form/Renderer/Comment.php
Expand Up @@ -92,14 +92,11 @@ public function render($transaction, &$vars)
$comment = $change['comment'];
$private = !empty($change['private']);
if ($comment) {
$reply =
Horde::link(
Horde::url(
Horde_Util::addParameter(
$canUpdate ? 'ticket/update.php' : 'ticket/comment.php',
array('id' => $vars->get('ticket_id'),
'transaction' => $transaction))))
. _("Reply to this comment") . '</a>';
$reply = Horde::link(
Horde::url($canUpdate ? 'ticket/update.php' : 'ticket/comment.php')->add(array(
'id' => $vars->get('ticket_id'),
'transaction' => $transaction
))) . _("Reply to this comment") . '</a>';
}
break;

Expand Down
5 changes: 1 addition & 4 deletions whups/lib/Query.php
Expand Up @@ -230,10 +230,7 @@ public function getTabs(Horde_Variables $vars)
if ($this->id && $edit && empty($GLOBALS['conf']['share']['no_sharing'])) {
$GLOBALS['page_output']->addScriptFile('popup.js', 'horde');

$permsurl = $GLOBALS['registry']->get('webroot', 'horde') . '/services/shares/edit.php';
$permsurl = Horde_Util::addParameter(
$permsurl,
array(
$permsurl = Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/shares/edit.php')->add(array(
'app' => 'whups',
'cid' => $this->id));
$tabs->addTab(
Expand Down
16 changes: 7 additions & 9 deletions whups/lib/Whups.php
Expand Up @@ -152,8 +152,7 @@ static public function urlFor($controller, $data, $full = false,
$param = array('query' => $data);
}
$url = $controller == 'query' ? 'query/run.php' : 'query/rss.php';
$url = Horde_Util::addParameter($url, $param);
return Horde::url($url, $full, $append_session);
return Horde::url($url, $full, $append_session)->add($param);
}
break;
}
Expand Down Expand Up @@ -1007,11 +1006,11 @@ static public function attachmentUrl($ticket, $file, $queue)
$mime_part->setType(Horde_Mime_Magic::extToMime($file['type']));
$viewer = $GLOBALS['injector']->getInstance('Horde_Core_Factory_MimeViewer')->create($mime_part);
if ($viewer && !($viewer instanceof Horde_Mime_Viewer_Default)) {
$url = Horde_Util::addParameter(Horde::url('view.php'),
array('actionID' => 'view_file',
'type' => $file['type'],
'file' => $file['name'],
'ticket' => $ticket));
$url = Horde::url('view.php')->add(array(
'actionID' => 'view_file',
'type' => $file['type'],
'file' => $file['name'],
'ticket' => $ticket));
$link .= Horde::link($url, $file['name'], null, '_blank') . $file['name'] . '</a>';
} else {
$link .= $file['name'];
Expand All @@ -1025,8 +1024,7 @@ static public function attachmentUrl($ticket, $file, $queue)

// Admins can delete attachments.
if (self::hasPermission($queue, 'queue', Horde_Perms::DELETE)) {
$url = Horde_Util::addParameter(
Horde::url('ticket/delete_attachment.php'),
$url = Horde::url('ticket/delete_attachment.php')->add(
array('file' => $file['name'],
'id' => $ticket,
'url' => Horde::selfUrl(true, false, true)));
Expand Down
8 changes: 2 additions & 6 deletions whups/queue/rss.php
Expand Up @@ -105,12 +105,8 @@
}
$template->set('title', htmlspecialchars($rss_title));
$template->set('items', $items, true);
$template->set('url',
Horde_Util::addParameter(Horde::url('queue/', true, -1),
'id', $id));
$template->set('rss_url',
Horde_Util::addParameter(Horde::url('rss.php', true, -1),
'id', $id));
$template->set('url', Horde::url('queue/', true, -1)->add('id', $id));
$template->set('rss_url', Horde::url('rss.php', true, -1)->add('id', $id));
if (isset($queue['name'])) {
$description = sprintf(_("Open tickets in %s"), $queue['name']);
} else {
Expand Down
10 changes: 5 additions & 5 deletions whups/search.php
Expand Up @@ -14,25 +14,25 @@
*/
function _getSearchUrl($vars)
{
$qUrl = '';
$qUrl = new Horde_Url();

$queue = (int)$vars->get('queue');
$qUrl = Horde_Util::addParameter($qUrl, array('queue' => $queue));
$qUrl->add(array('queue' => $queue));

$summary = $vars->get('summary');
if ($summary) {
$qUrl = Horde_Util::addParameter($qUrl, 'summary', $summary);
$qUrl->add('summary', $summary);
}

$states = $vars->get('states');
if (is_array($states)) {
foreach ($states as $type => $state) {
if (is_array($state)) {
foreach ($state as $s) {
$qUrl = Horde_Util::addParameter($qUrl, "states[$type][]", $s);
$qUrl->add("states[$type][]", $s);
}
} else {
$qUrl = Horde_Util::addParameter($qUrl, "states[$type]", $state);
$qUrl->add("states[$type]", $state);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions whups/templates/admin/mtmatrix.inc
Expand Up @@ -11,14 +11,14 @@
<tr>
<th class="control">&nbsp;</th>
<?php foreach ($types as $tid => $type): ?>
<th class="control" style="text-align:center" valign="bottom"><strong><?php echo Horde::link(Horde_Util::addParameter($tlink, 'type', $tid), $type) . htmlspecialchars($type) ?></a></strong></th>
<th class="control" style="text-align:center" valign="bottom"><strong><?php echo Horde::link(Horde::url($tlink)->add('type', $tid), $type) . htmlspecialchars($type) ?></a></strong></th>
<?php endforeach; ?>
</tr>

<!-- List each queue once for each type -->
<?php foreach ($queues as $mid => $queue): $selected = $whups_driver->getTypes($mid); ?>
<tr>
<td class="rightAlign"><strong><?php echo Horde::link(Horde_Util::addParameter($mlink, 'queue', $mid), $queue) . htmlspecialchars($queue) ?></a></strong>&nbsp;&nbsp;</td>
<td class="rightAlign"><strong><?php echo Horde::link(Horde::url($mlink)->add('queue', $mid), $queue) . htmlspecialchars($queue) ?></a></strong>&nbsp;&nbsp;</td>
<?php foreach ($types as $tid => $type): ?>
<td style="text-align:center"><input type="checkbox" class="checkbox" name="matrix[<?php echo (int)$mid ?>][<?php echo (int)$tid ?>]"<?php if (!empty($selected[$tid])) echo ' checked="checked"' ?> /></td>
<?php endforeach; ?>
Expand Down
2 changes: 1 addition & 1 deletion whups/templates/prevnext.inc
Expand Up @@ -35,7 +35,7 @@ $label = Horde::highlightAccessKey($label, $ak);
<small>
[ <?php echo implode(' ', $prevnext_links) ?> ]
<?php if ($ls = $GLOBALS['session']->get('whups', 'last_search')): ?>
[ <?php echo Horde::link(Horde_Util::addParameter($ls, 'haveSearch', true), '', '', '', '', '', $ak) . $label ?></a> ]
[ <?php echo Horde::link(Horde::url($ls)->add('haveSearch', true), '', '', '', '', '', $ak) . $label ?></a> ]
<?php endif; ?>
</small>
</p>
Expand Down
4 changes: 2 additions & 2 deletions whups/templates/view/results.inc
Expand Up @@ -42,11 +42,11 @@ function doResort(column, sortDown)
}
if ($sortby == $value) {
$class = ' class="' . $sortdirclass . '"';
$revurl = Horde_Util::addParameter($this->_params['url'], 'sortdir', ($sortdir ? 0 : 1));
$revurl = Horde::url($this->_params['url'])->add('sortdir', ($sortdir ? 0 : 1));
$sortlink = Horde::link($revurl, sprintf(_("Sort by %s"), $name), 'sortlink') . $name . '</a> ';
} else {
$class = '';
$url = Horde_Util::addParameter($this->_params['url'], 'sortby', $value);
$url = Horde::url($this->_params['url'])->add('sortby', $value);
$sortlink = Horde::link($url, sprintf(_("Sort by %s"), $name), 'sortlink') . $name . '</a> ';
}

Expand Down
2 changes: 1 addition & 1 deletion wicked/lib/Application.php
Expand Up @@ -84,7 +84,7 @@ public function menu($menu)
$cellclass = '__noselection';
}

$url = Horde_Util::addParameter(Wicked::url($pagename), 'referrer', $referrer);
$url = Wicked::url($pagename)->add('referrer', $referrer);
$menu->add($url, $pages[$pagename], str_replace('/', '', $pagename) . '.png', null, null, null, $cellclass);
}
}
Expand Down
2 changes: 1 addition & 1 deletion wicked/lib/Page.php
Expand Up @@ -554,7 +554,7 @@ public function pageUrl($linkpage = null, $actionId = null)
$url = Horde::url($linkpage);
}

return Horde_Util::addParameter($url, $params);
return $url->add($params);
}

public function pageTitle()
Expand Down
12 changes: 6 additions & 6 deletions wicked/lib/Page/RecentChanges.php
Expand Up @@ -44,12 +44,12 @@ public function content()
$createDate = mktime(0, 0, 0, $tm['tm_mon'], $tm['tm_mday'],
$tm['tm_year'], $tm['tm_isdst']);

$version_url = Horde_Util::addParameter($page->pageUrl(), 'version',
$page->version());
$diff_url = Horde_Util::addParameter(Horde::url('diff.php'),
array('page' => $page->pageName(),
'v1' => '?',
'v2' => $page->version()));
$version_url = $page->pageUrl()->add('version', $page->version());
$diff_url = Horde::url('diff.php')->add(array(
'page' => $page->pageName(),
'v1' => '?',
'v2' => $page->version()
));
$diff_alt = sprintf(_("Show changes for %s"), $page->version());
$diff_img = Horde::img('diff.png', $diff_alt);
$pageInfo = array('author' => $page->author(),
Expand Down
2 changes: 1 addition & 1 deletion wicked/lib/Page/StandardHistoryPage.php
Expand Up @@ -55,7 +55,7 @@ public function isOld()

public function pageUrl($linkpage = null, $actionId = null)
{
return Horde_Util::addParameter(parent::pageUrl($linkpage, $actionId), 'version', $this->version());
return parent::pageUrl($linkpage, $actionId)->add('version', $this->version());
}

}
5 changes: 2 additions & 3 deletions wicked/lib/Text_Wiki/Render/Xhtml/Image2.php
Expand Up @@ -43,11 +43,10 @@ public function token($options)
$params = array('page' => $page,
'mime' => '1',
'file' => $options['src']);
$options['src'] = Horde_Util::addParameter(Horde::url('view.php', true),
$params, null, false);
$options['src'] = Horde::url('view.php', true)->add($params)->setRaw(true);
}
} else {
$options['src'] = Horde_Util::addParameter(Horde::externalUrl($options['src']), 'untrusted', 1, false);
$options['src'] = Horde::externalUrl($options['src'])->add('untrusted', 1)->setRaw(true);
}

// Send external links through Horde::externalUrl().
Expand Down
2 changes: 1 addition & 1 deletion wicked/lib/Wicked.php
Expand Up @@ -79,7 +79,7 @@ public static function url($page, $full = false, $append_session = 0)
if ($GLOBALS['conf']['urls']['pretty'] == 'rewrite') {
$script = str_replace('%2F', '/', urlencode($page));
} else {
$script = Horde_Util::addParameter('display.php', 'page', $page);
$script = Horde::url('display.php')->add('page', $page);
}

$url = Horde::url($script, $full, array('append_session' => $append_session));
Expand Down
8 changes: 4 additions & 4 deletions wicked/templates/display/standard.inc
Expand Up @@ -139,8 +139,8 @@ foreach ($attachments as $attachment) {

<div id="pagefooter">
<?php echo _("Download this page as:") ?>
<a href="<?php echo Horde_Util::addParameter(Wicked::url($this->pageName()), array('actionID' => 'export', 'format' => 'plain')); ?>"><?php echo _("Plain Text") ?></a>,
<a href="<?php echo Horde_Util::addParameter(Wicked::url($this->pageName()), array('actionID' => 'export', 'format' => 'html')); ?>"><?php echo _("HTML") ?></a>,
<a href="<?php echo Horde_Util::addParameter(Wicked::url($this->pageName()), array('actionID' => 'export', 'format' => 'tex')); ?>"><?php echo _("Latex") ?></a>,
<a href="<?php echo Horde_Util::addParameter(Wicked::url($this->pageName()), array('actionID' => 'export', 'format' => 'rst')); ?>"><?php echo _("reStructuredText") ?></a>
<a href="<?php echo Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'plain')); ?>"><?php echo _("Plain Text") ?></a>,
<a href="<?php echo Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'html')); ?>"><?php echo _("HTML") ?></a>,
<a href="<?php echo Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'tex')); ?>"><?php echo _("Latex") ?></a>,
<a href="<?php echo Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'rst')); ?>"><?php echo _("reStructuredText") ?></a>
</div>
8 changes: 4 additions & 4 deletions wicked/templates/display/title.inc
Expand Up @@ -6,10 +6,10 @@ try {
$right .= sprintf(_("Last Modified %s by %s"), $this->formatVersionCreated(), $this->author());

$v = $this->version();
$diff_url = Horde_Util::addParameter(Horde::url('diff.php'),
array('page' => $this->pageName(),
'v1' => '?',
'v2' => $v));
$diff_url = Horde::url('diff.php')->add(array(
'page' => $this->pageName(),
'v1' => '?',
'v2' => $v));

$diff_alt = sprintf(_("Show changes for %s"), $v);
$right .= '&nbsp;' .
Expand Down
11 changes: 6 additions & 5 deletions wicked/templates/history/summary.inc
Expand Up @@ -4,8 +4,10 @@
<td style="text-align:center">
<?php
$text = sprintf(_("Delete Version %s"), $page->version());
$url = Horde_Util::addParameter(Wicked::url('DeletePage'), array('referrer' => $page->pageName(),
'version' => $page->version()));
$url = Wicked::url('DeletePage')->add(array(
'referrer' => $page->pageName(),
'version' => $page->version()
));
echo Horde::link($url, $text) . Horde::img('delete.png', $text) . '</a>';
?>
</td>
Expand All @@ -14,7 +16,7 @@ echo Horde::link($url, $text) . Horde::img('delete.png', $text) . '</a>';
<?php
if ($show_edit) {
$text = sprintf(_("Edit Version %s"), $page->version());
$url = Horde_Util::addParameter(Wicked::url('EditPage'), array('referrer' => $page->pageName()));
$url = Wicked::url('EditPage')->add(array('referrer' => $page->pageName()));
echo Horde::link($url, $text) . Horde::img('edit.png', $text) . '</a>';
}
?>
Expand All @@ -24,8 +26,7 @@ if ($show_edit) {
<?php
if ($show_restore) {
$text = sprintf(_("Revert to version %s"), $page->version());
$url = Horde_Util::addParameter(Wicked::url('RevertPage'), array('referrer' => $page->pageName(),
'version' => $page->version()));
$url = Wicked::url('RevertPage')->add(array('referrer' => $page->pageName(), 'version' => $page->version()));
echo Horde::link($url, $text) . Horde::img('restore.png', $text) . '</a>';
}
?>
Expand Down
4 changes: 2 additions & 2 deletions wicked/templates/sync/diff.inc
Expand Up @@ -92,10 +92,10 @@ $GLOBALS['notification']->notify(array('listeners' => 'status'));

<h1 class="header">
<span style="float: right">
<a href="<?php echo Horde_Util::addParameter(Wicked::url('SyncDiff'), array('sync_page' => $this->_pageName, 'inverse' => !$inverse)) ?>">Inverse</a> |
<a href="<?php echo Wicked::url('SyncDiff')->add(array('sync_page' => $this->_pageName, 'inverse' => !$inverse)) ?>">Inverse</a> |
<a href="" target="_blank"><?php echo _("Download") ?></a> |
<a href="" target="_blank"><?php echo _("Upload") ?></a> |
<a href="<?php echo Horde_Util::addParameter(Wicked::url('EditPage'), 'referrer', $this->_pageName) ?>" target="_blank"><?php echo _("Edit local") ?></a> |
<a href="<?php echo Wicked::url('EditPage')->add('referrer', $this->_pageName) ?>" target="_blank"><?php echo _("Edit local") ?></a> |
<a href="<?php echo $GLOBALS['session']->get('wicked', 'sync_edit') . $this->_pageName ?>" target="_blank"><?php echo _("Edit remote") ?></a>
</span>
<?php echo sprintf(_("Diff for %s between %s and %s"), $page->pageTitle(), $name1, $name2) ?>
Expand Down
6 changes: 3 additions & 3 deletions wicked/templates/sync/list.inc
Expand Up @@ -24,7 +24,7 @@ if (empty($new_remote)) {
. ' <th>' . _("Author") . '</th>'
. '<th>' . _("Actions") . '</th>'
. '</tr></thead><tbody>';
$download = Horde_Util::addParameter(Wicked::url('SyncPages'), array('actionID' => 'sync_download', 'sync_page' => '')) ;
$download = Wicked::url('SyncPages')->add(array('actionID' => 'sync_download', 'sync_page' => '')) ;
foreach ($new_remote as $pageName => $info) {
echo '<tr>'
. '<td>' . $pageName . '</td>'
Expand All @@ -50,7 +50,7 @@ if (empty($new_local)) {
. ' <th>' . _("Author") . '</th>'
. '<th>' . _("Actions") . '</th>'
. '</tr></thead><tbody>';
$upload = Horde_Util::addParameter(Wicked::url('SyncPages'), array('actionID' => 'sync_upload', 'sync_page' => '')) ;
$upload = Wicked::url('SyncPages')->add(array('actionID' => 'sync_upload', 'sync_page' => '')) ;
foreach ($new_local as $pageName => $info) {
echo '<tr>'
. '<td>' . $pageName . '</td>'
Expand All @@ -71,7 +71,7 @@ if (empty($sync_pages)) {
} else {
echo '<table id="new-remote" class="sortable striped"><thead><tr>'
. ' <th>' . _("Page") . '</th><th>' . _("Actions") . '</th></tr></thead><tbody>';
$showdiff = Horde_Util::addParameter(Wicked::url('SyncDiff'), array('actionID' => 'sync_diff', 'sync_page' => ''), null, false) ;
$showdiff = Wicked::url('SyncDiff')->add(array('actionID' => 'sync_diff', 'sync_page' => ''), null, false) ;
foreach ($sync_pages as $pageName) {
echo '<tr><td>' . $pageName . '</td>'
. '<td>' . $this->_viewLink($pageName)
Expand Down