[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Artikel-ID auslesen, aber... - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Torben
Beiträge: 17
Registriert: 10. Nov 2011, 11:29
Kontaktdaten: Website

Artikel-ID auslesen, aber...

6. Feb 2013, 14:21

Hallo!
Artikel-IDs auslesen ist ja (eigentlich) nicht schwer, doch hier mein Problem:

Ich habe ein Modul gebaut, was dem Kunden ermöglichen soll, sich seine Navigation manuell zusammenzustellen (über REX_LINKLIST_BUTTON[]). Das Modul kann über den Artikel "Hauptnavi" editiert werden. Das Standard-Template ruft dann diesen Artikel über REX_ARTICLE[id] auf. Bis hierhin keine Probleme.
Wie kann ich mit diesem Modul aber die Artikel-ID auslesen, des Artikels, der das Standard-Template benutzt?

Wenn ich Folgendes benutze:

Code: Alles auswählen

$current = $this->getValue('article_id'); 
...bekomme ich natürlich nur die ID des "Hauptnavi"-Artikels. Ich brauche aber die ID, die auch in der Adresszeile des Browser steht.

Ich hoffe, das ich mein Problem einigermaßen beschreiben konnte und freue mich über Hinweise und Hilfe.
Danke und Grüße,
Torben

Benutzeravatar
runstop64
Beiträge: 369
Registriert: 23. Okt 2012, 21:34
Wohnort: Hamburg
Kontaktdaten: Website Facebook Twitter

Re: Artikel-ID auslesen, aber...

6. Feb 2013, 15:57

Hi,

die Daten in der Adresszeile kannst du per

Code: Alles auswählen

rex_request ($varname, $vartype, $default);

auslesen.

In Deinem fall wäre das etwas wie

Code: Alles auswählen

rex_request ('article_id', 'int', $default);

Mit $default kannst du optional einen Wert übergeben, der genutzt wird, wenn keine Variable in der Adresszeile angegeben ist.

Ansonsten gibts auch die Möglichkeit, dass der aufrufende Artikel seine ID über $REX oder $_SESSION übergibt.

Viele Grüße,
Daniel
Viele Grüße,
Daniel


studio-ahoi.de | Referenzen | Friends Of REDAXO

Torben
Beiträge: 17
Registriert: 10. Nov 2011, 11:29
Kontaktdaten: Website

Re: Artikel-ID auslesen, aber...

6. Feb 2013, 16:15

Hey Daniel - Danke ersteinmal für Deine Antwort!

Eigentlich wollte ich vermeiden, die URL auszulesen. Hatte die Hoffnung, dass man den "aufrufenden" Artikel direkt "ansprechen" kann, damit er seine ID rausrückt...
Oder hab ich Dich falsch verstanden?

Torben

Benutzeravatar
runstop64
Beiträge: 369
Registriert: 23. Okt 2012, 21:34
Wohnort: Hamburg
Kontaktdaten: Website Facebook Twitter

Re: Artikel-ID auslesen, aber...

6. Feb 2013, 18:56

Hi Torben,

wenn Du weißt, dass dor die passenden Daten vorhanden sind, finde ich dass den einfachsten Weg. Du kommst auch immer noch an die Informationen, wenn die URL mit rexSEO oder realURL umgeschrieben wurde.
Soweit ich weiß bietet Redaxo von Haus aus keine Möglichkeit, festzustellen, von wo ein Artikel aufgerufen wurde.
Ansonsten nutze ich das $REX-Array, um Daten zwischen Artikeln/Modulen auszutauschen.
Einfach im aufrudfenden Artikel eine Variable à la

Code: Alles auswählen

$REX['aufrufender_artikel'] = $article_id
definieren. die ist dann wie die übrigen $REX-Daten nach ihrer definition global abrufbar.
Viele Grüße,
Daniel


studio-ahoi.de | Referenzen | Friends Of REDAXO

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: Artikel-ID auslesen, aber...

6. Feb 2013, 21:49

Oder man macht sichs etwas einfacher :wink:
Davon ausgehend, dass es in deinem "Hauptnavi" Artikel nur einen Slice gibt und du den REX_LINKLIST_BUTTON[1] benutzt, schmeiss einfach folgenden Code in dein Template:

Code: Alles auswählen

$slice = OOArticleSlice::getFirstSliceForArticle($navartikelid);
if (is_object($slice))
{
    $linklists = $slice->getValue('linklists');
    if ('' != $linklists[0])
    {
        echo '<ul>';
        foreach (explode(',', $linklists[0]) as $id)
        {
            $article = OOArticle::getArticleById($id);
            if ($id == REX_ARTICLE_ID)
            {
                echo '<li class="current"><a href="'.rex_getUrl($id).'">'.$article->getName().'</a></li>';
            }
            else
            {
                echo '<li><a href="'.rex_getUrl($id).'">'.$article->getName().'</a></li>';
            }
        }
        echo '</ul>';
    }
}
$navartikelid musst du durch die id deines "Hauptnavi" Artikels ersetzen.

PS: Man sollte nach Möglichkeit nicht einfach alles in $REX reinknallen...

Torben
Beiträge: 17
Registriert: 10. Nov 2011, 11:29
Kontaktdaten: Website

Re: Artikel-ID auslesen, aber...

6. Feb 2013, 22:31

Ingo - vielen Dank, das war`s!
So mach ich das jetzt.

Ich bedanke mich sehr - auch bei Daniel - habt mir sehr geholfen!
Beste Grüße von Torben

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: Artikel-ID auslesen, aber...

9. Feb 2013, 22:37

Hej,

du willst in deinem Modul die aktuelle Id haben?

Verwende

Code: Alles auswählen

$REX['ARTICLE_ID']
in deinem Modul.

Die Variante von Ingo mit der Slicesabfrage erstelle immer ein Sql-Query. Das sollte man wissen, wenn man mit OOArticleSlice arbeitet.

vg Thomas

Zurück zu „Allgemeines [R4]“