File "Shortcodes.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/the-events-calendar/common/src/Tribe/Service_Providers/Shortcodes.php
File size: 3.29 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Tribe\Service_Providers;
use Tribe\Shortcode\Manager;
use TEC\Common\Contracts\Service_Provider;
/**
* Class Shortcode
*
* @since 4.12.0
*
* @package Tribe\Service_Providers
*/
class Shortcodes extends Service_Provider {
/**
* Binds and sets up implementations.
*
* @since 4.12.0
*/
public function register() {
if ( ! static::is_active() ) {
return;
}
$this->container->singleton( Manager::class, Manager::class );
$this->container->singleton(
'shortcode.manager',
function() {
return $this->container->make( Manager::class );
}
);
$this->register_hooks();
$this->register_assets();
$this->container->singleton( static::class, $this );
}
/**
* Static method wrapper around a filter to allow full deactivation of this provider
*
* @since 4.12.0
*
* @return boolean If this service provider is active.
*/
public static function is_active() {
/**
* Allows filtering to deactivate all shortcodes loading.
*
* @since 4.12.0
*
* @param boolean $is_active If shortcodes should be loaded or not.
*/
return apply_filters( 'tribe_shortcodes_is_active', true );
}
/**
* Register all the assets associated with this service provider.
*
* @since 4.12.0
*/
protected function register_assets() {
}
/**
* Registers the provider handling all the 1st level filters and actions for this service provider.
*
* @since 4.12.0
*/
protected function register_hooks() {
add_action( 'init', [ $this, 'action_add_shortcodes' ], 20 );
add_filter( 'pre_do_shortcode_tag', [ $this, 'filter_pre_do_shortcode_tag' ], 10, 4 );
add_filter( 'do_shortcode_tag', [ $this, 'filter_do_shortcode_tag' ], 10, 4 );
}
/**
* Adds the new shortcodes, this normally will trigger on `init@P20` due to how we the
* v1 is added on `init@P10` and we remove them on `init@P15`.
*
* It's important to leave gaps on priority for better injection.
*
* @since 4.12.0
*/
public function action_add_shortcodes() {
$this->container->make( Manager::class )->add_shortcodes();
}
/**
* Filters `pre_do_shortcode_tag` to mark that a tribe shortcode is currently being done.
*
* @since 4.12.9
*
* @param bool|string $return Short-circuit return value. Either false or the value to replace the shortcode with.
* @param string $tag Shortcode name.
* @param array $attr Shortcode attributes array,
* @param array $m Regular expression match array.
*
* @return bool|string Short-circuit return value.
*/
public function filter_pre_do_shortcode_tag( $false, $tag, $attr, $m ) {
return $this->container->make( Manager::class )->filter_pre_do_shortcode_tag( $false, $tag, $attr, $m );
}
/**
* * Filters `do_shortcode_tag` to mark that a tribe shortcode is complete, and remove it from the current list.
*
* @since 4.12.9
*
* @param string $output Shortcode output.
* @param string $tag Shortcode name.
* @param array|string $attr Shortcode attributes array or empty string.
* @param array $m Regular expression match array.
*
* @return string Shortcode output.
*/
public function filter_do_shortcode_tag( $output, $tag, $attr, $m ) {
return $this->container->make( Manager::class )->filter_do_shortcode_tag( $output, $tag, $attr, $m );
}
}