Seite 1 von 1

phpBB3 - Tools, Scripte, Mods, FAQ etc.

Verfasst: Montag 28. Oktober 2013, 17:10
von Administrator
Hallo zusammen!

Ich mache mal einen Thread dazu auf, falls jemand selbst ein Forum erstellen möchte, eines hat und bestimmte Dinge wissen würde. Oder eben auch damit man nachvollziehen kann, was hier so an technischem Kram passiert.

phpBB ist Open Source und der Gedanke ist auch, dass alle davon was haben und ihr Wissen teilen. :wink:

Ich werde es erstmal los posten. Je nachdem wie es sich entwickeln könnte, etwas ausbauen.

Problemfall: Ich bin mit meinem Forum umgezogen, habe einen artverwandten BBCode Tag erstellt. Dieser funktioniert auch, aber ist eben bei zuvor erstellten Beiträgen wirkungslos.

Abhilfe: Damit die Änderungen auch auf ältere Beiträge Anwendung finden kann, müssen diese reparset werden.

Hier gibts die Lösung: https://startrekguide.com/community/vie ... hp?p=47648


Code: Alles auswählen

<?php
/**
* The file must be named resync_bbcode.php
*/

define('IN_PHPBB', true);
$phpbb_root_path = ((isset($phpbb_root_path)) ? $phpbb_root_path : './');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

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

$start = intval(request_var('start', 0));
$limit = 200;

include($phpbb_root_path . 'includes/message_parser.' . $phpEx);

$bbcode_status    = ($config['allow_bbcode']) ? true : false;
$img_status        = ($bbcode_status) ? true : false;
$flash_status    = ($bbcode_status && $config['allow_post_flash']) ? true : false;

$sql = 'SELECT * FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
    WHERE t.topic_id = p.topic_id
        ORDER BY p.post_id ASC
            LIMIT ' . $start . ', ' . $limit;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
    decode_message($row['post_text'], $row['bbcode_uid']);

    $message_parser = new parse_message();
    $message_parser->message = str_replace('"', '"', html_entity_decode($row['post_text']));
    $message_parser->parse((($bbcode_status) ? $row['enable_bbcode'] : false), (($config['allow_post_links']) ? $row['enable_magic_url'] : false), $row['enable_smilies'], $img_status, $flash_status, true, $config['allow_post_links']);

    if ($row['poll_title'] && $row['post_id'] == $row['topic_first_post_id'])
    {
        $row['poll_option_text'] = '';
        $sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . ' WHERE topic_id = ' . $row['topic_id'];
        $result2 = $db->sql_query($sql);
        while ($row2 = $db->sql_fetchrow($result2))
        {
            $row['poll_option_text'] .= $row2['poll_option_text'] . "\n";
        }
        $db->sql_freeresult($result2);

        $poll = array(
            'poll_title'        => $row['poll_title'],
            'poll_length'        => $row['poll_length'],
            'poll_max_options'    => $row['poll_max_options'],
            'poll_option_text'    => $row['poll_option_text'],
            'poll_start'        => $row['poll_start'],
            'poll_last_vote'    => $row['poll_last_vote'],
            'poll_vote_change'    => $row['poll_vote_change'],
            'enable_bbcode'        => $row['enable_bbcode'],
            'enable_urls'        => $row['enable_magic_url'],
            'enable_smilies'    => $row['enable_smilies'],
            'img_status'        => $img_status
        );

        $message_parser->parse_poll($poll);
    }

    $sql_data = array(
        'post_text'            => $message_parser->message,
        'post_checksum'        => md5($message_parser->message),
        'bbcode_bitfield'    => $message_parser->bbcode_bitfield,
        'bbcode_uid'        => $message_parser->bbcode_uid,
    );

    $sql = 'UPDATE ' . POSTS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data) . '
        WHERE post_id = ' . $row['post_id'];
    $db->sql_query($sql);

    if ($row['poll_title'] && $row['post_id'] == $row['topic_first_post_id'])
    {
        $sql_data = array(
            'poll_title'        => str_replace($row['bbcode_uid'], $message_parser->bbcode_uid, $poll['poll_title']),
        );

        $sql = 'UPDATE ' . TOPICS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data) . '
            WHERE topic_id = ' . $row['topic_id'];
        $db->sql_query($sql);

        $sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . ' WHERE topic_id = ' . $row['topic_id'];
        $result2 = $db->sql_query($sql);
        while ($row2 = $db->sql_fetchrow($result2))
        {
            $sql_data = array(
                'poll_option_text'        => str_replace($row['bbcode_uid'], $message_parser->bbcode_uid, $row2['poll_option_text']),
            );

            $sql = 'UPDATE ' . POLL_OPTIONS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data) . '
                WHERE topic_id = ' . $row['topic_id'] . '
                AND poll_option_id = ' . $row2['poll_option_id'];
            $db->sql_query($sql);
        }
    }
}

$sql = 'SELECT count(post_id) as post_cnt FROM ' . POSTS_TABLE;
$result = $db->sql_query($sql);
$cnt = $db->sql_fetchrow($result);

if ($cnt['post_cnt'] > ($start + $limit))
{
    meta_refresh(1, './resync_bbcode.' . $phpEx . '?start=' . ($start + $limit));
    trigger_error('The script is not finished yet, please wait.  Part ' . (($start + $limit) / $limit) . ' of ' . intval($cnt['post_cnt'] / $limit) . ' is finished.');
}
else
{
    trigger_error('Finished!');
}

?>
Den Code kopieren, in den Editor von Windows kopieren, beim Speichern Alle Dateien auswählen und als resynch_bbcode.php abspeichern. Anschließend ins Hauptverzeichnis deines Servers hochladen und ausführen.

Das kann enige Minuten in Anspruch nehmen. Anschließend die Datei wieder löschen.[/i]

Breizh Shoutbox Button prosilver

Verfasst: Dienstag 29. Oktober 2013, 19:12
von Administrator
Die hier genutzte Shoutbox hat bei genauester Anleitung, keine Bilder zu den Schlatflächen im prosilver Style.

Grund: Es wurde etwas vergessen ...

falscher Code ...

Code: Alles auswählen

<!-- Breizh Shoutbox Start -->
<!-- IF S_DISPLAY_SHOUTBOX -->
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/editor.js"></script>
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/shoutbox.js"></script>
<script type="text/javascript" src="{U_SHOUT}"></script>
<!-- IF U_CHARS -->
<script type="text/javascript" src="{U_CHARS}"></script>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- Breizh Shoutbox End -->
richtiger Code ...

Code: Alles auswählen

<!-- Breizh Shoutbox Start -->
<!-- IF S_DISPLAY_SHOUTBOX -->
<link rel="stylesheet" href="{T_THEME_PATH}/shoutbox.css" type="text/css" />
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/editor.js"></script>
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/shoutbox.js"></script>
<script type="text/javascript" src="{U_SHOUT}"></script>
<!-- IF U_CHARS -->
<script type="text/javascript" src="{U_CHARS}"></script>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- Breizh Shoutbox End -->
Vergessen wurde die Zeile ...

Code: Alles auswählen

<link rel="stylesheet" href="{T_THEME_PATH}/shoutbox.css" type="text/css" />
Diese Stelle gibt es mehrfach in der Anleitung. Einfach dort ebenfalls ändern, je nachdem wo die Shoutbox angezeigt werden soll.

Funzt! Weiter gehts ... :D

Re: phpBB3 - Tools, Scripte, Mods, FAQ etc.

Verfasst: Freitag 6. Dezember 2013, 08:22
von Cathy
Ok, in der Shoutbox lassen sich die smilies bei mir nicht anzeigen, resp. die erweiterten... (ein leeres Fenster öffnet sich)

Re: phpBB3 - Tools, Scripte, Mods, FAQ etc.

Verfasst: Freitag 6. Dezember 2013, 08:32
von Administrator
Moin Moin Cathy!

Für den Moment würde ich erstmal die klassische Frage stellen: Hast du Javascript aktiviert? Was du natürlich hast, sonst würde mittlerweile das halbe Netz und deren Funktionen nicht laufen. Aber hast du auch die aktuellste Version? (eigentlich auch, aber wäre auch eine Idee)

Hast du sowas wie AdBlock?

Welchen Browser nutzt du? Ich selbst bin fast nur mit Opera hier. Dort kann man beim Besuch einer Seite einfach auf seitenspezifische Einstellungen klicken, ob und wie Popups aktiviert/deaktiviert etc. werden.

Re: phpBB3 - Tools, Scripte, Mods, FAQ etc.

Verfasst: Montag 9. Dezember 2013, 13:43
von Cathy
Wow du antwortest mir hier 3 mal...

Ok ich bin mit google chrome unterwegs

AdBlock ? Versteh nicht viel was das sein soll, ich denke aber eher nicht. Ausser es hat was mit blockieren von gewissen Seiten zu tun, dies mach nämlich mein "Afee", resp. der sagt mir einfach welche Seiten gefährtet sein könnten, was hier aber nicht der Fall ist.

Java... hmm, ist die neuste Version.

Re: phpBB3 - Tools, Scripte, Mods, FAQ etc.

Verfasst: Montag 9. Dezember 2013, 13:46
von Cathy
:startrek1ai6: Seite 7

:occasion7: Seite 4

Ok hier gehts, einfach in der Schnatterkiste ist die Seite der erweiterten Smilies leer. Und ich kann nur direkt reinschreiben, aber nicht auf Schnatterkiste klicken, da öffnet sich das Fenster nicht (sofort), hab jetzt auch nicht lange gewartet.

Re: phpBB3 - Tools, Scripte, Mods, FAQ etc.

Verfasst: Montag 9. Dezember 2013, 14:56
von Administrator
Cathy hat geschrieben:Wow du antwortest mir hier 3 mal...

Ok ich bin mit google chrome unterwegs
Huch, liegt wohl an meienr Mouse, die langsam aber sicher den Geist aufgibt und mit einem Klick, mehrfach Befehle ausführt. :roll:

Hab das Problem jetzt auch getestet und gesehen. Stimmt, wenn man auf mehr Smilies klickt, kommt einfach nur ne weiße Seite. Hmm, hatte nix verändert und nach der Installation funktionierte es. Ich forsche mal nach und melde mich dann wieder. Danke für den Bugreport! :wink:

P.S.: Im Adminpannel der Shoutbox kann man einstellen, welche Smilies sofort und welche im Popup angezeigt werden sollen. Praktisch wie bei denen in den normalen Postings hier. Ich kann auch alle sofort anzeigen lassen, aber dann meckert die Shoutbox irgendwelche Meldungen, weils scheinbar zuviele Smilies auf einmal sind!? :mrgreen:

Re: phpBB3 - Tools, Scripte, Mods, FAQ etc.

Verfasst: Montag 9. Dezember 2013, 16:39
von Administrator
Done! Ich habe das jetzt dahingehend gefixt, dass ich zuerst eine Menge Smileys gelöscht habe, die keiner nutzt. (manche waren mehrfach vorhanden) Nun sollte die Auswahl beim Posten auch einfacher und übersichtlicher sein.

Das hat auch den Effekt, dass es kein Popup mehr in der Schnatterkiste benötigt. :smile:

P.S.: Man kann im ACP der Shoutbox einstellen, welche Smilieys direkt und welche per Popup angezeigt werden sollen. Zuvor gab es eine Fehlermeldung, wenn man alles direkt anzeigen lassen wollte. Ich glaube für soviele Smileys ist die Shoutbox gar nicht ausgelegt. :mrgreen: