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; }
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; }