ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
X aktuellste Forumsbeiträge in CPO darstellen?!

 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Allgemeine Diskussionen zu PHP
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Ralf
ConPresso-Checker


Anmeldungsdatum: 25.08.2005
Beiträge: 205

BeitragVerfasst am: 17.09.2006 18:48    Titel: X aktuellste Forumsbeiträge in CPO darstellen?! Antworten mit Zitat

Hallo zusammen,

mich würde heute mal interessieren, wie das CPO-Team die Integration von den "Neuen Beiträge in der Community" auf ihrer Homepage/ Startseite realisiert haben?!!

Da ich auch ein Forum (phpbb) betreibe fände ich dieses Zusatzfeature recht nett für die Homepage-User.

Also liebes Conpresso-Team, seid doch bitte mal so lieb und helft uns bei dieser tollen Integration für unsere eigene Homepage oder ist dies als MOD geplant??

Vielen DANK

cu Ralf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7023

BeitragVerfasst am: 17.09.2006 19:53    Titel: Antworten mit Zitat


 Solche Erweiterungen gibt es massenweise bei phpBB.com und phpBB.de zum Download.
Hier im Forum ist dies auch nur ein wenig angepasst.

Das kann dann z.B. so aussehen
php:
<?php
/**
* Mod Title:   Latest Topics
* Mod Version: phpBB 2.0.4
* Author:      Charlie Page
* Description: Shows latest topics on any page
* Release:     v1.0, 05.30.2004
***
* Demo:                http://www.xboxassassin.com/e3
* Installation Level:  Easy 
* Installation Time:   1 minute
* Files To Edit:       This one 
* Included Files:      php-latest.php
***
* Installation Notes:
* Upload this file and set $ppath and $url, 
* Include this into a page and your done!
*/
$url "../forum";    // If url is - http://www.yourforums.com/forums , then enter in "/forums"
$ppath "/home/domain.de/public_html/forum/config.php";    // Physical path to the config.php file
if(empty($count))
    
$count "20";    // How many topics to link to

//-----------------[ DO NOT EDIT BELOW HERE ]------------------------- 
include_once("$ppath"); 
$db = @mysql_connect("$dbhost""$dbuser""$dbpasswd") or die("here we die at connection"); 
@
mysql_select_db("$dbname",$db) or die("here we die"); 

$prefix "$table_prefix";

$query "SELECT * FROM ( ".$prefix."topics LEFT JOIN  ".$prefix."forums ON ".$prefix."topics.forum_id = ".$prefix."forums.forum_id ) WHERE ".$prefix."forums.auth_view = 0 ORDER BY `topic_id` DESC LIMIT 0, ".$count;
//echo $query;
        
$result=mysql_query($query);
        while(
$row mysql_fetch_array($result)) {
        
$topicid $row["topic_id"];
        
$title $row["topic_title"];
        
$forumid $row["forum_id"];
        
$replies $row["topic_replies"];

echo 
"<a title=\"$title\" href=\"$url/viewtopic.php?t=$topicid\">$title</a> ($replies)<hr>"

}
?>


_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ralf
ConPresso-Checker


Anmeldungsdatum: 25.08.2005
Beiträge: 205

BeitragVerfasst am: 17.09.2006 22:44    Titel: Antworten mit Zitat

@ MarkusR

Danke, jedoch mit diesem Skript/ DB Abfrage wird mir leider nur der "Title" und die Anzahl der Antworten darauf angezeigt! Ich hätte es aber eben gerne so wie auf der CPO Seite.

Was mir aber dazu jetzt noch fehlt, ist eben die richtige DB Abfrage Rolling Eyes

Könntest du mir da evtl. auch noch weiterhelfen?

Thanks cu Ralf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7023

BeitragVerfasst am: 17.09.2006 22:58    Titel: Antworten mit Zitat

Die letzte Version kann Dir nur Balu geben, aber das hier gibt auch die Texte (ohne BB-Code) aus:
Code:
<?php
// Dies hier bitte anpassen -------------------------
$url = "http://community.conpresso.de";   // If url is - http://www.yourforums.com/forums , then enter in "/forums"
$ppath = "/home/domain.de/community/htdocs/config.php";    // Physical path to the config.php file
$count = "20";    // How many topics to link to
$timeformat = "d.m.Y H:i";
$max_length = 200;
// ---------------------------------------------------

include_once("$ppath");
$db = @mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("here we die at connection");
@mysql_select_db("$dbname",$db) or die("here we die");

$prefix = "$table_prefix";

// if you're interested in topics
// $query = "SELECT * FROM ".$prefix."topics t, ".$prefix."forums f, ".$prefix."users u, ".$prefix."posts_text p WHERE f.auth_view = 0 AND t.forum_id = f.forum_id AND t.topic_poster = u.user_id AND t.topic_last_post_id = p.post_id ORDER BY t.topic_id DESC LIMIT 0 , ".$count;

// if your're interested in posts
$query = "SELECT * FROM ".$prefix."topics t, ".$prefix."forums f, ".$prefix."users u, ".$prefix."posts b, ".$prefix."posts_text p WHERE f.auth_view = 0 AND t.forum_id = f.forum_id AND b.poster_id = u.user_id AND t.topic_last_post_id = p.post_id AND t.topic_last_post_id = b.post_id ORDER BY p.post_id DESC LIMIT 0 , ".$count;

$result=mysql_query($query);

while($row = mysql_fetch_array($result)) {
   $topicid = $row["topic_id"];
   $topic_time = date($timeformat,$row["post_time"]);
   $title = $row["topic_title"];
   $forumid = $row["forum_id"];
   $post_text = preg_replace('/\[(.*?):(.*?)\]/si','',$row["post_text"]);
   $post_text = (strlen($post_text) > $max_length ) ? substr($post_text ,0,$max_length-3)."..." : $post_text ;
   $username = $row["username"];
   $forum_name = $row["forum_name"];

// Hier die eigentliche Ausgabe
   echo "<h2>$topic_time, <a href=\"$url/viewtopic.php?t=$topicid\" target=\"_blank\">$title</a></h2>";
   echo "<p>$post_text</p>";
   echo "Forum: $forum_name<br />";
   echo "Autor: $username <br />";
}
?>

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7

 
Für dieses Posting bedanken sich die folgenden User: Ralf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7023

BeitragVerfasst am: 17.09.2006 23:07    Titel: Antworten mit Zitat

Du solltest Dich aber wirklich mal auf den phpBB-Seiten (auch bei phpBB-Hacks) umsehen, da gibt es davon viele Spielarten.
Dies hat mit ConPresso an sich rein gar nichts zu tun...

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Ralf
ConPresso-Checker


Anmeldungsdatum: 25.08.2005
Beiträge: 205

BeitragVerfasst am: 17.09.2006 23:10    Titel: Antworten mit Zitat

Hallo MarkusR

danke ja, da bin ich jetzt schon auch 3 Stunden drauf unterwegs, ... aber die meisten binden es nur direkt ein oder wenn extern dann eigentlich nicht so wie auf CPO und ich dachte eben wenn ich es genau so (die gleichen ausgaben wie CPO) haben möchte könnte ich ja mal hier fragen Rolling Eyes

Aber ich teste gleich mal den Code von oben und evtl. postet ja Balu noch den aktuellsten Code von der Homepage Cool

cu Ralf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1746

BeitragVerfasst am: 18.09.2006 09:17    Titel: Antworten mit Zitat

Dann tue ich das mal:

Code:
<?
// Dies hier bitte anpassen -------------------------
$url = 'http://www.example.com';    // If url is - http://www.yourforums.com/forums , then enter in "/forums"
$ppath = 'config.php';                     // Physical path to the config.php file
if (empty($count)) $count = 2;             // How many topics to link to
$timeformat = 'd.m.Y H:i';
$max_length = 200;
// ---------------------------------------------------

include_once($ppath);
$db = @mysql_connect($dbhost, $dbuser, $dbpasswd)
        or die('here we die at connection');
@mysql_select_db($dbname, $db)
        or die('here we die at select');

$prefix = $table_prefix;

// if you're interested in topics
// $query = "SELECT * FROM ".$prefix."topics t, ".$prefix."forums f, ".$prefix."users u, ".$prefix."posts_text p WHERE f.auth_view = 0 AND t.forum_id = f.forum_id AND t.topic_poster = u.user_id AND t.topic_last_post_id = p.post_id ORDER BY t.topic_id DESC LIMIT 0 , ".$count;

// if your're interested in posts
$query = 'SELECT * FROM '.$prefix.'topics t, '.$prefix.'forums f, '.$prefix.'users u, '.$prefix.'posts b, '.$prefix.'posts_text p '
        .'WHERE f.auth_view = 0 '
        .'AND t.forum_id = f.forum_id '
        .'AND b.poster_id = u.user_id '
        .'AND t.topic_last_post_id = p.post_id '
        .'AND t.topic_last_post_id = b.post_id '
        .'ORDER BY p.post_id DESC '
        .'LIMIT 0, '.$count;

$result=mysql_query($query);

while($row = mysql_fetch_array($result)) {
    $post_text = $row['post_text'];
    $post_text = preg_replace('/\[(.*?):?(.*?)\]/si', '', $post_text);
    $post_text =
        (strlen($post_text)>$max_length )
        ? substr($post_text ,0,$max_length-3).'...'
        : $post_text;

    echo '<div class="cponews">';
        echo '<h4>';
        echo date('d.m.Y', $row['post_time']).' '.date('H:i', $row['post_time']).' | ';
        echo $row['topic_title'];
        echo '</h4>';
        echo htmlspecialchars($row['username']);
        echo ' schreibt in ';
        echo '<a href="'.$url.'/viewforum.php?f='.(int)$row["forum_id"].'">'.htmlspecialchars($row['forum_name']).'</a>: ';
        echo '<blockquote style="font-style: italic; margin: 0; padding: 0;">'.$post_text;
        echo ' <a href="'.$url.'/viewtopic.php?t='.(int)$row['topic_id'].'" target="_blank" style="font-style: normal;">&raquo;&nbsp;Beitrag&nbsp;lesen</a>';
        echo '</blockquote>';
    echo '</div>';
}
?>


In der config.php stehen die Zugangsdaten zur Datenbank:

Code:
<?php


// phpBB 2.x auto-generated config file
// Do not change anything in this file!

$dbms = 'mysql';

$dbhost = 'localhost';
$dbname = 'Datenbankname';
$dbuser = 'Datenbankuser';
$dbpasswd = 'Datenbankpasswort';

$table_prefix = 'phpbb_';

define('PHPBB_INSTALLED', true);

?>

 
Für dieses Posting bedanken sich die folgenden User: Ralf, hscha
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ralf
ConPresso-Checker


Anmeldungsdatum: 25.08.2005
Beiträge: 205

BeitragVerfasst am: 18.09.2006 10:10    Titel: Antworten mit Zitat

Hallo Balu,

vielen herzlichen Dank für diesen Code!!!

Ich habe ihn jetzt mal gleich getestet, und muss sagen er funktioniert wunderbar (hat der Code von MarkusR aber auch) Wink

Was mir jedoch noch nicht ganz so gefallen hat, war das wenn ich auf den Link "Beitrag lesen" klicke er mich nicht direkt zu DIESEM Artikel bringt sondern zu dem Thema wo dieser Artikel drin steht. Was für meinen Fall aber leider nicht so passend ist, da ich Themen mit oft sehr vielen Seiten habe.
Deshalb habe ich euren Code nocht etwas angepasst. Für alle anderen die auch daran interesse haben ...

Code Änderungen für den Code von Balu

Suche:
Code:
<a href="'.$url.'/viewtopic.php?t='.(int)$row['topic_id'].'"

ERSETZE ihn mit:
Code:
<a href="'.$url.'/viewtopic.php?p='.(int)$row['post_id'].'#'.(int)$row['post_id'].'"


und schon werdet ihr direkt zum Artikel geleitet.

Viel Spaß damit
cu Ralf

P.S. Ach in diesem Zusammenhang ist mir noch etwas aufgefallen und zwar werden mit dieser Methode leider jedoch nicht wirklich NUR die letzten 2 Beiträge dargestellt sondern die 2 letzten Beiträge in den letzten 2 UNTERSCHIEDLICHEN Themen Confused
d.h. wenn jetzt in einem Thema die letzten 5 Nachrichten drin sind, wird NUR das letzte genommen und dann noch von einem anderen Thema. Ich vermute das liegt an der Datenbankabfrage, doch leider bin ich hier nicht so fit es zu ändern. Aber ich schaue mal nach ob ich evtl. direkt bei phpbb etwas dazu finde?!!

 
Für dieses Posting bedanken sich die folgenden User: schoene
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
balu
ConPresso-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1746

BeitragVerfasst am: 21.09.2006 16:05    Titel: Antworten mit Zitat

Nur der Vollstaendigkeit halber - Urspruenglich stammt der Code von Markus Smile - also ist ihm auch zu danken...

Balu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Ralf
ConPresso-Checker


Anmeldungsdatum: 25.08.2005
Beiträge: 205

BeitragVerfasst am: 22.09.2006 00:23    Titel: Antworten mit Zitat

Cool Laughing

DANKE Markus !!!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Allgemeine Diskussionen zu PHP Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen