232 lines
7.5 KiB
PHP
232 lines
7.5 KiB
PHP
<?php
|
|
|
|
class WLCMS_Branding extends WLCMS_Previewable
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
//Check and set if it is a preview
|
|
$this->check_preview();
|
|
|
|
add_action('init', array($this, 'init'));
|
|
add_filter('admin_title', array($this, 'admin_title'), 10, 2);
|
|
add_action('admin_bar_menu', array($this, 'admin_bar_logo'));
|
|
add_action('admin_bar_menu', array($this, 'admin_bar_howdy_text'), 10000);
|
|
add_filter('admin_footer_text', array($this, 'admin_footer'), 2000);
|
|
add_action('admin_menu', array($this, 'admin_menu'), 0);
|
|
add_filter('admin_body_class', array($this, 'admin_body_class'), 12);
|
|
}
|
|
|
|
public function init()
|
|
{
|
|
if ($this->get_settings('hide_wp_version')) {
|
|
add_filter('update_footer', '__return_false', 11);
|
|
}
|
|
|
|
if ($this->get_settings('hide_wordpress_logo_and_links')) {
|
|
wlcms_set_hidden_css('#wp-admin-bar-wp-logo');
|
|
wlcms_set_hidden_css('#wpadminbar .quicklinks li .blavatar');
|
|
}
|
|
|
|
// Setup css for the admin bar logo
|
|
if ($this->get_settings('admin_bar_logo')) {
|
|
/**
|
|
* Create css for admin bar custom logo
|
|
*/
|
|
$css_args = array();
|
|
|
|
$css_args['vertical-align'] = 'middle!important';
|
|
|
|
|
|
//limit admin logo height
|
|
$css_args['max-height'] = '20px!important';
|
|
$css_args['margin'] = '0 auto';
|
|
$css_args['vertical-align'] = 'middle';
|
|
|
|
wlcms_set_css('.wlcms-admin-logo img', $css_args);
|
|
|
|
wlcms_set_css(
|
|
'.wlcms-admin-logo .ab-item, .wlcms-admin-logo a',
|
|
array(
|
|
'line-height' => '28px!important',
|
|
'display' => 'flex',
|
|
'align-items' => 'center'
|
|
)
|
|
);
|
|
|
|
wlcms_set_css('#footer-left img', array('vertical-align' => 'middle', 'max-height' => '50px', 'margin-right' => '5px'));
|
|
wlcms_set_css('#footer-left a', array('text-decoration' => 'none'));
|
|
}
|
|
}
|
|
|
|
public function admin_title($admin_title)
|
|
{
|
|
if ($custom_admin_title = esc_attr($this->get_settings('custom_page_title'))) {
|
|
$admin_title = str_replace(
|
|
"— WordPress",
|
|
"— " . $custom_admin_title,
|
|
$admin_title
|
|
);
|
|
}
|
|
|
|
return $admin_title;
|
|
}
|
|
|
|
public function admin_body_class($classes)
|
|
{
|
|
$classes = trim($classes) . ' ' . (!is_wlcms_admin() ? 'not-' : '') . 'wlcms-admin ';
|
|
|
|
return $classes;
|
|
}
|
|
|
|
public function admin_bar_logo($wp_admin_bar)
|
|
{
|
|
|
|
$admin_menu_bar_url = esc_url($this->get_settings('admin_bar_url'));
|
|
$admin_menu_bar_alt_text = esc_attr($this->get_settings('admin_bar_alt_text'));
|
|
$admin_menu_bar_image = esc_url($this->get_settings('admin_bar_logo'));
|
|
|
|
if (!$admin_menu_bar_image) {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Add custom logo to the admin bar menu
|
|
*/
|
|
$args = array(
|
|
'id' => 'wlcms-admin-logo',
|
|
'href' => $admin_menu_bar_url,
|
|
'title' => sprintf('<img src="%s" alt="%s" />', $admin_menu_bar_image, $admin_menu_bar_alt_text),
|
|
'meta' => array('class' => 'wlcms-admin-logo', 'title' => $admin_menu_bar_alt_text, 'target' => '_blank')
|
|
);
|
|
$wp_admin_bar->add_node($args);
|
|
}
|
|
|
|
public function sidebar_menu_url()
|
|
{
|
|
if ($this->get_settings('use_developer_side_menu_image')) {
|
|
return esc_url($this->get_settings('developer_url'));
|
|
}
|
|
|
|
return esc_url($this->get_settings('side_menu_link_url'));
|
|
}
|
|
|
|
public function admin_menu()
|
|
{
|
|
global $menu;
|
|
|
|
$sidebar_url = esc_url($this->get_settings('side_menu_link_url'));
|
|
$sidebar_text = esc_attr($this->get_settings('side_menu_alt_text'));
|
|
$sidebar_image = esc_url($this->get_settings('side_menu_image'));
|
|
$collapsed_sidebar_image = esc_url($this->get_settings('collapsed_side_menu_image'));
|
|
|
|
|
|
if (!$sidebar_image) {
|
|
return;
|
|
}
|
|
|
|
$logo = sprintf('<img src=\"%s\" alt=\"%s\" class=\"large-side-bar-logo\" /><img src=\"%s\" alt=\"%s\" class=\"collapsed-side-bar-logo\" />', $sidebar_image, $sidebar_text, $collapsed_sidebar_image, $sidebar_text);
|
|
|
|
$target = '_self';
|
|
if ($sidebar_url) {
|
|
$domain = wp_parse_url($sidebar_url);
|
|
if (isset($domain['host'])) {
|
|
if (strpos($_SERVER['HTTP_HOST'], $domain['host']) === false) {
|
|
$target = '_blank';
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($sidebar_url) {
|
|
$logo = sprintf('<a href=\"%s\" title=\"%s\" target=\"%s\">%s</a>', $sidebar_url, $sidebar_text, $target, $logo);
|
|
}
|
|
wlcms_set_css('.collapsed-side-bar-logo', array('display' => 'none', 'padding' => '5px', 'max-width' => '36px'));
|
|
wlcms_set_css('.folded .collapsed-side-bar-logo', array('display' => 'block', 'margin' => '0 auto', 'max-width' => '25px'));
|
|
|
|
wlcms_set_css('.large-side-bar-logo', array('display' => 'block', 'max-width' => '150px', 'margin' => '0 auto', 'padding' => '5px'));
|
|
wlcms_set_css('.folded .large-side-bar-logo', array('display' => 'none'));
|
|
|
|
wlcms_add_js(sprintf('jQuery("#adminmenuwrap").prepend("<span class=\"wlcms-logo\">%s</span>");', $logo));
|
|
|
|
wlcms()->Admin_Script()->additional_css('
|
|
@media only screen and (max-width: 960px) {
|
|
.wlcms-logo .large-side-bar-logo{
|
|
display:none;
|
|
}
|
|
.wlcms-logo .collapsed-side-bar-logo{
|
|
display:block;
|
|
}
|
|
}');
|
|
}
|
|
|
|
public function admin_bar_howdy_text($wp_admin_bar)
|
|
{
|
|
|
|
$admin_bar_howdy_text = esc_attr($this->get_settings('admin_bar_howdy_text'));
|
|
|
|
if (!$admin_bar_howdy_text) {
|
|
return;
|
|
}
|
|
|
|
$account_node = $wp_admin_bar->get_node('my-account');
|
|
if (!isset($account_node->title)) {
|
|
return;
|
|
}
|
|
|
|
$wp_admin_bar->add_node(array(
|
|
'id' => 'my-account',
|
|
'title' =>
|
|
str_replace(
|
|
str_replace(', %s', ',', __( 'Howdy, %s' )),
|
|
$admin_bar_howdy_text, $account_node->title
|
|
),
|
|
));
|
|
}
|
|
|
|
/**
|
|
* Use custom footer
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function admin_footer($original_text)
|
|
{
|
|
|
|
$footer_html = wp_kses_post($this->get_settings('footer_html'));
|
|
$footer_url = esc_url($this->get_settings('footer_url'));
|
|
$footer_text = esc_attr($this->get_settings('footer_text'));
|
|
$footer_image = esc_url($this->get_settings('footer_image'));
|
|
$developer_name = esc_attr($this->get_settings('developer_name'));
|
|
|
|
if ($footer_html) {
|
|
return $footer_html;
|
|
}
|
|
|
|
$footer_main_text = "";
|
|
|
|
if ($footer_image) {
|
|
$footer_main_text .= '<img src="' . $footer_image . '" alt="" /> ';
|
|
}
|
|
|
|
if ($footer_text) {
|
|
$footer_main_text .= $footer_text;
|
|
}
|
|
|
|
if (empty($footer_main_text)) {
|
|
|
|
if (wlcms_field_setting('hide_wordpress_logo_and_links')) {
|
|
return '';
|
|
}
|
|
|
|
return $original_text;
|
|
}
|
|
|
|
if (!$footer_url) {
|
|
return $footer_main_text;
|
|
}
|
|
|
|
$footer_html = '<a href="' . $footer_url . '" title="' . $developer_name . '" target="_blank">' . $footer_main_text . '</a>';
|
|
|
|
return $footer_html;
|
|
}
|
|
}
|