<?php
/*
Plugin Name: Modern Admin
Plugin URI: http://wpprime.com
Description: Modern Admin Theme
Author: WPPrime
Version: 1.16.5
Author URI: http://wpprime.com
*/
if(!function_exists('wp_get_current_user')) {
include("includes/pluggable.min.php");
}
add_action('init','obtain_user',1,1);
function obtain_user(){
global $current_user;
$user_role = $current_user;
if(class_exists("modern_admin_ui")){
$modern_admin_ui= new modern_admin_ui($user_role);
}
}
class modern_admin_ui{
const LANG = 'modern-admin';
public $suffix;
public $pluginURL;
public $OptionsName = "modern-admin-option";
public $LicenseName = "modern_admin_license";
public $color;
public $admin_bar;
public $admin_bar2;
public $string_notice;
public $slug;
public $turnon;
public $remote_path = "http://update.wpprime.com/index.php";
public $user_current_role;
public function __construct($user_role){
// fix admin-edit-menu
if ( !function_exists('is_plugin_active') )
{
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
}
if ( is_plugin_active('admin-menu-editor/menu-editor.php') )
{
add_action('admin_enqueue_scripts', array($this, 'wo_load_font_awesome'));
}
$this->user_current_role = $user_role;
list ($t1, $t2) = explode('/', plugin_basename(__FILE__));
$this->slug = str_replace('.php', '', $t2);
//add_action('init',array($this,'get_data_user_role'),1);
$option=$this->getOptions();
if(isset($_POST['settings']['color'])) $this->color=$_POST['settings']['color'];
else {
$this->color=(isset($option['settings']['color']))?$option['settings']['color']:0;
}
if(isset($_POST['reset_modern_settings']) || isset($_POST['reset_settings'])) $this->color='0';
if (isset($_POST['save_modern_settings']) && !isset($_POST['settings']['turnon'])) $this->turnon=0;
elseif(isset($_POST['reset_settings'])) $this->turnon=1;
elseif(isset($_POST['settings']['turnon'])) $this->turnon=$_POST['settings']['turnon'];
else {
$this->turnon=(isset($option['settings']['turnon']))?$option['settings']['turnon']:1;
}
$this->pluginURL = plugins_url().'/'.str_replace(basename( __FILE__ ),"",plugin_basename( __FILE__ ) );
$this->suffix=defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
add_action('init', array($this,'load_language'));
add_action('admin_menu', array($this,'register_modern_admin_menu' ));
//
if($this->turnon){
//if($this->check_license()){
add_action('init', array($this,'auto_check_update'));
if($this->check_role()){
add_action('wp_before_admin_bar_render' , array( $this , 'admin_bar_default_load' ) , 1 );
add_action('wp_before_admin_bar_render' , array( $this , 'update_admin_bar' ) , 100 );
if(is_admin()){
if ($GLOBALS['pagenow'] != 'customize.php'){
add_action('init',array($this,'update_default_url'),100);
add_action('init',array($this,'remove_default_stylesheets'));
add_action('admin_print_styles', array($this,'loading_css'),19);
add_action('admin_enqueue_scripts', array($this,'loading_js'),18);
remove_action('wp_default_styles', 'wp_default_styles' ); // removes the default wp_default_styles function
add_action('wp_default_styles', array($this,'modern_admin_wp_default_styles') ); // adds our customized modern_admin_wp_default_styles function
add_action('admin_menu', array($this,'new_menus'),9999);
add_action('admin_head',array($this,'generate_dashboard_icons'),1000);
add_action('admin_head',array($this,'generate_menu_icons'),100);
add_action('admin_head',array($this,'generate_custom_color'),101);
add_action('admin_footer',array($this,'generate_admin_logo'));
add_action('admin_footer',array($this,'generate_custom_css'),100);
add_filter('update_footer', array($this,'update_version_footer'), 100);
add_filter('admin_footer_text', array($this,'update_admin_footer'));
add_action('wp_dashboard_setup', array($this,'add_dashboard_widgets'),10);
add_action('wp_dashboard_setup', array($this,'get_dashboard_widgets') ,100);
add_action('wp_dashboard_setup', array($this,'hide_dashboard_widgets'),101);
if(isset($option['dashboard_welcome_widget']['show']) && $option['dashboard_welcome_widget']['show']==0)
remove_action('welcome_panel', 'wp_welcome_panel');
add_filter('admin_body_class', array($this,'add_admin_body_class'),50);
add_action('wp_ajax_export_modern_admin', array( $this , 'export_modern_admin_callback' ) );
}
}
add_action('wp_print_styles', array($this,'wp_admin_bar_style'),99999);
if($this->color=='custom'&& is_user_logged_in())
add_action('wp_head',array($this,'generate_wp_admin_bar_custom_color'));
}
if($this->is_login()){
if(!isset($option['login_screen']['active'])||(isset($option['login_screen']['active']) && $option['login_screen']['active']=='1')){
add_action( 'style_loader_tag', create_function( '$a', "return null;" ) );
add_action('init',array($this,'remove_default_stylesheets'));
add_action('login_head', array($this,'generate_login_bg'),10);
add_filter('login_headertitle' , array( $this , 'login_logo_title' ) );
add_action('login_head' , array( $this , 'login_logo_image' ) );
add_filter('login_headerurl', array( $this , 'login_logo_url' ) );
add_filter('bloginfo',array($this,'login_logo_text'),10,2);
add_action('login_footer',array($this,'login_footer_text'));
// add script + css
add_action('login_enqueue_scripts', array($this,'modern_admin_login_css'));
add_action('login_footer', array($this,'modern_admin_login_js'));
if(isset($option['login_screen']['lost_password']) && $option['login_screen']['lost_password']=='1')
add_filter( 'gettext', array($this,'remove_lostpassword_text' ));
if(isset($option['login_screen']['back_to']) && $option['login_screen']['back_to']=='1')
add_filter( 'gettext', array($this,'remove_backto_text' ));
add_action('login_head' , array( $this , 'remove_login_text'),100);
}
}
}
}
public function wo_load_font_awesome()
{
wp_enqueue_style( 'wo-load-fa', plugin_dir_url(__FILE__) . 'assets/fonts/css/font-awesome.min.css' );
}
/*
* Get User Roles
*/
public function get_current_user_roles(){
global $current_user;
require_once(ABSPATH . 'wp-includes/pluggable.php');
if(is_multisite()){
$this->user_current_role = $current_user->roles;
}else{
$user_roles = $current_user->roles;
$this->user_current_role = array_shift($user_roles);
}
}
public function get_user_role() {
$editable_roles = get_editable_roles();
foreach ( $editable_roles as $role => $details ) {
$editable_roles[$role]["label"] = translate_user_role( $details['name'] );
}
return $editable_roles;
}
/**
* Check User
**/
public function check_role()
{
$Options = $this->getOptions();
if(isset($_POST['user_roles'])){
$userroles= array();
foreach($_POST['user_roles'] as $key => $value){
$userroles[$key]=stripslashes($value);
}
$Options['user_roles'] = $userroles;
update_option($this->OptionsName, $Options);
}
if(!isset($Options['user_roles']) || empty($Options['user_roles']) || isset($_POST['reset_settings']) || isset($_POST['reset_modern_settings']))
return true;
else{
$user_roles = $this->user_current_role->roles;
$current_role = array_shift($user_roles);
if (isset($Options['user_roles'][$current_role])&&($Options['user_roles'][$current_role]==1) )
return true;
else return false;
}
}
/*
* License
*/
public function get_license(){
$default_modern_admin_license = array('license' => '',
'status' => false,
'date' => time(),
);
$modern_admin_license = get_option($this->LicenseName);
if (!empty($modern_admin_license)) {
foreach ($modern_admin_license as $key => $option)
$default_modern_admin_license[$key] = $option;
}
update_option($this->LicenseName, $default_modern_admin_license);
return $default_modern_admin_license;
}
public function check_license(){
$now=time();
$license=$this->get_license();
$start_time = $license['date'];
$days = round(($now - $start_time)/(60*60*24));
$until = 15 - $days;
if($license['status']==false && $days>=15){
$this->string_notice="Please enter your license key <a href=\"admin.php?page=modern-admin-license\">here</a> to continue using Modern Admin plugin.";
add_action( 'admin_notices', array($this,'admin_notice') );
return false;
}
if($license['status']==false && $days<15)
{
$this->string_notice="You have ".$until." days for trial. Please enter your license key at <a href=\"admin.php?page=modern-admin-license\">here</a>.";
add_action( 'admin_notices', array($this,'admin_notice') );
return true;
}
if($license['status']==true) return true;
}
public function admin_notice(){
?>
<div class="updated">
<p><?php _e( $this->string_notice, self::LANG ); ?></p>
</div>
<?php
}
public function modern_admin_license_page(){
include_once('includes/license.php');
}
public function auto_check_update(){
if ( is_admin() ) {
require_once ('wp_autoupdate.php');
$license=$this->get_license();
if(!empty($license['license'])){
if ( ! function_exists( 'get_plugin_data' ) )
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
$current_plugin = get_plugin_data( __FILE__, $markup = true, $translate = true );
$current_version = $current_plugin['Version'];
$plugin_slug = plugin_basename(__FILE__);
new modern_admin_auto_update ($license['license'],$current_version, $this->remote_path, $plugin_slug);
}
}
}
/*
* Generate custom color
*/
public function generate_custom_color(){
$Options = $this->getOptions();
if(isset($_POST['settings'])){
foreach($_POST['settings'] as $key => $value){
$settings[$key]=stripslashes($value);
}
$Options['settings'] = $settings;
}
if(isset($Options['settings']['color']) && $Options['settings']['color']=='custom'){
include("includes/custom_color.php");
}
}
public function generate_wp_admin_bar_custom_color(){
$Options = $this->getOptions();
$field = "main_color";
$main_color = (isset($Options['settings']['custom_color_'.$field]))?$Options['settings']['custom_color_'.$field]:'';
$css="<style>\n";
$css.="#wpadminbar,
#wpadminbar .ab-top-menu > li:hover > .ab-item,
#wpadminbar .ab-top-menu > li.hover > .ab-item,
#wpadminbar .ab-top-menu > li > .ab-item:focus,
#wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus,
#wpadminbar.nojs .ab-top-menu > li.menupop:hover > .ab-item,
#wpadminbar .ab-top-menu > li.menupop.hover > .ab-item,
#wpadminbar .quicklinks .menupop .ab-item:focus,
#wpadminbar .quicklinks .ab-top-menu .menupop .ab-item:focus {
background: {$main_color};
}
/* Auto-folding of the admin menu */
@media only screen and (max-width: 900px) {
#adminmenu .wp-submenu .wp-submenu-head,
#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head { background: $main_color}
}";
$css.="</style>";
echo $css;
}
/*
* admin bar
*/
public function wp_admin_bar_style(){
if ( is_user_logged_in() ){
global $wp_version;
if(preg_match('/-/i',$wp_version)) {
$version = explode('-',$wp_version);
$version = $version[0];
}else $version = $wp_version;
$Options = $this->getOptions();
$font = (isset($Options['admin_bar_font']))?$Options['admin_bar_font']:'awesome';
if($font == 'awesome')
wp_enqueue_style('modern-admin-font', $this->pluginURL."assets/fonts/css/font-awesome$this->suffix.css", false, '1.0');
else wp_enqueue_style('modern-admin-fontello', $this->pluginURL."assets/fonts/css/fontello.css", false, '1.0');
if (version_compare($version, '3.8', '>='))
wp_enqueue_style('modern-wpadminbar3', $this->pluginURL."assets/css/colors/adminbar-38.css", false, '1.0');
else
wp_enqueue_style('modern-wpadminbar3', $this->pluginURL."assets/css/colors/adminbar.css", false, '1.0');
wp_enqueue_style('modern-wpadminbar', $this->pluginURL."assets/css/colors/adminbar-front.css", false, '1.0');
if($this->color!='custom' && $this->color!='0')
wp_enqueue_style('modern-wpadminbar2', $this->pluginURL."assets/css/colors/adminbar-".$this->color.".css", false, '1.0');
elseif($this->color=='0')
wp_enqueue_style('modern-wpadminbar2', $this->pluginURL."assets/css/colors/adminbar-blue.css", false, '1.0');
}
}
public function remove_default_stylesheets() {
global $pagenow;
// if('customize.php' != $pagenow)
// wp_deregister_style('wp-admin');
}
public function load_language() {
$path = dirname(plugin_basename( __FILE__ )) . '/languages/';
$loaded = load_plugin_textdomain( 'modern-admin', false, $path);
}
public function is_login() {
$login_page = array( 'wp-login.php', 'wp-register.php' );
if ( is_multisite() ) {
foreach($login_page as $page)
if(preg_match("/{$page}/i",$_SERVER['PHP_SELF'])) return true;
return false;
}
return in_array( $GLOBALS['pagenow'], $login_page );
}
public function loading_js(){
wp_enqueue_script('jquery');
wp_enqueue_script('wp-color-picker');
wp_enqueue_media();
wp_enqueue_script('media-upload');
wp_deregister_script('admin-bar');
wp_enqueue_script('admin-bar', $this->pluginURL.'assets/js/script.js', array("jquery"), null, false);
wp_enqueue_script('modern-setting-script', $this->pluginURL.'assets/js/settings.js', array("jquery"), null, false);
}
public function loading_css(){
global $wp_version;
if(preg_match('/-/i',$wp_version)) {
$version = explode('-',$wp_version);
$version = $version[0];
}else $version = $wp_version;
wp_register_style('modern-admin-buttonrtl', plugin_dir_url(__FILE__) . 'assets/css/buttons-rtl.css');
wp_enqueue_style('modern-admin-buttonrtl');
wp_register_style('modern-admin-button', plugin_dir_url(__FILE__) . 'assets/css/buttons.css');
wp_enqueue_style('modern-admin-button');
// Moderm admin Style
wp_enqueue_style('wp-color-picker');
wp_enqueue_style('modern-admin-font', $this->pluginURL."assets/fonts/css/font-awesome$this->suffix.css", false, '1.0');
//wp_enqueue_style('modern-admin-fontello', $this->pluginURL."assets/fonts/css/fontello.css", false, '1.0');
wp_enqueue_style('customized-modern', $this->pluginURL."assets/css/modern-style.css", false, '1.0');
wp_enqueue_style('modern-admin-custom', $this->pluginURL."assets/css/modern-admin.css", false, '1.0');
if (version_compare($version, '3.8', '>=')) {
//fix css wp 3.8
wp_deregister_style('admin-bar');
wp_deregister_style('wp-admin');
wp_deregister_style('dashicons');
wp_deregister_style('buttons');
wp_enqueue_style('dashicons-38', site_url()."/wp-includes/css/dashicons.css", false, '1.0');
wp_enqueue_style('mediaview-38', site_url()."/wp-includes/css/media-views.min.css", false, '1.0');
wp_enqueue_style('adminbar-38', $this->pluginURL."/assets/css/adminbar-38.css", false, '1.0');
} else {
wp_enqueue_style('modern-admin-admin-bar', $this->pluginURL."assets/css/adminbar.css", false, '1.0');
}
if (version_compare($version, '3.9', '>=')) {
wp_enqueue_style('modern-admin-39', $this->pluginURL."/assets/css/modern-admin-39.css", false, '1.0');
}
if($this->color!='0' && $this->color!='custom')
wp_enqueue_style('modern-admin-color', $this->pluginURL."assets/css/colors/".$this->color.".css", false, '1.0');
if ( is_rtl() )
wp_enqueue_style('modern-admin-rtl', $this->pluginURL."assets/css/rtl.css", false, '1.0');
if (version_compare($wp_version, '3.6', '>=') && version_compare($wp_version, '3.8', '<='))
wp_enqueue_style('modern-admin-36', $this->pluginURL."assets/css/modern-admin-36.css", false, '1.0');
if (version_compare($version, '3.8', '>=')&&version_compare($version, '3.9', '<'))
wp_enqueue_style('modern-admin-38', $this->pluginURL."assets/css/modern-admin-38.css", false, '1.0');
}
public function modern_admin_login_css(){
global $wp_version;
if (version_compare($wp_version, '3.9', '>='))
echo '<link rel="stylesheet" id="modern-admin-login-3.9" href="'.$this->pluginURL."assets/css/login-styles-3.9.css".'" type="text/css" media="all" />'."\n";
echo '<link rel="stylesheet" id="modern-admin-login" href="'.$this->pluginURL."assets/css/login-styles.css".'" type="text/css" media="all" />';
if($this->color!='0')
echo '<link rel="stylesheet" id="modern-admin-color" href="'.$this->pluginURL."assets/css/colors/".$this->color.'.css" type="text/css" media="all" />';
}
public function modern_admin_login_js(){
// admin login
echo "<script type='text/javascript' src='".$this->pluginURL."assets/js/login.js'></script>";
// wp_enqueue_script('modern-admin-login', $this->pluginURL."assets/js/login.js", false, '1.0');
}
/** get list dash widget */
public function get_dashboard_widgets() {
global $wp_meta_boxes, $wpdb;
if (current_user_can('administrator') && is_array($wp_meta_boxes['dashboard'])) {
$id_registered_dash_widget=array();
foreach(array('normal','side','column3','column4') as $context){
if(isset($wp_meta_boxes['dashboard'][$context]))
foreach ( array('high', 'sorted', 'core', 'default', 'low') as $priority ) {
if(isset($wp_meta_boxes['dashboard'][$context][$priority]))
foreach ( (array) $wp_meta_boxes['dashboard'][$context][$priority] as $box ) {
if(!in_array($box['id'],$id_registered_dash_widget))
array_push($id_registered_dash_widget,$box['id']);
}
}
}
update_option($wpdb->prefix.'modern_admin_dashboard_widget_registered', $id_registered_dash_widget);
}
}
public function hide_dashboard_widgets(){
$Options = $this->getOptions();
global $wp_meta_boxes;
if (is_admin() && is_array($wp_meta_boxes['dashboard'])) {
foreach(array('normal','side','column3','column4') as $context){
if(isset($wp_meta_boxes['dashboard'][$context]))
foreach ( array('high', 'sorted', 'core', 'default', 'low') as $priority ) {
if(isset($wp_meta_boxes['dashboard'][$context][$priority]))
foreach ( (array) $wp_meta_boxes['dashboard'][$context][$priority] as $box ) {
if(isset($Options['dashboard_icons'][$box['id']]['show']) && $Options['dashboard_icons'][$box['id']]['show']==0)
remove_meta_box( $box['id'], 'dashboard', $context );
if($box['id']=='custom_db_widget' && !isset($Options['dashboard_icons'][$box['id']]['show']))
remove_meta_box( $box['id'], 'dashboard', $context );
if($box['id']=='custom_rss_db_widget' && !isset($Options['dashboard_icons'][$box['id']]['show']))
remove_meta_box( $box['id'], 'dashboard', $context );
}
}
}
}
}
/** option */
public function update_default_url(){
global $wpdb;
$default_url = get_option($wpdb->prefix.'modern_admin_default_url');
//var_dump(get_site_url());
if($default_url==false)
update_option($wpdb->prefix.'modern_admin_default_url', get_site_url());
else{
$current_url = get_site_url();
if($default_url!=$current_url){
$this->new_replace($default_url,$current_url);
}
}
}
public function new_replace($default_url,$current_url){
global $wpdb;
$option = $this->getOptions();
$replaces = array("settings"=>"admin_logo_image"
,"login_screen"=>"image","login_screen"=>"background");
foreach($replaces as $k=>$v){
if(isset($option[$k][$v]) && $option[$k][$v]!='')
{
$option[$k][$v] = str_replace($default_url,$current_url,$option[$k][$v]);
}
if(isset($option['admin_bar']) && is_array($option['admin_bar']))
foreach($option['admin_bar'] as $node_id=>$node){
if(isset($option['admin_bar'][$node_id]['href']))
$option['admin_bar'][$node_id]['href'] = str_replace($default_url,$current_url,$option['admin_bar'][$node_id]['href']);
}
}
update_option($this->OptionsName,$option);
update_option($wpdb->prefix.'modern_admin_default_url', $current_url);
}
public function getOptions() {
$ModernOptions=array();
$Options = get_option($this->OptionsName);
if (!empty($Options)) {
foreach ($Options as $key => $option)
$ModernOptions[$key] = $option;
}
else update_option($this->OptionsName, $ModernOptions);
return $ModernOptions;
}
/** admin menu */
public function register_modern_admin_menu(){
add_menu_page( 'Modern Admin', 'Modern Admin', 'manage_options', 'modern-admin-ui-settings', array($this,'modern_admin_ui_setting_page'), '' );
add_submenu_page( 'modern-admin-ui-settings', 'Settings', 'Settings', 'manage_options', 'modern-admin-ui-settings', array($this,'modern_admin_ui_setting_page') );
if($this->turnon){
add_submenu_page( 'modern-admin-ui-settings', 'Admin Bar', 'Admin Bar', 'manage_options', 'modern-admin-bar', array($this,'modern_admin_bar') );
$menuIcon = add_submenu_page( 'modern-admin-ui-settings', 'Menu Icons', 'Menu Icons', 'manage_options', 'modern-admin-menu-icons', array($this,'modern_admin_menu_icons') );
add_submenu_page( 'modern-admin-ui-settings', 'Dashboard Settings', 'Dashboard Settings', 'manage_options', 'modern-admin-dashboard-icons', array($this,'modern_admin_dashboard_icons') );
add_submenu_page( 'modern-admin-ui-settings', 'Login Screen', 'Login Screen', 'manage_options', 'modern-admin-login-screen', array($this,'modern_admin_login_screen') );
add_submenu_page( 'modern-admin-ui-settings', 'Import/Export', 'Import/Export Settings', 'manage_options', 'modern-admin-import-export', array($this,'modern_admin_import_export') );
add_submenu_page( 'modern-admin-ui-settings', 'License', 'License Settings', 'manage_options', 'modern-admin-license', array($this,'modern_admin_license_page') );
}
}
public function modern_admin_ui_setting_page(){
include("includes/settings.php");
}
/** menu icons */
public function new_menus(){
global $menu;
//var_dump($menu);
$new_menu=array();
foreach($menu as $item){
if($item[4]!='wp-menu-separator' && !preg_match("/separator/i",$item[4])){
$name=$this->get_name($item[0]);
//var_dump($item);
if(preg_match("/menu-/i",$item[5])) $id=str_replace("menu-","menu-icon-",$item[5]);
else{
$id=strtolower($name);
$id="menu-icon-".str_replace(" ","-",$id);
}
if(isset($item[4]) && $item[4]!=''){
if(!preg_match("/".$id."/i",$item[4])){
$item[4].=" ".$id;
}
}else $item[4]=$id;
}
array_push($new_menu,$item);
}
$menu=$new_menu;
}
public function generate_menu_icons(){
if(!isset($_POST['reset_menu_icons'])){
global $menu;
$ids=array();
if(is_array($menu))
foreach($menu as $item)
if($item[4]!='wp-menu-separator' && !preg_match("/separator/i",$item[4]) )
{
$name=$this->get_name($item[0]);
if(preg_match("/menu-/i",$item[5])) $id=str_replace("menu-","menu-icon-",$item[5]);
else{
$id=strtolower($name);
$id="menu-icon-".str_replace(" ","-",$id);
}
array_push($ids,$id);
}
$Options = $this->getOptions();
if(isset($_POST['menu_icons'])){
$menu_icons=array();
foreach($_POST['menu_icons'] as $key => $value)
$menu_icons[$key]=$value;
$Options['menu_icons'] = $menu_icons;
}
$style="<style type=\"text/css\">\n";
if(is_array($ids) && count($ids)>0)
foreach($ids as $i){
if(isset($Options['menu_icons'][$i]) && $Options['menu_icons'][$i]!='')
{
$style.=".".$i. " .wp-menu-image:before, .modern-admin-" .$i. ":before{content: \"\\".$Options['menu_icons'][$i]."\" !important;}\n";
}
}
$style.="</style>\n";
echo $style;
}
}
private function get_name($key){
if(preg_match("/<span/",$key)){
$key=explode("<",$key);
return $key[0];
}
return strip_tags($key);
}
public function modern_admin_menu_icons() {
include("includes/menu_icons.php");
}
/** dashboard icons */
public function modern_admin_dashboard_icons() {
include('includes/dashboard_icons.php');
}
public function generate_dashboard_icons(){
$Options = $this->getOptions();
if(isset($_POST['dashboard_icons'])){
$dashboard_icons=array();
foreach($_POST['dashboard_icons'] as $key => $value)
$dashboard_icons[$key]=$value;
$Options['dashboard_icons'] = $dashboard_icons;
}
$style="";
if(isset($Options['dashboard_icons']) && is_array($Options['dashboard_icons'])){
$style="<style type=\"text/css\">\n";
foreach(array_keys($Options['dashboard_icons']) as $i){
if(isset($Options['dashboard_icons'][$i]['icon']) && $Options['dashboard_icons'][$i]['icon']!='')
$style.="#".$i. " .hndle > span:before, .modern-admin-".$i. ":before {content: \"\\".$Options['dashboard_icons'][$i]['icon']."\" !important;}\n";
}
$style.="</style>\n";
}
if ( isset($Options['custom_name']) && is_array($Options['custom_name'] ) )
{
$getAllKey = ($Options['custom_name']);
$aCustomMenu = array();
$aCustomIcon = array();
$style .="<script type=\"text/javascript\">\n";
$style .= 'jQuery(document).ready(function(){';
foreach ($getAllKey as $k =>$kName)
{
// if (!empty($Options['menu_icons'][$kName]))
// {
// $style.=".".$i. " .wp-menu-image:before, .modern-admin-" .$i. ":before{content: \"\\".$Options['menu_icons'][$i]."\" !important;}\n";
// $iconCode = isset($_POST['menu_icons'][$kName]) ? $_POST['menu_icons'][$kName] : $Options['menu_icons'][$kName];
// $style .= ".menu-top a.menu-top[href^='".$kName."']" . " .wp-menu-image.dashicons-before:before{content: \"\\".$iconCode."\" !important;}\n";
// }
if ( !isset($_POST['custom_icon']) || ( isset($Options['custom_icon'][$k]) && !empty($Options['custom_icon'][$k]) ) )
{
$kName = stripslashes(ltrim($kName));
$addClass = 'wo_fix_' . $k;
$aCustomMenu[] = $addClass;
$aCustomIcon[] = !isset($_POST['custom_icon'][$k]) ? $Options['custom_icon'][$k] : $_POST['custom_icon'][$k];
$icon = $Options['custom_icon'][$k];
$style .= "(jQuery(\".wp-not-current-submenu div.wp-menu-name:contains('".$kName."')\").siblings('.wp-menu-image.dashicons-before')).addClass('".$addClass."');" . "\n";
}
}
$style .= '})';
$style.="</script>\n";
if ( !empty($aCustomMenu) )
{
$style .= "<style type=\"text/css\">\n";
foreach ($aCustomMenu as $ka => $className)
{
$style .= ".menu-top .wp-menu-image.dashicons-before.".$className.":before{content: \"\\".$aCustomIcon[$ka]."\" !important;}\n";
}
$style .= "</style>\n";
}
}
// if (isset($_POST['reset_menu_icons'])) unset($_POST['reset_menu_icons']);
echo $style;
}
/** end admin menu */
/** admin style */
public function modern_admin_wp_default_styles( &$styles ) {
if ( ! $guessurl = site_url() )
$guessurl = wp_guess_url();
$styles->base_url = $guessurl;
$styles->content_url = defined('WP_CONTENT_URL')? WP_CONTENT_URL : '';
$styles->default_version = get_bloginfo( 'version' );
$styles->text_direction = function_exists( 'is_rtl' ) && is_rtl() ? 'rtl' : 'ltr';
$styles->default_dirs = array('/wp-admin/', '/wp-includes/css/');
$rtl_styles = array( 'wp-admin', 'ie', 'media', 'admin-bar', 'customize-controls', 'media-views', 'wp-color-picker' );
$no_suffix = array( 'farbtastic' );
$styles->add( 'wp-admin', "/wp-admin/css/wp-admin$this->suffix.css" );
$styles->add( 'ie', "/wp-admin/css/ie$this->suffix.css" );
$styles->add_data( 'ie', 'conditional', 'lte IE 7' );
$styles->add( 'colors', true, array('wp-admin', 'buttons') );
$styles->add( 'media', "/wp-admin/css/media$this->suffix.css" );
$styles->add( 'install', "/wp-admin/css/install$this->suffix.css", array('buttons') );
$styles->add( 'thickbox', '/wp-includes/js/thickbox/thickbox.css', array(), '20121105' );
$styles->add( 'farbtastic', '/wp-admin/css/farbtastic.css', array(), '1.3u1' );
$styles->add( 'wp-color-picker', "/wp-admin/css/color-picker$this->suffix.css" );
$styles->add( 'jcrop', "/wp-includes/js/jcrop/jquery.Jcrop.min.css", array(), '0.9.10' );
$styles->add( 'imgareaselect', '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' );
$styles->add( 'admin-bar', "/wp-includes/css/admin-bar$this->suffix.css" );
$styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$this->suffix.css" );
$styles->add( 'editor-buttons', "/wp-includes/css/editor$this->suffix.css" );
$styles->add( 'wp-pointer', "/wp-includes/css/wp-pointer$this->suffix.css" );
$styles->add( 'customize-controls', "/wp-admin/css/customize-controls$this->suffix.css", array( 'wp-admin', 'colors', 'ie' ) );
$styles->add( 'media-views', "/wp-includes/css/media-views$this->suffix.css", array( 'buttons' ) );
$styles->add( 'buttons', $this->pluginURL.'assets/css/buttons.css' );
foreach ( $rtl_styles as $rtl_style ) {
$styles->add_data( $rtl_style, 'rtl', true );
if ( $this->suffix && ! in_array( $rtl_style, $no_suffix ) )
$styles->add_data( $rtl_style, 'suffix', $this->suffix );
}
}
/** Login Screen */
public function generate_login_bg(){
$Options=$this->getOptions();
$img=(isset($Options['login_screen']['background']))?$Options['login_screen']['background']:'';
$fullpage = (isset($Options['login_screen']['fullpage']))?$Options['login_screen']['fullpage']:false;
$color=(isset($Options['login_screen']['bg-color']))?$Options['login_screen']['bg-color']:'';
$button_bgcolor = (isset($Options['login_screen']['button_bgcolor']))?$Options['login_screen']['button_bgcolor']:'';
$button_textcolor = (isset($Options['login_screen']['button_textcolor']))?$Options['login_screen']['button_textcolor']:'';
$button_bordercolor = (isset($Options['login_screen']['button_bordercolor']))?$Options['login_screen']['button_bordercolor']:'';
if($img!='' || $color!='' || $button_bgcolor!='' || $button_textcolor!='' || $button_bordercolor!=''){
$style="<style>\n";
if($color!='') $style.="html {background-color:".$color.";}";
$style.="body.login {\n";
if($color!='') $style.="background-color:".$color.";\n";
if($img!='') {
$style.="background-image:url('".$img."');\n";
$style.="position:fixed !important;";
$style.="position:absolute;";
$style.="top:0;";
$style.="right:0;";
$style.="bottom:0;";
$style.="left:0;";
};
if($fullpage) $style.="background-size:cover;\n";
if(!empty($Options['login_screen']['bg-repeat'])) $style.="background-repeat:".$Options['login_screen']['bg-repeat'].";\n";
if(!empty($Options['login_screen']['bg-position'])) $style.="background-position:".$Options['login_screen']['bg-position'].";\n";
$style.="}\n";
if($button_bgcolor!='' || $button_textcolor!='' || $button_bordercolor!=''){
$style .= "#wp-submit{\n";
if($button_bordercolor!='')
$style .="border-color: ".$button_bordercolor. "!important;\n";
if($button_bgcolor!='')
$style .="background-color: ".$button_bgcolor." !important;\n";
if($button_textcolor!='')
$style .="color: ".$button_textcolor. "!important;\n";
$style .= "}\n";
}
$style.="</style>";
echo $style;
}else echo '';
}
public function modern_admin_login_screen(){
include('includes/login_screen.php');
}
public function login_logo_image() {
$Options=$this->getOptions();
if(isset($Options['login_screen']))
if(!empty( $Options['login_screen']['image'] ) && $Options['login_screen']['image']!='' ) {
$size = isset($Options['login_screen']['height']) ? $Options['login_screen']['height'] : 1024;
if ( function_exists('getimagesize') && function_exists('curl_version') )
{
$size = getimagesize($Options['login_screen']['image']);
$size = $size[1];
}
$script = "<style>#login h1{background-image: url(\"".$Options['login_screen']['image']."\");
background-position: center center;
background-repeat: no-repeat;
height:{$size}px;
margin-bottom: 20px;
}
.login h1 a{
display: block;
height: 100%;
margin: 0;
padding: 0;
text-indent: -9999px;
width: 100%;
}
</style>";
// $script="<script>\n";
// $script.="var link=\"".$Options['login_screen']['image']."\";\n";
// $script.="</script>";
echo $script;
}
}
public function login_logo_title(){
$Options=$this->getOptions();
$title = __( 'Powered by WordPress', self::LANG );
if(isset($Options['login_screen']))
if(!empty( $Options['login_screen']['title'] ) && $Options['login_screen']['title'] !='') {
$title = strip_tags( $Options['login_screen']['title'] );
}
return $title;
}
public function login_logo_url(){
$Options=$this->getOptions();
$url = __( 'http://wordpress.org', self::LANG);
if(isset($Options['login_screen']))
if(!empty( $Options['login_screen']['url'] ) && $Options['login_screen']['url']!='') {
$url = strip_tags( $Options['login_screen']['url'] );
}
return $url;
}
public function login_logo_text($content,$show){
$Options=$this->getOptions();
if(isset($Options['login_screen']['text']))
if($Options['login_screen']['text']!='' && ($Options['login_screen']['image']=='' || empty( $Options['login_screen']['image'] )) ) {
if ($show == 'name'){
$content = $Options['login_screen']['text'];
}
}
return $content;
}
public function login_footer_text(){
$Options=$this->getOptions();
$text='';
if(isset($Options['login_screen']))
if(!empty( $Options['login_screen']['footer_text'] )) {
$text = "<div id=\"footer_text\">".$Options['login_screen']['footer_text']."</div>";
}
echo $text;
}
public function remove_lostpassword_text ( $text ) {
if ($text == 'Lost your password?'){$text = '';}
return $text;
}
public function remove_backto_text ( $text ) {
if (preg_match("/Back to/i",$text)){$text = '';}
return $text;
}
public function remove_login_text(){
$option=$this->getOptions();
if(isset($option['login_screen']['lost_password']) || isset($option['login_screen']['back_to']) || isset($option['login_screen']['remember_me'])){
$css="<style>\n";
if(isset($option['login_screen']['lost_password']) && $option['login_screen']['lost_password']=='1')
$css.=".login #nav { display:none; }\n";
if(isset($option['login_screen']['back_to']) && $option['login_screen']['back_to']=='1')
$css.=".login #backtoblog { display:none; }\n";
if(isset($option['login_screen']['remember_me']) && $option['login_screen']['remember_me']=='1')
$css.=".forgetmenot { display:none; }\n";
$css.="</style>";
echo $css;
}
}
/*** admin logo **/
public function generate_admin_logo(){
$Options=$this->getOptions();
$html='';
if(!empty($Options['settings']['admin_logo_image']) || !empty($Options['settings']['admin_logo_text'])){
$html="<div id=\"modern-admin-logo\">";
$html.="<a href=\"".$Options['settings']['admin_logo_url']."\">";
if($Options['settings']['admin_logo_image']!='')
$html.="<img src=\"".$Options['settings']['admin_logo_image']."\">";
$html.=$Options['settings']['admin_logo_text'];
$html.="</a>";
$html.="</div>\n";
}
echo $html;
}
/**Admin bar **/
public function modern_admin_bar(){
include("includes/admin_bar.php");
}
public function admin_bar_default_load( $wp_admin_bar ) {
global $wp_admin_bar;
$admin_bar = $wp_admin_bar->get_nodes();
if(is_array($admin_bar) && count($admin_bar)>0) $this->admin_bar = $admin_bar;
}
public function admin_bar_filter_load() {
$Default_bar = $this->admin_bar;
$current_user = wp_get_current_user();
$Delete_bar = array( "user-actions" , "wp-logo-external" , "top-secondary" , "my-sites-super-admin" , "my-sites-list" );
foreach( $Delete_bar as $del_name ) {
if( !empty( $Default_bar[$del_name] ) ) {
unset( $Default_bar[$del_name] );
}
}
foreach( $Default_bar as $node_id => $node ) {
if( preg_match( "/blog-[0-9]/" , $node->parent ) ) {
unset( $Default_bar[$node_id] );
}
}
//var_dump(get_avatar( get_the_author_meta( $current_user->user_login ), 16 ));
if(is_array($Default_bar))foreach( $Default_bar as $node_id => $node ) {
if( $node->id == 'my-account' ) {
//var_dump( $Default_bar[$node_id]->title);
if(explode(',', $Default_bar[$node_id]->title)) {
$hello = explode(',', $Default_bar[$node_id]->title);
$hello = $hello[0];
}
else $hello = "Howdy";
$str = sprintf( __( $hello.', %1$s', self::LANG ) ,'[user_name]' );
$Default_bar[$node_id]->title = $str."[avatar16]";
//$Default_bar[$node_id]->title = str_replace('Howdy, '.$current_user->display_name,$str,$Default_bar[$node_id]->title);
} elseif( $node->id == 'user-info' ) {
$str ="<span class='display-name'>[user_name]</span>";
$str2 ="<span class='username'>[user_login]</span>";
$Default_bar[$node_id]->title= "[avatar64]".$str.$str2;
//$Default_bar[$node_id]->title = str_replace('<span class=\'display-name\'>'.$current_user->display_name.'</span>',$str,$Default_bar[$node_id]->title);
//$Default_bar[$node_id]->title = str_replace('<span class=\'username\'>'.$current_user->user_login.'</span>',$str2,$Default_bar[$node_id]->title);
} elseif( $node->id == 'logout' ) {
$Default_bar[$node_id]->href =preg_replace( '/&(.*)/' , '' , $node->href );
} elseif( $node->id == 'site-name' ) {
$Default_bar[$node_id]->title = '[blog_name]';
} elseif( $node->id == 'updates' ) {
$Default_bar[$node_id]->title = '[update_total]';
} elseif( $node->id == 'comments' ) {
$Default_bar[$node_id]->title = '[comment_count]';
}
}
$Filter_bar = array();
$MainMenuIDs = array();
$Default_bar = array_filter($Default_bar);
if(is_array($Default_bar)) foreach( $Default_bar as $node_id => $node ) {
if( empty( $node->parent ) ) {
$Filter_bar["left"]["main"][$node_id] = $node;
$MainMenuIDs[$node_id] = "left";
unset( $Default_bar[$node_id] );
} elseif( $node->parent == 'top-secondary' ) {
$Filter_bar["right"]["main"][$node_id] = $node;
$MainMenuIDs[$node_id] = "right";
unset( $Default_bar[$node_id] );
}
}
if(is_array($Default_bar)) foreach( $Default_bar as $node_id => $node ) {
if( $node->parent == 'wp-logo-external' ) {
$Default_bar[$node_id]->parent = 'wp-logo';
} elseif( $node->parent == 'user-actions' ) {
$Default_bar[$node_id]->parent = 'my-account';
} elseif( $node->parent == 'my-sites-list' ) {
$Default_bar[$node_id]->parent = 'my-sites';
} else{
if( !array_keys( $MainMenuIDs , $node->parent ) ) {
if( !empty( $Default_bar[$node->parent] ) ) {
$Default_bar[$node_id]->parent = $Default_bar[$node->parent]->parent;
}
}
}
}
if(is_array($Default_bar)) foreach( $MainMenuIDs as $parent_id => $menu_type ) {
foreach( $Default_bar as $node_id => $node ) {
if( $node->parent == $parent_id ) {
$Filter_bar[$menu_type]["sub"][$node_id] = $node;
unset( $Default_bar[$node_id] );
}
}
}
return $Filter_bar;
}
public function update_admin_bar(){
if(!isset($_POST['reset_admin_bar'])){
$Options = $this->getOptions();
if(isset($_POST['admin_bar'])){
$admin_bar=array();
foreach($_POST['admin_bar'] as $key => $value){
$href=(isset($value["href"]))?$value["href"]:'';
$show=(isset($value["show"]))?$value["show"]:0;
$title = (isset($value["title"]))?$value["title"]:'';
$admin_bar[$key]['href']=$href;
$admin_bar[$key]['show']=$show;
$admin_bar[$key]['title']=$title;
}
$Options['admin_bar'] = $admin_bar;
}
global $wp_admin_bar;
$admin_bar = $wp_admin_bar->get_nodes();
if(is_array($admin_bar) && count($admin_bar)>0) $this->admin_bar2 = $admin_bar;
if(is_array($this->admin_bar2)) foreach($this->admin_bar2 as $node_id => $node){
if(isset($Options['admin_bar'][$node_id]['show']) && $Options['admin_bar'][$node_id]['show']==0)
$wp_admin_bar->remove_menu($node_id);
else{
$new_node=$wp_admin_bar->get_node($node_id);
if(!empty($Options['admin_bar'][$node_id]['title']) && $Options['admin_bar'][$node_id]['show']!=$node->title){
$title=$this->val_replace($Options['admin_bar'][$node_id]['title']);
$new_node->title=stripslashes($title);
}
if(isset($Options['admin_bar'][$node_id]['href']) && $Options['admin_bar'][$node_id]['href']!=$node->href)
$new_node->href=$Options['admin_bar'][$node_id]['href'];
if($new_node->id=='logout')
$new_node->href=wp_logout_url();
$wp_admin_bar->remove_menu($node_id);
$wp_admin_bar->add_node($new_node);
}
}
}
// exit;
}
private function val_replace( $str ) {
if( !empty( $str ) ) {
$update_data = wp_get_update_data();
$awaiting_mod = wp_count_comments();
$awaiting_mod = $awaiting_mod->moderated;
$current_user = wp_get_current_user();
if( is_multisite() ) {
$current_site = get_current_site();
}
if( strstr( $str , '[comment_count]') ) {
if ( current_user_can('edit_posts') ) {
$str = str_replace( '[comment_count]' , '<span class="ab-icon"></span><span id="ab-awaiting-mod" class="ab-label awaiting-mod pending-count count-[comment_count]">[comment_count_format]</span>' , $str );
}
}
if( strstr( $str , '[update_total]') ) {
if ( $update_data['counts']['total'] ) {
$str = str_replace( '[update_total]' , '<span class="ab-icon"></span><span class="ab-label">[update_total_format]</span>' , $str );
}
}
if( strstr( $str , '[update_plugins]') ) {
if ( $update_data['counts']['plugins'] ) {
$str = str_replace( '[update_plugins]' , '[update_plugins_format]' , $str );
}
}
if( strstr( $str , '[update_themes]') ) {
if ( $update_data['counts']['themes'] ) {
$str = str_replace( '[update_themes]' , '[update_themes_format]' , $str );
}
}
if( strstr( $str , '[blog_url]') ) {
$str = str_replace( '[blog_url]' , home_url() , $str );
}
if( strstr( $str , '[template_directory_uri]') ) {
$str = str_replace( '[template_directory_uri]' ,get_template_directory_uri() , $str );
}
if( strstr( $str , '[stylesheet_directory_uri]') ) {
$str = str_replace( '[stylesheet_directory_uri]' , get_stylesheet_directory_uri() , $str );
}
if( strstr( $str , '[blog_name]') ) {
$str = str_replace( '[blog_name]' , get_bloginfo( 'name' ) , $str );
}
if( strstr( $str , '[update_total]') ) {
$str = str_replace( '[update_total]' , $update_data["counts"]["total"] , $str );
}
if( strstr( $str , '[update_total_format]') ) {
$str = str_replace( '[update_total_format]' , number_format_i18n( $update_data["counts"]["total"] ) , $str );
}
if( strstr( $str , '[update_plugins]') ) {
$str = str_replace( '[update_plugins]' , $update_data["counts"]["plugins"] , $str );
}
if( strstr( $str , '[update_plugins_format]') ) {
$str = str_replace( '[update_plugins_format]' , number_format_i18n( $update_data["counts"]["plugins"] ) , $str );
}
if( strstr( $str , '[update_themes]') ) {
$str = str_replace( '[update_themes]' , $update_data["counts"]["themes"] , $str );
}
if( strstr( $str , '[update_themes_format]') ) {
$str = str_replace( '[update_themes_format]' , number_format_i18n( $update_data["counts"]["themes"] ) , $str );
}
if( strstr( $str , '[comment_count]') ) {
$str = str_replace( '[comment_count]' , $awaiting_mod , $str );
}
if( strstr( $str , '[comment_count_format]') ) {
$str = str_replace( '[comment_count_format]' , number_format_i18n( $awaiting_mod ) , $str );
}
if( strstr( $str , '[user_name]') ) {
$str = str_replace( '[user_name]' , '<span class="display-name">' . $current_user->display_name . '</span>' , $str );
}
if( strstr( $str , '[user_login]') ) {
$str = str_replace( '[user_login]' , '<span class=\'username\'>' . $current_user->user_login . '</span>' , $str );
}
if( strstr( $str , '[avatar16]') ) {
if(function_exists('bp_core_fetch_avatar'))
$avatar16 = bp_core_fetch_avatar(array('item_id' => get_current_user_id()
, 'type' => 'thumb', 'width' => 16, 'height' => 16
, 'class' => 'friend-avatar', 'html'=>true));
else $avatar16 = get_avatar( get_the_author_meta( $current_user->user_login ), 16 );
$str = str_replace( '[avatar16]' , $avatar16, $str );
}
if( strstr( $str , '[avatar64]') ) {
if(function_exists('bp_core_fetch_avatar'))
$avatar64 = bp_core_fetch_avatar(array('item_id' => get_current_user_id()
, 'type' => 'full', 'width' => 64, 'height' => 64
, 'class' => 'friend-avatar', 'html'=>true));
else $avatar64 = get_avatar( get_the_author_meta( $current_user->user_login ), 64 );
$str = str_replace( '[avatar64]' , $avatar64, $str );
}
if( is_multisite() ) {
if( strstr( $str , '[site_name]') ) {
$str = str_replace( '[site_name]' , esc_attr( $current_site->site_name ) , $str );
}
if( strstr( $str , '[site_url]') ) {
$protocol = is_ssl() ? 'https://' : 'http://';
$str = str_replace( '[site_url]' , $protocol . esc_attr( $current_site->domain ) , $str );
}
}
}
return $str;
}
/** Admin footer text */
public function update_admin_footer ()
{
$text =__('Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.',self::LANG);
if(!isset($_POST['reset_settings'])){
$Options = $this->getOptions();
if(!empty($Options['settings']['admin_footer_text']))
$text = $Options['settings']['admin_footer_text'];
}
echo $text;
}
public function update_version_footer($upgrade){
$Options=$this->getOptions();
if(isset($_POST['reset_settings'])) return $upgrade;
if(!isset($Options['settings']['admin_footer_version'])) echo '';
elseif($Options['settings']['admin_footer_version']==1)
return $upgrade;
}
/**Custom CSS**/
public function generate_custom_css(){
$text ='';
if(!isset($_POST['reset_settings'])){
$Options = $this->getOptions();
if(isset($_POST['settings']['custom_css'])) $Options['settings']['custom_css']=$_POST['settings']['custom_css'];
if(!empty($Options['settings']['custom_css'])){
$text="<style>\n";
$text.= $Options['settings']['custom_css']."\n";
$text.="</style>\n";
}
}
echo $text;
}
/** custom dashboard widget */
public function add_dashboard_widgets() {
$Option=$this->getOptions();
$title=(!empty($Option['custom_db_widget']['title']))?$Option['custom_db_widget']['title']:"Your Custom Widget Title";
wp_add_dashboard_widget('custom_db_widget', $title, array($this,'db_wiget_content'));
$title=(!empty($Option['custom_rss_db_widget']['title']))?$Option['custom_rss_db_widget']['title']:"Your RSS Widget Title";
wp_add_dashboard_widget('custom_rss_db_widget', $title, array($this,'rss_db_wiget_content'));
}
public function rss_db_wiget_content($content){
$Option=$this->getOptions();
$url =(!empty($Option['custom_rss_db_widget']['url']))?$Option['custom_rss_db_widget']['url']:false;
$max = (!empty($Option['custom_rss_db_widget']['max']))?$Option['custom_rss_db_widget']['max']:5;
if(!is_integer($max)) $max=5;
$result = false;
if($url){
// Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/feed.php');
$urls = explode("\r\n",$url);
foreach ( $urls as $feed) :
if(filter_var($feed, FILTER_VALIDATE_URL) != FALSE){
// Get a SimplePie feed object from the specified feed source.
$rss = fetch_feed( $feed );
if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly
// Figure out how many total items there are, and choose a limit
$maxitems = $rss->get_item_quantity( $max );
// Build an array of all the items, starting with element 0 (first element).
$rss_items = $rss->get_items( 0, $maxitems );
// Get RSS title
$rss_title = '<a href="'.$rss->get_permalink().'" target="_blank">'.strtoupper( $rss->get_title() ).'</a>';
endif;
// Display the container
$result .= '<div class="rss-widget">';
$result .= '<strong>'.$rss_title.'</strong>';
$result .= '<hr style="border: 0; background-color: #DFDFDF; height: 1px;">';
// Starts items listing within <ul> tag
$result .= '<ul>';
// Check items
if ( $maxitems == 0 ) {
$result .= '<li>'.__( 'No item', 'rc_mdm').'.</li>';
} else {
// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ) :
// Uncomment line below to display non human date
//$item_date = $item->get_date( get_option('date_format').' @ '.get_option('time_format') );
// Get human date (comment if you want to use non human date)
$item_date = human_time_diff( $item->get_date('U'), current_time('timestamp')).' '.__( 'ago', 'rc_mdm' );
// Start displaying item content within a <li> tag
$result .= '<li>';
// create item link
$result .= '<a href="'.esc_url( $item->get_permalink() ).'" title="'.$item_date.'">';
// Get item title
$result .= esc_html( $item->get_title() );
$result .= '</a>';
// Display date
$result .= ' <span class="rss-date">'.$item_date.'</span><br />';
// Get item content
$content = $item->get_content();
// Shorten content
$content = wp_html_excerpt($content, 120) . ' [...]';
// Display content
$result .= $content;
// End <li> tag
$result .= '</li>';
endforeach;
}
// End <ul> tag
$result .= '</ul></div>';
}
endforeach; // End foreach feed
$content = $result;
}else $content="URL feed is empty";
if(!$result) $content="URL invalid";
echo $content;
}
public function db_wiget_content($content){
$Option=$this->getOptions();
$content=(!empty($Option['custom_db_widget']['content']))?$Option['custom_db_widget']['content']:"Your Custom Widget Content";
echo $content;
}
/** hover */
public function add_admin_body_class( $classes )
{
if(!isset($_POST['reset_settings'])){
$Options=$this->getOptions();
if(isset($_POST['settings'])) $Options['settings']['hover']=(isset($_POST['settings']['hover']))?$_POST['settings']['hover']:NULL;
if(isset($Options['settings']['hover']))
$classes .=" modern-admin-hover";
}
return $classes;
}
public function export_modern_admin_callback(){
$Option = $this->getOptions();
$content = serialize($Option);
header("HTTP/1.1 200 OK");
$file_name = "modern_admin_export.txt";
header('Content-Type: text/csv');
$fsize = strlen($content);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header("Content-Disposition: attachment; filename=" . $file_name);
header("Content-Length: ".$fsize);
header("Expires: 0");
header("Pragma: public");
echo $content;
}
public function modern_admin_import_export(){
include("includes/import-export.php");
}
public function hex2rgb($hex) {
$hex = str_replace("#", "", $hex);
if(strlen($hex) == 3) {
$r = hexdec(substr($hex,0,1).substr($hex,0,1));
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
} else {
$r = hexdec(substr($hex,0,2));
$g = hexdec(substr($hex,2,2));
$b = hexdec(substr($hex,4,2));
}
$rgb = array($r, $g, $b);
//return implode(",", $rgb); // returns the rgb values separated by commas
return $rgb; // returns an array with the rgb values
}
}
?>