/** * Regression test for OPUSVIER-2540 */ public function testCollectionRoleNameGetsTranslatedForUserCollection() { $cr = new Opus_CollectionRole(); $cr->setName('foo'); $cr->setOaiName('foo'); $cr->store(); $this->dispatch('/admin/documents/index/collectionid/' . $cr->getId()); $cr->delete(); $this->assertEquals(200, $this->getResponse()->getHttpResponseCode()); $this->assertNotContains('<b>foo</b>', $this->getResponse()->getBody()); }
public function __construct($collectionId) { if (is_null($collectionId)) { throw new Solrsearch_Model_Exception('Could not browse collection due to missing id parameter.'); } $collection = null; try { $collection = new Opus_Collection((int) $collectionId); } catch (Opus_Model_NotFoundException $e) { throw new Solrsearch_Model_Exception("Collection with id '" . $collectionId . "' does not exist."); } // check if an unvisible collection exists along the path to the root collection foreach ($collection->getParents() as $parent) { if (!$parent->isRoot() && $parent->getVisible() !== '1') { throw new Solrsearch_Model_Exception("Collection with id '" . $collectionId . "' is not visible."); } } $collectionRole = null; try { $collectionRole = new Opus_CollectionRole($collection->getRoleId()); } catch (Opus_Model_NotFoundException $e) { throw new Solrsearch_Model_Exception("Collection role with id '" . $collection->getRoleId() . "' does not exist."); } if (!($collectionRole->getVisible() === '1' && $collectionRole->getVisibleBrowsingStart() === '1')) { throw new Solrsearch_Model_Exception("Collection role with id '" . $collectionRole->getId() . "' is not visible."); } // additional root collection check $rootCollection = $collectionRole->getRootCollection(); if (!is_null($rootCollection)) { // check if at least one visible child exists or current collection has at least one associated document if (!$rootCollection->hasVisibleChildren() && count($rootCollection->getPublishedDocumentIds()) == 0) { throw new Solrsearch_Model_Exception("Collection role with id '" . $collectionRole->getId() . "' is not clickable and therefore not displayed."); } } $this->_collectionRole = $collectionRole; $this->_collection = $collection; }
$doc->addPersonContributor($contributor); // // Titles // foreach (array('addTitleMain', 'addTitleAbstract', 'addTitleParent', 'addTitleSub', 'addTitleAdditional') as $titleMethod) { $doc->{$titleMethod}()->setValue(randString($counter++))->setLanguage(randString($counter++)); $doc->{$titleMethod}()->setValue(randString($counter++))->setLanguage('deu'); $doc->{$titleMethod}()->setValue(randString($counter++))->setLanguage('eng'); } // // Collections // $institutesRole = new Opus_CollectionRole(); $institutesRole->setName('institutes' . randString($counter++) . rand())->setOaiName('institutes' . randString($counter++) . rand())->setPosition(1)->setVisible(1)->setVisibleBrowsingStart(1)->setDisplayBrowsing('Name')->setVisibleFrontdoor(1)->setDisplayFrontdoor('Name')->setVisibleOai('Name')->setDisplayOai('Name')->store(); $instituteName = 'Institut für empirische Forschung ' . randString($counter++); $instituteCollections = Opus_Collection::fetchCollectionsByRoleName($institutesRole->getId(), $instituteName); if (count($instituteCollections) >= 1) { $instituteCollection = $instituteCollections[0]; } else { $rootCollection = $institutesRole->getRootCollection(); if (is_null($rootCollection) === true) { $rootCollection = $institutesRole->addRootCollection(); $rootCollection->setVisible(1)->store(); $institutesRole->store(); } $instituteCollection = $rootCollection->addLastChild(); $instituteCollection->setVisible(1)->setName(randString($counter++))->store(); } $doc->addCollection($instituteCollection); // // Identifiers