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,7 +15,9 @@ class KTBuiltinAuthenticationProvider extends KTAuthenticationProvider {
15 } 15 }
16 16
17 function showUserSource($oUser, $oSource) { 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,15 +87,16 @@ class KTDispatcher {
87 foreach ($sQuery as $k => $v) { 87 foreach ($sQuery as $k => $v) {
88 $aQueryStrings[] = urlencode($k) . "=" . urlencode($v); 88 $aQueryStrings[] = urlencode($k) . "=" . urlencode($v);
89 } 89 }
90 - $sQuery = "?" . join('&', $aQueryStrings); 90 + $sQuery = join('&', $aQueryStrings);
91 } else { 91 } else {
92 if (!empty($sQuery)) { 92 if (!empty($sQuery)) {
93 - $sQuery = '?action=' . $event . '&' . $sQuery; 93 + $sQuery = 'action=' . $event . '&' . $sQuery;
94 } else { 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 exit(0); 100 exit(0);
100 } 101 }
101 102
lib/session/control.inc
@@ -61,40 +61,17 @@ function controllerRedirect($sAction, $sQueryString = &quot;&quot;) { @@ -61,40 +61,17 @@ function controllerRedirect($sAction, $sQueryString = &quot;&quot;) {
61 function generateLink($sTargetPage, $sQueryString = "", $sLinkText = "") { 61 function generateLink($sTargetPage, $sQueryString = "", $sLinkText = "") {
62 global $default; 62 global $default;
63 63
64 - $sQueryStringDelimiter = strlen($sQueryString) > 0 ? (strstr($sTargetPage, "?") ? "&" : "?") : "";  
65 -  
66 $sLink = "http" . ($default->sslEnabled ? "s" : "") . "://" . $default->serverName . 64 $sLink = "http" . ($default->sslEnabled ? "s" : "") . "://" . $default->serverName .
67 ((substr($sTargetPage, 0, strlen($default->rootUrl)) != $default->rootUrl) ? $default->rootUrl : "") . 65 ((substr($sTargetPage, 0, strlen($default->rootUrl)) != $default->rootUrl) ? $default->rootUrl : "") .
68 (substr($sTargetPage, 0, 1) == "/" ? "" : "/") . 66 (substr($sTargetPage, 0, 1) == "/" ? "" : "/") .
69 - $sTargetPage . $sQueryStringDelimiter . $sQueryString; 67 + $sTargetPage;
  68 +
  69 + $sLink = KTUtil::addQueryString($sLink, $sQueryString);
70 70
71 return (strlen($sLinkText) > 0) ? "<a href=\"$sLink\">$sLinkText</a>" : $sLink; 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 * Returns a controller url. 75 * Returns a controller url.
99 * 76 *
100 * @param string the controller action to generate a url for 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,6 +76,7 @@ class KTSmartyTemplate extends KTTemplate {
76 $smarty->register_function('entity_checkboxes', array('KTSmartyTemplate', 'entity_checkboxes')); 76 $smarty->register_function('entity_checkboxes', array('KTSmartyTemplate', 'entity_checkboxes'));
77 $smarty->register_function('entity_radios', array('KTSmartyTemplate', 'entity_radios')); 77 $smarty->register_function('entity_radios', array('KTSmartyTemplate', 'entity_radios'));
78 $smarty->register_block('i18n', array('KTSmartyTemplate', 'i18n_block'), false); 78 $smarty->register_block('i18n', array('KTSmartyTemplate', 'i18n_block'), false);
  79 + $smarty->register_modifier('addQueryString', array('KTSmartyTemplate', 'addQueryString'));
79 return $smarty->fetch($this->sPath); 80 return $smarty->fetch($this->sPath);
80 } 81 }
81 82
@@ -223,6 +224,10 @@ class KTSmartyTemplate extends KTTemplate { @@ -223,6 +224,10 @@ class KTSmartyTemplate extends KTTemplate {
223 224
224 return smarty_function_html_radios($params, $smarty); 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,7 +57,7 @@ addLoadEvent(startupMetadata);
57 57
58 <h2>{i18n}Add a document{/i18n}</h2> 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 <fieldset><legend>{i18n}Add a document{/i18n}</legend> 61 <fieldset><legend>{i18n}Add a document{/i18n}</legend>
62 <input type="hidden" name="action" value="upload"> 62 <input type="hidden" name="action" value="upload">
63 <input type="hidden" name="postReceived" value="1"> 63 <input type="hidden" name="postReceived" value="1">