Viel wurde nachgefragt über eine Interaktion zwischen phbbb und redaxo. Ich habe dies auf www.parkrocker.net so geführt, dass im Redaxo die aktuellen Beiträge und die aktuellen online user von Forum ausgelesen werden und als Liste ausgegeben werden. Dies passiert über die DB Klasse von Redaxo, daher relativ flott (keine neue DB Verbindung).
Dieser Thread sollte für die grundlegende Anleitung und allenfalls Fragen dienen. Und vielleicht als Anregungen für weitere Interaktion, vieles ist möglich..
Zu finden ist es hier:
http://www.redaxo.de/168-Templatedetail ... late_id=40
EINSATZ
======
Erstellt wie gewohnt ein neues Template. Dieses muss im Haupttemplate - wie gewohnt - includiert werden
Aufgerufen kann das ganze dann via
<?php print $navLeftCol; ?>
werden
PARAMETER
=======
Im Template selbst müssen einige Parameter angegeben werden:
$topic_length = '60';
Gibt die Anzahl Zeichen an, die ein Titel max. haben kann
$topic_limit = '6';
Gibt die Anzahl Beiträge an, die Ausgelesen werden
$special_forums = '0';
Normalerweise werden NUR Foren aufgerufen, wo ein Normaler User Lese Rechte hat. Zusätzlich können die Foren eingeschränkt werden. Dazu den Wert 1 eintragen. Normalerweise die Einstellung behalten, wie sie ist!
$forum_ids = '';
Falls man die Foren beschränkt hat, hier die Foren angeben, die man auslesen möchte, getrennt mit Kommas. Z.b. '1,2,4,12'
$table_prefix = 'phpbb_';
Der Prefix des phpbb in der Datenbank. Standardmässig 'phpbb_' , Orion-User haben z.B. 'orion_'
$root_path = '/../../../../forums/'; // link zum Forumspfad
Pfad zum Forum. Hier ist ein wenig "tüfteln" angesagt!
So, das wars fürs erste
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt

Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
phpbb aktuelle Beiträge / Users Online
http://www.parkrocker.net/ - Die Rock im Park Community
-
- Beiträge: 293
- Registriert: 7. Mär 2006, 10:43
- Wohnort: Österreich
Ich hab's geschafft!
Hab dein Template am laufen!
Vielen Dank für die Arbeit!
Nur ein kleiner Hinweis:
Dein Template aus dem Downloadbereich einfach herauskopiert und in das eigene Redaxo einfügt, sollte man aus dem Kopfbereich des templates deine Erklärung rauslöschen denn
// Im Haupttemplate normal includieren und an gewünschter Stelle
// via <?php print $navLeftCol; ?> aufrufen!
wird dann sofort ausgeführt
(Zumindest bei mir)
Hab dein Template am laufen!
Vielen Dank für die Arbeit!
Nur ein kleiner Hinweis:
Dein Template aus dem Downloadbereich einfach herauskopiert und in das eigene Redaxo einfügt, sollte man aus dem Kopfbereich des templates deine Erklärung rauslöschen denn
// Im Haupttemplate normal includieren und an gewünschter Stelle
// via <?php print $navLeftCol; ?> aufrufen!
wird dann sofort ausgeführt

(Zumindest bei mir)
echt? bei mir gehts samt kommentaren. Lustig 
Aber danke fürs Lob.

Aber danke fürs Lob.
http://www.parkrocker.net/ - Die Rock im Park Community
-
- Beiträge: 293
- Registriert: 7. Mär 2006, 10:43
- Wohnort: Österreich
-
- Beiträge: 1711
- Registriert: 24. Nov 2005, 22:29
- Kontaktdaten: ICQ Website Yahoo Messenger
super template..
verstehe nur nicht ganz, warum Du "$navLeftCol;" als Ausgabe benutzt.
Ich lasse in Deinem template stattdessen eine Variable "$phpbbThreads" generieren .. die kann ich dann frei in meinem Haupt-template platzieren, während $navLeftCol; weiterhin nur für die navigation benutzt wird..
gruß,
Boris
verstehe nur nicht ganz, warum Du "$navLeftCol;" als Ausgabe benutzt.
Ich lasse in Deinem template stattdessen eine Variable "$phpbbThreads" generieren .. die kann ich dann frei in meinem Haupt-template platzieren, während $navLeftCol; weiterhin nur für die navigation benutzt wird..
gruß,
Boris
Hallo Borisborisb2 hat geschrieben:super template..
verstehe nur nicht ganz, warum Du "$navLeftCol;" als Ausgabe benutzt.
Ich lasse in Deinem template stattdessen eine Variable "$phpbbThreads" generieren .. die kann ich dann frei in meinem Haupt-template platzieren, während $navLeftCol; weiterhin nur für die navigation benutzt wird..
gruß,
Boris
das hat mit meinem "eigentlichen" Template zu tun. Da hab ich die gesamte Navi in der navLeftCol, daher auch die Threads. Und ich habs nur daraus extrahiert. Aber es steht dir natürlich frei, die Variable umzubennen. Ich habe den Downloadbereich hier immer als "Gedankanregungen", nicht als fixfertige Lösungen gesehen

http://www.parkrocker.net/ - Die Rock im Park Community
-
- Beiträge: 148
- Registriert: 1. Jul 2007, 13:27
- Wohnort: Hamburg / Berlin / Neubrandenburg
- Kontaktdaten: Website
Läuft nicht
Hallo,
also ich bekomme das nicht zum laufen.
Ich habe das Forum unter /forum/ installiert. Läuft auch.
Hab das Modul angelegt:
Im Backend folgender Fehler:
Unable to open extension.inc. Feeling helpful? Send an email to the webmaster.
Was nun? Was ist falsch konfiguriert? Ist noch etwas mehr nötig als Modul und phpBB-Forum??
Edit: Modulcode entfernt, da nicht relevant (kills)
also ich bekomme das nicht zum laufen.
Ich habe das Forum unter /forum/ installiert. Läuft auch.
Hab das Modul angelegt:
Im Backend folgender Fehler:
Unable to open extension.inc. Feeling helpful? Send an email to the webmaster.
Was nun? Was ist falsch konfiguriert? Ist noch etwas mehr nötig als Modul und phpBB-Forum??
Edit: Modulcode entfernt, da nicht relevant (kills)
-
- Beiträge: 148
- Registriert: 1. Jul 2007, 13:27
- Wohnort: Hamburg / Berlin / Neubrandenburg
- Kontaktdaten: Website
Fehler ohne Forumbeiträge
ich habe nun doch noch eine Lösung gefunden.
Außerdem stellte ich fest, dass es sein kann, dass eine Fehlermeldung erscheint, wenn keine Forumbeiträge im phpBB sind. Hierzu habe ich einfach ein if Schleife gebaut, die das Problem abfängt.
Mein vollständiges Template:
Außerdem stellte ich fest, dass es sein kann, dass eine Fehlermeldung erscheint, wenn keine Forumbeiträge im phpBB sind. Hierzu habe ich einfach ein if Schleife gebaut, die das Problem abfängt.
Mein vollständiges Template:
Code: Alles auswählen
<?php
// PHPBB Interaktion mit Redaxo
// Autor: Roman Urnaut
// www.parkrocker.net / www.urnaut.com
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];
// ############ Edit below ########################################
$topic_length = '60'; // laenge des Titels
$topic_limit = '2'; // Anzahl beitraege
$special_forums = '0'; // auf Foren beschraenken ('0' = no; '1' = yes)
$forum_ids = ''; // Falls auf Foren beschraenkt, dann hier die IDs angeben
$table_prefix = 'phpbb_'; // Der Prefix in der Datenbank
$root_path = '/forum/'; // link zum Forumspfad
// ############ Edit above ########################################
// RECENT FORUM POSTS
$navLeftCol .='<h1>Aktuell im Forum</h1>';
$navLeftCol .='';
$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id IN ('. $forum_ids .') AND ';
$qry = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
WHERE $where_forums t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id AND f.auth_view < 2
ORDER BY t.topic_last_post_id DESC LIMIT $topic_limit";
$sql = new sql();
$sql->setQuery($qry);
$result = $sql->get_array($qry);
//falls kein Forumbeiträge (mehr) vorhanden sind
//von Jan-Goldacker.de
if ($result == null) {
// ############## output ##############
$navLeftCol .= 'Kein aktueller Eintrag';
// ############## output ##############
}
else{
//hier gehts normal weiter mit abschließender Klammer
foreach($result as $line)
{
$forum_id = $line['forum_id'];
$forum_url = $root_path .'forum.html'. $forum_id;
$topic_id = $line['topic_id'];
$topic_url = $root_path .'ftopic.html'. $topic_id;
$topic_title = ( strlen($line['topic_title']) < $topic_length ) ? $line['topic_title'] : substr(stripslashes($line['topic_title']), 0, $topic_length) .'...';
$views = $line['topic_views'];
$replies = $line['topic_replies'];
$first_time = date('G:i', $line['topic_time']);
$last_time = date('G:i', $line['post_time']);
$last_author = ( $line['last_poster_id'] != '-1' ) ? $line['last_poster'] : ( ($line['last_poster_name'] != '' ) ? $line['last_poster_name'] : 'guest' );
$last_url = '<a href="'. $root_path .'sutra.html'. $line['topic_last_post_id'] .'#'. $line['topic_last_post_id'] .'">» '. $topic_title .'</a>';
// ############## output ##############
$navLeftCol .= 'In <a href="'. $forum_url .'">» '. $line['forum_name'] .'</a><!-- um '.$last_time.'</span>--><br>'.$last_url .'<br>';
// ############## output ##############
}
$navLeftCol .='';
//abschließende Klammer, wenn kein Beitrag
}
// USER ONLINE
/**
$navLeftCol .='<h1>Aktuell Online</h1>';
$navLeftCol .='<ul>';
$qry = "SELECT u.user_id, u.username, u.user_allow_viewonline, s.session_logged_in, s.session_time
FROM ". $table_prefix . "users u, ". $table_prefix . "sessions s WHERE u.user_id = s.session_user_id
AND s.session_time >= (".time()." - 300) ORDER by u.username ASC";
$sql = new sql();
$sql->setQuery($qry);
$result = $sql->get_array($qry);
$guests = 0;
$users = "";
foreach($result as $line)
{
$username = $line['username'];
$userid = $line['user_id'];
if ($userid <0)
{
$guests++;
}
else
{
if ($users == "")
{
$users.= $username;
}
else
{
$users.= ', '. $username;
}
}
}
$navLeftCol .= '<li>'.$users.'</li><li>' . $guests. ' Gäste</li>';
$navLeftCol .='</ul>';
**/
für phpbb3
Hallo Parkrocker 
gibt es von dem Modul denn eine Version für phpbb3 ?
Oder kann man das selber anpassen?
Danke,
Boris

gibt es von dem Modul denn eine Version für phpbb3 ?
Oder kann man das selber anpassen?
Danke,
Boris
-
- Beiträge: 293
- Registriert: 7. Mär 2006, 10:43
- Wohnort: Österreich
Re: für phpbb3
Weil ich grad eine Frage an gfc hab, die hier reinpasst und weil du vor Äonen gefragt hast -> Ich hab das Template unter 3.1 laufenborisb2 hat geschrieben:Hallo Parkrocker
gibt es von dem Modul denn eine Version für phpbb3 ?
Oder kann man das selber anpassen?
Danke,
Boris

Nun aber meine Frage:
Kann man dem Template beibringen, User die im Forum deren Online-status verbergen auch hier auszublenden?
Derzeit wird dies ignoriert und ALLE als ""momentan online" angezeigt..
Be(a)st regards,
MA
-
- Beiträge: 293
- Registriert: 7. Mär 2006, 10:43
- Wohnort: Österreich
Will keinen uralt-thread wiederbeleben, hatte nur gerade das Problem das PHP einen Fehler ausspuckte, weil keine User in dem Forum hinter redaxo online waren.
Goldacker's Einwand/Code ist sehr gut, hab ihn an die Userabfrage angepasst und sollte auch funktionieren:
Goldacker's Einwand/Code ist sehr gut, hab ihn an die Userabfrage angepasst und sollte auch funktionieren:
Code: Alles auswählen
<?php
// PHPBB Interaktion mit Redaxo
// Autor: Roman Urnaut
// www.parkrocker.net / www.urnaut.com
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];
// ############ Edit below ########################################
$topic_length = '60'; // laenge des Titels
$topic_limit = '2'; // Anzahl beitraege
$special_forums = '0'; // auf Foren beschraenken ('0' = no; '1' = yes)
$forum_ids = ''; // Falls auf Foren beschraenkt, dann hier die IDs angeben
$table_prefix = 'phpbb_'; // Der Prefix in der Datenbank
$root_path = '/forum/'; // link zum Forumspfad
// ############ Edit above ########################################
// RECENT FORUM POSTS
$navLeftCol .='<h1>Aktuell im Forum</h1>';
$navLeftCol .='';
$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id IN ('. $forum_ids .') AND ';
$qry = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
WHERE $where_forums t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id AND f.auth_view < 2
ORDER BY t.topic_last_post_id DESC LIMIT $topic_limit";
$sql = new sql();
$sql->setQuery($qry);
$result = $sql->get_array($qry);
//falls kein Forumbeiträge (mehr) vorhanden sind
//von Jan-Goldacker.de
if ($result == null) {
// ############## output ##############
$navLeftCol .= 'Kein aktueller Eintrag';
// ############## output ##############
}
else{
//hier gehts normal weiter mit abschließender Klammer
foreach($result as $line)
{
$forum_id = $line['forum_id'];
$forum_url = $root_path .'forum.html'. $forum_id;
$topic_id = $line['topic_id'];
$topic_url = $root_path .'ftopic.html'. $topic_id;
$topic_title = ( strlen($line['topic_title']) < $topic_length ) ? $line['topic_title'] : substr(stripslashes($line['topic_title']), 0, $topic_length) .'...';
$views = $line['topic_views'];
$replies = $line['topic_replies'];
$first_time = date('G:i', $line['topic_time']);
$last_time = date('G:i', $line['post_time']);
$last_author = ( $line['last_poster_id'] != '-1' ) ? $line['last_poster'] : ( ($line['last_poster_name'] != '' ) ? $line['last_poster_name'] : 'guest' );
$last_url = '<a href="'. $root_path .'sutra.html'. $line['topic_last_post_id'] .'#'. $line['topic_last_post_id'] .'">» '. $topic_title .'</a>';
// ############## output ##############
$navLeftCol .= 'In <a href="'. $forum_url .'">» '. $line['forum_name'] .'</a><!-- um '.$last_time.'</span>--><br>'.$last_url .'<br>';
// ############## output ##############
}
$navLeftCol .='';
//abschließende Klammer, wenn kein Beitrag
}
// USER ONLINE
/**
$navLeftCol .='<h1>Aktuell Online</h1>';
$navLeftCol .='<ul>';
$qry = "SELECT u.user_id, u.username, u.user_allow_viewonline, s.session_logged_in, s.session_time
FROM ". $table_prefix . "users u, ". $table_prefix . "sessions s WHERE u.user_id = s.session_user_id
AND s.session_time >= (".time()." - 300) ORDER by u.username ASC";
$sql = new sql();
$sql->setQuery($qry);
$result = $sql->get_array($qry);
$guests = 0;
$users = "";
//falls auch nicht mal ein google-bot online ist
//von Jan-Goldacker.de adaptiert von Maidenaustria
if ($result == null) {
// ############## output ##############
$navLeftCol .= 'Kein User online';
// ############## output ##############
}
else{
foreach($result as $line)
{
$username = $line['username'];
$userid = $line['user_id'];
if ($userid <0)
{
$guests++;
}
else
{
if ($users == "")
{
$users.= $username;
}
else
{
$users.= ', '. $username;
}
}
}
$navLeftCol .= '<li>'.$users.'</li><li>' . $guests. ' Gäste</li>';
$navLeftCol .='</ul>';
**/
//abschließende Klammer, wenn kein User online
}