Module forum -
François - 08/07/2011
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.4.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour à tous.
J'ai besoin d'utiliser un forum sur un site associatif.
Le module Forum Made Simple ne me conviens que moyen (WYSIWYG limité, pas de possibilité de déplacer les messages d'un fil de discussion à un autre ...).
Donc avant de mettre les mains dans le cambouis pour faire un module à ma sauce..., quelqu'un aurait-il utilisé un autre module.
Et également quel est le moteur utilisé pour ce super forum ici ?
A tout bientôt
Module forum -
bess - 08/07/2011
salut François
ici on utilise FluxBB, modifié à ma sauce pour intégrer un gabarit de cmsms, c'est assez complexe à faire, je peux te filer mes modif mais il te faut de solide connaissance php !
j'ai essayé il y a longtemps avec un phpBB avec moins de succès car très lourd
Module forum -
François - 09/07/2011
Merci Bess,
Je vais jeter un œil sur FluxBB, et autrement faire un petit module, je risque de devoir avoir la possibilité d'intégrer des images et vidéos dans les posts (le forum étant restreint à des adhérents...). C'est en fait à mi chemin entre le forum et l'espace collaboratif...
A tout bientôt
Module forum - laguich - 12/09/2011
Bonjour Bess,
Moi par conttre je suis fortement interesser par ta procédure d'intégration Fluxbb.
Merci d'avance
Module forum -
bess - 12/09/2011
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
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 :
<!-- 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 -->
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
Module forum -
bess - 12/09/2011
A ce niveau normalement si tu vas sur
www.tonsite.tld/forum/tplcmsms/tpl.php tu devrais avoir une erreur du style
Citation :Warning: fwrite(): supplied argument is not a valid stream resource in /xxxxxxx/cmsms.fr/forum/tplcmsms/tpl.php on line 38
Impossible d'ecrire dans le fichier (./tplcmsms/stylesheet_xxxx_xxxxx.css)
c'est normal (quoi que je pourrais le rendre plus propre) c'est par ce qu'en soit même ce code ne fait rien. Il faut qu'il soit appelé depuis fluxbb.
Petit résumé de son fonctionnement : Il va pomper le contenu de la page
www.tonsite.tld/xsa/plu, faire des modifications d'url dans le code trouvé, le parser pour le mettre dans un tableau de valeur et va copier les fichiers css nécessaire vers le répertoire /forum/tplcmsms
une fois ces fichiers css copiés il ne refait plus toute l'opération, ça a le mérite d'éviter de surcharger le serveur : il réutilise directement ce qui a déjà été fait. C'est une sorte de cache local de ton site cmsms mis à disposition pour fluxbb.
N'oublie donc pas que toute modification de CSS ou de Gabarit dans CmsMadeSimple ne sera pas répercuté sur fluxbb tant que tu n'auras pas vidé ce cache local : les fichiers css et le fichier cache.php
Ne supprime ni index.html, ni tpl.php
fin de la seconde partie
Module forum -
bess - 12/09/2011
la vision de mon programme c'était : je touche au minimum aux sources de fluxbb. J'ai pas trouvé pour minimiser encore plus l'impact mais je suis preneur si kkun à des idées.
ouvrir le fichier ./forum/header.php
trouver
Code :
$tpl_main = str_replace('<pun_status>', $tpl_temp, $tpl_main);
// END SUBST - <pun_status>
ajouter après :
Code :
//CMS
include_once('tplcmsms/tpl.php');
enregistrer
La suite des modifications se ferra selon tes balises <CMSMS> de ton gabarit de cmsmadesimple et ce que tu en aura retenu dans tpl.php. Dans notre exemple j'en ai conservé 2 que j'ai placé respectivement dans $cmsms['<CMS_css>'] et $cmsms['<CMS_menu>'].
J'ai concrètement 2 balises utilisables dans les templates de fluxbb : <CMS_css> et <CMS_menu> (attention aux majuscules)
Je modifies donc les templates de fluxbb suivant :
./forum/include/template/maintenance.tpl
./forum/include/template/redirect.tpl
./forum/include/template/admin.tpl
./forum/include/template/main.tpl
./forum/include/template/help.tpl
à chaque fois : après le code
on ajoute
et après le code
on ajoute le code
je supprimes également les balises <body> présentes dans ces tpl pour éviter qu'elles ne fassent doublon avec les miennes.
fin de la troisième partie
Module forum -
bess - 12/09/2011
normalement si j'ai rien oublié tu dois avoir finit.
le plus gros du travail restant pour toi est de régler les détails de CSS afin d'inclure le CSS de fluxbb dans celui de CmsMadeSimple
Dis moi si tu t'en es sorti
Module forum - laguich - 12/09/2011
On va commencer par :
Merci de ta réactivité.
Ensuite, j'ai un peu près compris ton cheminement.
Tout est réaliser sauf :
Citation :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
Car je n'ai pas tous saisi ou ne sait pas encore comment gérer ces pages "spéciales"(C ca les débutants)
Quand je crée ma page, elle s'affiche tjrs avec le lien
Citation :http://localhost:8888/cmsmadesimple-1.9.4.3-full/index.php?page=forumz
comme tu vois je le fais en local d'abord
Donc si tu pouvais m'expliquer comment créer ta page, mm si cela à l'air ridicule je suppose.
bonne soirée
Module forum -
bess - 12/09/2011
C'est assez simple : tu utilises les url classiques, moi je suis en pretty url
pour toi il faut donc créer une page, lui donner une url complexe (par exemple forumzzzz) ce qui donnera
Citation :http://localhost:8888/cmsmadesimple-1.9.4.3-full/index.php?page=forumzzzz
pour l'afficher. Évidement : désactive son affichage dans ton menu
ensuite dans tpl.php n'oublie pas de changer "/xsu/plu" par "/index.php?page=forumzzzz"
Module forum - laguich - 13/09/2011
Pas facile cela ne marche pas, je te mets les pages modifiées pour controles :
Gabarit Ncleanblue2 :
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" lang="en">
{* Change lang="en" to the language of your site *}
{* note: anything inside these are smarty comments, they will not show up in the page source *}
<head>
{if isset($canonical)}<link rel="canonical" href="{$canonical}" />{elseif isset($content_obj)}<link rel="canonical" href="{$content_obj->GetURL()}" />{/if}
<title>{title} | {sitename}</title>
{* The sitename is changed in Site Admin/Global settings. {title} is the name of each page *}
{metadata}
{* Don't remove this! Metadata is entered in Site Admin/Global settings. *}
<CMSMS>
{cms_stylesheet}
{* This is how all the stylesheets attached to this template are linked to *}
<CMSMS>
{cms_selflink dir="start" rellink=1}
{cms_selflink dir="prev" rellink=1}
{cms_selflink dir="next" rellink=1}
{* Relational links for interconnections between pages, good for accessibility and Search Engine Optmization *}
<!--[if IE 6]>
<script type="text/javascript" src="modules/MenuManager/CSSMenu.js"></script>
<![endif]-->
{* The above JavaScript is required for Menu - NCleanBlue-css to work in IE6 *}
{* the literal below and the /literal at the end are needed whenever there are {"curly brackets"} as smarty will think it's something to process and will throw an error *}
{* IE6 png fix *}
{literal}
<!--[if IE 6]>
<script type="text/javascript" src="uploads/NCleanBlue/js/ie6fix.js"></script>
<script type="text/javascript">
// argument is a CSS selector
DD_belatedPNG.fix('.sbar-top,.sbar-bottom,.main-top,.main-bottom,#version');
</script>
<style type="text/css">
/* enable background image caching in IE6 */
html {filter:expression(document.execCommand("BackgroundImageCache", false, true));}
</style>
<![endif]-->
{/literal}
</head>
<body>
<CMSMS>
<div id="ncleanblue">
<div id="pagewrapper" class="core-wrap-960 core-center">
{* start accessibility skip links *}
<ul class="accessibility">
<li>{anchor anchor='menu_vert' title='Skip to navigation' accesskey='n' text='Skip to navigation'}</li>
<li>{anchor anchor='main' title='Skip to content' accesskey='s' text='Skip to content'}</li>
</ul>
{* end accessibility skip links *}
<hr class="accessibility" />
{* Horizontal ruler that is hidden for visual browsers by CSS *}
{* Start Header, with logo image that links to the default start page *}
<div id="header" class="util-clearfix">
{* logo image that links to the default start page. Logo image is changed in the style sheet "Layout: NCleanBlue" *}
<div id="logo" class="core-float-left">
{cms_selflink dir="start" text="$sitename"}
</div>
{* Start Search, the input "Submit" is using an image, CSS: div#search input.search-button *}
<div id="search" class="core-float-right">
{search search_method="post"}
</div>
{* End Search *}
<span class="util-clearb"> </span>
{* Start Navigation, style sheet "Layout: NCleanBlue", starting at Menu ROOT *}
<h2 class="accessibility util-clearb">Navigation</h2>
{* anything class="accessibility" is hidden for visual browsers by CSS *}
<div class="page-menu util-clearfix">
{menu loadprops=0 template='cssmenu_ulshadow.tpl'}
</div>
<hr class="accessibility util-clearb" />
{* End Navigation *}
</div>
{* End Header *}
{* Start Content (Navigation and Content columns) *}
<div id="content" class="util-clearfix">
{* Start Optional tag CMS Version Information, also is a good example how smarty works, the big star that holds the version number, you may remove it here and the style sheet where it is marked.
<div title="CMS - {cms_version} - {cms_versionname}" id="version">
{capture assign='cms_version'}{cms_version|lower}{/capture}{"/-([a-z]).*/"|preg_replace:"":$cms_version}
</div>*}
{* End Optional tag *}
{* Start Bar *}
<div id="bar" class="util-clearfix">
{* Start Breadcrumbs, a bit of letting you know where your at *}
<div class="breadcrumbs core-float-right">
{breadcrumbs starttext='You are here' root='Home' delimiter='»'}
</div>
{* End Breadcrumbs *}
<hr class="accessibility util-clearb" />
</div>
{* End Bar *}
{* Start left side *}
<div id="left" class="core-float-left">
<div class="sbar-top">
<h2 class="sbar-title">News</h2>
</div>
<div class="sbar-main">
{* Start News *}
<div id="news">
{news number='3' detailpage='news'}
</div>
<img class="screen" src="uploads/NCleanBlue/screen-1.6.jpg" width="139" height="142" title="CMS - {cms_version} - {cms_versionname}" alt="CMS - {cms_version} - {cms_versionname}" />
{* End News *}
</div>
<span class="sbar-bottom"> </span>
</div>
{* End left side *}
{* Start Content Area, right side *}
<div id="main" class="core-float-right">
{* main top, holds top image and print image *}
<div class="main-top">
<div class="print core-float-right">
{print showbutton=true}
</div>
</div>
<CMSMS>
{* main content *}
<div class="main-main util-clearfix">
<h1 class="title">{title}</h1>
{content}
</div>
{* Start main bottom and relational links *}
<div class="main-bottom">
<div class="right49 core-float-right">
{anchor anchor='main' text='^ Top'}
</div>
<div class="left49 core-float-left">
<span>
{cms_selflink dir="previous" label="Previous page: "}
{* The label parameter doesn't need to be there if you're using English, but is here to show how it's used if you don't want the English text "Previous page" *}
</span>
<span>
{cms_selflink dir="next"}
</span>
</div>
{* End relational links *}
<hr class="accessibility" />
</div>
{* End main bottom *}
</div>
{* End Content Area, right side *}
</div>
{* End Content *}
<CMSMS>
</div>
{* end pagewrapper *}
<span class="util-clearb"> </span>
{* Start Footer *}
<div id="footer-wrapper">
<div id="footer" class="core-wrap-960">
{* first foot menu *}
<div id="ffbb" class="block core-float-left">
{cms_selflink ext='http://www.ffbb.com/' text='FFBB '}
</div>
{* second foot menu if active page has children *}
<div id="comite" class="block core-float-left">
{cms_selflink ext='http://www.basketmayenne.com/' text='Comite 53'}
</div>
{* edit the footer in the Global Content Block called "footer" *}
<div class="block cms core-float-left">
{global_content name='footer'}
</div>
<span class="util-clearb"> </span>
</div>
</div>
{* End Footer *}
</div>
{* End Div *}
</body>
</html>
le TPL :
Code :
<?php
$cmsms = array();
//Lecture du fichier de cache
$root_url = "http://localhost:8888/cmsmadesimple-1.9.4.3-full";
$filename = PUN_ROOT."tplcmsms/cache.php";
//echo '<!--'.$filename .'-->';
if(is_file($filename))
{
require($filename);
$cmsms = $cmsarr;
} else
{
$cms = file_get_contents("$root_url/index.php?page=forum");
#$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['<CMS_css>'] = $cms[1];
$cmsms['<CMS_menu>'] = $cms[3];
//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;
}
?>
pour les fichiers main et autres c bon, je pense
et voici des vue de la page que cela me crées.
http://bacdaon.infos.st/forum/vue.tiff
http://bacdaon.infos.st/forum/vue2.tiff
http://bacdaon.infos.st/forum/vue3.tiff
Merci d'avance
Tu dis de ne pas mettre le titre dans le menu, mais comment retourne tu dans le forum alors?
Un tare, je sais
Tentative en ligne idem.
http://bacdaon.infos.st/forum , comme ca tu peux le code source du forum, on y vois <CMS_css> et <CMS_menu>
Module forum -
bess - 14/09/2011
peut tu réactiver ton site cmsms et me donner l'url de la page.
Citation :Tu dis de ne pas mettre le titre dans le menu, mais comment retourne tu dans le forum alors?
tu dois avoir un lien de redirection dans cmsmadesimple qui pointe vers /forum (l'install de fluxbb), ça c'est sur. Mais il ne faut pas d'entrée dans ton menu pointant vers /xsa/plu ta page secrète.
Dans tes images je vois que tu confond les deux. regarde cette page
http://www.cmsmadesimple.fr /xsa/plu pour comprendre ce que je dis quand je parle de page secrète : une page non présente dans mon menu qui sert plateau de présentation pour tpl.php
une fois que tu as réactivé ton site préviens moi on continue à regarder.
Module forum - laguich - 14/09/2011
site réactivé
Merci
pour le reste, je vois ce soir
Module forum -
bess - 14/09/2011
la page avec l'url /forum ne contient pas tes balises <CMSMS> dans le code HTML généré
de toute évidence tu ne lui as pas affecté le bon gabarit modifié ou tu n'as pas vidé le cache de ton installation.
Module forum - laguich - 14/09/2011
J'avoue que je suis perdu sur ma création de page "secrete" et redirection.
Acces site : ****
Si tu veux
Module forum -
bess - 14/09/2011
je regarde demain
Module forum - laguich - 16/09/2011
Je n'avance pas
Module forum -
bess - 16/09/2011
bon j'ai fait 2/3 trucs qui ont bien avancé jusqu'au moment ou ton hébergeur m'a fait chier avec des permissions de merde à avoir et je ne sais pas quoi...
en gros côté CmsMadeSimple on est ok mais le fichier tpl.php s'il fait bien son travail est incapable de créer les fichiers temporaires nécessaire au bon fonctionnement.
Je l'ai modifié, j'ai tenté des approches différentes rien n'y fait : ton hébergeur bloque...
aucune idée
je donne le code au cas ou une bonne âme à une idée de génie. Je précise que l'hébergeur refuse des permissions > 755 pour un dossier et 644 pour un fichier, que le répertoire et le fichier tpl.php ont tous les deux les priorités max possible.
Code :
<?php
$cmsms = array();
//url de la base du site
$root_url = "http://bacdaon.infos.st";
//fichier de sortie pour générer un cache interne
$filename = PUN_ROOT."tplcmsms/cache.php";
//url complète de la page cachée dans cmsmadesimple qui possèdera les balises <CMSMS>
$cachee_url = $root_url."/index.php?page=azerty123";
//echo '<!--'.$filename .'-->';
if(is_file($filename))
{
require($filename);
$cmsms = $cmsarr;
} else
{
$cms = file_get_contents($cachee_url);
#$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/'));
if(file_exists($filenamecss))
{
$indicateur = 'w';
} else
{
$indicateur = 'x+';
}
//creation du fichier de cache pour css
$handle = fopen($filenamecss , $indicateur);
if($handle == false){
echo "Impossible de créer le fichier $filenamecss dans /forum/tplcmsms";
exit;
}
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_css>'] = $cms[1];
//$cmsms['</head>'] = $cms[2];
$cmsms['<CMS_menu>'] = $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;
}
?>
l'erreur affichée :
http://bacdaon.infos.st/forum/tplcmsms/tpl.php
sinon concernant la partie cmsms tu avais fait un gros cafouillage entre les deux pages : celle qui doit faire une redirection depuis ton menu vers fluxbb (donc redirection externe vers /forum) et celle qui sert de passerelle pour tpl.php qui ne doit surtout par apparaitre dans le menu, avoir le gabarit spécial et avoir une url complexe.
J'ai donc ré-inversé les deux et déjà on voit mieux le résultat :
http://bacdaon.infos.st /index.php?page=azerty123 (j'ai mis un blanc pour éviter le référencement)
Module forum - laguich - 16/09/2011
pourtant, j'ai regardé, les 3 style.....css sont bien crées, le fichier cache.php contient bien la ref de ces 3 fichiers dans le dossier, mais quand il relie le tpl.php, il ne veux pas les recrées.
mais il y a bien l'erreur
Quel saucissonade
Module forum - laguich - 18/09/2011
Alors,peut etre que cela ne marcherai pas, mais peux t'on mettre une option du style si le fichier ......css, existe va lire le fichier cache.php pour mettre en place le css désiré. Etant donné qu'il nous dis qu'il ne peux les écrire alors qu'ils le sont déjà.
Je n'ai pas envie de d'abandonner ce CMS pour une bricole pareille, mais utile niveau design et cohérence, une parade est surement trouvable, je fais appel a vos mains de programmeurs
Merci d'avance.
Module forum -
bess - 18/09/2011
je suis surchargé aujourd'hui, rappel moi un peu plus tard dans la semaine que je re-regarde cela mais ne te fait pas trop d'illusion :/
Module forum - laguich - 19/09/2011
Le souci ne vient pas que de l'hebergeur, j'ai exactement le meme souci en local, en faisant bien comme tu l'as fais, l'erreur est la même. Le résultat aussi
Et oui il faut bien en rire.
Alors on cherche encore
Merci encore.
Je persiste encore
Bonne soirée à tous
Je prends sur moi et décide à faire un tuto complet sur l'implantation d'un forum fluxbb (je ne dénigre pas le travail de Bess, mais un tuto pour novice
) si on arrive à résoudre c problème
Module forum - laguich - 20/09/2011
probleme a la ligne 52 mis ne sais pas résoudre :/
Module forum -
bess - 21/09/2011
en fait le problème n'en est pas un !
J'ai vidé les fichiers temporaires, J'ai accédé à ton forum et HOP régénération des fichiers
On s'est focalisé sur le fichier pour rien... il fonctionnait très bien, juste qu'il est pas prévu de fonctionner SEUL. Uniquement depuis flubBB
C'est ton image qui m'a mis la puce à l'oreille
Citation :Notice : Use of undefined constant PUN_ROOT ....
sans PUN_ROOT, il se plante de répertoire pour la génération du cache.
Bref on peut passer au soucis suivant : intégrer le cache dans le forum. Ce n'est pas encore le cas apparemment.
Module forum -
bess - 21/09/2011
files moi un accès FTP temporaire par email stp parce que pour tester en ligne ... c'est pas évident :/