[TYPO3-english] cHash does not work with forms

Xavier Perseguers typo3 at perseguers.ch
Mon Mar 30 17:35:48 CEST 2009


Hi,

>> I think there should be a solution operantly it is not that obvious.
>> I have a form with a dropdown of country codes that reloads the same
>> page with &country= URL get parameter.
>> I need these pages to be cached.
>> How to get the page URLs with cHash?
> 
> Fake a cHash using one of early TSFE hooks. This is a dangerous way but I do not think you have any other option.

I do not know whether this is an option for you but I had the very same 
problem with a combobox I populated with info in one of my extensions.

I had a dropdown with years and upon selection I reloaded the page with 
a year GET parameter. Here is my code:

-------------------------

$options = array();
foreach ($years as $year) {
     if ($year == $selectedYear) {
         $format = '<option value="%s" selected="selected">%s-%s</option>';
     } else {
         $format = '<option value="%s">%s-%s</option>';
     }

     $url = $this->cObj->typoLink_URL(
         array(
             'parameter'        => $GLOBALS['TSFE']->id,
             'useCacheHash'     => true,
             'additionalParams' => '&' . $this->prefixId . '[year]=' . 
$year,
         )
     );
     $options[] = sprintf($format, $url, $year, $year + 1);
}

$yearSelector = '
     <label for="' . $this->prefixId . '[year]">' . $this->sL('year') . 
'</label>
     <select name="' . $this->prefixId . '[year]" id="' . 
$this->prefixId . '[year]"  onchange="location=this.value;">
' . join("\n", $options) . '
     </select>
';

-------------------------

I hope this will help you not having to fake the cHash and still use 
cache...

-- 
Xavier Perseguers
http://xavier.perseguers.ch/en/tutorials/typo3.html


More information about the TYPO3-english mailing list