Sziasztok!
Készítettem egy egyedi nyelvválasztót, ami gyakorlatilag a magyar szöveg angol fordítását keresi ki, visszafele ugyan így.
Ezzel semmi gondom sincs remekül működik!
Csak arra keresek megoldást hogy hogyan lehetne kicsit Drupalosabb-ra csinálni, mert sajna eléggé ellentmond a Drupal alapgondolatainak (ti mondtátok :D, de egyet is értek!)
Leginkább azért mert a page.tpl.php-ban van...
A fő problémám, hogy modult még nem készítettem, és ez így nem a legjobb. Gondolom mindenkinek égnek is áll a haja :D
Ezt írtam bele a page.tpl.php-ba:
<?php if ($language->language=="hu") { $sql = "SELECT node.nid FROM node WHERE (node.language='en') and (node.tnid='$node->nid')"; $result = db_query($sql); $ennode = db_fetch_object($result); $lang_switch_link="/node/".$node->nid; if ($ennode->nid!="") $lang_switch_link="/en/node/".$ennode->nid; $lang_switch_text="eng"; } if ($language->language=="en") { $sql = "SELECT node.tnid FROM node WHERE (node.language='en') and (node.nid='$node->nid')"; $result = db_query($sql); $hunode = db_fetch_object($result); $lang_switch_link="/en/node/".$node->nid; if ($hunode->tnid!="") $lang_switch_link="/node/".$hunode->tnid; $lang_switch_text="hun"; } ?> <a href="<?php print $lang_switch_link ?>"><?php print $lang_switch_text ?></a>
Gondolom mindenki le akar beszélni a saját megoldásomról, de nekem tetszik, csak az nem, hogy a page.tpl.php-ban van!
Nagyon megköszönném, ha valaki erre tudna valamit mondani nekem!
Köszönöm!
template.php
tedd a sminked template.php fajljaba, attol kicsit Drupalosabb lesz
Na szep
Honnan kezdjem? Változót nem írunk SQL query-be, arra placeholder való. Igaz, SQL query-t nem írunk template-be mert nem oda való... No aztán ez ugye csak olyan oldalakon működik ahol egy node van (ie. node/123) azokon az oldalakon meg a translation_link meg előállítja ami neked kell, nem kell ilyen borzalommal előállítani...
Még egy pár megjegyzés
Nagyon jó szerintem, hogy megtetted az első lépést!
Linkek előállítására az
l()
függvény való, nem is érdemes kézzel mókolni. Azl()
jó mert:.active
classt a linkre (esetünkben ez lényegtelen, mert mindig "a másik" oldalra linkelsz.)Mint ahogyan Pasqualle javasolta én a
template.php
-ban asminkneve_page_preprocess()
függvénybe a változókhoz még hozzáadnám a$nyelvvalto
($langswitcher
) változót, mely értékét a chx által javasolt függvénnyel állítanám előPalócz István
https://palocz.hu | https://tanarurkerem.hu
Nagyon köszönöm a
Nagyon köszönöm a segítséget!
Sajnos még nem értettem meg, hogy hogyan is működik az eredeti nyelvválasztó, ezért azt sem tudom, hogy hogyan lehetne hasonló eredményt kihozni belőle.
(Jelenleg az API-s oldalt nézegetem)
Az l() ellen szól, hogy a
Az
l()
ellen szól, hogy a designerek nem tudják módosítani a hivatkozás tulajdonságait (pl.rel
,class
stb) anélkül, hogy ne kéne PHP kódon módosítani. Ha ez meg egy modulban van, akkor külön öröm a számukra kibogarászni, hogy hol kell átírni, feltéve, hogy ért hozzá. Ajánlom inkább azurl()
fgv. használatát.sminkben teljesen jo
Azert egy drupal sminkesnek minimalis PHP ismeretekkel kell, hogy rendelkezzen es az l() lehetoseget biztosit szamara a class es rel megadasra lasd doksi es peldak:
http://api.drupal.org/api/function/l/6
Ha modulba van akkor oda ugysem tud benyulni egy sminkes.
---
http://drupalaton.hu
Én nem várok el az
Én nem várok el az echo()/print() fgv-ek ismeretén túl más PHP-s ismeretet egy designertől. A munkájának elvégzéséhez nincs rá szüksége.
általános dizájnertől nem is,
de az meg annyit is ér. aki meg _drupal_ sminkes, az meg igenis tudja használni és _használja is_ az l() -t, a t() -t, az alapvetőbb sminkhívásokat, theme('image' -t használjon és ne szemeteljen nekem img srckkel, theme('item_list' -et hívjon és bohóckodjon li meg perlikkel nekem és még folytathatnám a sort.
ismernie _kell_ az eszközt amit használ. különben mitől _drupal_ smikes?
-
clear: both;
Bevallom, én csak d.con
Bevallom, én csak d.con alkalmával találkoztam olyan „sminkessel”, aki képes bármilyen felhasználói felületet egymaga kivitelezni, mert megvan benne az a vizuális kreativitás és kézügyesség, a mély alapokkal bíró fejlesztői tudás no és persze se kutyája, se macskája, ideje, mint a tenger dolgozni és tanulni, jónak maradni. Nagyon kevesen vannak és még kevesebben vannak (világszinten), akik ezt a képességet és önfeladást meg is tudják fizetni.
A valóság ezzel szemben az - és ez a Drupal igazi érdeme - hogy külön lehet választani a felhasználói interakciókat és a látványt az adatokkal való feltöltéstől úgy, hogy egymás területével a lehető legkevesebbet, a saját specializációval a legtöbbet töltve. Épp ezért az én tapasztalatom az, hogy a theme_image(), theme_item_list(), l() és még néhány sminkfgv erőltetése inkább hátrány, mint előny. Mitől szemét, ha egy .tpl-ben img src van? Milyen hátránya származik belőle, ha így használja? Az előnye az, hogy
Tudnám még ragozni, szerintem a fent említett fgv-ek a ló túlsó oldala.
alapszolgáltatás
De mire kell ez a link neked? Miért nem jó a Drupal alapértelmezett nyelvváltója? (Van nyelvváltó blokk is, meg minden node oldalon a linkek között is.)
Igazából azért készítettem
Igazából azért készítettem ezt, mert nem tudom, hogyan lehetne ugyanezt az eredményt kihozni, az beépített nyelvválasztóból!
Azaz például azt, hogy mindig csak az ellenkező nyelv linkje jelenjen meg, és ott ahol szeretném!
Valamint mondjuk az English felirat helyett csak ENG legyen.
Gyakorlatilag ezért hoztam létre ezt a szörnyeteget! :)
Tudom, hogy a beépített sokkal szebb, jobb, későbbiekben megkímélne sok kellemetlenségtől, de sajnos nem vagyok nagy veterán a témában és sajnos nem tudom, hogy hogyan kell!
Gondolom elég bonyolult. (főleg, hogy még nem látom át teljesen ezeket a függvényeket... sajnos)
peldaul azt
csak az ellenkező nyelv linkje jelenjen meg:
smink style.css
#block-locale-0 li.active {
display: none;
}
English felirat helyett csak ENG legyen:
admin/settings/language/edit/en
Native language name: ENG