Блоки популярных тем, новых тем и др.

Автор Don_Vito, 21 февраля 2017, 13:48:38

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Don_Vito

Здравствуйте. Подскажите мод, чтоб можно было настроить на отображение популярных тем или новых или добавить баннеры. на примере этого форума http://ceedclub.ru/forums/index.php

Yarik

Это форум на смф и очень похоже что портал,может быть даже и симпл портал.

kak2z

Цитата: Don_Vito от 21 февраля 2017, 13:48:38Здравствуйте. Подскажите мод, чтоб можно было настроить на отображение популярных тем или новых или добавить баннеры. на примере этого форума http://ceedclub.ru/forums/index.php
готовые решения врядли есть... вот к примеру ТОП топиков за последние 24 часа по количеству сообщений.. для себя делал
function getTopComments(){
global $modSettings, $smcFunc;

if (!empty($modSettings['cache_enable'])) {
$top_comm = unserialize(cache_get_data('top_comm'));
}
  if (!isset($top_comm) || !is_array($top_comm)) {
   $result = $smcFunc['db_query']('', '
SELECT {db_prefix}members.id_member, {db_prefix}members.real_name, {db_prefix}messages.subject, {db_prefix}topics.id_topic, {db_prefix}topics.num_replies
FROM {db_prefix}topics
LEFT JOIN {db_prefix}messages ON {db_prefix}topics.id_first_msg = {db_prefix}messages.id_msg
LEFT JOIN {db_prefix}members ON {db_prefix}topics.id_member_started = {db_prefix}members.id_member
WHERE {db_prefix}messages.poster_time > {int:last24h}
AND {db_prefix}topics.locked=0
ORDER BY {db_prefix}topics.num_replies DESC
LIMIT 20
', array(
'last24h' => ((int)time()-(24*60*60)),
)
);
if ($smcFunc['db_num_rows']($result) > '0') {
while ($row = $smcFunc['db_fetch_assoc'] ($result)){
$top_comm[] = $row;

}
} else $top_comm = array();

if (!empty($modSettings['cache_enable'])) {
cache_put_data('top_comm', serialize($top_comm), 360);
}
}
return $top_comm;
}
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Don_Vito


kak2z

#4
Цитата: Don_Vito от 21 февраля 2017, 15:41:06А куда этот код прописывать?
это функция.. возвращает массив из самых комментируемых топиков, а потом уже можно можно вывести где нужно.

как то вот так вывести можно

$top_comm = getTopComments();

if (count($top_comm)>0){
foreach ($top_comm AS $value) {
echo '<a href="/index.php?topic=' . $value['id_topic'] . '.0">' . $value['subject'] . ' от ' . $value['real_name'] . ' - ' . $value['num_replies'] . '</a>';
}
}
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

digger®

Извините, что встреваю, но

Цитата: kak2z от 21 февраля 2017, 14:51:34'last24h' => ((int)time()-(24*60*60)),
зачем (int), если в любом случае
int time (void)
Цитата: kak2z от 21 февраля 2017, 14:51:34cache_put_data('top_comm', serialize($top_comm), 360)
зачем serialize, если в любом случае в cache_put_data значение будет сериализовано.


kak2z

Цитата: digger® от 22 февраля 2017, 03:29:10Извините, что встреваю, но
зачем (int), если в любом случае
int time (void)зачем serialize, если в любом случае в cache_put_data значение будет сериализовано.
спасибо что встреваете)))
int как то больше для себя что ли)) не знаю почему - но так привык)))
а вот насчет сериализации - какой мод разбирал - там была сериализация... смотрел документацию на эту функцию - не увидел что она сама сериализует хоть и смешанный контент может принимать)) но надо было глянуть саму функцию))
Спасибо) 
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)