Ejemplo n.º 1
0
 /**
  * @group get_forms_using_database
  */
 public function test_get_forms_using_database()
 {
     $forms = array();
     $_forms = $this->Admin->get_forms();
     foreach ($_forms as $form) {
         $Setting = new MW_WP_Form_Setting($form->ID);
         if (!$Setting->get('usedb')) {
             continue;
         }
         $forms[] = $form;
     }
     $forms_using_database = $this->Admin->get_forms_using_database();
     $this->assertEquals(1, count($forms_using_database));
     $this->assertEquals(count($forms), count($forms_using_database));
 }
Ejemplo n.º 2
0
 /**
  * 管理画面(カスタム投稿タイプ)の設定
  */
 public function register_post_type()
 {
     if (!current_user_can(MWF_Config::CAPABILITY) && is_admin()) {
         return;
     }
     // MW WP Form のフォーム設定を管理する投稿タイプ
     register_post_type(MWF_Config::NAME, array('label' => 'MW WP Form', 'labels' => array('name' => 'MW WP Form', 'singular_name' => 'MW WP Form', 'add_new_item' => __('Add New Form', MWF_Config::DOMAIN), 'edit_item' => __('Edit Form', MWF_Config::DOMAIN), 'new_item' => __('New Form', MWF_Config::DOMAIN), 'view_item' => __('View Form', MWF_Config::DOMAIN), 'search_items' => __('Search Forms', MWF_Config::DOMAIN), 'not_found' => __('No Forms found', MWF_Config::DOMAIN), 'not_found_in_trash' => __('No Forms found in Trash', MWF_Config::DOMAIN)), 'capability_type' => 'page', 'public' => false, 'show_ui' => true));
     // MW WP Form のデータベースに保存される問い合わせデータを管理する投稿タイプ
     $Admin = new MW_WP_Form_Admin();
     $forms = $Admin->get_forms_using_database();
     foreach ($forms as $form) {
         $post_type = MWF_Functions::get_contact_data_post_type_from_form_id($form->ID);
         register_post_type($post_type, array('label' => $form->post_title, 'labels' => array('name' => $form->post_title, 'singular_name' => $form->post_title, 'edit_item' => __('Edit ', MWF_Config::DOMAIN) . ':' . $form->post_title, 'view_item' => __('View', MWF_Config::DOMAIN) . ':' . $form->post_title, 'search_items' => __('Search', MWF_Config::DOMAIN) . ':' . $form->post_title, 'not_found' => __('No data found', MWF_Config::DOMAIN), 'not_found_in_trash' => __('No data found in Trash', MWF_Config::DOMAIN)), 'capability_type' => 'page', 'public' => false, 'show_ui' => true, 'show_in_menu' => false, 'supports' => array('title')));
     }
 }
 /**
  * データベースに保存に設定されているフォーム(投稿)を取得
  *
  * @return array
  */
 public static function get_posts()
 {
     if (self::$contact_data_post_types !== null) {
         return self::$contact_data_post_types;
     }
     $contact_data_post_types = array();
     $Admin = new MW_WP_Form_Admin();
     $forms = $Admin->get_forms_using_database();
     foreach ($forms as $form) {
         $post_type = MWF_Functions::get_contact_data_post_type_from_form_id($form->ID);
         $contact_data_post_types[] = $post_type;
     }
     $raw_post_types = $contact_data_post_types;
     $new_post_types = array();
     $contact_data_post_types = apply_filters('mwform_contact_data_post_types', $contact_data_post_types);
     // もともとの配列に含まれていない値は削除する
     foreach ($contact_data_post_types as $post_type) {
         if (in_array($post_type, $raw_post_types)) {
             $new_post_types[] = $post_type;
         }
     }
     self::$contact_data_post_types = $new_post_types;
     return self::$contact_data_post_types;
 }