Gå til innhold

Template-variabler


Anbefalte innlegg

Hei.

 

Jeg lurer på om det er noen som kan hjelpe meg med dette problemet.

 

Jeg ønsker muligheten for template-variabler slik at:

 

if($comments==1)
{
echo "hei";
}

 

 

kan gjøres om til for eksempel:

 

<IfCommentsAllowed> </IfCommentsAllowed>

 

slik at man kan skrive det rett inn i HTML.

 

Noen som har erfaringer med dette og kan hjelpe meg ut?

Lenke til kommentar
Videoannonse
Annonse

Hvis du vil bruke <IfCommentsAllowed> and family, må du lage en template engine som kan parse HTML-en og gjøre det du ønsker, dette kan bli temmelig avansert og jeg er usikker på om det eksisterer noen *gode* biblioteker som gjør akkurat dette (bruke html-tags for logikk).

 

Alternativet er å bruke f.eks. Twig, som er en template engine med en litt annen syntaks, eller rett og slett bare bruke PHP, som er et OK template-språk i seg selv (spes. med alternativ syntaks).

 

<? if ($comments == 1): ?>
 Hei
<? endif; ?>

Endret av Alex Moran
Lenke til kommentar

Du må kjøre templatet gjennom en script i noe denne duren

 

Index.php

switch($page):
   case "index":
       $page = generateFromTemplate("index.html");
   case "about":
       $page = generateFromTemplate("about.html");
echo $page;

 

og "GenerateFromTemplate" funksjonen kan du da fjerne <IfCommentsAllowed> (med innhold) om comments er diabled

function generateFromTemplate($templateFile)
{
   $file = file_get_contents($templateFile);
   if($commentsEnabled == False)
   {
       $pattern= '/<IfCommentsAllowed>(.?)</IfCommentsAllowed>/';
       $file = preg_replace($pattern, ' ', $file);
   }
}

 

Altså bruke regexp til å finne alle tilfeller av den tagen og fjerne den, med alt innhold.

  • Liker 1
Lenke til kommentar

Du må kjøre templatet gjennom en script i noe denne duren

 

Index.php

switch($page):
case "index":
	$page = generateFromTemplate("index.html");
case "about":
	$page = generateFromTemplate("about.html");
echo $page;

 

og "GenerateFromTemplate" funksjonen kan du da fjerne <IfCommentsAllowed> (med innhold) om comments er diabled

function generateFromTemplate($templateFile)
{
$file = file_get_contents($templateFile);
if($commentsEnabled == False)
{
	$pattern= '/<IfCommentsAllowed>(.?)</IfCommentsAllowed>/';
	$file = preg_replace($pattern, ' ', $file);
}
}

 

Altså bruke regexp til å finne alle tilfeller av den tagen og fjerne den, med alt innhold.

 

Takk for hjelpen, igjen! Hjertelig takk :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...