12/09/2011, 20:01:23
en très rapide parce que malheureusement ce soir je suis super chargé
ma structure FTP :
. => j'ai cmsms
./forum => j'ai fluxbb
./forum/tplcmsms => répertoire
./forum/tplcmsms/index.html => fichier vide pour éviter l'index du contenu
./forum/tplcmsms/tpl.php => fichier de conf cmsms vers fluxbb
les contenus de fichiers :
index.html
tpl.php
Dans CmsMadeSimple tu dupliques ton gabarit et tu parsèmes le code de balise <CMSMS> afin de le structurer
Je m'explique par un exemple simple, voici un gabarit vide que j'ai enrichit de balise
ce code sera donc disséqué en 5 paquets par mon programme :
Ces 5 paquets sont disponible dans l'array $cms de mon programme (ligne 60 de tpl.php)
Tous ne sont pas utile, par exemple dans notre cas il faut penser à conserver $cms[1] et $cms[3] pour respectivement le CSS et le menu de ton site sous CmsMadeSimple.
Il faut donc modifier tpl.php afin de coller à notre exemple, je remplace donc
par
Une fois cela fait tu créés une page et tu lui affecte ton gabarit. Tu change l'url de cette page pour une url complexe moi j'ai choisit /xsa/plu. Cette url doit correspondre avec la ligne 17 de tpl.php donc si tu choisit une url plus complexe oublie pas de répercuter dans tpl.php
Au passage tu penses à changer l'url de ton site (ligne 6 de tpl.php)
Fin de la première partie
ma structure FTP :
. => j'ai cmsms
./forum => j'ai fluxbb
./forum/tplcmsms => répertoire
./forum/tplcmsms/index.html => fichier vide pour éviter l'index du contenu
./forum/tplcmsms/tpl.php => fichier de conf cmsms vers fluxbb
les contenus de fichiers :
index.html
Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Page vierge</title>
</head>
<body>:)
</body>
</html>
tpl.php
Code :
<?php
$cmsms = array();
//Lecture du fichier de cache
$root_url = "http://www.cmsmadesimple.fr";
$filename = PUN_ROOT."tplcmsms/cache.php";
//echo '<!--'.$filename .'-->';
if(is_file($filename))
{
require($filename);
$cmsms = $cmsarr;
} else
{
$cms = file_get_contents("$root_url/xsa/plu");
#$cms = str_replace('<base href="'.$root_url.'/" />','<base href="'.$root_url.'/forum/" />',$cms);
$cms = str_replace('<base href="'.$root_url.'/" />','',$cms);
$searchD = '<link rel="stylesheet" type="text/css" href="'.$root_url.'/tmp/cache/';
$searchF = '.css"';
$posD = stripos($cms, $searchD);
$arrayOldCss = array();
$arrayNewCss = array();
while($posD !== FALSE)
{
$posF = stripos($cms, $searchF, $posD);
$mycss = substr($cms, $posD + 45, $posF - $posD - 45 + 4);
$mycssContent = file_get_contents($mycss);
$mynewcss = str_replace('/tmp/cache/', '/forum/tplcmsms/', $mycss);
$filenamecss = "./tplcmsms/".substr($mynewcss, stripos($mynewcss, '/forum/tplcmsms/') + strlen('/forum/tplcmsms/'));
//creation du fichier de cache pour css
$handle = @fopen($filenamecss , "w");
if (fwrite($handle, $mycssContent) === FALSE) {
echo "Impossible d'ecrire dans le fichier ($filenamecss)";
exit;
}
fclose($handle);
$arrayOldCss[] = $mycss;
$arrayNewCss[] = $mynewcss;
$posD = stripos($cms, $searchD, $posF);
}
for($i = 0; $i < count($arrayOldCss); $i++)
{
$cms = str_replace($arrayOldCss[$i], $arrayNewCss[$i],$cms);
}
$cms = explode('<CMSMS>',$cms);
$cmsms = array();
// $cmsms['<http>'] = $cms[0];
$cmsms['<CMS_header_content>'] = $cms[1];
//$cmsms['</head>'] = $cms[2];
$cmsms['<CMS_body_haut>'] = $cms[3];
$cmsms['<CMS_js>'] = $cms[4];
//$cmsms['<body_centre>'] = $cms[5];
$cmsms['<CMS_body_bas>'] = $cms[6];
//$cmsms['</body>'] = $cms[7];
//creation du fichier de cache
$handle = @fopen($filename, "w");
if (fwrite($handle, print_out($cmsms)) === FALSE) {
echo "Impossible d'ecrire dans le fichier ($filename)";
exit;
}
fclose($handle);
}
$tpl_main = cmsms_parse($cmsms,'<CMS_header_content>', $tpl_main);
$tpl_main = cmsms_parse($cmsms,'<CMS_body_haut>', $tpl_main);
$tpl_main = cmsms_parse($cmsms,'<CMS_body_bas>', $tpl_main);
$tpl_main = cmsms_parse($cmsms,'<CMS_js>', $tpl_main);
function cmsms_parse($cmsms, $balise,$tpl)
{
if(!isset($cmsms[$balise]))
{
return $tpl;
}
return str_replace($balise, $cmsms[$balise], $tpl);
}
function print_out($cmsms)
{
$buffer = '<?php
$cmsarr = array();
';
foreach($cmsms as $key => $value)
{
$buffer .= '$cmsarr["'.$key.'"] =
<<<TEXT
'.$value.'
TEXT;
';
}
$buffer .= '
?>';
return $buffer;
}
?>
Dans CmsMadeSimple tu dupliques ton gabarit et tu parsèmes le code de balise <CMSMS> afin de le structurer
Je m'explique par un exemple simple, voici un gabarit vide que j'ai enrichit de balise
Code :
{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>{sitename} - {title}</title>
{metadata}
<CMSMS>
{cms_stylesheet}
<CMSMS>
</head>
<CMSMS>
<body>
<!-- start header -->
<div id="header">
<h1>{sitename}</h1>
</div>
<!-- end header -->
<!-- start menu -->
<div id="menu">
{menu}
</div>
<!-- end menu -->
<CMSMS>
<!-- start content -->
<div id="content">
<h1>{title}</h1>
{content}
</div>
<!-- end content -->
<CMSMS>
</body>
</html>
ce code sera donc disséqué en 5 paquets par mon programme :
Code :
{process_pagedata}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>{sitename} - {title}</title>
{metadata}
Code :
{cms_stylesheet}
Code :
</head>
Code :
<!-- start header -->
<body>
<div id="header">
<h1>{sitename}</h1>
</div>
<!-- end header -->
<!-- start menu -->
<div id="menu">
{menu}
</div>
<!-- end menu -->
Code :
<!-- start content -->
<div id="content">
<h1>{title}</h1>
{content}
</div>
<!-- end content -->
Code :
</body>
</html>
Ces 5 paquets sont disponible dans l'array $cms de mon programme (ligne 60 de tpl.php)
Tous ne sont pas utile, par exemple dans notre cas il faut penser à conserver $cms[1] et $cms[3] pour respectivement le CSS et le menu de ton site sous CmsMadeSimple.
Il faut donc modifier tpl.php afin de coller à notre exemple, je remplace donc
Code :
$cmsms = array();
// $cmsms['<http>'] = $cms[0];
$cmsms['<CMS_header_content>'] = $cms[1];
//$cmsms['</head>'] = $cms[2];
$cmsms['<CMS_body_haut>'] = $cms[3];
$cmsms['<CMS_js>'] = $cms[4];
//$cmsms['<body_centre>'] = $cms[5];
$cmsms['<CMS_body_bas>'] = $cms[6];
//$cmsms['</body>'] = $cms[7];
par
Code :
$cmsms = array();
$cmsms['<CMS_css>'] = $cms[1];
$cmsms['<CMS_menu>'] = $cms[3];
Une fois cela fait tu créés une page et tu lui affecte ton gabarit. Tu change l'url de cette page pour une url complexe moi j'ai choisit /xsa/plu. Cette url doit correspondre avec la ligne 17 de tpl.php donc si tu choisit une url plus complexe oublie pas de répercuter dans tpl.php
Au passage tu penses à changer l'url de ton site (ligne 6 de tpl.php)
Fin de la première partie