Forums / Developer / image alias deleted after clearing cache
Marcus M.
Monday 08 September 2008 12:51:10 am
hi all,
at the moment I'm facing a strange behaviour with the handling of image_alias. I created a custom module which creates an xml-output in order to interact with flash. I created an image alias which is only needed by the flash.The URL to the image ist created by following snippet:
$object = $item->object(); $dataMap = $object->dataMap(); $image = $dataMap['image']->content(); $aliasList = $image->aliasList(); print($aliasList['consultant_flash']['full_path']);
To create the Images I build an temporary template which contains the image alias for the xml-output. At this point the module works fine and the path to the image will be displayed.
After clearing the cache the module displays no url. A var_dump of the $aliasList array displays only the original "image alias", even though the image alias exists in the var directory. Unless I call the temporary template only the original image alias is displayed.
I use Exponential 4.0.1rc1 and according to this issue http://issues.ez.no/IssueView.php?Id=13191 this should be fixed or this is no bug? I'm not sure. So maybe someone has an idea.
Thanks in advance,Marcus
Xavier Serna
Monday 08 September 2008 1:05:55 am
We have suffered similar problems here with image alias, and were solved upgrading to the official 4.0.1.
hth!
-- Xavier Serna eZ Publish Certified Developer Departament de Software Microblau S.L. - http://www.microblau.net +34 937 466 205
Monday 08 September 2008 1:47:18 am
I'm not sure about the correct way to deal with image aliases in custom modules / extension.
I've read this article http://ez.no/doc/ez_publish/technical_manual/4_0/reference/scripts/generic/ezcache_php and there is a image alias cache. Therefore I guess its correct that after clearing cache no aliases are available. But how to access the desired one?
The class eZImageAliasHandler has methods to check if a image alias exists and to get the full path to the desired image.
$dataMap = $object->dataMap(); $aliasHandler = new eZImageAliasHandler( $dataMap['image'] ); $imgAlias = $aliasHandler->attribute( 'consultant_flash' ); ezDebug::writeDebug($imgAlias['full_path']);