Intellect Board — cистема управления сайтом

Построение сайта на основе форума

Intellect Board — cистема управления сайтом »   Народные рецепты »   10 последних обновленных тем
RSS

10 последних обновленных тем

Вывести на Главную

Текущий рейтинг темы: Нет
Выводить сообщения
Правила раздела

<<Назад  Вперед>>Страницы: 1 2 3
Модераторы: aerograf, wsx
Печать
 
Yuras
Долгожитель форума


Всего сообщений: 382
Рейтинг пользователя: 11


Ссылка


Дата регистрации на форуме:
15 мар. 2007

mahony написал:
[q]
куда конкретно коды эти надо вставить (название файла, после какой строки) если на главной странице форума после объявления форума сразу хотелось бы видеть такой блок?
[/q]

1. файл common.php в корне после функции function last_topics добавляем функцию
function last_messags($messags=5,$forumtype=0,$msg='Последние сообщения') {
    global $link;

    if ($forumtype) $sqldata=" AND f_tpid=".$forumtype;
    $sql = "
SELECT f_id, f_link, t_title, t_id, t_link FROM ".$GLOBALS['DBprefix']."Topic, ".$GLOBALS['DBprefix']."Forum f "."WHERE t_fid=f_id ORDER BY t__lasttime DESC LIMIT 5";
    $res =&db_query($sql,$link);
    if (!$msg) $msg=MSG_t_lasts;
    tlist_start($msg,"rss.php?a=last_messags&amp;count=$messags&amp;type=$forumtype");
    while ($tdata=&db_fetch_array($res)) {
      $list.=tlist_entry($tdata);
    }
    tlist_end("rss.php?a=last_messags&amp;count=$messags&amp;type=$forumtype");
}


2. в файл rss.php после
elseif ($action=="last_topics") { // только новые темы
  $title=$GLOBALS['opt_title'];
  $url=$GLOBALS['opt_url'];
  if ($starttime) $sqldata=' AND p__time>'.intval($starttime);
  if ($type=&getvar('type')) $sqldata.=' AND f_tpid="'.$type.'"';
  $sql = "SELECT f_id, f_link, t.*, p_uname, p__time FROM ".$GLOBALS['DBprefix']."Topic t, ".$GLOBALS['DBprefix']."Post p, ".$GLOBALS['DBprefix']."Forum f ".
  "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.uid=1 AND ua.fid=f.f_id) ".
  "WHERE t_fid=f_id AND t__pcount>0 $sqldata AND f.f_lview<=COALESCE(ua_level,0) AND t_id=p_tid AND t__startpostid=p_id ".
  "ORDER BY t_id DESC LIMIT ".intval($count);
  $res =&db_query($sql,$link);
  while ($tdata=&db_fetch_array($res)) {
    $item['title']=$tdata['t_title'];
    $item['descr']=$tdata['t_descr']."<br />";
    $item['descr'].=format_word($tdata['t__pcount'],MSG_p1,MSG_p2,MSG_p3).", ".
MSG_t_last.": ".$tdata['p_uname'].", ".long_date_out($tdata['p__time']);
    if ($tdata['t__status']) $item['descr'].="<br />".MSG_t_closed;
    $item['date']=$tdata['p__time'];
    $item['author']=$tdata['p_uname'];
    $item['link']=build_url($tdata);
    $items[]=$item;
  }
  db_free_result($res);
}

вставляем
/////////////////
elseif ($action=="last_messags") { // только обновившиеся темы
  $title=$GLOBALS['opt_title'];
  $url=$GLOBALS['opt_url'];
  if ($starttime) $sqldata=' AND p__time>'.intval($starttime);
  if ($type=&getvar('type')) $sqldata.=' AND f_tpid="'.$type.'"';
  $sql = "SELECT f_id, f_link, t.*, p_uname, p__time FROM ".$GLOBALS['DBprefix']."Topic t, ".$GLOBALS['DBprefix']."Post p, ".$GLOBALS['DBprefix']."Forum f ".
  "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.uid=1 AND ua.fid=f.f_id) ".
  "WHERE t_fid=f_id AND t__pcount>0 $sqldata AND f.f_lview<=COALESCE(ua_level,0) AND t_id=p_tid AND t__startpostid=p_id ".
  "ORDER BY t__lasttime DESC LIMIT ".intval($count);  
  $res =&db_query($sql,$link);
  while ($tdata=&db_fetch_array($res)) {
    $item['title']=$tdata['t_title'];
    $item['descr']=$tdata['t_descr']."<br />";
    $item['descr'].=format_word($tdata['t__pcount'],MSG_p1,MSG_p2,MSG_p3).", ".
MSG_t_last.": ".$tdata['p_uname'].", ".long_date_out($tdata['p__time']);
    if ($tdata['t__status']) $item['descr'].="<br />".MSG_t_closed;
    $item['date']=$tdata['p__time'];
    $item['author']=$tdata['p_uname'];
    $item['link']=build_url($tdata);
    $items[]=$item;
  }
  db_free_result($res);
}
/////////////////


3. в нужном месте в файл нужного шаблона вписываем <?last_messags(5,0);?>
то есть, если желаете, чтобы этот блок выводился после объявления форума, то и прописываете после его вывода - после <?announce();?>.
Strafer
Новичок

Strafer
Откуда: /home/strafer
Всего сообщений: 19
Рейтинг пользователя: 1


Ссылка


Дата регистрации на форуме:
21 нояб. 2007
А как добавить к этому благолепию такую феньку: чтобы при нажатии на одно из "последних сообщений" кидало не просто на последнюю страницу, а именно на последнее сообщение?
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Добавить в конец ссылки #last.

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007

4X_Pro написал:
[q]
Добавить в конец ссылки #last.
[/q]

Код, пожалуйста приведите.
Gram
Администратор

Gram
Откуда: Нижний Новгород
Всего сообщений: 1011
Рейтинг пользователя: 38


Ссылка


Дата регистрации на форуме:
23 июля 2003
assessor, там придётся кастомизировать функцию tlist_entry в файле styles/дизайн/main.php либо туда же добавить новую функцию с таким вот содержанием

function tlist_entry_last(&$tdata) { ?>
<a href="<?=build_url($tdata);?>#last"><?=$tdata['t_title'];?></a><br>
<? }


И уже её использовать в Вашей функции last_messags. А можно этим кодом заменить код функции tlist_entry и тогда во всех списках последних 10 сообщений (обновлённые темы, активные темы и т.д.) переход будет идти не просто на последний пост (если конечно в профиле не стоит переход на первый пост), а на последнее (непрочитанное) сообщение...

UPD поправил функцию...
assessor
Долгожитель форума


Всего сообщений: 495
Рейтинг пользователя: 14


Ссылка


Дата регистрации на форуме:
13 фев. 2007
Спасибо, Gram!!! В очередной раз выручил. +1, но пока заблокировано.

А что такое:

[q]
UPD поправил функцию...
[/q]
Gram
Администратор

Gram
Откуда: Нижний Новгород
Всего сообщений: 1011
Рейтинг пользователя: 38


Ссылка


Дата регистрации на форуме:
23 июля 2003
assessor, да это я сначала не туда #last поставил, потом поправил и на всякий случай обратил на это внимание.
DolZ
Новичок


Всего сообщений: 3
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 сен. 2009
а как сделать так чтобы было видно окно 10 последний постов в разделе новостей?
aerograf
Модератор форума

aerograf
Всего сообщений: 486
Рейтинг пользователя: 15


Ссылка


Дата регистрации на форуме:
29 дек. 2007
Установить данный параметр в админпанеле

Frame
Новичок


Всего сообщений: 3
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2011
aerograf а каким образом???а то я тупо не знаком с этим движком)))распеши пожалуйста по пунткам добавь в ICQ-955574
<<Назад  Вперед>>Страницы: 1 2 3
Модераторы: aerograf, wsx
Печать
Intellect Board — cистема управления сайтом »   Народные рецепты »   10 последних обновленных тем
RSS

1 посетитель просмотрел эту тему за последние 10 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
Ограничение доступа
не отображаются разделы
Архив версий
Установка стиля на Intellect Board 2.22
Завершилась работа над новой версией 3.00

Самые активные 5 тем RSS


Время выполнения скрипта: 0.1522. Количество выполненных запросов: 17, время выполнения запросов 0.0000
Creative Commons License Rambler's Top100 Rambler's Top100 Рейтинг@Mail.ru Valid HTML 4.01 Transitional Valid CSS!