[Gelöst] Interne URLs zu Thementiteln konvertieren

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.
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7898
Registriert: 24.05.2010 08:31
Kontaktdaten:

[Gelöst] Interne URLs zu Thementiteln konvertieren

Beitrag von Kirk »

Hallo
Ich hab hier ein Snippet von Miriam gefunden, das Interne URLs zu Thementiteln konvertiert.
Wenn ich einen Link zu einem Beitrag erstelle funktioniert es auch perfekt,
wenn ich aber einen Link zb. zur Forenübersicht eingebe erhalte ich
nach dem Absenden folgende Debug Meldung:
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 604: array_pop() expects parameter 1 to be array, null given
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_content.php on line 623: Undefined variable: sql
Wie kann man diesen Fehler beseitigen ohne dieses Snippet wieder rückgängig zu machen?
Zuletzt geändert von Kirk am 09.10.2012 17:19, insgesamt 1-mal geändert.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Interne URLs zu Thementiteln konvertieren

Beitrag von Miriam »

Wie sieht denn der Link genau aus? Also die URL Parameter.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7898
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Interne URLs zu Thementiteln konvertieren

Beitrag von Kirk »

Der Link sieht so aus http://www.quad-atv-freunde-wunsiedel.de/index.php
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Interne URLs zu Thementiteln konvertieren

Beitrag von Miriam »

Finde:

Code: Alles auswählen

            preg_match_all('/([ptf])=(\d+)/', $relative_url, $matches);
            for ($i = 0; $i < count($matches[1]); $i++)
            {
                $params_arr[] = array($matches[1][$i] => $matches[2][$i]);
            }
            $params_arr = array_pop($params_arr);
            if (isset($params_arr['p']))
            {
                $sql = 'SELECT post_subject FROM ' . POSTS_TABLE . '
                        WHERE post_id = ' . $params_arr['p'];
                $key = 'post_subject';
            }
            if (isset($params_arr['t'])) 
            {
                $sql = 'SELECT topic_title FROM ' . TOPICS_TABLE . '
                        WHERE topic_id = ' . $params_arr['t'];
                $key = 'topic_title';
            }
            if (isset($params_arr['f']))
            {
                $sql = 'SELECT forum_name FROM ' . FORUMS_TABLE . '
                        WHERE forum_id = ' . $params_arr['f'];
                $key = 'forum_name';
            }
            $result = $db->sql_query($sql);
            if ($row = $db->sql_fetchrow($result))
            {
                $relative_url = $row[$key];
            }
            $db->sql_freeresult($result); 
tausche aus gegen:

Code: Alles auswählen

            $match = preg_match_all('/([ptf])=(\d+)/', $relative_url, $matches);
            if($match)
            {
                for ($i = 0; $i < count($matches[1]); $i++)
                {
                    $params_arr[] = array($matches[1][$i] => $matches[2][$i]);
                }
                $params_arr = array_pop($params_arr);
                if (isset($params_arr['p']))
                {
                    $sql = 'SELECT post_subject FROM ' . POSTS_TABLE . '
                            WHERE post_id = ' . $params_arr['p'];
                    $key = 'post_subject';
                }
                if (isset($params_arr['t'])) 
                {
                    $sql = 'SELECT topic_title FROM ' . TOPICS_TABLE . '
                            WHERE topic_id = ' . $params_arr['t'];
                    $key = 'topic_title';
                }
                if (isset($params_arr['f']))
                {
                    $sql = 'SELECT forum_name FROM ' . FORUMS_TABLE . '
                            WHERE forum_id = ' . $params_arr['f'];
                    $key = 'forum_name';
                }
                $result = $db->sql_query($sql);
                if ($row = $db->sql_fetchrow($result))
                {
                    $relative_url = $row[$key];
                }
                $db->sql_freeresult($result);
            }
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7898
Registriert: 24.05.2010 08:31
Kontaktdaten:

[Gelöst] Interne URLs zu Thementiteln konvertieren

Beitrag von Kirk »

Vielen Dank Miriam funktioniert perfekt. :)
Tolles Snippet!
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: [Gelöst] Interne URLs zu Thementiteln konvertieren

Beitrag von Miriam »

Danke. :grin:
Schön, daß es Dir gefällt.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: [Gelöst] Interne URLs zu Thementiteln konvertieren

Beitrag von BNa »

Hab noch das gefunden.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: [Gelöst] Interne URLs zu Thementiteln konvertieren

Beitrag von Miriam »

Und auch hier -> Klick

Yay for data redundancies. :lol:
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
PatrickS3
Mitglied
Beiträge: 401
Registriert: 26.10.2010 11:45
Kontaktdaten:

Re: [Gelöst] Interne URLs zu Thementiteln konvertieren

Beitrag von PatrickS3 »

Hallo Miriam,
danke für das Snippet. So etwas suche ich schon länger und hatte auch das von BNa verlinkte gefunden:
BNa hat geschrieben:Hab noch das gefunden.
Nur wird das leider nicht mehr weiter entwickelt und Dein Snippet scheint sogar von den Änderungen her weniger Arbeit zu sein.

Danke.


Gruss Patrick
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7898
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [Gelöst] Interne URLs zu Thementiteln konvertieren

Beitrag von Kirk »

Was mir noch an Miriams Snippet aufgefallen ist:
Wenn ich einen Link zu einem Beitrag erstelle und auf Vorschau klicke, bekomm ich immer die Anzeige
Diese Webseite kann nicht angezeigt werden
bau das Snippet wieder aus funktioniert die Vorschau wieder.
Antworten

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