plugin updates
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
if (!defined('ABSPATH')) {
|
||||
exit; // Exit if accessed directly.
|
||||
}
|
||||
|
||||
/**
|
||||
* Class WpmfFileDesignElementorWidget
|
||||
*/
|
||||
class WpmfFileDesignElementorWidget extends \Elementor\Widget_Base
|
||||
{
|
||||
|
||||
/**
|
||||
* Get widget name.
|
||||
*
|
||||
* Retrieve File Design widget name.
|
||||
*
|
||||
* @return string Widget name.
|
||||
*/
|
||||
public function get_name() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return 'wpmf_file_design';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget title.
|
||||
*
|
||||
* Retrieve File Design widget title.
|
||||
*
|
||||
* @return string Widget title.
|
||||
*/
|
||||
public function get_title() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return esc_html__('WPMF Media Download', 'wpmf');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget icon.
|
||||
*
|
||||
* Retrieve File Design widget icon.
|
||||
*
|
||||
* @return string Widget icon.
|
||||
*/
|
||||
public function get_icon() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return 'fa wpmf-file-design-elementor-icon';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget categories.
|
||||
*
|
||||
* Retrieve the list of categories the File Design widget belongs to.
|
||||
*
|
||||
* @return array Widget categories.
|
||||
*/
|
||||
public function get_categories() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return array('wpmf');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register File Design widget controls.
|
||||
*
|
||||
* Adds different input fields to allow the user to change and customize the widget settings.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function register_controls() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps, PSR2.Methods.MethodDeclaration.Underscore -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
$this->start_controls_section(
|
||||
'settings_section',
|
||||
array(
|
||||
'label' => esc_html__('Settings', 'wpmf'),
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_add_file_design',
|
||||
array(
|
||||
'label' => esc_html__('Choose file', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::BUTTON,
|
||||
'text' => esc_html__('Add a file', 'wpmf'),
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_responsive_control(
|
||||
'content_align',
|
||||
array(
|
||||
'label' => __('Alignment', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::CHOOSE,
|
||||
'options' => array(
|
||||
'left' => array(
|
||||
'title' => __('Left', 'wpmf'),
|
||||
'icon' => 'fa fa-align-left'
|
||||
),
|
||||
'center' => array(
|
||||
'title' => __('Center', 'wpmf'),
|
||||
'icon' => 'fa fa-align-center'
|
||||
),
|
||||
'right' => array(
|
||||
'title' => __('Right', 'wpmf'),
|
||||
'icon' => 'fa fa-align-right'
|
||||
)
|
||||
),
|
||||
'devices' => array('desktop', 'tablet'),
|
||||
'prefix_class' => 'content-align-%s',
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_file_design_id',
|
||||
array(
|
||||
'label' => esc_html__('File ID', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::NUMBER,
|
||||
)
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
}
|
||||
|
||||
/**
|
||||
* Render File Design widget output on the frontend.
|
||||
*
|
||||
* Written in PHP and used to generate the final HTML.
|
||||
*
|
||||
* @return void|string
|
||||
*/
|
||||
protected function render()
|
||||
{
|
||||
$settings = $this->get_settings_for_display();
|
||||
$id = (isset($settings['wpmf_file_design_id']) && $settings['wpmf_file_design_id'] !== '') ? $settings['wpmf_file_design_id'] : 0;
|
||||
if (!empty($id)) {
|
||||
echo do_shortcode('[wpmffiledesign id="' . esc_attr($id) . '"]');
|
||||
} else {
|
||||
?>
|
||||
<div class="wpmf-elementor-placeholder" style="text-align: center">
|
||||
<img style="background: url(<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/images/file_design_place_holder.svg'); ?>) no-repeat scroll center center #fafafa; height: 200px; border-radius: 2px; width: 100%; background-size: auto 60%;" src="<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/images/t.gif'); ?>">
|
||||
<span style="position: absolute; bottom: 12px; width: 100%; left: 0;font-size: 13px; text-align: center;"><?php esc_html_e('WP Media Folder media download. Select a media and transform it into a download button', 'wpmf'); ?></span>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,642 @@
|
||||
<?php
|
||||
if (!defined('ABSPATH')) {
|
||||
exit; // Exit if accessed directly.
|
||||
}
|
||||
|
||||
/**
|
||||
* Class WpmfGalleryElementorWidget
|
||||
*/
|
||||
class WpmfGalleryElementorWidget extends \Elementor\Widget_Base
|
||||
{
|
||||
/**
|
||||
* Get script depends
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_script_depends() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return array(
|
||||
'wordpresscanvas-imagesloaded',
|
||||
'wpmf-gallery-popup',
|
||||
'jquery-masonry',
|
||||
'wpmf-slick-script',
|
||||
'wpmf-gallery'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get style depends
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_style_depends() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return array(
|
||||
'wpmf-slick-style',
|
||||
'wpmf-slick-theme-style',
|
||||
'wpmf-gallery-popup-style',
|
||||
'wpmf-gallery-style'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget name.
|
||||
*
|
||||
* Retrieve Gallery widget name.
|
||||
*
|
||||
* @return string Widget name.
|
||||
*/
|
||||
public function get_name() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return 'wpmf_gallery';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget title.
|
||||
*
|
||||
* Retrieve Gallery widget title.
|
||||
*
|
||||
* @return string Widget title.
|
||||
*/
|
||||
public function get_title() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return esc_html__('WP Media Folder Gallery', 'wpmf');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget icon.
|
||||
*
|
||||
* Retrieve Gallery widget icon.
|
||||
*
|
||||
* @return string Widget icon.
|
||||
*/
|
||||
public function get_icon() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return 'fa wpmf-gallery-elementor-icon';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget categories.
|
||||
*
|
||||
* Retrieve the list of categories the Gallery widget belongs to.
|
||||
*
|
||||
* @return array Widget categories.
|
||||
*/
|
||||
public function get_categories() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return array('wpmf');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register Gallery widget controls.
|
||||
*
|
||||
* Adds different input fields to allow the user to change and customize the widget settings.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function register_controls() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps, PSR2.Methods.MethodDeclaration.Underscore -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
$settings = wpmfGetOption('gallery_settings');
|
||||
$this->start_controls_section(
|
||||
'gallery_settings',
|
||||
array(
|
||||
'label' => esc_html__('Gallery Settings', 'wpmf'),
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_theme',
|
||||
array(
|
||||
'label' => esc_html__('Theme', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'default' => esc_html__('Default', 'wpmf'),
|
||||
'masonry' => esc_html__('Masonry', 'wpmf'),
|
||||
'portfolio' => esc_html__('Portfolio', 'wpmf'),
|
||||
'slider' => esc_html__('Slider', 'wpmf')
|
||||
),
|
||||
'default' => 'masonry'
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery',
|
||||
array(
|
||||
'label' => esc_html__('Add Images', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::GALLERY,
|
||||
'default' => array()
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'aspect_ratio',
|
||||
array(
|
||||
'label' => esc_html__('Aspect ratio', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'default' => esc_html__('Default', 'wpmf'),
|
||||
'1_1' => '1:1',
|
||||
'3_2' => '3:2',
|
||||
'2_3' => '2:3',
|
||||
'4_3' => '4:3',
|
||||
'3_4' => '3:4',
|
||||
'16_9' => '16:9',
|
||||
'9_16' => '9:16',
|
||||
'21_9' => '21:9',
|
||||
'9_21' => '9:21'
|
||||
),
|
||||
'default' => 'default',
|
||||
'condition' => array(
|
||||
'wpmf_theme' => array('default', 'slider', 'portfolio')
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_columns',
|
||||
array(
|
||||
'label' => esc_html__('Columns', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::NUMBER,
|
||||
'default' => $settings['theme']['masonry_theme']['columns'],
|
||||
'min' => 1,
|
||||
'max' => 8,
|
||||
'step' => 1
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_group_control(
|
||||
\Elementor\Group_Control_Image_Size::get_type(),
|
||||
array(
|
||||
'name' => 'wpmf_gallery_size',
|
||||
'exclude' => array('custom'),
|
||||
'default' => $settings['theme']['masonry_theme']['size']
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_crop_image',
|
||||
array(
|
||||
'label' => esc_html__('Crop Image', 'wpmf'),
|
||||
'description' => esc_html__('Only use for slider theme', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SWITCHER,
|
||||
'label_on' => __('Enable', 'wpmf'),
|
||||
'label_off' => __('Disable', 'wpmf'),
|
||||
'return_value' => 'yes',
|
||||
'default' => 'yes'
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_targetsize',
|
||||
array(
|
||||
'label' => esc_html__('Lightbox Size', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => apply_filters('image_size_names_choose', array(
|
||||
'thumbnail' => __('Thumbnail', 'wpmf'),
|
||||
'medium' => __('Medium', 'wpmf'),
|
||||
'large' => __('Large', 'wpmf'),
|
||||
'full' => __('Full Size', 'wpmf'),
|
||||
)),
|
||||
'default' => $settings['theme']['masonry_theme']['targetsize']
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_action',
|
||||
array(
|
||||
'label' => esc_html__('Action On Click', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'file' => esc_html__('Lightbox', 'wpmf'),
|
||||
'post' => esc_html__('Attachment Page', 'wpmf'),
|
||||
'none' => esc_html__('None', 'wpmf'),
|
||||
),
|
||||
'default' => $settings['theme']['masonry_theme']['link']
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_orderby',
|
||||
array(
|
||||
'label' => esc_html__('Order by', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'post__in' => esc_html__('Custom', 'wpmf'),
|
||||
'rand' => esc_html__('Random', 'wpmf'),
|
||||
'title' => esc_html__('Title', 'wpmf'),
|
||||
'date' => esc_html__('Date', 'wpmf')
|
||||
),
|
||||
'default' => $settings['theme']['masonry_theme']['orderby']
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_order',
|
||||
array(
|
||||
'label' => esc_html__('Order', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'ASC' => esc_html__('Ascending', 'wpmf'),
|
||||
'DESC' => esc_html__('Descending', 'wpmf')
|
||||
),
|
||||
'default' => $settings['theme']['masonry_theme']['order']
|
||||
)
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
|
||||
// margin tab
|
||||
$this->start_controls_section(
|
||||
'wpmf_gallery_margin',
|
||||
array(
|
||||
'label' => esc_html__('Margin', 'wpmf'),
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_gutterwidth',
|
||||
array(
|
||||
'label' => esc_html__('Gutter', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'0' => 0,
|
||||
'5' => 5,
|
||||
'10' => 10,
|
||||
'15' => 15,
|
||||
'20' => 20,
|
||||
'25' => 25,
|
||||
'30' => 30,
|
||||
'35' => 35,
|
||||
'40' => 40,
|
||||
'45' => 45,
|
||||
'100' => 100,
|
||||
),
|
||||
'default' => 5
|
||||
)
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
|
||||
// border tab
|
||||
$this->start_controls_section(
|
||||
'wpmf_gallery_border',
|
||||
array(
|
||||
'label' => esc_html__('Border', 'wpmf'),
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_image_radius',
|
||||
array(
|
||||
'label' => esc_html__('Border Radius', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::NUMBER,
|
||||
'default' => 0,
|
||||
'min' => 0,
|
||||
'max' => 20,
|
||||
'step' => 1
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_border_type',
|
||||
array(
|
||||
'label' => esc_html__('Border Type', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'solid' => esc_html__('Solid', 'wpmf'),
|
||||
'double' => esc_html__('Double', 'wpmf'),
|
||||
'dotted' => esc_html__('Dotted', 'wpmf'),
|
||||
'dashed' => esc_html__('Dashed', 'wpmf'),
|
||||
'groove' => esc_html__('Groove', 'wpmf')
|
||||
),
|
||||
'default' => 'solid'
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_border_width',
|
||||
array(
|
||||
'label' => esc_html__('Border Width', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::NUMBER,
|
||||
'default' => 0,
|
||||
'min' => 0,
|
||||
'max' => 30,
|
||||
'step' => 1
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_border_color',
|
||||
array(
|
||||
'label' => esc_html__('Border Color', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::COLOR,
|
||||
'default' => '#cccccc'
|
||||
)
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
|
||||
// shadow tab
|
||||
$this->start_controls_section(
|
||||
'wpmf_gallery_shadow',
|
||||
array(
|
||||
'label' => esc_html__('Shadow', 'wpmf'),
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_enable_shadow',
|
||||
array(
|
||||
'label' => esc_html__('Enable', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SWITCHER,
|
||||
'label_on' => __('Enable', 'wpmf'),
|
||||
'label_off' => __('Disable', 'wpmf'),
|
||||
'return_value' => 'yes',
|
||||
'default' => 'no'
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_shadow_color',
|
||||
array(
|
||||
'label' => esc_html__('Color', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::COLOR,
|
||||
'default' => '#cccccc'
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_shadow_horizontal',
|
||||
array(
|
||||
'label' => esc_html__('Horizontal', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SLIDER,
|
||||
'size_units' => array('px'),
|
||||
'range' => array(
|
||||
'px' => array(
|
||||
'min' => -50,
|
||||
'max' => 50,
|
||||
'step' => 1
|
||||
)
|
||||
),
|
||||
'default' => array(
|
||||
'unit' => 'px',
|
||||
'size' => 0
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_shadow_vertical',
|
||||
array(
|
||||
'label' => esc_html__('Vertical', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SLIDER,
|
||||
'size_units' => array('px'),
|
||||
'range' => array(
|
||||
'px' => array(
|
||||
'min' => -50,
|
||||
'max' => 50,
|
||||
'step' => 1
|
||||
)
|
||||
),
|
||||
'default' => array(
|
||||
'unit' => 'px',
|
||||
'size' => 0
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_shadow_blur',
|
||||
array(
|
||||
'label' => esc_html__('Blur', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SLIDER,
|
||||
'size_units' => array('px'),
|
||||
'range' => array(
|
||||
'px' => array(
|
||||
'min' => 0,
|
||||
'max' => 50,
|
||||
'step' => 1
|
||||
)
|
||||
),
|
||||
'default' => array(
|
||||
'unit' => 'px',
|
||||
'size' => 0
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_shadow_spread',
|
||||
array(
|
||||
'label' => esc_html__('Spread', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SLIDER,
|
||||
'size_units' => array('px'),
|
||||
'range' => array(
|
||||
'px' => array(
|
||||
'min' => 0,
|
||||
'max' => 50,
|
||||
'step' => 1
|
||||
)
|
||||
),
|
||||
'default' => array(
|
||||
'unit' => 'px',
|
||||
'size' => 0
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
|
||||
// media from folder tab
|
||||
$this->start_controls_section(
|
||||
'wpmf_gallery_from_folder',
|
||||
array(
|
||||
'label' => esc_html__('Gallery From Folder', 'wpmf'),
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_folder',
|
||||
array(
|
||||
'label' => esc_html__('Gallery From Folder', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SWITCHER,
|
||||
'label_on' => __('Enable', 'wpmf'),
|
||||
'label_off' => __('Disable', 'wpmf'),
|
||||
'return_value' => 'yes',
|
||||
'default' => 'no'
|
||||
)
|
||||
);
|
||||
|
||||
$main_class = wpmfGetMainClass();
|
||||
$getFolders = $main_class->getAttachmentTerms('builder');
|
||||
$folders = $getFolders['attachment_terms'];
|
||||
$folders_order = $getFolders['attachment_terms_order'];
|
||||
$list_cloud = array();
|
||||
$list_local = array();
|
||||
$ai = 'a';
|
||||
foreach ($folders_order as $folder_order) {
|
||||
$folder = $folders[$folder_order];
|
||||
if ($folder['id'] !== 0) {
|
||||
if (!isset($folder['depth'])) {
|
||||
$folder['depth'] = 0;
|
||||
}
|
||||
|
||||
if (isset($folder['drive_type']) && $folder['drive_type'] !== '') {
|
||||
$list_cloud[$ai.'|'.$folder['slug']] = str_repeat(' ', $folder['depth']) . $folder['label'];
|
||||
} else {
|
||||
$list_local[$ai.'|'.$folder['slug']] = str_repeat(' ', $folder['depth']) . $folder['label'];
|
||||
}
|
||||
} else {
|
||||
$list_local[0] = $folder['label'];
|
||||
}
|
||||
$ai++;
|
||||
}
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_gallery_folder_id',
|
||||
array(
|
||||
'label' => esc_html__('Choose a Folder', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => $list_local + $list_cloud,
|
||||
'default' => 0
|
||||
)
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
}
|
||||
|
||||
/**
|
||||
* Render Gallery widget output on the frontend.
|
||||
*
|
||||
* Written in PHP and used to generate the final HTML.
|
||||
*
|
||||
* @return void|string
|
||||
*/
|
||||
protected function render()
|
||||
{
|
||||
$settings = $this->get_settings_for_display();
|
||||
$theme = (!empty($settings['wpmf_theme'])) ? $settings['wpmf_theme'] : 'default';
|
||||
$columns = (!empty($settings['wpmf_gallery_columns'])) ? $settings['wpmf_gallery_columns'] : 3;
|
||||
$size = (!empty($settings['wpmf_gallery_size_size'])) ? $settings['wpmf_gallery_size_size'] : 'thumbnail';
|
||||
$crop_image = (!empty($settings['wpmf_gallery_crop_image']) && $settings['wpmf_gallery_crop_image'] === 'yes') ? 1 : 0;
|
||||
$aspect_ratio = (!empty($settings['aspect_ratio'])) ? $settings['aspect_ratio'] : 'default';
|
||||
$targetsize = (!empty($settings['wpmf_gallery_targetsize'])) ? $settings['wpmf_gallery_targetsize'] : 'large';
|
||||
$action = (!empty($settings['wpmf_gallery_action'])) ? $settings['wpmf_gallery_action'] : 'file';
|
||||
$orderby = (!empty($settings['wpmf_gallery_orderby'])) ? $settings['wpmf_gallery_orderby'] : 'post__in';
|
||||
$order = (!empty($settings['wpmf_gallery_order'])) ? $settings['wpmf_gallery_order'] : 'ASC';
|
||||
$gutterwidth = (!empty($settings['wpmf_gallery_gutterwidth'])) ? $settings['wpmf_gallery_gutterwidth'] : 5;
|
||||
|
||||
$border_radius = (!empty($settings['wpmf_gallery_image_radius'])) ? $settings['wpmf_gallery_image_radius'] : 0;
|
||||
$border_style = (!empty($settings['wpmf_gallery_border_type'])) ? $settings['wpmf_gallery_border_type'] : 'solid';
|
||||
$border_color = (!empty($settings['wpmf_gallery_border_color'])) ? $settings['wpmf_gallery_border_color'] : 'transparent';
|
||||
$border_width = (!empty($settings['wpmf_gallery_border_width'])) ? $settings['wpmf_gallery_border_width'] : 0;
|
||||
$enable_gallery_shadow = (!empty($settings['wpmf_gallery_enable_shadow']) && $settings['wpmf_gallery_enable_shadow'] === 'yes') ? 1 : 0;
|
||||
$shadow_horizontal = !empty($settings['wpmf_gallery_shadow_horizontal']) ? $settings['wpmf_gallery_shadow_horizontal'] : 0;
|
||||
$shadow_vertical = !empty($settings['wpmf_gallery_shadow_vertical']) ? $settings['wpmf_gallery_shadow_vertical'] : 0;
|
||||
$shadow_blur = !empty($settings['wpmf_gallery_shadow_blur']) ? $settings['wpmf_gallery_shadow_blur'] : 0;
|
||||
$shadow_spread = !empty($settings['wpmf_gallery_shadow_spread']) ? $settings['wpmf_gallery_shadow_spread'] : 0;
|
||||
$shadow_color = (!empty($settings['wpmf_gallery_shadow_color'])) ? $settings['wpmf_gallery_shadow_color'] : '#cccccc';
|
||||
if (!empty($enable_gallery_shadow)) {
|
||||
$img_shadow = $shadow_horizontal['size'] . 'px ' . $shadow_vertical['size'] . 'px ' . $shadow_blur['size'] . 'px ' . $shadow_spread['size'] . 'px ' . $shadow_color;
|
||||
} else {
|
||||
$img_shadow = '';
|
||||
}
|
||||
|
||||
$enable_gallery_folder = (!empty($settings['wpmf_gallery_folder']) && $settings['wpmf_gallery_folder'] === 'yes') ? 1 : 0;
|
||||
$folder_slug = (!empty($settings['wpmf_gallery_folder_id'])) ? $settings['wpmf_gallery_folder_id'] : 0;
|
||||
$pos = strpos($folder_slug, '|');
|
||||
if ($pos) {
|
||||
$folder_slug = substr($folder_slug, $pos+1);
|
||||
}
|
||||
|
||||
$folder_id = 0;
|
||||
$folder = get_term_by('slug', $folder_slug, WPMF_TAXO);
|
||||
if (!empty($folder)) {
|
||||
$folder_id = $folder->term_id;
|
||||
} else {
|
||||
$folder = get_term_by('id', (int)$folder_slug, WPMF_TAXO);
|
||||
if (!empty($folder)) {
|
||||
$folder_id = $folder->term_id;
|
||||
}
|
||||
}
|
||||
|
||||
$gallery_items = $settings['wpmf_gallery'];
|
||||
$ids = array();
|
||||
foreach ($gallery_items as $gallery_item) {
|
||||
$ids[] = $gallery_item['id'];
|
||||
}
|
||||
if (is_admin()) {
|
||||
require_once(WP_MEDIA_FOLDER_PLUGIN_DIR . 'class/class-display-gallery.php');
|
||||
$gallery = new WpmfDisplayGallery();
|
||||
$style = '';
|
||||
switch ($theme) {
|
||||
case 'default':
|
||||
case 'masonry':
|
||||
if ($img_shadow !== '') {
|
||||
$style .= '.elementor-element-' . $this->get_id() . ' .wpmf-gallery-item img:hover {box-shadow: ' . $img_shadow . ' !important; transition: all 200ms ease;}';
|
||||
}
|
||||
|
||||
if ($border_style !== 'none') {
|
||||
$style .= '.elementor-element-' . $this->get_id() . ' .wpmf-gallery-item img {border: ' . $border_color . ' '. $border_width .'px '. $border_style .'}';
|
||||
}
|
||||
break;
|
||||
case 'portfolio':
|
||||
if ($img_shadow !== '') {
|
||||
$style .= '.elementor-element-' . $this->get_id() . ' .wpmf-gallery-item .wpmf_overlay:hover {box-shadow: ' . $img_shadow . ' !important; transition: all 200ms ease;}';
|
||||
}
|
||||
|
||||
if ($border_style !== 'none') {
|
||||
$style .= '.elementor-element-' . $this->get_id() . ' .wpmf-gallery-item img {border: ' . $border_color . ' '. $border_width .'px '. $border_style .'}';
|
||||
}
|
||||
break;
|
||||
case 'slider':
|
||||
$style = '';
|
||||
if ($img_shadow !== '') {
|
||||
if ((int) $columns > 1) {
|
||||
$style .= '.elementor-element-' . $this->get_id() . ' .wpmf-gallery-item:hover {box-shadow: ' . $img_shadow . ' !important; transition: all 200ms ease;}';
|
||||
}
|
||||
}
|
||||
|
||||
if ($border_style !== 'none') {
|
||||
if ((int) $columns === 1) {
|
||||
$style .= '.elementor-element-' . $this->get_id() . ' .wpmf-gallery-item img {border: ' . $border_color . ' '. $border_width .'px '. $border_style .';}';
|
||||
} else {
|
||||
$style .= '.elementor-element-' . $this->get_id() . ' .wpmf-gallery-item {border: ' . $border_color . ' '. $border_width .'px '. $border_style .';}';
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
?>
|
||||
<style id="elementor-style-<?php echo esc_attr($this->get_id()) ?>">
|
||||
<?php echo $style; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Style inline ?>
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var wpmfggr = '<?php echo json_encode($gallery->localizeScript()); ?>';
|
||||
wpmfggr = JSON.parse(wpmfggr);
|
||||
wpmfggr.slider_animation = 'slide';
|
||||
</script>
|
||||
<?php
|
||||
// phpcs:disable WordPress.WP.EnqueuedResources.NonEnqueuedScript -- Load script from file
|
||||
?>
|
||||
<script type="text/javascript" src="<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/js/display-gallery/site_gallery.js?v=' . WPMF_VERSION) ?>"></script>
|
||||
<?php
|
||||
// phpcs:enable
|
||||
}
|
||||
|
||||
if (empty($settings['wpmf_gallery']) && empty($enable_gallery_folder) && empty($folder_id)) {
|
||||
?>
|
||||
<div class="wpmf-elementor-placeholder" style="text-align: center">
|
||||
<img style="background: url(<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/images/gallery_place_holder.svg'); ?>) no-repeat scroll center center #fafafa; height: 200px; border-radius: 2px; width: 100%; background-size: auto 60%;" src="<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/images/t.gif'); ?>">
|
||||
<span style="position: absolute; bottom: 12px; width: 100%; left: 0;font-size: 13px; text-align: center;"><?php esc_html_e('Please add some images to the gallery to activate the preview', 'wpmf'); ?></span>
|
||||
</div>
|
||||
<?php
|
||||
} else {
|
||||
echo do_shortcode('[wpmf_gallery include="'. esc_attr(implode(',', $ids)) .'" display="' . esc_attr($theme) . '" columns="' . esc_attr($columns) . '" size="' . esc_attr($size) . '" targetsize="' . esc_attr($targetsize) . '" link="' . esc_attr($action) . '" wpmf_orderby="' . esc_attr($orderby) . '" wpmf_order="' . esc_attr($order) . '" gutterwidth="' . esc_attr($gutterwidth) . '" border_width="' . esc_attr($border_width) . '" border_style="' . esc_attr($border_style) . '" border_color="' . esc_attr($border_color) . '" img_shadow="' . esc_attr($img_shadow) . '" img_border_radius="' . esc_attr($border_radius) . '" wpmf_autoinsert="' . esc_attr($enable_gallery_folder) . '" wpmf_folder_id="' . esc_attr($folder_id) . '" crop_image="'. $crop_image .'" aspect_ratio="' . esc_attr($aspect_ratio) . '"]');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||
<?php
|
||||
if (!defined('ABSPATH')) {
|
||||
exit; // Exit if accessed directly.
|
||||
}
|
||||
|
||||
/**
|
||||
* Class WpmfPdfEmbedElementorWidget
|
||||
*/
|
||||
class WpmfPdfEmbedElementorWidget extends \Elementor\Widget_Base
|
||||
{
|
||||
/**
|
||||
* Get script depends
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_script_depends() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return array(
|
||||
'wpmf_pdf_js',
|
||||
'wpmf_embed_pdf_js',
|
||||
'wpmf_compat_js'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get style depends
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_style_depends() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return array(
|
||||
'pdfemb_embed_pdf_css'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget name.
|
||||
*
|
||||
* Retrieve PDF Embed widget name.
|
||||
*
|
||||
* @return string Widget name.
|
||||
*/
|
||||
public function get_name() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return 'wpmf_pdf_embed';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget title.
|
||||
*
|
||||
* Retrieve PDF Embed widget title.
|
||||
*
|
||||
* @return string Widget title.
|
||||
*/
|
||||
public function get_title() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return esc_html__('WP Media Folder PDF Embed', 'wpmf');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget icon.
|
||||
*
|
||||
* Retrieve PDF Embed widget icon.
|
||||
*
|
||||
* @return string Widget icon.
|
||||
*/
|
||||
public function get_icon() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return 'fa wpmf-pdf-embed-elementor-icon';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get widget categories.
|
||||
*
|
||||
* Retrieve the list of categories the PDF Embed widget belongs to.
|
||||
*
|
||||
* @return array Widget categories.
|
||||
*/
|
||||
public function get_categories() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
return array('wpmf');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register PDF Embed widget controls.
|
||||
*
|
||||
* Adds different input fields to allow the user to change and customize the widget settings.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function register_controls() // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps, PSR2.Methods.MethodDeclaration.Underscore -- Method extends from \Elementor\Widget_Base class
|
||||
{
|
||||
$this->start_controls_section(
|
||||
'settings_section',
|
||||
array(
|
||||
'label' => esc_html__('Settings', 'wpmf'),
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_add_pdf',
|
||||
array(
|
||||
'label' => esc_html__('Choose PDF', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::BUTTON,
|
||||
'text' => esc_html__('SELECT PDF', 'wpmf')
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'embed',
|
||||
array(
|
||||
'label' => esc_html__('Embed', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'on' => esc_html__('On', 'wpmf'),
|
||||
'off' => esc_html__('Off', 'wpmf')
|
||||
),
|
||||
'default' => 'on'
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'target',
|
||||
array(
|
||||
'label' => esc_html__('Target', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::SELECT,
|
||||
'options' => array(
|
||||
'_blank' => esc_html__('New Window', 'wpmf'),
|
||||
'self' => esc_html__('Same Window', 'wpmf')
|
||||
),
|
||||
'default' => 'self'
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'wpmf_pdf_id',
|
||||
array(
|
||||
'label' => esc_html__('PDF ID', 'wpmf'),
|
||||
'type' => \Elementor\Controls_Manager::NUMBER,
|
||||
)
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
}
|
||||
|
||||
/**
|
||||
* Render PDF Embed widget output on the frontend.
|
||||
*
|
||||
* Written in PHP and used to generate the final HTML.
|
||||
*
|
||||
* @return void|string
|
||||
*/
|
||||
protected function render()
|
||||
{
|
||||
if (is_admin()) {
|
||||
require_once(WP_MEDIA_FOLDER_PLUGIN_DIR . 'class/class-pdf-embed.php');
|
||||
$pdf = new WpmfPdfEmbed();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var wpmf_pdfemb_trans = '<?php echo json_encode($pdf->getTranslation()); ?>';
|
||||
wpmf_pdfemb_trans = JSON.parse(wpmf_pdfemb_trans);
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/js/pdf-embed/viewer.js?v=' . WPMF_VERSION) ?>"></script>
|
||||
<?php
|
||||
}
|
||||
$settings = $this->get_settings_for_display();
|
||||
$id = (isset($settings['wpmf_pdf_id']) && $settings['wpmf_pdf_id'] !== '') ? $settings['wpmf_pdf_id'] : 0;
|
||||
if (!empty($id)) {
|
||||
$embed = (isset($settings['embed']) && $settings['embed'] === 'on') ? 1 : 0;
|
||||
$target = (isset($settings['target'])) ? $settings['target'] : 'self';
|
||||
echo do_shortcode('[wpmfpdf id="' . esc_attr($id) . '" embed="' . esc_attr($embed) . '" target="' . esc_attr($target) . '"]');
|
||||
} else {
|
||||
?>
|
||||
<div class="wpmf-elementor-placeholder" style="text-align: center">
|
||||
<img style="background: url(<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/images/pdf_embed_place_holder.svg'); ?>) no-repeat scroll center center #fafafa; height: 200px; border-radius: 2px; width: 100%; background-size: auto 60%;" src="<?php echo esc_url(WPMF_PLUGIN_URL . 'assets/images/t.gif'); ?>">
|
||||
<span style="position: absolute; bottom: 12px; width: 100%; left: 0;font-size: 13px; text-align: center;"><?php esc_html_e('Please select a PDF file to activate the preview', 'wpmf'); ?></span>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
(function ($) {
|
||||
$(document).ready(function () {
|
||||
/**
|
||||
* Open select logo watermark
|
||||
*/
|
||||
$(document).on("click", '.elementor-control-wpmf_add_pdf .elementor-button-default', function (e) {
|
||||
if (typeof frame !== "undefined") {
|
||||
frame.open();
|
||||
return;
|
||||
}
|
||||
|
||||
// Create the media frame.
|
||||
var frame = wp.media({
|
||||
// Tell the modal to show only images.
|
||||
library: {
|
||||
type: 'application/pdf'
|
||||
}
|
||||
});
|
||||
|
||||
frame.on('open',function() {
|
||||
var selection = frame.state().get('selection');
|
||||
var selected = $('.elementor-control-wpmf_pdf_id input[data-setting="wpmf_pdf_id"]').val(); // the id of the image
|
||||
if (selected && selected !== '') {
|
||||
selection.add(wp.media.attachment(selected));
|
||||
}
|
||||
});
|
||||
|
||||
frame.on('select', function () {
|
||||
// Grab the selected attachment.
|
||||
var attachment = frame.state().get('selection').first().toJSON();
|
||||
$('.elementor-control-wpmf_pdf_id input[data-setting="wpmf_pdf_id"]').val(attachment.id).trigger('input');
|
||||
});
|
||||
|
||||
frame.open();
|
||||
});
|
||||
|
||||
$(document).on("click", '.elementor-control-wpmf_add_file_design .elementor-button-default', function (e) {
|
||||
if (typeof frame !== "undefined") {
|
||||
frame.open();
|
||||
return;
|
||||
}
|
||||
|
||||
// Create the media frame.
|
||||
var frame = wp.media({
|
||||
library: {
|
||||
type: '*'
|
||||
}
|
||||
});
|
||||
|
||||
frame.on('open',function() {
|
||||
var selection = frame.state().get('selection');
|
||||
var selected = $('.elementor-control-wpmf_file_design_id input[data-setting="wpmf_file_design_id"]').val(); // the id of the image
|
||||
if (selected && selected !== '') {
|
||||
selection.add(wp.media.attachment(selected));
|
||||
}
|
||||
});
|
||||
|
||||
frame.on('select', function () {
|
||||
// Grab the selected attachment.
|
||||
var attachment = frame.state().get('selection').first().toJSON();
|
||||
$('.elementor-control-wpmf_file_design_id input[data-setting="wpmf_file_design_id"]').val(attachment.id).trigger('input');
|
||||
});
|
||||
|
||||
frame.open();
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user