Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Module forum
#18

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)
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)