private function views_oai_pmh_plugin_style_auto::_check_style_objects in Views OAI-PMH 6.2
Same name and namespace in other branches
- 7.2 plugins/views_oai_pmh_plugin_style_auto.inc \views_oai_pmh_plugin_style_auto::_check_style_objects()
Clones this object's properties into its style objects. Only performs this action the first time the function is called; subsequent calls just run the validity test.
Return value
boolean TRUE if the objects are OK, FALSE if not.
1 call to views_oai_pmh_plugin_style_auto::_check_style_objects()
File
- plugins/
views_oai_pmh_plugin_style_auto.inc, line 46 - Definition of the views_oai_pmh_plugin_style_auto class.
Class
Code
private function _check_style_objects() {
// Check to see if the $_style_objects array has not been populated already.
if (!$this->_row_objects_populated) {
// We'll use these two variables to determine the metadata type to use:
// 1) The "metadataPrefix" parameter from the query string.
$metadata_prefix = array_key_exists('metadataPrefix', $_GET) && $_GET['metadataPrefix'] != '' ? $_GET['metadataPrefix'] : '';
// 2) The active row plugin from the View.
$row_plugin = $this->view->display[$this->view->current_display]->display_options['row_plugin'];
// If we're set to use the Auto row plugin, then use the metadataPrefix parameter from the query string.
if ($row_plugin == 'auto' && array_key_exists($metadata_prefix, $GLOBALS['views_oai_pmh'])) {
$this->_metadata_format = $metadata_prefix;
}
elseif ($row_plugin != '' && $row_plugin != 'auto') {
// Check each data definition for the correct metadata prefix to use with this row plugin.
foreach ($GLOBALS['views_oai_pmh'] as $data_definition) {
if ($data_definition->row_plugin == $row_plugin) {
$this->_metadata_format = $data_definition->metadata_prefix;
}
}
}
else {
$this->_metadata_format = $GLOBALS['views_oai_pmh_default'];
}
// Examine each value in the array of style objects, indexed by the keys from the global array of OAI data types.
foreach ($GLOBALS['views_oai_pmh'] as $key => $unused) {
// Populate each style object with the properties of this 'Auto' object.
foreach ($this as $property => $value) {
switch ($property) {
// Don't apply the properties that are unique to the 'Auto' class.
case '_style_objects':
case '_style_objects_populated':
case '_metadata_format':
break;
// Create/set the property in the row object.
default:
$this->_style_objects[$key]->{$property} = $value;
break;
}
}
}
// Flag the object population code as complete so this block doesn't run again.
$this->_style_objects_populated = TRUE;
}
// Check each individual array item for a valid object that is a descendant of the 'views_oai_pmh_plugin_style' class, returning a failure if we encounter any errors.
foreach ($this->_style_objects as $obj) {
if (!is_object($obj) || get_parent_class($obj) != 'views_oai_pmh_plugin_style') {
return FALSE;
}
}
return TRUE;
}