Bonjour à tous.
Je travail actuellement sur un projet sur Joomla 2.5.
J'utilise le plugin AdsManager pour gérer des petites annonces.
Jusque la tout fonctionne nickel.
Pour la suite du projet je dois modifier le plugin afin d'y ajouter de nouvelles fonctionnalités. Pour cela j'ai besoin de créer de nouvelles vues et des modèles.
J'ai donc crée une première vue :
C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\components\com_adsmanager\views\ca ndidature\view.html.php
C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\components\com_adsmanager\views\ca ndidature\tmpl\default.php
J'ai crée mon modèle :
C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\administrator\components\com_adsma nager\models\postuler.php
Et j'ai ajouté dans le contrôleur :
Ma vue s'affiche bien, j'ai titre qui s'affiche normalement.
Par contre quand j'essaie de récuperer mon modèle dans la vue afin de pouvoir l'utiliser j'ai le droit à une notice :
Notice: Undefined index: postuler in C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\libraries\joomla\application\compo nent\view.php on line 413
J'ai l'impression que la vue ne trouve pas le modèle. Pourtant j'ai bien fait un setModel dans le contrôleur.
Et si j'essaie d'appeler ma fonction getCandidatureEtudiant, j'ai droit à l'erreur :
Fatal error: Call to a member function getCandidatureEtudiant() on a non-object in C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\components\com_adsmanager\views\ca ndidature\view.html.php on line 29
Cette erreur étant liée à la première, j'aimerais comprendre comment faire pour que ma vue puisse bien récupérer mon modèle.
Merci d'avance pour vos réponses.
Je travail actuellement sur un projet sur Joomla 2.5.
J'utilise le plugin AdsManager pour gérer des petites annonces.
Jusque la tout fonctionne nickel.
Pour la suite du projet je dois modifier le plugin afin d'y ajouter de nouvelles fonctionnalités. Pour cela j'ai besoin de créer de nouvelles vues et des modèles.
J'ai donc crée une première vue :
C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\components\com_adsmanager\views\ca ndidature\view.html.php
Code:
<?php // Check to ensure this file is included in Joomla! defined('_JEXEC') or die( 'Restricted access' ); jimport('joomla.application.component.view'); require_once(JPATH_BASE."/components/com_adsmanager/helpers/field.php"); require_once(JPATH_BASE."/components/com_adsmanager/helpers/general.php"); /** * @package Joomla * @subpackage Contacts */ class AdsmanagerViewCandidature extends TView { function display($tpl = null) { $user = JFactory::getUser(); $titre = "Candidature"; $this->assignRef( 'titre', $titre ); $postulermodel =$this->getModel("postuler"); //$candidatureEtu = $postulermodel->getCandidatureEtudiant(); //$this->assignRef('candidatureEtu',$candidatureEtu); parent::display($tpl); } }
C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\components\com_adsmanager\views\ca ndidature\tmpl\default.php
Code:
<?php // No direct access defined('_JEXEC') or die('Restricted access'); //jimport('joomla.application.component.view'); ?> <h1><?php echo $this->titre; ?></h1>
J'ai crée mon modèle :
C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\administrator\components\com_adsma nager\models\postuler.php
Code:
<?php /** * Created by JetBrains PhpStorm. * Date: 17/04/13 * Time: 08:15 * To change this template use File | Settings | File Templates. */ // Check to ensure this file is included in Joomla! defined('_JEXEC') or die( 'Restricted access' ); jimport('joomla.application.component.model'); JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_adsmanager'.DS.'tables'); /** * @package Joomla * @subpackage Contact */ class AdsmanagerModelPostuler extends TModel { function getPermissionPostuler($userid) { $this->_db->setQuery("SELECT group_id FROM #__user_usergroup_map WHERE user_id = $userid "); $req = $this->_db->loadObjectList(); $boolean = TRUE; foreach($req as $ligne) { if ($ligne->group_id == '12') $boolean = FALSE; } return $boolean; } function getCandidatureEtudiant() { $this->_db->setQuery("SELECT id_entreprise, id_offre FROM #__postulation WHERE id_user = 622 "); $req = $this->_db->loadObjectList(); return $req; } }
Et j'ai ajouté dans le contrôleur :
Code:
$postulermodel =$this->getModel("postuler"); $view->setModel( $postulermodel);
Ma vue s'affiche bien, j'ai titre qui s'affiche normalement.
Par contre quand j'essaie de récuperer mon modèle dans la vue afin de pouvoir l'utiliser j'ai le droit à une notice :
Notice: Undefined index: postuler in C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\libraries\joomla\application\compo nent\view.php on line 413
J'ai l'impression que la vue ne trouve pas le modèle. Pourtant j'ai bien fait un setModel dans le contrôleur.
Et si j'essaie d'appeler ma fonction getCandidatureEtudiant, j'ai droit à l'erreur :
Fatal error: Call to a member function getCandidatureEtudiant() on a non-object in C:\Program Files\wamp\www\Joomla_2.5.9-Stable-Full_Package_FR\components\com_adsmanager\views\ca ndidature\view.html.php on line 29
Cette erreur étant liée à la première, j'aimerais comprendre comment faire pour que ma vue puisse bien récupérer mon modèle.
Merci d'avance pour vos réponses.
Commentaire