first commit
This commit is contained in:
77
wp-content/plugins/brizy/shortcode/abstract-shortcode.php
Normal file
77
wp-content/plugins/brizy/shortcode/abstract-shortcode.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
|
||||
abstract class Brizy_Shortcode_AbstractShortcode {
|
||||
|
||||
const BRIZY_SHORTCODES_PREFIX = 'brizy_';
|
||||
const BRIZY_SHORTCODES_ACTION_PREFIX = 'brizy_shortcode_';
|
||||
const BRIZY_SHORTCODES_FILTER_PREFIX = 'brizy_shortcode_filter_';
|
||||
|
||||
/**
|
||||
* Get shortcode name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
abstract public function getName();
|
||||
|
||||
/**
|
||||
* @param $atts
|
||||
* @param null $content
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
abstract public function render( $atts, $content = null );
|
||||
|
||||
/**
|
||||
* @param $atts
|
||||
* @param null $content
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
final public function masterRender( $atts, $content = null ) {
|
||||
ob_start();
|
||||
|
||||
do_action( $this->getBeforeActionName() );
|
||||
|
||||
echo apply_filters( $this->getFilterName(), $this->render( $atts, $content ) );
|
||||
|
||||
do_action( $this->getAfterActionName() );
|
||||
|
||||
return ob_get_clean();
|
||||
}
|
||||
|
||||
/**
|
||||
* Brizy_Shortcode_AbstractShortcode constructor.
|
||||
*/
|
||||
public function __construct() {
|
||||
add_shortcode( $this->getShortCodeId(), array( $this, 'masterRender' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
private function getShortCodeId() {
|
||||
return self::BRIZY_SHORTCODES_PREFIX . $this->getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
private function getBeforeActionName() {
|
||||
return self::BRIZY_SHORTCODES_ACTION_PREFIX . 'before_' . $this->getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
private function getAfterActionName() {
|
||||
return self::BRIZY_SHORTCODES_ACTION_PREFIX . 'after_' . $this->getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
private function getFilterName() {
|
||||
return self::BRIZY_SHORTCODES_FILTER_PREFIX . $this->getName();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user