Author: sevein
Date: Wed Aug 8 18:06:15 2012
New Revision: 12054
Log:
Use CONCAT + COALESCE + LPAD to make title sorting work properly when dealing
with NULL values
Modified:
trunk/lib/model/QubitInformationObject.php
Modified: trunk/lib/model/QubitInformationObject.php
==============================================================================
--- trunk/lib/model/QubitInformationObject.php Wed Aug 8 18:05:06 2012
(r12053)
+++ trunk/lib/model/QubitInformationObject.php Wed Aug 8 18:06:15 2012
(r12054)
@@ -1672,42 +1672,7 @@
$criteria = QubitCultureFallback::addFallbackCriteria($criteria,
'QubitInformationObject');
- if ('next' == $position)
- {
- // Add where clause with culture fallback support
- $criterion1 = $criteria->getNewCriterion(
- 'title',
- 'CONCAT(
- COALESCE(identifier, ""),
- COALESCE((CASE WHEN (current.TITLE IS NOT NULL AND
current.TITLE <> "") THEN current.TITLE ELSE source.TITLE END), "")
- ) >
'.Propel::getConnection()->quote($current->identifier.$current->title),
- Criteria::CUSTOM);
- $criterion2 = $criteria->getNewCriterion('lft', $current->lft,
Criteria::GREATER_THAN);
- $criterion1->addOr($criterion2);
- $criteria->add($criterion1);
-
- $criteria->addAscendingOrderByColumn('identifier');
- $criteria->addAscendingOrderByColumn('title');
- $criteria->addAscendingOrderByColumn('lft');
- }
- else // 'previous'
- {
- // Add where clause with culture fallback support
- $criterion1 = $criteria->getNewCriterion(
- 'title',
- 'CONCAT(
- COALESCE(identifier, ""),
- COALESCE((CASE WHEN (current.TITLE IS NOT NULL AND
current.TITLE <> "") THEN current.TITLE ELSE source.TITLE END), "")
- ) <
'.Propel::getConnection()->quote($current->identifier.$current->title),
- Criteria::CUSTOM);
- $criterion2 = $criteria->getNewCriterion('lft', $current->lft,
Criteria::LESS_THAN);
- $criterion1->addOr($criterion2);
- $criteria->add($criterion1);
-
- $criteria->addDescendingOrderByColumn('identifier');
- $criteria->addDescendingOrderByColumn('title');
- $criteria->addDescendingOrderByColumn('lft');
- }
+ die("TODO");
break;
@@ -1717,34 +1682,22 @@
if ('next' == $position)
{
- // Add where clause with culture fallback support
- $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),
+ $criteria->add('title',
+ 'CONCAT(COALESCE((CASE WHEN (current.TITLE IS NOT NULL AND
current.TITLE <> "") THEN current.TITLE ELSE source.TITLE END), ""), LPAD(lft,
12, 0))
+ >
+
CONCAT(COALESCE('.Propel::getConnection()->quote($current->title).', ""),
LPAD('.Propel::getConnection()->quote($current->lft).', 12, 0))',
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
- $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),
+ $criteria->add('title',
+ 'CONCAT(COALESCE((CASE WHEN (current.TITLE IS NOT NULL AND
current.TITLE <> "") THEN current.TITLE ELSE source.TITLE END), ""), LPAD(lft,
12, 0))
+ <
+
CONCAT(COALESCE('.Propel::getConnection()->quote($current->title).', ""),
LPAD('.Propel::getConnection()->quote($current->lft).', 12, 0))',
Criteria::CUSTOM);
- $criterion2 = $criteria->getNewCriterion('lft', $current->lft,
Criteria::LESS_THAN);
- $criterion1->addOr($criterion2);
- $criteria->add($criterion1);
$criteria->addDescendingOrderByColumn('title');
$criteria->addDescendingOrderByColumn('lft');
--
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.