PATH:
home
/
letacommog
/
lesfinessaveurs
/
wp-content
/
plugins
/
fusion-builder
/
shortcodes
<?php if ( fusion_is_element_enabled( 'fusion_postslider' ) ) { if ( ! class_exists( 'FusionSC_Flexslider' ) ) { /** * Shortcode class. * * @package fusion-builder * @since 1.0 */ class FusionSC_Flexslider extends Fusion_Element { /** * The flex counter. * * @access private * @since 1.0 * @var int */ private $flex_counter = 1; /** * An array of the shortcode arguments. * * @access protected * @since 1.0 * @var array */ protected $args; /** * Constructor. * * @access public * @since 1.0 */ public function __construct() { parent::__construct(); add_filter( 'fusion_attr_flexslider-shortcode', array( $this, 'attr' ) ); add_filter( 'fusion_attr_flexslider-shortcode-slides-container', array( $this, 'slides_container_attr' ) ); add_filter( 'fusion_attr_flexslider-shortcode-caption', array( $this, 'caption_attr' ) ); add_filter( 'fusion_attr_flexslider-shortcode-title-container', array( $this, 'title_container_attr' ) ); add_filter( 'fusion_attr_flexslider-shortcode-thumbnails', array( $this, 'thumbnails_attr' ) ); add_shortcode( 'fusion_flexslider', array( $this, 'render' ) ); add_shortcode( 'fusion_postslider', array( $this, 'render' ) ); } /** * Render the shortcode * * @access public * @since 1.0 * @param array $args Shortcode parameters. * @param string $content Content between shortcode. * @return string HTML output. */ public function render( $args, $content = '' ) { $defaults = FusionBuilder::set_shortcode_defaults( array( 'hide_on_mobile' => fusion_builder_default_visibility( 'string' ), 'class' => '', 'id' => '', 'category' => '', 'excerpt' => '35', // 'group' => '', // Not yet used. 'layout' => 'attachments', 'lightbox' => 'yes', 'limit' => '3', 'post_id' => '', ), $args, 'fusion_postslider' ); extract( $defaults ); $this->args = $defaults; $thumbnails = ''; $slider = ''; if ( 'attachments' == $layout ) { $slider = $this->attachments(); $thumbnails = $this->get_attachments_thumbnails(); } elseif ( 'posts' == $layout ) { $slider = $this->posts(); } elseif ( 'posts-with-excerpt' == $layout ) { $slider = $this->posts_excerpt(); } $slides_html = '<ul ' . FusionBuilder::attributes( 'flexslider-shortcode-slides-container' ) . '>' . $slider . '</ul>'; $html = '<div ' . FusionBuilder::attributes( 'flexslider-shortcode' ) . '>' . $slides_html . '</div>'; if ( 'attachments' == $layout ) { $thumbnails_html = ''; $html .= '<div ' . FusionBuilder::attributes( 'flexslider-shortcode-thumbnails' ) . '>' . $thumbnails_html . '</div>'; } $this->flex_counter++; return $html; } /** * The attachements HTML. * * @access public * @since 1.0 * @return string The HTML. */ public function attachments() { $html = ''; if ( ! $this->args['post_id'] ) { $this->args['post_id'] = get_the_ID(); } $query = fusion_cached_get_posts( array( 'post_type' => 'attachment', 'posts_per_page' => $this->args['limit'], 'post_status' => 'any', 'post_parent' => $this->args['post_id'], 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image', 'exclude' => get_post_thumbnail_id(), ) ); if ( $query ) : foreach ( $query as $attachment ) : $image = wp_get_attachment_url( $attachment->ID ); $title = get_post_field( 'post_title', $attachment->ID ); $alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ); $thumb = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ); $caption = get_post_field( 'post_excerpt', $attachment->ID ); $image_output = '<img src="' . $image . '" alt="' . $alt . '" />'; $output = $image_output; if ( 'yes' == $this->args['lightbox'] ) { $output = '<a href="' . $image . '" data-title="' . $title . '" data-caption="' . $caption . '" title="' . $title . '" data-rel="prettyPhoto[flex_' . $this->flex_counter . ']">' . $image_output . '</a>'; } $html .= '<li data-thumb="' . $thumb[0] . '">' . $output . '</li>'; endforeach; endif; wp_reset_query(); return $html; } /** * Gets the attachment thumbnails HTML. * * @access public * @since 1.0 * @return string HTML. */ public function get_attachments_thumbnails() { $html = ''; if ( ! $this->args['post_id'] ) { $this->args['post_id'] = get_the_ID(); } $query = fusion_cached_get_posts( array( 'post_type' => 'attachment', 'posts_per_page' => $this->args['limit'], 'post_status' => 'any', 'post_parent' => $this->args['post_id'], 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image', 'exclude' => get_post_thumbnail_id(), ) ); if ( $query ) : foreach ( $query as $attachment ) : $image = wp_get_attachment_url( $attachment->ID ); $title = get_post_field( 'post_excerpt', $attachment->ID ); $alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ); $thumb = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ); $image_output = '<img src="' . $thumb[0] . '" alt="' . $alt . '" />'; $output = $image_output; $html .= '<li>' . $output . '</li>'; endforeach; endif; wp_reset_query(); return $html; } /** * Get the posts HTML. * * @access public * @since 1.0 * @return string HTML. */ public function posts() { $html = ''; $args = array( 'posts_per_page' => $this->args['limit'], 'meta_query' => array( array( 'key' => '_thumbnail_id', ), ), ); if ( $this->args['post_id'] ) { $post_ids = explode( ',', $this->args['post_id'] ); $args['post__in'] = $post_ids; } if ( $this->args['category'] ) { $args['category_name'] = $this->args['category']; } $query = fusion_cached_query( $args ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); $image = wp_get_attachment_url( get_post_thumbnail_id() ); $title = get_post_field( 'post_excerpt', get_post_thumbnail_id() ); $alt = get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true ); $image_output = '<img src="' . $image . '" alt="' . $alt . '" />'; $link_output = '<a href="' . get_permalink() . '" aria-label="' . the_title_attribute( array( 'echo' => false ) ) . '">' . $image_output . '</a>'; $title = '<h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>'; $container = '<div ' . FusionBuilder::attributes( 'flexslider-shortcode-title-container' ) . '>' . $title . '</div>'; $html .= '<li>' . $link_output . $container . '</li>'; endwhile; endif; wp_reset_query(); return $html; } /** * Get the post excerpts HTML. * * @access public * @since 1.0 * @return string HTML. */ public function posts_excerpt() { $html = ''; $args = array( 'posts_per_page' => $this->args['limit'], 'meta_query' => array( array( 'key' => '_thumbnail_id', ), ), ); if ( $this->args['post_id'] ) { $post_ids = explode( ',', $this->args['post_id'] ); $args['post__in'] = $post_ids; } if ( $this->args['category'] ) { $args['category_name'] = $this->args['category']; } $query = fusion_cached_query( $args ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); $image = wp_get_attachment_url( get_post_thumbnail_id() ); $title = get_post_field( 'post_excerpt', get_post_thumbnail_id() ); $alt = get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true ); $image_output = '<img src="' . $image . '" alt="' . $alt . '" />'; $link_output = '<a href="' . get_permalink() . '" aria-label="' . the_title_attribute( array( 'echo' => false ) ) . '">' . $image_output . '</a>'; $title = '<h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>'; $excerpt = fusion_builder_get_post_content( '', 'yes', $this->args['excerpt'], true ); $container = '<div ' . FusionBuilder::attributes( 'flexslider-shortcode-title-container' ) . '><div ' . FusionBuilder::attributes( 'excerpt-container' ) . '>' . $title . $excerpt . '</div></div>'; $html .= '<li>' . $link_output . $container . '</li>'; endwhile; endif; wp_reset_query(); return $html; } /** * Builds the attributes array. * * @access public * @since 1.0 * @return array */ public function attr() { $attr['class'] = 'fusion-post-slider fusion-flexslider fusion-flexslider-loading flexslider-' . $this->args['layout']; $attr = fusion_builder_visibility_atts( $this->args['hide_on_mobile'], $attr ); if ( 'yes' == $this->args['lightbox'] && 'attachments' == $this->args['layout'] ) { $attr['class'] .= ' flexslider-lightbox'; } if ( $this->args['class'] ) { $attr['class'] .= ' ' . $this->args['class']; } if ( $this->args['id'] ) { $attr['id'] = $this->args['id']; } return $attr; } /** * Builds the slider-container attributes array. * * @access public * @since 1.0 * @return array */ public function slides_container_attr() { return array( 'class' => 'slides', ); } /** * Builds the caption attributes array. * * @access public * @since 1.0 * @return array */ public function caption_attr() { return array( 'class' => 'flex-caption', ); } /** * Builds the title-container attributes array. * * @access public * @since 1.0 * @return array */ public function title_container_attr() { return array( 'class' => 'slide-excerpt', ); } /** * Builds the thumbnails attributes array. * * @access public * @since 1.0 * @return array */ public function thumbnails_attr() { $attr = array( 'class' => 'flexslider', ); if ( 'attachments' == $this->args['layout'] ) { $attr['class'] .= ' fat'; } return $attr; } /** * Builds the dynamic styling. * * @access public * @since 1.1 * @return array */ public function add_styling() { global $wp_version, $content_media_query, $six_fourty_media_query, $three_twenty_six_fourty_media_query, $ipad_portrait_media_query, $fusion_library, $fusion_settings, $dynamic_css_helpers; $elements = array( '.fusion-flexslider .flex-direction-nav .flex-prev', '.fusion-flexslider .flex-direction-nav .flex-next', ); $css['global'][ $dynamic_css_helpers->implode( $elements ) ]['background-color'] = $fusion_library->sanitize->color( $fusion_settings->get( 'carousel_nav_color' ) ); $elements = $dynamic_css_helpers->map_selector( $elements, ':hover' ); $css['global'][ $dynamic_css_helpers->implode( $elements ) ]['background-color'] = $fusion_library->sanitize->color( $fusion_settings->get( 'carousel_hover_color' ) ); $elements = array( '.fusion-flexslider .flex-direction-nav a', '.fusion-flexslider.flexslider-posts .flex-direction-nav a', '.fusion-flexslider.flexslider-posts-with-excerpt .flex-direction-nav a', '.fusion-flexslider.flexslider-attachments .flex-direction-nav a', '.fusion-slider-sc .flex-direction-nav a', ); $css['global'][ $dynamic_css_helpers->implode( $elements ) ]['width'] = $fusion_library->sanitize->size( $fusion_settings->get( 'slider_nav_box_dimensions', 'width' ) ); preg_match_all( '!\d+!', $fusion_settings->get( 'slider_nav_box_dimensions', 'height' ), $matches ); $half_slider_nav_box_height = '' !== $fusion_settings->get( 'slider_nav_box_dimensions', 'height' ) ? $matches[0][0] / 2 . $fusion_library->sanitize->get_unit( $fusion_settings->get( 'slider_nav_box_dimensions', 'height' ) ) : ''; $css['global'][ $dynamic_css_helpers->implode( $elements ) ]['height'] = $fusion_library->sanitize->size( $fusion_settings->get( 'slider_nav_box_dimensions', 'height' ) ); $css['global'][ $dynamic_css_helpers->implode( $elements ) ]['line-height'] = $fusion_library->sanitize->size( $fusion_settings->get( 'slider_nav_box_dimensions', 'height' ) ); return $css; } /** * Sets the necessary scripts. * * @access public * @since 1.1 * @return void */ public function add_scripts() { Fusion_Dynamic_JS::enqueue_script( 'fusion-flexslider' ); } } } new FusionSC_Flexslider(); } /** * Map shortcode to Fusion Builder * * @since 1.0 */ function fusion_element_post_slider() { fusion_builder_map( array( 'name' => esc_attr__( 'Post Slider', 'fusion-builder' ), 'shortcode' => 'fusion_postslider', 'icon' => 'fusiona-layers-alt', 'preview' => FUSION_BUILDER_PLUGIN_DIR . 'inc/templates/previews/fusion-post-slider-preview.php', 'preview_id' => 'fusion-builder-block-module-post-slider-preview-template', 'params' => array( array( 'type' => 'select', 'heading' => esc_attr__( 'Layout', 'fusion-builder' ), 'description' => esc_attr__( 'Choose a layout style for Post Slider.', 'fusion-builder' ), 'param_name' => 'layout', 'value' => array( 'posts' => esc_attr__( 'Posts with Title', 'fusion-builder' ), 'posts-with-excerpt' => esc_attr__( 'Posts with Title and Excerpt', 'fusion-builder' ), 'attachments' => esc_attr__( 'Attachment Layout, Only Images Attached to Post/Page', 'fusion-builder' ), ), 'default' => 'attachments', ), array( 'type' => 'uploadattachment', 'heading' => esc_attr__( 'Attach Images to Post/Page Gallery', 'fusion-builder' ), 'description' => esc_attr__( 'To add images to this post or page for attachments layout, navigate to "Upload Files" tab in media manager and upload new images.', 'fusion-builder' ), 'param_name' => 'upload_attachments', 'value' => '', 'remove_from_atts' => true, 'dependency' => array( array( 'element' => 'layout', 'value' => 'attachments', 'operator' => '==', ), ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Excerpt Number of Words', 'fusion-builder' ), 'description' => esc_attr__( 'Insert the number of words you want to show in the excerpt.', 'fusion-builder' ), 'param_name' => 'excerpt', 'value' => '35', 'dependency' => array( array( 'element' => 'layout', 'value' => 'posts-with-excerpt', 'operator' => '==', ), ), ), array( 'type' => 'select', 'heading' => esc_attr__( 'Category', 'fusion-builder' ), 'description' => esc_attr__( 'Select a category of posts to display.', 'fusion-builder' ), 'param_name' => 'category', 'value' => fusion_builder_shortcodes_categories( 'category', true, esc_attr__( 'All', 'fusion-builder' ) ), 'default' => '', 'dependency' => array( array( 'element' => 'layout', 'value' => 'attachments', 'operator' => '!=', ), ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'Number of Slides', 'fusion-builder' ), 'description' => esc_attr__( 'Select the number of slides to display.', 'fusion-builder' ), 'param_name' => 'limit', 'value' => '3', ), array( 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Image Lightbox', 'fusion-builder' ), 'description' => esc_attr__( 'Only works on attachment layout. Lightbox must be enabled in Theme Options or the image will open up by in the same tab by itself.', 'fusion-builder' ), 'param_name' => 'lightbox', 'value' => array( 'yes' => esc_attr__( 'Yes', 'fusion-builder' ), 'no' => esc_attr__( 'No', 'fusion-builder' ), ), 'default' => 'yes', 'dependency' => array( array( 'element' => 'layout', 'value' => 'attachments', 'operator' => '==', ), ), ), array( 'type' => 'checkbox_button_set', 'heading' => esc_attr__( 'Element Visibility', 'fusion-builder' ), 'param_name' => 'hide_on_mobile', 'value' => fusion_builder_visibility_options( 'full' ), 'default' => fusion_builder_default_visibility( 'array' ), 'description' => esc_attr__( 'Choose to show or hide the element on small, medium or large screens. You can choose more than one at a time.', 'fusion-builder' ), ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS Class', 'fusion-builder' ), 'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'class', 'value' => '', ), array( 'type' => 'textfield', 'heading' => esc_attr__( 'CSS ID', 'fusion-builder' ), 'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-builder' ), 'param_name' => 'id', 'value' => '', ), ), ) ); } add_action( 'fusion_builder_before_init', 'fusion_element_post_slider' );
[+]
..
[-] fusion-woo-shortcodes.php
[edit]
[-] fusion-fontawesome.php
[edit]
[-] fusion-youtube.php
[edit]
[-] fusion-countdown.php
[edit]
[-] fusion-tabs.php
[edit]
[-] fusion-counters-circle.php
[edit]
[-] fusion-table.php
[edit]
[-] fusion-modal.php
[edit]
[-] fusion-tooltip.php
[edit]
[-] fusion-text.php
[edit]
[-] fusion-flip-boxes.php
[edit]
[+]
js
[-] fusion-gallery.php
[edit]
[-] fusion-code-block.php
[edit]
[-] fusion-progress.php
[edit]
[-] fusion-row-inner.php
[edit]
[-] fusion-user-login.php
[edit]
[-] fusion-separator.php
[edit]
[-] fusion-syntax-highlighter.php
[edit]
[-] fusion-image-carousel.php
[edit]
[-] fusion-one-page-link.php
[edit]
[-] fusion-slider.php
[edit]
[-] fusion-pricing-table.php
[edit]
[-] fusion-menu-anchor.php
[edit]
[-] fusion-tagline.php
[edit]
[-] fusion-google-map.php
[edit]
[-] fusion-testimonials.php
[edit]
[-] fusion-dropcap.php
[edit]
[-] fusion-image.php
[edit]
[-] fusion-highlight.php
[edit]
[-] fusion-woo-product-slider.php
[edit]
[-] fusion-person.php
[edit]
[-] fusion-convertplus.php
[edit]
[-] fusion-woo-featured-products-slider.php
[edit]
[-] fusion-popover.php
[edit]
[-] fusion-lightbox.php
[edit]
[-] fusion-checklist.php
[edit]
[-] fusion-toggle.php
[edit]
[-] fusion-sharingbox.php
[edit]
[-] fusion-nextpage.php
[edit]
[-] fusion-column-inner.php
[edit]
[-] fusion-soundcloud.php
[edit]
[-] fusion-post-slider.php
[edit]
[-] fusion-social-links.php
[edit]
[-] fusion-widget-area.php
[edit]
[-] fusion-column.php
[edit]
[-] fusion-vimeo.php
[edit]
[-] fusion-events.php
[edit]
[-] fusion-content-boxes.php
[edit]
[-] fusion-counters-box.php
[edit]
[-] fusion-global.php
[edit]
[-] fusion-revolution-slider.php
[edit]
[-] fusion-container.php
[edit]
[-] fusion-recent-posts.php
[edit]
[-] fusion-row.php
[edit]
[-] fusion-blog.php
[edit]
[-] fusion-title.php
[edit]
[-] fusion-image-before-after.php
[edit]
[-] fusion-alert.php
[edit]
[-] fusion-button.php
[edit]
[-] fusion-section-separator.php
[edit]
[-] fusion-layer-slider.php
[edit]
[-] fusion-blank-page.php
[edit]
[-] fusion-chart.php
[edit]