Author: sevein
Date: Thu Aug  2 22:10:57 2012
New Revision: 12036

Log:
Add lft fallback when sorting by title so records with empty title can be 
sorted too

Modified:
   trunk/lib/model/QubitInformationObject.php

Modified: trunk/lib/model/QubitInformationObject.php
==============================================================================
--- trunk/lib/model/QubitInformationObject.php  Thu Aug  2 17:37:44 2012        
(r12035)
+++ trunk/lib/model/QubitInformationObject.php  Thu Aug  2 22:10:57 2012        
(r12036)
@@ -1710,28 +1710,36 @@
           if ('next' == $position)
           {
             // Add where clause with culture fallback support
-            $criteria->add('title',
-              'COALESCE((CASE
+            $criterion1 = $criteria->getNewCriterion('title',
+              '(CASE
                   WHEN (current.TITLE IS NOT NULL AND current.TITLE <> "")
                     THEN current.TITLE
                   ELSE source.TITLE
-                END), "") > '.Propel::getConnection()->quote($current->title),
+                END) > '.Propel::getConnection()->quote($current->title),
               Criteria::CUSTOM);
+            $criterion2 = $criteria->getNewCriterion('lft', $current->lft, 
Criteria::GREATER_THAN);
+            $criterion1->addOr($criterion2);
+            $criteria->add($criterion1);
 
             $criteria->addAscendingOrderByColumn('title');
+            $criteria->addAscendingOrderByColumn('lft');
           }
           else // 'previous'
           {
             // Add where clause with culture fallback support
-            $criteria->add('title',
-              'COALESCE((CASE
+            $criterion1 = $criteria->getNewCriterion('title',
+              '(CASE
                   WHEN (current.TITLE IS NOT NULL AND current.TITLE <> "")
                     THEN current.TITLE
                   ELSE source.TITLE
-                END), "") < '.Propel::getConnection()->quote($current->title),
+                END) < '.Propel::getConnection()->quote($current->title),
               Criteria::CUSTOM);
+            $criterion2 = $criteria->getNewCriterion('lft', $current->lft, 
Criteria::LESS_THAN);
+            $criterion1->addOr($criterion2);
+            $criteria->add($criterion1);
 
             $criteria->addDescendingOrderByColumn('title');
+            $criteria->addDescendingOrderByColumn('lft');
           }
 
           break;
@@ -1845,6 +1853,7 @@
               $criteria->add(QubitInformationObject::PARENT_ID, 
$this->parentId);
               $criteria = QubitCultureFallback::addFallbackCriteria($criteria, 
'QubitInformationObject');
               $criteria->addDescendingOrderByColumn('title');
+              $criteria->addDescendingOrderByColumn('lft');
               $criteria->setLimit(1);
 
               if (null === $informationObject = 
QubitInformationObject::getOne($criteria))
@@ -1869,7 +1878,8 @@
               $criteria->add(QubitInformationObject::PARENT_ID, 
$this->parentId);
               $criteria = QubitCultureFallback::addFallbackCriteria($criteria, 
'QubitInformationObject');
               $criteria->addAscendingOrderByColumn('title');
-              $criteria->setLimit(1);
+              $criteria->addAscendingOrderByColumn('lft');
+              $criteria->setLimit(0);
 
               if (null === $informationObject = 
QubitInformationObject::getOne($criteria))
               {

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