Author: sevein
Date: Thu Aug 2 23:30:35 2012
New Revision: 12038
Log:
Cleanups and some progress sorting by identifierTitle
Modified:
trunk/lib/model/QubitInformationObject.php
Modified: trunk/lib/model/QubitInformationObject.php
==============================================================================
--- trunk/lib/model/QubitInformationObject.php Thu Aug 2 22:13:57 2012
(r12037)
+++ trunk/lib/model/QubitInformationObject.php Thu Aug 2 23:30:35 2012
(r12038)
@@ -1675,30 +1675,38 @@
if ('next' == $position)
{
// Add where clause with culture fallback support
- $criteria->add(
+ $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->title),
+ ) >
'.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
- $criteria->add(
+ $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->title),
+ ) <
'.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');
}
break;
@@ -1773,6 +1781,7 @@
continue;
}
+ // Add item to array
$results[] = $item;
}
@@ -1788,111 +1797,47 @@
switch ($sort)
{
case 'identifierTitle':
+ case 'title':
- if ('next' == $position)
+ // Look for the last sibling
+ if (!isset($conditionLimit))
{
- // Look for the last sibling
- if (!isset($conditionLimit))
- {
- $criteria = new Criteria;
- $criteria->add(QubitInformationObject::PARENT_ID,
$this->parentId);
- $criteria = QubitCultureFallback::addFallbackCriteria($criteria,
'QubitInformationObject');
- $criteria->addDescendingOrderByColumn('identifier');
- $criteria->addDescendingOrderByColumn('title');
- $criteria->setLimit(1);
+ $criteria = new Criteria;
+ $criteria->add(QubitInformationObject::PARENT_ID, $this->parentId);
+ $criteria = QubitCultureFallback::addFallbackCriteria($criteria,
'QubitInformationObject');
- if (null === $informationObject =
QubitInformationObject::getOne($criteria))
+ if ('next' == $position)
+ {
+ if ('identifierTitle' == $sort)
{
- throw new sfException;
+ $criteria->addDescendingOrderByColumn('identifier');
}
-
- $conditionLimit = $informationObject->id;
- }
-
- if ($conditionLimit == $last->id)
- {
- break 2;
+ $criteria->addDescendingOrderByColumn('title');
+ $criteria->addDescendingOrderByColumn('lft');
}
- }
- else // 'previous'
- {
- // Look for the first sibling
- if (!isset($conditionLimit))
+ else
{
- $criteria = new Criteria;
- $criteria->add(QubitInformationObject::PARENT_ID,
$this->parentId);
- $criteria = QubitCultureFallback::addFallbackCriteria($criteria,
'QubitInformationObject');
- $criteria->addAscendingOrderByColumn('identifier');
- $criteria->addAscendingOrderByColumn('title');
- $criteria->setLimit(1);
-
- if (null === $informationObject =
QubitInformationObject::getOne($criteria))
+ if ('identifierTitle' == $sort)
{
- throw new sfException;
+ $criteria->addAscendingOrderByColumn('identifier');
}
-
- $conditionLimit = $informationObject->id;
- }
-
- if ($conditionLimit == $last->id)
- {
- break 2;
+ $criteria->addAscendingOrderByColumn('title');
+ $criteria->addAscendingOrderByColumn('lft');
}
- }
-
- break;
- case 'title':
+ $criteria->setLimit(1);
- if ('next' == $position)
- {
- // Look for the last sibling
- if (!isset($conditionLimit))
+ if (null === $informationObject =
QubitInformationObject::getOne($criteria))
{
- $criteria = new Criteria;
- $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))
- {
- throw new sfException;
- }
-
- $conditionLimit = $informationObject->id;
+ throw new sfException;
}
- if ($conditionLimit == $last->id)
- {
- break 2;
- }
+ $conditionLimit = $informationObject->id;
}
- else // 'previous'
- {
- // Look for the first sibling
- if (!isset($conditionLimit))
- {
- $criteria = new Criteria;
- $criteria->add(QubitInformationObject::PARENT_ID,
$this->parentId);
- $criteria = QubitCultureFallback::addFallbackCriteria($criteria,
'QubitInformationObject');
- $criteria->addAscendingOrderByColumn('title');
- $criteria->addAscendingOrderByColumn('lft');
- $criteria->setLimit(1);
- if (null === $informationObject =
QubitInformationObject::getOne($criteria))
- {
- throw new sfException;
- }
-
- $conditionLimit = $informationObject->id;
- }
-
- if ($conditionLimit == $last->id)
- {
- break 2;
- }
+ if ($conditionLimit == $last->id)
+ {
+ break 2;
}
break;
--
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.