Сброс кэш изображений
v >= 6.9.5
Разместите код хука (подробнее) в файле bootstrap.php
class My_File_Time
{
static public function onBeforeRedeclaredGetXml($object)
{
$modelName = $object->getModelName();
switch ($modelName)
{
case 'informationsystem_item':
case 'informationsystem_group':
case 'shop_item':
case 'shop_group':
if($object->image_small)
{
$fileSmall = strpos($modelName, '_group') === FALSE ? $object->getItemPath() : $object->getGroupPath();
$fileSmall .= $object->image_small;
if(is_file($fileSmall))
{
$object->addEntity(
Core::factory('Core_Xml_Entity')
->name('image_small_time')
->value('?'.filemtime($fileSmall))
);
}
}
if($object->image_large)
{
$fileLarge = strpos($modelName, '_group') === FALSE ? $object->getItemPath() : $object->getGroupPath();
$fileLarge .= $object->image_large;
if(is_file($fileLarge))
{
$object->addEntity(
Core::factory('Core_Xml_Entity')
->name('image_large_time')
->value('?'.filemtime($fileLarge))
);
}
}
break;
case 'property_value_file':
if($object->file_small)
{
$fileSmall = $object->getSmallFilePath();
if(is_file($fileSmall))
{
$object->addEntity(
Core::factory('Core_Xml_Entity')
->name('file_small_time')
->value('?'.filemtime($fileSmall))
);
}
}
if($object->file)
{
$fileSmall = $object->getLargeFilePath();
if(is_file($fileSmall))
{
$object->addEntity(
Core::factory('Core_Xml_Entity')
->name('file_time')
->value('?'.filemtime($fileSmall))
);
}
}
break;
}
}
}
// группы информационных систем
Core_Event::attach('informationsystem_group.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// информационные элементы
Core_Event::attach('informationsystem_item.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// группы магазина
Core_Event::attach('shop_group.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// товары
Core_Event::attach('shop_item.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// доп. свойства типа файл
Core_Event::attach("property_value_file.onBeforeRedeclaredGetXml", array('My_File_Time', 'onBeforeRedeclaredGetXml'));
В ваших XSL-шаблонах добавьте новый тег к пути изображений image_..._time
...
<xsl:template match="shop_item">
...
<img src="{dir}{image_small}{image_small_time}" />
<img src="{dir}{image_large}{image_large_time}" />
<xsl:for-each select="property_value[tag_name='image_dop'][file !='']">
<img src="{../dir}{file_small}{file_small_time}" />
<img src="{../dir}{file}{file_time}" />
</xsl:for-each>
...
</xsl:template>
...
Last updated