From 6ae799e172c90ffe166839e59b6df8e4a34dd834 Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Wed, 6 Jan 2016 09:32:08 -0500 Subject: [PATCH] Eliminate 'VuFind' source in database. - Introduce DEFAULT_SEARCH_BACKEND constant. - Deprecate now-redundant getResourceSource() record driver method. - Implement upgrade functionality to adjust database. - Resolves VUFIND-1139. --- module/VuFind/config/module.config.php | 5 ++- .../pgsql/3.0/002-modify-resource-columns.sql | 6 +++ module/VuFind/sql/mysql.sql | 2 +- module/VuFind/sql/pgsql.sql | 2 +- module/VuFind/src/VuFind/Cart.php | 4 +- .../src/VuFind/Controller/AbstractRecord.php | 4 +- .../Controller/Plugin/ResultScroller.php | 5 ++- .../VuFind/Controller/UpgradeController.php | 34 +++++++++++++++ module/VuFind/src/VuFind/Record/Router.php | 2 +- .../src/VuFind/RecordDriver/AbstractBase.php | 24 +++++------ .../src/VuFind/RecordDriver/Missing.php | 2 +- .../src/VuFind/Related/WorldCatSimilar.php | 2 +- .../VuFind/src/VuFind/Statistics/Record.php | 2 +- .../src/VuFind/View/Helper/Root/Record.php | 4 +- .../VuFind/src/VuFindTest/Unit/TestCase.php | 3 -- module/VuFind/tests/bootstrap.php | 2 +- .../src/VuFindTest/Mink/CartTest.php | 2 +- .../unit-tests/src/VuFindTest/CartTest.php | 42 +++++++++---------- .../Controller/Plugin/ResultScrollerTest.php | 12 +++--- .../src/VuFindTest/Record/LoaderTest.php | 24 +++++------ .../src/VuFindTest/Record/RouterTest.php | 6 +-- .../Related/WorldCatSimilarTest.php | 4 +- .../View/Helper/Root/RecordTest.php | 4 +- public/index.php | 2 +- .../RecordDriver/EDS/result-list.phtml | 2 +- .../RecordDriver/Pazpar2/result-list.phtml | 4 +- .../RecordDriver/SolrDefault/core.phtml | 7 +++- .../RecordDriver/SolrDefault/list-entry.phtml | 2 +- .../SolrDefault/result-list.phtml | 5 ++- .../RecordDriver/SolrDefault/toolbar.phtml | 2 +- .../templates/RecordTab/usercomments.phtml | 2 +- themes/bootstrap3/templates/cart/email.phtml | 2 +- themes/bootstrap3/templates/cart/export.phtml | 2 +- themes/bootstrap3/templates/cart/save.phtml | 4 +- .../templates/collection/view.phtml | 2 +- .../templates/myresearch/edit.phtml | 2 +- .../bootstrap3/templates/record/addtag.phtml | 2 +- .../bootstrap3/templates/record/email.phtml | 2 +- themes/bootstrap3/templates/record/save.phtml | 4 +- themes/bootstrap3/templates/record/sms.phtml | 2 +- themes/bootstrap3/templates/record/view.phtml | 4 +- .../RecordDriver/EDS/result-list.phtml | 2 +- .../RecordDriver/Pazpar2/result-list.phtml | 2 +- .../RecordDriver/SolrDefault/core.phtml | 7 +++- .../RecordDriver/SolrDefault/list-entry.phtml | 4 +- .../SolrDefault/result-list.phtml | 2 +- .../templates/RecordTab/usercomments.phtml | 2 +- .../templates/record/addtag.phtml | 2 +- .../jquerymobile/templates/record/email.phtml | 2 +- .../jquerymobile/templates/record/save.phtml | 4 +- .../jquerymobile/templates/record/sms.phtml | 2 +- .../AbstractBase/export-bibtex.phtml | 2 +- 52 files changed, 163 insertions(+), 117 deletions(-) create mode 100644 module/VuFind/sql/migrations/pgsql/3.0/002-modify-resource-columns.sql diff --git a/module/VuFind/config/module.config.php b/module/VuFind/config/module.config.php index 9081341123c..c886db146b3 100644 --- a/module/VuFind/config/module.config.php +++ b/module/VuFind/config/module.config.php @@ -717,7 +717,10 @@ $recordRoutes = [ 'primorecord' => 'PrimoRecord', 'solrauthrecord' => 'Authority', 'summonrecord' => 'SummonRecord', - 'worldcatrecord' => 'WorldcatRecord' + 'worldcatrecord' => 'WorldcatRecord', + + // For legacy (1.x/2.x) compatibility: + 'vufindrecord' => 'Record', ]; // Define dynamic routes -- controller => [route name => action] diff --git a/module/VuFind/sql/migrations/pgsql/3.0/002-modify-resource-columns.sql b/module/VuFind/sql/migrations/pgsql/3.0/002-modify-resource-columns.sql new file mode 100644 index 00000000000..e855534e71b --- /dev/null +++ b/module/VuFind/sql/migrations/pgsql/3.0/002-modify-resource-columns.sql @@ -0,0 +1,6 @@ +-- +-- Modifications to table `resource` +-- + +ALTER TABLE "resource" + ALTER COLUMN source SET DEFAULT 'Solr'; diff --git a/module/VuFind/sql/mysql.sql b/module/VuFind/sql/mysql.sql index cac64f0d310..cd70b26ab28 100644 --- a/module/VuFind/sql/mysql.sql +++ b/module/VuFind/sql/mysql.sql @@ -73,7 +73,7 @@ CREATE TABLE `resource` ( `title` varchar(200) NOT NULL DEFAULT '', `author` varchar(200) DEFAULT NULL, `year` mediumint(6) DEFAULT NULL, - `source` varchar(50) NOT NULL DEFAULT 'VuFind', + `source` varchar(50) NOT NULL DEFAULT 'Solr', PRIMARY KEY (`id`), KEY `record_id` (`record_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/module/VuFind/sql/pgsql.sql b/module/VuFind/sql/pgsql.sql index ed0f8ff92d8..7ec297c3fa6 100644 --- a/module/VuFind/sql/pgsql.sql +++ b/module/VuFind/sql/pgsql.sql @@ -28,7 +28,7 @@ record_id varchar(120) NOT NULL DEFAULT '', title varchar(200) NOT NULL DEFAULT '', author varchar(200) DEFAULT NULL, year int DEFAULT NULL, -source varchar(50) NOT NULL DEFAULT 'VuFind', +source varchar(50) NOT NULL DEFAULT 'Solr', PRIMARY KEY (id) ); CREATE INDEX resource_record_id_idx ON resource (record_id); diff --git a/module/VuFind/src/VuFind/Cart.php b/module/VuFind/src/VuFind/Cart.php index b4234148de0..2f44474171d 100644 --- a/module/VuFind/src/VuFind/Cart.php +++ b/module/VuFind/src/VuFind/Cart.php @@ -244,9 +244,9 @@ class Cart if (!isset($cookies[self::CART_COOKIE_SOURCES])) { // Backward compatibility with VuFind 1.x -- if no source cookie, all - // items come from the VuFind source: + // items come from the default source: for ($i = 0; $i < count($items); $i++) { - $items[$i] = 'VuFind|' . $items[$i]; + $items[$i] = DEFAULT_SEARCH_BACKEND . '|' . $items[$i]; } } else { // Default case for VuFind 2.x carts -- decompress source data: diff --git a/module/VuFind/src/VuFind/Controller/AbstractRecord.php b/module/VuFind/src/VuFind/Controller/AbstractRecord.php index 76db4a19067..834764f1c42 100644 --- a/module/VuFind/src/VuFind/Controller/AbstractRecord.php +++ b/module/VuFind/src/VuFind/Controller/AbstractRecord.php @@ -128,7 +128,7 @@ class AbstractRecord extends AbstractBase if (!empty($comment)) { $table = $this->getTable('Resource'); $resource = $table->findResource( - $driver->getUniqueId(), $driver->getResourceSource(), true, $driver + $driver->getUniqueId(), $driver->getSourceIdentifier(), true, $driver ); $resource->addComment($comment, $user); $this->flashMessenger()->addMessage('add_comment_success', 'success'); @@ -344,7 +344,7 @@ class AbstractRecord extends AbstractBase // Find out if the item is already part of any lists; save list info/IDs $listIds = []; $resources = $user->getSavedData( - $driver->getUniqueId(), null, $driver->getResourceSource() + $driver->getUniqueId(), null, $driver->getSourceIdentifier() ); foreach ($resources as $userResource) { $listIds[] = $userResource->list_id; diff --git a/module/VuFind/src/VuFind/Controller/Plugin/ResultScroller.php b/module/VuFind/src/VuFind/Controller/Plugin/ResultScroller.php index c0cb13990fd..bb25ee57817 100644 --- a/module/VuFind/src/VuFind/Controller/Plugin/ResultScroller.php +++ b/module/VuFind/src/VuFind/Controller/Plugin/ResultScroller.php @@ -322,7 +322,7 @@ class ResultScroller extends AbstractPlugin = isset($this->data->total) ? $this->data->total : 0; // build a full ID string using the driver: - $id = $driver->getResourceSource() . '|' . $driver->getUniqueId(); + $id = $driver->getSourceIdentifier() . '|' . $driver->getUniqueId(); // find where this record is in the current result page $pos = is_array($this->data->currIds) @@ -396,7 +396,8 @@ class ResultScroller extends AbstractPlugin if (!($record instanceof \VuFind\RecordDriver\AbstractBase)) { return false; } - $retVal[] = $record->getResourceSource() . '|' . $record->getUniqueId(); + $retVal[] + = $record->getSourceIdentifier() . '|' . $record->getUniqueId(); } return $retVal; } diff --git a/module/VuFind/src/VuFind/Controller/UpgradeController.php b/module/VuFind/src/VuFind/Controller/UpgradeController.php index 73ac35a77a6..c296f0e578c 100644 --- a/module/VuFind/src/VuFind/Controller/UpgradeController.php +++ b/module/VuFind/src/VuFind/Controller/UpgradeController.php @@ -260,6 +260,37 @@ class UpgradeController extends AbstractBase } } + /** + * Support method for fixdatabaseAction() -- clean up legacy 'VuFind' + * source values in the database. + * + * @return void + */ + protected function fixVuFindSourceInDatabase() + { + $resource = $this->getTable('resource'); + $resourceWhere = ['source' => 'VuFind']; + $resourceRows = $resource->select($resourceWhere); + if (count($resourceRows) > 0) { + $resource->update(['source' => 'Solr'], $resourceWhere); + $this->session->warnings->append( + 'Converted ' . count($resourceRows) + . ' legacy "VuFind" source value(s) in resource table' + ); + } + + $userStatsFields = $this->getTable('userstatsfields'); + $usfWhere = ['field' => 'recordSource', 'value' => 'VuFind']; + $usfRows = $userStatsFields->select($usfWhere); + if (count($usfRows) > 0) { + $userStatsFields->update(['value' => 'Solr'], $usfWhere); + $this->session->warnings->append( + 'Converted ' . count($usfRows) + . ' legacy "VuFind" source value(s) in user_stats_fields table' + ); + } + } + /** * Upgrade the database. * @@ -375,6 +406,9 @@ class UpgradeController extends AbstractBase if (count($dupeTags) > 0 && !isset($this->cookie->skipDupeTags)) { return $this->forwardTo('Upgrade', 'FixDuplicateTags'); } + + // Clean up the "VuFind" source, if necessary. + $this->fixVuFindSourceInDatabase(); } catch (\Exception $e) { $this->flashMessenger()->addMessage( 'Database upgrade failed: ' . $e->getMessage(), 'error' diff --git a/module/VuFind/src/VuFind/Record/Router.php b/module/VuFind/src/VuFind/Record/Router.php index 1a382ba66b6..c6c6affdf28 100644 --- a/module/VuFind/src/VuFind/Record/Router.php +++ b/module/VuFind/src/VuFind/Record/Router.php @@ -130,7 +130,7 @@ class Router ) { // Extract source and ID from driver or string: if (is_object($driver)) { - $source = $driver->getResourceSource(); + $source = $driver->getSourceIdentifier(); $id = $driver->getUniqueId(); } else { list($source, $id) = $this->extractSourceAndId($driver); diff --git a/module/VuFind/src/VuFind/RecordDriver/AbstractBase.php b/module/VuFind/src/VuFind/RecordDriver/AbstractBase.php index f495749d766..678dc035d6b 100644 --- a/module/VuFind/src/VuFind/RecordDriver/AbstractBase.php +++ b/module/VuFind/src/VuFind/RecordDriver/AbstractBase.php @@ -147,7 +147,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, { $table = $this->getDbTable('Comments'); return $table->getForResource( - $this->getUniqueId(), $this->getResourceSource() + $this->getUniqueId(), $this->getSourceIdentifier() ); } @@ -181,7 +181,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, $tags = $this->getDbTable('Tags'); return $tags->getForResource( $this->getUniqueId(), - $this->getResourceSource(), + $this->getSourceIdentifier(), 0, $list_id, $user_id, $sort, $ownerId ); } @@ -198,7 +198,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, { $resources = $this->getDbTable('Resource'); $resource = $resources->findResource( - $this->getUniqueId(), $this->getResourceSource() + $this->getUniqueId(), $this->getSourceIdentifier() ); foreach ($tags as $tag) { $resource->addTag($tag, $user); @@ -217,7 +217,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, { $resources = $this->getDbTable('Resource'); $resource = $resources->findResource( - $this->getUniqueId(), $this->getResourceSource() + $this->getUniqueId(), $this->getSourceIdentifier() ); foreach ($tags as $tag) { $resource->deleteTag($tag, $user); @@ -263,7 +263,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, // Get or create a resource object as needed: $resourceTable = $this->getDbTable('Resource'); $resource = $resourceTable->findResource( - $this->getUniqueId(), $this->getResourceSource(), true, $this + $this->getUniqueId(), $this->getSourceIdentifier(), true, $this ); // Add the information to the user's account: @@ -287,7 +287,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, { $db = $this->getDbTable('UserResource'); $data = $db->getSavedData( - $this->getUniqueId(), $this->getResourceSource(), $list_id, $user_id + $this->getUniqueId(), $this->getSourceIdentifier(), $list_id, $user_id ); $notes = []; foreach ($data as $current) { @@ -309,7 +309,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, { $table = $this->getDbTable('UserList'); return $table->getListsContainingResource( - $this->getUniqueId(), $this->getResourceSource(), $user_id + $this->getUniqueId(), $this->getSourceIdentifier(), $user_id ); } @@ -317,13 +317,12 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, * Get the source value used to identify resources of this type in the database. * * @return string + * + * @deprecated Obsolete as of VuFind 3.0; use getSourceIdentifier() instead. */ public function getResourceSource() { - // Normally resource source is the same as source identifier, but for legacy - // reasons we need to call Solr 'VuFind' instead. TODO: clean this up. - $id = $this->getSourceIdentifier(); - return $id == 'Solr' ? 'VuFind' : $id; + return $this->getSourceIdentifier(); } /** @@ -335,8 +334,7 @@ abstract class AbstractBase implements \VuFind\Db\Table\DbTableAwareInterface, */ public function setSourceIdentifier($identifier) { - // Normalize "VuFind" identifier to "Solr" (see above). TODO: clean this up. - $this->sourceIdentifier = $identifier == 'VuFind' ? 'Solr' : $identifier; + $this->sourceIdentifier = $identifier; } /** diff --git a/module/VuFind/src/VuFind/RecordDriver/Missing.php b/module/VuFind/src/VuFind/RecordDriver/Missing.php index 90bcf2ed3df..20758c20669 100644 --- a/module/VuFind/src/VuFind/RecordDriver/Missing.php +++ b/module/VuFind/src/VuFind/RecordDriver/Missing.php @@ -66,7 +66,7 @@ class Missing extends SolrDefault if ($id) { $table = $this->getDbTable('Resource'); $resource = $table - ->findResource($id, $this->getResourceSource(), false); + ->findResource($id, $this->getSourceIdentifier(), false); if (!empty($resource) && !empty($resource->title)) { return $resource->title; } diff --git a/module/VuFind/src/VuFind/Related/WorldCatSimilar.php b/module/VuFind/src/VuFind/Related/WorldCatSimilar.php index 21285542ce1..b0d56b0b051 100644 --- a/module/VuFind/src/VuFind/Related/WorldCatSimilar.php +++ b/module/VuFind/src/VuFind/Related/WorldCatSimilar.php @@ -83,7 +83,7 @@ class WorldCatSimilar extends Similar $query = '(' . implode(' or ', $parts) . ')'; // Not current record ID if this is already a WorldCat record: - if ($driver->getResourceSource() == 'WorldCat') { + if ($driver->getSourceIdentifier() == 'WorldCat') { $id = $driver->getUniqueId(); $query .= " not srw.no all \"$id\""; } diff --git a/module/VuFind/src/VuFind/Statistics/Record.php b/module/VuFind/src/VuFind/Statistics/Record.php index f4cfe198f86..19b06497ca6 100644 --- a/module/VuFind/src/VuFind/Statistics/Record.php +++ b/module/VuFind/src/VuFind/Statistics/Record.php @@ -51,7 +51,7 @@ class Record extends AbstractBase $this->save( [ 'recordId' => $data->getUniqueId(), - 'recordSource' => $data->getResourceSource() + 'recordSource' => $data->getSourceIdentifier() ], $request ); diff --git a/module/VuFind/src/VuFind/View/Helper/Root/Record.php b/module/VuFind/src/VuFind/View/Helper/Root/Record.php index e3a7dedb23f..cd5921acfd3 100644 --- a/module/VuFind/src/VuFind/View/Helper/Root/Record.php +++ b/module/VuFind/src/VuFind/View/Helper/Root/Record.php @@ -337,7 +337,7 @@ class Record extends AbstractHelper { // Figure out controller using naming convention based on resource // source: - $source = $this->driver->getResourceSource(); + $source = $this->driver->getSourceIdentifier(); if ($source == DEFAULT_SEARCH_BACKEND) { // Default source is special case -- it uses the basic record // controller. @@ -412,7 +412,7 @@ class Record extends AbstractHelper public function getCheckbox($idPrefix = '') { static $checkboxCount = 0; - $id = $this->driver->getResourceSource() . '|' + $id = $this->driver->getSourceIdentifier() . '|' . $this->driver->getUniqueId(); $context = ['id' => $id, 'count' => $checkboxCount++, 'prefix' => $idPrefix]; diff --git a/module/VuFind/src/VuFindTest/Unit/TestCase.php b/module/VuFind/src/VuFindTest/Unit/TestCase.php index 70c3080d11d..63f1c6d5d67 100644 --- a/module/VuFind/src/VuFindTest/Unit/TestCase.php +++ b/module/VuFind/src/VuFindTest/Unit/TestCase.php @@ -146,7 +146,6 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase [ 'abstract_factories' => ['VuFind\Search\Options\PluginFactory'], - 'aliases' => ['VuFind' => 'Solr'], ] ) ); @@ -159,7 +158,6 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase [ 'abstract_factories' => ['VuFind\Search\Params\PluginFactory'], - 'aliases' => ['VuFind' => 'Solr'], ] ) ); @@ -172,7 +170,6 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase [ 'abstract_factories' => ['VuFind\Search\Results\PluginFactory'], - 'aliases' => ['VuFind' => 'Solr'], ] ) ); diff --git a/module/VuFind/tests/bootstrap.php b/module/VuFind/tests/bootstrap.php index b6cbebe2e44..63e3a34ebfa 100644 --- a/module/VuFind/tests/bootstrap.php +++ b/module/VuFind/tests/bootstrap.php @@ -22,7 +22,7 @@ defined('APPLICATION_ENV') ); // Define default search backend identifier -defined('DEFAULT_SEARCH_BACKEND') || define('DEFAULT_SEARCH_BACKEND', 'VuFind'); +defined('DEFAULT_SEARCH_BACKEND') || define('DEFAULT_SEARCH_BACKEND', 'Solr'); // Define path to local override directory defined('LOCAL_OVERRIDE_DIR') diff --git a/module/VuFind/tests/integration-tests/src/VuFindTest/Mink/CartTest.php b/module/VuFind/tests/integration-tests/src/VuFindTest/Mink/CartTest.php index 50d44faef23..e1eea8262a4 100644 --- a/module/VuFind/tests/integration-tests/src/VuFindTest/Mink/CartTest.php +++ b/module/VuFind/tests/integration-tests/src/VuFindTest/Mink/CartTest.php @@ -397,7 +397,7 @@ class CartTest extends \VuFindTest\Unit\MinkTestCase $button->click(); list(, $params) = explode('?', $session->getCurrentUrl()); $this->assertEquals( - 'print=true&id[]=VuFind|testsample1&id[]=VuFind|testsample2', $params + 'print=true&id[]=Solr|testsample1&id[]=Solr|testsample2', $params ); } diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/CartTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/CartTest.php index af1d0fab369..15fd562b393 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/CartTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/CartTest.php @@ -143,12 +143,12 @@ class CartTest extends \PHPUnit_Framework_TestCase { $cart = $this->getCart(2); // create a very small cart $this->assertFalse($cart->isFull()); - $this->assertEquals(['success' => true], $cart->addItem('VuFind|a')); + $this->assertEquals(['success' => true], $cart->addItem('Solr|a')); $this->assertFalse($cart->isFull()); - $this->assertEquals(['success' => true], $cart->addItem('VuFind|b')); + $this->assertEquals(['success' => true], $cart->addItem('Solr|b')); $this->assertTrue($cart->isFull()); $this->assertEquals( - ['success' => false, 'notAdded' => 1], $cart->addItem('VuFind|c') + ['success' => false, 'notAdded' => 1], $cart->addItem('Solr|c') ); } @@ -187,9 +187,9 @@ class CartTest extends \PHPUnit_Framework_TestCase ->with($this->equalTo('vufind_cart'), $this->equalTo('Aa')); $manager->expects($this->at(1)) ->method('set') - ->with($this->equalTo('vufind_cart_src'), $this->equalTo('VuFind')); + ->with($this->equalTo('vufind_cart_src'), $this->equalTo('Solr')); $cart = $this->getCart(100, true, $manager); - $cart->addItem('VuFind|a'); + $cart->addItem('Solr|a'); } /** @@ -200,9 +200,9 @@ class CartTest extends \PHPUnit_Framework_TestCase public function testContains() { $cart = $this->getCart(); - $this->assertFalse($cart->contains('VuFind|a')); - $cart->addItem('VuFind|a'); - $this->assertTrue($cart->contains('VuFind|a')); + $this->assertFalse($cart->contains('Solr|a')); + $cart->addItem('Solr|a'); + $this->assertTrue($cart->contains('Solr|a')); } /** @@ -213,7 +213,7 @@ class CartTest extends \PHPUnit_Framework_TestCase public function testCartCanBeEmptied() { $cart = $this->getCart(); - $cart->addItem('VuFind|a'); + $cart->addItem('Solr|a'); $this->assertFalse($cart->isEmpty()); $cart->emptyCart(); $this->assertTrue($cart->isEmpty()); @@ -227,11 +227,11 @@ class CartTest extends \PHPUnit_Framework_TestCase public function testRemoveItems() { $cart = $this->getCart(); - $cart->addItems(['VuFind|a', 'VuFind|b', 'VuFind|c']); - $cart->removeItems(['VuFind|a', 'VuFind|b']); - $this->assertTrue($cart->contains('VuFind|c')); - $this->assertFalse($cart->contains('VuFind|a')); - $this->assertFalse($cart->contains('VuFind|b')); + $cart->addItems(['Solr|a', 'Solr|b', 'Solr|c']); + $cart->removeItems(['Solr|a', 'Solr|b']); + $this->assertTrue($cart->contains('Solr|c')); + $this->assertFalse($cart->contains('Solr|a')); + $this->assertFalse($cart->contains('Solr|b')); } /** @@ -243,10 +243,10 @@ class CartTest extends \PHPUnit_Framework_TestCase { $this->loader->expects($this->once()) ->method('loadBatch') - ->with($this->equalTo(['VuFind|a'])) + ->with($this->equalTo(['Solr|a'])) ->will($this->returnValue('success')); $cart = $this->getCart(); - $cart->addItem('VuFind|a'); + $cart->addItem('Solr|a'); $this->assertEquals('success', $cart->getRecordDetails()); } @@ -259,9 +259,9 @@ class CartTest extends \PHPUnit_Framework_TestCase { $cart = $this->getCart(100, true, ['vufind_cart' => "a\tb\tc"]); $this->assertEquals(3, count($cart->getItems())); - $this->assertTrue($cart->contains('VuFind|a')); - $this->assertTrue($cart->contains('VuFind|b')); - $this->assertTrue($cart->contains('VuFind|c')); + $this->assertTrue($cart->contains('Solr|a')); + $this->assertTrue($cart->contains('Solr|b')); + $this->assertTrue($cart->contains('Solr|c')); } /** @@ -273,11 +273,11 @@ class CartTest extends \PHPUnit_Framework_TestCase { $cookies = [ 'vufind_cart' => "Aa\tBb\tCc", - 'vufind_cart_src' => "VuFind\tSummon\tWorldCat" + 'vufind_cart_src' => "Solr\tSummon\tWorldCat" ]; $cart = $this->getCart(100, true, $cookies); $this->assertEquals(3, count($cart->getItems())); - $this->assertTrue($cart->contains('VuFind|a')); + $this->assertTrue($cart->contains('Solr|a')); $this->assertTrue($cart->contains('Summon|b')); $this->assertTrue($cart->contains('WorldCat|c')); } diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/Controller/Plugin/ResultScrollerTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/Controller/Plugin/ResultScrollerTest.php index 1bd07ea2375..a6736b61184 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/Controller/Plugin/ResultScrollerTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/Controller/Plugin/ResultScrollerTest.php @@ -70,7 +70,7 @@ class ResultScrollerTest extends TestCase $plugin = $this->getMockResultScroller($results); $this->assertTrue($plugin->init($results)); $expected = [ - 'previousRecord' => 'VuFind|4', 'nextRecord' => 'VuFind|6', + 'previousRecord' => 'Solr|4', 'nextRecord' => 'Solr|6', 'currentPosition' => 5, 'resultTotal' => 10 ]; $this->assertEquals($expected, $plugin->getScrollData($results->getMockRecordDriver(5))); @@ -87,7 +87,7 @@ class ResultScrollerTest extends TestCase $plugin = $this->getMockResultScroller($results); $this->assertTrue($plugin->init($results)); $expected = [ - 'previousRecord' => null, 'nextRecord' => 'VuFind|2', + 'previousRecord' => null, 'nextRecord' => 'Solr|2', 'currentPosition' => 1, 'resultTotal' => 10 ]; $this->assertEquals($expected, $plugin->getScrollData($results->getMockRecordDriver(1))); @@ -104,7 +104,7 @@ class ResultScrollerTest extends TestCase $plugin = $this->getMockResultScroller($results); $this->assertTrue($plugin->init($results)); $expected = [ - 'previousRecord' => 'VuFind|9', 'nextRecord' => null, + 'previousRecord' => 'Solr|9', 'nextRecord' => null, 'currentPosition' => 10, 'resultTotal' => 10 ]; $this->assertEquals($expected, $plugin->getScrollData($results->getMockRecordDriver(10))); @@ -121,7 +121,7 @@ class ResultScrollerTest extends TestCase $plugin = $this->getMockResultScroller($results); $this->assertTrue($plugin->init($results)); $expected = [ - 'previousRecord' => 'VuFind|16', 'nextRecord' => null, + 'previousRecord' => 'Solr|16', 'nextRecord' => null, 'currentPosition' => 17, 'resultTotal' => 17 ]; $this->assertEquals($expected, $plugin->getScrollData($results->getMockRecordDriver(17))); @@ -138,7 +138,7 @@ class ResultScrollerTest extends TestCase $plugin = $this->getMockResultScroller($results); $this->assertTrue($plugin->init($results)); $expected = [ - 'previousRecord' => 'VuFind|10', 'nextRecord' => 'VuFind|12', + 'previousRecord' => 'Solr|10', 'nextRecord' => 'Solr|12', 'currentPosition' => 11, 'resultTotal' => 30 ]; $this->assertEquals($expected, $plugin->getScrollData($results->getMockRecordDriver(11))); @@ -155,7 +155,7 @@ class ResultScrollerTest extends TestCase $plugin = $this->getMockResultScroller($results); $this->assertTrue($plugin->init($results)); $expected = [ - 'previousRecord' => 'VuFind|19', 'nextRecord' => 'VuFind|21', + 'previousRecord' => 'Solr|19', 'nextRecord' => 'Solr|21', 'currentPosition' => 20, 'resultTotal' => 30 ]; $this->assertEquals($expected, $plugin->getScrollData($results->getMockRecordDriver(20))); diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/Record/LoaderTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/Record/LoaderTest.php index 4038b4d82be..19b4f8216bb 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/Record/LoaderTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/Record/LoaderTest.php @@ -52,14 +52,14 @@ class LoaderTest extends TestCase * @return void * * @expectedException VuFind\Exception\RecordMissing - * @expectedExceptionMessage Record VuFind:test does not exist. + * @expectedExceptionMessage Record Solr:test does not exist. */ public function testMissingRecord() { $collection = $this->getCollection([]); $service = $this->getMock('VuFindSearch\Service'); $service->expects($this->once())->method('retrieve') - ->with($this->equalTo('VuFind'), $this->equalTo('test')) + ->with($this->equalTo('Solr'), $this->equalTo('test')) ->will($this->returnValue($collection)); $loader = $this->getLoader($service); $loader->load('test'); @@ -75,7 +75,7 @@ class LoaderTest extends TestCase $collection = $this->getCollection([]); $service = $this->getMock('VuFindSearch\Service'); $service->expects($this->once())->method('retrieve') - ->with($this->equalTo('VuFind'), $this->equalTo('test')) + ->with($this->equalTo('Solr'), $this->equalTo('test')) ->will($this->returnValue($collection)); $missing = $this->getDriver('missing', 'Missing'); $factory = $this->getMock('VuFind\RecordDriver\PluginManager'); @@ -83,7 +83,7 @@ class LoaderTest extends TestCase ->with($this->equalTo('Missing')) ->will($this->returnValue($missing)); $loader = $this->getLoader($service, $factory); - $record = $loader->load('test', 'VuFind', true); + $record = $loader->load('test', 'Solr', true); $this->assertEquals($missing, $record); } @@ -98,7 +98,7 @@ class LoaderTest extends TestCase $collection = $this->getCollection([$driver]); $service = $this->getMock('VuFindSearch\Service'); $service->expects($this->once())->method('retrieve') - ->with($this->equalTo('VuFind'), $this->equalTo('test')) + ->with($this->equalTo('Solr'), $this->equalTo('test')) ->will($this->returnValue($collection)); $loader = $this->getLoader($service); $this->assertEquals($driver, $loader->load('test')); @@ -111,8 +111,8 @@ class LoaderTest extends TestCase */ public function testBatchLoad() { - $driver1 = $this->getDriver('test1', 'VuFind'); - $driver2 = $this->getDriver('test2', 'VuFind'); + $driver1 = $this->getDriver('test1', 'Solr'); + $driver2 = $this->getDriver('test2', 'Solr'); $driver3 = $this->getDriver('test3', 'Summon'); $missing = $this->getDriver('missing', 'Missing'); @@ -127,7 +127,7 @@ class LoaderTest extends TestCase $service = $this->getMock('VuFindSearch\Service'); $service->expects($this->at(0))->method('retrieveBatch') - ->with($this->equalTo('VuFind'), $this->equalTo(['test1', 'test2'])) + ->with($this->equalTo('Solr'), $this->equalTo(['test1', 'test2'])) ->will($this->returnValue($collection1)); $service->expects($this->at(1))->method('retrieveBatch') ->with($this->equalTo('Summon'), $this->equalTo(['test3'])) @@ -138,8 +138,8 @@ class LoaderTest extends TestCase $loader = $this->getLoader($service, $factory); $input = [ - ['source' => 'VuFind', 'id' => 'test1'], - 'VuFind|test2', 'Summon|test3', 'WorldCat|test4' + ['source' => 'Solr', 'id' => 'test1'], + 'Solr|test2', 'Summon|test3', 'WorldCat|test4' ]; $this->assertEquals([$driver1, $driver2, $driver3, $missing], $loader->loadBatch($input)); } @@ -152,12 +152,12 @@ class LoaderTest extends TestCase * * @return RecordDriver */ - protected function getDriver($id = 'test', $source = 'VuFind') + protected function getDriver($id = 'test', $source = 'Solr') { $driver = $this->getMock('VuFind\RecordDriver\AbstractBase'); $driver->expects($this->any())->method('getUniqueId') ->will($this->returnValue($id)); - $driver->expects($this->any())->method('getResourceSource') + $driver->expects($this->any())->method('getSourceIdentifier') ->will($this->returnValue($source)); return $driver; } diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/Record/RouterTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/Record/RouterTest.php index c71c2020a0f..73f401478a8 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/Record/RouterTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/Record/RouterTest.php @@ -99,7 +99,7 @@ class RouterTest extends TestCase $router = $this->getRouter($driver, ['Collections' => ['collections' => true]]); $this->assertEquals( ['params' => ['id' => 'test', 'tab' => 'foo'], 'route' => 'collection'], - $router->getTabRouteDetails('VuFind|test', 'foo') + $router->getTabRouteDetails('Solr|test', 'foo') ); } @@ -172,12 +172,12 @@ class RouterTest extends TestCase * * @return RecordDriver */ - protected function getDriver($id = 'test', $source = 'VuFind') + protected function getDriver($id = 'test', $source = 'Solr') { $driver = $this->getMock('VuFind\RecordDriver\AbstractBase'); $driver->expects($this->any())->method('getUniqueId') ->will($this->returnValue($id)); - $driver->expects($this->any())->method('getResourceSource') + $driver->expects($this->any())->method('getSourceIdentifier') ->will($this->returnValue($source)); return $driver; } diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/Related/WorldCatSimilarTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/Related/WorldCatSimilarTest.php index cefc85e8f00..4b259674941 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/Related/WorldCatSimilarTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/Related/WorldCatSimilarTest.php @@ -48,7 +48,7 @@ class WorldCatSimilarTest extends \VuFindTest\Unit\TestCase { $driver = $this->getMock( 'VuFind\RecordDriver\WorldCat', - ['tryMethod', 'getPrimaryAuthor', 'getAllSubjectHeadings', 'getTitle', 'getUniqueId', 'getResourceSource'] + ['tryMethod', 'getPrimaryAuthor', 'getAllSubjectHeadings', 'getTitle', 'getUniqueId', 'getSourceIdentifier'] ); $driver->expects($this->once()) ->method('tryMethod') @@ -67,7 +67,7 @@ class WorldCatSimilarTest extends \VuFindTest\Unit\TestCase ->method('getUniqueId') ->will($this->returnValue('fakeid')); $driver->expects($this->once()) - ->method('getResourceSource') + ->method('getSourceIdentifier') ->will($this->returnValue('WorldCat')); $service = $this->getMock('VuFindSearch\Service', ['search']); $expectedQuery = new Query('(srw.dd any "fakedc" or srw.au all "fakepa" or srw.su all "fakesh1a fakesh1b" or srw.su all "fakesh2" or srw.ti any "faketitle") not srw.no all "fakeid"'); diff --git a/module/VuFind/tests/unit-tests/src/VuFindTest/View/Helper/Root/RecordTest.php b/module/VuFind/tests/unit-tests/src/VuFindTest/View/Helper/Root/RecordTest.php index 4106820a946..0178e29ba5a 100644 --- a/module/VuFind/tests/unit-tests/src/VuFindTest/View/Helper/Root/RecordTest.php +++ b/module/VuFind/tests/unit-tests/src/VuFindTest/View/Helper/Root/RecordTest.php @@ -288,10 +288,10 @@ class RecordTest extends \PHPUnit_Framework_TestCase { $context = $this->getMockContext(); $context->expects($this->at(1))->method('renderInContext') - ->with($this->equalTo('record/checkbox.phtml'), $this->equalTo(['id' => 'VuFind|000105196', 'count' => 0, 'prefix' => 'bar'])) + ->with($this->equalTo('record/checkbox.phtml'), $this->equalTo(['id' => 'Solr|000105196', 'count' => 0, 'prefix' => 'bar'])) ->will($this->returnValue('success')); $context->expects($this->at(2))->method('renderInContext') - ->with($this->equalTo('record/checkbox.phtml'), $this->equalTo(['id' => 'VuFind|000105196', 'count' => 1, 'prefix' => 'bar'])) + ->with($this->equalTo('record/checkbox.phtml'), $this->equalTo(['id' => 'Solr|000105196', 'count' => 1, 'prefix' => 'bar'])) ->will($this->returnValue('success')); $record = $this->getRecord( $this->loadRecordFixture('testbug1.json'), [], $context diff --git a/public/index.php b/public/index.php index 67cf9646514..a3feb9488c0 100644 --- a/public/index.php +++ b/public/index.php @@ -27,7 +27,7 @@ defined('APPLICATION_ENV') ); // Define default search backend identifier -defined('DEFAULT_SEARCH_BACKEND') || define('DEFAULT_SEARCH_BACKEND', 'VuFind'); +defined('DEFAULT_SEARCH_BACKEND') || define('DEFAULT_SEARCH_BACKEND', 'Solr'); // Define path to local override directory defined('LOCAL_OVERRIDE_DIR') diff --git a/themes/bootstrap3/templates/RecordDriver/EDS/result-list.phtml b/themes/bootstrap3/templates/RecordDriver/EDS/result-list.phtml index 8fe0ce63967..e273233877e 100644 --- a/themes/bootstrap3/templates/RecordDriver/EDS/result-list.phtml +++ b/themes/bootstrap3/templates/RecordDriver/EDS/result-list.phtml @@ -3,7 +3,7 @@ $accessLevel = $this->driver->getAccessLevel(); $restrictedView = empty($accessLevel) ? false : true; ?> -<div class="row col-xs-11 source<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> +<div class="row col-xs-11 source<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" /> <div class="col-sm-2 left"> <? if ($summThumb = $this->record($this->driver)->getThumbnail()): ?> diff --git a/themes/bootstrap3/templates/RecordDriver/Pazpar2/result-list.phtml b/themes/bootstrap3/templates/RecordDriver/Pazpar2/result-list.phtml index 20d68bc04ea..756a40089bc 100644 --- a/themes/bootstrap3/templates/RecordDriver/Pazpar2/result-list.phtml +++ b/themes/bootstrap3/templates/RecordDriver/Pazpar2/result-list.phtml @@ -1,8 +1,8 @@ -<div class="result source<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?> col-xs-11"> +<div class="result source<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?> col-xs-11"> <div class="row"> <div> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" /> - <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" class="hiddenSource" /> + <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" class="hiddenSource" /> </div> <? $cover = $this->record($this->driver)->getCover('result-list', 'medium', $this->recordLink()->getUrl($this->driver)); ?> <? if ($cover): ?> diff --git a/themes/bootstrap3/templates/RecordDriver/SolrDefault/core.phtml b/themes/bootstrap3/templates/RecordDriver/SolrDefault/core.phtml index 6bf943b6ed6..00641440337 100644 --- a/themes/bootstrap3/templates/RecordDriver/SolrDefault/core.phtml +++ b/themes/bootstrap3/templates/RecordDriver/SolrDefault/core.phtml @@ -62,8 +62,11 @@ <tr> <th><?=$this->transEsc('Published in')?>:</th> <td> - <? $containerID = $this->driver->getContainerRecordID(); ?> - <a href="<?=($containerID ? $this->recordLink()->getUrl("VuFind|$containerID") : $this->record($this->driver)->getLink('journaltitle', $journalTitle))?>"><?=$this->escapeHtml($journalTitle)?></a> + <? + $containerSource = $this->driver->getSourceIdentifier(); + $containerID = $this->driver->getContainerRecordID(); + ?> + <a href="<?=($containerID ? $this->recordLink()->getUrl("$containerSource|$containerID") : $this->record($this->driver)->getLink('journaltitle', $journalTitle))?>"><?=$this->escapeHtml($journalTitle)?></a> <? $ref = $this->driver->getContainerReference(); if (!empty($ref)) { echo $this->escapeHtml($ref); } ?> </td> </tr> diff --git a/themes/bootstrap3/templates/RecordDriver/SolrDefault/list-entry.phtml b/themes/bootstrap3/templates/RecordDriver/SolrDefault/list-entry.phtml index 07f2351064f..d8df15d4376 100644 --- a/themes/bootstrap3/templates/RecordDriver/SolrDefault/list-entry.phtml +++ b/themes/bootstrap3/templates/RecordDriver/SolrDefault/list-entry.phtml @@ -1,7 +1,7 @@ <? // Set up some convenience variables: $id = $this->driver->getUniqueId(); - $source = $this->driver->getResourceSource(); + $source = $this->driver->getSourceIdentifier(); if (isset($this->list) && is_object($this->list)) { $list_id = $this->list->id; $user_id = $this->list->user_id; diff --git a/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml b/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml index 0c0a1a5ded7..96bd4cacb51 100644 --- a/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml +++ b/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml @@ -2,7 +2,7 @@ <div class="row"> <div> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" /> - <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" class="hiddenSource" /> + <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" class="hiddenSource" /> </div> <? if ($cover = $this->record($this->driver)->getCover('result-list', 'medium', $this->recordLink()->getUrl($this->driver))): ?> <div class="col-sm-2 col-xs-3 left"><?=$cover ?></div> @@ -32,9 +32,10 @@ <? if (!empty($journalTitle)): ?> <?=!empty($summAuthor) ? '<br />' : ''?> <?=$this->transEsc('Published in')?> + <? $containerSource = $this->driver->getSourceIdentifier(); ?> <? $containerID = $this->driver->getContainerRecordID(); ?> <? /* TODO: handle highlighting more elegantly here: */?> - <a href="<?=($containerID ? $this->recordLink()->getUrl("VuFind|$containerID") : $this->record($this->driver)->getLink('journaltitle', str_replace(array('{{{{START_HILITE}}}}', '{{{{END_HILITE}}}}'), '', $journalTitle)))?>"><?=$this->highlight($journalTitle) ?></a> + <a href="<?=($containerID ? $this->recordLink()->getUrl("$containerSource|$containerID") : $this->record($this->driver)->getLink('journaltitle', str_replace(array('{{{{START_HILITE}}}}', '{{{{END_HILITE}}}}'), '', $journalTitle)))?>"><?=$this->highlight($journalTitle) ?></a> <?=!empty($summDate) ? ' (' . $this->escapeHtml($summDate[0]) . ')' : ''?> <? elseif (!empty($summDate)): ?> <?=!empty($summAuthor) ? '<br />' : ''?> diff --git a/themes/bootstrap3/templates/RecordDriver/SolrDefault/toolbar.phtml b/themes/bootstrap3/templates/RecordDriver/SolrDefault/toolbar.phtml index 4931a548f30..15a57ef0a6b 100644 --- a/themes/bootstrap3/templates/RecordDriver/SolrDefault/toolbar.phtml +++ b/themes/bootstrap3/templates/RecordDriver/SolrDefault/toolbar.phtml @@ -8,7 +8,7 @@ $id = $this->driver->getUniqueId(); $controllerClass = 'controller:' . $this->record($this->driver)->getController(); $cart = $this->cart(); - $cartId = $this->driver->getResourceSource() . '|' . $id; + $cartId = $this->driver->getSourceIdentifier() . '|' . $id; ?> <ul class="nav nav-pills hidden-print"> <? if (count($this->driver->getCitationFormats()) > 0): ?> diff --git a/themes/bootstrap3/templates/RecordTab/usercomments.phtml b/themes/bootstrap3/templates/RecordTab/usercomments.phtml index 7157b9cbaa7..09d0209721d 100644 --- a/themes/bootstrap3/templates/RecordTab/usercomments.phtml +++ b/themes/bootstrap3/templates/RecordTab/usercomments.phtml @@ -10,7 +10,7 @@ <div class="row"> <div class="col-sm-3 name"> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>"/> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>"/> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>"/> <strong><?=$this->transEsc("Your Comment")?></strong> </div> <div class="col-sm-9"> diff --git a/themes/bootstrap3/templates/cart/email.phtml b/themes/bootstrap3/templates/cart/email.phtml index f91066ff7c8..181903dedb5 100644 --- a/themes/bootstrap3/templates/cart/email.phtml +++ b/themes/bootstrap3/templates/cart/email.phtml @@ -10,7 +10,7 @@ <?=$this->flashmessages()?> <form class="form-horizontal" action="<?=$this->url('cart-email')?>" method="post" name="bulkEmail"> <? foreach ($this->records as $current): ?> - <input type="hidden" name="ids[]" value="<?=$this->escapeHtmlAttr($current->getResourceSource() . '|' . $current->getUniqueId())?>" /> + <input type="hidden" name="ids[]" value="<?=$this->escapeHtmlAttr($current->getSourceIdentifier() . '|' . $current->getUniqueId())?>" /> <? endforeach; ?> <div class="form-group"> <label class="col-sm-3 control-label"><?=$this->transEsc('Title')?></label> diff --git a/themes/bootstrap3/templates/cart/export.phtml b/themes/bootstrap3/templates/cart/export.phtml index 824ab3d1fd7..b1855b21891 100644 --- a/themes/bootstrap3/templates/cart/export.phtml +++ b/themes/bootstrap3/templates/cart/export.phtml @@ -14,7 +14,7 @@ <? if (!empty($this->exportOptions)): ?> <form class="form-horizontal" method="post" action="<?=$this->url('cart-export')?>" name="exportForm" title="<?=$this->transEsc('Export Items')?>"> <? foreach ($this->records as $current): ?> - <input type="hidden" name="ids[]" value="<?=$this->escapeHtmlAttr($current->getResourceSource() . '|' . $current->getUniqueId())?>" /> + <input type="hidden" name="ids[]" value="<?=$this->escapeHtmlAttr($current->getSourceIdentifier() . '|' . $current->getUniqueId())?>" /> <? endforeach; ?> <div class="form-group"> <label class="col-sm-3 control-label"><?=$this->transEsc('Title')?></label> diff --git a/themes/bootstrap3/templates/cart/save.phtml b/themes/bootstrap3/templates/cart/save.phtml index 94c7cfb149b..a84570f30c8 100644 --- a/themes/bootstrap3/templates/cart/save.phtml +++ b/themes/bootstrap3/templates/cart/save.phtml @@ -13,8 +13,8 @@ <form class="form-horizontal" method="post" action="<?=$this->url('cart-save')?>" name="bulkSave"> <? $idParams = array(); ?> <? foreach ($this->records as $current): ?> - <? $idParams[] = urlencode('ids[]') . '=' . urlencode($current->getResourceSource() . '|' . $current->getUniqueId()) ?> - <input type="hidden" name="ids[]" value="<?=$this->escapeHtmlAttr($current->getResourceSource() . '|' . $current->getUniqueId())?>" /> + <? $idParams[] = urlencode('ids[]') . '=' . urlencode($current->getSourceIdentifier() . '|' . $current->getUniqueId()) ?> + <input type="hidden" name="ids[]" value="<?=$this->escapeHtmlAttr($current->getSourceIdentifier() . '|' . $current->getUniqueId())?>" /> <? endforeach; ?> <div class="form-group"> <label class="col-sm-3 control-label"><?=$this->transEsc('Title')?></label> diff --git a/themes/bootstrap3/templates/collection/view.phtml b/themes/bootstrap3/templates/collection/view.phtml index eb032151297..9da5f2f64a2 100644 --- a/themes/bootstrap3/templates/collection/view.phtml +++ b/themes/bootstrap3/templates/collection/view.phtml @@ -50,7 +50,7 @@ <div class="<?=$tree ? 'col-sm-12' : $this->layoutClass('mainbody') ?>"> <div class="record"> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" class="hiddenId" id="record_id" /> - <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" class="hiddenSource" /> + <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" class="hiddenSource" /> <?=$this->flashmessages()?> <?=$this->record($this->driver)->getCollectionMetadata()?> </div> diff --git a/themes/bootstrap3/templates/myresearch/edit.phtml b/themes/bootstrap3/templates/myresearch/edit.phtml index f6d703ae909..3ec402b3c16 100644 --- a/themes/bootstrap3/templates/myresearch/edit.phtml +++ b/themes/bootstrap3/templates/myresearch/edit.phtml @@ -24,7 +24,7 @@ <? foreach ($this->savedData as $i=>$current): ?> <fieldset> <legend> - <a href="<?=$this->url('userList', array('id' => $current['listId'])) ?>?delete=<?=urlencode($this->driver->getUniqueId())?>&source=<?=urlencode($this->driver->getResourceSource())?>" id="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>delete<?=$current['listId'] ?>" title="<?=$this->transEsc('confirm_delete')?>" class="close">×</a> <?=$this->transEsc('List') ?>: <?=$this->escapeHtml($current['listTitle'])?> + <a href="<?=$this->url('userList', array('id' => $current['listId'])) ?>?delete=<?=urlencode($this->driver->getUniqueId())?>&source=<?=urlencode($this->driver->getSourceIdentifier())?>" id="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>delete<?=$current['listId'] ?>" title="<?=$this->transEsc('confirm_delete')?>" class="close">×</a> <?=$this->transEsc('List') ?>: <?=$this->escapeHtml($current['listTitle'])?> </legend> <input type="hidden" name="lists[]" value="<?=$current['listId'] ?>"/> <? if ($this->usertags()->getMode() !== 'disabled'): ?> diff --git a/themes/bootstrap3/templates/record/addtag.phtml b/themes/bootstrap3/templates/record/addtag.phtml index 56f14d4a354..3dfefa5c71b 100644 --- a/themes/bootstrap3/templates/record/addtag.phtml +++ b/themes/bootstrap3/templates/record/addtag.phtml @@ -11,7 +11,7 @@ <form method="post" name="tagRecord" class="form-horizontal"> <input type="hidden" name="submit" value="1" /> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <div class="form-group"> <label class="col-sm-3 control-label" for="addtag_tag"><?=$this->transEsc("Tags")?>:</label> <div class="col-sm-9"> diff --git a/themes/bootstrap3/templates/record/email.phtml b/themes/bootstrap3/templates/record/email.phtml index 0ac0386d31c..3f512c4e30e 100644 --- a/themes/bootstrap3/templates/record/email.phtml +++ b/themes/bootstrap3/templates/record/email.phtml @@ -10,6 +10,6 @@ <?=$this->flashmessages()?> <form class="form-horizontal" method="post" name="emailRecord"> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <?=$this->render('Helpers/email-form-fields.phtml')?> </form> diff --git a/themes/bootstrap3/templates/record/save.phtml b/themes/bootstrap3/templates/record/save.phtml index 340e04c4879..41aeab736e4 100644 --- a/themes/bootstrap3/templates/record/save.phtml +++ b/themes/bootstrap3/templates/record/save.phtml @@ -11,7 +11,7 @@ <form id="edit-save-form" class="form-horizontal" method="post" action="<?=$this->recordLink()->getActionUrl($this->driver, 'Save')?>" name="saveRecord"> <input type="hidden" name="submit" value="1" /> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId()) ?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <? if (!empty($this->containingLists)): ?> <p><?=$this->transEsc('This item is already part of the following list/lists') ?>: <? foreach ($this->containingLists as $i=>$list): ?> @@ -40,7 +40,7 @@ <? endif; ?> </select> <? endif; ?> - <a class="btn btn-link" id="make-list" href="<?=$this->url('editList', array('id' => 'NEW'))?>?recordId=<?=urlencode($this->driver->getUniqueId())?>&recordSource=<?=urlencode($this->driver->getResourceSource())?>" title="<?=$this->transEsc('Create a List') ?>"><?=$showLists ? $this->transEsc('or create a new list') : $this->transEsc('Create a List'); ?></a> + <a class="btn btn-link" id="make-list" href="<?=$this->url('editList', array('id' => 'NEW'))?>?recordId=<?=urlencode($this->driver->getUniqueId())?>&recordSource=<?=urlencode($this->driver->getSourceIdentifier())?>" title="<?=$this->transEsc('Create a List') ?>"><?=$showLists ? $this->transEsc('or create a new list') : $this->transEsc('Create a List'); ?></a> </div> </div> diff --git a/themes/bootstrap3/templates/record/sms.phtml b/themes/bootstrap3/templates/record/sms.phtml index 8ab36406619..5ff39dee17e 100644 --- a/themes/bootstrap3/templates/record/sms.phtml +++ b/themes/bootstrap3/templates/record/sms.phtml @@ -11,7 +11,7 @@ <?=$this->flashmessages()?> <form method="post" name="smsRecord" class="form-horizontal"> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <div class="form-group"> <label class="col-sm-3 control-label" for="sms_to"><?=$this->transEsc('Number')?>:</label> <div class="col-sm-9"> diff --git a/themes/bootstrap3/templates/record/view.phtml b/themes/bootstrap3/templates/record/view.phtml index 8a5c087c174..5481a5d3892 100644 --- a/themes/bootstrap3/templates/record/view.phtml +++ b/themes/bootstrap3/templates/record/view.phtml @@ -42,9 +42,9 @@ <div class="row"> <div class="<?=$this->layoutClass('mainbody')?>"> - <div class="record source<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>"> + <div class="record source<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>"> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" class="hiddenId" /> - <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource()) ?>" class="hiddenSource" /> + <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier()) ?>" class="hiddenSource" /> <?=$this->flashmessages()?> <?=$this->record($this->driver)->getCoreMetadata()?> </div> diff --git a/themes/jquerymobile/templates/RecordDriver/EDS/result-list.phtml b/themes/jquerymobile/templates/RecordDriver/EDS/result-list.phtml index 18b702ea55b..5d95546b179 100644 --- a/themes/jquerymobile/templates/RecordDriver/EDS/result-list.phtml +++ b/themes/jquerymobile/templates/RecordDriver/EDS/result-list.phtml @@ -4,7 +4,7 @@ $restrictedView = empty($accessLevel) ? false : true; ?> <a rel="external" href="<?=$this->recordLink()->getUrl($this->driver)?>"> - <div class="result source<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> + <div class="result source<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" /> <? $items = $this->driver->getItems(); diff --git a/themes/jquerymobile/templates/RecordDriver/Pazpar2/result-list.phtml b/themes/jquerymobile/templates/RecordDriver/Pazpar2/result-list.phtml index ca0a884fca3..1abaaba9d24 100644 --- a/themes/jquerymobile/templates/RecordDriver/Pazpar2/result-list.phtml +++ b/themes/jquerymobile/templates/RecordDriver/Pazpar2/result-list.phtml @@ -1,5 +1,5 @@ <b> - <div class="result source<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> + <div class="result source<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" /> <h3><?=$this->record($this->driver)->getTitleHtml()?></h3> <? $summAuthor = $this->driver->getPrimaryAuthor(); if (!empty($summAuthor)): ?> diff --git a/themes/jquerymobile/templates/RecordDriver/SolrDefault/core.phtml b/themes/jquerymobile/templates/RecordDriver/SolrDefault/core.phtml index 5541d5b77e8..b1d9bf18f97 100644 --- a/themes/jquerymobile/templates/RecordDriver/SolrDefault/core.phtml +++ b/themes/jquerymobile/templates/RecordDriver/SolrDefault/core.phtml @@ -18,8 +18,11 @@ <? $journalTitle = $this->driver->getContainerTitle(); if (!empty($journalTitle)): ?> <dt><?=$this->transEsc('Published in')?>:</dt> <dd> - <? $containerID = $this->driver->getContainerRecordID(); ?> - <a rel="external" href="<?=($containerID ? $this->recordLink()->getUrl("VuFind|$containerID") : $this->record($this->driver)->getLink('journaltitle', $journalTitle))?>"><?=$this->escapeHtml($journalTitle)?></a> + <? + $containerSource = $this->driver->getSourceIdentifier(); + $containerID = $this->driver->getContainerRecordID(); + ?> + <a rel="external" href="<?=($containerID ? $this->recordLink()->getUrl("$containerSource|$containerID") : $this->record($this->driver)->getLink('journaltitle', $journalTitle))?>"><?=$this->escapeHtml($journalTitle)?></a> <? $ref = $this->driver->getContainerReference(); if (!empty($ref)) { echo $this->escapeHtml($ref); } ?> </dd> <? endif; ?> diff --git a/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml b/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml index bd2c8e7b4bd..c1ea4289206 100644 --- a/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml +++ b/themes/jquerymobile/templates/RecordDriver/SolrDefault/list-entry.phtml @@ -1,7 +1,7 @@ <? // Set up some convenience variables: $id = $this->driver->getUniqueId(); - $source = $this->driver->getResourceSource(); + $source = $this->driver->getSourceIdentifier(); if (isset($this->list) && is_object($this->list)) { $list_id = $this->list->id; $user_id = $this->list->user_id; @@ -11,7 +11,7 @@ } ?> <a rel="external" href="<?=$this->recordLink()->getUrl($this->driver)?>"> - <div class="result source<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> + <div class="result source<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" /> <h3><?=$this->record($this->driver)->getTitleHtml()?></h3> <? $listAuthor = $this->driver->getPrimaryAuthor(); if (!empty($listAuthor)): ?> diff --git a/themes/jquerymobile/templates/RecordDriver/SolrDefault/result-list.phtml b/themes/jquerymobile/templates/RecordDriver/SolrDefault/result-list.phtml index 18d9710016b..5492f2c0354 100644 --- a/themes/jquerymobile/templates/RecordDriver/SolrDefault/result-list.phtml +++ b/themes/jquerymobile/templates/RecordDriver/SolrDefault/result-list.phtml @@ -1,5 +1,5 @@ <a rel="external" href="<?=$this->recordLink()->getUrl($this->driver)?>"> - <div class="result source<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> + <div class="result source<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?> recordId<?=$this->driver->supportsAjaxStatus()?' ajaxItemId':''?>"> <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" /> <h3><?=$this->record($this->driver)->getTitleHtml()?></h3> <? $summAuthor = $this->driver->getPrimaryAuthor(); if (!empty($summAuthor)): ?> diff --git a/themes/jquerymobile/templates/RecordTab/usercomments.phtml b/themes/jquerymobile/templates/RecordTab/usercomments.phtml index bfb324de331..c172b066686 100644 --- a/themes/jquerymobile/templates/RecordTab/usercomments.phtml +++ b/themes/jquerymobile/templates/RecordTab/usercomments.phtml @@ -8,7 +8,7 @@ <form action="<?=$this->recordLink()->getActionUrl($this->driver, 'AddComment')?>" method="post" data-ajax="false"> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>"/> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>"/> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>"/> <div data-role="fieldcontain"> <label for="comments_form_comment"><?=$this->transEsc("Your Comment")?>:</label> <textarea id="comments_form_comment" name="comment"></textarea> diff --git a/themes/jquerymobile/templates/record/addtag.phtml b/themes/jquerymobile/templates/record/addtag.phtml index 82d2a6a0ba2..b18c7dea3c9 100644 --- a/themes/jquerymobile/templates/record/addtag.phtml +++ b/themes/jquerymobile/templates/record/addtag.phtml @@ -8,7 +8,7 @@ <form method="post" name="tagRecord" data-ajax="false"> <input type="hidden" name="submit" value="1" /> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <div data-role="fieldcontain"> <label for="addtag_tag"><?=$this->transEsc("Tags")?>:</label> <input id="addtag_tag" type="text" name="tag" value=""/> diff --git a/themes/jquerymobile/templates/record/email.phtml b/themes/jquerymobile/templates/record/email.phtml index a8b3798c65a..0ecec92f9dd 100644 --- a/themes/jquerymobile/templates/record/email.phtml +++ b/themes/jquerymobile/templates/record/email.phtml @@ -8,7 +8,7 @@ <?=$this->flashmessages()?> <form method="post" name="emailRecord" data-ajax="false"> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <?=$this->render('Helpers/email-form-fields.phtml')?> </form> </div> diff --git a/themes/jquerymobile/templates/record/save.phtml b/themes/jquerymobile/templates/record/save.phtml index 9ec7b0b6a12..1eeacf1273e 100644 --- a/themes/jquerymobile/templates/record/save.phtml +++ b/themes/jquerymobile/templates/record/save.phtml @@ -9,7 +9,7 @@ <form method="post" name="saveRecord" data-ajax="false"> <input type="hidden" name="submit" value="1" /> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId()) ?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <? if (!empty($this->containingLists)): ?> <ul data-role="listview" data-dividertheme="e" data-inset="true"> <li data-role="list-divider"><?=$this->transEsc('This item is already part of the following list/lists') ?>:</li> @@ -37,7 +37,7 @@ </select> <? endif; ?> - <a rel="external" data-role="button" data-rel="dialog" href="<?=$this->url('editList', array('id' => 'NEW')) ?>?recordId=<?=urlencode($this->driver->getUniqueId())?>&recordSource=<?=urlencode($this->driver->getResourceSource())?>" class="listEdit controller<?=$this->record($this->driver)->getController()?>" title="<?=$this->transEsc('Create a List') ?>"><? if ($showLists) echo $this->transEsc('or create a new list'); else echo $this->transEsc('Create a List'); ?></a> + <a rel="external" data-role="button" data-rel="dialog" href="<?=$this->url('editList', array('id' => 'NEW')) ?>?recordId=<?=urlencode($this->driver->getUniqueId())?>&recordSource=<?=urlencode($this->driver->getSourceIdentifier())?>" class="listEdit controller<?=$this->record($this->driver)->getController()?>" title="<?=$this->transEsc('Create a List') ?>"><? if ($showLists) echo $this->transEsc('or create a new list'); else echo $this->transEsc('Create a List'); ?></a> <? if ($showLists): ?> <? if ($this->usertags()->getMode() !== 'disabled'): ?> diff --git a/themes/jquerymobile/templates/record/sms.phtml b/themes/jquerymobile/templates/record/sms.phtml index 11fda5ead3c..b81c0acac3b 100644 --- a/themes/jquerymobile/templates/record/sms.phtml +++ b/themes/jquerymobile/templates/record/sms.phtml @@ -8,7 +8,7 @@ <?=$this->flashmessages()?> <form method="post" name="smsRecord" data-ajax="false"> <input type="hidden" name="id" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueId())?>" /> - <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" /> + <input type="hidden" name="source" value="<?=$this->escapeHtmlAttr($this->driver->getSourceIdentifier())?>" /> <div data-role="fieldcontain"> <label for="sms_to"><?=$this->transEsc('Number')?>:</label> <input id="sms_to" type="text" name="to" value="<?=isset($this->to) ? $this->to : ''?>" /> diff --git a/themes/root/templates/RecordDriver/AbstractBase/export-bibtex.phtml b/themes/root/templates/RecordDriver/AbstractBase/export-bibtex.phtml index 0e32df65978..74627109957 100644 --- a/themes/root/templates/RecordDriver/AbstractBase/export-bibtex.phtml +++ b/themes/root/templates/RecordDriver/AbstractBase/export-bibtex.phtml @@ -25,7 +25,7 @@ if ($marcProceedingsField) { echo '@' . $format . "{\n"; // Citation key: -echo $this->driver->getResourceSource() . '-' . $this->driver->getUniqueId() . ",\n"; +echo $this->driver->getSourceIdentifier() . '-' . $this->driver->getUniqueId() . ",\n"; $title = rtrim($this->driver->getTitle(), " /"); echo "title = {{$title}},\n"; -- GitLab