je suis nouveau dans le développement MVC, et j'avoue que je comprends pas bien comment fonctionne tous ça, notamment ou placer les conditions :
pour m'exercer je souhaite créer un bête formulaire, quand on valide on vérifie si le champ est rempli, s'il est rempli on l'envoi sur une page pour 'formulaire validé' sinon on le renvoie sur la même page avec un message 'erreur dans le formu'. J'arrive à afficher le formulaire et afficher un message 'ok' quand il est rempli mais je bloque au niveau de la vérification, où mettre la condition if ($_POST['nom'] != '') dans une méthode du modèle, du le contrôleur ? J'avoue je suis perdu. Je vous montre ce que j'ai fait (et qui ne marche pas) :
Le controlleur (controller.php)
Code: Select all
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.controller');
class JeuxFBController extends JController
{
function display()
{
JRequest::setVar('view', 'formulaire');
parent::display();
}
function envoi() {
$model = &$this->getModel('formulaire');
$verif = $model->Verif();
if ($verif) {
JRequest::setVar('view', 'ok'); }
else {
JRequest::setVar('erreur', 'true');
JRequest::setVar('view', 'formulaire');
}
parent::display();
}
}
Le modèle (models/formulaire.php)
Code: Select all
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.model' );
class JeuxFBModelFormulaire extends JModel
{
function getForm()
{
$erreur = JRequest::getVar('erreur', '', 'post');
if ($erreur) $form['script'] .= 'Erreur dans le formu';
$form['script'] .= '
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<form name="jeuxfb" action="index.php?option=com_jeuxfb&task=envoi" method="post" id="jeuxfb">Votre nom <input type="text" name="nom" /><input type="submit" value="go" /></form>';
return $form;
}
function Verif()
{
if ($_POST['nom'] != '')
return true;
return 'pasok';
}
}
La méthode Verif() est appelé depuis le contrôleur (je ne sais pas si on a le droit de faire ça : appeler une méthode depuis un contrôleur)
d'ailleurs quand j'appelle cette méthode depuis le contrôleur :
Code: Select all
function envoi() {
$model = &$this->getModel('formulaire');
$verif = $model->Verif();
if ($verif) {
La vue du formulaire (views/formulaire/view.html.php)
Code: Select all
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');
class JeuxFBViewOk extends JView
{
function display($tpl = null)
{
$texte = 'salut les gens';
$this->assignRef('texte', $texte);
parent::display($tpl);
}
}
Si vous pouvez m'éclairer sur ces questions.
Merci d'avance