function createNewModel()
 {
     $series = new Opus_Series();
     $series->setTitle('Testseries');
     $series->setInfobox('Infotext');
     $series->setVisible(1);
     $series->setSortOrder(10);
     return $series->store();
 }
 /**
  * Für jede Collection der Collection Role series wird eine neue Schriftenreihe
  * Opus_Series angelegt, wobei der Name, die Sichtbarkeit und die Sorierreihenfolge
  * übernommen wird.
  *
  * Die Wurzel-Collection der Collection Role series wird nicht betrachtet.
  *
  * 
  * @return int number of collections that were migrated
  */
 private function migrateCollectionToSeries()
 {
     $numOfCollectionsMigrated = 0;
     foreach (Opus_Collection::fetchCollectionsByRoleId($this->seriesRole->getId()) as $collection) {
         // ignore root collection (does not have valid data and associated documents)
         if ($collection->isRoot()) {
             continue;
         }
         $series = new Opus_Series(Opus_Series::createRowWithCustomId($collection->getId()));
         $series->setTitle($collection->getName());
         $series->setVisible($collection->getVisible());
         $series->setSortOrder($collection->getSortOrder());
         $series->store();
         $this->logger->info('created series with id #' . $collection->getId());
         $numOfCollectionsMigrated++;
     }
     return $numOfCollectionsMigrated;
 }
Example #3
0
 /**
  * Imports Series from Opus3 to Opus4 in alphabetical order
  *
  * @param DOMDocument $data XML-Document to be imported
  * @return void
  */
 protected function importSeries($data)
 {
     $mf = $this->config->migration->mapping->series;
     $fp = null;
     $fp = @fopen($mf, 'w');
     if (!$fp) {
         $this->logger->log("Could not create '" . $mf . "' for Series", Zend_Log::ERR);
         return;
     }
     $series = $this->transferOpusSeries($data);
     $sort_order = 1;
     foreach ($series as $s) {
         if (array_key_exists('name', $s) === false) {
             continue;
         }
         if (array_key_exists('sr_id', $s) === false) {
             continue;
         }
         $sr = new Opus_Series();
         $sr->setTitle($s['name']);
         $sr->setVisible(1);
         $sr->setSortOrder($sort_order++);
         $sr->store();
         $this->logger->log("Series imported: " . $s['name'], Zend_Log::DEBUG);
         fputs($fp, $s['sr_id'] . ' ' . $sr->getId() . "\n");
     }
     fclose($fp);
 }
 public function testSeriesActionRespectsSeriesSortOrderIfItCoincidesBetweenTwoSeries()
 {
     $sortOrders = $this->getSortOrders();
     $s = new Opus_Series(2);
     $s->setSortOrder(6);
     $s->store();
     $s = new Opus_Series(6);
     $s->setSortOrder(0);
     $s->store();
     $this->dispatch('/solrsearch/browse/series');
     $this->assertResponseCode(200);
     $responseBody = $this->getResponse()->getBody();
     $seriesIds = array('1', '6', '4', '2', '5');
     foreach ($seriesIds as $seriesId) {
         $pos = strpos($responseBody, '/solrsearch/index/search/searchtype/series/id/' . $seriesId);
         $this->assertTrue($pos !== false);
         $responseBody = substr($responseBody, $pos);
     }
     $this->setSortOrders($sortOrders);
 }