Seite 1 von 5

[Gelöst] Interne URLs zu Thementiteln konvertieren

Verfasst: 09.10.2012 14:14
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?

Re: Interne URLs zu Thementiteln konvertieren

Verfasst: 09.10.2012 15:02
von Miriam
Wie sieht denn der Link genau aus? Also die URL Parameter.

Re: Interne URLs zu Thementiteln konvertieren

Verfasst: 09.10.2012 15:11
von Kirk
Der Link sieht so aus http://www.quad-atv-freunde-wunsiedel.de/index.php

Re: Interne URLs zu Thementiteln konvertieren

Verfasst: 09.10.2012 15:40
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);
            }

[Gelöst] Interne URLs zu Thementiteln konvertieren

Verfasst: 09.10.2012 17:18
von Kirk
Vielen Dank Miriam funktioniert perfekt. :)
Tolles Snippet!

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

Verfasst: 09.10.2012 17:28
von Miriam
Danke. :grin:
Schön, daß es Dir gefällt.

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

Verfasst: 09.10.2012 20:56
von BNa
Hab noch das gefunden.

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

Verfasst: 09.10.2012 22:32
von Miriam
Und auch hier -> Klick

Yay for data redundancies. :lol:

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

Verfasst: 10.10.2012 07:14
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

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

Verfasst: 10.10.2012 17:53
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.