miniBB®Complete User and Administration GuideMost Recently updated on May the 30th, 2023.Important NoticeThis Document contains almost everything you should initially know about miniBB, however it was composed in the earliest years of miniBB project, and during the next few years only minor changes were made. That's why we must warn you: this version of the Guide doesn't cover absolutely every function and possibility of miniBB, as there's required the big time to review them all. We apologize in advance for possible grammar defects you may discover during your reading, and we hope you'll be patient and understand, that preparing a comprehensive Manual is even a bigger task than coding the Program itself. If you are not sure if some feature exists, or how this and that works, do not hesitate to ask us on our forums. We are always willing to help the people in all questions, which affect miniBB software. |
|
Terminology used in this Manual
|
CopyrightsminiBB is a GPL project (read more on Free Software Foundation about GPL License), programmed by Paul Puzyrev and Sergei Larionov. You are allowed to copy/distribute/modify all scripts under terms of GPL. You may edit every opened source file which is present in miniBB core package or its extension. Still, if you are using the software under the free GPL License terms, according to the sections 1 and 2c of this License, you are not allowed to remove miniBB copyright attribution link from the template "main_footer.html" (even you may edit it's look or location) and offer miniBB as "your" product or part of website, putting just your own copyright over all forum pages. For removing the link and/or any copyright information, you need to buy miniBB commercial license. If you have removed miniBB attribution link without allowance, it means you have stolen and pirated the software itself. Do you know any good examples of web projects which were successful using a pirated software?.. Before being a thief, think about what it brings you, or rather what it won't bring you. If you want to integrate miniBB into your own software, there are two ways of doing that: a) distributing your software for free with the proper license, you should mention miniBB's authors copyright intact in every script, and you can do that without any persmission from us, since GPL license covers that; b) distributing your software commercially, you should either to keep all miniBB copyright notices as in the free software's case, but if you want to remove all references to us, we need to sign a special commercial agreement, which is discussed individually for each case. |
IntroductionminiBB (an abbreviation of "minimalist bulletin board") is a flat-type (not threaded) bulletin board, discussion forums software, written in PHP and using mySQL or another PHP-compatible database as data backend. "Mini" doesn't mean "nothing". Specially developed for small and medium forum communities, which have less than 100 unique posts per day, miniBB also could be, and used in much larger projects. If you take a look at miniBB settings file, or this manual, you'll find a lot of options, both for users and administrator, which allow full and in-time control over the board. This guide refers to almost all miniBB features and possibilities. It is created both for user and administrator, and is included in miniBB package as the "default" FAQ document. You can use this manual as basic user FAQ for your page under GNU Free Documentation License described below. If you are using this guide as FAQ in your forums, remove all administration and developers guides. Regular users should be informed only about related options. Some options described in this manual require basic HTML and PHP knowledge. If you are on beginner-user level, study it very carefully before applying any modifications to the miniBB package. Remember: this software comes free, but with no warranties. |
RequirementsThere are no specific requirements of the server type, OS, PHP or mySQL version. Every system that supports PHP/mySQL combination, should also support miniBB. We've got reports that miniBB was successfully up & running on Unix, Linux, Windows, Novell, MacOSX servers, with Apache or IIS, or other typical web-server installed. As about PHP or database version, we recommend to use only final and stable versions of these products. It's the question of your own security at first. However, since PHP is growing fast, we may also recommend to study the most up-to-date requirements page at miniBB.com. Before installing miniBB, make sure you have PHP installed on your server, and you have mySQL host, login and password information which you'll need to put into the configuration file. |
InstallationFiles listThe current miniBB version has the files & folders structure mentioned below: |
|
|
You could not rename forum's root folders, else the software won't function properly. Depending on the installed add-ons, optionally, there may be also various plug-in script files located under the abovementioned folders. |
Setting up the software: Step #1With no matter to miniBB version or the add-ons you're going to install, at first try the miniBB Compiler, taking care of your time and health. This tool allows to automate the process of manual installations, making miniBB setup possible in a minute. Whatever package you have on output, will be compatible with everything listed in this chapter below. Before you are going to install miniBB, at first, you already should have a web-hosting space and the registered domain, under which your forums will reside. One copy of MiniBB could be executed on one domain only. Hosting package should support PHP and mySQL. * Check miniBB requirements page to make sure your hosting has everything to run the forum. There should be a mySQL database available, and you should know its name, login, password and host name where it resides. This data is required for the miniBB installation. If you don't know what is a mySQL database, try to search the web first. On many hosting plans, there are available administration tools like cPanel, where you could create a database on your own. In most cases your database should be set in UTF-8 encoding. If you have mySQL version older than 5.5.3 (your mySQL version is displayed by the miniBB installation script at the first screen - you could safely execute it to check for the version, as the first screen doesn't initiate the installation process), then try to apply this command in the SQL command window: alter database DB_NAME character set utf8 collate utf8_general_ci; If you have mySQL version equal or greater than 5.5.3, it would mean your database should provide the full support of UTF-8. Then try to apply the following command: alter database DB_NAME character set = utf8mb4 collate = utf8mb4_unicode_ci; In both cases, DB_NAME stands for your Database Name. Read more about configuring the Unicode database properly below. mySQL's user name, password, host and database should be known and well-working in advance. According to the mySQL's access privileges, it must be a "super-user", which is allowed to create tables. Many users don't know a lot about these values, and could get a "server overload issue" with the REFCODE provided (in miniBB starting from ver.3.5; in older releases, errors could be named like Database/configuration error. or Database/configuration error (DB is missing).). Any error displayed like described above, simply means the mySQL database is either not installed, either improperly configured in setup_options.php. miniBB doesn't use anything specific for connection to database - they are only regular PHP/mySQL functions. Establishing the proper connection to your database is the most important step in setting up the forum. Unpack 'minibb.zip' package somewhere on your disk, where 'minibb.zip' stands for the basic free version, or for the compiled package. Be sure you are unpacked all files and folders match the original folders structure on your disk as it's provided in the package. Make sure you have [IMG], [LANG], [TEMPLATES] folders extracted, and they are contained with proper files. You should transfer all miniBB package files and folders to the place under your hosting, where you would like to see your forum running. Use File Transfer Protocol (FTP) client for that; hereby you should have FTP access (login and password) to the server. If you don't know what is FTP and how to use it, try to search the web first. Use a qualified FTP client program for this purpose, because files should be not broken or binary-converted when transferring on the server. Our FTP client recommendation is Total Commander. When all files are transferred, make sure you have uploaded them all, and the files/folders structure matches the original. Compare all uploaded and original files by size, one-by-one, to the original package. It is a very common mistake, when some file has been not uploaded in full (during the connection error, or FTP client reset error), and all that may give an additional error report when executing miniBB, so it will not execute partially or in full. For example, this is a reason for common error reports like "TEMPLATE NOT FOUND", "Fatal error.", "...failed to open stream: No such file or directory in...", "Failed opening ... for inclusion..." etc. By default, in the basic mode, MiniBB doesn't require special file permissions. On your disk, locate the file called setup_options.php which contains almost every common option of miniBB. Open it for editing in some plain text editor. Here and further, modify all miniBB files with a qualified text editor! Our recommendation is Notepad2. This editing program, or similar are not storing additional newlines, spaces or breaks before <?php and/or after ?> tags, and it doesn't change the original structure of the file. Having something extra in the file may cause problems with your forum program. For example, you will be unable to log in, and kind of such error will appear: Cannot modify header information - headers already sent by (output started at.... Under the settings file, you will find a lot of settings, but it is not required to edit all of them in this 1st step. We will edit only some of them, and will explain the others later. Let's begin.
Also, pay attention also to the option $pathToFiles, which is described below. It's not a subject of changing if your miniBB program is running smoothly. However on some operating systems like Windows, and under some server configurations, it will be strongly required, that you set full absolute path to your scripts, so they can be included via PHP's include function properly. Also, many third party libraries functions available in PHP, may require this option to be set as full path (GD or Aspell, for example). After you've done editing of setup_options.php, save it and update on your server. Then proceed to the Installation itself. |
Automatic InstallationInstallation of miniBB is very simple and takes less than a minute. After you did the basic configuration described above (did you?..), locate http://yourdomain/forums/ MiniBB is also possible to install manually. This is recommended only for professionals having troubles or limitations with mySQL database. For manual installation, execute commands located under _install_mysql.sql file, and optionally under _install_mysql_utf8mb4.sql file (having mySQL equal or greated than ver.5.5.3). Afterall, reset admin's account in the admin panel, clicking the proper link, but this is not a mandatory action - if you just keep your admin access data in a plain setup_options.php file, with no replicating the admin password to a database, in some cases it could be more safe and bullet-proof. After installation is completed, delete _install.php and _install_mysql.sql files from the forums folder directory for security reasons. |
Creating forumsminiBB engine is using cookies for registered users and admin log in. PHP sessions could be used optionally, but we don't recommend it because of weak search engine mechanisms on sessions. Please refer to "logging" section for more info. So, turn on cookies in your browser for that stuff. Do a login to your admin page. Usually is "bb_admin.php", but since your are renamed this file (did you?..), only you know what is admin panel URL. So, go to that panel, and probably you will be prompted for your admin login and password. Enter them, and you must go into admin panel. If the trouble appears and you're not able to login, double check your cookie path, domain and name, probably change them and, on IIS servers, try to uncomment "$metaLocation" option (see below). There you will see a bunch of options for your miniBB forums. We will describe them later, but now we need to create some forums. So, click on "Add forum" link and... follow instructions on the screen! We guess, it will be very easy to create some forums. Refer to "Supertitles" secton - supertitles are actually replacement for subcategories. Also, we don't recommend to give forums "large names". Be as laconic as possible. First, it is more rememberable, second, large names do not fit in topics or threads listing pages. Search cralwers like Google also don't like them. When you enter miniBB as administrator, you are also logged in as simple user. You can make posts under your name, edit other posts, make deletions etc. We'll talk about it later. Only one: by default, you should also see "admin panel" link beneath every page. And you can automatically reach your panel following this link, each time you are signed in as admin. |
CustomizationConfiguring the software: 2nd stepAt this moment, your miniBB should be running already! Go to index.php and check this. But, there is a lot of other options that probably you want to change. Let's refer to setup_options.php again. Note for PHP newbies: //$a='b'; string actually means nothing, and this setting will not work in any case, because this statement is COMMENTED (two slashes before). Removing slashes means UNCOMMENT or ENABLE this setting. For changing setting, change its content between apostrophes (''). Numerical settings may also not contain apostrophes.
That's mostly all in making an advanced miniBB setup. After that, your forums should work in all aspects, you could create some test accounts and proceed to the verifying of database charsets and configuration described below. |
Setting up your forums & database encoding properlyInitially miniBB has been planned to run in native 1-byte encodings only, which suppose ISO- or Windows-oriented. Even by now, if your forum runs only in one language, which has its own 1-byte encoding, like for example 'iso-8859-1' for purely English forums, and there's supposed that it would not contain messages and usernames on any other international languages having non-latin symbols (if we don't suppose spam of course), and if it's not supposed the other interface language but English, it's still better to have it running in this encoding. Because: running forums in a native encoding means all records in the database are kept in 1-byte char mode, even if these chars are non-latin. Also, if whatever non-latin is posted on your board, it will be automatically converted to an HTML entity containing this char in the HTML table. So, besides taking double less space, 1-byte strings are faster in searching/finding in database; also earlier versions of PHP, which your hoster may have installed by now, may only support 1-byte string by default when executing string functions like 'substr_count', 'strlen', 'strtolower' which all are extremely important in how the forum script handles strings and texts. However the IT world is growing each day, and your content expecting non-latin symbols even more often; also if your forums are setup to have different language interfaces, specially those languages having non-latin characters, UTF-8 is the only way to go on. In this case, you may switch to UTF-8 encoding, or simply called "Unicode", which is often called as "de-facto" in the web industry nowadays, and often considered as the only proper one by HTML code validation robots. UTF-8 has it pros and cons. On one hand, it allows to handle mostly all encodings which exist in the world languages, making your forum opened, literally, to anyone. However every non-latin symbol present in the database, will take from 2 to 4 bytes instead of one; such records are more heavier in search, specially if we talk about case-insensitive search. You have to set up UTF-8 database on your hosting server properly to make it work even after restoration of your backup, which also should be very carefully installed and executed. Note that pure latin symbols are still present as 1-byte even in UTF-8, so there could be a mix of records, which could be easily found, and which could not be found at all. Also, some earlier PHP versions do not have default string functions to work with UTF-8, like it's mentioned in the above paragraph, but your hoster may also not support the special "mb-" library functions which do this. That's why in the miniBB script we use extended functions, which are based on regular expressions for this case, but work with "mb-" functions by default if they are available. It's very important to start and continue running your forum in the initial encoding only. If you start in let's say 'iso-8859-2' or 'windows-1251' and then decide to switch to 'utf-8', it's first of all related to the database conversion difficulties, which could be not an easy thing at all, 'cause mySQL database is very capricious regarding this case. Our recommendation for avoiding future headache, is to start the forums straight in UTF-8 encoding. Default miniBB installation is optimized for this. Please note that starting from mySQL ver.5.5.3, it supports an extended encoding named 'utf8mb4', and collations like 'utf8mb4_unicode_ci'. All this provides the full support of UTF-8 in the database, incl. astral symbols, and mobile device emojis. So, whatever encoding you're going to run on, the following steps are must-have to verify at first before your forum goes public:
Note #1: if you'd like your forum having no problems with non-latin chars in usernames, always allow only Alpha-Numerical chars in usernames, with possibly some extra encoding-independent chars - like it's allowed in the $userRegName option in the default configuration. Putting extra non-latin chars in this option (you simply need to listen all possible one-by-one to allow them in username), make sure you save setup_options.php in UTF-8 encoding with no signature, like mentioned here. The last step to check if you have properly setup an UTF-8 mode, is to create a backup of your current "test" forum database; save it on your local computer, unpack if necessary, and open the data file in a default text editor for editing. You should see all UTF-8 chars present 'as is', naturally you should read them amongst the mySQL commands. If you will see kind of garbled characters, that doesn't work for good; however it's not terribly bad either. The most important thing, is that in this case you should have a backup which you could restore later on the database with a similar configuration like yours. I.e. this database should have all character sets and collations like your current one has. Note#2: if something doesn't work (on Registration/Login/Search/Backup stages), before you submit the next step, you could try to enable 'mysqli_set_charset' option which is present in miniBB 3.4 and later versions (mysqli module only). Before the closing ?> tag of setup_options.php try to put one of the following: $mysql_set_charset='utf8'; OR: $mysql_set_names=array('utf8', 'utf8_general_ci'); This sets the default character set to be used when sending data from and to the database server. This or that may work on various version servers; however the first method is preferred. In most cases, this should stricty enable utf8-mode for databases even having 'latin1' on 'client', 'connection' or 'results'. Having this set up, execute dbs_check.php like mentioned above, and it should show:
character_set_database: utf8
These are enough settings for running the database in UTF-8 mode; all other settings may be even 'latin1' (but of course, if you make it all 'utf8'/'utf8_general_ci' it's the most proper way. Note#3: it's important to check how mySQL handles the 'lower' function applied to strings or text, specially this affects usernames which could contain unicode characters. Only if mySQL is properly configured to handle lowercase, this will protect you from accounts which look very similar, but are different by just one uppercase or lowercase letter. Sometimes mySQL couldn't handle it properly, so the Registration script couldn't compare the common usernames in lowercase, this may bring sort of undesired results on some forums. It also affects case-insensitive logins. If your mySQL doesn't support case-insensitive mode for mySQL, most likely you should set $loginsCase option to FALSE to avoid confusion amongst members. The FALSE value of this option forces anyone to enter their username considering lowercase and uppercase letters, as they were registered. If $loginsCase is set to TRUE, and mySQL doesn't support lowercase comparision, unicode-based usernames will fail on ignoring the case. Also, in this case most likely you have to make your forums for registered-members only ($allForumsReg=TRUE;) - so Guests couldn't manipulate the lowercase or upperase to imitate existing accounts. The same affects the search function. If a unicode phrase is searched, a special mySQL configuration is required for case-insensitive search; if it's not configured, the unicode search will only return results which are recorded 'as is' in the original message, regarding the original transcription. |
TemplatesTemplates are used to separate HTML code from PHP. They are located in "templates" folder and are regular HTML files (or TXT files - if we talk about email templates - read below). Similarly to PHP scripts, templates are free and opened to modify and customize. And similarly to PHP scripts, for templates modification you have to use a plain simple text editor like Notepad2. Avoid WYSIWYG editors, as they could add something unnatural to what is purely "hand-made". All templates are coded with the W3C recommendations and standards in mind. If you decide to modify templates, refer to the current page building principles. Customizing templates, try to leave all variables in their positions, as they all are important. Variables format is similar to the regular PHP "variable variables": {$...}. Templates parser transforms all such variables to their values (HTML content or anything else). Follow the same format, when plugging-in a new variable. Some templates are used in different scenarios. For example, user_dataform.html is used both for registering a new Profile and editing Profile, main_post_form.html appears on all posts, topics and editing pages, also in Private Messages. Pay attention to email templates (filenames beginning with "email_" and ending with ".txt"). These templates are used in sending automated forum messages. They have a special format: the first line of every template should be SUBJECT>>...<<. Between "SUBJECT>>" and "<<" there should be put the Subject of a certain email message. Avoid removing this line, and keep the proper format of it! If you add or modify email templates, translating into your own language, make sure to save them with Unix-type line endings (LF). Editors like Notepad2 allow to check it easily; go to the menu "File" -> "Line Endings". Other text editors could provide a similar feature. It is important to keep such type of linefeed, because some server-side mail transfer agents (like Postfix) dislike something other than Unix-type line endings, and will add junk to messages. If you check the miniBB option named $eeol, above it describes more of this subject. In main_header.html, you will find page title defined as <title>$title</title>. Avoid removing or changing this. The Title is changing dynamically according to the page, f.e., on the topic page it becomes Topic's name, and on topic lists it becomes Forum's name. For some other forum pages, it is also automated. This is a very important feature, which helps search engines to index your forum properly. That's why we recommend to think about the "valid" forum names: as short and descriptive they would be, as it's better. in the header template, also take care about other search-engines-related META-tags like "keywords" and "description". |
Custom templatesThere is possibility to make a custom template and call it from the script. For example, you need to create separate page before user registration (agreement): you can add any custom template, which is not included in miniBB. Design your template as usual (all script pre-defined variables also work), put it in "/templates" directory and call from the script like: index.php?action=tpl&tplName=custom_template where tplName is a name for your created template (in this case, "custom_template.html"). In that way you can also create stuff like "Most loved topics and answers" with the direct list of topics, any FAQs, manuals, description pages, agreements etc., etc., as like as the whole site! |
Language packsEach language pack defines how a basic interface sentense or a word could be displayed on the forum and under the Admin panel. Default miniBB language is English; however our community supplied many translations in other languages. All are found under the "Downloads". In a case if you don't find the translation to your language, it would be perfect if you could take the English pack, translate it and submit back to us. That way you would help users from your country. One forum could use multiple language interfaces. Language packs are placed in the forums folder named "lang". Usually, only "eng.php" pack is supplied as default. If you'd like to set another default language, modify the $lang setting of setup_options.php as described above Language pack simply consists of PHP variables and their values. It is a basic PHP script on its own, and similarly like for all scripts, for modifications of the language pack we strictly recommend a plain text editor, like Notepad2. Keep the original structure of the language pack as it's supplied with miniBB, and always refer to the default eng.php as this is the only up-to-date version which constains all proper language definitions. Also, try to use apostrophes (' ') instead of quotes (" ") for sentenses: they work a bit faster in PHP. Some phrases and sentenses could contain special Uppercase definitions enclosed in curly brackets (braces) like "{ }". Do not translate these definitions and do not modify them in any other way. They define some dynamic variables, which will replace these definitions during the script execution; that way your forum would better interact with users. In most cases, translate just the sentense coming prior to these defs, or some phrase inside of them if they consist of two parts, like for example, "{MOVED_EXT}...{/MOVED_EXT}" (the part between could be removed for some cases), or "{NEXT_MSG_LNK}...{/NEXT_MSG_LNK}" (the part between would be hyperlinked). Any language pack should also contain this:
Other variables come in assorting order. While working on miniBB, we have added them in the new versions' "order of appearance". If you will see a commenting string like "/* v1.1 */" or "/* v.3.3 */", it means that variables coming in a block after this string were added or changed for a mentioned version. Important: language pack's filename can have only of 3 letters (examples: eng.php for English, ger.php for German, fre.php for French etc.). On a multilingual forum, where more than 1 language is installed, and if you are using board's emailing features, you will probably need to create emailing templates for each language separately, naming them with a corresponding prefix. For example, if you'd like English and French interfaces available, and make it possible for registered users to change their preferred language in Preferences, do the following:
Having multilingual forums, be always sure you have installed additional, or other than English languages successfully. Specially test any processes related to the email notifications: new user sign up, notification about new post made, password's restoration. If your language is installed improperly, it may cause the software working wrong. If you have multilanguage forum, it would be a good idea to create many manuals on each language, naming it manual_LNG.html, where LNG is the prefix for your language pack. By default, only manual_eng.html is included. If there is no manual for user's language, empty page will be displayed. Please note: some variables specified in language pack, are both used in PHP scripts and JavaScript interface notices. That's why in some places it is not suitable to use apostrophes in your custom translation. This specially affects 3rd party language packs not checked by miniBB team, or for example, the variable called $l_accessDenied, which could be edited upon special rules on forums, and some other variables from the premium add-ons, which are mentioned in plugins instructions. If you are experiencing troubles posting a messages or getting a JavaScript error on page, it could be the reason of the wrong interpretation of apostrophes. Check the JavaScript Error Console of your browser for errors. Important: if you create a new, or modify an existing Language pack, make sure you save it with Windows-type line-endings (CR+LF). Editors like Notepad2 allow to check it easily; go to the menu "File" -> "Line Endings". Other text editors could provide a similar feature. This is necessary for auto-recognition of the Language title in the Profile (the script: bb_func_inslng.php). |
Skins: CSS fileCSS (cascading style sheet placed in /css/default.css) is designed to fit all font colors, table borders and sizes on the page in one file. It is included only once in main_header.html. It is W3C compliant. You can edit it as you wish, to fit your forums design to your page's design. Even if you don't know CSS, it is very easy to change mostly a couple of colors in HEX, fonts and sizes in pixels/points. Some example CSS skins downloadable from our site can also contain icon packages and image backgrounds and it's easy to add your own background to any CSS skin. You can find skin parameter description in CSS file itself - all main parts of it have small notes explaining the meaning of subsequent font/color/border and other parameters. |
Administrative options |
Admin panelYou can go to the admin panel manually typing in your browser admin panel's filename which you have entered in options file. But usually, you only need to login as admin into forums, and you'll see admin panel link at the bottom of each page. Admin panel is very small and very simple. Here is the list of options:
|
"Hidden" admin forums options |
Private (closed from public) forumsOnly site owner can define private forums and users which are allowed to post and view them. Edit bb_specials.php file, find variable $clForums=array(); and add $clForumsUsers[]=array();. $clForums array defines closed forums ID(s), and $clForumsUsers[] elements defines users which are allowed to post in this forum. Here is an example:
$clForums = array(1,3,6);
That means: forums with IDs 1,3,6 are private. Users with IDs 2 and 5 are allowed to post and view forum under ID 1, users with IDs 10 and 11 are allowed to post and view forum under ID 3, users with IDs 12 and 22 are allowed to post and view forum under ID 6. If you are able to think logically, it must not be difficult for you to set these arrays, and it be more simplier for you to edit this file once, else for us to write giant interface, which would be out of concepts of miniBB. If you don't want to have private forums, leave these arrays blank (but don't remove them!). Note 1: when setting $clForums array without $clForumsUsers array, you won't get any results, and these forums will be available to anyone, until you define user IDs, which have access to a private forum. Specify empty $clForumsUsers array for some forum, even if it has no users allowed. Another words, these settings are working only together, not separately. Note 2: it is not necessary define admin ID (1), because admin can enter any private forum and has full access to it. Note 3: topic titles from private forums don't appear on statistics, last discussions, user info and search pages, and first forums page, too. Anyway, if allowed user or admin is logged, they will appear everywhere automatically. Archived (read-only) forumsSite owner can create so called "archive" forums. In read-only forums, nobody except admin or defined moderator can make or edit posts. Edit bb_specials.php with array variable $roForums in it. Like in private forums (see above), add read-only comma-separated forums IDs into this array. Replies-only forumsSite owner can create so called "post-only" forums. That means, users can do anything except for creating new topics in these forums. It is very useful, if you combine your forums with guestbook or administrative news flash, for example. Edit bb_specials.php with array variable $poForums in it. Like in private forums (see above), add read-only comma-separated forums IDs into this array. In post-only forums, nobody except admin can make or edit topics. Example: $poForums=array(1); That means, forum with ID 1 is "post-only". If you have "post-only" forum as guestbook, for example, or just want to redirect user to some thread exactly when he is clicking on forum's title to view topics, you can define it in bb_specials.php as $redthread array. Example from our forums: $redthread=array(8=>355); means when user visits some forum with ID 8, he will redirected to the topic with ID 355, so the full URL will be like action=vthread&forum=8&topic=355. This is optional feature, it is not necessary to include this array if you don't need it. Custom member titlesBy default, miniBB doesn't use ranking system (user ranks like 'Administrator', 'Member' are displayed only, and if it is anonymous user, nothing is displayed). We have special solution addon for displaying user ranks basing on their posts amount, but it is possible to define special user rankings, for "special" members (for example, most-active-poster-of-all-time). Open bb_specials.php for that, find $userRanks array, and edit it. $userRanks=array(1 => 'Boss', 17 => 'Team member', 9 => 'Team member'); That means, user's rank with ID 1 is Boss (of course! :), and users with IDs 17 and 9 are "Team members". These rankings will be displayed under nickname in every post. In this way, you also can define so called "special avatars", when image is displayed instead of rank. Just provide full image URL as the rank's description. Registered-users-only forumsThese forums mean, that only registered (and logged correspondly) users can make new topics, new posts and edit their messages here. Use this setting only if you want to separate some forums for all and registered only members at the same time. Use general setting variable $allForumsReg (see above), if you want to make registered-users-only forums for everybody. Variable $regUsrForums=array(); in bb_specials.php means array of forums IDs which are protected. Example: $regUsrForums=array(1,2); That means, forums with ID 1,2 are only for registered users. In a case of registered-user-only forums, the post-topic or post-thread box with login information WILL APPEAR even if user is not logged in. User will be able to enter his login/pass to make a post. Anonymous or incorrectly logged users will be informed with "Access denied" message. In many cases, they can loose the information they typed, so please warn users of your board someway, that they must register before making any post! In the latest releases, we have defined language pack's variables for it, they are called $l_anonAllowed, and $l_anonDisallowed, and contain the text appearing near each message form, if user is not logged in. Moderators definitionModerators are people helping admin in managing the forums (read more in moderators section. Array of bb_specials.php named `$mods` defines the the set of forums/user IDs of members, which are allowed to be moderators in these forums specifically, or have some other moderator functions in other sections. Example:
$mods=array(
means that user with ID = 9 is the moderator for forums with IDs 1 and 2, and user 996 is moderator for forum 1. Moderators have only access to a specified forum. Displaying list of moderators is available on the first forums page. In default version, it is hidden. If you want this list to be shown under each forum's row, modify templates/main_forums_cell.html if you have a "regular" forums layout (having set $statsPageModern=FALSE;), or templates/main_modern_fcell.html (having set $statsPageModern=TRUE;), and paste {$moderatorsList} (for example, directly after {$forum_desc}). It will display usernames of moderators for the current forum. If there is no moderator specified, nothing will be displayed. Excluding certain forums from recent discussionsIf you want to exclude some forum from "Recent discussions" list, you can set it in the bb_specials array $lastOut. For example: $lastOut=array(6); excludes forum with ID 6 from "Last discussions" list on the first page. It's not necessary to add this new value if you don't need this. Sorting specific thread in DESCENDING orderYou can specify the ID of the thread (topic), which messages can be sorted in DESCending order. By default, every thread is sorted in ASCending order. Specially useful for questbooks. For this, set new array in your bb_specials.php file: $themeDesc=array(THREAD_IDs); where THREAD_IDs can be array of IDs of topics. For example: $themeDesc=array(355,11); will set DESC order for topics with ID 355 and 11. Note that this option will not affect page listing in last discussions and topics list. When some topic is splitted by pages, last replies will be available when you click on topic's title. If you have such kind of sorted thread (like guestbook), it is better to exclude it from last discussions and set the exact redirect from forum's title (see "Post-only forums" and $redthread). When you set this kind of topic, near its title, users will see an icon from /img/topic_reverse.gif. Deleting messagesOnly admin is allowed to delete user messages. Admin needs to be logged into the system. For deleting any message, go to the topic/thread list and click on "Delete" on the top of the message. JavaScript alert should appear; click "Ok", and the post will be deleted. After delete, message is not available for recovering. We are not keeping Recycle Bins. NOTE: you can not delete FIRST message of the topic. That's because the first message in thread list is TOPIC TEXT in reality. If you want to delete first message, it means you want to delete the WHOLE TOPIC. For this, see "Deleting topics". Deleting topicsAdmin or moderators are allowed to delete all available user topics (moderator - for each specified forum); also if $userDeleteMsgs setting is defined, this is possible for regular members, too (for their own topics/replies). Login, go to the bottom of topic page. You will find the link "Delete topic". Click on it. JavaScript alert should appear; click "Ok", and topic will be deleted, with all associated posts, too. Click on "Cancel", and you'll keep the old things. After delete, topic is not available for recovering. No Trash Cans. "Cleaning up the board" solution. When your board runs for a big time, you'll probably want to remove some old necessary topics. miniBB has a subtion opens up the form, where you should set up the IP address to ban, and the Reason of it, which is a single short message. It a case of direct banning from a forum message, IP address is substituted automatically for your convenience. Despite providing a Reason is optional, it's also important, because later it allows to distinguish the IP addresses, which may be possibly unbanned. Also, it is visible to the client entering from this IP address, and could be clarified properly.
Searching on ID, you need to enter decimal. Searching on email or login, you need to enter some string. If you do not enter something on ID or login, ALL users list will be displayed. When searching inactive users, you do not need to enter something. Receiving inactive users list, you can delete many of them by one-time, checking boxes and clicking "Delete" button. When you search users that haven't posted anything since [date], you need to define this date in YYYY-MM-DD format, which means: "4-digits-year"-"2-digits-month"-"2-digits-day". Script is looking for people, who's last reply date is EARLIER than entered date (not including!). That means, if you enter 2002-03-07, for example, you will look for people, who's last reply was earlier than on 7th March, 2002. People with last reply on 7th March will not be shown, also as "inactive" users, too. Clicking on [Delete], you can pop-up window with "Remove user" option, where user's ID will be automatically written in form. "Remove user" operation is described above. Entering this area of the admin panel is allowing this. Type in a single email address to delete it from all topic subscriptions at once. For complete emptying the subcriptions table (for example, in a case of switching the emailing option OFF forever), click "Delete All" button. Be careful: this section is only for those administrators understanding what they do, and the script will not give an extra alert upon deletion. If you have Private Messaging add-on installed, and if this user has set the emailing option to ON (i.e. send an email when somebody sends a PM), this option should be set to OFF automatically as soon as this email address has been removed from topics subscriptions. You can extract only emails or email+username, use tab separator or comma between these values, and output emails to the screen or separate file attachment. If you've chosen last one you will get a download window after pressing submit button. |
"Hidden" admin forums options |
Private (closed from public) forumsOnly site owner can define private forums and users which are allowed to post and view them. Edit bb_specials.php file, find variable $clForums=array(); and add $clForumsUsers[]=array();. $clForums array defines closed forums ID(s), and $clForumsUsers[] elements defines users which are allowed to post in this forum. Here is an example:
$clForums = array(1,3,6);
That means: forums with IDs 1,3,6 are private. Users with IDs 2 and 5 are allowed to post and view forum under ID 1, users with IDs 10 and 11 are allowed to post and view forum under ID 3, users with IDs 12 and 22 are allowed to post and view forum under ID 6. If you are able to think logically, it must not be difficult for you to set these arrays, and it be more simplier for you to edit this file once, else for us to write giant interface, which would be out of concepts of miniBB. If you don't want to have private forums, leave these arrays blank (but don't remove them!). Note 1: when setting $clForums array without $clForumsUsers array, you won't get any results, and these forums will be available to anyone, until you define user IDs, which have access to a private forum. Specify empty $clForumsUsers array for some forum, even if it has no users allowed. Another words, these settings are working only together, not separately. Note 2: it is not necessary define admin ID (1), because admin can enter any private forum and has full access to it. Note 3: topic titles from private forums don't appear on statistics, last discussions, user info and search pages, and first forums page, too. Anyway, if allowed user or admin is logged, they will appear everywhere automatically. Archived (read-only) forumsSite owner can create so called "archive" forums. In read-only forums, nobody except admin or defined moderator can make or edit posts. Edit bb_specials.php with array variable $roForums in it. Like in private forums (see above), add read-only comma-separated forums IDs into this array. Replies-only forumsSite owner can create so called "post-only" forums. That means, users can do anything except for creating new topics in these forums. It is very useful, if you combine your forums with guestbook or administrative news flash, for example. Edit bb_specials.php with array variable $poForums in it. Like in private forums (see above), add read-only comma-separated forums IDs into this array. In post-only forums, nobody except admin can make or edit topics. Example: $poForums=array(1); That means, forum with ID 1 is "post-only". If you have "post-only" forum as guestbook, for example, or just want to redirect user to some thread exactly when he is clicking on forum's title to view topics, you can define it in bb_specials.php as $redthread array. Example from our forums: $redthread=array(8=>355); means when user visits some forum with ID 8, he will redirected to the topic with ID 355, so the full URL will be like action=vthread&forum=8&topic=355. This is optional feature, it is not necessary to include this array if you don't need it. Custom member titlesBy default, miniBB doesn't use ranking system (user ranks like 'Administrator', 'Member' are displayed only, and if it is anonymous user, nothing is displayed). We have special solution addon for displaying user ranks basing on their posts amount, but it is possible to define special user rankings, for "special" members (for example, most-active-poster-of-all-time). Open bb_specials.php for that, find $userRanks array, and edit it. $userRanks=array(1 => 'Boss', 17 => 'Team member', 9 => 'Team member'); That means, user's rank with ID 1 is Boss (of course! :), and users with IDs 17 and 9 are "Team members". These rankings will be displayed under nickname in every post. In this way, you also can define so called "special avatars", when image is displayed instead of rank. Just provide full image URL as the rank's description. Registered-users-only forumsThese forums mean, that only registered (and logged correspondly) users can make new topics, new posts and edit their messages here. Use this setting only if you want to separate some forums for all and registered only members at the same time. Use general setting variable $allForumsReg (see above), if you want to make registered-users-only forums for everybody. Variable $regUsrForums=array(); in bb_specials.php means array of forums IDs which are protected. Example: $regUsrForums=array(1,2); That means, forums with ID 1,2 are only for registered users. In a case of registered-user-only forums, the post-topic or post-thread box with login information WILL APPEAR even if user is not logged in. User will be able to enter his login/pass to make a post. Anonymous or incorrectly logged users will be informed with "Access denied" message. In many cases, they can loose the information they typed, so please warn users of your board someway, that they must register before making any post! In the latest releases, we have defined language pack's variables for it, they are called $l_anonAllowed, and $l_anonDisallowed, and contain the text appearing near each message form, if user is not logged in. Moderators definitionModerators are people helping admin in managing the forums (read more in moderators section. Array of bb_specials.php named `$mods` defines the the set of forums/user IDs of members, which are allowed to be moderators in these forums specifically, or have some other moderator functions in other sections. Example:
$mods=array(
means that user with ID = 9 is the moderator for forums with IDs 1 and 2, and user 996 is moderator for forum 1. Moderators have only access to a specified forum. Displaying list of moderators is available on the first forums page. In default version, it is hidden. If you want this list to be shown under each forum's row, modify templates/main_forums_cell.html if you have a "regular" forums layout (having set $statsPageModern=FALSE;), or templates/main_modern_fcell.html (having set $statsPageModern=TRUE;), and paste {$moderatorsList} (for example, directly after {$forum_desc}). It will display usernames of moderators for the current forum. If there is no moderator specified, nothing will be displayed. Excluding certain forums from recent discussionsIf you want to exclude some forum from "Recent discussions" list, you can set it in the bb_specials array $lastOut. For example: $lastOut=array(6); excludes forum with ID 6 from "Last discussions" list on the first page. It's not necessary to add this new value if you don't need this. Sorting specific thread in DESCENDING orderYou can specify the ID of the thread (topic), which messages can be sorted in DESCending order. By default, every thread is sorted in ASCending order. Specially useful for questbooks. For this, set new array in your bb_specials.php file: $themeDesc=array(THREAD_IDs); where THREAD_IDs can be array of IDs of topics. For example: $themeDesc=array(355,11); will set DESC order for topics with ID 355 and 11. Note that this option will not affect page listing in last discussions and topics list. When some topic is splitted by pages, last replies will be available when you click on topic's title. If you have such kind of sorted thread (like guestbook), it is better to exclude it from last discussions and set the exact redirect from forum's title (see "Post-only forums" and $redthread). When you set this kind of topic, near its title, users will see an icon from /img/topic_reverse.gif. Deleting messagesOnly admin is allowed to delete user messages. Admin needs to be logged into the system. For deleting any message, go to the topic/thread list and click on "Delete" on the top of the message. JavaScript alert should appear; click "Ok", and the post will be deleted. After delete, message is not available for recovering. We are not keeping Recycle Bins. NOTE: you can not delete FIRST message of the topic. That's because the first message in thread list is TOPIC TEXT in reality. If you want to delete first message, it means you want to delete the WHOLE TOPIC. For this, see "Deleting topics". Deleting topicsAdmin or moderators are allowed to delete all available user topics (moderator - for each specified forum); also if $userDeleteMsgs setting is defined, this is possible for regular members, too (for their own topics/replies). Login, go to the bottom of topic page. You will find the link "Delete topic". Click on it. JavaScript alert should appear; click "Ok", and topic will be deleted, with all associated posts, too. Click on "Cancel", and you'll keep the old things. After delete, topic is not available for recovering. No Trash Cans. "Cleaning up the board" solution. When your board runs for a big time, you'll probably want to remove some old necessary topics. miniBB has a subtion opens up the form, where you should set up the IP address to ban, and the Reason of it, which is a single short message. It a case of direct banning from a forum message, IP address is substituted automatically for your convenience. Despite providing a Reason is optional, it's also important, because later it allows to distinguish the IP addresses, which may be possibly unbanned. Also, it is visible to the client entering from this IP address, and could be clarified properly.
Searching on ID, you need to enter decimal. Searching on email or login, you need to enter some string. If you do not enter something on ID or login, ALL users list will be displayed. When searching inactive users, you do not need to enter something. Receiving inactive users list, you can delete many of them by one-time, checking boxes and clicking "Delete" button. When you search users that haven't posted anything since [date], you need to define this date in YYYY-MM-DD format, which means: "4-digits-year"-"2-digits-month"-"2-digits-day". Script is looking for people, who's last reply date is EARLIER than entered date (not including!). That means, if you enter 2002-03-07, for example, you will look for people, who's last reply was earlier than on 7th March, 2002. People with last reply on 7th March will not be shown, also as "inactive" users, too. Clicking on [Delete], you can pop-up window with "Remove user" option, where user's ID will be automatically written in form. "Remove user" operation is described above. Entering this area of the admin panel is allowing this. Type in a single email address to delete it from all topic subscriptions at once. For complete emptying the subcriptions table (for example, in a case of switching the emailing option OFF forever), click "Delete All" button. Be careful: this section is only for those administrators understanding what they do, and the script will not give an extra alert upon deletion. If you have Private Messaging add-on installed, and if this user has set the emailing option to ON (i.e. send an email when somebody sends a PM), this option should be set to OFF automatically as soon as this email address has been removed from topics subscriptions. You can extract only emails or email+username, use tab separator or comma between these values, and output emails to the screen or separate file attachment. If you've chosen last one you will get a download window after pressing submit button. |
"Hidden" admin forums options |
Private (closed from public) forumsOnly site owner can define private forums and users which are allowed to post and view them. Edit bb_specials.php file, find variable $clForums=array(); and add $clForumsUsers[]=array();. $clForums array defines closed forums ID(s), and $clForumsUsers[] elements defines users which are allowed to post in this forum. Here is an example:
$clForums = array(1,3,6);
That means: forums with IDs 1,3,6 are private. Users with IDs 2 and 5 are allowed to post and view forum under ID 1, users with IDs 10 and 11 are allowed to post and view forum under ID 3, users with IDs 12 and 22 are allowed to post and view forum under ID 6. If you are able to think logically, it must not be difficult for you to set these arrays, and it be more simplier for you to edit this file once, else for us to write giant interface, which would be out of concepts of miniBB. If you don't want to have private forums, leave these arrays blank (but don't remove them!). Note 1: when setting $clForums array without $clForumsUsers array, you won't get any results, and these forums will be available to anyone, until you define user IDs, which have access to a private forum. Specify empty $clForumsUsers array for some forum, even if it has no users allowed. Another words, these settings are working only together, not separately. Note 2: it is not necessary define admin ID (1), because admin can enter any private forum and has full access to it. Note 3: topic titles from private forums don't appear on statistics, last discussions, user info and search pages, and first forums page, too. Anyway, if allowed user or admin is logged, they will appear everywhere automatically. Archived (read-only) forumsSite owner can create so called "archive" forums. In read-only forums, nobody except admin or defined moderator can make or edit posts. Edit bb_specials.php with array variable $roForums in it. Like in private forums (see above), add read-only comma-separated forums IDs into this array. Replies-only forumsSite owner can create so called "post-only" forums. That means, users can do anything except for creating new topics in these forums. It is very useful, if you combine your forums with guestbook or administrative news flash, for example. Edit bb_specials.php with array variable $poForums in it. Like in private forums (see above), add read-only comma-separated forums IDs into this array. In post-only forums, nobody except admin can make or edit topics. Example: $poForums=array(1); That means, forum with ID 1 is "post-only". If you have "post-only" forum as guestbook, for example, or just want to redirect user to some thread exactly when he is clicking on forum's title to view topics, you can define it in bb_specials.php as $redthread array. Example from our forums: $redthread=array(8=>355); means when user visits some forum with ID 8, he will redirected to the topic with ID 355, so the full URL will be like action=vthread&forum=8&topic=355. This is optional feature, it is not necessary to include this array if you don't need it. Custom member titlesBy default, miniBB doesn't use ranking system (user ranks like 'Administrator', 'Member' are displayed only, and if it is anonymous user, nothing is displayed). We have special solution addon for displaying user ranks basing on their posts amount, but it is possible to define special user rankings, for "special" members (for example, most-active-poster-of-all-time). Open bb_specials.php for that, find $userRanks array, and edit it. $userRanks=array(1 => 'Boss', 17 => 'Team member', 9 => 'Team member'); That means, user's rank with ID 1 is Boss (of course! :), and users with IDs 17 and 9 are "Team members". These rankings will be displayed under nickname in every post. In this way, you also can define so called "special avatars", when image is displayed instead of rank. Just provide full image URL as the rank's description. Registered-users-only forumsThese forums mean, that only registered (and logged correspondly) users can make new topics, new posts and edit their messages here. Use this setting only if you want to separate some forums for all and registered only members at the same time. Use general setting variable $allForumsReg (see above), if you want to make registered-users-only forums for everybody. Variable $regUsrForums=array(); in bb_specials.php means array of forums IDs which are protected. Example: $regUsrForums=array(1,2); That means, forums with ID 1,2 are only for registered users. In a case of registered-user-only forums, the post-topic or post-thread box with login information WILL APPEAR even if user is not logged in. User will be able to enter his login/pass to make a post. Anonymous or incorrectly logged users will be informed with "Access denied" message. In many cases, they can loose the information they typed, so please warn users of your board someway, that they must register before making any post! In the latest releases, we have defined language pack's variables for it, they are called $l_anonAllowed, and $l_anonDisallowed, and contain the text appearing near each message form, if user is not logged in. Moderators definitionModerators are people helping admin in managing the forums (read more in moderators section. Array of bb_specials.php named `$mods` defines the the set of forums/user IDs of members, which are allowed to be moderators in these forums specifically, or have some other moderator functions in other sections. Example:
$mods=array(
means that user with ID = 9 is the moderator for forums with IDs 1 and 2, and user 996 is moderator for forum 1. Moderators have only access to a specified forum. Displaying list of moderators is available on the first forums page. In default version, it is hidden. If you want this list to be shown under each forum's row, modify templates/main_forums_cell.html if you have a "regular" forums layout (having set $statsPageModern=FALSE;), or templates/main_modern_fcell.html (having set $statsPageModern=TRUE;), and paste {$moderatorsList} (for example, directly after {$forum_desc}). It will display usernames of moderators for the current forum. If there is no moderator specified, nothing will be displayed. Excluding certain forums from recent discussionsIf you want to exclude some forum from "Recent discussions" list, you can set it in the bb_specials array $lastOut. For example: $lastOut=array(6); excludes forum with ID 6 from "Last discussions" list on the first page. It's not necessary to add this new value if you don't need this. Sorting specific thread in DESCENDING orderYou can specify the ID of the thread (topic), which messages can be sorted in DESCending order. By default, every thread is sorted in ASCending order. Specially useful for questbooks. For this, set new array in your bb_specials.php file: $themeDesc=array(THREAD_IDs); where THREAD_IDs can be array of IDs of topics. For example: $themeDesc=array(355,11); will set DESC order for topics with ID 355 and 11. Note that this option will not affect page listing in last discussions and topics list. When some topic is splitted by pages, last replies will be available when you click on topic's title. If you have such kind of sorted thread (like guestbook), it is better to exclude it from last discussions and set the exact redirect from forum's title (see "Post-only forums" and $redthread). When you set this kind of topic, near its title, users will see an icon from /img/topic_reverse.gif. Deleting messagesOnly admin is allowed to delete user messages. Admin needs to be logged into the system. For deleting any message, go to the topic/thread list and click on "Delete" on the top of the message. JavaScript alert should appear; click "Ok", and the post will be deleted. After delete, message is not available for recovering. We are not keeping Recycle Bins. NOTE: you can not delete FIRST message of the topic. That's because the first message in thread list is TOPIC TEXT in reality. If you want to delete first message, it means you want to delete the WHOLE TOPIC. For this, see "Deleting topics". Deleting topicsAdmin or moderators are allowed to delete all available user topics (moderator - for each specified forum); also if $userDeleteMsgs setting is defined, this is possible for regular members, too (for their own topics/replies). Login, go to the bottom of topic page. You will find the link "Delete topic". Click on it. JavaScript alert should appear; click "Ok", and topic will be deleted, with all associated posts, too. Click on "Cancel", and you'll keep the old things. After delete, topic is not available for recovering. No Trash Cans. "Cleaning up the board" solution. When your board runs for a big time, you'll probably want to remove some old necessary topics. miniBB has a subtion opens up the form, where you should set up the IP address to ban, and the Reason of it, which is a single short message. It a case of direct banning from a forum message, IP address is substituted automatically for your convenience. Despite providing a Reason is optional, it's also important, because later it allows to distinguish the IP addresses, which may be possibly unbanned. Also, it is visible to the client entering from this IP address, and could be clarified properly.
Searching on ID, you need to enter decimal. Searching on email or login, you need to enter some string. If you do not enter something on ID or login, ALL users list will be displayed. When searching inactive users, you do not need to enter something. Receiving inactive users list, you can delete many of them by one-time, checking boxes and clicking "Delete" button. When you search users that haven't posted anything since [date], you need to define this date in YYYY-MM-DD format, which means: "4-digits-year"-"2-digits-month"-"2-digits-day". Script is looking for people, who's last reply date is EARLIER than entered date (not including!). That means, if you enter 2002-03-07, for example, you will look for pe |