説明なし

grunion-form-view.php 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <?php
  2. use Automattic\Jetpack\Assets;
  3. /**
  4. * Template for form builder
  5. */
  6. /**
  7. * Filter to modify the limit of 5 additional contact form fields.
  8. *
  9. * @module contact-form
  10. *
  11. * @since 3.2.0
  12. *
  13. * @param int 5 Maximum number of additional fields.
  14. */
  15. $max_new_fields = apply_filters( 'grunion_max_new_fields', 5 );
  16. wp_register_script(
  17. 'grunion',
  18. Assets::get_file_url_for_environment(
  19. '_inc/build/contact-form/js/grunion.min.js',
  20. 'modules/contact-form/js/grunion.js'
  21. ),
  22. array( 'jquery-ui-sortable', 'jquery-ui-draggable' ),
  23. JETPACK__VERSION
  24. );
  25. wp_localize_script(
  26. 'grunion', 'GrunionFB_i18n', array(
  27. 'nameLabel' => esc_attr( _x( 'Name', 'Label for HTML form "Name" field in contact form builder', 'jetpack' ) ),
  28. 'emailLabel' => esc_attr( _x( 'Email', 'Label for HTML form "Email" field in contact form builder', 'jetpack' ) ),
  29. 'urlLabel' => esc_attr( _x( 'Website', 'Label for HTML form "URL/Website" field in contact form builder', 'jetpack' ) ),
  30. 'commentLabel' => esc_attr( _x( 'Comment', 'noun', 'jetpack' ) ),
  31. 'newLabel' => esc_attr( _x( 'New Field', 'Default label for new HTML form field in contact form builder', 'jetpack' ) ),
  32. 'optionsLabel' => esc_attr( _x( 'Options', 'Label for the set of options to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
  33. 'optionsLabel' => esc_attr( _x( 'Option', 'Label for an option to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
  34. 'firstOptionLabel' => esc_attr( _x( 'First option', 'Default label for the first option to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
  35. 'problemGeneratingForm' => esc_attr( _x( "Oops, there was a problem generating your form. You'll likely need to try again.", 'error message in contact form builder', 'jetpack' ) ),
  36. 'moveInstructions' => esc_attr__( "Drag up or down\nto re-arrange", 'jetpack' ),
  37. 'moveLabel' => esc_attr( _x( 'move', 'Label to drag HTML form fields around to change their order in contact form builder', 'jetpack' ) ),
  38. 'editLabel' => esc_attr( _x( 'edit', 'Link to edit an HTML form field in contact form builder', 'jetpack' ) ),
  39. 'savedMessage' => esc_attr__( 'Saved successfully', 'jetpack' ),
  40. 'requiredLabel' => esc_attr( _x( '(required)', 'This HTML form field is marked as required by the user in contact form builder', 'jetpack' ) ),
  41. 'exitConfirmMessage' => esc_attr__( 'Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.', 'jetpack' ),
  42. 'maxNewFields' => (int) $max_new_fields,
  43. )
  44. );
  45. ?>
  46. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  47. <html xmlns="http://www.w3.org/1999/xhtml">
  48. <head>
  49. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  50. <title><?php esc_html_e( 'Contact Form', 'jetpack' ); ?></title>
  51. <script type="text/javascript">
  52. var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>';
  53. var postId = <?php echo absint( $_GET['post_id'] ); ?>;
  54. var ajax_nonce_shortcode = '<?php echo wp_create_nonce( 'grunion_shortcode' ); ?>';
  55. var ajax_nonce_json = '<?php echo wp_create_nonce( 'grunion_shortcode_to_json' ); ?>';
  56. </script>
  57. <?php wp_print_scripts( 'grunion' ); ?>
  58. <script type="text/javascript">
  59. jQuery(document).ready(function () {
  60. FB.ContactForm.init();
  61. FB.ContactForm.resizePop();
  62. });
  63. jQuery(window).resize(function() {
  64. setTimeout(function () { FB.ContactForm.resizePop(); }, 50);
  65. });
  66. </script>
  67. <style>
  68. /* Reset */
  69. html { height: 100%; }
  70. body, div, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, legend, input, button, textarea, p, blockquote, th, td { margin: 0; padding: 0; }
  71. body { background: #f6f7f7; font-family:"Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; font-size:12px; color: #333; line-height:1.5em; height: 100%; width: 100%; padding-bottom: 20px !important; }
  72. a { color: #21759B; text-decoration: none; }
  73. a:hover { text-decoration: underline; text-shadow: none !important; }
  74. h1 { font-size: 21px; color:#5A5A5A; font-family:Georgia,"Times New Roman",Times,serif; font-weight:normal; margin-bottom: 21px; }
  75. h3 { font-size: 13px; color: #646970; margin-bottom: 18px; }
  76. input { width: 301px; }
  77. input[type='text'] { padding: 3px 5px; margin-right: 4px; -moz-border-radius:3px; border-radius:3px; -webkit-border-radius:3px; }
  78. input[type='text']:focus { border: 2px solid #80B8D9; outline: 0 !important; }
  79. input[type='checkbox'], input[type='radio'] { width: auto !important; float: left; margin-top: 3px; margin-right: 8px; }
  80. input.fieldError, select.fieldError, textarea.fieldError { border: 2px solid #D56F55; }
  81. img { border: none; }
  82. label { color: #222; font-weight: bold; display: block; margin-bottom: 4px; }
  83. label.radio { width: auto; margin: -2px 0 0 5px; }
  84. label span.label-required { color: #a7aaad; margin-left: 4px; font-weight: normal; }
  85. td { vertical-align: top; }
  86. select { width: 300px; }
  87. textarea { height: 100px; width: 311px; }
  88. /* Core */
  89. #media-upload-header { border-bottom: 1px solid #dcdcde; font-weight:bold; margin:0; padding:3px 5px 0 5px; position:relative; background: #FFF; }
  90. #sidemenu { bottom:-1px; font-size:12px; list-style:none outside none; padding-left:10px; position:relative; left:0; margin:0 5px; overflow:hidden; }
  91. #sidemenu a { text-decoration:none; border-top: 1px solid #FFF; display:block; float:left; line-height:28px; padding:0 13px; outline: none; }
  92. #sidemenu a.current { background-color:#f6f7f7; border-color:#dcdcde #dcdcde #f6f7f7; color:#d63638; -moz-border-radius:4px 4px 0 0; border-radius:4px 4px 0 0; -webkit-border-radius:4px 4px 0 0; border-style:solid; border-width:1px; font-weight:normal; }
  93. #sidemenu li { display:inline; margin-bottom:6px; line-height:200%; list-style:none outside none; margin:0; padding:0; text-align:center; white-space:nowrap; }
  94. .button { background-color:#f2f2f2; border-color:#BBBBBB; min-width:80px; text-align:center; color:#464646; text-shadow:0 1px 0 #FFFFFF; border-style:solid; border-width:1px; cursor:pointer; width: auto; font-size:11px !important; line-height:13px; padding:3px 11px; margin-top: 12px; text-decoration:none; -moz-border-radius:11px; border-radius:11px; -webkit-border-radius:11px }
  95. .button-primary { background-color:#21759B; font-weight: bold; border-color:#298CBA; text-align:center; color:#EAF2FA; text-shadow:0 -1px 0 rgba(0, 0, 0, 0.3); border-style:solid; border-width:1px; cursor:pointer; width: auto; font-size:11px !important; line-height:13px; padding:3px 11px; margin-top: 21px; text-decoration:none; -moz-border-radius:11px; border-radius:11px; -webkit-border-radius:11px }
  96. .clear { clear: both; }
  97. .fb-add-field { padding-left: 10px; }
  98. .fb-add-option { margin: 0 0 14px 100px; }
  99. .fb-container { margin: 21px; padding-bottom: 20px; }
  100. .fb-desc, #fb-add-field { margin-top: 34px; }
  101. .fb-extra-fields { margin-bottom: 2px; }
  102. .fb-form-case { background: #FFF; padding: 13px; border: 1px solid #E2E2E2; width: 336px; -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px }
  103. .fb-form-case a { outline: none; }
  104. .fb-form-case input[type='text'], .fb-form-case textarea { background: #E1E1E1; }
  105. .fb-radio-label { display: inline-block; float: left; width: 290px; }
  106. .fb-new-fields { position: relative; border: 1px dashed #FFF; background: #FFF; padding: 4px 10px 10px; cursor: default; }
  107. .fb-new-fields:hover { border: 1px dashed #BBDBEA; background: #F7FBFD; }
  108. .fb-options { width: 170px !important; }
  109. .fb-remove { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field.gif') no-repeat; position: absolute; cursor: pointer !important; right: -26px; top: 27px; width: 20px; height: 23px; }
  110. .fb-remove:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field-hover.gif') no-repeat; }
  111. .fb-remove-small { top: 2px !important; }
  112. .fb-remove-option { position: absolute; top: 1px; right: 10px; width: 20px; height: 23px; background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option.gif') no-repeat; }
  113. .fb-remove-option:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option-hover.gif') no-repeat; }
  114. .fb-reorder { cursor: move; position: relative; }
  115. .fb-reorder:hover div { display: block !important; width: 130px !important; position: absolute; top: 0; right: 0; z-index: 200; padding: 5px 10px; color: #555; font-size: 11px; background: #FFF; border: 1px solid #CCC; -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px; }
  116. .fb-right { position: absolute; right: 0; top: 0; width: 315px; margin: 57px 21px 0 0; }
  117. .fb-right .fb-new-fields { border: none; background: #f6f7f7; padding: 0; }
  118. .fb-right input[type='text'] { width: 195px; margin-bottom: 14px; }
  119. .fb-right label { color: #444; width: 100px; float: left; font-weight: normal; }
  120. .fb-right select { width: 195px !important; margin-bottom: 14px; }
  121. .fb-right textarea { margin-bottom: 13px; }
  122. .fb-right p { color: #999; line-height: 19px; }
  123. .fb-settings input[type='text'], .fb-settings textarea { background-image: none !important; }
  124. .fb-success { position: absolute; top: -3px; right: 100px; padding: 6px 23px 4px 23px; background: #FFFFE0; font-weight: normal; border: 1px solid #E6DB55; color: #333; -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px; }
  125. .right { float: right; }
  126. /* rtl */
  127. body.rtl{ direction: rtl; font-family:Tahoma,Arial,sans-serif}
  128. .rtl input[type='text'] { margin-left: 4px; margin-right: 0; }
  129. .rtl input[type='checkbox'], .rtl input[type='radio'] { float: right; }
  130. .rtl input[type='radio'] { margin-left: 8px; margin-right: 0; }
  131. .rtl label.radio { margin: -2px 5px 0 0; }
  132. .rtl label span.label-required { margin-right: 4px; margin-left:0 }
  133. .rtl #sidemenu { padding-right:10px; padding-left: 0; left:auto; right: 0; }
  134. .rtl #sidemenu a { float:right; }
  135. .rtl .fb-add-field { padding-right: 10px; padding-left: 0; }
  136. .rtl .fb-add-option { margin: 0 100px 14px 0; }
  137. .rtl .fb-radio-label { margin-right: 8px; margin-left: 0; float: right; }
  138. .rtl .fb-remove { right: auto; left: -26px; transform: scaleX(-1); }
  139. .rtl .fb-remove-option { right: auto; left: 10px; }
  140. .rtl .fb-reorder:hover div { left: 0; right: auto; }
  141. .rtl .fb-right { left: 0; right: auto; margin: 57px 0 0 21px; }
  142. .rtl .fb-right label { float: right; }
  143. .rtl .fb-success { right: auto; left: 100px;}
  144. .rtl .right { float: left; }
  145. @media only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  146. .fb-remove { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field-2x.png') no-repeat; background-size: 20px 23px; }
  147. .fb-remove:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-field-hover-2x.png') no-repeat; background-size: 20px 23px; }
  148. .fb-remove-option { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option-2x.png') no-repeat; background-size: 20px 23px; }
  149. .fb-remove-option:hover { background: url('<?php echo GRUNION_PLUGIN_URL; ?>/images/grunion-remove-option-hover-2x.png') no-repeat; background-size: 20px 23px; }
  150. }
  151. </style>
  152. </head>
  153. <body
  154. <?php
  155. if ( is_rtl() ) {
  156. echo 'class="rtl"'; }
  157. ?>
  158. >
  159. <div id="media-upload-header">
  160. <div id="fb-success" class="fb-success" style="display: none;"><?php esc_html_e( 'Your new field was saved successfully', 'jetpack' ); ?></div>
  161. <ul id="sidemenu">
  162. <li id="tab-preview"><a class="current" href=""><?php esc_html_e( 'Form builder', 'jetpack' ); ?></a></li>
  163. <li id="tab-settings"><a href=""><?php esc_html_e( 'Email notifications', 'jetpack' ); ?></a></li>
  164. </ul>
  165. </div>
  166. <div class="fb-right">
  167. <div id="fb-desc" class="fb-desc">
  168. <h3><?php esc_html_e( 'How does this work?', 'jetpack' ); ?></h3>
  169. <p><?php esc_html_e( 'By adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.', 'jetpack' ); ?></p>
  170. <h3 style="margin-top: 21px;"><?php esc_html_e( 'Can I add more fields?', 'jetpack' ); ?></h3>
  171. <p>
  172. <?php
  173. printf(
  174. esc_html( _x( 'Sure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.', '%1$s = "Click here" in an HTML link', 'jetpack' ) ),
  175. '<a href="#" class="fb-add-field" style="padding-left: 0;">' . esc_html__( 'Click here', 'jetpack' ) . '</a>'
  176. );
  177. ?>
  178. </p>
  179. <h3 style="margin-top: 21px;"><?php esc_html_e( 'Can I view my feedback within WordPress?', 'jetpack' ); ?></h3>
  180. <p>
  181. <?php
  182. printf(
  183. esc_html( _x( 'Yep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.', '%1$s = "Feedback" in an HTML link', 'jetpack' ) ),
  184. '<a id="fb-feedback" href="' . admin_url( 'edit.php?post_type=feedback' ) . '">' . esc_html__( 'Feedback', 'jetpack' ) . '</a>'
  185. );
  186. ?>
  187. </p>
  188. <div class="clear"></div>
  189. </div>
  190. <div id="fb-email-desc" class="fb-desc" style="display: none;">
  191. <h3><?php esc_html_e( 'Do I need to fill this out?', 'jetpack' ); ?></h3>
  192. <p><?php esc_html_e( 'Nope. However, if you’d like to modify where your feedback is sent, or the subject line you can. If you don&#8217;t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.', 'jetpack' ); ?></p>
  193. <h3 style="margin-top: 21px;"><?php esc_html_e( 'Can I send a notification to more than one person?', 'jetpack' ); ?></h3>
  194. <p><?php esc_html_e( 'Yep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.', 'jetpack' ); ?></p>
  195. <div class="clear"></div>
  196. </div>
  197. <div id="fb-add-field" style="display: none;">
  198. <h3><?php esc_html_e( 'Edit this new field', 'jetpack' ); ?></h3>
  199. <label for="fb-new-label"><?php esc_html_e( 'Label', 'jetpack' ); ?></label>
  200. <input type="text" id="fb-new-label" value="<?php esc_attr_e( 'New field', 'jetpack' ); ?>" />
  201. <label for="fb-new-label"><?php esc_html_e( 'Field type', 'jetpack' ); ?></label>
  202. <select id="fb-new-type">
  203. <option value="checkbox"><?php esc_html_e( 'Checkbox', 'jetpack' ); ?></option>
  204. <option value="checkbox-multiple"><?php esc_html_e( 'Checkbox with Multiple Items', 'jetpack' ); ?></option>
  205. <option value="select"><?php esc_html_e( 'Drop down', 'jetpack' ); ?></option>
  206. <option value="email"><?php esc_html_e( 'Email', 'jetpack' ); ?></option>
  207. <option value="name"><?php esc_html_e( 'Name', 'jetpack' ); ?></option>
  208. <option value="radio"><?php esc_html_e( 'Radio', 'jetpack' ); ?></option>
  209. <option value="text" selected="selected"><?php esc_html_e( 'Text', 'jetpack' ); ?></option>
  210. <option value="textarea"><?php esc_html_e( 'Textarea', 'jetpack' ); ?></option>
  211. <option value="url"><?php esc_html_e( 'Website', 'jetpack' ); ?></option>
  212. </select>
  213. <div class="clear"></div>
  214. <div id="fb-options" style="display: none;">
  215. <div id="fb-new-options">
  216. <label for="fb-option0"><?php esc_html_e( 'Options', 'jetpack' ); ?></label>
  217. <input type="text" id="fb-option0" optionid="0" value="<?php esc_attr_e( 'First option', 'jetpack' ); ?>" class="fb-options" />
  218. </div>
  219. <div id="fb-add-option" class="fb-add-option">
  220. <a href="#" id="fb-another-option"><?php esc_html_e( 'Add another option', 'jetpack' ); ?></a>
  221. </div>
  222. </div>
  223. <div class="fb-required">
  224. <label for="fb-new-label"></label>
  225. <input type="checkbox" id="fb-new-required" />
  226. <label for="fb-new-label" class="fb-radio-label"><?php esc_html_e( 'Required?', 'jetpack' ); ?></label>
  227. <div class="clear"></div>
  228. </div>
  229. <input type="hidden" id="fb-field-id" />
  230. <input type="submit" class="button" value="<?php esc_attr_e( 'Save this field', 'jetpack' ); ?>" id="fb-save-field" name="save">
  231. </div>
  232. </div>
  233. <form id="fb-preview">
  234. <div id="fb-preview-form" class="fb-container">
  235. <h1><?php esc_html_e( 'Here&#8217;s what your form will look like', 'jetpack' ); ?></h1>
  236. <div id="sortable" class="fb-form-case">
  237. <div id="fb-extra-fields" class="fb-extra-fields"></div>
  238. <a href="#" id="fb-new-field" class="fb-add-field"><?php esc_html_e( 'Add a new field', 'jetpack' ); ?></a>
  239. </div>
  240. <input type="submit" class="button-primary" tabindex="4" value="<?php esc_attr_e( 'Add this form to my post', 'jetpack' ); ?>" id="fb-save-form" name="save">
  241. </div>
  242. <div id="fb-email-settings" class="fb-container" style="display: none;">
  243. <h1><?php esc_html_e( 'Email settings', 'jetpack' ); ?></h1>
  244. <div class="fb-form-case fb-settings">
  245. <label for="fb-fieldname"><?php esc_html_e( 'Enter your email address', 'jetpack' ); ?></label>
  246. <input type="text" id="fb-field-my-email" style="background: #FFF !important;" />
  247. <label for="fb-fieldemail" style="margin-top: 14px;"><?php esc_html_e( 'What should the subject line be?', 'jetpack' ); ?></label>
  248. <input type="text" id="fb-field-subject" style="background: #FFF !important;" />
  249. </div>
  250. <input type="submit" class="button-primary" value="<?php esc_attr_e( 'Save and go back to form builder', 'jetpack' ); ?>" id="fb-prev-form" name="save">
  251. </div>
  252. </form>
  253. </body>
  254. </html>