public function getRenderedValues($params = array(), $wk = false, $opts = array()) { $opts['data_is_subarray'] = true; return parent::getRenderedValues($params, $wk, $opts); }
public function getRenderedValues($params = array(), $mode = false, $opts = array()) { // create a unique hash for this element position $hash = md5(serialize(array($opts, $this->getType()->getApplication()->getGroup(), $this->getType()->id, $params->get('element') . $params->get('_layout'), $params->get('_position') . $params->get('_index')))); if (!array_key_exists($hash, $this->_rendered_values)) { // init vars $result = parent::getRenderedValues($params, $mode, $opts); if (empty($result)) { return null; } // if no results abort // truncate if ($max_length = $params->find('specific._max_car', 0)) { $tr_mode = $params->find('specific._max_car_mode', 1); $tr_suffix = $params->find('specific._max_car_suffix', '...'); // group all text & truncate if (isset($max_length) && $max_length > 0 && count($result['result']) > 1 && $tr_mode == 1) { $result_len = 0; for ($i = 0; $i < count($result['result']); $i++) { switch (preg_replace('/\\..+/', '', $mode)) { // WK Slideset // WK Accordion case 'slideset': case 'accordion': $text = $result['result'][$i]['content']; $result_len += strlen(strip_tags($text)); if ($result_len > $max_length) { $truncate_len = $i > 1 ? $result_len - $max_length : $max_length; $result['result'][$i]['content'] = $this->app->zlstring->truncate($text, $truncate_len, $tr_suffix); $result['result'] = array_slice($result['result'], 0, $i + 1); // remove the rest $result['report']['limited'] = true; break; } else { $result['result'][$i]['content'] = $text; } break; default: $text = $result['result'][$i]; $result_len += strlen(strip_tags($text)); if ($result_len > $max_length) { $truncate_len = $i > 1 ? $result_len - $max_length : $max_length; $result['result'][$i] = $this->app->zlstring->truncate($text, $truncate_len, $tr_suffix); $result['result'] = array_slice($result['result'], 0, $i + 1); // remove the rest $result['report']['limited'] = true; break; } else { $result['result'][$i] = $text; } break; } } } else { if (isset($max_length) && $max_length > 0 && $tr_mode == 2) { $limited_once = false; for ($i = 0; $i < count($result['result']); $i++) { switch (preg_replace('/\\..+/', '', $mode)) { // WK Slideset // WK Accordion case 'slideset': case 'accordion': if (strlen($result['result'][$i]['content']) > $max_length) { $result['result'][$i]['content'] = $this->app->zlstring->truncate($result['result'][$i]['content'], $max_length, $tr_suffix); $limited_once == true; } break; default: if (strlen($result['result'][$i]) > $max_length) { $result['result'][$i] = $this->app->zlstring->truncate($result['result'][$i], $max_length, $tr_suffix); $limited_once == true; } break; } } $result['report']['limited'] = $limited_once ? $result['report']['limited'] : true; } } } $this->_rendered_values[$hash] = $result; } return $this->_rendered_values[$hash]; }
public function getRenderedValues($params = array(), $mode = false, $opts = array()) { // get results $result = parent::getRenderedValues($params, $mode, $opts); if (empty($result)) { return null; } // if no results abort return $result; }