[ Index ]
 

Code source de eZ Publish 3.9.0

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/kernel/classes/ -> ezcontentclassclassgroup.php (source)

   1  <?php
   2  //
   3  // Definition of eZContentClass class
   4  //
   5  //
   6  // SOFTWARE NAME: eZ publish
   7  // SOFTWARE RELEASE: 3.9.0
   8  // BUILD VERSION: 17785
   9  // COPYRIGHT NOTICE: Copyright (C) 1999-2006 eZ systems AS
  10  // SOFTWARE LICENSE: GNU General Public License v2.0
  11  // NOTICE: >
  12  //   This program is free software; you can redistribute it and/or
  13  //   modify it under the terms of version 2.0  of the GNU General
  14  //   Public License as published by the Free Software Foundation.
  15  //
  16  //   This program is distributed in the hope that it will be useful,
  17  //   but WITHOUT ANY WARRANTY; without even the implied warranty of
  18  //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19  //   GNU General Public License for more details.
  20  //
  21  //   You should have received a copy of version 2.0 of the GNU General
  22  //   Public License along with this program; if not, write to the Free
  23  //   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  24  //   MA 02110-1301, USA.
  25  //
  26  //
  27  
  28  //!! eZKernel
  29  //! The class eZContentClassClassGroup
  30  /*!
  31  
  32  */
  33  
  34  include_once ( "lib/ezdb/classes/ezdb.php" );
  35  include_once ( "kernel/classes/ezpersistentobject.php" );
  36  include_once ( "kernel/classes/ezcontentclassgroup.php" );
  37  
  38  class eZContentClassClassGroup extends eZPersistentObject
  39  {
  40      function eZContentClassClassGroup( $row )
  41      {
  42          $this->eZPersistentObject( $row );
  43      }
  44  
  45      function definition()
  46      {
  47          return array( "fields" => array( "contentclass_id" => array( 'name' => "ContentClassID",
  48                                                                       'datatype' => 'integer',
  49                                                                       'default' => 0,
  50                                                                       'required' => true,
  51                                                                       'foreign_class' => 'eZContentClass',
  52                                                                       'foreign_attribute' => 'id',
  53                                                                       'multiplicity' => '1..*' ),
  54                                           "contentclass_version" => array( 'name' => "ContentClassVersion",
  55                                                                            'datatype' => 'integer',
  56                                                                            'default' => 0,
  57                                                                            'required' => true ),
  58                                           "group_id" => array( 'name' => "GroupID",
  59                                                                'datatype' => 'integer',
  60                                                                'default' => 0,
  61                                                                'required' => true ),
  62                                           "group_name" => array( 'name' => "GroupName",
  63                                                                  'datatype' => 'string',
  64                                                                  'default' => '',
  65                                                                  'required' => true ) ),
  66                        "keys" => array( "contentclass_id", "contentclass_version", "group_id" ),
  67  //                      "increment_key" => "id",
  68                        "class_name" => "eZContentClassClassGroup",
  69                        "sort" => array( "contentclass_id" => "asc" ),
  70                        "name" => "ezcontentclass_classgroup" );
  71      }
  72  
  73      function create( $contentclass_id, $contentclass_version, $group_id, $group_name )
  74      {
  75          if( $contentclass_version == null )
  76          {
  77              $contentclass_version = 0;
  78          }
  79          $row = array("contentclass_id" => $contentclass_id,
  80                       "contentclass_version" => $contentclass_version,
  81                       "group_id" => $group_id,
  82                       "group_name" => $group_name);
  83          return new eZContentClassClassGroup( $row );
  84      }
  85  
  86      function &update( $contentclass_version, $group_id, $group_name )
  87      {
  88          if( $contentclass_version == null )
  89          {
  90              $row = array( 'group_id' => $group_id );
  91          }
  92          else
  93          {
  94              $row = array( 'contentclass_version' => $contentclass_version,
  95                            'group_id' => $group_id );
  96          }
  97  
  98          eZPersistentObject::updateObjectList( array( 'definition' => eZContentClassClassGroup::definition(),
  99                                                       'update_fields' => array( 'group_name' => $group_name ),
 100                                                       'conditions' => $row ) );
 101      }
 102  
 103      /*!
 104       \note Transaction unsafe. If you call several transaction unsafe methods you must enclose
 105       the calls within a db transaction; thus within db->begin and db->commit.
 106       */
 107      function remove( $contentclass_id, $contentclass_version, $group_id )
 108      {
 109          if ( $contentclass_version == null )
 110          {
 111              eZPersistentObject::removeObject( eZContentClassClassGroup::definition(),
 112                                                array("contentclass_id" => $contentclass_id,
 113                                                      "group_id" => $group_id ) );
 114          }
 115          else
 116          {
 117              eZPersistentObject::removeObject( eZContentClassClassGroup::definition(),
 118                                                array("contentclass_id" => $contentclass_id,
 119                                                      "contentclass_version" =>$contentclass_version,
 120                                                      "group_id" => $group_id ) );
 121          }
 122      }
 123  
 124      /*!
 125       \note Transaction unsafe. If you call several transaction unsafe methods you must enclose
 126       the calls within a db transaction; thus within db->begin and db->commit.
 127       */
 128      function removeGroupMembers( $group_id )
 129      {
 130          eZPersistentObject::removeObject( eZContentClassClassGroup::definition(),
 131                                            array( "group_id" => $group_id ) );
 132      }
 133  
 134      /*!
 135       \note Transaction unsafe. If you call several transaction unsafe methods you must enclose
 136       the calls within a db transaction; thus within db->begin and db->commit.
 137       */
 138      function removeClassMembers( $contentclass_id, $contentclass_version )
 139      {
 140          eZPersistentObject::removeObject( eZContentClassClassGroup::definition(),
 141                                            array( "contentclass_id" =>$contentclass_id,
 142                                                   "contentclass_version" =>$contentclass_version ) );
 143      }
 144  
 145      function fetch( $contentclass_id, $contentclass_version, $group_id, $asObject = true )
 146      {
 147          return eZPersistentObject::fetchObject( eZContentClassClassGroup::definition(),
 148                                                  null,
 149                                                  array("contentclass_id" => $contentclass_id,
 150                                                        "contentclass_version" =>$contentclass_version,
 151                                                        "group_id" => $group_id ),
 152                                                  $asObject );
 153      }
 154  
 155      function fetchClassList( $contentclass_version, $group_id, $asObject = true, $orderByArray = array( 'name' ) )
 156      {
 157          include_once ( 'kernel/classes/ezcontentclassclassgroup.php' );
 158          $classIDList = eZContentClassClassGroup::fetchClassListByGroups( 0, array( 1,3 ) );
 159          $versionCond = '';
 160          $orderByClause = '';
 161          $group_id =(int) $group_id;
 162          $classNameSqlFilter = eZContentClassName::sqlEmptyFilter();
 163  
 164          if ( $contentclass_version !== null )
 165          {
 166              $contentclass_version =(int) $contentclass_version;
 167              $versionCond = "AND class_group.contentclass_version='$contentclass_version'
 168                              AND contentclass.version='$contentclass_version'\n";
 169          }
 170  
 171          if ( $orderByArray )
 172          {
 173              foreach( array_keys( $orderByArray ) as $key )
 174              {
 175                  if ( strcasecmp( $orderByArray[$key], 'name' ) === 0 )
 176                  {
 177                      $classNameSqlFilter = eZContentClassName::sqlAppendFilter( 'contentclass' );
 178                      $orderByArray[$key] = $classNameSqlFilter['orderBy'];
 179                  }
 180              }
 181  
 182              $orderByClause = 'ORDER BY ' . implode( ', ', $orderByArray );
 183          }
 184  
 185          $db =& eZDB::instance();
 186          $sql = "SELECT contentclass.* $classNameSqlFilter[nameField]
 187                  FROM ezcontentclass  contentclass, ezcontentclass_classgroup class_group $classNameSqlFilter[from]
 188                  WHERE contentclass.id=class_group.contentclass_id
 189                  $versionCond
 190                  AND class_group.group_id='$group_id' $classNameSqlFilter[where]
 191                  $orderByClause";
 192          $rows = $db->arrayQuery( $sql );
 193          return eZPersistentObject::handleRows( $rows, "eZContentClass", $asObject );
 194      }
 195  
 196      function fetchClassListByGroups( $contentclassVersion, $groupIDList, $asObject = true )
 197      {
 198          if ( is_array( $groupIDList ) )
 199          {
 200              $groupIDList = array( $groupIDList );
 201          }
 202          $classGroupList = eZPersistentObject::fetchObjectList( eZContentClassClassGroup::definition(),
 203                                                                  array(),
 204                                                                  array( "group_id" => $groupIDList,
 205                                                                         "contentclass_version" => $contentclassVersion ),
 206                                                                  null,
 207                                                                  null,
 208                                                                  false,
 209                                                                  false,
 210                                                                  array( array( 'operation' => "distinct contentclass_id" ) ) );
 211          $classList = array();
 212          if ( $asObject )
 213          {
 214              foreach ( $classGroupList as $classGroup )
 215              {
 216                  $classList[] = eZContentClass::fetch( $classGroup['contentclass_id'] );
 217              }
 218          }
 219          else
 220          {
 221              foreach ( $classGroupList as $classGroup )
 222              {
 223                  $classList[] = $classGroup['contentclass_id'];
 224              }
 225          }
 226          return $classList;
 227      }
 228  
 229      function fetchGroupList( $contentclass_id, $contentclass_version, $asObject = true )
 230      {
 231          return eZPersistentObject::fetchObjectList( eZContentClassClassGroup::definition(),
 232                                                      null,
 233                                                      array( "contentclass_id" => $contentclass_id,
 234                                                             "contentclass_version" => $contentclass_version ),
 235                                                      null,
 236                                                      null,
 237                                                      $asObject );
 238      }
 239  
 240      function &classInGroup( $contentclassID, $contentclassVersion, $groupID )
 241      {
 242          $rows = eZPersistentObject::fetchObjectList( eZContentClassClassGroup::definition(),
 243                                                       null,
 244                                                       array( 'group_id' => $groupID,
 245                                                              "contentclass_id" => $contentclassID,
 246                                                              "contentclass_version" => $contentclassVersion ),
 247                                                       null,
 248                                                       null,
 249                                                       false );
 250          $retValue = count( $rows ) > 0;
 251          return $retValue;
 252      }
 253  
 254      /// \privatesection
 255      var $ContentClassID;
 256      var $ContentClassVersion;
 257      var $GroupID;
 258      var $GroupName;
 259  }
 260  
 261  ?>


Généré le : Sat Feb 24 10:30:04 2007 par Balluche grâce à PHPXref 0.7