Nyelvi zászlók (link) a Node Title fölé

hakika képe

A következő megoldást szeretném:
A page.tlp-be a node title fölé jobbra raknám ki a zászlókat linkként. Elég statikusan, tehát új nyelv esetén felveszem kézzel az új zászlót is.

A kérdés:
1. Hogyan tudom lekérni az aktuális node-om alias-át (hogy ebből linket tudjak csinálni PHP-vel), az aktuális nyelven és adott másik nyelven (/en/ megoldást használok, de az alias nyelvfüggő).
2. Vagy a node ID-ját használnám, de akkor félő, hogy a benyitáskor nem forgatja be az alias-t (/x.html) a címsorba (ebből hogyan tudok dinamikus linket csinálni).

Az oldal amiről szó van:
http://www.balloonkit.hu

Drupal verzió: 
Pasqualle képe

kimasoltam a kodot a locale_block() fuggvenybol, mivel a nyelvvalaszto blokk pont azt csinalja amit szeretnel (vagyis tobbet, mivel olyan oldalaknal is mukodik ami nem node):

    $path = drupal_is_front_page() ? '<front>' : $_GET['q'];
    $languages = language_list('enabled');
    $links = array();
    foreach ($languages[1] as $language) {
      $links[$language->language] = array(
        'href'       => $path,
        'title'      => $language->native,
        'language'   => $language,
        'attributes' => array('class' => 'language-link'),
      );
    }
 
    drupal_alter('translation_link', $links, $path);
 
    print theme('links', $links, array());

ha a $links attributes reszebe teszel egy title mezot, akkor abbol tooltip lesz.
zaszlo lehet a link hattere, vagy a theme('links' ...) helyett sajat magad formazod meg.

0
0
hakika képe

Sok konstruktív hozzászólásodat olvastam már, és köszönöm ezt is.
Úgy látszik még nem vagyok elég penge PHP-ben vagy Drupal-ban, mert ezt a kódot a page.tpl.php-be ültetve nem tudtam megoldani a problémát. Egy linkbe raknám be az eredményt (lehet zászló kép is, de nem kell dinamikusan!). Viszont saját formázás kell, ezért csak az aktuális link kellene lecsupaszítva kimenetként. Remélem érthető voltam. Direkt link a page.tpl-be.

0
0
Pasqualle képe

pedig a kod mukodik page.tpl.php-ban is. Megjelenit ket linket az aktualis oldal nyelvi valtozataihoz, szepen alias-olva..
de zaszlot nem rak a linkre.

a theme('link'..) -et csereld le erre es maris latod a lecsupaszitott utvonalakat.

    foreach ($links as $link) {
      print url($link['href'], $link);
      print '<br />';
    }
0
0
hakika képe

saját linket raktam bele, így ciklikusan megjeleníti a zászlókat. eredmény a www.balloonkit.hu siteon.
ebből is tanultam. most majd a modul írás következik :)
köszönöm szépen a segítségedet!

0
0
hakika képe

Na most vettem csak észre valamit.
A page.tpl-ben több helyen ellenőrzöm a nyelvet.
global $language;
if ($language->language == 'en') { ?> ........

A page.tpl elején elvégzi a kiértékelést, miután lefut a link ellenőrző kód (amit küldtél), utána viszont nem működik az if ág =='en'.

A kódodból szedegettem ki soronként, amíg el nem jutottam a:
foreach ($languages[1] as $language) { }
ciklusig.
Ha ez lefut akkor a problémás nyelv ellenőrzés nem működik, ha kiveszem akkor igen.

Mitől lehet ez?

0
0
hakika képe

A $language változó helyett pl. $languagee, így nem akad össze a kettő.
.
.
foreach ($languages[1] as $languagee) {
$links[$languagee->language] = array(
'href' => $path,
'title' => $languagee->native,
'language' => $languagee,
'attributes' => array('class' => 'language-link'),
);
}
.
.

0
0
Pasqualle képe

igen, a globalis valtozokkal vigyazni kell

0
0
xsyber képe

Köszönöm én is a kiírást, én is beleszaladtam egy hasonló gondba, csak nekem ezt a smink-ben kellett elhejeznem. Akit érdekel annak leírom a saját módosításom:

Ha azt szeretnéd. hogy a sminkben az én esetemben (energetic) a jobb felső sarkban a keresés alatt vízszintesen jelenjenek meg a nyelvek (A fent említettben függőleges 'vertical' megjelenítés van), akkor a kódot így kell elhelyezni a page.tpl.php -ben:

<?php
                    print '<br />';
                    $path = drupal_is_front_page() ? '<front>' : $_GET['q'];
                    $languages = language_list('enabled');
                    $links = array();
                    foreach ($languages[1] as $language)
                    {
                        $links[$language->language] = array(
                          'href'       => $path,
                          'title'      => $language->native,
                          'language'   => $language,
                          'attributes' => array('class' => 'language-link'),
                        );
                    }
                    drupal_alter('translation_link', $links, $path);
                    print theme('links', $links);
                ?>
0
0