Сергей Петрович

Сергей Петрович

Все хотят добра... Не отдавайте его!
+1843
Репутация
2485
Рейтинг
#1 Счетчик просмотра блогов 8 июля 2012 в 10:28


Ленивый,
Спасибо.
Задумывался у себя внедрить. Да руки не доходят.
Хак именно для блога.
Ну как у Вас и попросили в текстовом виде

А на скриншоте у автора ветки — вроде как для постов.
Скорее там ещё добавлять надо в cms_blog_posts столбец

Amurland

Я тоже сначала начал писать инструктаж для постов, это вроде логичнее, потом посмотрел — автор просит для блогов.
Сделал для блогов.
Если же надо для постов, то совершенно верно, поле добавляется в таблицу 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);

Будет считать просмотры постов
#2 Счетчик просмотра блогов 8 июля 2012 в 08:42
Бери за образец счётчик просмотров для статей.
Всё предельно просто.
В таблице 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}

РАЗВЛЕКАЙТЕСЬ! ))
#3 какие ассоциации вызывает название doljen.ru ? 8 июля 2012 в 08:17
Ассоциация, что кредит взял в банке и теперь doljen
#4 Модуль "ставки" 7 июля 2012 в 21:40
Greener,
ну да. делать прогнозы или покупать их могут только зареганные пользователи
#5 [ЕСТЬ РЕШЕНИЕ] Верить этому или нет? 7 июля 2012 в 16:30
Да там и камменты такие же НИКАКИЕ как и статья
#6 [ЕСТЬ РЕШЕНИЕ] Доска объявлений 7 июля 2012 в 16:26


а как сделать вывод текстов объявлений (в анонсах, на главной и в разделах) без пропусков строк и переходов на новую строку… сплошным текстом… нужно для красоты...

alfaclub

в модел.пхп строку
$item['content'] = nl2br($item['content']);
СОТРИ
#7 [ЕСТЬ РЕШЕНИЕ] Верить этому или нет? 7 июля 2012 в 16:14
хрень какая-то!
Простите за мой французский.
#8 [ЕСТЬ РЕШЕНИЕ] Кнопка "Спойлер" в редакторе CKEditor 3.2 7 июля 2012 в 02:04
Туго. Надо в нэте искать инструктаж как это сделать в CKEditor 3.2
Именно 3.2
#9 Кроме меня, еще кому надо? 6 июля 2012 в 10:13
)))))))
наверняка есть веские основания организовать так работу сайта,
но я бы послал такой сайт на все четыре стороны, даже если бы он был очень замечательный!!

(моё субъективное мнение, никаким образом не хотел задеть автора поста)
#10 Универсальный каталог Добавление записи на определенное время 6 июля 2012 в 07:56
Всё просто и сложно одновременно!
ПРОСТО:
-в базе данных в таблице cms_uc_items добавляем поле sroc типа DATE
-добавляем поле в uc_item_add.tpl для указания срока подачи объявы (можно сделать раскр. список)
-в каталоговском фронтенде, в обработке добавления объявления, в поле sroc заносим дату окончания публкации, полученную сложением текущей даты с времем, указанным юзером
-в каталоговском model.php, в public function getItems() добавляем проверку, которая будет снимать с публикации объявы, с истекшем сроком. Примерно так.
$sql = "UPDATE cms_uc_items SET published = 0 WHERE sroc < NOW()";
$this->inDB->query($sql);

Это было ПРОСТО, а СЛОЖНО то что наверняка захочется:
-чтобы при подаче объявы, снялись деньги со счёта у юзера
-чтобы при этом была проверка, достаточно ли на счёте средств
-чтобы в зависимости от срока менялась стоимость подачи объявы
-чтобы в профиле юзер мог посмотреть свои объявы с сортировкой Актуальные/Истекшие
-чтобы юзер мог продлить срок публикации
-чтобы юзер мог поставить объяву на новый срок
....

Развлекайтесь!!! ))
#11 Вопрос по оформлению универсального каталога 6 июля 2012 в 07:30
В админке, в настройке рубрик, поле Описание рубрики
Можете туда воткнуть хоть картинку, хоть текст
#12 [ЕСТЬ РЕШЕНИЕ] Доска объявлений 5 июля 2012 в 23:10

да, так можно. но и в разделах тогда вип уходит вниз. Я же хотел на главной вип в очереди по времени добавления, а в разделах вип висит наверху...

alfaclub

Во frontend.php

//устанавливаем сортировку
$orderby = $model->getOrder('orderby', $category['orderby']);
$orderto = $model->getOrder('orderto', $category['orderto']);
if (!$orderby) { $orderby = 'id'; }
if (!$orderto) { $orderto = 'DESC'; }
$model->orderBy($orderby, $orderto);

ЗАМЕНЯЕМ НА

//устанавливаем сортировку
$orderby = $model->getOrder('orderby', $category['orderby']);
$orderto = $model->getOrder('orderto', $category['orderto']);
if (!$orderby) { $orderby = 'id'; }
if (!$orderto) { $orderto = 'DESC'; }
if ($category['id'] != $model->root_cat['id']) {
$model->orderBy($orderby, $orderto);
}else{$model->orderByRoot($orderby, $orderto);}

а в model.php ПОСЛЕ

public function orderBy($field, $direction='ASC'){
$this->order_by = 'ORDER BY is_vip DESC, '.$field.' '.$direction;
}

ДОБАВЛЯЕМ

public function orderByRoot($field, $direction='ASC'){
$this->order_by = 'ORDER BY '.$field.' '.$direction;
}
#13 Вывод пользователей 5 июля 2012 в 19:59
В личке
#14 Вывод пользователей 5 июля 2012 в 19:10
в запросе пользователей надо поменять
ORDER BY regdate DESC
поменять на
ORDER BY regdate ASC
#15 Оповещение о регистрации на сайте на e-mail администратора 5 июля 2012 в 16:51
Ещё актуально? Могу сделать
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.