Tel. 042-353-2371

ÆòÀÏ ¿ÀÀü 9½Ã ~ ¿ÀÈÄ 7½Ã
±â¾÷ÀºÇà

010-8649-6758

¿¹±ÝÁÖ:Á¦ÁÖ»ç¶û(¼ÛÁø¾Æ)
PHP
Ȩ > ȨÆäÀÌÁöÁ¦ÀÛ±³½Ç > PHP

Ä«Å×°í¸® Ŭ·¡½º&ÇÔ¼ö
Á¦¸ñ Apolda Template ( ÅÛÇø®Æ® ) 0.1
ÀÛ¼ºÀÚ freeweb
ÀÛ¼ºÀÏÀÚ 2009-12-09
Á¶È¸¼ö 1801
==============  
¼Ò °³ (INTRO)  
==============  

ÅÛÇø´ÀÌ ±â´ÉÀÌ ¸¹¾ÆÁü¿¡ µû¶ó µ¢Ä¡µµ Ä¿Áö°í ºÒÇÊÇÑ ±â´Éµéµµ ¸¹ÀÌ Æ÷ÇԵȰÍÀÌ ¸¹½À´Ï´Ù.
º» Ŭ·¡½º´Â ¾ÆÁÖ °¡º­¿î ÅÛÇø´ Ŭ·¡½ºÀÔ´Ï´Ù. ÇÏÁö¸¸ ´ÙÁß Block±â´ÉÀ» °¡Áö°í ÀÖÀ¸¸ç
»ç¿ë¹ýÀÌ ºñ±³Àû °£´ÜÇÕ´Ï´Ù. ±»ÀÌ »ç¿ëÇÏÁö ¾Ê´õ¶óµµ ÇÁ·Î±×·¥ ±¸¼º°ú °øºÎ¿¡ µµ¿òÀÌ
µÉµíÇÑ Å¬·¡½º ÀÔ´Ï´Ù.

==============  
¶óÀ̼¾½º  
==============  

GNU GPL

=============  
¼³ Ä¡  
=============  

ÅÛÇø´ Ŭ·¡½º´Â ÀÚüÀûÀ¸·Î ÀÛµ¿ÇÏ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î ¼³Ä¡°úÁ¤ÀÌ µû·Î ¾ø°í  
ÇØ´ç ÆÄÀÏÀ» ¾÷·Îµå ÇÏ´Â °Í¸¸À¸·Î ¼³Ä¡´Â ¿Ï·á µË´Ï´Ù.  


=============  
¼Ò½ºÄÚµå
=============  

ÁÖ¼®Àº Á¦°¡ÇÏ¿´½À´Ï´Ù. ( ´Ù¿î¹Þ´Â ¼Ò½º³»¿¡´Â ÁÖ¼®Æ÷ÇÔ )


<?php

define
("TEMPLATE_ERR_FILE","Could not load template file."
);

class
Template
{

    var
$delimiterStart = "{"
;
    var
$delimiterEnd = "}"
;

    var
$t
;
   
    var
$templatefile
;
    

    function
Template($filename = ""
)
    {
        
/* todo:
           - remove setting error messages from constructor
           ( to a base class ? )
         */
        
$this->loadTemplateFile($filename
);
    }


    function
loadTemplateFile($filename = ""
)
    {
        if (!
$filename
)
        return
false
;
        if (
$filename
)
        
$this->templatefile = $filename
;
        if (!
$fp = @fopen($this->templatefile,'r'
))
        {
        
$this->halt(TEMPLATE_ERR_FILE
);
        }
        
$this->t = fread($fp,filesize($this->templatefile
));
        
fclose($fp
);
        
$this->_initTemplate
();
    }

    function
loadTemplateContent($templatestring=""
)
    {
        
$this->t = $templatestring
;
        
$this->_initTemplate
();
    }

    function
_initTemplate
()
    {
        
preg_match_all("/<!--s+BEGINs+(.*)?s+-->s*n*s*(.*)s*n*s*<!--s+ENDs+(1)s+-->/ms",$this->t,$ma
);
        for (
$i = 0; $i < count($ma[0]); $i
++)
        {
        
$search = "/s*n*<!--s+BEGINs+(" . $ma[1][$i] . ")?s+-->(.*)<!--s+ENDs+(" . $ma[1][$i]. ")s+-->s*n*/ms"
;
        
$replace = $this->delimiterStart . $ma[1][$i] . $this->delimiterEnd
;
        
$this->bl[$ma[1][$i]] =& new Template
();
        
$this->bl[$ma[1][$i]]->loadTemplateContent($ma[2][$i
]);
        
$this->t = preg_replace($search,$replace,$this->t
);
        }
    }

    function
fetchBlock($blockName
)
    {
        if (isset(
$this->bl[$blockName
]))
        return
$this->bl[$blockName
];
        else
        return
false
;
    }

    function
assign($varName,$varValue=false
)
    {
        if (
is_array($varName
))
        {
        foreach (
$varName as $key => $value
)
            {
            
$this->pl[$key][] = $value
;
            }
        }
        else
        {
        
$this->pl[$varName][] = $varValue
;
        }
    }


    function
reset
()
    {
        unset(
$this->pl
);
    }


    function
out
()
    {
        print
$this->get
();
    }


    function
get
()
    {
        if (
is_array($this->pl
))
        {
        foreach (
$this->pl as $key => $value
)
            {
            
$search = $this->delimiterStart . $key . $this->delimiterEnd
;
            
$replaceText = ""
;
            for (
$i = 0; $i < count($this->pl[$key]); $i
++)
            {
                if (
is_object($this->pl[$key][$i
]))
                
$replaceText .= $this->pl[$key][$i]->get
();
                else
                
$replaceText .= $this->pl[$key][$i
];
            }
            
$this->t = str_replace($search,$replaceText,$this->t
);
            }
        }
        return
$this->t
;
    }

}
?>

 
 



÷ºÎÆÄÀÏ
Down1310-apoldaTemplate-current.tar.gz
À̸§ ºñ¹Ð¹øÈ£



* ÇÑ±Û 1000ÀÚ ±îÁö¸¸ ÀԷ°¡´É : ÀÚ