Bonjour,
Je cherche à faire une nouvelle fonctionnalité:
Dans le dashboard(Account customer) je voudrais que l' utilisateur puisse ajouter une liste de mail:
Je commence par créer les répertoires dans le home de magento:
<%HOME_MAGENTO%>\service_presse\app\locale\Mailinglist\Email
j'ai un répertoire \etc avec le config.xml et sont contenu:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 <?xml version="1.0"?> <config> <modules> <Mailinglist_Email> <version>0.1.0</version> </Mailinglist_Email> </modules> <global> <models> <email> <!-- Init model for mymod module --> <class>Mailinglist_Email_Model</class> <!-- Init db config handler for mymod models --> <resourceModel>email_mysql4</resourceModel> </email> <!-- declaring model vs db table relation --> <email_mysql4> <class>Mailinglist_Email_Model_Mysql4</class> <!-- declate table test --> <entities> <carnetemail> <table>carnetemail</table> </carnetemail> </entities> <!-- -/- --> </email_mysql4> <!-- -/- --> </models> <frontend> <routers> <routeurfrontend> <use>standard</use> <args> <module>Mailinglist_Email</module> <frontName>mailinglist</frontName> </args> </routeurfrontend> </routers> </frontend> <!-- Setup db read & write connection for Mymod module --> <resources> <!-- db write connection --> <email_write> <connection> <use>core_write</use> </connection> </email_write> <!-- db read connection --> <email_read> <connection> <use>core_read</use> </connection> </email_read> </resources> <!-- -/- --> </global> </config>
dans \Model j'ai Carnetemail.php
dans \Mysql4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php class Mailinglist_Email_Model_Carnetemail extends Mage_Core_Model_Abstract { public function _construct() { Mage::log('Mailinglist_Email_Model_Carnetemail:_construct => '.$model, Zend_Log::INFO,'Mailinglist_php_construct.txt',true); parent::_construct(); $this->_init('email/carnetemail'); } }
j'ai Carnetemail.php et le répertoire \Carnetemail ou j'ai le fichier Collection.php et
Carnetemail.php =>
collection.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php class Mailinglist_Email_Model_Mysql4_Carnetemail extends Mage_Core_Model_Mysql4_Abstract { public function _construct() { $this->_init('email/carnetemail', 'id_email'); } }
Je pense avoir respecter la norme de la création des tables de magento de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php class Mailinglist_Email_Model_Mysql4_Carnetemail_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract { public function _construct() { parent::_construct(); $this->_init('email/carnetemail'); } }
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE `shemaXXX`.`carnet_email` ( `id_email` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `id_customer` INT( 11 ) NOT NULL, `nom` VARCHAR( 50 ) NOT NULL , `prenom` VARCHAR( 50 ) NOT NULL , `email` VARCHAR( 20 ) NOT NULL);
J'ai id_customer car chaque customer peur avoir plusieurs mails associés.
Donc après toute cette configuration: pour testé dans Info.php je fais
Mais j'ai une belle erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $model = Mage::getModel('email/carnetemail'); $data = $model->getCollection()->getData();Fatal error: Call to a member function getCollection() on a non-object in
Voici l'erreur dans le system.log:
Comment faire pour rendre accessible la nouvelle table partout dans le code?2013-03-29T11:13:23+00:00 ERR (3): Warning: include(Mage\Email\Model\Carnetemail.php): failed to open stream: No such file or directory in \%HOME_MAGENTO%\lib\Varien\Autoload.php on line 93
2013-03-29T11:13:23+00:00 ERR (3): Warning: include(): Failed opening 'Mage\Email\Model\Carnetemail.php' for inclusion (include_path='\%HOME_MAGENTO%\app\code\local;\%HOME_MAGENTO%\app\code\community;G:\%HOME_MAGENTO%\app\code\core;G:\%HOME_MAGENTO%\lib;.;C:\php\pear') in \%HOME_MAGENTO%\lib\Varien\Autoload.php on line 93
Merci par avance!
Partager