本文整理汇总了PHP中ezpObject::addContentObjectRelation方法的典型用法代码示例。如果您正苦于以下问题:PHP ezpObject::addContentObjectRelation方法的具体用法?PHP ezpObject::addContentObjectRelation怎么用?PHP ezpObject::addContentObjectRelation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ezpObject
的用法示例。
在下文中一共展示了ezpObject::addContentObjectRelation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testFetchReverseRelatedObjectsCount
/**
* Unit test for eZContentFunctionCollection::fetchReverseRelatedObjectsCount
*/
public function testFetchReverseRelatedObjectsCount()
{
$object1 = new ezpObject('article', 2);
$object1->title = __FUNCTION__ . ' A';
$object1->publish();
$object2 = new ezpObject('article', 2);
$object2->title = __FUNCTION__ . ' B';
$object2->addContentObjectRelation($object1->attribute('id'));
$object2->publish();
$ret = eZContentFunctionCollection::fetchReverseRelatedObjectsCount($object1->attribute('id'), false, true, false);
$this->assertInternalType('array', $ret);
$this->assertArrayHasKey('result', $ret);
$this->assertEquals(1, $ret['result']);
}
示例2: testRelatedObjectCount
/**
* Unit test for eZContentObject::relatedObjectCount()
*
* Outline:
* 1) Create a content class with ezobjectrelation and ezobjectrelationlist
* attributes
* 2) Create objects and relate them to each of these attributes and to the
* object itself (common)
* 3) Check that attribute count is correct on each attribute and globally
*/
public function testRelatedObjectCount()
{
// Create a test content class
$class = new ezpClass(__FUNCTION__, __FUNCTION__, 'name');
$class->add('Name', 'name', 'ezstring');
$attributes['single_relation_1'] = $class->add('Single relation #1', 'single_relation_1', 'ezobjectrelation')->attribute('id');
$attributes['single_relation_2'] = $class->add('Single relation #2', 'single_relation_2', 'ezobjectrelation')->attribute('id');
$attributes['multiple_relations_1'] = $class->add('Multiple relations #1', 'multiple_relations_1', 'ezobjectrelationlist')->attribute('id');
$attributes['multiple_relations_2'] = $class->add('Multiple relations #2', 'multiple_relations_2', 'ezobjectrelationlist')->attribute('id');
$class->store();
// create a few articles we will relate our object to
$relatedObjects = array();
for ($i = 0; $i < 10; $i++) {
$article = new ezpObject('article', 2);
$article->title = "Related object #'{$i} for " . __FUNCTION__;
$article->publish();
$relatedObjects[] = $article->attribute('id');
}
// Create a test object with various relations (some objects are related
// to multiple attributes in order to test reverse relations):
// - 1 relation (IDX 0) on single_relation_1
// - 1 relation (IDX 1) on single_relation_2
// - 2 relations (IDX 2, 3) on multiple_relations_1
// - 2 relations (IDX 4, 5) on multiple_relations_2
// - 6 object level relations ((IDX 6, 7, 8, 9)
$object = new ezpObject(__FUNCTION__, 2);
$object->name = __FUNCTION__;
$object->single_relation_1 = $relatedObjects[0];
$object->single_relation_2 = $relatedObjects[1];
$object->multiple_relations_1 = array($relatedObjects[0], $relatedObjects[2], $relatedObjects[3]);
$object->multiple_relations_2 = array($relatedObjects[1], $relatedObjects[4], $relatedObjects[5]);
$object->addContentObjectRelation($relatedObjects[0]);
$object->addContentObjectRelation($relatedObjects[1]);
$object->addContentObjectRelation($relatedObjects[6]);
$object->addContentObjectRelation($relatedObjects[7]);
$object->addContentObjectRelation($relatedObjects[8]);
$object->addContentObjectRelation($relatedObjects[9]);
$object->publish();
// Create 2 more objects with relations to $relatedObjects[9]
// in order to test reverse related objects
$otherObject1 = new ezpObject(__FUNCTION__, 2);
$otherObject1->name = "Reverse test object #1 for " . __FUNCTION__;
$otherObject1->single_relation_1 = $relatedObjects[9];
$otherObject1->publish();
$otherObject2 = new ezpObject(__FUNCTION__, 2);
$otherObject2->name = "Reverse test object #2 for " . __FUNCTION__;
$otherObject2->single_relation_2 = $relatedObjects[9];
$otherObject2->publish();
$contentObject = eZContentObject::fetch($object->attribute('id'));
$paramAllRelations = array('AllRelations' => true);
$paramAttributeRelations = array('AllRelations' => eZContentObject::RELATION_ATTRIBUTE);
$paramCommonRelations = array('AllRelations' => eZContentObject::RELATION_COMMON);
// Test overall relation count
$this->assertEquals(14, $contentObject->relatedObjectCount(false, false, false, $paramAllRelations), "Overall relation count should be 14");
// Test relation count for each attribute
$this->assertEquals(1, $contentObject->relatedObjectCount(false, $attributes['single_relation_1'], false, $paramAttributeRelations), "Relation count on attribute single_relation_1 should be 1");
$this->assertEquals(1, $contentObject->relatedObjectCount(false, $attributes['single_relation_2'], false, $paramAttributeRelations), "Relation count on attribute single_relation_2 should be 1");
$this->assertEquals(3, $contentObject->relatedObjectCount(false, $attributes['multiple_relations_1'], false, $paramAttributeRelations), "Relation count on attribute multiple_relations_1 should be 3");
$this->assertEquals(3, $contentObject->relatedObjectCount(false, $attributes['multiple_relations_2'], false, $paramAttributeRelations), "Relation count on attribute multiple_relations_2 should be 3");
// Test common level relation count
$this->assertEquals(6, $contentObject->relatedObjectCount(false, false, false, $paramCommonRelations), "Common relations count should be 6");
// Test reverse relation count on $relatedObject[9]
// This object is related to:
// - the main $object on common level
// - one object on single_relation_1
// - another object on single_relation_2
$relatedContentObject = eZContentObject::fetch($relatedObjects[9]);
$this->assertEquals(3, $relatedContentObject->relatedObjectCount(false, false, true, $paramAllRelations), "Overall reverse relation count should be 3");
$this->assertEquals(1, $relatedContentObject->relatedObjectCount(false, false, true, $paramCommonRelations), "Common reverse relation count should be 1");
$this->assertEquals(1, $relatedContentObject->relatedObjectCount(false, $attributes['single_relation_1'], true, $paramAttributeRelations), "Attribute reverse relation count on single_relation_1 should be 1");
$this->assertEquals(1, $relatedContentObject->relatedObjectCount(false, $attributes['single_relation_2'], true, $paramAttributeRelations), "Attribute reverse relation count on single_relation_2 should be 1");
// Test that trashed objects are not counted as related (issue #15142)
$trashObject = eZContentObject::fetch($relatedObjects[9]);
$trashObject->removeThis();
$this->assertEquals(13, $contentObject->relatedObjectCount(false, false, false, $paramAllRelations), "Relation count after move to trash should be 13");
// Empty the trash
foreach (eZContentObjectTrashNode::trashList() as $node) {
eZContentObjectTrashNode::purgeForObject($node->attribute('contentobject_id'));
}
}