Avatar billede doomstone-dk- Nybegynder
27. oktober 2007 - 13:09 Der er 2 kommentarer og
1 løsning

extract egne html tags

Hejsa jeg er ved at updatere en template class jeg har lavet.

Det gør at bruger kan skriver
        <IF name="truetest">
            TRUE truetest<br />
        <else>
            FALSE truetest<br />   
        </if NAME="truetest">
i en template fil.
og så ved at kalde funktionen
$ft->tif('body', "truetest", TRUE);
vil så så echo the Sande eller falske værdi udfra om man har skrevet TRUE eller FALSE.
Det virker ok nu, men der er 3 ting jeg gerne ville ændre.
1: f.eks. hvis man har skrevet <if name = "truetest" > så vil den ikke kunne finde den. Og så kunne jeg godt tænke mig at man ikke 2: behøvede at skrive name="truetest" i slut taget, og den skal stadig kunne finde ud af hvis der f.eks. var endnu en if inde i if'en
3: at man kan putte flerer augumenter ind i selve <if> tagget

Det er sådan her jeg gør det nu.
        // Display content if true or false
        function tif($template, $macro, $value)
        {   
            //laver lige lidt syntax clean up
            $this->files [$template] = str_ireplace("<if", "<if", $this->files [$template]);
            $this->files [$template] = str_ireplace("</if", "</if", $this->files [$template]);
            $this->files [$template] = str_ireplace("name=", "name=", $this->files [$template]);
           
            $true_content = "";
            $fale_content = "";
            $content = "";
            $tmp = explode("<if name=\"".$macro."\">", $this->files [$template]);
            if(count($tmp)>0)
            {
                $content =  explode("</if name=\"".$macro."\">", $tmp[1]);
                // Creating an string with the text that we shale replace
                $replacer = "<if name=\"".$macro."\">".$content[0]."</if name=\"".$macro."\">";
                // now we got the content of the if, lets see if there are an else.
                $spicer = explode("<else>", $content[0]);
                if(count($spicer)>1)
                {
                    if($value == TRUE)
                    {
                        // Replaces with the true content
                        $this->files [$template] = str_ireplace($replacer, $spicer[0], $this->files [$template]);   
                    }
                    else
                    {
                        // Replacing with the false content
                        $this->files [$template] = str_ireplace($replacer, $spicer[1], $this->files [$template]);   
                    }
                }
                else
                {
                    if($value == TRUE)
                    {
                        // Replaces with the true content
                        $this->files [$template] = str_ireplace($replacer, $content[0], $this->files [$template]);   
                    }
                    else
                    {
                        // We have no false output
                        $this->files [$template] = str_ireplace($replacer, "", $this->files [$template]);   
                    }   
                }
            }       
            return; // Returner erstattede source
        }

Hvis i vil ser mere af classen og hvordan den virker.
Classen: http://androme.dk/eksperten/class.FastTemplates.v1.phps
Index.php: http://androme.dk/eksperten/index.phps
Design filen: http://androme.dk/eksperten/main.html

Har i en ide til hvordan jeg ville kunne gøre dette?
Tak på forhånd!
Kasper Søgaard

btw, andre ideer til andre forbedringer er meget velkommen
Avatar billede doomstone-dk- Nybegynder
27. oktober 2007 - 15:16 #1
Har hørt noget om at man kan bruge DOM, dog har jeg ikke helt kunne finde ud af hvordan.
Avatar billede doomstone-dk- Nybegynder
30. oktober 2007 - 10:04 #2
Min server er nede lige pt, men får den op snaret muligt
Avatar billede doomstone-dk- Nybegynder
05. november 2007 - 23:29 #3
Lukker
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