Forum CMS Made Simple Francophone

Aide francophone sur CMS Made Simple

Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#26 18/02/2013 22:22:15

zounars
Membre
Inscription : 27/10/2008
Messages : 22

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

Bonjour à tous et merci à bess pour ce tuto,

J'ai réussi à intégrer FluxBB à CMSMS; il est visible et fonctionnel.
Mais, je n'arrive pas à enregistrer mon gabarit CMSMS lorsque j'y mets le plugin {fluxbb2feu}.

J'tilisere une base de donnée commune pour CMSMS et Fluxbb.

Informations de mon système:
CMSMS 1.11.4
Fluxbb 1.5.2
PHP 5.2.17
MySQL 5.5.23

Mon plugin "function.fluxbb2feu.php" contient le code ci-dessous

[== Indéfini ==]
<?php

    function smarty_cms_function_fluxbb2feu($params = array(), &$smarty = null)
    {
        $db = cmsms()->GetDb();
        //$db = getFluxBBDb();
        $cookie_name = 'pun_cookie_8c0e05';
        $cookie_seed = '0c81d91735e0df44';
        $dbprefix = 'fluxbb_';
        $pun_user = null;

        $now = time();
           
        // If the cookie is set and it matches the correct pattern, then read the values from it
        if (isset($_COOKIE[$cookie_name]) && preg_match('%^(\d+)\|([0-9a-fA-F]+)\|(\d+)\|([0-9a-fA-F]+)$%', $_COOKIE[$cookie_name], $matches))
        {
            $cookie = array(
                'user_id'        => intval($matches[1]),
                'password_hash'     => $matches[2],
                'expiration_time'    => intval($matches[3]),
                'cookie_hash'        => $matches[4],
            );
        } else{
            trace('pattern');
            $db->Close();
            unset($db);
            return;
        }
       
       
        $modops = cmsms()->GetModuleOperations();
        $feu = $modops->get_module_instance('FrontEndUsers');

        // If it has a non-guest user, and hasn't expired
        if (isset($cookie) && $cookie['user_id'] > 1 && $cookie['expiration_time'] > $now)
        {
            // If the cookie has been tampered with
            if (forum_hmac($cookie['user_id'].'|'.$cookie['expiration_time'], $cookie_seed.'_cookie_hash') != $cookie['cookie_hash'])
            {
                trace('hash');

                $db->Close();
                unset($db);
                return;
            }

            // Check if there's a user with the user ID and password hash from the cookie
            $query = 'SELECT u.*, g.*, o.logged, o.idle FROM '.$dbprefix.'users AS u INNER JOIN '.$dbprefix.'groups AS g ON u.group_id=g.g_id LEFT JOIN '.$dbprefix.'online AS o ON o.user_id=u.id WHERE u.id= ?';
            $pun_user = $db->GetRow($query, array(intval($cookie['user_id'])));

            // If user authorisation failed
            if (!isset($pun_user['id']) || forum_hmac($pun_user['password'], $cookie_seed.'_password_hash') !== $cookie['password_hash'])
            {
                trace('autho/failes');
                $db->Close();
                unset($db);
                return;
            }

            $email = $pun_user['email'];
            //$password = $pun_user['password'];
            $password = 'toto22!#';
           
            //other informations
            $id_fluxbb = $pun_user['id'];
            $id_group_fluxbb = $pun_user['group_id'];
            $username = $pun_user['username'];
           
            unset($pun_user);
           

           
            //Group by default
            $gid = $feu->GetGroupID('Membres');
               
            $feu_user = $feu->GetUserInfoByName($email);
            if($feu_user == null || $feu_user[0] == null)
            {
                $tmp = $feu->GetPreference('expireage_months',6);
                $expires = strtotime(sprintf("+%d months",$tmp));
               
                $feu_user = $feu->AddUser( $email, $password, $expires);
                $feu_user = $feu->GetUserInfo($feu_user[1]);
                $feu->AssignUserToGroup( $feu_user[1]["id"], $gid );
                $feu->SetUserPropertyFull('id_fluxbb',$id_fluxbb,$feu_user[1]["id"]);
                $feu->SetUserPropertyFull('id_group_fluxbb',$id_group_fluxbb,$feu_user[1]["id"]);
                $feu->SetUserPropertyFull('user_fluxbb',$username,$feu_user[1]["id"]);
            }
           
            $name = $feu->LoggedInName();
            if($name == null || $name =! $email)
            {
                $result = $feu->Login( $email, $password, "",false,true);
                $uid = $result[0];
            } else
            {
                $uid = $feu->LoggedInId();
            }
           
            trace("User $uid connect&eacute;");
           
        } else
        {
            trace('not set or expire : '.print_r($cookie, true).' '.$now);

            //Remove FEU cookies / Session
            $feu->Logout();
            _AttemptInvalidateLoginCookie($feu);
       
            $db->Close();
            unset($db);
            return;
        }
       

        //Finnaly
        trace("finnaly");
        $db->Close();
        unset($db);
    }

    function smarty_cms_help_function_fluxbb2feu()
    {
        echo "Gere la liaison Forum cmsms => autre cmsms";
    }




    function trace($message) {
        //echo '<code>'.$message.'</code><br/>';
    }

    /**
    * See FrontEndUsers.module.php Line 1232
    **/
    function _AttemptInvalidateLoginCookie($feu)
    {
        $gCms = cmsms();
        //$config = $gCms->GetConfig();
        if( $feu->GetPreference('usecookiestoremember') &&
        ($feu->GetPreference('cookiename') != '') )
          {
        $cookiename = $feu->GetPreference('cookiename');
        $value = FALSE;
        if( isset($_COOKIE[$cookiename]) )
          {
            $value = $_COOKIE[$cookiename];
          }

        $expires = time()-(3600*24); // one day ago
        $res = setcookie( $cookiename, $value, $expires, "/" );
        if( !$res ) die('delete cookie failed');
          }
    }	  
	
    function smarty_cms_about_function_fluxbb2feu()
    {
        ?>
        <p>Author: Kevin Danezis</p>
        <p>Version: 0.1</p>
        <p>
        Change History:
        </p>
        <?php
    }

    function forum_hmac($data, $key, $raw_output = false)
    {
        return hash_hmac('sha1', $data, $key, $raw_output);
    }	
	
?>	

Merci pour l'aide que vous pourrez m'apporter.

Arsene

Hors ligne

#27 19/02/2013 10:31:53

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

Mais, je n'arrive pas à enregistrer mon gabarit CMSMS lorsque j'y mets le plugin {fluxbb2feu}.

quelle est l'erreur annoncée ?

fais attention à ta version php, je suis pas certain que ce soit un code fonctionnel en 5.2 ... il faut au moins que tu teste sur une version 5.3 afin d'écarter cette éventualité

Hors ligne

#28 19/02/2013 12:09:34

zounars
Membre
Inscription : 27/10/2008
Messages : 22

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

Je suis passé à PHP 5.3.

Mais, je n'arrive pas à enregistrer mon gabarit CMSMS lorsque j'y mets le plugin {fluxbb2feu}.

lorsque je colle le tag {fluxbb2feu} dans le gabarit utilisé pour affiché le forum, le click sur "Appliquer" n'a aucune conséquence: pas d'enregistrement ni de signalisation d'erreur, rien du tout
mais le click sur "Envoyer" me sort de l'administration et je vois juste le menu du site sans mise forme.

J'ai alors essayé de coller {fluxbb2feu} dans les autres gabarits de mon installation, dans ce cas là j'ai les erreurs suivantes:

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in /home/.../public_html/lib/adodb_lite/adodbSQL_drivers/mysqli/mysqli_driver.inc on line 187

Fatal error: Call to undefined method stdClass::Save() in /home/.../public_html/admin/edittemplate.php on line 172

J'espère être assez clair pour faciliter la compréhension de mon problème.

Merci encore.

Hors ligne

#29 19/02/2013 14:19:09

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

bon j'ai aucune d'idée ... va falloir aller au charbon

tente dans un premier temps de réduire ton fichier plugin au strict minimum


[== Indéfini ==]
<?php

    function smarty_cms_function_fluxbb2feu($params = array(), &$smarty = null)
    {
        echo "plop";
    }

    function smarty_cms_help_function_fluxbb2feu()
    {
        echo "Gere la liaison Forum cmsms => autre cmsms";
    }




    function trace($message) {
        //echo '<code>'.$message.'</code><br/>';
    }

    /**
    * See FrontEndUsers.module.php Line 1232
    **/
    function _AttemptInvalidateLoginCookie($feu)
    {
        $gCms = cmsms();
        //$config = $gCms->GetConfig();
        if( $feu->GetPreference('usecookiestoremember') &&
        ($feu->GetPreference('cookiename') != '') )
          {
        $cookiename = $feu->GetPreference('cookiename');
        $value = FALSE;
        if( isset($_COOKIE[$cookiename]) )
          {
            $value = $_COOKIE[$cookiename];
          }

        $expires = time()-(3600*24); // one day ago
        $res = setcookie( $cookiename, $value, $expires, "/" );
        if( !$res ) die('delete cookie failed');
          }
    }	  
	
    function smarty_cms_about_function_fluxbb2feu()
    {
        ?>
        <p>Author: Kevin Danezis</p>
        <p>Version: 0.1</p>
        <p>
        Change History:
        </p>
        <?php
    }

    function forum_hmac($data, $key, $raw_output = false)
    {
        return hash_hmac('sha1', $data, $key, $raw_output);
    }	
	
?>	

et si ça marche, tu ajoute au fur et à mesure du code dans le plugin pour retomber sur la ligne qui pose pb

Je suis absent toute cet après midi, on verra ce soir si tu as besoin d'aide wink

Hors ligne

#30 20/02/2013 01:25:22

zounars
Membre
Inscription : 27/10/2008
Messages : 22

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

Bonsoir,

j'ai testé ton code et il affiche "plop"
il m'a surtout permis d'enregistrer mon gabarit avec {fluxbb2feu}

à cette étape, j'ai remis tout le code du plugin

ma page s'affiche et le forum est fonctionnel mais j'ai pas de CSS

j'ai poursuivi et achevé le tutoriel:FEU+CustomContent+intégration

j'ai créé la dernière page test pour m'assurer du pont FluxBB - FEU; il fonctionne mais sans CSS (encore)

voilà à cette ètape le retour que je peux faire.
demain je vais tester la proposition de Dark4ng3L relative à $db->Close();

je vous tiens informé

Hors ligne

#31 20/02/2013 22:21:01

zounars
Membre
Inscription : 27/10/2008
Messages : 22

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

Bonsoir bess, bonsoir à tous,

j'ai installé CMSMS+FluxBB à cette adresse pour faciliter la compréhension de mon problème

à la la page forum http://www.essors.net/forum (CSS non actif) vous pouvez voir le forum entièrement fonctionnel.

Si vous vous inscrivez (au forum) et allez sur la page "page test du forum", vous pourrez constater que le lien FluxBB+FEU est fonctionnel.

Ma demande est: comment faire fonctionner le CSS sur les gabarits utilisant {fluxbb2feu} ?

Merci

Hors ligne

#32 20/02/2013 23:07:02

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

http://www.essors.net/xsa/plu  wink

ta page qui sert d'export de template déconne, corrige l'erreur, assure toi que le design apparait dedans, et la suite devrait tourner

Hors ligne

#33 10/03/2013 13:33:04

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : Fusionner un forum Fluxbb 1.5.x et CmsMadeSimple 1.11.x

petite maj importante de mon code suite à une erreur rencontrée sur cmsmadesimple.fr

dans le fichier tpl.php

remplacer

<<<TEXT

par

<<<\'TEXT\'

Cela permet d'utiliser une syntaxe Nowdoc à la place de Heredoc et d'éviter une erreur PHP si votre template Cmsmadesimple contient du Javascript avec le symbol $ qui est malheureusement interprété par Heredoc

mon premier message est corrigé en conséquence smile

Hors ligne

Pied de page des forums