Menu megjelenitese sajat module temabol

nyirocsaba képe

Udv,

Keszitettem egy Schedules nevu salyat modulet. Ez a modul rendelkezik a egy schedules.tpl.php nevu module temaval.
A kerdesem az az, hogy hogyan tudnek egy menut megjeleniteni ezen a teman belul?

Probalkoztam leterehozni egy schedules_menu-blokot es a page.tpl.php-bol el is tudom erni de sajna nekem a schedules.tpl.php-ban van ra szuksegem.

Koszonom,
Csaba

nyirocsaba képe

A kerdest foltettem a drupal.org forumon is
http://drupal.org/node/366069

0
0
sgabe képe

A modulodban szeretnél felépíteni egy menüt, ahonnan adminisztrálható? Vagy egy másik tetszőleges menüt szeretnél megjeleníteni a .tpl fájlodban?

0
0
eMeLA képe

Blokkot így ildomos készíteni:: http://api.drupal.org/api/file/developer/examples/block_example.module/6

sajna nekem a schedules.tpl.php-ban van ra szuksegem.

Ha ott van szükséged rá, akkor neked lehet, hogy nem is blokk kell !?

Blokkot akkor készít az ember, ha valamit a definiált régiókban szeretne megjeleníteni.

Azt lehet, hogy készítesz egy blokkot, ami a tartalom után vagy előtt jelenik meg, de csak akkor, ha schedules tartalomtípus jelenik meg. Ez így korrekt.

Ha te a modulod által létrehozott tartalomtípus megjelenítésén belül akarsz valami blokkszerű dolgot használni, akkor arra vagy írsz egy saját függvényhívást pl. _akarmi() néven, amit meghívsz a schedules.tpl.php-n belül, vagy a tartalmát, vagy változóit belerakod a $node változóba (ekkor ez már nem blokk). Gondolom ezek korrekt megoldások (a programozó urak és hölgyek majd lektorálnak, ha nincs igazam :), persze ehhez tudni kellene mit is szeretnél pontosan megjeleníteni.

0
0

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

sgabe képe

A blokk csak próbálkozás volt a részéről ahogy írja. Simán egy menüt egyszerűbben is meg lehet jeleníteni a theme_links függvénnyel, a preprocess pedig átadja a változót a .tpl számára.

0
0
nyirocsaba képe

Koszonom, megpronbalkozom ezzel

0
0
eMeLA képe

Aha. Így is lehet értelmezni....

0
0

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

nyirocsaba képe

A problema reszeltesebben:
Van egy module-on, ami szezonra bontva megjeleniti egy kosarlabda csapat merkozeseit. Ezt el is keszitettem es mukodik tokeletesen. Ugyanezzel a modul-al jelenitem meg a merkozesek reszletes eredmenyeit kulon-kulon. A szezon lista fole szeretnek megjeleniteni egy menut amivel lehet a szezonok kozt valtani, de e fole kerulne az aktualis szezon cime pl.

parameterezes mysite.com/schedule/0809
[b]2008-2009-es szezon[/b]
ez ala jonne a menu ami gy nez ki

2006-2007 | 2007-2008 | 2008-2009

Es ez ala jon a tablazat

------
Ugyanez a modul mas parameterekel egy-egy merkozes reszletes eredmenyet jeleniti meg

parameterezes mysite.com/schedule/0809/2009-01-26

Ide mar nem lesz kuksegem a menure.

Egy megoldast az lenne, hogy a templatebe kodolom ezt le, de igy eleg csunya es csorbitja a modul hordozhatosagat.

Koszonom a valaszokat!

0
0
aboros képe

az olyan, mint amikor adminként vagy belépve és látod egy oldal címe alatt, hogy "szerkesztés" "megtekintés" "verziók" ("fordítás", megmégami)

a hook_menu() -ben kellene létrehoznod ezeket az "évad" menüpontokat úgy, hogy mindegyiknek a típusa MENU_LOCAL_TASK legyen.

mutatok egy példát.
van egy nagy autómárka oldala. ezen vannak az autótípusok (ez egy tartalomtípus(node type)). minden ilyenhez filefieldel lehet csatolni különféle táblázatokat, "műszaki paraméterek", "felszereltség", "árak", "finanszírozás", stb. a példában egy saját modullal az ilyen node type megnézéséhez létrehozok saját MENU_LOCAL_TASK -okat, amik mind ugyan azt a függvényt hívják (ami táblázatot csinál a fileból) csak más filet adnak át a paraméterben.

ennek a "szisztémának" a hook_menu() -je:

function renault_customtabs_menu() {
  $items['node/%node/arak'] = array(
  	'title' => 'Prices', 
  	'page callback' => 'renault_customtabs_render_csv',
  	'page arguments' => array(1, 2),
  	'access callback' => 'renault_customtabs_access', 
  	'access arguments' => array(1),
  	'weight' => -9,
  	'type' => MENU_LOCAL_TASK,
  );
  $items['node/%node/opciok'] = array(
  	'title' => 'Options', 
  	'page callback' => 'renault_customtabs_render_csv',
  	'page arguments' => array(1, 2),
  	'access callback' => 'renault_customtabs_access', 
  	'access arguments' => array(1),
  	'weight' => -8,
  	'type' => MENU_LOCAL_TASK,
  );
  $items['node/%node/muszaki_parameterek'] = array(
  	'title' => 'Technical details', 
  	'page callback' => 'renault_customtabs_render_csv',
  	'page arguments' => array(1, 2),
  	'access callback' => 'renault_customtabs_access', 
  	'access arguments' => array(1),
  	'weight' => -8,
  	'type' => MENU_LOCAL_TASK,
  );
  return $items;
}

remélem jó megoldást adtam és érthető is.

0
0

-
clear: both;

nyirocsaba képe

Igen, koszonom, ez mar kozelebb van a megoldashoz, azzal a kulomseggel, hogy nekem ez a menu "dinamikus" kell legyen, azaz az adminbol kell hozzaadni/elvenni ezekbol a menupontokbol. Ezert gondolkodtam azon, hogy egy ujonnan letrehozott drupal menu-t hasznaljak, igy megusznam a modul boviteset, azaz hozzaadnek egy config-ot, ahol ezeket a menupontokat meg lehessen adni.

0
0
Pasqualle képe

nem irtal Drupal verziot, ugyhogy a valaszom csak Drupal 6-ra vonatkozik.

elso megjegyzesem az lenne, hogy az altalad felvazolt problemahoz szerintem nincs szukseg fejlesztesre mert views modullal megoldhato.

Sajat funkcio ami menupontokat jelenit meg, ahogy en akarom. Nem tul szep, de nekem ennyire volt szuksegem. Egy sajat menu elso szintjet (plusz a gyoker menu pontot) a $sidebar_links valtozoba, mig a masodik szintet a $tab_links valtozoba menti.

function render_my_menu(&$sidebar_links, &$tab_links) {
  // Get the whole menu tree.
  $tree = menu_tree_all_data('mymenu');
  $sidebar_links = array();
 
  // Tree root key.
  $key = key($tree);
  $item = $tree[$key];
  $l = $item['link']['localized_options'];
  $l['href'] = drupal_get_normal_path($item['link']['href']);
  $l['title'] = $item['link']['title'];
  $sidebar_links[$item['link']['href']] = $l;
 
  // Skip the top level.
  $tree = $tree[$key]['below'];
 
  // Read the first level.
  foreach ($tree as $key => $item) {
    if (!$item['link']['hidden']) {
      $l = $item['link']['localized_options'];
      $l['href'] = drupal_get_normal_path($item['link']['href']);
      $l['title'] = $item['link']['title'];
      if ($l['href'] == $_GET['q']) {
        $tree2 = $tree[$key]['below'];
      }
      $sidebar_links[$item['link']['href']] = $l;
    }
  }
 
  // Read the second level.
  $tab_links = array();
  if (!empty($tree2)) {
    foreach ($tree2 as $item) {
      if (!$item['link']['hidden']) {
        $l = $item['link']['localized_options'];
        $l['href'] = drupal_get_normal_path($item['link']['href']);
        $l['title'] = $item['link']['title'];
        $tab_links[$item['link']['href']] = $l;
      }
    }
  }
  $sidebar_links = theme('links', $sidebar_links, array('class' => 'sidebar-menu'));
  $tab_links = theme('links', $tab_links, array('class' => 'tabs'));
 
}

tehat ha a menud igy nez ki:
valami
--szezon 0708
----merkozes 080225
--szezon 0809
----merkozes 090126
----merkozes 090215

akkor ha azon az oldalon allsz ami a "szezon 0809" menupothoz kapcsolodik akkor a
$sidebar_links-ben a "valami", "szezon 0708", "szezon 0708"
$tab_links-ben "merkozes 090126", "merkozes 090126"
lesz.. Ezt aztan mar ugy jelenited meg ahogy akarod..

a kodban a mymenu-t le kell cserelned a sajat menud nevere. Ha a menut nem programkoddal hozod letre hanem a Drupal admin feluleten akkor "menu-valami" lesz a menu neve..

0
0
nyirocsaba képe

Koszonom a valaszt!

"nem irtal Drupal verziot, ugyhogy a valaszom csak Drupal 6-ra vonatkozik."
Igen Drupal 6.

"elso megjegyzesem az lenne, hogy az altalad felvazolt problemahoz szerintem nincs szukseg fejlesztesre mert views modullal megoldhato."
Igen, ez lenne az egyszeru megoldas, csakhogy ez oldal mar mukodik par eve es a feladatom az, hogy migraljam Drupal-ra, mivel a keret eleg szukos az adattablakat nem tudom atrendezni es migralni az adatokat, e miatt kellett salyat modult fejlesztenem hozza, mert igy jobban belefer az idobe (hidd el ez igy van:) ).

0
0
nyirocsaba képe

Kimondtad a varazsszot, azaz a fuggveny nevet ami nekem kell "menu_tree_all_data"
Nagyon szepen koszonom a segitseget neked is es mindenkinek!

0
0
york képe

Valaki ezt a salyatot javitsa ki, nagyon faj.
(eskuszom nem szoktam ilyenert szolni, mert en is gyenge helyes iro vagyok, de ez faj...)

0
0
nyirocsaba képe

Tokeletesen igazad van, sajnalom, sosem fogom ezt mar megtanulni :-s
Sajnos nincs jogom szerkeszteni u.h. en is kerem, hogy valaki akinek van ehez joga javitsa.

Elnezest es koszonom!

0
0
nevergone képe

Sajnos, ahogy elnézem, nem csak ezt.

Ha nem fektetsz be annyi időt a problémád megoldásába, hogy utána olvass; és formailag és tartalmilag egyaránt helyesen írd le azt, akkor a fórumtársaidtól miért várod el, hogy időt pazaroljanak rád?

Kérlek, legközelebb igyekezz ezt is szem előtt tartani.

0
0
nyirocsaba képe

Koszonom uram!
Ezentul jobban figyelek es ha valami surgos inkab nem postolok ide, hogy ne legyenek ien problemak! Szerintem ez sem jo megoldas, de legalabb nem pazarlom kedves forumtarsaim idejet.

P.S.: Nem vartam el senkitol, hogy valaszoljon, vagy kijavitsa de mivel ez egy Drupal support forum (ha nem tevedek), gondoltam vannak itt olyan emberek akik szivesen valaszolnak a kerdesre es utolag talan meg masnak is hasznos lehet. Ha becsuszott egy par helyesirasi hiba, elnezest, tenyleg az en hibam, de egy javitas kerestre igy lekapni az embert...
Nagyon koszonom mindenkinek a segitseget, tenyleg hasznalt es nem volt hiabavalo!

0
0
aboros képe

nevergone már csak ilyen. :) egy időben ez a kedves "nem fektetsz annyi időt" szöveg volt az aláírása. nem is tudom mikor olvastam tőle utoljára igazi problémamegoldó-wolf hozzászólást, mostanában csak "új téma" "olvass utána" és hasonló pirításokat tol.

most, ebben a konkrét esetben egyébként nem is értem, hogy mi volt veled vagy a kérdéseddel a problémája, mindenesetre ne vedd magadra, jót kérdeztél, máskor is szívesen segítünk, ha tudunk!

0
0

-
clear: both;

york képe

Ha nem megy a helyesiras, mint nekem akkor tegyel fel egy helyesiras ellenorzot aki kiabal, hogy elk***tad :)

0
0