[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Abfrage ob REX_LINK_ID belegt
Seite 1 von 1

Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 10:41
von flow013
Hallo Forum,

gibt es eine Möglichkeit abzufragen, ob im REX_LINK_BUTTON etwas ausgewählt worden ist, um die Fehlermeldung zu umgehen, wenn dieser leer gelassen wurde? Ich nutze REX SEO.

Dies funktioniert leider nicht:
<?php if ("REX_LINK_ID[6]" != "") { ?>

Danke im Voraus!

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 10:49
von Jan.Kristinus
ich glaube so gehts

Code: Alles auswählen

if (REX_LINK_ID[6] != 0) 
lg

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 13:36
von jasmine12
Ich habe unter das letzte Feld, was bei Dir einem div entsprechen würde ein + gesetzt und bei klick darauf wurde per Javascript ein neues input-Feld darunter generiert. Wäre das so ungefähr das, was Du brauchst, dann such ich das mal raus.

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 14:28
von flow013
Hi Jan, danke für die schnelle Antwort.
Leider löst das das Problem noch nicht.

Die Fehlermeldung lautet:
Parse error: syntax error, unexpected T_IS_NOT_EQUAL

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 14:46
von RexDude
REX_LINK_ID[x] ist leer wenn nicht ausgewählt. Ein kurzer Test zeigt, dass das geht:

Code: Alles auswählen

<?php if ("REX_LINK_ID[6]" != "") { ?>
Da du das oben schon probiert hast, musst du wohl irgendwo anders einen (Denk-)-Fehler haben vermute ich mal :)

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 15:18
von flow013
Stimmt, Danke für den Hinweis, ich habe das gerade auch getestet.
Es gibt wohl ein Problem, sobald die Ausgabe aus dem "Minibeispiel Link" aus den Modulvorlagen hinzukommt:

<?php if ("REX_LINK_ID[1]" != "") { ?>
<?php echo '<a href="'.rex_getUrl(REX_LINK_ID[1], $REX["CUR_CLANG"]).'">Mein Link</a>'; ?>
<?php } ?>

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 15:23
von RexDude
Es gibt wohl ein Problem..
Gehts etwas genauer oder erwartest du keine weitere Hilfestellung mehr? ;)

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 15:33
von flow013
Gibt man das Minibeispiel Link aus, ohne einen Link gewählt zu haben, erscheint die Fehlermeldung:
Parse error: syntax error, unexpected ',', expecting ')'

Auch die if-Abfrage, ob die Link-ID belegt ist, ändert daran nichts.

Dieser Fehler legt die komplette Seite lahm, leider kann ich den Fehler nicht finden.

Danke für die Hilfe!

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 16:52
von runstop64
Hi, das Problem ist, dass die Rex-Variable technisch nur ein Platzhalter ist, der im Code nur ersetzt wird. Wenn sie leer ist, stimmt natürlich die PHP-Syntax nicht mehr und es entsteht ein entsprechender Fehler, auch wenn der Code-Teil nicht durchlaufen wird. Am einfachsten umgehst du das Problem, indem du die Rex-Variable erst einmal einer echten PHP-Variable zuweist. Mit der kannst Du die Abfragen dann auch ganz normal durchführen und die Syntax stimmt immer.

Code: Alles auswählen

<?php
$link_id = REX_LINK_ID[1];

if ($link_id) {
    echo '<a href="'.rex_getUrl($link_id, $REX["CUR_CLANG"]).'">Mein Link</a>';
} 
?>

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 25. Sep 2014, 17:00
von runstop64
Ansonsten gibt's auch noch eine Menge Manipulationsmöglichkeiten über die Redaxo-Schreibweise:
http://www.redaxo.org/de/doku/tutorials ... variablen/

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 26. Sep 2014, 12:42
von flow013
Hi Daniel!
Dickes Danke für Deine Erläuterung und das Codebeispiel!
Hab einiges dazugelernt!

VG FLOW

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 26. Sep 2014, 13:14
von flow013
Nachtrag dazu.
REX_LINK_ID muss in "" stehen bei der Variablen-Zuweisung!
Dann läuft es.

Code: Alles auswählen

<?php
$link_id = "REX_LINK_ID[1]";

if ($link_id) {
    echo '<a href="'.rex_getUrl($link_id, $REX["CUR_CLANG"]).'">Mein Link</a>';
} 
?>

Re: Abfrage ob REX_LINK_ID belegt

Verfasst: 10. Okt 2014, 09:13
von Thomas.Blum
Hej,

als Nachtrag. Es geht auch kürzer

Code: Alles auswählen

<?php
if ('' != 'REX_LINK[1]') {
    echo '<a href="REX_LINK[1]">Mein Link</a>';
} 
?>
oder gänzlich anders

Code: Alles auswählen

REX_LINK[id='1' prefix='<a href="' suffix='">']REX_VALUE[1]REX_LINK[id='1' instead='</a>']
vg Thomas