About: This addon will allow you to create New Post Templates for your forum, these templates will be selectable from a dropdown on the New Topic page, and will appear in the text area where you normally make your post (users would just update the template then click the post button to post their new thread as normal).
Demo: As it uses the New Topic scripts, there isn't really an ability for a demo; though I do have it on UGN Security on my "Review" forums.
File History 2540 - UBB Post Templates v01 (UBB.PostTemplates-v01.zip) - Released: 05/22/2008 - Initial Release
NOTE To add more items, simply add additional "option" lines in newpost.tpl and the posttemplate.php language file.
NOTICE As this modifies script files I've put it as a mod, as it's more than a minor template adjustment.
BTW, if you're looking to "limit" certain ones to certain boards; or even limit templates in general on forums; I have my template change on my site set to:
love your mod, so i went and made it a little more flexible (note: this is for 7.3.1):
1) no need to edit templates/newpost.tpl, because i just append to $iconselect 2) language file wordlets changed to specify a) valid forums for each template b) valid user groups for each template 3) moved all of the markup building into scripts/newpost.inc.php
Mod follows:
open scripts/newpost.inc.php
find:
PHP Code
$iconselect = $html -> icon_select(); if ($is_gallery) $iconselect = "";
add below it:
PHP Code
// Check to see if there are any post templates applicable for this forum $posttemplate = ""; if ($ubbt_lang['NUM_POST_TEMPLATES']) {
// Gonna need to get the user groups $sth = $dbh->do_query("SELECT GROUP_ID FROM {$config['TABLE_PREFIX']}USER_GROUPS WHERE USER_ID={$user['USER_ID']}"); $groups = array(); while($result = $dbh->fetch_array($sth)) { $groups[] = $result['GROUP_ID']; }
// Check to see if this forum is enabled for each template, // then check if the group(s) apply for($i=1; $i <= $ubbt_lang['NUM_POST_TEMPLATES']; $i++) { $forumok = false; if($ubbt_lang['SUB_'.$i.'_FORUMS'] != "") { $forumok = in_array($Board,explode(',',$ubbt_lang['SUB_'.$i.'_FORUMS'])); } else { $forumok = true; } // Forums good, now check on groups if ($forumok) { $groupok = false; if($ubbt_lang['SUB_'.$i.'_GROUPS']) { $pulldowngroups = explode(',',$ubbt_lang['SUB_'.$i.'_GROUPS']); foreach($pulldowngroups as $g) { if (in_array($g,$groups)) { $groupok = true; } } } else { $groupok = true; } } // Add to template, if we have something if ($forumok and $groupok) { // 1st time thru - add the header crapola if ($posttemplate == '') { $posttemplate = '<tr><td class="alt-2" valign="top"><label for="posttemplate">'; $posttemplate .= $ubbt_lang['POST_TEMPLATE'] . '</label></td><td class="alt-1" valign="top">'; $posttemplate .= '<select name="posttemplate" class="form-select" onchange="pull_template(); return false;">'; $posttemplate .= '<option value="" selected="selected">' . $ubbt_lang['SELECT'] . '</option>'; } $posttemplate .= '<option value="' . $ubbt_lang['SUB_'.$i.'_BODY'] . '">' . $ubbt_lang['SUB_'.$i] . '</option>'; } } // Finish off the template, if it has some good stuff if ($posttemplate) { $posttemplate .= '</select></td></tr>'; } } // Glom this puppy onto the iconselect :D $iconselect .= $posttemplate;
Save the file
File: languages/english/posttemplate.php (new format)
PHP Code
<?php $ubbt_lang['POST_TEMPLATE'] = 'Post Template:'; $ubbt_lang['SELECT'] = '--- Select ---'; $ubbt_lang['NUM_POST_TEMPLATES'] = '1'; $ubbt_lang['SUB_1'] = 'Fishing Report'; $ubbt_lang['SUB_1_FORUMS'] = '2,3,7,69'; $ubbt_lang['SUB_1_GROUPS'] = '1,2,3'; $ubbt_lang['SUB_1_BODY'] = 'Body of water: General location(s): Date: Time: Shore or boat: Water temp: Depth fished: (surface, mid, bottom): Max depth: Methods: (cast, troll, etc.) Lures used: Bait used: Tide: Species caught: Total # of fish caught: Fish weights: Fish lengths: Kept or released: Gear used: '; ?>
key things to note: 1) NUM_POST_TEMPLATES is the number of templates total 2) Every template has a) SUB_x -- pulldown descriptor b) SUB_x_FORUMS -- comma separated list of forums. (blank is any forum) c) SUB_x_GROUPS -- comma separated list of groups. (blank is any group) d) SUB_x_BODY -- the template itself
Final note, i just copy/pasted Giz javascript function into ubb_jslib.js at the bottom.
Donate to UBBDev today to help aid in Operational, Server and Script Maintenance, and Development costs.
Please also see our parent organization VNC Web Services if you're in the need of a new UBB.threads Install or Upgrade, Site/Server Migrations, or Security and Coding Services.