THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Hook home.body

(29-10-2018 17:49:15)


Bonjour,
Pour un traitement x spécifique à mon métier j'ai crée un nouveau module A et je veux bien l'accrocher au hook home.body, ce que j'ai fait c'est:
1- Dans mon fichier config.xml de mon module A j'ai rajouter:
<hooks>
        <hook id="createorupdatecustomer.hook" class="CreateOrUpdateCustomer\Hook\databaseConnexion">
            <tag name="hook.event_listener" event="home.body" type="front" method="homeBody" active="1" />
   </hook>
2- Dans mon Module A sous le dossier Hook j'ai rajouter ma classe:
class databaseConnexion extends BaseHook
{
    public function homeBody (HookRenderEvent $event)
    {
       Traitement spécifique
    }
}
Mon problème c'est que ça marche pas et je vois pas pourquoi sad

Offline

#2 Re: Hook home.body

(29-10-2018 19:48:33)


As-tu vidé le cache ?

Tu travailles en mode développement ?


OpenStudio Toulouse

Offline

#3 Re: Hook home.body

(30-10-2018 08:12:30)


Merci pour ton retour smile
j'ai vidé le cache oui, mais pour le mode développement je vois pas de quoi tu parle
.

Offline

#4 Re: Hook home.body

(30-10-2018 08:50:15)


J'ai réussi à passer en mode développement et le problème est dans mon traitement spécifique sachant qu'en l'exécutant côté Action de mon Module il marche sans problème:
  try {
            $strConnection = 'mysql:host=localhost;dbname=intranet';
            $arrExtraParam = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
            $pdo = new PDO($strConnection, 'root', '', $arrExtraParam);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
        //tester la cnx
        $query = 'Insert into t_adherent (sPrenomContact,sRaisonSociale,sNomContact) values (?,?,?)';
        $prep = $pdo->prepare($query);
        $prep->bindValue(1, 'item 1', PDO::PARAM_STR);
        $prep->bindValue(2, 'aaaaaa', PDO::PARAM_STR);
        $prep->bindValue(3, 'bbbbbb',  PDO::PARAM_STR);
        $prep->execute();

L'erreur:
PDOException in StatementWrapper.php line 196:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'intranet.config' doesn't exist

Offline

#5 Re: Hook home.body

(30-10-2018 09:26:23)


Table 'intranet.config' doesn't exist

Le message est clair, non ?


OpenStudio Toulouse

Offline

#6 Re: Hook home.body

(30-10-2018 09:33:57)


Oui mais avec ce même code sous Action de mon module il arrive à se connecter à la base intranet.
En plus de ce message il m'affiche cette erreur:

PropelException in Criteria.php line 2442:
Unable to execute SELECT statement [SELECT config.ID, config.NAME, config.VALUE, config.SECURED, config.HIDDEN, config.CREATED_AT, config.UPDATED_AT FROM `config` WHERE config.NAME=:p1 LIMIT 1]
in Criteria.php line 2442
at Criteria->doSelect(object(ConnectionWrapper)) in ModelCriteria.php line 1821
at ModelCriteria->doSelect(object(ConnectionWrapper)) in ModelCriteria.php line 1000
at ModelCriteria->findOne(null) in ModelCriteria.php line 1176
at ModelCriteria->findOneBy('Name', 'tlog_level')
at call_user_func_array(array(object(ConfigQuery), 'findOneBy'), array('Name', 'tlog_level')) in ModelCriteria.php line 2027
at ModelCriteria->__call('findOneByName', array('tlog_level')) in ConfigQuery.php line 37
at ConfigQuery->findOneByName('tlog_level') in ConfigQuery.php line 37
at ConfigQuery::read('tlog_level', '500') in Tlog.php line 137
at Tlog->init() in Tlog.php line 112
at Tlog::getInstance() in Thelia.php line 94
at Thelia->initPropel() in Thelia.php line 63
at Thelia->__construct('dev', true) in index_dev.php line 30