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

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

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

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

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

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

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


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


Ссылка


Дата регистрации на форуме:
15 мар. 2007
Прошу подсказать, как нужно составить SQL запрос и вывести на Главную страницу форума 10 самых последних обновленных (в т.ч. вновь созданных) тем на форуме (вне зависимости от типа раздела).

То есть, чтобы вывод информации в этом блоке был представлен так, как тут - http://intboard.ru/index.php?m=newpost, но без учета разделов и пользовательских кукисов - просто ссылка-тема, которая обновлена, дата обновления и ссылка-автор последнего сообщения.
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
SELECT f_id, f_link, t_title, t_id, t_link FROM prefix_Topic, prefix_Forum WHERE t_fid=f_id ORDER BY t__lasttime LIMIT 10
Работать будет только в 2.20.

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


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


Ссылка


Дата регистрации на форуме:
15 мар. 2007
попробовал новую функцию создать по образцу last_topics. выводит непонятно как сортируя...

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


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Вот так:
SELECT f_id, f_link, t_title, t_id, t_link FROM prefix_Topic, prefix_Forum WHERE t_fid=f_id ORDER BY t__lasttime DESC LIMIT 10


Я просто забыл обратную сортировку поставить.

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


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


Ссылка


Дата регистрации на форуме:
15 мар. 2007
Сорри, сам не заметил DESC \":rolleye\" Работает тут - http://piorit.ru/forum/ - блок "Последние сообщения"

Вот код функции:
function last_messags($messags=10,$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 10";
    $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");
}


Вот только не знаю, как rss-подправить в этом блоке...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
А RSS генерируется в файле rss.php. Соответственно, надо добавить туда аналогичную функцию...

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


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


Ссылка


Дата регистрации на форуме:
15 мар. 2007
4X_Pro, спасибо.
Сделал так в файле rss.php:
/////////////////
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);
}
/////////////////
Вроде работает \":thumbup\"


Кстати, может, кому-нибудь пригодится - вывод последних обновленных тем в бегущей строке на любую php-страницу вне форума:
(пример тут: http://piorit.com)
<?  
// Конфиг БД форума
$base="имя БД";  
$user="юзер БД";  
$pass="пароль к БД";  
$host="localhost обычно";

// Вверх или вниз up down прокрутка тем?
$scroll = "up";
// Путь к форуму
$urlPath = "http://урл форума"; // без слеша в конце

$link = mysql_connect($host,$user,$pass)or die("Не могу соединиться");
mysql_select_db($base, $link) or die ("Не могу выбрать базу");
$query = "SELECT f_id, f_link, t_title, t_id, t_link FROM inb_Topic, inb_Forum f "."WHERE t_fid=f_id ORDER BY t__lasttime DESC LIMIT 10";
$result = mysql_query($query, $link);

print "<marquee id=\"recent_topics\" behavior=\"scroll\" direction=\"$scroll\" height=\"220\" scrolldelay=\"100\" scrollamount=\"2\" onMouseOver=\"document.all.recent_topics.stop()\" onMouseOut=\"document.all.recent_topics.start()\">
<table cellpadding='5' cellSpacing='0' width='100%'>";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo  "<tr><td class='block'><a class=\"block\" href=\"$urlPath/index.php?t=".$row['t_id']."\">".$row['t_title']."</a></td></tr>";
}
print "</table></marquee><div align=\"center\"><a href=\"$urlPath\" class=\"block\"><b>идти в форум >>></b></a></div>";
mysql_free_result($result);
mysql_close($link);
?>
mahony
Участник

mahony
Откуда: Иркутск
Всего сообщений: 99
Рейтинг пользователя: 0


Ссылка


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

Yuras написал:
[q]
Вроде работает \":thumbup\"
[/q]

Yuras, нескромный вопрос: а куда конкретно коды эти надо вставить (название файла, после какой строки) если на главной странице форума после объявления форума сразу хотелось бы видеть такой блок?
Hronomus
Участник

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


Ссылка


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

Yuras написал:
[q]
Сделал так в файле rss.php:
[/q]


---
...it's work machine...
---
я не гот, просто люблю дурачиться (об аватаре)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Вместо того, чтобы задавать данные для подключения к БДБ все-таки лучше подключать config/database.php... Ну да ладно, это не критично...

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
<<Назад  Вперед>>Страницы: 1 2 3
Модераторы: aerograf, wsx
Печать
Intellect Board — cистема управления сайтом »   Народные рецепты »   10 последних обновленных тем
RSS

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

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

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


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