Часть кода ТДС
...
if ($Informationsystem_Controller_Show->item) {
$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item', $Informationsystem_Controller_Show->item);
// Текущий элемент и группа
$cur_elem = $Informationsystem_Controller_Show ->item;
$cur_group = $oInformationsystem_Item ->informationsystem_id;
$oCore_QueryBuilder_Select = Core_QueryBuilder::select()
->select('informationsystem_items.path', 'informationsystem_items.name', 'informationsystem_items.sorting', 'informationsystem_items.id')
->from('informationsystem_items')
->where('informationsystem_items.sorting', '=', $cur_elem);
$oCore_QueryBuilder_Select = Core_QueryBuilder::select()
->select('informationsystem_items.path', 'informationsystem_items.name', 'informationsystem_items.sorting', 'informationsystem_items.id')
->from('informationsystem_items')
->where('active', '=', 1)
->open()
->where('informationsystem_items.sorting', '<', $cur_elem)
->setAnd()
->where('informationsystem_items.informationsystem_id', '=', $cur_group)
->setAnd()
->where('informationsystem_items.deleted', '=', '0')
->close()
->clearOrderBy()
->orderBy('informationsystem_items.sorting', 'DESC')
->limit(1);
$prev = $oCore_QueryBuilder_Select->execute()->asAssoc()->current(); $prev = $prev['path'];
$prev_name = $oCore_QueryBuilder_Select->execute()->asAssoc()->current(); $prev_name = $prev_name['name'];
$oCore_QueryBuilder_Select = Core_QueryBuilder::select()
->select('informationsystem_items.path', 'informationsystem_items.name', 'informationsystem_items.sorting', 'informationsystem_items.id')
->from('informationsystem_items')
->where('active', '=', 1)
->open()
->where('informationsystem_items.sorting', '>', $cur_elem)
->setAnd()
->where('informationsystem_items.informationsystem_id', '=', $cur_group)
->setAnd()
->where('informationsystem_items.deleted', '=', '0')
->close()
->clearOrderBy()
->orderBy('informationsystem_items.sorting')
->limit(1);
$next = $oCore_QueryBuilder_Select->execute()->asAssoc()->current(); $next = $next ['path'];
$next_name = $oCore_QueryBuilder_Select->execute()->asAssoc()->current(); $next_name = $next_name['name'];
$Informationsystem_Controller_Show
->addEntity(Core::factory('Core_Xml_Entity')
->name('neighboring_items')
->addEntity(Core::factory('Core_Xml_Entity')->name('prev_item') ->value($prev))
->addEntity(Core::factory('Core_Xml_Entity')->name('prev_item_name')->value($prev_name))
->addEntity(Core::factory('Core_Xml_Entity')->name('next_item') ->value($next))
->addEntity(Core::factory('Core_Xml_Entity')->name('next_item_name')->value($next_name)));
}
...