Nekem már többször előfordult olyan problémám, hogy a Drupal elsődleges menüjének (primary links) egyedi kinézete miatt, kizárólag képekből álló menüt kellett készítenem. Ezalatt azt értem, hogy nincs a háttérkép felett semmilyen szöveg, a menü címe is a képen szerepel.
A háttérképeket egyszerűen megadhatjuk, a menüpontok egyedi azonosítója miatt (pl. menu-130 stb.), viszont a rajta lévő szöveget el kell tüntetni valahogy.
CSS-ben ha levesszük a betűméretet 0px-re sajnos nem a megfelelő megoldás, mert IE-ben, Chrome-ban és Operában kicsiben, de látszik.
Egy megoldás, ha a hyperlinkek szövegét span elemek közé tesszük, és a span elemeket tüntetjük el CSS-ben a display: none; definícióval, tehát a cél az lenne, hogy így nézzen ki egy menüelem:
<li class="menu-129"><a class="menu-129" href="/"><span class="primary-title">Nyitólapspan>a>li>
Ekkor minden további nélkül megadhatjuk CSS-ben a következőt:
ul.primary-links span.primary-title {
display: none;
}
Igenám, de hogy érjük el, hogy a Drupal span elemek közé tegye a linkek címét?
A megoldás az, hogy a sminkünk template.php fájljába kifejtjük a theme_links() fgv-t.
Íme a kód:
/**
* Csak kepekbol allo menu elkeszitesenek alapjai
*
* @param unknown_type $links
* @param unknown_type $attributes
* @return HTML
*/
function phptemplate_links($links, $attributes = array('class' => 'links')) {
global $language;
$output = '';
if (count($links) > 0) {