Viewing File: /home/fshjisk/mimikoparis/wp-content/plugins/content-control/classes/Shortcodes.php
<?php
namespace JP\CC;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class Shortcodes
* @package JP\CC
*/
class Shortcodes {
/**
* Initialize Widgets
*/
public static function init() {
add_shortcode( 'content_control', array( __CLASS__, 'content_control' ) );
}
/**
* Process the [content_control] shortcode.
*
* @param $atts
* @param string $content
*
* @return string
*/
public static function content_control( $atts, $content = '' ) {
$atts = shortcode_atts( array(
'logged_out' => null,
'roles' => array(),
'class' => '',
'message' => Options::get( 'default_denial_message' , '' ),
), static::normalize_empty_atts( $atts ), 'content_control' );
$who = isset( $atts['logged_out'] ) ? 'logged_out' : 'logged_in';
$roles = ! is_array( $atts['roles'] ) ? explode( ',', $atts['roles'] ) : $atts['roles'];
$roles = array_map( 'trim', $roles );
$classes = ! is_array( $atts['class'] ) ? explode( ' ', $atts['class'] ) : $atts['class'];
$classes[] = 'jp-cc';
if ( Is::accessible( $who, $roles, 'shortcode' ) ) {
$classes[] = 'jp-cc-accessible';
$container = '<div class="%1$s">%2$s</div>';
} else {
$classes[] = 'jp-cc-not-accessible';
$container = '<div class="%1$s">%3$s</div>';
}
$classes = implode( ' ', $classes );
return sprintf( $container, $classes, do_shortcode( $content ), do_shortcode( $atts['message'] ) );
}
/**
* Takes empty attributes and sets them to true.
*
* @param array $atts
*
* @return mixed
*/
public static function normalize_empty_atts( $atts = array() ) {
if ( ! is_array( $atts ) ) {
if ( empty( $atts ) ) {
$atts = array();
}
}
foreach ( $atts as $attribute => $value ) {
if ( is_int( $attribute ) ) {
$atts[ strtolower( $value ) ] = true;
unset( $atts[ $attribute ] );
}
}
return $atts;
}
}
Back to Directory
File Manager