L'idée est d'écrire un contrôleur qui sera défini comme étant le
DefaultController dans le fichier "etc/temma.json".
Ce contrôleur doit posséder une action proxy, c'est-à-dire une méthode
execProxy(), qui sera systématiquement appelée.
Dans ton exemple, tes URLs pouvaient posséder un ou deux éléments.
Appelons la premier élément "category" et le second "page".
Il va falloir que la méthode utilise l'objet TemmaRequest pour
récupérer les informations sur la requête. Il faut récupérer le nom du
contrôleur et le nom de l'action, qui correspondent aux deux premiers
éléments de l'URL.
class MonControleurParDefaut extends \Temma\Controller {
public function execProxy() {
// on récupère la catégorie et la page demandées
$category = $this->_request->getController();
$page = $this->_request->getAction();
// on récupère les informations de la base de données
$pageData = ...
// on passe les données au template
$this->set('page', $pageData);
// on indique le template à utiliser
if ($category == 'pouet')
$this->template('pouet/index.tpl');
else
$this->template('default/index.tpl');
}
}
Sinon, une autre possibilité : avoir des URLs du type "/article/aaa/
bbb" :
class ArticleController extends \Temma\Controller {
public function __call($name, $args) {
$category = $name;
$page = $args[0];
// ...
}
}
Dernière possibilité : si tu connais par avance tous les noms de
catégories, tu peux créer des routes dans le fichier de configuration
temma.json, qui redirigent toutes vers le même contrôleur.
On Mar 7, 4:46 pm, silvio barahona <
synbi...@gmail.com> wrote:
> Merci pour la réponse rapide.
> Je ne suis pas bien sûr du coup de la façon de prendre en charge la
> resquête dans le DefaultController.
> A quoi ressemblerait-il exactement ?
>