Пример #1
0
 /**
  * Constructor.
  *
  * @return  void
  */
 public function __construct()
 {
     // Initialize necessary WR Library classes
     //Hook Meta Box
     WR_CF_Init_Meta_Box::hook();
     //Hook Post Type
     WR_CF_Init_Post_Type::hook();
     //Hook Assets
     WR_CF_Init_Assets::hook();
     //register post type wordpress
     WR_Contactform_Helpers_Hook::register_post_type();
     // Prepare admin pages
     if (defined('WP_ADMIN')) {
         add_action('admin_init', array('WR_CF_Gadget_Base', 'hook'), 100);
         // add languages
         add_action('admin_init', array(&$this, 'wr_contactform_languages'));
         // Register admin menu for IT Contactform Plugin
         WR_CF_Init_Admin_Menu::hook();
         add_action('admin_menu', array('WR_Contactform_Helpers_Hook', 'wr_contactform_register_menus'));
         // add Filter apply assets
         add_filter('wr_cf_register_assets', array('WR_Contactform_Helpers_Contactform', 'apply_assets'));
         // add filter customize the messages
         add_filter('post_updated_messages', array('WR_Contactform_Helpers_Contactform', 'set_messages'));
         //Adding "embed form" button
         add_action('media_buttons', array('WR_Contactform_Helpers_Hook', 'add_form_button'), 20);
         add_action('restrict_manage_posts', array('WR_Contactform_Helpers_Hook', 'wr_contactform_submissions_filters'));
         // Load sample forms
         WR_Contactform_Helpers_Sample_Form::hook();
         // Load necessary assets
         WR_Contactform_Helpers_Hook::load_assets();
     } else {
         global $pagenow;
         //Hook WR Gadget Base
         WR_CF_Gadget_Base::hook();
         //get short code
         add_filter('the_content', 'do_shortcode');
         // add Filter apply assets
         add_filter('wr_cf_register_assets', array('WR_Contactform_Helpers_Contactform', 'apply_assets'));
         //render contactform in frontend
         add_shortcode('wr_contactform', array(&$this, 'contactform_to_frontend'));
         //get language contactform in frontend
         $this->wr_contactform_frontend_languages();
         //set content preview
         add_filter('the_content', array(&$this, 'wr_contactform_front_end_preview'));
     }
 }
Пример #2
0
 /**
  * Register custom post type for WR ContactForm Plugin.
  *
  * @return  void
  */
 public static function register_post_type()
 {
     WR_CF_Init_Post_Type::add(array('slug' => 'wr_cf_post_type', 'options' => array('labels' => array('name' => __('Forms', WR_CONTACTFORM_TEXTDOMAIN), 'menu_name' => __('WR ContactForm', WR_CONTACTFORM_TEXTDOMAIN), 'edit_item' => __('Edit Form', WR_CONTACTFORM_TEXTDOMAIN), 'add_new_item' => __('Add New Form', WR_CONTACTFORM_TEXTDOMAIN)), 'supports' => array('title'), 'public' => true, 'has_archive' => true, 'menu_icon' => WR_CONTACTFORM_URI . 'assets/images/icons-16/icon-forms.png'), 'meta_boxes' => array(array('id' => 'wr_contactform_form_settings', 'title' => __('Form Settings', WR_CONTACTFORM_TEXTDOMAIN), 'callback' => array('WR_Contactform_Form_Settings', 'print_form_settings_html'), 'save_post' => array('WR_Contactform_Form_Settings', 'wr_contactform_save_form'))), 'list_columns' => array('title' => __('Title', WR_CONTACTFORM_TEXTDOMAIN), 'total_submissions' => __('Submissions', WR_CONTACTFORM_TEXTDOMAIN), 'form_short_code' => __('Short Code', WR_CONTACTFORM_TEXTDOMAIN), 'author' => __('Author', WR_CONTACTFORM_TEXTDOMAIN), 'date' => __('Date', WR_CONTACTFORM_TEXTDOMAIN)), 'render_column' => array('WR_Contactform_Post_Type', 'render_form_column'), 'sortable_columns' => true, 'main_feed' => true));
     WR_CF_Init_Post_Type::add(array('slug' => 'wr_cfsb_post_type', 'options' => array('labels' => array('name' => __('Submissions', WR_CONTACTFORM_TEXTDOMAIN), 'singular_name' => __('Submission Edit', WR_CONTACTFORM_TEXTDOMAIN), 'edit_item' => __('Submission Detail', WR_CONTACTFORM_TEXTDOMAIN), 'add_new_item' => __('Submission Detail', WR_CONTACTFORM_TEXTDOMAIN)), 'supports' => array('title'), 'public' => false, 'has_archive' => false), 'meta_boxes' => array(array('id' => 'wr_contactform_submission_detail', 'title' => __('Submission Data', WR_CONTACTFORM_TEXTDOMAIN), 'callback' => array('WR_Contactform_Submission_Detail', 'print_submission_detail_html'), 'save_post' => array('WR_Contactform_Submission_Detail', 'wr_contactform_submission_save_form'))), 'list_columns' => self::get_submissions_column(), 'render_column' => array('WR_Contactform_Post_Type', 'render_submissions_column'), 'sortable_columns' => true, 'main_feed' => true));
     WR_CF_Init_Admin_Menu::remove('post-new.php?post_type=wr_cf_post_type', 'edit.php?post_type=wr_cf_post_type');
     WR_CF_Init_Admin_Menu::remove('edit.php?post_type=wr_cf_post_type', 'edit.php?post_type=wr_cf_post_type');
 }
Пример #3
0
 /**
  * Manipulate WordPress admin menu.
  *
  * @return  void
  */
 public static function admin_menu()
 {
     global $menu, $submenu;
     // Filter menus to be registered
     self::$add = apply_filters('wr_cf_register_admin_menu', self::$add);
     // Variable to hold menu position
     static $position;
     // Add menus
     foreach (self::$add as $entry) {
         if (isset($entry['parent_slug'])) {
             add_submenu_page($entry['parent_slug'], $entry['page_title'], $entry['menu_title'], $entry['capability'], $entry['menu_slug'], isset($entry['function']) ? $entry['function'] : '');
         } else {
             // Calculate menu position
             if (!isset($entry['position']) || empty($entry['position'])) {
                 if (!isset($position)) {
                     eval('$position = 50.' . rand(100, 1000) . ';');
                 } else {
                     $position++;
                 }
             }
             add_menu_page($entry['page_title'], $entry['menu_title'], $entry['capability'], $entry['menu_slug'], isset($entry['function']) && !empty($entry['function']) ? $entry['function'] : '', isset($entry['icon_url']) && !empty($entry['icon_url']) ? $entry['icon_url'] : '', isset($entry['position']) && !empty($entry['position']) ? "{$entry['position']}" : "{$position}");
         }
     }
     // Remove menus
     foreach (self::$remove as $menu_slug => $parent_slug) {
         if ($parent_slug) {
             remove_submenu_page($parent_slug, $menu_slug);
         } else {
             remove_menu_page($menu_slug);
         }
     }
     // Replace menus
     if (count(self::$replace)) {
         foreach (self::$replace as $label => $data) {
             // Get parent slug
             $parent_slug = array_keys($data);
             $parent_slug = array_shift($parent_slug);
             if ($parent_slug && isset($submenu[$parent_slug])) {
                 foreach ($submenu[$parent_slug] as $key => $value) {
                     if ($value[0] === $label) {
                         foreach ($data[$parent_slug] as $k => $v) {
                             $submenu[$parent_slug][$key][$k] = $v;
                         }
                     }
                 }
             } elseif ($parent_slug === 0) {
                 foreach ($menu as $key => $value) {
                     if ($value[0] === $label) {
                         foreach ($data[0] as $k => $v) {
                             $menu[$key][$k] = $v;
                         }
                     }
                 }
             }
         }
     }
 }