group (oldalrész) megjelenési módjának szabályozása

papa71 képe

Lehet e azt szabályozni és ha igen hogyan, hogy egy adott tartalomtipusnál a group ok nyitott vagy zárt állapotba jelenjenek meg?
Azt szeretném, hogy egy bizonyos tartalomtipus létrehozásakor a csatolmányok feltöltési lehetősége nyitott állapotba kerüljön a felhasználó elé.

Fórum: 
Sweetchuck képe

Amit te "group (oldalrész)"-nek nevezel (egyébként érthetően) azt a Drupalban "fieldset"-nek nevezik.
A drupal.org-on kereséshez inkább a fieldset kulcs szót használd.

Tudomásom szerint (ami nem sok) ilyen célzottan nem tudod smikből változtatni az összecsukható fieldset-ek állapotát.

Viszont modullal ezt könnyedén meg lehet tenni.
Elvileg a hook_form_alter()-t kell macerálni. Első blikkre így csinálnám.
Nincsen tesztelve, kicsit sem.

function modulename_form_alter($form_id, &$form)
{
	$attachments_open = array('nodetype_1', 'nodetype_2', 'nodetype_n');
 
	if($form['#id'] == 'node-form'
		AND $form['#node']->type == 'Az a tartalom típus amit szeretnél'
		/* vagy AND $form['type']['#value'] == 'Az a tartalom típus amit szeretnél' */
		/* vagy AND in_array($form['#node']->type, $attachments_open) */
	)
	{
		$form['attachments']['#collapsed'] = false;
	}
}

Egy adminsztrációs felület biztos jó lenne hozzá.

0
0
Sweetchuck képe

sminkneve_node_form($form)

0
0
aries képe

Inkább egy jquery script kellene rá.

Aries
http://aries.mindworks.hu

0
0
papa71 képe

Ez is érdekes megoldás lenne, de nem találtam hozzá elég információt, sőt a generált oldal forrását megnézve nem is igazán értem, hogyan működne ez, semmilyen scriptre utaló nyomot nem találtam a forrásban.
Miután a smink átírása megoldotta a problémát, nem nyomoztam tovább, de sejtésem szerint az egyes fieldset-tek lenyitását nem scriptből, henem css-ből oldja meg a drupál.

0
0
aries képe

A collapse.js-el oldja meg a lenyílást, nem (csak) css-ből.

Aries
http://aries.mindworks.hu

0
0
papa71 képe

Köszönöm a sminkbe betett:

  if($form['#node']->type == 'sajat_tipus'){
    $form['attachments']['#collapsed'] = false;
  }

megfelelő megoldásnak bizonyult.
0
0