コード例 #1
0
 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);
 }
コード例 #2
0
         $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;
 }
コード例 #4
0
ファイル: create.php プロジェクト: philandteds/bcimagealias
/**
 * 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);
}