views_oai_pmh_plugin_style.inc in Views OAI-PMH 7.2
Same filename and directory in other branches
Definition of the views_oai_pmh_plugin_style class.
File
plugins/views_oai_pmh_plugin_style.incView source
<?php
/**
* @file
* Definition of the views_oai_pmh_plugin_style class.
*/
class views_oai_pmh_plugin_style extends views_plugin_style {
protected $oai_args = array();
function render() {
$content = '';
$oai_resumption_token = '';
if ($this
->uses_row_plugin() && empty($this->row_plugin)) {
vpr('views_plugin_style_default: Missing row plugin');
return;
}
$this->oai_args = $this->display->handler
->get_oai_args();
if (!count($this->oai_args['errors'])) {
$content = $this
->render_content();
if (!empty($content) && isset($this->oai_args['verb']) && in_array($this->oai_args['verb'], array(
'ListRecords',
'ListIdentifiers',
'ListSets',
))) {
$oai_resumption_token = $this->display->handler
->build_oai_resumption_token();
}
}
if (empty($content) && isset($this->oai_args['verb']) && in_array($this->oai_args['verb'], array(
'ListRecords',
'ListIdentifiers',
))) {
$this->oai_args['errors'] = $this->display->handler
->oai_error('noRecordsMatch');
}
if (empty($content) && isset($this->oai_args['verb']) && $this->oai_args['verb'] == 'GetRecord') {
$this->oai_args['errors'] = $this->display->handler
->oai_error('idDoesNotExist', $this->oai_args['identifier']);
}
return theme('views_oai_pmh_response', array(
'view' => $this->view,
'options' => $this->options,
'oai_args' => $this->oai_args,
'oai_content' => $content,
'resumption_token' => $oai_resumption_token,
));
}
function render_content() {
switch ($this->oai_args['verb']) {
case 'Identify':
if (empty($this->display->handler->oai_errors)) {
return theme('views_oai_pmh_identify_body', array(
'view' => $this->view,
));
}
break;
case "ListIdentifiers":
return $this
->render_identifiers();
break;
case 'ListMetadataFormats':
return theme('views_oai_pmh_metadataformats_body');
case 'GetRecord':
case 'ListRecords':
return $this
->render_records();
case 'ListSets':
default:
}
}
function render_identifiers() {
if (!empty($this->display->handler->oai_args['errors'])) {
return;
}
if ($this
->uses_row_plugin() && empty($this->row_plugin)) {
vpr('views_plugin_style_default: Missing row plugin');
return;
}
$records = '';
$rows = array();
foreach ($this->view->result as $row_index => $row) {
$records .= theme('views_oai_pmh_record_header', array(
'nid' => $row->nid,
'node_changed' => $row->node_changed,
));
}
return $records;
}
/**
* Provide a full list of possible theme templates used by this style.
*/
function theme_functions($hook = NULL) {
if (is_null($hook)) {
$hook = $this->definition['theme'];
}
return views_theme_functions($hook, $this->view, $this->display);
}
/**
* Get the nid of the result at the given row index.
*
* @param $index
* The index count of the row.
*/
function get_field_id($index) {
return $this->view->result[$index];
}
}
Classes
Name![]() |
Description |
---|---|
views_oai_pmh_plugin_style | @file Definition of the views_oai_pmh_plugin_style class. |