Jump to content

Nouvelle Classe Extends Objectmodel


Recommended Posts

Bonjour à tous.

 

je suis sur le développement d'un module BO sur 1.6 et j'arrive au moment où je dois implémenter une nouvelle classe qui étend la classe ObjectModel.

Ma question est, où dois-je mettre ce nouveau fichier? Ou bien faut-il la déclarer dans l'un des autres fichiers? Car rien n'est indiqué dans la doc à se sujet.
 

En gros, j'ai 

class MonExempleController extends AdminController
{
	public function __construct()
	{
		$this->table = 'moncontroller';
		$this->className = 'MonController';
		parent::__construct();
	}
	
	public function renderList()
	{
          /*mon code*/
        }
        
        public function ajaxProcessDetails()
	{
           /*mon code*/
        }
}
Class MyOwnObjectCore extends ObjetcModel{
public static $definition = array(
        'table' => 'events',
        'primary' => 'id',
        'multilang' => false,
        'multilang_shop' => false,
		'fields' => array(
                     'id' 		      => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
		     'position' =>            array('type' => self::TYPE_INT)
                 ),
);

et lorsque je veux ajouter un nouvel objet dans ma table, la page suvante me dit que ma classe n'existe pas ou bien que j'ai une erreur sur le champ 'position' ( en fonction de si celui-ci est commenté ou non ).

 

Tout le reste de mon module marche bien, la partie récupération des données que j'ai entré avec phpmyadmin s'affiche très bien, dans le bon ordre, mais impossible de faire fonctionner ma nouvelle classe.

 

J'espère avoir été assez clair et que vous pourrez m'aider.

Edited by kapourafi (see edit history)
Link to comment
Share on other sites

Tu le dépose où tu veux dans ton module et tu l'include de là.

 

Par contre je me demande si tu ne impromptues  pas de faire un module avec ObjectModel et AdminController sans vouloir aller au moins lire ceux existant natif dans la solution.

 

Une doc ne peux pas tout couvrir, encore moins des étape en quelques sorte à la base du codage.

 

Ne te trompe pas je ne veux pas te vexer, juste t'éviter de te lancer dans un truc peut-être un peu trop dur pour toi pour l'instant.

Link to comment
Share on other sites

Le problème c'est que quand je l'include, il ne me trouve pas la classe ObjectModel...

 

Et non il n'y a aucun module existant qui se rapproche de ce que je veux faire.

Et je suis développeur depuis 5 ans. C'est juste que je suis nouveau sur prestashop, et je veux faire du codage propre.

Link to comment
Share on other sites

Bonjour,

 

Il me semble qu'ils font un simple include_once dans le fichier principal de leur module, de cette manière:

include_once(_PS_MODULE_DIR_.'monmodule/classes/MaClasse.php');

Normalement la classe ObjectModel est trouvée juste avec cet appelle.

 

A placer au dessus de la déclaration de votre classe:

include_once(_PS_MODULE_DIR_.'monmodule/classes/MaClasse.php');

class MonExempleController extends AdminController
{
	public function __construct()
	{
		$this->table = 'moncontroller';
		$this->className = 'MonController';
		parent::__construct();
	}
	
	public function renderList()
	{
          /*mon code*/
        }
        
        public function ajaxProcessDetails()
	{
           /*mon code*/
        }
}
Edited by Marvin Lamart (see edit history)
Link to comment
Share on other sites

Tiens pour une fois que ce module sera utile...

Décortique le module gamification... il a tout ObjectModel, AdminController, ...

J'ai comme l'impression que tu assembles des bouts de tutos trouvé ici et là de personnes n'ayant pas vraiment compris l'archi.

 

D'ailleurs tu ne mets que des bouts de ton code ... certaines lignes anodines ont une utilité obscure au néophite mais doivent être là.

Respecte scrupuleusement et la structure et les camel case ...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...