Changeset 2961

Show
Ignore:
Timestamp:
07/24/08 19:19:25 (1 month ago)
Author:
alexandrej
Message:

mise à jour sur la classe headingelementinformationservices

Files:

Legend:

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

    r2953 r2961  
    6464     */ 
    6565    public function update ($pHeadingElementInformation){ 
    66  
    67     } 
     66        $record = _record ('headindelementinformation')->initFromDbObject ($pHeadingElementInformation); 
     67    } 
     68 
    6869 
    6970    /** 
     
    7172     * @param unknown $pHeadingElementInformationId 
    7273     */ 
    73     public function deleteById ($pHeadingElementInformationId){ 
    74         _dao('headingelementinformation')->delete ($pHeadingElementInformationId); 
     74    public function deleteById ($pHeadingElementInformationId, $deleteChildren) { 
     75        $parameters = _daoSp ()->addCondition ('id_hei', '=', $pHeadingElementInformationId); 
     76        _dao('headingelementinformation')->deleteBy ($parameters); 
    7577    } 
    7678     
     
    8082     */ 
    8183    public function deleteByPublicId ($pPublicId){ 
    82         $parameters = _daoSp ()->addCondition ('public_id_hei', '=', $pPublicId); 
     84        $id = $this->getId($pPublicId); 
     85         
     86        $parameters = _daoSp ()->addCondition ('id_helt', '=', $id['id_helt']) 
     87                               ->addCondition ('type_hei', '=', $id['type_hei']);        
    8388        _dao('headingelementinformation')->deleteBy ($parameters); 
    8489    } 
     
    9095     * @return array ['theme']=>le thème ['providedBy']=>publicId de la rubrique qui fourni l'élément   
    9196     */ 
    92     public function getTheme ($pPublicId){ 
     97    public function getTheme ($pPublicId) { 
     98        $id = $this->getId($pPublicId); 
     99        do { 
     100            $parameters = _daoSp ()->addCondition ('id_helt', '=', $id['id_helt']) 
     101                                   ->addCondition ('type_hei', '=', $id['type_hei']); 
     102 
     103        $results = _dao('headingelementinformation')->findBy ($parameters);      
     104            if ($results[0]->theme_id_hei !== null) { 
     105                return array ('theme' => $results[0]->theme_id_hei, 'providedBy' => $results[0]->public_id_hei); 
     106            } else { 
     107                $id = $this->getId ($results[0]->parent_heading_public_id_hei); 
     108            } 
     109        } while ($results[0]->parent_heading_public_id_hei == null); 
    93110    } 
    94111     
     
    102119     */ 
    103120    public function getThemeById ($pIdHelt, $pTypeHei){ 
     121        do { 
     122            $parameters = _daoSp ()->addCondition ('id_helt', '=', $pIdHelt) 
     123                                   ->addCondition ('type_hei', '=', $pTypeHei); 
     124 
     125        $results = _dao('headingelementinformation')->findBy ($parameters);      
     126            if ($results[0]->theme_id_hei !== null) { 
     127                return array ('theme' => $results[0]->theme_id_hei, 'providedBy' => $results[0]->public_id_hei); 
     128            } else { 
     129                $id = $this->getId ($results[0]->parent_heading_public_id_hei); 
     130            } 
     131        } while ($results[0]->parent_heading_public_id_hei == null); 
    104132    } 
    105133     
     
    111139     */ 
    112140    public function getBaseUrl ($pPublicId){ 
     141        $id = $this->getId($pPublicId); 
     142        do { 
     143            $parameters = _daoSp ()->addCondition ('id_helt', '=', $id['id_helt']) 
     144                                   ->addCondition ('type_hei', '=', $id['type_hei']); 
     145 
     146        $results = _dao('headingelementinformation')->findBy ($parameters);      
     147            if ($results[0]->base_url_hei !== null) { 
     148                return array ('theme' => $results[0]->base_url_hei, 'providedBy' => $results[0]->public_id_hei); 
     149            } else { 
     150                $id = $this->getId ($results[0]->parent_heading_public_id_hei); 
     151            } 
     152        } while ($results[0]->parent_heading_public_id_hei == null); 
    113153    } 
    114154     
     
    121161     */ 
    122162    public function getBaseUrlById ($pIdHelt, $pTypeHelt){ 
     163        do { 
     164            $parameters = _daoSp ()->addCondition ('id_helt', '=', $pIdHelt) 
     165                                   ->addCondition ('type_hei', '=', $pTypeHei); 
     166 
     167        $results = _dao('headingelementinformation')->findBy ($parameters);      
     168            if ($results[0]->base_url_hei !== null) { 
     169                return array ('theme' => $results[0]->base_url_hei, 'providedBy' => $results[0]->public_id_hei); 
     170            } else { 
     171                $id = $this->getId ($results[0]->parent_heading_public_id_hei); 
     172            } 
     173        } while ($results[0]->parent_heading_public_id_hei == null); 
    123174    } 
    124175     
     
    130181     */ 
    131182    public function getRootMenu ($pPublicId){ 
     183        $id = $this->getId($pPublicId); 
     184        do { 
     185            $parameters = _daoSp ()->addCondition ('id_helt', '=', $id['id_helt']) 
     186                                   ->addCondition ('type_hei', '=', $id['type_hei']); 
     187 
     188        $results = _dao('headingelementinformation')->findBy ($parameters);      
     189            if ($results[0]->public_id_root_menu_hei !== null) { 
     190                return array ('theme' => $results[0]->public_id_root_menu_hei, 'providedBy' => $results[0]->public_id_hei); 
     191            } else { 
     192                $id = $this->getId ($results[0]->parent_heading_public_id_hei); 
     193            } 
     194        } while ($results[0]->parent_heading_public_id_hei == null); 
    132195    } 
    133196     
     
    140203     */ 
    141204    public function getRootMenuById ($pIdHelt, $pTypeHelt){ 
     205        do { 
     206            $parameters = _daoSp ()->addCondition ('id_helt', '=', $pIdHelt) 
     207                                   ->addCondition ('type_hei', '=', $pTypeHei); 
     208 
     209        $results = _dao('headingelementinformation')->findBy ($parameters);      
     210            if ($results[0]->public_id_root_menu_hei !== null) { 
     211                return array ('theme' => $results[0]->public_id_root_menu_hei, 'providedBy' => $results[0]->public_id_hei); 
     212            } else { 
     213                $id = $this->getId ($results[0]->parent_heading_public_id_hei); 
     214            } 
     215        } while ($results[0]->parent_heading_public_id_hei == null); 
    142216    } 
    143217     
     
    148222     * @return array ['contextualMenu']=>l'id du menu ['providedBy']=>publicId de la rubrique qui fourni l'élément 
    149223     */ 
    150     public function getContextualMenu ($pPublicId){ 
     224    public function getContextualMenu ($pPublicId) { 
     225        $id = $this->getId($pPublicId); 
     226        do { 
     227            $parameters = _daoSp ()->addCondition ('id_helt', '=', $id['id_helt']) 
     228                                   ->addCondition ('type_hei', '=', $id['type_hei']); 
     229 
     230        $results = _dao('headingelementinformation')->findBy ($parameters);      
     231            if ($results[0]->public_id_contextual_menu_hei !== null) { 
     232                return array ('theme' => $results[0]->public_id_contextual_menu_hei, 'providedBy' => $results[0]->public_id_hei); 
     233            } else { 
     234                $id = $this->getId ($results[0]->parent_heading_public_id_hei); 
     235            } 
     236        } while ($results[0]->parent_heading_public_id_hei == null); 
    151237    } 
    152238     
     
    157243     * @param string $pTypeHei type de l'élément  
    158244     * @return array ['contextualMenu']=>le menu contextuel ['providedBy']=>publicId de la rubrique qui fourni l'élément 
    159      */ 
    160     public function getContextualMenuById ($pIdHelt, $pTypeHelt){ 
     245     * @todo vérifier le retour 
     246     */ 
     247    public function getContextualMenuById ($pIdHelt, $pTypeHelt) { 
     248        $publicId = $this->getPublicId ($pIdHelt, $pTypeHelt); 
     249        $parameters = _daoSp ()->addCondition ('public_id_hei', '=', $pPublicId); 
     250        $results = _dao('headingelementinformation')->findBy ($parameters); 
     251        return array ('contextualMenu' => $results->public_id_contextual_menu_hei, 'providedBy' => $results->public_id_contextual_menu_hei); 
    161252    } 
    162253     
     
    167258     */ 
    168259    public function getId ($pPublicId){ 
     260        $parameters = _daoSp ()->addCondition ('public_id_hei', '=', $pPublicId); 
     261        $results = _dao('headingelementinformation')->findBy ($parameters); 
     262        return array ('id_helt' => $results[0]->id_helt, 'type_hei' => $results[0]->type_hei); 
    169263    } 
    170264     
     
    176270     */ 
    177271    public function getPublicId ($pIdHelt, $pTypeHei){ 
     272        $parameters = _daoSp ()->addCondition ('id_helt', '=', $pIdHelt) 
     273                               ->addCondition ('type_hei', '=', $pTypeHei); 
     274        $results = _dao('headingelementinformation')->findBy ($parameters); 
     275        return $results[0]->public_id_hei; 
    178276    } 
    179277 
     
    182280     */ 
    183281    public function hasChild ($pPublicId){ 
     282        $parameters = _daoSp ()->addCondition ('parent_heading_public_id', '=', $pPublicId); 
     283        $results = _dao('headingelementinformation')->findBy ($parameters); 
     284        return count ($results) == 0; 
    184285    } 
    185286     
     
    189290     */ 
    190291    public function hasChildById ($pIdHelt, $pTypeHei){ 
     292         
    191293        //si $pTypeHei != heading return false 
    192          
     294        if ($pTypeHei !== 'heading') { 
     295            return false; 
     296        } 
    193297        //récupération du publicId de la rubrique donnée 
    194          
    195         //findBy where parent_heading_public_id_hei = id de la rubrique 
    196          
    197         //return count (results) == 0; 
     298        $publicId = $this->getPublicId ($pIdHelt, $pTypeHei); 
     299         
     300        $parameters = _daoSp ()->addCondition ('parent_heading_public_id_hei', '=', $publicId); 
     301        $results = _dao ('headingelementinformation')->findBy ($parameters); 
     302        return count ($results) !== 0; 
    198303    } 
    199304     
     
    292397     * @return int  le numéro de version a venir  
    293398     */ 
    294     public function getMaxVersion ($pPublicId){ 
    295         list ($idHelt, $typeHei) = $this->getId ($pPublicId); 
    296         return _dao ('headingelementinformation')->getMaxVersion ($idHelt, $typeHei); 
    297  
    298  
    299         $parameters = _daoSp ()->addCondition ('id_helt', '=', $idHelt) 
    300                                ->orderby (array('version_hei', 'DESC')) 
    301                                ->setLimit (0, 1); 
    302         if (!$results = _dao('headingelementinformation')->findBy ($parameters)) { 
     399    public function getMaxVersion ($pPublicId) { 
     400        $parameters = _daoSp ()->addCondition ('public_id_hei', '=', $pPublicId); 
     401        if (_dao('headingelementinformation')->findBy ($parameters) === false) { 
    303402            throw new CopixException ('Element inexistant '.$pPublicId); 
    304403        } 
    305         return $results[0]->version_hei; 
     404        $id = $this->getId ($pPublicId); 
     405        $results = _doQuery ('select MAX(version_hei) from headingelementinformation where id_helt = :idhelt and type_hei = :typehei; ', array (':idhelt' => $id['id_helt'], ':typehei' => $id['type_hei'])); 
     406        $temp = 'MAX(version_hei)'; 
     407        return $results[0]->$temp; 
    306408    } 
    307409