diff --git a/CollectionClass.inc b/CollectionClass.inc
index 553634a4..142fd765 100644
--- a/CollectionClass.inc
+++ b/CollectionClass.inc
@@ -26,12 +26,13 @@ class CollectionClass {
* @param string $pid The pid of the collection to represent.
* @return CollectionClass
*/
- function CollectionClass($pid = NULL) {
- drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
+ function __construct($pid = NULL) {
if (!empty($pid)) {
module_load_include('inc', 'fedora_repository', 'ObjectHelper');
$this->collectionObject = new ObjectHelper($pid);
+ $this->pid = $pid;
}
+
}
/* gets objects related to this object. must include offset and limit
@@ -395,6 +396,78 @@ class CollectionClass {
user_save($user, $personal_collection_pid);
return TRUE;
}
+
+ function showFieldSets() {
+
+ global $base_url;
+
+ $tabset = array();
+
+ $tabset['my_tabset'] = array(
+ '#type' => 'tabset',
+ );
+
+ global $user;
+ $objectHelper = new ObjectHelper();
+ $results = $this->getRelatedItems($this->pid, NULL);
+
+
+
+ $html = $objectHelper->renderCollection($results, $this->pid );
+
+
+
+ $tabset['my_tabset']['second_tab'] = array(
+// $collection_fieldset = array (
+ '#type' => 'tabpage',
+ '#title' => t('Members'),
+ '#content' => $html
+ );
+ $tabset['my_tabset']['first_tab'] = array(
+ // #type and #title are the minimum requirements.
+ '#type' => 'tabpage',
+ '#title' => t('View'),
+ // This will be the content of the tab.
+ '#content' => 'what what',
+ );
+ $tabset['my_tabset']['third_tab'] = array(
+ '#type' => 'tabpage',
+ '#title' => t('Description'),
+ );
+ $tabset['my_tabset']['third_tab']['tabset'] = array(
+ '#type' => 'tabset',
+ );
+
+ $tabset['my_tabset']['third_tab']['tabset']['view'] = array(
+ '#type' => 'tabpage',
+ '#title' => t('Darwin Core'),
+ '#content' => "METADATA",
+ );
+ module_load_include('inc', 'fedora_repository', 'ObjectHelper');
+/* $obj = new ObjectHelper();
+ if (fedora_repository_access(OBJECTHELPER :: $EDIT_FEDORA_METADATA, $this->pid, $user)) {
+ $editform = drupal_get_form('fedora_repository_edit_qdc_form', $this->pid, 'DARWIN_CORE');
+ $tabset['my_tabset']['third_tab']['tabset']['edit'] = array(
+ '#type' => 'tabpage',
+ '#title' => t('Edit'),
+ '#content' => $editform,
+ );
+ $tabset['my_tabset']['third_tab']['tabset']['source'] = array(
+ '#type' => 'tabpage',
+ '#title' => t('Vew Source'),
+ );
+ $xmlsrc = $dwc->asXML();
+ $tabset['my_tabset']['third_tab']['tabset']['source']['srctext'] = array(
+ '#name' => 'source',
+ '#type' => 'textarea',
+ '#value' => $xmlsrc,
+ '#id' => 'source',
+ '#height' => 50,
+ );
+ }
+*/
+ return tabs_render($tabset);
+ }
}
diff --git a/ObjectHelper.inc b/ObjectHelper.inc
index 9b24f088..6b6c9dec 100644
--- a/ObjectHelper.inc
+++ b/ObjectHelper.inc
@@ -666,56 +666,6 @@ class ObjectHelper {
$isCollection = TRUE;
}
}
-
- //$label=$content;
- $collectionName = $collection;
- if (!$pageNumber) {
- $pageNumber = 1;
- }
-
- if (!isset($collectionName)) {
- $collectionName = variable_get('fedora_repository_name', 'Collection');
- }
- $xslContent = $this->getXslContent($pid, $path);
-
- //get collection list and display using xslt-------------------------------------------
-
- if (isset($content) && $content != FALSE) {
- $input = new DomDocument();
- $input->loadXML(trim($content));
- $results = $input->getElementsByTagName('result');
- if ($results->length > 0) {
- try {
- $proc = new XsltProcessor();
- $proc->setParameter('', 'collectionPid', $collection_pid);
- $proc->setParameter('', 'collectionTitle', $collectionName);
- $proc->setParameter('', 'baseUrl', $base_url);
- $proc->setParameter('', 'path', $base_url . '/' . $path);
- $proc->setParameter('', 'hitPage', $pageNumber);
- $proc->registerPHPFunctions();
- $xsl = new DomDocument();
- $xsl->loadXML($xslContent);
- // php xsl does not seem to work with namespaces so removing it below
- // I may have just been being stupid here
- // $content = str_ireplace('xmlns="http://www.w3.org/2001/sw/DataAccess/rf1/result"', '', $content);
-
- $xsl = $proc->importStylesheet($xsl);
- $newdom = $proc->transformToDoc($input);
-
- $objectList = $newdom->saveXML(); //is the xml transformed to html as defined in the xslt associated with the collection object
-
- if (!$objectList) {
- throw new Exception("Invalid XML.");
- }
- } catch (Exception $e) {
- drupal_set_message(t('!e', array('!e' => $e->getMessage())), 'error');
- return '';
- }
- }
- } else {
- drupal_set_message(t("No Objects in this collection or bad query."));
- }
-
//--------------------------------------------------------------------------------
//show the collections datastreams
if ($results->length > 0 || $isCollection == TRUE) {
@@ -739,45 +689,10 @@ class ObjectHelper {
else {
$ingestObject = ' ';
}
-
-
- $datastreams .= $ingestObject;
-
- $objectListOut = '';
- if (isset($objectList)) {
- $object_list_fieldset = array(
- '#title' => t('Items in this collection'),
- '#collapsible' => TRUE,
- '#collapsed' => FALSE,
- '#value' => (isset($objectList) ? $objectList : ''), //collection list
- );
- $objectListOut = theme('fieldset', $object_list_fieldset);
- }
- } else {
- //$collectionName='';
- $collection_fieldset = array(
- '#title' => "",
- '#collapsible' => TRUE,
- '#collapsed' => FALSE,
- '#value' => $datastreams,
- );
- $objectListOut = ''; //no collection objects to show so don't show field set
}
- $output = '';
- switch (variable_get('fedora_object_display_title', ObjectHelper::$DISPLAY_ALWAYS)) {
- case ObjectHelper :: $DISPLAY_NEVER: break;
- case ObjectHelper :: $DISPLAY_NO_MODEL_OUTPUT:
- if (trim($datastreams) == '') {
- $output .= '' . $collectionName . '
';
- }
- break;
+ $datastreams .= $ingestObject;
- case ObjectHelper :: $DISPLAY_ALWAYS:
- default:
- $output .= '' . $collectionName . '
';
- break;
- }
$output .= $datastreams;
@@ -808,20 +723,7 @@ class ObjectHelper {
$output .= theme('fieldset', $fieldset);
}
- switch (variable_get('fedora_collection_display_list', ObjectHelper::$DISPLAY_ALWAYS)) {
- case ObjectHelper :: $DISPLAY_NEVER: break;
- case ObjectHelper :: $DISPLAY_NO_MODEL_OUTPUT:
- if (trim($datastreams) == '') {
- $output .= $objectListOut . '
';
- }
- break;
-
- case ObjectHelper :: $DISPLAY_ALWAYS:
- default:
- $output .= $objectListOut . '
';
- break;
- }
-
+
return $output;
}
@@ -869,6 +771,85 @@ class ObjectHelper {
return $parent_collections_HTML;
}
+ function renderCollection($content, $pid, $dsId, $collection, $pageNumber = NULL) {
+ $path = drupal_get_path('module', 'fedora_repository');
+ global $base_url;
+ $collection_pid = $pid; //we will be changing the pid later maybe
+ //module_load_include('php', ''Fedora_Repository'', 'ObjectHelper');
+ $objectHelper = $this;
+ $parsedContent = NULL;
+ $contentModels = $objectHelper->get_content_models_list($pid);
+ $isCollection = FALSE;
+ //if this is a collection object store the $pid in the session as it will come in handy
+ //after a purge or ingest to return to the correct collection.
+
+ $fedoraItem = NULL;
+
+
+
+ $collectionName = $collection;
+ if (!$pageNumber) {
+ $pageNumber = 1;
+ }
+
+ if (!isset($collectionName)) {
+ $collectionName = variable_get('fedora_repository_name', 'Collection');
+ }
+ $xslContent = $this->getXslContent($pid, $path);
+
+ //get collection list and display using xslt-------------------------------------------
+
+ if (isset($content) && $content != FALSE) {
+ $input = new DomDocument();
+ $input->loadXML(trim($content));
+ $results = $input->getElementsByTagName('result');
+ if ($results->length > 0) {
+ try {
+ $proc = new XsltProcessor();
+ $proc->setParameter('', 'collectionPid', $collection_pid);
+ $proc->setParameter('', 'collectionTitle', $collectionName);
+ $proc->setParameter('', 'baseUrl', $base_url);
+ $proc->setParameter('', 'path', $base_url . '/' . $path);
+ $proc->setParameter('', 'hitPage', $pageNumber);
+ $proc->registerPHPFunctions();
+ $xsl = new DomDocument();
+ $xsl->loadXML($xslContent);
+ // php xsl does not seem to work with namespaces so removing it below
+ // I may have just been being stupid here
+ // $content = str_ireplace('xmlns="http://www.w3.org/2001/sw/DataAccess/rf1/result"', '', $content);
+
+ $xsl = $proc->importStylesheet($xsl);
+ $newdom = $proc->transformToDoc($input);
+
+ $objectList = $newdom->saveXML(); //is the xml transformed to html as defined in the xslt associated with the collection object
+
+ if (!$objectList) {
+ throw new Exception("Invalid XML.");
+ }
+ } catch (Exception $e) {
+ drupal_set_message(t('!e', array('!e' => $e->getMessage())), 'error');
+ return '';
+ }
+ }
+ } else {
+ drupal_set_message(t("No Objects in this collection or bad query."));
+ }
+
+
+ $object_list_fieldset = array(
+ '#title' => t('Items in this collection'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE,
+ '#value' => (isset($objectList) ? $objectList : ''),);
+ $objectListOut = theme('fieldset', $object_list_fieldset);
+
+
+ $output .= $objectListOut . '
';
+
+ return $output;
+ }
+
+
/**
* gets a list of datastreams and related function that we should use to show datastreams in their own fieldsets
* from the content model associated with the object