| Server IP : 185.252.147.100 / Your IP : 216.73.217.33 Web Server : nginx/1.27.3 System : Linux mitrofanov.ru 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 User : mitr ( 1000) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/html/mitrofanov.ru/public/wp-content/plugins/carousel-block/blocks/ |
Upload File : |
<?php
namespace CarouselSliderBlock\Blocks;
use CarouselSliderBlock\Admin\Settings_Utils;
class Carousel_Legacy {
/**
* Registers the legacy carousel and slide blocks.
*/
public function register() {
// Legacy Carousel block without block.json.
wp_register_script(
'cb-carousel-editor',
plugins_url( '../build/carousel-legacy/index.js', __FILE__ ),
[ 'react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n' ],
CB_VERSION,
true
);
wp_register_style(
'cb-carousel-editor-style',
plugins_url( '../build/carousel-legacy/index.css', __FILE__ ),
[ 'wp-edit-blocks' ],
CB_VERSION
);
wp_register_style(
'cb-carousel-style',
plugins_url( '../build/carousel-legacy/style-index.css', __FILE__ ),
[],
CB_VERSION
);
register_block_type( 'cb/carousel', [
'api_version' => 3,
'title' => __( 'Carousel Slider', 'cb' ),
'version' => '1.0.0',
'category' => 'design',
'description' => __( 'Display a carousel with any blocks in the slides.', 'cb' ),
'editor_script' => 'cb-carousel-editor',
'editor_style' => 'cb-carousel-editor-style',
'style' => 'cb-carousel-style',
'supports' => [
'align' => [ 'wide', 'full' ],
'html' => false,
'anchor' => true,
],
'attributes' => [
'slides' => [
'type' => 'number',
],
'slidesToShow' => [
'type' => 'number',
'default' => 3,
],
'scrollGroup' => [
'type' => 'boolean',
'default' => false,
],
'slidesToScroll' => [
'type' => 'number',
'default' => 1,
],
'speed' => [
'type' => 'number',
'default' => 300,
],
'slidePadding' => [
'type' => 'boolean',
],
'arrows' => [
'type' => 'boolean',
'default' => true,
],
'dots' => [
'type' => 'boolean',
'default' => true,
],
'autoplay' => [
'type' => 'boolean',
'default' => false,
],
'autoplaySpeed' => [
'type' => 'number',
'default' => 3000,
],
'infinite' => [
'type' => 'boolean',
'default' => false,
],
'rtl' => [
'type' => 'boolean',
],
'responsiveWidth' => [
'type' => 'number',
'default' => 768,
],
'responsiveSlides' => [
'type' => 'number',
'default' => 1,
],
'responsiveSlidesToScroll' => [
'type' => 'number',
'default' => 1,
],
],
'render_callback' => [ $this, 'render' ],
] );
// Legacy Slide block without block.json
wp_register_script(
'cb-slide-editor',
plugins_url( '../build/slide-legacy/index.js', __FILE__ ),
[ 'react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n' ],
CB_VERSION,
true
);
register_block_type( 'cb/slide', [
'api_version' => 3,
'title' => __( 'Slide', 'cb' ),
'description' => __( 'A single slide within the carousel.', 'cb' ),
'category' => 'design',
'icon' => 'slides',
'parent' => [ 'cb/carousel' ],
'supports' => [ 'html' => false ],
'version' => '1.0.0',
'editor_script' => 'cb-slide-editor',
] );
add_action( 'enqueue_block_editor_assets', [ $this, 'enqueue_editor_warning' ] );
}
/**
* Render callback for the legacy block using Slick.
*
* @param array $attributes Block attributes.
* @param string $content Block save content.
*
* @return string Rendered block content.
*/
public function render( $attributes, $content ) {
if ( ! is_admin() ) {
wp_enqueue_style(
'carousel-block-slick-style',
plugins_url( '/vendor/slick/slick.min.css', __FILE__ ),
[],
CB_VERSION
);
wp_enqueue_script(
'carousel-block-slick-script',
plugins_url( '/vendor/slick/slick.min.js', __FILE__ ),
[ 'jquery' ],
CB_VERSION,
true
);
wp_enqueue_script(
'carousel-block-slick-init',
plugins_url( '/vendor/slick/init.js', __FILE__ ),
[ 'jquery', 'carousel-block-slick-script' ],
CB_VERSION,
true
);
}
return $content;
}
/**
* Enqueues the legacy warning script in the block editor.
*
* @return void
*/
public function enqueue_editor_warning() {
$asset_file = plugin_dir_path( __FILE__ ) . '../build/components/legacy-warning.asset.php';
$script_url = plugins_url( '../build/components/legacy-warning.js', __FILE__ );
$asset_data = file_exists( $asset_file )
? require $asset_file
: [ 'dependencies' => [], 'version' => '1.0.0' ];
wp_enqueue_script(
'cb-legacy-warning',
$script_url,
$asset_data['dependencies'],
$asset_data['version'],
true
);
// Pass plugin settings to JS.
$options = get_option( 'cb_carousel_settings', [] );
wp_localize_script( 'cb-legacy-warning', 'cbLegacySettings', [
'hideLegacyNotice' => (bool) Settings_Utils::get_setting( 'hide_legacy_notice', false ),
] );
}
}