| [ Index ] |
|
Code source de eZ Publish 3.9.0 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sat Feb 24 10:30:04 2007 | par Balluche grâce à PHPXref 0.7 |