Previous Thread
Next Thread
Print Thread
Rate Thread
#317049 05/22/2008 11:12 PM
Joined: Jan 2000
Posts: 5,819
Likes: 16
Gizmo Offline OP
UBBDev / UBBWiki Owner
Time Lord
OP Offline
UBBDev / UBBWiki Owner
Time Lord
Joined: Jan 2000
Posts: 5,819
Likes: 16
Author: Gizmo (James of VNC Web Design)

Requirements:
  • Valid UBB.Threads 7.0 install and license


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.

Attached Images
UBB.PostTemplates-v01.zip (2.17 KB, 24 downloads)
SHA1: 42a5419a49dd01ea85219f93fa81ca6425435ed5

UBB.Dev - Putting Dev into UBB.threads
Company: VNC Web Services - UBB.threads Scripts and Scripting, Install and Upgrade Services, Site and Server Maintenance.
Forums: A Gardeners Forum, Scouters World, and UGN Security
UBB.Threads: My UBB Themes, My UBB Scripts
Sponsored Links
Joined: Jan 2000
Posts: 5,819
Likes: 16
Gizmo Offline OP
UBBDev / UBBWiki Owner
Time Lord
OP Offline
UBBDev / UBBWiki Owner
Time Lord
Joined: Jan 2000
Posts: 5,819
Likes: 16
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:
Code
{if $Board == 1 || $Board == 12 || $Board == 13 || $Board == 21 || $Board == 36 || $Board == 41 || $Board == 47 || $Board == 48}
<tr>
<td class="alt-2" valign="top">
<label for="posttemplate">{$lang.posttemp}</label>
</td>
<td class="alt-1" valign="top">
<select name="posttemplate" class="form-select" onchange="pull_template(); return false">
<option value="" selected="selected">{$lang.select}</option>
{if $Board == 36} <option value="{$lang.one_body}">{$lang.one_sub}</option>{/if}
{if $Board == 13} <option value="{$lang.two_body}">{$lang.two_sub}</option>{/if}
{if $Board == 13} <option value="{$lang.three_body}">{$lang.three_sub}</option>{/if}
{if $Board == 47} <option value="{$lang.four_body}">{$lang.four_sub}</option>{/if}
{if $Board == 12 || $Board == 13 || $Board == 21 || $Board == 47 || $Board == 48} <option value="{$lang.five_body}">{$lang.five_sub}</option>{/if}
{if $Board == 41} <option value="{$lang.six_body}">{$lang.six_sub}</option>{/if}

</select>
</td>
</tr>
{/if}

Top if statement limits it to those boards, then the ones in the select area limit which are in which forums.


UBB.Dev - Putting Dev into UBB.threads
Company: VNC Web Services - UBB.threads Scripts and Scripting, Install and Upgrade Services, Site and Server Maintenance.
Forums: A Gardeners Forum, Scouters World, and UGN Security
UBB.Threads: My UBB Themes, My UBB Scripts
Joined: Mar 2000
Posts: 21,079
Likes: 3
I type Like navaho
Offline
I type Like navaho
Joined: Mar 2000
Posts: 21,079
Likes: 3
hmm... could be very nice - do you have a screen grab of an example?


- Allen wavey
- What Drives You?
Joined: Jan 2000
Posts: 5,819
Likes: 16
Gizmo Offline OP
UBBDev / UBBWiki Owner
Time Lord
OP Offline
UBBDev / UBBWiki Owner
Time Lord
Joined: Jan 2000
Posts: 5,819
Likes: 16
here you go wink...

The dropdown shown selects the code; then it outputs into the text area; pretty self explanatory.

Attached Images
mod.JPG (63.66 KB, 52 downloads)

UBB.Dev - Putting Dev into UBB.threads
Company: VNC Web Services - UBB.threads Scripts and Scripting, Install and Upgrade Services, Site and Server Maintenance.
Forums: A Gardeners Forum, Scouters World, and UGN Security
UBB.Threads: My UBB Themes, My UBB Scripts
Joined: Nov 2003
Posts: 482
S
Enthusiast
Offline
Enthusiast
S
Joined: Nov 2003
Posts: 482
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.

Ty Giz for the good start on a great mod! smile

Sponsored Links
Joined: Jan 2000
Posts: 5,819
Likes: 16
Gizmo Offline OP
UBBDev / UBBWiki Owner
Time Lord
OP Offline
UBBDev / UBBWiki Owner
Time Lord
Joined: Jan 2000
Posts: 5,819
Likes: 16
Lol I'm glad you of all people like it smile...

I'd like to eventually see it as being db driven and int he CP; but that's a little above me with where OOP is concerned...

I figured, I like some structure, hell even here would be great, as then users would have a defined list for some sort of conformity...

I'd also like to someday see it as a popular feature enough to be stock code, as I can really see usage at just about any forum wink...



UBB.Dev - Putting Dev into UBB.threads
Company: VNC Web Services - UBB.threads Scripts and Scripting, Install and Upgrade Services, Site and Server Maintenance.
Forums: A Gardeners Forum, Scouters World, and UGN Security
UBB.Threads: My UBB Themes, My UBB Scripts
Joined: Nov 2003
Posts: 482
S
Enthusiast
Offline
Enthusiast
S
Joined: Nov 2003
Posts: 482
there is no true OoP used at all wink


Link Copied to Clipboard
Donate Today!
Donate via PayPal

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.
Recommended Hosts
We have personally worked with and recommend the following Web Hosts:
Stable Host
bluehost
InterServer
Visit us on Facebook
Member Spotlight
Posts: 70
Joined: January 2007
Forum Statistics
Forums63
Topics37,558
Posts293,857
Members13,848
Most Online5,166
Sep 15th, 2019
Today's Statistics
Currently Online
Topics Created
Posts Made
Users Online
Birthdays
Top Posters
AllenAyres 21,079
JoshPet 10,369
LK 7,394
Lord Dexter 6,708
Gizmo 5,819
Greg Hard 4,625
Top Posters(30 Days)
Top Likes Received
isaac 70
Gizmo 16
Brett 7
WebGuy 2
Top Likes Received (30 Days)
None yet
The UBB.Developers Network (UBB.Dev/Threads.Dev) is ©2000-2022 VNC Web Services

 
Powered by UBB.threads™ PHP Forum Software 8.0.0
(Snapshot build 20220120)
Responsive Width:

PHP: 7.3.29 Page Time: 0.016s Queries: 31 (0.009s) Memory: 0.8403 MB (Peak: 0.9227 MB) Data Comp: Zlib Server Time: 2022-01-23 15:43:21 UTC
Valid HTML 5 and Valid CSS