THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline


Bonjour,

Je me suis lancé dans un projet fou pour mon faible niveau en programmation web, mais j'essaie de developpé un plugin de livraison.

Je rencontre pas mal de problème, mais pour l'instant j'aimerais surtout arriver à ajouter des messages de debug.

Donc j'utilise des lignes tel que Tlog::info("LPPretraits/postActivation"); que j'ai placé dans la fonction du même nom.

Mais dans mon fichier log je n'obtiens que    1: WARNING [Thelia.php:loadTranslation()] {284} 2015-05-05 10:33:38:loadTranslation: missing /srv/www/lespoussespoussent/local/modules/TheliaDebugBar/I18n/backOffice/default directory Aprés vérification le chemin indiqué n'existe pas, mais je n'ai rien touché au module TheliaDebugBar !!

des pistes ?

Merci d'avance

Offline


info() n'est pas une méthode statique. Il faut utiliser Tlog::getInstance()->info("LPPretraits/postActivation");

Le warning de TheliaDebugBar devait déjà être présent.


OpenStudio Toulouse

Offline


Bonjour,

Merci de ta réponse.

En fait j'ai pas trop le temps de me pencher là-dessus en ce moment, mais je n'ai pas mieux de réussite avec tes indications.

Si je veux utiliser Thelia Debug Bar à la place ?

encore merci

Edit : Contrairement à ce que j'ai pu lire, je ne sais plus où, il faut ajouter la ligne
use Thelia\Log\Tlog;

Last edited by macgaret (18-05-2015 14:36:23)

Offline


Bonsoir,

Je n'arrive toujours pas à utiliser ma boucle, écrite dans mon module, dans le template utilisé pour la configuration du module "module_configuration.html" dans le répertoire AdminIncludes du module.

Je vous passe le code de ma boucle, je ne retrouve même pas les Tlog pour vérifier le passage dans les fonctions, j'ai vérifier plusieurs fois si je n'avais pas fait d'erreur dans mon fichier config.xml.


namespace LPPretraits\Loop;

use LPPretraits\LPPretraits;
use LPPretraits\Model\LppDeliveryPointsQuery;
use Propel\Runtime\ActiveQuery\Criteria;
use Thelia\Core\Template\Element\BaseLoop;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;

use Thelia\Core\Template\Element\PropelSearchLoopInterface;
use Thelia\Core\Template\Element\SearchLoopInterface;
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
use Thelia\Core\Template\Loop\Argument\Argument;

use Thelia\Core\Template\Element\buildModelCriteria;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;

use Thelia\Log\Tlog;

/**
 * Class LPPDeliveryPointId
 * @package LPPDeliveryPoint\Loop
 * @author Les Pousses Poussent <fabien.laverroux@lespoussespoussent.fr>
 */
class LPPDeliveryPointId extends BaseLoop implements PropelSearchLoopInterface
{
    public $countable = true;
    public $timestampable = false;
    public $versionable = false;
    
//    Tlog::getInstance()->info("LPPDeliveryPointId : countable=",$countable); 
    /**
     * this method returns a Propel ModelCriteria
     *
     * @return \Propel\Runtime\ActiveQuery\ModelCriteria
     */
    public function buildModelCriteria()
    {

	   Tlog::getInstance()->info("lppdeliverypointid/buildModelCriteria");
	   
       $search = LppDeliveryPointsQuery::create(); 
      
       $id = $this->getId();
       if (!is_null($id)) {
            $search->filterById($id, Criteria::IN);
       } 
       
       return $search;
    }

    /**
     * @param LoopResult $loopResult
     *
     * @return LoopResult
     */
    public function parseResults(LoopResult $loopResult)
    {
		Tlog::getInstance()->info("lppdeliverypointid/parseResult");

		foreach ($loopResult->getResultDataCollection() as $point_de_retrait) {
            $loopResultRow = new LoopResultRow($point_de_retrait);
            
            $loopResultRow
				->set("ID",$point_de_retrait->getId())
				->set("NAME",$point_de_retrait->getName())
            ;
            
            $loopResult->addRow($loopResultRow);
        }
	
        return $loopResult;
    }

    protected function getArgDefinitions()
    {
		Tlog::getInstance()->info("lppdeliverypointid/getArgDefinitions");

        return new ArgumentCollection(
			Argument::createIntListTypeArgument('id')
        );
    }

}

Une idée ?

Last edited by macgaret (18-05-2015 19:37:05)

Offline


Je n'arrive toujours pas à utiliser ma boucle

OK, et qu'est ce que ça veut dire ?

Que se passe-t-il exactement ?


OpenStudio Toulouse

Offline


Et bien aucun résultat quand j'utilise :

{loop name="lppretraits_list" type="lppdeliverypointid"}
                                 je suis dans la boucle
                                 {/loop}

Et je ne vois aucun logs placés dans les fonctions de la boucle, donc j'estime quelles ne sont pas appelées.
Il y a d'autres déclarations à faire que celles dans le fichier config.xml ?

Merci de t’intéresser à mes soucis, je suis un peu un boulet

Offline


Déjà, vide les caches de dev et de prod.

Il y a d'autres déclarations à faire que celles dans le fichier config.xml ?

Non. Tu as donc dans le config.xml de ton module quelque chose comme:

 <loops>
    <loop name="lppdeliverypointid" class="Path\Vers\TaClasseBoucle" />
 </loops>

OpenStudio Toulouse

Offline


J'ai fait : Thelia cache:clear

Et revérifier une énième fois mon config.xml

pas mieux

Offline


Vides les deux caches, prod ET dev :

Thelia cache:clear --env=dev
Thelia cache:clear --env=prod


OpenStudio Toulouse

Offline


Pas mieux

Offline


Alors la magie existe.

gT8F4peUvNYUo.gif


OpenStudio Toulouse

Offline


j'en étais déjà persuadé !!!

Merci, je continue à chercher et j'essaierai de donner des nouvelles