Letzte Beiträge in HTML Seite einbinden

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Marc_Kcan
Mitglied
Beiträge: 11
Registriert: 13.04.2013 14:16

Letzte Beiträge in HTML Seite einbinden

Beitrag von Marc_Kcan »

Hallo,

wie kann ich die letzten Beiträge in meinem phpBB Forum (Version 3.0.11) in meine HTML Startseite einbinden? Die Seite liegt auf dem gleichen Server, das Forum im Verzeichnis /forum.

Danke!

Marc
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Letzte Beiträge in HTML Seite einbinden

Beitrag von HabNurNeFrage »

Hi,

in eine HTML-Seite direkt wohl nur mit iFrame(s).
Du brauchst dazu ja in etwa die Funktionen, die die search.php zur Verfügung stellt.
Wie es komplett "custom" ausehen müsste, steht hier: https://blog.phpbb.com/2009/11/09/how-t ... nal-pages/
Eine umbenannte Kopie der search.php mit angepasster search_results.html würde sicher auch funktionieren.

Einfacher ist es, Seiten in phpBB zu integrieren, als phpBB-Funktionen in Seiten...
Wie das grundsätzlich geht, steht hier: https://wiki.phpbb.com/Practical.Add_custom_page

Zum Testen/Begreifen eignet sich hervorragend eine umbenannte faq.php - weil die nur die grundlegendsten Dinge beinhaltet.

Viel Spaß beim Tüfteln...

LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Marc_Kcan
Mitglied
Beiträge: 11
Registriert: 13.04.2013 14:16

Re: Letzte Beiträge in HTML Seite einbinden

Beitrag von Marc_Kcan »

Ok ich habe nun zum Test im selben Verzeichnis wie mein Forum eine neue PHP Datei erstellt und den Code wie in diesem Blog beschrieben zusammenkopiert. Aber es funktioniert nicht, was mache ich falsch?

Code: Alles auswählen

    <?php
    /*
    * home.php
    * Description: example file for displaying latest posts and topics
    * by battye (for phpBB.com MOD Team)
    * September 29, 2009
    */

    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
    include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup('viewforum'); 




    /* create_where_clauses( int[] gen_id, String type )
    * This function outputs an SQL WHERE statement for use when grabbing
    * posts and topics */

    function create_where_clauses($gen_id, $type)
    {
    global $db, $auth;

    $size_gen_id = sizeof($gen_id);

    switch($type)
    {
    case 'forum':
    $type = 'forum_id';
    break;
    case 'topic':
    $type = 'topic_id';
    break;
    default:
    trigger_error('No type defined');
    }

    // Set $out_where to nothing, this will be used of the gen_id
    // size is empty, in other words "grab from anywhere" with
    // no restrictions
    $out_where = '';

    if ($size_gen_id > 0)
    {
    // Get a list of all forums the user has permissions to read
    $auth_f_read = array_keys($auth->acl_getf('f_read', true));

    if ($type == 'topic_id')
    {
    $sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . '
    WHERE ' . $db->sql_in_set('topic_id', $gen_id) . '
    AND ' . $db->sql_in_set('forum_id', $auth_f_read);

    $result = $db->sql_query($sql);

    while ($row = $db->sql_fetchrow($result))
    {
    // Create an array with all acceptable topic ids
    $topic_id_list[] = $row['topic_id'];
    }

    unset($gen_id);

    $gen_id = $topic_id_list;
    $size_gen_id = sizeof($gen_id);
    }

    $j = 0;

    for ($i = 0; $i < $size_gen_id; $i++)
     {
    $id_check = (int) $gen_id[$i]; // If the type is topic, all checks have been made and the query can start to be built if( $type == 'topic_id' ) { $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' '; } // If the type is forum, do the check to make sure the user has read permissions else if( $type == 'forum_id' && $auth->acl_get('f_read', $id_check) )
    {
    $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' ';
    }

    $j++;
    }
    }

    if ($out_where == '' && $size_gen_id > 0)
    {
    trigger_error('A list of topics/forums has not been created');
    }

    return $out_where;
    }






    $search_limit = 5;

    $forum_id = array(2, 5);
    $forum_id_where = create_where_clauses($forum_id, 'forum');

    $topic_id = array(20, 50);
    $topic_id_where = create_where_clauses($topic_id, 'topic');






    $posts_ary = array(
    'SELECT' => 'p.*, t.*',

    'FROM' => array(
    POSTS_TABLE => 'p',
    ),

    'LEFT_JOIN' => array(
    array(
    'FROM' => array(TOPICS_TABLE => 't'),
    'ON' => 't.topic_first_post_id = p.post_id'
    )
    ),

    'WHERE' => str_replace( array('WHERE ', 'forum_id'), array('', 't.forum_id'), $forum_id_where) . '
    AND t.topic_status <> ' . ITEM_MOVED . '
    AND t.topic_approved = 1',

    'ORDER_BY' => 'p.post_id DESC',
    );

    $posts = $db->sql_build_query('SELECT', $posts_ary);

    $posts_result = $db->sql_query_limit($posts, $search_limit);

    while ($posts_row = $db->sql_fetchrow($posts_result))
    {
    $topic_title = $posts_row['topic_title'];
    $topic_author = get_username_string('full', $posts_row['topic_poster'], $posts_row['topic_first_poster_name'], $posts_row['topic_first_poster_colour']);
    $topic_date = $user->format_date($posts_row['topic_time']);
    $topic_link = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=" . $posts_row['topic_id']);

    $post_text = nl2br($posts_row['post_text']);

    $bbcode = new bbcode(base64_encode($bbcode_bitfield));
    $bbcode->bbcode_second_pass($post_text, $posts_row['bbcode_uid'], $posts_row['bbcode_bitfield']);

    $post_text = smiley_text($post_text);

    $template->assign_block_vars('announcements', array(
    'TOPIC_TITLE' => censor_text($topic_title),
    'TOPIC_AUTHOR' => $topic_author,
    'TOPIC_DATE' => $topic_date,
    'TOPIC_LINK' => $topic_link,
    'POST_TEXT' => censor_text($post_text),
    ));
    }
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 12113
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: Letzte Beiträge in HTML Seite einbinden

Beitrag von Crizzo »

Hi,

kennst du diesen Wiki-Artikel schon: https://wiki.phpbb.com/Practical.Displa ... rnal_pages ?

Grüße
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 8137
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Letzte Beiträge in HTML Seite einbinden

Beitrag von Kirk »

Du könntest dir die letzten Beiträge auch in der Forenübersicht anzeigen lassen.
Dazu gibt es den Mod Latest Post on Index
Verschoben von phpBB 3.0: Mod Suche/Anfragen nach phpBB 3.0: Mod-Bastelstube am 11.05.2013 15:40 durch Metzle

Antworten

Zurück zu „[3.0.x] Mod Bastelstube“