Hejsan
Nu har jag sjunkit djupt i träsket på hur mycket man kan krångla till det för en liten sak, undrar om det kan vara så att det finns en enkel lösning som jag inte tänkt på.
Här är det jag vill:
På primära länkar har jag att:
Besökare ska se:” A” och ”B”
Inloggade användare ska se: ”B” och ”C”
Admin ska sen: ”B” och ”C” (för mer än så får det inte plats)
”C” är alltså skyddat innehåll där jag angett i views att bara inloggade användare ska se det så den biten fungerar ”out-of-the-box”.
Vad gäller ”A” så har jag hittat modulen ”Menu per role” – här kan jag enkelt sätta att endast gäster ska kunna se A och att så fort man loggar in så försvinner A. Detta fungerar jättebra för vanliga inloggade användare (denna modull tar bara bort länken till A, användaren kan fortfarande gå till den sidan om han/hon kan adressen men det är helt OK för mig).
Nu mitt stora problem…..
User 1 / Admin ser både A, B och C hur &%&%¤” jag än sätter behörighet i modulen ”Menu per role” och det totalmassakrerar mitt tema eftersom primära länkar bli överfull och väller ut och förstör i sin tur placering av sidoblock etc. Har skrivit på modulens issue men det verkar som att modullen per design ska vara så att admin /User 1 ser allt. Har testat äldre versioner av modulen etc utan framgång.
Nästa försök var att försöka sätta ett anpassat tema för User 1 men jag lyckas inte sätta ett framsidetema som bara user 1 kan använda sig av (vill alltså inte att övriga användare ska kunna byta tema), backsidetema kan man sätta separat för admin men det hjälper mig inte här.
Slutligen började jag fundera på att fortsätta modifiera mitt tema. Som det är nu så har jag runt menytexten en fin ram där jag sett till att rammen alltid är minst 60 pixlar bred och har sen en liten padding till nästa knapp:
navigation a:hover,
navigation a:visited:hover {
background: #111 url(images/fluff_line.png) repeat-x 0 -40px;
margin-top: 5px;
height: 33px;
line-height: 33px;
min-width: 60px;
padding: 0 6px;
border: #111 solid 1px;
-webkit-border-radius: 0.333em;
-moz-border-radius: 0.333em;
color:#ccc;
}
Jag skulle alltså vilja byta ut:
min-width: 60px;
Mot denna superformel:
min-width: (936pixlar som är bredden på primary links) delat med (Summan av antal objekt i primary links som presenteras för just aktuell användare (men hur fan får man ut det?)) px;
Det skulle göra att för vanliga användare ser allt bra ut och det blir lite hoppklämt men fungerar i alla fall för User 1 / admin.
(alltså i verkligheten är det inte A, B och C utan något drygt tiotal knappar i primary links)
Jo, sen finns så klart lösningen – använd inte User 1 kontot ditt &%#¤ pucko men av diverse andra skäl så vill jag kunna använda det och att det ska fungera bra så det är bara en sista nödutväg.
Skulle bli jätteglad om någon kunde komma med något tips!!!
/Oscar
Comments
Jag vet inte om jag förstått
Jag vet inte om jag förstått Din fråga rätt, men har Du gjort någon ny roll för Dina besökare som bara ska se A och B?
Dvs i Users kan man göra flera olika roller och sätta permissions för resp roll. De som inte ska kunna admina får bara se content, medan en annan roll får se allt, lägga till och editera osv.
Det innebär att vanliga gäster bara ser ett par menylänkar, medan nästa grupp ser fler länkar.
Ursäkta om jag fattat fel!
A-B
Ann-Britt
Tack för svar! Att icke
Tack för svar!
Att icke inloggade besökare får se några få knappar och inloggade får se fler knappar fungera bra utan några extra moduler
Att inloggade användare inte får se alla menyknappar (som en gäst däremot kan se) fungerar bra med modulen "Menu Per Role"
MEN: Den modulen låter User 1 admin se ALLT och det är mitt problem eftersom det inte får plats i primära länkar.
Det jag funderar på är kan man baka in PHP i en CSS-fil?
I så fall skulle jag kunna ha att:
if($user->uid == '1') {min-width: 40 px;}
ELSE min-width: 60px; (hur skriver man den en sån ELSE-sats korrekt?)
och på så sätt göra min primary links lite mer hoppträngd för User 1 och därigenom lösa problemet.
Tacksam för synpunkter!
/Oscar
Tror inte Du ska mixtra med
Tror inte Du ska mixtra med pHP i en CSS-fil. Däremot kanske man kan ange vidden för fältet med auto så får det ta den plats som behövs (fast jag förstår att det är det Du egentligen inte vill).
Har Du hittat FireBug? Ett bra hjälpmedel där Du i Firefox kan se de olika områdena på Din sida och testa vad som händer om man ändra marginaler etc. När man testat färdigt ändrar man motsvarande i CSS-filen. http://getfirebug.com/
När man lagt in det dyker det upp en liten bug i nedre högra hörnet av Firefox-läsaren. Klicka där så kan Du se vad som händer när man för muspekaren över olika områden på Din hemsida (i html-koden som dyker upp Firebug-fältet).
Vet inte om det var en felskrivning ovan, men Roles är inte en modul utan det hittar Du under användare (User management).
A-B
Ann-Britt
Tack igen! Firebug är ett
Tack igen!
Firebug är ett fantastiskt verktyg men får det fortfarande inte att fungera.
Har googlat lite och provat med auto men allt jag lyckas med är att auto anpassar så att varje knapp får så mycket bredd som den behöver men inte en pixel till - jag vill alltså att auto eller något annat ska låta varje knapp bli så bred som det bara går utan att totalbredden för alla knappar överskrids (skulle det bli för mycket så kanske man kan lägga till ett max-width: xxpx;).
Som det är nu har jag minsta bredd med min-margin och padding för att få lite "luft" runt varje knapp och det ser jättebra ut MEN när jag sätter så mycket "luft" som jag vill ha så spricker allt så fort user 1 går in eftersom det kontot ser så många fler knappar.
Jag vill alltså att auto (eller något annat) ska fungera på så sätt att det känner av att:
Ex1: Här har vi 10 knappar på total bredd 1000 pixlar - då sätter vi att varje knapp blir 100 pixlar bred (vilket ser bra ut på sidan) detta oavsett om det skulle räckt med 40 pixlar
EX2: Nu kom user 1 in med sina 20 knappar på total bredd 1000 pixlar - då sätter vi att varje knapp blir 50 pixlar (vilket inte ser snyggt ut men inte krossar mitt tema)
Det som hela tiden spökar är att hur jag än försöker så går det inte att begränsa vad user 1 ser vare sig med roles eller de moduler jag hittat.
Gjorde ett desperat försök mot allt bättre vetande att begränsa med PHP men temat verkar inte kunna tolka php-kod ( körde med:
<?phpif($user->name == 'admin') {min-width: 30px;}
?>
/Oscar
Du ska inte köra php kod i
Du ska inte köra php kod i CSS-filen. Det låter som du vill göra något i stil med detta: http://stackoverflow.com/questions/1859243/css-fixed-with-horizontal-men...
//Pontus Nilsson, Digitalist
Tack!!! Det löste mitt
Tack!!!
Det löste mitt problem.
Jquery lösningen vill jag helst ha men jag var för korkad för att få det att fungera (ska prova lite mer framöver), däremot så var det väldigt enkelt att modifiera table-varianten och i alla fall i IE8 och Firefox så fungerar det. Vågar inte titta i en äldre IE-version....
ul {
display: table;
width: 100%;
table-layout: fixed;
}
li {
display: table-cell;
}
Som en sidonotis - försökte baka in en massa PHP-kod i CSS-filerna men det verkar som Drupal vägrade att köra koden. Undrar om det här börjar likna något som gör att man får en massa söta kattungar i Drupalhimlen...
/Oscar
Du borde i CSS specifiera
Du borde i CSS specifiera lite mer exakt vilken ul och li det är du kör det där på så det inte går på alla listningar över hela sajten. Men det kanske du gjort fast inte skriver ovan.
//Pontus Nilsson, Digitalist
Tack Jag la bara in det i den
Tack
Jag la bara in det i den delen av CSS:en som berörde menyerna:
navigation ul {
line-height: 35px;
display: table;
width: 930px;
table-layout: fixed;
}
navigation li {
display: table-cell;
z-index: 999;
}
Så det borde väll inte påverka något annat. Har inte sett några grafiska fel på sidan men är i och för sig mån om att inget är klumpigare än nödvändigt då jag börjat märka prestandaförsämringar efter.... nä förresten, vågar inte tala om hur många moduler jag installerat.
/Oscar