@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
/**
|
||||
* @author ThemePunch <info@themepunch.com>
|
||||
* @link https://www.themepunch.com/
|
||||
* @copyright 2019 ThemePunch
|
||||
*/
|
||||
|
||||
if(!defined('ABSPATH')) exit();
|
||||
|
||||
class RevSliderElementorWidget extends \Elementor\Widget_Shortcode {
|
||||
|
||||
public function get_name() {
|
||||
|
||||
return 'slider_revolution';
|
||||
|
||||
}
|
||||
|
||||
public function get_title() {
|
||||
|
||||
return 'Slider Revolution 6';
|
||||
|
||||
}
|
||||
|
||||
public function get_icon() {
|
||||
|
||||
return 'eicon-sync';
|
||||
|
||||
}
|
||||
|
||||
public function get_categories() {
|
||||
|
||||
return array('general');
|
||||
|
||||
}
|
||||
|
||||
protected function _register_controls() {
|
||||
|
||||
/*Fallback
|
||||
$shortcode = $this->get_settings_for_display( 'text' );
|
||||
if(empty($shortcode)) $shortcode = $this->get_settings_for_display( 'shortcode' );
|
||||
|
||||
$revslidertitle = $this->get_settings_for_display( 'sliderTitle' );
|
||||
if(empty($revslidertitle)) $revslidertitle = $this->get_settings_for_display( 'revslidertitle' );
|
||||
|
||||
var_dump($revslidertitle);
|
||||
*/
|
||||
|
||||
$this->start_controls_section(
|
||||
'content_section',
|
||||
array(
|
||||
'label' => 'Slider Revolution 6',
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'revslidertitle',
|
||||
array(
|
||||
'label' => __( 'Selected Module:', 'revslider' ),
|
||||
'type' => \Elementor\Controls_Manager::TEXT,
|
||||
'render_type' => 'none',
|
||||
'placeholder' => '',
|
||||
'default' => '',
|
||||
'event' => 'themepunch.selectslider',
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'shortcode',
|
||||
array(
|
||||
//'type' => \Elementor\Controls_Manager::HIDDEN,
|
||||
'type' => \Elementor\Controls_Manager::TEXT,
|
||||
'label' => __( 'Shortcode', 'revslider' ),
|
||||
'dynamic' => ['active' => true],
|
||||
'placeholder' => '',
|
||||
'default' => '',
|
||||
)
|
||||
);
|
||||
|
||||
// Advanced
|
||||
$this->add_control(
|
||||
'select_slider',
|
||||
array(
|
||||
'type' => \Elementor\Controls_Manager::BUTTON,
|
||||
'button_type' => 'default',
|
||||
'text' => __( '<i type="button" class="material-icons">cached</i> Select Module', 'revslider' ),
|
||||
'event' => 'themepunch.selectslider',
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'edit_slider',
|
||||
array(
|
||||
'type' => \Elementor\Controls_Manager::BUTTON,
|
||||
'button_type' => 'default',
|
||||
'text' => __( '<i type="button" class="material-icons">edit</i> Edit Module', 'revslider' ),
|
||||
'event' => 'themepunch.editslider',
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'settings_slider',
|
||||
array(
|
||||
'type' => \Elementor\Controls_Manager::BUTTON,
|
||||
'button_type' => 'default',
|
||||
'text' => __( '<i type="button" class="material-icons">tune</i> Block Settings', 'revslider' ),
|
||||
'event' => 'themepunch.settingsslider',
|
||||
)
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'optimize_slider',
|
||||
array(
|
||||
'type' => \Elementor\Controls_Manager::BUTTON,
|
||||
'button_type' => 'default',
|
||||
'text' => __( '<i type="button" class="material-icons">flash_on</i> Optimize File Sizes', 'revslider' ),
|
||||
'event' => 'themepunch.optimizeslider',
|
||||
)
|
||||
);
|
||||
$this->end_controls_section();
|
||||
}
|
||||
|
||||
protected function render() {
|
||||
|
||||
$shortcode = $this->get_settings_for_display( 'shortcode' );
|
||||
$shortcode = do_shortcode( shortcode_unautop( $shortcode ) );
|
||||
|
||||
$zindex = $this->get_settings_for_display( 'zindex' );
|
||||
$style = $zindex ? ' style="z-index:'.$zindex.';"' : '';
|
||||
|
||||
/*if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) {
|
||||
//EDIT
|
||||
} else {
|
||||
//FRONTEND
|
||||
}*/
|
||||
|
||||
// hack to make sure object library only opens when the user manually adds a slider to the page
|
||||
if(empty($shortcode)) {
|
||||
?>
|
||||
<script type="text/javascript">window.parent.elementorSelectRevSlider();</script>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="wp-block-themepunch-revslider"<?php echo $style;?>><?php echo $shortcode; ?></div>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* @author ThemePunch <info@themepunch.com>
|
||||
* @link https://www.themepunch.com/
|
||||
* @copyright 2019 ThemePunch
|
||||
*/
|
||||
|
||||
if(!defined('ABSPATH')) exit();
|
||||
|
||||
class RevSliderElementor {
|
||||
|
||||
public static function init() {
|
||||
|
||||
$min_elementor_version = '2.0.0';
|
||||
$min_php_version = '7.0';
|
||||
|
||||
// Check if Elementor installed and activated
|
||||
if(!did_action('elementor/loaded')) return;
|
||||
|
||||
// Check for required Elementor version
|
||||
if(!version_compare(ELEMENTOR_VERSION, $min_elementor_version, '>=' )) return;
|
||||
|
||||
// Check for required PHP version
|
||||
if(version_compare(PHP_VERSION, $min_php_version, '<')) return;
|
||||
|
||||
// Add Plugin actions
|
||||
add_action('elementor/widgets/widgets_registered', array('RevSliderElementor', 'init_elementor_widgets'));
|
||||
|
||||
// Register Widget Styles/Scripts
|
||||
add_action('elementor/editor/after_enqueue_styles', array('RevSliderShortcodeWizard', 'add_styles'));
|
||||
add_action('elementor/editor/after_enqueue_scripts', array('RevSliderElementor', 'add_scripts'));
|
||||
|
||||
}
|
||||
|
||||
public static function add_scripts() {
|
||||
|
||||
RevSliderShortcodeWizard::add_scripts(true);
|
||||
|
||||
}
|
||||
|
||||
public static function init_elementor_widgets() {
|
||||
|
||||
// Include Widget files
|
||||
require_once(plugin_dir_path( __FILE__) . 'elementor-widget.class.php');
|
||||
|
||||
// Register widget
|
||||
$widgets_manager = \Elementor\Plugin::instance()->widgets_manager;
|
||||
$widgets_manager->register_widget_type( new RevSliderElementorWidget() );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
This project was bootstrapped with [Create Guten Block](https://github.com/ahmadawais/create-guten-block).
|
||||
|
||||
Below you will find some information on how to run scripts.
|
||||
|
||||
>You can find the most recent version of this guide [here](https://github.com/ahmadawais/create-guten-block).
|
||||
|
||||
## 👉 `npm start`
|
||||
- Use to compile and run the block in development mode.
|
||||
- Watches for any changes and reports back any errors in your code.
|
||||
|
||||
## 👉 `npm run build`
|
||||
- Use to build production code for your block inside `dist` folder.
|
||||
- Runs once and reports back the gzip file sizes of the produced code.
|
||||
|
||||
## 👉 `npm run eject`
|
||||
- Use to eject your plugin out of `create-guten-block`.
|
||||
- Provides all the configurations so you can customize the project as you want.
|
||||
- It's a one-way street, `eject` and you have to maintain everything yourself.
|
||||
- You don't normally have to `eject` a project because by ejecting you lose the connection with `create-guten-block` and from there onwards you have to update and maintain all the dependencies on your own.
|
||||
|
||||
---
|
||||
|
||||
###### Feel free to tweet and say 👋 at me [@MrAhmadAwais](https://twitter.com/mrahmadawais/)
|
||||
|
||||
[](https://www.npmjs.com/package/create-guten-block) [](https://www.npmjs.com/package/create-guten-block) [](https://github.com/ahmadawais/create-guten-block) [](https://twitter.com/mrahmadawais/) [](https://github.com/ahmadawais/create-guten-block/stargazers) [](https://github.com/ahmadawais?tab=followers)
|
||||
@@ -0,0 +1,185 @@
|
||||
/**
|
||||
* #.# Common SCSS
|
||||
*
|
||||
* Can include things like variables and mixins
|
||||
* that are used across the project.
|
||||
*/
|
||||
/**
|
||||
* #.# Common SCSS
|
||||
*
|
||||
* Can include things like variables and mixins
|
||||
* that are used across the project.
|
||||
*/
|
||||
/**
|
||||
* #.# Common SCSS
|
||||
*
|
||||
* Can include things like variables and mixins
|
||||
* that are used across the project.
|
||||
*/
|
||||
div.revslider_block {
|
||||
background: url(images/rs6_logo_2x.png);
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
line-height: 32px; }
|
||||
|
||||
div.revslider_block .components-text-control__input {
|
||||
display: none; }
|
||||
|
||||
div.revslider_block span {
|
||||
font-weight: 700;
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
||||
font-size: 16px; }
|
||||
|
||||
div.revslider_block .slider_slug {
|
||||
float: left; }
|
||||
|
||||
div.revslider_block .slider_edit_button {
|
||||
float: right; }
|
||||
|
||||
div.revslider_block .slider_editor_button {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
font-size: 16px;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga';
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff; }
|
||||
|
||||
div.revslider_block .slider_edit_button, div.revslider_block .slider_editor_button, div.revslider_block .slider_edit_button:focus, div.revslider_block .slider_editor_button:focus, div.revslider_block .slider_edit_button:active, div.revslider_block .slider_editor_button:active, div.revslider_block .slider_edit_button:active:enabled, div.revslider_block .slider_editor_button:active:enabled,
|
||||
div.revslider_block .slider_edit_button.components-button, div.revslider_block .slider_editor_button.components-button, div.revslider_block .slider_edit_button.components-button:focus, div.revslider_block .slider_editor_button.components-button:focus, div.revslider_block .slider_edit_button.components-button:active, div.revslider_block .slider_editor_button.components-button:active, div.revslider_block .slider_edit_button.components-button:active:enabled, div.revslider_block .slider_editor_button.components-button:active:enabled {
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff; }
|
||||
|
||||
div.revslider_block .slider_edit_button:hover, div.revslider_block .slider_editor_button:hover {
|
||||
-webkit-filter: brightness(120%);
|
||||
filter: brightness(120%);
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider svg,
|
||||
.components-panel__body.edit-post-block-sidebar__panel svg.dashicons-update {
|
||||
width: 24px;
|
||||
height: 24px; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider .editor-block-types-list__item-title {
|
||||
padding: 4px 1px 4px 1px; }
|
||||
|
||||
.sliderBar {
|
||||
padding-left: 160px; }
|
||||
|
||||
.sliderImage {
|
||||
background: #e3e5e8;
|
||||
text-align: center;
|
||||
line-height: 0;
|
||||
margin-top: 20px; }
|
||||
|
||||
.sliderImage div {
|
||||
width: 267px;
|
||||
height: 150px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
background-size: cover;
|
||||
margin: 0 auto; }
|
||||
|
||||
.showSilderImage {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
/*font-size: 16px;*/
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga'; }
|
||||
|
||||
.hideSilderImage {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 13px !important;
|
||||
/*font-size: 16px;*/
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga'; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .editor-block-toolbar > .components-toolbar svg {
|
||||
color: inherit !important; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .editor-block-list__block-edit.block-editor-block-list__block-edit {
|
||||
background: #f6f6f9; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .revslider_block {
|
||||
background-position: 14px 14px; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .revslider_block .sliderBar {
|
||||
padding: 14px 14px 14px 160px;
|
||||
overflow: hidden;
|
||||
position: relative; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .revslider_block .sliderImage {
|
||||
margin-top: 0px;
|
||||
padding: 14px; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .sliderBar slider_editor_button_wrap {
|
||||
display: none; }
|
||||
|
||||
.slider_editor_button_wrap {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 14px;
|
||||
top: 14px;
|
||||
padding-top: 2px;
|
||||
white-space: nowrap;
|
||||
width: 220px;
|
||||
height: 30px;
|
||||
background: #f6f6f9; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"].is-hovered .sliderBar .slider_editor_button_wrap,
|
||||
.wp-block[data-type="themepunch/revslider"].is-selected .sliderBar .slider_editor_button_wrap {
|
||||
display: inline-block; }
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .sliderBar span {
|
||||
white-space: nowrap;
|
||||
height: 23px;
|
||||
overflow: hidden;
|
||||
display: inline-block;
|
||||
max-width: 100%; }
|
||||
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* #.# Common SCSS
|
||||
*
|
||||
* Can include things like variables and mixins
|
||||
* that are used across the project.
|
||||
*/
|
||||
div.revslider_block {
|
||||
background: url(images/rs6_logo_2x.png);
|
||||
background-size: 120px 30px;
|
||||
background-repeat: no-repeat;
|
||||
line-height: 32px; }
|
||||
|
||||
div.revslider_block .components-text-control__input {
|
||||
display: none; }
|
||||
|
||||
div.revslider_block span {
|
||||
font-weight: bold;
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; }
|
||||
|
||||
div.revslider_block .slider_slug {
|
||||
float: left; }
|
||||
|
||||
div.revslider_block .slider_edit_button {
|
||||
float: right; }
|
||||
|
||||
/*
|
||||
[data-type="themepunch/revslider"] .editor-block-list__block-edit:before {
|
||||
outline: 1px solid rgba(145, 151, 162, 0.25) !important; }
|
||||
*/
|
||||
.editor-block-list-item-themepunch-revslider svg,
|
||||
.components-panel__body.edit-post-block-sidebar__panel svg.dashicons-update {
|
||||
width: 24px;
|
||||
height: 24px; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider .editor-block-types-list__item-title {
|
||||
padding: 4px 1px 4px 1px; }
|
||||
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
/**
|
||||
* Blocks Initializer
|
||||
*
|
||||
* Enqueue CSS/JS of all the blocks.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @package CGB
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if(!defined('ABSPATH')) exit();
|
||||
|
||||
if(!class_exists('RevSliderGutenberg')){
|
||||
|
||||
class RevSliderGutenberg {
|
||||
|
||||
private $prefix;
|
||||
|
||||
public function __construct($pre){
|
||||
$this->prefix = $pre;
|
||||
|
||||
// add ThemePunch block category
|
||||
add_filter('block_categories', array($this, 'create_block_category'), 10, 2);
|
||||
|
||||
// Hook: Frontend assets.
|
||||
add_action('enqueue_block_assets', array($this, 'revslider_gutenberg_cgb_block_assets'));
|
||||
|
||||
// Hook: Editor assets.
|
||||
add_action('enqueue_block_editor_assets', array($this, 'revslider_gutenberg_cgb_editor_assets'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Check Array for Value Recursive
|
||||
*/
|
||||
private function in_array_r($needle, $haystack, $strict = false){
|
||||
if(is_array($haystack) && !empty($haystack)){
|
||||
foreach($haystack as $item){
|
||||
if(($strict ? $item === $needle : $item == $needle) || (is_array($item) && $this->in_array_r($needle, $item, $strict))){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add ThemePunch Gutenberg Block Category
|
||||
*/
|
||||
public function create_block_category($categories, $post){
|
||||
if($this->in_array_r('themepunch', $categories)){
|
||||
return $categories;
|
||||
}
|
||||
|
||||
return array_merge($categories, array(array('slug' => 'themepunch', 'title' => __('ThemePunch', 'revslider'))));
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue Gutenberg block assets for both frontend + backend.
|
||||
*
|
||||
* @uses {wp-editor} for WP editor styles.
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function revslider_gutenberg_cgb_block_assets(){ // phpcs:ignore
|
||||
// Styles.
|
||||
wp_enqueue_style(
|
||||
'revslider_gutenberg-cgb-style-css', // Handle.
|
||||
plugins_url( $this->prefix . 'dist/blocks.style.build.css', dirname( __FILE__ )), // Block style CSS.
|
||||
array('wp-editor'), // Dependency to include the CSS after it.
|
||||
RS_REVISION// filemtime( plugin_dir_path( __DIR__ ) . 'dist/blocks.style.build.css') // Version: File modification time.
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue Gutenberg block assets for backend editor.
|
||||
*
|
||||
* @uses {wp-blocks} for block type registration & related functions.
|
||||
* @uses {wp-element} for WP Element abstraction — structure of blocks.
|
||||
* @uses {wp-i18n} to internationalize the block's text.
|
||||
* @uses {wp-editor} for WP editor styles.
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function revslider_gutenberg_cgb_editor_assets(){ // phpcs:ignore
|
||||
// Scripts.
|
||||
wp_enqueue_script(
|
||||
'revslider_gutenberg-cgb-block-js', // Handle.
|
||||
plugins_url( $this->prefix . 'dist/blocks.build.js', dirname( __FILE__ )), // Block.build.js: We register the block here. Built with Webpack.
|
||||
array('wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor'), // Dependencies, defined above.
|
||||
// filemtime( plugin_dir_path( __DIR__ ) . 'dist/blocks.build.js'), // Version: File modification time.
|
||||
RS_REVISION,
|
||||
true // Enqueue the script in the footer.
|
||||
);
|
||||
|
||||
// Styles.
|
||||
wp_enqueue_style(
|
||||
'revslider_gutenberg-cgb-block-editor-css', // Handle.
|
||||
plugins_url( $this->prefix . 'dist/blocks.editor.build.css', dirname( __FILE__ )), // Block editor CSS.
|
||||
array('wp-edit-blocks'), // Dependency to include the CSS after it.
|
||||
RS_REVISION
|
||||
// filemtime( plugin_dir_path( __DIR__ ) . 'dist/blocks.editor.build.css') // Version: File modification time.
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "revslider-gutenberg-cgb-guten-block",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "cgb-scripts start",
|
||||
"build": "cgb-scripts build",
|
||||
"eject": "cgb-scripts eject"
|
||||
},
|
||||
"dependencies": {
|
||||
"cgb-scripts": "^1.17.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Name: revslider-gutenberg — CGB Gutenberg Block Plugin
|
||||
* Plugin URI: https://github.com/ahmadawais/create-guten-block/
|
||||
* Description: revslider-gutenberg — is a Gutenberg plugin created via create-guten-block.
|
||||
* Author: mrahmadawais, maedahbatool
|
||||
* Author URI: https://AhmadAwais.com/
|
||||
* Version: 1.0.0
|
||||
* License: GPL2+
|
||||
* License URI: https://www.gnu.org/licenses/gpl-2.0.txt
|
||||
*
|
||||
* @package CGB
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Block Initializer.
|
||||
*/
|
||||
require_once plugin_dir_path( __FILE__ ) . 'src/gutenberg-block.php';
|
||||
new RevSliderGutenberg('');
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,172 @@
|
||||
/**
|
||||
* Block dependencies
|
||||
*/
|
||||
import './style.scss';
|
||||
import './editor.scss';
|
||||
|
||||
/**
|
||||
* Internal block libraries
|
||||
*/
|
||||
const { __ } = wp.i18n;
|
||||
const { registerBlockType } = wp.blocks;
|
||||
const { TextControl, Button } = wp.components;
|
||||
const { Component } = wp.element;
|
||||
|
||||
/**
|
||||
* RevSlider Editor Element
|
||||
*/
|
||||
export class RevSlider extends Component {
|
||||
|
||||
constructor() {
|
||||
|
||||
super( ...arguments );
|
||||
const { attributes: { text, sliderTitle, modal } } = this.props;
|
||||
this.state = {
|
||||
text,
|
||||
sliderTitle,
|
||||
modal
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
|
||||
if(!this.props.attributes.checked) {
|
||||
|
||||
this.props.attributes.checked = true;
|
||||
//RS_SC_WIZARD.openTemplateLibrary();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
const {
|
||||
attributes: { text, sliderTitle, modal },
|
||||
setAttributes } = this.props;
|
||||
|
||||
window.revslider_react = this;
|
||||
|
||||
const openDialog = () => {
|
||||
RS_SC_WIZARD.openTemplateLibrary();
|
||||
}
|
||||
|
||||
const openSliderEditor = () => {
|
||||
RS_SC_WIZARD.openSliderEditor();
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="revslider_block" data-modal={ this.state.modal } >
|
||||
<span><i class="material-icons">picture_in_picture</i>{this.state.sliderTitle} </span>
|
||||
<TextControl
|
||||
className="slider_slug"
|
||||
value={ this.state.text }
|
||||
onChange={ ( text ) => setAttributes( { text: this.state.text } ) }
|
||||
/>
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { openSliderEditor }
|
||||
className="slider_editor_button"
|
||||
>
|
||||
edit
|
||||
</Button>
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { openDialog }
|
||||
className="slider_edit_button"
|
||||
>
|
||||
Select Module
|
||||
</Button>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register block
|
||||
*/
|
||||
export default registerBlockType(
|
||||
'themepunch/revslider',
|
||||
{
|
||||
title: __( 'Slider Revolution', 'revslider' ),
|
||||
description: __( 'Add your Slider Revolution.', 'revslider' ),
|
||||
category: 'themepunch',
|
||||
icon: {
|
||||
src: 'update',
|
||||
background: 'rgb(94, 53, 177)',
|
||||
color: 'white',
|
||||
viewbox: "0 0 24 24"
|
||||
},
|
||||
keywords: [
|
||||
__( 'Banner', 'revslider' ),
|
||||
__( 'CTA', 'revslider' ),
|
||||
__( 'Slider', 'revslider' ),
|
||||
],
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
modal: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
}
|
||||
},
|
||||
edit: props => {
|
||||
const { setAttributes } = props;
|
||||
return (
|
||||
<div>
|
||||
<RevSlider {...{ setAttributes, ...props }} />
|
||||
</div>
|
||||
);
|
||||
},
|
||||
save: props => {
|
||||
const { attributes: { text, sliderTitle, modal } } = props;
|
||||
return (
|
||||
<div className="revslider" data-modal={modal} data-slidertitle={sliderTitle}>
|
||||
{text}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
deprecated: [
|
||||
{
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
}
|
||||
},
|
||||
save( props ) {
|
||||
return (
|
||||
<div className="revslider" data-slidertitle={props.attributes.sliderTitle}>
|
||||
{props.attributes.text}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
);
|
||||
@@ -0,0 +1,290 @@
|
||||
/**
|
||||
* Block dependencies
|
||||
*/
|
||||
import './style.scss';
|
||||
import './editor.scss';
|
||||
|
||||
/**
|
||||
* Internal block libraries
|
||||
*/
|
||||
const { __ } = wp.i18n;
|
||||
const { registerBlockType } = wp.blocks;
|
||||
const { TextControl, Button, ToggleControl, PanelBody } = wp.components;
|
||||
const { Component } = wp.element;
|
||||
const { InspectorControls } = wp.blockEditor;
|
||||
|
||||
/**
|
||||
* RevSlider Editor Element
|
||||
*/
|
||||
export class RevSlider extends Component {
|
||||
|
||||
constructor() {
|
||||
|
||||
super( ...arguments );
|
||||
const { attributes: { text, sliderTitle, modal, sliderImage, hideSliderImage } } = this.props;
|
||||
this.state = {
|
||||
text,
|
||||
sliderTitle,
|
||||
modal,
|
||||
sliderImage,
|
||||
hideSliderImage,
|
||||
message : ''
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
if(!this.props.attributes.text && wp.data.select( 'core/editor' ).hasChangedContent()) {
|
||||
window.revslider_react = this;
|
||||
//this.props.attributes.checked = true;
|
||||
RS_SC_WIZARD.openTemplateLibrary();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
openDialog = () => {
|
||||
window.revslider_react = this;
|
||||
RS_SC_WIZARD.openTemplateLibrary();
|
||||
}
|
||||
|
||||
openSliderEditor = () => {
|
||||
window.revslider_react = this;
|
||||
RS_SC_WIZARD.openSliderEditor();
|
||||
};
|
||||
|
||||
openOptimizer = () => {
|
||||
window.revslider_react = this;
|
||||
RS_SC_WIZARD.openOptimizer();
|
||||
}
|
||||
|
||||
setSliderAttributes = (alias) => {
|
||||
setAttributes( { text: alias } );
|
||||
setAttributes( { sliderImage: this.state.sliderImage } );
|
||||
}
|
||||
|
||||
hideSliderImagePreview = () => {
|
||||
window.revslider_react = this;
|
||||
window.revslider_react.props.setAttributes( { hideSliderImage: this.state.hideSliderImage ? false : true } );
|
||||
this.state.hideSliderImage = this.state.hideSliderImage ? false : true;
|
||||
}
|
||||
|
||||
refreshSliderImage = () => {
|
||||
window.revslider_react = this;
|
||||
var alias_array = this.state.text.split('"');
|
||||
var data;
|
||||
|
||||
RVS.F.ajaxRequest('getSliderImage', { alias : alias_array[1] }, function(response) {
|
||||
if(response.success) {
|
||||
try {
|
||||
data = JSON.stringify(response.image);
|
||||
data = JSON.parse(data);
|
||||
}
|
||||
catch(e) {
|
||||
data = false;
|
||||
}
|
||||
|
||||
if(data) {
|
||||
window.revslider_react.props.setAttributes( { sliderImage: data } );
|
||||
window.revslider_react.setState({ sliderImage: data });
|
||||
window.revslider_react.setState({ message : ''});
|
||||
//window.revslider_react.state.sliderImage = window.revslider_react.props.attributes.sliderImage = data;
|
||||
//window.revslider_react.forceUpdate();
|
||||
}
|
||||
else {
|
||||
//console.log('No image');
|
||||
window.revslider_react.setState({message: __('No Admin Thumb set')});
|
||||
window.setTimeout(function(){window.revslider_react.setState({ message : ''});},4000);
|
||||
}
|
||||
}
|
||||
else {
|
||||
window.revslider_react.setState({message: __('No Admin Thumb set')});
|
||||
window.setTimeout(function(){window.revslider_react.setState({ message : ''});},4000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
render() {
|
||||
|
||||
const {
|
||||
attributes: { text, sliderTitle, sliderImage, modal },
|
||||
setAttributes } = this.props;
|
||||
|
||||
window.revslider_react = this;
|
||||
|
||||
return [
|
||||
<InspectorControls>
|
||||
<PanelBody title={ __('Admin Thumb') } initialOpen={ true }>
|
||||
<div className="showHideButtons">
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.refreshSliderImage }
|
||||
className="hideSilderImage"
|
||||
>
|
||||
|
||||
{ this.state.sliderImage ? 'cached' : 'insert_photo' }
|
||||
</Button>
|
||||
<span>{ this.state.sliderImage ? __('Refresh Thumb') : __('Load Thumb') }</span>
|
||||
</div>
|
||||
<div className="sliderImageMessage">{this.state.message}</div>
|
||||
{
|
||||
this.state.sliderImage && (
|
||||
<div className="showHideButtons">
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.hideSliderImagePreview }
|
||||
className={ 'hideSilderImage' }
|
||||
>
|
||||
{ !this.state.hideSliderImage ? 'visibility_off' : 'visibility'}
|
||||
</Button>
|
||||
<span>{ this.state.hideSliderImage ? __('Show Thumb') : __('Hide Thumb') }</span>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
</PanelBody>
|
||||
<PanelBody title={ __('Optimization') } initialOpen={ true }>
|
||||
<div className="optimizerButtons">
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.openOptimizer }
|
||||
className={ 'optimizerOpen' }
|
||||
>
|
||||
flash_on
|
||||
</Button>
|
||||
<span>Optimize File Sizes</span>
|
||||
</div>
|
||||
</PanelBody>
|
||||
|
||||
|
||||
</InspectorControls>
|
||||
,
|
||||
<div className="revslider_block" data-modal={ this.state.modal } >
|
||||
<div class="sliderBar">
|
||||
<span>{this.state.sliderTitle} </span>
|
||||
<TextControl
|
||||
className="slider_slug"
|
||||
value={ this.state.text }
|
||||
onChange={ ( text ) => setSliderAttributes ( this.state.text ) }
|
||||
/>
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.openSliderEditor }
|
||||
className="slider_editor_button"
|
||||
>
|
||||
edit
|
||||
</Button>
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.openDialog }
|
||||
className="slider_edit_button"
|
||||
>
|
||||
Select Module
|
||||
</Button>
|
||||
</div>
|
||||
{
|
||||
this.state.sliderImage && !this.state.hideSliderImage && (
|
||||
<div className="sliderImage">
|
||||
<div style={{ backgroundImage : 'url(' + this.state.sliderImage +')'}}></div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register block
|
||||
*/
|
||||
export default registerBlockType(
|
||||
'themepunch/revslider',
|
||||
{
|
||||
title: __( 'Slider Revolution', 'revslider' ),
|
||||
description: __( 'Add your Slider Revolution.', 'revslider' ),
|
||||
category: 'themepunch',
|
||||
icon: {
|
||||
src: 'update',
|
||||
background: 'rgb(94, 53, 177)',
|
||||
color: 'white',
|
||||
viewbox: "0 0 24 24"
|
||||
},
|
||||
keywords: [
|
||||
__( 'Banner', 'revslider' ),
|
||||
__( 'CTA', 'revslider' ),
|
||||
__( 'Slider', 'revslider' ),
|
||||
],
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
modal: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
},
|
||||
sliderImage: {
|
||||
type:'string'
|
||||
},
|
||||
hideSliderImage:{
|
||||
boolean: false
|
||||
}
|
||||
},
|
||||
edit: props => {
|
||||
const { setAttributes } = props;
|
||||
return (
|
||||
<div>
|
||||
<RevSlider {...{ setAttributes, ...props }} />
|
||||
</div>
|
||||
);
|
||||
},
|
||||
save: props => {
|
||||
const { attributes: { text, sliderTitle, modal } } = props;
|
||||
return (
|
||||
<div className="revslider" data-modal={modal} data-slidertitle={sliderTitle}>
|
||||
{text}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
deprecated: [
|
||||
{
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
}
|
||||
},
|
||||
save( props ) {
|
||||
return (
|
||||
<div className="revslider" data-slidertitle={props.attributes.sliderTitle}>
|
||||
{props.attributes.text}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
);
|
||||
@@ -0,0 +1,164 @@
|
||||
|
||||
div.revslider_block {
|
||||
background: url(images/rs6_logo_2x.png);
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
line-height: 32px; }
|
||||
|
||||
div.revslider_block .components-text-control__input {
|
||||
display: none; }
|
||||
|
||||
div.revslider_block span {
|
||||
font-weight: 700;
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
||||
font-size: 16px; }
|
||||
|
||||
div.revslider_block .slider_slug {
|
||||
float: left; }
|
||||
|
||||
div.revslider_block .slider_edit_button {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.revslider_block .slider_editor_button {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
font-size: 16px;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga';
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div.revslider_block .slider_edit_button, div.revslider_block .slider_editor_button, div.revslider_block .slider_edit_button:focus , div.revslider_block .slider_editor_button:focus, div.revslider_block .slider_edit_button:active , div.revslider_block .slider_editor_button:active, div.revslider_block .slider_edit_button:active:enabled , div.revslider_block .slider_editor_button:active:enabled{
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div.revslider_block .slider_edit_button:hover, div.revslider_block .slider_editor_button:hover{
|
||||
filter: brightness(120%);
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
[data-type="themepunch/revslider"] .editor-block-list__block-edit:before {
|
||||
outline: 1px solid rgba(145, 151, 162, 0.25) !important; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider svg,
|
||||
.components-panel__body.edit-post-block-sidebar__panel svg.dashicons-update {
|
||||
width: 24px;
|
||||
height: 24px; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider .editor-block-types-list__item-title {
|
||||
padding: 4px 1px 4px 1px; }
|
||||
|
||||
.sliderBar{
|
||||
padding-left: 160px;
|
||||
}
|
||||
.sliderImage{
|
||||
background: #e3e5e8;
|
||||
text-align: center;
|
||||
line-height: 0;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sliderImage div {
|
||||
width: 267px;
|
||||
height:150px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
background-size: cover;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.showSilderImage {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
/*font-size: 16px;*/
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga';
|
||||
}
|
||||
|
||||
.hideSilderImage{
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
/*font-size: 16px;*/
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga';
|
||||
}
|
||||
|
||||
.showHideButtons span, .optimizerButtons span {
|
||||
line-height: 28px;
|
||||
}
|
||||
|
||||
.optimizerOpen {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
/*font-size: 16px;*/
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga';
|
||||
}
|
||||
|
||||
.wp-block[data-type="themepunch/revslider"] .editor-block-toolbar > .components-toolbar svg {
|
||||
color: inherit!important;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
div.revslider_block {
|
||||
background: url(images/rs6_logo_2x.png);
|
||||
background-size: 120px 30px;
|
||||
background-repeat: no-repeat;
|
||||
line-height: 32px; }
|
||||
|
||||
div.revslider_block .components-text-control__input {
|
||||
display: none; }
|
||||
|
||||
div.revslider_block span {
|
||||
font-weight: bold;
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; }
|
||||
|
||||
div.revslider_block .slider_slug {
|
||||
float: left; }
|
||||
|
||||
div.revslider_block .slider_edit_button {
|
||||
float: right; }
|
||||
|
||||
[data-type="themepunch/revslider"] .editor-block-list__block-edit:before {
|
||||
outline: 1px solid rgba(145, 151, 162, 0.25) !important; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider svg,
|
||||
.components-panel__body.edit-post-block-sidebar__panel svg.dashicons-update {
|
||||
width: 24px;
|
||||
height: 24px; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider .editor-block-types-list__item-title {
|
||||
padding: 4px 1px 4px 1px; }
|
||||
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Gutenberg Blocks
|
||||
*
|
||||
* All blocks related JavaScript files should be imported here.
|
||||
* You can create a new block folder in this dir and include code
|
||||
* for that block here as well.
|
||||
*
|
||||
* All blocks should be included here since this is the file that
|
||||
* Webpack is compiling as the input file.
|
||||
*/
|
||||
|
||||
import './revslider';
|
||||
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* #.# Common SCSS
|
||||
*
|
||||
* Can include things like variables and mixins
|
||||
* that are used across the project.
|
||||
*/
|
||||
|
||||
// Colors.
|
||||
$black: rgb(41, 41, 41);
|
||||
$white: #f4f4f4;
|
||||
$gray: #dedede;
|
||||
$green: #bada55;
|
||||
$red: orangered;
|
||||
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
/**
|
||||
* Blocks Initializer
|
||||
*
|
||||
* Enqueue CSS/JS of all the blocks.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @package CGB
|
||||
*/
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
if( ! class_exists( 'RevSliderGutenberg' ) ) {
|
||||
|
||||
class RevSliderGutenberg {
|
||||
|
||||
private $prefix;
|
||||
|
||||
public function __construct($pre) {
|
||||
|
||||
$this->prefix = $pre;
|
||||
|
||||
// add ThemePunch block category
|
||||
add_filter('block_categories', array($this, 'create_block_category'), 10, 2);
|
||||
|
||||
// Hook: Frontend assets.
|
||||
add_action( 'enqueue_block_assets', array( $this, 'revslider_gutenberg_cgb_block_assets' ) );
|
||||
|
||||
// Hook: Editor assets.
|
||||
add_action( 'enqueue_block_editor_assets', array( $this, 'revslider_gutenberg_cgb_editor_assets' ) );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check Array for Value Recursive
|
||||
*/
|
||||
private function in_array_r($needle, $haystack, $strict = false){
|
||||
if(is_array($haystack) && !empty($haystack)){
|
||||
foreach($haystack as $item){
|
||||
if(($strict ? $item === $needle : $item == $needle) || (is_array($item) && $this->in_array_r($needle, $item, $strict))){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add ThemePunch Gutenberg Block Category
|
||||
*/
|
||||
public function create_block_category($categories, $post) {
|
||||
|
||||
if($this->in_array_r('themepunch', $categories)){
|
||||
return $categories;
|
||||
}
|
||||
|
||||
return array_merge($categories, array(array('slug' => 'themepunch', 'title' => __('ThemePunch', 'revslider'))));
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue Gutenberg block assets for both frontend + backend.
|
||||
*
|
||||
* @uses {wp-editor} for WP editor styles.
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function revslider_gutenberg_cgb_block_assets() { // phpcs:ignore
|
||||
// Styles.
|
||||
wp_enqueue_style(
|
||||
'revslider_gutenberg-cgb-style-css', // Handle.
|
||||
plugins_url( $this->prefix . 'dist/blocks.style.build.css', dirname( __FILE__ ) ), // Block style CSS.
|
||||
array( 'wp-editor' ) // Dependency to include the CSS after it.
|
||||
// filemtime( plugin_dir_path( __DIR__ ) . 'dist/blocks.style.build.css' ) // Version: File modification time.
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue Gutenberg block assets for backend editor.
|
||||
*
|
||||
* @uses {wp-blocks} for block type registration & related functions.
|
||||
* @uses {wp-element} for WP Element abstraction — structure of blocks.
|
||||
* @uses {wp-i18n} to internationalize the block's text.
|
||||
* @uses {wp-editor} for WP editor styles.
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function revslider_gutenberg_cgb_editor_assets() { // phpcs:ignore
|
||||
// Scripts.
|
||||
wp_enqueue_script(
|
||||
'revslider_gutenberg-cgb-block-js', // Handle.
|
||||
plugins_url( $this->prefix . 'dist/blocks.build.js', dirname( __FILE__ ) ), // Block.build.js: We register the block here. Built with Webpack.
|
||||
array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ), // Dependencies, defined above.
|
||||
// filemtime( plugin_dir_path( __DIR__ ) . 'dist/blocks.build.js' ), // Version: File modification time.
|
||||
true // Enqueue the script in the footer.
|
||||
);
|
||||
|
||||
// Styles.
|
||||
wp_enqueue_style(
|
||||
'revslider_gutenberg-cgb-block-editor-css', // Handle.
|
||||
plugins_url( $this->prefix . 'dist/blocks.editor.build.css', dirname( __FILE__ ) ), // Block editor CSS.
|
||||
array( 'wp-edit-blocks' ) // Dependency to include the CSS after it.
|
||||
// filemtime( plugin_dir_path( __DIR__ ) . 'dist/blocks.editor.build.css' ) // Version: File modification time.
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
const deprecated = [
|
||||
{
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
modal: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
},
|
||||
sliderImage: {
|
||||
type:'string'
|
||||
},
|
||||
hideSliderImage:{
|
||||
boolean: false
|
||||
}
|
||||
},
|
||||
save( props ) {
|
||||
const { attributes: { text, sliderTitle, modal } } = props;
|
||||
return (
|
||||
<div className="revslider" data-modal={modal} data-slidertitle={sliderTitle}>
|
||||
{text}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
}
|
||||
},
|
||||
save( props ) {
|
||||
return (
|
||||
<div className="revslider" data-slidertitle={props.attributes.sliderTitle}>
|
||||
{props.attributes.text}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
modal: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
popup: {
|
||||
type: 'object'
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
},
|
||||
sliderImage: {
|
||||
type:'string'
|
||||
},
|
||||
hideSliderImage:{
|
||||
boolean: false
|
||||
},
|
||||
offset: {
|
||||
type: 'object'
|
||||
},
|
||||
layout: {
|
||||
type: 'string '
|
||||
},
|
||||
alias: {
|
||||
type: 'string'
|
||||
},
|
||||
zindex: {
|
||||
type: 'string'
|
||||
},
|
||||
shortcode: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
save( props ) {
|
||||
const { attributes: { text, sliderTitle, modal, zindex } } = props;
|
||||
let style;
|
||||
style = zindex ? "z-index:"+zindex+";" : "";
|
||||
return (
|
||||
<div className="revslider" data-modal={modal} data-slidertitle={sliderTitle} style={style}>
|
||||
{text}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
},
|
||||
{
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
modal: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
popup: {
|
||||
type: 'object'
|
||||
},
|
||||
content: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
sliderTitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
},
|
||||
sliderImage: {
|
||||
type:'string'
|
||||
},
|
||||
hideSliderImage:{
|
||||
boolean: false
|
||||
},
|
||||
offset: {
|
||||
type: 'object'
|
||||
},
|
||||
layout: {
|
||||
type: 'string '
|
||||
},
|
||||
alias: {
|
||||
type: 'string'
|
||||
},
|
||||
zindex: {
|
||||
type: 'string'
|
||||
},
|
||||
shortcode: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
save( props ) {
|
||||
const { attributes: { text, content, sliderTitle, modal, zindex } } = props;
|
||||
let style;
|
||||
style = zindex ? "z-index:" + zindex + ";" : "";
|
||||
let shortcode = !content && text ? text : content;
|
||||
return (
|
||||
<div className="revslider" data-modal={ modal } data-slidertitle={ sliderTitle } style={ style }>
|
||||
{ shortcode }
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
export {deprecated};
|
||||
@@ -0,0 +1,119 @@
|
||||
div.revslider_block {
|
||||
background: url(images/rs6_logo_2x.png);
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
line-height: 32px; }
|
||||
div.revslider_block .components-text-control__input {
|
||||
display: none; }
|
||||
div.revslider_block span {
|
||||
font-weight: 700;
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
||||
font-size: 16px; }
|
||||
div.revslider_block .slider_slug {
|
||||
float: left; }
|
||||
div.revslider_block .slider_edit_button {
|
||||
float: right; }
|
||||
div.revslider_block .slider_editor_button {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
font-size: 16px;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga';
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff; }
|
||||
div.revslider_block .slider_edit_button, div.revslider_block .slider_editor_button, div.revslider_block .slider_edit_button:focus, div.revslider_block .slider_editor_button:focus, div.revslider_block .slider_edit_button:active, div.revslider_block .slider_editor_button:active, div.revslider_block .slider_edit_button:active:enabled, div.revslider_block .slider_editor_button:active:enabled,
|
||||
div.revslider_block .slider_edit_button.components-button, div.revslider_block .slider_editor_button.components-button, div.revslider_block .slider_edit_button.components-button:focus, div.revslider_block .slider_editor_button.components-button:focus, div.revslider_block .slider_edit_button.components-button:active, div.revslider_block .slider_editor_button.components-button:active, div.revslider_block .slider_edit_button.components-button:active:enabled, div.revslider_block .slider_editor_button.components-button:active:enabled {
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff; }
|
||||
div.revslider_block .slider_edit_button:hover, div.revslider_block .slider_editor_button:hover {
|
||||
-webkit-filter: brightness(120%);
|
||||
filter: brightness(120%);
|
||||
border-color: #5e35b1;
|
||||
background: #5e35b1;
|
||||
color: #fff; }
|
||||
.editor-block-list-item-themepunch-revslider svg,
|
||||
.components-panel__body.edit-post-block-sidebar__panel svg.dashicons-update {
|
||||
width: 24px;
|
||||
height: 24px; }
|
||||
.editor-block-list-item-themepunch-revslider .editor-block-types-list__item-title {
|
||||
padding: 4px 1px 4px 1px; }
|
||||
.sliderBar {
|
||||
padding-left: 160px; }
|
||||
.sliderImage {
|
||||
background: #e3e5e8;
|
||||
text-align: center;
|
||||
line-height: 0;
|
||||
margin-top: 20px; }
|
||||
.sliderImage div {
|
||||
width: 267px;
|
||||
height: 150px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%;
|
||||
background-size: cover;
|
||||
margin: 0 auto; }
|
||||
.showSilderImage {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 26px;
|
||||
/*font-size: 16px;*/
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga'; }
|
||||
.hideSilderImage {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
vertical-align: top;
|
||||
line-height: 13px !important;
|
||||
/*font-size: 16px;*/
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-rendering: optimizeLegibility;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-feature-settings: 'liga';
|
||||
font-feature-settings: 'liga'; }
|
||||
.wp-block[data-type="themepunch/revslider"] .editor-block-toolbar > .components-toolbar svg {
|
||||
color: inherit !important; }
|
||||
.wp-block[data-type="themepunch/revslider"] .editor-block-list__block-edit.block-editor-block-list__block-edit { background: #f6f6f9 }
|
||||
.wp-block[data-type="themepunch/revslider"] .revslider_block { background-position: 14px 14px; }
|
||||
.wp-block[data-type="themepunch/revslider"] .revslider_block .sliderBar { padding: 14px 14px 14px 160px; }
|
||||
.wp-block[data-type="themepunch/revslider"] .revslider_block .sliderImage { margin-top: 0px; padding: 14px; }
|
||||
.wp-block[data-type="themepunch/revslider"] .sliderBar button { display: none; }
|
||||
.wp-block[data-type="themepunch/revslider"].is-hovered .sliderBar button,
|
||||
.wp-block[data-type="themepunch/revslider"].is-selected .sliderBar button { display: inline-block; }
|
||||
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
* Block dependencies
|
||||
*/
|
||||
import './style.scss';
|
||||
import './editor.scss';
|
||||
|
||||
/**
|
||||
* Internal block libraries
|
||||
*/
|
||||
const { __ } = wp.i18n;
|
||||
const { registerBlockType } = wp.blocks;
|
||||
|
||||
import { deprecated } from './deprecated';
|
||||
import { RevSlider } from './revslider';
|
||||
|
||||
/**
|
||||
* Register block
|
||||
*/
|
||||
export default registerBlockType(
|
||||
'themepunch/revslider',
|
||||
{
|
||||
title: __( 'Slider Revolution', 'revslider' ),
|
||||
description: __( 'Add your Slider Revolution Module!', 'revslider' ),
|
||||
category: 'themepunch',
|
||||
icon: {
|
||||
src: 'update',
|
||||
background: 'rgb(94, 53, 177)',
|
||||
color: 'white',
|
||||
viewbox: "0 0 28 28"
|
||||
},
|
||||
keywords: [
|
||||
__( 'Banner', 'revslider' ),
|
||||
__( 'CTA', 'revslider' ),
|
||||
__( 'Slider', 'revslider' ),
|
||||
],
|
||||
attributes: {
|
||||
checked: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
modal: {
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
content: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
text: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'text',
|
||||
},
|
||||
slidertitle: {
|
||||
selector: '.revslider',
|
||||
type: 'string',
|
||||
source: 'attribute',
|
||||
attribute: 'data-slidertitle',
|
||||
},
|
||||
sliderImage: {
|
||||
type:'string'
|
||||
},
|
||||
hideSliderImage:{
|
||||
boolean: false
|
||||
},
|
||||
alias: {
|
||||
type: 'string'
|
||||
},
|
||||
zindex: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
edit: props => {
|
||||
const { setAttributes } = props;
|
||||
return (
|
||||
<div>
|
||||
<RevSlider {...{ setAttributes, ...props }} />
|
||||
</div>
|
||||
);
|
||||
},
|
||||
deprecated,
|
||||
save: props => {
|
||||
const { attributes: { text, content, slidertitle, modal, zindex } } = props;
|
||||
let style;
|
||||
style = zindex ? "z-index:"+zindex+";" : "";
|
||||
let shortcode = !content && text ? text : content;
|
||||
return (
|
||||
<div className="revslider" data-modal={modal} data-slidertitle={slidertitle} style={style}>
|
||||
{shortcode}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
@@ -0,0 +1,93 @@
|
||||
/**
|
||||
* RevSlider Editor Element
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Internal block libraries
|
||||
*/
|
||||
const { Component } = wp.element;
|
||||
|
||||
/**
|
||||
* Component RevSlider for usage in block
|
||||
*/
|
||||
export class RevSliderImage extends Component {
|
||||
|
||||
constructor() {
|
||||
super( ...arguments );
|
||||
this.state = {
|
||||
response : undefined,
|
||||
alias : this.props.attributes.alias,
|
||||
slidertitle: this.props.attributes.slidertitle,
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// Load Slider Image before it is mounted
|
||||
componentWillMount(){
|
||||
this.loadSliderImage();
|
||||
}
|
||||
|
||||
// Load Slider Image when it is mounted
|
||||
componentDidMount() {
|
||||
//this.loadSliderImage();
|
||||
}
|
||||
|
||||
// When new Props are send to the Block it will reload the image when the alias has changed
|
||||
componentWillReceiveProps(){
|
||||
if(this.state.alias != this.props.attributes.alias)
|
||||
this.loadSliderImage();
|
||||
}
|
||||
|
||||
// Loads the Slider Admin Thumb via Ajax Call
|
||||
loadSliderImage(){
|
||||
this.setState({response: undefined});
|
||||
this.setState({alias: this.props.attributes.alias});
|
||||
var self = this;
|
||||
if(!this.props.attributes.alias){
|
||||
if(this.props.attributes.content!==undefined || this.props.attributes.text!==undefined){
|
||||
let shortcode = this.props.attributes.content!==undefined ? RVS.SC.parseShortCode(this.props.attributes.content) : RVS.SC.parseShortCode(this.props.attributes.text);
|
||||
if(shortcode.attributes.alias) {
|
||||
this.props.attributes.alias = shortcode.attributes.alias;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(this.props.attributes.alias){
|
||||
RVS.F.ajaxRequest('getSliderImage', { alias : this.props.attributes.alias }, function(response) {
|
||||
if(response.success) {
|
||||
if (response!==undefined && response.image!==undefined) {
|
||||
self.setState({
|
||||
response
|
||||
});
|
||||
}
|
||||
RVS.F.showWaitAMinute({fadeIn:0,text:RVS_LANG.loadingcontent});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Renders the different states of the image (loading, loaded and no image)
|
||||
render() {
|
||||
//Image Loaded
|
||||
if(this.state.response && this.state.response.image !== ""){
|
||||
return [
|
||||
<div className="sliderImage">
|
||||
<div style={{ backgroundImage : 'url(' + this.state.response.image +')'}}></div>
|
||||
</div>
|
||||
]
|
||||
}
|
||||
else {
|
||||
//Image Loading
|
||||
if(!this.state.response)
|
||||
return [
|
||||
<div className="sliderImageLoading"></div>
|
||||
]
|
||||
//No Image
|
||||
else {
|
||||
return [
|
||||
<div className="noSliderImage"></div>
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
/**
|
||||
* RevSlider Editor Element
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Internal block libraries
|
||||
*/
|
||||
const { Component } = wp.element;
|
||||
const { TextControl, Button, Tooltip } = wp.components;
|
||||
if(typeof wp.blockEditor !== 'undefined')
|
||||
var { InspectorControls } = wp.blockEditor;
|
||||
else
|
||||
var { InspectorControls } = wp.editor;
|
||||
|
||||
|
||||
import { RevSliderImage } from './revSliderImage';
|
||||
|
||||
/**
|
||||
* Component RevSlider for usage in block
|
||||
*/
|
||||
export class RevSlider extends Component {
|
||||
|
||||
constructor() {
|
||||
super( ...arguments );
|
||||
this.state = jQuery.extend(true,{},this.props.attributes);
|
||||
window.revslider_react = {};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
revslider_react = this;
|
||||
// Create Block in RVS with current state
|
||||
RVS.SC.BLOCK = this.state;
|
||||
|
||||
// Open Template Library when block is added for the first time to the page
|
||||
if(!this.props.attributes.content && !this.props.attributes.text && wp.data.select( 'core/editor' ).isEditedPostDirty()) {
|
||||
RVS.SC.openTemplateLibrary('gutenberg');
|
||||
}
|
||||
else{
|
||||
// Fallback for saved blocks with no alias attribute (< RevSlider V6.1.6)
|
||||
if(!this.props.attributes.alias){
|
||||
let shortcode = this.props.attributes.content!==undefined ? RVS.SC.parseShortCode(this.props.attributes.content) : RVS.SC.parseShortCode(this.props.attributes.text);
|
||||
if(shortcode.attributes.alias) {
|
||||
this.props.attributes.alias = shortcode.attributes.alias;
|
||||
RVS.SC.BLOCK.alias = this.props.attributes.alias;
|
||||
this.props.setAttributes( { alias : shortcode.attributes.alias } );
|
||||
}
|
||||
}
|
||||
if(!this.props.attributes.slidertitle ){
|
||||
if(this.props.attributes.sliderTitle){
|
||||
this.props.setAttributes( { slidertitle : this.props.attributes.sliderTitle } );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Open Block Settings like offset, popup, admin thumb
|
||||
openBlockSettings = () => {
|
||||
var data = false;
|
||||
RVS.SC.BLOCK = this.state;
|
||||
revslider_react = this;
|
||||
if(!this.props.attributes.alias) return false;
|
||||
RVS.SC.openBlockSettings('gutenberg',this.props.attributes.content);
|
||||
};
|
||||
|
||||
// Open Template Library
|
||||
openLibrary = () => {
|
||||
revslider_react = this;
|
||||
RVS.SC.BLOCK = this.props.attributes;
|
||||
RVS.SC.openTemplateLibrary('gutenberg');
|
||||
}
|
||||
|
||||
// Link to Slider Editor in new tab
|
||||
openSliderEditor = () => {
|
||||
if(!this.props.attributes.alias) return false;
|
||||
RVS.SC.openSliderEditor(this.props.attributes.alias);
|
||||
};
|
||||
|
||||
// Open File Optimizer PopUp
|
||||
openOptimizer = () => {
|
||||
if(!this.props.attributes.alias) return false;
|
||||
RVS.SC.openOptimizer(this.props.attributes.alias);
|
||||
}
|
||||
|
||||
// Update Attributes in case Slider alias changes
|
||||
setSliderAttributes = (alias) => {
|
||||
setAttributes( { alias } );
|
||||
setAttributes( { sliderImage: this.state.sliderImage } );
|
||||
}
|
||||
|
||||
render() {
|
||||
revslider_react = this;
|
||||
// Set Attributes from State (state was changed in RevSlider JS)
|
||||
this.props.setAttributes(this.state);
|
||||
const { setAttributes } = this.props;
|
||||
|
||||
// Turn off Styling in Block Options Sidebar when leaving block
|
||||
{
|
||||
!this.props.isSelected &&
|
||||
(RVS.SC.updateBlockViews(false))
|
||||
}
|
||||
|
||||
if(!this.props.attributes.slidertitle ){
|
||||
if(this.props.attributes.sliderTitle){
|
||||
this.props.setAttributes( { slidertitle : this.props.attributes.sliderTitle } );
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
<InspectorControls>
|
||||
{
|
||||
this.props.attributes.alias &&
|
||||
<div className="rs_optimizer_button_wrapper" onClick={ this.openOptimizer } >
|
||||
<Button
|
||||
isDefault
|
||||
className={ 'rs_optimizer_button' }
|
||||
>
|
||||
flash_on
|
||||
</Button>
|
||||
<span>Optimize File Sizes</span>
|
||||
</div>
|
||||
}
|
||||
</InspectorControls>
|
||||
,
|
||||
<div className="revslider_block" data-modal={ this.props.attributes.modal } >
|
||||
<div class="sliderBar">
|
||||
<span>{ this.props.attributes.slidertitle } </span>
|
||||
<TextControl
|
||||
className="slider_slug"
|
||||
value={ this.props.attributes.content }
|
||||
onChange={ ( content ) => setSliderAttributes ( this.props.attributes.content ) }
|
||||
/>
|
||||
|
||||
<Tooltip text="Open Block Settings">
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.openBlockSettings }
|
||||
className="slider_editor_button"
|
||||
>
|
||||
tune
|
||||
</Button>
|
||||
</Tooltip>
|
||||
<Tooltip text="Open Slider Editor">
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.openSliderEditor }
|
||||
className="slider_editor_button"
|
||||
>
|
||||
edit
|
||||
</Button>
|
||||
</Tooltip>
|
||||
<Button
|
||||
isDefault
|
||||
onClick = { this.openLibrary }
|
||||
className="slider_edit_button"
|
||||
>
|
||||
Select Module
|
||||
</Button>
|
||||
|
||||
</div>
|
||||
<RevSliderImage {...{ setAttributes, ...this.props }} />
|
||||
</div>
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
div.revslider_block {
|
||||
background: url(images/rs6_logo_2x.png);
|
||||
background-size: 120px 30px;
|
||||
background-repeat: no-repeat;
|
||||
line-height: 32px; }
|
||||
|
||||
div.revslider_block .components-text-control__input {
|
||||
display: none; }
|
||||
|
||||
div.revslider_block span {
|
||||
font-weight: bold;
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; }
|
||||
|
||||
div.revslider_block .slider_slug {
|
||||
float: left; }
|
||||
|
||||
div.revslider_block .slider_edit_button {
|
||||
float: right; }
|
||||
|
||||
/*
|
||||
[data-type="themepunch/revslider"] .editor-block-list__block-edit:before {
|
||||
outline: 1px solid rgba(145, 151, 162, 0.25) !important; }
|
||||
*/
|
||||
|
||||
.editor-block-list-item-themepunch-revslider svg,
|
||||
.components-panel__body.edit-post-block-sidebar__panel svg.dashicons-update {
|
||||
width: 24px;
|
||||
height: 24px; }
|
||||
|
||||
.editor-block-list-item-themepunch-revslider .editor-block-types-list__item-title {
|
||||
padding: 4px 1px 4px 1px; }
|
||||
@@ -0,0 +1,289 @@
|
||||
<?php
|
||||
/**
|
||||
* @author ThemePunch <info@themepunch.com>
|
||||
* @link https://www.themepunch.com/
|
||||
* @copyright 2019 ThemePunch
|
||||
*/
|
||||
|
||||
if(!defined('ABSPATH')) exit();
|
||||
|
||||
class RevSliderShortcodeWizard extends RevSliderFunctions {
|
||||
|
||||
public static function enqueue_scripts(){
|
||||
global $pagenow;
|
||||
|
||||
$f = new RevSliderFunctions();
|
||||
$action = $f->get_val($_GET, 'action');
|
||||
if($action === 'elementor') return;
|
||||
|
||||
// only add scripts if native WordPress editor, Gutenberg or Visual Composer
|
||||
// Elementor has its own hooks for adding scripts
|
||||
if($action === 'edit' || $pagenow === 'post-new.php' || $f->get_val($_GET, 'vc_action', '') === 'vc_inline'){
|
||||
self::add_scripts();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static function add_styles(){
|
||||
wp_enqueue_style('revslider-material-icons', RS_PLUGIN_URL . 'admin/assets/icons/material-icons.css', array(), RS_REVISION);
|
||||
wp_enqueue_style('revslider-basics-css', RS_PLUGIN_URL . 'admin/assets/css/basics.css', array(), RS_REVISION);
|
||||
wp_enqueue_style('rs-color-picker-css', RS_PLUGIN_URL . 'admin/assets/css/tp-color-picker.css', array(), RS_REVISION);
|
||||
wp_enqueue_style('revbuilder-select2RS', RS_PLUGIN_URL . 'admin/assets/css/select2RS.css', array(), RS_REVISION);
|
||||
}
|
||||
|
||||
public static function add_scripts($elementor = false){
|
||||
|
||||
$f = new RevSliderFunctions();
|
||||
$action = $f->get_val($_GET, 'action');
|
||||
if($elementor && $action !== 'elementor') return;
|
||||
|
||||
require_once(RS_PLUGIN_PATH . 'admin/includes/functions-admin.class.php');
|
||||
require_once(RS_PLUGIN_PATH . 'admin/includes/template.class.php');
|
||||
require_once(RS_PLUGIN_PATH . 'admin/includes/folder.class.php');
|
||||
require_once(RS_PLUGIN_PATH . 'public/revslider-front.class.php');
|
||||
|
||||
//check user permissions
|
||||
if(!current_user_can('edit_posts') && !current_user_can('edit_pages')) return;
|
||||
if(!$elementor){
|
||||
//verify the post type
|
||||
global $typenow;
|
||||
|
||||
$post_types = get_post_types();
|
||||
if(empty($post_types) || !is_array($post_types)) $post_types = array('post', 'page');
|
||||
if(!in_array($typenow, $post_types)) return;
|
||||
|
||||
$current_screen = get_current_screen();
|
||||
|
||||
// checks for built-in gutenberg version
|
||||
$is_gutenberg = method_exists($current_screen, 'is_block_editor') && $current_screen->is_block_editor();
|
||||
|
||||
// checks for old plugin version
|
||||
if(!$is_gutenberg) $is_gutenberg = function_exists('is_gutenberg_page') && is_gutenberg_page();
|
||||
|
||||
// gutenberg
|
||||
if(!$is_gutenberg){
|
||||
add_filter('mce_external_plugins', array('RevSliderShortcodeWizard', 'add_tinymce_shortcode_editor_plugin'));
|
||||
add_filter('mce_buttons', array('RevSliderShortcodeWizard', 'add_tinymce_shortcode_editor_button'));
|
||||
}
|
||||
|
||||
// enqueue styles
|
||||
self::add_styles();
|
||||
}
|
||||
|
||||
$output_class = new RevSliderOutput();
|
||||
$output_class->add_inline_double_jquery_error(true);
|
||||
echo RevSliderFront::js_set_start_size();
|
||||
|
||||
$dev_mode = (!file_exists(RS_PLUGIN_PATH.'admin/assets/js/plugins/utils.min.js') && !file_exists(RS_PLUGIN_PATH.'admin/assets/js/modules/editor.min.js')) ? true : false;
|
||||
|
||||
if($dev_mode === true){
|
||||
wp_enqueue_script('revbuilder-basics', RS_PLUGIN_URL . 'admin/assets/js/modules/basics.js', array('jquery'), RS_REVISION, false);
|
||||
wp_enqueue_script('revbuilder-select2RS', RS_PLUGIN_URL . 'admin/assets/js/plugins/select2RS.full.min.js', array('jquery'), RS_REVISION, false);
|
||||
wp_enqueue_script('revbuilder-color-picker-js', RS_PLUGIN_URL . 'admin/assets/js/plugins/tp-color-picker.min.js', array('jquery', 'revbuilder-select2RS', 'wp-color-picker'), RS_REVISION);
|
||||
wp_enqueue_script('revbuilder-clipboard', RS_PLUGIN_URL . 'admin/assets/js/plugins/clipboard.min.js', array('jquery'), RS_REVISION, false);
|
||||
wp_enqueue_script('revbuilder-utils', RS_PLUGIN_URL . 'admin/assets/js/modules/objectlibrary.js', array('jquery'), RS_REVISION, false);
|
||||
wp_enqueue_script('revbuilder-optimizer', RS_PLUGIN_URL . 'admin/assets/js/modules/optimizer.js', array('jquery'), RS_REVISION, false);
|
||||
}else{
|
||||
wp_enqueue_script('revbuilder-utils', RS_PLUGIN_URL . 'admin/assets/js/plugins/utils.min.js', array('jquery','wp-color-picker'), RS_REVISION, false);
|
||||
}
|
||||
|
||||
wp_enqueue_script('tp-tools', RS_PLUGIN_URL . 'public/assets/js/rbtools.min.js', array('jquery'), RS_REVISION, true);
|
||||
|
||||
// object library translations
|
||||
wp_localize_script('revbuilder-utils', 'RVS_LANG', array(
|
||||
'sliderasmodal' => __('Use as Modal', 'revslider'),
|
||||
'noadminthumbs' => __('No Admin Thumb set', 'revslider'),
|
||||
'corejs' => __('Core JavaScript', 'revslider'),
|
||||
'corecss' => __('Core CSS', 'revslider'),
|
||||
'coretools' => __('Core Tools (GreenSock & Co)', 'revslider'),
|
||||
'enablecompression' => __('Enable Server Compression', 'revslider'),
|
||||
'noservercompression' => __('Not Available, read FAQ', 'revslider'),
|
||||
'servercompression' => __('Serverside Compression', 'revslider'),
|
||||
'sizeafteroptim' => __('Size after Optimization', 'revslider'),
|
||||
'chgimgsizesrc' => __('Change Image Size or Src', 'revslider'),
|
||||
'pickandim' => __('Pick another Dimension', 'revslider'),
|
||||
'optimize' => __('Optimize', 'revslider'),
|
||||
'applychanges' => __('Apply Changes', 'revslider'),
|
||||
'savechanges' => __('Save Changes', 'revslider'),
|
||||
'suggestion' => __('Suggestion', 'revslider'),
|
||||
'toosmall' => __('Too Small', 'revslider'),
|
||||
'standard1x' => __('Standard (1x)', 'revslider'),
|
||||
'retina2x' => __('Retina (2x)', 'revslider'),
|
||||
'oversized' => __('Oversized', 'revslider'),
|
||||
'quality' => __('Quality', 'revslider'),
|
||||
'file' => __('File', 'revslider'),
|
||||
'resize' => __('Resize', 'revslider'),
|
||||
'lowquality' => __('Optimized (Low Quality)', 'revslider'),
|
||||
'notretinaready' => __('Not Retina Ready', 'revslider'),
|
||||
'element' => __('Element', 'revslider'),
|
||||
'calculating' => __('Calculating...', 'revslider'),
|
||||
'filesize' => __('File Size', 'revslider'),
|
||||
'dimension' => __('Dimension', 'revslider'),
|
||||
'dimensions' => __('Dimensions', 'revslider'),
|
||||
'optimization' => __('Optimization', 'revslider'),
|
||||
'optimized' => __('Optimized', 'revslider'),
|
||||
'smartresize' => __('Smart Resize', 'revslider'),
|
||||
'optimal' => __('Optimal', 'revslider'),
|
||||
'recommended' => __('Recommended', 'revslider'),
|
||||
'hrecommended' => __('Highly Recommended', 'revslider'),
|
||||
'optimizertitel' => __('File Size Optimizer', 'revslider'),
|
||||
'loadedmediafiles' => __('Loaded Media Files', 'revslider'),
|
||||
'loadedmediainfo' => __('Optimize to save up to ', 'revslider'),
|
||||
'optselection' => __('Optimize Selection', 'revslider'),
|
||||
'copyrightandlicenseinfo' => __('© Copyright & License Info', 'revslider'),
|
||||
'ol_images' => __('Images', 'revslider'),
|
||||
'ol_layers' => __('Layer Objects', 'revslider'),
|
||||
'ol_objects' => __('Objects', 'revslider'),
|
||||
'ol_modules' => __('Own Modules', 'revslider'),
|
||||
'ol_fonticons' => __('Font Icons', 'revslider'),
|
||||
'ol_moduletemplates' => __('Module Templates', 'revslider'),
|
||||
'ol_videos' => __('Videos', 'revslider'),
|
||||
'ol_svgs' => __('SVG\'s', 'revslider'),
|
||||
'ol_favorite' => __('Favorites', 'revslider'),
|
||||
'simproot' => __('Root', 'revslider'),
|
||||
'loading' => __('Loading', 'revslider'),
|
||||
'elements' => __('Elements', 'revslider'),
|
||||
'loadingthumbs' => __('Loading Thumbnails...', 'revslider'),
|
||||
'moduleBIG' => __('MODULE', 'revslider'),
|
||||
'packageBIG' => __('PACKAGE', 'revslider'),
|
||||
'installed' => __('Installed', 'revslider'),
|
||||
'notinstalled' => __('Not Installed', 'revslider'),
|
||||
'setupnotes' => __('Setup Notes', 'revslider'),
|
||||
'requirements' => __('Requirements', 'revslider'),
|
||||
'installedversion' => __('Installed Version', 'revslider'),
|
||||
'availableversion' => __('Available Version', 'revslider'),
|
||||
'installpackage' => __('Installing Template Package', 'revslider'),
|
||||
'installtemplate' => __('Install Template', 'revslider'),
|
||||
'licencerequired' => __('Activate License', 'revslider'),
|
||||
'redownloadTemplate' => __('Re-Download Online', 'revslider'),
|
||||
'createBlankPage' => __('Create Blank Page', 'revslider'),
|
||||
'please_wait_a_moment' => __('Please Wait a Moment', 'revslider'),
|
||||
'search' => __('Search', 'revslider'),
|
||||
'folderBIG' => __('FOLDER', 'revslider'),
|
||||
'objectBIG' => __('OBJECT', 'revslider'),
|
||||
'imageBIG' => __('IMAGE', 'revslider'),
|
||||
'videoBIG' => __('VIDEO', 'revslider'),
|
||||
'iconBIG' => __('ICON', 'revslider'),
|
||||
'svgBIG' => __('SVG', 'revslider'),
|
||||
'fontBIG' => __('FONT', 'revslider'),
|
||||
'show' => __('Show', 'revslider'),
|
||||
'perpage' => __('Per Page', 'revslider'),
|
||||
'updatefromserver' => __('Update List', 'revslider'),
|
||||
'imageisloading' => __('Image is Loading...', 'revslider'),
|
||||
'importinglayers' => __('Importing Layers...', 'revslider'),
|
||||
'layerwithaction' => __('Layer with Action', 'revslider'),
|
||||
'triggeredby' => __('Behavior', 'revslider'),
|
||||
'nrlayersimporting' => __('Layers Importing', 'revslider'),
|
||||
'nothingselected' => __('Nothing Selected', 'revslider'),
|
||||
'sortbycreation' => __('Sort by Creation', 'revslider'),
|
||||
'creationascending' => __('Creation Ascending', 'revslider'),
|
||||
'sortbytitle' => __('Sort by Title', 'revslider'),
|
||||
'titledescending' => __('Title Descending', 'revslider'),
|
||||
'active_sr_to_access' => __('Register Slider Revolution<br>to Unlock Premium Features', 'revslider'),
|
||||
'addons' => __('Add-Ons', 'revslider'),
|
||||
'active_sr_tmp_obl' => __('Template & Object Library', 'revslider'),
|
||||
'active_sr_inst_upd' => __('Instant Updates', 'revslider'),
|
||||
'active_sr_one_on_one' => __('1on1 Support', 'revslider'),
|
||||
'membersarea' => __('Members Area', 'revslider'),
|
||||
'onelicensekey' => __('1 License Key per Website!', 'revslider'),
|
||||
'onepurchasekey' => __('1 Purchase Code per Website!', 'revslider'),
|
||||
'onelicensekey_info' => __('If you want to use your license key on another domain, please<br> deregister it in the members area or use a different key.', 'revslider'),
|
||||
'onepurchasekey_info' => __('If you want to use your purchase code on<br>another domain, please deregister it first or', 'revslider'),
|
||||
'registeredlicensekey' => __('Registered License Key', 'revslider'),
|
||||
'registeredpurchasecode' => __('Registered Purchase Code', 'revslider'),
|
||||
'registerlicensekey' => __('Register License Key', 'revslider'),
|
||||
'registerpurchasecode' => __('Register Purchase Code', 'revslider'),
|
||||
'registerCode' => __('Register this Code', 'revslider'),
|
||||
'registerKey' => __('Register this License Key', 'revslider'),
|
||||
'deregisterCode' => __('Deregister this Code', 'revslider'),
|
||||
'deregisterKey' => __('Deregister this License Key', 'revslider'),
|
||||
'active_sr_plg_activ' => __('Register Purchase Code', 'revslider'),
|
||||
'active_sr_plg_activ_key' => __('Register License Key', 'revslider'),
|
||||
'getpurchasecode' => __('Get a Purchase Code', 'revslider'),
|
||||
'getlicensekey' => __('Licensing Options', 'revslider'),
|
||||
'ihavepurchasecode' => __('I have a Purchase Code', 'revslider'),
|
||||
'ihavelicensekey' => __('I have a License Key', 'revslider'),
|
||||
'enterlicensekey' => __('Enter License Key', 'revslider'),
|
||||
'enterpurchasecode' => __('Enter Purchase Code', 'revslider')
|
||||
|
||||
));
|
||||
|
||||
wp_enqueue_script('revbuildet-shortcode-generator-js', RS_PLUGIN_URL . 'admin/assets/js/shortcode_generator/shortcode_generator.js', array('jquery'), RS_REVISION, true);
|
||||
|
||||
$rsaf = new RevSliderFunctionsAdmin();
|
||||
$rsa = $rsaf->get_short_library();
|
||||
|
||||
if(!empty($rsa)) $obj = $rsaf->json_encode_client_side($rsa);
|
||||
|
||||
$rs_compression = $rsaf->compression_settings();
|
||||
$favs = get_option('rs_favorite', array());
|
||||
$favs = !empty($favs) ? $rsaf->json_encode_client_side($favs) : false;
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
window.RVS = window.RVS === undefined ? {F:{}, C:{}, ENV:{}, LIB:{}, V:{}, S:{}} : window.RVS;
|
||||
RVS.LIB.OBJ = RVS.LIB.OBJ===undefined ? {} : RVS.LIB.OBJ;
|
||||
|
||||
var RS_DEFALIAS,
|
||||
RS_SHORTCODE_FAV;
|
||||
|
||||
RVS.ENV.plugin_url = '<?php echo RS_PLUGIN_URL; ?>';
|
||||
RVS.ENV.plugin_dir = 'revslider';
|
||||
RVS.ENV.admin_url = '<?php echo admin_url('admin.php?page=revslider'); ?>';
|
||||
RVS.ENV.nonce = '<?php echo wp_create_nonce('revslider_actions'); ?>';
|
||||
RVS.ENV.activated = '<?php echo (get_option('revslider-valid', 'false')) == 'true' ? 'true' : 'false'; ?>';
|
||||
RVS.ENV.activated = RVS.ENV.activated == 'true' || RVS.ENV.activated == true ? true : false;
|
||||
RVS.ENV.selling = <?php echo ($rsaf->get_addition('selling') === true) ? 'true' : 'false'; ?>;
|
||||
|
||||
window.addEventListener('load', function(){
|
||||
RVS.ENV.output_compress = <?php echo (!empty($rs_compression)) ? 'jQuery.parseJSON('. $rsaf->json_encode_client_side($rs_compression) .')' : '[]'; ?>;
|
||||
<?php if(!empty($rsa)){ ?>
|
||||
RVS.LIB.OBJ = {shortcode_generator: true, types: jQuery.parseJSON(<?php echo $obj; ?>)};
|
||||
<?php }else{ ?>
|
||||
RVS.LIB.OBJ = {};
|
||||
<?php }
|
||||
if(!empty($favs)){ ?>
|
||||
RS_SHORTCODE_FAV = jQuery.parseJSON(<?php echo $favs; ?>);
|
||||
<?php } ?>
|
||||
});
|
||||
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function enqueue_files(){
|
||||
|
||||
echo '<div id="rb_modal_underlay" style="display:none"></div>';
|
||||
|
||||
require_once(RS_PLUGIN_PATH . 'admin/views/modals-copyright.php');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* add script tinymce shortcode script
|
||||
* @since: 5.1.1
|
||||
*/
|
||||
public static function add_tinymce_shortcode_editor_plugin($plugin_array){
|
||||
$plugin_array['revslider_sc_button'] = RS_PLUGIN_URL . 'admin/assets/js/shortcode_generator/tinymce.js';
|
||||
|
||||
return $plugin_array;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add button to tinymce
|
||||
* @since: 5.1.1
|
||||
*/
|
||||
public static function add_tinymce_shortcode_editor_button($buttons){
|
||||
array_push($buttons, 'revslider_sc_button');
|
||||
|
||||
return $buttons;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* old classname extends new one (old classnames will be obsolete soon)
|
||||
* @since: 5.0
|
||||
**/
|
||||
class RevSlider_TinyBox extends RevSliderShortcodeWizard {}
|
||||
class RevSliderTinyBox extends RevSlider_TinyBox {}
|
||||
?>
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/**
|
||||
* called from revslider-front.class.php
|
||||
* @since: 6.1.6
|
||||
*/
|
||||
|
||||
if(!defined('ABSPATH')) exit();
|
||||
|
||||
class RevSliderWpbakeryShortcode {
|
||||
|
||||
public static function visual_composer_include(){
|
||||
|
||||
// VC is enabled
|
||||
if(defined('WPB_VC_VERSION') && function_exists('vc_map')){
|
||||
vc_map(
|
||||
array(
|
||||
'name' => __('Slider Revolution 6', 'revslider'),
|
||||
'base' => 'rev_slider',
|
||||
'icon' => 'icon-wpb-revslider',
|
||||
'category' => __('Content', 'revslider'),
|
||||
'show_settings_on_create' => false,
|
||||
'js_view' => 'VcSliderRevolution',
|
||||
'admin_enqueue_js' => RS_PLUGIN_URL.'admin/assets/js/shortcode_generator/vc.js',
|
||||
'front_enqueue_js' => RS_PLUGIN_URL.'admin/assets/js/shortcode_generator/vc.js',
|
||||
'params' => array(
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('Modal', 'revslider'),
|
||||
'param_name' => 'modal',
|
||||
'admin_label' => false,
|
||||
'value' => ''
|
||||
),
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('Popup', 'revslider'),
|
||||
'param_name' => 'popup',
|
||||
'admin_label' => false,
|
||||
'value' => ''
|
||||
),
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('Title', 'revslider'),
|
||||
'param_name' => 'slidertitle',
|
||||
'admin_label' => true,
|
||||
'value' => ''
|
||||
),
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('Alias', 'revslider'),
|
||||
'param_name' => 'alias',
|
||||
'admin_label' => true,
|
||||
'value' => ''
|
||||
),
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('Offset', 'revslider'),
|
||||
'param_name' => 'offset',
|
||||
'admin_label' => false,
|
||||
'value' => ''
|
||||
),
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('Layout', 'revslider'),
|
||||
'param_name' => 'layout',
|
||||
'admin_label' => false,
|
||||
'value' => ''
|
||||
),
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('z-Index', 'revslider'),
|
||||
'param_name' => 'zindex',
|
||||
'admin_label' => false,
|
||||
'value' => ''
|
||||
),
|
||||
array(
|
||||
'type' => 'rev_slider_shortcode',
|
||||
'heading' => __('Usage', 'revslider'),
|
||||
'param_name' => 'usage',
|
||||
'admin_label' => false,
|
||||
'value' => ''
|
||||
),
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||