Il est généré automatiquement, car dans cet exemple, j'ai essayé de faire un CRUD
<?php
/**
* This class has been generated by TheliaStudio
* For more information, see [url]https://github.com/thelia-modules/TheliaStudio[/url]
*/
namespace HiTest\Loop;
use HiTest\Loop\Base\Hitest as BaseHitestLoop;
/**
* Class Hitest
* @package HiTest\Loop
*/
class Hitest extends BaseHitestLoop {
public function buildModelCriteria()
{
$query = new HitestQuery();
if (null !== $id = $this->getId()) {
$query->filterById($id);
}
if (BooleanOrBothType::ANY !== $visible = $this->getVisible()) {
$query->filterByVisible($visible);
}
if (null !== $position = $this->getPosition()) {
$query->filterByPosition($position);
}
if (null !== $title = $this->getTitle()) {
$title = array_map("trim", explode(",", $title));
$query->filterByTitle($title);
}
if (null !== $message_id = $this->getMessageId()) {
$query->filterByMessageId($message_id);
}
foreach ($this->getOrder() as $order) {
switch ($order) {
case "id":
$query->orderById();
break;
case "id-reverse":
$query->orderById(Criteria::DESC);
break;
case "visible":
$query->orderByVisible();
break;
case "visible-reverse":
$query->orderByVisible(Criteria::DESC);
break;
case "manual":
$query->orderByPosition();
break;
case "manual-reverse":
$query->orderByPosition(Criteria::DESC);
break;
case "title":
$query->orderByTitle();
break;
case "title-reverse":
$query->orderByTitle(Criteria::DESC);
break;
case "description":
$query->orderByDescription();
break;
case "description-reverse":
$query->orderByDescription(Criteria::DESC);
break;
case "chapo":
$query->orderByChapo();
break;
case "chapo-reverse":
$query->orderByChapo(Criteria::DESC);
break;
case "postscriptum":
$query->orderByPostscriptum();
break;
case "postscriptum-reverse":
$query->orderByPostscriptum(Criteria::DESC);
break;
case "message_id":
$query->orderByMessageId();
break;
case "message_id-reverse":
$query->orderByMessageId(Criteria::DESC);
break;
}
}
var_dump($query);die;
return $query;
}
public function parseResults(LoopResult $loopResult) {
/** @var \HiTest\Model\Hitest $entry */
foreach ($loopResult->getResultDataCollection() as $entry) {
$row = new LoopResultRow($entry);
$row
->set("ID", $entry->getId())
->set("VISIBLE", $entry->getVisible())
->set("POSITION", $entry->getPosition())
->set("TITLE", $entry->getTitle())
->set("DESCRIPTION", $entry->getDescription())
->set("CHAPO", $entry->getChapo())
->set("POSTSCRIPTUM", $entry->getPostscriptum())
->set("MESSAGE_ID", $entry->getMessageId())
;
var_dump($row);
die;
$this->addMoreResults($row, $entry);
$loopResult->addRow($row);
}
return $loopResult;
}
/**
* You may now add your own logic
*/
public function getArgDefinitions() {
var_dump($query);die;
return new ArgumentCollection(
Argument::createIntListTypeArgument('id'), new Argument(
'ref', new TypeCollection(
new Type\AlphaNumStringListType()
)
), Argument::createIntListTypeArgument('description')
);
}
}
Pour les routes
<route id="hitest.configuration.default" path="/admin/module/HiTest" methods="get">
<default key="_controller">HiTest:HiTestConfig:default</default>
</route>
<route id="hitest.configuration.save" path="/admin/module/HiTest" methods="post">
<default key="_controller">HiTest:HiTestConfig:save</default>
</route>
<route id="hitest.hitest.list" path="/admin/module/HiTest/hitest" methods="get">
<default key="_controller">HiTest:Hitest:default</default>
</route>
<route id="hitest.hitest.create" path="/admin/module/HiTest/create" methods="post">
<default key="_controller">HiTest:Hitest:create</default>
</route>
<route id="hitest.hitest.view" path="/admin/module/HiTest/hitest/edit" methods="get">
<default key="_controller">HiTest:Hitest:update</default>
</route>
<route id="hitest.hitest.edit" path="/admin/module/HiTest/hitest/edit" methods="post">
<default key="_controller">HiTest:Hitest:processUpdate</default>
</route>
<route id="hitest.hitest.delete" path="/admin/module/HiTest/hitest" methods="post">
<default key="_controller">HiTest:Hitest:delete</default>
</route>
<route id="hitest.hitest.update_position" path="/admin/module/HiTest/hitest/updatePosition" methods="get">
<default key="_controller">HiTest:Hitest:updatePosition</default>
</route>
<route id="hitest.hitest.toggle_visibility" path="/admin/module/HiTest/hitest/toggleVisibility" methods="get">
<default key="_controller">HiTest:Hitest:setToggleVisibility</default>
</route>
Je pense que le problème n'est pas dans la création du loop, mais, plutôt passer cette loop depuis l'action au template
Cdt,
Hicham