Старый 28.02.2008, 20:40   #1 (permalink)
Местный
 
Аватар для AnD1
 
Специализация: Дизайнер
Регистрация: 22.02.2008
Адрес: Санкт-Петербург, Барселона, Мадрид
Сообщений: 149
Репутация: 21
Номер ICQ 9921473
Отправить сообщение для AnD1 с помощью MSN
Смущение Unhappy Админам - Вывод новостей с форума

Вопрос к админам и всем добрым людям:
Как согласно этой статье, организовать вывод новостей (тем с форума) на главную страницу сайта?
Все делаю как надо. Подключил БД след. скриптом:
Код:
<?php
$db=mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error());
       mysql_select_db ("forum");
?>
далее сам скрипт.
но мне выдается ошибка:
Fatal error: Call to a member function query_read() on a non-object in Z:\home\localhost\www\test\index.php on line 43
на 43 строчке кода находится следующее:
Код:
$result = $vbulletin->db->query_read("
Пробывал сделать как написано в комментариях к этой статье:
Цитата:
надо
либо заменить строку на $result = $db->query_read("
либо написать выше: $vbulletin->db =& $db;

но ничего не меняется. написал комментарий. никто не отвечает. перерыл уже все что только можно, спросил всех. никто не может помочь . Каким именно скриптом организван вывод новостей на сайте vbsupport.org? что нужно сделать чтобы скрипт заработал? Помогите пожалуйста!!!
AnD1 вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Этот пользователь отблагодарил AnD1 за это сообщение:
Kurbatov (29.02.2008)
Старый 28.02.2008, 20:47   #2 (permalink)
Администратор
 
Аватар для AleX
 
Специализация: Кодер
Регистрация: 10.01.2008
Адрес: Украина, Киев.
Сообщений: 1,363
Репутация: 719
Номер ICQ 974909
По умолчанию Ответ: Unhappy Админам - Вывод новостей с форума

AnD1, покажи весь скрипт.
__________________
AleX's Blog
AleX вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 28.02.2008, 20:57   #3 (permalink)
Местный
 
Аватар для AnD1
 
Специализация: Дизайнер
Регистрация: 22.02.2008
Адрес: Санкт-Петербург, Барселона, Мадрид
Сообщений: 149
Репутация: 21
Номер ICQ 9921473
Отправить сообщение для AnD1 с помощью MSN
По умолчанию Ответ: Unhappy Админам - Вывод новостей с форума

AleX, в этой статье все есть.
Сам скрипт:
Код:
$forum_ids = "2"; // номер(а) раздела(ов), из которого(ых) выводятся темы. Разделять запятыми

$pagenum = htmlspecialchars(intval($_GET['page']));
$pp = htmlspecialchars(intval($_GET['perpage']));

function check_int($inpval,$retval)
{
 if ($inpval)
 {
  $len = strlen($inpval);
  for($i=0; $i<$len; $i++)
  {
   if($inpval[$i] < '0' && $inpval[$i] > '9')
   {
    return $retval;
    exit;
   }
  }
  return $inpval;
 }
 else
 {
  return $retval;
 }
}

$pagenum = check_int($pagenum,1);
$pp = check_int($pp,5);
if ($pp > 100)
{
 $pp = 5;
}
$start_pt = ($pagenum - 1)*$pp; 

$result = $vbulletin->db->query_read("
                           SELECT T.threadid, T.postusername, T.title as title, T.replycount, T.postuserid as userid, F.description as ftitle, P.pagetext, P.dateline, T.lastpostid, T.views
                           FROM " . TABLE_PREFIX . "thread T
                           LEFT JOIN " . TABLE_PREFIX . "user U ON (T.lastposter = U.username)
                           INNER JOIN " . TABLE_PREFIX . "forum F ON (T.forumid = F.forumid)
                           INNER JOIN " . TABLE_PREFIX . "post P on P.postid = T.firstpostid
               WHERE T.forumid in (".$forum_ids.") and T.visible = 1
                           ORDER BY T.threadid desc
                           LIMIT ".intval($start_pt).", ".intval($pp)
);

$all_news = $vbulletin->db->query_first("
    SELECT COUNT(`threadid`) AS all_cnt
    FROM thread
    WHERE forumid in (".$forum_ids.")
");

require_once(DIR . '/includes/class_bbcode.php');
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
while ($row = $db->fetch_array($result))
{
$obrez = false;
 if (strlen($row['pagetext']) > 1200)
 {
  $row['pagetext'] = substr($row['pagetext'], 0, 1000);
  $obrez = true;
 }
 $row['pagetext'] = $bbcode_parser->do_parse($row['pagetext'],'0','1','1','1');

echo '<strong> <font size="2">'.$row['title'].'</font> </strong><font size="-2" face="Tahoma" color="#999999">- <a href="'.$forumdir.'/member.php?u='.$row['userid'].'" id="nodecor">'.$row['postusername'].'</a> <br>
&nbsp;&nbsp;&nbsp;&nbsp;'.$row['ftitle'].' <br>
&nbsp;&nbsp;&nbsp;&nbsp;'.vbdate("d.m - H:i", $row['dateline']).'<br><br></font>
<div align="justify">'.$row['pagetext'].'';
if ($obrez)
{
 echo'... <a href="'.$forumdir.'/showthread.php?t='.$row['threadid'].'"><font size="-2" face="Tahoma">[дальше]</div></font></a>';
}
echo '

<p align="right"><font size="-2" face="Tahoma"><a href="'.$forumdir.'/newreply.php?do=newreply&noquote=1&p='.$row['lastpostid'].'"><b>комментировать</b></a> <br>
<a href="'.$forumdir.'/showthread.php?goto=newpost&t='.$row['threadid'].'"  id="nodecor">ответов: <strong>'.$row['replycount'].'</strong> | просмотров: <b>'.$row['views'].'</b></a></font></p><br><br>';

}

if ((($pp > 20) || ($pp < 10)) && (($pp % 10 > 1) && ($pp % 10 <5)))
{
 $news_end = "и";
}
elseif ((($pp > 20) || ($pp < 10)) && ($pp % 10 == 1))
{
 $news_end = "ь";
}
elseif ($pp != 0)
{ $news_end = "ей";
}

$pageslink = "";
if ($all_news['all_cnt'] > ($start_pt + $pp))
{
 $pageslink = '<div align="right"><a href="index.php?page='.($pagenum + 1).'&pp='.$pp.'"><b>на '.$pp.' новост'.$news_end.' назад</div>';
 if ($start_pt)
 {
  $pageslink .= ("&nbsp;|&nbsp;");
 }
 else
 {
  $pageslink .= "</p>";
 }
}
if ($start_pt)
{
if ($pageslink == "")
{
 $pageslink = '<div align="right">';
}
 $pageslink .= '<a href="index.php?page='.($pagenum - 1).'&pp='.$pp.'"><b>на '.$pp.' новост'.$news_end.' вперёд</b></div>';
}
echo $pageslink;
AnD1 вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Этот пользователь отблагодарил AnD1 за это сообщение:
Kurbatov (29.02.2008)
Старый 29.02.2008, 14:47   #4 (permalink)
Администратор
 
Аватар для AleX
 
Специализация: Кодер
Регистрация: 10.01.2008
Адрес: Украина, Киев.
Сообщений: 1,363
Репутация: 719
Номер ICQ 974909
По умолчанию Ответ: Unhappy Админам - Вывод новостей с форума

PHP код:
<?php

error_reporting
(E_ALL & ~E_NOTICE);
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''index');
session_start();
$incpath dirname(__FILE__) . ' путь к includes';
$forumpath dirname(__FILE__) . 'путь к форуму';

if (!
is_dir($incpath))
{
    echo 
'Введите правильный путь в переменной $incpath.<br />';
}
if (!
is_dir($forumpath))
{
    echo 
'Введите правильный путь в переменной $forumpath.<br />';
    if (
getcwd())
    {
     echo 
' Возможный путь до файла конфигурации: '.getcwd().'<br />';
    }
    exit;
}

chdir($forumpath);

$phrasegroups = array();
$globaltemplates = array();
$actiontemplates = array();
$specialtemplates = array();

require_once(
'./global.php');

$forumdir $vbulletin->options['bburl'];

?>

<?php
$db
=mysql_connect ("localhost""user""pass") or die ('I cannot connect to the database because: ' mysql_error());
       
mysql_select_db ("db");
?>

<?php
$forum_ids 
"2"// номер(а) раздела(ов), из которого(ых) выводятся темы. Разделять запятыми

$pagenum htmlspecialchars(intval($_GET['page']));
$pp htmlspecialchars(intval($_GET['perpage']));

function 
check_int($inpval,$retval)
{
 if (
$inpval)
 {
  
$len strlen($inpval);
  for(
$i=0$i<$len$i++)
  {
   if(
$inpval[$i] < '0' && $inpval[$i] > '9')
   {
    return 
$retval;
    exit;
   }
  }
  return 
$inpval;
 }
 else
 {
  return 
$retval;
 }
}

$pagenum check_int($pagenum,1);
$pp check_int($pp,5);
if (
$pp 100)
{
 
$pp 5;
}
$start_pt = ($pagenum 1)*$pp
$vbulletin->db =& $db;
$result $vbulletin->db->query_read("
                           SELECT T.threadid, T.postusername, T.title as title, T.replycount, T.postuserid as userid, F.description as ftitle, P.pagetext, P.dateline, T.lastpostid, T.views
                           FROM " 
TABLE_PREFIX "thread T
                           LEFT JOIN " 
TABLE_PREFIX "user U ON (T.lastposter = U.username)
                           INNER JOIN " 
TABLE_PREFIX "forum F ON (T.forumid = F.forumid)
                           INNER JOIN " 
TABLE_PREFIX "post P on P.postid = T.firstpostid
               WHERE T.forumid in ("
.$forum_ids.") and T.visible = 1
                           ORDER BY T.threadid desc
                           LIMIT "
.intval($start_pt).", ".intval($pp)
);

$all_news $vbulletin->db->query_first("
    SELECT COUNT(`threadid`) AS all_cnt
    FROM thread
    WHERE forumid in ("
.$forum_ids.")
"
);

require_once(
DIR '/includes/class_bbcode.php');
$bbcode_parser =& new vB_BbCodeParser($vbulletinfetch_tag_list());
while (
$row $db->fetch_array($result))
{
$obrez false;
 if (
strlen($row['pagetext']) > 1200)
 {
  
$row['pagetext'] = substr($row['pagetext'], 01000);
  
$obrez true;
 }
 
$row['pagetext'] = $bbcode_parser->do_parse($row['pagetext'],'0','1','1','1');

echo 
'<strong> <font size="2">'.$row['title'].'</font> </strong><font size="-2" face="Tahoma" color="#999999">- <a href="'.$forumdir.'/member.php?u='.$row['userid'].'" id="nodecor">'.$row['postusername'].'</a> <br>
&nbsp;&nbsp;&nbsp;&nbsp;'
.$row['ftitle'].' <br>
&nbsp;&nbsp;&nbsp;&nbsp;'
.vbdate("d.m - H:i"$row['dateline']).'<br><br></font>
<div align="justify">'
.$row['pagetext'].'';
if (
$obrez)
{
 echo
'... <a href="'.$forumdir.'/showthread.php?t='.$row['threadid'].'"><font size="-2" face="Tahoma">[дальше]</div></font></a>';
}
echo 
'

<p align="right"><font size="-2" face="Tahoma"><a href="'
.$forumdir.'/newreply.php?do=newreply&noquote=1&p='.$row['lastpostid'].'"><b>комментировать</b></a> <br>
<a href="'
.$forumdir.'/showthread.php?goto=newpost&t='.$row['threadid'].'"  id="nodecor">ответов: <strong>'.$row['replycount'].'</strong> | просмотров: <b>'.$row['views'].'</b></a></font></p><br><br>';

}

if (((
$pp 20) || ($pp 10)) && (($pp 10 1) && ($pp 10 <5)))
{
 
$news_end "и";
}
elseif (((
$pp 20) || ($pp 10)) && ($pp 10 == 1))
{
 
$news_end "ь";
}
elseif (
$pp != 0)
$news_end "ей";
}

$pageslink "";
if (
$all_news['all_cnt'] > ($start_pt $pp))
{
 
$pageslink '<div align="right"><a href="index.php?page='.($pagenum 1).'&pp='.$pp.'"><b>на '.$pp.' новост'.$news_end.' назад</div>';
 if (
$start_pt)
 {
  
$pageslink .= ("&nbsp;|&nbsp;");
 }
 else
 {
  
$pageslink .= "</p>";
 }
}
if (
$start_pt)
{
if (
$pageslink == "")
{
 
$pageslink '<div align="right">';
}
 
$pageslink .= '<a href="index.php?page='.($pagenum 1).'&pp='.$pp.'"><b>на '.$pp.' новост'.$news_end.' вперёд</b></div>';
}
echo 
$pageslink;
?>
Точно не знаю.
__________________
AleX's Blog
AleX вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 29.02.2008, 14:53   #5 (permalink)
Местный
 
Аватар для AnD1
 
Специализация: Дизайнер
Регистрация: 22.02.2008
Адрес: Санкт-Петербург, Барселона, Мадрид
Сообщений: 149
Репутация: 21
Номер ICQ 9921473
Отправить сообщение для AnD1 с помощью MSN
По умолчанию Ответ: Unhappy Админам - Вывод новостей с форума

AleX,
Код:
Введите правильный путь в переменной $incpath.
Введите правильный путь в переменной $forumpath.
Возможный путь до файла конфигурации: /home/vol3/belhost.info/bel_1521818/htdocs
Что-то не так...Но путь правильно ввел...
AnD1 вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 14.03.2008, 22:28   #6 (permalink)
Администратор
 
Аватар для AleX
 
Специализация: Кодер
Регистрация: 10.01.2008
Адрес: Украина, Киев.
Сообщений: 1,363
Репутация: 719
Номер ICQ 974909
По умолчанию Ответ: Unhappy Админам - Вывод новостей с форума

Код:
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
require_once(DIR . '/includes/functions_bigthree.php');
require_once(DIR . '/includes/functions_forumlist.php');

require_once (DIR . '/includes/class_bbcode.php');
$bbcode_parser = &new vB_BbCodeParser($vbulletin, fetch_tag_list());
Вот это нужно подключить. "Подключение global.php"
__________________
AleX's Blog
AleX вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
2 пользователя(ей) отблагодарили AleX за это сообщение:
Devil (15.03.2008), Kurbatov (16.03.2008)
Старый 23.06.2008, 06:13   #7 (permalink)
Новичок
 
Специализация: Кодер
Регистрация: 23.06.2008
Сообщений: 6
Репутация: 4
По умолчанию Ответ: Unhappy Админам - Вывод новостей с форума

Вывод новостей из определенного раздела булки 3.7.0
PHP код:
<?
$dbhost
="Хост";
$dbuser="Юзер";
$dbpass="Пароль";
$dbname="имя базы";
$forid="id раздела с новостями";
$flimit="кол-во новостей";
$url="ссылка на форум без последнего слеша";
$zfor="Длинна заголовка в символах";
$zdesc="Длина описания в символах";
 
$db mysql_connect("$dbhost""$dbuser""$dbpass");
mysql_select_db("$dbname",$db);
 
$news=mysql_query("SELECT * FROM thread JOIN post ON (thread.firstpostid = post.postid) 
                                        WHERE thread.forumid='$forid' ORDER BY thread.threadid DESC LIMIT $flimit"
);
$res_news=mysql_fetch_array($news);
do
{
if(
strlen($res_news[title])>$zfor)
{
$res_news[title]=substr($res_news[title], 0$zfor);
$res_news[title]=$res_news[title]."...";
}
if(
strlen($res_news[pagetext])>$zdesc)
{
$res_news[pagetext]=substr($res_news[pagetext], 0$zdesc);
$res_news[pagetext]=$res_news[pagetext]."...";
}
echo 
date("d.m.Y",$res_news[dateline])."<br>";
echo 
"<a href=\"http://{$url}/showthread.php?t=".$res_news[threadid]."\" target=\"_blank\"><b>".$res_news[title]."</b></a><br>";
echo 
$res_news[pagetext]."<br><br>";
}
while(
$res_news=mysql_fetch_array($news));
?>
Вот написал вывод новостей с раздела для своего сайта, может пригодится кому, попроще выглядит немного

Последний раз редактировалось SplaTe; 23.06.2008 в 06:18.
SplaTe вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
4 пользователя(ей) отблагодарили SplaTe за это сообщение:
AleX (23.06.2008), c13x (23.06.2008), Devil (25.06.2008), Лео (07.07.2008)
Старый 07.07.2008, 08:10   #8 (permalink)
Новичок
 
Специализация: Переводчик
Регистрация: 29.05.2008
Сообщений: 6
Репутация: 2
Номер ICQ 568504
По умолчанию Ответ: Unhappy Админам - Вывод новостей с форума

SplaTe, ругается код на mysql_fetch_array. пробовал менять на mysql_fetch_row тот же результат. Как видно ниже выводит только дату
Цитата:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/leostr/public_html/forum/index3.php on line 17
01.01.1970

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/leostr/public_html/forum/index3.php on line 33

Версия PHP5.2.5 Версия MySQL4.1.22-standard-log Операционная система Linux

Последний раз редактировалось Лео; 07.07.2008 в 08:33.
Лео вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новости обновлений форума Devil Поддержка форума Devil Art 167 13.07.2008 10:57
Скрипт статей и новостей. Brimus Php 12 15.06.2008 04:48
Сайт не открывает после добавления/редактирования новостей/коментариев? GrayZOR Datalife Engine (DLE) 6 02.06.2008 10:22
Вывод данных AnD1 vBulletin 0 28.02.2008 13:19



Часовой пояс GMT +3, время: 23:24.
vBulletin® версия 7.6.1.
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Web Mastering By Devil Art