private function _add_version_navigation() { $previous_version = false; $next_version = false; $qb = org_openpsa_documents_document_dba::new_query_builder(); if ($this->_document->nextVersion) { $qb->add_constraint('nextVersion', '=', $this->_document->nextVersion); $qb->add_constraint('metadata.created', '<', gmstrftime('%Y-%m-%d %T', $this->_document->metadata->created)); } else { $qb->add_constraint('nextVersion', '=', $this->_document->id); } $version = $qb->count() + 1; if ($version > 1) { $qb->add_order('metadata.created', 'DESC'); $qb->set_limit(1); $results = $qb->execute(); $previous_version = $results[0]; } if ($this->_document->nextVersion != 0) { $qb = org_openpsa_documents_document_dba::new_query_builder(); $qb->begin_group('OR'); $qb->add_constraint('nextVersion', '=', $this->_document->nextVersion); $qb->add_constraint('id', '=', $this->_document->nextVersion); $qb->end_group(); $qb->add_constraint('metadata.revised', '>', gmstrftime('%Y-%m-%d %T', $this->_document->metadata->created)); $qb->add_order('nextVersion', 'DESC'); $qb->add_order('metadata.created', 'ASC'); $qb->set_limit(1); $results = $qb->execute(); $next_version = $results[0]; $current_version = org_openpsa_documents_document_dba::get_cached($this->_document->nextVersion); $this->add_breadcrumb('document/' . $current_version->guid . '/', $current_version->title); $this->add_breadcrumb('', sprintf($this->_l10n->get('version %s (%s)'), $version, strftime('%x %X', $this->_document->metadata->revised))); } else { $this->add_breadcrumb('document/' . $this->_document->guid . '/', $this->_document->title); } if ($next_version) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "document/{$next_version->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('next version'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/up.png')); } if ($previous_version) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "document/{$previous_version->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('previous version'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/down.png')); } }