dir = '/'.str_replace( ABSPATH, '', dirname( __FILE__ ) ); /// Widget rendering initialization add_action( 'init', array( $this, 'init' ) ); add_action( "plugins_loaded", array( $this, "widget_init" ) ); /// Admin initilization if ( is_admin() ){ add_action( 'admin_init', array( $this, 'admin_init' ) ); add_action( 'admin_menu', array( $this, 'generate_admin' ) ); add_action( "widgets_init", array( $this, "widget_control" ) ); } } /** * Widget rendering initilization * Includes scripts and stylesheets * Load locales files */ public function init(){ wp_enqueue_script('jquery'); wp_enqueue_script( 'jqueryui', $this->dir.'/js/jquery-ui.js', array('jquery') ); wp_enqueue_script( 'articleAccordion.ready', $this->dir.'/js/ready.js', array('jqueryui') ); wp_enqueue_style( 'jqueryui', $this->dir.'/css/ui-theme/ui.all.css' ); wp_enqueue_style( 'articleAccordion.style', $this->dir.'/css/style.css' ); load_plugin_textdomain( 'articleaccordion', null, 'articleAccordion/lang'); } /// Widgets methods /** * Register widget in sidebar */ public function widget_init(){ register_sidebar_widget( "Article Accordion", array( $this, "widget_render" ) ); } /** * Register widget control */ public function widget_control(){ register_widget_control( "Article Accordion", array( $this, "generate_widget_control" ) ); } /** * Widget rendering */ public function widget_render() { include( 'widget.php' ); } /** * Widget control rendering */ public function generate_widget_control(){ $this->process_widget_options(); echo $this->generate_widget_control_string(); } /** * Process widget options control form */ private function process_widget_options(){ if (!empty($_POST['aa_widget_title'])) update_option('aa_widget_title', $_POST['aa_widget_title']); if (!empty($_POST['aa_max_articles'])) update_option('aa_max_articles', $_POST['aa_max_articles']); if (!empty($_POST['aa_displayed_cat'])) update_option('aa_displayed_cat', $_POST['aa_displayed_cat']); } /** * @return string : widget control string */ private function generate_widget_control_string(){ $displayedCat = get_option('aa_displayed_cat'); $categories = get_categories(); $string = __('Select categories', 'articleaccordion').' :
| '.__('Widget Title', 'articleaccordion').' : | |
| '.__('Max articles', 'articleaccordion').' : | |