static function fetchList($version = eZContentClass::VERSION_STATUS_DEFINED, $asObject = true, $user_id = false, $sorts = null, $fields = null, $classFilter = false, $limit = null) { $conds = array(); $custom_fields = null; $custom_tables = null; $custom_conds = null; if (is_numeric($version)) { $conds["version"] = $version; } if ($user_id !== false and is_numeric($user_id)) { $conds["creator_id"] = $user_id; } if ($classFilter) { $classIDCount = 0; $classIdentifierCount = 0; $classIDFilter = array(); $classIdentifierFilter = array(); foreach ($classFilter as $classType) { if (is_numeric($classType)) { $classIDFilter[] = $classType; $classIDCount++; } else { $classIdentifierFilter[] = $classType; $classIdentifierCount++; } } if ($classIDCount > 1) { $conds['id'] = array($classIDFilter); } else { if ($classIDCount == 1) { $conds['id'] = $classIDFilter[0]; } } if ($classIdentifierCount > 1) { $conds['identifier'] = array($classIdentifierFilter); } else { if ($classIdentifierCount == 1) { $conds['identifier'] = $classIdentifierFilter[0]; } } } if ($sorts && isset($sorts['name'])) { $nameFiler = eZContentClassName::sqlFilter('ezcontentclass'); $custom_tables = array($nameFiler['from']); $custom_conds = "AND " . $nameFiler['where']; $custom_fields = array($nameFiler['nameField']); $sorts[$nameFiler['orderBy']] = $sorts['name']; unset($sorts['name']); } return eZPersistentObject::fetchObjectList(eZContentClass::definition(), $fields, $conds, $sorts, $limit, $asObject, false, $custom_fields, $custom_tables, $custom_conds); }
$key = $attribute->attribute('id'); if (isset($attributeNames[$key])) { $attribute->setName($attributeNames[$key], $EditLanguage); } } } if ($http->hasPostVariable('ContentAttribute_description')) { $attributeNames = $http->postVariable('ContentAttribute_description'); foreach ($attributes as $attribute) { $key = $attribute->attribute('id'); if (isset($attributeNames[$key])) { $attribute->setDescription($attributeNames[$key], $EditLanguage); } } } eZHTTPPersistence::fetch('ContentClass', eZContentClass::definition(), $class, $http, false); if ($http->hasPostVariable('ContentClass_name')) { $class->setName($http->postVariable('ContentClass_name'), $EditLanguage); } if ($http->hasPostVariable('ContentClass_description')) { $class->setDescription($http->postVariable('ContentClass_description'), $EditLanguage); } if ($http->hasVariable('ContentClass_is_container_exists')) { if ($http->hasVariable('ContentClass_is_container_checked')) { $class->setAttribute("is_container", 1); } else { $class->setAttribute("is_container", 0); } } if ($http->hasVariable('ContentClass_always_available_exists')) { if ($http->hasVariable('ContentClass_always_available')) {
/** * Returns a struct containing the following values: * - limit the number of element by page * - offset the current offset * - items array, each element contains * - has_child boolean * - can_create boolean * - node eZContentObjectTreeNode * - has_prev boolean, true if there's a previous page * - has_next boolean, true if there's a next page * * @param eZContentObjectTreeNode $start the node where the browse will start * @param eZContentClass $class class of the object to be created * @param int $offset * @return array */ private static function getBrowseItems( eZContentObjectTreeNode $start, eZContentClass $class, $offset = 0 ) { $result = array( 'limit' => 10, 'offset' => $offset, 'items' => array(), 'has_prev' => ( $offset != 0 ), 'has_next' => false ); $containerClasses = eZPersistentObject::fetchObjectList( eZContentClass::definition(), null, array( 'version' => eZContentClass::VERSION_STATUS_DEFINED, 'is_container' => 1 ) ); $classFilterArray = array(); foreach ( $containerClasses as $c ) { $classFilterArray[] = $c->attribute( 'identifier' ); } $children = $start->subTree( array( 'ClassFilterArray' => $classFilterArray, 'ClassFilterType' => 'include', 'Depth' => 1, 'Limit' => $result['limit'], 'Offset' => $offset ) ); $count = $start->subTreeCount( array( 'ClassFilterArray' => $classFilterArray, 'ClassFilterType' => 'include', 'Depth' => 1 ) ); if ( $count > ( $offset + $result['limit'] ) ) { $result['has_next'] = true; } foreach( $children as $node ) { $elt = array(); $elt['node'] = $node; $canCreateClassist = $node->canCreateClassList(); foreach( $canCreateClassist as $c ) { if ( $c['id'] == $class->attribute( 'id' ) ) { $elt['can_create'] = true; break; } } if ( !isset( $elt['can_create'] ) ) { $elt['can_create'] = false; } $childrenContainerCount = $node->subTreeCount( array( 'ClassFilterArray' => $classFilterArray, 'ClassFilterType' => 'include', 'Depth' => 1 ) ); $elt['has_child'] = ( $childrenContainerCount > 0 ); $result['items'][] = $elt; } return $result; }
/** * Pass module view default template parameters * * @param array $parameters Array of parameters. Optional * @param object $module Object of eZModule. Required * @return string String of url to content/browse */ function redirectToContentBrowseModuleView($parameters = false, $module) { if ($parameters == false) { // Fetch and use parameters from session directly $parameters = eZSession::get('bcimagealias_create_parameters', $parameters); } /** * Fetch array of container classes */ $classes = eZPersistentObject::fetchObjectList(eZContentClass::definition(), array('identifier'), array('is_container' => 1), null, null, false); // as object /** * Prepare array of allowed class identifiers based on above fetch results */ $allowedClasses = array(); foreach ($classes as $class) { $allowedClasses[] = $class['identifier']; } /** * Return browse for node selection view limited to allowed classes */ return eZContentBrowse::browse(array('action_name' => 'BCImageAliasCreateAliasesAddNode', 'from_page' => '/bcimagealias/create', 'class_array' => $allowedClasses, 'persistent_data' => array('ParametersSerialized' => serialize($parameters))), $module); }