Commit 87f8df441a930e33c7fa5c828a06986241a287bc

Authored by Neil Blakey-Milner
1 parent ef3beb9a

Use KTUtil::addQueryString in preference to manual URL mangling.

Add addQueryString as a variable modifier in Smarty templates, and use
it.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4541 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/authentication/builtinauthenticationprovider.inc.php
... ... @@ -15,7 +15,9 @@ class KTBuiltinAuthenticationProvider extends KTAuthenticationProvider {
15 15 }
16 16  
17 17 function showUserSource($oUser, $oSource) {
18   - return '<p class="descriptiveText"><a href="?action=setPassword&user_id=' . $oUser->getId() . '">' . sprintf(_("Change %s's password"), $oUser->getName()) . '</a></p>';
  18 + $sQuery = sprintf('action=setPassword&user_id=%d', $oUser->getId());
  19 + $sUrl = KTUtil::addQueryString($_SERVER['PHP_SELF'], $sQuery);
  20 + return '<p class="descriptiveText"><a href="' . urlencode($sUrl) . '">' . sprintf(_("Change %s's password"), $oUser->getName()) . '</a></p>';
19 21 }
20 22 }
21 23  
... ...
lib/dispatcher.inc.php
... ... @@ -87,15 +87,16 @@ class KTDispatcher {
87 87 foreach ($sQuery as $k => $v) {
88 88 $aQueryStrings[] = urlencode($k) . "=" . urlencode($v);
89 89 }
90   - $sQuery = "?" . join('&', $aQueryStrings);
  90 + $sQuery = join('&', $aQueryStrings);
91 91 } else {
92 92 if (!empty($sQuery)) {
93   - $sQuery = '?action=' . $event . '&' . $sQuery;
  93 + $sQuery = 'action=' . $event . '&' . $sQuery;
94 94 } else {
95   - $sQuery = '?action=' . $event;
  95 + $sQuery = 'action=' . $event;
96 96 }
97 97 }
98   - $this->oRedirector->redirect($_SERVER["PHP_SELF"] . $sQuery);
  98 + $sRedirect = KTUtil::addQueryString($_SERVER['PHP_SELF'], $sQuery);
  99 + $this->oRedirector->redirect($sRedirect);
99 100 exit(0);
100 101 }
101 102  
... ...
lib/session/control.inc
... ... @@ -61,40 +61,17 @@ function controllerRedirect($sAction, $sQueryString = &quot;&quot;) {
61 61 function generateLink($sTargetPage, $sQueryString = "", $sLinkText = "") {
62 62 global $default;
63 63  
64   - $sQueryStringDelimiter = strlen($sQueryString) > 0 ? (strstr($sTargetPage, "?") ? "&" : "?") : "";
65   -
66 64 $sLink = "http" . ($default->sslEnabled ? "s" : "") . "://" . $default->serverName .
67 65 ((substr($sTargetPage, 0, strlen($default->rootUrl)) != $default->rootUrl) ? $default->rootUrl : "") .
68 66 (substr($sTargetPage, 0, 1) == "/" ? "" : "/") .
69   - $sTargetPage . $sQueryStringDelimiter . $sQueryString;
  67 + $sTargetPage;
  68 +
  69 + $sLink = KTUtil::addQueryString($sLink, $sQueryString);
70 70  
71 71 return (strlen($sLinkText) > 0) ? "<a href=\"$sLink\">$sLinkText</a>" : $sLink;
72 72 }
73 73  
74 74 /**
75   - * Generates a link used when setting up template documents for document linking in folder
76   - * collaboration. Formatted to send document name and id back to parent window
77   - *
78   - * @param string the url to link to
79   - * @param string the querystring
80   - * @param string the link text (optional)
81   - * @return string the html link if the link text is specified, otherwise just the url
82   - */
83   -function generateLinkForTemplateDocumentBrowse($sTargetPage, $sQueryString, $sLinkText = "", $sDocumentName, $iDocumentID) {
84   - global $default;
85   -
86   - if (strlen($sQueryString) > 0) {
87   - $sQueryStringDelimiter = (strstr($sTargetPage, "?") ? "&" : "?");
88   - }
89   - $sLink = "http" . ($default->sslEnabled ? "s" : "") . "://" . $default->serverName .
90   - ((substr($sTargetPage, 0, strlen($default->rootUrl)) != $default->rootUrl) ? $default->rootUrl : "") .
91   - $sTargetPage . $sQueryStringDelimiter . $sQueryString;
92   -
93   - return (strlen($sLinkText) > 0) ? "<a href=\"$sLink\" onClick=\"load('$sDocumentName', $iDocumentID, top.opener);\">$sLinkText</a>" : $sLink;
94   -}
95   -
96   -
97   -/**
98 75 * Returns a controller url.
99 76 *
100 77 * @param string the controller action to generate a url for
... ...
lib/templating/smartytemplate.inc.php
... ... @@ -76,6 +76,7 @@ class KTSmartyTemplate extends KTTemplate {
76 76 $smarty->register_function('entity_checkboxes', array('KTSmartyTemplate', 'entity_checkboxes'));
77 77 $smarty->register_function('entity_radios', array('KTSmartyTemplate', 'entity_radios'));
78 78 $smarty->register_block('i18n', array('KTSmartyTemplate', 'i18n_block'), false);
  79 + $smarty->register_modifier('addQueryString', array('KTSmartyTemplate', 'addQueryString'));
79 80 return $smarty->fetch($this->sPath);
80 81 }
81 82  
... ... @@ -223,6 +224,10 @@ class KTSmartyTemplate extends KTTemplate {
223 224  
224 225 return smarty_function_html_radios($params, $smarty);
225 226 }
  227 +
  228 + function addQueryString($url, $qs) {
  229 + return KTUtil::addQueryString($url, $qs);
  230 + }
226 231 }
227 232  
228 233 ?>
... ...
templates/ktcore/document/add.smarty
... ... @@ -57,7 +57,7 @@ addLoadEvent(startupMetadata);
57 57  
58 58 <h2>{i18n}Add a document{/i18n}</h2>
59 59  
60   -<form method="POST" action="{$smarty.server.PHP_SELF}" enctype="multipart/form-data">
  60 +<form method="POST" action="{$smarty.server.PHP_SELF|addQueryString:"postExpected=1&fFolderId="}{$context->oFolder->getId()}" enctype="multipart/form-data">
61 61 <fieldset><legend>{i18n}Add a document{/i18n}</legend>
62 62 <input type="hidden" name="action" value="upload">
63 63 <input type="hidden" name="postReceived" value="1">
... ...