Author: david
Date: Fri Feb 10 12:27:05 2012
New Revision: 10850

Log:
Add title and publication status

Modified:
   trunk/lib/QubitSearchPdo.class.php
   trunk/plugins/sfSearchPlugin/lib/task/xfPopulateTask.class.php

Modified: trunk/lib/QubitSearchPdo.class.php
==============================================================================
--- trunk/lib/QubitSearchPdo.class.php  Fri Feb 10 12:15:25 2012        (r10849)
+++ trunk/lib/QubitSearchPdo.class.php  Fri Feb 10 12:27:05 2012        (r10850)
@@ -110,19 +110,26 @@
       $limit = 10000;
 
       // Get info objects (with offset)
-      $sql  = 'SELECT io.*, i18n.*, slug.slug FROM 
'.QubitInformationObject::TABLE_NAME.' io';
+      $sql  = 'SELECT
+                 io.*,
+                 i18n.*,
+                 slug.slug,
+                 pubs.status_id as publication_status_id';
+      $sql .= ' FROM '.QubitInformationObject::TABLE_NAME.' io';
       $sql .= ' JOIN '.QubitInformationObjectI18n::TABLE_NAME.' i18n';
       $sql .= '   ON io.id = i18n.id';
       $sql .= ' JOIN '.QubitSlug::TABLE_NAME.' slug';
       $sql .= '   ON io.id = slug.object_id';
+      $sql .= ' JOIN '.QubitStatus::TABLE_NAME.' pubs';
+      $sql .= '   ON io.id = pubs.object_id';
+      $sql .= ' WHERE
+                  pubs.type_id = :pub_status_type_id';
       $sql .= ' ORDER BY io.lft';
       $sql .= ' LIMIT '.$offset.', '.$limit;
 
       $statement = $conn->prepare($sql);
-      if (!$statement->execute())
-      {
-        throw new sfException('Select failed');
-      }
+      $statement->execute(array(
+        ':pub_status_type_id' => QubitTerm::STATUS_TYPE_PUBLICATION_ID));
 
       if ($i == 0 && 0 < $offset)
       {
@@ -168,11 +175,11 @@
     $doc->addField(Zend_Search_Lucene_Field::Keyword('parent', 
$resource->parent->slug));
 
     // Title
-    // include an i18n fallback for proper search result display in case the
+    // Include an i18n fallback for proper search result display in case the
     // title field was not translated
-    if (0 < strlen($resource->title))))
+    if (0 < strlen($resource->title))
     {
-      $resource->title = getFallbackTitle($resource->id);
+      $resource->title = self::getFallbackTitle($resource->id);
     }
 
     // Boost the hit relevance for the title field
@@ -180,6 +187,9 @@
     $titleField->boost = 10;
     $doc->addField($titleField);
 
+    // Publication status
+    $doc->addField(Zend_Search_Lucene_Field::Text('publicationStatusId', 
$resource->publication_status_id));
+
     // Scope and content (stored for retrival in search results)
     $doc->addField(Zend_Search_Lucene_Field::Text('scopeAndContent', 
$resource->scope_and_content));
 
@@ -264,9 +274,6 @@
       $doc->addField(Zend_Search_Lucene_Field::Keyword('hasDigitalObject', 
'false'));
     }
 
-    // Publication status
-    $doc->addField(Zend_Search_Lucene_Field::Text('publicationStatusId', 
$resource->getPublicationStatus()->status->id));
-
     $doc->addField(Zend_Search_Lucene_Field::Text('referenceCode', 
$resource->referenceCode));
 
     // Store dates as serialized array
@@ -383,15 +390,17 @@
 
   protected static function getFallbackTitle($id)
   {
+    $conn = Propel::getConnection();
+
     // Get info objects (with offset)
     $sql  = 'SELECT i18n.title';
     $sql .= ' FROM '.QubitInformationObject::TABLE_NAME.' node';
     $sql .= ' JOIN '.QubitInformationObjectI18n::TABLE_NAME.' i18n';
     $sql .= '   ON node.id = i18n.id';
-    $sql .= ' WHERE id = ?';
+    $sql .= ' WHERE node.id = ?';
 
     $statement = $conn->prepare($sql);
-    $statement->execute(array($id)))
+    $statement->execute(array($id));
     $result = $statement->fetch(PDO::FETCH_OBJ);
 
     if (null != $result)

Modified: trunk/plugins/sfSearchPlugin/lib/task/xfPopulateTask.class.php
==============================================================================
--- trunk/plugins/sfSearchPlugin/lib/task/xfPopulateTask.class.php      Fri Feb 
10 12:15:25 2012        (r10849)
+++ trunk/plugins/sfSearchPlugin/lib/task/xfPopulateTask.class.php      Fri Feb 
10 12:27:05 2012        (r10850)
@@ -64,6 +64,6 @@
     $index = new $index;
     $index->setLogger(new xfLoggerTask($this->dispatcher, $this->formatter));
     $index->qubitPopulate($options);
-    $index->optimize();
+//    $index->optimize();
   }
 }

-- 
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