Forum CMS Made Simple FR
Module forum - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : Module forum (/thread-1329.html)

Pages : 1 2


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é Wink

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


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

Code :
<pun_head>

on ajoute
Code :
<CMS_css>

et après le code
Code :
</head>

on ajoute le code
Code :
<CMS_menu>

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 Wink


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
Big Grin
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 Wink

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">&nbsp;</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='&raquo;'}
            </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">&nbsp;</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='^&nbsp;&nbsp;Top'}
              </div>
              <div class="left49 core-float-left">
                <span>
                  {cms_selflink dir="previous" label="Previous page: "}&nbsp;
{* 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"}&nbsp;
                </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">&nbsp;</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">&nbsp;</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 Smile

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 Big Grin
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 Sad


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. Sad
mais il y a bien l'erreur
Quel saucissonade Sad


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

Sad
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 Smile
Et oui il faut bien en rire.
Alors on cherche encore Smile
Merci encore.
Je persiste encore Smile
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 Smile ) si on arrive à résoudre c problème


Module forum - laguich - 20/09/2011

[Image: tpl.gif] 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 :/