Всё предельно просто.
В таблице cms_blogs создаёшь поле hits (как в статьях cms_comments)
При создании блога оно автоматом получает значение 0
Всё что остаётся — это при каждом обращении к блогу увеличивать hits на 1. Для этого:
в /components/blogs/model.php
в public function getBlog($id) ПЕРЕД return $blog;
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blogs SET hits = hits + 1 WHERE id = '$id'";
$this->inDB->query($sql);
так как блог мы можем получать не только по id но и по seolink, то нужно поправить ещё и функцию
public function getBlogByLink($seolink)
в неё, перед return $blog;
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blogs SET hits = hits + 1 WHERE seolink = '$seolink'";
$this->inDB->query($sql);
ВСЁ, теперь при каждом открытии блога счётчик будет увеличиваться.
Чтобы увидеть его значение, в com_blog_view.tpl используем переменную {$blog.hits}
РАЗВЛЕКАЙТЕСЬ! ))
Спасибо.
Задумывался у себя внедрить. Да руки не доходят.
Хак именно для блога.
Ну как у Вас и попросили в текстовом виде
А на скриншоте у автора ветки — вроде как для постов.
Скорее там ещё добавлять надо в cms_blog_posts столбец
Ленивый,
Спасибо.
Задумывался у себя внедрить. Да руки не доходят.
Хак именно для блога.
Ну как у Вас и попросили в текстовом виде
А на скриншоте у автора ветки — вроде как для постов.
Скорее там ещё добавлять надо в cms_blog_posts столбец
Я тоже сначала начал писать инструктаж для постов, это вроде логичнее, потом посмотрел — автор просит для блогов.
Сделал для блогов.
Если же надо для постов, то совершенно верно, поле добавляется в таблицу cms_blog_posts
ну и соответственно, нужно отслеживать просмотр поста —
public function getPost($post_id)
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blog_posts SET hits = hits + 1 WHERE id = '$id'";
$this->inDB->query($sql);
ну и в
public function getPostByLink($bloglink, $seolink)
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blog_posts SET hits = hits + 1 WHERE seolink = '$seolink'";
$this->inDB->query($sql);
Будет считать просмотры постов
modules/mod_latestblogs.tpl хоть и называется Последние блоги, выводит на самом деле последние Посты в блогах.
Соответственно, тут можно отобразить счётчик для постов, если оный был установлен.
(мы как раз об этом выше с Amurland, говорили. Там же код для вставки счётчика для постов)
Как поняли? приём!!!
так а куда вставлять{$blog.hits} в modules/mod_latestblogs.tpl чтобы рядлм с количеством комментариев было кол-во просмотров поста в блоге? Подскажите
УСТАНОВИТЬ СЧЁТЧИК ДЛЯ Б Л О Г О В
В таблице cms_blogs создаёшь поле hits (тип INT длина 10)
Далее:
в /components/blogs/model.php
в public function getBlog($id) ПЕРЕД return $blog;
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blogs SET hits = hits + 1 WHERE id = '$id'";
$this->inDB->query($sql);
так как блог мы можем получать не только по id но и по seolink, то нужно поправить ещё и функцию
public function getBlogByLink($seolink)
в неё, перед return $blog;
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blogs SET hits = hits + 1 WHERE seolink = '$seolink'";
$this->inDB->query($sql);
ВСЁ, теперь при каждом открытии блога счётчик будет увеличиваться.
Чтобы увидеть его значение, в com_blog_view.tpl используем переменную {$blog.hits}
ДЛЯ П О С Т О В:
поле hits (тип INT длина 10) добавляется в таблицу cms_blog_posts
ну и соответственно, нужно отслеживать просмотр поста -
public function getPost($post_id)
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blog_posts SET hits = hits + 1 WHERE id = '$id'";
$this->inDB->query($sql);
ну и в
public function getPostByLink($bloglink, $seolink)
ДОБАВЛЯЕМ:
$sql = "UPDATE cms_blog_posts SET hits = hits + 1 WHERE seolink = '$seolink'";
$this->inDB->query($sql);
Будет считать просмотры постов
Можно спокойно добавить оба — будет считать и то и другое.
Дальше:
{$blog.hits} будет показыват просмотры в com_blog_view.tpl
{$post.hits} будет показыват просмотры в com_post_view.tpl
ЧТОБЫ
НУЖНО:в modules/mod_latestblogs.tpl рядлм с количеством комментариев было кол-во просмотров поста в блоге
в /modules/mod_latestblogs/module.php
заменить
$sql = "SELECT p.title as title,
p.id as id,
p.seolink as seolink,
b.title as blog,
НА:
$sql = "SELECT p.title as title,
p.id as id,
p.seolink as seolink,
p.hits as post_hits,
b.hits as blog_hits,
b.title as blog,
а в modules/mod_latestblogs.tpl
<a class="mod_latest_blog_title" href="{$post.href}">{$post.title}</a>
<div class="mod_latest_date">
{$post.fpubdate} — <a href="{$post.bloghref}">{$post.blog}</a>{if $cfg.showcom} — <a href="{$post.href}" title="{$post.comments|spellcount:$LANG.COMMENT1:$LANG.COMMENT2:$LANG.COMMENT10}" class="mod_latest_comments">{$post.comments}</a>{/if}
</div>
ЗАМЕНИТЬ НА:
<a class="mod_latest_blog_title" href="{$post.href}">{$post.title}{if $post.post_hits > 0} — {$post.post_hits}пр{/if}</a>
<div class="mod_latest_date">
{$post.fpubdate} — <a href="{$post.bloghref}">{$post.blog}</a>{if $cfg.showcom} — <a href="{$post.href}" title="{$post.comments|spellcount:$LANG.COMMENT1:$LANG.COMMENT2:$LANG.COMMENT10}" class="mod_latest_comments">{$post.comments}</a>{/if}
{if $post.blog_hits > 0} — {$post.blog_hits}пр{/if}
</div>
пример работы:
instanter.ru/