Fieldgroup
am 07.10.2011 - 15:45 Uhr in
Hallo
ich habe mal wieder begonnen ein Modul zu entwickeln. Das Anlegen der Content Types funktioniert schon hervorragend. Leider habe ich gelesen, dass es mit den über das UI einzurichtenden "Fieldset" nicht so einfach geht. Nun habe ich in einem Artikel gelesen, dass es natürlich auch möglich ist diese direkt in der Datenbank anzulegen. Ich habe zunächst mal die Blob Objekte sichtbar gemacht. Kann mir jemand mal die Struktur der Daten erklären bzw. einen Link in dem dieses irgendwie beschrieben ist.
a:5:{s:5:"label";s:6:"Group1";s:6:"weight";s:2:"10";s:8:"children";a:1:{i:0;s:25:"club_one_person_last_name";}s:11:"format_type";s:8:"fieldset";s:15:"format_settings";a:2:{s:9:"formatter";s:11:"collapsible";s:17:"instance_settings";a:2:{s:7:"classes";s:0:"";s:15:"required_fields";i:1;}}}
Danke
Joachim
- Anmelden oder Registrieren um Kommentare zu schreiben

Lass doch mal ein unserialize
am 07.10.2011 - 16:47 Uhr
Lass doch mal ein unserialize darauf los (das ist eine php-Funktion).
Beste Grüße
Werner
Features
am 08.10.2011 - 11:02 Uhr
Hallo.
... Nun habe ich in einem Artikel gelesen, dass es natürlich auch möglich ist diese direkt in der Datenbank anzulegen. ...
Wer schreibt soetwas nur immer wieder?
Lege Deinen Inhaltstypen ganz normal per Hand in einer Testinstallation an und verwende dann das Modul [do:features Features], um den Inhaltstypen und alle dazugehörigen und von Dir gewünschten zusätzlichen Einstellungen in ein Modul zu exportieren. Dieses Modul kannst Du dann beliebig erweitern (so wie "normale" Module auch).
Danke für die
am 09.10.2011 - 21:32 Uhr
Danke für die Antworten.
Dennoch mal eine Nachfrage. Obwohl ich wirklich keine wirkliche Ahnung habe von Softwareentwicklung, habe ich das Gefühl, dass sich durch die Entwicklung ohne Features das ganze besser strukturieren lässt. So kann ich die einzelnen Komponenten besser abgrenzen. Mit dem Features erhalte ich einen "Block" von Code, anstelle einzelne logische Komponenten.
Ein weiteres Beispiel. Ich habe einen Content Type Person. Das Feld Titel macht ja nicht wirklich Sinn in diesem Zusammenhang. Wenn ich den Titel in "Fullname" umbennene, dann habe ich das Problem, dass der Nachname und Vorname nicht sauber getrennt sind. Verstecke ich allerdings den Titel (Eigenschaft: has_title), dann kann ich die Felder Nachname und Vorname füllen lassen und den vollständigen Namen per Code in den Titel übernehmen. Dieses ist soweit ich verstehe über das normale UI nicht möglich.
Naja ich experimentiere mal weiter. Die nächste Frage kommt bestimmt.
Joachim
Features
am 09.10.2011 - 21:44 Uhr
Obwohl ich wirklich keine wirkliche Ahnung habe von Softwareentwicklung, habe ich das Gefühl, dass sich durch die Entwicklung ohne Features das ganze besser strukturieren lässt.
Das Gefühl täuscht. Sehr sogar.
Mit dem Features erhalte ich einen "Block" von Code, anstelle einzelne logische Komponenten.
Auch hier täuschst Du Dich. Gerade mit Features erhälst Du die Komponenten des Inhaltstyps (oder was auch immer Du exportierst) als klar strukturierte logische Komponenten.
Ein weiteres Beispiel. ...
Verwende [do:auto_nodetitle Automatic Nodetitle] um das Titelfeld auszublenden und mit den Werten aus den dem Inhaltstypen hinzugefügten Feldern "Vorname" und "Nachname" zu füllen und exportiere die Einstellungen von [do:auto_nodetitle Automatic Nodetitle] zusammen mit dem Feature (genau wie alle anderen dafür benötigten Einstellungen auch. z.b Berechtigungen, Imagestyles, ...).
Features
am 09.10.2011 - 22:59 Uhr
Ok
ich frage mal fröhlich weiter. Falls das alles in einem Buch steht, dann schick mir einfach den Link. :-)
Würde das bedeuten, dass ich jeden Content Type als einzelnes Feature exportiere bzw. inhaltlich zusammenhänge CT's als Feature exportieren sollte und nicht alle CT's in ein Feature.
Thanks so far....
Features ...
am 10.10.2011 - 07:22 Uhr
Würde das bedeuten, dass ich jeden Content Type als einzelnes Feature exportiere bzw. inhaltlich zusammenhänge CT's als Feature exportieren sollte
Genau das bedeutet es. So trennst Du logische Gruppen auch gleich auf Modulebene und machst Dir das Leben bei Aktualisierungen der einzelnen Inhaltstypen leichter.
Spätestens wenn Du anfängst, Deine Seiten unter Verwendung einer Versionsverwaltung (git, svn, ...) zu entwickeln, lernst Du Features zu schätzen.
Die Geister die ich rief....
am 10.10.2011 - 16:26 Uhr
Ich muss nochmal nachfragen, aber ich bin ja in der Anfängerkategorie.
Ich habe nun das Modul "Automatic Nodetitles" installiert. Hier ist der Teil, den ich benötige. Schon vor einiger Zeit hatte ich mal nach dem [und] gesucht. Bei einigen steht da de, da es sich ja um den langcode handelt.
[field_co_person_last_name] => Array
(
[und] => Array
(
[0] => Array
(
[value] => l10
[format] =>
[safe_value] => l10
)
)
)
Wenn ich nun folgenden PHP code nehme für den Titel, dann erhalte ich immer Array[und][0][value]
<?phpreturn "Author: $node->field_co_person_last_name[und][0]['value']";
?>
Was ist daran falsch?
field_get_items
am 10.10.2011 - 18:20 Uhr
<?php return "Author: $node->field_co_person_last_name[und][0]['value']"; ?>Was ist daran falsch?
Wenn Du Werte von Objekt-Attributen ("field_co_person_last_name" ist ein Attribut des Objekts
$node) direkt in einem String ausgeben willst, musst Du den variablen Teil in geschweifte Klammern packen (das sollte man der Lesbarkeit halber generell tun):<?php return "Author: {$node->field_co_person_last_name['und'][0]['value']}"; ?>Ansonsten macht PHP Folgendes:
* Gib den String "Author: " aus.
* Konvertiere
$node->field_co_person_last_namein einen String und gib den Rückgabewert der Konvertierung aus ("Array").* Gib den String "[und][0]['value']" aus.
Dazu kommt noch, dass Du
undnicht in (einfache) Anführungszeichen setzt. PHP sucht nun während des Parsens nach einer Konstante namens "und". Wenn diese nicht gefunden werden kann, vermutet PHP, dass Du eigentlich'und'meintest und gibt Dir dies dann auch mittels einer Warnung zur Kenntnis.Wenn Du den Wert sauber abfragen möchtest, verwende besser [api:field_get_items:7]:
<?phpif (($field_items = field_get_items('node', $node, 'field_co_person_last_name')) !== FALSE) {
return "Author: {$field_items[0]['value']}";
}
?>
Somit kommst Du unabhängig von der Sprache des Beitrags an den Wert des Feldes.
Danke
am 10.10.2011 - 18:49 Uhr
Supi. Funktioniert.
Next steps:
1) Werde ich mir dochmal ein PHP Buch kaufen
2) Insbesondere Objekte, Attribute und den Zugriff genauer anschauen
3) Sicherlich bald die nächste Frage stellen.
Gruß