Bonjour,
J'ai crée un boucle custom avec les fichiers suivants :
config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<config xmlns="http://thelia.net/schema/dic/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://thelia.net/schema/dic/config http://thelia.net/schema/dic/config/thelia-1.0.xsd">
<loops>
<loop name="subscription.paiement.mode" class="Subscription\Loop\PaiementModeLoop" />
<loop name="subscription.bank.transfert" class="Subscription\Loop\BankTransfert" />
<loop name="subscription.subscription" class="Subscription\Loop\SubscriptionLoop" />
<loop name="subscription.subscription.financial" class="Subscription\Loop\SubscriptionFinancialLoop" />
<loop name="subscription.subscription.suspension" class="Subscription\Loop\SubscriptionSuspensionLoop" />
</loops>
<forms>
<!--
<form name="MyFormName" class="Abonnement\Form\MySuperForm" />
-->
<form name="subscription.form.configure" class="Subscription\Form\ConfigurationForm" />
</forms>
<commands>
<!--
<command class="Abonnement\Command\MySuperCommand" />
-->
</commands>
<!--
<services>
</services>
-->
<services>
<service id="subscription.paiement.mode.listener" class="Subscription\EventListeners\PaiementModeListener" scope="request">
<argument type="service" id="request" />
<tag name="kernel.event_subscriber" />
</service>
</services>
<hooks>
<hook id="subscription.hook.module_configuration" class="Subscription\Hook\HookManager" scope="request">
<tag name="hook.event_listener" event="module.configuration" type="back" method="onModuleConfigure" />
</hook>
</hooks>
<!--
<exports>
</exports>
-->
<!--
<imports>
</imports>
-->
</config>
Mon fichier loop
<?php
namespace Subscription\Loop;
use Subscription\Model\SubscriptionQuery;
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\Loop\Argument\Argument;
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
class SubscriptionLoop extends BaseLoop implements PropelSearchLoopInterface
{
/**
* @return \Thelia\Core\Template\Loop\Argument\ArgumentCollection
*/
protected function getArgDefinitions()
{
return new ArgumentCollection(
Argument::createIntTypeArgument('s_customer_id'),
);
}
/**
* this method returns a Propel ModelCriteria
*
* @return \Propel\Runtime\ActiveQuery\ModelCriteria
*/
public function buildModelCriteria()
{
$subscriptionQuery = SubscriptionQuery::create();
$customerId = 1;
var_dump($customerId);
/** A améliorer **/
if(!empty($customerId)){
return $subscriptionQuery->filterBySCustomerId($customerId);
}
}
/**
* @param LoopResult $loopResult
*
* @return LoopResult
*/
public function parseResults(LoopResult $loopResult)
{
/** @var \Subscription\Model\Subscription $subcription */
foreach ($loopResult->getResultDataCollection() as $key => $subcription) {
$loopResultRow = new LoopResultRow($subcription);
$loopResultRow->set("ID", $subcription->getSId());
$loopResultRow->set("NUM_EVO", $subcription->getSNumEvo());
$loopResultRow->set("ID_CUSTOMER", $subcription->getSCustomerId());
$loopResultRow->set("ID_ORDER", $subcription->getSOrderId());
$loopResultRow->set("ID_PAIEMENT_MODE",$subcription->getSPaiementModeId());
$loopResultRow->set("REG_MODE",$subcription->getSRegMode());
$loopResultRow->set("PERIOD_PRV", $subcription->getSPeriodPrv());
$loopResultRow->set("AMOUNT", $subcription->getSAmount());
$loopResultRow->set("PERIOD_DAY", $subcription->getSPeriodDay());
$loopResultRow->set("STATUS", $subcription->getSStatus());
$loopResultRow->set("DATE_NEXT_PRV", $subcription->getSDateNextPrv());
$loopResultRow->set("DATE_START", $subcription->getSDateStart());
$loopResultRow->set("DATE_CREATION", $subcription->getSDateCreation());
$loopResult->addRow($loopResultRow);
}
return $loopResult;
}
}
Voici la boucle que j'affiche lorsque je la place dans mon template account.html :
<table class="table table-orders table-bordered table-hover" summary="{intl l="Test"}">
<thead>
<tr>
<th>{intl l="Customer number"}</th>
<th>{intl l="Payment Type"}</th>
<th>{intl l="IBAN"}</th>
<th>{intl l="BIC"}</th>
<th>{intl l="Status"}</th>
</tr>
</thead>
{loop type="subscription.subscription" name="subscription" s_customer_id=$ID}
<tbody>
<tr>
<td>{$ID_CUSTOMER}</td>
<td>{$REG_MODE}</td>
<td>{$AMOUNT}</td>
<td>{$AMOUNT}</td>
<td>{$STATUS}</td>
</tr>
</tbody>
{/loop}
</table>
Et le problème c'est que l'affichage ne se fait pas du tout et je n'aurais retour php dans mes logs.
Merci