Changeset 2958

Show
Ignore:
Timestamp:
07/24/08 17:36:56 (1 month ago)
Author:
gcroes
Message:

recherche des portlets dans tous les modules
utilisation d'une méthode non statique
Décodage dans la classe elle meme
lancement d'une exception si l'élémnet n'est pas trovué

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/project/modules/devel/cms3/portal/classes/portletservices.class.php

    r2949 r2958  
    1616     * @return String : libellé du portlet 
    1717     */ 
    18     public function getZoneId ($id) { 
     18    public function getZoneId ($pId) { 
    1919        $arData = self::getList(); 
     20        if (!array_key_exists ($pId, $arData)){ 
     21            throw new CopixException ('La portlet de type '.$pId.' est introuvable'); 
     22        } 
    2023        return $arData[$id]; 
    2124    } 
     
    3033        CopixClassesFactory::fileInclude ('portal|portalparameterservices'); 
    3134        $xml = CopixModule::getParsedModuleInformation ( 
    32                             "portallist_ParameterGroups", 
     35                            "portal_PortletTypes", 
    3336                            "/moduledefinition/registry/entry[@id='Portlet']/*", 
    34                             array ('portalparameterservices', 'getPortletsFromXML')); 
     37                            array ($this, 'getPortletsFromXML')); 
    3538        return $xml; 
    3639    } 
     40     
     41    public function getPortletsFromXML ($moduleNode) { 
     42        $arData = array (); 
     43        foreach ($moduleNode as $moduleName=>$moduleNodes){ 
     44            foreach ($moduleNodes as $node){ 
     45                if ($node->getName () === 'type') { 
     46                    $id = _toString($node['id']); 
     47                    if (_toString($node['caption']) !== '') { 
     48                        $arData[$id] = _toString($node['caption']); 
     49                    } else if (_toString($node['captioni18n']) !== '') { 
     50                        $arData[$id] = CopixI18N::get(_toString($node['captioni18n'])); 
     51                    } 
     52                } 
     53            } 
     54        } 
     55        return $arData; 
     56    }    
    3757} 
    3858?>