Adding extraParameter options

skala
Julio Montoya 12 years ago
parent 8aee516d68
commit 77c1a69c08
  1. 63
      src/ChamiloLMS/Controller/BaseController.php

@ -104,9 +104,9 @@ abstract class BaseController extends FlintController
abstract protected function getTemplatePath();
/**
* Returns the controller alias
* Returns the controller alias
* @example for QuestionScoreController: question_score_controller
*/
*/
abstract protected function getControllerAlias();
/**
@ -141,6 +141,21 @@ abstract class BaseController extends FlintController
if (!empty($session)) {
$parameters['id_session'] = $session->getId();
}
$extraParams = $this->getExtraParameters();
if (!empty($extraParams)) {
$request = $this->getRequest();
$dynamicParams = array();
foreach ($extraParams as $param) {
$value = $request->get($param);
if (!empty($value)) {
$dynamicParams[$param] = $value;
}
}
$parameters = array_merge($parameters, $dynamicParams);
}
if (isset($links) && is_array($links) && isset($links[$label])) {
$url = $this->generateUrl($links[$label], $parameters);
return $url;
@ -148,7 +163,16 @@ abstract class BaseController extends FlintController
return $url = $this->generateUrl($links['list_link']);
}
/**
/**
* Add extra parameters when generating URLs
* @return array
*/
protected function getExtraParameters()
{
return array();
}
/**
* @see Symfony\Component\Routing\RouterInterface::generate()
*/
public function generateUrl($name, array $parameters = array(), $reference = UrlGeneratorInterface::ABSOLUTE_PATH)
@ -191,16 +215,14 @@ abstract class BaseController extends FlintController
$request = $this->getRequest();
$form = $this->createForm($this->getFormType(), $this->getDefaultEntity());
if ($request->getMethod() == 'POST') {
$form->bind($request);
$form->handleRequest($request);
if ($form->isValid()) {
$item = $form->getData();
$this->createAction($item);
$this->get('session')->getFlashBag()->add('success', "Added");
$url = $this->createUrl('list_link');
return $this->redirect($url);
}
if ($form->isValid()) {
$item = $form->getData();
$this->createAction($item);
$this->get('session')->getFlashBag()->add('success', "Added");
$url = $this->createUrl('list_link');
return $this->redirect($url);
}
$template = $this->get('template');
@ -237,15 +259,14 @@ abstract class BaseController extends FlintController
$form = $this->createForm($this->getFormType(), $item);
if ($request->getMethod() == 'POST') {
$form->bind($this->getRequest());
if ($form->isValid()) {
$data = $form->getData();
$this->updateAction($data);
$this->get('session')->getFlashBag()->add('success', "Updated");
$url = $this->createUrl('list_link');
return $this->redirect($url);
}
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
$this->updateAction($data);
$this->get('session')->getFlashBag()->add('success', "Updated");
$url = $this->createUrl('list_link');
return $this->redirect($url);
}
$template = $this->get('template');

Loading…
Cancel
Save