![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/gg.corals.io/wp-content/plugins/custom-facebook-feed/inc/ |
<?php /** * Custom Facebook Feed block with live preview. * * @since 2.3 */ namespace CustomFacebookFeed; use CustomFacebookFeed\Helpers\Util; use CustomFacebookFeed\Builder\CFF_Db; use CustomFacebookFeed\CFF_Utils; class CFF_Blocks { /** * Indicates if current integration is allowed to load. * * @since 1.8 * * @return bool */ public function allow_load() { return function_exists( 'register_block_type' ); } /** * Loads an integration. * * @since 2.3 */ public function load() { $this->hooks(); } /** * Integration hooks. * * @since 2.3 */ protected function hooks() { add_action( 'init', array( $this, 'register_block' ) ); add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) ); /* * Add smashballoon category and Facebook Feed Block * @since 4.1.9 */ add_filter( 'block_categories_all', array( $this, 'register_block_category' ), 10, 2 ); add_action( 'init', array( $this, 'register_facebook_feed_block' ) ); add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_facebook_feed_block_editor_assets' ) ); add_action( 'enqueue_block_editor_assets', array( $this, 'set_script_translations' ) ); } /** * Register Custom Facebook Feed Gutenberg block on the backend. * * @since 2.3 */ public function register_block() { wp_register_style( 'cff-blocks-styles', trailingslashit( CFF_PLUGIN_URL ) . 'assets/css/cff-blocks.css', array( 'wp-edit-blocks' ), CFFVER ); $attributes = array( 'shortcodeSettings' => array( 'type' => 'string', ), 'noNewChanges' => array( 'type' => 'boolean', ), 'executed' => array( 'type' => 'boolean', ) ); register_block_type( 'cff/cff-feed-block', array( 'attributes' => $attributes, 'render_callback' => array( $this, 'get_feed_html' ), ) ); } /** * Load Custom Facebook Feed Gutenberg block scripts. * * @since 2.3 */ public function enqueue_block_editor_assets() { $access_token = get_option('cff_access_token'); \cff_main()->enqueue_styles_assets(); \cff_main()->enqueue_scripts_assets(); #cff_add_my_stylesheet(); #cff_scripts_method(); wp_enqueue_style( 'cff-blocks-styles' ); wp_enqueue_script( 'cff-feed-block', trailingslashit( CFF_PLUGIN_URL ) . 'assets/js/cff-blocks.js', array( 'wp-blocks', 'wp-i18n', 'wp-element' ), CFFVER, true ); $shortcodeSettings = ''; $i18n = array( 'addSettings' => esc_html__( 'Add Settings', 'custom-facebook-feed' ), 'shortcodeSettings' => esc_html__( 'Shortcode Settings', 'custom-facebook-feed' ), 'example' => esc_html__( 'Example', 'custom-facebook-feed' ), 'preview' => esc_html__( 'Apply Changes', 'custom-facebook-feed' ), ); if ( ! empty( $_GET['cff_wizard'] ) ) { $shortcodeSettings = 'feed="' . (int)$_GET['cff_wizard'] . '"'; } wp_localize_script( 'cff-feed-block', 'cff_block_editor', array( 'wpnonce' => wp_create_nonce( 'facebook-blocks' ), 'canShowFeed' => ! empty( $access_token ), 'configureLink' => get_admin_url() . '?page=cff-settings', 'shortcodeSettings' => $shortcodeSettings, 'i18n' => $i18n, ) ); } /** * Get form HTML to display in a Custom Facebook Feed Gutenberg block. * * @param array $attr Attributes passed by Custom Facebook Feed Gutenberg block. * * @since 2.3 * * @return string */ public function get_feed_html( $attr ) { $cff_statuses = get_option( 'cff_statuses', array() ); $return = ''; $shortcode_settings = isset( $attr['shortcodeSettings'] ) ? $attr['shortcodeSettings'] : ''; if ( empty( $cff_statuses['support_legacy_shortcode'] ) ) { if ( empty( $shortcode_settings ) || strpos( $shortcode_settings, 'feed=' ) === false ){ $feeds = \CustomFacebookFeed\Builder\CFF_Feed_Builder::get_feed_list(); $feed_id = $feeds[0]['id']; $shortcode_settings .= ' feed="' . (int)$feed_id . '"'; } } $shortcode_settings = str_replace(array( '[custom-facebook-feed', ']' ), '', $shortcode_settings); $return .= do_shortcode( '[custom-facebook-feed '.$shortcode_settings.']' ); return $return; } /** * Checking if is Gutenberg REST API call. * * @since 2.3 * * @return bool True if is Gutenberg REST API call. */ public static function is_gb_editor() { return defined( 'REST_REQUEST' ) && REST_REQUEST && ! empty( $_REQUEST['context'] ) && 'edit' === $_REQUEST['context']; // phpcs:ignore } /** * Register Block Category * * @since 4.1.9 */ public function register_block_category( $categories, $context ) { $exists = array_search( 'smashballoon', array_column( $categories, 'slug' ) ); if ( $exists !== false ) { return $categories; } return array_merge( $categories, array( array( 'slug' => 'smashballoon', 'title' => __( 'Smash Balloon', 'custom-facebook-feed' ), ), ) ); } /** * Register Block * * @since 4.1.9 */ public function register_facebook_feed_block() { register_block_type( trailingslashit( CFF_PLUGIN_DIR ) . 'assets/dist/sbf-feed', array( 'render_callback' => array( $this, 'render_facebook_feed_block' ), ) ); } /** * Render Block * * @since 4.1.9 */ public function render_facebook_feed_block( $attributes ) { $content = ''; if ( isset( $attributes['feedId'] ) ) { $content = do_shortcode( '[custom-facebook-feed feed=' . (int) $attributes['feedId'] . ']' ); } return $content; } /** * Enqueue Block Assets * * @since 4.1.9 */ public function enqueue_facebook_feed_block_editor_assets() { $asset_file = include_once trailingslashit( CFF_PLUGIN_DIR ) . 'assets/dist/blocks.asset.php'; wp_enqueue_script( 'cff-feed-block-editor', trailingslashit( CFF_PLUGIN_URL ) . 'assets/dist/blocks.js', $asset_file['dependencies'], $asset_file['version'], true ); wp_enqueue_style( 'cff-feed-block-editor', trailingslashit( CFF_PLUGIN_URL ) . 'assets/dist/blocks.css', array(), $asset_file['version'] ); wp_localize_script( 'cff-feed-block-editor', 'cff_feed_block_editor', array( 'feeds' => CFF_Db::feeds_query(), 'feed_url' => admin_url('admin.php?page=cff-feed-builder'), 'plugins_info' => Util::get_smash_plugins_status_info(), 'has_facebook_feed_block' => $this->has_facebook_feed_block(), 'is_pro_active' => CFF_Utils::cff_is_pro_version(), 'nonce' => wp_create_nonce( 'cff-admin' ), ) ); } /** * Set Script Translations * * @since 4.1.9 */ public function set_script_translations() { wp_set_script_translations( 'cff-feed-block-editor', 'custom-facebook-feed', CFF_PLUGIN_DIR . 'languages' ); } /** * Check if the post has a Facebook Feed block * * @since 4.1.9 */ public function has_facebook_feed_block() { return has_block( 'cff/cff-feed-block' ); } }