Quickmenu

To ting jeg mangler at rette i mit Quickmenu modul er; dropdown boxen ville jeg gerne om jeg kunne lave til en scroll box og der er noget padding omkring "quick menu" boxen som jeg ikke kan finde. Jeg ville gerne om mine to "quick menu bokse" er på samme niveau som min "search box". Search boxen har ikke padding og derfor hænger den og svæver ude af niveau.

Jeg har sat nogle hjælpe linier ind så jeg ved det er padding der er problemet, kan bare ikke finde løsningen på det.

Siden er her http://www.appleaday-online.com/

Og her er der et screenshot af "problem området" http://www.screencast.com/users/birgitholme/folders/Jing/media/30af74a8-...

Håber nogen har en ide eller to til mig.

Takker / Birgit

Morten Najbjergs billede

Hej Birgit

Jeg kan se gennem mit Webinfo tool i Chrome at det skyldes DIV.container-inline, som ligger omkring dit søgefelt. Denne div gør, at området bliver inline-defineret, i modsætning til de andre, som defineres som block-elementer. Kort sagt betyder det, at padding ikke virker på dette element, - og kassen bliver derfor ikke så høj som de andre.

Du kan enten fjerne den div med klassen: container-inline, eller gennemtvinge en display: block, på elementet, så paddingen slår igennem på .form-item elementet.

Håber det gav mening :)

birgitholmes billede

Hejsa,

Jeg er udemærket med på hvad du mener og du har givetvis ret! MEN ikke om jeg kan finde der hvor jeg skal rette den. Jeg må være småblind og jeg tror jeg har været inde 99% af de steder hvor det burde kunne rettes og intet absolut intet sker.

Hvis jeg sletter den container-inline som du taler om, så deler "search boksen" sig på to linjer med "search" nedenunder boksen og så er jeg jo ligevidt.

Jeg ved godt jeg overser den nemme løsning, men om jeg kan hitte ud af den.

Hvad er det for en fil jeg skal rette i?

Takker / Birgit

tinems billede

Følger lige med på sidelinjen i denne diskussion, da jeg også vil kunne lære en masse om hvordan man laver sådan en rettelse.

Hvis man sletter

<

div id="block-search-0" class="block block-search"> direkte i koderne så står boxene ihvertfald på samme niveau, men som du jo også spørger om hvor gør man dette?

Jeg har set i core module Search men kan heller ikke finde ud af hvor der skal rettes og måske er det slet ikke her? Og så må man jo ikke rette i core, men skal lave det på en anden måde og her er der flere muligheder.

Men vi skal ha' guruerne på banen her så vi kan lære og forstå af denne rettelse, så vi ved hvordan vi gør det næste gang. :-)

Morten Najbjergs billede

Det er denne linie i modules/system/system.css der giver inline problemet

.container-inline div, .container-inline label { display: inline; }

Men før du giver dig til at hacke Drupals kerne css filer, vil jeg dele en lille smart hemmelighed jeg opdagede for et stykke tid siden:

1) Skriv dette i din template.php

function template_preprocess_page(&$vars)
{
    $css = $vars['css'];
    unset($css['all']['module']['modules/system/system.css']);
    unset($css['all']['module']['modules/system/defaults.css']);
    $vars['styles'] = drupal_get_css($css);
}
Det søger for at Drupal ikke bruger de to system stylesheets.

2) Kopier disse to filer til din templatemappe: modules/system/system.css & modules/system/defaults.css

3) Tilføj disse to linier til din .info fil:

stylesheets[all][] = system.css
stylesheets[all][] = default.css

Nu kan du fint rette i disse to filer i din egen templatemappe, uden at skulle hacke filerne :)

Håber det hjælper

birgitholmes billede

Hej Morten,

Skulle lige have mit site opdateret til .17 - derfor den lange respons tid.

Mange tak for forslaget - det så ud som en rigtig fin måde at komme omkring min lille hurdle på. Gjorde som du skrev og det var min version af template.php meget lidt imponeret over...

Spyttede dette gibberish ud: "Fatal error: Cannot redeclare template_preprocess_page() (previously declared in /home/birgitholme/appleaday-online.com/includes/theme.inc:1807) in /home/birgitholme/appleaday-online.com/sites/all/themes/salamanderskins/template.php on line 40"

Jeg ved kun af at der er en template.php, og det er den som er under det theme som jeg har valgt at bruge. Eller er jeg fejl på den der.

Ahh well...

/Birgit

mikls billede

Hej Birgit,

Prøv at ændre funktionens navn fra template_preprocess_page() til salamanderskins_preprocess_page() (hvor salamanderskins er navnet på dit theme).

Med den måde som PHP er konstrueret på kan man ikke have to funktioner af samme navn, så Drupal bruger modulet/themets navn som præfiks i de tilfælde hvor man skal følge en bestemt navngivning for at ændre systemets opførsel, så som tommelfingerregel, skal funktionerne i din template.php altid starte med themets navn, som erstatning for theme_ eller template_.