Drupal 7 fieldset anlegen
Eingetragen von gording (36)
am 11.01.2011 - 08:16 Uhr in
am 11.01.2011 - 08:16 Uhr in
Hallo alle zusammen,
ich versuche jetzt schon eine ganze Zeit ein auf- und zuklappbares fielset in D7 zu erstellen. In D6 habe ich es immer von Hand gemacht
durpal_add_js("misc/collaps.js");
<fieldset class="collapible">
<legend>irgend ein titel</legend>
<div>
irgend ein Content
</div>
</fieldset>
das hat immer gut funktioniert. In D7 wird das fielset auch richtig angelegt aber es besitzt kein funktionalität, sprich das collaps.js wird nicht angesprochen um die entsprechenden Klassen für collapsed zu setzen oder heraus zu nehem.
Gibt es hier in D7 eine entsprechende Lösung
Vielen Dank schon jetzt für jede Hilfe
Gruß Georg
- Anmelden oder Registrieren um Kommentare zu schreiben
fieldset
am 11.01.2011 - 08:51 Uhr
Hallo.
Warum verwendest Du nicht einfach die FormAPI, um das Fieldset zu erstellen? Das geht wesentlich einfacher.
<?php
$form['fieldset'] = array(
'#type' => 'fieldset',
'#title' => t('Fieldset title'),
'#description' => t('Fieldset description.'),
'#collapsible' => TRUE,
);
$form['fieldset']['content'] = array(
'#value' => t('Fieldset content');
);
print render($form);
?>
Manuell wäre es so zu machen:
<?php drupal_add_js('misc/collapse.js'); ?>
<fieldset id="fieldset-id" class="collapsible">
<legend><span class="fieldset-legend">Fieldset title</span></legend>
<div class="fieldset-wrapper">
<div class="fieldset-description">Fieldset description</div>
Fieldset content
</div>
</fieldset>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke für ...
am 11.01.2011 - 09:42 Uhr
Hallo Stefan,
danke für deine super schnelle Antwort.
Ich habe beie Varianten ausprobiert.
In der Variante 1 mit der Form API wird folgender html Code erzeugt
<fieldset class="form-wrapper">
<legend><span class="fieldset-legend">Fieldset title</span></legend>
<div class="fieldset-wrapper">
<div class="fieldset-description">Fieldset description.</div>
</div>
</fieldset>
in der zweiten Variante
<fieldset class="collapsible collapse-processed" id="fieldset-id">
<legend><span class="fieldset-legend">Fieldset title</span></legend>
<div class="fieldset-wrapper">
<div class="fieldset-description">Fieldset description</div>
Fieldset content
</div>
</fieldset>
Leider habe beide Versionen keine funktionalität. In der zweiten Variante wird zudem das Adminmenü nicht mehr angezeigt und es kommt zu folgendem Fehler in der collaps.js
$fieldset.drupalGetSummary is not a function
var text = $.trim($fieldset.drupalGetSummary());
evt. Hast du ja noch eine Idee was ich hier falsch mache. daneben werde ich versuchen ein frische Installation aufzusetzen und es dort zu versuchen ohne Admin menü evt. liegt es ja auch daran ?
LG
Georg
fieldset
am 11.01.2011 - 09:56 Uhr
Also ich habs jetzt auch mal getestet (frisches D7.0):
node/add/story mit Eingabeformat "PHP":
Fieldset Test
<?php drupal_add_js('misc/collapse.js'); ?>
<fieldset id="fieldset-id" class="collapsible">
<legend><span class="fieldset-legend">Fieldset title</span></legend>
<div class="fieldset-wrapper">
<div class="fieldset-description">Fieldset description</div>
Fieldset content
</div>
</fieldset>
Ergebnis: ein Fieldset, das sich auch wunderbar zusammenfalten lässt.
http://screencast.com/t/CiaGraeZ
http://screencast.com/t/Nx06nXCW
<fieldset class="collapsible collapse-processed" id="fieldset-id">
<legend><span class="fieldset-legend"><a href="#" class="fieldset-title"><span class="fieldset-legend-prefix element-invisible">Hide</span> Fieldset title</a><span class="summary"></span></span></legend>
<div class="fieldset-wrapper">
<div class="fieldset-description">Fieldset description</div>
Fieldset content
</div>
</fieldset>
Irgendwie scheint bei Dir etwas zu fehlen und die collapse.js einen Schluckauf zu haben.
Stefan
.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
fieldset
am 11.01.2011 - 10:15 Uhr
Hallo Stefan,
ich habe jetzt eine ganz frische installation von D7 installiert und zuvor von drupalcenter heruntergeladen. Dann habe ich deinen code in einer neuen Seite eingefügt und auch das Eingabeformat auf php umgestellt.
das fieldset wird auch erstellt leider erneut ohne funktionalität.
dafür erhalte ich wieder den javascript fehler
$fieldset.drupalGetSummary is not a function
var text = $.trim($fieldset.drupalGetSummary());
sehr komisch das ganze
Georg
Ich werde noch
am 11.01.2011 - 13:04 Uhr
Hallo Stefan,
ich werde noch verrückt. jetzt habe ich die Installationsdateien noch einmal von drupal.org heruntergeladen und eine minimale Installation durchgeführt.
Einen Content type hinzugefügt, den php Filter eingeschaltet, eine neue Seite erstellt und deinen code eingefügt und es kommt immer noch der gleiche Javascript-Fehler.
Das selbe habe ich noch einmal auf einem Liveserver gemacht immer noch der selbe fehler
Ich weiß nicht mehr weiter :-(
Georg
Die Lösung ist mal wieder ganz einfach ...
am 11.01.2011 - 13:49 Uhr
... nach langem Suchen habe ich einmal die misc/form.js eingebunden mit drupal_add_js und schon wird mein fiedset auf und zu geklappt.
mein code sieht nun so aus
drupal_add_js('misc/form.js');
drupal_add_js('misc/collapse.js');
<fieldset id='fieldset-id' class='collapsible'>
<legend><span class='fieldset-legend'>Fieldset title</span></legend>
<div class='fieldset-wrapper'>
<div class='fieldset-description'>Fieldset description</div>
Fieldset content
</div>
</fieldset>
es wäre schön wenn hier noch jemad ein beispiel für die API geben könnte wie sie in drupal.org angführt wird.
Vielen Dank noch einmal an Stefan für die schnelle Hilfe