Example #1
0
 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'));
     }
 }