Some time ago I did a handy little snippet which helped me a lot:
<?php
/*
==================================================
RequestChunk
==================================================
Returns a Chunk according to request-value.
Author: Tobias Zucali
Version: 0.1 beta @2008
License: LGPL
--------------------------------------------------
*/
/* Parameters
-----------------------------------------------
$name obligatory, $_REQUEST[$name]
$values value1::chunk1||value2::chunk2||...
$result chunk | tv, default chunk
$default defaultchunk
example: [!RequestChunk? &name=`show` &values=`content::chunkForContent||total::chunkForTotal` &default=`chunkForTotal`!]
*/
unset($output);
if (!isset($name)) {
return '<!-- emty name for RequestChunk -->';
} else {
trim($name);
}
if (isset($_REQUEST[$name])){
$rcRequestVal = trim($_REQUEST[$name]);
if (isset($values)){
$values = explode('||', $values);
if (count($values) == 1 && !strpos($values, '||')) {
$rcResultName = trim($values[0]);
} else {
foreach ($values as $rcValuePair) {
$rcValuePair = explode('::', $rcValuePair);
if (trim($rcValuePair[0]) == $rcRequestVal) {
$rcResultName = trim($rcValuePair[1]);
}
}
}
} else {
return '<!-- emty values for RequestChunk -->';
}
}
if (!isset($rcResultName) && isset($default)) {
$rcResultName = trim($default);
}
if (isset($rcResultName)) {
$output .= ($result != 'tv') ? '{{'.$rcResultName.'}} <!-- RequestChunk results chunk: '.$rcResultName.'-->' : '[*'.$rcResultName.'*] <!-- RequestChunk results tv: '.$rcResultName.'-->';
} else {
$output .= '<!-- no output for RequestChunk -->';
}
unset($rcResultName, $values, $rcRequestVal);
return $output;
?>
This way you just have to create a snippet for each state, not the whole page.
For your purpose I just cut it down a little bit - I didn´t test it yet ...
<?php
/*
==================================================
PassRequest
==================================================
Returns a Chunk according to request-value.
--------------------------------------------------
*/
/* Parameters
-----------------------------------------------
$name obligatory, $_REQUEST[$name]
$default defaultchunk
example: [!PassRequest? &name=`show` &default=`gitarrenTemplate`!]
*/
unset($prResult, $output);
if (!isset($name)) {
return '<!-- emty name for PassRequest -->';
} else {
$name = trim($name);
}
if (isset($_REQUEST[$name])){
$output = trim($_REQUEST[$name]);
} elseif (isset($default)) {
$output = trim($default);
} else {
$output = '';
}
unset($prResult, $prRequestVal);
return $output;
?>
Maybee you could combine with a call like this (and a uncached page!):
[!WebLoginPE? &type=`users` &usersList=`Vendors in [[PassRequest? &name=`state` &default=`USA`]], state([[PassRequest? &name=`state` &default=`USA`]])`!]
www.yoursite.url/search.html?state=california