Page 1 of 1
[CompanyDirectory] Custom Fields auslesen
Posted: Fri Mar 19, 2010 8:36 am
by nicmare
Ich mal wieder...
Habe mal ne Frage zu den Custom Fields, die man hier (wie bei fast allen Modulen von CMSMS) anlegen kann.
Die werden im Template hiermit ausgelesen:
Code: Select all
{if $customfieldscount gt 0}
{foreach from=$customfields item=customfield}
{if $customfield->value ne ''}{$customfield->name}: {$customfield->value}{/if}
{/foreach}
{/if}
Meine Frage:
Kann man die Felder irgendwie "manuell" auslesen? Die Namen entsprechen ja denen aus dem Backend (logischerweise). Hintergrund:
Im Backend heißen die Felder "Feld1" bis "Feld5". Und im Frontend will ich aber individuelle Namen vergeben. Aktuell ist es so dass ich 20 Felder angelegt habe, aber nicht jedes für jede Firma brauche. Deswegen ist das ganze Backend total unübersichtlich weil die Felderliste so lang ist. Und das will ich eben mit Feld1-Feld5 kürzen und im Frontend selber bezeichnen.
Re: [CompanyDirectory] Custom Fields auslesen
Posted: Fri Mar 19, 2010 11:57 am
by nicmare
ich glaube das thema ist im smarty unterforum besser aufgehoben oder? Zur Verdeutlichung mal ein Beispiel was natürlich nicht funktioniert:
Code: Select all
{if $entry->customfieldscount gt 0}
Wert1: {$fdid(1)->value}
Wert2: {$fdid(2)->value}
{/if}
Also dass man im Grunde die ID Abfragt
im backend ist das custom field als textarea angelegt:
Aber das hilft mir vermutlich auch nciht weiter?!
Re: [CompanyDirectory] Custom Fields auslesen
Posted: Fri Mar 19, 2010 12:20 pm
by nicmare
so ok, ich habe grad mal ne erste lösung, wenn auch primitiv:
Code: Select all
{if $entry->customfieldscount gt 0}
{foreach from=$entry->customfields item=customfield}
{if $customfield->id == '10'}
Bezeichnung: {$customfield->value}
{/if}
{/foreach}
{/if}
wenn des noch eleganter geht, lasst es mich wissen

denn jetzt packe ich einfach 10 if schleifen hintereinander. etwas *primitiv* und man kann nicht die reihenfolge der felder festlegen
Re: [CompanyDirectory] Custom Fields auslesen
Posted: Fri Mar 19, 2010 2:44 pm
by nockenfell
Hast du die Möglichkeit mit einem Code in der Richtung
Code: Select all
$entry->customfields.customfield->value
darauf zuzugreifen? Siehe
http://forum.cmsmadesimple.org/index.php/topic,40631.0.html
Wenn das Array ähnlich strukturiert ist, könne es so gehen.
Re: [CompanyDirectory] Custom Fields auslesen
Posted: Fri Mar 19, 2010 2:59 pm
by nicmare
hey, auf deinen thread durch meine suchaktionen bin ich auch schon gestoßen

.
aber wie soll das gehen? ich hab ja die id von jedem fall und muss die da irgendwie benutzen. in meinem fall bisher bei 10 felden mit 10 if schleifen die prüfen ob id x dran ist
Re: [CompanyDirectory] Custom Fields auslesen
Posted: Fri Mar 19, 2010 3:01 pm
by nockenfell
Kannst du mal ein print_r des Array posten? Dann kann ich mir besser vorstellen was für Daten vorhanden sind.
Re: [CompanyDirectory] Custom Fields auslesen
Posted: Fri Mar 19, 2010 3:13 pm
by nicmare
Also im Grunde funzt ja alles wie es soll. Problematisch ist an meiner Methode nur, dass man die Felder nicht sortieren kann. Der sortiert sie gemäß der Reihenfolge der IDs. jedenfalls ergibt {$entry->customfields|print_r}:
Code: Select all
stdClass Object ( [type] => textarea [id] => 40 [name] => Text6 [value] => ) stdClass Object ( [type] => dropdown [id] => 39 [name] => Rating6 [value] => 3 ) stdClass Object ( [type] => textarea [id] => 37 [name] => Text5 [value] =>
Fließtext
) stdClass Object ( [type] => dropdown [id] => 36 [name] => Rating5 [value] => 5 ) stdClass Object ( [type] => textarea [id] => 35 [name] => Text4 [value] =>
Fließtext
) stdClass Object ( [type] => dropdown [id] => 34 [name] => Rating4 [value] => 0 ) stdClass Object ( [type] => textarea [id] => 33 [name] => Text3 [value] =>
Fließtext
) stdClass Object ( [type] => dropdown [id] => 32 [name] => Rating3 [value] => 4 ) stdClass Object ( [type] => textarea [id] => 31 [name] => Text2 [value] =>
Fließtext
) stdClass Object ( [type] => dropdown [id] => 30 [name] => Rating2 [value] => 3 ) stdClass Object ( [type] => textarea [id] => 29 [name] => Text1 [value] =>
Fließtext
) stdClass Object ( [type] => dropdown [id] => 28 [name] => Rating1 [value] => 4 ) stdClass Object ( [type] => dropdown [id] => 27 [name] => Gesamteindruck [value] => 5 ) Array