/** * This function is called in addBrowseTableColumns() to filter the names displayed * by AnswerModelSnippetGeneric. * * @see \Gems_Tracker_Snippets_AnswerModelSnippetGeneric * * @param \MUtil_Model_Bridge_TableBridge $bridge * @param \MUtil_Model_ModelAbstract $model * @param array $currentNames The current names in use (allows chaining) * @return array Of the names of labels that should be shown */ public function filterAnswers(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model, array $currentNames) { $repeater = $model->loadRepeatable(); $table = $bridge->getTable(); $table->setRepeater($repeater); // Filter unless option 'fullanswers' is true, can be set as get or post var. $requestFullAnswers = \Zend_Controller_Front::getInstance()->getRequest()->getParam('fullanswers', false); if (!$repeater->__start()) { return $currentNames; } $keys = array(); if ($requestFullAnswers !== false) { // No filtering return $model->getItemsOrdered(); } else { foreach ($model->getItemNames() as $name) { $start = substr(strtolower($name), 0, $this->IncludeLength); if (in_array($start, $this->IncludeStarts)) { $keys[$name] = $name; } } } $answers = $this->token->getRawAnswers(); // Prevent errors when no answers present if (!empty($answers)) { $results = array_intersect($currentNames, array_keys($keys), array_keys($answers)); } else { $results = array_intersect($currentNames, array_keys($keys)); } $results = $this->restoreHeaderPositions($model, $results); if ($results) { return $results; } return $this->getHeaders($model, $currentNames); }
/** * Get the repeater source for the lazy data * * @return \MUtil_Lazy_RepeatableInterface */ public function getRepeater() { if (!$this->_repeater) { if ($this->_chainedBridge && $this->_chainedBridge->hasRepeater()) { $this->setRepeater($this->_chainedBridge->getRepeater()); } else { $this->setRepeater($this->model->loadRepeatable()); } } return $this->_repeater; }
/** * Function that allows for overruling the repeater loading. * * @param \MUtil_Model_ModelAbstract $model * @return \MUtil_Lazy_RepeatableInterface */ public function getRepeater(\MUtil_Model_ModelAbstract $model) { return $model->loadRepeatable(); }