Author: david
Date: Fri Apr 20 21:04:01 2012
New Revision: 11488

Log:
Add copyright_status_id to index. Refs issue 2229.

Modified:
   trunk/lib/QubitSearchInformationObject.class.php

Modified: trunk/lib/QubitSearchInformationObject.class.php
==============================================================================
--- trunk/lib/QubitSearchInformationObject.class.php    Fri Apr 20 17:23:35 
2012        (r11487)
+++ trunk/lib/QubitSearchInformationObject.class.php    Fri Apr 20 21:04:01 
2012        (r11488)
@@ -61,6 +61,7 @@
       'extent_and_medium',
       'class_name',
       'collection_root_slug',
+      'copyright_status_id',
       'culture',
       'filename',
       'finding_aids',
@@ -282,6 +283,22 @@
 
         break;
 
+      case 'copyright_status_id':
+        $statusId = null;
+        foreach ($this->getRights() as $item)
+        {
+          if (isset($item->copyright_status_id))
+          {
+            $statusId = $item->copyright_status_id;
+
+            break;
+          }
+        }
+
+        $field = Zend_Search_Lucene_Field::Unstored($camelName, $statusId);
+
+        break;
+
       // Serialized date array for display in search results
       case 'date_serialized':
         $field = Zend_Search_Lucene_Field::UnIndexed($camelName, 
serialize($this->getDates('array')));
@@ -1020,4 +1037,29 @@
       return implode(' ', $names);
     }
   }
+
+  public function getRights()
+  {
+    if (!isset(self::$statements['rights']))
+    {
+      $sql  = 'SELECT 
+                  restriction,
+                  basis_id,
+                  act_id,
+                  rights_holder_id,
+                  copyright_status_id';
+      $sql .= ' FROM '.QubitRights::TABLE_NAME.' rights';
+      $sql .= ' JOIN '.QubitRelation::TABLE_NAME.' rel
+                  ON rights.id = rel.object_id';
+      $sql .= ' WHERE rel.subject_id = ?';
+      $sql .= ' AND rel.type_id = '.QubitTerm::RIGHT_ID;
+
+      self::$statements['rights'] = self::$conn->prepare($sql);
+    }
+
+    self::$statements['rights']->execute(array(
+      $this->__get('id')));
+
+    return self::$statements['rights']->fetchAll(PDO::FETCH_CLASS);
+  }
 }

-- 
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/qubit-commits?hl=en.

Reply via email to