comparison src/nabble/view/naml/reply.naml @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children 18cf4872fd7f
comparison
equal deleted inserted replaced
-1:000000000000 0:7ecd1a4ef557
1 <macro name="reply" requires="servlet">
2 <n.new_post>
3 <page_name>
4 <t>Reply</t>
5 </page_name>
6 <focus>
7 <n.message_field.focus/>
8 </focus>
9 <mailing_list_etiquette>
10 <li><t>Quote what you reply to and trim it to only the relevant parts. This provides context for those who will read your message by email.</t></li>
11 <li><t>Avoid small talk such as "Thank you", "Great"... You can <n.page_node.reply_to_author_link.>send a private email</n.page_node.reply_to_author_link.> if you want.</t></li>
12 </mailing_list_etiquette>
13 <bottom>
14 <n.in_reply_to/>
15 </bottom>
16 </n.new_post>
17 </macro>
18
19 <macro name="new_post" parameters="page_name,mailing_list_etiquette,bottom,focus" requires="servlet">
20 <n.node_page.>
21 <n.handle_new_node_permission_error/>
22 <n.if.not.is_submitted_form>
23 <then>
24 <n.subject_field.set_value value="[n.page_node.default_reply_subject/]" />
25 <n.alert_field.set_value value="[n.page_node.alert_default_value/]" />
26 <n.init_new_post_custom_fields/>
27 </then>
28 <else>
29 <n.catch_exception. id="save-block">
30 <n.handle_anonymous_submit/>
31 <n.check_antispam_submit bypass="preview"/>
32 <n.check_recent_post_limit/>
33 <n.create_child_of_page_node commit="[n.not.is_preview/]">
34 <subject><n.subject_field.value/></subject>
35 <message><n.message_field.value/></message>
36 <is_html><n.html_format_field.value/></is_html>
37 <type><n.type_field.value/></type>
38 <kind>post</kind>
39 <do>
40 <n.remember_new_node/>
41 <n.if.not.is_preview>
42 <then>
43 <n.if.new_node.is_associated_with_mailing_list_archive>
44 <then>
45 <n.send_mail_to_list/>
46 </then>
47 <else>
48 <n.save_post/>
49 <n.save_new_post_custom_fields/>
50 <n.new_node.send_node_as_email/>
51 </else>
52 </n.if.new_node.is_associated_with_mailing_list_archive>
53 </then>
54 </n.if.not.is_preview>
55 </do>
56 </n.create_child_of_page_node>
57 <n.if.not.is_preview>
58 <then>
59 <n.if.not.new_node.is_associated_with_mailing_list_archive>
60 <then>
61 <n.new_node.save_alert_field/>
62 <n.redirect_to.new_node.path/>
63 </then>
64 </n.if.not.new_node.is_associated_with_mailing_list_archive>
65 </then>
66 </n.if.not.is_preview>
67 </n.catch_exception.>
68 </else>
69 </n.if.not.is_submitted_form>
70 <n.html>
71 <head>
72 <META NAME="robots" CONTENT="noindex,nofollow"/>
73 <n.title.><n.page_name/></n.title.>
74 <n.focus/>
75 <style type="text/css">
76 .title-row {
77 padding:.6em .8em;
78 font-weight:bold;
79 }
80 div.field-title {
81 margin-top: 0;
82 }
83 </style>
84 </head>
85 <body>
86 <n.edit_header first_text="[n.page_name/]" second_text="[n.truncate. size='80'][n.page_node.subject/][/n.truncate.]" />
87
88 <n.if.is_submitted_form>
89 <then>
90 <n.if.has_exception for="save-block">
91 <then.show_new_node_error/>
92 <else>
93 <n.if.is_preview>
94 <then.new_node.preview/>
95 <else.if.new_node.is_associated_with_mailing_list_archive>
96 <then>
97 <n.new_node.preview/>
98 <n.after_send/>
99 <n.global_set_var name="sent" value="true" />
100 </then>
101 </else.if.new_node.is_associated_with_mailing_list_archive>
102 </n.if.is_preview>
103 </else>
104 </n.if.has_exception>
105 </then>
106 </n.if.is_submitted_form>
107
108 <n.if.not.global_is_var_set name="sent">
109 <then>
110 <n.subscription_reminder/>
111
112 <n.form. onsubmit="return singleSubmit(this)">
113 <n.type_field.hidden/>
114 <n.mailing_list_notice.mailing_list_etiquette/>
115
116 <n.reply_form />
117
118 <div style="margin-top:1em">
119 <n.antispam_submit_button class="toolbar action-button" value="[t]Post Message[/t]"/>
120 <input type="submit" class="toolbar action-button" name="preview" value="[t]Preview Message[/t]"/>
121 <t>or</t>
122 <a href="[n.page_node.path /]"><t>Cancel</t></a>
123 </div>
124 </n.form.>
125
126 <n.hide_null.bottom/>
127 </then>
128 </n.if.not.global_is_var_set>
129 </body>
130 </n.html>
131 </n.node_page.>
132 </macro>
133
134 <macro name="reply_form">
135 <n.if.not.visitor.is_registered>
136 <then.anonymous_name_control/>
137 </n.if.not.visitor.is_registered>
138
139 <n.subject_control/>
140 <n.message_control/>
141
142 <n.if.either condition1="[n.not.visitor.is_registered/]" condition2="[n.visitor.has_too_many_posts/]">
143 <then.captcha_control/>
144 </n.if.either>
145 </macro>
146
147 <macro name="remember_new_node" requires="node_editor">
148 <n.global_set_var name="new_node" value="[n.edited_node/]" />
149 </macro>
150
151 <macro name="new_node" dot_parameter="do" requires="node_page">
152 <n.get_node node="[n.global_var name='new_node'/]" do="[n.do/]" />
153 </macro>
154
155 <macro name="subject_control">
156 <div class="field-box light-border-color">
157 <div class="second-font field-title"><t>Subject</t></div>
158 <div class="weak-color">
159 <n.subject_field.input type="text" size="60" tabindex="1" />
160 </div>
161 </div>
162 </macro>
163
164 <macro name="message_control" requires="node_page">
165 <div class="field-box light-border-color">
166 <div class="second-font field-title"><t>Message</t></div>
167 <div class="weak-color">
168 <n.if.visitor.is_registered>
169 <then>
170 <n.html_format_field.checkbox />
171 <label for="[n.html_format_field.name/]"><t>Message is in HTML Format</t></label><br/>
172 <div style="margin:.1em 0">
173 <n.editor_toolbar
174 textarea_id="[n.message_field.name/]"
175 original_text="[n.if.page_node.is_post][then.page_node.message_quoted/][/n.if.page_node.is_post]"
176 />
177 </div>
178 </then>
179 </n.if.visitor.is_registered>
180 <n.message_field.textarea wrap="SOFT" tabindex="2" style="min-width:30em;max-width:55em;width:100%;height:20em;" />
181 <n.new_post_extra_fields/>
182 </div>
183 </div>
184 </macro>
185
186 <macro name="extra_fields" dot_parameter="fields" requires="node_page">
187 <n.put_in_head.>
188 <style type="text/css">
189 div.extra-fields {
190 margin-top:.5em;
191 }
192 div.extra-field {
193 width:2em;
194 float:left;
195 text-align:center;
196 }
197 div.extra-field-details {
198 border-left-width:2px;
199 border-left-style:dotted;
200 margin-left:2.5em;
201 padding:0 0 1em 1em;
202 }
203 </style>
204 <script type="text/javascript">
205 $(document).ready(function(){
206 $('div.extra-fields').each(function() {
207 $(this).children().first().wrap('<div class="extra-field"></div>');
208 });
209 });
210 </script>
211 </n.put_in_head.>
212 <n.fields/>
213 </macro>
214
215 <macro name="new_post_extra_fields" requires="node_page">
216 <n.extra_fields.>
217 <n.if.not.page_node.is_associated_with_mailing_list_archive>
218 <then>
219 <n.if.visitor.is_registered>
220 <then>
221 <div class="extra-fields">
222 <n.alert_field.checkbox style="margin-top:.1em"/>
223 <label for="[n.alert_field.name/]"><t>Alert me by email when someone posts to this thread</t></label>
224 </div>
225
226 <div class="extra-fields">
227 <img src="/images/mail.png" width="18" height="13" style="margin-top:.2em"/>
228 <n.send_node_as_email_input />
229 </div>
230 </then>
231 </n.if.visitor.is_registered>
232 </then>
233 </n.if.not.page_node.is_associated_with_mailing_list_archive>
234 </n.extra_fields.>
235 </macro>
236
237 <macro name="anonymous_name_control">
238 <div class="field-box light-border-color">
239 <div class="second-font field-title"><t>Your Name</t></div>
240 <div class="weak-color">
241 <n.if.is_null.visitor.name>
242 <then.anonymous_name_field.input size="30" tabindex="0" />
243 <else.visitor.name/>
244 </n.if.is_null.visitor.name>
245 </div>
246 </div>
247 </macro>
248
249 <macro name="captcha_control">
250 <n.captcha_div/>
251 </macro>
252
253 <macro name="save_alert_field" requires="node,servlet">
254 <n.if.null_to_false.alert_field.value>
255 <then.topic_node.subscribe_visitor/>
256 <else.topic_node.unsubscribe_visitor/>
257 </n.if.null_to_false.alert_field.value>
258 </macro>
259
260 <macro name="visitor_is_subscribed_to_topic" requires="node,servlet">
261 <n.both condition1="[n.is_post/]" condition2="[n.topic_node.visitor_is_subscribed/]" />
262 </macro>
263
264 <macro name="anonymous_name_field" dot_parameter="do">
265 <n.field. name="anonymous_name"><n.do/></n.field.>
266 </macro>
267
268 <macro name="type_field" dot_parameter="do">
269 <n.field. name="type"><n.do/></n.field.>
270 </macro>
271
272 <macro name="show_new_node_error">
273 <n.format_error.handle_exception. for="save-block">
274 <n.field_errors/>
275 <n.file_errors/>
276 <n.permission_errors/>
277 <n.spam_errors/>
278 <n.custom_new_node_errors/>
279 </n.format_error.handle_exception.>
280 </macro>
281
282 <macro name="permission_errors" requires="error">
283 <n.exception. name="banned">
284 <t>You can't post a message here, but you can post in other places.</t>
285 </n.exception.>
286 <n.exception. name="too_many_posts">
287 <t>You have made too many posts in a short time. Please try again later.</t>
288 </n.exception.>
289 </macro>
290
291 <macro name="field_errors" requires="error">
292 <n.exception. name="invalid_recaptcha">
293 <t>Please verify that you are not a robot.</t>
294 </n.exception.>
295 <n.exception. name="required_subject">
296 <t>The subject is required.</t>
297 </n.exception.>
298 <n.exception. name="required_name">
299 <t>You must provide a user name.</t>
300 </n.exception.>
301 <n.invalid_email_exception.>
302 <t>Invalid email address: <n.email/></t>
303 </n.invalid_email_exception.>
304 </macro>
305
306 <macro name="file_errors" requires="error">
307 <n.invalid_file_exception.>
308 <t>File was not uploaded: <t.file.filename/> (please upload again or remove the tag)</t>
309 </n.invalid_file_exception.>
310 <n.invalid_image_exception.>
311 <t>Image was not uploaded: <t.image.filename/> (please upload again or remove the tag)</t>
312 </n.invalid_image_exception.>
313 </macro>
314
315 <macro name="spam_errors" requires="error">
316 <n.spam_exception. name="subject_contains_invalid_spam_word">
317 <t>[Spam Detector] Message contains common spam words.</t>
318 </n.spam_exception.>
319 <n.spam_exception. name="message_contains_invalid_spam_word">
320 <t>[Spam Detector] Message contains common spam words.</t>
321 </n.spam_exception.>
322 <n.spam_exception. name="message_contains_many_invalid_spam_words">
323 <t>[Spam Detector] Message contains common spam words.</t>
324 </n.spam_exception.>
325 <n.exception. name="subject_contains_common_spam_words">
326 <t>[Spam Detector] Message contains common spam words.</t>
327 </n.exception.>
328 <n.exception. name="message_contains_common_spam_words">
329 <t>[Spam Detector] Message contains common spam words.</t>
330 </n.exception.>
331 <n.exception. name="suspicious_request">
332 <t>Submit failed, please try again.</t>
333 </n.exception.>
334 </macro>
335
336 <macro name="custom_new_node_errors">
337 <n.comment.>To be overridden</n.comment.>
338 </macro>
339
340 <macro name="handle_new_node_permission_error">
341 <n.catch_exception. id="check-permission">
342 <n.visitor.check_posting_under.page_node/>
343 </n.catch_exception.>
344 <n.handle_exception. for="check-permission">
345 <n.exception. name="no_create_topic_permission">
346 <n.new_topic_forbidden_page/>
347 </n.exception.>
348 <n.exception. name="read_only">
349 <n.new_topic_forbidden_page/>
350 </n.exception.>
351 <n.exception. name="no_reply_permission">
352 <n.redirect_to.page_node.node_with_permission permission="[n.reply_permission/]" do="[n.unauthorized_path/]" />
353 </n.exception.>
354 <n.exception. name="banned">
355 <n.ban_error_page/>
356 </n.exception.>
357 <n.exception. name="no_anonymous">
358 <n.login.><t>You must login to your account.</t></n.login.>
359 </n.exception.>
360 </n.handle_exception.>
361 </macro>
362
363 <macro name="new_topic_forbidden_page">
364 <n.set_var name="has_descendants_where_can_reply" value="[n.false/]" />
365 <n.page_node.descendant_apps_list.loop.>
366 <n.if.visitor.can_create_topic_in.current_node>
367 <then>
368 <n.set_var name="has_descendants_where_can_reply" value="[n.true/]" />
369 <n.break/>
370 </then>
371 </n.if.visitor.can_create_topic_in.current_node>
372 </n.page_node.descendant_apps_list.loop.>
373 <n.html>
374 <head>
375 <META NAME="robots" CONTENT="noindex,nofollow"/>
376 <n.title.>
377 <n.if.var name="has_descendants_where_can_reply">
378 <then><t>Choose a Subcategory</t></then>
379 <else><t>Authorized Users Only</t></else>
380 </n.if.var>
381 </n.title.>
382 </head>
383 <body>
384 <div style="font-size:140%;margin:.5em 0 1em">
385 <n.if.var name="has_descendants_where_can_reply">
386 <then><t>Choose a subcategory to post your message</t></then>
387 <else><t>You Cannot Post Here</t></else>
388 </n.if.var>
389 </div>
390 <n.if.var name="has_descendants_where_can_reply">
391 <then>
392 <n.page_node.descendant_apps_list.loop.>
393 <n.if.visitor.can_create_topic_in.current_node>
394 <then>
395 <div style="margin:.3em"><n.current_node.new_topic_link text="[n.subject/]" /></div>
396 </then>
397 </n.if.visitor.can_create_topic_in.current_node>
398 </n.page_node.descendant_apps_list.loop.>
399 </then>
400 <else>
401 <t>Sorry, but you can't create new topics here.<br/>Note that you may still be able to reply to posts.</t>
402 <br/><br/>
403 <n.if.visitor.is_site_admin>
404 <then><t><b>Note</b>: Since you are an administrator, you can <n.page_node.change_permissions_link.>change the permissions of <t.location.page_node.subject/></n.page_node.change_permissions_link.> and make sure you can create new topics here.</t></then>
405 <else><t>You may <n.page_node.unauthorized_link.>request permission to post</n.page_node.unauthorized_link.> here or contact <n.root_node.owner.send_email_link.><n.root_node.owner.name/></n.root_node.owner.send_email_link.> if you have questions.</t></else>
406 </n.if.visitor.is_site_admin>
407 </else>
408 </n.if.var>
409 </body>
410 </n.html>
411 <n.exit/>
412 </macro>
413
414 <macro name="ban_error_page">
415 <n.html>
416 <head>
417 <META NAME="robots" CONTENT="noindex,nofollow"/>
418 <n.title.><t>Unable to Post</t></n.title.>
419 </head>
420 <body>
421 <div style="font-size:140%;margin:.5em 0 1em">
422 <t>Unable to Post</t>
423 </div>
424 <t>Sorry, but the administrators have banned you.</t>
425 <t>You can't post a message here, but you can post in other places.</t>
426 <br/><br/>
427 <t>Please contact Nabble Support if you need help.</t>
428 </body>
429 </n.html>
430 <n.exit/>
431 </macro>
432
433 <macro name="subscription_reminder" requires="node_page">
434 <n.if.page_node.is_associated_with_mailing_list_archive>
435 <then>
436 <n.page_node.get_associated_mailing_list_archive.>
437 <div id="window" class="window-content no-bg-color medium-border-color">
438 <n.put_in_head.>
439 <style type="text/css">
440 div.subscription-reminder {
441 font-weight:bold;
442 font-size:110%;
443 margin-bottom:1em;
444 text-align:center;
445 padding:.5em;
446 }
447 </style>
448 </n.put_in_head.>
449 <div class="second-font shaded-bg-color subscription-reminder">
450 <t>Mailing List Subscription Reminder</t>
451 </div>
452 <t>This forum is an archive/gateway which will forward your post to the <b><n.mailing_list_address/></b> mailing list.</t>
453 <br/><br/>
454 <t>The mailing list may require your subscription before accepting your post. Please note that being registered with Nabble does NOT automatically subscribe you to this mailing list. If you haven't subscribed yet, please do it now. If you aren't sure or don't remember, just subscribe again because there is no harm.</t>
455 <br/><br/>
456
457 <div class="nowrap">
458 <n.if.can_subscribe>
459 <then><n.subscribe_button.><t>Subscribe</t></n.subscribe_button.></then>
460 <else><a href="[n.mailing_list_url/]"><t>View mailing list website</t></a></else>
461 </n.if.can_subscribe>
462 <t>or</t>
463 <n.mailing_list_options_link.><t>Learn more</t></n.mailing_list_options_link.>
464 </div>
465
466 <br/>
467 <table style="margin-bottom:1em">
468 <tr>
469 <td><input type="checkbox" id="do-not-show" name="subscribe" onclick="Nabble.toggleMsg('ml-reminder', this.checked)"/></td>
470 <td><label for="do-not-show"><t>Don't show this message again</t></label></td>
471 </tr>
472 </table>
473 <div style="text-align:center;">
474 <input type="button" onclick="$('#window,#black-overlay').fadeOut();" value="[t]I'm a subscriber, let me post now[/t]"></input>
475 </div>
476 </div>
477 <div id="black-overlay" class="black-overlay"></div>
478 <script type="text/javascript">
479 if (Nabble.openMsg('ml-reminder'))
480 $('#window,#black-overlay').fadeIn();
481 </script>
482 </n.page_node.get_associated_mailing_list_archive.>
483 </then>
484 </n.if.page_node.is_associated_with_mailing_list_archive>
485 </macro>
486
487 <macro name="subscribe_button" requires="mailing_list" dot_parameter="text">
488 <form action="/mailing_list/Subscribe.jtp" style="display:inline">
489 <input type="hidden" name="forum" value="[n.mailing_list_node.id/]" />
490 <input type="submit" value="[n.text/]" />
491 </form>
492 </macro>
493
494 <macro name="mailing_list_notice" requires="node_page" dot_parameter="etiquette">
495 <n.if.page_node.is_associated_with_mailing_list_archive>
496 <then>
497 <n.page_node.get_associated_mailing_list_archive.>
498 <div class="title-row info-message" style="font-weight:normal">
499 <t>This message will be sent from <b><t.from.visitor.user_email/></b> to the <b><t.to.mailing_list_address/></b> mailing list.</t>
500 <br/>
501 <t>You may need to <n.mailing_list_options_link.>subscribe to this mailing list</n.mailing_list_options_link.> for your message to be accepted.</t>
502 <div class="important" style="font-size:90%; margin-top: 6px;">
503 <img src="/images/icon_alert_sm.png" width="16" height="16" alt="" border="0" style="float:left; margin-right: 6px;" />
504 <t>Please respect mailing list etiquette</t>:
505 <ul>
506 <n.etiquette/>
507 </ul>
508 </div>
509 <n.help.mailing_list_intro.link/>
510 </div>
511 </n.page_node.get_associated_mailing_list_archive.>
512 </then>
513 </n.if.page_node.is_associated_with_mailing_list_archive>
514 </macro>
515
516 <macro name="in_reply_to">
517 <div class="title-row light-border-color shaded-bg-color" style="margin-top:2.5em"><t>In Reply To</t></div>
518 <div style="margin-left:1.2em;padding-top:1em">
519 <n.page_node.>
520 <n.put_in_head.>
521 <style type="text/css">
522 div.in-reply-to {
523 margin-bottom:1em;
524 padding-bottom:.4em;
525 border-bottom-width:1px;
526 border-bottom-style:dotted;
527 }
528 </style>
529 </n.put_in_head.>
530 <div class="medium-border-color in-reply-to">
531 <b><n.break_up.subject/></b>
532 <div class="weak-color" style="padding:.2em 0">
533 <span class="weak-color"><n.when_created.long_format/></span>
534 &mdash;
535 <t>by
536 <t.author>
537 <n.owner.avatar/>
538 <span class="nowrap"><n.owner.user_link/></span>
539 </t.author>
540 </t>
541 </div>
542 </div>
543 <n.message_with_signature/>
544 </n.page_node.>
545 </div>
546 </macro>
547
548 <macro name="new_post_path" requires="node">
549 <n.encode_url.remove_spaces.>
550 /template/NamlServlet.jtp?
551 <n.if.is_app>
552 <then>macro=new_topic</then>
553 <else>macro=reply</else>
554 </n.if.is_app>
555 &node=<n.id/>
556 </n.encode_url.remove_spaces.>
557 </macro>
558
559 <macro name="new_topic_path" requires="node" parameters="type">
560 <n.encode_url.remove_spaces.>
561 /template/NamlServlet.jtp?macro=new_topic&node=<n.id/>
562 <n.add_to_path name="type" value="[n.type/]" />
563 </n.encode_url.remove_spaces.>
564 </macro>
565
566 <macro name="alert_default_value" requires="node">
567 <n.visitor_is_subscribed_to_topic/>
568 </macro>
569
570 <macro name="send_node_as_email_input">
571 <script type="text/javascript">
572 function addFirstAddress() {
573 $('#add-another-address').show();
574 addAddress();
575 };
576 function removeAddress(e) {
577 $(e).parent().parent().remove();
578 var s = $('#address-list table tr').size();
579 if (s == 0)
580 $('#add-another-address').hide();
581 Nabble.resizeFrames();
582 };
583 function addAddress() {
584 $('#address-list').append('<n.javascript_string_encode.remove_spaces_between_tags.send_node_as_email_input_row email=""/>');
585 Nabble.resizeFrames();
586 };
587 </script>
588 <a href="javascript: void(0)" onclick="addFirstAddress()"><t>Email this post to...</t></a>
589 <div id="add-another-address" class="extra-field-details medium-border-color" style="[n.if.not.has_parameter name='email-to'][then]display:none[/then][/n.if.not.has_parameter]">
590 <div id="address-list">
591 <n.get_parameter_values. name="email-to">
592 <n.loop.send_node_as_email_input_row.current_parameter_value/>
593 </n.get_parameter_values.>
594 </div>
595 <a href="javascript: void addAddress()"><t>Add another address</t></a>
596 &nbsp;
597 <span class="weak-color">(<t>one email per input box</t>)</span>
598 </div>
599 </macro>
600
601 <macro name="send_node_as_email_input_row" dot_parameter="email">
602 <table>
603 <tr>
604 <td class="sendto"><img src="/images/people_sm.png" class="image16"/></td>
605 <td class="sendto"><t>Send To:</t></td>
606 <td><input type="text" class="email-to" name="email-to" size="40" maxlength="80" value="[n.email/]" /></td>
607 <td><a class="removeAddress" href="javascript:void(0)" onclick="removeAddress(this)"><t>remove</t></a></td>
608 </tr>
609 </table>
610 </macro>
611
612 <macro name="send_node_as_email" requires="node">
613 <n.set_local_node.this_node/>
614 <n.block.>
615 <n.if.visitor.is_registered>
616 <then.get_parameter_values. name="email-to">
617 <n.loop.>
618 <n.set_var name="email" value="[n.parse_email.current_parameter_value/]" />
619 <n.if.not.is_null.var name="email">
620 <then.local_node.topic_or_app.subscription_for. email="[n.var name='email'/]">
621 <n.send_node_as_email_to_user.local_node/>
622 </then.local_node.topic_or_app.subscription_for.>
623 </n.if.not.is_null.var>
624 </n.loop.>
625 </then.get_parameter_values.>
626 </n.if.visitor.is_registered>
627 </n.block.>
628 </macro>
629
630 <macro name="send_node_as_email_to_user" dot_parameter="node_attr" requires="subscription" unindent="true">
631 <n.set_local_subscription.this_subscription/>
632 <n.set_local_node.node_attr/>
633 <n.send_subscription_email node_attr="[n.node_attr/]">
634 <text_part>
635 <n.local_node.text_email_message_with_signature/>
636
637 ______________________________________
638 <t>If you reply to this email, your message will be added to the discussion below</t>:
639 <n.local_node.url/>
640 This email was sent by <n.visitor.name/> (via Nabble)
641 <n.if.not.local_subscription.is_subscribed>
642 <then>
643 To receive all replies by email, subscribe to this discussion: <n.local_subscription.subscribe_by_code_url/>
644 </then>
645 </n.if.not.local_subscription.is_subscribed>
646 </text_part>
647 <html_part>
648 <n.local_node.html_email_message_with_signature/>
649 <br/><br/>
650 <hr noshade="noshade" size="1" color="#cccccc" />
651 <div style="color:#444; font: 12px tahoma,geneva,helvetica,arial,sans-serif;">
652 <div style="font-weight:bold"><t>If you reply to this email, your message will be added to the discussion below</t>:</div>
653 <a href="[n.local_node.url/]"><n.local_node.url/></a>
654 </div>
655 <div style="color:#666; font: 11px tahoma,geneva,helvetica,arial,sans-serif;margin-top:.4em">
656 This email was sent by <a href="[n.visitor.url/]"><n.visitor.name/></a> (via Nabble)<br/>
657 <n.if.not.local_subscription.is_subscribed>
658 <then>
659 To receive all replies by email, <a href="[n.local_subscription.subscribe_by_code_url/]">subscribe to this discussion</a><br/>
660 </then>
661 </n.if.not.local_subscription.is_subscribed>
662 </div>
663 </html_part>
664 </n.send_subscription_email>
665 </macro>
666
667 <macro name="handle_anonymous_submit" requires="node_page">
668 <n.if.visitor.is_anonymous>
669 <then>
670 <n.if.not.is_preview>
671 <then.check_captcha/>
672 </n.if.not.is_preview>
673 <n.set_anonymous_name name="[n.anonymous_name_field.value/]" />
674 </then>
675 </n.if.visitor.is_anonymous>
676 </macro>
677
678 <macro name="check_recent_post_limit" requires="node_page">
679 <n.if.visitor.has_too_many_posts>
680 <then.check_captcha/>
681 </n.if.visitor.has_too_many_posts>
682 </macro>
683
684 <macro name="init_new_post_custom_fields">
685 <n.comment.>To be overridden</n.comment.>
686 </macro>
687
688 <macro name="save_new_post_custom_fields">
689 <n.comment.>To be overridden</n.comment.>
690 </macro>
691
692 <macro name="has_spambot_security">
693 true
694 </macro>
695
696 <macro name="after_send" requires="node_page" dot_parameter="etiquette">
697 <n.page_node.get_associated_mailing_list_archive.>
698 <div class="title-row info-message" style="font-weight:normal">
699 <t>This message was sent from <b><t.from.visitor.user_email/></b> to the <b><t.to.mailing_list_address/></b> mailing list.</t>
700 <br/>
701 <t>This message will not appear in this archive until it has been accepted by the mailing list. You may want to save a copy of this message in case it is not accepted.</t>
702 </div>
703 </n.page_node.get_associated_mailing_list_archive.>
704 </macro>