eZPublishCommunityProject  2013.4
Todo List
Namespace eZ

Change this to be able to handle relations for FieldTypes in an effective manner

: check hierarchical facets

Change this to be able to handle relations for FieldTypes in an effective manner (incl op_code handling in SPI)

Member eZ::isPurgeIPAllowed ($ip)
Check subnets
Member eZ::__construct ( $kernelClosure, EngineInterface $templateEngine, ConfigResolverInterface $configResolver)
Maybe following dependencies should be mutualized in an abstract controller Injection can be done through "parent service" feature for DIC : http://symfony.com/doc/master/components/dependency_injection/parentservices.html
Member eZ::__construct ( $kernelClosure, LegacyConfigResolver $legacyConfigResolver, PersistenceCachePurger $persistenceCachePurger)
Maybe following dependencies should be mutualized in an abstract controller Injection can be done through "parent service" feature for DIC : http://symfony.com/doc/master/components/dependency_injection/parentservices.html
Member eZ::getGroup ($groupName, $namespace=null, $scope=null)
Implement in ConfigResolver interface
Member eZ::onBuildKernel (PreBuildKernelEvent $event)
Cache computed settings somehow
Member eZ::loadTranslationInfos (ContentInfo $contentInfo, array $filter=array())
TBD - filter by sourceversion destination version and languages
Member eZ::findContent (Query $query, array $fieldFilters=array(), $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::findSingle (Criterion $criterion, array $fieldFilters=array(), $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::__construct ($target, $operator, $value)
Add a dedicated exception
Member eZ::getProperties ($dynamicProperties=array())
Make object traversable and reuse this function there (hence why this is not exposed)
Member eZ::parse ($fileName, $fileContent)
Define exceptions
Member eZ::write ($fileName, array $configurationData)
Define exceptions
Member eZ::parse ($fileName, $fileContent)
Change impl to use exceptions instead of trigger_error in most cases
Member eZ::parseFileEzc ($fileContent)
Change impl to use exceptions instead of trigger_error
Member eZ::write ($fileName, array $configurationData)
Test..
Class eZ
Add a exception type in API that uses Logic exception and change this to extend it
Class eZ
Add a exception type in API that uses Logic exception and change this to extend it
Member eZ::isEmptyValue ($value)
workaround for a bug in PHP 5.3.3 https://bugs.php.net/bug.php?id=61326, when support for it ends this implementation should be removed for overriden method
Member eZ::getSortInfo ($value)
String normalization should occur here.
Member eZ::getSortInfo ($value)
Sort seems to not be supported by this FieldType, is this handled correctly?
Member eZ::getSortInfo ($value)
Correct?
Member eZ::getSortInfo ($value)
Review this, created from copy/paste to unblock failing tests! According to me (PA) sorting on keywords should not be supported.
Member eZ::getSortInfo ($value)
Repository needs to be provided to be able to get Content Relation name(s), and it is in ctor
Member eZ::getSortInfo ($value)
What to do here?
Member eZ::SELECTION_DROPDOWN
Consider to add all 6 selection options
Member eZ::SELECTION_DROPDOWN
Consider to add all 6 selection options
Member eZ::getSortInfo ($value)
String normalization should occur here.
Member eZ::getSortInfo ($value)
Sort seems to not be supported by this FieldType, is this handled correctly?
Class eZ
introduce persistence layer (gateways)
Member eZ::getSortInfo ($value)
: Implement.
Member eZ::getMimeTypeFromLocalFile ($path)
If legacy path is made available then this function can use that to skip executing legacy kernel
Member eZ::getCriterion (APILimitationValue $value, APIUser $currentUser)
Add support for $limitationValues[0] == 2 when session values can be injected somehow, or deprecate
Member eZ::evaluate (APILimitationValue $value, APIUser $currentUser, ValueObject $object, ValueObject $target=null)
Use current siteaccess as dependency in constructor, or define a way it can be injected in this function 4.x limitationValues in default 64bit mode is: sprintf( 'u', crc32( $siteAccessName ) )
Member eZ::cloneAndSerializeXMLFields (Content $content)
Change SPI to document that fieldValue->data and external data must be serializable, then remove this.
Class eZ
Consider loadAll & loadByIdentifier cache, however then loadAll() must be used by all (incl create) but update & delete to avoid doing several cache lookups.
Member eZ::copy ($contentId, $versionNo=null)
Language support
Member eZ::deleteContent ($contentId)
add deleting of relations
Member eZ::deleteVersion ($contentId, $versionNo)
add deleting of relations
Class eZ
Validate $status arguments
Member eZ::addFieldDefinition ($contentTypeId, $status, FieldDefinition $fieldDefinition)
Add FieldDefintion?
Member eZ::removeFieldDefinition ($contentTypeId, $status, $fieldDefinitionId)
Add FieldDefinition?
Member eZ::loadByParentId ($locationId)
Requires approbation
Member eZ::loadLocationsByContent ($contentId, $rootLocationId=null)
Add support for $rootLocationId when not child of node 1
Member eZ::findContent (Query $query, array $fieldFilters=array())
define structs for the field filters
Member eZ::findSingle (Criterion $criterion, array $fieldFilters=array())
define structs for the field filters
Member eZ::recover ($trashedId, $newParentId)
Handle field types actions
Member eZ::trashSubtree ($locationId)
Handle field types actions
Member eZ::addPolicy ($roleId, Policy $policy)
Throw on invalid Role Id?
Member eZ::removePolicy ($roleId, $policyId)
Throw exception on missing role / policy?
Member eZ::addRelation (RelationCreateStruct $createStruct)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::copy ($contentId, $versionNo=null)
Should relations be copied? Which ones?
Member eZ::removeRelation ($relationId, $type)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::getBasicNodeData ($nodeId)
optimize
Member eZ::getBasicNodeDataByRemoteId ($remoteId)
optimize
Member eZ::moveSubtreeNodes (array $fromPathString, array $toPathString)
optimize
Member eZ::getBasicNodeData ($nodeId)
optimize
Member eZ::getBasicNodeDataByRemoteId ($remoteId)
optimize
Member eZ::moveSubtreeNodes (array $fromPathString, array $toPathString)
optimize
Member eZ::getBasicNodeData ($nodeId)
optimize
Member eZ::getBasicNodeDataByRemoteId ($remoteId)
optimize
Member eZ::copySubtree ($sourceId, $destinationParentId)
update subtree modification time, optionally retain dates and set creator
Member eZ::recover ($trashedId, $newParentId)
Handle field types actions
Member eZ::trashSubtree ($locationId)
Handle field types actions
Member eZ::extractLanguageIdsFromMask ($languageMask)
use langmask handler for this
Member eZ::handle (CriteriaConverter $converter, ezcQuerySelect $query, Criterion $criterion)
: Needs optimisation since this subselect can potentially be problematic due to large number of contentobject_id values returned. One way to fix this is to use inner joins on ezcobj_state_link table, but this is not currently supported in legacy search gateway
Member eZ::handle (CriteriaConverter $converter, ezcQuerySelect $query, Criterion $criterion)
: Needs optimisation since this subselect can potentially be problematic due to large number of contentobject_id values returned. One way to fix this is to use inner joins on ezcontentobject_tree table, but this is not currently supported in legacy search gateway
Member eZ::find (Criterion $criterion, $offset=0, $limit=null, array $sort=null, array $translations=null)
Check Query recreation in this method. Something breaks if we reuse the query, after we have added the applyJoin() stuff here.
Member eZ::findContent (Query $query, array $fieldFilters=array())
define structs for the field filters
Member eZ::findSingle (Criterion $criterion, array $fieldFilters=array())
define structs for the field filters
Member eZ::apply (Content $content)
Handle external field data
Member eZ::createField (Content $content)
Handle ->languageCode
Member eZ::link ($groupId, $contentTypeId, $status)
Above throws are not implemented
Member eZ::unlink ($groupId, $contentTypeId, $status)
Add throws for NotFound and BadState when group is not assigned to type
Member eZ::createGroupFromCreateStruct (GroupCreateStruct $struct)
$description is not supported by database, yet
Member eZ::link ($groupId, $contentTypeId, $status)
Above throws are not implemented
Member eZ::unlink ($groupId, $contentTypeId, $status)
Add throws for NotFound and BadState when group is not assigned to type
Member eZ::findContent (Query $query, array $fieldFilters=array())
define structs for the field filters
Member eZ::findContent (Query $query, array $fieldFilters=array())
define structs for the field filters
Member eZ::findContent (Query $query, array $fieldFilters=array())
define structs for the field filters
Member eZ::findSingle (Criterion $criterion, array $fieldFilters=array())
define structs for the field filters
Member eZ::purgeIndex ()
: Make this public API?
Member eZ::buildContentDomainObject (SPIContent $spiContent)
: Made public, since the search service also needs access to this method. Should be refactored into its own class together with the other build* methods.
Member eZ::buildContentInfoDomainObject (SPIContentInfo $spiContentInfo)
: Made public, since the search service also needs access to this method. Should be refactored into its own class together with the other build* methods.
Member eZ::loadTranslationInfos (ContentInfo $contentInfo, array $filter=array())
TBD - filter by source version destination version and languages
Member eZ::loadContentTypeDraft ($contentTypeId)
Use another exception when user of draft is someone else
Member eZ::getNameSchemaService ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::getRelationProcessor ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::findContent (Query $query, array $fieldFilters=array(), $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::findSingle (Criterion $criterion, array $fieldFilters=array(), $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::buildSpecificityScoreMap (array $spiUrlWildcards)
use or remove
Member eZ::findContent (Query $query, array $fieldFilters, $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::findSingle (Query $query, array $fieldFilters, $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::loadContent ($contentId, array $languages=null, $versionNo=null)

Handle $versionNo = null

Handle language filters

Member eZ::loadTranslationInfos (ContentInfo $contentInfo, array $filter=array())
TBD - filter by sourceversion destination version and languages
Class eZ

Integrate FieldType fromHash()

Caching for extracted embedded objects

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

What about missing properties? Set them here, using the service to load? Or better set them in the service, since loading is really unsuitable here?

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

What about missing properties? Set them here, using the service to load? Or better set them in the service, since loading is really unsuitable here?

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Class eZ
Caching for extracted embedded objects
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::getLimitationByIdentifier ($identifier)
Use dependency injection system
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

Should the related ContentInfo structs really be loaded here or do we need lazy loading for this?

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)

Error handling

Use dependency injection system for Role Limitation lookup

Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
Error handling
Member eZ::copySubtree (Location $subtree, Location $targetParentLocation)
enhancement - this method should return a result structure containing the new location and a list of locations which are not copied due to permission denials.
Member eZ::loadObjectStateGroups ($offset=0, $limit=-1)
Implement offset & limit
Member eZ::assignRoleToUser (APIRole $role, User $user, RoleLimitation $roleLimitation=null)
add limitations
Member eZ::assignSection (ContentInfo $contentInfo, Section $section)
In order to make the integration test for this method running, the countAssignedContents() method must be implemented. Otherwise this should work fine.
Member eZ::getLimitationByIdentifier ($identifier)
Use dependency injection system
Class eZ
Test
Member eZ::parse (array $data, ParsingDispatcher $parsingDispatcher)
use url handler instead of hardcoded URL matching
Member eZ::getFieldDefinition (array $data)
depends on temporary solution to give parser acces to the URL
Class eZ
$fieldSettings & $validatorConfiguration (missing from spec)
Member eZ::loadTranslationInfos (ContentInfo $contentInfo, array $filter=array())
TBD - filter by source version, destination version and languages
Member eZ::getNameSchemaService ()
Move out from this & other repo instances when services becomes proper services in DIC terms using factory.
Member eZ::findContent (Query $query, array $fieldFilters=array(), $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::findSingle (Criterion $criterion, array $fieldFilters=array(), $filterOnUserPermissions=true)
define structs for the field filters
Member eZ::attach ($signalIdentifier, $slotIdentifier)
Are we sure we want to expose this method? Might lead to dynamic attachments at runtime, which can lead to hard debugging. Better only accept attachments during construction (config).
Class eZ
Add VersionInfo parameter
Member eZ::addRelation (RelationCreateStruct $createStruct)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::removeRelation ($relationId, $type)
Should the existence verifications happen here or is this supposed to be handled at a higher level?
Member eZ::setSectionForSubtree ($locationId, $sectionId)
This can be confusing (regarding permissions and main/multi location). So method is for the time being not in PublicAPI so people can instead write scripts using their own logic against the assignSectionToContent() api.
Member eZ::findContent (Query $query, array $fieldFilters=array())
define structs for the field filters
Member eZ::findSingle (Criterion $criterion, array $fieldFilters=array())
define structs for the field filters
Member eZ::create ($name, $identifier)

Should validate that $identifier is unique??

What about translatable $name?

Class eZ
What about sort_field and sort_order?
Class eZ

Do we need a FieldDefinitionCreateStruct?

What about the "serialized_data_text" field in legacy storage?

Member eZ::addFieldDefinition ($contentTypeId, $status, FieldDefinition $fieldDefinition)
Add FieldDefinition?
Member eZ::updateFieldDefinition ($contentTypeId, $status, FieldDefinition $fieldDefinition)
Add FieldDefinition?
Member eZ::addPolicy ($roleId, Policy $policy)
Throw on invalid Role Id?
Member eZ::delete ($userId)
Throw on missing user?
Member eZ::removePolicy ($roleId, $policyId)
Throw exception on missing role / policy?