%PDF- %PDF-
Direktori : /var/www/html/itworks/wp-content/plugins/thim-testimonials/ |
Current File : /var/www/html/itworks/wp-content/plugins/thim-testimonials/init.php |
<?php // load text domain add_action( 'plugins_loaded', array( 'testimonials_metabox', 'text_domain' ) ); if ( !class_exists( 'testimonials_metabox' ) ) { class testimonials_metabox { /** * @var array Meta box information */ public $meta_box; // Safe to start up public function __construct( $args ) { // Assign meta box values to local variables and add it's missed values $this->meta_box = $args; // Add meta boxes on the 'add_meta_boxes' hook. add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) ); // Enqueue common styles and scripts add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); // Save post meta add_action( 'save_post', array( $this, 'save_data' ) ); // Load text domain // add_action( 'plugins_loaded', array( $this, 'text_domain' ) ); } public static function text_domain() { // Get mo file $text_domain = 'thim-testimonials'; $locale = apply_filters( 'plugin_locale', get_locale(), $text_domain ); $mo_file = $text_domain . '-' . $locale . '.mo'; // Check mo file global $mo_global = WP_LANG_DIR . '/plugins/' . $mo_file; // Load translate file if ( file_exists( $mo_global ) ) { load_textdomain( $text_domain, $mo_global ); } else { load_textdomain( $text_domain, TESTIMONIALS_PLUGIN_PATH . '/languages/' . $mo_file ); } } function admin_enqueue_scripts() { wp_enqueue_style( 'thim-meta-box', TESTIMONIALS_PLUGIN_URL . '/assets/css/meta-box.css', array(), "" ); } /** * Add meta box for multiple post types * * @return void */ public function add_meta_boxes() { // Use nonce for verification // create a custom nonce for submit verification later foreach ( $this->meta_box['pages'] as $page ) { add_meta_box( $this->meta_box['id'], $this->meta_box['title'], array( $this, 'meta_boxes_callback' ), $page, isset( $this->meta_box['context'] ) ? $this->meta_box['context'] : 'normal', isset( $this->meta_box['priority'] ) ? $this->meta_box['priority'] : 'default', $this->meta_box['fields'] ); } } // Callback function, uses helper function to print each meta box public function meta_boxes_callback( $post, $fields ) { // create a custom nonce for submit verification later echo '<input type="hidden" name="thim_meta_box_nonce" value="', wp_create_nonce( basename( __FILE__ ) ), '" />'; foreach ( $fields['args'] as $field ) { switch ( $field['type'] ) { case 'textfield': $this->textfield( $field, $post->ID ); break; case 'textarea': $this->textarea( $field, $post->ID ); break; case 'checkbox': $this->checkbox( $field, $post->ID ); break; case 'select': $this->select( $field, $post->ID ); break; } } } private function textarea( $field, $post_id ) { $post_meta = get_post_meta( $post_id, $field['id'], true ); if ( isset( $field['class'] ) ) { $extra_class = " " . $field['class']; } else { $extra_class = ""; } echo '<div class="thim-field' . $extra_class . '">'; echo '<div class="thim-label"><label>' . $field['name'] . ': </label></div>'; echo '<div class="thim-input">'; echo '<textarea name="' . $field['id'] . '" id="' . $field['id'] . '">' . $post_meta . '</textarea>'; echo '<div class="desc">' . $field['desc'] . '</div>'; echo '</div>'; echo '</div>'; } private function textfield( $field, $post_id ) { $post_meta = get_post_meta( $post_id, $field['id'], true ); if ( isset( $field['class'] ) ) { $extra_class = " " . $field['class']; } else { $extra_class = ""; } printf( '<div class="thim-field%s"><div class="thim-label"><label>%s: </label></div> <div class="thim-input"><input type="text" name="%s" value="%s" /> <div class="desc">%s</div></div></div>', $extra_class, $field['name'], $field['id'], $post_meta, $field['desc'] ); } private function checkbox( $field, $post_id ) { $post_meta = get_post_meta( $post_id, $field['id'], true ); $post_meta = get_post_meta( $post_id, $field['id'], true ); if ( isset( $field['class'] ) ) { $extra_class = " " . $field['class']; } else { $extra_class = ""; } echo '<div class="thim-field' . $extra_class . '">'; echo '<div class="thim-label"><label>' . $field['name'] . '</label></div>'; ?> <div class="thim-input"><input type="checkbox" name="<?php echo $field['id']; ?>" <?php checked( $post_meta, 'on' ); ?> /> <div class="desc"><?php echo $field['desc']; ?></div> </div> </div> <?php } private function select( $field, $post_id ) { $post_meta = get_post_meta( $post_id, $field['id'], true ); $post_meta = get_post_meta( $post_id, $field['id'], true ); if ( isset( $field['class'] ) ) { $extra_class = " " . $field['class']; } else { $extra_class = ""; } echo '<div class="thim-field' . $extra_class . '">'; echo '<div class="thim-label"><label>' . $field['name'] . '</label></div>'; echo '<div class="thim-input"><select name="' . $field['id'] . '" id="' . $field['id'] . '">'; foreach ( $field['options'] as $key => $value ) { echo '<option ' . ( ( $key == $post_meta ) ? ' selected ' : '' ) . ' value="' . $key . '">' . $value . '</option>'; } echo '</select><div class="desc">' . ( isset( $field['desc'] ) ? $field['desc'] : "" ) . '</div></div></div>'; } // Save data from meta box public function save_data( $post_id ) { // verify nonce if ( !isset( $_POST['thim_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['thim_meta_box_nonce'], basename( __FILE__ ) ) ) { return $post_id; } // check autosave if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return $post_id; } // check permissions if ( 'page' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id ) ) { return $post_id; } } elseif ( !current_user_can( 'edit_post', $post_id ) ) { return $post_id; } foreach ( $this->meta_box['fields'] as $field ) { $old = get_post_meta( $post_id, $field['id'], true ); $new = $_POST[$field['id']]; if ( $new && $new != $old ) { update_post_meta( $post_id, $field['id'], $new ); } elseif ( '' == $new && $old ) { delete_post_meta( $post_id, $field['id'], $old ); } } } } } if ( !class_exists( 'THIM_Testimonials' ) ) { /** * Thim Theme * * Manage the testimonials in the THIM Framework * * @class THIM_Testimonials * @package thimpress * @since 1.0 * @author kien16 */ class THIM_Testimonials { /** * @var string * @since 1.0 */ public $version = THIM_TESTIMONIALS_VERSION; /** * @var object The single instance of the class * @since 1.0 */ protected static $_instance = null; /** * @var string * @since 1.0 */ public $plugin_url; /** * @var string * @since 1.0 */ public $plugin_path; /** * The array of templates that this plugin tracks. * * @var array */ protected $templates; /** * Get the template path. * * @return string */ public function template_path() { return apply_filters( 'testimonials_template_path', 'thim-testimonials/' ); } /** * Main plugin Instance * * @static * @return object Main instance * * @since 1.0 * @author Antonino Scarfì <antonino.scarfi@yithemes.com> */ public static function instance() { if ( is_null( self::$_instance ) ) { self::$_instance = new self(); } return self::$_instance; } /** * Constructor * * Initialize plugin and registers the testimonials cpt */ public function __construct() { // Define the url and path of plugin $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) ); $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) ); //add_action( 'admin_enqueue_scripts', array( $this, 'thim_scripts' ) ); add_action( 'wp_footer', array( $this, 'thim_scripts' ) ); //add_action( 'wp_enqueue_scripts', array( $this, 'thim_scripts' ) ); // Register CPTU add_action( 'after_setup_theme', array( $this, 'register_cptu' ), 20 ); // Register Taxonomy // add_action( 'after_setup_theme', array( $this, 'register_taxonomy' ), 20 ); // require_once 'lib/aq_resizer.php'; // Display custom update messages for posts edits add_filter( 'post_updated_messages', array( $this, 'updated_messages' ) ); // Display custom update messages for posts edits add_filter( 'post_updated_messages', array( $this, 'updated_messages' ) ); // Include OWN Metabox add_action( 'admin_init', 'testimonials_register_meta_boxes' ); function testimonials_register_meta_boxes() { $meta_boxes = apply_filters( 'testimonials_meta_boxes', array() ); foreach ( $meta_boxes as $meta_box ) { new testimonials_metabox( $meta_box ); } } add_filter( 'testimonials_meta_boxes', array( $this, 'testimonials_register_metabox' ), 20 ); add_filter( 'template_include', array( $this, 'template_include' ), 20 ); } /** * Enqueue script and styles in admin side * * Add style and scripts to administrator * * @return void * @since 1.0 * @author thim */ public function thim_scripts() { } /** * Template part Redirect. * * @access public * @return void */ public function template_include( $template ) { if ( get_post_type() == "testimonials" && ( is_category() || is_archive() ) ) { $template = $this->get_template_part( 'archive', "testimonials" ); } else if ( get_post_type() == "testimonials" && is_single() ) { $template = $this->get_template_part( "single", "testimonials" ); } return $template; } /** * Get template part (for templates like the shop-loop). * * @access public * * @param mixed $slug * @param string $name (default: '') * * @return void */ public function get_template_part( $slug, $name = '' ) { $template = ''; // Look in yourtheme/slug-name.php and yourtheme/testimonials/slug-name.php if ( $name ) { $template = locate_template( array( "{$slug}-{$name}.php", 'testimonials/' . "{$slug}-{$name}.php" ) ); } // Get default slug-name.php if ( !$template && $name && file_exists( $this->plugin_path . "/templates/{$slug}-{$name}.php" ) ) { $template = $this->plugin_path . "/templates/{$slug}-{$name}.php"; } // If template file doesn't exist, look in yourtheme/slug.php and yourtheme/testimonials/slug.php if ( !$template ) { $template = locate_template( array( "{$slug}.php", 'testimonials/' . "{$slug}.php" ) ); } // Allow 3rd party plugin filter template file from their plugin $template = apply_filters( 'get_template_part', $template, $slug, $name ); return $template; } /** * Register the Custom Post Type Unlimited * * @return void * @since 1.0 * @author thimpress */ public function register_cptu() { $labels = array( 'name' => _x( 'Testimonials', 'Post Type General Name', 'thim-testimonials' ), 'singular_name' => _x( 'Testimonial', 'Post Type Singular Name', 'thim-testimonials' ), 'menu_name' => __( 'Testimonials', 'thim-testimonials' ), 'parent_item_colon' => __( 'Parent Testimonial:', 'thim-testimonials' ), 'all_items' => __( 'All Testimonials', 'thim-testimonials' ), 'view_item' => __( 'View Testimonial', 'thim-testimonials' ), 'add_new_item' => __( 'Add New Testimonial', 'thim-testimonials' ), 'add_new' => __( 'New Testimonial', 'thim-testimonials' ), 'edit_item' => __( 'Edit Testimonial', 'thim-testimonials' ), 'update_item' => __( 'Update Testimonial', 'thim-testimonials' ), 'search_items' => __( 'Search Testimonials', 'thim-testimonials' ), 'not_found' => __( 'No Testimonials found', 'thim-testimonials' ), 'not_found_in_trash' => __( 'No Testimonials found in Trash', 'thim-testimonials' ), ); $args = array( 'labels' => $labels, 'supports' => array( 'title', 'editor', 'thumbnail' ), 'menu_icon' => 'dashicons-testimonial', 'public' => true, 'rewrite' => array( 'slug' => _x( 'testimonials', 'URL slug', 'thim-testimonials' ) ), 'has_archive' => true, ); register_post_type( 'testimonials', $args ); } /** * Change updated messages * * @param array $messages * * @return array * @since 1.0 */ public function updated_messages( $messages = array() ) { global $post, $post_ID; $messages['testimonials'] = array( 0 => '', 1 => sprintf( __( 'Testimonials updated. <a href="%s">View Testimonials</a>', 'thim-testimonials' ), esc_url( get_permalink( $post_ID ) ) ), 2 => __( 'Custom field updated.', 'thim-testimonials' ), 3 => __( 'Custom field deleted.', 'thim-testimonials' ), 4 => __( 'Testimonial updated.', 'thim-testimonials' ), 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Testimonial restored to revision from %s', 'thim-testimonials' ), wp_post_revision_title( ( int ) $_GET['revision'], false ) ) : false, 6 => sprintf( __( 'Testimonials published. <a href="%s">View Testimonials</a>', 'thim-testimonials' ), esc_url( get_permalink( $post_ID ) ) ), 7 => __( 'Testimonial saved.', 'thim-testimonials' ), 8 => sprintf( __( 'Testimonials submitted. <a target="_blank" href="%s">Preview Testimonials</a>', 'thim-testimonials' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post_ID ) ) ) ), 9 => sprintf( __( 'Testimonials scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview Testimonials</a>', 'thim-testimonials' ), date_i18n( __( 'M j, Y @ G:i', 'thim-testimonials' ), strtotime( $post->post_date ) ), esc_url( get_permalink( $post_ID ) ) ), 10 => sprintf( __( 'Testimonials draft updated. <a target="_blank" href="%s">Preview Testimonials</a>', 'thim-testimonials' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post_ID ) ) ) ), ); return $messages; } /** * Register Testimonials Metabox * * @return void * @since 1.0 */ public function testimonials_register_metabox( $meta_boxes ) { $meta_boxes[] = array( 'id' => 'testimonials_settings', 'title' => 'Testimonials Settings', 'pages' => array( 'testimonials' ), 'fields' => array( array( 'name' => __( 'Regency', 'thim-testimonials' ), 'id' => 'regency', 'type' => 'textfield', 'desc' => '' ), array( 'name' => __( 'Website URL', 'thim-testimonials' ), 'id' => 'website_url', 'type' => 'textfield', 'desc' => '' ), ) ); return $meta_boxes; } } /** * Main instance of plugin * * @return \THIM_Testimonials * @since 1.0 * @author thimpress */ function THIM_Testimonials() { return THIM_Testimonials::instance(); } /** * Instantiate Testimonials class * * @since 1.0 * @author thimpress */ THIM_Testimonials(); }