View Single Post
  #2  
Old 01-22-2004, 05:41 PM
Kentaurus's Avatar
Kentaurus Kentaurus is offline
 
Join Date: Dec 2001
Posts: 332
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by DJ RRebel
This is taken from my topics from vB.com, that I'm guessing I should have asked here (because nobody is answering them there ... lmao)

http://www.vbulletin.com/forum/showthread.php?t=52491

http://www.vbulletin.com/forum/showthread.php?t=92943


I'm sure there is a hack for what I want to do for vB2 ... but considering I want to start getting more involved with creating usable and helpful hacks now that vB3 Gold is approaching, I thought I might as well ask this as the table names have changed slightly between vB2 and vB3 AND I also want to see if I'm headed in the right direction or not AND try to learn something from this.


What I want to do is rather simple ... I want to add a forum introduction (a different one for each seperate forum). Mainly so I can display a set of rules for each particular forum if there are different rules for different forums. Similar to the forum[description] field, but with the posibility of being longer.

This is pretty much the ONLY thing I miss from my days using UBB, as vB is better in virtually every other way !!!

Something to keep in mind: I've never really tinkered with my database via "phpMyAdmin 2.4.0" (or anything else for that matter) ... but I'm starting to become familliar with the concepts of MySQL.


Anyhow, this i how I think it should be done (mostly just copied from my posts at vB.com)...



I guess I'll have to finally figure out how to add a 'introduction' field within the 'forum' table using "phpMyAdmin 2.4.0" ... lol

Would I be correct in assuming to use the following:

Code:
ALTER TABLE forum ADD forum_intro TEXT;
or should I use MEDIUMTEXT like the content are of posts (pagetext?) ?



I'm guessing my forum should also be turned off if I do this ???

Is there anything else I should know about (namely precautions) before altering a table?



Then would it just be a simple matter of adding the following into the FORUMDISPLAY template:


Code:
<if condition="$forum[forum_intro]">$forum[forum_intro]</if>


Seems to me there's a step I'm missing for setting $forum[forum_intro] to the value of my (new) 'forum_intro' column in the row for the current forum (represented by $forum). Or is all columns of the 'forum' table automatically set to the equivalent $forum[xxx] for all the current forums rows ???



Anyhow ... I hope that's all there is to it ... ... if not ... please write to me in big red letters; "You have absolutely no idea what you're doing and better not touch your database with a ten foot pole unless you want to lose all your data !!!" ... lol





More important than confirming if what i have above is correct or not, there are just a couple of things I'd also like to be sure of, as hopefully I'll be doing alot more hacks once vB3.Gold is released:


- Is there anything I need to know or do before manipulating my database ???

- I'm guessing my forum should also be turned off if I do stuff like this ???

- I'm also guessing doing a back-up would also be suggested ... lol ???

- Is there anything else I should know about (namely precautions) before altering a table ???

- Is there so actual on/off setting for the database itself (not the forum) ???


I think I pretty much understand the essentials ... and it's pretty straight forward ... but all it takes is missing one step and it could spell disaster ... just figured I'd pass it by you guys before doing anything ...



Thanks TONS to all who reply and help me getting started on my journey into 'hacking' (or tweeking as I like to call it ... lol)


Regards,
DJ RRebel
http://www.homeofmusic.com
When you do a select query you can either:

SELECT x,y,z FROM TABLE OR
SELECT * FROM TABLE

If you do a "SELECT *" then you get all the columns in that table, and they can be used right away.

In your example since vbulletin doesn't do a SELECT * for that it won't work, you need to add ",intro_text" to the selected columns, in the includes/functions_forumlist.php you will find something like:

$forumfields = 'forum.forumid, lastpost, lastposter, lastthread, lastthreadid, lasticonid, threadcount, replycount';

change it to

$forumfields = 'forum.forumid, lastpost, lastposter, lastthread, lastthreadid, lasticonid, threadcount, replycount, intro_text';

then you have that column available



Touching a database isn't scary, just make a backup "just in case" and be careful with what you are doing. Common sense applies. If you are adding a column you might not harm existing data, if you delete a column then you might break something.

Also, for what you are trying to do no hack is necessary, it can be done all via conditional templates. A hack only would be more efficient especially if you have multiple forums.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01100 seconds
  • Memory Usage 1,800KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete