Популярные материалы

Опубликовано: 14 Ноя 2014

Для реализации вывода популярных материалов нам нужно будет создать дополнительное поле в таблице modx_ site_content. Вот параметры нового поля – count int(20) default = 0.
Теперь создадим сниппет inc, который будет считать количество посещений. Вызов сниппета inc нужно установить в самом верху шаблона материалов. Код сниппета:

<?php
$table = $modx->getFullTableName("site_content");
$id = $modx->documentObject['id'];
$result = $modx->db->update("count=count+1", $table, "id=$id");
?>

Затем создадим сниппет viscount, который будет отвечать непосредственно за вывод популярных материалов:

<?php
$tblsc = $modx->getFullTableName("site_content");
$query = "SELECT * FROM $tblsc WHERE parent IN (10,11,12)";
$query .= " ORDER BY count DESC LIMIT 3";
$result = $modx->db->query($query);
$output = "";
while ($numb = $modx->db->getRow($result)) {
$id = $numb['id'];
$TVs = $modx->getTemplateVarOutput(array('product_img', 'price', 'have', 'depth', 'height', 'width'),$id,1) ;
$output .= "<a href='"."[~$id~]"."' title = '".$numb['pagetitle']."'><div id='nextblock'>".
"<table width='300'>
   <tr>
   <td width='100'>
   <img src='".$TVs['product_img']."'>
   </td>
   <td width='170'>
   <div id='text'>".$numb['pagetitle']."</div><br>
   Высота: ".$TVs['height']." мм<br>
   Ширина: ".$TVs['width']." мм<br>
   Глубина: ".$TVs['depth']." мм<br>   
   <div class='icon'>".$TVs['have']."</div><br><br>
   <div id='cena'>".$TVs['price']." руб.</div>
   </td>
   </tr>
   </table>"
."</div></a> \n";
}
return $output;
?>

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: