get_settings(); add_image_size( 'aip_magazine-cover-image', apply_filters( 'aip_magazine-cover-image-width', $settings['cover_image_width'] ), apply_filters( 'aip_magazine-cover-image-height', $settings['cover_image_height'] ), true ); add_image_size( 'aip_magazine-featured-rotator-image', apply_filters( 'aip_magazine-featured-rotator-image-width', $settings['featured_image_width'] ), apply_filters( 'aip_magazine-featured-rotator-image-height', $settings['featured_image_height'] ), true ); add_image_size( 'aip_magazine-featured-thumb-image', apply_filters( 'aip_magazine-featured-thumb-image-width', $settings['featured_thumb_width'] ), apply_filters( 'aip_magazine-featured-thumb-image-height', $settings['featured_thumb_height'] ), true ); add_action( 'admin_init', array( $this, 'upgrade' ) ); add_action( 'admin_menu', array( $this, 'admin_menu' ) ); add_action( 'admin_notices', array( $this, 'aip_magazine_notification' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_wp_enqueue_scripts' ) ); add_action( 'admin_print_styles', array( $this, 'admin_wp_print_styles' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'frontend_scripts' ) ); register_activation_hook( __FILE__, array( $this, 'activation' ) ); register_deactivation_hook( __FILE__, array( $this, 'deactivation' ) ); add_action( 'wp_ajax_aip_magazine_process_notice_link', array( $this, 'ajax_process_notice_link' ) ); if ( !empty( $settings['aip_magazine_author_name'] ) && !is_admin() ) add_filter( 'the_author', array( $this, 'the_author' ) ); if ( !empty( $settings['use_wp_taxonomies'] ) ) add_action( 'pre_get_posts', array( $this, 'add_aip_magazine_articles_to_tag_query' ) ); if ( !is_admin() ) add_action( 'pre_get_posts', array( $this, 'remove_draft_issues_from_main_query' ) ); /*classe che implementa il filtro di ricerca per le riviste*/ if( ! class_exists( 'Aip_Magazine_Parent_Category_Filter' ) ) { require_once('aip_magazine-parent-category-filter.php'); } $pcf = new Aip_Magazine_Parent_Category_Filter(); $pcf->register_hooks(); } /** * Runs activation routines when AipMagazine is activated * * @since 1.0.0 * */ function activation() { add_option( 'aip_magazine_flush_rewrite_rules', 'true' ); } /** * Initialize AipMagazine Admin Menu * * @since 1.0.0 */ function admin_menu() { add_submenu_page( 'edit.php?post_type=aip_article', __( 'Settings', 'aip_magazine' ), __( 'Settings', 'aip_magazine' ), apply_filters( 'manage_aip_magazine_settings', 'manage_aip_magazine_settings' ), 'aip_magazine', array( $this, 'settings_page' ) ); add_submenu_page( 'edit.php?post_type=aip_article', __( 'Help', 'aip_magazine' ), __( 'Help', 'aip_magazine' ), apply_filters( 'manage_aip_magazine_settings', 'manage_aip_magazine_settings' ), 'aip_magazine-help', array( $this, 'help_page' ) ); } /** * Replaces Author Name with AipMagazine setting, if it is set * Otherwise, uses WordPress's Author name * * @since 1.0.0 * * @param string $wp_author WordPress Author name * @return string Author Name */ function the_author( $wp_author ) { global $post; if ( !empty( $post->ID ) ) { if ( $author_name = get_post_meta( $post->ID, '_aip_magazine_author_name', true ) ) return $author_name; else return $wp_author; } return $wp_author; } /** * Modifies WordPress query to include Articles in Tag/Category queries * * @since 1.0.0 * * @param object $query WordPress Query Object */ function add_aip_magazine_articles_to_tag_query( $query ) { if ( $query->is_main_query() && ( $query->is_tag() || $query->is_category() ) ) $query->set( 'post_type', array( 'post', 'aip_article' ) ); } /** * Modifies WordPress query to remove draft Issues from queries * Except for users with permission to see drafts * * @since 1.2.0 * * @param object $query WordPress Query Object */ function remove_draft_issues_from_main_query( $query ) { if ( !is_admin() && $query->is_main_query() && !current_user_can( apply_filters( 'see_aip_magazine_draft_issues', 'manage_issues' ) ) ) { $term_ids = get_aip_magazine_draft_issues(); $draft_issues = array( 'taxonomy' => 'aip_magazine_issue', 'field' => 'id', 'terms' => $term_ids, 'operator' => 'NOT IN', ); if ( !$query->is_tax() ) { $query->set( 'tax_query', array( $draft_issues, ) ); } else { $term_ids = get_aip_magazine_draft_issues(); $tax_query = $query->tax_query->queries; $tax_query[] = $draft_issues; $tax_query['relation'] = 'AND'; $query->set( 'tax_query', $tax_query ); } } } /** * Enqueues styles used by AipMagazine WordPress Dashboard * * @since 1.0.0 * @uses wp_enqueue_style() to enqueue CSS files */ function admin_wp_print_styles() { global $hook_suffix; if ( 'article_page_aip_magazine' == $hook_suffix || ( 'edit.php' == $hook_suffix && !empty( $_GET['post_type'] ) && 'aip_article' == $_GET['post_type'] ) || ( 'edit-tags.php' == $hook_suffix && !empty( $_GET['post_type'] ) && 'aip_article' == $_GET['post_type'] ) ) wp_enqueue_style( 'aip_magazine_admin_style', AIPMAGAZINE_URL . '/css/aip_magazine-admin.css', '', AIPMAGAZINE_VERSION ); } /** * Enqueues scripts used by AipMagazine WordPress Dashboard * * @since 1.0.0 * @uses wp_enqueue_script() to enqueue JS files */ function admin_wp_enqueue_scripts( $hook_suffix ) { // Hack for edit-tags to include the "enctype=multipart/form-data" argument in the edit tags HTML form, // for uploading issue cover images if ( ('edit-tags.php'==$hook_suffix || 'term.php' == $hook_suffix) && !empty( $_GET['taxonomy'] ) && 'aip_magazine_issue' == $_GET['taxonomy']) wp_enqueue_script( 'aip_magazine_issue-custom-tax-hacks', AIPMAGAZINE_URL . '/js/aip_magazine_issue-custom-tax-hacks.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); if ( 'post.php' == $hook_suffix ) wp_enqueue_script( 'aip_magazine_issue-edit-article-hacks', AIPMAGAZINE_URL . '/js/aip_magazine_issue-edit-article-hacks.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); if ( 'widgets.php'== $hook_suffix ) wp_enqueue_script( 'aip_magazine_issue-widgets', AIPMAGAZINE_URL . '/js/aip_magazine_issue-widgets.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); if ( 'aip_article_page_aip_magazine' == $hook_suffix ) wp_enqueue_script( 'aip_magazine-admin', AIPMAGAZINE_URL . '/js/aip_magazine-admin.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); wp_enqueue_media(); wp_enqueue_script( 'aip_magazine-script', AIPMAGAZINE_URL . 'js/script.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); wp_localize_script( 'aip_magazine-script', 'aip_magazine_ajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'noticeNonce' => wp_create_nonce( 'aip_magazine-notice-nonce') ) ); } /** * Enqueues styles and scripts used by AipMagazine on the frontend * * @since 1.0.0 * @uses wp_enqueue_script() to enqueue JS files * @uses wp_enqueue_style() to enqueue CSS files */ function frontend_scripts() { $settings = $this->get_settings(); if ( apply_filters( 'enqueue_aip_magazine_styles', 'true' ) ) { switch( $settings['css_style'] ) { case 'none' : break; case 'default' : default : wp_enqueue_style( 'aip_magazine_style', AIPMAGAZINE_URL . '/css/aip_magazine.css', '', AIPMAGAZINE_VERSION ); break; } } wp_enqueue_script( 'jquery-aip_magazine-flexslider', AIPMAGAZINE_URL . '/js/swiper.min.js', array( 'jquery' ), AIPMAGAZINE_VERSION ); wp_enqueue_style( 'jquery-aip_magazine-flexslider', AIPMAGAZINE_URL . '/css/swiper.css', '', AIPMAGAZINE_VERSION ); } /** * Gets AipMagazine settings * * @since 1.0.0 * * @return array AipMagazine settings, merged with defaults. \ */ function get_settings() { $defaults = array( 'page_for_articles' => 0, 'page_for_articles_active_issue' => 0, 'page_for_archives' => 0, 'page_of_journals_articles_active_issue' => 0, 'page_of_journals_articles_archives' => 0, 'pdf_title' => __( 'Download PDF', 'aip_magazine' ), 'pdf_only_title' => __( 'Download PDF', 'aip_magazine' ), 'pdf_open_target' => '_blank', 'cover_image_width' => 200, 'cover_image_height' => 268, 'featured_image_width' => 600, 'featured_image_height' => 338, 'featured_thumb_width' => 160, 'featured_thumb_height' => 120, 'default_issue_image' => apply_filters( 'aip_magazine_default_issue_image', AIPMAGAZINE_URL . '/images/archive-image-unavailable.jpg' ), 'custom_image_used' => 0, 'display_byline_as' => 'user_firstlast', 'aip_magazine_author_name' => '', 'use_wp_taxonomies' => '', 'use_issue_tax_links' => '', 'article_format' => '
%CATEGORY[1]%
' . "\n" . '' . "\n" . '%EXCERPT%
' . "\n" . '' . "\n", 'css_style' => 'default', 'show_rotator_control' => '', 'show_rotator_direction' => '', 'animation_type' => 'slide', ); $defaults = apply_filters( 'aip_magazine_default_settings', $defaults ); $settings = get_option( 'aip_magazine' ); return wp_parse_args( $settings, $defaults ); } /** * Update AipMagazine settings * * @since 1.2.0 * * @param array AipMagazine settings \ */ function update_settings( $settings ) { update_option( 'aip_magazine', $settings ); } /** * Outputs the AipMagazine settings page * * @since 1.0 * @todo perform the save function earlier */ function settings_page() { // Get the user options $settings = $this->get_settings(); if ( !empty( $_REQUEST['remove_default_issue_image'] ) ) { wp_delete_attachment( sanitize_text_key($_REQUEST['remove_default_issue_image']) ); unset( $settings['default_issue_image'] ); unset( $settings['custom_image_used'] ); $this->update_settings( $settings ); $settings = $this->get_settings(); } if ( !empty( $_REQUEST['update_aip_magazine_settings'] ) ) { if ( isset( $_REQUEST['page_for_articles'] ) ) $settings['page_for_articles'] = sanitize_text_field($_REQUEST['page_for_articles']); if ( isset( $_REQUEST['page_for_articles_active_issue'] ) ) $settings['page_for_articles_active_issue'] = sanitize_text_field($_REQUEST['page_for_articles_active_issue']); if ( isset( $_REQUEST['page_for_archives'] ) ) $settings['page_for_archives'] = sanitize_text_field($_REQUEST['page_for_archives']); if ( isset( $_REQUEST['page_of_journals_articles_active_issue'] ) ){ $settings['page_of_journals_articles_active_issue'] = sanitize_text_field($_REQUEST['page_of_journals_articles_active_issue']); } if ( isset( $_REQUEST['page_of_journals_articles_archives'] ) ){ $settings['page_of_journals_articles_archives'] = sanitize_text_field($_REQUEST['page_of_journals_articles_archives']); } if ( !empty( $_REQUEST['css_style'] ) ) $settings['css_style'] = sanitize_text_field($_REQUEST['css_style']); if ( !empty( $_REQUEST['pdf_title'] ) ) $settings['pdf_title'] = sanitize_text_field($_REQUEST['pdf_title']); if ( !empty( $_REQUEST['pdf_only_title'] ) ) $settings['pdf_only_title'] = sanitize_text_field($_REQUEST['pdf_only_title']); if ( !empty( $_REQUEST['pdf_open_target'] ) ) $settings['pdf_open_target'] = sanitize_text_field($_REQUEST['pdf_open_target']); if ( !empty( $_REQUEST['article_format'] ) ) $settings['article_format'] = sanitize_text_field($_REQUEST['article_format']); if ( !empty( $_REQUEST['cover_image_width'] ) ) $settings['cover_image_width'] = sanitize_text_field($_REQUEST['cover_image_width']); else unset( $settings['cover_image_width'] ); if ( !empty( $_REQUEST['cover_image_height'] ) ) $settings['cover_image_height'] = sanitize_text_field($_REQUEST['cover_image_height']); else unset( $settings['cover_image_height'] ); if ( !empty( $_REQUEST['featured_image_width'] ) ) $settings['featured_image_width'] = sanitize_text_field($_REQUEST['featured_image_width']); else unset( $settings['featured_image_width'] ); if ( !empty( $_REQUEST['featured_image_height'] ) ) $settings['featured_image_height'] = sanitize_text_field($_REQUEST['featured_image_height']); else unset( $settings['featured_image_height'] ); if ( !empty( $_REQUEST['featured_thumb_width'] ) ) $settings['featured_thumb_width'] = sanitize_text_field($_REQUEST['featured_thumb_width']); else unset( $settings['featured_thumb_width'] ); if ( !empty( $_REQUEST['featured_thumb_height'] ) ) $settings['featured_thumb_height'] = sanitize_text_field($_REQUEST['featured_thumb_height']); else unset( $settings['featured_thumb_height'] ); if ( !empty( $_REQUEST['default_issue_image'] ) ) { $settings['default_issue_image'] = sanitize_key($_REQUEST['default_issue_image']); $settings['custom_image_used'] = 1; } if ( !empty( $_REQUEST['display_byline_as'] ) ) $settings['display_byline_as'] = sanitize_text_field($_REQUEST['display_byline_as']); if ( !empty( $_REQUEST['aip_magazine_author_name'] ) ) $settings['aip_magazine_author_name'] = sanitize_text_field($_REQUEST['aip_magazine_author_name']); else unset( $settings['aip_magazine_author_name'] ); if ( !empty( $_REQUEST['show_thumbnail_byline'] ) ) $settings['show_thumbnail_byline'] = sanitize_text_field($_REQUEST['show_thumbnail_byline']); else unset( $settings['show_thumbnail_byline'] ); if ( !empty( $_REQUEST['use_wp_taxonomies'] ) ) $settings['use_wp_taxonomies'] = sanitize_text_field($_REQUEST['use_wp_taxonomies']); else unset( $settings['use_wp_taxonomies'] ); if ( !empty( $_REQUEST['use_issue_tax_links'] ) ) $settings['use_issue_tax_links'] = sanitize_text_field($_REQUEST['use_issue_tax_links']); else unset( $settings['use_issue_tax_links'] ); if ( !empty( $_REQUEST['show_rotator_control'] ) ) $settings['show_rotator_control'] = sanitize_text_field($_REQUEST['show_rotator_control']); else unset( $settings['show_rotator_control'] ); if ( !empty( $_REQUEST['show_rotator_direction'] ) ) $settings['show_rotator_direction'] = sanitize_text_field($_REQUEST['show_rotator_direction']); else unset( $settings['show_rotator_direction'] ); if ( !empty( $_REQUEST['animation_type'] ) ) $settings['animation_type'] = sanitize_text_field($_REQUEST['animation_type']); $settings = apply_filters( 'aip_magazine_save_settings', $settings ); $this->update_settings( $settings ); // It's not pretty, but the easiest way to get the menu to refresh after save... ?> [aip_magazine_issue_title]
[aip_magazine_articles]
[aip_magazine_articles post_per_page="3"]
[aip_magazine_featured_rotator]
[aip_magazine_featured_rotator journal_id="1"]
[aip_magazine_featured_rotator issue="issue-5" orderby="title" order="ASC"]
[aip_magazine_featured_thumbnails]
.
[aip_magazine_featured_thumbnails journal_id="2"]
[aip_magazine_featured_thumbnails issue="issue-5" orderby="menu_order" order="DESC"]
: [aip_magazine_archives]
[aip_magazine_archives journal_id="1"]
[aip_magazine_archives journal_id="1" orderby="name" order="ASC" limit=5]
' . $notification . '