Developers Manual

From MyUPBWiki

Jump to: navigation, search
This page needs to be updated. Help out myUPB, if you can, by updating this page!

Notes about the required update: Contains a lot of old references

Contents

Developing the Ultimate PHP Board, and other PHP Outburst Scripts

Disclaimer

By downloading any of our scripts you agree to the following:

  1. You will NOT remove any information stating that it is ours
  2. Just because you modify it doesn't mean you made it
  3. You agree to the terms listed in the GPL license ([1])

If you agree to ALL the terms listed then you have permission to download and modify the coding of the script to your liking, as long as it doesn't disobey any of the rules.

Introduction

Being strictly open source, the UPB project depends on volunteers like yourself, contributing both ideas and code. With the help of a growing team of developers, UPB has evolved into a fairly stable and reliable forum script, relying solely upon it's own text database. It is our goal to incorporate not only the efforts of established admins at MyUPB.com, but the enthusiastic contributions of everyday users, so that UPB will grow at a much greater rate. I encourage you to become involved in developing this unique script.

On the following pages, we will examine the main aspects of UPB to which you can contribute, and how exactly to go about doing that.

Overview of Areas of Contribution

Core Script Development

For those of you having a bit of experience in PHP, we encourage you to become involved in developing the core of PHP. After 2.0, this will become even more of a neccessity. Bugs are constantly being discovered, and scripts can always be made more efficient. Core Script Development involves finding and correcting these bugs, improving existing code, and developing core features.

Mod Development

Mods (or Modifications), are extra pieces of code, created by users, that expand UPB in some way. These are a bit different from core features, in that they are often not what would be expected in a forum script (such as RPG mods, auction mods, etc.)

Skins

After MyUPB.com's partnership with NBSDesignz.com, the skining community has boomed. Excorcist has established an excellent system for the creation and implementation of new styles, and the folks at NBSDesignz, as well as ParanoiDinHeLL, are constantly cranking out new and excellent skins. A field of skining that has emerged recently is that of creating skins without images.

Core Script Development

Developer's Mailing List

The first thing you should do is get connected. The developer's mailing list (developers@myupb.com) is the hub of all development activity surrounding the UPB script. Developers share ideas, and collaborate on additions to the core, as well as speculate on mods and other aspects of UPB.

To join the list, visit [2], and fill in the proper information. For more information on GNU Mailman, visit [3].

The following is a brief list of guidelines, which you will be expected to adhere to while participating in the developer's list:

  • Stay on topic. Sure, people get a bit crazy, but try to stay within the general bounds of a discussion. The support forums are a great place for OT discussion.
  • No condescension. There are a variety of levels of skill and age represented both in the general user/developer crowd, and within the core PHP Outburst team as well. The internet is unique, in that it allows for people of all ages to collaborate with much friction. Let's keep it that way. Also, do everything in your power to nurture those with less skill than yourself. If you are the newb, please remember to ask intelligent questions, and be patient with the responses granted you. Condescension will not be tolerated.
  • No flames. There are millions of ways to flame someone. Guess what? There a also millions of ways you could provide the same feedback, while building a person up. Flaming will not be tolerated.
  • Have fun. As you'll soon learn, nobody involved in UPB is all business. It's almost like a family. Help those around you to bond and communicate effectively.

WebPM

You can access UPB's web-based versioning system WebPM at [4]
Remember, the version on WebPM is not always 100% stable, so don't use your working copy for anything beyond testing and developing (unless you're willing to accept a whole heck of a lot of risk.)

Submitting Changes

When you come up with a change for the core script, the first thing you should do is post it the developer's list. It's good idea to post the source on a server somewhere, however attaching the code to a list e-mail is acceptable. From there, it'll be reviewed by the core development team, as well as other peer developers.

The current core scripting team is as follows:

This page needs to be updated. Help out myUPB, if you can, by updating this page!

Notes about the required update: contains people that are no longer on the team

  • President/Developer (TextDB, upb2 core, bugs, add-ons) - Tim aka Pilot (pilot@myupb.com)
  • Vice-President/Developer (upb1, upb2 add-ons, bugs) - Ben aka Excorcist (excorcist@myupb.com)
  • Server Admin/UPB Developer (Server reports and general development on UPB2) - Jonathan (jonathan@myupb.com)
  • Developer (PM System and general development on UPB2) - Jerroyd aka Rebles (rebles@myupb.com)
  • Developer (UPB 1.97, Mods, XHTML/CSS) - Fraser (fraser@myupb.com)
  • Skin Support (Incharge of Skinning UPB) - ParanoiDinHell (paranoidinhell@myupb.com)
  • Developer (Mods, Community Development, Support) - Erick (erick@myupb.com)
  • Documentation, Developer - Clark (clark@myupb.com)
  • New skin system - The Ripper

The code will be revised if needed (all developers are encouraged to participate in the review and revision of code changes. Just remember to post the changes to the developers list), and then one of the core developers will commit the changes to WebPM, noting your name.

Mod Development

Standards for Development

In the past, many problems have been encountered by users trying to selectively implement mods, mainly due to mod dependencies. To attempt to prevent this in the future, the following standards must be observed:

  • All mods must either be entirely independent, or a file called DEPENDENCIES must be included in the archive. This file will contain a list of all mods required by the new mod.
  • All mods must contain a detailed README file. This file should contain version information, a changelog, an overview of what the mod does, and contact information should problems arise.
  • All mods must contain a file called INSTALL, containing _very_ detailed instructions on how to install the mod. Installation should never require the replacement of files. If an existing file (one already present in the core, or a mod that this new mod build upon) is to be changed, the INSTALL file must contain information on inserting the code manually. This is to avoid version conflicts between modules.
  • All mods should be as modular as possible. This means that you should try to place all of your code in external files. If your mod requires heavy modification of an existing file, consider placing the extra code in a seperate file, and having the user include() the file in the script in question during instalation. If at all possible, the mods should operate in their own database table.
  • All mods must be tested thoroughly before release. See section 4.2 for more on this.
  • Mods should be as flexible as possible. If it's possible that a user might want to change something, try to make it variable in the GUI.
  • Mods should have an adminstrative interface. Give the admin control of as much as possible. The more the admin can modify, the better. Remember, however, to implement neccesary security, such as checking for user level in every admin-related script.

Submiting Mods

Considering the need for extensive testing before the release of a mod, we encourage you to post your mod to developers@myupb.com before submitting a final version (see "Submitting Changes" for more info). Peers will be able to review and revise your mod, so that it turns out as excellent as possible.

Once you're satisfied with your mod, submit it to any of the core team members listed above. They will give it a final review, and then release it as an offical mod, being sure to note the creator.

Skins

Skin Tutorial

I would like to note that this tutorial may be slightly out of date so pay attention to detail and don't be afraid to experiment! -Exo


OK so you want to become an elite skinner huh?

Well I'll tell you how to make your skins in the correct size and whatnot but the rest is up to your creativity

First off you will need adobe photoshop (or something similar e.g. gimp).

We are going to start from the bottom up. One of the first skins you will make is from the table headings. There are 4 files that make this up. First thing is make your top bar (with a width of 600 or so) and complete it with all the effects etc, that you are planning. Once you are done, select a section from the top left corner that is 132 pixels wide, height doesn't matter but I suggest inbetween 15 and 20. Copy and paste it on a new project then save it as cat_top_left.gif

Here is an example of my top left table header Image:cat_top_left.gif

Now from the very middle of your table header image use your selection tool to copy a section that is 1 pixel wide and the height of your image and save it as cat_top_bg.gif IT MUST BE TILEABLE!

Mine looks like this Image:cat_top_bg.gif

Now select a section from the top right corner that is 134 pixels wide, height would be the actual height of your table header image. Copy and paste it on a new project then save it as cat_top_right.gif

Mine looks like this Image:cat_top_right.gif

  • NOTE* The 3 images above MUST be the SAME height!

Now you have to make a background for the author heading. Once again make a 300 wide bar image (try to make it fit in with your title bar because this image resides directly below it), select a 1 pixel wide section of it and save as cat_top_bg.gif

Mine looks like this Image:cat_top_bg.gif

Now you need to make a footer bar. Make this a wide as you wish and a height of inbetween 10 and 15 pixels. Select a portion in the middle side that is 1 pixel wide and the appropriate height. Save it as cat_bottom_bg.jpg.

Mine looks like this Image:cat_bottom_bg.jpg

Now on the very right hand side of your image select a portion that is 112 pixels wide and the appropriate height. Save it as cat_bottom_right.gif

Image:cat_bottom_right.gif

Ok now you're nearly done. Tired yet?

Now you have to make a header image. SIZE DOES MATTER, the sizes for this images is 72 pixels in height and for the right and left panels it must be 201 pixels. For the left hand image save it as head_logo.JPG For the right hand side save it as head_logo_right.JPG and for the background in the middle (which once again must be only 1 pixel wide and 72 pixels high) save it as head_top_left_bg.JPG (note the capital letters on the extention, this is IMPORTANT!).

For an example of what this looks like, look at the very top of this page.

Now you need to make a title bar background. Make an image that is 300 pixels wide and 19 pixels high. once you have completed your artwork on it select a 1 pixel wide section of it and save it as head_bottom_left_bg.JPG, the make a copy of it and rename the copy to title_bg.gif.

For an example of what this looks like, look at the very top of this page where the buttons are.

The last thing you have to do is make buttons. These can look however you want them to look but they must all be these sizes. 84 pixels wide, and 17 pixels high. The filenames you need to save the respective buttons are...

head_but_faq.JPG -------------- Faq button
head_but_loginout.JPG --------- login/logout button
head_but_members.JPG ---------- members list button
head_but_pms.JPG -------------- Private messaging system button
head_but_register.JPG --------- Register button
head_but_search.JPG ----------- Search button
head_but_usercp.JPG ----------- User:CP button

And the very last thing is completely optional. You have the option of adding sound to your skin. Basically all this is is a short bit of music or etc, that will loop continuously. Make sure the file size of this loop is not over 200k (and that's pushing it) and save it as sound.wav. DO NOT USE COMMERCIAL MUSIC FOR THIS (unless you like getting sued). Like I said, it is completely optional, the script that plays the music knows whether or not the sound file is there.

Now, with all the files you have just made, make a directory with the name of your skin like c:\badmomma

inside c:\badmomma create a folder called images and put all the files that you made in the images dir.

Uploading to Server

The files go into skins/badmomma/images/the files I just created

Now go into config panel via admin panel, and set the working skins directory to skins/badmomma/images

CSS Support

Ok, also, the skins now have css support. You need to include your css with your skins. The dir structure is like this:

->skins->myskin
->skins->myskin->css
->skins->myskin->icons
->skins->myskin->images

NBS guys, to save you some trouble have pilot download via ftp the current lightblue skin that is on this forum now.

Submitting Skins

As you may have read earlier, NBSDesignz.com is the official UPB skining site. I encourage you to visit their site, and submit skins through them, so that they might end up in their database. There is also a great deal of graphic-oriented support available there (they have over eleven thousand members). Finally, our resident graphics specialist, ParanoiDinHeLL (paranoidinhell@myupb.com) is available. For technical issues regarding the skining system, contact Exo (exo@myupb.com).

Closing Remarks

Thanks ever so much for your interest in contributing to the UPB project. We look forward to seeing your work in the near future.

Contact Information

The Site: http://www.myupb.com

The Team:

This page needs to be updated. Help out myUPB, if you can, by updating this page!

Notes about the required update: contains people that are no longer on the team

  • President/Developer (TextDB, upb2 core, bugs, add-ons) - Tim aka Pilot (pilot@myupb.com)
  • Vice-President/Developer (upb1, upb2 add-ons, bugs) - Ben aka Excorcist (excorcist@myupb.com)
  • Server Admin/UPB Developer (Server reports and general development on UPB2) - Jonathan (jonathan@myupb.com)
  • Developer (PM System and general development on UPB2) - Jerroyd aka Rebles (rebles@myupb.com)
  • Developer (UPB 1.97, Mods, XHTML/CSS) - Fraser (fraser@myupb.com)
  • Skin Support (Incharge of Skinning UPB) - ParanoiDinHell (paranoidinhell@myupb.com)
  • Developer (Mods, Community Development, Support) - Erick (erick@myupb.com)
  • Documentation, Developer - Clark (clark@myupb.com)
  • New skin system - The Ripper

Please direct questions and concerns to the support forums at [5]. Development questions should be directed to the developers list ([6]). Questions/comments regarding this document should be directed to Erick (erick@myupb.com).

Personal tools