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 = '
%2$s
';
} else {
$classes[] = 'jp-cc-not-accessible';
$container = '%3$s
';
}
$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;
}
}