Mysql
 sql >> Base de données >  >> RDS >> Mysql

Créer des balises HTML personnalisées pour le CMS ?

J'ai écrit une classe qui fait exactement ce que vous demandez pour mon propre cms. J'ai téléchargé le src pour vous car bien que je ne l'ai jamais publié, la source est publiée sous une licence de style BSD. Balises personnalisées

Cela vous permet essentiellement de faire exactement ce que vous demandez. Dans la classe, il y a quelques exemples de balises personnalisées, donc je ne collerai pas de code ici. Faites-moi savoir comment vous allez.

Edit 1 :Exemple de code comme demandé. :-)

Edit 2 :je devrais ajouter qu'il prend en charge les balises personnalisées enterrées.

Edit 3 :il prend également en charge la création de modèles en ligne et la substitution de balises, c'est-à-dire

<ct:inline some="attribute">
    This is an in line template. <br />
    This is a #{tag} that can be accessed by the callback function
</ct:inline>

PHP/HTML :exemple.php

<?php

$current_dir = dirname(__FILE__).DIRECTORY_SEPARATOR;
require_once dirname($current_dir).DIRECTORY_SEPARATOR.'customtags.php';

$ct = new CustomTags(array(
    'parse_on_shutdown'     => true,
    'tag_directory'         => $current_dir.'tags'.DIRECTORY_SEPARATOR,
    'sniff_for_buried_tags' => true
));

?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>untitled</title>
    <meta name="generator" content="TextMate http://macromates.com/">
    <meta name="author" content="Oliver Lillie">
    <!-- Date: 2010-07-10 -->
</head>
<body> 

    <ct:youtube id="wfI0Z6YJhL0" />

</body>
</html>

Fonction PHP de balise personnalisée :tags/youtube/tag.php :

function ct_youtube($tag)
{
    return '<object id="'.$tag['attributes']->id.'" value="http://www.youtube.com/v/'.$tag['attributes']->id.'" /><param ......>';
}

Sortie :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd"> 

<html lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>untitled</title> 
    <meta name="generator" content="TextMate http://macromates.com/"> 
    <meta name="author" content="Oliver Lillie"> 
    <!-- Date: 2010-07-10 --> 
</head> 
<body> 

    <object id="wfI0Z6YJhL0" value="http://www.youtube.com/v/wfI0Z6YJhL0" /><param ......> 

</body> 
</html>