/** * Parses shortcode attributes and set defaults based on vc_map function relative to shortcode and fields names * * @param $atts * * @since 4.3 * @return array */ public function getAttributes($atts) { /** * Shortcode attributes * @var $text * @var $google_fonts * @var $font_container * @var $el_class * @var $link * @var $css */ $atts = vc_map_get_attributes($this->getShortcode(), $atts); extract($atts); /** * Get default values from VC_MAP. **/ $google_fonts_field = $this->getParamData('google_fonts'); $font_container_field = $this->getParamData('font_container'); $el_class = $this->getExtraClass($el_class); $font_container_obj = new Vc_Font_Container(); $google_fonts_obj = new Vc_Google_Fonts(); $font_container_field_settings = isset($font_container_field['settings'], $font_container_field['settings']['fields']) ? $font_container_field['settings']['fields'] : array(); $google_fonts_field_settings = isset($google_fonts_field['settings'], $google_fonts_field['settings']['fields']) ? $google_fonts_field['settings']['fields'] : array(); $font_container_data = $font_container_obj->_vc_font_container_parse_attributes($font_container_field_settings, $font_container); $google_fonts_data = strlen($google_fonts) > 0 ? $google_fonts_obj->_vc_google_fonts_parse_attributes($google_fonts_field_settings, $google_fonts) : ''; return array('text' => isset($text) ? $text : '', 'google_fonts' => $google_fonts, 'font_container' => $font_container, 'el_class' => $el_class, 'css' => $css, 'link' => 0 === strpos($link, '|') ? false : $link, 'font_container_data' => $font_container_data, 'google_fonts_data' => $google_fonts_data); }
public function build_shortcode($atts, $content = null) { extract(shortcode_atts(array('font_container' => '', 'dropcap_letter_class' => ''), $atts)); $dropcap_letter_class = apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, vc_shortcode_custom_css_class($dropcap_letter_class, ''), self::slug, $atts); $content = wpb_js_remove_wpautop($content, true); $font_container_obj = new Vc_Font_Container(); $font_container_data = $font_container_obj->_vc_font_container_parse_attributes(array('font_size', 'line_height', 'color', 'font_style_italic', 'font_style_bold'), $font_container); $styles = array('float' => 'float: left'); if (!empty($font_container_data) && isset($font_container_data['values'])) { foreach ($font_container_data['values'] as $key => $value) { if ($key != 'tag' && strlen($value) > 0) { if (preg_match('/description/', $key)) { continue; } if ($key == 'font_size' || $key == 'line_height') { $value = preg_replace('/\\s+/', '', $value); } if ($key == 'font_size') { $pattern = '/^(\\d*(?:\\.\\d+)?)\\s*(px|\\%|in|cm|mm|em|rem|ex|pt|pc|vw|vh|vmin|vmax)?$/'; // allowed metrics: http://www.w3schools.com/cssref/css_units.asp $regexr = preg_match($pattern, $value, $matches); $value = isset($matches[1]) ? (double) $matches[1] : (double) $value; $unit = isset($matches[2]) ? $matches[2] : 'px'; $value = $value . $unit; } if (strlen($value) > 0) { if (array_key_exists($key, $font_container_data['fields'])) { switch ($key) { case 'font_style_italic': if ($value == 1) { $styles[$key] = 'font-style: italic'; } break; case 'font_style_bold': if ($value == 1) { $styles[$key] = 'font-weight: bold'; } break; default: $styles[$key] = str_replace('_', '-', $key) . ': ' . $value; break; } } } } } } $is_content = preg_replace('/^([\\<\\sa-z\\d\\/\\>]*)(([a-z\\&\\;]+)|([\\"\'\\w]))/', '$1<span class="drop-cap ' . $dropcap_letter_class . '" style="' . implode(";", $styles) . '">$2</span>', $content); return print_r($is_content, true); }
public function getAttributes($atts) { $text = $google_fonts = $font_container = $el_class = $css = ''; /** * Get default values from VC_MAP. **/ $google_fonts_field = WPBMap::getParam('vc_custom_heading', 'google_fonts'); $font_container_field = WPBMap::getParam('vc_custom_heading', 'font_container'); $el_class_field = WPBMap::getParam('vc_custom_heading', 'el_class'); $css_field = WPBMap::getParam('vc_custom_heading', 'css'); $text_field = WPBMap::getParam('vc_custom_heading', 'text'); extract(shortcode_atts(array('text' => isset($text_field['value']) ? $text_field['value'] : '', 'google_fonts' => isset($google_fonts_field['value']) ? $google_fonts_field['value'] : '', 'font_container' => isset($font_container_field['value']) ? $font_container_field['value'] : '', 'el_class' => isset($el_class_field['value']) ? $el_class_field['value'] : '', 'css' => isset($css_field['value']) ? $css_field['value'] : ''), $atts)); $el_class = $this->getExtraClass($el_class); $font_container_obj = new Vc_Font_Container(); $google_fonts_obj = new Vc_Google_Fonts(); $font_container_field_settings = isset($font_container_field['settings'], $font_container_field['settings']['fields']) ? $font_container_field['settings']['fields'] : array(); $google_fonts_field_settings = isset($google_fonts_field['settings'], $google_fonts_field['settings']['fields']) ? $google_fonts_field['settings']['fields'] : array(); $font_container_data = $font_container_obj->_vc_font_container_parse_attributes($font_container_field_settings, $font_container); $google_fonts_data = $google_fonts_obj->_vc_google_fonts_parse_attributes($google_fonts_field_settings, $google_fonts); return array('text' => $text, 'google_fonts' => $google_fonts, 'font_container' => $font_container, 'el_class' => $el_class, 'css' => $css, 'font_container_data' => $font_container_data, 'google_fonts_data' => $google_fonts_data); }
/** * @param $settings * @param $value * * @return mixed|void */ function vc_font_container_form_field($settings, $value) { $font_container = new Vc_Font_Container(); return apply_filters('vc_font_container_render_filter', $font_container->render($settings, $value)); }