function _semantic_panels_get_html in Semantic Panels 7.2
Same name and namespace in other branches
- 7 semantic_panels.module \_semantic_panels_get_html()
Render an element as HTML.
1 call to _semantic_panels_get_html()
- template_preprocess_semantic_panels_pane in plugins/
styles/ semantic_panels.inc - Preprocess variables for semantic-panels-pane.tpl.php
File
- ./
semantic_panels.module, line 98 - Semantic Panels.
Code
function _semantic_panels_get_html($element_key, $element_data, $pane_semantic_settings) {
$element_settings = $pane_semantic_settings[$element_key];
$element_output = render($element_data['content']);
$element_settings['type'] = _semantic_panels_get_type($element_settings['type'], $element_data['default_type']);
if (isset($element_settings['link_enabled']) && $element_settings['link_enabled'] && $element_settings['link']['path']) {
$token_replace_data = _semantic_panels_context_to_token_replace_data($element_data['context']);
$token_content = token_replace($element_settings['link']['path'], $token_replace_data);
// If token outputs a link (like the Link field) lets parse out the url.
if (preg_match('/<a.*\\s+href="(?<url>[^"]*)"[>]*>/i', $token_content, $matches)) {
$path = $matches['url'];
}
else {
$path = $token_content;
}
// Remove tokens that have note been replaced with data.
$path = preg_replace('/\\[[^[]+\\]/', '', $path);
$options = array(
'html' => TRUE,
'attributes' => array(
'class' => explode(' ', $element_settings['class']),
) + $element_settings['attributes_array'],
);
if ($path != '') {
$element_output = l($element_output, $path, $options);
}
}
if ($element_settings['type']) {
$class = '';
if ($pane_semantic_settings['add_default_classes']) {
$class = $element_data['default_classes'];
}
if ($element_settings['class_enable'] && $element_settings['class']) {
if ($class) {
$class .= ' ';
}
$class .= $element_settings['class'];
}
$pre = '<' . $element_settings['type'];
if ($class) {
$pre .= ' class="' . $class . '"';
}
if (!empty($element_settings['attributes_array'])) {
$pre .= ' ' . drupal_attributes($element_settings['attributes_array']);
}
$pre .= '>';
$suf = '</' . $element_settings['type'] . '>';
return $pre . $element_output . $suf;
}
return $element_output;
}