Сброс кэш изображений
v >= 6.9.5
Разместите код хука (подробнее) в файле bootstrap.php
1
class My_File_Time
2
{
3
static public function onBeforeRedeclaredGetXml($object)
4
{
5
$modelName = $object->getModelName();
6
7
switch ($modelName)
8
{
9
case 'informationsystem_item':
10
case 'informationsystem_group':
11
case 'shop_item':
12
case 'shop_group':
13
14
if($object->image_small)
15
{
16
$fileSmall = strpos($modelName, '_group') === FALSE ? $object->getItemPath() : $object->getGroupPath();
17
$fileSmall .= $object->image_small;
18
19
if(is_file($fileSmall))
20
{
21
$object->addEntity(
22
Core::factory('Core_Xml_Entity')
23
->name('image_small_time')
24
->value('?'.filemtime($fileSmall))
25
);
26
}
27
}
28
29
if($object->image_large)
30
{
31
$fileLarge = strpos($modelName, '_group') === FALSE ? $object->getItemPath() : $object->getGroupPath();
32
$fileLarge .= $object->image_large;
33
34
if(is_file($fileLarge))
35
{
36
$object->addEntity(
37
Core::factory('Core_Xml_Entity')
38
->name('image_large_time')
39
->value('?'.filemtime($fileLarge))
40
);
41
}
42
}
43
44
break;
45
case 'property_value_file':
46
47
if($object->file_small)
48
{
49
$fileSmall = $object->getSmallFilePath();
50
51
if(is_file($fileSmall))
52
{
53
$object->addEntity(
54
Core::factory('Core_Xml_Entity')
55
->name('file_small_time')
56
->value('?'.filemtime($fileSmall))
57
);
58
}
59
}
60
61
if($object->file)
62
{
63
$fileSmall = $object->getLargeFilePath();
64
65
if(is_file($fileSmall))
66
{
67
$object->addEntity(
68
Core::factory('Core_Xml_Entity')
69
->name('file_time')
70
->value('?'.filemtime($fileSmall))
71
);
72
}
73
}
74
75
break;
76
}
77
}
78
}
79
80
// группы информационных систем
81
Core_Event::attach('informationsystem_group.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
82
// информационные элементы
83
Core_Event::attach('informationsystem_item.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
84
// группы магазина
85
Core_Event::attach('shop_group.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
86
// товары
87
Core_Event::attach('shop_item.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
88
// доп. свойства типа файл
89
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>
...
Copy link