Bonjour Jangobtz,
Ce que tu demandes est en fait assez simple à réaliser.
Pour cela, il faut faire un find(). Pour cela, soit tu créés une nouvelle function dans ton controller Posts, du type function recherche_date($date_debut, $date_fin), soit tu ajoutes ces deux paramètres à ta function index en indiquant que par défaut, ils sont à NULL.
Ensuite, dans ton find, il faudra utiliser ces dates si elles ne sont pas à NULL.
Ta fonction pourrait donc ressembler à quelque chose du genre :
public function index($date_debut = null, $date_fin = null) {
if(!is_null($date_debut) && !is_null($date_fin)):
$conditions = array(
'conditions' => array('Post.date BETWEEN '.$date_debut.' AND '.$date_fin)
);
$this->set('Posts', $this->Post->find('all', $conditions));
else :
$this->set('Posts', $this->Post->find('all'));
endif;
}
Ici on part du principe que tes Posts ont un champ "date" en base de donnée qui contient leur date de publication. Si ton champ s'appelle différemment, comme created, alors il faut effectuer la recherche sur "Post.created".
Attention : Pour que cela fonctionne si ton champ en BDD est en datetime, il faut que tu passes tes dates de manière à ce que SQL puisse les interprêter pour sa recherche. Pour cela, le format attendu est Ymd. Par exemple pour la date d'aujourd'hui, ce serait "20140414".
Il faut donc que tu passes tes paramètres dans ce format là à ta fonction.