[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Überprüfen, ob ein Artilel (bestimmter ctype) "leer&quo - 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/
string2000
Beiträge: 12
Registriert: 31. Okt 2006, 11:43
Wohnort: Würzburg

Überprüfen, ob ein Artilel (bestimmter ctype) "leer&quo

2. Apr 2010, 00:12

Hallo Leute,

ich habe jetzt sundenlang damit gekämpft, daß eine mail-funktion (phpmailer) in einem Modul immer 2x ausgeführt wurde. Nach langem suchen habe ich den Fehler gefunden.

Ich werte im meinem Template aus ob in der Sidebar (hier ctype=2) Content ist oder nicht. Das habe ich ganz quick'n dirty so gemacht:

Code: Alles auswählen

<?php
if ( $this->getArticle(2) != "") {
?>

[hier irgend ein HTML-Code]

REX_ARTICLE[ctype=2]

[hier irgend ein HTML-Code]

<?php
}
?>
Jetzt wird offensichtlich mit $this->getArticle(2) der code - zumindest die Mailfunktion - schon ausgeführt. Ich will aber nur wissen, obes da irgendwelche slices für ctype=2 gibt. Also ob das "irgendwasdrinnen ist"...

Das ist zwar nicht schön, und normalerweise versuche ich Logik aus den Templates rauszuhalten, aber es geht hier einfach um eine schnelle und unkomplizierte Lösung - nunja, komplizierter als ich dachte ist es nun schon...

Kann mir jemand helfen?
Wie bekomme ich an die Info [$this->getArticle(2) != ""] ohne den Code auszufüren?

Danke schon mal ;-)

österliche Grüße,
Alex

zehbaeh
Beiträge: 556
Registriert: 17. Okt 2006, 11:52
Wohnort: Solingen

2. Apr 2010, 09:03

Die Methode "getFirstSliceForCtype" der Klasse "OOArticleSlice" könnte Dir helfen. Diese sollte NULL zurückgeben wenn kein Slice/Block in der abgefragten Spalte (cType) vorhandenen ist.

Benutzeravatar
timo.huber
Beiträge: 305
Registriert: 22. Dez 2009, 13:26

2. Apr 2010, 15:00

Hi,

du kannst einfach $this->getArticle(2) in einer Variablen speichern.
Dannach prüfst du die Variable auf einen Inhalt, bzw. gibst die Variable aus.
Somit wird alles darin nur 1 mal ausgeführt (aber eben mindestens 1 mal).

mfg
$glaskugel = new rex_glaskugel();
$loesung = $glaskugel->getLoesung("problem");
foreach ($loesung as $l)
{
echo $l;
}

string2000
Beiträge: 12
Registriert: 31. Okt 2006, 11:43
Wohnort: Würzburg

5. Apr 2010, 21:58

Danke!

der Vorschlag von timo.huber besticht durch seine Einfachheit :-) ich ärgere mich sogar, daß ich nicht selbst draufgekommen bin.

"getFirstSliceForCtype" habe ich garnicht mehr ausprobiert - hätte aber sicher auch funktioniert ;-)

Danke,
Alex

Zurück zu „Allgemeines [R4]“