Index: branches/5.2.x/core/units/helpers/list_helper.php =================================================================== diff -u -N -r14748 -r14782 --- branches/5.2.x/core/units/helpers/list_helper.php (.../list_helper.php) (revision 14748) +++ branches/5.2.x/core/units/helpers/list_helper.php (.../list_helper.php) (revision 14782) @@ -1,6 +1,6 @@ IDField . ' != ' . $object->GetID() . ') AND ((' . implode(') OR (', $where_clause) . '))'; $list->addFilter('navigation_filter', $where_clause); - $sql = $list->extractCalculatedFields($list->GetSelectSQL()); + // do extractCalculatedFields (transforms having into where), since we don't select fields from JOINed tables + $sql = str_replace('%1$s', $list->TableName, $list->extractCalculatedFields($list->GetSelectSQL())); $list->removeFilter('navigation_filter'); $list->setOrderFields($order_fields_backup); Index: branches/5.2.x/core/kernel/db/db_tag_processor.php =================================================================== diff -u -N -r14769 -r14782 --- branches/5.2.x/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 14769) +++ branches/5.2.x/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 14782) @@ -1,6 +1,6 @@ Application->recallObject('ListHelper'); /* @var $list_helper ListHelper */ - return $list_helper->getNavigationResource($object, $params['list'], false); + $select_clause = $this->Application->getUnitOption($object->Prefix, 'NavigationSelectClause', null); + + return $list_helper->getNavigationResource($object, $params['list'], false, $select_clause); } /** @@ -625,7 +627,9 @@ $list_helper =& $this->Application->recallObject('ListHelper'); /* @var $list_helper ListHelper */ - return $list_helper->getNavigationResource($object, $params['list'], true); + $select_clause = $this->Application->getUnitOption($object->Prefix, 'NavigationSelectClause', null); + + return $list_helper->getNavigationResource($object, $params['list'], true, $select_clause); } /** Index: branches/5.2.x/core/kernel/db/cat_event_handler.php =================================================================== diff -u -N -r14780 -r14782 --- branches/5.2.x/core/kernel/db/cat_event_handler.php (.../cat_event_handler.php) (revision 14780) +++ branches/5.2.x/core/kernel/db/cat_event_handler.php (.../cat_event_handler.php) (revision 14782) @@ -1,6 +1,6 @@ isLoaded() ) { - $this->_errorNotFound($event); + if ( $event->Special != 'previous' && $event->Special != 'next' ) { + $this->_errorNotFound($event); + } return true; } Index: branches/5.2.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r14762 -r14782 --- branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14762) +++ branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14782) @@ -1,6 +1,6 @@ Application->recallObject('ListHelper'); /* @var $list_helper ListHelper */ - return $list_helper->getNavigationResource($object, $event->getEventParam('list'), $event->Special == 'next'); + $select_clause = $this->Application->getUnitOption($object->Prefix, 'NavigationSelectClause', null); + + return $list_helper->getNavigationResource($object, $event->getEventParam('list'), $event->Special == 'next', $select_clause); } if (preg_match('/^auto-(.*)/', $event->Special, $regs) && $this->Application->prefixRegistred($regs[1])) {