Commit 87f8df441a930e33c7fa5c828a06986241a287bc
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
Showing
5 changed files
with
17 additions
and
32 deletions
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 = "") { |
| 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"> | ... | ... |