12
« : 02 сентября 2013, 00:26:35 »
Написал тут. Возможно что-то где-то будет лучше, с удовольствием буду рад, если код модифицирован
Идет как файл evalmod
<?php
/* Кол-во дней за которые смотреть заходы */
$days = 14;
/* Максимальное кол-во выводимых товаров */
$limit = 10;
/* Вид URL вашего каталога */
$url = '/catalog.html?itemid=';
$interval = 86400*$days;
$time_interval = time() - $interval;
$sql = "SHOW COLUMNS FROM `sf_catalog_catalog1_items`";
$cols = $kernel->db_get_list($sql);
foreach($cols as $item)
{
$col_row[$item['Field']] = '%'.$item['Field'].'%';
}
$sql = "SELECT
b.*
FROM `sf_stat_uri`
LEFT JOIN `sf_catalog_catalog1_items` AS b
ON (SUBSTR(`uri`,22) = b.id)
WHERE `tstc`>=".$time_interval."
AND LEFT(`uri`, ".strlen($url).") ='".$url."'
AND `available` = 1
GROUP BY SUBSTR(`uri`,22) ORDER BY COUNT(uri) DESC LIMIT 0, ".$limit;
$row = $kernel->db_get_list($sql);
$templates = $kernel->pub_template_parse('modules/evalmod/templates_user/pop_goods.html');
$content = $templates['cat_item'];
$block = '';
foreach($row as $item)
{
$block .= str_replace($col_row, $item, $content);
//Сначала размеры большого изображения
if (file_exists($kernel->pub_site_root_get().'/'.$item['image']))
{
$size = @getimagesize($item['image']);
if ($size)
{
$block = str_replace('%image_width%', $size[0], $block);
$block = str_replace('%image_height%', $size[1], $block);
}
}
//кроме этого надо добавить переменные для малого и исходного изображения
$path_parts = pathinfo($item['image']);
$path_small = $path_parts['dirname'].'/tn/'.$path_parts['basename'];
$path_source = $path_parts['dirname'].'/source/'.$path_parts['basename'];
if (file_exists($path_small))
{
//размеры маленького изображения, если есть
$size = @getimagesize($path_small);
if ($size)
{
$block = str_replace('%image_small_width%', $size[0], $block);
$block = str_replace('%image_small_height%', $size[1], $block);
}
$block = str_replace('%image_small%', $path_small, $block);
}
if (file_exists($path_source))
{ //размеры исходного изображения, если есть
$size = @getimagesize($path_source);
if ($size)
{
$block = str_replace('%image_source_width%', $size[0], $block);
$block = str_replace('%image_source_height%', $size[1], $block);
}
$block = str_replace('%image_source%', $path_source, $block);
}
}
echo $block;
?>
modules/evalmod/templates_user/pop_goods.html
<!-- @cat_item -->
<div class ="good_item">
<div class ="good_price1">
Стоимость
</div>
<div class ="good_price2">
%price%.
</div>
<div class="good_image">
<img src="%image_small%" />
</div>
<div class="good_title">
<a href="catalog.html?itemid=%id">%name%</a>
</div>
<a href="basket.html?catalog_basket_additemid=%id%&redir2=index.html">
<div class="add_to_basket">
<div class="basket_icon">
<img src="images/basket_icon.png"/>
</div>
<div class ="basket_text">
Добавить в корзину
</div>
</div>
</a>
</div>