Wie node auf einzelne Terms überprüfen?
Eingetragen von rhodes (631)
am 13.03.2015 - 15:07 Uhr in
am 13.03.2015 - 15:07 Uhr in
Hallo zusammen,
in einem selbst geschriebenen Module gibt es eine Funktion, der eine nid übergeben wird. Die Funktion lädt den node mit node_load und verarbeitet ihn weiter und zwar abhängig von den gesetzten Taxonomy tags (Codeschnipsel siehe unten). Es sind bis zu 10 Tags vergeben, ich soll aber nur nach 5 Schlüsselbegriffen auswählen, also z.B. "Flugzeug", "Fahrrad"
In Worten: wenn eines der Node-Tags "Flugzeug" ist, dann mach was, sonst nicht.
Leider stehe ich gerade auf dem Schlauch und weiss nicht, wie ich das angehen soll. Hat jemand einen Tipp für mich?
Danke & Grüße
rhodes
[field_tags] => Array
(
[und] => Array
(
[0] => Array
(
[tid] => 8
[taxonomy_term] => stdClass Object
(
[tid] => 8
[vid] => 1
[name] => Flugzeug
[description] =>
[format] =>
[weight] => 0
[vocabulary_machine_name] => tags
[metatags] => Array
- Anmelden oder Registrieren um Kommentare zu schreiben
<?phpif($node ->
am 13.03.2015 - 16:10 Uhr
Edit: Denkfehler
was meinst du genau...
am 13.03.2015 - 16:26 Uhr
mit php if?
rhodes schriebmit php
am 13.03.2015 - 17:46 Uhr
mit php if?
Prinzipiell ja:
<?php
if($node->field_tags['und'[0]['tid'] == 8) {
tu was;
}
?>
Wenn im Node jedoch mehrere Tags gesetzt werden können, wirst du das Problem haben, dass die Indizes von $node->field_tags['und'] wahrscheinlich variabel sein werden.
Das heisst, du müsstest die Term- ID's erst mal alle in ein Array schreiben. So z.Bsp.:
<?php
foreach($node->field_tags['und'] as $value) {
$meine_ids[] = $value['tid'];
}
//Dann prüfen, ob das Array die Term- ID Fahrrad enthält
if(in_array(8, $meine_ids)) {
machwas();
}
else {
oder lass es;
}
?>
Ah, wie genial
am 14.03.2015 - 10:15 Uhr
vielen Dank!!
Keine Ursache. Wenn das dein
am 14.03.2015 - 11:06 Uhr
Keine Ursache. Wenn das dein Problem gelöst hat, würde es anderen Leuten sicher helfen, wenn du diesen Thread entsprechend markierst ;)