• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Gesior Acc i mybb = news system.

Status
Not open for further replies.

raskaster

BBC Radio
Joined
Aug 10, 2009
Messages
13
Reaction score
0
Witam,
poszukuję skrypty na automatyczne pisanie newsów z danego działu na forum mybb. Z pewną osobą stanęliśmy na tym:

PHP:
<?PHP
error_reporting($error_reporting);
$db = mysql_connect('host', 'user',  'password') or die ("Nie mogę się połšczyć!.");
mysql_select_db('name_of_db', $db) or die("Brak bazy danych!");
mysql_query("SET CHARSET latin2", $db);

$query = "SELECT COUNT(*) FROM mybb_posts WHERE (fid = '20') AND (replyto = '0')";
$result = @mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_NUM);
$count_rekords = $row[0];
//CONFIG!!
$podziel = '3'; //Ile newsów na stronie
$podstron = ceil ($count_rekords / $podziel);
$beginning = $podziel * $show - $podziel;
$query = "SELECT tid, replyto, fid, subject, uid, username, dateline, message, visible FROM mybb_posts WHERE (fid = '20') AND (replyto = '0') ORDER BY tid DESC LIMIT $beginning, $podziel";
$result = @mysql_query($query);
$num = mysql_num_rows ($result);
if ($num > 0)
{

  while  ($news = mysql_fetch_array($result, MYSQL_ASSOC ))
  {
$autor = $news[username];
$temat = $news[subject];
$message = $news[message];
$wiadomosc = pscode($message);
$date_day = date("j", $news[dateline]);
$date_mounth = date("m", $news[dateline]);
$date_year = date("Y", $news[dateline]);
$time = date("H:i", $news['dateline']);
   switch ($date_mounth) {
         case '01': $date_mounth = 'Stycznia'; break;
         case '02': $date_mounth = 'Lutego'; break;
         case '03': $date_mounth = 'Marca'; break;
         case '04': $date_mounth = 'Kwietnia'; break;
         case '05': $date_mounth = 'Maja'; break;
         case '06': $date_mounth = 'Czerwca'; break;
         case '07': $date_mounth = 'Lipca'; break;
         case '08': $date_mounth = 'Sierpnia'; break;
         case '09': $date_mounth = 'Września'; break;
         case '10': $date_mounth = 'Października'; break;
         case '11': $date_mounth = 'Listopada'; break;
         case '12': $date_mounth = 'Grudnia'; break;
           default: $date_mounth = 'Błšd!!!'; break;
       }


$main_content .= '
<div class=\'NewsHeadline\'>
 <div class=\'NewsHeadlineBackground\' style=\'background-image:url(tibiacom/images/news/newsheadline_background.gif)\'>
    <table border=0><tr><td>
    </td><td><font color="'.$layout_ini['news_title_color'].'">'.$date_day.'.'.$date_mounth.'.'.$date_year.' - <b>'.stripslashes($temat).'</b></font></td></tr></table>
  </div>
</div>
<table style=\'clear:both\' border=0 cellpadding=0 cellspacing=0 width=\'100%\'><tr>
<td><img src="tibiacom/images/global/general/blank.gif" width=10 height=1 border=0 alt=\'\' /></td>
<td width="100%">'.stripslashes($wiadomosc).'<br><h6><i>Posted by </i><font color="green">'.stripslashes($autor).'</font>';

}
  mysql_free_result ($result);
}
?>

Mógłby ktoś przerobić lub napisać własny skrypt?
 
Last edited:
@Sherlok

Ja zrobiłem integrację mybb z gesiorem dla niusów i dla kont w grze (konto w grze = konto na forum), oraz możliwość pisania od levela w configu. :p

@temat

A co nie działa w tym kodzie?
 
Nie wyświetla newsów, jest puste News (nawet bez tickerów :/). Więc Samme napisałbyś mi skrypt na te niusy?
 
A to, modyfikujesz?

$query = "SELECT COUNT(*) FROM mybb_posts WHERE (fid = '20') AND (replyto = '0')";

fid = forum id niusów
 
Oczywiście, że tak. Tak wyglądają moje niusy:
53253795665789763878.png
 
przed

$autor = $news[username];

lub bezposrednio po while dodaj:

var_dump($news);

I sprawdź czy w ogóle jakieś dane zwraca czy pusto, bo jeśli pusto to znaczy , że źle pobierasz te niusy :).
 
Czysto (znowu pusto), ale konfiguracja jest w 100% dobrze wykonana (z mojej strony, czyli nazwa bazy etc). Mógłbyś napisać działający skrypt?
 
Błędów nie pokazuje? :D

error_reporting($error_reporting);

NA

error_reporting(E_ALL);

I zobacz czy sa jakies bledy. Jesli nie, to widocznie źle ustawiłeś fid w zapytaniu.
 
Notice: Undefined variable: show in xxx\latestnews.php on line 14
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in xxx\latestnews.php on line 17

14 i 17 linie:
PHP:
$beginning = $podziel * $show - $podziel;
$num = mysql_num_rows ($result);
 
PHP:
<?PHP
error_reporting(E_ALL);
$db = mysql_connect('host', 'user',  'password') or die ("Nie mogę się połšczyć!.");
mysql_select_db('name_of_db', $db) or die("Brak bazy danych!");
mysql_query("SET CHARSET latin2", $db);

$query = "SELECT COUNT(*) FROM mybb_posts WHERE (fid = '20') AND (replyto = '0')";
$result = @mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_NUM);
$count_rekords = $row[0];
//CONFIG!!
$podziel = '5'; //Ile newsów na stronie
$query = "SELECT tid, replyto, fid, subject, uid, username, dateline, message, visible FROM mybb_posts WHERE (fid = '20') AND (replyto = '0') ORDER BY tid DESC LIMIT {$podziel}";
$result = @mysql_query($query);
$num = mysql_num_rows ($result);
if ($num > 0)
{

  while  ($news = mysql_fetch_array($result, MYSQL_ASSOC ))
  {
$autor = $news[username];
$temat = $news[subject];
$message = $news[message];
$wiadomosc = pscode($message);
$date_day = date("j", $news[dateline]);
$date_mounth = date("m", $news[dateline]);
$date_year = date("Y", $news[dateline]);
$time = date("H:i", $news['dateline']);
   switch ($date_mounth) {
         case '01': $date_mounth = 'Stycznia'; break;
         case '02': $date_mounth = 'Lutego'; break;
         case '03': $date_mounth = 'Marca'; break;
         case '04': $date_mounth = 'Kwietnia'; break;
         case '05': $date_mounth = 'Maja'; break;
         case '06': $date_mounth = 'Czerwca'; break;
         case '07': $date_mounth = 'Lipca'; break;
         case '08': $date_mounth = 'Sierpnia'; break;
         case '09': $date_mounth = 'Września'; break;
         case '10': $date_mounth = 'Października'; break;
         case '11': $date_mounth = 'Listopada'; break;
         case '12': $date_mounth = 'Grudnia'; break;
           default: $date_mounth = 'Błšd!!!'; break;
       }


$main_content .= '
<div class=\'NewsHeadline\'>
 <div class=\'NewsHeadlineBackground\' style=\'background-image:url(tibiacom/images/news/newsheadline_background.gif)\'>
    <table border=0><tr><td>
    </td><td><font color="'.$layout_ini['news_title_color'].'">'.$date_day.'.'.$date_mounth.'.'.$date_year.' - <b>'.stripslashes($temat).'</b></font></td></tr></table>
  </div>
</div>
<table style=\'clear:both\' border=0 cellpadding=0 cellspacing=0 width=\'100%\'><tr>
<td><img src="tibiacom/images/global/general/blank.gif" width=10 height=1 border=0 alt=\'\' /></td>
<td width="100%">'.stripslashes($wiadomosc).'<br><h6><i>Posted by </i><font color="green">'.stripslashes($autor).'</font>';

}
  mysql_free_result ($result);
}
?>
 
Błędy:
Notice: Use of undefined constant username - assumed 'username' in xxx\latestnews.php on line 21

Notice: Use of undefined constant subject - assumed 'subject' in xxx\latestnews.php on line 22

Notice: Use of undefined constant message - assumed 'message' in xxx\latestnews.php on line 23

Fatal error: Call to undefined function pscode() in xxx\latestnews.php on line 24
 
PHP:
<?PHP
error_reporting(E_ALL);
$db = mysql_connect('host', 'user',  'password') or die ("Nie mogę się połšczyć!.");
mysql_select_db('name_of_db', $db) or die("Brak bazy danych!");
mysql_query("SET CHARSET latin2", $db);

$query = "SELECT COUNT(*) FROM mybb_posts WHERE (fid = '20') AND (replyto = '0')";
$result = @mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_NUM);
$count_rekords = $row[0];
//CONFIG!!
$podziel = '5'; //Ile newsów na stronie
$query = "SELECT tid, replyto, fid, subject, uid, username, dateline, message, visible FROM mybb_posts WHERE (fid = '20') AND (replyto = '0') ORDER BY tid DESC LIMIT {$podziel}";
$result = @mysql_query($query);
$num = mysql_num_rows ($result);
if ($num > 0)
{

  while  ($news = mysql_fetch_array($result, MYSQL_ASSOC ))
  {
$autor = $news['username'];
$temat = $news['subject'];
$message = $news['message'];
$date_day = date("j", $news['dateline']);
$date_mounth = date("m", $news['dateline']);
$date_year = date("Y", $news['dateline']);
$time = date("H:i", $news['dateline']);
   switch ($date_mounth) {
         case '01': $date_mounth = 'Stycznia'; break;
         case '02': $date_mounth = 'Lutego'; break;
         case '03': $date_mounth = 'Marca'; break;
         case '04': $date_mounth = 'Kwietnia'; break;
         case '05': $date_mounth = 'Maja'; break;
         case '06': $date_mounth = 'Czerwca'; break;
         case '07': $date_mounth = 'Lipca'; break;
         case '08': $date_mounth = 'Sierpnia'; break;
         case '09': $date_mounth = 'Września'; break;
         case '10': $date_mounth = 'Października'; break;
         case '11': $date_mounth = 'Listopada'; break;
         case '12': $date_mounth = 'Grudnia'; break;
           default: $date_mounth = 'Błšd!!!'; break;
       }


$main_content .= '
<div class=\'NewsHeadline\'>
 <div class=\'NewsHeadlineBackground\' style=\'background-image:url(tibiacom/images/news/newsheadline_background.gif)\'>
    <table border=0><tr><td>
    </td><td><font color="'.$layout_ini['news_title_color'].'">'.$date_day.'.'.$date_mounth.'.'.$date_year.' - <b>'.stripslashes($temat).'</b></font></td></tr></table>
  </div>
</div>
<table style=\'clear:both\' border=0 cellpadding=0 cellspacing=0 width=\'100%\'><tr>
<td><img src="tibiacom/images/global/general/blank.gif" width=10 height=1 border=0 alt=\'\' /></td>
<td width="100%">'.stripslashes($message).'<br><h6><i>Posted by </i><font color="green">'.stripslashes($autor).'</font>';

}
  mysql_free_result ($result);
}
?>

bbcode parsera dodasz sam :p
 
No w końcu coś działa : )

Teraz dwie sprawy:
1. Parser ;d
2. Dodanie w prawym dolnym rogu takiego czegoś jak: "Komentarze [ilość]" (jako link do danego tematu)

Dziękuję za dotychczasową pomoc.
 
Na gotowce nie licz, trochę własnego wkładu.

Jesteś tak leniwy, że nawet nie chciało Ci się dodać apostrofów do zmiennych.
Tak daleko nie zajedziesz. Bo jeśli czymś się zajmujesz to należy mieć o tym już jakieś pojęcie, a Ty myślisz, że napiszesz na forum i wszystko dostaniesz na tacy. Rozumiem jeszcze jakbyś MIAŁ NAJMNIEJSZE pojęcie o tym co chcesz osiągnąć / o tym co robisz ALE NIE MASZ.
 
Status
Not open for further replies.
Back
Top