Пример #1
0
 public function render()
 {
     $this->_collection = $this->_obj->getCollection();
     $this->_collection->setBoundaryBatch(-1);
     // set relevant uri adapter and get some identifiers
     /* @var $_uriAdapter t41\View\ViewUri\AbstractAdapter */
     if (!($this->_uriAdapter = ViewUri::getUriAdapter()) instanceof ViewUri\Adapter\GetAdapter) {
         $this->_uriAdapter = new ViewUri\Adapter\GetAdapter();
     }
     $this->_uriAdapter->setEnvData($this->_uriAdapter->getIdentifier('offset'), 0);
     $this->_obj->query($this->_uriAdapter);
     $row = '';
     $sep = str_replace('\\t', "\t", ",");
     // print out result rows
     foreach ($this->_obj->getCollection()->getMembers(ObjectModel::DATA) as $this->_do) {
         $p = null;
         foreach ($this->_obj->getColumns() as $key => $column) {
             if ($p) {
                 $p .= $sep;
             }
             if ($column instanceof Element\IdentifierElement) {
                 $value = $this->_do->getUri()->getIdentifier();
             } else {
                 if ($column instanceof Element\MetaElement) {
                     $value = $column->getDisplayValue($this->_do);
                 } else {
                     $property = $this->_do->getProperty($column->getParameter('property'));
                     $column->setValue($property->getValue());
                     if ($column->getParameter('recursion')) {
                         foreach ($column->getParameter('recursion') as $recursion) {
                             if ($property instanceof AbstractProperty) {
                                 $property = $property->getValue(ObjectModel::DATA);
                             }
                             if ($property instanceof ObjectModel || $property instanceof DataObject) {
                                 $property = $property->getProperty($recursion);
                             }
                         }
                     }
                     if ($property instanceof Property\MediaProperty) {
                         $value = '';
                     } else {
                         if ($property instanceof Property\CurrencyProperty) {
                             $value = $property->getValue();
                             // value formatting must not be converted
                         } else {
                             $value = $property instanceof Property\AbstractProperty ? $property->getDisplayValue() : null;
                         }
                     }
                 }
             }
             $fv = str_replace('\\r\\n', ', ', stripslashes($value));
             $p .= "\"" . str_replace('"', '""', $fv) . "\"";
         }
         $row .= $p . "\r\n";
         // preserve memory!
         $this->_do->reclaimMemory();
     }
     return $this->_drawHeaderRow() . $row;
 }
Пример #2
0
 public function render()
 {
     View::addCoreLib(array('style.css', 'buttons.css', 'sprites.css'));
     View::addCoreLib(array('core.js', 'view.js', 'view:alert.js'));
     // @todo temp fix, sorting by headers is only available on page refresh
     if ($this->getParameter('paginator') == false) {
         $this->setParameter('sortable', false);
     }
     // set relevant uri adapter and get some identifiers
     /* @var $_uriAdapter t41\View\ViewUri\AbstractAdapter */
     if (!ViewUri::getUriAdapter() instanceof ViewUri\Adapter\GetAdapter) {
         $tmp = explode('?', $_SERVER['REQUEST_URI']);
         $this->_uriAdapter = new ViewUri\Adapter\GetAdapter($tmp[0]);
     } else {
         $this->_uriAdapter = ViewUri::getUriAdapter();
     }
     $this->_offsetIdentifier = $this->_uriAdapter->getIdentifier('offset');
     $this->_sortIdentifier = $this->_uriAdapter->getIdentifier('sort');
     $this->_searchIdentifier = $this->_uriAdapter->getIdentifier('search');
     $this->_env = $this->_uriAdapter->getEnv();
     if (!$this->_obj->getCollection() instanceof StatsCollection) {
         $this->_obj->query($this->_uriAdapter);
     }
     $tmp = $this->_obj->reduce();
     $this->_uuid = $tmp['uuid'];
     $p = '';
     $p = $this->_headerRendering();
     $p .= sprintf('<table class="t41 list" id="%s">', $this->getId());
     $p .= $this->_headlineRendering();
     $p .= $this->_contentRendering();
     $p .= '</table>';
     // inject extra content
     $p .= '<div class="actions">' . parent::_contentRendering() . '</div>';
     if ($this->getParameter('paginator') !== false) {
         $p .= $this->_footerRendering();
     } else {
         $p .= '</div></div>';
     }
     return $p;
 }