Wert eines Taxonomyfeldes mit Autovervollständigung mit computed field auslesen

am 27.05.2014 - 17:17 Uhr in
Hallo liebe Drupancenter Gemeinde
Ursprüngliches Problem:
Ich möchte eine Tabelle nach Taxonomy-Begriffen (Drehtage) sortieren lasen, ihr Titel ist eine Nummer.
Diese wird aber als Text interpretiert und daher in der Tabelle falsch sortiert.
Es ist aber notwendig das der Drehtag ein Taxonomy-Begriff ist weil er eine Datum, eine start Zeit und end Zeit haben soll und im laufe der Bildeingabe neben bei erstellt wird.
Ich wollte das Problem mit dem Modul computed field lösen, in dem ich mir den Wert aus dem Taxonomy Felde Drehtag der einen Nummer ist auslese, in einen Zahl (int) umwandle und dann dieses Feld zum sortieren nehme.
$value = $entity->field_drehtag[LANGUAGE_NONE][0][value];
$value = (int)$value;
$entity_field[0]['value'] = $value;
Dieser Code funktioniert mit Textfeldern aber leider nicht mit Taxonomy Feldern.
Hatjemand eine Ahnung wie man einen der Beiden Probleme lösen kann?
Danke
- Anmelden oder Registrieren um Kommentare zu schreiben
Das liegt daran, daß das
am 27.05.2014 - 17:36 Uhr
Das liegt daran, daß das Taxonomie-Feld eine Referenz auf den Taxonomie-Begriff ist. Darin befindet sich also die TID (Term-ID) des Taxonomiebegriffes und nicht der Begriff sebst. Da die TID aber ein numerischer Wert ist funktioniert Dein Konstrukt. Du brauchst dazu die Funktion taxonomy_term_load($tid) um über die TID das Term-Objekt zu laden also so etwa
<?php
$term= taxonomy_term_load($entity->field_drehtag[LANGUAGE_NONE][0][value]);
$value = (int)$term->name;
?>
Danke für deinen Beitrag doch...
am 28.05.2014 - 08:56 Uhr
Danke für deinen Beitrag doch scheint die function taxonomy_term_load in dieser Situation nicht zu funktionieren.
habe folgendes ausprobiert:
$term= taxonomy_term_load($entity->field_drehtag[LANGUAGE_NONE][0][value]);
$value = (int)$term->name;
$entity_field[0]['value'] = $value;
gibt 0 zurück.
Mit einer existierenden id
$id = 403;
$term= taxonomy_term_load($id);
$value = (int)$term->name;
$entity_field[0]['value'] = $value;
gibt 0 zurück.
Wenn ich einfach nur den wert des Feldes sehen will bleibt es lehr, habe es auch zu testen auf varchar umgestellt.
$value = $entity->field_drehtag[LANGUAGE_NONE][0][value];
$entity_field[0]['value'] = $value;
hier müsste doch die id raus kommen.
Das ist der betreffende ausschied aus dem Formular, ich brauche eigentlich dieses value " value="5" " um es dann in ein Feld als Zahl zu Schreiben.
<label for="edit-field-drehtag-und">Drehtag</label>
<input type="text" id="edit-field-drehtag-und" name="field_drehtag[und]" value="5" size="60" maxlength="1024" class="form-text form-autocomplete" autocomplete="OFF" aria-autocomplete="list"/>
<input type="hidden" id="edit-field-drehtag-und-autocomplete" value="http://localhost/iwood-requiem/page/taxonomy/autocomplete/field_drehtag" disabled="disabled" class="autocomplete autocomplete-processed"/>