System newsów na własnej stronie

Założony przez  Diseant.

wersja skryptu MyBB:1.8.X
adres forum:Narazie brak
na czym polega problem (screen, opis, komunikaty):
Witam.

Dziś przychodzę z pewnym zapytaniem. Otóż tworzę stronę dla klienta i chciałbym zaincludować pewną rzecz. Mianowicie klient zażyczył sobie, by na stronie działał system newsów oparty o istniejący dział na forum. Na stronie ma być wyświetlone 5 ostatnich tematów (bez komentarzy).

Zainteresowałem się pewnym skryptem (KLIK), lecz nie działa (Gesior ACC a moja strona to osobny CMS). Chciałbym uzyskać skrypt lub pomoc w utworzeniu powyższego skryptu na wyświetlanie ostatnich tematów na stronie głównej.

Z góry dzięki i pozdr.
https://webboard.pl/thread-42250.html
Wszystko fajnie, tylko w jaki sposób mam to „zamontować” na osobnej stronie?
Hmm... Będzie to raczej zabawa z hookami.

Na podstronie należałoby stworzyć nowego hook-a, a w pluginie po prostu go "dodać" (add).
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
Hm... Plugin do myBB działa tak, że jest zaincludowana baza danych i z odpowiedniej tabeli jest wyciągane X* najnowszych tematów. Więc może też spróbuj zaincludować bazę, ale nie daję głowy, że to zadziała, bo jestem laikiem w takich (myBB) sprawach.

* liczbę podaje się w ACP
Skrypcik nie jest pod wersję 1.8.X tylko pod 1.6.X, więc tak czy siak nie ryra.

Mam inny pomysł. Myślę nad wyciągnięciem tabeli z MySQL i wyświetleniem jej na stronie. Wcześniej próbowałem, lecz nie chciało czytać (brak rekordów). Czy jest jakiś sposób na to czy koledzy z forum o PHP może pomogą? :)

Pozdr.
Plugin jest pod 1.6.x, ale działa prawidłowo na 1.8.x - wystarczy zmienić kompatybilność.
Można i tak. :)

Pokaż kod, jaki próbowałeś użyć.
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
To kodzik:
<?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);
}
?>

Oczywiście kodzik jest w wersji oryginalnej (pochodzi z linku w temacie) i nie jest przerobiony, ale za cholerę nie wyciąga danych z bazy.

Próbowałem rozkminić coś też stąd, ale w PHP dopiero raczkuję :)
Nie ma sensu łączenie się z bazą danych przez ponowne mysql_connect. Na podstronie skryptu MyBB jesteś już... "połączony" - dostosuj ten kod do tego: database methods.
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
(30.09.2014, 15:43)Salvation napisał(a): Hm... Plugin do myBB działa tak, że jest zaincludowana baza danych i z odpowiedniej tabeli jest wyciągane X* najnowszych tematów. Więc może też spróbuj zaincludować bazę, ale nie daję głowy, że to zadziała, bo jestem laikiem w takich (myBB) sprawach.

* liczbę podaje się w ACP

Po zmianie linijki z 1.6 na 1.8 plugin się niby instaluje, lecz poza tym nic się dalej nie dzieje.
@^

Zmienne do szablonu dodane?
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
Bo należy przejść jeszcze do konfiguracji danej wtyczki i dodać zmienne - instrukcja dostępna na stronie z której pobierałeś plugin.
Co do własnego skryptu to na początku musisz zaincludować przynajmniej global.php
require_once "./global.php";
Później globalizujesz sobie co potrzebujesz
global $db;
Teraz możesz używać sobie funkcji z tej strony http://docs.mybb.com/1.8/development/plu...e-methods/
Do tego pewnie będziesz potrzebował parsera do przetworzenia bbcode
require_once MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;
$parser_options = array(
    "allow_html" => 1,
    "allow_mycode" => 1,
    "allow_smilies" => 0,
    "allow_imgcode" => 1,
    "allow_videocode" => 1,
    "filter_badwords" => 1
Użycie parsera:
$parser->parse_message($wiadomosc, $parser_options);

Pokombinuj, jak będziesz miał jakieś pytania to pisz na forum.
Okej okej...

Udało mi się dzięki temu (system newsów). Niestety brak polskich znaków...

Zmieniałem kodowanie
mysql_query('SET CHARSET latinutf8');
na:

utf8_general_ci
utf8_bin
utf8
utf-8
windows-1250
itd itp...

Niestety nadal nie wyświetla. Dodam, iż po zmianie na utf8 usuwa cały post z polskimi znakami (tak samo tytuł).

Strona ma kodowanie UTF-8.



Użytkownicy przeglądający ten wątek:

1 gości