Forms.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. class NF_AJAX_REST_Forms extends NF_AJAX_REST_Controller
  3. {
  4. protected $action = 'nf_forms';
  5. private $forms_controller;
  6. public function __construct()
  7. {
  8. parent::__construct();
  9. $this->forms_controller = new NF_Database_FormsController();
  10. }
  11. /**
  12. * POST /forms/<id>/
  13. * @param array $request_data [ int $clone_id ]
  14. * @return array $data [ int $new_form_id ]
  15. */
  16. public function post( $request_data )
  17. {
  18. if( isset( $request_data[ 'clone_id' ]) ){
  19. $clone_id = $request_data[ 'clone_id' ];
  20. $data[ 'new_form_id' ] = NF_Database_Models_Form::duplicate( $clone_id );
  21. return $data;
  22. }
  23. }
  24. /**
  25. * GET forms/
  26. * @return array [ $forms ]
  27. */
  28. public function get()
  29. {
  30. return $this->forms_controller->getFormsData();
  31. }
  32. /**
  33. * DELETE forms/<id>/
  34. * @param array $request_data => [ form_id ]
  35. * @return array $data => [ delete => null ]
  36. */
  37. public function delete( $request_data )
  38. {
  39. $id = $request_data[ 'form_id' ];
  40. $form = Ninja_Forms()->form( $id )->get();
  41. $data[ 'delete' ] = $form->delete();
  42. return $data;
  43. }
  44. /**
  45. * Form ID, Clone ID
  46. * @return array $request_data
  47. */
  48. protected function get_request_data()
  49. {
  50. $request_data = array();
  51. /*
  52. * FORM ID
  53. */
  54. if( isset( $_REQUEST[ 'form_id' ] ) && $_REQUEST[ 'form_id' ] ){
  55. $request_data[ 'form_id' ] = absint( $_REQUEST[ 'form_id' ] );
  56. }
  57. /*
  58. * CLONE ID
  59. */
  60. if( isset( $_REQUEST[ 'clone_id' ] ) && $_REQUEST[ 'clone_id' ] ){
  61. $request_data[ 'clone_id' ] = absint( $_REQUEST[ 'clone_id' ] );
  62. }
  63. return $request_data;
  64. }
  65. }