[TYPO3-templavoila] Template Object could not be unserialized successfully

Xavier Perseguers typo3 at perseguers.ch
Tue May 19 08:26:13 CEST 2009


Hi François,

>> Template Object could not be unserialized successfully
>> Are you sure you saved mapping information into Template Object with 
>> UID "1"?
> 
> I had this error a few times, while changing the encoding of a site. The 
> serialized data was read badly and thus unserializing failed. In such 
> cases I had to remap the HTML template, while taking care that the HTML 
> file itself had a compatible encoding.
> 
> I don't know if this applied somehow to your situation too.

No, as it can be unserialized successfully when having the default 
language (L=0).

I investigated the problem and I located the stuff but I still don't 
understand why it does not work.

In EXT:templavoila/class.tx_templavoila_htmlmarkup.php, in method 
getTemplateRecord(), at the beginning the template record is retrieved 
and it works fine but at the end there is

} elseif ($langUid) { // If the language uid is set, then try to find a 
regular record with sys_language_uid

The problem is that it gets into $printRow an empty array and then

if (is_array($printRow)) {
     $rec = $printRow;
} elseif (....

Bing! My default record is overwritten by an empty array, meaning I then 
get my error "Template Object could not be unserialized successfully" in 
pi1/.

If I change the test to

if (is_array($printRow) && count($printRow) > 0) {
     $rec = $printRow;
} elseif (....

Then it works as expected. I just wonder why I don't have this problem 
on other installations.

-- 
Xavier Perseguers
DBAL-Member

http://xavier.perseguers.ch/en/tutorials/typo3.html


More information about the TYPO3-project-templavoila mailing list