action_handler();
}
/**
*
*/
private function action_handler() {
/**
* add_action() WP Since: 1.2.0
* https://developer.wordpress.org/reference/functions/add_action/
*/
add_action('init', array($this, 'init'));
add_action('plugins_loaded', array($this, 'plugins_loaded'));
add_action('widgets_init', array($this, 'widgets_init'));
add_action('wp_head', array($this, 'wp_head'));
add_action('wp_enqueue_scripts', array($this, 'wp_enqueue_scripts'));
add_action('wp_footer', array($this, 'wp_footer'));
/**
* add_shortcode() WP Since: 2.5
* https://codex.wordpress.org/Function_Reference/add_shortcode
*/
add_shortcode('wp-mb-author-box-pro', array($this, 'shortcode')); // Dies erlaub ein short code einsatzt den wir schon im backend vorbereitet haben
}
/**
* Init
*/
public function init() {
$this->init_filters(); // Filter
}
/**
* Init Filters
*/
public function init_filters() {
/**
* apply_filters() WP Since: 0.71
* https://developer.wordpress.org/reference/functions/apply_filters/
*/
$this->locale = apply_filters('plugin_locale', get_locale(), 'author-box-pro'); // Locale holen und festhalten
add_filter('widget_text', 'do_shortcode'); // Shortcode in Text Widgets erlauben
add_filter('the_content', array($this, 'the_content'));
}
/**
* WP Enqueue Scripts
*/
public function the_content($content) {
global $MB_AUTHOR_BOX, $MB_AUTHOR_BOX_HELPER;
$mbPluginABoptions = $MB_AUTHOR_BOX_HELPER->options();
$userID = get_the_author_meta('ID');
/**
* USER query
*/
$user = new WP_User($userID);
$userRoles = array();
foreach ($user->roles as $role) {
$role = get_role($role);
if ($role != null) {
$userRoles[] = $role->name;
}
}
// OPTIONS
$checkArray = array(
isset($mbPluginABoptions['role-administrator']) ? 'administrator' : '',
isset($mbPluginABoptions['role-editor']) ? 'editor' : '',
isset($mbPluginABoptions['role-author']) ? 'author' : '',
isset($mbPluginABoptions['role-contributer']) ? 'contributer' : '',
isset($mbPluginABoptions['role-subscriber']) ? 'subscriber' : ''
);
foreach ($userRoles as $check) {
if (!in_array($check, $checkArray)) {
return $content;
}
}
$userPostTypes = $MB_AUTHOR_BOX_HELPER->post_types(true);
foreach ($userPostTypes as $userPostType => $userPostTypeValue) {
if ($userPostType == get_post_type()) {
if (isset($mbPluginABoptions[$userPostType]) && $mbPluginABoptions[$userPostType] == 'below') {
$content = $content . $MB_AUTHOR_BOX->profile();
} else if (isset($mbPluginABoptions[$userPostType]) && $mbPluginABoptions[$userPostType] == 'above') {
$content = $MB_AUTHOR_BOX->profile() . $content;
}
}
}
return $content;
}
/**
* WP Enqueue Scripts
*/
public function wp_enqueue_scripts() {
/**
* wp_enqueue_style() WP Since: 2.6.0
* https://developer.wordpress.org/reference/functions/wp_enqueue_style/
*/
wp_enqueue_style('melibu-ab-style', plugins_url('css/style.min.css', dirname(__FILE__)));
wp_enqueue_style('font-awesome-4-6-1', plugins_url('ext/font-awesome-4.6.1/css/font-awesome.min.css', dirname(__FILE__)));
}
/**
* WP Head
*/
public function wp_head() {
/**
* Get saved or default settings
*/
global $MB_AUTHOR_BOX_HELPER;
$mbPluginABoptions = $MB_AUTHOR_BOX_HELPER->options(); // Options
$admin_colors = get_option('mb-author-admin-colors'); // Get admin colors from backend
// CUSTOM CSS
$customCSS = isset($mbPluginABoptions['custom-css']) && !empty($mbPluginABoptions['custom-css']) ? $mbPluginABoptions['custom-css'] : '';
// ADMIN COLORS ACTIVE
$isColorsActivated = isset($mbPluginABoptions['color']) && $mbPluginABoptions['color'] == 'on' ? $mbPluginABoptions['color'] : '';
if ($isColorsActivated != '') {
?>
load_textdomain();
}
/**
* Load Textdomains
* Textdomain für plugin und WordPress.org laden
*/
public function load_textdomain() {
/**
* load_textdomain() WP Since: 1.5.0
* https://codex.wordpress.org/Function_Reference/load_textdomain
*/
load_textdomain('author-box-pro', WP_LANG_DIR . "/plugins/author-box-pro/author-box-pro-$this->locale.mo");
/**
* load_plugin_textdomain() WP Since: 1.5.0
* https://codex.wordpress.org/Function_Reference/load_plugin_textdomain
*/
load_plugin_textdomain('author-box-pro', false, plugin_basename(MB_AUTHOR_BOX_PATH . 'languages/'));
}
/**
* Short Code
*
* @param type $atts
* @param type $content
* @return type
*
* https://codex.wordpress.org/Shortcode_API
*/
public function shortcode($atts, $content = null) {
global $MB_AUTHOR_BOX, $MB_AUTHOR_BOX_HELPER;
$mbPluginABoptions = $MB_AUTHOR_BOX_HELPER->options();
$userID = get_the_author_meta('ID');
/**
* USER query
*/
$user = new WP_User($userID);
$userRoles = array();
foreach ($user->roles as $role) {
$role = get_role($role);
if ($role != null) {
$userRoles[] = $role->name;
}
}
// OPTIONS
$checkArray = array(
isset($mbPluginABoptions['role-administrator']) ? 'administrator' : '',
isset($mbPluginABoptions['role-editor']) ? 'editor' : '',
isset($mbPluginABoptions['role-author']) ? 'author' : '',
isset($mbPluginABoptions['role-contributer']) ? 'contributer' : '',
isset($mbPluginABoptions['role-subscriber']) ? 'subscriber' : ''
);
foreach ($userRoles as $check) {
if (!in_array($check, $checkArray)) {
return $content;
}
}
$userPostTypes = $MB_AUTHOR_BOX_HELPER->post_types(true);
foreach ($userPostTypes as $userPostType => $userPostTypeValue) {
if ($userPostType == get_post_type()) {
if (isset($mbPluginABoptions[$userPostType]) && $mbPluginABoptions[$userPostType] == 'below') {
$content = $content . $MB_AUTHOR_BOX->profile();
} else if (isset($mbPluginABoptions[$userPostType]) && $mbPluginABoptions[$userPostType] == 'above') {
$content = $MB_AUTHOR_BOX->profile() . $content;
}
}
}
return $content;
}
/**
* Init Widgets
*/
public function widgets_init() {
require_once MB_AUTHOR_BOX_PATH . 'classes/class.MelibuWidget.php';
/**
* register_widget()
* https://codex.wordpress.org/Function_Reference/register_widget
*/
register_widget('MB_AUTHOR_BOX_WIDGET');
}
}
}