Primary menüben ne legyen |, és a menüpont kiválasztva maradjon

shinean képe

Hoi!

Pár kérdésem lenne a drupallal kapcsolatban (eléggé egyszerűek, de csak nem rég kezdtem dolgozni vele)

- Hogyan lehet a primary menu-ből kiszedni a "|" jeleket, mert én nem találtam meg sajna
- Ez inkább html-es dolog, de azt szeretném megoldani, hogy amikor a böngészőben valaki rákattint az egyik menüre, az kiválasztva maradjon.

Előre is köszi a válaszokat!

Hojtsy Gábor képe

A menü maradjon kiválasztva, vagy a menüpont?

0
0
shinean képe

A menüpont maradjon kiválasztva

0
0
Hojtsy Gábor képe

A Drupal alap menüben active jelzést kap a menüpont, ami ki van választva, és akkor speciális stílust kap (ez persze sminken is múlik).

0
0
shinean képe

Értem, csak én egy meglévő bluemarine sminket alakítottam át és nem tudom, hogy ezt hol kereshetném, mivel a css-ben megadtam az :active stílust a linkre, de még sem működik.

0
0
Illyés Edit képe

Az ~:active egy úgynevezett pseudo-class (nem tudom, hogy mondjuk magyarul), a ~:link, a ~:visited és a ~:hover rokona. Ezzel tudod meghatározni, hogy a klikkelés pillanatában hogyan nézzen ki a link.

Ami neked kell, az egy sima class selector, amit a Drupal tesz rá a linkre akkor, ha a link célja és az aktuális oldal címe megegyezik. Ha megnézed a forrásodat, megtalálod:

<div id="primary"><a href="/contact" title="" class="active">Kapcsolat</a></div>

Erre a CSS stílus:

a.active { color: #ffcc00;
}

Tehánt ~:active és ~.active nem ugyanaz. Az előbbi egy állapotjelző, a második egy közönséges CSS osztály.

0
0
shinean képe

Jah, tényleg nem : hanem . kellett volna. De még egy uccsó kérdésem lenne, mégpedig, hogy a teljes oldalamat szeretném középre igazítani, de hiába szerkesztem a page.tpl.php-t nem eszi meg. Teljesen balra "ragad"!

0
0
Illyés Edit képe

0
0
Anonymous képe

"Hogyan lehet a primary menu-ből kiszedni a "|" jeleket"

Milyen sminket használsz? Nézd meg a template.php-ben (a használt smink mappájában) hogy van-e valami ilyesmi újra hívva:

function sminkneve_primary_links

azt másold be ide ha nem érted.

0
0
shinean képe

bluemarine templatet használom, de ebben nem találtam template.php-t. az engine könyvtárban találtam egy phptemplate.engine fájl.

0
0
Illyés Edit képe

Ha megnézed a bluemarine mappában a page.tpl.php fájlt, a következőt találod benne:

<div id="primary"><?php print theme('links', $primary_links) ?></div>

Azaz a $primary_links változó kiírásához meghívja a theme() függvényt, amit egyébként az /includes/theme.inc fájlban találsz, ami meghívja az ugyanebben a fájlban található theme_links() függvényt:

function theme_links($links, $delimiter = ' | ') {
  if (!is_array($links)) {
    return '';
  }
  return implode($delimiter, $links);
}

Amint látható, a theme_links() alapesetben a ' | ' karaktert használja elválasztó jelként. Ha ezt szeretnéd megváltoztatni (felülírni), akkor a sminkmappában (nálad ez a bluemarine) létre kell hoznod egy template.php nevű fájlt, és benne a következő függvényt:

function phptemplate_links($links, $delimiter = ' * ') {
  if (!is_array($links)) {
    return '';
  }
  return implode($delimiter, $links);
}

Amint látod, ez két dologban különbözik a theme.inc-ben található függvénytől: a neve phptemplate_links, és elválasztó jelnek a ' * ' karaktert használja minden esetben.

Ha csak a primary menü esetében szeretnéd a ' | ' elválasztó jelet megváltoztatni, akkor az előbbi megoldás helyett a template.php-ben létre kell hoznod egy erre specializált funkciót:

function phptemplate_primarylinks($links, $delimiter = ' * ') {
  if (!is_array($links)) {
    return '';
  }
  return implode($delimiter, $links);
}

És ezt a funkciót kell meghívnod a page.tpl.php-ben:

<div id="primary"><?php print theme('primarylinks', $primary_links) ?>
</div>

Ekkor a primary menüben ' * ' lesz az elválasztó, másutt marad a ' | '.

0
0
shinean képe

Ezer köszönet :D! Működik!

0
0