Сброс кэш изображений

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