function FieldPluginBase::render_text in Views (for Drupal 7) 8.3
Perform an advanced text render for the item.
This is separated out as some fields may render lists, and this allows each item to be handled individually.
1 call to FieldPluginBase::render_text()
- FieldPluginBase::advanced_render in lib/
Drupal/ views/ Plugin/ views/ field/ FieldPluginBase.php - Render a field using advanced settings.
File
- lib/
Drupal/ views/ Plugin/ views/ field/ FieldPluginBase.php, line 1202 - Definition of Drupal\views\Plugin\views\field\FieldPluginBase.
Class
- FieldPluginBase
- Base field handler that has no options and renders an unformatted field.
Namespace
Drupal\views\Plugin\views\fieldCode
function render_text($alter) {
$value = $this->last_render;
if (!empty($alter['alter_text']) && $alter['text'] !== '') {
$tokens = $this
->get_render_tokens($alter);
$value = $this
->render_altered($alter, $tokens);
}
if (!empty($this->options['alter']['trim_whitespace'])) {
$value = trim($value);
}
// Check if there should be no further rewrite for empty values.
$no_rewrite_for_empty = $this->options['hide_alter_empty'] && $this
->is_value_empty($this->original_value, $this->options['empty_zero']);
// Check whether the value is empty and return nothing, so the field isn't rendered.
// First check whether the field should be hidden if the value(hide_alter_empty = TRUE) /the rewrite is empty (hide_alter_empty = FALSE).
// For numeric values you can specify whether "0"/0 should be empty.
if (($this->options['hide_empty'] && empty($value) || $alter['phase'] != VIEWS_HANDLER_RENDER_TEXT_PHASE_EMPTY && $no_rewrite_for_empty) && $this
->is_value_empty($value, $this->options['empty_zero'], FALSE)) {
return '';
}
// Only in empty phase.
if ($alter['phase'] == VIEWS_HANDLER_RENDER_TEXT_PHASE_EMPTY && $no_rewrite_for_empty) {
// If we got here then $alter contains the value of "No results text"
// and so there is nothing left to do.
return $value;
}
if (!empty($alter['strip_tags'])) {
$value = strip_tags($value, $alter['preserve_tags']);
}
$suffix = '';
if (!empty($alter['trim']) && !empty($alter['max_length'])) {
$length = strlen($value);
$value = $this
->render_trim_text($alter, $value);
if ($this->options['alter']['more_link'] && strlen($value) < $length) {
$tokens = $this
->get_render_tokens($alter);
$more_link_text = $this->options['alter']['more_link_text'] ? $this->options['alter']['more_link_text'] : t('more');
$more_link_text = strtr(filter_xss_admin($more_link_text), $tokens);
$more_link_path = $this->options['alter']['more_link_path'];
$more_link_path = strip_tags(decode_entities(strtr($more_link_path, $tokens)));
// Take sure that paths which was runned through url() does work as well.
$base_path = base_path();
// Checks whether the path starts with the base_path.
if (strpos($more_link_path, $base_path) === 0) {
$more_link_path = drupal_substr($more_link_path, drupal_strlen($base_path));
}
$more_link = l($more_link_text, $more_link_path, array(
'attributes' => array(
'class' => array(
'views-more-link',
),
),
));
$suffix .= " " . $more_link;
}
}
if (!empty($alter['nl2br'])) {
$value = nl2br($value);
}
$this->last_render_text = $value;
if (!empty($alter['make_link']) && !empty($alter['path'])) {
if (!isset($tokens)) {
$tokens = $this
->get_render_tokens($alter);
}
$value = $this
->render_as_link($alter, $value, $tokens);
}
return $value . $suffix;
}