flexinode, beviteli forma a textarea felett !?

eMeLA képe

Szerbusztok !

A bejelentkezetleneknél, a flexinode-al készített tartalom beküldés oldalán, a beviteli forma a textarea felett látható !? A normál node-oknál (page, story) pedig normálisan alul.

Meg tudná nézni valaki aki használ, flexinode-ot, hogy ez bug, vagy csak nálam ilyen ? (drupal.org-on nem találtam ilyen bug-ot, de lehet, hogy rosszul kerestem)

-------------------------------------------

Megtaláltam a függvényt ( theme_filter_tips() ) ami előállítja a beviteli forma html forrását, de azt nem találtam meg, hogy mi, hogyan és hol hívja meg ezt a függvényt! A Drupal API leírásban sem találtam utalást, hogy is működik ez ?

Hojtsy Gábor képe

A flexinode kódjában kell rákeresni, hogy hol hívja meg.

0
0
eMeLA képe

Azért ennyire nem vagyok láma :)

Nem, hogy a flexinode kódjában, de sehol a drupálban nem hívja meg semmi ezen a néven: theme_filter_tips().

Azhiszem azért nem találom, mivel alapvető rendszerműködési tudatlanságom van :)

Magyarul a theme_filter_tips() vagy a filter_filter_tips() akkor hívódik meg amikor valhol valami használja a filter.modul-t. Ha jól sejtem ez a valami nem a flexinode-on belül, hanem azon kívül van. Én a form előállítás körül gondoltam, de a form.inc kutakodva nem találtam semmi "gyanusat". A kérdés, hogy mikor és hol kapcsolja valami a textarea-hoz a tips-et.

A furcsa az, hogy az alap node-oknál ez jól működik, ami arra mutat, hogy mégis a flexinode-nál van a hiba.

0
0

...mit tudok: http://web.termuves.hu

Hojtsy Gábor képe

A theme_ kezdetű függvényeket a rendszer a theme() burkolón keresztül hívja meg. Így a theme_filter_tips() a theme('filter_tips') jellegű hívással hívódik meg, esetleg további paraméterekkel. Ez teszi lehetővé, hogy mindig a sminknek megfelelő függvényt válassza ki. Egyszerűen a filter_tips-re kell rákeresni, fogsz találni illeszkedést a flexinode-ban.

0
0
eMeLA képe

Megküzdöttem vele !

Nem a flexinode-ban van a hiba, hanem a filter.modul-ban.

A filter_form() függvényben az alábbi kod helyett:

else {
    // Only one format available: use a hidden form item and only show tips.
    $format = array_shift($formats);
    $form[$format->format] = array('#type' => 'value', '#value' =>   $format->format, '#parents' => $parents);
    $tips = _filter_tips(variable_get('filter_default_format', 1), false);
    $form['format']['guidelines'] = array(
      '#title' => t('Formatting guidelines'),
      '#value' => theme('filter_tips', $tips, false, $extra),
 
    );
  }

ezt kell írni:

else {
    // Only one format available: use a hidden form item and only show tips.
    $format = array_shift($formats);
//--------------------------- Ezt a sort kell beszúrni
    $form['#weight'] = $weight;
//---------------------------------------------------
    $form[$format->format] = array('#type' => 'value', '#value' => $format->format, '#parents' => $parents);
    $tips = _filter_tips(variable_get('filter_default_format', 1), false);
    $form['format']['guidelines'] = array(
      '#title' => t('Formatting guidelines'),
      '#value' => theme('filter_tips', $tips, false, $extra),
 
    );
  }

Ha egy tips van akkor ez az ág hajtódik végre. A form elemeket tartalmazó tömbbe a flexinode_valami után (ami textarea) egy flexinode_valami_format field kerül, ezt állítja elő a filter_form().
Ha kereteben megjelenik a beviteli forma akkor az értékadás $form = array(..), míg egy esetén $form[$format->format] = array(...).
A mi esetünkben a kirajzolásnál, ha a flexinode_valami weight értéke kissebb mint 0, akkor a flexinode_valami_format weight értékét alapból 0-nak veszi és a textarea fölött jelenik meg.

0
0

...mit tudok: http://web.termuves.hu

Hojtsy Gábor képe

Kösz a részletes leírást, csak így tovább! Ebből készítettem egy foltot, amit beküldtem, hogy javítva legyen később. Kicsit más megoldást választottam, hogy ne legyen kód duplikáció.

0
0