Hotel Raxa - Advanced Booking System Implementation

🏨 Hotel Booking Enhancements:
- Implemented Eagle Booking Advanced Pricing add-on
- Added Booking.com-style rate management system
- Created professional calendar interface for pricing
- Integrated deals and discounts functionality

💰 Advanced Pricing Features:
- Dynamic pricing models (per room, per person, per adult)
- Base rates, adult rates, and child rates management
- Length of stay discounts and early bird deals
- Mobile rates and secret deals implementation
- Seasonal promotions and flash sales

📅 Availability Management:
- Real-time availability tracking
- Stop sell and restriction controls
- Closed to arrival/departure functionality
- Minimum/maximum stay requirements
- Automatic sold-out management

💳 Payment Integration:
- Maintained Redsys payment gateway integration
- Seamless integration with existing Eagle Booking
- No modifications to core Eagle Booking plugin

🛠️ Technical Implementation:
- Custom database tables for advanced pricing
- WordPress hooks and filters integration
- AJAX-powered admin interface
- Data migration from existing Eagle Booking
- Professional calendar view for revenue management

📊 Admin Interface:
- Booking.com-style management dashboard
- Visual rate and availability calendar
- Bulk operations for date ranges
- Statistics and analytics dashboard
- Modal dialogs for quick editing

🔧 Code Quality:
- WordPress coding standards compliance
- Secure database operations with prepared statements
- Proper input validation and sanitization
- Error handling and logging
- Responsive admin interface

🤖 Generated with Claude Code (https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Hotel Raxa Dev
2025-07-11 07:43:22 +02:00
commit 5b1e2453c7
9816 changed files with 2784509 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
<?php
class RevsliderDivi extends DiviExtension {
/**
* The gettext domain for the extension's translations.
*
* @since 1.0.0
*
* @var string
*/
public $gettext_domain = 'revslider';
/**
* The extension's WP Plugin name.
*
* @since 1.0.0
*
* @var string
*/
public $name = 'revslider-divi';
/**
* The extension's version
*
* @since 1.0.0
*
* @var string
*/
public $version = '1.0.0';
/**
* The extension's version
*
* @since 1.0.0
*
* @var string
*/
public $required_divi_core_version = '4.9.0';
/**
* REDI_RevsliderDivi constructor.
*
* @param string $name
* @param array $args
*/
public function __construct( $name = 'revslider-divi', $args = array() ) {
//compare divi version with required version
if (!function_exists('_et_core_find_latest')) return;
$divi_core_version = _et_core_find_latest('version');
if (version_compare($divi_core_version, $this->required_divi_core_version) < 0) {
return;
}
$this->plugin_dir = plugin_dir_path( __FILE__ );
$this->plugin_dir_url = plugin_dir_url( $this->plugin_dir );
parent::__construct( $name, $args );
if(!current_user_can('edit_posts') && !current_user_can('edit_pages')) return;
if (!empty($_GET['et_fb'])) {
//load revslider styles and scripts needed for shortcode wizard
require_once(RS_PLUGIN_PATH . 'admin/includes/shortcode_generator/shortcode_generator.class.php');
RevSliderShortcodeWizard::add_styles();
wp_enqueue_style('rs-new-plugin-settings', RS_PLUGIN_URL_CLEAN . 'admin/assets/css/builder.css', array('revslider-basics-css'), RS_REVISION);
add_action( 'wp_enqueue_scripts', array($this, 'add_scripts') );
}
//load revslider modals html via separate ajax request
//divi move content from window to iframe, we need to load it once again
add_filter('revslider_do_ajax', array($this, 'shortcode_enqueue_files'), 10, 3);
}
public function add_scripts()
{
RevSliderShortcodeWizard::add_scripts(false, true);
wp_localize_script('revbuilder-utils', 'RVS_DIVI_LANG', array(
'loading_modals' => __('Loading Settings Modals...', 'revslider'),
'select_module' => __('Select Module', 'revslider'),
'select_module_tip' => __('Select Revolution Slider Module', 'revslider'),
'open_editor_tip' => __('Open Slider Editor', 'revslider'),
'edit_settings_tip' => __('Edit Block Settings', 'revslider'),
'optimize_tip' => __('Optimize File Sizes', 'revslider'),
'current_module' => __('Current Module', 'revslider'),
'slider_not_selected' => __('Slider Not Selected', 'revslider'),
'loading_image' => __('Loading Image...', 'revslider'),
'broken_image' => __('No Image or Loading Error!', 'revslider'),
'error_loading_settings' => __('Error Loading Settings Modals!', 'revslider'),
'none' => __('- None -', 'revslider'),
));
}
public function shortcode_enqueue_files($return, $action, $data)
{
if ($action != 'shortcode_enqueue_files') return $return;
ob_start();
RevSliderShortcodeWizard::enqueue_files();
$html = ob_get_clean();
$return = array(
'message' => 'Load Revslider Settings Modal',
'data' => array(
'html' => $html,
),
);
return $return;
}
}
new RevsliderDivi;

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -0,0 +1,14 @@
<?php
if ( ! class_exists( 'ET_Builder_Element' ) ) {
return;
}
$module_files = glob( __DIR__ . '/modules/*/*.php' );
// Load custom Divi Builder modules
foreach ( (array) $module_files as $module_file ) {
if ( $module_file && preg_match( "/\/modules\/\b([^\/]+)\/\\1\.php$/", $module_file ) ) {
require_once $module_file;
}
}

View File

@@ -0,0 +1,64 @@
<?php
class RevsliderDiviModule extends ET_Builder_Module {
public $slug = 'revslider_divi';
public $vb_support = 'on';
protected $module_credits = array(
'module_uri' => '',
'author' => '',
'author_uri' => '',
);
public function init() {
$this->name = esc_html__( 'Slider Revolution', 'revslider' );
$this->icon_path = plugin_dir_path( __FILE__ ) . 'images/rslogo.svg';
}
public function get_fields() {
return array(
'revslider_divi' => array(
'label' => '',
'type' => 'revslider_divi_input',
'option_category' => 'basic_option',
'description' => esc_html__('Select Revslider module among all the modules you have created.', 'revslider'),
'toggle_slug' => 'revslider_divi',
),
);
}
public function get_settings_modal_toggles() {
return array(
'general' => array(
'toggles' => array(
'revslider_divi' => array(
'priority' => 0,
'title' => esc_html__( 'Slider Revolution', 'revslider' ),
),
),
),
);
}
public function get_advanced_fields_config() {
return array(
'main_content' => false,
'link_options' => false,
'background' => false,
'borders' => false,
'box_shadow' => false,
'button' => false,
'filters' => false,
'fonts' => false,
'margin_padding' => false,
'max_width' => false,
);
}
public function render( $attrs, $content = null, $render_slug = '' ) {
return do_shortcode( et_pb_fix_shortcodes( str_replace( array( '&#91;', '&#93;' ), array( '[', ']' ), $this->props['revslider_divi'] ), true ) );
}
}
new RevsliderDiviModule;

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="140.000000pt" height="140.000000pt" viewBox="0 0 140.000000 140.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,140.000000) scale(0.100000,-0.100000)"
fill="#5e35b1" stroke="none">
<path d="M81 1382 c-19 -9 -44 -30 -55 -45 -21 -28 -21 -37 -21 -637 0 -600 0
-609 21 -637 47 -65 28 -63 674 -63 646 0 627 -2 674 63 21 28 21 37 21 637 0
600 0 609 -21 637 -47 65 -28 63 -674 63 -537 0 -588 -1 -619 -18z m725 -246
c160 -42 287 -174 324 -335 27 -114 -6 -259 -81 -359 l-28 -37 62 -62 61 -63
-187 0 -187 0 0 187 0 187 64 -63 c40 -40 69 -61 76 -56 7 4 23 31 36 59 63
135 3 300 -131 362 -27 13 -62 24 -77 24 l-28 0 0 85 c0 97 -1 97 96 71z
m-176 -181 c0 -102 -4 -185 -8 -185 -4 0 -34 27 -67 60 -67 67 -71 67 -105
-12 -69 -160 28 -348 193 -376 l42 -8 3 -83 3 -84 -48 6 c-112 13 -224 79
-295 172 -111 145 -117 355 -15 507 l40 60 -64 64 -63 64 192 0 192 0 0 -185z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -0,0 +1,13 @@
<?php
if ( ! function_exists( 'revslider_initialize_divi_extension' ) ):
/**
* Creates the extension's main class instance.
*
* @since 1.0.0
*/
function revslider_initialize_divi_extension() {
require_once plugin_dir_path( __FILE__ ) . 'includes/RevsliderDivi.php';
}
add_action( 'divi_extensions_init', 'revslider_initialize_divi_extension' );
endif;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
!function(n){var t={};function r(e){if(t[e])return t[e].exports;var o=t[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:e})},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,"a",t),t},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.p="/",r(r.s=11)}([function(n,t){},function(n,t){},,,,,,,,,,function(n,t,r){r(1),r(0),n.exports=r(12)},function(n,t){jQuery(function(n){})}]);

View File

@@ -0,0 +1,3 @@
// This script is loaded both on the frontend page and in the Visual Builder.
jQuery(function($) {});

View File

@@ -0,0 +1 @@
<?php // Silence is golden

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
<?php // Silence is golden

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,178 @@
<?php
/**
* @author ThemePunch <info@themepunch.com>
* @link https://www.themepunch.com/
* @copyright 2024 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');
}
public function rs_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' => '',
)
);
$this->add_control(
'wrapperid',
array(
//'type' => \Elementor\Controls_Manager::HIDDEN,
'type' => \Elementor\Controls_Manager::TEXT,
'label' => __( 'Wrapper ID', '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 register_controls() {
$this->rs_register_controls();
}
protected function render() {
global $SR_GLOBALS;
if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) $SR_GLOBALS['loaded_by_editor'] = true;
$f = RevSliderGlobals::instance()->get('RevSliderFunctions');
$shortcode = $this->get_settings_for_display( 'shortcode' );
$wrapperid = $this->get_settings_for_display( 'wrapperid' );
$wrapperid = empty($wrapperid) ? '': 'id="' . $f->filter_class_name($wrapperid) . '" ';
$shortcode = do_shortcode( shortcode_unautop( $shortcode ) );
$zindex = $this->get_settings_for_display( 'zindex' );
$style = $zindex ? ' style="z-index:'.esc_attr($zindex).';"' : '';
// hack to make sure object library only opens when the user manually adds a slider to the page
if(empty($shortcode)) {
?>
<script>window.parent.elementorSelectRevSlider();</script>
<?php
}
?>
<div <?php echo $wrapperid; ?>class="wp-block-themepunch-revslider"<?php echo $style;?>><?php echo $shortcode; ?></div>
<?php
if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) $SR_GLOBALS['loaded_by_editor'] = false;
}
}
/**
* function _register_controls() is deprecated since 3.1.0 of Elementor
**/
class RevSliderElementorWidgetPre310 extends RevSliderElementorWidget {
protected function _register_controls() {
$this->rs_register_controls();
}
}

View File

@@ -0,0 +1,60 @@
<?php
/**
* @author ThemePunch <info@themepunch.com>
* @link https://www.themepunch.com/
* @copyright 2024 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
if(version_compare(PHP_VERSION, '3.5.0', '<')){
add_action('elementor/widgets/widgets_registered', array('RevSliderElementor', 'init_elementor_widgets'));
}else{
add_action('elementor/widgets/register', 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;
if(version_compare(ELEMENTOR_VERSION, '3.1.0', '<=')){
$widgets_manager->register_widget_type( new RevSliderElementorWidgetPre310() );
}elseif(version_compare(ELEMENTOR_VERSION, '3.5.0', '<')){
$widgets_manager->register_widget_type( new RevSliderElementorWidget() );
}else{
$widgets_manager->register( new RevSliderElementorWidget() );
}
}
}

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -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/)
[![npm](https://img.shields.io/npm/v/create-guten-block.svg?style=flat-square)](https://www.npmjs.com/package/create-guten-block) [![npm](https://img.shields.io/npm/dt/create-guten-block.svg?style=flat-square&label=downloads)](https://www.npmjs.com/package/create-guten-block) [![license](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square)](https://github.com/ahmadawais/create-guten-block) [![Tweet for help](https://img.shields.io/twitter/follow/mrahmadawais.svg?style=social&label=Tweet%20@MrAhmadAwais)](https://twitter.com/mrahmadawais/) [![GitHub stars](https://img.shields.io/github/stars/ahmadawais/create-guten-block.svg?style=social&label=Stars)](https://github.com/ahmadawais/create-guten-block/stargazers) [![GitHub followers](https://img.shields.io/github/followers/ahmadawais.svg?style=social&label=Follow)](https://github.com/ahmadawais?tab=followers)

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,285 @@
/**
* #.# 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.
*/
/**
* #.# 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: 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;
height: 28px;
line-height: 18px;
vertical-align: top;
border-radius: 2px;
outline: none;
-webkit-box-shadow: none;
box-shadow: none; }
.rs_component_panel .block-editor-block-icon {
border-radius: 2px; }
div.revslider_block .slider_edit_button:hover, div.revslider_block .slider_editor_button:hover {
-webkit-filter: brightness(120%) !important;
filter: brightness(120%) !important;
border-color: #5e35b1 !important;
background: #5e35b1 !important;
color: #fff !important;
-webkit-box-shadow: none !important;
box-shadow: none !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: 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; }
body[class*="version-5-4"] .wp-block[data-type="themepunch/revslider"].block-editor-block-list__block,
.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;
background-color: #fff; }
.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; }
.block-editor-block-list__layout .wp-block.is-selected.wp-block[data-type="themepunch/revslider"].block-editor-block-list__block:not([contenteditable]):focus:after {
-webkit-box-shadow: 0 0 0 1.5px rgba(66, 88, 99, 0.4);
box-shadow: 0 0 0 1.5px rgba(66, 88, 99, 0.4); }
.wp-block[data-type="themepunch/revslider"] .sliderBar span {
white-space: nowrap;
height: 23px;
overflow: hidden;
display: inline-block;
max-width: 100%; }
button.components-button.components-dropdown-menu__toggle.has-icon[aria-label="Slider Revolution"] .dashicon.dashicons.dashicons-update {
margin-left: 0px;
margin-right: 0px; }
.rs_lib_premium_wrap {
font-family: "Roboto";
position: absolute;
top: 5px;
right: 5px;
z-index: 300;
width: auto !important;
height: auto !important; }
.rs_lib_premium_lila,
.rs_lib_premium_red,
.rs_lib_premium_red_hover {
display: none;
background: #ff2021;
line-height: 23px;
padding: 0px 6px;
font-size: 13px;
color: #fff;
font-weight: 600;
position: relative;
z-index: 15;
text-transform: uppercase;
border-radius: 4px; }
.rs_lib_premium_lila {
background: #5c30af;
display: block; }
.sliderImage.tp_premium,
.noSliderImage.tp_premium {
position: relative; }
.noSliderImage.tp_premium {
background: #e3e5e8;
padding: 15px; }
.sliderImage.tp_premium .rs_lib_premium_lila,
.noSliderImage.tp_premium .rs_lib_premium_lila,
.sliderImage.tp_premium .rs_lib_premium_red,
.noSliderImage.tp_premium .rs_lib_premium_red {
width: auto !important;
height: auto !important;
display: inline-block !important;
vertical-align: top; }
.noSliderImage.tp_premium .rs_lib_premium_wrap {
position: relative;
top: auto;
right: auto;
height: 25px !important; }
.rs_n_ac_n .rs_lib_premium_lila {
display: none; }
.rs_n_ac_n .rs_lib_premium_red {
display: block; }
.rs_n_ac_n .rs_library_element:hover .rs_lib_premium_red,
.olibrary_item:hover .rs_n_ac_n .rs_lib_premium_red {
display: none; }
.rs_n_ac_n .rs_library_element:hover .rs_lib_premium_red_hover,
.olibrary_item:hover .rs_n_ac_n .rs_lib_premium_red_hover {
display: block; }
.rs_lib_premium_red_hover .material-icons,
.rs_lib_premium_red .material-icons {
margin-right: 5px; }
.wp-block[data-type="themepunch/revslider"] .sliderBar button.components-button.slider_editor_button span {
position: absolute; }

View File

@@ -0,0 +1,39 @@
/**
* #.# 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; }
.wp-block[data-type="themepunch/revslider"] .sliderBar button.components-button.slider_editor_button span {
position: absolute; }

View File

@@ -0,0 +1 @@
<?php // Silence is golden

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 KiB

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -0,0 +1,112 @@
<?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){
global $wp_version;
$this->prefix = $pre;
// add ThemePunch block category
if(version_compare($wp_version, '5.8', '>=')){
add_filter('block_categories_all', array($this, 'create_block_category'), 10, 2);
}else{ //block_categories is deprecated since 5.8
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(), // 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'), // 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.
);
wp_localize_script( 'revslider_gutenberg-cgb-block-js', 'revslider_gutenberg', array('pluginurl' => RS_PLUGIN_URL) );
// 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.
);
}
}
}

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -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('');

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -0,0 +1,345 @@
<?php
/**
* @author ThemePunch <info@themepunch.com>
* @link https://www.themepunch.com/
* @copyright 2024 ThemePunch
*/
if(!defined('ABSPATH')) exit();
class RevSliderShortcodeWizard extends RevSliderFunctions {
public static function enqueue_scripts(){
global $pagenow;
$f = RevSliderGlobals::instance()->get('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' || $pagenow === 'site-editor.php' || $pagenow === 'widgets.php' || $f->get_val($_GET, 'vc_action', '') === 'vc_inline'){
self::add_scripts();
}
}
/**
* add the styles through the block editor filter
*/
public static function sr_theme_block_editor_assets(){
self::add_styles();
}
public static function add_styles(){
wp_enqueue_style('revslider-material-icons', RS_PLUGIN_URL_CLEAN . 'sr6/assets/fonts/material/material-icons.css', array(), RS_REVISION);
//wp_enqueue_style('revslider-material-icons', RS_PLUGIN_URL_CLEAN . 'admin/assets/icons/material-icons.css', array(), RS_REVISION);
wp_enqueue_style('revslider-basics-css', RS_PLUGIN_URL_CLEAN . 'admin/assets/css/basics.css', array(), RS_REVISION);
wp_enqueue_style('rs-color-picker-css', RS_PLUGIN_URL_CLEAN . 'admin/assets/css/tp-color-picker.css', array(), RS_REVISION);
wp_enqueue_style('revbuilder-ddTP', RS_PLUGIN_URL_CLEAN . 'admin/assets/css/ddTP.css', array(), RS_REVISION);
$f = new RevSliderFunctions();
$url_css = $f->modify_fonts_url('https://fonts.googleapis.com/css2?family=', false);
$url_material = str_replace('css2?', 'icon?', $url_css);
wp_enqueue_style('rs-roboto', $url_css.'Roboto');
wp_enqueue_style('tp-material-icons', $url_material.'Material+Icons', array('revslider-material-icons'), RS_REVISION);
}
public static function add_scripts($elementor = false, $divi = false){
global $SR_GLOBALS;
$f = RevSliderGlobals::instance()->get('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');
if($SR_GLOBALS['front_version'] === 6){
require_once(RS_PLUGIN_PATH . 'sr6/revslider-front.class.php');
}else{
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 && !$divi){
//verify the post type
global $typenow, $pagenow;
if($pagenow !== 'site-editor.php'){
$post_types = get_post_types();
if(empty($post_types) || !is_array($post_types)) $post_types = array('post', 'page');
if(!in_array($typenow, $post_types) && $pagenow !== 'widgets.php') return;
}
$current_screen = get_current_screen();
// checks for built-in gutenberg version
$is_gutenberg = !empty($current_screen) && 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'));
}
if($pagenow !== 'site-editor.php') self::add_styles(); //the styles need to be added through the block editor filter in site editor
}
if($SR_GLOBALS['front_version'] === 6){
if($elementor) $SR_GLOBALS['preview_mode'] = true;
$output_class = new RevSliderOutput();
$output_class->add_inline_double_jquery_error(true);
echo RevSliderFunctions::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_CLEAN . 'admin/assets/js/modules/basics.js', array('jquery'), RS_REVISION, false);
wp_enqueue_script('revbuilder-ddTP', RS_PLUGIN_URL_CLEAN . 'admin/assets/js/plugins/ddTP.js', array('jquery'), RS_REVISION, false);
wp_enqueue_script('revbuilder-color-picker-js', RS_PLUGIN_URL_CLEAN . 'admin/assets/js/plugins/tp-color-picker.min.js', array('jquery', 'revbuilder-ddTP', 'wp-i18n', 'wp-color-picker'), RS_REVISION);
wp_enqueue_script('revbuilder-clipboard', RS_PLUGIN_URL_CLEAN . 'admin/assets/js/plugins/clipboard.min.js', array('jquery'), RS_REVISION, false);
wp_enqueue_script('revbuilder-utils', RS_PLUGIN_URL_CLEAN . 'admin/assets/js/modules/objectlibrary.js', array('jquery'), RS_REVISION, false);
wp_enqueue_script('revbuilder-optimizer', RS_PLUGIN_URL_CLEAN . 'admin/assets/js/modules/optimizer.js', array('jquery'), RS_REVISION, false);
}else{
wp_enqueue_script('revbuilder-utils', RS_PLUGIN_URL_CLEAN . 'admin/assets/js/plugins/utils.min.js', array('jquery', 'wp-i18n', 'wp-color-picker'), RS_REVISION, false);
}
wp_enqueue_script('tp-tools', RS_PLUGIN_URL_CLEAN . 'sr6/assets/js/rbtools.min.js', array('jquery'), RS_TP_TOOLS, true);
if($SR_GLOBALS['front_version'] === 7){ //add v7 scripts/css
$rs_front = RevSliderGlobals::instance()->get('RevSliderFront');
$rs_output = RevSliderGlobals::instance()->get('RevSlider7Output');
wp_enqueue_script('_tpt', RS_PLUGIN_URL_CLEAN . 'public/js/libs/tptools.js', '', RS_REVISION, ['strategy' => 'async']);
wp_enqueue_script('sr7', RS_PLUGIN_URL_CLEAN . 'public/js/sr7.js', '', RS_REVISION, ['strategy' => 'async']);
wp_enqueue_style('sr7css', RS_PLUGIN_URL_CLEAN . 'public/css/sr7.css', '', RS_REVISION);
wp_enqueue_script('sr7migration', RS_PLUGIN_URL_CLEAN . 'public/js/migration.js', '', RS_REVISION, ['strategy' => 'async']);
add_action('wp_footer', array($rs_front, 'load_google_fonts'));
add_action('wp_footer', array($rs_output, 'add_js'), 100);
//wp_enqueue_script('sr7page', RS_PLUGIN_URL_CLEAN . 'public/js/page.js', '', RS_REVISION, ['strategy' => 'async']);
}
// object library translations
wp_localize_script('revbuilder-utils', 'RVS_LANG', array(
'insetrequirements' => __('Move Layer into a Group and set Position to Absolute before selecting Full Inset', 'revslider'),
'notduringinsetmode' => __('Resize and Drag is not available if Layer Size set to Inset', 'revslider'),
'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' => __('&copy; 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'),
'doinstallpackage' => __('Install Template Package', 'revslider'),
'installtemplate' => __('Install Template', 'revslider'),
'installingaddon' => __('Installing Add-on', 'revslider'),
'checkversion' => __('Update To Latest Version', 'revslider'),
'installpackageandaddons' => __('Install Template Package & Addon(s)', 'revslider'),
'installtemplateandaddons' => __('Install Template & Addon(s)', 'revslider'),
'licencerequired' => __('Activate License', 'revslider'),
'redownloadTemplate' => __('Re-Download Online', 'revslider'),
'createBlankPage' => __('Create Blank Page', 'revslider'),
'pluginsmustbeupdated' => __('Plugin Outdated. Please Update', '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' => __('Get a License Key', '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'),
'premium_template' => __('PREMIUM TEMPLATE', 'revslider'),
'rs_premium_content' => __('This is a Premium template from the Slider Revolution <a target="_blank" rel="noopener" href="https://www.sliderrevolution.com/examples/">template library</a>. It can only be used on this website with a <a target="_blank" rel="noopener" href="https://www.sliderrevolution.com/manual/quick-setup-register-your-plugin/?utm_source=admin&utm_medium=button&utm_campaign=srusers&utm_content=registermanual">registered license key</a>.', 'revslider'),
'premium' => __('Premium', 'revslider'),
'premiumunlock' => __('REGISTER LICENSE TO UNLOCK', 'revslider')
));
wp_enqueue_script('revbuildet-shortcode-generator-js', RS_PLUGIN_URL_CLEAN . '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;
$rs_color_picker_presets = RSColorpicker::get_color_presets();
if($SR_GLOBALS['front_version'] === 7){
$rs_front = RevSliderGlobals::instance()->get('RevSliderFront');
$global = $rs_front->get_global_settings();
echo $rs_front->js_add_header_scripts();
}
?>
<script>
var ajaxurl = '<?php echo esc_js( admin_url( 'admin-ajax.php', 'relative' ) ); ?>';
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.ajax_pre = 'rs';
RVS.ENV.ajax_url = '<?php echo esc_js( admin_url( 'admin-ajax.php') ); ?>';
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' || 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'; ?>;
RVS.LIB.COLOR_PRESETS = <?php echo (!empty($rs_color_picker_presets)) ? 'JSON.parse('. $rsaf->json_encode_client_side($rs_color_picker_presets) .')' : '{}'; ?>;
window.addEventListener('load', function(){
RVS.ENV.output_compress = <?php echo (!empty($rs_compression)) ? 'JSON.parse('. $rsaf->json_encode_client_side($rs_compression) .')' : '[]'; ?>;
<?php if(!empty($rsa)){ ?>
RVS.LIB.OBJ = {shortcode_generator: true, types: JSON.parse(<?php echo $obj; ?>)};
<?php }else{ ?>
RVS.LIB.OBJ = {};
<?php }
if(!empty($favs)){ ?>
RS_SHORTCODE_FAV = JSON.parse(<?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 {}

View File

@@ -0,0 +1 @@
<?php // Silence is golden

View File

@@ -0,0 +1,87 @@
<?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' => ''
),
)
)
);
}
}
}