Skip to content
Snippets Groups Projects
Commit 84dbfee6 authored by Demian Katz's avatar Demian Katz
Browse files

Smarter missing record support: missing titles now display more consistently,...

Smarter missing record support: missing titles now display more consistently, and missing records can be deleted from favorites (resolving VUFIND-645).
parent 061604e3
No related merge requests found
...@@ -740,6 +740,7 @@ class MyResearchController extends AbstractBase ...@@ -740,6 +740,7 @@ class MyResearchController extends AbstractBase
$record->setRawData( $record->setRawData(
array('id' => isset($current['id']) ? $current['id'] : null) array('id' => isset($current['id']) ? $current['id'] : null)
); );
$record->setResourceSource('VuFind');
} }
$record->setExtraDetail('ils_details', $current); $record->setExtraDetail('ils_details', $current);
return $record; return $record;
......
...@@ -136,6 +136,7 @@ class Loader implements ServiceLocatorAwareInterface ...@@ -136,6 +136,7 @@ class Loader implements ServiceLocatorAwareInterface
->get('RecordDriverPluginManager'); ->get('RecordDriverPluginManager');
$retVal[$i] = clone($factory->get('Missing')); $retVal[$i] = clone($factory->get('Missing'));
$retVal[$i]->setRawData($fields); $retVal[$i]->setRawData($fields);
$retVal[$i]->setResourceSource($details['source']);
} }
} }
......
...@@ -48,4 +48,58 @@ class Missing extends SolrDefault ...@@ -48,4 +48,58 @@ class Missing extends SolrDefault
$this->resourceSource = 'missing'; $this->resourceSource = 'missing';
parent::__construct(); parent::__construct();
} }
/**
* Set the resource source of the missing record. This is a special function
* of the missing record driver and normally should NOT be attempted.
*
* @param string $source Resource source
*
* @return void
*/
public function setResourceSource($source)
{
$this->resourceSource = $source;
}
/**
* Format the missing title.
*
* @return string
*/
public function determineMissingTitle()
{
// If available, load title from database:
$table = $this->getDbTable('Resource');
$resource = $table
->findResource($this->getUniqueId(), $this->getResourceSource(), false);
if (!empty($resource) && !empty($resource->title)) {
return $resource->title;
}
// Default -- message about missing title:
return $this->translate('Title not available');
}
/**
* Get the short title of the record.
*
* @return string
*/
public function getShortTitle()
{
$title = parent::getShortTitle();
return empty($title) ? $this->determineMissingTitle() : $title;
}
/**
* Get the full title of the record.
*
* @return string
*/
public function getTitle()
{
$title = parent::getShortTitle();
return empty($title) ? $this->determineMissingTitle() : $title;
}
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment