Headerbild som byts ut och som "fadas" emellan

Events happening in the community are now at Drupal community events on www.drupal.org.
glazyr's picture

Hej,
Hur gör jag enklast för att byta ut min headerbild med jämna mellanrum plus att det ska fadas snyggt emellan. Jag är nybörjare på Drupal så ha tålamod. Och vad det gäller javascript så har jag inte pysslat med det heller sen 90-talets slut. Om man nu ska använda javascript, var lägger jag då denna kod. Eller finns det någon färdig funktion att använda.

Har försökt att leta i besvarade frågor men antar att det är lite off topic på sätt och vis.

Får väl passa på att presentera mig också... egen företagare inom grafisk form och webb. Upptäckte Drupal i april i år. Har tittat på några andra CMS men det var Drupal jag föll för. Vill bli skarp på att bygga teman i första hand. Har tidigare arbetat som systemutvecklare, IT-arkitekt och projektledare inom bank o finansbranschen. Långt i från webbvärlden med andra ord, så jag har massor att ta igen på det här området.

Comments

Att fejda bilder är enkelt

zoo33's picture

Att fejda bilder är enkelt med Jquery (som ingår i Drupal). Det finns exempelvis en plugin som heter Cycle som du kan använda.

För att det ska funka måste du börja med att se till att alla dina headerbilder listas i HTML-koden, typ såhär:

<ul class="header-images">
<li><img src="path/image1.jpg" alt="" /></li>
<li><img src="path/image2.jpg" alt="" /></li>
<li><img src="path/image3.jpg" alt="" /></li>
<li><img src="path/image4.jpg" alt="" /></li>
</ul>

Men du vill ju bara att en ska synas från början, eller hur? (Det måste också se OK ut även om man inte har JS.) Du fixar det med CSS, ungefär såhär:

ul.header-images, ul.header-images li {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
ul.header-images {
  position: relative;
  /* Bredd och höjd motsvarar exakt storlek på bilderna. */
  width: XXXpx;
  height: XXXpx;
}
ul.header-images li {
  position: absolute;
  left: 0;
  top: 0;
}

Sen säger du åt Cycle att rotera bilderna i .header-images. Exakt hur du gör det och var du lägger in ovanstående kod kan du kanske hitta information om.

/ Hannes Lilljequist – SthlmConnection

Ja, till slut blev det

glazyr's picture

Ja, till slut blev det enkelt. Satt lääääänge och hade problem men insåg till slut att det var mina sökvägar som det var fel på. Då gick plötsligt allt bra. Men antagligen så har jag gjort det ovanligt knöligt ändå. Bytte t.o.m. script till innerfade istf cycle innan jag förstod att det var sökvägarna som var boven.

Jag la ccs-koden i mitt temas css. Jag la html-koden mellan logga och navigation i page.tpl.php. Och scriptlänkarna mellan <head> och </head> i page.tpl.php. Skulle vilja ha det snyggare gjort egentligen. Men nu funkar det i alla fall.

      
<head>
....
<script type="text/javascript" src="fullständigsökväg_till_mitt_tema/jquery.js"></script>
<script type="text/javascript" src="fullständigsökväg_till_mitt_tema/jquery.innerfade.js"></script>
<script type="text/javascript">
$(document).ready(
    function(){

                   $('.header-images').innerfade({
                      speed: 3000,
                       timeout: 7000,
                     type: 'sequence',
                        containerheight: '250px'
                 });
            });
    </script>

       <style type="text/css" media="screen, projection">
                   @import url(mitt_temas_css.css);
       </style> 
</head>

Ett snyggare sätt hade

zoo33's picture

Ett snyggare sätt hade kanske varit att använda funktionen drupal_add_js() i template.php i temat.

Och som flera har påpekat så är Views ett bra sätt att få till del 1 ovan – själva HTML-koden – om du vill kunna byta bilder enkelt. Du kan lägga den i ett block i en region som ligger på rätt ställe i page.tpl.php, eller också definiera en temavariabel i template.php som innehåller view:n och som du sen skriver ut i page.tpl.php.

/ Hannes Lilljequist – SthlmConnection

Smidigaste lösningen är

freakalis's picture

Smidigaste lösningen är att använda sig av Views rotator (http://drupal.org/project/views_rotator)

Skapa en ny nodtyp för bilderna. Lägg på ett Imagefield (http://drupal.org/project/imagefield) fält på noden. Där kan du sätta storlek så den automatisk skalar ner bilden till en viss storlek.

Skapa en ny view som du gör till ett block. Begränsa till 1 nod. Hämta ut imagefield fältet i viewn.

Voila klart.

// Christian Johansson

Tack snälla för hjälpen!!

glazyr's picture

Jag ska börja att prova jQuery men sen kommer jag antagligen att prova viewsrotator också.

Intressant fråga och svar

Azone's picture

Intressant fråga från glazyr,
Jag är ännu mer nybörjare på drupal, eller på det mesta faktiskt ... och undrar därför var man lägger html-koden i JQuery varianten?
ccs-delen hajar jag. Jag menar html byggs ju dynamiskt så, kommer man åt att lägga den koden någonstans?

För fejdade bilder i page och story etc förstår jag "kanske" att det går bra, men för headern som glazyr frågade om.
Jag skulle vilja göra något liknande.

--
Azone

Ditt tema har en fil som

frjo's picture

Ditt tema har en fil som heter "page.tpl.php". Det är den filen som bygger upp själva sidan med huvud, fot, sidokolumner etc.

I dont know the question.

dixon_'s picture

I dont know the question. But the awnser is Views!

Skämt och sido, här är en bra video kring ämnet.

Tittade på videon och tror

glazyr's picture

Tittade på videon och är ganska säker på att det blir den lösningen nästa gång.

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week