Avatar billede cara-mint Nybegynder
31. januar 2007 - 15:25 Der er 20 kommentarer og
1 løsning

<td> baggrund fra variabel?

Hej alle!

Jeg er ved at udvikle en extension til en hjemmeside i TYPO3 CMS. Men mit spørgsmål er mere PHP/HTML relateret, end TYPO3 relateret..

Hvis jeg henter et billede ned i en variabel, sådan:
$picturefile = $this->cObj->IMAGE($imgTSConfig);

Og udskriver den til skærmen:
$content .= '<td>'.$picturefile.'</td>';

Så kommer billedet fint frem. Ingen problemer.

Men hvis jeg ønsker at benytte billedet som baggrund i en <td> kommer det ikke til syne:

$content .= '<td style="background-image: '.$picturefile.';">bla bla</td>';

Er der nogen som ved om det er muligt at benytte et billede i en variabel som baggrund, og hvordan man gør?

På forhånd tak!
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 15:37 #1
prøv det her:
$content .= '<td style="background-image: url('.$picturefile.');">bla bla</td>';
Avatar billede cara-mint Nybegynder
31. januar 2007 - 15:47 #2
sw_red_6 <-- Tak for forslaget, men det virker desværre ikke. Jeg tror problemet er, at det ikke er stigen til billedet, men derimod selve billedet som er gemt i variablen..?
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 15:54 #3
hvad står der helt præcist i $picturefile?
hvis det er en <img src="">, kan du jo evt. søge i variablen efter src= og hente stien og billede-navnet derfra..
Avatar billede cara-mint Nybegynder
31. januar 2007 - 16:23 #4
sw_red_6 <-- Hvis jeg laver en "var_dump($picturefile)" viser den bare billedet, samt "string(85)" hvilket jeg ikke ved hvad betyder. Så jeg ved ikke om der er andre oplysninger i variablen jeg kan bruge..?
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 16:25 #5
hmm alternativt kunne du kigge i databasen for at se hvad der står der... hvad står der i kildekoden??
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 16:27 #6
har du evt. et link så jeg kan se det?
Avatar billede cara-mint Nybegynder
31. januar 2007 - 16:32 #7
sw_red_6 <-- Jeg sætter virkelig pris på din hjælp, det er pænt af dig! =)
http://www.danskhistorie.dk/index.php?id=180
Billedet skal ligge i højre side inde i "polaroid fotoet". Grunden til at det skal ligge som baggrund er at jeg har en "klips" som skal gå ind over billedet i venstre hjørne. Denne klips er lavet i PNG og ligger øverst.. Hvis du forstår.
Avatar billede sw_red_6 Nybegynder
31. januar 2007 - 16:47 #8
style="background-image: url($picturefile)" <-- det er hvad der står i kildekoden, så det kunne være der fejlen ligger...
hvordan ser den kode ud?
Avatar billede cara-mint Nybegynder
31. januar 2007 - 17:00 #9
Koden ser lige nu sådan ud:
style="background-image: url($picturefile)"
(så det er det samme som kildekoden).

Men hvis jeg skriver:

style="background-image: url('.$picturefile.')"

Så ændrer kildekoden sig til:

style="background-image: url(<img src="typo3temp/pics/516ccc1ab7.jpg" width="276" height="246" border="0" alt="" title="" />)"

Det er jo faktisk tæt på at være rigtigt! Hvordan kan jeg få isoleret stigen typo3temp/pics/516ccc1ab7.jpg samt sørge for at den har den rette størrelse (width="276" height="246")?
Avatar billede mcgoat Nybegynder
31. januar 2007 - 17:17 #10
ehh. så $picturefile indeholder altså også html tags? <img src.....> ? så skal du enten vælge at gemme i din DB uden de tags, altså kun selve filnavnet(og sti) . Eller også skal du have trimmet den string på en måde
Avatar billede cara-mint Nybegynder
31. januar 2007 - 17:40 #11
Ja, det kommer faktisk lidt bag på mig at $picturefile indeholder html tags. Troede at den funktion jeg benyttede til at scallere billedet til rette størrelse "$this->cObj->IMAGE($imgTSConfig);" var smartere end det.. Jeg troede at den returnerede billedet i den rette størrelse, så man kunne arbejde videre med det derfra. Ikke bare sende det tilbage med tilhørende html tags :)

Anyways, nu er det lykkedes mig at isolere stien (src="typo3temp/pics/516ccc1ab7.jpg") og få billedet vist som baggrund. Men proportionerne er helt forkerte. Er der nogen måde at få baggrundsbilledet til at tilpasse sig størrelsen af <td> feltet?
Avatar billede mcardle Nybegynder
31. januar 2007 - 17:53 #12
Du kan bare sætte det her ind.

$picturefile = '<img src="dit_dir/dit_billede.jpg" />';
$picturefile = str_replace('<img src="','',$picturefile);
$picturefile = str_replace('" />','',$picturefile);
echo $picturefile;

Du kan evt. lave 2 variabler, så du kan lave begge dele.
Avatar billede mcardle Nybegynder
31. januar 2007 - 17:54 #13
Uden denne her $picturefile = '<img src="dit_dir/dit_billede.jpg" />'; selvfølgelig.
Avatar billede mcardle Nybegynder
31. januar 2007 - 17:55 #14
Du kan f.eks. sige:

$p_file = str_replace('<img src="','',$picturefile);
$p_file = $picturefile = str_replace('" />','',$picturefile);

style="background-image: url('.$p_file.')"
Avatar billede mcardle Nybegynder
31. januar 2007 - 17:57 #15
hov... rettelse:

$p_file = $p_file = str_replace('<img src="','',$picturefile);
$p_file = $picturefile = str_replace('" />','',$p_file);

style="background-image: url('.$p_file.')"
Avatar billede cara-mint Nybegynder
31. januar 2007 - 18:18 #16
Jamen.. =)
Billedet vil stadig blive vist i sin oprindelige (forkerte) størrelse, ik'?

Problemet er, enten at få resize'et baggrunds billedet til width="276" height="246" inden man sætter det ind i <td> feltet, eller at få det til at tilpasse sig efter dimentionerne i <td> feltet (som jo har størrelsen width="276" height="246").
Avatar billede mcardle Nybegynder
31. januar 2007 - 18:23 #17
Jo... Men du kan jo bare lave et thumbnail af billedet inden:

<?php

function make_thumbnail($path, $filename, $thumbs_dir){

  list($width, $height) = getimagesize($path);
   
    $percent = 0.4;
   
  $newwidth = $width * $percent;
  $newheight = $height * $percent;

  $thumb = imagecreatetruecolor($newwidth, $newheight);
  $source = imagecreatefromjpeg($path);

  imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

  // Her gemmes thumbnail billedet:
  imagejpeg($thumb, $thumbs_dir.'/thumb_'.$filename);
}

make_thumbnail("images/teenkelly.jpg", "teenkelly.jpg", "images/thumbs");

?>
Avatar billede cara-mint Nybegynder
31. januar 2007 - 19:12 #18
Fedt!! Den løsning vil jeg bruge. Tusind tak skal I have!
mcardle, hvis du opretter et svar får du point.
sw_red_6, jeg vil også gerne give dig point. Hvordan gør jeg det smartest? Skal jeg oprette et spørgsmål som hedder "Point til sw_red_6", eller er der regler mod den slags? =)
Avatar billede mcardle Nybegynder
31. januar 2007 - 19:13 #19
Her er mit svar... Tak
Avatar billede mcardle Nybegynder
31. januar 2007 - 19:14 #20
Du opretter bare et spørgsmål der hedder point til sw_red_6, som du selv siger.
Avatar billede sw_red_6 Nybegynder
01. februar 2007 - 08:48 #21
Der er faktisk regler om at der ikke må gives mere end 200 point for et spørgsmål..

men det er såmen lige meget, jeg synes ikke jeg skal have point for det her. Jeg fandt ikke løsningen, så det er ikke nødvendigt... :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester