osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

> [résolu]Custom Dashboard
foayiid
posté 18 Apr 2012, 21:59
Message #1


Ceinture orange OSC
Icône de groupe

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 ^^
Go to the top of the page
 
 
Start new topic
Réponse(s)
FoxP2
posté 13 Aug 2012, 13:49
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



Citation (foayiid @ 20 Apr 2012, 16:05) *
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. happy.gif
Raison de l'édition : Simplification du code


--------------------


Go to the top of the page
 

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 16th October 2019 - 14:36
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)