create controller adding delivery module in session

This commit is contained in:
Manuel Raynaud
2013-09-06 19:29:19 +02:00
parent b067ef7dcc
commit 0aad4baf26
4 changed files with 21 additions and 11 deletions

View File

@@ -63,6 +63,7 @@
<!-- order management process -->
<route id="order.delivery.add" path="/delivery/choose/{delivery_id}">
<default key="_controller">Thelia\Controller\Front\DeliveryController::select</default>
<requirement key="delivery_id">\d+</requirement>
</route>
<!-- end order management process -->

View File

@@ -33,7 +33,7 @@ use Thelia\Tools\URL;
*/
class DeliveryController extends BaseFrontController
{
public function select()
public function select($delivery_id)
{
if ($this->getSecurityContext()->hasCustomerUser() === false) {
$this->redirect(URL::getInstance()->getIndexPage());
@@ -41,15 +41,16 @@ class DeliveryController extends BaseFrontController
$request = $this->getRequest();
$deliveryId = $request->query->get("delivery_id");
if($deliveryId)
{
$deliveryModule = ModuleQuery::create()->findPk($deliveryId);
$deliveryModule = ModuleQuery::create()
->filterById($delivery_id)
->filterByActivate(1)
->findOne()
;
if ($deliveryModule) {
$request->getSession()->setDelivery($deliveryId);
}
$request->getSession()->setDelivery($delivery_id);
} else {
$this->pageNotFound();
}
}
}

View File

@@ -60,6 +60,9 @@ class Delivery extends BaseSpecificModule
$loopResultRow = new LoopResultRow($loopResult, $deliveryModule, $this->versionable, $this->timestampable, $this->countable);
$moduleReflection = new \ReflectionClass($deliveryModule->getFullNamespace());
if($moduleReflection->isSubclassOf("Thelia\Module\DeliveryModuleInterface") === false) {
throw new \RuntimeException(sprintf("delivery module %s is not a Thelia\Module\DeliveryModuleInterface", $deliveryModule->getCode()));
}
$moduleInstance = $moduleReflection->newInstance();
$moduleInstance->setRequest($this->request);

View File

@@ -2,8 +2,13 @@
<ul>
{loop type="delivery" name="delivery.list"}
<li>id : #ID</li>
<li>prix : #PRICE</li>
<li>
<ul>
<li>id : {#ID}</li>
<li>prix : {#PRICE}</li>
<li>Choisir : <a href="{url path="/delivery/choose/{#ID}"}">Choisir</a></li>
</ul>
</li>
{/loop}
</ul>