Nyelv függő vízszintes menük

moha képe

Hello!

Egy kis segítséget szeretnék kérni. Sajnos a Drupal használatában még elég kezdő vagyok (korábban Joomla-val már dolgoztam, illetve CSS, PHP és HTML az megy).

Egy meglévő, sima PHP alapú weblapot kell átdolgoznom Drupal-ra. Az oldal többnyelvű (összesen 9), minden nyelvhez le vannak fordítva a menük és a tartalom.

Az oldal tetején 2 vízszintes menü van, egy főmenü és egy almenü, egymástól azonban függetlenek (konkrétan az egyik a fejlécben van, a másik pedig a középső tartalom mező tetején). Elkezdtem átdolgozni az oldalt Drupal sminkre, de a menüknél megakadtam. Úgy kellene működnie, hogy ha a főmenüből kiválasztunk egy pontot, akkor a megfelelő almenü betöltődik. Plusz ugye a menük a nyelvtől is függenek. Arra gondoltam, hogy minden nyelvhez létrehozok egy főmenüt + (nyelvek száma x főmenü elemek száma)db almenüt, mert ugye nyelvtől függően ki lehet tenni a menüket. De az alábbi problémákba ütköztem:

- Ha csak simán a menü blokkot behúzom a régióba, akkor az nem vízszintesen, hanem függőlegesen, listaként jelenik meg (ezt hol lehet módosítani?)
- Egyik téma alapján ki tudom tenni vízszintesen is a menüelemeket (theme függvénnyel), de az csak a 3 alap menüre érvényes, mert a saját menükhöz nem hozza létre a változót (ha a $primary_links változót adom a függvénynek, akkor kirakja a menüt, de ha a $sajatmenu -t, akkor nem).

Erre gondolok:
Ez műküdik, szépen kiteszi a menüelemeket egymás mellé:
 print theme('links', $primary_links, array('class' => 'links', 'id' => 'navlist'))
Ez viszont nem jelenít meg semmit, pedig a saját menünek ezt a nevet adtam meg:
 print theme('links', $sajatmenu, array('class' => 'links', 'id' => 'navlist'))

Remélem nem voltam túl zavaros.

Előre is köszi a segítséget!

Üdv,
Moha

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

Amit tehetsz.:

A
1. menü beállításoknál beállítod, hogy az elsődleges és másodlagos hivatkozásokat is az elsődleges hivatkozások menüből szedje.

2. A menüpontokat felveszed a az elsődleges hivatkozások menübe úgy, hogy az almenüpontok a megfelelő almenük legyenek.

Na ekkor a sminkben elérhető elsődleges és másodlagos hivatkozások $primary_links és $secondary_links tartalma már az lesz ami neked kell.

Többnyelvűvé tenni már nem könnyű dolog, de először jussunk el erre a lépésre.

B
1. Ahogy csináltad létrehozol külön menüket a külön nyelveknek.
2. felteszel egy modult ami szét tudja ezeket cincálni. (én ilyet írtam anno, de mintha lenne hozzá valami modul is, keress!)
3. A sok-sok blokkot (nyelvenként kettő) betolod a megfelelő helyre, majd mivel megy a html és a css megoldod, hogy ne egymás alatt legyen, hanem egymás mellett. :P

pp

0
0
Pasqualle képe

- Ha csak simán a menü blokkot behúzom a régióba, akkor az nem vízszintesen, hanem függőlegesen, listaként jelenik meg (ezt hol lehet módosítani?)

sminkben style.css

Egyik téma alapján ki tudom tenni vízszintesen is a menüelemeket (theme függvénnyel), de az csak a 3 alap menüre érvényes, mert a saját menükhöz nem hozza létre a változót (ha a $primary_links változót adom a függvénynek, akkor kirakja a menüt, de ha a $sajatmenu -t, akkor nem).

itt jon letre a $primary_links valtozo: http://api.drupal.org/api/function/template_preprocess_page
neked a template.php fajlban a sminknev_preprocess_page funkciot kell megirnod, peldaul

function sminknev_preprocess_page(&$variables) {
  $variables['sajatmenu'] = menu_navigation_links('menu-sajat-menu');
}
0
0
moha képe

Nos, egy "NiceMenus" modullal sikerült elérnem, hogy rendes vízszintes menüim legyenek, amiket nyelvfüggően tudok kipakolni és témázni. Viszont továbbra is vannak gondok.

A felső menüsor rendben van, úgy néz ki, ahogy akarom, az alsó menüt pedig tudom irányítani, hogy csak bizonyos oldalakon jelenjen meg. Ellenben hiába állítok be egy menüpontnak egy adott nyelvet, mindenhova kiteszi.

Azaz pl. a felső menüben van egy "főoldal" link, a nyelve magyarra állítva. Most csináltam egy második menüpontot "front page" szöveggel (értelem szerűen ez az angol főoldalra mutat), angol nyelvre állítva, de így minden nyelven megjelenik mindkét pont. Azaz mind angol, mind magyar nyelvre állítva az oldalt, látszik a "főoldal" menüpont ÉS a "front page" menüpont is.

Tudom, hogy ha megírom a tartalmat egy nyelven, rendelek hozzá egy menüpontot, majd azt fordítom le, akkor csak az adott nyelvnek megfelelő menüpont jelenik meg, ez viszont azért nem jó, mert lesznek a menüben olyan pontok is, amik nem belső tartalomra mutatnak (PDF dokumentumok és videók, szintén különböző nyelveken), tehát azokat nem tudom a Drupal fordítójával megoldani, viszont nyelvenként külön menüpont és külön link kell nekik.

Van javaslatotok?
Köszi az eddigi segítséget is!

0
0
moha képe

Hello!

Nos, most tértem vissza a projecthez és rájöttem, hogy mi volt a gond.
Azért látszott minden menüpont, mert nem a menüponthoz beállított nyelvet, hanem a kapcsolódó tartalom nyelvét veszi alapul a rendszer. Egyelőre tesztnek csak 2 nyelvből hoztam létre pár oldalt és szinte minden menüpontnak azokat a linkeket tettem be.

Ha éppen angol nyelven néztem az oldalt, akkor minden olyan menüpont megjelent, amelynek a célja angol nyelvű tartalom, függetlenül attól, hogy a menüpontnak milyen nyelv volt beállítva.
Ez rendben is van, ez a probléma meg lesz oldva, amint feltöltöm az egész tartalmat minden nyelven.

Ez a belső Dupalos tartalmakra rendben lesz, de a külső linkekkel még mindig gond van. Lesz a menüben pár külső hivatkozás (pl. néhány videó, nyelvenként eltérő változat) illetve egy független webes rendszer, amit valószínűleg nem tudok a drupalba intergrálni.
Ezek a semleges linkek ugyanúgy megjelennek minden nyelvi beállításnál, holott itt is csak az adott nyelv linkjeinek kellene megjelennie (pl. magyar nyelv esetén csak a magyar videónak, angol esetén csak az angolnak). Erre tudtok megoldást?

EDIT: Nos, a Nice Menu volt a bűnös, volt benne egy bug, amit az új verzióban javítottak. Most már csak egy apró gondom maradt: a menüt fejléce továbbra sem fordul, hiába írom be a megfelelő szövegeket a translate table-be.
Megnéztem, Nice Menus modulja közvetlen az adatbázisból teszi ki a fejlécet. Ha hozzáadtam egy t()-t és fixen importáltam a meglévő menük fordítását, akkor ment a fordítás, de gyanítom, hogy van erre valami "elegánsabb" megoldás...

0
0