vamtam-ninja-form.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * @class VamtamNinjaFormModule
  4. */
  5. class VamtamNinjaFormModule extends FLBuilderModule {
  6. /**
  7. * @method __construct
  8. */
  9. public function __construct() {
  10. $path = trailingslashit( 'modules/' . basename( dirname( __FILE__ ) ) );
  11. parent::__construct(array(
  12. 'name' => __( 'Ninja Forms', 'vamtam-elements-b' ),
  13. 'description' => __( 'Display a contact form.', 'vamtam-elements-b' ),
  14. 'category' => __( 'VamTam Modules', 'vamtam-elements-b' ),
  15. 'partial_refresh' => false,
  16. 'enabled' => class_exists( 'Ninja_Forms' ),
  17. 'dir' => VAMTAMEL_B_DIR . $path,
  18. 'url' => VAMTAMEL_B_URL . $path,
  19. ));
  20. }
  21. public static function get_ninja_forms() {
  22. if ( ! class_exists( 'Ninja_Forms' ) ) return array();
  23. $forms = Ninja_Forms()->form();
  24. if ( ! method_exists( $forms, 'get_forms' ) ) {
  25. return array(
  26. '' => esc_html__( 'Ninja Forms 3 is required for this module', 'vamtam-elements-b' ),
  27. );
  28. }
  29. $forms = $forms->get_forms();
  30. $result = array();
  31. $result[''] = esc_html__( 'Choose form', 'vamtam-elements-b' );
  32. foreach ( $forms as $form ) {
  33. $form_id = $form->get_id();
  34. $result[ $form_id ] = "($form_id) " . $form->get_setting( 'title' );
  35. }
  36. return $result;
  37. }
  38. }
  39. /**
  40. * Register the module and its form settings.
  41. */
  42. FLBuilder::register_module('VamtamNinjaFormModule', array(
  43. 'layout' => array(
  44. 'title' => __( 'Basic', 'vamtam-elements-b' ),
  45. 'sections' => array(
  46. 'general' => array(
  47. 'title' => '',
  48. 'fields' => array(
  49. 'form_id' => array(
  50. 'label' => esc_html__( 'Form', 'vamtam-elements-b' ),
  51. 'default' => '',
  52. 'options' => VamtamNinjaFormModule::get_ninja_forms(),
  53. 'type' => 'select',
  54. ),
  55. ),
  56. ),
  57. ),
  58. ),
  59. ));