[résolu]Custom Dashboard |
Bienvenue invité ( Connexion | Inscription )
[résolu]Custom Dashboard |
18 Apr 2012, 21:59
Message
#1
|
|
Ceinture orange OSC Groupe : Membres Messages : 168 Inscrit : 18-August 06 Lieu : PACA Membre no 11589 |
Salut,
Je reprends le sujet entammé il y a quelques semaines sur le forum international. Non je ne travaille pas sur un module payant au passage. Donc quand on met un fichier test dans le module dashboard de l'admin du Core c'est OK. Par contre quand on met le meme fichier dans le custom, là rien ne sort. J'ai parcouru le code dans tous les sens et je ne comprends pas d'ou vient le bug. J'ai du louper quelquechose ... Voici le fichier de test (Test.php) Code <?php
namespace osCommerce\OM\Core\Site\Admin\Module\Dashboard; use osCommerce\OM\Core\Registry; use osCommerce\OM\Core\HTML; use osCommerce\OM\Core\OSCOM; use osCommerce\OM\Core\Access; class Test extends \osCommerce\OM\Core\Site\Admin\IndexModulesAbstract { public function __construct() { //Registry::get('Language')->loadIniFile('modules/Dashboard/Reviews.php'); $this->_title = 'Test'; $this->_title_link = OSCOM::getLink(null, 'Reviews'); $this->_data = 'This is a test'; } } -------------------- MS2.2 RC2a ne ressemblant plus à rien de connu et bientôt migration sur OSC 12 ^^
|
|
19 Apr 2012, 16:52
Message
#2
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 120 Inscrit : 18-March 08 Lieu : Toulouse Membre no 21188 |
hmmm ici ça marche ^^
Regardes du coté du nom de tes repertoires... Module sans "s" et avec un M maj -------------------- osCommerce
|
|
19 Apr 2012, 17:20
Message
#3
|
|
Ceinture orange OSC Groupe : Membres Messages : 168 Inscrit : 18-August 06 Lieu : PACA Membre no 11589 |
Sans rires, ça fonctionne chez toi ?
Zut alors il me fait des blagues ce logiciel ... Pas de probleme de path car quand je mets dans le custom un fichier existant du core (du genre Customers.php) mon fichier pris en compte est bien celui du custom. Par contre mon fichier Test.php à côté lui, que dale ! Est-ce que tu as bien supprimé ton fichier /osCommerce/OM/Core/Site/Admin/Module/Dashboard/Test.php ?? -------------------- MS2.2 RC2a ne ressemblant plus à rien de connu et bientôt migration sur OSC 12 ^^
|
|
20 Apr 2012, 08:33
Message
#4
|
|
Ceinture marron OSC Groupe : Membres Messages : 1665 Inscrit : 3-June 09 Membre no 25501 |
les modules sont appelés par \osCommerce\OM\Core\Site\Admin\Application\Dashboard\Model\getModules.php :
Code $module_class = 'osCommerce\\OM\\Core\\Site\\Admin\\Module\\Dashboard\\' . $module; c'est donc ce fichier que tu dois overrider dans le dossier Custom pour en changer le comportement. |
|
20 Apr 2012, 09:41
Message
#5
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 120 Inscrit : 18-March 08 Lieu : Toulouse Membre no 21188 |
Effectivement je n'avais pas supprimé celui du Core... comme le dit foxP2 tu dois overwritter le getModule.php.
Ce message a été modifié par lorem_ipsum - 20 Apr 2012, 09:42. -------------------- osCommerce
|
|
20 Apr 2012, 16:05
Message
#6
|
|
Ceinture orange OSC Groupe : Membres Messages : 168 Inscrit : 18-August 06 Lieu : PACA Membre no 11589 |
Bien vu !
Mais n'est-ce pas un soucis ? le framework ne devrait-il pas le faire automatiquement à votre avis ? -------------------- MS2.2 RC2a ne ressemblant plus à rien de connu et bientôt migration sur OSC 12 ^^
|
|
20 Apr 2012, 18:16
Message
#7
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 120 Inscrit : 18-March 08 Lieu : Toulouse Membre no 21188 |
Je me suis posé la mm question, mais bon ça ne me choque pas.
Perso je regarde le bébé sous la forme de plusieurs "applications". Dans ton cas tu veux écraser/modifier l'application dashboard, donc tu dois prendre controller...model...(en particulier celui qui lui dit où loader) pour inclure ton modules test. Bon c'est un peu brouillon mais si t'as les mains dedans et suite au manque de doc.... je pense qu'on se comprend... -------------------- osCommerce
|
|
13 Aug 2012, 13:49
Message
#8
|
|
Ceinture marron OSC Groupe : Membres Messages : 1665 Inscrit : 3-June 09 Membre no 25501 |
Bien vu ! Mais n'est-ce pas un soucis ? le framework ne devrait-il pas le faire automatiquement à votre avis ? oui. un oubli ? qui peut être corrigé facilement : modification du fichier \osCommerce\OM\Core\Site\Admin\Application\Dashboard\Model\getModules.php : Code <?php /** * osCommerce Online Merchant * * @copyright Copyright (c) 2011 osCommerce; http://www.oscommerce.com * @copyright Copyright (c) 2012 FoxP2 * @license BSD License; http://www.oscommerce.com/bsdlicense.txt */ namespace osCommerce\OM\Core\Site\Admin\Application\Dashboard\Model; use osCommerce\OM\Core\DirectoryListing; use osCommerce\OM\Core\OSCOM; class getModules { public static function execute() { $result = array(); $modules = array(); $OSCOM_DirectoryListing = new DirectoryListing(OSCOM::BASE_DIRECTORY . 'Custom/Site/Admin/Module/Dashboard'); $OSCOM_DirectoryListing->setIncludeDirectories(false); foreach ( $OSCOM_DirectoryListing->getFiles() as $file ) { $module = substr($file['name'], 0, strrpos($file['name'], '.')); $modules[] = $module; } $OSCOM_DirectoryListing = new DirectoryListing(OSCOM::BASE_DIRECTORY . 'Core/Site/Admin/Module/Dashboard'); $OSCOM_DirectoryListing->setIncludeDirectories(false); foreach ( $OSCOM_DirectoryListing->getFiles() as $file ) { $module = substr($file['name'], 0, strrpos($file['name'], '.')); if( !in_array($module,$modules) ) { $modules[] = $module; } } foreach ( $modules as $mod ) { $module_class = 'osCommerce\\OM\\Core\\Site\\Admin\\Module\\Dashboard\\' . $mod; $OSCOM_Admin_DB_Module = new $module_class(); if ( $OSCOM_Admin_DB_Module->hasData()) { $result[] = array('module' => $module, 'title' => $OSCOM_Admin_DB_Module->getTitle(), 'link' => $OSCOM_Admin_DB_Module->hasTitleLink() ? $OSCOM_Admin_DB_Module->getTitleLink() : null, 'data' => $OSCOM_Admin_DB_Module->getData()); } } return $result; } } ?> donc pour overrider un module déjà existant, exemple avec Customers.php : créer dans le répertoire Custom les dossiers suivants (en respectant la hiérarchie) : - Site -- Admin --- Module ----Dashboard copier/coller le fichier \osCommerce\OM\Core\Site\Admin\Module\Dashboard\Customers.php dans le dossier Dashboard. Code <?php /** * osCommerce Online Merchant * * @copyright Copyright (c) 2011 osCommerce; http://www.oscommerce.com * @license BSD License; http://www.oscommerce.com/bsdlicense.txt */ namespace osCommerce\OM\Core\Site\Admin\Module\Dashboard; use osCommerce\OM\Core\Access; use osCommerce\OM\Core\HTML; use osCommerce\OM\Core\OSCOM; use osCommerce\OM\Core\Registry; /** * @since v3.0.4 */ class Customers extends \osCommerce\OM\Core\Site\Admin\IndexModulesAbstract { .../... ajouter un nouveau module ? Même principe. Code <?php /** * osCommerce Online Merchant * * @copyright Copyright (c) 2011 osCommerce; http://www.oscommerce.com * @license BSD License; http://www.oscommerce.com/bsdlicense.txt */ namespace osCommerce\OM\Core\Site\Admin\Module\Dashboard; use class core ...; /** * @since v3.0.4 */ class MaClasse extends \osCommerce\OM\Core\Site\Admin\IndexModulesAbstract { .../... je passe le sujet en résolu.
Raison de l'édition : Simplification du code
|
|
Version bas débit | Nous sommes le : 28th March 2024 - 12:26 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |