> For the complete documentation index, see [llms.txt](https://support.morozovpimnev.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.morozovpimnev.ru/poleznosti/sbros-kesh-izobrazhenii.md).

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

Разместите код хука ([подробнее](https://www.hostcms.ru/documentation/modules/core/events/)) в файле **bootstrap.php**

<pre class="language-php" data-line-numbers data-full-width="true"><code class="lang-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'));
<strong>// группы магазина
</strong>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'));
</code></pre>

В ваших XSL-шаблонах добавьте новый тег к пути изображений `image_..._time`

{% code fullWidth="true" %}

```xml
...
<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>
...
```

{% endcode %}
