Fieldset jogosultság

csakiistvan képe

Sziasztok,

Szeretném megoldani hogy az összes hozzászólás összezárható legyen. Ez megy is, megkapta a fieldsetet, de csak akkor működik ha be vagyok jelentkezve, kijelentkezve nem látszik. Mi ennek az oka, és hogyan tudom ezt elérhetővé tenni az Anonymus látogatóknak is?

Előre is köszi
Üdv
I.

Drupal verzió: 
Fórum: 
aboros képe

"működik", ok de mit csináltál, azt kéne tudni és akkor könnyebb lenne megmondani miért nem működik amikor anonymus nézi.

0
0

-
clear: both;

csakiistvan képe

a comment-wrapper.tpl.php -t átmásoltam a saját sminkem könyvtárába, és módosítottam benne, a következőt:
eredeti:

<div id="comments">
  <?php print $content; ?>
</div>

Módosított:

<fieldset class="kommentek collapsible"><legend>Eddig <?php print $node->comment_count ?> hozzászólás érkezett</legend-->
	<div id="comments">
	  <?php print $content; ?>
	</div>
</fieldset>
0
0

Drupal full-stack developer at Wunderman Thompson Budapest

pp képe

gyorstár ürítés megvolt?

0
0
szantog képe

Ez a megoldás több sebből vérzik, tegnap hosszukalmannal volt érdekes vitánk róla. (Szerintem csak egyből, de akkor már beszéljük meg)

1. hosszukalman szerint form elemet nem illik nem formban használni. Ami végülis jogos, hiszen html definíció szerint ez form elem. Arról, hogy ez szemantikailag befolyásol-e valamit, nem találtam semmi értelmeset. Én is csináltam már olyat, hogy fórum kezdő hozzászólását fieldsetbe raktam, nice feature olyan chat-fórumoknál, amikor már közel sem az első hszről megy a traccsparti.
Pár dolog szól amelett, hogy ez elfogadott dolog lehet, az egyik pl az, hogy valid a html kód. A másik, hogy több olyan modul van, ami form nélkül épít fieldset html kimenetet (collapsible_text, szerintem a dhtml_menu is), és nem nagyon volt miatta reklamáció. Továbbá eléggé alapigény, hogy bármilyen szöveget tudjak csikicsukiba tenni, erre viszont évek alatt nem született a drupalon belül a theme_fieldsetnél jobb megoldás.

2. Ez viszont már artériás vérzés: a csikicsukit nem hányjuk csak úgy direkt html-be. Emiatt nem is működik, csak bejelentkezetteknek, nyilván van valami form elem, netán egy dhtml menu, ami miatt a bejelentkezetteknek megvan szépen a js-ük, ami anonimnak nem töltődik be. Szóval megfelelő preprocessbe theme_fieldset($element), ahol az $element['#value'] a $vars['comments'], és menni fog, tpl-t ez esetben nem kell bántani. (hogy most melyik preprocessben érhető el a $vars['comments'], azt hirtelen nem tudom, de devel_themer megmondja.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

hosszu.kalman képe

Így van. Tehát ha már mindenképpen fieldset-et akarsz használni, akkor vagy a preprocess_comment_wrapper()-ba teszed bele a theme_fieldset()-et, vagy maradhatunk a comment-wrapper.tpl.php-s megoldásnál is, csak akkor valami ilyesmi a kód:

$element = array(
  '#collapsible' => TRUE,
  '#title' => t('Comments'),
  '#value' => '<div id="comments">' . $content . '</div>',
);
 
echo theme('fieldset', $element);

A probléma ott lesz szerintem, hogy a js-t nem hívja be csak amikor be vagy jelentkezve. Gondolom bejelentkezve admin-ként vagy, ami miatt valahol ez a lehetőség megjelenik, kijelentkezve viszont nem tölti be feleslegesen. Ha megnézzük a theme_fieldset() kódját, láthatjuk hogy figyeli létezik-e a #collapsible kulcs és ha igen, akkor betölti a megfelelő javascript fájlt is.

0
0
csakiistvan képe

Kálmán, Gábor köszi szépen. Megnézem hogyan tudnám szebben kivitelezni ezt, de legalábbis kevésbé. Kálmán köszönöm a kódot, kipróbálom.

Üdv
I.

0
0

Drupal full-stack developer at Wunderman Thompson Budapest