| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- <?php
- /**
- * Logic for the user templates admin edit screen.
- *
- * @since 1.10
- */
- final class FLBuilderUserTemplatesAdminEdit {
- /**
- * Initialize hooks.
- *
- * @since 1.10
- * @return void
- */
- static public function init() {
- /* Actions */
- add_action( 'plugins_loaded', __CLASS__ . '::redirect' );
- add_action( 'admin_enqueue_scripts', __CLASS__ . '::admin_enqueue_scripts' );
- add_action( 'edit_form_after_title', __CLASS__ . '::render_global_node_message' );
- add_action( 'add_meta_boxes', __CLASS__ . '::add_meta_boxes', 1 );
- /* Filters */
- add_filter( 'fl_builder_render_admin_edit_ui', __CLASS__ . '::remove_builder_edit_ui' );
- }
- /**
- * Redirects the post-new.php page to our custom add new page.
- *
- * @since 1.10
- * @return void
- */
- static public function redirect() {
- global $pagenow;
- $post_type = isset( $_GET['post_type'] ) ? $_GET['post_type'] : null;
- $args = $_GET;
- if ( 'post-new.php' == $pagenow && 'fl-builder-template' == $post_type ) {
- $args['page'] = 'fl-builder-add-new';
- wp_redirect( admin_url( '/edit.php?' . http_build_query( $args ) ) );
- exit;
- }
- }
- /**
- * Enqueue scripts and styles for user templates.
- *
- * @since 1.10
- * @return void
- */
- static public function admin_enqueue_scripts() {
- global $pagenow;
- global $post;
- $screen = get_current_screen();
- $slug = 'fl-builder-user-templates-admin-';
- $url = VAMTAMEL_B_USER_TEMPLATES_URL;
- $version = FL_BUILDER_VERSION;
- if ( 'post.php' == $pagenow && 'fl-builder-template' == $screen->post_type ) {
- wp_enqueue_style( $slug . 'edit', $url . 'css/' . $slug . 'edit.css', array(), $version );
- wp_enqueue_script( $slug . 'edit', $url . 'js/' . $slug . 'edit.js', array(), $version );
- wp_localize_script( $slug . 'edit', 'FLBuilderConfig', array(
- 'pageTitle' => self::get_page_title(),
- 'userTemplateType' => FLBuilderModel::get_user_template_type( $post->ID ),
- 'addNewURL' => admin_url( '/edit.php?post_type=fl-builder-template&page=fl-builder-add-new' ),
- ) );
- }
- }
- /**
- * Returns the page title for the edit screen.
- *
- * @since 1.10
- * @return string
- */
- static public function get_page_title() {
- global $post;
- $type = FLBuilderModel::get_user_template_type( $post->ID );
- $action = __( 'Edit', 'vamtam-elements-b' );
- if ( 'row' == $type ) {
- $label = sprintf( _x( '%s Saved Row', '%s is an action like Add, Edit or View.', 'vamtam-elements-b' ), $action );
- } elseif ( 'module' == $type ) {
- $label = sprintf( _x( '%s Saved Module', '%s is an action like Add, Edit or View.', 'vamtam-elements-b' ), $action );
- } else {
- $label = sprintf( _x( '%s Template', '%s is an action like Add, Edit or View.', 'vamtam-elements-b' ), $action );
- }
- return $label;
- }
- /**
- * Renders a notice div for global nodes.
- *
- * @since 1.0
- * @return void
- */
- static public function render_global_node_message() {
- global $pagenow;
- global $post;
- $screen = get_current_screen();
- if ( 'post.php' == $pagenow && 'fl-builder-template' == $screen->post_type ) {
- if ( FLBuilderModel::is_post_global_node_template( $post->ID ) ) {
- $type = FLBuilderModel::get_user_template_type( $post->ID );
- include VAMTAMEL_B_USER_TEMPLATES_DIR . 'includes/admin-edit-global-message.php';
- }
- }
- }
- /**
- * Callback for adding meta boxes to the user template
- * post edit screen.
- *
- * @since 1.0
- * @return void
- */
- static public function add_meta_boxes() {
- add_meta_box(
- 'fl-builder-user-template-buttons',
- FLBuilderModel::get_branding(),
- __CLASS__ . '::render_buttons_meta_box',
- 'fl-builder-template',
- 'normal',
- 'high'
- );
- }
- /**
- * Adds custom buttons to the edit screen for launching the builder
- * or viewing a template.
- *
- * @since 1.10
- * @return void
- */
- static public function render_buttons_meta_box() {
- global $post;
- $type = FLBuilderModel::get_user_template_type( $post->ID );
- $edit = sprintf( _x( 'Launch %s', '%s stands for custom branded "Page Builder" name.', 'vamtam-elements-b' ), FLBuilderModel::get_branding() );
- $view = __( 'View', 'vamtam-elements-b' );
- if ( 'fl-builder-template' == $post->post_type ) {
- if ( 'row' == $type ) {
- $view = sprintf( _x( '%s Saved Row', '%s is an action like Add, Edit or View.', 'vamtam-elements-b' ), $view );
- } elseif ( 'module' == $type ) {
- $view = sprintf( _x( '%s Saved Module', '%s is an action like Add, Edit or View.', 'vamtam-elements-b' ), $view );
- } else {
- $view = sprintf( _x( '%s Template', '%s is an action like Add, Edit or View.', 'vamtam-elements-b' ), $view );
- }
- } else {
- $object = get_post_type_object( $post->post_type );
- $view = sprintf( _x( '%1$s %2$s', '%1$s is an action like Add, Edit or View. %2$s is post type label.', 'vamtam-elements-b' ), $view, $object->labels->singular_name );
- }
- include VAMTAMEL_B_USER_TEMPLATES_DIR . 'includes/admin-edit-buttons.php';
- }
- /**
- * Prevents the standard builder admin edit UI from rendering.
- *
- * @since 1.10
- * @param bool $render_ui
- * @return bool
- */
- static public function remove_builder_edit_ui( $render_ui ) {
- return 'fl-builder-template' == FLBuilderAdminPosts::get_post_type() ? false : $render_ui;
- }
- }
- FLBuilderUserTemplatesAdminEdit::init();
|