Willkommen bei WordPress. Dies ist dein erster Beitrag. Bearbeite oder lösche ihn und beginne mit dem Schreiben!
Hallo Welt!
von raredesign | Dez 3, 2019 | Allgemein | 0 Kommentare
Cokiee Shell
Current Path : /var/www/web28/html/wp-content/plugins/fusion-builder/shortcodes/ |
Current File : //var/www/web28/html/wp-content/plugins/fusion-builder/shortcodes/fusion-flickr.php |
<?php /** * Add an element to fusion-builder. * * @package fusion-builder * @since 1.0 */ if ( fusion_is_element_enabled( 'fusion_flickr' ) ) { if ( ! class_exists( 'FusionSC_Flickr' ) ) { /** * Shortcode class. * * @package fusion-builder * @since 1.0 */ class FusionSC_Flickr extends Fusion_Element { /** * The image-frame counter. * * @access private * @since 1.0 * @var int */ private $flickr_counter = 1; /** * An array of wrapper attributes. * * @access protected * @since 3.0 * @var array */ protected $wrapper_attr = [ 'class' => '', 'style' => '', ]; /** * Constructor. * * @access public * @since 1.0 */ public function __construct() { parent::__construct(); add_filter( 'fusion_attr_flickr-shortcode', [ $this, 'attr' ] ); add_shortcode( 'fusion_flickr', [ $this, 'render' ] ); } /** * Gets the default values. * * @static * @access public * @since 2.0.0 * @return array */ public static function get_element_defaults() { $fusion_settings = awb_get_fusion_settings(); return [ 'api_key' => 'c9d2c2fda03a2ff487cb4769dc0781ea', 'flickr_id' => '32452368@N05', 'type' => 'photostream', 'album_id' => '', 'count' => 10, 'columns' => '', 'columns_medium' => '', 'columns_small' => '', 'columns_spacing' => '', 'columns_spacing_medium' => '', 'columns_spacing_small' => '', // aspect ratio. 'aspect_ratio' => '', 'custom_aspect_ratio' => '', 'aspect_ratio_position' => '', 'hover_type' => '', 'link_type' => '', 'link_target' => '', // margin. 'margin_top' => '', 'margin_right' => '', 'margin_bottom' => '', 'margin_left' => '', 'margin_top_medium' => '', 'margin_right_medium' => '', 'margin_bottom_medium' => '', 'margin_left_medium' => '', 'margin_top_small' => '', 'margin_right_small' => '', 'margin_bottom_small' => '', 'margin_left_small' => '', // css. 'class' => '', 'id' => '', // animation. 'animation_direction' => 'left', 'animation_offset' => $fusion_settings->get( 'animation_offset' ), 'animation_speed' => '', 'animation_delay' => '', 'animation_type' => '', 'animation_color' => '', // visibility. 'hide_on_mobile' => fusion_builder_default_visibility( 'string' ), ]; } /** * Sets the args from the attributes. * * @access public * @since 3.0 * @param array $args Element attributes. * @return void */ public function set_args( $args ) { $this->defaults = self::get_element_defaults(); $this->args = FusionBuilder::set_shortcode_defaults( $this->defaults, $args, 'fusion_flickr' ); } /** * Render the shortcode * * @access public * @since 1.0 * @param array $args Shortcode paramters. * @param string $content Content between shortcode. * @return string HTML output. */ public function render( $args, $content = '' ) { $this->set_element_id( $this->flickr_counter ); $this->set_args( $args ); $html = '<div ' . FusionBuilder::attributes( 'flickr-shortcode' ) . '> <div class="fusion-loading-container fusion-clearfix"> <div class="fusion-loading-spinner"> <div class="fusion-spinner-1"></div> <div class="fusion-spinner-2"></div> <div class="fusion-spinner-3"></div> </div> </div> </div>'; $this->flickr_counter++; $this->on_render(); return apply_filters( 'fusion_element_flickr_content', $html, $args ); } /** * Builds the attributes array. * * @access public * @since 1.0 * @return array */ public function attr() { $fusion_settings = awb_get_fusion_settings(); $attr = [ 'class' => '', 'style' => '', ]; $attr['id'] = $this->args['id']; $attr['class'] .= 'fusion-flickr-element loading flickr-' . $this->flickr_counter . ' ' . $this->args['class']; $attr = fusion_builder_visibility_atts( $this->args['hide_on_mobile'], $attr ); if ( '' !== $this->args['hover_type'] ) { $attr['class'] .= ' hover-' . $this->args['hover_type']; } if ( '' !== $this->args['api_key'] ) { $attr['data-api_key'] = $this->args['api_key']; } if ( '' !== $this->args['flickr_id'] ) { $attr['data-id'] = $this->args['flickr_id']; } if ( '' !== $this->args['type'] ) { $attr['data-type'] = $this->args['type']; } if ( '' !== $this->args['album_id'] ) { $attr['data-album_id'] = $this->args['album_id']; } if ( '' !== $this->args['count'] ) { $attr['data-count'] = $this->args['count']; } if ( 'lightbox' !== $this->args['link_type'] ) { $attr['data-lightbox'] = 'true'; } if ( '' !== $this->args['link_type'] ) { $attr['data-link_type'] = $this->args['link_type']; } if ( 'page' === $this->args['link_type'] && '_blank' === $this->args['link_target'] ) { $attr['data-link_target'] = $this->args['link_target']; } if ( '' !== $fusion_settings->get( 'lazy_load' ) ) { $attr['data-lazy'] = $fusion_settings->get( 'lazy_load' ); } if ( $this->args['animation_type'] ) { $attr = Fusion_Builder_Animation_Helper::add_animation_attributes( $this->args, $attr ); } $attr['style'] .= $this->generate_aspect_ratio_styles(); $attr['style'] .= $this->build_columns_styles(); $attr['style'] .= $this->get_style_variables(); return $attr; } /** * Generate aspect ratio styles. * * @access public * @since 3.8 * @return string CSS output. */ public function generate_aspect_ratio_styles() { if ( '' === $this->args['aspect_ratio'] ) { return ''; } $style = ''; // Calc Ratio. if ( 'custom' === $this->args['aspect_ratio'] && '' !== $this->args['custom_aspect_ratio'] ) { $style .= '--awb-aspect-ratio: 100 / ' . $this->args['custom_aspect_ratio'] . ';'; } else { $aspect_ratio = explode( '-', $this->args['aspect_ratio'] ); $width = isset( $aspect_ratio[0] ) ? $aspect_ratio[0] : ''; $height = isset( $aspect_ratio[1] ) ? $aspect_ratio[1] : ''; $style .= '--awb-aspect-ratio:' . $width . ' / ' . $height . ';'; } // Set Image Position. if ( '' !== $this->args['aspect_ratio_position'] ) { $style .= '--awb-object-position:' . $this->args['aspect_ratio_position'] . ';'; } return $style; } /** * Build Responsive columns. * * @access public * @since 1.0 * @return string */ public function build_columns_styles_old() { $fusion_settings = awb_get_fusion_settings(); $styles = ''; foreach ( [ 'large', 'medium', 'small' ] as $size ) { $selector = '.fusion-flickr-element.flickr-' . $this->flickr_counter; $columns = 'large' === $size ? $this->args['columns'] : $this->args[ 'columns_' . $size ]; $columns_spacing = 'large' === $size ? $this->args['columns_spacing'] : $this->args[ 'columns_spacing_' . $size ]; $columns_style = ''; if ( '' !== $columns ) { $columns_style .= 'grid-template-columns: repeat(' . $columns . ', 1fr);'; } if ( '' !== $columns_spacing ) { $columns_style .= 'grid-gap:' . fusion_library()->sanitize->get_value_with_unit( $columns_spacing ) . ';'; } if ( '' !== $columns_style ) { $columns_style = $selector . '{' . $columns_style . '}'; } // Large styles, no wrapping needed. if ( 'large' === $size ) { $styles .= $columns_style; } else { // Medium and Small size screen styles. $styles .= '@media only screen and (max-width:' . $fusion_settings->get( 'visibility_' . $size ) . 'px) {' . $columns_style . '}'; } } return $styles; } /** * Build Responsive columns. * * @access public * @since 1.0 * @return string */ public function build_columns_styles() { $styles = ''; foreach ( [ 'large', 'medium', 'small' ] as $size ) { $device_abbr = ''; if ( 'small' === $size ) { $device_abbr = 'sm-'; } if ( 'medium' === $size ) { $device_abbr = 'md-'; } $columns = 'large' === $size ? $this->args['columns'] : $this->args[ 'columns_' . $size ]; $columns_spacing = 'large' === $size ? $this->args['columns_spacing'] : $this->args[ 'columns_spacing_' . $size ]; if ( '' !== $columns ) { $styles .= '--awb-' . $device_abbr . 'column-width:' . 100 / intval( $columns ) . '%;'; } if ( '' !== $columns_spacing ) { $styles .= '--awb-' . $device_abbr . 'column-space:' . $columns_spacing . ';'; } } return $styles; } /** * Load base CSS. * * @access public * @since 3.0 * @return void */ public function add_css_files() { FusionBuilder()->add_element_css( FUSION_BUILDER_PLUGIN_DIR . 'assets/css/shortcodes/flickr.min.css' ); if ( class_exists( 'Avada' ) ) { $version = Avada::get_theme_version(); Fusion_Media_Query_Scripts::$media_query_assets[] = [ 'avada-flickr-md', FUSION_BUILDER_PLUGIN_DIR . 'assets/css/media/flickr-md.min.css', [], $version, Fusion_Media_Query_Scripts::get_media_query_from_key( 'fusion-max-medium' ), ]; Fusion_Media_Query_Scripts::$media_query_assets[] = [ 'avada-flickr-sm', FUSION_BUILDER_PLUGIN_DIR . 'assets/css/media/flickr-sm.min.css', [], $version, Fusion_Media_Query_Scripts::get_media_query_from_key( 'fusion-max-small' ), ]; } } /** * Get the style variables. * * @access protected * @since 3.9 * @return string */ protected function get_style_variables() { $css_vars_options = [ 'margin_top' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_right' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_bottom' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_left' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_top_medium' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_right_medium' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_bottom_medium' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_left_medium' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_top_small' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_right_small' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_bottom_small' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], 'margin_left_small' => [ 'callback' => [ 'Fusion_Sanitize', 'get_value_with_unit' ], ], ]; $styles = $this->get_css_vars_for_options( $css_vars_options ); return $styles; } /** * Sets the necessary scripts. * * @access public * @since 3.2 * @return void */ public function on_first_render() { Fusion_Dynamic_JS::enqueue_script( 'fusion-flickr' ); } } } new FusionSC_Flickr(); } /** * Map shortcode to Avada Builder. * * @since 1.0 */ function fusion_flickr_element() { fusion_builder_map( fusion_builder_frontend_data( 'FusionSC_Flickr', [ 'name' => esc_attr__( 'Flickr', 'fusion-builder' ), 'shortcode' => 'fusion_flickr', 'icon' => 'fusiona-flickr-feed', 'params' => [ [ 'type' => 'textfield', 'param_name' => 'api_key', 'heading' => esc_attr__( 'API Key', 'fusion-builder' ), /* translators: Flickr API Link. */ 'description' => sprintf( __( 'Use default API key or get your own from <a href="%s" target="_blank">Flickr APP Garden</a>.', 'fusion-builder' ), 'http://www.flickr.com/services/apps/create/apply' ), 'value' => 'c9d2c2fda03a2ff487cb4769dc0781ea', ], [ 'type' => 'textfield', 'heading' => esc_attr__( 'Flickr ID', 'fusion-builder' ), /* translators: Flickr ID Service. */ 'description' => sprintf( __( 'Enter your Flickr ID to display your own feed. <a href="%s" target="_blank">Get your flickr ID</a>.', 'fusion-builder' ), 'https://www.webfx.com/tools/idgettr/' ), 'param_name' => 'flickr_id', ], [ 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Type', 'fusion-builder' ), 'description' => esc_attr__( 'Select your flickr feed type.', 'fusion-builder' ), 'param_name' => 'type', 'default' => 'photostream', 'value' => [ 'photostream' => esc_attr__( 'Photostream', 'fusion-builder' ), 'album' => esc_attr__( 'Album', 'fusion-builder' ), ], ], [ 'type' => 'textfield', 'heading' => esc_attr__( 'Album ID', 'fusion-builder' ), 'description' => esc_attr__( 'Enter your Flickr Album ID. The album ID is the last, numerical part of your album URL. ', 'fusion-builder' ), 'param_name' => 'album_id', 'dependency' => [ [ 'element' => 'type', 'value' => 'album', 'operator' => '==', ], ], ], [ 'type' => 'range', 'param_name' => 'count', 'heading' => esc_attr__( 'Number Of Images', 'fusion-builder' ), 'description' => esc_attr__( 'Choose the number of images you want to display.', 'fusion-builder' ), 'value' => 10, 'min' => 1, 'max' => 500, ], [ 'type' => 'select', 'heading' => esc_attr__( 'Images Aspect Ratio', 'fusion-builder' ), 'description' => esc_attr__( 'Select the aspect ratio of the images. Images will be cropped.', 'fusion-builder' ), 'param_name' => 'aspect_ratio', 'value' => [ '' => esc_attr__( 'Automatic', 'fusion-builder' ), '1-1' => esc_attr__( '1:1', 'fusion-builder' ), '2-1' => esc_attr__( '2:1', 'fusion-builder' ), '2-3' => esc_attr__( '2:3', 'fusion-builder' ), '3-1' => esc_attr__( '3:1', 'fusion-builder' ), '3-2' => esc_attr__( '3:2', 'fusion-builder' ), '4-1' => esc_attr__( '4:1', 'fusion-builder' ), '4-3' => esc_attr__( '4:3', 'fusion-builder' ), '5-4' => esc_attr__( '5:4', 'fusion-builder' ), '16-9' => esc_attr__( '16:9', 'fusion-builder' ), '9-16' => esc_attr__( '9:16', 'fusion-builder' ), '21-9' => esc_attr__( '21:9', 'fusion-builder' ), '9-21' => esc_attr__( '9:21', 'fusion-builder' ), 'custom' => esc_attr__( 'Custom', 'fusion-builder' ), ], ], [ 'type' => 'range', 'heading' => esc_attr__( 'Custom Aspect Ratio', 'fusion-builder' ), 'description' => esc_attr__( 'Set a custom aspect ratio for the images.', 'fusion-builder' ), 'param_name' => 'custom_aspect_ratio', 'min' => 0, 'max' => 500, 'value' => 100, 'dependency' => [ [ 'element' => 'aspect_ratio', 'value' => 'custom', 'operator' => '==', ], ], ], [ 'type' => 'radio_button_set', 'heading' => esc_attr__( 'Hover Type', 'fusion-builder' ), 'description' => esc_attr__( 'Select the hover effect type.', 'fusion-builder' ), 'param_name' => 'hover_type', 'value' => [ 'none' => esc_attr__( 'None', 'fusion-builder' ), 'zoomin' => esc_attr__( 'Zoom In', 'fusion-builder' ), 'zoomout' => esc_attr__( 'Zoom Out', 'fusion-builder' ), 'liftup' => esc_attr__( 'Lift Up', 'fusion-builder' ), ], 'default' => 'none', ], [ 'type' => 'radio_button_set', 'param_name' => 'link_type', 'heading' => esc_attr__( 'Image Link', 'fusion-builder' ), 'description' => esc_attr__( 'Choose where the image should link to.', 'fusion-builder' ), 'default' => '', 'value' => [ '' => esc_html__( 'None', 'fusion-builder' ), 'lightbox' => esc_html__( 'Lightbox', 'fusion-builder' ), 'page' => esc_html__( 'Flickr Page', 'fusion-builder' ), ], ], [ 'type' => 'radio_button_set', 'param_name' => 'link_target', 'heading' => esc_attr__( 'Image Link Target', 'fusion-builder' ), 'description' => esc_html__( 'Controls how the link will open.', 'fusion-builder' ), 'default' => '', 'value' => [ '' => esc_html__( 'Same Window/Tab', 'fusion-builder' ), '_blank' => esc_html__( 'New Window/Tab', 'fusion-builder' ), ], 'dependency' => [ [ 'element' => 'link_type', 'value' => 'page', 'operator' => '==', ], ], ], [ 'type' => 'range', 'param_name' => 'columns', 'heading' => esc_attr__( 'Number Of Columns', 'fusion-builder' ), 'description' => esc_attr__( 'Select the number of columns to display.', 'fusion-builder' ), 'value' => 4, 'min' => 1, 'max' => 10, 'responsive' => [ 'state' => 'large', ], 'group' => esc_attr__( 'Design', 'fusion-builder' ), ], [ 'type' => 'range', 'param_name' => 'columns_spacing', 'heading' => esc_attr__( 'Column Spacing', 'fusion-builder' ), 'description' => esc_attr__( 'Choose the spacing between columns.', 'fusion-builder' ), 'value' => 10, 'min' => 0, 'max' => 100, 'responsive' => [ 'state' => 'large', ], 'group' => esc_attr__( 'Design', 'fusion-builder' ), ], 'fusion_margin_placeholder' => [ 'param_name' => 'margin', 'value' => [ 'margin_top' => '', 'margin_right' => '', 'margin_bottom' => '', 'margin_left' => '', ], 'responsive' => [ 'state' => 'large', ], ], 'fusion_animation_placeholder' => [ 'preview_selector' => '.fusion-flickr-element', ], [ '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' ), ], 'fusion_sticky_visibility_placeholder' => [], [ 'type' => 'textfield', 'heading' => esc_attr__( 'CSS Class', 'fusion-builder' ), 'param_name' => 'class', 'value' => '', 'description' => esc_attr__( 'Add a class to the wrapping HTML element.', 'fusion-builder' ), ], [ 'type' => 'textfield', 'heading' => esc_attr__( 'CSS ID', 'fusion-builder' ), 'param_name' => 'id', 'value' => '', 'description' => esc_attr__( 'Add an ID to the wrapping HTML element.', 'fusion-builder' ), ], ], ] ) ); } add_action( 'fusion_builder_before_init', 'fusion_flickr_element' );
Cokiee Shell Web 1.0, Coded By Razor
Neueste Kommentare