diff --git a/install_guide/data/file.gif b/Documentation/Installation Guide/data/file.gif similarity index 100% rename from install_guide/data/file.gif rename to Documentation/Installation Guide/data/file.gif diff --git a/install_guide/data/folder.gif b/Documentation/Installation Guide/data/folder.gif similarity index 100% rename from install_guide/data/folder.gif rename to Documentation/Installation Guide/data/folder.gif diff --git a/install_guide/data/help.html b/Documentation/Installation Guide/data/help.html similarity index 81% rename from install_guide/data/help.html rename to Documentation/Installation Guide/data/help.html index 6ab35c3f..f3424abe 100644 --- a/install_guide/data/help.html +++ b/Documentation/Installation Guide/data/help.html @@ -1,163 +1,319 @@ - - - - - Invision Install Guide: Help & FAQ - - - - - - - - - - -
- Sections: Installation Problems | Admin CP Problems | Board Problems | Getting Further Help -
- -
- - - - - - - - -
Installation Problems
- When I run the installer, I get a page of code. -
- If when accessing the installer via your web browser you receive a page of code and not the installation start screen, this means that either PHP has - not been installed or has not been configured properly. Please consult with your web host to see if this is the case. -

- I get an error like this 'access denied for user@localhost using password YES' when I submit the main form. -
- If you receive this error from mySQL it means that either the mySQL database name, mySQL username, mySQL password or mySQL host information is wrong. Please double check the information you - entered making sure that passwords are typed correctly. In some cases, this information is case sensitive. If this error persists, please consult with your web host to check that the information - you have is correct. -

- After installing, I get this error 'Warning: fopen("/.install.lock", "w") - Permission denied ...' -
- After installing, Invision Board attempts to create a "lock" file which disables the installation script. If you receive this error, the installer - has not been able to create this file. After you have logged into the Admin Center for the first time, you should remove the "sm_install.php" script - from your server and only re-upload it if you wish to make a fresh install. You can then safely ignore this warning. -

- When installing I get an error like this: 'WARNING! Could not locate 'conf_global.php' -
- This error means that the installer could not "guess" the location of the file 'conf_global.php'. Make sure you have uploaded this file into the same directory that you - uploaded 'sm_install.php' into. If you have this file already uploaded and the CHMOD value has been set, then you can tell the installer where to look for this file by simply - opening 'sm_install.php' in your favourite text editor. Look near the top for "$root = "./";". Edit this to reflect your "real" path. Note, this is a path - not a URL, entering "http://www.domain.com" or similar will - result in an error. A path is literally the file path from the server root to the current directory (such as '/home/site/public_html/forums/'). More information is provided in the script near the top. When you have completed - the edit, simply save the file and re-upload to your server and re-run through your web browser. -
- -
- - - - - - - - -
Admin CP Problems
- No matter what I do, I can't stay logged into the Admin CP. -
- For extra security, the Admin CP checks your IP address as part of the admin session validation. In some cases your IP address will change with each page request (especially if you are using a dial up ISP). You can - stop the Admin CP checking your IP address which will solve the problem. -
To do this, open up "admin.php" in your text editor. Near the top of the script change $check_ip = 1; to $check_ip = 0;. Save the file and re-upload to your - server. -
Although there is no immediate security risk to doing this, you should not disclose your admin session ID to anyone or post the link you are using for that admin CP session to anyone. -

- When I try to access the Admin CP, the page is completely blank -
- This problem could be the result of a few things.
- Firstly, open up "admin.php" in a text editor and near the top change: $use_gzip = 1; to $use_gzip = 0;. Save the file and re-upload to your - server. -
- If that doesn't solve the problem, check the CHMOD values on the directories you created during the installation process. If in doubt, CHMOD them to 0777 and any directories contained within. -
- -
- - - - - - - - -
General Board Problems
- Every time I try to access a page on the forums it loads a blank page. -
- Can you log into the Admin CP? If you do not know the url, enter the following into your web browser address bar http://www.your-domain-here.com/forums/admin.php (obviously using the correct URL to your board!). -
If the Admin CP loads first time, try the following: -
Click on "Board Settings" to expand the sub-menu. Click on "Basic Config". When the page has loaded, turn off the following: Print HTTP headers? and DISABLE GZIP encoding?. When complete, submit the form - and try to access your board again. -
- If it still loads a blank page, check the CHMOD values on the directories you created during the installation including any directories contained within. If in doubt, CHMOD to 0777. -

- I am on a Windows server and I get an Internal Server Error when trying to access my board -
- There is an option to disable the headers that Invision Board prints by default. -
Log into your Admin Control Panel, click on "Board Settings" to expand the sub-menu. Click on "Basic Config". When the page has loaded, turn off Print HTTP headers? and submit the form - and try to access your board again. -

- I am on a Windows server and when I make a post I am taken to a blank page -
- Some Windows based servers require a different HTTP protocol when redirecting HTTP requests, there is an option in the Admin Control Panel to overcome this. -
- Log into your Admin Control Panel, click on "Board Settings" to expand the sub-menu. Click on "Basic Config". Choose "Refresh (Windows Savvy) from the "Type of auto-redirect?" option. Submit the form. -
- -
- - - - - - - - - -
Getting further help
- If you have a problem outside the ones solved in this guide, then don't panic!
- We have a large team of trained support professionals that will be able to provide a solution to your problems.
- Your first stop would be to open a new support ticket. The FREE ticket system is available from the Invision Board web site. When starting a new ticket, please - be as thorough as you can in your error reporting, it will save our team time in responding to you. We pride ourselves on quality, professional support and aim to answer your request as promptly as possible. -
- You can also post a problem on our "Support and Community Forums". We have a large active community who have experience in maintaining their Invision Board who may be able to give you a prompt reply - our support professionals also moderate these forums and - will read your posts. We do recommend that you make use of the search facility on the board to avoid posting problems that have already been posted - there is also a good chance that it's already been reported, discussed and solved. -
- -
You may wish to consider our "Priority Support" option. A once only fee will cover you for all support requests for a period of one year (12 months). -
Priority support entitles you to the following benefits: -
    -
  • Your support tickets will be marked priority and only Invision Board administrators will have access to those tickets. -
  • You will be given access to a private support forum on our Community Forums. -
  • If you are in the United States you will receive telephone support if desired. -
  • In most cases we will login to your account and address problems for you. -
  • We can install and upgrade the software for you if desired.
-
-For more information on our priority support service, please visit our advanced services page. -

-If you wish to contact us for non-technical issues, please visit our Contact Page which includes a handy email form, mailing address and telephone number. -
- - - - - + + + + + + + + Invision Install Guide: Help & FAQ + + + + + + + + + + + + + + + + + + + + + +
+ + Sections: Installation Problems | Admin CP Problems | Board Problems | Getting Further Help + +
+ + + +
+ + + + + + + + + + + + + + + + + +
Installation Problems
+ + When I run the installer, I get a page of code. + +
+ + If when accessing the installer via your web browser you receive a page of code and not the installation start screen, this means that either PHP has + + not been installed or has not been configured properly. Please consult with your web host to see if this is the case. + +

+ + I get an error like this 'access denied for user@localhost using password YES' when I submit the main form. + +
+ + If you receive this error from mySQL it means that either the mySQL database name, mySQL username, mySQL password or mySQL host information is wrong. Please double check the information you + + entered making sure that passwords are typed correctly. In some cases, this information is case sensitive. If this error persists, please consult with your web host to check that the information + + you have is correct. + +

+ + After installing, I get this error 'Warning: fopen("/.install.lock", "w") - Permission denied ...' + +
+ + After installing, Invision Power Board attempts to create a "lock" file which disables the installation script. If you receive this error, the installer + + has not been able to create this file. After you have logged into the Admin Center for the first time, you should remove the "sm_install.php" script + + from your server and only re-upload it if you wish to make a fresh install. You can then safely ignore this warning. + +

+ + When installing I get an error like this: 'WARNING! Could not locate 'conf_global.php' + +
+ + This error means that the installer could not "guess" the location of the file 'conf_global.php'. Make sure you have uploaded this file into the same directory that you + + uploaded 'sm_install.php' into. If you have this file already uploaded and the CHMOD value has been set, then you can tell the installer where to look for this file by simply + + opening 'sm_install.php' in your favourite text editor. Look near the top for "$root = "./";". Edit this to reflect your "real" path. Note, this is a path - not a URL, entering "http://www.domain.com" or similar will + + result in an error. A path is literally the file path from the server root to the current directory (such as '/home/site/public_html/forums/'). More information is provided in the script near the top. When you have completed + + the edit, simply save the file and re-upload to your server and re-run through your web browser. + +
+ + + +
+ + + + + + + + + + + + + + + + + +
Admin CP Problems
+ + No matter what I do, I can't stay logged into the Admin CP. + +
+ + For extra security, the Admin CP checks your IP address as part of the admin session validation. In some cases your IP address will change with each page request (especially if you are using a dial up ISP). You can + + stop the Admin CP checking your IP address which will solve the problem. + +
To do this, open up "admin.php" in your text editor. Near the top of the script change $check_ip = 1; to $check_ip = 0;. Save the file and re-upload to your + + server. + +
Although there is no immediate security risk to doing this, you should not disclose your admin session ID to anyone or post the link you are using for that admin CP session to anyone. + +

+ + When I try to access the Admin CP, the page is completely blank + +
+ + This problem could be the result of a few things.
+ + Firstly, open up "admin.php" in a text editor and near the top change: $use_gzip = 1; to $use_gzip = 0;. Save the file and re-upload to your + + server. + +
+ + If that doesn't solve the problem, check the CHMOD values on the directories you created during the installation process. If in doubt, CHMOD them to 0777 and any directories contained within. + +
+ + + +
+ + + + + + + + + + + + + + + + + +
General Board Problems
+ + Every time I try to access a page on the forums it loads a blank page. + +
+ + Can you log into the Admin CP? If you do not know the url, enter the following into your web browser address bar http://www.your-domain-here.com/forums/admin.php (obviously using the correct URL to your board!). + +
If the Admin CP loads first time, try the following: + +
Click on "Board Settings" to expand the sub-menu. Click on "Basic Config". When the page has loaded, turn off the following: Print HTTP headers? and DISABLE GZIP encoding?. When complete, submit the form + + and try to access your board again. + +
+ + If it still loads a blank page, check the CHMOD values on the directories you created during the installation including any directories contained within. If in doubt, CHMOD to 0777. + +

+ + I am on a Windows server and I get an Internal Server Error when trying to access my board + +
+ + There is an option to disable the headers that Invision Power Board prints by default. + +
Log into your Admin Control Panel, click on "Board Settings" to expand the sub-menu. Click on "Basic Config". When the page has loaded, turn off Print HTTP headers? and submit the form + + and try to access your board again. + +

+ + I am on a Windows server and when I make a post I am taken to a blank page + +
+ + Some Windows based servers require a different HTTP protocol when redirecting HTTP requests, there is an option in the Admin Control Panel to overcome this. + +
+ + Log into your Admin Control Panel, click on "Board Settings" to expand the sub-menu. Click on "Basic Config". Choose "Refresh (Windows Savvy) from the "Type of auto-redirect?" option. Submit the form. + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Getting further help
+ + If you have a problem outside the ones solved in this guide, then don't panic!
+ + We have a large team of trained support professionals that will be able to provide a solution to your problems.
+ + Your first stop would be to post a problem on our "Support and Community Forums". We have a large active community who have experience in maintaining their Invision Power Board who may be able to give you a prompt reply - our support professionals also moderate these forums and + + will read your posts. We do recommend that you make use of the search facility on the board to avoid posting problems that have already been posted - there is also a good chance that it's already been reported, discussed and solved. + +
+ +
You may wish to consider the registration option. A yearly fee will cover you for all support requests for a period of one year (12 months). + +
Registration entitles you to the following benefits: + +
    + +
  • You will have lifetime access to the Invision Power Services Customer Service Center. + +
  • Service Ticket access will allow you to submit technical tickets for our highly experienced staff to work with you. This means you will get private, one-on-one help without having to post on our support forums. + +
  • Phone support inside the US and UK (toll-free in the US). + +
  • Installation of Invision Power Board is included if you need this service (usually $35). + +
  • Half-price upgrade installations upon request when new releases of Invision Power Board are available + +
  • Discounts on Invision Power Board feature plug-ins
+ +
+ +For more information on our registration service, please visit our advanced services page. + +

+ +If you wish to contact us for non-technical issues, please visit our Contact Page which includes a handy email form, mailing address and telephone number. + +
+ + + + + + + + + + \ No newline at end of file diff --git a/install_guide/data/install.html b/Documentation/Installation Guide/data/install.html similarity index 82% rename from install_guide/data/install.html rename to Documentation/Installation Guide/data/install.html index 28d26296..681d075d 100644 --- a/install_guide/data/install.html +++ b/Documentation/Installation Guide/data/install.html @@ -1,304 +1,671 @@ - - - - - Invision Install Guide: Installing - - - - - - - - - - - - - - -
Installing: Step 1 - Uploading
-
At this point, you should have the zip archive "unzipped" and the contents similar to those shown in the structure and CHMOD guide. If you - do not have a similar structure, check to make sure you have your zip program preferences set to allow creation of directories and to preserve case and long filenames. -

- If you haven't done so already, create a new directory on your server named appropriately (if you wanted to access the forums via 'http://www.domain.com/forums/', create a directory called 'forums' in the - 'public_html' or 'www' directory on your webserver. -

- Using your FTP client, move into the directory you wish to upload to (if you followed the above advice, move into the newly created 'forums' directory.) -

- Using your FTP client, create the following directories "archive_in", "archive_out", "html", "lang", "Skin", "sources", "ssi_templates", "style_images", - and "uploads" (TIP: If your FTP client supports "Drag n' Drop" which most modern clients do, you can save yourself some time and effort by - simply selecting all the files from the "unzipped" zip archive and drag them into your FTP client window, this will then copy all the files, creating the directories as it goes. If you choose - to do this, you can safely ignore most of the following instruction, just remember to CHMOD as outlined in the stucture and CHMOD guide). -

- Once the directories have been created, CHMOD "archive_in", "archive_out" and "uploads" to 0755 (if you get permissions errors later on, you can CHMOD these to - "0777"). Now, upload the contents of the files in your local folders (from the zip file) into the corresponding directories you've just created on your server. Some folders will contain other - files and folders, upload them all - preserving the structure you have in your zip file (for example, upload the entire contents of the "html" folder on your computer to the "html" directory on the server). -

- Once you have finished uploading into the directories, upload the rest of the files "admin.php", "conf_global.php", "conf_mime_types.php", "index.php", - "install_templates.txt", "sm_install.php", "ssi.php" to the same place as you created the directories earlier (into "forums" for our example). -
- CHMOD "conf_global.php" to 0666 (if you get permission denied errors later on, you can CHMOD this to 0777). -

- That's it, the hard work is now done! You can proceed to the next step. -
- -
- - - - - - - - -
Installing: Step 2 - Using the Installer
- An installer is provided to assist you in entering the information Invision Board needs to connect to your mySQL database and to create your new - administrators account. -

- Run the "sm_install.php" file through your web browser by entering the URL to it into your browser address bar (if you have followed our example, type in - http://www.domain.com/forums/sm_install.php, naturally subsituting 'domain.com' for your web address.) -

- You will be presented with a short information screen, if you receive an error telling you that "conf_global.php" does not have suitable permissions, CHMOD "conf_global.php" to - 0777 via your FTP client. -

- Clicking on proceed will present you with a simple information form. You will need to know your mySQL username and password at this point. If you do not know it, please ask your web host - in most - cases it is different from the FTP log in information. -

The form is very straightfoward, with only the following points needing closer examination. If you do not know what your mySQL "host" is, try "localhost" (without the quotes). if the mySQL server - is on the same server as your website (and in most cases it is) this will suffice. -
- If you have created a new database for Invision Board, or wish to use an existing database, enter the name of the database in the appropriate field.

Unless you intend to install multiple copies of - Invision Board into the same database, you can leave the "table prefix" blank. If you do not have a mySQL password (if you are installing Invision Board on your local server) this can be left blank. -
- After submitting the form, you will be informed of any errors - if you do get an error similar to "permission denied for user@localhost using password YES" - the chances are you have either your mySQL username, mySQL password - or mySQL database name wrong. Consult with your webhost for the correct information and resubmit the form. -

- If the installation was successful, you will receive notification to that effect. -
- Follow the link to finish off the installation and to log into your newly installed board. When the log in page loads, enter in the information you chose for your administrator account. -
- Once you are logged into the board, click on the "Admin CP" link found in the navigation bar to access the Administration Control Panel. -
- - -
- - - - - - - - -
Installing: Step 3 - Admin CP First Steps
- The Invision Board administration control panel is a very sophisticated tool. This is where you can create new categories and forums for your board, as well - as set bad word filters, edit emoticons, change the board colours and so on. We recommend you browse the documentation at Invision Board before getting attempting some of the more complex operations. -

- Lets get stuck in! -
- The first thing you will need to do is remove the "sm_install.php" file from your server; although Invision Board locks the installer after a successful install, it's always a good idea to remove the installer as re-running it - will delete your database tables. -

- Before anyone can post, we need some forums! -
- If you wish to get stuck in straight away, now would be a good time to create some forums for your members to post in. -
- In the Administrators CP, click on the "Forum Control" expanding menu in the left menu frame. When it loads, click on "New Category". -
If your website was about computers, you could enter "PC Software" as the category name. Submit the form by clicking the button at the bottom of the page. -
Now we have a category to "group" the forums, lets create a forum or two. -

Click on "New Forum" found in the same expandable menu. Choose "Normal Forum" from the drop down box and proceed. -
There are many options here, which are outside the scope of this guide, for more information see the documentation at Invision Board. We can - create a new forum without knowing what all the options do. Using our example, you might want a forum dedicated to "Games" - if so, enter "Games" as the forum title, and a suitable description for the new forum. When you have done this - scroll down and submit the form by clicking the button at the bottom of the page. -

- If you now go back to your board, and refresh the page, you will see the new category and forum. Try a little test post to make sure the system is running perfectly. -

- Congratulations! You have installed and set up your new Invision Board. If you ran into trouble, please click on the "Help!" link in the top menu bar for the FAQ and how to get support. -

- Thank you for supporting Invision Board -
- -
-
-
-
- - - - - - - - - - - - -
File Structure and CHMOD values
Below is a table showing the file structure and recommended CHMOD values for the file (and in the case of directories, the CHMOD - values for the contents of the directories).
The CHMOD values are not needed for Windows based servers and can be safely ignored. The CHMOD - values may vary from system to system, if in doubt, CHMOD everything to 0777.
Most systems will not need to CHMOD everything to install successfully, - use the table below to determine what needs CHMOD'ding for installation, and what can be left until later. -
- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 File/Folder NameItem CHMOD ValueContents CHMOD ValueCHMOD for installCan CHMOD later
PHP fileadmin.php- - - - - - - -
folderarchive_in0755 - - - X - - -
folderarchive_out0755 - - - X - - -
PHP fileconf_global.php0666 - - - X - - -
PHP fileconf_mime_types.php- - - - - - - -
folderhtml- - - - - - - -
PHP fileindex.php- - - - - - - -
PHP fileinstall_templates.txt- - - - - - - -
folderlang0755 - 0755 - - - X -
folderSkin0755 - 0755 - - - X -
PHP filesm_install.php- - - - - - - -
foldersources- - - - - - - -
PHP filessi.php- - - - - - - -
folderssi_templates- - - - - - - -
folderstyle_images0755 - 0755 - - - X -
folderuploads0777 - - - X - - -
-
-
- - - - - + + + + + + + + Invision Install Guide: Installing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Installing: Step 1 - Uploading
+ +
At this point, you should have the zip archive "unzipped" and the contents similar to those shown in the structure and CHMOD guide. If you + + do not have a similar structure, check to make sure you have your zip program preferences set to allow creation of directories and to preserve case and long filenames. + +

+ + If you haven't done so already, create a new directory on your server named appropriately (if you wanted to access the forums via 'http://www.domain.com/forums/', create a directory called 'forums' in the + + 'public_html' or 'www' directory on your webserver. + +

+ + Using your FTP client, move into the directory you wish to upload to (if you followed the above advice, move into the newly created 'forums' directory.) + +

+ + Using your FTP client, create the following directories "archive_in", "archive_out", "cache", "fonts", "html", "lang", "modules", "Skin", "sources", "ssi_templates", "style_images", + + and "uploads" (TIP: If your FTP client supports "Drag n' Drop" which most modern clients do, you can save yourself some time and effort by + + simply selecting all the files from the "unzipped" zip archive and drag them into your FTP client window, this will then copy all the files, creating the directories as it goes. If you choose + + to do this, you can safely ignore most of the following instruction, just remember to CHMOD as outlined in the stucture and CHMOD guide). + +

+ + Once the directories have been created, CHMOD "archive_in", "archive_out" and "uploads" to 0755 (if you get permissions errors later on, you can CHMOD these to + + "0777"). Now, upload the contents of the files in your local folders (from the zip file) into the corresponding directories you've just created on your server. Some folders will contain other + + files and folders, upload them all - preserving the structure you have in your zip file (for example, upload the entire contents of the "html" folder on your computer to the "html" directory on the server). + +

+ + Once you have finished uploading into the directories, upload the rest of the files "admin.php", "conf_global.php", "conf_mime_types.php", "css.php", "index.php", + + "install_templates.txt", "sm_install.php", "ssi.php" to the same place as you created the directories earlier (into "forums" for our example). + +
+ + CHMOD "conf_global.php" to 0666 (if you get permission denied errors later on, you can CHMOD this to 0777). + +

+ + That's it, the hard work is now done! You can proceed to the next step. + +
+ + + +
+ + + + + + + + + + + + + + + + + +
Installing: Step 2 - Using the Installer
+ + An installer is provided to assist you in entering the information Invision Power Board needs to connect to your mySQL database and to create your new + + administrators account. + +

+ + Run the "sm_install.php" file through your web browser by entering the URL to it into your browser address bar (if you have followed our example, type in + + http://www.domain.com/forums/sm_install.php, naturally subsituting 'domain.com' for your web address.) + +

+ + You will be presented with a short information screen, if you receive an error telling you that "conf_global.php" does not have suitable permissions, CHMOD "conf_global.php" to + + 0777 via your FTP client. + +

+ + Clicking on proceed will present you with a simple information form. You will need to know your mySQL username and password at this point. If you do not know it, please ask your web host - in most + + cases it is different from the FTP log in information. + +

The form is very straightfoward, with only the following points needing closer examination. If you do not know what your mySQL "host" is, try "localhost" (without the quotes). if the mySQL server + + is on the same server as your website (and in most cases it is) this will suffice. + +
+ + If you have created a new database for Invision Power Board, or wish to use an existing database, enter the name of the database in the appropriate field.

Unless you intend to install multiple copies of + + Invision Power Board into the same database, you can leave the "table prefix" blank. If you do not have a mySQL password (if you are installing Invision Power Board on your local server) this can be left blank. + +
+ + After submitting the form, you will be informed of any errors - if you do get an error similar to "permission denied for user@localhost using password YES" - the chances are you have either your mySQL username, mySQL password + + or mySQL database name wrong. Consult with your webhost for the correct information and resubmit the form. + +

+ + If the installation was successful, you will receive notification to that effect. + +
+ + Follow the link to finish off the installation and to log into your newly installed board. When the log in page loads, enter in the information you chose for your administrator account. + +
+ + Once you are logged into the board, click on the "Admin CP" link found in the navigation bar to access the Administration Control Panel. + +
+ + + + + +
+ + + + + + + + + + + + + + + + + +
Installing: Step 3 - Admin CP First Steps
+ + The Invision Power Board administration control panel is a very sophisticated tool. This is where you can create new categories and forums for your board, as well + + as set bad word filters, edit emoticons, change the board colours and so on. We recommend you browse the documentation at Invision Power Board before getting attempting some of the more complex operations. + +

+ + Lets get stuck in! + +
+ + The first thing you will need to do is remove the "sm_install.php" file from your server; although Invision Power Board locks the installer after a successful install, it's always a good idea to remove the installer as re-running it + + will delete your database tables. + +

+ + Before anyone can post, we need some forums! + +
+ + If you wish to get stuck in straight away, now would be a good time to create some forums for your members to post in. + +
+ + In the Administrators CP, click on the "Forum Control" expanding menu in the left menu frame. When it loads, click on "New Category". + +
If your website was about computers, you could enter "PC Software" as the category name. Submit the form by clicking the button at the bottom of the page. + +
Now we have a category to "group" the forums, lets create a forum or two. + +

Click on "New Forum" found in the same expandable menu. Choose "Normal Forum" from the drop down box and proceed. + +
There are many options here, which are outside the scope of this guide, for more information see the documentation at Invision Power Board. We can + + create a new forum without knowing what all the options do. Using our example, you might want a forum dedicated to "Games" - if so, enter "Games" as the forum title, and a suitable description for the new forum. When you have done this + + scroll down and submit the form by clicking the button at the bottom of the page. + +

+ + If you now go back to your board, and refresh the page, you will see the new category and forum. Try a little test post to make sure the system is running perfectly. + +

+ + Congratulations! You have installed and set up your new Invision Power Board. If you ran into trouble, please click on the "Help!" link in the top menu bar for the FAQ and how to get support. + +

+ + Thank you for supporting Invision Power Board + +
+ + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
File Structure and CHMOD values
Below is a table showing the file structure and recommended CHMOD values for the file (and in the case of directories, the CHMOD + + values for the contents of the directories).
The CHMOD values are not needed for Windows based servers and can be safely ignored. The CHMOD + + values may vary from system to system, if in doubt, CHMOD everything to 0777.
Most systems will not need to CHMOD everything to install successfully, + + use the table below to determine what needs CHMOD'ding for installation, and what can be left until later. + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 File/Folder NameItem CHMOD ValueContents CHMOD ValueCHMOD for installCan CHMOD later
PHP fileadmin.php- + + - + + - + + - + +
folderarchive_in0755 + + - + + X + + - + +
folderarchive_out0755 + + - + + X + + - + +
foldercache0755 + + - + + X + + - + +
PHP fileconf_global.php0666 + + - + + X + + - + +
PHP fileconf_mime_types.php- + + - + + - + + - + +
PHP filecss.php- + + - + + - + + - + +
folderfonts- + + - + + - + + - + +
folderhtml- + + - + + - + + - + +
PHP fileindex.php- + + - + + - + + - + +
PHP fileinstall_templates.txt- + + - + + - + + - + +
folderlang0755 + + 0755 + + - + + X + +
foldermodules- + + - + + - + + - + +
folderSkin0755 + + 0755 + + - + + X + +
PHP filesm_install.php- + + - + + - + + - + +
foldersources- + + - + + - + + - + +
PHP filessi.php- + + - + + - + + - + +
folderssi_templates- + + - + + - + + - + +
folderstyle_images0755 + + 0755 + + - + + X + +
folderuploads0777 + + - + + X + + - + +
+ +
+ +
+ + + + + + + + + + \ No newline at end of file diff --git a/install_guide/data/menu.html b/Documentation/Installation Guide/data/menu.html similarity index 97% rename from install_guide/data/menu.html rename to Documentation/Installation Guide/data/menu.html index 49d4465b..8a8c77d2 100644 --- a/install_guide/data/menu.html +++ b/Documentation/Installation Guide/data/menu.html @@ -1,31 +1,62 @@ - - - - - - Invision Board Menu Bar - - - - - - - - - - - - -
Invision Board Installation and Help Guide
- - - + + + + + + + + + + + Invision Board Menu Bar + + + + + + + + + + + + + + + + + + + + + + + + + +
Invision Board Installation and Help Guide
+ + + + + + + diff --git a/install_guide/data/tile_back.gif b/Documentation/Installation Guide/data/tile_back.gif similarity index 100% rename from install_guide/data/tile_back.gif rename to Documentation/Installation Guide/data/tile_back.gif diff --git a/install_guide/data/welcome.html b/Documentation/Installation Guide/data/welcome.html similarity index 80% rename from install_guide/data/welcome.html rename to Documentation/Installation Guide/data/welcome.html index d84af118..41421c79 100644 --- a/install_guide/data/welcome.html +++ b/Documentation/Installation Guide/data/welcome.html @@ -3,7 +3,7 @@ - Invision Install Guide: Welcome + Invision Power Board Install Guide: Welcome - - - - - - - - - -
- Sections: Introduction | Upgrading | HELP!! | Getting Further Help -
- -
- - - - - - - - -
Welcome!
- Synopsis: Upgrading from v1.0.x to v1.1 -
- To upgrade your existing board from Invision Board v1.0.x to Invision Board v1.1, you'll need to update all the program files and - run an upgrade script that is included in this distribution. You may want to create a database back up and download via FTP any - existing language packs and skin files as these may be over-written during the upgrade. -

- Important: Skins and Upload Permissions -
- The skinning system in Invision Board v1.1 is radically different from v1. This change brings many enhancements such as full online - template editing and a more powerful macro set function. These changes do mean that any existing skins will not be compatible with - v1.1. The upgrade script will change all existing skins to "hidden" and install a new default set for you. -
Your members will also be updated, moving them from any existing skin choices to the new default skin set. It's also worth noting that - the upload permissions system has changed. The installer will remove all existing forum upload permissions to ensure that - no error occurs after the upgrade. - -
- -
- - - - - - - - -
Upgrading
- Saving Old Data -
- If you wish to save the information in the old default skin, please do the following: -
- Via FTP download the directories "Skin/s1/" and "style_images/1/". The upgrade will need the - v1.1 files to reside in those directories and any previous data will be lost. -

- Uploading the Files -
- From the unzipped package, upload the following files to the same directory that your existing board is in: -
admin.php -
index.php -
install_templates.txt -
show.php -
upgrade4.php
-

Upload the directories (and any contents / sub directories): -
- lang/en/*.php (All PHP files. Create the directory if it's not there and upload into it) -
- Skin/s1/*.php (All PHP files. Create the directory if it's not there and upload into it) -
- sources/*.* (All PHP files and sub folders) -
- style_images/1/ (All files. Create the directory "1" if it's not there and upload into it)
-

- In short: Upload everything as if it were a new install! -

- Please check the following before you proceed -
You MUST ensure that the new skin PHP files are in a directory called "Skin/s1/" - if you have previously removed "s1" from the "Skins" directory, please re-create it via FTP and upload the skin PHP files into it. -

You MUST ensure that the new images are in a directory called "style_images/1/" - if you have previously - removed "1" from the "style_images" directory, please re-create it via FTP and upload the images into it. -

You MUST make sure the file 'install_templates.txt' is uploaded into the same directory as 'index.php' -

You MUST make sure the script 'upgrade4.php' is uploaded into the same directory as 'index.php' -

- Running the upgrade script -
- Open up a new browser window and enter the URL to the upgrade4.php script (example: www.board.com/forums/upgrade4.php) - Follow the onscreen instructions to update your database. -

- If you get an error during the upgrade, try hitting back in your browser and try again. -
- This script will upgrade your database, install new templates and perform a clean up. -

- IMPORTANT: PLEASE REMOVE THE SCRIPT WHEN THE UPGRADE IS COMPLETED! -

- That's it, you should be done! -
- -
- - - - - - - - -
HELP!!: Common Problems
- The upgrade worked fine, but I get a blank screen now!! -
- The upgrade takes it's best guess when it creates the new skin set, it's not impossible that it might not match everything up. - If you get a blank screen, it's usually because the board wrapper it's chosen is broken / doesn't exist. Try the following: -
Log into your Admin CP. Go to "Skins & Templates". Click on "Manage Skin Sets" and edit "IBF Default Set (NEW)" and make - sure it's got a valid template set and wrapper. -

- I can't do anything, I get loads of errors!! -
- This is always caused by a failure to update the files in "Skin/s1/" on your server. Simply put, they MUST be updated from - the ones included in this zip file (upload/Skins/s1). Upload the skins and refresh your browser. - -
- -
- - - - - - - - - -
Getting further help
- If you have a problem outside the ones solved in this guide, then don't panic!
- We have a large team of trained support professionals that will be able to provide a solution to your problems.
- Your first stop would be to open a new support ticket. The FREE ticket system is available from the Invision Board web site. When starting a new ticket, please - be as thorough as you can in your error reporting, it will save our team time in responding to you. We pride ourselves on quality, professional support and aim to answer your request as promptly as possible. -
- You can also post a problem on our "Support and Community Forums". We have a large active community who have experience in maintaining their Invision Board who may be able to give you a prompt reply - our support professionals also moderate these forums and - will read your posts. We do recommend that you make use of the search facility on the board to avoid posting problems that have already been posted - there is also a good chance that it's already been reported, discussed and solved. -
- -
You may wish to consider our "Priority Support" option. A once only fee will cover you for all support requests for a period of one year (12 months). -
Priority support entitles you to the following benefits: -
    -
  • Your support tickets will be marked priority and only Invision Board administrators will have access to those tickets. -
  • You will be given access to a private support forum on our Community Forums. -
  • If you are in the United States you will receive telephone support if desired. -
  • In most cases we will login to your account and address problems for you. -
  • We can install and upgrade the software for you if desired.
-
-For more information on our priority support service, please visit our advanced services page. -

-If you wish to contact us for non-technical issues, please visit our Contact Page which includes a handy email form, mailing address and telephone number. -
- - - - - + + + + + + + + Invision Power Board Upgrade Guide + + + + + + + + + + + + + + + + + + + + + +
+ + Sections: Introduction | Upgrading | HELP!! | Getting Further Help + +
+ + + +
+ + + + + + + + + + + + + + + + + +
Welcome!
+ + Synopsis: Upgrading from v1.1.x to v1.2 + +
+ + To upgrade your existing board from Invision Board v1.1.x to Invision Board v1.2, you'll need to update all the program files and + + run an upgrade script that is included in this distribution. You may want to create a database back up and download via FTP any + + existing language packs and skin files as these may be over-written during the upgrade. + +

+ + Important: Skins and full text searching + +
+ + All v1.1.x skins are not compatible with v1.2. IPB v1.2 has an XHTML compliant skin which has been totally rewritten. The upgrade + + process will 'sunset' all your current skins by marking them as hidden so that you may manually update them if desired. + +

+ + IPB v1.2 also supports full text searching. It is recommended that after the upgrade you log into your Admin CP, expand the "Board Options" sub menu and + + set up full text search. Note, you will not be able to use the "quick" search until full text searching has been enabled. + +
+ + + +
+ + + + + + + + + + + + + + + + + +
Upgrading
+ + Saving Old Data + +
+ + If you wish to save the information in the old default skin, please do the following: + +
+ + Via FTP download the directories "Skin/s1/" and "style_images/1/". The upgrade will need the + + v1.1 files to reside in those directories and any previous data will be lost. You will also need to export the default macro set if + + you wish to retain the information. This should just be the original v1.1 macro set and overwriting it will be harmless. + +

+ + Uploading the Files + +
+ + From the unzipped package, upload the following files to the same directory that your existing board is in: + +
admin.php + +
css.php + +
index.php + +
install_templates.txt + +
show.php + +
upgrade5.php
+ +

Upload the directories (and any contents / sub directories): + +
+ + + + cache + +
+ + fonts + +
+ + html (All files and sub forums, etc) + +
+ + lang/en/*.php (All PHP files. Create the directory if it's not there and upload into it) + +
+ + Skin/s1/*.php (All PHP files. Create the directory if it's not there and upload into it) + +
+ + sources/*.* (All PHP files and sub folders) + +
+ + style_images/1/ (All files. Create the directory "1" if it's not there and upload into it)
+ +

+ + In short: Upload everything as if it were a new install! + +

+ + Please check the following before you proceed + +
You MUST ensure that the new skin PHP files are in a directory called "Skin/s1/" - if you have previously removed "s1" from the "Skins" directory, please re-create it via FTP and upload the skin PHP files into it. + +

You MUST ensure that the new images are in a directory called "style_images/1/" - if you have previously + + removed "1" from the "style_images" directory, please re-create it via FTP and upload the images into it. + +

You MUST make sure the file 'install_templates.txt' is uploaded into the same directory as 'index.php' + +

You MUST make sure the script 'upgrade5.php' is uploaded into the same directory as 'index.php' + +

+ + Running the upgrade script + +
+ + Open up a new browser window and enter the URL to the upgrade5.php script (example: www.board.com/forums/upgrade5.php) + + Follow the onscreen instructions to update your database. + +

+ + If you get an error during the upgrade, try hitting back in your browser and try again. + +
+ + This script will upgrade your database, install new templates and perform a clean up. + +

+ + IMPORTANT: PLEASE REMOVE THE SCRIPT WHEN THE UPGRADE IS COMPLETED! + +

+ + That's it, you should be done! + +
+ + + +
+ + + + + + + + + + + + + + + + + +
HELP!!: Common Problems
+ + The upgrade worked fine, but I get a blank screen now!! + +
+ + The upgrade takes it's best guess when it creates the new skin set, it's not impossible that it might not match everything up. + + If you get a blank screen, it's usually because the board wrapper it's chosen is broken / doesn't exist. Try the following: + +
Log into your Admin CP. Go to "Skins & Templates". Click on "Manage Skin Sets" and edit "IPB Default Set (1.2)" and make + + sure it's got a valid template set and wrapper. + +

+ + I can't do anything, I get loads of errors!! + +
+ + This is always caused by a failure to update the files in "Skin/s1/" on your server. Simply put, they MUST be updated from + + the ones included in this zip file (upload/Skins/s1). Upload the skins and refresh your browser. + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Getting further help
+ + If you have a problem outside the ones solved in this guide, then don't panic!
+ + We have a large team of trained support professionals that will be able to provide a solution to your problems.
+ + Your first stop would be our "Support and Community Forums". We have a large active community who have experience in maintaining their Invision Power Board who may be able to give you a prompt reply - our support professionals also moderate these forums and + + will read your posts. We do recommend that you make use of the search facility on the board to avoid posting problems that have already been posted - there is also a good chance that it's already been reported, discussed and solved. + +
+ + + +
You may wish to consider registering your board. A once only fee will cover you for all support requests for a period of one year (12 months). + +
Priority support entitles you to the following benefits: + +
    + +
  • Your support tickets will be marked priority and only Invision Power Board administrators will have access to those tickets. + +
  • You will be given access to a private support forum on our Community Forums. + +
  • If you are in the United States you will receive telephone support if desired. + +
  • In most cases we will login to your account and address problems for you. + +
  • We can install and upgrade the software for you if desired.
+ +
+ +For more information on our priority support service, please visit our advanced services page. + +

+ +If you wish to contact us for non-technical issues, please visit our Contact Page which includes a handy email form, mailing address and telephone number. + +
+ + + + + + + + + + \ No newline at end of file diff --git a/previous_updaters/upgrade3.php b/Tools_and_Scripts/Other Scripts/update_auth.php similarity index 51% rename from previous_updaters/upgrade3.php rename to Tools_and_Scripts/Other Scripts/update_auth.php index b591f729..bb6c65a1 100644 --- a/previous_updaters/upgrade3.php +++ b/Tools_and_Scripts/Other Scripts/update_auth.php @@ -1,86 +1,262 @@ - Wrapper script -| > Script written by Matt Mecham -| > Date started: 14th February 2002 -| -+-------------------------------------------------------------------------- -*/ - -//----------------------------------------------- -// USER CONFIGURABLE ELEMENTS -//----------------------------------------------- - -// Root path - -$root_path = "./"; - -//----------------------------------------------- -// NO USER EDITABLE SECTIONS BELOW -//----------------------------------------------- - -error_reporting (E_ERROR | E_WARNING | E_PARSE); -set_magic_quotes_runtime(0); - - - - -//-------------------------------- -// Import $INFO, now! -//-------------------------------- - -require $root_path."conf_global.php"; - -//-------------------------------- -// Load the DB driver and such -//-------------------------------- - -$INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver']; - -$to_require = $root_path."sources/Drivers/".$INFO['sql_driver'].".php"; -require ($to_require); - -$DB = new db_driver; - -$DB->obj['sql_database'] = $INFO['sql_database']; -$DB->obj['sql_user'] = $INFO['sql_user']; -$DB->obj['sql_pass'] = $INFO['sql_pass']; -$DB->obj['sql_host'] = $INFO['sql_host']; -$DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; - -// Get a DB connection - -$DB->connect(); - -$DB->query("ALTER TABLE ibf_members CHANGE time_offset time_offset VARCHAR(10) DEFAULT NULL"); -$DB->query("ALTER TABLE ibf_members CHANGE skin skin SMALLINT(5) DEFAULT NULL"); -$DB->query("ALTER TABLE ibf_topics CHANGE forum_id forum_id SMALLINT (5) DEFAULT '0' NOT NULL"); -$DB->query("ALTER TABLE ibf_members ADD dst_in_use TINYINT (1) DEFAULT '0'"); - -echo("Running Queries:
ALTER TABLE ibf_members ADD dst_in_use TINYINT (1) DEFAULT '0'
ALTER TABLE ibf_topics CHANGE forum_id forum_id SMALLINT (5) DEFAULT '0' NOT NULL
ALTER TABLE ibf_members CHANGE time_offset time_offset VARCHAR(10) DEFAULT NULL
ALTER TABLE ibf_members CHANGE skin skin SMALLINT(5) DEFAULT NULL

Upgrade complete, you may now remove this file"); - -exit(); - - -//+------------------------------------------------- -// GLOBAL ROUTINES -//+------------------------------------------------- - -function fatal_error($message="", $help="") { - echo("$message

$help"); - exit; -} -?> + Patch script + +| > Script written by Matt Mecham + +| > Date started: 17th June 2003 + +| + ++-------------------------------------------------------------------------- + +*/ + + + +//----------------------------------------------- + +// USER CONFIGURABLE ELEMENTS + +//----------------------------------------------- + + + +// Root path + + + +$root_path = "./"; + + + +//----------------------------------------------- + +// NO USER EDITABLE SECTIONS BELOW + +//----------------------------------------------- + + + +error_reporting (E_ERROR | E_WARNING | E_PARSE); + +set_magic_quotes_runtime(0); + + + + + + + + + +//-------------------------------- + +// Import $INFO, now! + +//-------------------------------- + + + +require $root_path."conf_global.php"; + + + +//-------------------------------- + +// Load the DB driver and such + +//-------------------------------- + + + +$INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver']; + + + +$to_require = $root_path."sources/Drivers/".$INFO['sql_driver'].".php"; + +require ($to_require); + + + +$DB = new db_driver; + + + +$DB->obj['sql_database'] = $INFO['sql_database']; + +$DB->obj['sql_user'] = $INFO['sql_user']; + +$DB->obj['sql_pass'] = $INFO['sql_pass']; + +$DB->obj['sql_host'] = $INFO['sql_host']; + +$DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; + + + +// Get a DB connection + + + +$DB->connect(); + + + +$members = array(); + + + +$DB->query("SELECT * FROM ibf_members WHERE mgroup=".$INFO['auth_group']); + + + +while ( $r = $DB->fetch_row() ) + +{ + + $members[ $r['id'] ] = $r; + +} + + + +$tmp = $members; + + + +$DB->query("SELECT * FROM ibf_validating"); + + + +while ( $v = $DB->fetch_row() ) + +{ + + if ( is_array( $members[ $v['member_id'] ] ) ) + + { + + unset($members[ $v['member_id'] ]); + + } + +} + + + +/*header("Content-type: text/plain"); + +print_r($tmp); + +print_r($members); + +exit();*/ + + + +$count = intval( count($members) ); + + + +if ( $count > 0 ) + +{ + + foreach( $members as $mid => $mdata ) + + { + + $dbs = array( + + 'vid' => md5( time() . $mid ), + + 'member_id' => $mdata['id'], + + 'real_group' => $INFO['member_group'], + + 'temp_group' => $INFO['auth_group'], + + 'entry_date' => time(), + + 'coppa_user' => 0, + + 'new_reg' => 1, + + 'ip_address' => '127.0.0.1', + + ); + + + + $dbstring = $DB->compile_db_insert_string($dbs); + + + + $DB->query("INSERT INTO ibf_validating ({$dbstring['FIELD_NAMES']}) VALUES({$dbstring['FIELD_VALUES']})"); + + + + } + +} + + + +echo("$count members found...

Update complete, you may now remove this file"); + + + +exit(); + + + + + +//+------------------------------------------------- + +// GLOBAL ROUTINES + +//+------------------------------------------------- + + + +function fatal_error($message="", $help="") { + + echo("$message

$help"); + + exit; + +} + +?> + diff --git a/Tools_and_Scripts/Other Scripts/upgrade5.php b/Tools_and_Scripts/Other Scripts/upgrade5.php new file mode 100644 index 00000000..c1ff23bc --- /dev/null +++ b/Tools_and_Scripts/Other Scripts/upgrade5.php @@ -0,0 +1,2625 @@ + Upgrade Script #5 + +| > Script written by Matt Mecham + +| > Date started: 10th June 2003 + +| + ++-------------------------------------------------------------------------- + +*/ + + + +//----------------------------------------------- + +// USER CONFIGURABLE ELEMENTS + +//----------------------------------------------- + + + +// Root path + + + +$root_path = "./"; + + + +//----------------------------------------------- + +// NO USER EDITABLE SECTIONS BELOW + +//----------------------------------------------- + + + +error_reporting (E_ERROR | E_WARNING | E_PARSE); + +set_magic_quotes_runtime(0); + + + +$template = new template; + +$std = new installer; + + + +$VARS = $std->parse_incoming(); + + + +//-------------------------------- + +// Import $INFO, now! + +//-------------------------------- + + + +require $root_path."conf_global.php"; + + + +//-------------------------------- + +// Load the DB driver and such + +//-------------------------------- + + + +$INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver']; + + + +$to_require = $root_path."sources/Drivers/".$INFO['sql_driver'].".php"; + +require ($to_require); + + + +$DB = new db_driver; + + + +$DB->obj['sql_database'] = $INFO['sql_database']; + +$DB->obj['sql_user'] = $INFO['sql_user']; + +$DB->obj['sql_pass'] = $INFO['sql_pass']; + +$DB->obj['sql_host'] = $INFO['sql_host']; + +$DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; + + + +// Get a DB connection + + + +$DB->connect(); + + + +// Switch off auto_error + + + +$DB->return_die = 1; + + + +//--------------------------------------- + +// Sort out what to do.. + +//--------------------------------------- + + + +switch($VARS['a']) + +{ + + case 'tables': + + do_tables(); + + break; + + + + case 'alter': + + do_alter(); + + break; + + + + case 'index': + + do_index(); + + break; + + + + case 'insert': + + do_insert(); + + break; + + + + case 'templates': + + do_templates(); + + break; + + + + case 'cleanup': + + do_cleanup(); + + break; + + + + case 'optimize': + + do_optimize(); + + break; + + + + default: + + do_intro(); + + break; + +} + + + +//+--------------------------------------- + + + + + + + +function do_optimize() + +{ + + global $std, $template, $root, $DB; + + + + run_sql('optimize'); + + + + $template->print_top('Optimization Complete'); + + + + $template->contents .= "
+ +
+ +
Upgrade from v1.1.X to v1.2 COMPLETE
+ +
Your new v1.2 installation has been optimized
+ +
+ + The upgrade is now complete and you may go to your board! + +

+ + PLEASE REMOVE THIS UPGRADE SCRIPT AS SOON AS POSSIBLE + +
+ +
+ +
 
+ +
"; + + + + $template->output(); + +} + + + +//+--------------------------------------- + + + +function do_cleanup() + +{ + + global $std, $template, $root, $DB; + + + + // Insert new CSS + + + + $css_text = get_main_css(); + + + + $DB->query("INSERT INTO ibf_css (css_name, css_text, css_comments) VALUES ('Invision Style Sheet (1.2)', '$css_text', NULL)"); + + + + $new_css_id = $DB->get_insert_id(); + + + + //--------------------------------------------- + + // Save new wrapper + + //--------------------------------------------- + + + + $DB->query("INSERT INTO ibf_templates set template='".get_main_wrapper()."', name='IPB 1.2 Wrapper'"); + + + + $new_wrap_id = $DB->get_insert_id(); + + + + //--------------------------------------------- + + // Change all old skin sets to hidden + + //--------------------------------------------- + + + + $DB->query("UPDATE ibf_skins SET hidden=1, default_set=0"); + + + + // Get a new ID for the new skin set + + + + $barney = array( 'sname' => "IPB Skin Set 1.2 (NEW)", + + 'set_id' => 1, + + 'tmpl_id' => $new_wrap_id, + + 'img_dir' => 1, + + 'css_id' => $new_css_id, + + 'hidden' => 0, + + 'default_set'=> 1, + + 'macro_id' => 1, + + ); + + + + $DB->query("REPLACE INTO ibf_macro_name SET set_id=1, set_name='IPB 1.2 Macro Set'"); + + + + $DB->query("SELECT MAX(sid) as new_id FROM ibf_skins"); + + + + $row = $DB->fetch_row(); + + + + $barney['sid'] = $row['new_id'] + 1; + + + + $db_string = $DB->compile_db_insert_string( $barney ); + + + + $DB->query("INSERT INTO ibf_skins (".$db_string['FIELD_NAMES'].") VALUES(".$db_string['FIELD_VALUES'].")"); + + + + // Change member skins to default + + + + $DB->query("UPDATE ibf_members SET skin=NULL"); + + + + //--------------------------------------------- + + // Sort out new forum masks + + //--------------------------------------------- + + + + $oq = $DB->query("SELECT g_id, g_title FROM ibf_groups ORDER BY g_id"); + + + + while( $r = $DB->fetch_row($oq) ) + + { + + $nq = $DB->query("REPLACE INTO ibf_forum_perms SET perm_id={$r['g_id']}, perm_name='{$r['g_title']} Mask'"); + + $bq = $DB->query("UPDATE ibf_groups SET g_perm_id={$r['g_id']} WHERE g_id={$r['g_id']}"); + + } + + + + //--------------------------------------------- + + // Remove old macros + + //--------------------------------------------- + + + + $DB->query("DELETE FROM ibf_macro WHERE macro_value IN ('M_ADDMEM', 'M_DELETE', 'M_REPLY', 'tbl_width', 'tbl_border')"); + + + + //--------------------------------------------- + + // Other stuff + + //--------------------------------------------- + + + + $DB->query("update ibf_members SET restrict_post=0"); + + + + $oq = $DB->query("SELECT * FROM ibf_rules"); + + + + while ( $r = $DB->fetch_row($oq) ) + + { + + $nq = $DB->query("UPDATE ibf_forums SET rules_title='{$r['title']}', rules_text='{$r['body']}' WHERE id={$r['fid']}"); + + } + + + + + + $DB->query("drop table if exists ibf_rules"); + + + + $DB->query("update ibf_messages SET read_state=1 where vid='sent'"); + + + + $DB->query("DROP TABLE if exists ibf_attachments"); + + + + + + $template->print_top('Upgrade Complete'); + + + + $template->contents .= "
+ +
+ +
Upgrade from v1.1.X to v1.2
+ +
Upgrade Complete!
+ +
+ + The upgrade was successful! + +

+ + Skin Set Changes + +
+ + Unfortunately v1.1.X + + skins are not compatible with this new version. All old skin sets have been set to 'hidden' and all members + + have been moved onto the new default skin. + +

+ + The new skin set will use the directory 'style_images/1/' as the image directory. Ensure that all the images + + in there have been updated from the download zip. If the directory does not exist, create it and upload + + the contents of the folder 'style_images/1/' from the zip file. + +

+ + IF YOU DO NOT WISH TO OPTIMIZE PLEASE REMOVE THIS UPGRADE SCRIPT AS SOON AS POSSIBLE + +

+ + Optimization + +
+ + Proceed if you wish to complete your IPB upgrade by optimizing the tables - this step can take some time + + depending on the amount of topics and posts you have. If you have a very large amount of posts (over 500,000) you + + might want to skip this. + +

+ + Optimize my IPB installation >> + +
+ +
+ +
 
+ +
"; + + + + + + $template->output(); + +} + + + + + +//+--------------------------------------- + + + + + + + +function do_templates() + +{ + + global $std, $template, $root, $DB; + + + + //----------------------------------- + + // Lets open the style file + + //----------------------------------- + + + + $style_file = $root.'install_templates.txt'; + + + + if ( ! file_exists($style_file) ) + + { + + install_error("Could not locate '$style_file'.

Check to ensure that this file exists in the same location as this script.

You may need to enter a value for the root path in this installer script, to do this, simply open up this script in a text editor and enter a value in \$root - remember to add a trailing slash. NT users will need to use double backslashes"); + + } + + + + if ( $fh = fopen( $style_file, 'r' ) ) + + { + + $data = fread($fh, filesize($style_file) ); + + fclose($fh); + + } + + else + + { + + install_error("Could open '$style_file'"); + + } + + + + if (strlen($data) < 100) + + { + + install_error("Err 1:'$style_file' is incomplete, please re-upload a fresh copy over the existing copy on the server'"); + + } + + + + // Chop up the data file. + + + + $template_rows = explode( "||~&~||", $data ); + + + + $crows = count($template_rows); + + + + if ( $crows < 100 ) + + { + + install_error("Err2: (Found $crows rows) '$style_file' is incomplete, please re-upload a fresh copy over the existing copy on the server'"); + + } + + + + //----------------------------------- + + // Delete current skins in #1 + + //----------------------------------- + + + + $DB->query("DELETE FROM ibf_skin_templates WHERE set_id=1"); + + + + //----------------------------------- + + // Lets populate the database! + + //----------------------------------- + + + + foreach( $template_rows as $q ) + + { + + $DB->error = ""; + + + + $q = trim($q); + + + + //print $q; + + + + if (strlen($q) < 5) + + { + + continue; + + } + + + + $DB->query("INSERT INTO ibf_skin_templates (set_id, group_name, section_content, func_name, func_data, updated, can_remove) VALUES $q"); + + + + if ( $DB->error != "" ) + + { + + install_error( "mySQL Error: ".$DB->error ); + + } + + } + + + + //--------------------------------------- + + + + $template->print_top('Step 5 Complete'); + + + + $template->contents .= "
+ +
+ +
Upgrade from v1.1.X to v1.2
+ +
The templates have been inserted
+ +
+ + You may now proceed to the next step. + +

+ + Proceed to Step 6: Finishing Up >> + +
+ +
+ +
 
+ +
"; + + $template->output(); + +} + + + + + +//+--------------------------------------- + + + + + + + +function do_insert() + +{ + + global $std, $template, $root, $DB; + + + + run_sql('insert'); + + + + $template->print_top('Step 4 Complete'); + + + + $template->contents .= "
+ +
+ +
Upgrade from v1.1.X to v1.2
+ +
The new data has been inserted
+ +
+ + You may now proceed to the next step. + +

+ + Proceed to Step 5: Insert New Templates >> + +
+ +
+ +
 
+ +
"; + + + + $template->output(); + +} + + + + + +//+--------------------------------------- + + + + + +function do_index() + +{ + + global $std, $template, $root, $DB; + + + + run_sql('index'); + + + + $template->print_top('Step 3 Complete'); + + + + $template->contents .= "
+ +
+ +
Upgrade from v1.1.X to v1.2
+ +
The indexes have been adjusted
+ +
+ + You may now proceed to the next step. + +

+ + Proceed to Step 4: Insert New Data >> + +
+ +
+ +
 
+ +
"; + + $template->output(); + +} + + + + + +//+--------------------------------------- + + + +function do_alter() + +{ + + global $std, $template, $root, $DB; + + + + run_sql('alter'); + + + + $template->print_top('Step 2 Complete'); + + + + $template->contents .= "
+ +
+ +
Upgrade from v1.1.X to v1.2
+ +
The tables have been altered
+ +
+ + You may now proceed to the next step. + +

+ + Proceed to Step 3: Alter Indexes >> + +
+ +
+ +
 
+ +
"; + + $template->output(); + +} + + + + + +//+--------------------------------------- + + + +function do_tables() + +{ + + global $std, $template, $root, $DB; + + + + run_sql('tables'); + + + + $template->print_top('Step 1 Complete'); + + + + $template->contents .= "
+ +
+ +
Upgrade from v1.1.X to v1.2
+ +
The new tables have been created
+ +
+ + You may now proceed to the next step. + +

+ + Proceed to Step 2: Alter Existing Tables >> + +
+ +
+ +
 
+ +
"; + + + + $template->output(); + +} + + + + + +//+--------------------------------------- + + + +function do_intro() + +{ + + global $std, $template, $root; + + + + $template->print_top('Welcome'); + + + + $template->contents .= " + + + + + + + + + + + +
IntroWelcome to IPB + +

+ + Welcome to the Invision Board Upgrade Utility + +

+ + Before you run this upgrade tool, please ensure that ALL of the source, language and skin files + + have been uploaded into the corresponding directories on your server. + +

+ + This script should be in the root forum directory (the same directory that index.php is in). + +

+ + This installer will alter the database for the new format and install the skin and macro files. + +

+ + Please ensure that 'install_templates.txt' is uploaded and in the same directory as this script. + +

+ + Also, please ensure that all the new skin_*.php files have been uploaded into 'Skin/s1' before starting + + this upgrader. If you wish to keep the old skin data in that directory, please copy the directory now before + + proceeding. Running this installer will set all existing skins to 'hidden' and install a new default skin pack + + "; + + + + $style_file = $root."install_templates.txt"; + + + + $warnings = array(); + + + + if ( ! file_exists($style_file) ) + + { + + $warnings[] = "Cannot locate the file 'install_templates.txt'. This should be uploaded into the same directory as this script!"; + + } + + + + if ( count($warnings) > 0 ) + + { + + + + $err_string = "
  • ".implode( "
  • ", $warnings )."
"; + + + + $template->contents .= "

+ +
+ + Warning! + + The following errors must be rectified before continuing! + +

+ + $err_string + +
"; + + } + + else + + { + + $template->contents .= "

Proceed to Step 1: Create New Tables >>
"; + + } + + + + $template->output(); + +} + + + + + + + +function install_error($msg="") + +{ + + global $std, $template, $root; + + + + $template->print_top('Warning!'); + + + + + + + + $template->contents .= "
• WARNING!
+ + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + +
+ + The following errors must be rectified before continuing!
Please go back and try again! + +

+ + $msg + +
+ +
+ +
"; + + + + + + + + $template->output(); + +} + + + + + + + + + +//+------------------------------------------------- + +// GLOBAL ROUTINES + +//+------------------------------------------------- + + + +function fatal_error($message="", $help="") { + + echo("$message

$help"); + + exit; + +} + + + + + +//+-------------------------------------------------------------------------- + +// CLASSES + +//+-------------------------------------------------------------------------- + + + + + + + +class template + +{ + + var $contents = ""; + + + + function output() + + { + + echo $this->contents; + + echo " + +
+ +

© 2002 Invision Board (www.invisionboard.com)
+ + + + + + "; + + exit(); + + } + + + + //-------------------------------------- + + + + function print_top($title="") + + { + + + + $this->contents = " + + Invision Power Board Set Up :: $title + + + + + + + + + +
Invision Power Board Installer
+ +
 
+ +
+ + "; + + + + } + + + + + +} + + + + + +class installer + +{ + + + + function parse_incoming() + + { + + global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_CLIENT_IP, $REQUEST_METHOD, $REMOTE_ADDR, $HTTP_PROXY_USER, $HTTP_X_FORWARDED_FOR; + + $return = array(); + + + + if( is_array($HTTP_GET_VARS) ) + + { + + while( list($k, $v) = each($HTTP_GET_VARS) ) + + { + + //$k = $this->clean_key($k); + + if( is_array($HTTP_GET_VARS[$k]) ) + + { + + while( list($k2, $v2) = each($HTTP_GET_VARS[$k]) ) + + { + + $return[$k][ $this->clean_key($k2) ] = $this->clean_value($v2); + + } + + } + + else + + { + + $return[$k] = $this->clean_value($v); + + } + + } + + } + + + + // Overwrite GET data with post data + + + + if( is_array($HTTP_POST_VARS) ) + + { + + while( list($k, $v) = each($HTTP_POST_VARS) ) + + { + + //$k = $this->clean_key($k); + + if ( is_array($HTTP_POST_VARS[$k]) ) + + { + + while( list($k2, $v2) = each($HTTP_POST_VARS[$k]) ) + + { + + $return[$k][ $this->clean_key($k2) ] = $this->clean_value($v2); + + } + + } + + else + + { + + $return[$k] = $this->clean_value($v); + + } + + } + + } + + + + return $return; + + } + + + + function clean_key($key) { + + + + if ($key == "") + + { + + return ""; + + } + + + + $key = preg_replace( "/\.\./" , "" , $key ); + + $key = preg_replace( "/\_\_(.+?)\_\_/" , "" , $key ); + + $key = preg_replace( "/^([\w\.\-\_]+)$/", "$1", $key ); + + return $key; + + } + + + + function clean_value($val) { + + + + if ($val == "") + + { + + return ""; + + } + + + + $val = preg_replace( "/&/" , "&" , $val ); + + $val = preg_replace( "//" , "-->" , $val ); + + $val = preg_replace( "/ - -EOF; -} - - -function build_away_msg() { -global $ibforums; -return <<lang['new_posts']} -
- {$ibforums->lang['my_replies']} - -EOF; -} - -function append_view($url="") { -global $ibforums; -return <<{$ibforums->lang['view_link']} ) -EOF; -} - - -function main($away_text="") { -global $ibforums; -return << - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{$ibforums->lang['page_title']}   [ -  + ]
{$ibforums->lang['while_away']}
$away_text
{$ibforums->lang['show_me']}
- - - - - - - - - - - - - - - - - - - - - -
{$ibforums->lang['sm_forum_leaders']}
{$ibforums->lang['sm_todays_posts']}
{$ibforums->lang['sm_today_posters']}
{$ibforums->lang['sm_all_posters']}
{$ibforums->lang['sm_my_last_posts']}
-
{$ibforums->lang['search_forums']}
 
{$ibforums->lang['search_help']}
 
-
- - - - - - - - -EOF; -} - - - -function login() { -global $ibforums; -return << - - - - - - - -
- - - - -
- - - - - - - - - - -
{$ibforums->lang['page_title']}
{$ibforums->lang['log_in_needed']}
- {$ibforums->lang['no_guests']} -

-
- {$ibforums->lang['log_in']} -

- {$ibforums->lang['lin_name']}
-
- {$ibforums->lang['lin_pass']}
-
- -
-

- {$ibforums->lang['reg_text']} -

-
{$ibforums->lang['reg_link']}
-
-
-
- -
- - -EOF; -} - - -function closelink() { -global $ibforums; -return << - - [ {$ibforums->lang['refresh']} ] | [ {$ibforums->lang['close_win']} ] - - - - -EOF; -} - -} + + + + +EOF; +} + + +function build_away_msg() { +global $ibforums; +return <<lang['new_posts']} +
+ {$ibforums->lang['my_replies']} + +EOF; +} + +function append_view($url="") { +global $ibforums; +return <<{$ibforums->lang['view_link']} ) +EOF; +} + + +function main($away_text="") { +global $ibforums; +return << +
{$ibforums->lang['page_title']}   [ -  + ]
+
{$ibforums->lang['while_away']}
+

{$away_text}

+
{$ibforums->lang['show_me']}
+

+ · {$ibforums->lang['sm_forum_leaders']} +
· {$ibforums->lang['sm_todays_posts']} +
· {$ibforums->lang['sm_today_posters']} +
· {$ibforums->lang['sm_all_posters']} +
· {$ibforums->lang['sm_my_last_posts']} +

+
{$ibforums->lang['search_forums']}
+
+

+

+   +
+

+
+ +
{$ibforums->lang['search_help']}
+
+

+

+   +
+

+
+ +
+EOF; +} + + + +function login() { +global $ibforums; +return << +
+
{$ibforums->lang['page_title']}
+
{$ibforums->lang['log_in_needed']}
+
+ {$ibforums->lang['no_guests']} +

+
+ {$ibforums->lang['log_in']} +

+ {$ibforums->lang['lin_name']}
+
+ {$ibforums->lang['lin_pass']}
+
+ +
+

+ {$ibforums->lang['reg_text']} +

+
{$ibforums->lang['reg_link']}
+
+
+ + + +EOF; +} + + +function closelink() { +global $ibforums; +return << + [ {$ibforums->lang['refresh']} ] | [ {$ibforums->lang['close_win']} ] + +EOF; +} + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_calendar.php b/upload/Skin/s1/skin_calendar.php index bb8c019c..23d44dd9 100644 --- a/upload/Skin/s1/skin_calendar.php +++ b/upload/Skin/s1/skin_calendar.php @@ -1,274 +1,444 @@ -<{P_EDIT}>
-HTML; -} - - -function cal_show_event($event, $member, $event_type, $edit_button="") { -global $ibforums; - -return << - -   {$ibforums->lang['event_date']} {$event['mday']} {$event['month_text']} {$event['year']}  [ {$event['title']} ] ($event_type) - - - - - - - - - - - -
{$member['name']}

{$member['avatar']}
{$ibforums->lang['group']} {$member['g_title']}
{$ibforums->lang['posts']} {$member['posts']}
{$ibforums->lang['joined']} {$member['joined']}
- $edit_button - - {$event['event_text']} - - -
- - - - -
- << {$ibforums->lang['back']} -
-
- - - -
- -HTML; -} - -function cal_page_events_start() { -global $ibforums; - -return << - - - - -
{$ibforums->lang['cal_title_events']}
- -HTML; -} - -function cal_birthday_start() { -global $ibforums; - -return << - - - - - - -
{$ibforums->lang['cal_birthdays']}
- - - - - - -
-
    - - -HTML; -} - -function cal_birthday_entry($uid, $uname, $age="") { -global $ibforums; - -return <<$uname ($age) -HTML; -} - - -function cal_birthday_end() { -global $ibforums; - -return << -
- - -
- - - - -
- << input['m']}&y={$ibforums->input['y']}'>{$ibforums->lang['back']} -
-
- - - -HTML; -} - - - -function cal_main_content($month, $year, $prev, $next) { -global $ibforums; - -return << -
- - - - -
$month $year
- - - - - - - - -
- - - - - -
{$ibforums->lang['table_title']} - < {$prev['month_name']} {$prev['year_id']} -    {$next['month_name']} {$next['year_id']} > -
-
- - - - - - - - - -
- - - - - - -
-     - {$ibforums->lang['post_new_event']} - < {$prev['month_name']} {$prev['year_id']} -    {$next['month_name']} {$next['year_id']} > -
-
-
-
- - - -HTML; -} - -function cal_day_bit($day) { -global $ibforums; - -return <<$day -HTML; -} - - -function cal_new_row() { -global $ibforums; - -return << - - - -HTML; -} - -function cal_blank_cell() { -global $ibforums; - -return <<
- -HTML; -} - - -function cal_date_cell($month_day, $events="") { -global $ibforums; - -return <<$month_day $events - -HTML; -} - -function cal_date_cell_today($month_day, $events="") { -global $ibforums; - -return <<$month_day$events - -HTML; -} - - -function cal_events_start() { -global $ibforums; - -return <<--> -
-HTML; -} - -function cal_events_wrap($link, $text) { -global $ibforums; - -return <<$text -HTML; -} - -function cal_events_end() { -global $ibforums; - -return <<--> -HTML; -} - -} + + + + + + + + + +EOF; +} + +function calendar_end_form($data) { +global $ibforums; +return << + + +
  $data
+ +
+
+EOF; +} + +function calendar_start_form() { +global $ibforums; +return << +EOF; +} + + +function calendar_start_edit_form($eventid) { +global $ibforums; +return << +EOF; +} + + +function calendar_event_title($data="") { +global $ibforums; +return << + {$ibforums->lang['calendar_title']} + + +EOF; +} + + +function calendar_delete_box() { +global $ibforums; +return << +  {$ibforums->lang['calendar_delete_box']} + +EOF; +} + + +function calendar_choose_date($days, $months, $years, $end_days, $end_months, $end_years, $recur_days, $recur_unit, $div, $checked, $cols, $recend) { +global $ibforums; +return << + {$ibforums->lang['calendar_event_date']} + + + + + + + + + + + + + + +
    
+
+ + + + + + + + + + + + + +
{$ibforums->lang['fv_range_ends']}    
{$ibforums->lang['fv_bgcolor']}{$cols['bg']}
{$ibforums->lang['fv_font']}{$cols['ft']}
+
+
{$ibforums->lang['fv_hidden']}
+
+
+ {$ibforums->lang['fv_recur_every']} + {$ibforums->lang['fv_until']}    +
+
{$ibforums->lang['fv_hidden']}
+
+ + +EOF; +} + + +function calendar_event_type($pub_select="", $priv_select="") { +global $ibforums; +return << + {$ibforums->lang['calendar_event_type']} + + +EOF; +} + + +function calendar_admin_group_box($groups) { +global $ibforums; +return << + {$ibforums->lang['calendar_group_filter']} + + +EOF; +} + + + +function cal_edit_del_button($id) { +global $ibforums; + +return <<<{P_DELETE}> <{P_EDIT}> +HTML; +} + + +function cal_show_event($event, $member, $event_type, $edit_button="", $type, $date_ends="") { +global $ibforums; + +return <<{$event['title']} ($event_type) + + + + + + + + + +
{$member['name']}
{$ibforums->lang['event_date']} {$event['mday']} {$event['month_text']} {$event['year']} $date_ends ($type)
$edit_button
{$member['avatar']}
{$ibforums->lang['group']} {$member['g_title']}
{$ibforums->lang['posts']} {$member['posts']}
{$ibforums->lang['joined']} {$member['joined']}
{$event['event_text']}
+HTML; +} + +function cal_page_events_start() { +global $ibforums; + +return << + function deleteEvent(id) { + if (confirm('{$ibforums->lang['js_del_1']}')) { + window.location.href = "{$ibforums->base_url}act=calendar&code=delete&e=" + id; + } + else { + alert ('{$ibforums->lang['js_del_2']}'); + } + } + +
+
{$ibforums->lang['cal_title_events']}
+HTML; +} + +function cal_page_events_end() { +global $ibforums; + +return <<<< input['m']}&y={$ibforums->input['y']}'>{$ibforums->lang['back']}
+ +HTML; +} + +function cal_birthday_start() { +global $ibforums; + +return <<{$ibforums->lang['cal_birthdays']} +
+
    +HTML; +} + +function cal_birthday_entry($uid, $uname, $age="") { +global $ibforums; + +return <<$uname ($age) +HTML; +} + + +function cal_birthday_end() { +global $ibforums; + +return << +
+HTML; +} + + + +function cal_main_content($month, $year, $prev, $next) { +global $ibforums; + +return << +
<{CAL_NEWEVENT}> $month $year
+
+
+
+
+ < {$prev['month_name']} {$prev['year_id']} + · {$ibforums->lang['table_title']} · + {$next['month_name']} {$next['year_id']} > +
+
+ + + + + + +
+
+
+
+
+ +
{$ibforums->lang['month_jump']}    
+
+
+ +HTML; +} + +function cal_day_bit($day) { +global $ibforums; + +return <<$day +HTML; +} + + +function cal_new_row() { +global $ibforums; + +return << + + + +HTML; +} + +function cal_blank_cell() { +global $ibforums; + +return <<
+ +HTML; +} + + +function cal_date_cell($month_day, $events="") { +global $ibforums; + +return << +
$month_day
$events + + +HTML; +} + +function cal_date_cell_today($month_day, $events="") { +global $ibforums; + +return << +
$month_day
+ $events + + +HTML; +} + + +function cal_events_start() { +global $ibforums; + +return << + +HTML; +} + +function cal_events_wrap($link, $text) { +global $ibforums; + +return <<$text
+HTML; +} + +function cal_events_wrap_range($link, $text, $ft="", $bg="") { +global $ibforums; + +return <<$text +HTML; +} + +function cal_events_wrap_recurring($link, $text) { +global $ibforums; + +return <<$text
+HTML; +} + +function cal_events_end() { +global $ibforums; + +return << +HTML; +} + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_csite.php b/upload/Skin/s1/skin_csite.php new file mode 100644 index 00000000..dcd4730a --- /dev/null +++ b/upload/Skin/s1/skin_csite.php @@ -0,0 +1,436 @@ +$title +EOF; +} + +function show_chat_link_inline() +{ +global $ibforums; +return << {$ibforums->lang['live_chat']} +EOF; +} + +function show_chat_link_popup() +{ +global $ibforums; +return << {$ibforums->lang['live_chat']} +EOF; +} + + +function csite_javascript() { +global $ibforums; +return << + + +EOF; +} + +function csite_css_inline($css="") { +global $ibforums; +return << +{$css} + +EOF; +} + +function csite_sep_char() { +global $ibforums; +return << +@import url({$ibforums->vars['board_url']}/css.php?d={$css}_{$img}.css); + +EOF; +} + + +function tmpl_links_wrap($link="", $name="") { +global $ibforums; +return <<$name
+EOF; +} + +function tmpl_welcomebox_member($pm_string="",$last_visit="", $name="", $return="") { +global $ibforums; +return << +
<{CAT_IMG}> {$ibforums->lang['wbox_welcome']}, $name
+ + +
+
+ +
$pm_string
+
+EOF; +} + +function tmpl_welcomebox_guest($top_string, $return) { +global $ibforums; +return << +
+
<{CAT_IMG}> {$ibforums->lang['wbox_welcome']}, {$ibforums->lang['wbox_guest_name']}
+
+ $top_string +

· {$ibforums->lang['wbox_getnewposts']} +

{$ibforums->lang['wbox_g_username']} +
+
{$ibforums->lang['wbox_g_password']} +
+
+
+
+ +EOF; +} + + +function tmpl_search() { +global $ibforums; +return << +
+
+
<{CAT_IMG}> {$ibforums->lang['search_title']}
+ +
+
+EOF; +} + +function tmpl_sitenav($links) { +global $ibforums; +return << +
+
<{CAT_IMG}> {$ibforums->lang['links_title']}
+
+ $links +
+
+EOF; +} + +function tmpl_affiliates($links) { +global $ibforums; +return << +
+
<{CAT_IMG}> {$ibforums->lang['aff_title']}
+
+ $links +
+
+EOF; +} + +function tmpl_changeskin($select) { +global $ibforums; +return << +
+
+
<{CAT_IMG}> {$ibforums->lang['cskin_title']}
+
+ {$ibforums->lang['cskin_text']} +
+ $select +
+ +
+
+
+EOF; +} + +function tmpl_onlineusers($breakdown, $split, $names) { +global $ibforums; +return << +
+ +
+ $breakdown
$split
$names
+
+
+EOF; +} + +function tmpl_poll_header($question,$tid) { +global $ibforums; +return << +
+
+ +
$question
+
+EOF; +} + +function tmpl_poll_result_row($votes, $id, $choice, $percent, $width) { +global $ibforums; +return << +
+EOF; +} + +function tmpl_poll_choice_row($id, $choice) { +global $ibforums; +return << $choice +
+EOF; +} + +function tmpl_poll_footer($vote, $total, $tid) { +global $ibforums; +return << + · $total +
· $vote +
· {$ibforums->lang['poll_discuss']} + +
+
+
+EOF; +} + +function tmpl_poll_vote() { +global $ibforums; +return << +EOF; +} + +function tmpl_latestposts($posts) { +global $ibforums; +return << +
+
<{CAT_IMG}> {$ibforums->lang['discuss_title']}
+ $posts +
+EOF; +} + +function tmpl_topic_row($tid, $title, $posts, $views, $mid, $mname, $date) { +global $ibforums; +return <<$title +
+ $mname @ $date +
{$ibforums->lang['recent_read']}: $views   {$ibforums->lang['recent_comments']}: $posts +
+EOF; +} + +function tmpl_recentarticles($articles) { +global $ibforums; +return << +
+
<{CAT_IMG}> {$ibforums->lang['recent_title']}
+ $articles +
+EOF; +} + +function tmpl_comment_link($tid) { +global $ibforums; +return <<{$ibforums->lang['article_comment']} +EOF; +} + +function tmpl_readmore_link($tid) { +global $ibforums; +return <<{$ibforums->lang['article_readmore']} +EOF; +} + +function tmpl_articles($articles) { +global $ibforums; +return << +EOF; +} + +function tmpl_skin_select_row($sid, $name, $used) { +global $ibforums; +return <<$name +EOF; +} + +function tmpl_skin_select_bottom() { +global $ibforums; +return << +EOF; +} + +function tmpl_articles_row($entry, $bottom_string, $read_more, $top_string) { +global $ibforums; +return << + +  {$entry['title']} + + + $top_string + + + {$entry['avatar']} + {$entry['post']} $read_more + + + + $bottom_string +   Print + email + + + +
+EOF; +} + +function tmpl_wrap_avatar($avatar) { +global $ibforums; +return <<[ DB Queries: $queries ] [ Execution Time: $time ] +EOF; +} + +function csite_skeleton_template() { +global $ibforums; +return << + + + + + + + + <!--CS.TEMPLATE.TITLE--> + + + + +
+ +
+ Powered by Invision Power Board +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+
  + + + + + +
+ + +
+
 
+
+ + +EOF; +} + + +} +?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_emails.php b/upload/Skin/s1/skin_emails.php index 49d1e982..0c36a231 100644 --- a/upload/Skin/s1/skin_emails.php +++ b/upload/Skin/s1/skin_emails.php @@ -1,291 +1,311 @@ -base_url}&act=report&send=1&f=$fid&t=$tid&p=$pid&st=$st" method="post" name='REPLIER'> - - - - - -
- - - - - - - - - - - - - - -
{$ibforums->lang['report_title']}
{$ibforums->lang['report_topic']}$topic_title -
{$ibforums->lang['report_message']} -
- -
-
- -EOF; -} - - -function msn_body($msnname) { -global $ibforums; -return << - - - {$ibforums->lang['msn_name']} - - - - {$ibforums->lang['msn_send_msg']} - - - {$ibforums->lang['msn_add_contact']} - - -EOF; -} - -function yahoo_body($yahoo) { -global $ibforums; -return << - {$ibforums->lang['yahoo_name']} - - - - {$ibforums->lang['yahoo_status']} - - - - {$ibforums->lang['yahoo_send_msg']} - - - {$ibforums->lang['yahoo_view_profile']} - - -EOF; -} - - -function icq_body($data) { -global $ibforums; -return << - - - - {$ibforums->lang['name']} - - - - {$ibforums->lang['email']} - - - - {$ibforums->lang['msg']} - - - - - - -EOF; -} - -function end_table() { -global $ibforums; -return << - - - - -   - - -EOF; -} - -function pager_header($data) { -global $ibforums; -return << - - - - - -EOF; -} - -function aol_body($data) { -global $ibforums; -return << -
{$data[TITLE]}
-
Download AIMAIM Remote
Send me an Instant Message
Add me to Your Buddy List
Add Remote to Your Page
Download AOL Instant Messenger

- -EOF; -} - -function forward_form($title, $text, $lang) { -global $ibforums; -return << - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
{$ibforums->lang['title']}
{$ibforums->lang['send_lang']}$lang
{$ibforums->lang['to_name']}
{$ibforums->lang['to_email']}
{$ibforums->lang['subject']}
{$ibforums->lang['message']} -
- -
-
- -EOF; -} - -function show_address($data) { -global $ibforums; -return << - - - - - - - - - - - -
{$ibforums->lang['send_email_to']} {$data[NAME]}
{$ibforums->lang['show_address_text']}
>>{$ibforums->lang['send_email_to']} {$data[NAME]}
- - - -EOF; -} - -function send_form($data) { -global $ibforums; -return << - - - - - - - - -
- - - - - - - - - - - - - - - - - -
{$ibforums->lang['send_title']}
{$ibforums->lang['send_email_to']} {$data[NAME]}
{$ibforums->lang['subject']} -
{$ibforums->lang['message']}

{$ibforums->lang['msg_txt']}
-
- -
-
- -EOF; -} - -function sent_screen($member_name) { -global $ibforums; -return << - - - - - - - - - - -
{$ibforums->lang['email_sent']}
{$ibforums->lang['email_sent_txt']} $member_name
- - - -EOF; -} - -function forum_jump($data) { -global $ibforums; -return << - - $data - - -EOF; -} - - -} + +
$title
+
$body
+ +EOF; +} + + +function errors($data) { +global $ibforums; +return << +
{$ibforums->lang['errors_found']}
+
$data
+ +
+EOF; +} + +function chat_inline($acc_no, $lang, $w, $h, $user="",$pass="") { +global $ibforums; +return << +
<{CAT_IMG}> {$ibforums->lang['chat_title']}
+
+ + + + + + + +
+ +
+
+
<{CAT_IMG}> {$ibforums->lang['chat_help']}
+
+ {$ibforums->lang['chat_help_text']} +
+
+EOF; +} + +function chat_pop($acc_no, $lang, $w, $h, $user="",$pass="") { +global $ibforums; +return << + + + + + + + + +EOF; +} + +function report_form($fid, $tid, $pid, $st, $topic_title) { +global $ibforums; +return << +
+
<{CAT_IMG}> {$ibforums->lang['report_title']}
+
 
+ + + + + + + + + +
{$ibforums->lang['report_topic']}$topic_title +
{$ibforums->lang['report_message']} +
+
+
+ +EOF; +} + + +function msn_body($msnname) { +global $ibforums; +return << + + + {$ibforums->lang['msn_name']} + + + + {$ibforums->lang['msn_send_msg']} + + + {$ibforums->lang['msn_add_contact']} + + +EOF; +} + +function yahoo_body($yahoo) { +global $ibforums; +return << + {$ibforums->lang['yahoo_name']} + + + + {$ibforums->lang['yahoo_status']} + + + + {$ibforums->lang['yahoo_send_msg']} + + + {$ibforums->lang['yahoo_view_profile']} + + +EOF; +} + + +function icq_body($data) { +global $ibforums; +return << + + + + {$ibforums->lang['name']} + + + + {$ibforums->lang['email']} + + + + {$ibforums->lang['msg']} + + + + + + +EOF; +} + +function end_table() { +global $ibforums; +return << + + + + +   + + +EOF; +} + +function pager_header($data) { +global $ibforums; +return << + + + + + +EOF; +} + +function aol_body($data) { +global $ibforums; +return << +
{$data[TITLE]}
+
Download AIMAIM Remote
Send me an Instant Message
Add me to Your Buddy List
Add Remote to Your Page
Download AOL Instant Messenger

+ +EOF; +} + +function forward_form($title, $text, $lang) { +global $ibforums; +return << + + + + + + +
+
<{CAT_IMG}> {$ibforums->lang['title']}
+ + + + + + + + + + + + + + + + + + + + + +
{$ibforums->lang['send_lang']}$lang
{$ibforums->lang['to_name']}
{$ibforums->lang['to_email']}
{$ibforums->lang['subject']}
{$ibforums->lang['message']} +
+
+
+ +EOF; +} + +function show_address($data) { +global $ibforums; +return << +
{$ibforums->lang['send_email_to']} {$data[NAME]}
+
{$ibforums->lang['show_address_text']} +
+ >>{$ibforums->lang['send_email_to']} {$data[NAME]} +
+ +EOF; +} + +function send_form($data) { +global $ibforums; +return << + + + +
{$ibforums->lang['imp_text']}
+
+
+
{$ibforums->lang['send_title']}
+
{$ibforums->lang['send_email_to']} {$data['NAME']}
+ + + + + + + + + +
{$ibforums->lang['subject']}
{$ibforums->lang['message']}

{$ibforums->lang['msg_txt']}
+
+
+ +EOF; +} + +function sent_screen($member_name) { +global $ibforums; +return << +
{$ibforums->lang['email_sent']}
+
{$ibforums->lang['email_sent_txt']} $member_name
+ + +EOF; +} + +function forum_jump($data) { +global $ibforums; +return << + + $data + + +EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_forum.php b/upload/Skin/s1/skin_forum.php index d17357f9..890a0019 100644 --- a/upload/Skin/s1/skin_forum.php +++ b/upload/Skin/s1/skin_forum.php @@ -1,369 +1,266 @@ -vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id};act=SF&f=$Data' method='post'> - - - - - - - - -
- - - - - - - - - - - - - - -
{$ibforums->lang['need_password']}
{$ibforums->lang['need_password_txt']}
{$ibforums->lang['enter_pass']}
-
- -EOF; -} - - -function show_rules_full($rules) { -global $ibforums; -return << -
- - - - -
{$rules['title']}

{$rules['body']}
-
- -EOF; -} - -function show_rules_link($rules) { -global $ibforums; -return << -
- - - - -
>>vars['php_ext']}?s={$ibforums->session_id}&act=SR&f={$rules['fid']}'>{$rules['title']}
-
- -EOF; -} - - -function show_sub_link($fid) { -global $ibforums; -return <<{$ibforums->lang['ft_title']} -EOF; -} - -function TableEnd($Data) { -global $ibforums; -return << - - - - - - - - - -
- - - - - -
{$ibforums->lang['showing_text']}{$ibforums->lang['sort_text']} 
-
- - - - - - - - - -
{$Data[SHOW_PAGES]}vars['php_ext']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$Data['id']}'><{A_POST}>{$Data[POLL_BUTTON]}
- - - - - - - - - - - - - - - - - - - - - - - - - - -
<{B_NEW}>{$ibforums->lang['pm_open_new']} <{B_POLL}>{$ibforums->lang['pm_poll']}  - - - vars['php_ext']}' name='search'> - - - - - - - - - -
{$ibforums->lang['search_forum']} 
-
- {$Data[FORUM_JUMP]} -
<{B_NORM}>{$ibforums->lang['pm_open_no']} <{B_POLL_NN}>{$ibforums->lang['pm_poll_no']} 
<{B_HOT}>{$ibforums->lang['pm_hot_new']} <{B_LOCKED}>{$ibforums->lang['pm_locked']} 
<{B_HOT_NN}>{$ibforums->lang['pm_hot_no']} <{B_MOVED}>{$ibforums->lang['pm_moved']} 
-EOF; -} - -function show_rules($rules) { -global $ibforums; -return << -
- - - - -
- - - - - - - - - - -
{$rules['title']}
{$rules['body']}
>>{$ibforums->lang['back_to_forum']}
-
-
- -EOF; -} - -function page_title($title="", $pages="") { -global $ibforums; -return << - - $title$pages - - -EOF; -} - -function PageTop($info) { -global $ibforums; -return << - - - - - - - - - - -
{$info['SHOW_PAGES']}vars['php_ext']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$info['id']}'><{A_POST}>{$info[POLL_BUTTON]}
- - - - vars['php_ext']}?s={$ibforums->session_id}' method='POST'> - - - - - -EOF; -} - - -function who_link($tid, $posts) { -global $ibforums; -return <<$posts -EOF; -} - -function RenderRow($Data) { -global $ibforums; -return << - - - - - - - - - - -EOF; -} - -function render_pinned_start() { -global $ibforums; -return << - - - - - -EOF; -} - -function render_pinned_end() { -global $ibforums; -return << - - - - - -EOF; -} - - -function render_pinned_row($Data) { -global $ibforums; -return << - - - - - - - - - - -EOF; -} - - -} +lang['tpl_jump']}">{$ibforums->lang['multi_page_forum']} +EOF; +} + + +function Forum_log_in($data) { +global $ibforums; +return << + + + + +
+
<{CAT_IMG}> {$ibforums->lang['need_password']}
+
{$ibforums->lang['need_password_txt']}
+
+ {$ibforums->lang['enter_pass']} +
+ +
+
+
+ +EOF; +} + + +function show_sub_link($fid) { +global $ibforums; +return <<{$ibforums->lang['ft_title']} +EOF; +} + +function show_mod_link($fid) { +global $ibforums; +return << +{$ibforums->lang['post_modq']} {$ibforums->lang['post_click']} +EOF; +} + +function PageTop($data) { +global $ibforums; +return << + + + + + +
- - - - - - -
{$info['name']}[ {$ibforums->lang['mark_as_read']} ]
-
- - - - - - - - - - - -EOF; -} - - -function forum_active_users($active=array()) { -global $ibforums; -return << - - - - - - -
- - - - - - - {$ibforums->lang['h_topic_title']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}
{$ibforums->lang['active_users_title']} ({$ibforums->lang['active_users_detail']})
{$ibforums->lang['active_users_members']} {$active['names']}
- - -EOF; -} - - - -function show_no_matches() { -global $ibforums; -return << -
-
- {$ibforums->lang['no_topics']} -

-
{$Data['folder_img']}{$Data['topic_icon']} - - - - - -
{$Data['go_new_post']}{$Data['prefix']} vars['php_ext']}?act=ST&f={$Data['forum_id']}&t={$Data['tid']}&s={$ibforums->session_id}' class='linkthru' title='{$ibforums->lang['topic_started_on']} {$Data['start_date']}'>{$Data['title']} {$Data[PAGES]}
- {$Data['description']}
{$Data['starter']}{$Data['posts']}{$Data['views']}{$Data['last_post']}
vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$Data['forum_id']}&t={$Data['tid']}&view=getlastpost'>{$Data['last_text']} {$Data['last_poster']}
  {$ibforums->lang['pinned_start']}
  {$ibforums->lang['regular_topics']}
{$Data['folder_img']}{$Data['topic_icon']} - - - - - -
{$Data['go_new_post']}{$Data['prefix']} vars['php_ext']}?act=ST&f={$Data['forum_id']}&t={$Data['tid']}&s={$ibforums->session_id}' class='linkthru' title='{$ibforums->lang['topic_started_on']} {$Data['start_date']}'>{$Data['title']} {$Data[PAGES]}
- {$Data['description']}
{$Data['starter']}{$Data['posts']}{$Data['views']}{$Data['last_post']}
vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$Data['forum_id']}&t={$Data['tid']}&view=getlastpost'>{$Data['last_text']} {$Data['last_poster']}
+ + + + +
{$data['SHOW_PAGES']}<{A_POST}>{$data[POLL_BUTTON]}
+
+ +
input['st']}' method='post'> +
+
<{CAT_IMG}> {$data['name']}
+ + + + + + + + + + + +EOF; +} + +function TableEnd($data) { +global $ibforums; +return << + + + +
{$ibforums->lang['showing_text']}{$ibforums->lang['sort_text']} 
+ + + +
+ +
{$ibforums->lang['h_topic_title']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}
+ + + + +
{$data['SHOW_PAGES']}<{A_POST}>{$data[POLL_BUTTON]}
+ +
+ +
+ <{B_NEW}>  {$ibforums->lang['pm_open_new']} +
<{B_NORM}>  {$ibforums->lang['pm_open_no']} +
<{B_HOT}>  {$ibforums->lang['pm_hot_new']} +
<{B_HOT_NN}>  {$ibforums->lang['pm_hot_no']} +
+ +
+ <{B_POLL}>  {$ibforums->lang['pm_poll']} +
<{B_POLL_NN}>  {$ibforums->lang['pm_poll_no']} +
<{B_LOCKED}>  {$ibforums->lang['pm_locked']} +
<{B_MOVED}>  {$ibforums->lang['pm_moved']} +
+ +
+
+ + + + + + {$ibforums->lang['search_forum']}  + +
+
+
+ {$data[FORUM_JUMP]} +
+
+
+ +
+ + +EOF; +} + +function show_rules($rules) { +global $ibforums; +return << +
{$rules['title']}
+
{$rules['body']}
+ +
+EOF; +} + +function page_title($title="", $pages="") { +global $ibforums; +return <<$title$pages +EOF; +} + + + + +function forum_active_users($active=array()) { +global $ibforums; +return <<{$ibforums->lang['active_users_title']} ({$ibforums->lang['active_users_detail']}) +
{$ibforums->lang['active_users_members']} {$active['names']}
+EOF; +} + + + +function show_no_matches() { +global $ibforums; +return << + +
+ {$ibforums->lang['no_topics']} +

+ + +EOF; +} + + +function who_link($tid, $posts) { +global $ibforums; +return <<$posts +EOF; +} + +function RenderRow($data) { +global $ibforums; +return << + + {$data['folder_img']} + {$data['topic_icon']} + + {$data['go_new_post']}{$data['prefix']} {$data['title']} {$data[PAGES]} +
{$data['description']} + {$data['starter']} + {$data['posts']} + {$data['views']} + {$data['last_post']}
{$data['last_text']} {$data['last_poster']}
+ + +EOF; +} + +function render_pinned_start() { +global $ibforums; +return << + +   +   + {$ibforums->lang['pinned_start']} + +EOF; +} + +function render_pinned_end() { +global $ibforums; +return << + +   +   + {$ibforums->lang['regular_topics']} + +EOF; +} + + +function render_pinned_row($data) { +global $ibforums; +return << + + {$data['folder_img']} + {$data['topic_icon']} + + {$data['go_new_post']}{$data['prefix']} {$data['title']} {$data[PAGES]} +
{$data['description']} + {$data['starter']} + {$data['posts']} + {$data['views']} + {$data['last_post']}
{$data['last_text']} {$data['last_poster']}
+ + +EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_global.php b/upload/Skin/s1/skin_global.php index 10e9d3e9..f39c2d6a 100644 --- a/upload/Skin/s1/skin_global.php +++ b/upload/Skin/s1/skin_global.php @@ -2,67 +2,242 @@ class skin_global { - - -function Member_bar($msg, $ad_link, $mod_link) { +function pop_up_window($title, $css, $text) { global $ibforums; return << - - {$ibforums->lang['logged_in_as']} {$ibforums->member['name']} ( {$ibforums->lang['log_out']}$ad_link $mod_link ) - - {$ibforums->lang['your_cp']} | {$msg[TEXT]} - | {$ibforums->lang['view_new_posts']} | {$ibforums->lang['l_qb']} - - - + + + + + $title + $css + + + +
+ $text +
+ + EOF; } -function ibf_banner() { + +function make_page_jump($tp="", $pp="", $ub="" ) { global $ibforums; return <<IPS Hosting +{$ibforums->lang['tpl_pages']} EOF; } +function signature_separator($sig="") { +global $ibforums; +return <<
--------------------
+
$sig
+EOF; +} + +function forum_show_rules_full($rules) { +global $ibforums; +return << +
<{F_RULES}> {$rules['title']}

{$rules['body']}
+
+ +EOF; +} + +function forum_show_rules_link($rules) { +global $ibforums; +return << + +
<{F_RULES}> {$rules['title']}
+ + +EOF; +} + +function css_inline($css="") { +global $ibforums; +return << +{$css} + +EOF; +} + +function css_external($css, $img) { +global $ibforums; +return << +@import url(css.php?d={$css}_{$img}.css); + +EOF; +} + +function Member_bar($msg, $ad_link, $mod_link, $val_link) { +global $ibforums; +return << + + {$ibforums->lang['logged_in_as']} {$ibforums->member['name']} ( {$ibforums->lang['log_out']}$ad_link $mod_link $val_link ) + + {$ibforums->lang['your_cp']} · {$msg[TEXT]} + · {$ibforums->lang['view_new_posts']} · {$ibforums->lang['l_qb']} + + +EOF; +} + +function Guest_bar() { +global $ibforums; +return << + + {$ibforums->lang['guest_stuff']} ( {$ibforums->lang['log_in']} | {$ibforums->lang['register']} ) + {$ibforums->lang['ml_revalidate']} + + +EOF; +} + +function member_bar_disabled() { +global $ibforums; +return << + + {$ibforums->lang['mb_disabled']} + + +EOF; +} + +function Member_no_usepm_bar($ad_link, $mod_link, $val_link) { +global $ibforums; +return << + + {$ibforums->lang['logged_in_as']} {$ibforums->member['name']} ( {$ibforums->lang['log_out']}$ad_link $mod_link $val_link ) + + {$ibforums->lang['your_cp']} + · {$ibforums->lang['view_new_posts']} · {$ibforums->lang['l_qb']} + + +EOF; +} + + function BoardHeader($time="") { global $ibforums; return << + + + + +
+ Powered by Invision Power Board +
- - - - - - - - - - + +
- - - - - -
Powered by Invision Board
-
- - - - -
<% MEMBER BAR %> -
-
+ + + + -
+<% MEMBER BAR %> +
+ +EOF; +} + +function rules_link($url="", $title="") +{ +global $ibforums; +return <<$title +EOF; +} + +function show_tsl_link_inline() +{ +global $ibforums; +return << {$ibforums->lang['tb_toplist']} +EOF; +} + +function show_chat_link_inline() +{ +global $ibforums; +return << {$ibforums->lang['live_chat']} +EOF; +} + +function show_chat_link_popup() +{ +global $ibforums; +return << {$ibforums->lang['live_chat']} EOF; } @@ -70,64 +245,47 @@ EOF; function start_nav() { global $ibforums; return << - - <{F_NAV}> - +
EOF; } + + + + function Redirect($Text, $Url, $css) { global $ibforums; return << {$ibforums->lang['stand_by']} -vars['php_ext']}$Url'> + + $css - - + +
- +
- - - - -
- - - - -
- {$ibforums->lang['thanks']}, - $Text

- {$ibforums->lang['transfer_you']}

- (vars['php_ext']}$Url'>{$ibforums->lang['dont_wait']})
-
-
+ + + + +
+ {$ibforums->lang['thanks']}, + $Text

+ {$ibforums->lang['transfer_you']}

+ ({$ibforums->lang['dont_wait']}) +
+
@@ -138,7 +296,7 @@ EOF; function PM_popup() { global $ibforums; return << + + +
+
 {$ibforums->lang['error_title']}
+
+
+ {$ibforums->lang['exp_text']}

+ {$ibforums->lang['msg_head']} +

+ $message +

+ + +

+ {$ibforums->lang['er_links']} +

+ · {$ibforums->lang['er_lost_pass']}
+ · {$ibforums->lang['er_register']}
+ · {$ibforums->lang['er_help_files']}
+ · {$ibforums->lang['er_contact_admin']} +
+ EOF; } -function Member_no_usepm_bar() { +function error_post_textarea($post="") { global $ibforums; return <<lang['logged_in_as']} {$ibforums->member['name']} ( {$ibforums->lang['your_cp']} | {$ibforums->lang['log_out']} ) +
+
+{$ibforums->lang['err_title']} +

+{$ibforums->lang['err_expl']} +
+
+
+
+
+
+ +
+
EOF; } diff --git a/upload/Skin/s1/skin_help.php b/upload/Skin/s1/skin_help.php index 4b628ddb..031332e5 100644 --- a/upload/Skin/s1/skin_help.php +++ b/upload/Skin/s1/skin_help.php @@ -1,89 +1,65 @@ - - - vars['php_ext']}?act=Help&s={$ibforums->session_id}&CODE=01&HID={$entry['id']}'>{$entry['title']}
{$entry['description']} - - -EOF; -} - -function display($text) { -global $ibforums; -return << - - $text - - -EOF; -} - -function end() { -global $ibforums; -return << - - - -EOF; -} - -function no_results() { -global $ibforums; -return << - {$ibforums->lang['no_results']} - -EOF; -} - -function start($one_text, $two_text, $three_text) { -global $ibforums; -return << - $two_text - - - - - - -
- - - - - - - -
$one_text
-
- - - - {$ibforums->lang['search_txt']}    -
-
-
-
- - - - - - -
- - - - -EOF; -} - - -} +{$entry['title']}
{$entry['description']} + +EOF; +} + +function display($text) { +global $ibforums; +return << +
$text
+ +EOF; +} + +function end() { +global $ibforums; +return << + + +EOF; +} + +function no_results() { +global $ibforums; +return << +
+ +EOF; +} + +function start($one_text, $two_text, $three_text) { +global $ibforums; +return <<$two_text +
+
+ + +
+
$one_text
+
{$ibforums->lang['search_txt']}   
+
+ +
+
+
$three_text
+
+
    +EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_legends.php b/upload/Skin/s1/skin_legends.php index eb23d681..c0ea17c7 100644 --- a/upload/Skin/s1/skin_legends.php +++ b/upload/Skin/s1/skin_legends.php @@ -1,210 +1,220 @@ -base_url}&act=legends&entry=$entry&name=$name&sep=$sep&CODE=finduser_two'> -
$three_text
{$ibforums->lang['no_results']}
- - - - - - - - - -
{$ibforums->lang['fu_title']}
{$ibforums->lang['fu_enter_name']}



{$ibforums->lang['fu_close_win']}
- - -EOF; -} - - -function find_user_error($msg) { -global $ibforums; -return << - - - - - - - - - - -
{$ibforums->lang['fu_error']}
$msg
{$ibforums->lang['fu_back']} :: {$ibforums->lang['fu_close_win']}
- - -EOF; -} - - -function find_user_final($names="",$entry="", $name="", $sep="line") { -global $ibforums; -return << - - - -
- - - - - - - - - - -
{$ibforums->lang['fu_title']}
{$ibforums->lang['fu_add_desc']}



{$ibforums->lang['fu_back']} :: {$ibforums->lang['fu_close_win']}
-
- -EOF; -} - - - -function emoticon_javascript() -{ -return << - - -EOF; -} - - -function page_header( $title, $row1, $row2 ) { -global $ibforums; -return << -
- - - - - - - - - - -EOF; - -} - -function emoticons_row($code, $image) { -global $ibforums; -return << - - - - - -EOF; - -} - -function page_footer() { - -return << - - -
$title
$row1$row2
$code$image
- -EOF; - -} - - - -} +base_url}act=legends&entry=$entry&name=$name&sep=$sep&CODE=finduser_two'> + + + + + + + + + + +
{$ibforums->lang['fu_title']}
{$ibforums->lang['fu_enter_name']}



{$ibforums->lang['fu_close_win']}
+ + +EOF; +} + + +function find_user_error($msg) { +global $ibforums; +return << + + + + + + + + + + +
{$ibforums->lang['fu_error']}
$msg
{$ibforums->lang['fu_back']} :: {$ibforums->lang['fu_close_win']}
+ + +EOF; +} + + +function find_user_final($names="",$entry="", $name="", $sep="line") { +global $ibforums; +return << + + + +
+ + + + + + + + + + +
{$ibforums->lang['fu_title']}
{$ibforums->lang['fu_add_desc']}



{$ibforums->lang['fu_back']} :: {$ibforums->lang['fu_close_win']}
+
+ +EOF; +} + + + +function emoticon_javascript() +{ +return << + + +EOF; +} + +function bbcode_header() { +global $ibforums; +return <<{$ibforums->lang['bbc_intro']} +
+EOF; +} + +function wrap_tag($tag) { +global $ibforums; +return <<$tag +EOF; +} + +function page_header( $title, $row1, $row2 ) { +global $ibforums; +return << +
$title
+ + + + + +EOF; +} + +function emoticons_row($code, $image, $in="'", $out="'") { +global $ibforums; +return << + + + +EOF; +} + +function bbcode_row($before, $after) { +global $ibforums; +return << + + + +EOF; + +} + +function page_footer() { + +return << + + +EOF; + +} + + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_login.php b/upload/Skin/s1/skin_login.php index 501c0ce1..d0660b13 100644 --- a/upload/Skin/s1/skin_login.php +++ b/upload/Skin/s1/skin_login.php @@ -1,129 +1,77 @@ - -
- - - -
$row1$row2
$code$image
$before$after
- -
- - - - - - - - -
{$ibforums->lang['log_out']}

{$ibforums->lang['log_out_txt']}
- -
-
- -EOF; -} - -function errors($data) { -global $ibforums; -return << -
- - - - -
{$ibforums->lang['errors_found']}
$data
-
-
-EOF; -} - -function ShowForm($message, $referer="") { -global $ibforums; -return << - - -
- - - - - - - -
{$ibforums->lang['login_text']}
{$ibforums->lang['forgot_pass']} vars['php_ext']}?act=Reg&CODE=10'>{$ibforums->lang['pass_link']}
-
- - - - - -
- - - - - - - - - - - - -
$message
{$ibforums->lang['enter_name']}
{$ibforums->lang['enter_pass']}
-
-
- - -
- - - - - - - - - - - - - -
{$ibforums->lang['options']}
{$ibforums->lang['cookies']}{$ibforums->lang['cookie_yes']}
{$ibforums->lang['cookie_no']}
{$ibforums->lang['privacy']}{$ibforums->lang['anon_name']}
- -
-
-
-EOF; -} - - -} + +
{$ibforums->lang['errors_found']}
+
$data
+ +
+EOF; +} + +function ShowForm($message, $referer="") { +global $ibforums; +return << + + +{$ibforums->lang['login_text']} +
+
+{$ibforums->lang['forgot_pass']} vars['php_ext']}?act=Reg&CODE=10'>{$ibforums->lang['pass_link']} +
+
+
+ +
+
<{CAT_IMG}> {$ibforums->lang['log_in']}
+
$message
+ + + + + + + + + +
{$ibforums->lang['enter_name']}
{$ibforums->lang['enter_pass']}
+
{$ibforums->lang['options']}
+ + + + + + + + + +
{$ibforums->lang['cookies']}{$ibforums->lang['cookie_yes']}
{$ibforums->lang['cookie_no']}
{$ibforums->lang['privacy']}{$ibforums->lang['anon_name']}
+
+
+
+EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_mlist.php b/upload/Skin/s1/skin_mlist.php index 3c2b86c3..9d10008e 100644 --- a/upload/Skin/s1/skin_mlist.php +++ b/upload/Skin/s1/skin_mlist.php @@ -1,128 +1,124 @@ - - - - - - - - -
{$links[SHOW_PAGES]}
- - - - - - - - - - -
-   -
- - - - - - - - - - - -EOF; -} - -function end($links) { -global $ibforums; -return << - - - -
{$ibforums->lang['member_name']}{$ibforums->lang['member_level']}{$ibforums->lang['member_group']}{$ibforums->lang['member_joined']}{$ibforums->lang['member_posts']}{$ibforums->lang['member_email']}{$ibforums->lang['member_aol']}{$ibforums->lang['member_icq']}
{$links[SHOW_PAGES]}
-EOF; -} - -function no_results() { -global $ibforums; -return << -EOF; -} - -function Page_end() { -global $ibforums; -return << - -
vars['php_ext']}?s={$ibforums->session_id};act=Members' method='POST'> - - -
-   
- {$ibforums->lang['sorting_text']} 
- - - -EOF; -} - -function show_row($member) { -global $ibforums; -return << - - {$member[MEMBER_NAME]} - {$member[MEMBER_PIPS_IMG]} - {$member[MEMBER_GROUP]} - {$member[MEMBER_JOINED]} - {$member[MEMBER_POSTS]} - {$member[MEMBER_EMAIL]} - {$member[AOLNAME]} - {$member[ICQNUMBER]} - - -EOF; -} - - -} + + + +
+ + +
{$links[SHOW_PAGES]}
+
+
+
{$ibforums->lang['page_title']}
+ + + + + + + + + + + + + +EOF; +} + +function end($links) { +global $ibforums; +return << +
{$links[SHOW_PAGES]}
+EOF; +} + +function no_results() { +global $ibforums; +return << +EOF; +} + +function Page_end($checked="") { +global $ibforums; +return << +
+ + + + + + + + +
{$ibforums->lang['member_name']}{$ibforums->lang['member_level']}{$ibforums->lang['member_group']}{$ibforums->lang['member_joined']}{$ibforums->lang['member_posts']}{$ibforums->lang['member_email']}{$ibforums->lang['member_aol']}{$ibforums->lang['member_icq']}{$ibforums->lang['member_photo']}
+ {$ibforums->lang['photo_only']}  +
+    +
+ {$ibforums->lang['sorting_text']}  +
+
+
+EOF; +} + +function show_row($member) { +global $ibforums; +return << + + {$member['name']} + {$member['pips']} + {$member['group']} + {$member['joined']} + {$member['posts']} + {$member['member_email']} + {$member['aim_name']} + {$member['icq_number']} + {$member['camera']} + + +EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_mod.php b/upload/Skin/s1/skin_mod.php index f981c667..d5a53322 100644 --- a/upload/Skin/s1/skin_mod.php +++ b/upload/Skin/s1/skin_mod.php @@ -1,773 +1,510 @@ -base_url}' method='POST'> - - - - - - - - - - - - - - + + + + + + + +
{$ibforums->lang['cp_mod_posts_title2']} $forumname -
$pages -
- - - - - -EOF; -} - - -function modpost_topicstart($forumname, $fid) { -global $ibforums; -return << - - - - - - - - - -EOF; -} - -function delete_js() { -global $ibforums; -return << - - - -EOF; -} - -function topictitle_fields($title, $desc) { -global $ibforums; -return << - - - - - - - - - -EOF; -} - -function poll_entry($id, $entry) { -global $ibforums; - -return << - - - - -EOF; - -} - - -function poll_select_form() { -global $ibforums; - -return << - - - - -EOF; - -} - - -function table_top($posting_title) { -global $ibforums; -return << -
$title
- - - - - - - - -EOF; -} - - - -function modtopics_start($pages,$forumname, $fid) { -global $ibforums; -return << - - - - - - - - - - -EOF; -} - - -function mod_topic_title($title, $topic_id) { -global $ibforums; -return << -
{$ibforums->lang['cp_mod_posts_title2']} $forumname -
- - - - - - - - -EOF; -} - -function modpost_topicentry($title, $tid, $replies, $fid) { -global $ibforums; -return << - - - - - - -EOF; -} - -function modpost_topicend() { -global $ibforums; -return << - - -
{$ibforums->lang['cp_3_title']}{$ibforums->lang['cp_3_replies']}{$ibforums->lang['cp_3_approveall']}{$ibforums->lang['cp_3_viewall']}
$title$replies{$ibforums->lang['cp_3_approveall']}{$ibforums->lang['cp_3_viewall']}
-
- - - - - -EOF; -} - -function modtopics_end() { -global $ibforums; -return << - - -
{$ibforums->lang['cp_mod_topics_title2']} $forumname -
$pages -
  {$ibforums->lang['cp_1_selected']}  
-
- - - - - -EOF; -} - - -function mod_postentry($data) { -global $ibforums; -return << - - - - - -EOF; -} - -function mod_postentry_checkbox($pid) { -global $ibforums; -return << - - - -EOF; -} - - -function mod_topic_spacer() { -global $ibforums; -return << - - - - - - -EOF; -} - -function results($text) { -global $ibforums; -return << - - - -EOF; -} - - -function prune_confirm($tcount, $count, $link, $link_text) { -global $ibforums; -return << - - - -EOF; -} - -function prune_splash($forum, $forums, $select) { -global $ibforums; -return << - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EOF; -} - - - - -function edit_user_form($profile) { -global $ibforums; -return << - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EOF; -} - - -function find_two($select) { -global $ibforums; -return << - - - - - - - - - - - - - - - - -EOF; -} - - -function find_user() { -global $ibforums; -return << - - - - - - - - - - - - - - - - -EOF; -} - - -function splash($tcount, $pcount, $forum) { -global $ibforums; -return << - - - - - - - - - -EOF; -} - - - - - - - -function mod_exp($words) { -global $ibforums; -return << - - - - -EOF; -} - -function end_form($action) { -global $ibforums; -return << -
   $title
{$data['member']['name']}

{$data['member']['avatar']}
{$data['member']['MEMBER_GROUP']}
{$data['member']['MEMBER_POSTS']}
{$data['member']['MEMBER_JOINED']}
- {$ibforums->lang['posted_on']} {$data['msg']['post_date']}

- - {$data['msg']['post']} - -
  {$ibforums->lang['cp_3_postno']} $pid
-   -
- - - - - - - -
{$ibforums->lang['cp_results']} -
$text
-
- - - - - - - - - - - - - - - -
{$ibforums->lang['cp_check_result']} -
{$ibforums->lang['cp_check_text']} -
{$ibforums->lang['cp_total_topics']}$tcount
{$ibforums->lang['cp_total_match']}$count
$link_text
-
{$ibforums->lang['cp_prune']} {$forum['name']}
{$ibforums->lang['cp_prune_text']}
{$ibforums->lang['cp_action']}
{$ibforums->lang['cp_prune_days']}
{$ibforums->lang['cp_prune_type']}$select
{$ibforums->lang['cp_prune_replies']}
{$ibforums->lang['cp_prune_member']}
{$ibforums->lang['cp_edit_user']}: {$profile['name']}
{$ibforums->lang['cp_remove_av']}
{$ibforums->lang['cp_edit_website']}
{$ibforums->lang['cp_edit_location']}
{$ibforums->lang['cp_edit_interests']}
{$ibforums->lang['cp_edit_signature']}
{$ibforums->lang['cp_edit_user']}
{$ibforums->lang['cp_find_2_user']}$select
{$ibforums->lang['cp_edit_user']}
{$ibforums->lang['cp_find_user']}
{$ibforums->lang['cp_welcome']}
{$ibforums->lang['cp_welcome_text']}
- - - - - - - - - - - - - -
{$ibforums->lang['cp_mod_in']}$forum
{$ibforums->lang['cp_topics_wait']}$tcount
{$ibforums->lang['cp_posts_wait']}$pcount
-
$words
- -
-
- - - -EOF; -} - -function move_form($jhtml, $forum_name) { -global $ibforums; -return << -
{$ibforums->lang[move_from]} $forum_name {$ibforums->lang[to]}:
{$ibforums->lang['leave_link']} - -
{$ibforums->lang[edit_f_title]}
{$ibforums->lang[edit_f_desc]}
{$ibforums->lang['pe_option']} $id
{$ibforums->lang['pe_pollonly']} $id
- - - - - - - - - - - - - - -EOF; -} - - - } // end class - + + + + + +
- - - - - - -EOF; -} - - -function topic_history($data) { -global $ibforums; -return << -
$posting_title
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{$ibforums->lang['th_title']}
{$ibforums->lang['th_topic']}{$data['th_topic']}
{$ibforums->lang['th_desc']}{$data['th_desc']}
{$ibforums->lang['th_start_date']}{$data['th_start_date']}
{$ibforums->lang['th_start_name']}{$data['th_start_name']}
{$ibforums->lang['th_last_date']}{$data['th_last_date']}
{$ibforums->lang['th_last_name']}{$data['th_last_name']}
{$ibforums->lang['th_avg_post']}{$data['th_avg_post']}
-
-EOF; -} - -function mod_log_start() { -global $ibforums; -return << - - - - - - - - - - - - - - -
- - - - - - - - - - -EOF; - -} - -function mod_log_none() { -global $ibforums; -return << - - - -EOF; - -} - -function mod_log_row($data) { -global $ibforums; -return << - - - - - -EOF; - -} - -function mod_log_end() { -global $ibforums; -return << - - -
{$ibforums->lang['ml_title']}
{$ibforums->lang['ml_name']}{$ibforums->lang['ml_desc']}{$ibforums->lang['ml_date']}
{$data['ml_none']}
{$data['member']}{$data['action']}{$data['date']}
- -EOF; - -} - -function forum_jump($data, $menu_extra="") { - -global $ibforums; -return << - - - - -
{$data}
-
-EOF; - -} - - - -function split_body($jump="") { -global $ibforums; -return << -
{$ibforums->lang['mt_new_title']}
{$ibforums->lang['mt_new_desc']}
{$ibforums->lang['st_forum']}
- - - - - - -EOF; -} - -function split_row($row) { -global $ibforums; -return << - - - - -EOF; -} - - -function split_end_form($action) { -global $ibforums; -return << - - -
{$ibforums->lang['st_post']}
{$row['st_top_bit']} -
-
{$row['post']} -
{$ibforums->lang['st_split']}  
-
- -
-
- - - -EOF; -} - -function merge_body($title="", $desc="") { -global $ibforums; -return << -
{$ibforums->lang['mt_new_title']}
{$ibforums->lang['mt_new_desc']}
{$ibforums->lang['mt_tid']}
$name$links
+
+
<{CAT_IMG}> {$ibforums->lang['w_v_title']}: $name
+
+ + + + + +EOF; +} + + +function warn_view_positive_row($date, $content, $puni_name) { +global $ibforums; +return << + + + + + + + +EOF; +} + +function warn_view_negative_row($date, $content, $puni_name) { +global $ibforums; +return << + + + + + + + +EOF; +} + + +function warn_view_none() { +global $ibforums; +return << + + +EOF; +} + +function warn_view_footer() { +global $ibforums; +return << +EOF; +} + + +function warn_success() { +global $ibforums; +return << +
<{CAT_IMG}> {$ibforums->lang['w_done_t']}
+
 
+
+ {$ibforums->lang['w_done_te']} + +
+ + +EOF; +} + +function warn_success_forum($fid, $fname, $tid, $tname, $st=0) { +global $ibforums; +return <<{$ibforums->lang['w_done_forum']} $fname +
  • {$ibforums->lang['w_done_topic']} $tname
  • +EOF; +} + +function warn_errors($data) { +global $ibforums; +return << +
    {$ibforums->lang['errors_found']}
    +
    $data
    + +
    +EOF; +} + +function warn_header($mid, $name, $cur=0, $min = 0, $max=10, $key, $tid='',$st='', $type) { +global $ibforums; +return << + +
    +
    <{CAT_IMG}> {$ibforums->lang['w_warnfor']} $name ( $min < $cur > $max )
    +
    {$ibforums->lang['w_complete']}
    +
    {$ibforums->lang['w_v_warnby']}{$ibforums->lang['w_v_notes']}
    $puni_name{$ibforums->lang['w_v_warned_on']} $date
    {$ibforums->lang['w_v_minus']}$content
    $puni_name{$ibforums->lang['w_v_warned_on']} $date
    {$ibforums->lang['w_v_add']}$content
    {$ibforums->lang['w_v_none']}
    + + + +EOF; +} + +function warn_mod_posts($mod_tick, $mod_array, $mod_extra) { +global $ibforums; +return << + + +EOF; +} + + +function warn_rem_posts($post_tick, $post_array, $post_extra) { +global $ibforums; +return << + + +EOF; +} + +function warn_suspend($susp_array, $susp_extra) { +global $ibforums; +return << + + +EOF; +} + +function warn_footer() { +global $ibforums; +return << + + + + + + + + + + + +
    {$ibforums->lang['w_adjust_level']} + +
    + +
    {$ibforums->lang['w_modq']} + {$ibforums->lang['w_modq_i']} +
    {$ibforums->lang['w_orfor']} + + $mod_extra +
    {$ibforums->lang['w_resposts']} + {$ibforums->lang['w_resposts_i']} +
    {$ibforums->lang['w_orfor']} + + $post_extra +
    {$ibforums->lang['w_suspend']} + {$ibforums->lang['w_susfor']} + $susp_extra +
    {$ibforums->lang['w_reason']}
    {$ibforums->lang['w_reason2']}
    {$ibforums->lang['w_c_subj']}
    {$ibforums->lang['w_contact']}
    {$ibforums->lang['w_contact2']}
    + {$ibforums->lang['w_c']}  +
    +
    +
    + + +EOF; +} + + +function warn_restricition_in_place() { +global $ibforums; +return <<{$ibforums->lang['w_restricted']} +EOF; +} + +function mod_exp($words) { +global $ibforums; +return <<$words +EOF; +} + +function end_form($action) { +global $ibforums; +return << + + +EOF; +} + +function move_form($jhtml, $forum_name) { +global $ibforums; +return << +
    {$ibforums->lang[move_from]} $forum_name {$ibforums->lang[to]}
    {$ibforums->lang['leave_link']}
    +EOF; +} + +function delete_js() { +global $ibforums; +return << + + + +EOF; +} + +function topictitle_fields($title, $desc) { +global $ibforums; +return << + + {$ibforums->lang[edit_f_title]} + + + + {$ibforums->lang[edit_f_desc]} + + + +EOF; +} + +function poll_edit_top() { +global $ibforums; + +return << +EOF; + +} + + +function poll_entry($id, $entry) { +global $ibforums; + +return << + {$ibforums->lang['pe_option']} $id + + + +EOF; + +} + +function poll_edit_new_entry($id) { +global $ibforums; + +return << + {$ibforums->lang['pe_option']} $id ( {$ibforums->lang['pe_unused']} ) + + + +EOF; + +} + +function poll_select_form($poll_question="") { +global $ibforums; + +return << + {$ibforums->lang['pe_question']} + + + + {$ibforums->lang['pe_pollonly']} + + + + +EOF; + +} + + +function table_top($posting_title) { +global $ibforums; +return << +
    $posting_title
    + +EOF; +} + + +function topic_history($data) { +global $ibforums; +return << +
    {$ibforums->lang['th_title']}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['th_topic']}{$data['th_topic']}
    {$ibforums->lang['th_desc']}{$data['th_desc']} 
    {$ibforums->lang['th_start_date']}{$data['th_start_date']}
    {$ibforums->lang['th_start_name']}{$data['th_start_name']}
    {$ibforums->lang['th_last_date']}{$data['th_last_date']}
    {$ibforums->lang['th_last_name']}{$data['th_last_name']}
    {$ibforums->lang['th_avg_post']}{$data['th_avg_post']}
    + + +EOF; +} + +function mod_log_start() { +global $ibforums; +return << +
    +
    {$ibforums->lang['ml_title']}
    + + + + + + + +EOF; + +} + +function mod_log_none() { +global $ibforums; +return << + + + +EOF; + +} + +function mod_log_row($data) { +global $ibforums; +return << + + + + + +EOF; + +} + +function mod_log_end() { +global $ibforums; +return << + +EOF; + +} + +function forum_jump($data, $menu_extra="") { + +global $ibforums; +return << +
    {$data}
    +
    +EOF; + +} + + + +function split_body($jump="") { +global $ibforums; +return << +
    + + + + + + + + + + + +
    {$ibforums->lang['ml_name']}{$ibforums->lang['ml_desc']}{$ibforums->lang['ml_date']}
    {$ibforums->lang['ml_none']}
    {$data['member']}{$data['action']}{$data['date']}
    {$ibforums->lang['mt_new_title']}
    {$ibforums->lang['mt_new_desc']}
    {$ibforums->lang['st_forum']}
    +
    +
    +
    +
    {$ibforums->lang['st_post']}
    + +EOF; +} + +function split_row($row) { +global $ibforums; +return <<{$row['st_top_bit']}
    +
    + {$row['post']} +
    {$ibforums->lang['st_split']}  
    +
    +EOF; +} + + +function split_end_form($action) { +global $ibforums; +return << + + + +EOF; +} + +function merge_body($title="", $desc="") { +global $ibforums; +return << + + {$ibforums->lang['mt_new_title']} + + + + {$ibforums->lang['mt_new_desc']} + + + + {$ibforums->lang['mt_tid']} + + + + +EOF; +} + + + } // end class + ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_modcp.php b/upload/Skin/s1/skin_modcp.php index 3e1d9b74..2670e2ce 100644 --- a/upload/Skin/s1/skin_modcp.php +++ b/upload/Skin/s1/skin_modcp.php @@ -1,880 +1,754 @@ -" align="center" border="0" cellspacing="1" cellpadding="0"> - - {$ibforums->lang['cp_modcp_ptitle']} - - - {$ibforums->lang['mod_opts']}: - {$ibforums->lang['menu_forums']} | - {$ibforums->lang['menu_users']} | - {$ibforums->lang['menu_ip']} - - -
    -EOF; -} - - -function modtopicview_start($tid,$forumname, $fid, $title) { -global $ibforums; -return << - - - - - - - - - - -
    {$ibforums->lang['cp_mod_posts_title2']} $forumname -
    $pages -
    - - - - - -EOF; -} - - -function modpost_topicstart($forumname, $fid) { -global $ibforums; -return << - - - -
    $title
    {$ibforums->lang['cp_mod_posts_title2']} $forumname -
    - - - - - - - - -EOF; -} - -function modpost_topicentry($title, $tid, $replies, $fid) { -global $ibforums; -return << - - - - - - -EOF; -} - -function modpost_topicend() { -global $ibforums; -return << - - -
    {$ibforums->lang['cp_3_title']}{$ibforums->lang['cp_3_replies']}{$ibforums->lang['cp_3_approveall']}{$ibforums->lang['cp_3_viewall']}
    $title$replies{$ibforums->lang['cp_3_approveall']}{$ibforums->lang['cp_3_viewall']}
    - -EOF; -} - - - -function modtopics_start($pages,$forumname, $fid) { -global $ibforums; -return << - - - - - - - - - -
    {$ibforums->lang['cp_mod_topics_title2']} $forumname -
    $pages -
    - -EOF; -} - -function modtopics_end() { -global $ibforums; -return << - - - - - - -EOF; -} - - -function mod_topic_title($title, $topic_id) { -global $ibforums; -return << - -    $title - - -EOF; -} - - -function mod_postentry($data) { -global $ibforums; -return << - {$data['member']['name']}

    {$data['member']['avatar']}
    {$data['member']['MEMBER_GROUP']}
    {$data['member']['MEMBER_POSTS']}
    {$data['member']['MEMBER_JOINED']}
    - - {$ibforums->lang['posted_on']} {$data['msg']['post_date']}

    - - {$data['msg']['post']} - - - - - -EOF; -} - -function mod_postentry_checkbox($pid) { -global $ibforums; -return << -   {$ibforums->lang['cp_3_postno']} $pid - - -EOF; -} - - -function mod_topic_spacer() { -global $ibforums; -return << -
    - -EOF; -} - -function results($text) { -global $ibforums; -return << - - - - - - - - -
    {$ibforums->lang['cp_results']} -
    $text
    - - - -EOF; -} - - -function prune_confirm($tcount, $count, $link, $link_text) { -global $ibforums; -return << - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['cp_check_result']} -
    {$ibforums->lang['cp_check_text']} -
    {$ibforums->lang['cp_total_topics']}$tcount
    {$ibforums->lang['cp_total_match']}$count
    $link_text
    - - - -
    - -EOF; -} - -function prune_splash($forum, $forums, $select) { -global $ibforums; -return << - - - - - - - - - - - - - - - -
    {$ibforums->lang['cp_prune']} {$forum['name']}
    {$ibforums->lang['cp_prune_text']}
    - -
    - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['cp_action']}
    {$ibforums->lang['cp_prune_days']}
    {$ibforums->lang['cp_prune_type']}$select
    {$ibforums->lang['cp_prune_replies']}
    {$ibforums->lang['cp_prune_member']}
    -
    - - -EOF; -} - - - - -function edit_user_form($profile) { -global $ibforums; -return << - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['cp_edit_user']}: {$profile['name']}
    {$ibforums->lang['cp_remove_av']}
    {$ibforums->lang['cp_edit_website']}
    {$ibforums->lang['cp_edit_location']}
    {$ibforums->lang['cp_edit_interests']}
    {$ibforums->lang['cp_edit_signature']}
    -
    - - -EOF; -} - - -function find_two($select) { -global $ibforums; -return << - - - - - - - -
    - - - - - - - - - - - -
    {$ibforums->lang['cp_edit_user']}
    {$ibforums->lang['cp_find_2_user']}$select
    -
    - - -EOF; -} - - -function find_user() { -global $ibforums; -return << - - - - - - - -
    - - - - - - - - - - - -
    {$ibforums->lang['cp_edit_user']}
    {$ibforums->lang['cp_find_user']}
    -
    - - -EOF; -} - -function ip_start_form($ip_addr) { -global $ibforums; -return << - - - - - - - -
    {$ibforums->lang['ip_desc_text']}

    {$ibforums->lang['ip_warn_text']}
    -
    - - - - -
    - - - - - - - - - - - -
    {$ibforums->lang['menu_ip']}
    {$ibforums->lang['ip_enter']} - . - . - . -   - -
    -
    - - -EOF; -} - -function ip_member_start($pages) { -global $ibforums; -return << - - $pages - - -
    - - - - - - - - - - - -EOF; -} - - - - - - - -function mod_exp($words) { -global $ibforums; -return << - - - - -EOF; -} - -function end_form($action) { -global $ibforums; -return << -
    - - - - - - - - - - - - -EOF; -} - -function ip_member_row($row) { -global $ibforums; -return << - - - - - - - -EOF; -} - -function ip_member_end($pages) { -global $ibforums; -return << - - -
    {$ibforums->lang['ipm_title']}
    {$ibforums->lang['ipm_name']}{$ibforums->lang['ipm_ip']}{$ibforums->lang['ipm_posts']}{$ibforums->lang['ipm_reg']}{$ibforums->lang['ipm_options']}
    {$row['name']}{$row['ip_address']}{$row['posts']}{$row['joined']}{$ibforums->lang['ipm_view']} - | {$ibforums->lang['ipm_edit']}
    - - - - -
    $pages
    - -EOF; -} - -function splash($tcount, $pcount, $forum) { -global $ibforums; -return << -
    {$ibforums->lang['cp_welcome']}
    {$ibforums->lang['cp_welcome_text']}
    - - - - - - - - - - - - - -
    {$ibforums->lang['cp_mod_in']}$forum
    {$ibforums->lang['cp_topics_wait']}$tcount
    {$ibforums->lang['cp_posts_wait']}$pcount
    -
    $words
    - -
    - - - - -EOF; -} - -function forum_row($info) { -global $ibforums; -return << - - {$info['folder_icon']} - {$info['name']}
    {$info['description']}
    {$info['moderator']} - {$info['q_topics']} - {$info['q_posts']} - {$info['last_post']}
    {$ibforums->lang['in']}: {$info['last_topic']}
    {$ibforums->lang['by']}: {$info['last_poster']} - - - -EOF; -} - -function forum_page_start() { -global $ibforums; -return << - - - - -
    - -EOF; -} - - -function cat_row($cat_name) { -global $ibforums; -return << - - - - - - - - - - -EOF; -} - -function forum_page_end() { -global $ibforums; -return << - - -
    $cat_name
     {$ibforums->lang['cat_name']}{$ibforums->lang['f_q_topics']}{$ibforums->lang['f_q_posts']}{$ibforums->lang['last_post_info']}{$ibforums->lang['f_select']}
    {$ibforums->lang['f_w_selected']} -   -
    -
    - -EOF; -} - -function mod_simple_page($title="",$msg="") { -global $ibforums; -return << - - $title - - - $msg - - - -EOF; -} - -function ip_post_results($uid="",$count="") { -global $ibforums; -return <<lang['ipp_found']} $count -
    -
    -{$ibforums->lang['ipp_click']} - -EOF; -} - -function start_topics($pages,$info) { -global $ibforums; -return << - - - - - - - -
    $pages
    - - - - - - - - - - - -
    - - - - - -
    {$info['name']} [ {$ibforums->lang['new_show_forum']} ]
    -
    - - - - - - - - - - - - -EOF; -} - -function show_no_topics() { -global $ibforums; -return << - - -EOF; -} - -function topic_row($Data) { -global $ibforums; -return << - - - - - - - - - - - -EOF; -} - -function topics_end($Data) { -global $ibforums; -return << - - - - - - -
    {$ibforums->lang['h_topic_title']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}{$ibforums->lang['f_select']}
    -
    - {$ibforums->lang['fv_no_topics']} -

    -
    {$Data['folder_img']}{$Data['topic_icon']} - {$Data['prefix']} vars['php_ext']}?act=ST&f={$Data['forum_id']}&t={$Data['tid']}&s={$ibforums->session_id}' class='linkthru' title='{$ibforums->lang['topic_started_on']} {$Data['start_date']}'>{$Data['title']} -
    {$Data['description']}
    {$Data['starter']}{$Data['posts']}{$Data['views']}{$Data['last_post']}
    {$Data['last_text']} {$Data['last_poster']}
    - - - - -
    - - - - -
    {$ibforums->lang['t_w_selected']} - -  
    -
    -
    -EOF; -} - -function move_checked_form_end($jump_html) { -global $ibforums; -return << -
    {$ibforums->lang['cp_tmove_to']}  
    - - - - -EOF; -} - -function move_checked_form_entry($tid, $title) { -global $ibforums; -return << - $title - - -EOF; -} - -function move_checked_form_start($forum_name, $fid) { -global $ibforums; -return << - - - + + +EOF; +} + + +function prune_confirm($tcount, $count, $link, $link_text, $key) { +global $ibforums; +return << +
    {$ibforums->lang['mpt_confirm']}
    +
    {$ibforums->lang['cp_check_result']}
    +
    - - - - -EOF; -} - -} - +------------------------------ + + +EOF; +} + + +function mm_entry($id, $title) { +global $ibforums; +return <<-- $title +EOF; +} + +function mm_end() { +global $ibforums; +return << + + +
    +EOF; +} + + +function modtopicview_start($tid,$forumname, $fid, $title) { +global $ibforums; +return << + + + + + +{$ibforums->lang['cp_mod_posts_title2']} $forumname +
    $pages + + +
    +
    $title
    + + +EOF; +} + + +function modpost_topicstart($forumname, $fid) { +global $ibforums; +return << +
    {$ibforums->lang['cp_mod_posts_title2']} $forumname
    +
    {$ibforums->lang['cp_tmove_start']} $forum_name
    + + + + + + + +EOF; +} + +function modpost_topicentry($title, $tid, $replies, $fid) { +global $ibforums; +return << + + + + + + +EOF; +} + +function modpost_topicend() { +global $ibforums; +return << + + +EOF; +} + + + +function modtopics_start($pages,$forumname, $fid) { +global $ibforums; +return << + + + + +{$ibforums->lang['cp_mod_topics_title2']} $forumname +
    $pages +EOF; +} + +function modtopics_end() { +global $ibforums; +return << +
    + + + +EOF; +} + + +function mod_topic_title($title, $topic_id) { +global $ibforums; +return << +
       $title
    + +EOF; +} + + +function mod_postentry($data) { +global $ibforums; +return << +
    + + + +
    {$ibforums->lang['cp_3_title']}{$ibforums->lang['cp_3_replies']}{$ibforums->lang['cp_3_approveall']}{$ibforums->lang['cp_3_viewall']}
    $title$replies{$ibforums->lang['cp_3_approveall']}{$ibforums->lang['cp_3_viewall']}
    {$data['member']['name']}

    {$data['member']['avatar']}
    {$data['member']['MEMBER_GROUP']}
    {$data['member']['MEMBER_POSTS']}
    {$data['member']['MEMBER_JOINED']}
    + {$ibforums->lang['posted_on']} {$data['msg']['post_date']}

    + + {$data['msg']['post']} + +
    + +EOF; +} + +function mod_postentry_checkbox($pid) { +global $ibforums; +return <<  {$ibforums->lang['cp_3_postno']} $pid +EOF; +} + + +function mod_topic_spacer() { +global $ibforums; +return << +
    + +EOF; +} + +function results($text) { +global $ibforums; +return << +
    + + + + + + + +
    {$ibforums->lang['cp_results']} +
    $text
    +
    + + + + + + + + +
    {$ibforums->lang['cp_total_topics']}$tcount
    {$ibforums->lang['cp_total_match']}$count
    +
    + +
    +
    + +
    + +EOF; +} + +function prune_splash($forum, $forums, $select) { +global $ibforums; +return << +
    +
    {$ibforums->lang['cp_prune']} {$forum['name']}
    +
    {$ibforums->lang['mpt_help']}
    +
    {$ibforums->lang['cp_prune_text']}
    +
    + + + + + +
    {$ibforums->lang['mpt_title']}
    + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['cp_action']}
    {$ibforums->lang['cp_prune_days']}
    {$ibforums->lang['cp_prune_type']}$select    
    {$ibforums->lang['cp_prune_replies']}
    {$ibforums->lang['cp_prune_member']}
    +
    +
    +
    + +EOF; +} + + + + +function edit_user_form($profile) { +global $ibforums; +return << +
    +
    {$ibforums->lang['cp_edit_user']}: {$profile['name']}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['cp_remove_av']}
    {$ibforums->lang['cp_remove_photo']}
    {$ibforums->lang['cp_edit_website']}
    {$ibforums->lang['cp_edit_location']}
    {$ibforums->lang['cp_edit_interests']}
    {$ibforums->lang['cp_edit_signature']}
    +
    +
    + + +EOF; +} + + +function find_two($select) { +global $ibforums; +return << +
    +
    {$ibforums->lang['cp_edit_user']}
    + + + + + +
    {$ibforums->lang['cp_find_2_user']}$select
    +
    +
    + +EOF; +} + + +function find_user() { +global $ibforums; +return << +
    +
    {$ibforums->lang['cp_edit_user']}
    + + + + + +
    {$ibforums->lang['cp_find_user']}
    +
    +
    + + +EOF; +} + +function ip_start_form($ip="") { +global $ibforums; +return << + + + +
    +
    {$ibforums->lang['menu_ip']}
    + + + + + +
    {$ibforums->lang['ip_enter']} + + +
    +
    +
    + +
    +
    +
    {$ibforums->lang['iph_title']}
    +
    {$ibforums->lang['ip_desc_text']}

    {$ibforums->lang['ip_warn_text']}
    +
    +EOF; +} + +function ip_member_start($pages) { +global $ibforums; +return <<$pages +
    +
    +
    {$ibforums->lang['ipm_title']}
    + + + + + + + + + +EOF; +} + +function ip_member_row($row) { +global $ibforums; +return << + + + + + + + +EOF; +} + +function ip_member_end($pages) { +global $ibforums; +return << + +
    +
    $pages
    +EOF; +} + +function splash($tcount, $pcount, $forum) { +global $ibforums; +return << +
    + + + + + + + + +EOF; +} + + + + + + + +function mod_exp($words) { +global $ibforums; +return << + + + + +EOF; +} + +function end_form($action) { +global $ibforums; +return << +
    {$ibforums->lang['ipm_name']}{$ibforums->lang['ipm_ip']}{$ibforums->lang['ipm_posts']}{$ibforums->lang['ipm_reg']}{$ibforums->lang['ipm_options']}
    {$row['name']}{$row['ip_address']}{$row['posts']}{$row['joined']}{$ibforums->lang['ipm_view']} + | {$ibforums->lang['ipm_edit']}
    {$ibforums->lang['cp_welcome']}
    {$ibforums->lang['cp_welcome_text']}
    + + + + + + + + + + + + + +
    {$ibforums->lang['cp_mod_in']}$forum
    {$ibforums->lang['cp_topics_wait']}$tcount
    {$ibforums->lang['cp_posts_wait']}$pcount
    +
    $words
    + +
    + + + + +EOF; +} + +function forum_row($info) { +global $ibforums; +return << + + {$info['folder_icon']} + {$info['name']}
    {$info['description']}
    {$info['moderator']} + {$info['q_topics']} + {$info['q_posts']} + {$info['last_post']}
    {$ibforums->lang['in']}: {$info['last_topic']}
    {$ibforums->lang['by']}: {$info['last_poster']} + {$info['select_button']} + + +EOF; +} + + +function subforum_row($info) { +global $ibforums; +return << + +   + {$info['folder_icon']} + {$info['name']}
    {$info['description']}
    {$info['moderator']} + {$info['q_topics']} + {$info['q_posts']} + {$info['last_post']}
    {$ibforums->lang['in']}: {$info['last_topic']}
    {$ibforums->lang['by']}: {$info['last_poster']} + + + +EOF; +} + +function forum_page_start() { +global $ibforums; +return << +
    + +EOF; +} + + +function cat_row($cat_name) { +global $ibforums; +return << + + + + + + + + + + +EOF; +} + +function forum_page_end() { +global $ibforums; +return << + + +
    $cat_name
     {$ibforums->lang['cat_name']}{$ibforums->lang['f_q_topics']}{$ibforums->lang['f_q_posts']}{$ibforums->lang['last_post_info']}{$ibforums->lang['f_select']}
    {$ibforums->lang['f_w_selected']} +   +
    +
    + +EOF; +} + +function mod_simple_page($title="",$msg="") { +global $ibforums; +return << +
    $title
    +
    $msg
    +
    + +EOF; +} + +function ip_post_results($uid="",$count="") { +global $ibforums; +return <<lang['ipp_found']} $count +
    +
    +{$ibforums->lang['ipp_click']} + +EOF; +} + +function start_topics($pages,$info) { +global $ibforums; +return << + + +
    + + +
    +
    + + + + + + + + + + + + + +EOF; +} + +function show_no_topics() { +global $ibforums; +return << + + +EOF; +} + +function topic_row($data) { +global $ibforums; +return << + + + + + + + + + + + +EOF; +} + +function topics_end($data) { +global $ibforums; +return << +
    + {$ibforums->lang['t_w_selected']} +   +
    + + + +EOF; +} + + + + +function move_checked_form_start($forum_name, $fid) { +global $ibforums; +return << +
    +
    {$ibforums->lang['cp_tmove_start']} $forum_name
    +
      {$ibforums->lang['h_topic_title']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}{$ibforums->lang['f_select']}
    +
    + {$ibforums->lang['fv_no_topics']} +

    +
    {$data['folder_img']}{$data['topic_icon']}{$data['prefix']} {$data['title']}
    {$data['description']}
    {$data['starter']}{$data['posts']}{$data['views']}{$data['last_post']}
    {$data['last_text']} {$data['last_poster']}
    +EOF; +} + +function move_checked_form_entry($tid, $title) { +global $ibforums; +return << + + + +EOF; +} + +function move_checked_form_end($jump_html) { +global $ibforums; +return << +
    {$ibforums->lang['cp_tmove_to']}  
    +
    + + +EOF; +} + +} + ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_msg.php b/upload/Skin/s1/skin_msg.php index 2add84be..eba39047 100644 --- a/upload/Skin/s1/skin_msg.php +++ b/upload/Skin/s1/skin_msg.php @@ -1,957 +1,983 @@ - -
    $title
    - - - -
    - - - - - - - -
    {$ibforums->lang['pm_preview']}
    $data
    -
    - - - - -EOF; -} - - -function pm_errors($data) { -global $ibforums; -return << - - - - -
    - - - - - - - -
    {$ibforums->lang['pme_title']}
    $data

    {$ibforums->lang['pme_none_sent']}
    -
    - - - - -EOF; -} - - - -function pm_popup($text, $mid) { -global $ibforums; -return << - - - - - - - - - - - - - -
    {$ibforums->lang['pmp_title']}
    $text
    - {$ibforums->lang['pmp_get_last']} -

    - {$ibforums->lang['pmp_go_inbox']} ( {$ibforums->lang['pmp_thiswindow']} )

    {$ibforums->lang['pmp_ignore']}
    -EOF; -} - -function archive_html_header() { -global $ibforums; -return << - - Private Message Archive - - -EOF; -} - -function archive_html_entry($info) { -global $ibforums; -return << - - - - - - - - - - - - -
    {$info['msg_title']}
    {$info['msg_content']}
    Sent by {$info['msg_sender']} on {$info['msg_date']}
    - - - -
    -EOF; -} - -function archive_html_footer() { -global $ibforums; -return << - -EOF; -} - -function archive_complete() { -global $ibforums; -return <<{$ibforums->lang['arc_comp_title']}
    {$ibforums->lang['arc_complete']} - -EOF; -} - -function archive_form($jump_html="") { -global $ibforums; -return <<{$ibforums->lang['archive_title']}
    {$ibforums->lang['archive_text']} - - - -
    - - - - - - - {$ibforums->lang['arc_folders']} - $jump_html - - - {$ibforums->lang['arc_dateline']} -   {$ibforums->lang['arc_days']} - - - {$ibforums->lang['arc_max']} - - - - {$ibforums->lang['arc_delete']} - - - - {$ibforums->lang['arc_type']} - - - - - -
    -EOF; -} - -function No_msg_inbox() { -global $ibforums; -return << - {$ibforums->lang['inbox_no_msg']} - -EOF; -} - -function prefs_add_dirs() { -global $ibforums; -return << - {$ibforums->lang['prefs_new']} - - - {$ibforums->lang['prefs_text_b']} - -EOF; -} - -function end_address_table() { -global $ibforums; -return << -EOF; -} - -function Address_header() { -global $ibforums; -return <<{$ibforums->lang['address_current']} - -EOF; -} - -function Address_none() { -global $ibforums; -return << - {$ibforums->lang['address_none']} - -EOF; -} - -function address_edit($data) { -global $ibforums; -return <<{$ibforums->lang['member_edit']} - - - - - - - - - - - - - - - - - - -
    {$data[MEMBER]['contact_name']}{$ibforums->lang['enter_desc']}
    {$ibforums->lang['allow_msg']}
    {$data[SELECT]}
    - - -EOF; -} - -function render_address_row($entry) { -global $ibforums; -return << - vars['php_ext']}?s={$ibforums->session_id}&act=Profile&CODE=03&MID={$entry['contact_id']}'>{$entry['contact_name']}    [ {$entry['contact_desc']} ] - - [ vars['php_ext']}?s={$ibforums->session_id}&act=Msg&CODE=11&MID={$entry['contact_id']}' class='misc'>{$ibforums->lang['edit']} ] :: [ vars['php_ext']}?s={$ibforums->session_id}&act=Msg&CODE=10&MID={$entry['contact_id']}'>{$ibforums->lang['delete']} ] -   ( {$entry['text']} ) - - -EOF; -} - -function address_add($mem_to_add) { -global $ibforums; -return << - {$ibforums->lang['member_add']} - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['enter_a_name']}
    {$ibforums->lang['enter_desc']}
    {$ibforums->lang['allow_msg']}
    - - -EOF; -} - -function prefs_footer() { -global $ibforums; -return << - - -EOF; -} - -function prefs_row($data) { -global $ibforums; -return << - {$data[EXTRA]} - -EOF; -} - -function Address_table_header() { -global $ibforums; -return << - - - - - - -EOF; -} - -function Render_msg($data) { -global $ibforums; -return << - - - - - - - - - - - - - - - -EOF; -} - -function trackread_table_header() { -global $ibforums; -return << - - -
    -
    - - - - - -EOF; -} - - - - - - - -function trackUNread_table_header() { -global $ibforums; -return << - - - - - - -EOF; -} - - - - -function unsent_table_header() { -global $ibforums; -return << - - -
    -
    - - - - - -EOF; -} - -function inbox_table_header($dirname, $info, $vdi_html="") { -global $ibforums; -return << - - - - - - - - - - - - - - - -EOF; -} - -function send_form_footer() { -global $ibforums; -return << - - - - - - - - - - -EOF; -} - -function Send_form($data) { -global $ibforums; -return << - - -
    - - - - - - -
    - - - - - - - - - - - -EOF; -} - - - -function mass_pm_box($names="") { -global $ibforums; -return << - - - - - - -EOF; -} - - - -function prefs_header() { -global $ibforums; -return <<{$ibforums->lang['prefs_current']} - - - - - - - - -EOF; -} - - -} +{$ibforums->lang['pm_preview']} +

    $data

    +EOF; +} + + +function pm_errors($data) { +global $ibforums; +return <<{$ibforums->lang['err_errors']} +

    $data

    {$ibforums->lang['pme_none_sent']}

    +EOF; +} + + + +function pm_popup($text, $mid) { +global $ibforums; +return << + + + +
    {$ibforums->lang['member_name']}{$ibforums->lang['enter_block']}
    {$data['msg']['title']}
    {$data['msg']['msg_date']}
    - [ {$ibforums->lang['vm_forward_pm']} | {$ibforums->lang['pm_reply_link']} ] -
    - - - - -
    - - - - - - - - - - - - - -
    {$ibforums->lang['author']} - - - - - -
    {$ibforums->lang['m_pmessage']}[ {$ibforums->lang['vm_delete_pm']} ]
    -
    {$data['member']['name']}
    {$data['member']['avatar']}
    {$data['member']['title']}
    {$data['member']['MEMBER_GROUP']}
    {$data['member']['MEMBER_POSTS']}
    {$data['member']['MEMBER_JOINED']}
    - - {$data['msg']['message']} - {$data['member']['signature']} - -
    [ {$ibforums->lang['add_to_book']} ]{$data['member']['MESSAGE_ICON']}{$data['member']['EMAIL_ICON']}{$data['member']['WEBSITE_ICON']}{$data['member']['ICQ_ICON']}{$data['member']['AOL_ICON']}{$data['member']['YAHOO_ICON']}
    -
    -
    -
    - - - - {$ibforums->lang[goto_folder]}:  {$data['jump']} - - -
    - [ {$ibforums->lang['vm_forward_pm']} | {$ibforums->lang['pm_reply_link']} ] -
    {$ibforums->lang['tk_read_messages']}
    {$ibforums->lang['tk_read_desc']}
    - - - - - - - - -EOF; -} - -function trackread_row($data) { -global $ibforums; -return << - - - - - - -EOF; -} - -function trackread_end() { -global $ibforums; -return << - - -
     {$ibforums->lang['message_title']}{$ibforums->lang['pms_message_to']}{$ibforums->lang['tk_read_date']}
    {$data['icon']}{$data['title']}{$data['to_name']}{$data['date']}
    {$ibforums->lang['selected_msg']}
    - -
    {$ibforums->lang['tk_unread_messages']}
    {$ibforums->lang['tk_unread_desc']}
    - - - - - - - - -EOF; -} - -function trackUNread_row($data) { -global $ibforums; -return << - - - - - - -EOF; -} - -function trackUNread_end() { -global $ibforums; -return << - - -
     {$ibforums->lang['message_title']}{$ibforums->lang['pms_message_to']}{$ibforums->lang['tk_unread_date']}
    {$data['icon']}{$data['title']}{$data['to_name']}{$data['date']}
    {$ibforums->lang['selected_msg']}
    - -
    {$ibforums->lang['pms_saved_title']}
    - - - - - - - - - -EOF; -} - - -function unsent_row($data) { -global $ibforums; -return << - - - - - - - -EOF; -} - -function unsent_end() { -global $ibforums; -return << - - -
     {$ibforums->lang['message_title']}{$ibforums->lang['pms_message_to']}{$ibforums->lang['pms_saved_date']}{$ibforums->lang['pms_cc_users']}
    {$data['msg']['icon']}{$data['msg']['title']}{$data['msg']['to_name']}{$data['msg']['date']}{$data['msg']['cc_users']}
    {$ibforums->lang['selected_msg']}
    - -
    $dirname
    - - - - - - -
    - -
    - - - - -
    - - - - - - - - - - - - -
    {$info['full_messenger']}
    0%50%100%
    -
    -
    - {$ibforums->lang['pmpc_mark_read']} :: {$ibforums->lang['pmpc_unmark_all']}

    -
    - {$ibforums->lang['goto_folder']}:   $vdi_html -
    -
    -
    -
    - - - - - - - - -EOF; -} - -function inbox_row($data) { -global $ibforums; -return << - - - - - - -EOF; -} - -function end_inbox($vdi_html, $amount_info="") { -global $ibforums; -return << - - -
     {$ibforums->lang['message_title']}{$ibforums->lang['message_from']}{$ibforums->lang['message_date']}
    {$data['msg']['icon']}vars['php_ext']}?s={$ibforums->session_id}&act=Msg&CODE=03&VID={$data['stat']['current_id']}&MSID={$data['msg']['msg_id']}'>{$data['msg']['title']}vars['php_ext']}?s={$ibforums->session_id}&act=Profile&MID={$data['msg']['from_id']}'>{$data['msg']['from_name']} {$data['msg']['add_to_contacts']}{$data['msg']['date']}
    - $vdi_html {$ibforums->lang['move_or_delete']} {$ibforums->lang['selected_msg']} -
    -
    -
    - <{M_READ}> {$ibforums->lang['icon_read']} -  <{M_UNREAD}> {$ibforums->lang['icon_unread']} - $amount_info
    {$ibforums->lang['msg_options']}
      -  {$ibforums->lang['auto_sent_add']} -
     {$ibforums->lang['vm_track_msg']} -
    - - - -
    - - - - - - - - - - - - - -
    {$ibforums->lang['to_whom']}
    {$ibforums->lang['address_list']}{$data[CONTACTS]}
    {$ibforums->lang['enter_name']}
    -
     
    {$ibforums->lang['enter_message']}
    {$ibforums->lang['msg_title']}
    {$ibforums->lang['carbon_copy_title']}
    {$ibforums->lang['carbon_copy_desc']} - - - - - -
    - -
    -
    {$ibforums->lang['prefs_text_a']}
    + + + + + + + + + +
    {$ibforums->lang['pmp_title']}
    $text
    + {$ibforums->lang['pmp_get_last']} +

    + {$ibforums->lang['pmp_go_inbox']} ( {$ibforums->lang['pmp_thiswindow']} )

    {$ibforums->lang['pmp_ignore']}
    +EOF; +} + +function archive_html_header() { +global $ibforums; +return << + + Private Message Archive + + + +
    +EOF; +} + +function archive_html_entry($info) { +global $ibforums; +return << +
    PM PM: {$info['msg_title']}
    +
    {$info['msg_content']}
    +
    Sent by {$info['msg_sender']} on {$info['msg_date']}
    +
    +
    +EOF; +} + +function archive_html_entry_sent($info) { +global $ibforums; +return << +
    PM PM: {$info['msg_title']}
    +
    {$info['msg_content']}
    +
    Sent to {$info['msg_sender']} on {$info['msg_date']}
    +
    +
    +EOF; +} + +function archive_html_footer() { +global $ibforums; +return << + + +EOF; +} + +function archive_complete() { +global $ibforums; +return <<{$ibforums->lang['arc_comp_title']} +

    {$ibforums->lang['arc_complete']}

    +EOF; +} + +function archive_form($jump_html="") { +global $ibforums; +return << + + +
    {$ibforums->lang['archive_title']}
    +

    {$ibforums->lang['archive_text']}

    + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['arc_folders']}$jump_html
    {$ibforums->lang['arc_dateline']}  {$ibforums->lang['arc_days']} + +
    {$ibforums->lang['arc_max']}
    {$ibforums->lang['arc_delete']}
    {$ibforums->lang['arc_type']}
    +
    + +EOF; +} + +function No_msg_inbox() { +global $ibforums; +return << + {$ibforums->lang['inbox_no_msg']} + +EOF; +} + +function empty_folder_header() { +global $ibforums; +return << + + +
    {$ibforums->lang['mi_prune_msg']}
    +

    {$ibforums->lang['fd_text']}

    +
    + + + + + + +EOF; +} + +function empty_folder_row($real, $id, $cnt) { +global $ibforums; +return << + + + + +EOF; +} + +function empty_folder_save_unread() { +global $ibforums; +return << + + +EOF; +} + +function empty_folder_footer() { +global $ibforums; +return << +
    + + +EOF; +} + +function prefs_header() { +global $ibforums; +return << + + +
    {$ibforums->lang['prefs_current']}
    +

    {$ibforums->lang['prefs_text_a']}

    +EOF; +} + + +function prefs_row($data) { +global $ibforums; +return <<{$data[EXTRA]}

    +EOF; +} + +function prefs_add_dirs() { +global $ibforums; +return <<{$ibforums->lang['prefs_new']} +

    {$ibforums->lang['prefs_text_b']}

    + +EOF; +} + +function prefs_footer() { +global $ibforums; +return << + +EOF; +} + + + +function Address_header() { +global $ibforums; +return <<{$ibforums->lang['address_current']} +EOF; +} + +function Address_table_header() { +global $ibforums; +return << +
    +
    {$ibforums->lang['fd_name']}{$ibforums->lang['fd_count']}{$ibforums->lang['fd_empty']}
    $real$cnt
    {$ibforums->lang['fd_save_unread']}
    + + + + +EOF; +} + + +function render_address_row($entry) { +global $ibforums; +return << + + + +EOF; +} + + +function Address_none() { +global $ibforums; +return <<{$ibforums->lang['address_none']}

    +EOF; +} + +function end_address_table() { +global $ibforums; +return << + +
    +EOF; +} + +function address_edit($data) { +global $ibforums; +return << + + + +
    {$ibforums->lang['member_edit']}
    +
    {$ibforums->lang['member_name']}{$ibforums->lang['enter_block']}
    {$entry['contact_name']}    [ {$entry['contact_desc']} ] + [ {$ibforums->lang['edit']} ] :: [ {$ibforums->lang['delete']} ] +   ( {$entry['text']} ) +
    + + + + + +
    {$data[MEMBER]['contact_name']}{$ibforums->lang['enter_desc']}
    {$ibforums->lang['allow_msg']}
    {$data[SELECT]}
    +
    + +EOF; +} + + + +function address_add($mem_to_add) { +global $ibforums; +return << + + +
    {$ibforums->lang['member_add']}
    + + + + + + +
    {$ibforums->lang['enter_a_name']}
    {$ibforums->lang['enter_desc']}
    {$ibforums->lang['allow_msg']}
    +
    + +EOF; +} + + + + + +function Render_msg($data) { +global $ibforums; +return << + + +
    {$data['msg']['title']}
    + +
    +
      {$ibforums->lang['m_pmessage']}
    + + + + + + + + + + + + + +
    {$data['member']['name']} + + + +
    + {$data[POST]['post_icon']}{$data['msg']['title']}, {$data['msg']['msg_date']} +
    + + + + + +
    + + {$data['member']['avatar']} +
    {$data['member']['title']} +
    {$data['member']['member_rank_img']}
    +
    {$data['member']['member_group']} +
    {$data['member']['member_posts']} +
    {$data['member']['member_joined']} +
    +
    +
    +
    {$data['msg']['message']}{$data['member']['signature']}
    [ {$ibforums->lang['add_to_book']} ] + + + +
    + {$data['member']['addresscard']}{$data['member']['message_icon']}{$data['member']['email_icon']}{$data['member']['website_icon']}{$data['member']['integ_icon']}{$data['member']['icq_icon']}{$data['member']['aol_icon']}{$data['member']['yahoo_icon']}{$data['member']['msn_icon']} +
    + + + +
    Top
    +
    +
    +
    +
    + + +{$ibforums->lang[goto_folder]}:  {$data['jump']} + +
    +
    + + +EOF; +} + +function trackread_table_header() { +global $ibforums; +return << + + +
    +
    {$ibforums->lang['tk_read_messages']}
    +

    {$ibforums->lang['tk_read_desc']}

    +
    + + + + + + + + +EOF; +} + +function trackread_row($data) { +global $ibforums; +return << + + + + + + +EOF; +} + +function trackread_end() { +global $ibforums; +return << + + +
     {$ibforums->lang['message_title']}{$ibforums->lang['pms_message_to']}{$ibforums->lang['tk_read_date']}
    {$data['icon']}{$data['title']}{$data['to_name']}{$data['date']}
    {$ibforums->lang['selected_msg']}
    +
    +
    +
    +EOF; +} + + + + + + + +function trackUNread_table_header() { +global $ibforums; +return << +
    {$ibforums->lang['tk_unread_messages']}
    +

    {$ibforums->lang['tk_unread_desc']}

    +
    + + + + + + + +EOF; +} + +function trackUNread_row($data) { +global $ibforums; +return << + + + + + + +EOF; +} + +function trackUNread_end() { +global $ibforums; +return << + + +
      + {$ibforums->lang['message_title']}{$ibforums->lang['pms_message_to']}{$ibforums->lang['tk_unread_date']}
    {$data['icon']}{$data['title']}{$data['to_name']}{$data['date']}
    {$ibforums->lang['selected_msg']}
    +
    + + +EOF; +} + + + + +function unsent_table_header() { +global $ibforums; +return << + + + +
    +
    {$ibforums->lang['pms_saved_title']}
    +
    +
    + + + + + + + + +EOF; +} + + +function unsent_row($data) { +global $ibforums; +return << + + + + + + + +EOF; +} + +function unsent_end() { +global $ibforums; +return << + + +
      + {$ibforums->lang['message_title']}{$ibforums->lang['pms_message_to']}{$ibforums->lang['pms_saved_date']}{$ibforums->lang['pms_cc_users']}
    {$data['msg']['icon']}{$data['msg']['title']}{$data['msg']['to_name']}{$data['msg']['date']}{$data['msg']['cc_users']}
    {$ibforums->lang['selected_msg']}
    +
    +
    + +EOF; +} + +function inbox_table_header($dirname, $info, $vdi_html="", $pages="") { +global $ibforums; +return << + +
    $dirname
    + + + + + + +
    + + + + + + + + + + + + + +
    {$info['full_messenger']}
    0%50%100%
    +
    + $pages

    + {$ibforums->lang['pmpc_mark_read']} :: {$ibforums->lang['pmpc_unmark_all']}

    +
    + {$ibforums->lang['goto_folder']}:   $vdi_html +
    +
    + + + +
    +
    + + + + + + + + +EOF; +} + +function inbox_row($data) { +global $ibforums; +return << + + + + + + +EOF; +} + +function end_inbox($vdi_html, $amount_info="", $pages="") { +global $ibforums; +return << + + +
     input['st']}'>{$ibforums->lang['message_title']}input['st']}'>{$ibforums->lang['message_from']}input['st']}'>{$ibforums->lang['message_date']}
    {$data['msg']['icon']}{$data['msg']['title']}{$data['msg']['from_name']} {$data['msg']['add_to_contacts']}{$data['msg']['date']}
    + $vdi_html {$ibforums->lang['move_or_delete']} {$ibforums->lang['selected_msg']} +
    +
    +
    +
    <{M_READ}> {$ibforums->lang['icon_read']}
    <{M_UNREAD}> {$ibforums->lang['icon_unread']}
    +
    $pages
    $amount_info
    +EOF; +} + +function send_form_footer() { +global $ibforums; +return << + {$ibforums->lang['msg_options']} + + +   + +  {$ibforums->lang['auto_sent_add']} +
     {$ibforums->lang['vm_track_msg']} + + + + + + + + + + + +EOF; +} + +function Send_form($data) { +global $ibforums; +return << + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +EOF; +} + + + +function mass_pm_box($names="") { +global $ibforums; +return << + + + + + + +EOF; +} + + + + + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_online.php b/upload/Skin/s1/skin_online.php index 2451f632..2945e266 100644 --- a/upload/Skin/s1/skin_online.php +++ b/upload/Skin/s1/skin_online.php @@ -1,98 +1,82 @@ - -
    {$ibforums->lang['to_whom']}
    {$ibforums->lang['address_list']}{$data[CONTACTS]} 
    {$ibforums->lang['enter_name']}
    {$ibforums->lang['enter_message']}
    {$ibforums->lang['msg_title']}
    {$ibforums->lang['carbon_copy_title']}
    {$ibforums->lang['carbon_copy_desc']} +
    + +
    - - - -
    {$links[SHOW_PAGES]}
    -EOF; -} - -function show_row($session) { -global $ibforums; -return << - - {$session['member_name']} - {$session['where_line']} - {$session['running_time']} - {$session['msg_icon']} - - -EOF; -} - -function Page_end($links) { -global $ibforums; -return << - -   - - - - - -
    - - - - -
    $links
    -EOF; -} - -function Page_header($links) { -global $ibforums; -return << - - - - - - - - -
    $links
    -
    - - - - - - - - - -
    - - - - - - - -EOF; -} - - -} + + + + + + + + +EOF; +} + +function Page_end($show_mem, $sort_order, $sort_key, $links) { +global $ibforums; +return << + + + +
    {$ibforums->lang['member_name']}{$ibforums->lang['where']}{$ibforums->lang['time']} 
    {$session['member_name']}{$session['where_line']}{$session['running_time']}{$session['msg_icon']}
    + + {$ibforums->lang['s_by']}  + + + + + +
    + +
    +
    $links
    +EOF; +} + +function Page_header($links) { +global $ibforums; +return << + + + +
    $links
    +
    +
    +
      {$ibforums->lang['page_title']}
    + + + + + + + +EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_poll.php b/upload/Skin/s1/skin_poll.php index 4dfb81a7..4117d57f 100644 --- a/upload/Skin/s1/skin_poll.php +++ b/upload/Skin/s1/skin_poll.php @@ -1,100 +1,120 @@ -base_url}&act=Mod&CODE=20&f=$fid&t=$tid">{$ibforums->lang['ba_edit']} ] -EOF; -} - -function delete_link($tid, $fid) { -global $ibforums; -return <<{$ibforums->lang['ba_delete']} ] -EOF; -} - -function Render_row_form($votes, $id, $answer) { -global $ibforums; -return << - - -EOF; -} - -function ShowPoll_header($tid, $poll_q, $edit, $delete) { -global $ibforums; -return << - - - - -
    {$ibforums->lang['member_name']}{$ibforums->lang['where']}{$ibforums->lang['time']} 
     $answer
    - - - - - - - -
    $edit   $delete
    - - - - -EOF; -} - -function ShowPoll_Form_header($tid, $poll_q, $edit, $delete) { -global $ibforums; -return << - - - - - - - -EOF; -} - - -} + +function go_gadget_show() +{ + window.location = "{$ibforums->base_url}&act=ST&f=$fid&t=$tid&mode=show&st={$ibforums->input['start']}"; +} +function go_gadget_vote() +{ + window.location = "{$ibforums->base_url}&act=ST&f=$fid&t=$tid&st={$ibforums->input['start']}"; +} + +EOF; +} + +function button_vote() { +global $ibforums; +return << +EOF; +} + +function button_null_vote() { +global $ibforums; +return << +EOF; +} + +function button_show_results() { +global $ibforums; +return << +EOF; +} + +function button_show_voteable() { +global $ibforums; +return << +EOF; +} + +function edit_link($tid, $fid, $key="") { +global $ibforums; +return <<{$ibforums->lang['ba_edit']} ] +EOF; +} + +function delete_link($tid, $fid, $key="") { +global $ibforums; +return <<{$ibforums->lang['ba_delete']} ] +EOF; +} + +function Render_row_form($votes, $id, $answer) { +global $ibforums; +return << + + +EOF; +} + + +function poll_header($tid, $poll_q, $edit, $delete) { +global $ibforums; +return << +
    +
    $edit   $delete
    +
    +
    $poll_q
    - - - - - -
    $edit   $delete
    - - - - -EOF; -} - -function ShowPoll_footer($vote_button) { -global $ibforums; -return << - - -
    $poll_q
    - $vote_button -
    -
    -
    -
    - -EOF; -} - -function Render_row_results($votes, $id, $answer, $percentage, $width) { -global $ibforums; -return << - $answer [ $votes ]  [$percentage%]
     $answer
    + + + +EOF; +} + +function ShowPoll_footer() { +global $ibforums; +return << + +
     
    + + +EOF; +} + +function Render_row_results($votes, $id, $answer, $percentage, $width) { +global $ibforums; +return << +
    + + + +EOF; +} + +function show_total_votes($total_votes) { +global $ibforums; +return << + + +EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_post.php b/upload/Skin/s1/skin_post.php index 362d9609..30fa01ee 100644 --- a/upload/Skin/s1/skin_post.php +++ b/upload/Skin/s1/skin_post.php @@ -1,772 +1,623 @@ - - - - - - - - - - -EOF; -} - - -function add_edit_box($checked="") { -global $ibforums; -return << - - - -EOF; -} - -function table_top($data) { -global $ibforums; -return << - - -
    $poll_q
    $answer [ $votes ]  [$percentage%]
    {$ibforums->lang['pv_total_votes']}: $total_votes
    {$ibforums->lang['edit_ops']} {$ibforums->lang['append_edit']}
    - - - - - - - -
    -   -
    - - - - -EOF; -} - -function calendar_start_form() { -global $ibforums; -return << -EOF; -} - -function calendar_start_edit_form($eventid) { -global $ibforums; -return << -EOF; -} - - - -function calendar_event_title($data="") { -global $ibforums; -return << - - - -EOF; -} - -function calendar_delete_box() { -global $ibforums; -return << - - -EOF; -} - -function calendar_choose_date($days, $months, $years) { -global $ibforums; -return << - - - -EOF; -} - -function calendar_event_type($pub_select="", $priv_select="") { -global $ibforums; -return << - - - -EOF; -} - -function calendar_admin_group_box($groups) { -global $ibforums; -return << - - - -EOF; -} - - - - - -function calendar_end_form($data) { -global $ibforums; -return << - - -
    $data
    {$ibforums->lang['calendar_title']}
     {$ibforums->lang['calendar_delete_box']}
    {$ibforums->lang['calendar_event_date']}    
    {$ibforums->lang['calendar_event_type']}
    {$ibforums->lang['calendar_group_filter']}
    -
    -EOF; -} - - - - - - - -function EndForm($data) { -global $ibforums; -return << -
      -
    -
    -EOF; -} - -function smilie_table() { -global $ibforums; -return << -
    {$ibforums->lang['click_smilie']}
    {$ibforums->lang['all_emoticons']}
    -EOF; -} - -function TopicSummary_bottom() { -global $ibforums; -return << - - {$ibforums->lang['review_topic']} - - - - - - -EOF; -} - -function PostIcons() { -global $ibforums; -return << - {$ibforums->lang['post_icon']} - -                                    
    -                                     -
    -   [ Use None ] - - -EOF; -} - -function errors($data) { -global $ibforums; -return << - - - - - - -
    {$ibforums->lang['errors_found']}
    $data
    - - - -
    -EOF; -} - -function Upload_field($data) { -global $ibforums; -return << - {$ibforums->lang['upload_title']} - - - {$ibforums->lang['upload_text']} $data - - -EOF; -} - -function edit_upload_field($data, $file_name="") { -global $ibforums; -return << - {$ibforums->lang['upload_title']} - - - {$ibforums->lang['upload_text']} $data - - - - - - - - - - - - - - -
    {$ibforums->lang['eu_keep']} ( $file_name )
    {$ibforums->lang['eu_delete']}
    {$ibforums->lang['eu_new']}
    - - -EOF; -} - - -function topictitle_fields($data) { -global $ibforums; -return << - {$ibforums->lang['tt_topic_settings']} - - - {$ibforums->lang['topic_title']} - - - - {$ibforums->lang['topic_desc']} - - -EOF; -} - -function TopicSummary_body($data) { -global $ibforums; -return << - {$data['author']} - {$ibforums->lang['posted_on']} {$data['date']}
    {$data['post']} - -EOF; -} - -function preview($data) { -global $ibforums; -return << - - - - - - -
    {$ibforums->lang['post_preview']}
    $data
    - - - -
    -EOF; -} - -function TopicSummary_top() { -global $ibforums; -return << - -
    - - - + + + + + + + + + + + + +EOF; +} + + +function postbox_buttons($data) { +global $ibforums; +return << + + + + + + + + + + + + + + + + + +EOF; +} + + +function get_box_enableemo($checked) { +global $ibforums; +return << {$ibforums->lang['enable_emo']} +EOF; +} + +function get_box_enablesig($checked) { +global $ibforums; +return << {$ibforums->lang['enable_sig']} +EOF; +} + +function get_box_enabletrack($checked) { +global $ibforums; +return << {$ibforums->lang['enable_track']} +EOF; +} + +function get_box_alreadytrack() { +global $ibforums; +return <<{$ibforums->lang['already_sub']} +EOF; +} + + +function get_javascript() { +global $ibforums; +return << + + + + +EOF; +} + + +function nameField_reg() { +global $ibforums; +return << +EOF; +} + + +function mod_options($jump) { +global $ibforums; +return << + + + + + + + +EOF; +} + + +function quote_box($data) { +global $ibforums; +return << + + + + + + + +EOF; +} + + +function TopicSummary_top() { +global $ibforums; +return << +
    +
    {$ibforums->lang['last_posts']}
    +
    - - - - - -EOF; -} - -function nameField_reg() { -global $ibforums; -return << -EOF; -} - -function mod_options($jump) { -global $ibforums; -return << - - - - - - -EOF; -} - -function quote_box($data) { -global $ibforums; -return << - - - - - - -EOF; -} - -function postbox_buttons($data) { -global $ibforums; -return << - - - - - - - - - - - - - - - - - -EOF; -} - -function pm_postbox_buttons($data) { -global $ibforums; -return << - - - - - - - - - - - - - - - - - -EOF; -} - -function nameField_unreg($data) { -global $ibforums; -return << - - - - - - -EOF; -} - -function poll_box($data, $extra="") { -global $ibforums; -return << - - - - - - - - - - -EOF; -} - - -} + + + + + + + + +EOF; +} + + +function poll_box($data, $extra="") { +global $ibforums; +return << + + + + + + + + + + + +EOF; +} + +function poll_options() { +global $ibforums; +return << {$ibforums->lang['poll_only']} +EOF; +} + +function poll_end_form($data) { +global $ibforums; +return << + + +
    {$ibforums->lang['last_posts']}
    {$ibforums->lang['tt_options']}
    {$ibforums->lang['mod_options']}$jump
    {$ibforums->lang['post_to_quote']}
    {$ibforums->lang['post_to_quote_txt']} -
    {$ibforums->lang['ib_code_buttons']}
    -  {$ibforums->lang['bbcode_guided']}
    -  {$ibforums->lang['bbcode_normal']} -
    - - - - - - - - - - - -
    - - - - - -   {$ibforums->lang['js_close_all_tags']} -
    - - - - - - - -
    - {$ibforums->lang['hb_open_tags']}:  -   -
    -
    {$ibforums->lang['post']}
    ({$ibforums->lang['check_length']})

    - - - - - - - - - - -
    {$ibforums->lang['enable_emo']}
    {$ibforums->lang['enable_sig']}
    {$ibforums->lang['ib_code_buttons']}
    -  {$ibforums->lang['bbcode_guided']}
    -  {$ibforums->lang['bbcode_normal']} -
    - - - - - - - - - - - -
    - - - - - -   {$ibforums->lang['js_close_all_tags']} -
    - - - - - - - -
    - {$ibforums->lang['hb_open_tags']}:  -   -
    -
    {$ibforums->lang['post']}
    ({$ibforums->lang['check_length']})

    - - - - - - - - - - -
    {$ibforums->lang['enable_emo']}
    {$ibforums->lang['enable_sig']}
    {$ibforums->lang['unreg_namestuff']}
    {$ibforums->lang['guest_name']}
    {$ibforums->lang['tt_poll_settings']}
    {$ibforums->lang['poll_question']}
    {$ibforums->lang['poll_choices']}

    $extra
    - - - - - -
    {$ibforums->lang['poll_only']}
    {$ibforums->lang['unreg_namestuff']}
    {$ibforums->lang['guest_name']}
    {$ibforums->lang['tt_poll_settings']}
    {$ibforums->lang['poll_question']}
    {$ibforums->lang['poll_choices']}

    $extra
    +   +
    + +
    +
    +EOF; +} + + +function pm_postbox_buttons($data) { +global $ibforums; +return << +
    {$ibforums->lang['ib_code_buttons']}
    +  {$ibforums->lang['bbcode_guided']}
    +  {$ibforums->lang['bbcode_normal']} + +
    + + + + + +   {$ibforums->lang['js_close_all_tags']} +
    + + + + + + + +
    + {$ibforums->lang['hb_open_tags']}:  +   +
    {$ibforums->lang['post']}
    + +
    + ({$ibforums->lang['check_length']}) +
    {$ibforums->lang['ib_code_buttons']}
    +  {$ibforums->lang['bbcode_guided']}
    +  {$ibforums->lang['bbcode_normal']} + +
    + + + + + +   {$ibforums->lang['js_close_all_tags']} +
    + + + + + + + +
    + {$ibforums->lang['hb_open_tags']}:  +   +
    {$ibforums->lang['post']}
    + +
    +
    +
    {$ibforums->lang['po_options']} + + + +
    {$ibforums->lang['tt_options']}
    {$ibforums->lang['mod_options']}$jump
    {$ibforums->lang['post_to_quote']}
    {$ibforums->lang['post_to_quote_txt']}
    +EOF; +} + +function TopicSummary_body($data) { +global $ibforums; +return << + + + + + + + +EOF; +} + + +function TopicSummary_bottom() { +global $ibforums; +return << + + + +EOF; +} + + + +function preview($data) { +global $ibforums; +return << +
    {$ibforums->lang['post_preview']}
    +
    $data
    + +
    +EOF; +} + + + + + +function edit_upload_field($data, $file_name="") { +global $ibforums; +return << +
    + + + + + +EOF; +} + + +function Upload_field($data) { +global $ibforums; +return << + + + + + + + +EOF; +} + + +function errors($data) { +global $ibforums; +return << +
    {$ibforums->lang['errors_found']}
    +
    $data
    + +
    +EOF; +} + + + + +function EndForm($data) { +global $ibforums; +return << +
    + +
    {$data['author']}{$ibforums->lang['posted_on']} {$data['date']}
     {$data['post']}
    {$ibforums->lang['upload_title']}
    {$ibforums->lang['upload_text']} $data + + + + + + + + + + + + + +
    {$ibforums->lang['eu_keep']} ( $file_name )
    {$ibforums->lang['eu_delete']}
    {$ibforums->lang['eu_new']}
    +
    {$ibforums->lang['upload_title']}
    {$ibforums->lang['upload_text']} $data
    +   + +
    + +
    +
    +EOF; +} + + +function smilie_table() { +global $ibforums; +return << + +{$ibforums->lang['click_smilie']} + + + +{$ibforums->lang['all_emoticons']} + + +EOF; +} + + + + +function PostIcons() { +global $ibforums; +return << + {$ibforums->lang['post_icon']} + +                                 
    +                                 
    +   [ Use None ] + + +EOF; +} + + +function table_top($data) { +global $ibforums; +return << + + + + + + + + +EOF; +} + + + + +function table_structure() { +global $ibforums; +return <<
    + + + + + + + + + + +EOF; +} + + +function add_edit_box($checked="") { +global $ibforums; +return << +
    + + +EOF; +} + + +function topictitle_fields($data) { +global $ibforums; +return << + + + + + + + + + + +EOF; +} + + +} ?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_printpage.php b/upload/Skin/s1/skin_printpage.php index 219ee823..e2b53c09 100644 --- a/upload/Skin/s1/skin_printpage.php +++ b/upload/Skin/s1/skin_printpage.php @@ -5,36 +5,24 @@ class skin_printpage { function choose_form($fid, $tid, $title) { global $ibforums; return << -
      $data
    {$ibforums->lang['edit_ops']} {$ibforums->lang['append_edit']}
    {$ibforums->lang['tt_topic_settings']}
    {$ibforums->lang['topic_title']}
    {$ibforums->lang['topic_desc']}
    - - - -
    - - - - - - - -
    {$ibforums->lang['tvo_title']} $title
    - {$ibforums->lang['o_print_title']} -
    - {$ibforums->lang['o_print_desc']} -

    - {$ibforums->lang['o_html_title']} -
    - {$ibforums->lang['o_html_desc']} -

    - {$ibforums->lang['o_word_title']} -
    - {$ibforums->lang['o_word_desc']} -



    - <<{$ibforums->lang['back_topic']} -
    -
    - +
    +
    <{CAT_IMG}> {$ibforums->lang['tvo_title']} $title
    +
    + {$ibforums->lang['o_print_title']} +
    + {$ibforums->lang['o_print_desc']} +

    + {$ibforums->lang['o_html_title']} +
    + {$ibforums->lang['o_html_desc']} +

    + {$ibforums->lang['o_word_title']} +
    + {$ibforums->lang['o_word_desc']} +
    + +
    +
    EOF; } @@ -58,7 +46,7 @@ EOF; function pp_end() { global $ibforums; return <<Powered by Invision Board (http://www.invisionboard.com)
    © Invision Power Services (http://www.invisionpower.com)
    +
    Powered by Invision Power Board (http://www.invisionboard.com)
    © Invision Power Services (http://www.invisionpower.com)
    EOF; } @@ -67,13 +55,13 @@ global $ibforums; return << - {$ibforums->vars['board_name']} [Powered by IB Forums] + {$ibforums->vars['board_name']} [Powered by Invision Power Board] diff --git a/upload/Skin/s1/skin_profile.php b/upload/Skin/s1/skin_profile.php index 94fd1100..747bbef4 100644 --- a/upload/Skin/s1/skin_profile.php +++ b/upload/Skin/s1/skin_profile.php @@ -2,163 +2,401 @@ class skin_profile { +function warn_level($mid, $img, $percent) { +global $ibforums; +return << + + + +EOF; +} + +function warn_level_no_mod($mid, $img, $percent) { +global $ibforums; +return << + + + +EOF; +} + +function warn_level_rating($mid, $level,$min=0,$max=10) { +global $ibforums; +return << + + + +EOF; +} + +function warn_level_rating_no_mod($mid, $level,$min=0,$max=10) { +global $ibforums; +return << + + + +EOF; +} + +function get_photo($show_photo, $show_width, $show_height) { +global $ibforums; +return << +EOF; +} + +function show_photo($name, $photo) { +global $ibforums; +return << +
    $name
    +
    $photo
    + +EOF; +} + +function show_card_download($name, $photo, $info) { +global $ibforums; +return << + + $name + + + + +
    {$ibforums->lang['title']} -
    {$ibforums->lang['topic_here']} +
    {$ibforums->lang['topic_here']}
    {$ibforums->lang['warn_level']}{$percent}%: <{WARN_MINUS}>{$img}<{WARN_ADD}> +
    {$ibforums->lang['warn_level']}{$percent}%: {$img}
    {$ibforums->lang['rating_level']}<{WARN_MINUS}> < $min ( {$level} ) $max > <{WARN_ADD}>
    {$ibforums->lang['rating_level']}< $min ( {$level} ) $max >
    + + + +
    +
    $name
    +
    + + + + + +
    $photo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['email']}{$info['email']}
    {$ibforums->lang['integ_msg']}{$info['integ_msg']}
    {$ibforums->lang['aim']}{$info['aim_name']}
    {$ibforums->lang['icq']}{$info['icq_number']}
    {$ibforums->lang['yahoo']}{$info['yahoo']}
    {$ibforums->lang['msn']}{$info['msn_name']}
    {$ibforums->lang['pm']}{$ibforums->lang['click_here']}
    +
    +
    + + +EOF; +} + +function show_card($name, $photo, $info) { +global $ibforums; +return << + + +
    +
    $name
    +
    + + + + + +
    $photo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['email']}{$info['email']}
    {$ibforums->lang['integ_msg']}{$info['integ_msg']}
    {$ibforums->lang['aim']}{$info['aim_name']}
    {$ibforums->lang['icq']}{$info['icq_number']}
    {$ibforums->lang['yahoo']}{$info['yahoo']}
    {$ibforums->lang['msn']}{$info['msn_name']}
    {$ibforums->lang['pm']}{$ibforums->lang['click_here']}
    +
    +
    + +EOF; +} + function user_edit($info) { global $ibforums; return << - {$ibforums->lang['edit_my_sig']} | - {$ibforums->lang['edit_avatar']} | - {$ibforums->lang['edit_profile']} - +· {$ibforums->lang['edit_my_sig']} · +{$ibforums->lang['edit_avatar']} · +{$ibforums->lang['edit_profile']} EOF; } function show_profile($info) { global $ibforums; return << - - {$info['name']} - - - {$ibforums->lang['find_posts']} | - {$ibforums->lang['add_to_contact']} - - + + + + + +
    {$info['photo']} +
    {$info['name']}
    + +
    - - +
    +
    - + + + + + + + + + + + + +
    - - - - - - - - - - - - - - - - - - - - - - + - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['active_stats']}
    {$ibforums->lang['total_posts']}{$info['posts']}
    ( {$info['total_pct']}% {$ibforums->lang['total_percent']} )
    {$ibforums->lang['posts_per_day']}{$info['posts_day']}
    {$ibforums->lang['joined']}{$info['joined']}
    {$ibforums->lang['fav_forum']}{$info['fav_forum']}
    {$info['fav_posts']} {$ibforums->lang['fav_posts']}
    ( {$info['percent']}% {$ibforums->lang['fav_percent']} )
    {$ibforums->lang['user_local_time']}{$info['local_time']}
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['communicate']}
    {$ibforums->lang['email']}{$info['email']}
    {$ibforums->lang['aim']}{$info['aim_name']}
    {$ibforums->lang['icq']}{$info['icq_number']}
    {$ibforums->lang['yahoo']}{$info['yahoo']}
    {$ibforums->lang['msn']}{$info['msn_name']}
    {$ibforums->lang['pm']}{$ibforums->lang['click_here']}
    -
    - - - - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['info']}
    {$ibforums->lang['homepage']}{$info['homepage']}
    {$ibforums->lang['birthday']}{$info['birthday']}
    {$ibforums->lang['location']}{$info['location']}
    {$ibforums->lang['interests']}{$info['interests']}
    -
    - - - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['post_detail']}
    {$ibforums->lang['mgroup']}{$info['group_title']}
    {$ibforums->lang['mtitle']}{$info['member_title']}
    {$ibforums->lang['avatar']}{$info['avatar']}
    {$ibforums->lang['siggie']}{$info['signature']}
    -
    <( {$ibforums->lang['back']} )
    + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['active_stats']}
    {$ibforums->lang['total_posts']}{$info['posts']}
    ( {$info['total_pct']}% {$ibforums->lang['total_percent']} )
    {$ibforums->lang['posts_per_day']}{$info['posts_day']}
    {$ibforums->lang['joined']}{$info['joined']}
    {$ibforums->lang['fav_forum']}{$info['fav_forum']}
    {$info['fav_posts']} {$ibforums->lang['fav_posts']}
    ( {$info['percent']}% {$ibforums->lang['fav_percent']} )
    {$ibforums->lang['user_local_time']}{$info['local_time']}
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['communicate']}
    {$ibforums->lang['email']}{$info['email']}
    {$ibforums->lang['integ_msg']}{$info['integ_msg']}
    {$ibforums->lang['aim']}{$info['aim_name']}
    {$ibforums->lang['icq']}{$info['icq_number']}
    {$ibforums->lang['yahoo']}{$info['yahoo']}
    {$ibforums->lang['msn']}{$info['msn_name']}
    {$ibforums->lang['pm']}{$ibforums->lang['click_here']}
    +
    + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['info']}
    {$ibforums->lang['homepage']}{$info['homepage']}
    {$ibforums->lang['birthday']}{$info['birthday']}
    {$ibforums->lang['location']}{$info['location']}
    {$ibforums->lang['interests']}{$info['interests']}
    +
    + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['post_detail']}
    {$ibforums->lang['mgroup']}{$info['group_title']}
    {$ibforums->lang['mtitle']}{$info['member_title']}
    {$ibforums->lang['avatar']}{$info['avatar']}
    {$ibforums->lang['siggie']}{$info['signature']}
    +
    + + EOF; } @@ -166,8 +404,8 @@ function custom_field($title, $value="") { global $ibforums; return << - $title - $value + $title + $value EOF; } diff --git a/upload/Skin/s1/skin_register.php b/upload/Skin/s1/skin_register.php index 5b6d9540..a7c7e44c 100644 --- a/upload/Skin/s1/skin_register.php +++ b/upload/Skin/s1/skin_register.php @@ -16,19 +16,19 @@ return << {$ibforums->vars['board_name']}: {$ibforums->lang['cpf_title']} -

    +

    {$ibforums->lang['cpf_perm_parent']} -

    +

    {$ibforums->lang['cpf_fax']} {$ibforums->vars['coppa_fax']} -

    +

    {$ibforums->lang['cpf_address']} -
    +
    {$ibforums->vars['coppa_address']} -
    +
    @@ -43,7 +43,7 @@ return << 
    {$ibforums->lang['user_name']}
    -
    +
    @@ -51,7 +51,7 @@ return <<
    -
    +
    @@ -86,334 +86,405 @@ EOF; function coppa_two() { global $ibforums; return << - - - -
    {$ibforums->lang['cpf_name']}
    - - - - - - - - - - - - - -
    {$ibforums->lang['cp2_title']}
    - {$ibforums->lang['cp2_text']} -

    -
    - << {$ibforums->lang['cp2_cancel']} - - {$ibforums->lang['cp2_continue']} >> -
    -
    {$ibforums->lang['coppa_form']}
    {$ibforums->lang['coppa_form_text']} {$ibforums->vars['email_in']}
    -
    +
    +
    {$ibforums->lang['cp2_title']}
    + + + + + + + + + + +
    + {$ibforums->lang['cp2_text']} +

    +
    + << {$ibforums->lang['cp2_cancel']} + - {$ibforums->lang['cp2_continue']} >> +
    +
    {$ibforums->lang['coppa_form']}
    {$ibforums->lang['coppa_form_text']} {$ibforums->vars['email_in']}
    +
    EOF; } function coppa_start($coppadate) { global $ibforums; return << - - - - - - - - - - - - - - - -
    {$ibforums->lang['coppa_info']}
    -

    - {$ibforums->lang['coppa_link']} -

    - < {$ibforums->lang['coppa_date_before']} $coppadate - - {$ibforums->lang['coppa_date_after']} $coppadate > -

      -
    {$ibforums->lang['coppa_form']}
    {$ibforums->lang['coppa_form_text']} {$ibforums->vars['email_in']}
    - - - +
    +
    <{CAT_IMG}> {$ibforums->lang['registration_form']}
    +
    {$ibforums->lang['coppa_info']}
    + +
    {$ibforums->lang['coppa_form']}
    +
    {$ibforums->lang['coppa_form_text']} {$ibforums->vars['email_in']}
    +
    + EOF; } -function lost_pass_form() { +function lost_pass_form($lasid="") { global $ibforums; return << -
    - - - - - - -
    {$ibforums->lang['lp_header']}

    {$ibforums->lang['lp_text']}
    -
    - - -
    - - - - - - - - - -
    {$ibforums->lang['complete_form']}
    {$ibforums->lang['lp_user_name']}
    - -
    -
    -
    +
    + + +
    +
    <{CAT_IMG}> {$ibforums->lang['lost_pass_form']}
    +
    {$ibforums->lang['lp_header']}
    +
    {$ibforums->lang['lp_text']}
    +
    {$ibforums->lang['complete_form']}
    + + + + + +
    {$ibforums->lang['lp_user_name']}
    +
    + +
    +
    +
    +
    +
    EOF; } function show_authorise($member) { global $ibforums; return << - - - - - - - - - -
    {$ibforums->lang['registration_process']}
    {$ibforums->lang['thank_you']} {$member['name']}. {$ibforums->lang['auth_text']} {$member['email']}
    - - - +
    +
    +
    {$ibforums->lang['registration_process']}
    +
    {$ibforums->lang['thank_you']} {$member['name']}. {$ibforums->lang['auth_text']} {$member['email']}
    +
    +EOF; +} + + +function show_revalidated() { +global $ibforums; +return << +
    <{CAT_IMG}> {$ibforums->lang['rv_title']}
    +
    {$ibforums->lang['rv_process']}
    +
    {$ibforums->lang['rv_done']}
    +
    +EOF; +} + +function show_lostpasswait($member) { +global $ibforums; +return << +
    <{CAT_IMG}> {$ibforums->lang['lpf_title']}
    +
    {$ibforums->lang['registration_process']}
    +
    {$ibforums->lang['lpass_text']}
    + EOF; } function show_preview($member) { global $ibforums; return << - - - - - - - - - -
    {$ibforums->lang['registration_process']}
    {$ibforums->lang['thank_you']} {$member['name']}. {$ibforums->lang['preview_reg_text']}
    - - - +
    +
    +
    {$ibforums->lang['registration_process']}
    +
    {$ibforums->lang['thank_you']} {$member['name']}. {$ibforums->lang['preview_reg_text']}
    +
    +EOF; +} + +function show_revalidate_form($name="") { +global $ibforums; +return << + + +
    {$ibforums->lang['rv_ins']}
    +
    +
    +
    <{CAT_IMG}> {$ibforums->lang['rv_title']}
    + + + + + +
    {$ibforums->lang['rv_name']}
    +
    +
    + +EOF; +} + + +function show_lostpass_form() { +global $ibforums; +return << + + +
    + + + +
    +
    <{CAT_IMG}> {$ibforums->lang['dumb_header']}
    +
    {$ibforums->lang['lpf_title']}
    + + + {$ibforums->lang['lpf_pass1']}
    {$ibforums->lang['lpf_pass11']} + + + + {$ibforums->lang['lpf_pass2']}
    {$ibforums->lang['lpf_pass22']} + + + + +
    +
    +
    +EOF; +} + +function show_lostpass_form_manual() { +global $ibforums; +return <<{$ibforums->lang['dumb_text']} +
    {$ibforums->lang['complete_form']}
    + + + + + + + + + + +EOF; +} + +function show_lostpass_form_auto($aid,$uid) { +global $ibforums; +return << + +
    {$ibforums->lang['user_id']}
    {$ibforums->lang['val_key']}
    EOF; } function show_dumb_form($type="reg") { global $ibforums; return << - - -
    -
    - - - -
    - - - -
    {$ibforums->lang['dumb_header']}

    {$ibforums->lang['dumb_text']}
    -
    - - -
    - - - - - - - - - - - - - -
    {$ibforums->lang['complete_form']}
    {$ibforums->lang['user_id']}
    {$ibforums->lang['val_key']}
    - -
    -
    - + +
    + + + +
    +
    {$ibforums->lang['dumb_header']}
    +
    {$ibforums->lang['dumb_text']}
    +
    {$ibforums->lang['complete_form']}
    + + + + + + + + + +
    {$ibforums->lang['user_id']}
    {$ibforums->lang['val_key']}
    +
    +
    +
    EOF; } function ShowForm($data) { global $ibforums; return << - - -
    -
    - - - - - - - -
    {$ibforums->lang['reg_header']}

    {$data['TEXT']}
    -
    - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['complete_form']}
    {$ibforums->lang['user_name']}
    {$ibforums->lang['pass_word']}
    {$ibforums->lang['re_enter_pass']}
    {$ibforums->lang['email_address']}
    {$ibforums->lang['email_address_two']}
    -
    - -
    - - -
    - - - - - - - - -
    {$ibforums->lang['terms_service']}
    {$ibforums->lang['terms_service_text']}
    - -

    {$ibforums->lang['agree_submit']}  -
    - -
    -
    -
    + if (document.REG.agree.checked == true) { + return true; + } else { + alert ("{$ibforums->lang['js_no_check']}"); + return false; + } +} +//--> + +
    + + + +{$ibforums->lang['reg_header']}

    {$data['TEXT']} +
    +
    +
    +
    <{CAT_IMG}> {$ibforums->lang['registration_form']}
    +
    {$ibforums->lang['complete_form']}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['user_name']}
    {$ibforums->lang['pass_word']}
    {$ibforums->lang['re_enter_pass']}
    {$ibforums->lang['email_address']}
    {$ibforums->lang['email_address_two']}
    +
    +
    + +
    +
    +
    {$ibforums->lang['terms_service']}
    +
    + {$ibforums->lang['terms_service_text']} +
    +
    + +

    {$ibforums->lang['agree_submit']}  +
    +
    +
    +
    EOF; } function errors($data) { global $ibforums; return << - - - - - - -
    {$ibforums->lang['errors_found']}
    $data
    - - - -
    +
    +
    {$ibforums->lang['errors_found']}
    +
    $data
    +
    +
    EOF; } -function reg_antispam($regid) { +function bot_antispam($regid) { global $ibforums; return << - - - - -
    - - - - - - - - - - - - -
    {$ibforums->lang['ras_title']}
    {$ibforums->lang['ras_numbers']} - - Code Bit -  Code Bit -  Code Bit -  Code Bit -  Code Bit -  Code Bit -
    {$ibforums->lang['ras_text']}
    -
    +
    +
    +
    {$ibforums->lang['las_title']}
    + + + + + + + + +
    {$ibforums->lang['las_numbers']} + + Code Bit +  Code Bit +  Code Bit +  Code Bit +  Code Bit +  Code Bit +
    {$ibforums->lang['las_text']}
    +
    +EOF; +} + +function bot_antispam_gd($regid) { +global $ibforums; +return << +
    +
    {$ibforums->lang['las_title']}
    + + + + + + + + + +
    {$ibforums->lang['las_numbers']} + + Loading Image +
    {$ibforums->lang['las_text']}
    +
    +EOF; +} + + +function tmpl_form($action, $hidden, $title, $content ) { +global $ibforums; +return << +$hidden +
    +
    $title
    + + $content +
    +
    +
    + EOF; } @@ -422,40 +493,40 @@ EOF; function optional_title() { global $ibforums; return << - {$ibforums->lang['cf_optional']} - + + {$ibforums->lang['cf_optional']} + EOF; } function field_entry($title, $desc="", $content) { global $ibforums; return << - $title
    $desc - $content - + + $title
    $desc + $content + EOF; } function field_textinput($name, $value="") { global $ibforums; return << + EOF; } function field_dropdown($name, $options) { global $ibforums; return <<$options + EOF; } function field_textarea($name, $value) { global $ibforums; return <<$value + EOF; } diff --git a/upload/Skin/s1/skin_search.php b/upload/Skin/s1/skin_search.php index 7192bfce..3217049f 100644 --- a/upload/Skin/s1/skin_search.php +++ b/upload/Skin/s1/skin_search.php @@ -3,27 +3,27 @@ class skin_search { -// + function RenderRow($Data) { global $ibforums; return << - {$Data['folder_img']} - {$Data['topic_icon']} - + {$Data['folder_img']} + {$Data['topic_icon']} + - +
    {$Data['go_new_post']}{$Data['prefix']} vars['php_ext']}?act=ST&f={$Data['forum_id']}&t={$Data['tid']}&hl={$Data['keywords']}&s={$ibforums->session_id}' class='linkthru'>{$Data['title']} {$Data[PAGES]}{$Data['prefix']} {$Data['title']} {$Data[PAGES]}
    {$Data['description']} - {$Data['forum_name']} - {$Data['starter']} - {$Data['posts']} - {$Data['views']} - {$Data['last_post']}
    vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$Data['forum_id']}&t={$Data['tid']}&view=getlastpost'>{$Data['last_text']} {$Data['last_poster']} + {$Data['forum_name']} + {$Data['starter']} + {$Data['posts']} + {$Data['views']} + {$Data['last_post']}
    {$Data['last_text']} {$Data['last_poster']} EOF; @@ -32,91 +32,57 @@ EOF; function RenderPostRow($Data) { global $ibforums; return << - - - - - - - -
    {$Data['folder_img']}{$ibforums->lang['rp_topic']} {$Data['prefix']} {$Data['title']} {$Data[PAGES]}
    - - - - {$Data['author_name']} - - {$ibforums->lang['rp_forum']} {$Data['forum_name']}    {$ibforums->lang['rp_postedon']} {$Data['post_date']}    {$ibforums->lang['rp_post']} #{$Data['pid']} - - - - - -
    - {$ibforums->lang['rp_replies']} {$Data['posts']}
    {$ibforums->lang['rp_hits']} {$Data['views']}
    - - {$Data['post']} - - - - - +
    +
    +
    {$Data['folder_img']} {$Data['prefix']} {$Data['title']} {$Data[PAGES]}
    + + + + + + + + + + + + + +
    {$Data['author_name']}{$ibforums->lang['rp_postedon']} {$Data['post_date']}
    + +
    + {$ibforums->lang['rp_replies']} {$Data['posts']}
    {$ibforums->lang['rp_hits']} {$Data['views']}
    +
    {$Data['post']}
     {$ibforums->lang['rp_forum']} {$Data['forum_name']}  ·  {$ibforums->lang['rp_post']} #{$Data['pid']}
    +
    EOF; } function start_as_post($Data) { global $ibforums; return << - - - - -
    {$Data[SHOW_PAGES]}
    - - - - -
    - - - - -
    - - - - - +
    {$Data[SHOW_PAGES]}
    + EOF; } function end_as_post($Data) { global $ibforums; return << -
    {$ibforums->lang['rp_author']}{$ibforums->lang['rp_message']}
     
    -
    -
    - - - - -
    {$Data[SHOW_PAGES]}
    - - - - - - - - - - - - - -
    <{B_NEW}> {$ibforums->lang['pm_open_new']}<{B_HOT}> {$ibforums->lang['pm_hot_new']}<{B_POLL}> {$ibforums->lang['pm_poll']}<{B_LOCKED}> {$ibforums->lang['pm_locked']}
    <{B_NORM}> {$ibforums->lang['pm_open_no']}<{B_HOT_NN}> {$ibforums->lang['pm_hot_no']}<{B_POLL_NN}> {$ibforums->lang['pm_poll_no']}<{B_MOVED}> {$ibforums->lang['pm_moved']}
    +
    +
    {$Data[SHOW_PAGES]}
    +
    + <{B_NEW}>  {$ibforums->lang['pm_open_new']} +
    <{B_NORM}>  {$ibforums->lang['pm_open_no']} +
    <{B_HOT}>  {$ibforums->lang['pm_hot_new']} +
    <{B_HOT_NN}>  {$ibforums->lang['pm_hot_no']} +
    + +
    + <{B_POLL}>  {$ibforums->lang['pm_poll']} +
    <{B_POLL_NN}>  {$ibforums->lang['pm_poll_no']} +
    <{B_LOCKED}>  {$ibforums->lang['pm_locked']} +
    <{B_MOVED}>  {$ibforums->lang['pm_moved']} +
    EOF; } @@ -124,271 +90,397 @@ EOF; function end($Data) { global $ibforums; return <<  - - - - - - - - - - - -
    {$Data[SHOW_PAGES]}
    - - - - - - - - - - - - - -
    <{B_NEW}> {$ibforums->lang['pm_open_new']}<{B_HOT}> {$ibforums->lang['pm_hot_new']}<{B_POLL}> {$ibforums->lang['pm_poll']}<{B_LOCKED}> {$ibforums->lang['pm_locked']}
    <{B_NORM}> {$ibforums->lang['pm_open_no']}<{B_HOT_NN}> {$ibforums->lang['pm_hot_no']}<{B_POLL_NN}> {$ibforums->lang['pm_poll_no']}<{B_MOVED}> {$ibforums->lang['pm_moved']}
    + +
     
    + +
    +
    {$Data[SHOW_PAGES]}
    +
    +
    + <{B_NEW}>  {$ibforums->lang['pm_open_new']} +
    <{B_NORM}>  {$ibforums->lang['pm_open_no']} +
    <{B_HOT}>  {$ibforums->lang['pm_hot_new']} +
    <{B_HOT_NN}>  {$ibforums->lang['pm_hot_no']} +
    + +
    + <{B_POLL}>  {$ibforums->lang['pm_poll']} +
    <{B_POLL_NN}>  {$ibforums->lang['pm_poll_no']} +
    <{B_LOCKED}>  {$ibforums->lang['pm_locked']} +
    <{B_MOVED}>  {$ibforums->lang['pm_moved']} +
    +
    +
    EOF; } -function Form($forums, $cats) { + +function boolean_explain_page() { global $ibforums; return << - - -
    - $hidden_fields -
    - - - - -
    - - - - - - - - - - - - -
    {$ibforums->lang['keywords_title']}
    {$ibforums->lang['key_search']}{$ibforums->lang['mem_search']}


    {$ibforums->lang['keysearch_text']}
    - - - - - - - -
    -  {$ibforums->lang['match_name_ex']} -
     {$ibforums->lang['match_name_pa']} -
    -  {$ibforums->lang['joinname_true']} -
     {$ibforums->lang['joinname_false']} -
    -
    -
    - - -
    - - - - - - -
    - - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['search_options']}
    {$ibforums->lang['search_where']}{$ibforums->lang['search_refine']}
    - - - - - - - - - - - - - -
     {$ibforums->lang['search_cats']}$cats
     {$ibforums->lang['search_forums']}$forums
     {$ibforums->lang['in_posts']}
     {$ibforums->lang['in_topics']}
     {$ibforums->lang['results_topics']}
     {$ibforums->lang['results_post']}
    -
    - - - - - -
    - {$ibforums->lang['search_from']} -
    - -
    {$ibforums->lang['and']}  {$ibforums->lang['older']}  {$ibforums->lang['newer']} -
    - {$ibforums->lang['sort_results']}
    - -
    {$ibforums->lang['descending']} -
    {$ibforums->lang['ascending']} -
    -
    -
    -
    +
    +
    <{CAT_IMG}> {$ibforums->lang['be_link']}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['be_use']}{$ibforums->lang['be_means']}
    {$ibforums->lang['be_u1']}{$ibforums->lang['be_m1']}
    {$ibforums->lang['be_u2']}{$ibforums->lang['be_m2']}
    {$ibforums->lang['be_u3']}{$ibforums->lang['be_m3']}
    {$ibforums->lang['be_u4']}{$ibforums->lang['be_m4']}
    {$ibforums->lang['be_u5']}{$ibforums->lang['be_m5']}
    +
    +EOF; +} + +function boolean_explain_link() { +global $ibforums; +return <<{$ibforums->lang['be_link']} ] +EOF; +} + +function simple_form($forums) { +global $ibforums; +return << + + +
    +$hidden_fields +
    +
    {$ibforums->lang['search_options']}
    +
    {$ibforums->lang['key_search']}
    +
    + +
    + +
    +
    {$ibforums->lang['search_where']}
    +
    + $forums +

    + {$ibforums->lang['sf_show_me']} + + +   + + +
    +
    + +   + +
    +
    +
    EOF; } -function active_start($Data) { +function result_simple_header($data) { global $ibforums; return << - - -
    - - - - - -
    {$ibforums->lang['active_topics']}
    {$Data[SHOW_PAGES]}
    -
    -
    - - - - - -
    - {$ibforums->lang['active_st_text']} - -   {$ibforums->lang['active_end_text']}   - -    -
    - - - - - -
    - - - - - - - - - - +
    +
    <{CAT_IMG}> {$ibforums->lang['search_results']}
    +
    + +
    + {$ibforums->lang['g_results']} {$data['start']} - {$data['end']} {$ibforums->lang['g_of_about']} {$data['matches']}. + {$ibforums->lang['g_search_took']} {$data['ex_time']} {$ibforums->lang['g_seconds']} +
    +
    +
    EOF; } +function result_simple_footer($data) { +global $ibforums; +return <<{$ibforums->lang['search_pages']}      {$data['links']}
    + +EOF; +} + +function result_simple_entry($data) { +global $ibforums; +return << + {$data['title']} +
    + {$data['post']} +
    + + {$ibforums->lang['location_g']}: {$ibforums->lang['g_b_home']} + > {$data['cat_name']} + > {$data['name']} + +
    + {$ibforums->lang['g_relevance']}: {$data['relevance']}% · Author: {$data['author_name']} · Posted on: {$data['post_date']} + - {$ibforums->lang['g_new_window']} + +
    +EOF; +} + + + +function Form($forums) { +global $ibforums; +return << + + +
    +$hidden_fields +
    +
     {$ibforums->lang['h_topic_title']}{$ibforums->lang['h_forum_name']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}
    + + + + + + + + + + + +
    {$ibforums->lang['keywords_title']}
    {$ibforums->lang['key_search']}{$ibforums->lang['mem_search']}
    + +

    + +
    + + + + + + + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['search_options']}
    {$ibforums->lang['search_where']}{$ibforums->lang['search_refine']}
    + $forums +
    +   +
    + + + + + + + + + +
    + + + +
    + + + +
    +
    +
    + + +EOF; +} +function form_simple_button() { +global $ibforums; +return << +EOF; +} + + +function active_start($data) { +global $ibforums; +return << + + +
    +
    + +
    + +
    +
    +
    +
    +
    <{CAT_IMG}>{$ibforums->lang['active_topics']}
    + + + + + + + + + + +EOF; +} + + function start($Data) { global $ibforums; return << -
     {$ibforums->lang['h_topic_title']}{$ibforums->lang['h_forum_name']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}
    - - - -
    {$Data[SHOW_PAGES]}
    - - - -
    - - -
    - - - - - - - - - - +
    {$Data[SHOW_PAGES]}
    +
    +
    +
    <{CAT_IMG}> {$ibforums->lang['your_results']} · {$ibforums->lang['mark_search_as_read']}
    +
     {$ibforums->lang['h_topic_title']}{$ibforums->lang['h_forum_name']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}
    + + + + + + + + + EOF; } function active_none() { global $ibforums; return << + EOF; } diff --git a/upload/Skin/s1/skin_stats.php b/upload/Skin/s1/skin_stats.php index 4c427adb..2d50ff04 100644 --- a/upload/Skin/s1/skin_stats.php +++ b/upload/Skin/s1/skin_stats.php @@ -14,22 +14,18 @@ return <<base_url' + 'showtopic=' + tid; self.close(); } //--> -
     {$ibforums->lang['h_topic_title']}{$ibforums->lang['h_forum_name']}{$ibforums->lang['h_topic_starter']}{$ibforums->lang['h_replies']}{$ibforums->lang['h_hits']}{$ibforums->lang['h_last_action']}
    {$ibforums->lang['active_no_topics']}
    {$ibforums->lang['active_no_topics']}
    - - - -
    - - - - - - - - +
    +
    {$ibforums->lang['who_farted']} $title
    +
    {$ibforums->lang['who_farted']} $title
    {$ibforums->lang['who_poster']}{$ibforums->lang['who_posts']}
    + + + + EOF; } @@ -37,18 +33,17 @@ EOF; function who_row($row) { global $ibforums; return << - - - + + + + EOF; } function who_name_link($id, $name) { global $ibforums; return <<$name - +$name EOF; } @@ -56,13 +51,9 @@ EOF; function who_end() { global $ibforums; return << - - -
    {$ibforums->lang['who_poster']}{$ibforums->lang['who_posts']}
    {$row['author_name']}{$row['pcount']}
    {$row['author_name']}{$row['pcount']}
    {$ibforums->lang['who_go']}
    -
    +
    + + EOF; } @@ -82,94 +73,107 @@ EOF; function group_strip( $group ) { global $ibforums; return << -
    - - - - - - - - - - +
    +
    <{CAT_IMG}> $group
    +
    $group
    {$ibforums->lang['leader_name']}{$ibforums->lang['leader_forums']}{$ibforums->lang['leader_location']} 
    + + + + + + EOF; } function leader_row($info, $forums) { global $ibforums; return << - - - - - + + + + + + +EOF; +} + +function leader_row_forum_start($id, $count_string) { +global $ibforums; +return << +
    {$ibforums->lang['leader_name']}{$ibforums->lang['leader_forums']}{$ibforums->lang['leader_location']} 
    {$info['name']}$forums{$info['location']}{$info['msg_icon']}
    {$info['name']}$forums{$info['location']}{$info['msg_icon']}
    -
    +
    +
    +
    EOF; } function top_poster_header() { global $ibforums; return << -
    - - - - - - - - +
    +
    <{CAT_IMG}> {$ibforums->lang['todays_posters']}
    +
    {$ibforums->lang['member']}{$ibforums->lang['member_joined']}{$ibforums->lang['member_posts']}{$ibforums->lang['member_today']}{$ibforums->lang['member_percent']}
    + + + + + + + EOF; } function top_poster_row($info) { global $ibforums; return << - - - - - - + + + + + + + EOF; } function top_poster_footer($info) { global $ibforums; return << - - -
    {$ibforums->lang['member']}{$ibforums->lang['member_joined']}{$ibforums->lang['member_posts']}{$ibforums->lang['member_today']}{$ibforums->lang['member_percent']}
    {$info['name']}{$info['joined']}{$info['posts']}{$info['tpost']}{$info['today_pct']}%
    {$info['name']}{$info['joined']}{$info['posts']}{$info['tpost']}{$info['today_pct']}%
    {$ibforums->lang['total_today']} $info
    -
    +
    +
    {$ibforums->lang['total_today']} $info
    + EOF; } function top_poster_no_info() { global $ibforums; return << - {$ibforums->lang['no_info']} - + + {$ibforums->lang['no_info']} + EOF; } diff --git a/upload/Skin/s1/skin_subscriptions.php b/upload/Skin/s1/skin_subscriptions.php new file mode 100644 index 00000000..c63c6da8 --- /dev/null +++ b/upload/Skin/s1/skin_subscriptions.php @@ -0,0 +1,550 @@ +{$ibforums->lang['sc_complete']} +

    +{$ibforums->lang['sc_upgrade_explain']} +

    $desc_string + +

    {$ibforums->lang['gw_nochex']} +

    +
    + + + + +

    +
    +
    +
    +EOF; +} + +function do_nochex_normal_screen($ccode, $member_id, $new_sub_id, $to_pay, $nochex_email, $sub_title, $desc_string="") { +global $ibforums; +return <<{$ibforums->lang['sc_complete']} +

    +{$ibforums->lang['sc_upgrade_explain']} +

    $desc_string +

    {$ibforums->lang['gw_nochex']} +

    +
    + + + + +

    +
    +
    +
    +EOF; +} + +function show_ticket($sub, $id, $paid, $extra="") { +global $ibforums; +return <<{$ibforums->lang['man_title']} +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['man_mem']}{$ibforums->member['name']}
    {$ibforums->lang['man_mem_id']}{$ibforums->member['id']}
    {$ibforums->lang['man_email']}{$ibforums->member['email']}
    {$ibforums->lang['man_trans_id']}{$id}
    {$ibforums->lang['man_sub']}{$sub['sub_title']} $extra
    {$ibforums->lang['man_pay']}{$paid}
    +
    +EOF; +} + + + +function do_manual_normal_screen($new_sub_id, $desc_string="") { +global $ibforums; +return << + + +
    {$ibforums->lang['sc_complete']}
    +

    +$desc_string +

    +{$ibforums->lang['post_manual']} +

    +{$ibforums->lang['post_manual_more']} +

    +

    +
    + +
    +EOF; +} + +function do_manual_upgrade_screen($new_sub_id, $cur_id, $desc_string="") { +global $ibforums; +return << + + +
    {$ibforums->lang['sc_upgrade_title']}
    +

    +$desc_string +

    +{$ibforums->lang['post_manual']} +

    +{$ibforums->lang['post_manual_more']} +

    +

    +
    + +
    +EOF; +} + +function do_paypal_normal_recurring_screen($ccode, $member_id, $new_sub_id, $unit, $length, $cost, $paypal_email, $sub_title, $desc_string="") { +global $ibforums; +return <<{$ibforums->lang['sc_complete']} +

    +{$ibforums->lang['sc_upgrade_explain']} +

    $desc_string +

    {$ibforums->lang['gw_paypal']} +

    +
    + + + + + + + + + + + + + + +

    +
    +
    +
    +EOF; +} + +function do_paypal_upgrade_recurring_screen($ccode, $member_id, $new_sub_id, $to_pay, $time_left_to_run, $time_left_unit, $unit, $length, $cost, $paypal_email, $sub_title, $cur_tran_id, $desc_string="") { +global $ibforums; +return <<{$ibforums->lang['sc_complete']} +

    +{$ibforums->lang['sc_upgrade_explain']} +

    $desc_string +

    {$ibforums->lang['gw_paypal']} +

    +
    + + + + + + + + + + + + + + + + + + + +

    +
    +
    +
    +EOF; +} + +function do_paypal_normal_screen($ccode, $member_id, $new_sub_id, $to_pay, $paypal_email, $sub_title, $desc_string="") { +global $ibforums; +return <<{$ibforums->lang['sc_complete']} +

    +{$ibforums->lang['sc_upgrade_explain']} +

    $desc_string +

    {$ibforums->lang['gw_paypal']} +

    +
    + + + + + + + + + + + +

    +
    +
    +
    +EOF; +} + +function do_paypal_upgrade_screen($ccode, $member_id, $new_sub_id, $to_pay, $paypal_email, $sub_title, $cur_tran_id, $desc_string="") { +global $ibforums; +return <<{$ibforums->lang['sc_complete']} +

    +{$ibforums->lang['sc_upgrade_explain']} +

    $desc_string +

    {$ibforums->lang['gw_paypal']} +

    +
    + + + + + + + + + + + + + +

    +
    +
    +
    +EOF; +} + + + + + + + +function sub_two_upgrade_summary() { +global $ibforums; +return <<{$ibforums->lang['sc_upgrade_title']} +

    {$ibforums->lang['sc_upgrade_explain']} +

    {$ibforums->lang['sc_upgrade_string']} +

    +EOF; +} + +function sub_two_normal_summary() { +global $ibforums; +return <<{$ibforums->lang['sc_normal_title']} +

    {$ibforums->lang['sc_upgrade_explain']} +

    {$ibforums->lang['sc_normal_string']} +

    +EOF; +} + + +function sub_two_methods_top($sub_chosen, $upgrade="", $curid="", $currency="") { +global $ibforums; +return <<{$ibforums->lang['sc_available_methods']} +
    +
    + + + + + +EOF; +} + +function sub_two_methods_row($mid, $name, $desc="") { +global $ibforums; +return << + + + +EOF; +} + +function sub_two_methods_bottom() { +global $ibforums; +return << + +EOF; +} + +function sub_two_methods_continue_button() { +global $ibforums; +return << +
    +
    +
    + +EOF; +} + +function sub_choose_current_top() { +global $ibforums; +return <<{$ibforums->lang['s_current_subs']} +

    {$ibforums->lang['s_current_explain']}

    +
    +
     {$ibforums->lang['sc_method']}
    $name
    $desc
    + + + + + + + + +EOF; +} + +function sub_choose_current_row($id, $name, $start, $end, $paid, $state ) { +global $ibforums; +return << + + + + + + + +EOF; +} + +function sub_choose_current_bottom() { +global $ibforums; +return << + +EOF; +} + +function sub_page_bottom() { +global $ibforums; +return <<{$ibforums->lang['s_current_bottom']}

    +EOF; +} + + +function sub_choose_dead_top() { +global $ibforums; +return <<{$ibforums->lang['s_dead_subs']} +

    {$ibforums->lang['s_dead_explain']}

    +
    +
    {$ibforums->lang['s_transid']}{$ibforums->lang['s_detail']}{$ibforums->lang['s_started']}{$ibforums->lang['s_end']}{$ibforums->lang['s_paid']}{$ibforums->lang['s_status']}
    $id$name$start$end{$paid}$state
    + + + + + + + + +EOF; +} + +function sub_choose_dead_row($id, $name, $start, $end, $paid, $state ) { +global $ibforums; +return << + + + + + + + +EOF; +} + +function sub_choose_dead_bottom() { +global $ibforums; +return << + +
    +EOF; +} + + +function sub_choose_upgrade_top($cur_id="", $currency="") { +global $ibforums; +return << +
    {$ibforums->lang['s_upgrade_subs']}
    +

    {$ibforums->lang['s_upgrade_explain']}

    +
    +
    +
    +
    {$ibforums->lang['s_transid']}{$ibforums->lang['s_detail']}{$ibforums->lang['s_started']}{$ibforums->lang['s_end']}{$ibforums->lang['s_paid']}{$ibforums->lang['s_status']}
    $id$name$start$end{$paid}$state
    + + + + + + +EOF; +} + + +function sub_choose_upgrade_row($id, $name, $desc, $cost, $duration ) { +global $ibforums; +return << + + + + + +EOF; +} + +function sub_choose_upgrade_bottom() { +global $ibforums; +return << + +
    +
    +
    + +EOF; +} + + + +function sub_choose_new_top($currency) { +global $ibforums; +return <<{$ibforums->lang['s_available_subs']} +

    {$ibforums->lang['s_explain']}

    +
    +
    +
    +
     {$ibforums->lang['s_detail']}{$ibforums->lang['s_end']}{$ibforums->lang['s_balance_cost']}
    $name
    $desc
    $duration{$cost}
    + + + + + + +EOF; +} + + +function sub_choose_new_row($id, $name, $desc, $cost, $duration ) { +global $ibforums; +return << + + + + + +EOF; +} + +function sub_choose_new_bottom() { +global $ibforums; +return << + +
    +
    +
    + +EOF; +} + + +function sub_currency_change_form($select, $url) { +global $ibforums; +return <<
    {$ibforums->lang['cc_currency_in']} $select +EOF; +} + +function sub_currency_change_top() { +global $ibforums; +return << +EOF; +} + +function sub_currency_change_row($id, $name, $default="") { +global $ibforums; +return <<$id $name +EOF; +} + +function sub_currency_change_bottom() { +global $ibforums; +return << +EOF; +} + + + +} +?> \ No newline at end of file diff --git a/upload/Skin/s1/skin_topic.php b/upload/Skin/s1/skin_topic.php index a159b247..3ed8445c 100644 --- a/upload/Skin/s1/skin_topic.php +++ b/upload/Skin/s1/skin_topic.php @@ -1,291 +1,410 @@ -input['st']}'>{$ibforums->lang['snitch_geezer_to_a_copper']} -EOF; -} - -function ip_show($data) { -global $ibforums; -return <<{$ibforums->lang['ip']}: $data -EOF; -} - -function golastpost_link($fid, $tid) { -global $ibforums; -return <<{$ibforums->lang['go_new_post']} ) -EOF; -} - -function Mod_Panel($data, $fid, $tid) { -global $ibforums; -return << -
    - - - - - -
     {$ibforums->lang['s_detail']}{$ibforums->lang['s_duration']}{$ibforums->lang['s_cost']}
    $name
    $desc
    $duration{$cost}
    --> -
    vars['php_ext']}'> - - - - - -  
    - -EOF; -} - -function mod_wrapper($id="", $text="") { -global $ibforums; -return <<$text -EOF; -} - -function TableFooter($data) { -global $ibforums; -return <<
    - - - - - -
    - - - - - -
    {$ibforums->lang['topic_stats']}{$ibforums->lang['track_topic']} | - {$ibforums->lang['forward']} | - {$ibforums->lang['print']}
    -
    -
    - - - - - -
    {$data[TOPIC][SHOW_PAGES]} -
    << vars['php_ext']}?s={$ibforums->session_id}&act=SF&f={$data['FORUM']['id']}'>Back to {$data['FORUM']['name']}
    {$data[TOPIC][REPLY_BUTTON]}vars['php_ext']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$data[FORUM]['id']}' title='{$ibforums->lang['start_new_topic']}'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    -
    - - - - - -
    - - {$data[FORUM]['JUMP']}

    -
    -EOF; -} - - -function email_options($tid, $fid) { -global $ibforums; -return << - - - {$ibforums->lang['tt_title']} -
    {$ibforums->lang['tt_desc']} -

    - {$ibforums->lang['ft_title']} -
    {$ibforums->lang['ft_desc']} -

    - {$ibforums->lang['av_title']} -
    {$ibforums->lang['av_desc']} - - - -EOF; -} - -function RenderRow($data) { -global $ibforums; -return << - - {$data[POSTER]['name']} - - - - - - -
    {$data[POST]['post_icon']}{$ibforums->lang['posted_on']} {$data[POST]['post_date']}{$data[POST]['delete_button']}{$data[POST]['edit_button']}vars['php_ext']}?s={$ibforums->session_id}&act=Post&CODE=06&f={$ibforums->input[f]}&t={$ibforums->input[t]}&p={$data[POST]['pid']}'><{P_QUOTE}>
    - - - - - {$data[POSTER]['avatar']}

    - {$data[POSTER]['title']}
    - {$data[POSTER]['member_rank_img']}

    - {$data[POSTER]['member_group']}
    - {$data[POSTER]['member_posts']}
    - {$data[POSTER]['member_number']}
    - {$data[POSTER]['member_joined']}
    - {$data[POSTER][WARN_GFX]}

    -
    - - {$data[POST]['post']} {$data[POST]['attachment']} {$data[POST]['signature']} - - - {$data[POST]['ip_address']}  - - - - - - - -
    {$data[POSTER]['message_icon']}{$data[POSTER]['email_icon']}{$data[POSTER]['website_icon']}{$data[POSTER]['icq_icon']}{$data[POSTER]['aol_icon']}{$data[POSTER]['yahoo_icon']}{$data[POSTER]['msn_icon']}{$data[POST]['report_link']} Top
    - - - - - - -EOF; -} - -function PageTop($data) { -global $ibforums; -return << - - - - - - - - - -
    {$data['TOPIC']['SHOW_PAGES']} {$data['TOPIC']['go_new']}{$data[TOPIC][REPLY_BUTTON]}vars['php_ext']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$data[FORUM]['id']}' title='{$ibforums->lang['start_new_topic']}'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    - - - - - - - - + + + + + +
    {$ibforums->lang['pph_title']}
    +

    {$ibforums->lang['pph_desc']}
    {$ibforums->lang['pph_max']}

    +
    {$ibforums->lang['pph_current']}
    +
    +

    $cur_photo
    $cur_type $show_size

    +
    +
    {$ibforums->lang['pph_change']}
    +
    - - - - - -
    {$data['TOPIC']['title']}{$data['TOPIC']['description']}
    -
    - - - - - - - -EOF; -} - -function topic_active_users($active=array()) { -global $ibforums; -return << - - - - - - -
    - - - - - -
    « vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$data[FORUM]['id']}&t={$data[TOPIC]['tid']}&view=old'>{$ibforums->lang['t_old']} | vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$data[FORUM]['id']}&t={$data[TOPIC]['tid']}&view=new'>{$ibforums->lang['t_new']} » - vars['php_ext']}?s={$ibforums->session_id}&act=Track&f={$data['FORUM']['id']}&t={$data['TOPIC']['tid']}'>{$ibforums->lang['track_topic']} | - vars['php_ext']}?s={$ibforums->session_id}&act=Forward&f={$data['FORUM']['id']}&t={$data['TOPIC']['tid']}'>{$ibforums->lang['forward']} | - vars['php_ext']}?s={$ibforums->session_id}&act=Print&client=printer&f={$data['FORUM']['id']}&t={$data['TOPIC']['tid']}'>{$ibforums->lang['print']}
    -
    {$ibforums->lang['active_users_title']} ({$ibforums->lang['active_users_detail']})
    {$ibforums->lang['active_users_members']} {$active['names']}
    - - -EOF; -} - -function Show_attachments_img($data) { -global $ibforums; -return <<
    {$ibforums->lang['pic_attach']}

    - - - - -
    {$ibforums->lang[
    -

    -EOF; -} - -function Show_attachments($data) { -global $ibforums; -return <<
    - - - - - - - - -
    User Attached Imagevars['php_ext']}?s={$ibforums->session_id}&act=Attach&type=post&id={$data['pid']}' target='_blank'>{$ibforums->lang['attach_dl']}
    {$data['name']} ( {$ibforums->lang['attach_hits']}: {$data['hits']} )
    -

    -EOF; -} - - -} +lang['tt_warn']} ({$percent}%) +EOF; +} + +function warn_level_rating($id, $level,$min=0,$max=10) { +global $ibforums; +return <<{$level} ) $max > +EOF; +} + + +function report_link($data) { +global $ibforums; +return <<input['st']}'><{P_REPORT}> +EOF; +} + +function ip_show($data) { +global $ibforums; +return <<{$ibforums->lang['ip']}: $data +EOF; +} + +function golastpost_link($fid, $tid) { +global $ibforums; +return <<{$ibforums->lang['go_new_post']} ) +EOF; +} + +function mm_start($tid) { +global $ibforums; +return << +

    + +
    +EOF; +} + +function Mod_Panel($data, $fid, $tid, $key="") { +global $ibforums; +return << +
    + + + + + +  
    + + +EOF; +} + +function mod_wrapper($id="", $text="") { +global $ibforums; +return <<$text +EOF; +} + + + + +function quick_reply_box_open($fid="",$tid="",$show="hide", $key="") { +global $ibforums; +return << + + +
    +
    +
    + + + + + + + + +
    +
    <{CAT_IMG}> {$ibforums->lang['qr_title']}
    +
    + +

    + {$ibforums->lang['show_emo']} | +  {$ibforums->lang['qr_add_smilie']} | +  {$ibforums->lang['qr_add_sig']} +

    +   + +    +
    +
    +
    +
    +EOF; +} + +function quick_reply_box_closed() { +global $ibforums; +return << + <{T_QREPLY}> +EOF; +} + +function start_poll_link($fid, $tid) { +global $ibforums; +return <<{$ibforums->lang['new_poll_link']} |  +EOF; +} + + + +function PageTop($data) { +global $ibforums; +return << + + + + + + + + + + + +
    {$data['TOPIC']['SHOW_PAGES']} {$data['TOPIC']['go_new']}{$data[TOPIC][REPLY_BUTTON]}<{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    +
    +
    +
    <{CAT_IMG}> {$data['TOPIC']['title']}{$data['TOPIC']['description']}
    + + + +EOF; +} + + +function RenderRow($post, $author) { +global $ibforums; +return << + + + + + + + + + + + + + +
    {$author['name']} + + + +
    + {$post['post_icon']}{$ibforums->lang['posted_on']} {$post['post_date']} +
    + + + +
    + {$post['report_link']}{$post['delete_button']}{$post['edit_button']}<{P_QUOTE}> +
    + +
    + {$author['avatar']}

    + {$author['title']}
    + {$author['member_rank_img']}

    + {$author['member_group']}
    + {$author['member_posts']}
    + {$author['member_number']}
    + {$author['member_joined']}

    + {$author['warn_text']} {$author['warn_minus']}{$author['warn_img']}{$author['warn_add']}

    + +
    +
    + +
    {$post['post']} {$post['attachment']}
    + {$post['signature']} + +
    {$post['ip_address']} + + + +
    + {$author['addresscard']}{$author['message_icon']}{$author['email_icon']}{$author['website_icon']}{$author['integ_icon']}{$author['icq_icon']}{$author['aol_icon']}{$author['yahoo_icon']}{$author['msn_icon']} +
    + + + +
    + Top +
    +
    +
    + +EOF; +} + +function TableFooter($data) { +global $ibforums; +return << + +
    + +
    + + + + + +
    {$data[TOPIC][SHOW_PAGES]}{$data[TOPIC][REPLY_BUTTON]}<{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    + + + + +
    + +
    {$data[FORUM]['JUMP']}
    + +
    +EOF; +} + +function topic_opts_open($fid, $tid) { +global $ibforums; +return <<
    {$ibforums->lang['birthday']} - - - -
    + + + + + + +
    {$ibforums->lang['pph_url']}  ({$ibforums->lang['pp_restore']})
    +
    + +      +
    + EOF; } -function email_change($txt="") { +function photo_page_autosize() { global $ibforums; return <<{$ibforums->lang['change_email_title']} - + +   + {$ibforums->lang['pph_autosize']}
    ({$ibforums->lang['pph_as_desc']}) + +EOF; +} -
    - - - - - $txt - - - {$ibforums->lang['ce_new_email']} - - - - {$ibforums->lang['ce_new_email2']} - - - - - -
    +function photo_page_mansize() { +global $ibforums; +return << +   + {$ibforums->lang['width']}   {$ibforums->lang['height']}  + +EOF; +} + +function photo_page_upload($max_filesize) { +global $ibforums; +return << + {$ibforums->lang['pph_upload']} + + +EOF; +} + + + +function email_change($txt="", $msg="") { +global $ibforums; +return << + var msg = "$msg"; + if ( msg != "") + { + alert(msg); + } + + +
    + + +
    {$ibforums->lang['change_email_title']}
    +

    $txt

    + + + + + + + + + + + + + +
    {$ibforums->lang['ce_new_email']}
    {$ibforums->lang['ce_new_email2']}
    {$ibforums->lang['ec_passy']}
    + +
    +
    +EOF; +} + +function email_change_img($regid="") { +global $ibforums; +return <<{$ibforums->lang['ras_title']}
    + + + + + + + + + +
    {$ibforums->lang['ras_numbers']} + + Code Bit +  Code Bit +  Code Bit +  Code Bit +  Code Bit +  Code Bit +
    {$ibforums->lang['ras_text']}
    +EOF; +} + +function email_change_gd($regid="") { +global $ibforums; +return <<{$ibforums->lang['ras_title']} + + + + + + + + + +
    {$ibforums->lang['ras_numbers']} + + Code Bit +
    {$ibforums->lang['ras_text']}
    EOF; } function pass_change() { global $ibforums; return << - - - - - {$ibforums->lang['account_pass_title']} - - - {$ibforums->lang['pass_change_text']} - - - {$ibforums->lang['account_pass_old']} - - - - {$ibforums->lang['account_pass_new']} - - - - {$ibforums->lang['account_pass_new2']} - - - - - - +
    + + +
    {$ibforums->lang['account_pass_title']}
    +

    {$ibforums->lang['pass_change_text']}

    + + + + + + + + + + + + + +
    {$ibforums->lang['account_pass_old']}
    {$ibforums->lang['account_pass_new']}
    {$ibforums->lang['account_pass_new2']}
    +
    +
    EOF; } -function personal_splash() { + +function avatar_main($data, $formextra="", $hidden_field="", $key="") { global $ibforums; return <<{$ibforums->lang['personal_ops']} - - - {$ibforums->member['name']}, {$ibforums->lang['personal_ops_txt']} - - - vars['php_ext']}?s={$ibforums->session_id}&act=UserCP&CODE=01&MODE=2'>{$ibforums->lang['edit_profile']}

    {$ibforums->lang['edit_profile_txt']} - + + +
    {$ibforums->lang['av_current']}
    +
    {$data['current_avatar_image']}
    {$data['current_avatar_type']} {$data['current_avatar_dims']}
    +
    {$ibforums->lang['avatar_pre_title']}
    + +
    + + + + + +
    {$ibforums->lang['av_go_gal']}{$data['avatar_galleries']}  
    +
    + +
    + + +$hidden_field + + + + +
    + +     +
    +
    EOF; } -function member_title($title) { + +function avatar_gallery_start_table($title="", $av_gals="", $current_folder, $key="") { global $ibforums; return << - {$ibforums->lang['member_title']} - - +
    {$ibforums->lang['av_gallery_title']} $title
    +
    +
    {$ibforums->lang['av_gall_jump']} $av_gals  
    +
    +
    + + + + EOF; } -function personal_avatar($data, $formextra="", $hidden_field="") { + +function avatar_gallery_end_table() { global $ibforums; return << - - - - vars['php_ext']}' method='post' onload='checkTheBox' $formextra name='creator'> - - - - $hidden_field - - - - - - - - - - - - - +
    {$ibforums->lang['av_current']}
    {$ibforums->lang['this_avatar']}{$data[CUR_AV]}
    {$ibforums->lang['avatar_pre_title']}
    {$ibforums->lang['avatar_pre_txt']}{$data[AVATARS]}     {$data[SHOW_AVS]}
    +
    + +     +
    +
    EOF; } -function avatar_upload_field($text="") { +function avatar_gallery_start_row() { global $ibforums; return << - {$ibforums->lang['upload_avatar']} -
    $text - + + + EOF; } -function personal_avatar_URL($Profile, $avatar, $allowed_ext) { +function avatar_gallery_end_row() { global $ibforums; return << - {$ibforums->lang['avatar_url_title']} - - - {$ibforums->lang['avatar']}
    {$ibforums->lang['avatar_url_ext']}
    $allowed_ext - - - - - {$ibforums->lang['avatar_dims']}
    {$ibforums->lang['maximum']} {$ibforums->lang['width']} = {$ibforums->vars['av_width']} {$ibforums->lang['pixels']}
    {$ibforums->lang['maximum']} {$ibforums->lang['height']} = {$ibforums->vars['av_height']} {$ibforums->lang['pixels']}) - {$ibforums->lang['width']}     x   {$ibforums->lang['height']}   - + + + EOF; } -function personal_avatar_end() { +function avatar_gallery_cell_row($img, $txt, $form) { global $ibforums; return << - {$ibforums->lang['av_tt_one']} - - - {$ibforums->lang['av_tt_two']} - - - - - + +txt
      + +EOF; +} +function avatar_gallery_blank_row() { +global $ibforums; +return <<  + EOF; } -function personal_splash_av() { + +function avatar_autosize() { global $ibforums; return << - vars['php_ext']}?s={$ibforums->session_id}&act=UserCP&CODE=01&MODE=1'>{$ibforums->lang['avatar_ops']}

    {$ibforums->lang['avatar_ops_txt']} - + + + + + +
     {$ibforums->lang['av_autosize']}
    ({$ibforums->lang['av_as_desc']})
    EOF; } -function signature($sig, $t_sig) { +function avatar_mansize() { global $ibforums; return << + + + + + +
     {$ibforums->lang['width']}   {$ibforums->lang['height']} 
    +EOF; +} + +function avatar_external_title() { +global $ibforums; +return <<{$ibforums->lang['avatar_url_title']} +EOF; +} + +function avatar_limits() { +global $ibforums; +return <<{$ibforums->lang['av_settings']} +

    {$ibforums->lang['av_text_url']} {$ibforums->lang['av_text_upload']}
    {$ibforums->lang['av_allowed_files']}

    +EOF; +} + + +function avatar_upload_field() { +global $ibforums; +return << + + {$ibforums->lang['av_upload']} + + + +EOF; +} + +function avatar_url_field($avatar) { +global $ibforums; +return << + + {$ibforums->lang['av_url']} +   ({$ibforums->lang['pp_restore']}) + + +EOF; +} + + + +function signature($sig, $t_sig, $key) { +global $ibforums; +return << - -
    - - - - {$ibforums->lang['cp_current_sig']} - - - - - - - -
    $sig
    - - - - {$ibforums->lang['cp_edit_sig']} - - - -  {$ibforums->lang['bbcode_guided']}
    -  {$ibforums->lang['bbcode_normal']} - - - - - - - - - - - - - - -
    - - - - - -   {$ibforums->lang['js_close_all_tags']} -
    - - - - - - - -
    - -
    - {$ibforums->lang['hb_open_tags']}:  -
    - - - -
    ({$ibforums->lang['check_length']}) - - - - -
    +
    + + + +
    {$ibforums->lang['cp_current_sig']}
    +
    $sig
    +
    {$ibforums->lang['cp_edit_sig']}
    + + + + + +
    +  {$ibforums->lang['bbcode_guided']}
    +  {$ibforums->lang['bbcode_normal']} + +
    + + + + + +   {$ibforums->lang['js_close_all_tags']} +
    + + + + + + + +
    + +
    + {$ibforums->lang['hb_open_tags']}:  +
    + +
    +
    EOF; } function personal_panel($Profile) { global $ibforums; return << + -
    - - - - - {$ibforums->lang['profile_title']} - - - - - - {$ibforums->lang['website']} - - - - {$ibforums->lang['icq']} - - - - {$ibforums->lang['aol']} - - - - {$ibforums->lang['yahoo']} - - - - {$ibforums->lang['msn']} - - - - {$ibforums->lang['location']}
    ({$ibforums->lang['check_length']}) - - - - {$ibforums->lang['interests']}
    ({$ibforums->lang['check_length']}) - - - - - - - -
    +
    + + + + +
    {$ibforums->lang['profile_title']}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['website']}
    {$ibforums->lang['icq']}
    {$ibforums->lang['aol']}
    {$ibforums->lang['yahoo']}
    {$ibforums->lang['msn']}
    {$ibforums->lang['integ_msg']}
    {$ibforums->lang['location']}
    ({$ibforums->lang['check_length']})
    {$ibforums->lang['interests']}
    ({$ibforums->lang['check_length']})
    +
    +EOF; +} + +function birthday($day,$month,$year) { +global $ibforums; +return << + {$ibforums->lang['birthday']} + + + + + + +EOF; +} + +function member_title($title) { +global $ibforums; +return << + {$ibforums->lang['member_title']} + + EOF; } function required_title() { global $ibforums; return <<{$ibforums->lang['cf_required']} - - +
    {$ibforums->lang['cf_required']}
    + +EOF; +} + +function required_end() { +global $ibforums; +return << EOF; } function field_entry($title, $desc="", $content) { global $ibforums; return << - - - + + + + EOF; } function field_textinput($name, $value="") { global $ibforums; return << + EOF; } @@ -539,329 +763,320 @@ EOF; function Menu_bar($base_url) { global $ibforums; return << -
    $title
    $desc
    $content
    $title
    $desc
    $content
    - - - - - - - - - - - - - - - - - - - - - +
    {$ibforums->lang['stats_header']}
    +
    -   -
    - - - - - - - - + +
      
    - - - - - -
    - - {$ibforums->lang['m_messenger']}
    -
    - • {$ibforums->lang['mess_inbox']}
    - • {$ibforums->lang['mess_new']}
    - • {$ibforums->lang['mess_contact']}
    - • {$ibforums->lang['mess_folders']}
    - • {$ibforums->lang['mess_archive']}
    - • {$ibforums->lang['mess_saved']}
    - • {$ibforums->lang['mess_tracker']}
    -
    - - - - {$ibforums->lang['m_tracker']}
    -
    - • {$ibforums->lang['m_view_subs']}
    - • {$ibforums->lang['m_view_forum']}
    -
    - - - {$ibforums->lang['m_personal']}
    -
    - • {$ibforums->lang['m_contact_info']}
    - - • {$ibforums->lang['m_sig_info']}
    - • {$ibforums->lang['m_avatar_info']}
    - + + + + + + + - -
    +
    {$ibforums->lang['tt_menu']}
    + + +
    {$ibforums->lang['m_messenger']}
    +

    + · {$ibforums->lang['mess_new']}
    + · {$ibforums->lang['mess_inbox']}
    + + · {$ibforums->lang['mi_prune_msg']}
    + · {$ibforums->lang['mess_folders']}
    + · {$ibforums->lang['mess_contact']}
    + · {$ibforums->lang['mess_archive']}
    + · {$ibforums->lang['mess_saved']}
    + · {$ibforums->lang['mess_tracker']}
    +

    + + +
    {$ibforums->lang['m_tracker']}
    +

    + · {$ibforums->lang['m_view_subs']}
    + · {$ibforums->lang['m_view_forum']}
    +

    + +
    {$ibforums->lang['m_personal']}
    +

    + · {$ibforums->lang['m_contact_info']}
    + · {$ibforums->lang['m_sig_info']}
    + · {$ibforums->lang['m_avatar_info']}
    + · {$ibforums->lang['m_change_photo']}
    +

    + +
    {$ibforums->lang['m_options']}
    +

    + + · {$ibforums->lang['m_email_opt']}
    + · {$ibforums->lang['m_board_opt']}
    + · {$ibforums->lang['m_skin_lang']}
    + · {$ibforums->lang['m_email_change']}
    + · {$ibforums->lang['m_passy_opt']} +

    +
    +
    {$ibforums->lang['welcome']}
    + +EOF; +} - -
    - {$ibforums->lang['m_options']}
    -
    - • {$ibforums->lang['m_email_opt']}
    - • {$ibforums->lang['m_board_opt']}
    - • {$ibforums->lang['m_skin_lang']}
    - • {$ibforums->lang['m_email_change']}
    - • {$ibforums->lang['m_passy_opt']}
    - - -
    -
    - - - - +function tsl_links() { +global $ibforums; +return << +
    {$ibforums->lang['m_top_list']}
    +

    + · {$ibforums->lang['tsl_home']}
    + · {$ibforums->lang['tsl_your_sites']}
    +

    +EOF; +} + + +function menu_bar_new_link($url, $name) { +global $ibforums; +return <<$name
    +EOF; +} + + +function menu_bar_msg_folder_link($id, $real) { +global $ibforums; +return <<$real
    EOF; } function CP_end() { global $ibforums; return << - -
    -
    -
    + +
    EOF; } function splash($member) { global $ibforums; return <<{$ibforums->lang['stats_header']}
    - - - - - - - - - - - - - - - - - -
    {$ibforums->lang['email_address']}{$member[MEMBER_EMAIL]}
    {$ibforums->lang['number_posts']}{$member[MEMBER_POSTS]}
    {$ibforums->lang['registered']}{$member[DATE_REGISTERED]}
    {$ibforums->lang['daily_average']}{$member[DAILY_AVERAGE]}
    -
    {$ibforums->lang['messenger_summary']}
    - - - - - - - - - -
    {$ibforums->lang['total_messages']}{$member['total_messages']} {$member['full_percent']}
    {$ibforums->lang['messages_left']}{$member['space_free']} {$member['full_messenger']}
    -
    {$ibforums->lang['note_pad']}
    -
    - - - - - - - -
    - -
    -
    - - - - - -
    {$ibforums->lang['ta_size']}  - - -
    -
    -
    + + + + + + + + + + + + + + + + +
    {$ibforums->lang['email_address']}{$member[MEMBER_EMAIL]}
    {$ibforums->lang['number_posts']}{$member[MEMBER_POSTS]}
    {$ibforums->lang['registered']}{$member[DATE_REGISTERED]}
    {$ibforums->lang['daily_average']}{$member[DAILY_AVERAGE]}
    + +
    {$ibforums->lang['messenger_summary']}
    + + + + + + + + + +
    {$ibforums->lang['total_messages']}{$member['total_messages']} {$member['full_percent']}
    {$ibforums->lang['messages_left']}{$member['space_free']} {$member['full_messenger']}
    + +
    {$ibforums->lang['note_pad']}
    +
    +

    +

    + + + + +
    + {$ibforums->lang['ta_size']}  + +
    +

    +
    + EOF; } -function settings_header($Profile, $time_select, $time, $dst_check) { +function dead_section() { global $ibforums; return << - - - - - - {$ibforums->lang['settings_time']} - - - {$ibforums->lang['settings_time_txt']}
    $time - - - $time_select - - - {$ibforums->lang['dst_box']} - - +
    {$ibforums->lang['dead_section_title']}
    +

    +{$ibforums->lang['dead_section_text']} +

    EOF; } -function skin_lang_header($lang_select) { + +function settings_header($Profile, $time_select, $time, $dst_check, $key="") { global $ibforums; return << - - + + window.open( "$ibforums->js_base_url" + 'skinid='+f.options[f.selectedIndex].value, 'Preview', 'width=800,height=600,top=0,left=0,resizable=1,scrollbars=1,location=no,directories=no,status=no,menubar=no,toolbar=no'); + + } + --> + -
    - - - - - {$ibforums->lang['settings_title']} - - - {$ibforums->lang['settings_lang_txt']} - $lang_select - + + + +
    {$ibforums->lang['settings_title']}
    + + + + + +
    {$ibforums->lang['settings_lang_txt']}$lang_select
    EOF; } function settings_skin($skin) { global $ibforums; return << - {$ibforums->lang['settings_skin']} - - - {$ibforums->lang['settings_skin_txt']} - $skin    - + +
    {$ibforums->lang['settings_skin']}
    + + + + + +
    {$ibforums->lang['settings_skin_txt']}$skin   
    + EOF; } function skin_lang_end() { global $ibforums; return << - - +
    + EOF; } function settings_end($data) { global $ibforums; return << - {$ibforums->lang['settings_display']} - - - {$ibforums->lang['settings_viewsig']} - {$data[SIG]} - - - {$ibforums->lang['settings_viewimg']} - {$data[IMG]} - - - {$ibforums->lang['settings_viewava']} - {$data[AVA]} - - - {$ibforums->lang['settings_dopopup']} - {$data[POP]} - - - {$ibforums->lang['hide_session_txt']} - {$data[SESS]} - - - {$ibforums->lang['pp_number_posts']} - - - - {$ibforums->lang['pp_number_topics']} - - - - - +
    {$ibforums->lang['settings_display']}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {$ibforums->lang['settings_viewsig']}{$data[SIG]}
    {$ibforums->lang['settings_viewimg']}{$data[IMG]}
    {$ibforums->lang['settings_viewava']}{$data[AVA]}
    {$ibforums->lang['settings_dopopup']}{$data[POP]}
    {$ibforums->lang['open_qr']}
    {$data[QR]}
    {$ibforums->lang['pp_number_posts']}
    {$ibforums->lang['pp_number_topics']}
    + {$ibforums->lang['need_cookie_yum_yum']} +
    + EOF; } function email($Profile) { global $ibforums; return << - - - - {$ibforums->lang['privacy_settings']} - - - - {$ibforums->lang['hide_email']} - - - - {$ibforums->lang['admin_send']} - - - {$ibforums->lang['board_prefs']} - - - - {$ibforums->lang['send_full_msg']} - - - - {$ibforums->lang['pm_reminder']} - - - - {$ibforums->lang['auto_track']} - - - - - - +
    + + +
    {$ibforums->lang['privacy_settings']}
    +
    + + + + + + + + + +
    {$ibforums->lang['hide_email']}
    {$ibforums->lang['admin_send']}
    +
    +
    {$ibforums->lang['board_prefs']}
    +
    + + + + + + + + + + + + + +
    {$ibforums->lang['send_full_msg']}
    {$ibforums->lang['pm_reminder']}
    {$ibforums->lang['auto_track']}
    +
    +
    +
    EOF; } @@ -869,44 +1084,43 @@ function forum_subs_header() { global $ibforums; return <<{$ibforums->lang['forum_subs_header']} - - - - - - - - - - - +
    {$ibforums->lang['forum_subs_header']}
    +
    +
    +
     {$ibforums->lang['ft_forum']}{$ibforums->lang['ft_topics']}{$ibforums->lang['ft_posts']}{$ibforums->lang['ft_last_post']}
    + + + + + + + EOF; } function forum_subs_row($data) { global $ibforums; return << - - - - - - + + + + + + + EOF; } function forum_subs_none() { global $ibforums; return << - - + + + EOF; } @@ -914,11 +1128,10 @@ function forum_subs_end() { global $ibforums; return << - +
     {$ibforums->lang['ft_forum']}{$ibforums->lang['ft_topics']}{$ibforums->lang['ft_posts']}{$ibforums->lang['ft_last_post']}
    {$data['folder_icon']} - {$data['name']} -
    {$data['description']} -

    [ {$ibforums->lang['ft_unsub']} ] -
    {$data['topics']}{$data['posts']}{$data['last_post']}
    {$ibforums->lang['in']} {$data['last_topic']}
    {$ibforums->lang['by']} {$data['last_poster']}
    {$data['folder_icon']} + {$data['name']} +
    {$data['description']} +

    [ {$ibforums->lang['ft_unsub']} ] +
    {$data['topics']}{$data['posts']}{$data['last_post']}
    {$ibforums->lang['in']} {$data['last_topic']}
    {$ibforums->lang['by']} {$data['last_poster']}
    {$ibforums->lang['forum_subs_none']}
    {$ibforums->lang['forum_subs_none']}
    {$ibforums->lang['ft_unsub_all']}{$ibforums->lang['ft_unsub_all']}
    - - + EOF; } @@ -926,69 +1139,66 @@ function subs_header() { global $ibforums; return << - - - {$ibforums->lang['subs_header']} - -
    - - - - - - - - - - - - - - - - + + +
    {$ibforums->lang['subs_header']}
    + + + + +
    +
    +
     {$ibforums->lang['subs_topic']}{$ibforums->lang['subs_replies']}{$ibforums->lang['subs_view']}{$ibforums->lang['subs_last_post']}
    + + + + + + + + EOF; } function subs_row($data) { global $ibforums; return << - - - - - - - + + + + + + + + EOF; } @@ -997,7 +1207,7 @@ function subs_none() { global $ibforums; return << - + EOF; } @@ -1006,7 +1216,7 @@ function subs_forum_row($fid, $fname) { global $ibforums; return << - + EOF; } @@ -1017,79 +1227,24 @@ return << -
     {$ibforums->lang['subs_topic']}{$ibforums->lang['subs_replies']}{$ibforums->lang['subs_view']}{$ibforums->lang['subs_last_post']}
    {$data['folder_icon']}vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$data['forum_id']}&t={$data['tid']}'>{$data['title']} ( vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$data['forum_id']}&t={$data['tid']}' target='_blank'>{$ibforums->lang['new_window']} )
    {$data['description']}{$ibforums->lang['subs_start']} {$data['start_date']}
    {$data['posts']}{$data['views']}{$data['last_post_date']}
    {$ibforums->lang['subs_by']} {$data['last_poster']}
    {$data['folder_icon']}{$data['title']} ( {$ibforums->lang['new_window']} )
    {$data['description']}{$ibforums->lang['subs_start']} {$data['start_date']}
    {$data['posts']}{$data['views']}{$data['last_post_date']}
    {$ibforums->lang['subs_by']} {$data['last_poster']}
    {$ibforums->lang['subs_none']}{$ibforums->lang['subs_none']}
    $fname$fname
      {$ibforums->lang['with_selected']}
    -
    - - - - - - - -
    $text
    -
    + +
    + +
    $text
    +
    +
    {$ibforums->lang['show_topics_from']}
    -
    - + EOF; } function forum_jump($data, $menu_extra="") { global $ibforums; return << - - -
    - - - - - -
    -
    - -
    -
    {$data}
    -
    +
    {$data}
    EOF; } diff --git a/upload/admin.php b/upload/admin.php index 1f741bda..abdade33 100644 --- a/upload/admin.php +++ b/upload/admin.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| IBFORUMS v1 +| Invision Power Board v1.3 Final | ======================================== -| by Matthew Mecham and David Baxter -| (c) 2001,2002 IBForums -| http://www.ibforums.com +| by Matthew Mecham +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin wrapper script @@ -31,7 +33,7 @@ $is_on_tripod = 0; // Root path -$root_path = "./"; +define( 'ROOT_PATH', './' ); // Check IP address to see if they match? // this may cause problems for users on proxies @@ -43,8 +45,13 @@ $check_ip = 1; // in the admin center? $use_gzip = 1; - - + +// Enable module usage? +// (Vital for some mods and IPB enhancements) + +define ( 'USE_MODULES', 1 ); + + /*----------------------------------------------- NO USER EDITABLE SECTIONS BELOW ------------------------------------------------*/ @@ -52,6 +59,8 @@ $use_gzip = 1; error_reporting (E_ERROR | E_WARNING | E_PARSE); set_magic_quotes_runtime(0); +define ( 'IN_ACP', 1 ); + if ( $is_on_tripod != 1 ) { if (function_exists('ini_get')) @@ -97,14 +106,22 @@ class Debug { class info { - var $vars = ""; - var $version = '1.0'; - + var $vars = ""; + var $version = '1.3'; + var $acpversion = '13005'; + var $base_url = ''; function info($INFO) { //global $INFO; $this->vars = $INFO; + + $this->vars['TEAM_ICON_URL'] = $INFO['html_url'] . '/team_icons'; + $this->vars['AVATARS_URL'] = $INFO['html_url'] . '/avatars'; + $this->vars['EMOTICONS_URL'] = $INFO['html_url'] . '/emoticons'; + $this->vars['mime_img'] = $INFO['html_url'] . '/mime_types'; + + $this->base_url = $INFO['board_url']."/index.".$INFO['php_ext'].'?'; } } @@ -114,7 +131,7 @@ class info { Import $INFO ------------------------------------------------*/ -require $root_path."conf_global.php"; +require ROOT_PATH."conf_global.php"; $ibforums = new info($INFO); @@ -140,7 +157,7 @@ $PassWord = ""; Load up our classes (compiled into one package) ------------------------------------------------*/ -require $root_path."sources/functions.php"; +require ROOT_PATH."sources/functions.php"; $std = new FUNC; @@ -152,26 +169,30 @@ $IN = $std->parse_incoming(); $IN['AD_SESS'] = $HTTP_POST_VARS['adsess'] ? $HTTP_POST_VARS['adsess'] : $HTTP_GET_VARS['adsess']; +$IN['AD_SESS'] = $std->clean_value( $IN['AD_SESS'] ); + /*----------------------------------------------- Import $PAGES and $CATS ------------------------------------------------*/ -require $root_path."sources/Admin/admin_pages.php"; +require ROOT_PATH."sources/Admin/admin_pages.php"; /*----------------------------------------------- Import Skinable elements ------------------------------------------------*/ -require $root_path."sources/Admin/admin_skin.php"; +require ROOT_PATH."sources/Admin/admin_skin.php"; $SKIN = new admin_skin(); +$skin_universal = &$SKIN; //To keep functions.php happy + /*----------------------------------------------- Import Admin Functions ------------------------------------------------*/ -require $root_path."sources/Admin/admin_functions.php"; +require ROOT_PATH."sources/Admin/admin_functions.php"; $ADMIN = new admin_functions(); @@ -181,7 +202,7 @@ $ADMIN = new admin_functions(); $INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver']; -$to_require = $root_path."sources/Drivers/".$INFO['sql_driver'].".php"; +$to_require = ROOT_PATH."sources/Drivers/".$INFO['sql_driver'].".php"; require ($to_require); $DB = new db_driver; @@ -205,6 +226,30 @@ $DB->connect(); // Good eh? //------------------------------------------------ + +//------------------------------------------------ +// Sort out settings cookie +//------------------------------------------------ + +$INFO['menu'] = 0; +$INFO['tx'] = 80; +$INFO['ty'] = 40; +$INFO['preview'] = ""; + +if ( $cookie = $std->my_getcookie('acpprefs') ) +{ + list( $INFO['menu'], $INFO['tx'], $INFO['ty'], $INFO['preview'] ) = explode( ",", $cookie ); +} + +//------------------------------------------------ +// ME 'N U! +//------------------------------------------------ + +if ( ! isset($IN['show']) ) +{ + $IN['show'] = $std->my_getcookie('acpmenu'); +} + if ($IN['show'] == 'none') { $IN['show'] = ""; @@ -372,7 +417,9 @@ else // DB //---------------------------------- - $DB->query("SELECT name, password, id, mgroup FROM ibf_members WHERE LOWER(name)='".strtolower($IN['username'])."'"); + $username = strtolower(str_replace( '|', '|', $IN['username']) ); + + $DB->query("SELECT name, password, id, mgroup FROM ibf_members WHERE LOWER(name)='".$username."'"); $mem = $DB->fetch_row(); if ( empty($mem['id']) ) @@ -502,7 +549,7 @@ else function do_login($message="") { - global $IN, $DB, $ADMIN, $SKIN; + global $IN, $DB, $ADMIN, $SKIN, $std; //------------------------------------------------------- // Remove all out of date sessions, like a good boy. Woof. @@ -527,6 +574,29 @@ function do_login($message="") { //--> "; + //+------------------------------------------------------ + //| SEMI-AUTO Log in ma-thingy? + //+------------------------------------------------------ + + $name = ""; + $extra = ""; + + $mid = intval( $std->my_getcookie('member_id') ); + + if ( $mid > 0 ) + { + $DB->query("SELECT m.id, m.name, m.mgroup, g.g_access_cp FROM ibf_members m, ibf_groups g WHERE m.id=$mid AND g.g_id=m.mgroup AND g.g_access_cp=1"); + + if ( $r = $DB->fetch_row() ) + { + $name = $r['name']; + $extra = 'onload="document.theAdminForm.password.focus();"'; + } + } + + //+------------------------------------------------------ + //| SHW DA FRM (txt msg stylee) + //+------------------------------------------------------ $ADMIN->html .= $SKIN->start_form( array( 1 => array('login', 'yes') ) ); @@ -536,7 +606,7 @@ function do_login($message="") { $ADMIN->html .= $SKIN->start_table( "Verification Required" ); $ADMIN->html .= $SKIN->add_td_row( array( "Your Forums Username:", - "", + "", ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Your Forums Password:", @@ -546,6 +616,10 @@ function do_login($message="") { $ADMIN->html .= $SKIN->end_form("Log in"); $ADMIN->html .= $SKIN->end_table(); + + $SKIN->top_extra = $extra; + + $ADMIN->no_jump = 1; $ADMIN->output(); @@ -556,7 +630,20 @@ function do_login($message="") { function do_admin_stuff() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + + if ( $INFO['ipb_reg_number'] ) + { + list( $a, $b, $c, $d, $e ) = explode( '-', $INFO['ipb_reg_number'] ); + + if ( strlen($e) > 9 ) + { + if ( time() > $e ) + { + $ADMIN->rebuild_config( array( 'ipb_reg_number' => '' ) ); + } + } + } /*---------------------------------- @@ -590,6 +677,16 @@ function do_admin_stuff() { 'adminlog' => "adminlogs", 'ips' => 'ips', 'mysql' => 'mysql', + 'pin' => 'plugins', + 'emaillog' => 'emaillogs', + 'multimod' => 'multi_moderate', + 'prefs' => "prefs", + 'spiderlog' => "spiderlogs", + 'warnlog' => "warnlogs", + 'csite' => 'ad_dynamiclite', + 'msubs' => 'subsmanager', + 'mtools' => 'member_tools', + 'skinfix' => 'skinfix', ); @@ -598,7 +695,8 @@ function do_admin_stuff() { $IN['act'] = $IN['act'] == '' ? "idx" : $IN['act']; // Check to make sure the array key exits.. - if (! isset($choice[$IN['act']]) ) { + if (! isset($choice[$IN['act']]) ) + { $IN['act'] = 'idx'; } @@ -613,9 +711,13 @@ function do_admin_stuff() { { $ADMIN->menu(); } + else if ($IN['act'] == 'csite') + { + require ROOT_PATH."sources/dynamiclite/ad_dynamiclite.php"; + } else { - require $root_path."sources/Admin/ad_".$choice[$IN['act']].".php"; + require ROOT_PATH."sources/Admin/ad_".$choice[$IN['act']].".php"; } } diff --git a/upload/cache/css_1.css b/upload/cache/css_1.css new file mode 100644 index 00000000..f3bf1190 --- /dev/null +++ b/upload/cache/css_1.css @@ -0,0 +1,133 @@ +/* FIX IE6 Scrollbars bug - Leave this in! */ +html { overflow-x: auto; } + +/* Body entry, change forum page background colour, default font, font size, etc. Leave text-align:center to center board content + #ipwrapper will set text-align back to left for the forum. Any other tables / divs you use must use text-align:left to re-align + the content properly. This is a work around to a known Internet Explorer bug */ +BODY { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; color: #000; margin:0px;padding:0px;background-color:#FFF; text-align:center } +TABLE, TR, TD { font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; color: #000; } + +/* MAIN WRAPPER: Adjust forum width here. Leave margins alone to auto-center content */ +#ipbwrapper { text-align:left; width:95%; margin-left:auto;margin-right:auto } +#ipbwrapper img { vertical-align:middle; border: 0px } + +a:link, a:visited, a:active { text-decoration: underline; color: #000 } +a:hover { color: #465584; text-decoration:underline } + +fieldset.search { padding:6px; line-height:150% } +label { cursor:pointer; } +form { display:inline; } +img.attach { border:2px outset #EEF2F7;padding:2px } + +.googleroot { padding:6px; line-height:130% } +.googlechild { padding:6px; margin-left:30px; line-height:130% } +.googlebottom, .googlebottom a:link, .googlebottom a:visited, .googlebottom a:active { font-size:11px; color: #3A4F6C; } +.googlish, .googlish a:link, .googlish a:visited, .googlish a:active { font-size:14px; font-weight:bold; color:#00D; } +.googlepagelinks { font-size:1.1em; letter-spacing:1px } +.googlesmall, .googlesmall a:link, .googlesmall a:active, .googlesmall a:visited { font-size:10px; color:#434951 } + +li.helprow { padding:0px; margin:0px 0px 10px 0px } +ul#help { padding:0px 0px 0px 15px } + +option.cat { font-weight:bold; } +option.sub { font-weight:bold;color:#555 } +.caldate { text-align:right;font-weight:bold;font-size:11px;color:#777;background-color:#DFE6EF;padding:4px;margin:0px } + +.warngood { color:green } +.warnbad { color:red } + +#padandcenter { margin-left:auto;margin-right:auto;text-align:center;padding:14px 0px 14px 0px } + +#profilename { font-size:28px; font-weight:bold; } +#calendarname { font-size:22px; font-weight:bold; } + +#photowrap { padding:6px; } +#phototitle { font-size:24px; border-bottom:1px solid black } +#photoimg { text-align:center; margin-top:15px } + +#ucpmenu { line-height:150%;width:22%; border:1px solid #345487;background-color: #F5F9FD } +#ucpmenu p { padding:2px 5px 6px 9px;margin:0px; } +#ucpcontent { background-color: #F5F9FD; border:1px solid #345487;line-height:150%; width:auto } +#ucpcontent p { padding:10px;margin:0px; } + +#ipsbanner { position:absolute;top:1px;right:5%; } +#logostrip { border:1px solid #345487;background-color: #3860BB;background-image:url(style_images/<#IMG_DIR#>/tile_back.gif);padding:0px;margin:0px; } +#submenu { border:1px solid #BCD0ED;background-color: #DFE6EF;font-size:10px;margin:3px 0px 3px 0px;color:#3A4F6C;font-weight:bold;} +#submenu a:link, #submenu a:visited, #submenu a:active { font-weight:bold;font-size:10px;text-decoration: none; color: #3A4F6C; } +#userlinks { border:1px solid #C2CFDF; background-color: #F0F5FA } + +#navstrip { font-weight:bold;padding:6px 0px 6px 0px; } + +.activeuserstrip { background-color:#BCD0ED; padding:6px } + +/* Form stuff (post / profile / etc) */ +.pformstrip { background-color: #D1DCEB; color:#3A4F6C;font-weight:bold;padding:7px;margin-top:1px } +.pformleft { background-color: #F5F9FD; padding:6px; margin-top:1px;width:25%; border-top:1px solid #C2CFDF; border-right:1px solid #C2CFDF; } +.pformleftw { background-color: #F5F9FD; padding:6px; margin-top:1px;width:40%; border-top:1px solid #C2CFDF; border-right:1px solid #C2CFDF; } +.pformright { background-color: #F5F9FD; padding:6px; margin-top:1px;border-top:1px solid #C2CFDF; } + +/* Topic View elements */ +.signature { font-size: 10px; color: #339; line-height:150% } +.postdetails { font-size: 10px } +.postcolor { font-size: 12px; line-height: 160% } + +.normalname { font-size: 12px; font-weight: bold; color: #003 } +.normalname a:link, .normalname a:visited, .normalname a:active { font-size: 12px } +.unreg { font-size: 11px; font-weight: bold; color: #900 } + +.post1 { background-color: #F5F9FD } +.post2 { background-color: #EEF2F7 } +.postlinksbar { background-color:#D1DCEB;padding:7px;margin-top:1px;font-size:10px; background-image: url(style_images/<#IMG_DIR#>/tile_sub.gif) } + +/* Common elements */ +.row1 { background-color: #F5F9FD } +.row2 { background-color: #DFE6EF } +.row3 { background-color: #EEF2F7 } +.row4 { background-color: #E4EAF2 } + +.darkrow1 { background-color: #C2CFDF; color:#4C77B6; } +.darkrow2 { background-color: #BCD0ED; color:#3A4F6C; } +.darkrow3 { background-color: #D1DCEB; color:#3A4F6C; } + +.hlight { background-color: #DFE6EF } +.dlight { background-color: #EEF2F7 } + +.titlemedium { font-weight:bold; color:#3A4F6C; padding:7px; margin:0px; background-image: url(style_images/<#IMG_DIR#>/tile_sub.gif) } +.titlemedium a:link, .titlemedium a:visited, .titlemedium a:active { text-decoration: underline; color: #3A4F6C } + +/* Main table top (dark blue gradient by default) */ +.maintitle { vertical-align:middle;font-weight:bold; color:#FFF; padding:8px 0px 8px 5px; background-image: url(style_images/<#IMG_DIR#>/tile_back.gif) } +.maintitle a:link, .maintitle a:visited, .maintitle a:active { text-decoration: none; color: #FFF } +.maintitle a:hover { text-decoration: underline } + +/* tableborders gives the white column / row lines effect */ +.plainborder { border:1px solid #345487;background-color:#F5F9FD } +.tableborder { border:1px solid #345487;background-color:#FFF; padding:0; margin:0 } +.tablefill { border:1px solid #345487;background-color:#F5F9FD;padding:6px; } +.tablepad { background-color:#F5F9FD;padding:6px } +.tablebasic { width:100%; padding:0px 0px 0px 0px; margin:0px; border:0px } + +.wrapmini { float:left;line-height:1.5em;width:25% } +.pagelinks { float:left;line-height:1.2em;width:35% } + +.desc { font-size:10px; color:#434951 } +.edit { font-size: 9px } + + +.searchlite { font-weight:bold; color:#F00; background-color:#FF0 } + +#QUOTE { white-space:normal; font-family: Verdana, Arial; font-size: 11px; color: #465584; background-color: #FAFCFE; border: 1px solid #000; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px } +#CODE { white-space:normal; font-family: Courier, Courier New, Verdana, Arial; font-size: 11px; color: #465584; background-color: #FAFCFE; border: 1px solid #000; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px } + +.copyright { font-family: Verdana, Tahoma, Arial, Sans-Serif; font-size: 9px; line-height: 12px } + +.codebuttons { font-size: 10px; font-family: verdana, helvetica, sans-serif; vertical-align: middle } +.forminput, .textinput, .radiobutton, .checkbox { font-size: 11px; font-family: verdana, helvetica, sans-serif; vertical-align: middle } + +.thin { padding:6px 0px 6px 0px;line-height:140%;margin:2px 0px 2px 0px;border-top:1px solid #FFF;border-bottom:1px solid #FFF } + +.purple { color:purple;font-weight:bold } +.red { color:red;font-weight:bold } +.green { color:green;font-weight:bold } +.blue { color:blue;font-weight:bold } +.orange { color:#F90;font-weight:bold } \ No newline at end of file diff --git a/upload/cache/index.html b/upload/cache/index.html new file mode 100644 index 00000000..52a588b2 --- /dev/null +++ b/upload/cache/index.html @@ -0,0 +1 @@ + Invision Power Board - Bulletin Board System

    403: Invision Power Board -> Forbidden


    You have reached this Page in error, please use your back button to return to Invision Board.
    Invision Power Board \ No newline at end of file diff --git a/upload/conf_global.php b/upload/conf_global.php index dfcc6bc6..eb97449f 100644 --- a/upload/conf_global.php +++ b/upload/conf_global.php @@ -29,7 +29,7 @@ $INFO['member_group'] = '3'; $INFO['guest_group'] = '2'; $INFO['boardname'] = 'IBForums'; $INFO['board_desc'] = 'Website forums'; -$INFO['board_name'] = 'IBForums'; +$INFO['board_name'] = 'Invision Power Board'; $INFO['php_ext'] = 'php'; $INFO['board_url'] = ''; $INFO['match_browser'] = '0'; @@ -60,7 +60,7 @@ $INFO['etfilter_shout'] = '0'; $INFO['flood_control'] = '30'; $INFO['force_login'] = '0'; $INFO['show_img_upload'] = '1'; -$INFO['home_name'] = 'ibforums.com'; +$INFO['home_name'] = 'Site Home'; $INFO['home_url'] = 'http://localhost'; $INFO['hot_topic'] = '15'; $INFO['html_dir'] = ''; diff --git a/upload/conf_mime_types.php b/upload/conf_mime_types.php index f2dce851..5a4c7b23 100644 --- a/upload/conf_mime_types.php +++ b/upload/conf_mime_types.php @@ -6,10 +6,11 @@ $mime_types = array( // mime allow post img type allow avatar "application/pdf" => array( 1, 'pdf.gif' , 'PDF Document' ) , - "image/x-png" => array( 1, 'quicktime.gif' , 'PNG Image' ) , + "image/x-png" => array( 1, 'quicktime.gif' , 'PNG Image' , 1 ) , + "image/png" => array( 1, 'quicktime.gif' , 'PNG Image' , 1 ) , "video/vivo" => array( 1, 'win_player.gif', 'VIVO Movie' ) , "application/x-compress" => array( 1, 'zip.gif' , 'Compressed File') , - "video/x-msvideo" => array( 1, 'win_player.gif' , 'MS Video' ) , + "video/x-msvideo" => array( 1, 'win_player.gif', 'MS Video' ) , "text/html" => array( 1, 'html.gif' , 'HTML Page' ) , "audio/x-pn-realaudio" => array( 1, 'real_audio.gif', 'Real Audio File') , "image/gif" => array( 1, 'gif.gif' , 'GIF Image' ,1 ) , @@ -35,6 +36,8 @@ $mime_types = array( "application/octet-stream" => array( 1, 'quicktime.gif' , 'OCTET Stream' ) , "text/plain" => array( 1, 'text.gif' , 'Text File' ) , "image/pjpeg" => array( 1, 'jpeg.gif' , 'JPEG Image' ,1) , + "application/x-shockwave-flash"=> array( 0, 'quicktime.gif' , 'Flash' ,0) , + ); diff --git a/upload/css.php b/upload/css.php new file mode 100644 index 00000000..0a498439 --- /dev/null +++ b/upload/css.php @@ -0,0 +1,34 @@ +", $img_id, $data ); + +@header( "Content-type: text/css" ); +print $data; +exit(); + +?> \ No newline at end of file diff --git a/upload/fonts/font_license.txt b/upload/fonts/font_license.txt new file mode 100644 index 00000000..6ff78f96 --- /dev/null +++ b/upload/fonts/font_license.txt @@ -0,0 +1,33 @@ +Fonts by Tom Murphy 7 +--------------------- + +http://fonts.tom7.com/ + +This is the official version of the license for all the fonts (except where noted). It supercedes any other licenses circulating. + +I am employing a very generous license with these fonts (the way I think most software should be) for a number of reasons. Mainly though, it is because I would be making fonts regardless of whether I was distributing them or not, and because I know that people benefit from the fact that I give them away. I take enough stuff for free and it makes me feel good to know that I am 'giving back'. + +Here is the license. You are free to download and use these fonts without my explicit permission for anything you want, except for the following: +You may NOT * resell the actual font files (without my written permission and without having to give me something in return). This includes but is not limited to selling it on a Font CD (even when the fee involved is a nominal "distribution" or "handling" fee, or some similar thing), or distributing it on a site which charges a fee per font download. (In contrast, a pay-per-hour service such as America Online is free to distribute the fonts.) +You may not misrepresent the creator of the font (pretend you made them) +You may not adapt them to different fonts without my permission. +You may not modify the font files for subsequent redistribution. + +However, you have permission to do the following: +Use them to make graphics for your home page, non-profit web page, or commerical web site. +Give them to your friends for free. +Make them available (for free) on your web page, as long as you don't pretend you made them. It'd be nice of you to include this README file, too. +Use them in design work that you get paid for. +Use them in any smalltime publications or fliers or other non mass-produced literature. +Make commercial products like T-shirts or Mugs or Books using the fonts and sell them. In this case, since you are indirectly profiting off of my work, I ask that you send me one of the T-shirts or Mugs or Books free, where reasonable . Obviously some discretion on your part is due; but try to be fair. If it is inappropriate for you to send me one of your product, at least make an attempt to write me an e-mail at imightbetm@aol.com and let me know where the font is being used. + +Exception to the above: The fonts (or converted versions of them) may be included on any recognized distribution of the Linux and (Open/Net/Free)BSD operating systems, even if the CD is sold. Please include the readme . + +* "Not", as in, "Not without my permission". I regularly give permission for this sort of thing, so if you want to redistribute the fonts for a fee, let me know and we can probably work something out. Generally I simply request a copy of the CD or magazine or whatever. + +For your information, here is my address: +Permanent address: +Tom Murphy 7 +339 Still Hill Rd +Hamden CT 06518.1830 +USA \ No newline at end of file diff --git a/upload/fonts/geodesic.ttf b/upload/fonts/geodesic.ttf new file mode 100644 index 00000000..72f3ca60 Binary files /dev/null and b/upload/fonts/geodesic.ttf differ diff --git a/upload/fonts/index.html b/upload/fonts/index.html new file mode 100644 index 00000000..52a588b2 --- /dev/null +++ b/upload/fonts/index.html @@ -0,0 +1 @@ + Invision Power Board - Bulletin Board System

    403: Invision Power Board -> Forbidden


    You have reached this Page in error, please use your back button to return to Invision Board.
    Invision Power Board \ No newline at end of file diff --git a/upload/fonts/progbot.ttf b/upload/fonts/progbot.ttf new file mode 100644 index 00000000..c98d1221 Binary files /dev/null and b/upload/fonts/progbot.ttf differ diff --git a/upload/fonts/scandal.ttf b/upload/fonts/scandal.ttf new file mode 100644 index 00000000..22e3a7e2 Binary files /dev/null and b/upload/fonts/scandal.ttf differ diff --git a/upload/fonts/xsuni.ttf b/upload/fonts/xsuni.ttf new file mode 100644 index 00000000..89c78d6b Binary files /dev/null and b/upload/fonts/xsuni.ttf differ diff --git a/upload/html/avatars/IPB_Community_Pack/Aeroplane.gif b/upload/html/avatars/IPB_Community_Pack/Aeroplane.gif new file mode 100644 index 00000000..81725248 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Aeroplane.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Crazyman.jpg b/upload/html/avatars/IPB_Community_Pack/Crazyman.jpg new file mode 100644 index 00000000..a4aed81b Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Crazyman.jpg differ diff --git a/upload/html/avatars/IPB_Community_Pack/Dolphin.jpg b/upload/html/avatars/IPB_Community_Pack/Dolphin.jpg new file mode 100644 index 00000000..fc52f955 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Dolphin.jpg differ diff --git a/upload/html/avatars/IPB_Community_Pack/Fish.gif b/upload/html/avatars/IPB_Community_Pack/Fish.gif new file mode 100644 index 00000000..da41bf1d Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Fish.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Golfball.gif b/upload/html/avatars/IPB_Community_Pack/Golfball.gif new file mode 100644 index 00000000..6a977f86 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Golfball.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Green-haze.gif b/upload/html/avatars/IPB_Community_Pack/Green-haze.gif new file mode 100644 index 00000000..7b240042 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Green-haze.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Hammer-man.jpg b/upload/html/avatars/IPB_Community_Pack/Hammer-man.jpg new file mode 100644 index 00000000..629d0cfc Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Hammer-man.jpg differ diff --git a/upload/html/avatars/IPB_Community_Pack/IBFstars.jpg b/upload/html/avatars/IPB_Community_Pack/IBFstars.jpg new file mode 100644 index 00000000..6942e28b Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/IBFstars.jpg differ diff --git a/upload/html/avatars/IPB_Community_Pack/Leaf.gif b/upload/html/avatars/IPB_Community_Pack/Leaf.gif new file mode 100644 index 00000000..0101f21d Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Leaf.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Melon.gif b/upload/html/avatars/IPB_Community_Pack/Melon.gif new file mode 100644 index 00000000..1e7db5f7 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Melon.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Meow.gif b/upload/html/avatars/IPB_Community_Pack/Meow.gif new file mode 100644 index 00000000..f2536402 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Meow.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Orange-sticks.gif b/upload/html/avatars/IPB_Community_Pack/Orange-sticks.gif new file mode 100644 index 00000000..1132537d Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Orange-sticks.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Pink-sea.gif b/upload/html/avatars/IPB_Community_Pack/Pink-sea.gif new file mode 100644 index 00000000..8ee0ee1f Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Pink-sea.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Pow.gif b/upload/html/avatars/IPB_Community_Pack/Pow.gif new file mode 100644 index 00000000..ac92d0df Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Pow.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Radioactive.gif b/upload/html/avatars/IPB_Community_Pack/Radioactive.gif new file mode 100644 index 00000000..039acaaf Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Radioactive.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Whale.jpg b/upload/html/avatars/IPB_Community_Pack/Whale.jpg new file mode 100644 index 00000000..08f08ee8 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Whale.jpg differ diff --git a/upload/html/avatars/IPB_Community_Pack/Woof.gif b/upload/html/avatars/IPB_Community_Pack/Woof.gif new file mode 100644 index 00000000..93ecfa06 Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Woof.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/Wub.gif b/upload/html/avatars/IPB_Community_Pack/Wub.gif new file mode 100644 index 00000000..5365326f Binary files /dev/null and b/upload/html/avatars/IPB_Community_Pack/Wub.gif differ diff --git a/upload/html/avatars/IPB_Community_Pack/avatar-readme.txt b/upload/html/avatars/IPB_Community_Pack/avatar-readme.txt new file mode 100644 index 00000000..8ed64db0 --- /dev/null +++ b/upload/html/avatars/IPB_Community_Pack/avatar-readme.txt @@ -0,0 +1,31 @@ +Readme for Avatars Distributed with Invisionboard +------------------------------------------------- + +The avatars distributed with Invisionboard were created by members of the Invisionboard +community. As such, the creator of each avatar is responsible for the copyright of each image. +Invisionboard does not claim to own any of the images, and any questions regarding individual +avatars should be directed to the original creator. + + +Author of each Avatar +---------------------- + +IBFstars.jpg - chrishanke +Whale.jpg - Jay144 +Hammer-man.jpg - Jay144 +Dolphin.jpg - Jay144 +Crazyman.jpg - Jay144 +Meow.gif - SoftwareX +Woof.gif - SoftwareX +Melon.gif - Adam +Leaf.gif - Adam +Golfball.gif - Adam +Fish.gif - Adam +Aeroplane.gif - Adam +No-Avatar.gif - //n2 +Pow.gif - //n2 +Radioactive - //n2 +Wub.gif - //n2 +Pink-sea.gif - Xerro +Orange-sticks.gif - Xerro +Green-haze.gif - Xerro \ No newline at end of file diff --git a/upload/html/avatars/smiley-aloof.gif b/upload/html/avatars/Smiley_Avatars/smiley-aloof.gif similarity index 100% rename from upload/html/avatars/smiley-aloof.gif rename to upload/html/avatars/Smiley_Avatars/smiley-aloof.gif diff --git a/upload/html/avatars/smiley-biggrin.gif b/upload/html/avatars/Smiley_Avatars/smiley-biggrin.gif similarity index 100% rename from upload/html/avatars/smiley-biggrin.gif rename to upload/html/avatars/Smiley_Avatars/smiley-biggrin.gif diff --git a/upload/html/avatars/smiley-blunder.gif b/upload/html/avatars/Smiley_Avatars/smiley-blunder.gif similarity index 100% rename from upload/html/avatars/smiley-blunder.gif rename to upload/html/avatars/Smiley_Avatars/smiley-blunder.gif diff --git a/upload/html/avatars/smiley-evil.gif b/upload/html/avatars/Smiley_Avatars/smiley-evil.gif similarity index 100% rename from upload/html/avatars/smiley-evil.gif rename to upload/html/avatars/Smiley_Avatars/smiley-evil.gif diff --git a/upload/html/avatars/smiley-grimmace.gif b/upload/html/avatars/Smiley_Avatars/smiley-grimmace.gif similarity index 100% rename from upload/html/avatars/smiley-grimmace.gif rename to upload/html/avatars/Smiley_Avatars/smiley-grimmace.gif diff --git a/upload/html/avatars/smiley-punched.gif b/upload/html/avatars/Smiley_Avatars/smiley-punched.gif similarity index 100% rename from upload/html/avatars/smiley-punched.gif rename to upload/html/avatars/Smiley_Avatars/smiley-punched.gif diff --git a/upload/html/avatars/abra.gif b/upload/html/avatars/abra1.gif similarity index 100% rename from upload/html/avatars/abra.gif rename to upload/html/avatars/abra1.gif diff --git a/upload/html/avatars/noavatar.gif b/upload/html/avatars/noavatar.gif deleted file mode 100644 index 37a31910..00000000 Binary files a/upload/html/avatars/noavatar.gif and /dev/null differ diff --git a/upload/html/emoticons/index.html b/upload/html/emoticons/index.html new file mode 100644 index 00000000..52a588b2 --- /dev/null +++ b/upload/html/emoticons/index.html @@ -0,0 +1 @@ + Invision Power Board - Bulletin Board System

    403: Invision Power Board -> Forbidden


    You have reached this Page in error, please use your back button to return to Invision Board.
    Invision Power Board \ No newline at end of file diff --git a/upload/html/emoticons/wink.gif b/upload/html/emoticons/wink.gif index ff8c1dce..24bdea96 100644 Binary files a/upload/html/emoticons/wink.gif and b/upload/html/emoticons/wink.gif differ diff --git a/upload/html/ibfcode.js b/upload/html/ibfcode.js index 7390730d..8dda8c12 100644 --- a/upload/html/ibfcode.js +++ b/upload/html/ibfcode.js @@ -1 +1,394 @@ -//-------------------------------------------- // Set up our simple tag open values //-------------------------------------------- var B_open = 0; var I_open = 0; var U_open = 0; var QUOTE_open = 0; var CODE_open = 0; var SQL_open = 0; var HTML_open = 0; var bbtags = new Array(); // Set the initial radio button status based on cookies var allcookies = document.cookie; var pos = allcookies.indexOf("bbmode="); prep_mode(); function prep_mode() { if (pos != 1) { var cstart = pos + 7; var cend = allcookies.indexOf(";", cstart); if (cend == -1) { cend = allcookies.length; } cvalue = allcookies.substring(cstart, cend); if (cvalue == 'ezmode') { document.REPLIER.bbmode[0].checked = true; } else { document.REPLIER.bbmode[1].checked = true; } } else { // default to normal mode. document.REPLIER.bbmode[1].checked = true; } } function setmode(mVal) { document.cookie = "bbmode="+mVal+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;"; } function get_easy_mode_state() { // Returns true if we've chosen easy mode if (document.REPLIER.bbmode[0].checked) { return true; } else { return false; } } //-------------------------------------------- // Set the help bar status //-------------------------------------------- function hstat(msg) { document.REPLIER.helpbox.value = eval( "help_" + msg ); } // Set the number of tags open box function cstat() { var c = stacksize(bbtags); if ( (c < 1) || (c == null) ) { c = 0; } if ( ! bbtags[0] ) { c = 0; } document.REPLIER.tagcount.value = c; } //-------------------------------------------- // Get stack size //-------------------------------------------- function stacksize(thearray) { for (i = 0 ; i < thearray.length; i++ ) { if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) { return i; } } return thearray.length; } //-------------------------------------------- // Push stack //-------------------------------------------- function pushstack(thearray, newval) { arraysize = stacksize(thearray); thearray[arraysize] = newval; } //-------------------------------------------- // Pop stack //-------------------------------------------- function popstack(thearray) { arraysize = stacksize(thearray); theval = thearray[arraysize - 1]; delete thearray[arraysize - 1]; return theval; } //-------------------------------------------- // Close all tags //-------------------------------------------- function closeall() { if (bbtags[0]) { while (bbtags[0]) { tagRemove = popstack(bbtags) document.REPLIER.Post.value += "[/" + tagRemove + "]"; // Change the button status eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '"); eval(tagRemove + "_open = 0"); } } // Ensure we got them all document.REPLIER.tagcount.value = 0; bbtags = new array(); document.REPLIER.Post.focus(); } //-------------------------------------------- // EMOTICONS //-------------------------------------------- function emoticon(theSmilie) { if (document.REPLIER.Post.caretPos && document.REPLIER.Post.createTextRange) { var caretPos = document.REPLIER.Post.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? theSmilie + ' ' : theSmilie; } else { document.REPLIER.Post.value += ' ' + theSmilie + ' '; } document.REPLIER.Post.focus(); } //-------------------------------------------- // ADD CODE //-------------------------------------------- function add_code(NewCode) { document.REPLIER.Post.value += NewCode; document.REPLIER.Post.focus(); return; } //-------------------------------------------- // ALTER FONT //-------------------------------------------- function alterfont(theval, thetag) { if (theval == 0) { return; } else { document.REPLIER.Post.value += "[" + thetag + "=" + theval + "] [/" + thetag + "]"; } document.REPLIER.ffont.selectedIndex = 0; document.REPLIER.fsize.selectedIndex = 0; document.REPLIER.fcolor.selectedIndex = 0; document.REPLIER.Post.focus(); } //-------------------------------------------- // SIMPLE TAGS (such as B, I U, etc) //-------------------------------------------- function simpletag(thetag) { var tagOpen = eval(thetag + "_open"); if ( get_easy_mode_state() ) { inserttext = prompt(prompt_start + "\n[" + thetag + "]xxx[/" + thetag + "]"); if ( (inserttext != null) && (inserttext != "") ) { document.REPLIER.Post.value += "[" + thetag + "]" + inserttext + "[/" + thetag + "] "; } } else { if (tagOpen == 0) { document.REPLIER.Post.value += "[" + thetag + "]"; eval(thetag + "_open = 1"); // Change the button status eval("document.REPLIER." + thetag + ".value += '*'"); pushstack(bbtags, thetag); cstat(); hstat('click_close'); } else { // Find the last occurance of the opened tag lastindex = 0; for (i = 0 ; i < bbtags.length; i++ ) { if ( bbtags[i] == thetag ) { lastindex = i; } } // Close all tags opened up to that tag was opened while (bbtags[lastindex]) { tagRemove = popstack(bbtags); document.REPLIER.Post.value += "[/" + tagRemove + "]"; // Change the button status eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '"); eval(tagRemove + "_open = 0"); } cstat(); } } document.REPLIER.Post.focus(); } function tag_list() { listvalue = "init"; thelist = "[LIST]\n"; while ( (listvalue != "") && (listvalue != null) ) { listvalue = prompt(list_prompt, ""); if ( (listvalue != "") && (listvalue != null) ) { thelist = thelist+"[*]"+listvalue+"\n"; } } document.REPLIER.Post.value += thelist + "[/LIST]\n"; document.REPLIER.Post.focus(); } function tag_url() { var FoundErrors = ''; var enterURL = prompt(text_enter_url, "http://"); var enterTITLE = prompt(text_enter_url_name, "My Webpage"); if (!enterURL) { FoundErrors += " " + error_no_url; } if (!enterTITLE) { FoundErrors += " " + error_no_title; } if (FoundErrors) { alert("Error!"+FoundErrors); return; } var ToAdd = "[URL="+enterURL+"]"+enterTITLE+"[/URL]"; document.REPLIER.Post.value+=ToAdd; document.REPLIER.Post.focus(); } function tag_image() { var FoundErrors = ''; var enterURL = prompt(text_enter_image, "http://"); if (!enterURL) { FoundErrors += " " + error_no_url; } if (FoundErrors) { alert("Error!"+FoundErrors); return; } var ToAdd = "[IMG]"+enterURL+"[/IMG]"; document.REPLIER.Post.value+=ToAdd; document.REPLIER.Post.focus(); } function tag_email() { var emailAddress = prompt(text_enter_email,""); if (!emailAddress) { alert(error_no_email); return; } var ToAdd = "[EMAIL]"+emailAddress+"[/EMAIL]"; document.REPLIER.Post.value+=ToAdd; document.REPLIER.Post.focus(); } \ No newline at end of file +//-------------------------------------------- +// Set up our simple tag open values +//-------------------------------------------- +// +// Modified by Volker Puttrich to allow IE 4+ +// on windows to use cursor position for inserting +// tags / smilies + +var B_open = 0; +var I_open = 0; +var U_open = 0; +var QUOTE_open = 0; +var CODE_open = 0; +var SQL_open = 0; +var HTML_open = 0; + +var bbtags = new Array(); + +// Determine browser type and stuff. +// Borrowed from http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html + +var myAgent = navigator.userAgent.toLowerCase(); +var myVersion = parseInt(navigator.appVersion); + +var is_ie = ((myAgent.indexOf("msie") != -1) && (myAgent.indexOf("opera") == -1)); +var is_nav = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1) + && (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1) + && (myAgent.indexOf('webtv') ==-1) && (myAgent.indexOf('hotjava')==-1)); + +var is_win = ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1)); +var is_mac = (myAgent.indexOf("mac")!=-1); + +// Set the initial radio button status based on cookies + +var allcookies = document.cookie; +var pos = allcookies.indexOf("bbmode="); + +prep_mode(); + +function prep_mode() +{ + if (pos != 1) { + var cstart = pos + 7; + var cend = allcookies.indexOf(";", cstart); + if (cend == -1) { cend = allcookies.length; } + cvalue = allcookies.substring(cstart, cend); + + if (cvalue == 'ezmode') { + document.REPLIER.bbmode[0].checked = true; + } else { + document.REPLIER.bbmode[1].checked = true; + } + } + else { + // default to normal mode. + document.REPLIER.bbmode[1].checked = true; + } +} + +function setmode(mVal) +{ + document.cookie = "bbmode="+mVal+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;"; +} + +function get_easy_mode_state() +{ + // Returns true if we've chosen easy mode + + if (document.REPLIER.bbmode[0].checked) { + return true; + } + else { + return false; + } +} + +//-------------------------------------------- +// Set the help bar status +//-------------------------------------------- + +function hstat(msg) +{ + document.REPLIER.helpbox.value = eval( "help_" + msg ); +} + +// Set the number of tags open box + +function cstat() +{ + var c = stacksize(bbtags); + + if ( (c < 1) || (c == null) ) { + c = 0; + } + + if ( ! bbtags[0] ) { + c = 0; + } + + document.REPLIER.tagcount.value = c; +} + +//-------------------------------------------- +// Get stack size +//-------------------------------------------- + +function stacksize(thearray) +{ + for (i = 0 ; i < thearray.length; i++ ) { + if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) { + return i; + } + } + + return thearray.length; +} + +//-------------------------------------------- +// Push stack +//-------------------------------------------- + +function pushstack(thearray, newval) +{ + arraysize = stacksize(thearray); + thearray[arraysize] = newval; +} + +//-------------------------------------------- +// Pop stack +//-------------------------------------------- + +function popstack(thearray) +{ + arraysize = stacksize(thearray); + theval = thearray[arraysize - 1]; + delete thearray[arraysize - 1]; + return theval; +} + + +//-------------------------------------------- +// Close all tags +//-------------------------------------------- + +function closeall() +{ + if (bbtags[0]) { + while (bbtags[0]) { + tagRemove = popstack(bbtags) + document.REPLIER.Post.value += "[/" + tagRemove + "]"; + + // Change the button status + // Ensure we're not looking for FONT, SIZE or COLOR as these + // buttons don't exist, they are select lists instead. + + if ( (tagRemove != 'FONT') && (tagRemove != 'SIZE') && (tagRemove != 'COLOR') ) + { + eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '"); + eval(tagRemove + "_open = 0"); + } + } + } + + // Ensure we got them all + document.REPLIER.tagcount.value = 0; + bbtags = new Array(); + document.REPLIER.Post.focus(); +} + +//-------------------------------------------- +// EMOTICONS +//-------------------------------------------- + +function emoticon(theSmilie) +{ + doInsert(" " + theSmilie + " ", "", false); +} + +//-------------------------------------------- +// ADD CODE +//-------------------------------------------- + +function add_code(NewCode) +{ + document.REPLIER.Post.value += NewCode; + document.REPLIER.Post.focus(); +} + +//-------------------------------------------- +// ALTER FONT +//-------------------------------------------- + +function alterfont(theval, thetag) +{ + if (theval == 0) + return; + + if(doInsert("[" + thetag + "=" + theval + "]", "[/" + thetag + "]", true)) + pushstack(bbtags, thetag); + + document.REPLIER.ffont.selectedIndex = 0; + document.REPLIER.fsize.selectedIndex = 0; + document.REPLIER.fcolor.selectedIndex = 0; + + cstat(); + +} + + +//-------------------------------------------- +// SIMPLE TAGS (such as B, I U, etc) +//-------------------------------------------- + +function simpletag(thetag) +{ + var tagOpen = eval(thetag + "_open"); + + if ( get_easy_mode_state() ) + { + inserttext = prompt(prompt_start + "\n[" + thetag + "]xxx[/" + thetag + "]"); + if ( (inserttext != null) && (inserttext != "") ) + { + doInsert("[" + thetag + "]" + inserttext + "[/" + thetag + "] ", "", false); + } + } + else { + if (tagOpen == 0) + { + if(doInsert("[" + thetag + "]", "[/" + thetag + "]", true)) + { + eval(thetag + "_open = 1"); + // Change the button status + eval("document.REPLIER." + thetag + ".value += '*'"); + + pushstack(bbtags, thetag); + cstat(); + hstat('click_close'); + } + } + else { + // Find the last occurance of the opened tag + lastindex = 0; + + for (i = 0 ; i < bbtags.length; i++ ) + { + if ( bbtags[i] == thetag ) + { + lastindex = i; + } + } + + // Close all tags opened up to that tag was opened + while (bbtags[lastindex]) + { + tagRemove = popstack(bbtags); + doInsert("[/" + tagRemove + "]", "", false) + + // Change the button status + if ( (tagRemove != 'FONT') && (tagRemove != 'SIZE') && (tagRemove != 'COLOR') ) + { + eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '"); + eval(tagRemove + "_open = 0"); + } + } + + cstat(); + } + } +} + + +function tag_list() +{ + var listvalue = "init"; + var thelist = ""; + + while ( (listvalue != "") && (listvalue != null) ) + { + listvalue = prompt(list_prompt, ""); + if ( (listvalue != "") && (listvalue != null) ) + { + thelist = thelist+"[*]"+listvalue+"\n"; + } + } + + if ( thelist != "" ) + { + doInsert( "[LIST]\n" + thelist + "[/LIST]\n", "", false); + } +} + +function tag_url() +{ + var FoundErrors = ''; + var enterURL = prompt(text_enter_url, "http://"); + var enterTITLE = prompt(text_enter_url_name, "My Webpage"); + + if (!enterURL) { + FoundErrors += " " + error_no_url; + } + if (!enterTITLE) { + FoundErrors += " " + error_no_title; + } + + if (FoundErrors) { + alert("Error!"+FoundErrors); + return; + } + + doInsert("[URL="+enterURL+"]"+enterTITLE+"[/URL]", "", false); +} + +function tag_image() +{ + var FoundErrors = ''; + var enterURL = prompt(text_enter_image, "http://"); + + if (!enterURL) { + FoundErrors += " " + error_no_url; + } + + if (FoundErrors) { + alert("Error!"+FoundErrors); + return; + } + + doInsert("[IMG]"+enterURL+"[/IMG]", "", false); +} + +function tag_email() +{ + var emailAddress = prompt(text_enter_email, ""); + + if (!emailAddress) { + alert(error_no_email); + return; + } + + doInsert("[EMAIL]"+emailAddress+"[/EMAIL]", "", false); +} + +//-------------------------------------------- +// GENERAL INSERT FUNCTION +//-------------------------------------------- +// ibTag: opening tag +// ibClsTag: closing tag, used if we have selected text +// isSingle: true if we do not close the tag right now +// return value: true if the tag needs to be closed later + +// + +function doInsert(ibTag, ibClsTag, isSingle) +{ + var isClose = false; + var obj_ta = document.REPLIER.Post; + + if ( (myVersion >= 4) && is_ie && is_win) // Ensure it works for IE4up / Win only + { + if(obj_ta.isTextEdit){ // this doesn't work for NS, but it works for IE 4+ and compatible browsers + obj_ta.focus(); + var sel = document.selection; + var rng = sel.createRange(); + rng.colapse; + if((sel.type == "Text" || sel.type == "None") && rng != null){ + if(ibClsTag != "" && rng.text.length > 0) + ibTag += rng.text + ibClsTag; + else if(isSingle) + isClose = true; + + rng.text = ibTag; + } + } + else{ + if(isSingle) + isClose = true; + + obj_ta.value += ibTag; + } + } + else + { + if(isSingle) + isClose = true; + + obj_ta.value += ibTag; + } + + obj_ta.focus(); + + // clear multiple blanks +// obj_ta.value = obj_ta.value.replace(/ /, " "); + + return isClose; +} diff --git a/upload/html/ibfcode_old.js b/upload/html/ibfcode_old.js new file mode 100644 index 00000000..6fdb95fc --- /dev/null +++ b/upload/html/ibfcode_old.js @@ -0,0 +1 @@ +//-------------------------------------------- // Set up our simple tag open values //-------------------------------------------- var B_open = 0; var I_open = 0; var U_open = 0; var QUOTE_open = 0; var CODE_open = 0; var SQL_open = 0; var HTML_open = 0; var bbtags = new Array(); // Set the initial radio button status based on cookies var allcookies = document.cookie; var pos = allcookies.indexOf("bbmode="); prep_mode(); function prep_mode() { if (pos != 1) { var cstart = pos + 7; var cend = allcookies.indexOf(";", cstart); if (cend == -1) { cend = allcookies.length; } cvalue = allcookies.substring(cstart, cend); if (cvalue == 'ezmode') { document.REPLIER.bbmode[0].checked = true; } else { document.REPLIER.bbmode[1].checked = true; } } else { // default to normal mode. document.REPLIER.bbmode[1].checked = true; } } function setmode(mVal) { document.cookie = "bbmode="+mVal+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;"; } function get_easy_mode_state() { // Returns true if we've chosen easy mode if (document.REPLIER.bbmode[0].checked) { return true; } else { return false; } } //-------------------------------------------- // Set the help bar status //-------------------------------------------- function hstat(msg) { document.REPLIER.helpbox.value = eval( "help_" + msg ); } // Set the number of tags open box function cstat() { var c = stacksize(bbtags); if ( (c < 1) || (c == null) ) { c = 0; } if ( ! bbtags[0] ) { c = 0; } document.REPLIER.tagcount.value = c; } //-------------------------------------------- // Get stack size //-------------------------------------------- function stacksize(thearray) { for (i = 0 ; i < thearray.length; i++ ) { if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) { return i; } } return thearray.length; } //-------------------------------------------- // Push stack //-------------------------------------------- function pushstack(thearray, newval) { arraysize = stacksize(thearray); thearray[arraysize] = newval; } //-------------------------------------------- // Pop stack //-------------------------------------------- function popstack(thearray) { arraysize = stacksize(thearray); theval = thearray[arraysize - 1]; delete thearray[arraysize - 1]; return theval; } //-------------------------------------------- // Close all tags //-------------------------------------------- function closeall() { //var c=bbtags.length; //alert('Stack: ' + c); if (bbtags[0]) { while (bbtags[0]) { tagRemove = popstack(bbtags) document.REPLIER.Post.value += "[/" + tagRemove + "]"; // Change the button status eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '"); eval(tagRemove + "_open = 0"); } } // Ensure we got them all document.REPLIER.tagcount.value = 0; bbtags = new Array(); document.REPLIER.Post.focus(); } //-------------------------------------------- // EMOTICONS //-------------------------------------------- function emoticon(theSmilie) { if (document.REPLIER.Post.caretPos && document.REPLIER.Post.createTextRange) { var caretPos = document.REPLIER.Post.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? theSmilie + ' ' : theSmilie; } else { document.REPLIER.Post.value += ' ' + theSmilie + ' '; } document.REPLIER.Post.focus(); } //-------------------------------------------- // ADD CODE //-------------------------------------------- function add_code(NewCode) { document.REPLIER.Post.value += NewCode; document.REPLIER.Post.focus(); return; } //-------------------------------------------- // ALTER FONT //-------------------------------------------- function alterfont(theval, thetag) { if (theval == 0) { return; } else { document.REPLIER.Post.value += "[" + thetag + "=" + theval + "] [/" + thetag + "]"; } document.REPLIER.ffont.selectedIndex = 0; document.REPLIER.fsize.selectedIndex = 0; document.REPLIER.fcolor.selectedIndex = 0; document.REPLIER.Post.focus(); } //-------------------------------------------- // SIMPLE TAGS (such as B, I U, etc) //-------------------------------------------- function simpletag(thetag) { var tagOpen = eval(thetag + "_open"); if ( get_easy_mode_state() ) { inserttext = prompt(prompt_start + "\n[" + thetag + "]xxx[/" + thetag + "]"); if ( (inserttext != null) && (inserttext != "") ) { document.REPLIER.Post.value += "[" + thetag + "]" + inserttext + "[/" + thetag + "] "; } } else { if (tagOpen == 0) { document.REPLIER.Post.value += "[" + thetag + "]"; eval(thetag + "_open = 1"); // Change the button status eval("document.REPLIER." + thetag + ".value += '*'"); pushstack(bbtags, thetag); cstat(); hstat('click_close'); } else { // Find the last occurance of the opened tag lastindex = 0; for (i = 0 ; i < bbtags.length; i++ ) { if ( bbtags[i] == thetag ) { lastindex = i; } } // Close all tags opened up to that tag was opened while (bbtags[lastindex]) { tagRemove = popstack(bbtags); document.REPLIER.Post.value += "[/" + tagRemove + "]"; // Change the button status eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '"); eval(tagRemove + "_open = 0"); } cstat(); } } document.REPLIER.Post.focus(); } function tag_list() { listvalue = "init"; thelist = "[LIST]\n"; while ( (listvalue != "") && (listvalue != null) ) { listvalue = prompt(list_prompt, ""); if ( (listvalue != "") && (listvalue != null) ) { thelist = thelist+"[*]"+listvalue+"\n"; } } document.REPLIER.Post.value += thelist + "[/LIST]\n"; document.REPLIER.Post.focus(); } function tag_url() { var FoundErrors = ''; var enterURL = prompt(text_enter_url, "http://"); var enterTITLE = prompt(text_enter_url_name, "My Webpage"); if (!enterURL) { FoundErrors += " " + error_no_url; } if (!enterTITLE) { FoundErrors += " " + error_no_title; } if (FoundErrors) { alert("Error!"+FoundErrors); return; } var ToAdd = "[URL="+enterURL+"]"+enterTITLE+"[/URL]"; document.REPLIER.Post.value+=ToAdd; document.REPLIER.Post.focus(); } function tag_image() { var FoundErrors = ''; var enterURL = prompt(text_enter_image, "http://"); if (!enterURL) { FoundErrors += " " + error_no_url; } if (FoundErrors) { alert("Error!"+FoundErrors); return; } var ToAdd = "[IMG]"+enterURL+"[/IMG]"; document.REPLIER.Post.value+=ToAdd; document.REPLIER.Post.focus(); } function tag_email() { var emailAddress = prompt(text_enter_email,""); if (!emailAddress) { alert(error_no_email); return; } var ToAdd = "[EMAIL]"+emailAddress+"[/EMAIL]"; document.REPLIER.Post.value+=ToAdd; document.REPLIER.Post.focus(); } \ No newline at end of file diff --git a/upload/html/mime_types/index.html b/upload/html/mime_types/index.html new file mode 100644 index 00000000..e69de29b diff --git a/upload/html/sys-img/acp_search.gif b/upload/html/sys-img/acp_search.gif new file mode 100644 index 00000000..88e4d76b Binary files /dev/null and b/upload/html/sys-img/acp_search.gif differ diff --git a/upload/html/sys-img/ad-logo.jpg b/upload/html/sys-img/ad-logo.jpg index a1ad4ba1..67ea52d8 100644 Binary files a/upload/html/sys-img/ad-logo.jpg and b/upload/html/sys-img/ad-logo.jpg differ diff --git a/upload/html/sys-img/clickinfo.gif b/upload/html/sys-img/clickinfo.gif new file mode 100644 index 00000000..f9674cd6 Binary files /dev/null and b/upload/html/sys-img/clickinfo.gif differ diff --git a/upload/html/sys-img/colours.html b/upload/html/sys-img/colours.html index 993b4030..60c146d8 100644 --- a/upload/html/sys-img/colours.html +++ b/upload/html/sys-img/colours.html @@ -1 +1 @@ - Invision Board Colour Picker
    Invision Board Color Picker

    Simply roll your mouse over the desired colour to get the Hex value and a colour preview




    The Hexidecimal Value



    Colour Preview



    Clicking on any of the colour segments enters the Hex value here

    \ No newline at end of file + Invision Power Board Colour Picker
    Invision Power Board Color Picker

    Simply roll your mouse over the desired colour to get the Hex value and a colour preview




    The Hexidecimal Value



    Colour Preview



    Clicking on any of the colour segments enters the Hex value here

    \ No newline at end of file diff --git a/upload/html/sys-img/fade.jpg b/upload/html/sys-img/fade.jpg new file mode 100644 index 00000000..e54beab3 Binary files /dev/null and b/upload/html/sys-img/fade.jpg differ diff --git a/upload/html/sys-img/fadebg.jpg b/upload/html/sys-img/fadebg.jpg new file mode 100644 index 00000000..d2769b2b Binary files /dev/null and b/upload/html/sys-img/fadebg.jpg differ diff --git a/upload/html/sys-img/index.html b/upload/html/sys-img/index.html index 7a0e71b5..52a588b2 100644 --- a/upload/html/sys-img/index.html +++ b/upload/html/sys-img/index.html @@ -1 +1 @@ - IBForums - Bulletin Board System

    403: IBForums-> Forbidden


    You have reached this Page in error, please use your back button to return to Invision Board.
    Get your free download of IBForums now! \ No newline at end of file + Invision Power Board - Bulletin Board System

    403: Invision Power Board -> Forbidden


    You have reached this Page in error, please use your back button to return to Invision Board.
    Invision Power Board \ No newline at end of file diff --git a/upload/html/sys-img/install_face.jpg b/upload/html/sys-img/install_face.jpg new file mode 100644 index 00000000..66db90d5 Binary files /dev/null and b/upload/html/sys-img/install_face.jpg differ diff --git a/upload/html/sys-img/install_proceed.gif b/upload/html/sys-img/install_proceed.gif new file mode 100644 index 00000000..4d29d3b0 Binary files /dev/null and b/upload/html/sys-img/install_proceed.gif differ diff --git a/upload/html/sys-img/install_text.gif b/upload/html/sys-img/install_text.gif new file mode 100644 index 00000000..cfe00552 Binary files /dev/null and b/upload/html/sys-img/install_text.gif differ diff --git a/upload/html/sys-img/title.gif b/upload/html/sys-img/title.gif index 93404220..a6ca0945 100644 Binary files a/upload/html/sys-img/title.gif and b/upload/html/sys-img/title.gif differ diff --git a/upload/index.php b/upload/index.php index 0a670478..8b4c483d 100644 --- a/upload/index.php +++ b/upload/index.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Wrapper script @@ -23,14 +25,21 @@ //----------------------------------------------- // USER CONFIGURABLE ELEMENTS //----------------------------------------------- - + // Root path -$root_path = "./"; +define( 'ROOT_PATH', "./" ); + +// Enable module usage? +// (Vital for some mods and IPB enhancements) + +define ( 'USE_MODULES', 1 ); //----------------------------------------------- // NO USER EDITABLE SECTIONS BELOW //----------------------------------------------- + +define ( 'IN_IPB', 1 ); error_reporting (E_ERROR | E_WARNING | E_PARSE); set_magic_quotes_runtime(0); @@ -67,13 +76,17 @@ class info { var $skin = ""; var $lang = ""; var $server_load = 0; - var $version = "v1.1 BETA 1"; + var $version = "v1.3 Final"; var $lastclick = ""; var $location = ""; var $debug_html = ""; + var $perm_id = ""; + var $forum_read = array(); + var $topic_cache = ""; + var $session_type = ""; function info() { - global $sess, $std, $DB, $root_path, $INFO; + global $sess, $std, $DB, $INFO; $this->vars = &$INFO; @@ -89,7 +102,7 @@ class info { // Import $INFO, now! //-------------------------------- -require $root_path."conf_global.php"; +require ROOT_PATH."conf_global.php"; //-------------------------------- // The clocks a' tickin' @@ -102,7 +115,7 @@ $Debug->startTimer(); // Require our global functions //-------------------------------- -require $root_path."sources/functions.php"; +require ROOT_PATH."sources/functions.php"; $std = new FUNC; $print = new display(); @@ -114,7 +127,7 @@ $sess = new session(); $INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver']; -$to_require = $root_path."sources/Drivers/".$INFO['sql_driver'].".php"; +$to_require = ROOT_PATH."sources/Drivers/".$INFO['sql_driver'].".php"; require ($to_require); $DB = new db_driver; @@ -143,6 +156,48 @@ $ibforums = new info(); //-------------------------------- $ibforums->input = $std->parse_incoming(); + +//-------------------------------- +// Short tags... +//-------------------------------- + +if ( $ibforums->input['showforum'] != "" ) +{ + $ibforums->input['act'] = "SF"; + $ibforums->input['f'] = intval($ibforums->input['showforum']); +} +else if ( $ibforums->input['showtopic'] != "") +{ + $ibforums->input['act'] = "ST"; + $ibforums->input['t'] = intval($ibforums->input['showtopic']); + + // Grab and cache the topic now as we need the 'f' attr for + // the skins... + + $DB->query("SELECT t.*, f.topic_mm_id, f.name as forum_name, f.quick_reply, f.id as forum_id, f.read_perms, f.reply_perms, f.parent_id, f.use_html, + f.start_perms, f.allow_poll, f.password, f.posts as forum_posts, f.topics as forum_topics, f.upload_perms, + f.show_rules, f.rules_text, f.rules_title, + c.name as cat_name, c.id as cat_id + FROM ibf_topics t, ibf_forums f , ibf_categories c + WHERE t.tid=".$ibforums->input['t']." and f.id = t.forum_id and f.category=c.id"); + + $ibforums->topic_cache = $DB->fetch_row(); + $ibforums->input['f'] = $ibforums->topic_cache['forum_id']; +} +else if ( $ibforums->input['showuser'] != "") +{ + $ibforums->input['act'] = "Profile"; + $ibforums->input['MID'] = intval($ibforums->input['showuser']); +} +else +{ + $ibforums->input['act'] = $ibforums->input['act'] == '' ? "idx" : $ibforums->input['act']; +} + +//-------------------------------- +// The rest :D +//-------------------------------- + $ibforums->member = $sess->authorise(); $ibforums->skin = $std->load_skin(); $ibforums->lastclick = $sess->last_click; @@ -154,12 +209,31 @@ list($ppu,$tpu) = explode( "&", $ibforums->member['view_prefs'] ); $ibforums->vars['display_max_topics'] = ($tpu > 0) ? $tpu : $ibforums->vars['display_max_topics']; $ibforums->vars['display_max_posts'] = ($ppu > 0) ? $ppu : $ibforums->vars['display_max_posts']; -if ($ibforums->member['id'] and ( $std->my_getcookie('hide_sess') ) ) +//-------------------------------- +// Set up the session ID stuff +//-------------------------------- + +if ( $ibforums->session_type == 'cookie' ) { $ibforums->session_id = ""; + $ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?'; +} +else +{ + $ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&'; } -$ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id; +$ibforums->js_base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&'; + +//-------------------------------- +// Set up the forum_read cookie +//-------------------------------- + +$std->hdl_forum_read_cookie(); + +//-------------------------------- +// Set up the skin stuff +//-------------------------------- $ibforums->skin_rid = $ibforums->skin['set_id']; $ibforums->skin_id = 's'.$ibforums->skin['set_id']; @@ -177,24 +251,29 @@ if ($ibforums->vars['default_language'] == "") $ibforums->lang_id = $ibforums->member['language'] ? $ibforums->member['language'] : $ibforums->vars['default_language']; -if ( ($ibforums->lang_id != $ibforums->vars['default_language']) and (! is_dir( $root_path."lang/".$ibforums->lang_id ) ) ) +if ( ($ibforums->lang_id != $ibforums->vars['default_language']) and (! is_dir( ROOT_PATH."lang/".$ibforums->lang_id ) ) ) { $ibforums->lang_id = $ibforums->vars['default_language']; } - -require $root_path."lang/".$ibforums->lang_id."/lang_global.php"; -$ibforums->lang = $lang; - -unset($lang); +$ibforums->lang = $std->load_words($ibforums->lang, 'lang_global', $ibforums->lang_id); //-------------------------------- $skin_universal = $std->load_template('skin_global'); +//-------------------------------- +// Expire subscription? //-------------------------------- -if ($ibforums->input['act'] != 'Login' and $ibforums->input['act'] != 'Reg' and $ibforums->input['act'] != 'Attach') +if ( $ibforums->member['sub_end'] != 0 AND ( $ibforums->member['sub_end'] < time() ) ) +{ + $std->expire_subscription(); +} + +//-------------------------------- + +if ($ibforums->input['act'] != 'Login' and $ibforums->input['act'] != 'Reg' and $ibforums->input['act'] != 'Attach' and $ibforums->input['module'] != 'subscription') { //-------------------------------- @@ -226,7 +305,7 @@ if ($ibforums->input['act'] != 'Login' and $ibforums->input['act'] != 'Reg' and if ( (! $ibforums->member['id']) and ($ibforums->vars['force_login'] == 1) ) { - require $root_path."sources/Login.php"; + require ROOT_PATH."sources/Login.php"; } @@ -238,6 +317,7 @@ if ($ibforums->input['act'] != 'Login' and $ibforums->input['act'] != 'Reg' and $choice = array( "idx" => "Boards", + "SC" => "Boards", "SF" => "Forums", "SR" => "Forums", "ST" => "Topics", @@ -259,23 +339,28 @@ $choice = array( "YAHOO" => "misc/contact_member", "MSN" => "misc/contact_member", "report" => "misc/contact_member", + "chat" => "misc/contact_member", + "integ" => "misc/contact_member", "Msg" => "Messenger", "UserCP" => "Usercp", "Profile" => "Profile", "Track" => "misc/tracker", "Stats" => "misc/stats", "Attach" => "misc/attach", - 'ib3' => 'misc/ib3', 'legends' => 'misc/legends', 'modcp' => 'mod_cp', 'calendar' => "calendar", 'buddy' => "browsebuddy", + 'boardrules' => "misc/contact_member", + 'mmod' => "misc/multi_moderate", + 'warn' => "misc/warn", + 'home' => 'dynamiclite/csite', + 'module' => 'modules', ); /***************************************************/ - -$ibforums->input['act'] = $ibforums->input['act'] == '' ? "idx" : $ibforums->input['act']; +// // Check to make sure the array key exits.. @@ -284,11 +369,35 @@ if (! isset($choice[ $ibforums->input['act'] ]) ) $ibforums->input['act'] = 'idx'; } -// Require and run - -require $root_path."sources/".$choice[ $ibforums->input['act'] ].".php"; - - +if ( $ibforums->input['act'] == 'home' ) +{ + if ( $ibforums->vars['csite_on'] ) + { + require ROOT_PATH."sources/dynamiclite/csite.php"; + $csite = new click_site(); + } + else + { + require ROOT_PATH."sources/Boards.php"; + } +} +else if ( $ibforums->input['act'] == 'module' ) +{ + if ( USE_MODULES == 1 ) + { + require ROOT_PATH."modules/module_loader.php"; + $loader = new module_loader(); + } + else + { + require ROOT_PATH."sources/Boards.php"; + } +} +else +{ + // Require and run + require ROOT_PATH."sources/".$choice[ $ibforums->input['act'] ].".php"; +} //+------------------------------------------------- // GLOBAL ROUTINES diff --git a/upload/install_templates.txt b/upload/install_templates.txt index b2f40783..d9c6c72f 100644 --- a/upload/install_templates.txt +++ b/upload/install_templates.txt @@ -1 +1 @@ -(1, 'skin_boards', '\n\n \n
    \n \n \n \n \n
    base_url}&act=Stats&CODE=leaders\'>{$ibforums->lang[\'sm_forum_leaders\']} |\n base_url}&act=Search&CODE=getactive\'>{$ibforums->lang[\'sm_todays_posts\']} |\n base_url}&act=Stats\'>{$ibforums->lang[\'sm_today_posters\']} |\n base_url}&act=Members&max_results=10&sort_key=posts&sort_order=desc\'>{$ibforums->lang[\'sm_all_posters\']}
    \n
    \n \' align=\'center\' class=\'solidborder\'>\n \n \n \n
    \n \n \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n', 'stats_header', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n \n \n', 'ActiveUsers', '$active', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n \n \n', 'ShowStats', '$text', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n \n \n', 'birthdays', '$birthusers="", $total="", $birth_lang=""', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n \n \n', 'calendar_events', '$events = ""', 1035406235, 0);||~&~||(1, 'skin_boards', '\n
    {$ibforums->lang[\'board_stats\']}
    $active[TOTAL] {$ibforums->lang[\'active_users\']}
    <{F_ACTIVE}>{$active[GUESTS]} {$ibforums->lang[\'guests\']}, $active[MEMBERS] {$ibforums->lang[\'public_members\']} $active[ANON] {$ibforums->lang[\'anon_members\']} {$active[LINK]}
    {$active[NAMES]}
    {$ibforums->lang[\'board_stats\']}
    <{F_STATS}>$text
    {$ibforums->lang[\'most_online\']}
    {$ibforums->lang[\'birthday_header\']}
    <{F_ACTIVE}>$total $birth_lang
    $birthusers
    {$ibforums->lang[\'calender_f_title\']}
    <{F_ACTIVE}>$events
    \n
    \n \n
    \n \n', 'stats_footer', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n
    \n \n \n \n \n
    [ {$ibforums->lang[\'d_delete_cookies\']} ] :: [ {$ibforums->lang[\'d_post_read\']} ]
    \n', 'BoardInformation', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n\n \n \n \n \n \n \n \n \n \n \n \n \n', 'ForumRow', '$info', 1035406235, 0);||~&~||(1, 'skin_buddy', '\n\n \n', 'buddy_js', '', 1035406235, 0);||~&~||(1, 'skin_buddy', '\n\n {$ibforums->lang[\'new_posts\']}\n
    \n {$ibforums->lang[\'my_replies\']}\n \n', 'build_away_msg', '', 1035406235, 0);||~&~||(1, 'skin_buddy', '\n ( {$ibforums->lang[\'view_link\']} )\n', 'append_view', '$url=""', 1035406235, 0);||~&~||(1, 'skin_buddy', '\n
    \n \n \n \n \n \n
    <{CAT_IMG}>{$Data[\'name\']}
    \n
    \n \n \n \n \n \n \n \n \n', 'CatHeader_Expanded', '$Data', 1035406235, 0);||~&~||(1, 'skin_boards', '\n
    \n
    {$ibforums->lang[\'cat_name\']}{$ibforums->lang[\'topics\']}{$ibforums->lang[\'replies\']}{$ibforums->lang[\'last_post_info\']}
    \n \n \n \n
    \n \n \n \n \n \n \n \n \n', 'subheader', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n
    {$ibforums->lang[\'cat_name\']}{$ibforums->lang[\'topics\']}{$ibforums->lang[\'replies\']}{$ibforums->lang[\'last_post_info\']}
     
    \n
    \n
    \n', 'end_this_cat', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n', 'end_all_cats', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n{$ibforums->vars[\'board_name\']} {$ibforums->lang[\'newslink\']} base_url}&act=ST&f=$fid&t=$tid\'>$title
    \n', 'newslink', '$fid="", $title="", $tid=""', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \' align=\'center\'>\n \n \n \n \n
    {$ibforums->lang[\'welcome_back_text\']} $lastvisit 
    \n', 'PageTop', '$lastvisit', 1035406235, 0);||~&~||(1, 'skin_boards', '\n
    \n \' align=\'center\'>\n \n \n \n \n
    {$ibforums->lang[\'qli_title\']}\n lang[\'qli_name\']}\'>\n \n lang[\'qli_go\']}\'>\n
    \n
    \n', 'quick_log_in', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n
    {$info[\'img_new_post\']}{$info[\'name\']}
    {$info[\'description\']}
    {$info[\'moderator\']}
    {$info[\'topics\']}{$info[\'posts\']}{$info[\'last_post\']}
    {$ibforums->lang[\'in\']}: {$info[\'last_topic\']}
    {$ibforums->lang[\'by\']}: {$info[\'last_poster\']}
    \n \n \n \n \n \n \n
    \n \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'page_title\']}   [ -  + ]
    {$ibforums->lang[\'while_away\']}
    $away_text
    {$ibforums->lang[\'show_me\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    vars[\'img_url\']}/nav_m_dark.gif\' border=\'0\'>{$ibforums->lang[\'sm_forum_leaders\']}
    vars[\'img_url\']}/nav_m_dark.gif\' border=\'0\'>{$ibforums->lang[\'sm_todays_posts\']}
    vars[\'img_url\']}/nav_m_dark.gif\' border=\'0\'>{$ibforums->lang[\'sm_today_posters\']}
    vars[\'img_url\']}/nav_m_dark.gif\' border=\'0\'>{$ibforums->lang[\'sm_all_posters\']}
    vars[\'img_url\']}/nav_m_dark.gif\' border=\'0\'>{$ibforums->lang[\'sm_my_last_posts\']}
    \n
    {$ibforums->lang[\'search_forums\']}
     lang[\'go\']}\'>
    {$ibforums->lang[\'search_help\']}
     lang[\'go\']}\'>
    \n
    \n
    \n \n
    \n', 'main', '$away_text=""', 1035406235, 0);||~&~||(1, 'skin_buddy', '\n\n
    \n \n \n \n \n \n \n \n
    \n \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'page_title\']}
    {$ibforums->lang[\'log_in_needed\']}
    \n {$ibforums->lang[\'no_guests\']}\n

    \n
    \n {$ibforums->lang[\'log_in\']}\n

    \n {$ibforums->lang[\'lin_name\']}
    \n
    \n {$ibforums->lang[\'lin_pass\']}
    \n
    \n lang[\'log_in\']}\' class=\'forminput\'>\n
    \n

    \n {$ibforums->lang[\'reg_text\']}\n

    \n
    {$ibforums->lang[\'reg_link\']}
    \n
    \n
    \n
    \n \n
    \n
    \n\n', 'login', '', 1035406235, 0);||~&~||(1, 'skin_buddy', '\n\n \n \n \n \n
    [ {$ibforums->lang[\'refresh\']} ] | [ {$ibforums->lang[\'close_win\']} ]
    \n \n\n', 'closelink', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n
    \n', 'cal_edit_button', '$id', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n\n \n \n \n \n \n \n \n
      {$ibforums->lang[\'event_date\']} {$event[\'mday\']} {$event[\'month_text\']} {$event[\'year\']}  [ {$event[\'title\']} ] ($event_type)
    \n \n \n \n \n \n \n \n \n
    base_url}&act=Profile&MID={$member[\'id\']}\'>{$member[\'name\']}

    {$member[\'avatar\']}
    {$ibforums->lang[\'group\']} {$member[\'g_title\']}
    {$ibforums->lang[\'posts\']} {$member[\'posts\']}
    {$ibforums->lang[\'joined\']} {$member[\'joined\']}
    \n $edit_button\n \n {$event[\'event_text\']}\n \n \n
    \n \n \n \n \n
    \n << base_url}&act=calendar&d={$event[\'mday\']}&m={$event[\'month\']}&y={$event[\'year\']}\'>{$ibforums->lang[\'back\']}\n
    \n
    \n
    \n
    \n\n', 'cal_show_event', '$event, $member, $event_type, $edit_button=""', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n\n
    \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'cal_title_events\']}
    \n\n', 'cal_page_events_start', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n \n \n \n \n \n \n \n \n
    \n \n \n \n \n
    {$ibforums->lang[\'cal_birthdays\']}
    \n
    \n \n \n
    \n
      \n \n \n', 'cal_birthday_start', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n
    • base_url}&act=Profile&MID=$uid\'>$uname ($age)
    • \n', 'cal_birthday_entry', '$uid, $uname, $age=""', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n
    \n \n \n \n
    \n \n \n \n \n
    \n << base_url}&act=calendar&d={$ibforums->input[\'d\']}&m={$ibforums->input[\'m\']}&y={$ibforums->input[\'y\']}\'>{$ibforums->lang[\'back\']}\n
    \n
    \n
    \n', 'cal_birthday_end', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n\n
    \n
    base_url}&act=calendar\' method=\'POST\'>\n \' align=\'center\'>\n \n \n \n
    $month $year
    \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n
    {$ibforums->lang[\'table_title\']}\n < base_url}&act=calendar&m={$prev[\'month_id\']}&y={$prev[\'year_id\']}\'>{$prev[\'month_name\']} {$prev[\'year_id\']}\n    base_url}&act=calendar&m={$next[\'month_id\']}&y={$next[\'year_id\']}\'>{$next[\'month_name\']} {$next[\'year_id\']} >\n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n
    \n    lang[\'form_submit_show\']}\' class=\'forminput\'>\n base_url}&act=calendar&code=newevent\'>{$ibforums->lang[\'post_new_event\']}\n < base_url}&act=calendar&m={$prev[\'month_id\']}&y={$prev[\'year_id\']}\'>{$prev[\'month_name\']} {$prev[\'year_id\']}\n    base_url}&act=calendar&m={$next[\'month_id\']}&y={$next[\'year_id\']}\'>{$next[\'month_name\']} {$next[\'year_id\']} >\n
    \n
    \n
    \n
    \n \n \n \n', 'cal_main_content', '$month, $year, $prev, $next', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n\n $day\n', 'cal_day_bit', '$day', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n\n \n \n \n \n', 'cal_new_row', '', 1035406236, 0);||~&~||(1, 'skin_calendar', '\n\n
    \n \n', 'cal_blank_cell', '', 1035406236, 0);||~&~||(1, 'skin_calendar', '\n\n $month_day $events\n \n', 'cal_date_cell', '$month_day, $events=""', 1035406236, 0);||~&~||(1, 'skin_calendar', '\n\n $month_day$events\n \n', 'cal_date_cell_today', '$month_day, $events=""', 1035406236, 0);||~&~||(1, 'skin_calendar', '\n \n
    \n', 'cal_events_start', '', 1035406236, 0);||~&~||(1, 'skin_calendar', '\n
  • base_url}&act=calendar&$link\'>$text\n', 'cal_events_wrap', '$link, $text', 1035406236, 0);||~&~||(1, 'skin_calendar', '\n \n', 'cal_events_end', '', 1035406236, 0);||~&~||(1, 'skin_emails', '\n
    \n \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'report_title\']}
    {$ibforums->lang[\'report_topic\']}base_url}&act=ST&f=$fid&t=$tid&st=$st&#entry$pid\'>$topic_title\n
    {$ibforums->lang[\'report_message\']}\n
    \n \n
    \n
    \n
    \n', 'report_form', '$fid, $tid, $pid, $st, $topic_title', 1035406236, 0);||~&~||(1, 'skin_emails', '\n \n \n \n \n {$ibforums->lang[\'msn_name\']}\n \n \n \n {$ibforums->lang[\'msn_send_msg\']}\n \n \n {$ibforums->lang[\'msn_add_contact\']}\n \n \n', 'msn_body', '$msnname', 1035406236, 0);||~&~||(1, 'skin_emails', '\n \n \n {$ibforums->lang[\'yahoo_name\']}\n \n \n \n {$ibforums->lang[\'yahoo_status\']}\n \n \n \n {$ibforums->lang[\'yahoo_send_msg\']}\n \n \n {$ibforums->lang[\'yahoo_view_profile\']}\n \n \n', 'yahoo_body', '$yahoo', 1035406236, 0);||~&~||(1, 'skin_emails', '\n
    \n \n \n \n {$ibforums->lang[\'name\']}\n member[\'name\']}\' size=\'40\' class=\'forminput\' onMouseOver="this.focus()" onFocus="this.select()">\n \n \n {$ibforums->lang[\'email\']}\n member[\'email\']}\' size=\'40\' class=\'forminput\' onMouseOver="this.focus()" onFocus="this.select()">\n \n \n {$ibforums->lang[\'msg\']}\n \n \n \n lang[\'submit\']}\' class=\'forminput\'>\n \n
    \n', 'icq_body', '$data', 1035406236, 0);||~&~||(1, 'skin_emails', '\n \n \n \n \n \n  \n \n \n', 'end_table', '', 1035406236, 0);||~&~||(1, 'skin_emails', '\n \' align=\'center\'>\n \n
    \n \n \n \n', 'pager_header', '$data', 1035406236, 0);||~&~||(1, 'skin_emails', '\n\n
    {$data[TITLE]}
    \n
    Download AIMAIM Remote
    Send me an Instant Message
    Add me to Your Buddy List
    Add Remote to Your Page
    Download AOL Instant Messenger

    \n\n', 'aol_body', '$data', 1035406236, 0);||~&~||(1, 'skin_emails', '\n
    \n \n \n session_id}\'>\n input[\'st\']}\'>\n input[\'f\']}\'>\n input[\'t\']}\'>\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'title\']}
    {$ibforums->lang[\'send_lang\']}$lang
    {$ibforums->lang[\'to_name\']}
    {$ibforums->lang[\'to_email\']}
    {$ibforums->lang[\'subject\']}
    {$ibforums->lang[\'message\']}\n
    \n \n
    \n
    \n
    \n', 'forward_form', '$title, $text, $lang', 1035406236, 0);||~&~||(1, 'skin_emails', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'send_email_to\']} {$data[NAME]}
    {$ibforums->lang[\'show_address_text\']}
    >>{$ibforums->lang[\'send_email_to\']} {$data[NAME]}
    \n
    \n', 'show_address', '$data', 1035406236, 0);||~&~||(1, 'skin_emails', '\n
    \n \n \n session_id}\'>\n \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'send_title\']}
    {$ibforums->lang[\'send_email_to\']} {$data[NAME]}
    {$ibforums->lang[\'subject\']}\n
    {$ibforums->lang[\'message\']}

    {$ibforums->lang[\'msg_txt\']}
    \n
    \n \n
    \n
    \n
    \n', 'send_form', '$data', 1035406236, 0);||~&~||(1, 'skin_emails', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'email_sent\']}
    {$ibforums->lang[\'email_sent_txt\']} $member_name
    \n
    \n', 'sent_screen', '$member_name', 1035406236, 0);||~&~||(1, 'skin_emails', '\n \' align=\'center\'>\n \n \n \n
    $data
    \n', 'forum_jump', '$data', 1035406236, 0);||~&~||(1, 'skin_forum', '\n
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id};act=SF&f=$Data\' method=\'post\'>\n \n \n \n session_id}\'>\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'need_password\']}
    {$ibforums->lang[\'need_password_txt\']}
    {$ibforums->lang[\'enter_pass\']}
    lang[\'f_pass_submit\']}\' class=\'forminput\'>
    \n
    \n
    \n', 'Forum_log_in', '$Data', 1035406236, 0);||~&~||(1, 'skin_forum', '\n \n
    \n \' align=\'center\'>\n \n \n \n
    {$rules[\'title\']}

    {$rules[\'body\']}
    \n
    \n \n', 'show_rules_full', '$rules', 1035406236, 0);||~&~||(1, 'skin_forum', '\n \n
    \n \' align=\'center\'>\n \n \n \n
    >>vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=SR&f={$rules[\'fid\']}\'>{$rules[\'title\']}
    \n
    \n \n', 'show_rules_link', '$rules', 1035406236, 0);||~&~||(1, 'skin_forum', '\n | base_url}&act=Track&f=$fid&type=forum\'>{$ibforums->lang[\'ft_title\']}\n', 'show_sub_link', '$fid', 1035406236, 0);||~&~||(1, 'skin_forum', '\n
    \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n
    {$ibforums->lang[\'showing_text\']}{$ibforums->lang[\'sort_text\']} lang[\'sort_submit\']}\' class=\'forminput\'>
    \n
    \n \n \n \n\n\' border=\'0\' cellspacing=\'0\' cellpadding=\'4\' align=\'center\'>\n \n \n \n \n
    {$Data[SHOW_PAGES]}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$Data[\'id\']}\'><{A_POST}>{$Data[POLL_BUTTON]}
    \n\' border=\'0\' cellspacing=\'0\' cellpadding=\'3\' align=\'center\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    <{B_NEW}>{$ibforums->lang[\'pm_open_new\']} <{B_POLL}>{$ibforums->lang[\'pm_poll\']}  \n \n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\' name=\'search\'>\n session_id}\'>\n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'search_forum\']} lang[\'enter_keywords\']}\' onFocus=\'this.value = "";\'> lang[\'search_go\']}\' class=\'forminput\'>
    \n
    \n {$Data[FORUM_JUMP]}\n
    <{B_NORM}>{$ibforums->lang[\'pm_open_no\']} <{B_POLL_NN}>{$ibforums->lang[\'pm_poll_no\']} 
    <{B_HOT}>{$ibforums->lang[\'pm_hot_new\']} <{B_LOCKED}>{$ibforums->lang[\'pm_locked\']} 
    <{B_HOT_NN}>{$ibforums->lang[\'pm_hot_no\']} <{B_MOVED}>{$ibforums->lang[\'pm_moved\']} 
    \n', 'TableEnd', '$Data', 1035406236, 0);||~&~||(1, 'skin_forum', '\n \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    {$rules[\'title\']}
    {$rules[\'body\']}
    >>base_url}&act=SF&f={$rules[\'fid\']}\'>{$ibforums->lang[\'back_to_forum\']}
    \n
    \n
    \n \n', 'show_rules', '$rules', 1035406236, 0);||~&~||(1, 'skin_forum', '\n \' align=\'center\'>\n \n \n \n
    $title$pages
    \n', 'page_title', '$title="", $pages=""', 1035406236, 0);||~&~||(1, 'skin_forum', '\n\n\n\n\n\n\n\' border=\'0\' cellspacing=\'0\' cellpadding=\'4\' align=\'center\'>\n \n \n \n \n
    {$info[\'SHOW_PAGES\']}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$info[\'id\']}\'><{A_POST}>{$info[POLL_BUTTON]}
    \n\' align=\'center\' border=\'0\' cellspacing=\'1\' cellpadding=\'0\' bgcolor=\'<{tbl_border}>\'>\n \n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}\' method=\'POST\'>\n \n \n \n \n \n \n', 'show_no_matches', '', 1035406236, 0);||~&~||(1, 'skin_forum', '\n $posts\n', 'who_link', '$tid, $posts', 1035406237, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n \n \n \n \n \n \n \n', 'RenderRow', '$Data', 1035406237, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n \n \n', 'render_pinned_start', '', 1035406237, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n \n \n', 'render_pinned_end', '', 1035406237, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n \n \n \n \n \n \n \n', 'render_pinned_row', '$Data', 1035406237, 0);||~&~||(1, 'skin_global', '\n
    \n \n \n \n \n \n \n
    vars[\'img_url\']}/nav_m.gif\' alt=\'\' width=\'8\' height=\'8\'>{$info[\'name\']}[ base_url}&act=Login&CODE=04&f={$info[\'id\']}\'>{$ibforums->lang[\'mark_as_read\']} ]
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n', 'PageTop', '$info', 1035406236, 0);||~&~||(1, 'skin_forum', '\n \n
    \n \n \n \n session_id}\'>\n input[\'st\']}\'>\n \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'20\' height=\'1\'>vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'20\' height=\'1\'>{$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    \n \n \n \n \n \n \n
    {$ibforums->lang[\'active_users_title\']} ({$ibforums->lang[\'active_users_detail\']})
    {$ibforums->lang[\'active_users_members\']} {$active[\'names\']}
    \n \n\n', 'forum_active_users', '$active=array()', 1035406236, 0);||~&~||(1, 'skin_forum', '\n
    \n
    \n {$ibforums->lang[\'no_topics\']}\n

    \n
    {$Data[\'folder_img\']}{$Data[\'topic_icon\']}\n \n \n \n \n \n
    {$Data[\'go_new_post\']}{$Data[\'prefix\']} vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&s={$ibforums->session_id}\' class=\'linkthru\' title=\'{$ibforums->lang[\'topic_started_on\']} {$Data[\'start_date\']}\'>{$Data[\'title\']} {$Data[PAGES]}
    \n {$Data[\'description\']}
    {$Data[\'starter\']}{$Data[\'posts\']}{$Data[\'views\']}{$Data[\'last_post\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&view=getlastpost\'>{$Data[\'last_text\']} {$Data[\'last_poster\']}
      {$ibforums->lang[\'pinned_start\']}
      {$ibforums->lang[\'regular_topics\']}
    {$Data[\'folder_img\']}{$Data[\'topic_icon\']}\n \n \n \n \n \n
    {$Data[\'go_new_post\']}{$Data[\'prefix\']} vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&s={$ibforums->session_id}\' class=\'linkthru\' title=\'{$ibforums->lang[\'topic_started_on\']} {$Data[\'start_date\']}\'>{$Data[\'title\']} {$Data[PAGES]}
    \n {$Data[\'description\']}
    {$Data[\'starter\']}{$Data[\'posts\']}{$Data[\'views\']}{$Data[\'last_post\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&view=getlastpost\'>{$Data[\'last_text\']} {$Data[\'last_poster\']}
    \n\n \n \n\n
    {$ibforums->lang[\'logged_in_as\']} {$ibforums->member[\'name\']} ( base_url}&act=Login&CODE=03\'>{$ibforums->lang[\'log_out\']}$ad_link $mod_link )\n base_url}&act=UserCP&CODE=00\' title=\'{$ibforums->lang[\'cp_tool_tip\']}\'>{$ibforums->lang[\'your_cp\']} | base_url}&act=Msg&CODE=01\'>{$msg[TEXT]}\n | base_url}&act=Search&CODE=getnew\'>{$ibforums->lang[\'view_new_posts\']} | lang[\'bb_tool_tip\']}\'>{$ibforums->lang[\'l_qb\']}\n
    \n', 'Member_bar', '$msg, $ad_link, $mod_link', 1035406237, 0);||~&~||(1, 'skin_global', '\n\'IPS\n', 'ibf_banner', '', 1035406237, 0);||~&~||(1, 'skin_global', '\n \n\' border=\'0\' align=\'center\' cellpadding=\'0\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n \n \n \n\n
    \n vars[\'img_url\']}/header_tile.gif\'>\n \n \n \n \n
    base_url}\' title=\'Board Home\'>vars[\'img_url\']}/logo.jpg\' alt=\'Powered by Invision Board\' border=\'0\'>vars[\'img_url\']}/header_tile.gif\'>
    \n
    \n \n \n \n \n
    <% MEMBER BAR %>\n
    \n
    \n
    \n', 'BoardHeader', '$time=""', 1035406237, 0);||~&~||(1, 'skin_global', '\n\' align=\'center\' border="0" cellspacing="0" cellpadding="2">\n \n \n \n \n \n
    <{F_NAV}>\n \' class=\'row2\'>\n \n \n \n
    base_url}&act=Help\'>{$ibforums->lang[\'tb_help\']}\n \'>| base_url}&act=Search&f={$ibforums->input[\'f\']}\'>{$ibforums->lang[\'tb_search\']}\n \'>| base_url}&act=Members\'>{$ibforums->lang[\'tb_mlist\']}\n \'>| base_url}&act=calendar\'>{$ibforums->lang[\'tb_calendar\']}\n
    \n \n
    \n
    \n', 'end_nav', '', 1035406237, 0);||~&~||(1, 'skin_global', '\n\n\n{$ibforums->lang[\'stand_by\']}\nvars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}$Url\'>\n$css\n\n\n\' height=\'85%\' align=\'center\'>\n\n \n\n
    \n \n \n \n \n
    \n \n \n \n \n
    \n {$ibforums->lang[\'thanks\']}, \n $Text

    \n {$ibforums->lang[\'transfer_you\']}

    \n (vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}$Url\'>{$ibforums->lang[\'dont_wait\']})
    \n
    \n
    \n\n\n', 'Redirect', '$Text, $Url, $css', 1035406237, 0);||~&~||(1, 'skin_global', '\n \n', 'PM_popup', '', 1035406237, 0);||~&~||(1, 'skin_global', '\n {$ibforums->lang[\'guest_stuff\']} ( base_url}&act=Login&CODE=00\'>{$ibforums->lang[\'log_in\']} | base_url}&act=Reg&CODE=00\'>{$ibforums->lang[\'register\']} )\n', 'Guest_bar', '', 1035406237, 0);||~&~||(1, 'skin_global', '\n | vars[\'board_url\']}/admin.{$ibforums->vars[\'php_ext\']}\' target=\'_blank\'>{$ibforums->lang[\'admin_cp\']}\n', 'admin_link', '', 1035406237, 0);||~&~||(1, 'skin_global', '\n | base_url}&act=modcp\'>{$ibforums->lang[\'mod_cp\']}\n', 'mod_link', '', 1035406237, 0);||~&~||(1, 'skin_global', '\nvars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\' method=\'post\'>\n \n \n session_id}\'>\n \n \n \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'er_log_in_title\']}
    {$ibforums->lang[\'erl_enter_name\']}
    {$ibforums->lang[\'erl_enter_pass\']}
    \n lang[\'erl_log_in_submit\']}\' class=\'forminput\'>\n
    \n
    \n \n', 'error_log_in', '$q_string', 1035406237, 0);||~&~||(1, 'skin_global', '\n\' border=\'0\' align=\'center\' cellpadding=\'0\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n \n \n \n
    \n \n \n \n \n \n
    vars[\'img_url\']}/nav_m.gif\' alt=\'\' width=\'8\' height=\'8\'>{$ibforums->lang[\'offline_title\']}
    \n
    \n \n \n \n \n \n \n \n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\' method=\'post\'>\n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n

    $message

    {$ibforums->lang[\'offline_login\']}
    {$ibforums->lang[\'erl_enter_name\']}
    vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'180\' height=\'1\'>
    {$ibforums->lang[\'erl_enter_pass\']}
    lang[\'erl_log_in_submit\']}\' class=\'forminput\'>
    \n', 'board_offline', '$message = ""', 1035406237, 0);||~&~||(1, 'skin_global', '\n \n\' border=\'0\' cellspacing=\'1\' align=\'center\' cellpadding=\'0\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n \n \n \n
    \n \n \n \n \n \n
    vars[\'img_url\']}/nav_m.gif\' alt=\'\' width=\'8\' height=\'8\'>{$ibforums->lang[\'error_title\']}
    \n
    \n \n \n \n \n \n \n \n
    \n {$ibforums->lang[\'exp_text\']}

    \n {$ibforums->lang[\'msg_head\']}\n

    \n $message\n

    \n \n

    \n Useful Links:\n

    \n • base_url}&act=Reg&CODE=10\'>{$ibforums->lang[\'er_lost_pass\']}
    \n • base_url}&act=Reg&CODE=00\'>{$ibforums->lang[\'er_register\']}
    \n • base_url}&act=Help&CODE=00\'>{$ibforums->lang[\'er_help_files\']}
    \n • {$ibforums->lang[\'er_contact_admin\']}

    \n
    < {$ibforums->lang[\'error_back\']}
    \n
    \n', 'Error', '$message, $ad_email_one="", $ad_email_two=""', 1035406237, 0);||~&~||(1, 'skin_global', '\n {$ibforums->lang[\'logged_in_as\']} {$ibforums->member[\'name\']} ( base_url}&act=UserCP&CODE=00\'>{$ibforums->lang[\'your_cp\']} | base_url}&act=Login&CODE=03\'>{$ibforums->lang[\'log_out\']} )\n', 'Member_no_usepm_bar', '', 1035406237, 0);||~&~||(1, 'skin_help', '\n \n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=Help&s={$ibforums->session_id}&CODE=01&HID={$entry[\'id\']}\'>{$entry[\'title\']}
    {$entry[\'description\']}\n \n \n', 'row', '$entry', 1035406237, 0);||~&~||(1, 'skin_help', '\n \n \n $text\n \n \n', 'display', '$text', 1035406237, 0);||~&~||(1, 'skin_help', '\n \n \n \n \n', 'end', '', 1035406237, 0);||~&~||(1, 'skin_help', '\n \n {$ibforums->lang[\'no_results\']}\n \n', 'no_results', '', 1035406237, 0);||~&~||(1, 'skin_help', '\n \' align=\'center\'>\n \n
    $two_text
    \n\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n
    $one_text
    \n
    \n \n \n session_id}\'>\n {$ibforums->lang[\'search_txt\']}   lang[\'submit\']}\' class=\'forminput\'>\n
    \n
    \n
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n', 'start', '$one_text, $two_text, $three_text', 1035406237, 0);||~&~||(1, 'skin_legends', '\n\nbase_url}&act=legends&entry=$entry&name=$name&sep=$sep&CODE=finduser_two\'>\n
    $three_text
    \n\n \n\n\n \n\n\n \n\n
    {$ibforums->lang[\'fu_title\']}
    {$ibforums->lang[\'fu_enter_name\']}



    lang[\'fu_search_but\']}\'>
    {$ibforums->lang[\'fu_close_win\']}
    \n\n\n', 'find_user_one', '$entry="", $name="", $sep="comma"', 1035406237, 0);||~&~||(1, 'skin_legends', '\n\n
    base_url}&entry=$entry&name=$name&sep=$sep&CODE=finduser_two\'>\n\n\n \n\n\n \n\n\n \n\n
    {$ibforums->lang[\'fu_error\']}
    $msg
    {$ibforums->lang[\'fu_back\']} :: {$ibforums->lang[\'fu_close_win\']}
    \n
    \n\n', 'find_user_error', '$msg', 1035406237, 0);||~&~||(1, 'skin_legends', '\n\n\n\n
    \n\n\n \n\n\n \n\n\n \n\n
    {$ibforums->lang[\'fu_title\']}
    {$ibforums->lang[\'fu_add_desc\']}



    lang[\'fu_add_mem\']}\'>
    {$ibforums->lang[\'fu_back\']} :: {$ibforums->lang[\'fu_close_win\']}
    \n
    \n\n', 'find_user_final', '$names="",$entry="", $name="", $sep="line"', 1035406237, 0);||~&~||(1, 'skin_legends', '\n\n', 'emoticon_javascript', '', 1035406237, 0);||~&~||(1, 'skin_legends', '\n\n\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n\n\n', 'page_header', '$title, $row1, $row2', 1035406237, 0);||~&~||(1, 'skin_legends', '\n\n \n \n \n \n\n\n', 'emoticons_row', '$code, $image', 1035406237, 0);||~&~||(1, 'skin_legends', '\n\n
    $title
    $row1$row2
    $codevars[\'EMOTICONS_URL\']}/$image\' border=\'0\' valign=\'absmiddle\' alt=\'$image\'>
    \n
    \n\n', 'page_footer', '', 1035406238, 0);||~&~||(1, 'skin_login', '\n
    \n
    \n \n \n session_id}\'>\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n
    \' valign=\'left\' colspan=\'2\' class=\'titlelarge\'>{$ibforums->lang[\'log_out\']}

    {$ibforums->lang[\'log_out_txt\']}
    \n \n
    \n
    \n
    \n', 'ShowLogOutForm', '', 1035406238, 0);||~&~||(1, 'skin_login', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n
    {$ibforums->lang[\'errors_found\']}
    \'>$data
    \n
    \n
    \n', 'errors', '$data', 1035406238, 0);||~&~||(1, 'skin_login', '\n \n
    \n \'>\n \n \n \n \n \n \n
    {$ibforums->lang[\'login_text\']}
    {$ibforums->lang[\'forgot_pass\']} vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=Reg&CODE=10\'>{$ibforums->lang[\'pass_link\']}
    \n
    \n \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    $message
    {$ibforums->lang[\'enter_name\']}
    {$ibforums->lang[\'enter_pass\']}
    \n
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'options\']}
    {$ibforums->lang[\'cookies\']}{$ibforums->lang[\'cookie_yes\']}
    {$ibforums->lang[\'cookie_no\']}
    {$ibforums->lang[\'privacy\']}{$ibforums->lang[\'anon_name\']}
    \n \n
    \n
    \n
    \n', 'ShowForm', '$message, $referer=""', 1035406238, 0);||~&~||(1, 'skin_mlist', '\n\n\n\n \n \n \n
    {$links[SHOW_PAGES]}
    \n\n \n \n \n \n \n \n \n \n \n
    \n  \n
    \n \n \n \n \n \n \n \n \n \n \n \n', 'Page_header', '$links', 1035406238, 0);||~&~||(1, 'skin_mlist', '\n
    {$ibforums->lang[\'member_name\']}{$ibforums->lang[\'member_level\']}{$ibforums->lang[\'member_group\']}{$ibforums->lang[\'member_joined\']}{$ibforums->lang[\'member_posts\']}{$ibforums->lang[\'member_email\']}{$ibforums->lang[\'member_aol\']}{$ibforums->lang[\'member_icq\']}
    \n \n \n \n
    {$links[SHOW_PAGES]}
    \n', 'end', '$links', 1035406238, 0);||~&~||(1, 'skin_mlist', '\nNo results\n', 'no_results', '', 1035406238, 0);||~&~||(1, 'skin_mlist', '\n\n', 'start', '', 1035406238, 0);||~&~||(1, 'skin_mlist', '\n \n \n
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id};act=Members\' method=\'POST\'>\n \n session_id}\'>\n
    \n   input[\'name\']}\'>
    \n {$ibforums->lang[\'sorting_text\']} lang[\'sort_submit\']}\' class=\'forminput\'>
    \n
    \n', 'Page_end', '', 1035406238, 0);||~&~||(1, 'skin_mlist', '\n \n \n {$member[MEMBER_NAME]}\n {$member[MEMBER_PIPS_IMG]}\n {$member[MEMBER_GROUP]}\n {$member[MEMBER_JOINED]}\n {$member[MEMBER_POSTS]}\n {$member[MEMBER_EMAIL]}\n {$member[AOLNAME]}\n {$member[ICQNUMBER]}\n \n \n', 'show_row', '$member', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \n\n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_mod_posts_title2\']} $forumname\n
    $pages\n
    \n \'>\n \n \n \n \n', 'modtopicview_start', '$tid,$forumname, $fid, $title', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n\n \n \n \n', 'modpost_topicend', '', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\nbase_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n\n \n \n \n \n', 'modtopics_end', '', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n \n \n \n \n \n \n\n', 'mod_topic_spacer', '', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n\n \n \n\n', 'results', '$text', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n\n \n \n\n', 'prune_confirm', '$tcount, $count, $link, $link_text', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n', 'prune_splash', '$forum, $forums, $select', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n input[\'f\']}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n', 'edit_user_form', '$profile', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n input[\'f\']}\'>\n \n \n \n \n \n \n \n \n \n \n \n\n', 'find_two', '$select', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n input[\'f\']}\'>\n \n \n \n \n \n \n \n \n \n \n \n\n', 'find_user', '', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n \n \n \n \n \n \n \n \n \n\n', 'splash', '$tcount, $pcount, $forum', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n\n\n \n \n \n\n\n', 'mod_exp', '$words', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n\n \n
    $title
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_mod_posts_title2\']} $forumname\n
    \n \'>\n \n \n \n \n \n \n \n', 'modpost_topicstart', '$forumname, $fid', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n \n \n \n \n \n \n \n', 'modpost_topicentry', '$title, $tid, $replies, $fid', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n
    {$ibforums->lang[\'cp_3_title\']}{$ibforums->lang[\'cp_3_replies\']}{$ibforums->lang[\'cp_3_approveall\']}{$ibforums->lang[\'cp_3_viewall\']}
    base_url}&act=ST&f=$fid&t=$tid\' target=\'_blank\'>$title$repliesbase_url}&act=ModCP&f=$fid&tid=$tid&CODE=modtopicapprove\'>{$ibforums->lang[\'cp_3_approveall\']}base_url}&act=ModCP&f=$fid&tid=$tid&CODE=modtopicview\'>{$ibforums->lang[\'cp_3_viewall\']}
    \n
    \n
    \n \n \n \n \n \n', 'modtopics_start', '$pages,$forumname, $fid', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n \n \n \n
    {$ibforums->lang[\'cp_mod_topics_title2\']} $forumname\n
    $pages\n
      {$ibforums->lang[\'cp_1_selected\']}  lang[\'cp_1_go\']}\' class=\'forminput\'>
    \n
    \n \'>\n \n \n \n \n', 'mod_topic_title', '$title, $topic_id', 1035406238, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n\n', 'mod_postentry', '$data', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n \n \n \n\n', 'mod_postentry_checkbox', '$pid', 1035406238, 0);||~&~||(1, 'skin_mod', '\n\n
       $title
    {$data[\'member\'][\'name\']}

    {$data[\'member\'][\'avatar\']}
    {$data[\'member\'][\'MEMBER_GROUP\']}
    {$data[\'member\'][\'MEMBER_POSTS\']}
    {$data[\'member\'][\'MEMBER_JOINED\']}
    \n {$ibforums->lang[\'posted_on\']} {$data[\'msg\'][\'post_date\']}

    \n \n {$data[\'msg\'][\'post\']}\n \n
      {$ibforums->lang[\'cp_3_postno\']} $pid
    \n
    \n  \n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_results\']}\n
    $text
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_check_result\']}\n
    {$ibforums->lang[\'cp_check_text\']}\n
    {$ibforums->lang[\'cp_total_topics\']}$tcount
    {$ibforums->lang[\'cp_total_match\']}$count
    base_url}$link\'>$link_text
    \n
    {$ibforums->lang[\'cp_prune\']} {$forum[\'name\']}
    {$ibforums->lang[\'cp_prune_text\']}
    {$ibforums->lang[\'cp_action\']}
    {$ibforums->lang[\'cp_prune_days\']}input[\'dateline\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_prune_type\']}$select
    {$ibforums->lang[\'cp_prune_replies\']}input[\'posts\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_prune_member\']}input[\'member\']}\' class=\'forminput\'>
    lang[\'cp_prune_sub1\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_edit_user\']}: {$profile[\'name\']}
    {$ibforums->lang[\'cp_remove_av\']}
    {$ibforums->lang[\'cp_edit_website\']}
    {$ibforums->lang[\'cp_edit_location\']}
    {$ibforums->lang[\'cp_edit_interests\']}
    {$ibforums->lang[\'cp_edit_signature\']}
    lang[\'cp_find_2_submit\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_edit_user\']}
    {$ibforums->lang[\'cp_find_2_user\']}$select
    lang[\'cp_find_2_submit\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_edit_user\']}
    {$ibforums->lang[\'cp_find_user\']}
    lang[\'cp_find_submit\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_welcome\']}
    {$ibforums->lang[\'cp_welcome_text\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_mod_in\']}$forum
    {$ibforums->lang[\'cp_topics_wait\']}$tcount
    {$ibforums->lang[\'cp_posts_wait\']}$pcount
    \n
    $words
    \n \n
    \n
    \n \n\n\n', 'end_form', '$action', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n\n \n {$ibforums->lang[move_from]} $forum_name {$ibforums->lang[to]}:\n \n \n \n {$ibforums->lang[\'leave_link\']}\n \n \n \n \n\n\n', 'move_form', '$jhtml, $forum_name', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n \n \n', 'delete_js', '', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n\n \n {$ibforums->lang[edit_f_title]}\n \n \n \n {$ibforums->lang[edit_f_desc]}\n \n \n\n\n', 'topictitle_fields', '$title, $desc', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n \n {$ibforums->lang[\'pe_option\']} $id\n \n \n \n', 'poll_entry', '$id, $entry', 1035406239, 0);||~&~||(1, 'skin_mod', '\n\n \n {$ibforums->lang[\'pe_pollonly\']} $id\n \n \n \n', 'poll_select_form', '', 1035406239, 0);||~&~||(1, 'skin_mod', '\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n\n\n', 'table_top', '$posting_title', 1035406240, 0);||~&~||(1, 'skin_mod', '\n
    \n
    $posting_title
    \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'th_title\']}
    {$ibforums->lang[\'th_topic\']}{$data[\'th_topic\']}
    {$ibforums->lang[\'th_desc\']}{$data[\'th_desc\']}
    {$ibforums->lang[\'th_start_date\']}{$data[\'th_start_date\']}
    {$ibforums->lang[\'th_start_name\']}{$data[\'th_start_name\']}
    {$ibforums->lang[\'th_last_date\']}{$data[\'th_last_date\']}
    {$ibforums->lang[\'th_last_name\']}{$data[\'th_last_name\']}
    {$ibforums->lang[\'th_avg_post\']}{$data[\'th_avg_post\']}
    \n
    \n', 'topic_history', '$data', 1035406241, 0);||~&~||(1, 'skin_mod', '\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n\n', 'mod_log_start', '', 1035406241, 0);||~&~||(1, 'skin_mod', '\n \n \n \n\n', 'mod_log_none', '', 1035406241, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n\n', 'mod_log_row', '$data', 1035406241, 0);||~&~||(1, 'skin_mod', '\n
    {$ibforums->lang[\'ml_title\']}
    {$ibforums->lang[\'ml_name\']}{$ibforums->lang[\'ml_desc\']}{$ibforums->lang[\'ml_date\']}
    {$data[\'ml_none\']}
    {$data[\'member\']}{$data[\'action\']}{$data[\'date\']}
    \n
    \n\n', 'mod_log_end', '', 1035406241, 0);||~&~||(1, 'skin_mod', '\n\n
    \n\' align=\'center\'>\n \n \n \n
    {$data}
    \n
    \n', 'forum_jump', '$data, $menu_extra=""', 1035406241, 0);||~&~||(1, 'skin_mod', '\n\n\n
    {$ibforums->lang[\'mt_new_title\']}
    {$ibforums->lang[\'mt_new_desc\']}
    {$ibforums->lang[\'st_forum\']}
    \n \'>\n \n \n \n\n\n', 'split_body', '$jump=""', 1035406241, 0);||~&~||(1, 'skin_mod', '\n\n \n \n \n\n\n', 'split_row', '$row', 1035406241, 0);||~&~||(1, 'skin_mod', '\n\n
    {$ibforums->lang[\'st_post\']}
    \' class=\'{$row[\'post_css\']}\'>{$row[\'st_top_bit\']}\n
    \n
    {$row[\'post\']}\n
    {$ibforums->lang[\'st_split\']}  
    \n
    \n
    \n \n
    \n \n \n\n\n', 'split_end_form', '$action', 1035406242, 0);||~&~||(1, 'skin_mod', '\n\n\n \n {$ibforums->lang[\'mt_new_title\']}\n \n \n \n {$ibforums->lang[\'mt_new_desc\']}\n \n \n \n {$ibforums->lang[\'mt_tid\']}\n \n \n\n\n', 'merge_body', '$title="", $desc=""', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_modcp_ptitle\']}
    {$ibforums->lang[\'mod_opts\']}: \n base_url}&act=modcp&CODE=showforums\'>{$ibforums->lang[\'menu_forums\']} |\n base_url}&act=modcp&CODE=members\'>{$ibforums->lang[\'menu_users\']} |\n base_url}&act=modcp&CODE=ip\'>{$ibforums->lang[\'menu_ip\']}
    \n
    \n', 'mod_cp_start', '', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'cp_mod_posts_title2\']} $forumname\n
    $pages\n
    \n \' align=\'center\' cellpadding=\'4\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n \n', 'modtopicview_start', '$tid,$forumname, $fid, $title', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    $title
    \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'cp_mod_posts_title2\']} $forumname\n
    \n \' cellpadding=\'4\' align=\'center\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n \n \n \n \n', 'modpost_topicstart', '$forumname, $fid', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n \n \n \n \n \n \n \n', 'modpost_topicentry', '$title, $tid, $replies, $fid', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    {$ibforums->lang[\'cp_3_title\']}{$ibforums->lang[\'cp_3_replies\']}{$ibforums->lang[\'cp_3_approveall\']}{$ibforums->lang[\'cp_3_viewall\']}
    base_url}&act=ST&f=$fid&t=$tid\' target=\'_blank\'>$title$repliesbase_url}&act=modcp&f=$fid&tid=$tid&CODE=modtopicapprove\'>{$ibforums->lang[\'cp_3_approveall\']}base_url}&act=modcp&f=$fid&tid=$tid&CODE=modtopicview\'>{$ibforums->lang[\'cp_3_viewall\']}
    \n \n \n \n \n', 'modpost_topicend', '', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\nbase_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'cp_mod_topics_title2\']} $forumname\n
    $pages\n
    \n \n', 'modtopics_start', '$pages,$forumname, $fid', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n \' cellpadding=\'4\' align=\'center\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n
    lang[\'cp_1_go\']}\' class=\'forminput\'>
    \n
    \n \n', 'modtopics_end', '', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n \' cellpadding=\'4\' align=\'center\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n \n', 'mod_topic_title', '$title, $topic_id', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n \n \n\n', 'mod_postentry', '$data', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n \n \n \n\n', 'mod_postentry_checkbox', '$pid', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
       $title
    {$data[\'member\'][\'name\']}

    {$data[\'member\'][\'avatar\']}
    {$data[\'member\'][\'MEMBER_GROUP\']}
    {$data[\'member\'][\'MEMBER_POSTS\']}
    {$data[\'member\'][\'MEMBER_JOINED\']}
    \n {$ibforums->lang[\'posted_on\']} {$data[\'msg\'][\'post_date\']}

    \n \n {$data[\'msg\'][\'post\']}\n \n
      {$ibforums->lang[\'cp_3_postno\']} $pid
    \n
    \n\n', 'mod_topic_spacer', '', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n\n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_results\']}\n
    $text
    \n \n \n\n', 'results', '$text', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n\n\' cellpadding=\'1\' align=\'center\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_check_result\']}\n
    {$ibforums->lang[\'cp_check_text\']}\n
    {$ibforums->lang[\'cp_total_topics\']}$tcount
    {$ibforums->lang[\'cp_total_match\']}$count
    base_url}$link\'>$link_text
    \n
    \n
    \n\n', 'prune_confirm', '$tcount, $count, $link, $link_text', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_prune\']} {$forum[\'name\']}
    {$ibforums->lang[\'cp_prune_text\']}
    \n \n
    \n \n \n \n \n \n \' cellpadding=\'0\' align=\'center\' cellspacing=\'1\' bgcolor=\'<{tbl_border}>\'>\n \n \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_action\']}
    {$ibforums->lang[\'cp_prune_days\']}input[\'dateline\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_prune_type\']}$select
    {$ibforums->lang[\'cp_prune_replies\']}input[\'posts\']}\' class=\'forminput\'>
    {$ibforums->lang[\'cp_prune_member\']}input[\'member\']}\' class=\'forminput\'>
    lang[\'cp_prune_sub1\']}\' class=\'forminput\'>
    \n
    \n
    \n\n', 'prune_splash', '$forum, $forums, $select', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_edit_user\']}: {$profile[\'name\']}
    {$ibforums->lang[\'cp_remove_av\']}
    {$ibforums->lang[\'cp_edit_website\']}
    {$ibforums->lang[\'cp_edit_location\']}
    {$ibforums->lang[\'cp_edit_interests\']}
    {$ibforums->lang[\'cp_edit_signature\']}
    lang[\'cp_find_2_submit\']}\' class=\'forminput\'>
    \n
    \n
    \n\n', 'edit_user_form', '$profile', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_edit_user\']}
    {$ibforums->lang[\'cp_find_2_user\']}$select
    lang[\'cp_find_2_submit\']}\' class=\'forminput\'>
    \n
    \n
    \n\n', 'find_two', '$select', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_edit_user\']}
    {$ibforums->lang[\'cp_find_user\']}
    lang[\'cp_find_submit\']}\' class=\'forminput\'>
    \n
    \n
    \n\n', 'find_user', '', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n \n \n
    {$ibforums->lang[\'ip_desc_text\']}

    {$ibforums->lang[\'ip_warn_text\']}
    \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'menu_ip\']}
    {$ibforums->lang[\'ip_enter\']}\n .\n .\n .\n  \n \n
    lang[\'ip_submit\']}\' class=\'forminput\'>
    \n
    \n
    \n\n', 'ip_start_form', '$ip_addr', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n \n \n \n \n
    $pages
    \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n\n', 'ip_member_start', '$pages', 1035406242, 0);||~&~||(1, 'skin_modcp', '\n\n \n \n \n \n \n \n \n\n', 'ip_member_row', '$row', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\n
    {$ibforums->lang[\'ipm_title\']}
    {$ibforums->lang[\'ipm_name\']}{$ibforums->lang[\'ipm_ip\']}{$ibforums->lang[\'ipm_posts\']}{$ibforums->lang[\'ipm_reg\']}{$ibforums->lang[\'ipm_options\']}
    {$row[\'name\']}{$row[\'ip_address\']}{$row[\'posts\']}{$row[\'joined\']}base_url}&act=Profile&MID={$row[\'id\']}\' target=\'_blank\'>{$ibforums->lang[\'ipm_view\']}\n | base_url}&act=modcp&CODE=doedituser&memberid={$row[\'id\']}\'>{$ibforums->lang[\'ipm_edit\']}
    \n
    \n \n \n \n \n
    $pages
    \n\n', 'ip_member_end', '$pages', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\n \n {$ibforums->lang[\'cp_welcome\']}\n \n \n {$ibforums->lang[\'cp_welcome_text\']}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_mod_in\']}$forum
    {$ibforums->lang[\'cp_topics_wait\']}$tcount
    {$ibforums->lang[\'cp_posts_wait\']}$pcount
    \n \n \n\n', 'splash', '$tcount, $pcount, $forum', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\n\n\n \n $words\n \n\n\n', 'mod_exp', '$words', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\n\n \n \n \n \n \n \n\n\n', 'end_form', '$action', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n \n \n {$info[\'folder_icon\']}\n {$info[\'name\']}
    {$info[\'description\']}
    {$info[\'moderator\']}\n {$info[\'q_topics\']}\n {$info[\'q_posts\']}\n {$info[\'last_post\']}
    {$ibforums->lang[\'in\']}: {$info[\'last_topic\']}
    {$ibforums->lang[\'by\']}: {$info[\'last_poster\']}\n \n \n \n', 'forum_row', '$info', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n
    base_url}&act=modcp&CODE=fchoice\' method=\'post\'>\n\n \n \n \n
    \n \n', 'forum_page_start', '', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n \n \n \n \n \n \n \n', 'cat_row', '$cat_name', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n
    $cat_name
     {$ibforums->lang[\'cat_name\']}{$ibforums->lang[\'f_q_topics\']}{$ibforums->lang[\'f_q_posts\']}{$ibforums->lang[\'last_post_info\']}{$ibforums->lang[\'f_select\']}
    {$ibforums->lang[\'f_w_selected\']}\n  lang[\'f_go\']}\' class=\'forminput\'>\n
    \n
    \n
    \n', 'forum_page_end', '', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\' cellspacing=\'0\' border=\'0\' style=\'border:1px solid <{tbl_border}>\' class=\'row2\'>\n \n \n \n \n \n \n
    $title
    $msg
    \n\n', 'mod_simple_page', '$title="",$msg=""', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n{$ibforums->lang[\'ipp_found\']} $count\n
    \n
    \nbase_url}&act=Search&CODE=show&searchid=$uid&search_in=posts&result_type=posts\'>{$ibforums->lang[\'ipp_click\']}\n\n', 'ip_post_results', '$uid="",$count=""', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\n\n\n\' border=\'0\' cellspacing=\'0\' cellpadding=\'4\' align=\'center\'>\n \n \n \n
    $pages
    \n\' align=\'center\' border=\'0\' cellspacing=\'1\' cellpadding=\'0\' bgcolor=\'<{tbl_border}>\'>\n \n base_url}&act=modcp&f={$info[\'id\']}&CODE=topicchoice\' method=\'POST\' name=\'topic\' onSubmit=\'return checkdelete();\'>\n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n
    vars[\'img_url\']}/nav_m.gif\' alt=\'\' width=\'8\' height=\'8\'>{$info[\'name\']} [ base_url}&act=SF&f={$info[\'id\']}\'>{$ibforums->lang[\'new_show_forum\']} ]
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n', 'start_topics', '$pages,$info', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n', 'show_no_topics', '', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n \n \n \n \n \n \n \n \n', 'topic_row', '$Data', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n
    vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'20\' height=\'1\'>vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'20\' height=\'1\'>{$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}{$ibforums->lang[\'f_select\']}
    \n
    \n {$ibforums->lang[\'fv_no_topics\']}\n

    \n
    {$Data[\'folder_img\']}{$Data[\'topic_icon\']}\n {$Data[\'prefix\']} vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&s={$ibforums->session_id}\' class=\'linkthru\' title=\'{$ibforums->lang[\'topic_started_on\']} {$Data[\'start_date\']}\'>{$Data[\'title\']}\n
    {$Data[\'description\']}
    {$Data[\'starter\']}{$Data[\'posts\']}{$Data[\'views\']}{$Data[\'last_post\']}
    {$Data[\'last_text\']} {$Data[\'last_poster\']}
    \n
    \n \n \n \n \n
    \n \n \n \n \n
    {$ibforums->lang[\'t_w_selected\']}\n \n  lang[\'f_go\']}\' class=\'forminput\'>
    \n
    \n
    \n', 'topics_end', '$Data', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\n \n {$ibforums->lang[\'cp_tmove_to\']}  \n \n \n lang[\'cp_tmove_end\']}\' class=\'forminput\'>\n \n \n \n \n \n\n', 'move_checked_form_end', '$jump_html', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n\n \n $title\n \n \n', 'move_checked_form_entry', '$tid, $title', 1035406243, 0);||~&~||(1, 'skin_modcp', '\n
    base_url}&act=modcp&CODE=topicchoice&tact=domove&f=$fid\' method=\'post\'>\n\n \n \n \n', 'archive_complete', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'archive_form', '$jump_html=""', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n', 'No_msg_inbox', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n', 'prefs_add_dirs', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n
    \n \n \n \n \n', 'move_checked_form_start', '$forum_name, $fid', 1035406243, 0);||~&~||(1, 'skin_msg', '\n\n \n \n \n\n', 'preview', '$data', 1035406243, 0);||~&~||(1, 'skin_msg', '\n\n \n \n \n\n', 'pm_errors', '$data', 1035406243, 0);||~&~||(1, 'skin_msg', '\n\n\n
    {$ibforums->lang[\'cp_tmove_start\']} $forum_name
    \n \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'pm_preview\']}
    $data
    \n
    \n
    \n \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'pme_title\']}
    $data

    {$ibforums->lang[\'pme_none_sent\']}
    \n
    \n
    \n\n \n\n\n \n\n\n \n\n
    {$ibforums->lang[\'pmp_title\']}
    $text
    \n {$ibforums->lang[\'pmp_get_last\']}\n

    \n {$ibforums->lang[\'pmp_go_inbox\']} ( {$ibforums->lang[\'pmp_thiswindow\']} )

    {$ibforums->lang[\'pmp_ignore\']}
    \n', 'pm_popup', '$text, $mid', 1035406243, 0);||~&~||(1, 'skin_msg', '\n\n \n Private Message Archive\n \n \n', 'archive_html_header', '', 1035406243, 0);||~&~||(1, 'skin_msg', '\n\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    {$info[\'msg_title\']}
    {$info[\'msg_content\']}
    Sent by {$info[\'msg_sender\']} on {$info[\'msg_date\']}
    \n
    \n
    \n', 'archive_html_entry', '$info', 1035406243, 0);||~&~||(1, 'skin_msg', '\n \n\n', 'archive_html_footer', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n
    {$ibforums->lang[\'arc_comp_title\']}
    {$ibforums->lang[\'arc_complete\']}
    {$ibforums->lang[\'archive_title\']}
    {$ibforums->lang[\'archive_text\']}
    \n \n \n \n session_id}\'>\n
    {$ibforums->lang[\'arc_folders\']}$jump_html
    {$ibforums->lang[\'arc_dateline\']}  {$ibforums->lang[\'arc_days\']}
    {$ibforums->lang[\'arc_max\']}
    {$ibforums->lang[\'arc_delete\']}
    {$ibforums->lang[\'arc_type\']}
    {$ibforums->lang[\'inbox_no_msg\']}
    {$ibforums->lang[\'prefs_new\']}
    {$ibforums->lang[\'prefs_text_b\']}
    \n', 'end_address_table', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n {$ibforums->lang[\'address_current\']}\n \n', 'Address_header', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n {$ibforums->lang[\'address_none\']} \n \n', 'Address_none', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n {$ibforums->lang[\'member_edit\']}
    \n \n \n \n \n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n
    {$data[MEMBER][\'contact_name\']}{$ibforums->lang[\'enter_desc\']}
    {$ibforums->lang[\'allow_msg\']}
    {$data[SELECT]}
    \n \n \n', 'address_edit', '$data', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Profile&CODE=03&MID={$entry[\'contact_id\']}\'>{$entry[\'contact_name\']}    [ {$entry[\'contact_desc\']} ]\n \n [ vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Msg&CODE=11&MID={$entry[\'contact_id\']}\' class=\'misc\'>{$ibforums->lang[\'edit\']} ] :: [ vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Msg&CODE=10&MID={$entry[\'contact_id\']}\'>{$ibforums->lang[\'delete\']} ]\n   ( {$entry[\'text\']} )\n \n \n', 'render_address_row', '$entry', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n {$ibforums->lang[\'member_add\']}
    \n \n \n \n \n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'enter_a_name\']}
    {$ibforums->lang[\'enter_desc\']}
    {$ibforums->lang[\'allow_msg\']}
    \n \n \n', 'address_add', '$mem_to_add', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n lang[\'prefs_submit\']}\' class=\'forminput\'>\n \n', 'prefs_footer', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n {$data[EXTRA]}\n \n', 'prefs_row', '$data', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n class[\'SKIN\'][\'TABLE_BORDER_COL\']}\'>\n \n \n \n \n', 'Address_table_header', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n', 'Render_msg', '$data', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n \n \n', 'trackread_end', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n', 'trackUNread_end', '', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n \n \n', 'unsent_end', '', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'end_inbox', '$vdi_html, $amount_info=""', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n \n \n \n', 'send_form_footer', '', 1035406245, 0);||~&~||(1, 'skin_msg', '\n\n \n \n \n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'Send_form', '$data', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n', 'mass_pm_box', '$names=""', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n session_id}\'>\n', 'prefs_header', '', 1035406245, 0);||~&~||(1, 'skin_online', '\n
    \n
    {$ibforums->lang[\'member_name\']}{$ibforums->lang[\'enter_block\']}
    {$data[\'msg\'][\'title\']}
    {$data[\'msg\'][\'msg_date\']}
    \n [ base_url}&CODE=04&act=Msg&MSID={$data[\'msg\'][\'msg_id\']}&MID={$data[\'member\'][\'id\']}&fwd=1\'>{$ibforums->lang[\'vm_forward_pm\']} | base_url}&CODE=04&act=Msg&MID={$data[\'member\'][\'id\']}&MSID={$data[\'msg\'][\'msg_id\']}\'>{$ibforums->lang[\'pm_reply_link\']} ]\n
    \n \'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'author\']}\n \n \n \n \n \n
    {$ibforums->lang[\'m_pmessage\']}[ base_url}&CODE=05&act=Msg&MSID={$data[\'msg\'][\'msg_id\']}&VID={$data[\'member\'][\'VID\']}\'>{$ibforums->lang[\'vm_delete_pm\']} ]
    \n
    {$data[\'member\'][\'name\']}
    {$data[\'member\'][\'avatar\']}
    {$data[\'member\'][\'title\']}
    {$data[\'member\'][\'MEMBER_GROUP\']}
    {$data[\'member\'][\'MEMBER_POSTS\']}
    {$data[\'member\'][\'MEMBER_JOINED\']}
    \n \n {$data[\'msg\'][\'message\']}\n {$data[\'member\'][\'signature\']}\n \n
    [ base_url}&CODE=02&act=Msg&MID={$data[\'member\'][\'id\']}\'>{$ibforums->lang[\'add_to_book\']} ]{$data[\'member\'][\'MESSAGE_ICON\']}{$data[\'member\'][\'EMAIL_ICON\']}{$data[\'member\'][\'WEBSITE_ICON\']}{$data[\'member\'][\'ICQ_ICON\']}{$data[\'member\'][\'AOL_ICON\']}{$data[\'member\'][\'YAHOO_ICON\']}
    \n
    \n
    \n
    \n \n \n session_id}\'>\n {$ibforums->lang[goto_folder]}:  {$data[\'jump\']}\n lang[goto_submit]}\' class=\'forminput\'>\n \n
    \n [ base_url}&CODE=04&act=Msg&MSID={$data[\'msg\'][\'msg_id\']}&MID={$data[\'member\'][\'id\']}&fwd=1\'>{$ibforums->lang[\'vm_forward_pm\']} | base_url}&CODE=04&act=Msg&MID={$data[\'member\'][\'id\']}&MSID={$data[\'msg\'][\'msg_id\']}\'>{$ibforums->lang[\'pm_reply_link\']} ]\n
    {$ibforums->lang[\'tk_read_messages\']}
    {$ibforums->lang[\'tk_read_desc\']}
    \n \'>\n \n \n \n \n \n \n \n', 'trackread_table_header', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n', 'trackread_row', '$data', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n
     {$ibforums->lang[\'message_title\']}{$ibforums->lang[\'pms_message_to\']}{$ibforums->lang[\'tk_read_date\']}
    {$data[\'icon\']}{$data[\'title\']}base_url}&act=Profile&MID={$data[\'id\']}\'>{$data[\'to_name\']}{$data[\'date\']}
    lang[\'tk_untrack_button\']}\' class=\'forminput\'> {$ibforums->lang[\'selected_msg\']}
    \n \n
    {$ibforums->lang[\'tk_unread_messages\']}
    {$ibforums->lang[\'tk_unread_desc\']}
    \n \'>\n \n \n \n \n \n \n \n', 'trackUNread_table_header', '', 1035406244, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n', 'trackUNread_row', '$data', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n
     {$ibforums->lang[\'message_title\']}{$ibforums->lang[\'pms_message_to\']}{$ibforums->lang[\'tk_unread_date\']}
    {$data[\'icon\']}{$data[\'title\']}base_url}&act=Profile&MID={$data[\'id\']}\'>{$data[\'to_name\']}{$data[\'date\']}
    lang[\'delete_button\']}\' class=\'forminput\'> {$ibforums->lang[\'selected_msg\']}
    \n \n
    {$ibforums->lang[\'pms_saved_title\']}
    \n \'>\n \n \n \n \n \n \n \n \n', 'unsent_table_header', '', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n \n', 'unsent_row', '$data', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n
     {$ibforums->lang[\'message_title\']}{$ibforums->lang[\'pms_message_to\']}{$ibforums->lang[\'pms_saved_date\']}{$ibforums->lang[\'pms_cc_users\']}
    {$data[\'msg\'][\'icon\']}base_url}&act=Msg&CODE=21&MSID={$data[\'msg\'][\'msg_id\']}\'>{$data[\'msg\'][\'title\']}base_url}&act=Profile&MID={$data[\'msg\'][\'recipient_id\']}\'>{$data[\'msg\'][\'to_name\']}{$data[\'msg\'][\'date\']}{$data[\'msg\'][\'cc_users\']}
    lang[\'delete_button\']}\' class=\'forminput\'> {$ibforums->lang[\'selected_msg\']}
    \n \n
    $dirname
    \n \n \n \n \n \n \n
    \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'300\' height=\'1\'>\n
    \n \'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$info[\'full_messenger\']}
    vars[\'img_url\']}/bar_left.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\'>vars[\'img_url\']}/bar.gif\' border=\'0\' width=\'{$info[\'img_width\']}\' height=\'11\' align=\'middle\' alt=\'\'>vars[\'img_url\']}/bar_right.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\'>
    0%50%100%
    \n
    \n
    \n {$ibforums->lang[\'pmpc_mark_read\']} :: {$ibforums->lang[\'pmpc_unmark_all\']}

    \n
    \n {$ibforums->lang[\'goto_folder\']}:   $vdi_html lang[\'goto_submit\']}\' class=\'forminput\'>\n
    \n
    \n
    \n
    \n \'>\n \n \n \n \n \n \n \n', 'inbox_table_header', '$dirname, $info, $vdi_html=""', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n \n', 'inbox_row', '$data', 1035406245, 0);||~&~||(1, 'skin_msg', '\n \n \n \n
     base_url}&act=Msg&CODE=01&VID={$info[\'vid\']}&sort=title\'>{$ibforums->lang[\'message_title\']}base_url}&act=Msg&CODE=01&VID={$info[\'vid\']}&sort=name\'>{$ibforums->lang[\'message_from\']}base_url}&act=Msg&CODE=01&VID={$info[\'vid\']}&sort={$info[\'date_order\']}\'>{$ibforums->lang[\'message_date\']}
    {$data[\'msg\'][\'icon\']}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Msg&CODE=03&VID={$data[\'stat\'][\'current_id\']}&MSID={$data[\'msg\'][\'msg_id\']}\'>{$data[\'msg\'][\'title\']}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Profile&MID={$data[\'msg\'][\'from_id\']}\'>{$data[\'msg\'][\'from_name\']} {$data[\'msg\'][\'add_to_contacts\']}{$data[\'msg\'][\'date\']}
    \n lang[\'move_button\']}\' class=\'forminput\'> $vdi_html {$ibforums->lang[\'move_or_delete\']} lang[\'delete_button\']}\' class=\'forminput\'> {$ibforums->lang[\'selected_msg\']}\n
    \n
    \n
    \n <{M_READ}> {$ibforums->lang[\'icon_read\']}\n  <{M_UNREAD}> {$ibforums->lang[\'icon_unread\']}\n $amount_info
    {$ibforums->lang[\'msg_options\']}
     \n  {$ibforums->lang[\'auto_sent_add\']}\n
     {$ibforums->lang[\'vm_track_msg\']}\n
    \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'to_whom\']}
    {$ibforums->lang[\'address_list\']}{$data[CONTACTS]}
    {$ibforums->lang[\'enter_name\']}
    \n
     
    {$ibforums->lang[\'enter_message\']}
    {$ibforums->lang[\'msg_title\']}
    {$ibforums->lang[\'carbon_copy_title\']}
    {$ibforums->lang[\'carbon_copy_desc\']}\n \n \n \n \n \n
    \n lang[\'find_user_names\']}\'>\n
    \n
    {$ibforums->lang[\'prefs_current\']}
    {$ibforums->lang[\'prefs_text_a\']}
    \' align=\'center\'>\n \n \n \n
    {$links[SHOW_PAGES]}
    \n', 'end', '$links', 1035406245, 0);||~&~||(1, 'skin_online', '\n \n \n {$session[\'member_name\']}\n {$session[\'where_line\']}\n {$session[\'running_time\']}\n {$session[\'msg_icon\']}\n \n \n', 'show_row', '$session', 1035406245, 0);||~&~||(1, 'skin_online', '\n \n \n  \n \n \n \n \n \n
    \n \' align=\'center\'>\n \n \n \n
    $links
    \n', 'Page_end', '$links', 1035406245, 0);||~&~||(1, 'skin_online', '\n\n\n\n \' align=\'center\'>\n \n \n \n
    $links
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n
    \n \n \n \n \n \n \n \n', 'Page_header', '$links', 1035406245, 0);||~&~||(1, 'skin_poll', '\n[ {$ibforums->lang[\'ba_edit\']} ]\n', 'edit_link', '$tid, $fid', 1035406246, 0);||~&~||(1, 'skin_poll', '\n[ {$ibforums->lang[\'ba_delete\']} ]\n', 'delete_link', '$tid, $fid', 1035406246, 0);||~&~||(1, 'skin_poll', '\n \n \n \n', 'Render_row_form', '$votes, $id, $answer', 1035406246, 0);||~&~||(1, 'skin_poll', '\n
    {$ibforums->lang[\'member_name\']}{$ibforums->lang[\'where\']}{$ibforums->lang[\'time\']} 
     $answer
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n', 'Render_row_results', '$votes, $id, $answer, $percentage, $width', 1035406246, 0);||~&~||(1, 'skin_post', '\n\n\n\n\n\n\n\n\n\n\n', 'table_structure', '', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n', 'add_edit_box', '$checked=""', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n
    $edit   $delete
    \n \n \n \n \n', 'ShowPoll_header', '$tid, $poll_q, $edit, $delete', 1035406246, 0);||~&~||(1, 'skin_poll', '\n
    $poll_q
    \n \n
    \n \n \n \n \n \n \n \n
    $edit   $delete
    \n \n \n \n \n', 'ShowPoll_Form_header', '$tid, $poll_q, $edit, $delete', 1035406246, 0);||~&~||(1, 'skin_poll', '\n\n
    $poll_q
    \n
    \n $vote_button\n
    \n
    \n
    \n
    \n \n', 'ShowPoll_footer', '$vote_button', 1035406246, 0);||~&~||(1, 'skin_poll', '\n
    $answer [ $votes ] vars[\'img_url\']}/bar_left.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\'>vars[\'img_url\']}/bar.gif\' border=\'0\' width=\'$width\' height=\'11\' align=\'middle\' alt=\'\'>vars[\'img_url\']}/bar_right.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\'> [$percentage%]
    {$ibforums->lang[\'edit_ops\']} {$ibforums->lang[\'append_edit\']}
    \n \n \n \n \n \n \n \n
    \n  \n
    \n \n \n \n \n', 'table_top', '$data', 1035406246, 0);||~&~||(1, 'skin_post', '\n base_url}&act=calendar&code=addnewevent\' method=\'POST\' name=\'REPLIER\' onSubmit=\'return ValidateForm()\'>\n', 'calendar_start_form', '', 1035406246, 0);||~&~||(1, 'skin_post', '\n base_url}&act=calendar&code=doedit&eventid=$eventid\' method=\'POST\' name=\'REPLIER\' onSubmit=\'return ValidateForm()\'>\n', 'calendar_start_edit_form', '$eventid', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n', 'calendar_event_title', '$data=""', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n', 'calendar_delete_box', '', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n', 'calendar_choose_date', '$days, $months, $years', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n', 'calendar_event_type', '$pub_select="", $priv_select=""', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n', 'calendar_admin_group_box', '$groups', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n
    $data
    {$ibforums->lang[\'calendar_title\']}
     {$ibforums->lang[\'calendar_delete_box\']}
    {$ibforums->lang[\'calendar_event_date\']}    
    {$ibforums->lang[\'calendar_event_type\']}
    {$ibforums->lang[\'calendar_group_filter\']}
    \n
    \n', 'calendar_end_form', '$data', 1035406246, 0);||~&~||(1, 'skin_post', '\n
     \n
    \n
    \n', 'EndForm', '$data', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n \n \n \n \n
    vars[\'emo_per_row\']}\' align=\'center\'>{$ibforums->lang[\'click_smilie\']}
    vars[\'emo_per_row\']}\' class=\'row1\' align=\'center\'>{$ibforums->lang[\'all_emoticons\']}
    \n', 'smilie_table', '', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n \n {$ibforums->lang[\'review_topic\']}\n \n \n \n \n \n \n', 'TopicSummary_bottom', '', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n {$ibforums->lang[\'post_icon\']}\n \n   \'\'     \'\'     \'\'     \'\'     \'\'     \'\'     \'\'   
    \n   \'\'     \'\'     \'\'     \'\'     \'\'     \'\'     \'\'   \n
    \n   [ Use None ]\n \n \n', 'PostIcons', '', 1035406246, 0);||~&~||(1, 'skin_post', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n
    {$ibforums->lang[\'errors_found\']}
    \'>$data
    \n
    \n
    \n', 'errors', '$data', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n {$ibforums->lang[\'upload_title\']}\n \n \n {$ibforums->lang[\'upload_text\']} $data\n \n \n', 'Upload_field', '$data', 1035406246, 0);||~&~||(1, 'skin_post', '\n \n {$ibforums->lang[\'upload_title\']}\n \n \n {$ibforums->lang[\'upload_text\']} $data\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'eu_keep\']} ( $file_name )
    {$ibforums->lang[\'eu_delete\']}
    {$ibforums->lang[\'eu_new\']}
    \n \n \n', 'edit_upload_field', '$data, $file_name=""', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n {$ibforums->lang[\'tt_topic_settings\']}\n \n \n {$ibforums->lang[\'topic_title\']}\n \n \n \n {$ibforums->lang[\'topic_desc\']}\n \n \n', 'topictitle_fields', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n {$data[\'author\']}\n {$ibforums->lang[\'posted_on\']} {$data[\'date\']}
    {$data[\'post\']}\n \n', 'TopicSummary_body', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n
    {$ibforums->lang[\'post_preview\']}
    \'>$data
    \n
    \n
    \n', 'preview', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n\n', 'user_edit', '$info', 1035406247, 0);||~&~||(1, 'skin_profile', '\n
    \n \n \n \n \n \n', 'TopicSummary_top', '', 1035406247, 0);||~&~||(1, 'skin_post', '\n\n', 'nameField_reg', '', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n \n \n \n', 'mod_options', '$jump', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n \n \n \n', 'quote_box', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'postbox_buttons', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n \n \n \n', 'nameField_unreg', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n \n \n \n \n \n \n \n', 'poll_box', '$data, $extra=""', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n
    \n
    {$ibforums->lang[\'last_posts\']}
    {$ibforums->lang[\'tt_options\']}
    {$ibforums->lang[\'mod_options\']}$jump
    {$ibforums->lang[\'post_to_quote\']}
    {$ibforums->lang[\'post_to_quote_txt\']}\n
    {$ibforums->lang[\'ib_code_buttons\']}
    \n  {$ibforums->lang[\'bbcode_guided\']}
    \n  {$ibforums->lang[\'bbcode_normal\']}\n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n   {$ibforums->lang[\'js_close_all_tags\']}\n
    \n \n \n \n \n \n \n \n
    \n {$ibforums->lang[\'hb_open_tags\']}: \n  \n
    \n
    {$ibforums->lang[\'post\']}
    ({$ibforums->lang[\'check_length\']})

    \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'enable_emo\']}
    {$ibforums->lang[\'enable_sig\']}
    {$ibforums->lang[\'unreg_namestuff\']}
    {$ibforums->lang[\'guest_name\']}
    {$ibforums->lang[\'tt_poll_settings\']}
    {$ibforums->lang[\'poll_question\']}
    {$ibforums->lang[\'poll_choices\']}

    $extra
    \n \n \n \n \n \n
    {$ibforums->lang[\'poll_only\']}
    \' border=\'0\' cellspacing=\'1\' cellpadding=\'0\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n\n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'tvo_title\']} $title
    \n base_url}&act=Print&client=printer&f=$fid&t=$tid\'>{$ibforums->lang[\'o_print_title\']}\n
    \n {$ibforums->lang[\'o_print_desc\']}\n

    \n base_url}&act=Print&client=html&f=$fid&t=$tid\'>{$ibforums->lang[\'o_html_title\']}\n
    \n {$ibforums->lang[\'o_html_desc\']}\n

    \n base_url}&act=Print&client=wordr&f=$fid&t=$tid\'>{$ibforums->lang[\'o_word_title\']}\n
    \n {$ibforums->lang[\'o_word_desc\']}\n



    \n <<base_url}&act=ST&f=$fid&t=$tid\'>{$ibforums->lang[\'back_topic\']}\n
    \n
    \n\n', 'choose_form', '$fid, $tid, $title', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n \n \n \n \n \n \n \n
    {$ibforums->lang[\'by\']}: {$entry[\'author_name\']} {$ibforums->lang[\'on\']} {$entry[\'post_date\']}
    {$entry[\'post\']}
    \n
    \n', 'pp_postentry', '$poster, $entry', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n
    Powered by Invision Board (http://www.invisionboard.com)
    © Invision Power Services (http://www.invisionpower.com)
    \n', 'pp_end', '', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n \n \n {$ibforums->vars[\'board_name\']} [Powered by IB Forums]\n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'title\']}\n
    base_url}&act=ST&f=$fid&t=$tid\'>{$ibforums->lang[\'topic_here\']}\n
    {$ibforums->vars[\'board_name\']} > $forum_name > $topic_title
    \n
    \n
    \n', 'pp_header', '$forum_name, $topic_title, $topic_starter,$fid, $tid', 1035406247, 0);||~&~||(1, 'skin_profile', '\n
    {$ibforums->lang[\'edit_my_sig\']} |\n {$ibforums->lang[\'edit_avatar\']} |\n {$ibforums->lang[\'edit_profile\']}
    \' align=\'center\'>\n \n \n \n \n \n \n \n
    {$info[\'name\']}
    {$ibforums->lang[\'find_posts\']} |\n {$ibforums->lang[\'add_to_contact\']}
    \n\n\' align=\'center\'>\n \n \n \n
    \n \'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'active_stats\']}
    {$ibforums->lang[\'total_posts\']}{$info[\'posts\']}
    ( {$info[\'total_pct\']}% {$ibforums->lang[\'total_percent\']} )
    {$ibforums->lang[\'posts_per_day\']}{$info[\'posts_day\']}
    {$ibforums->lang[\'joined\']}{$info[\'joined\']}
    {$ibforums->lang[\'fav_forum\']}{$info[\'fav_forum\']}
    {$info[\'fav_posts\']} {$ibforums->lang[\'fav_posts\']}
    ( {$info[\'percent\']}% {$ibforums->lang[\'fav_percent\']} )
    {$ibforums->lang[\'user_local_time\']}{$info[\'local_time\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'communicate\']}
    {$ibforums->lang[\'email\']}{$info[\'email\']}
    {$ibforums->lang[\'aim\']}{$info[\'aim_name\']}
    {$ibforums->lang[\'icq\']}{$info[\'icq_number\']}
    {$ibforums->lang[\'yahoo\']}{$info[\'yahoo\']}
    {$ibforums->lang[\'msn\']}{$info[\'msn_name\']}
    {$ibforums->lang[\'pm\']}{$ibforums->lang[\'click_here\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'info\']}
    {$ibforums->lang[\'homepage\']}{$info[\'homepage\']}
    {$ibforums->lang[\'birthday\']}{$info[\'birthday\']}
    {$ibforums->lang[\'location\']}{$info[\'location\']}
    {$ibforums->lang[\'interests\']}{$info[\'interests\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'post_detail\']}
    {$ibforums->lang[\'mgroup\']}{$info[\'group_title\']}
    {$ibforums->lang[\'mtitle\']}{$info[\'member_title\']}
    {$ibforums->lang[\'avatar\']}{$info[\'avatar\']}
    {$ibforums->lang[\'siggie\']}{$info[\'signature\']}
    \n
    <( {$ibforums->lang[\'back\']} )
    \n
    \n', 'show_profile', '$info', 1035406247, 0);||~&~||(1, 'skin_profile', '\n \n $title\n $value\n \n', 'custom_field', '$title, $value=""', 1035406247, 0);||~&~||(1, 'skin_register', '\n \n \n {$ibforums->lang[\'cpf_title\']}\n \n \n \n \n \n \n \n
    \n {$ibforums->vars[\'board_name\']}: {$ibforums->lang[\'cpf_title\']}\n

    \n {$ibforums->lang[\'cpf_perm_parent\']}\n

    \n {$ibforums->lang[\'cpf_fax\']} {$ibforums->vars[\'coppa_fax\']}\n

    \n {$ibforums->lang[\'cpf_address\']}\n
    \n {$ibforums->vars[\'coppa_address\']}\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'user_name\']} 
    {$ibforums->lang[\'pass_word\']} 
    {$ibforums->lang[\'email_address\']} 
    \n
    \n \n \n \n \n
    \n {$ibforums->lang[\'cpf_sign\']}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cpf_name\']} 
    {$ibforums->lang[\'cpf_relation\']} 
    {$ibforums->lang[\'cpf_signature\']} 
    {$ibforums->lang[\'cpf_email\']} 
    {$ibforums->lang[\'cpf_phone\']} 
    {$ibforums->lang[\'cpf_date\']} 
    \n \n \n', 'coppa_form', '', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp2_title\']}
    \n {$ibforums->lang[\'cp2_text\']}\n

    \n
    \n << base_url}\'>{$ibforums->lang[\'cp2_cancel\']}\n - base_url}&act=Reg&coppa_pass=1&coppa_user=1\'>{$ibforums->lang[\'cp2_continue\']} >>\n
    \n
    {$ibforums->lang[\'coppa_form\']}
    {$ibforums->lang[\'coppa_form_text\']} vars[\'email_in\']}\'>{$ibforums->vars[\'email_in\']}
    \n
    \n', 'coppa_two', '', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'coppa_info\']}
    \n

    \n {$ibforums->lang[\'coppa_link\']}\n

    \n < base_url}&act=Reg&coppa_pass=1\'>{$ibforums->lang[\'coppa_date_before\']} $coppadate\n - base_url}&act=Reg&CODE=coppa_two\'>{$ibforums->lang[\'coppa_date_after\']} $coppadate >\n

     \n
    {$ibforums->lang[\'coppa_form\']}
    {$ibforums->lang[\'coppa_form_text\']} vars[\'email_in\']}\'>{$ibforums->vars[\'email_in\']}
    \n
    \n', 'coppa_start', '$coppadate', 1035406247, 0);||~&~||(1, 'skin_register', '\n
    \n
    \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'lp_header\']}

    {$ibforums->lang[\'lp_text\']}
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'complete_form\']}
    {$ibforums->lang[\'lp_user_name\']}
    \n \n
    \n
    \n
    \n', 'lost_pass_form', '', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'registration_process\']}
    {$ibforums->lang[\'thank_you\']} {$member[\'name\']}. {$ibforums->lang[\'auth_text\']} {$member[\'email\']}
    \n
    \n', 'show_authorise', '$member', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'registration_process\']}
    {$ibforums->lang[\'thank_you\']} {$member[\'name\']}. {$ibforums->lang[\'preview_reg_text\']}
    \n
    \n', 'show_preview', '$member', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n
    \n
    \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'dumb_header\']}

    {$ibforums->lang[\'dumb_text\']}
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'complete_form\']}
    {$ibforums->lang[\'user_id\']}
    {$ibforums->lang[\'val_key\']}
    \n \n
    \n
    \n
    \n', 'show_dumb_form', '$type="reg"', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n
    \n
    \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'reg_header\']}

    {$data[\'TEXT\']}
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'complete_form\']}
    {$ibforums->lang[\'user_name\']}input[\'UserName\']}\' name=\'UserName\' class=\'forminput\'>
    {$ibforums->lang[\'pass_word\']}input[\'PassWord\']}\' name=\'PassWord\' class=\'forminput\'>
    {$ibforums->lang[\'re_enter_pass\']}input[\'PassWord_Check\']}\' name=\'PassWord_Check\' class=\'forminput\'>
    {$ibforums->lang[\'email_address\']}input[\'EmailAddress\']}\' name=\'EmailAddress\' class=\'forminput\'>
    {$ibforums->lang[\'email_address_two\']}input[\'EmailAddress_two\']}\' name=\'EmailAddress_two\' class=\'forminput\'>
    \n
    \n \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'terms_service\']}
    {$ibforums->lang[\'terms_service_text\']}
    \n \n

    {$ibforums->lang[\'agree_submit\']} \n
    \n \n
    \n
    \n
    \n', 'ShowForm', '$data', 1035406248, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n
    {$ibforums->lang[\'errors_found\']}
    \'>$data
    \n
    \n
    \n', 'errors', '$data', 1035406248, 0);||~&~||(1, 'skin_register', '\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'ras_title\']}
    {$ibforums->lang[\'ras_numbers\']}\n \n base_url}&act=Reg&CODE=image&rc={$regid}&p=1\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=2\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=3\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=4\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=5\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=6\' border=\'0\' alt=\'Code Bit\'>\n
    {$ibforums->lang[\'ras_text\']}
    \n
    \n', 'reg_antispam', '$regid', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n {$ibforums->lang[\'cf_optional\']}\n \n', 'optional_title', '', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n $title
    $desc\n $content\n \n', 'field_entry', '$title, $desc="", $content', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n', 'field_textinput', '$name, $value=""', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n', 'field_dropdown', '$name, $options', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n', 'field_textarea', '$name, $value', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \n {$Data[\'folder_img\']}\n {$Data[\'topic_icon\']}\n \n \n \n \n \n \n
    {$Data[\'go_new_post\']}{$Data[\'prefix\']} vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&hl={$Data[\'keywords\']}&s={$ibforums->session_id}\' class=\'linkthru\'>{$Data[\'title\']} {$Data[PAGES]}
    \n {$Data[\'description\']}\n
    {$Data[\'forum_name\']}\n {$Data[\'starter\']}\n {$Data[\'posts\']}\n {$Data[\'views\']}\n {$Data[\'last_post\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&view=getlastpost\'>{$Data[\'last_text\']} {$Data[\'last_poster\']}\n \n \n', 'RenderRow', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \n \n \n \n \n \n \n
    {$Data[\'folder_img\']}{$ibforums->lang[\'rp_topic\']} {$Data[\'prefix\']} base_url}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&hl={$Data[\'keywords\']}\' class=\'linkthru\'>{$Data[\'title\']} {$Data[PAGES]}
    \n \n \n \n {$Data[\'author_name\']}\n \n {$ibforums->lang[\'rp_forum\']} {$Data[\'forum_name\']}    {$ibforums->lang[\'rp_postedon\']} {$Data[\'post_date\']}    {$ibforums->lang[\'rp_post\']} base_url}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&hl={$Data[\'keywords\']}&#entry{$Data[\'pid\']}\' class=\'linkthru\'>#{$Data[\'pid\']}\n \n \n \n \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'150\' height=\'15\'>\n
    \n {$ibforums->lang[\'rp_replies\']} {$Data[\'posts\']}
    {$ibforums->lang[\'rp_hits\']} {$Data[\'views\']}
    \n \n {$Data[\'post\']}\n \n \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'1\' height=\'1\'>\n \n \n', 'RenderPostRow', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n', 'start_as_post', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n
    {$ibforums->lang[\'rp_author\']}{$ibforums->lang[\'rp_message\']}
     
    \n
    \n
    \n \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    <{B_NEW}> {$ibforums->lang[\'pm_open_new\']}<{B_HOT}> {$ibforums->lang[\'pm_hot_new\']}<{B_POLL}> {$ibforums->lang[\'pm_poll\']}<{B_LOCKED}> {$ibforums->lang[\'pm_locked\']}
    <{B_NORM}> {$ibforums->lang[\'pm_open_no\']}<{B_HOT_NN}> {$ibforums->lang[\'pm_hot_no\']}<{B_POLL_NN}> {$ibforums->lang[\'pm_poll_no\']}<{B_MOVED}> {$ibforums->lang[\'pm_moved\']}
    \n', 'end_as_post', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n  \n \n \n \n \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    <{B_NEW}> {$ibforums->lang[\'pm_open_new\']}<{B_HOT}> {$ibforums->lang[\'pm_hot_new\']}<{B_POLL}> {$ibforums->lang[\'pm_poll\']}<{B_LOCKED}> {$ibforums->lang[\'pm_locked\']}
    <{B_NORM}> {$ibforums->lang[\'pm_open_no\']}<{B_HOT_NN}> {$ibforums->lang[\'pm_hot_no\']}<{B_POLL_NN}> {$ibforums->lang[\'pm_poll_no\']}<{B_MOVED}> {$ibforums->lang[\'pm_moved\']}
    \n', 'end', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \n \n
    \n $hidden_fields\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'keywords_title\']}
    {$ibforums->lang[\'key_search\']}{$ibforums->lang[\'mem_search\']}


    {$ibforums->lang[\'keysearch_text\']}
    \n \n \n \n \n \n \n \n
    \n  {$ibforums->lang[\'match_name_ex\']}\n
     {$ibforums->lang[\'match_name_pa\']}\n
    \n  {$ibforums->lang[\'joinname_true\']}\n
     {$ibforums->lang[\'joinname_false\']}\n
    \n
    \n
    \n \n \n
    \n \n \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'search_options\']}
    {$ibforums->lang[\'search_where\']}{$ibforums->lang[\'search_refine\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     {$ibforums->lang[\'search_cats\']}$cats
     {$ibforums->lang[\'search_forums\']}$forums
     {$ibforums->lang[\'in_posts\']}
     {$ibforums->lang[\'in_topics\']}
     {$ibforums->lang[\'results_topics\']}
     {$ibforums->lang[\'results_post\']}
    \n
    \n \n \n \n \n \n
    \n {$ibforums->lang[\'search_from\']}\n
    \n \n
    {$ibforums->lang[\'and\']} \'> {$ibforums->lang[\'older\']} \' checked> {$ibforums->lang[\'newer\']}\n
    \n {$ibforums->lang[\'sort_results\']}
    \n \n
    {$ibforums->lang[\'descending\']}\n
    {$ibforums->lang[\'ascending\']}\n
    \n
    lang[\'do_search\']}\' class=\'forminput\'>
    \n
    \n
    \n \n', 'Form', '$forums, $cats', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n
    \n \' align=\'center\'>\n \n \n \n \n
    {$ibforums->lang[\'active_topics\']}
    {$Data[SHOW_PAGES]}
    \n
    base_url}&act=Search&CODE=getactive\' method=\'POST\' name=\'dateline\' onSubmit=\'return checkvalues();\'>\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'splash', '$member', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'settings_header', '$Profile, $time_select, $time, $dst_check', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n session_id}\'>\n \n \n \n \n \n \n', 'skin_lang_header', '$lang_select', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n', 'settings_skin', '$skin', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'skin_lang_end', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'settings_end', '$data', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'email', '$Profile', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n\n', 'forum_subs_end', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n \n \n \n \n \n', 'subs_end', '$text="", $days=""', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n
    \n
    \n {$ibforums->lang[\'active_st_text\']}\n \n   {$ibforums->lang[\'active_end_text\']}  \n \n   \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'RenderRow', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n\n\n
    \n \n \n \n \n \n \n \n \n \n \n', 'active_start', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n
     {$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_forum_name\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n \n \n
    \n \n \n \n \n \n', 'top_poster_no_info', '', 1035406249, 0);||~&~||(1, 'skin_topic', '\nbase_url}&act=report&f={$data[\'forum_id\']}&t={$data[\'topic_id\']}&p={$data[\'pid\']}&st={$ibforums->input[\'st\']}\'>{$ibforums->lang[\'snitch_geezer_to_a_copper\']}\n', 'report_link', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n{$ibforums->lang[\'ip\']}: $data\n', 'ip_show', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n( base_url}&act=ST&f=$fid&t=$tid&view=getnewpost\'>{$ibforums->lang[\'go_new_post\']} )\n', 'golastpost_link', '$fid, $tid', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\'>\n session_id}\'>\n \n \n input[\'st\']}\'>\n \n  lang[\'jmp_go\']}\' class=\'forminput\' />\n \n', 'Mod_Panel', '$data, $fid, $tid', 1035406249, 0);||~&~||(1, 'skin_topic', '\n\n', 'mod_wrapper', '$id="", $text=""', 1035406249, 0);||~&~||(1, 'skin_topic', '\n
    \n \n \n \n \n \n \n \n \n \n \n', 'start', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n\n', 'active_none', '', 1035406248, 0);||~&~||(1, 'skin_stats', '\n\n\n
     {$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_forum_name\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    {$ibforums->lang[\'active_no_topics\']}
    \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n', 'who_header', '$fid, $tid, $title', 1035406248, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n', 'who_row', '$row', 1035406248, 0);||~&~||(1, 'skin_stats', '\n base_url}&act=Profile&MID=$id\' target=\'_blank\'>$name\n \n', 'who_name_link', '$id, $name', 1035406248, 0);||~&~||(1, 'skin_stats', '\n \n \n \n
    {$ibforums->lang[\'who_farted\']} $title
    {$ibforums->lang[\'who_poster\']}{$ibforums->lang[\'who_posts\']}
    {$row[\'author_name\']}{$row[\'pcount\']}
    {$ibforums->lang[\'who_go\']}
    \n
    \n', 'who_end', '', 1035406248, 0);||~&~||(1, 'skin_stats', '\n \' align=\'center\'>\n \n \n \n
    {$title}
    \n', 'page_title', '$title', 1035406248, 0);||~&~||(1, 'skin_stats', '\n\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n', 'group_strip', '$group', 1035406249, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n \n \n', 'leader_row', '$info, $forums', 1035406249, 0);||~&~||(1, 'skin_stats', '\n
    $group
    {$ibforums->lang[\'leader_name\']}{$ibforums->lang[\'leader_forums\']}{$ibforums->lang[\'leader_location\']} 
    base_url}&act=Profile&MID={$info[\'id\']}\'>{$info[\'name\']}$forums{$info[\'location\']}{$info[\'msg_icon\']}
    \n
    \n
    \n', 'close_strip', '', 1035406249, 0);||~&~||(1, 'skin_stats', '\n\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n', 'top_poster_header', '', 1035406249, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n \n \n \n', 'top_poster_row', '$info', 1035406249, 0);||~&~||(1, 'skin_stats', '\n \n \n \n
    {$ibforums->lang[\'member\']}{$ibforums->lang[\'member_joined\']}{$ibforums->lang[\'member_posts\']}{$ibforums->lang[\'member_today\']}{$ibforums->lang[\'member_percent\']}
    base_url}&act=Profile&MID={$info[\'id\']}\'>{$info[\'name\']}{$info[\'joined\']}{$info[\'posts\']}{$info[\'tpost\']}{$info[\'today_pct\']}%
    {$ibforums->lang[\'total_today\']} $info
    \n
    \n', 'top_poster_footer', '$info', 1035406249, 0);||~&~||(1, 'skin_stats', '\n
    {$ibforums->lang[\'no_info\']}
    \n \n \n \n \n \n
    \n \n \n \n \n \n
    {$ibforums->lang[\'topic_stats\']}base_url}&act=Track&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'track_topic\']} |\n base_url}&act=Forward&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'forward\']} |\n base_url}&act=Print&client=printer&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'print\']}
    \n
    \n
    \n\' align=\'center\' border=\'0\' cellspacing=\'0\' cellpadding=\'4\'>\n \n \n \n \n
    {$data[TOPIC][SHOW_PAGES]}\n
    << vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=SF&f={$data[\'FORUM\'][\'id\']}\'>Back to {$data[\'FORUM\'][\'name\']}
    {$data[TOPIC][REPLY_BUTTON]}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$data[FORUM][\'id\']}\' title=\'{$ibforums->lang[\'start_new_topic\']}\'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    \n
    \n\' align=\'center\' border=\'0\' cellspacing=\'0\' cellpadding=\'3\'>\n \n \n \n \n
    \n \n {$data[FORUM][\'JUMP\']}

    \n
    \n', 'TableFooter', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n \n \n \n
    \n base_url}&act=Track&f=$fid&t=$tid\'>{$ibforums->lang[\'tt_title\']}\n
    {$ibforums->lang[\'tt_desc\']}\n

    \n base_url}&act=Track&f=$fid&type=forum\'>{$ibforums->lang[\'ft_title\']}\n
    {$ibforums->lang[\'ft_desc\']}\n

    \n base_url}&act=Print&client=choose&f=$fid&t=$tid\'>{$ibforums->lang[\'av_title\']}\n
    {$ibforums->lang[\'av_desc\']}\n
    \n', 'email_options', '$tid, $fid', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n
    {$data[POSTER][\'name\']}\n \n \n \n \n \n
    {$data[POST][\'post_icon\']}{$ibforums->lang[\'posted_on\']} {$data[POST][\'post_date\']}{$data[POST][\'delete_button\']}{$data[POST][\'edit_button\']}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=06&f={$ibforums->input[f]}&t={$ibforums->input[t]}&p={$data[POST][\'pid\']}\'><{P_QUOTE}>
    \n
    \n {$data[POSTER][\'avatar\']}

    \n {$data[POSTER][\'title\']}
    \n {$data[POSTER][\'member_rank_img\']}

    \n {$data[POSTER][\'member_group\']}
    \n {$data[POSTER][\'member_posts\']}
    \n {$data[POSTER][\'member_number\']}
    \n {$data[POSTER][\'member_joined\']}
    \n {$data[POSTER][WARN_GFX]}

    \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'160\' height=\'1\'>
    \n
    {$data[POST][\'post\']} {$data[POST][\'attachment\']} {$data[POST][\'signature\']}
    {$data[POST][\'ip_address\']} \n \n \n \n \n \n \n
    {$data[POSTER][\'message_icon\']}{$data[POSTER][\'email_icon\']}{$data[POSTER][\'website_icon\']}{$data[POSTER][\'icq_icon\']}{$data[POSTER][\'aol_icon\']}{$data[POSTER][\'yahoo_icon\']}{$data[POSTER][\'msn_icon\']}{$data[POST][\'report_link\']} vars[\'img_url\']}/p_up.gif\' alt=\'Top\' border=\'0\'>
    \n
    vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'1\' height=\'1\'>
    \' border=\'0\' cellspacing=\'0\' cellpadding=\'4\' align=\'center\'>\n \n \n \n \n
    {$data[\'TOPIC\'][\'SHOW_PAGES\']} {$data[\'TOPIC\'][\'go_new\']}{$data[TOPIC][REPLY_BUTTON]}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$data[FORUM][\'id\']}\' title=\'{$ibforums->lang[\'start_new_topic\']}\'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    \n\' border=\'0\' cellspacing=\'1\' cellpadding=\'0\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n \n \n \n \n', 'birthday', '$day,$month,$year', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'email_change', '$txt=""', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'pass_change', '', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n', 'personal_splash', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n', 'member_title', '$title', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\' method=\'post\' onload=\'checkTheBox\' $formextra name=\'creator\'>\n \n \n session_id}\'>\n $hidden_field\n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'personal_avatar', '$data, $formextra="", $hidden_field=""', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n', 'avatar_upload_field', '$text=""', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n \n \n \n \n', 'personal_avatar_URL', '$Profile, $avatar, $allowed_ext', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n \n \n', 'personal_avatar_end', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'personal_splash_av', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n\n\n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'signature', '$sig, $t_sig', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n\n\n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'personal_panel', '$Profile', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'required_title', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n', 'field_entry', '$title, $desc="", $content', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n', 'field_textinput', '$name, $value=""', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n', 'field_dropdown', '$name, $options', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n', 'field_textarea', '$name, $value', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n
    \n
    \n \n \n \n \n \n
    vars[\'img_url\']}/nav_m.gif\' alt=\'\' width=\'8\' height=\'8\'>{$data[\'TOPIC\'][\'title\']}{$data[\'TOPIC\'][\'description\']}
    \n
    \n \n \n \n \n \n\n\n', 'PageTop', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n
    \n \n \n \n \n \n
    « vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[FORUM][\'id\']}&t={$data[TOPIC][\'tid\']}&view=old\'>{$ibforums->lang[\'t_old\']} | vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[FORUM][\'id\']}&t={$data[TOPIC][\'tid\']}&view=new\'>{$ibforums->lang[\'t_new\']} »\n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Track&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'track_topic\']} |\n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Forward&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'forward\']} |\n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Print&client=printer&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'print\']}
    \n
    \n \n \n \n \n \n \n
    {$ibforums->lang[\'active_users_title\']} ({$ibforums->lang[\'active_users_detail\']})
    {$ibforums->lang[\'active_users_members\']} {$active[\'names\']}
    \n \n\n', 'topic_active_users', '$active=array()', 1035406249, 0);||~&~||(1, 'skin_topic', '\n

    {$ibforums->lang[\'pic_attach\']}

    \n\n \n \n \n
    vars[\'upload_url\']}/{$data[\'file_name\']}\' border=\'0\' alt=\'{$ibforums->lang[\'pic_attach\']}\'>
    \n

    \n', 'Show_attachments_img', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n

    \n \n \n \n \n \n \n \n \n
    vars[\'mime_img\']}/{$data[\'image\']}\' border=\'0\' alt=\'User Attached Image\'>vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Attach&type=post&id={$data[\'pid\']}\' target=\'_blank\'>{$ibforums->lang[\'attach_dl\']}
    {$data[\'name\']} ( {$ibforums->lang[\'attach_hits\']}: {$data[\'hits\']} )
    \n

    \n', 'Show_attachments', '$data', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n

    {$ibforums->lang[\'birthday\']}\n \n \n \n
    {$ibforums->lang[\'change_email_title\']}
    $txt
    {$ibforums->lang[\'ce_new_email\']}
    {$ibforums->lang[\'ce_new_email2\']}
    {$ibforums->lang[\'account_pass_title\']}
    {$ibforums->lang[\'pass_change_text\']}
    {$ibforums->lang[\'account_pass_old\']}
    {$ibforums->lang[\'account_pass_new\']}
    {$ibforums->lang[\'account_pass_new2\']}
    {$ibforums->lang[\'personal_ops\']}
    {$ibforums->member[\'name\']}, {$ibforums->lang[\'personal_ops_txt\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=UserCP&CODE=01&MODE=2\'>{$ibforums->lang[\'edit_profile\']}

    {$ibforums->lang[\'edit_profile_txt\']}
    {$ibforums->lang[\'member_title\']}
    {$ibforums->lang[\'av_current\']}
    {$ibforums->lang[\'this_avatar\']}{$data[CUR_AV]}
    {$ibforums->lang[\'avatar_pre_title\']}
    {$ibforums->lang[\'avatar_pre_txt\']}{$data[AVATARS]}     {$data[SHOW_AVS]}
    {$ibforums->lang[\'upload_avatar\']}
    $text
    {$ibforums->lang[\'avatar_url_title\']}
    {$ibforums->lang[\'avatar\']}
    {$ibforums->lang[\'avatar_url_ext\']}
    $allowed_ext
    {$ibforums->lang[\'avatar_dims\']}
    {$ibforums->lang[\'maximum\']} {$ibforums->lang[\'width\']} = {$ibforums->vars[\'av_width\']} {$ibforums->lang[\'pixels\']}
    {$ibforums->lang[\'maximum\']} {$ibforums->lang[\'height\']} = {$ibforums->vars[\'av_height\']} {$ibforums->lang[\'pixels\']})
    {$ibforums->lang[\'width\']}     x   {$ibforums->lang[\'height\']}  
    {$ibforums->lang[\'av_tt_one\']}
    {$ibforums->lang[\'av_tt_two\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=UserCP&CODE=01&MODE=1\'>{$ibforums->lang[\'avatar_ops\']}

    {$ibforums->lang[\'avatar_ops_txt\']}
    {$ibforums->lang[\'cp_current_sig\']}
    \n \n \n \n \n
    $sig
    \n
    {$ibforums->lang[\'cp_edit_sig\']}
    \n  {$ibforums->lang[\'bbcode_guided\']}
    \n  {$ibforums->lang[\'bbcode_normal\']}\n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n   {$ibforums->lang[\'js_close_all_tags\']}\n
    \n \n \n \n \n \n \n \n
    \n \n
    \n {$ibforums->lang[\'hb_open_tags\']}: \n
    \n

    ({$ibforums->lang[\'check_length\']})
    lang[\'cp_submit_sig\']}\'>
    {$ibforums->lang[\'profile_title\']}
    {$ibforums->lang[\'website\']}
    {$ibforums->lang[\'icq\']}
    {$ibforums->lang[\'aol\']}
    {$ibforums->lang[\'yahoo\']}
    {$ibforums->lang[\'msn\']}
    {$ibforums->lang[\'location\']}
    ({$ibforums->lang[\'check_length\']})
    {$ibforums->lang[\'interests\']}
    ({$ibforums->lang[\'check_length\']})
    \n \n
    {$ibforums->lang[\'cf_required\']}
    $title
    $desc
    $content
    \' bgcolor=\'<{tbl_border}>\' align=\'center\' border="0" cellspacing="1" cellpadding="0">\n \n \n \n \n \n \n
    \n  \n
    \n \n \n \n \n \n \n \n \n \n
      
    \n \n \n \n \n
    \n \n {$ibforums->lang[\'m_messenger\']}
    \n
    \n • {$ibforums->lang[\'mess_inbox\']}
    \n • {$ibforums->lang[\'mess_new\']}
    \n • {$ibforums->lang[\'mess_contact\']}
    \n • {$ibforums->lang[\'mess_folders\']}
    \n • {$ibforums->lang[\'mess_archive\']}
    \n • {$ibforums->lang[\'mess_saved\']}
    \n • {$ibforums->lang[\'mess_tracker\']}
    \n
    \n \n \n \n {$ibforums->lang[\'m_tracker\']}
    \n
    \n • {$ibforums->lang[\'m_view_subs\']}
    \n • {$ibforums->lang[\'m_view_forum\']}
    \n
    \n \n \n {$ibforums->lang[\'m_personal\']}
    \n
    \n • {$ibforums->lang[\'m_contact_info\']}
    \n \n • {$ibforums->lang[\'m_sig_info\']}
    \n • {$ibforums->lang[\'m_avatar_info\']}
    \n \n \n
    \n {$ibforums->lang[\'m_options\']}
    \n
    \n • {$ibforums->lang[\'m_email_opt\']}
    \n • {$ibforums->lang[\'m_board_opt\']}
    \n • {$ibforums->lang[\'m_skin_lang\']}
    \n • {$ibforums->lang[\'m_email_change\']}
    \n • {$ibforums->lang[\'m_passy_opt\']}
    \n \n \n
    \n
    \n \n \n \n \n', 'Menu_bar', '$base_url', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n
    \n
    \n
    \n', 'CP_end', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n
    {$ibforums->lang[\'stats_header\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'email_address\']}{$member[MEMBER_EMAIL]}
    {$ibforums->lang[\'number_posts\']}{$member[MEMBER_POSTS]}
    {$ibforums->lang[\'registered\']}{$member[DATE_REGISTERED]}
    {$ibforums->lang[\'daily_average\']}{$member[DAILY_AVERAGE]}
    \n
    {$ibforums->lang[\'messenger_summary\']}
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'total_messages\']}{$member[\'total_messages\']} {$member[\'full_percent\']}
    {$ibforums->lang[\'messages_left\']}{$member[\'space_free\']} {$member[\'full_messenger\']}
    \n
    {$ibforums->lang[\'note_pad\']}
    \n
    \n \n session_id}\'>\n \n \n \n \n \n
    \n \n
    \n
    \n \n \n \n \n \n
    {$ibforums->lang[\'ta_size\']}  \n \n lang[\'submit_notepad\']}\' class=\'forminput\'>\n
    \n
    \n
    {$ibforums->lang[\'settings_time\']}
    {$ibforums->lang[\'settings_time_txt\']}
    $time
    $time_select
    {$ibforums->lang[\'dst_box\']}
    {$ibforums->lang[\'settings_title\']}
    {$ibforums->lang[\'settings_lang_txt\']}$lang_select
    {$ibforums->lang[\'settings_skin\']}
    {$ibforums->lang[\'settings_skin_txt\']}$skin    lang[\'cp_skin_preview\']}\' class=\'forminput\' onClick=\'do_preview()\'>
    lang[\'settings_submit\']}\' class=\'forminput\'>
    {$ibforums->lang[\'settings_display\']}
    {$ibforums->lang[\'settings_viewsig\']}{$data[SIG]}
    {$ibforums->lang[\'settings_viewimg\']}{$data[IMG]}
    {$ibforums->lang[\'settings_viewava\']}{$data[AVA]}
    {$ibforums->lang[\'settings_dopopup\']}{$data[POP]}
    {$ibforums->lang[\'hide_session_txt\']}{$data[SESS]}
    {$ibforums->lang[\'pp_number_posts\']}
    {$ibforums->lang[\'pp_number_topics\']}
    lang[\'settings_submit\']}\' class=\'forminput\'>
    {$ibforums->lang[\'privacy_settings\']}
    {$ibforums->lang[\'hide_email\']}
    {$ibforums->lang[\'admin_send\']}
    {$ibforums->lang[\'board_prefs\']}
    {$ibforums->lang[\'send_full_msg\']}
    {$ibforums->lang[\'pm_reminder\']}
    {$ibforums->lang[\'auto_track\']}
    \n \n
    {$ibforums->lang[\'forum_subs_header\']}
    \n \'>\n \n \n \n \n \n \n \n', 'forum_subs_header', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n', 'forum_subs_row', '$data', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'forum_subs_none', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n\n \n\n
     {$ibforums->lang[\'ft_forum\']}{$ibforums->lang[\'ft_topics\']}{$ibforums->lang[\'ft_posts\']}{$ibforums->lang[\'ft_last_post\']}
    {$data[\'folder_icon\']}\n base_url}&act=SF&f={$data[\'id\']}\'>{$data[\'name\']}\n
    {$data[\'description\']}\n

    [ base_url}&act=UserCP&CODE=51&f={$data[\'id\']}\'>{$ibforums->lang[\'ft_unsub\']} ]\n
    {$data[\'topics\']}{$data[\'posts\']}{$data[\'last_post\']}
    {$ibforums->lang[\'in\']} {$data[\'last_topic\']}
    {$ibforums->lang[\'by\']} {$data[\'last_poster\']}
    {$ibforums->lang[\'forum_subs_none\']}
    base_url}&act=UserCP&CODE=51&f=all\'>{$ibforums->lang[\'ft_unsub_all\']}
    \n
    {$ibforums->lang[\'subs_header\']}\n
    \n \n \n session_id}\'>\n
    \n \'>\n \n \n \n \n \n \n \n \n', 'subs_header', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n', 'subs_row', '$data', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'subs_none', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'subs_forum_row', '$fid, $fname', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n\n \n\n\n
     {$ibforums->lang[\'subs_topic\']}{$ibforums->lang[\'subs_replies\']}{$ibforums->lang[\'subs_view\']}{$ibforums->lang[\'subs_last_post\']}
    {$data[\'folder_icon\']}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[\'forum_id\']}&t={$data[\'tid\']}\'>{$data[\'title\']} ( vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[\'forum_id\']}&t={$data[\'tid\']}\' target=\'_blank\'>{$ibforums->lang[\'new_window\']} )
    {$data[\'description\']}{$ibforums->lang[\'subs_start\']} {$data[\'start_date\']}
    {$data[\'posts\']}{$data[\'views\']}{$data[\'last_post_date\']}
    {$ibforums->lang[\'subs_by\']} {$data[\'last_poster\']}
    {$ibforums->lang[\'subs_none\']}
    base_url}&act=SF&f=$fid\'>$fname
    lang[\'subs_delete\']}\'>  {$ibforums->lang[\'with_selected\']}
    \n
    \n\' cellpadding=\'2\' cellspacing=\'0\' align=\'center\'>\n\n \n\n\n \n\n
    $text
    \n
    base_url}&act=UserCP&CODE=26\' method=\'post\'>\n {$ibforums->lang[\'show_topics_from\']} \n lang[\'jmp_go\']}\'>\n
    \n
    \n
    \' align=\'center\'>\n \n \n \n \n
    \n
    \n \n
    \n
    {$data}
    \n
    \n', 'forum_jump', '$data, $menu_extra=""', 1035406251, 0);||~&~||(1, 'skin_post', '\n\n \n {$ibforums->lang[\'ib_code_buttons\']}\n \n \n \n  {$ibforums->lang[\'bbcode_guided\']}
    \n  {$ibforums->lang[\'bbcode_normal\']}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n   {$ibforums->lang[\'js_close_all_tags\']}\n
    \n \n \n \n \n \n \n \n
    \n {$ibforums->lang[\'hb_open_tags\']}: \n  \n
    \n \n \n \n {$ibforums->lang[\'post\']}\n \n \n ({$ibforums->lang[\'check_length\']})

    \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'enable_emo\']}
    {$ibforums->lang[\'enable_sig\']}
    \n \n', 'pm_postbox_buttons', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n {$ibforums->lang[\'unreg_namestuff\']}\n \n \n {$ibforums->lang[\'guest_name\']}\n \n \n', 'nameField_unreg', '$data', 1035406247, 0);||~&~||(1, 'skin_post', '\n \n {$ibforums->lang[\'tt_poll_settings\']}\n \n \n {$ibforums->lang[\'poll_question\']}\n \n \n \n {$ibforums->lang[\'poll_choices\']}

    $extra\n \n \n \n \n \n \n
    {$ibforums->lang[\'poll_only\']}
    \n \n', 'poll_box', '$data, $extra=""', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n
    \n\' border=\'0\' cellspacing=\'1\' cellpadding=\'0\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n\n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'tvo_title\']} $title
    \n base_url}&act=Print&client=printer&f=$fid&t=$tid\'>{$ibforums->lang[\'o_print_title\']}\n
    \n {$ibforums->lang[\'o_print_desc\']}\n

    \n base_url}&act=Print&client=html&f=$fid&t=$tid\'>{$ibforums->lang[\'o_html_title\']}\n
    \n {$ibforums->lang[\'o_html_desc\']}\n

    \n base_url}&act=Print&client=wordr&f=$fid&t=$tid\'>{$ibforums->lang[\'o_word_title\']}\n
    \n {$ibforums->lang[\'o_word_desc\']}\n



    \n <<base_url}&act=ST&f=$fid&t=$tid\'>{$ibforums->lang[\'back_topic\']}\n
    \n
    \n\n', 'choose_form', '$fid, $tid, $title', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n \n \n \n \n \n \n \n
    {$ibforums->lang[\'by\']}: {$entry[\'author_name\']} {$ibforums->lang[\'on\']} {$entry[\'post_date\']}
    {$entry[\'post\']}
    \n
    \n', 'pp_postentry', '$poster, $entry', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n
    Powered by Invision Board (http://www.invisionboard.com)
    © Invision Power Services (http://www.invisionpower.com)
    \n', 'pp_end', '', 1035406247, 0);||~&~||(1, 'skin_printpage', '\n \n \n {$ibforums->vars[\'board_name\']} [Powered by IB Forums]\n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'title\']}\n
    base_url}&act=ST&f=$fid&t=$tid\'>{$ibforums->lang[\'topic_here\']}\n
    {$ibforums->vars[\'board_name\']} > $forum_name > $topic_title
    \n
    \n
    \n', 'pp_header', '$forum_name, $topic_title, $topic_starter,$fid, $tid', 1035406247, 0);||~&~||(1, 'skin_profile', '\n\n {$ibforums->lang[\'edit_my_sig\']} |\n {$ibforums->lang[\'edit_avatar\']} |\n {$ibforums->lang[\'edit_profile\']}\n\n', 'user_edit', '$info', 1035406247, 0);||~&~||(1, 'skin_profile', '\n\' align=\'center\'>\n \n \n \n \n \n \n \n
    {$info[\'name\']}
    {$ibforums->lang[\'find_posts\']} |\n {$ibforums->lang[\'add_to_contact\']}
    \n\n\' align=\'center\'>\n \n \n \n
    \n \'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'active_stats\']}
    {$ibforums->lang[\'total_posts\']}{$info[\'posts\']}
    ( {$info[\'total_pct\']}% {$ibforums->lang[\'total_percent\']} )
    {$ibforums->lang[\'posts_per_day\']}{$info[\'posts_day\']}
    {$ibforums->lang[\'joined\']}{$info[\'joined\']}
    {$ibforums->lang[\'fav_forum\']}{$info[\'fav_forum\']}
    {$info[\'fav_posts\']} {$ibforums->lang[\'fav_posts\']}
    ( {$info[\'percent\']}% {$ibforums->lang[\'fav_percent\']} )
    {$ibforums->lang[\'user_local_time\']}{$info[\'local_time\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'communicate\']}
    {$ibforums->lang[\'email\']}{$info[\'email\']}
    {$ibforums->lang[\'aim\']}{$info[\'aim_name\']}
    {$ibforums->lang[\'icq\']}{$info[\'icq_number\']}
    {$ibforums->lang[\'yahoo\']}{$info[\'yahoo\']}
    {$ibforums->lang[\'msn\']}{$info[\'msn_name\']}
    {$ibforums->lang[\'pm\']}{$ibforums->lang[\'click_here\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'info\']}
    {$ibforums->lang[\'homepage\']}{$info[\'homepage\']}
    {$ibforums->lang[\'birthday\']}{$info[\'birthday\']}
    {$ibforums->lang[\'location\']}{$info[\'location\']}
    {$ibforums->lang[\'interests\']}{$info[\'interests\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'post_detail\']}
    {$ibforums->lang[\'mgroup\']}{$info[\'group_title\']}
    {$ibforums->lang[\'mtitle\']}{$info[\'member_title\']}
    {$ibforums->lang[\'avatar\']}{$info[\'avatar\']}
    {$ibforums->lang[\'siggie\']}{$info[\'signature\']}
    \n
    <( {$ibforums->lang[\'back\']} )
    \n
    \n', 'show_profile', '$info', 1035406247, 0);||~&~||(1, 'skin_profile', '\n \n $title\n $value\n \n', 'custom_field', '$title, $value=""', 1035406247, 0);||~&~||(1, 'skin_register', '\n \n \n {$ibforums->lang[\'cpf_title\']}\n \n \n \n \n \n \n \n
    \n {$ibforums->vars[\'board_name\']}: {$ibforums->lang[\'cpf_title\']}\n

    \n {$ibforums->lang[\'cpf_perm_parent\']}\n

    \n {$ibforums->lang[\'cpf_fax\']} {$ibforums->vars[\'coppa_fax\']}\n

    \n {$ibforums->lang[\'cpf_address\']}\n
    \n {$ibforums->vars[\'coppa_address\']}\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'user_name\']} 
    {$ibforums->lang[\'pass_word\']} 
    {$ibforums->lang[\'email_address\']} 
    \n
    \n \n \n \n \n
    \n {$ibforums->lang[\'cpf_sign\']}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cpf_name\']} 
    {$ibforums->lang[\'cpf_relation\']} 
    {$ibforums->lang[\'cpf_signature\']} 
    {$ibforums->lang[\'cpf_email\']} 
    {$ibforums->lang[\'cpf_phone\']} 
    {$ibforums->lang[\'cpf_date\']} 
    \n \n \n', 'coppa_form', '', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp2_title\']}
    \n {$ibforums->lang[\'cp2_text\']}\n

    \n
    \n << base_url}\'>{$ibforums->lang[\'cp2_cancel\']}\n - base_url}&act=Reg&coppa_pass=1&coppa_user=1\'>{$ibforums->lang[\'cp2_continue\']} >>\n
    \n
    {$ibforums->lang[\'coppa_form\']}
    {$ibforums->lang[\'coppa_form_text\']} vars[\'email_in\']}\'>{$ibforums->vars[\'email_in\']}
    \n
    \n', 'coppa_two', '', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'coppa_info\']}
    \n

    \n {$ibforums->lang[\'coppa_link\']}\n

    \n < base_url}&act=Reg&coppa_pass=1\'>{$ibforums->lang[\'coppa_date_before\']} $coppadate\n - base_url}&act=Reg&CODE=coppa_two\'>{$ibforums->lang[\'coppa_date_after\']} $coppadate >\n

     \n
    {$ibforums->lang[\'coppa_form\']}
    {$ibforums->lang[\'coppa_form_text\']} vars[\'email_in\']}\'>{$ibforums->vars[\'email_in\']}
    \n
    \n', 'coppa_start', '$coppadate', 1035406247, 0);||~&~||(1, 'skin_register', '\n
    \n
    \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'lp_header\']}

    {$ibforums->lang[\'lp_text\']}
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'complete_form\']}
    {$ibforums->lang[\'lp_user_name\']}
    \n \n
    \n
    \n
    \n', 'lost_pass_form', '', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'registration_process\']}
    {$ibforums->lang[\'thank_you\']} {$member[\'name\']}. {$ibforums->lang[\'auth_text\']} {$member[\'email\']}
    \n
    \n', 'show_authorise', '$member', 1035406247, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'registration_process\']}
    {$ibforums->lang[\'thank_you\']} {$member[\'name\']}. {$ibforums->lang[\'preview_reg_text\']}
    \n
    \n', 'show_preview', '$member', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n
    \n
    \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'dumb_header\']}

    {$ibforums->lang[\'dumb_text\']}
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'complete_form\']}
    {$ibforums->lang[\'user_id\']}
    {$ibforums->lang[\'val_key\']}
    \n \n
    \n
    \n
    \n', 'show_dumb_form', '$type="reg"', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n
    \n
    \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$ibforums->lang[\'reg_header\']}

    {$data[\'TEXT\']}
    \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'complete_form\']}
    {$ibforums->lang[\'user_name\']}input[\'UserName\']}\' name=\'UserName\' class=\'forminput\'>
    {$ibforums->lang[\'pass_word\']}input[\'PassWord\']}\' name=\'PassWord\' class=\'forminput\'>
    {$ibforums->lang[\'re_enter_pass\']}input[\'PassWord_Check\']}\' name=\'PassWord_Check\' class=\'forminput\'>
    {$ibforums->lang[\'email_address\']}input[\'EmailAddress\']}\' name=\'EmailAddress\' class=\'forminput\'>
    {$ibforums->lang[\'email_address_two\']}input[\'EmailAddress_two\']}\' name=\'EmailAddress_two\' class=\'forminput\'>
    \n
    \n \n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n
    \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'terms_service\']}
    {$ibforums->lang[\'terms_service_text\']}
    \n \n

    {$ibforums->lang[\'agree_submit\']} \n
    \n \n
    \n
    \n
    \n', 'ShowForm', '$data', 1035406248, 0);||~&~||(1, 'skin_register', '\n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n
    {$ibforums->lang[\'errors_found\']}
    \'>$data
    \n
    \n
    \n', 'errors', '$data', 1035406248, 0);||~&~||(1, 'skin_register', '\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'ras_title\']}
    {$ibforums->lang[\'ras_numbers\']}\n \n base_url}&act=Reg&CODE=image&rc={$regid}&p=1\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=2\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=3\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=4\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=5\' border=\'0\' alt=\'Code Bit\'>\n  base_url}&act=Reg&CODE=image&rc={$regid}&p=6\' border=\'0\' alt=\'Code Bit\'>\n
    {$ibforums->lang[\'ras_text\']}
    \n
    \n', 'reg_antispam', '$regid', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n {$ibforums->lang[\'cf_optional\']}\n \n', 'optional_title', '', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n $title
    $desc\n $content\n \n', 'field_entry', '$title, $desc="", $content', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n', 'field_textinput', '$name, $value=""', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n', 'field_dropdown', '$name, $options', 1035406248, 0);||~&~||(1, 'skin_register', '\n \n', 'field_textarea', '$name, $value', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \n {$Data[\'folder_img\']}\n {$Data[\'topic_icon\']}\n \n \n \n \n \n \n
    {$Data[\'go_new_post\']}{$Data[\'prefix\']} vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&hl={$Data[\'keywords\']}&s={$ibforums->session_id}\' class=\'linkthru\'>{$Data[\'title\']} {$Data[PAGES]}
    \n {$Data[\'description\']}\n {$Data[\'forum_name\']}\n {$Data[\'starter\']}\n {$Data[\'posts\']}\n {$Data[\'views\']}\n {$Data[\'last_post\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&view=getlastpost\'>{$Data[\'last_text\']} {$Data[\'last_poster\']}\n \n \n', 'RenderRow', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \n \n \n \n \n \n \n
    {$Data[\'folder_img\']}{$ibforums->lang[\'rp_topic\']} {$Data[\'prefix\']} base_url}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&hl={$Data[\'keywords\']}\' class=\'linkthru\'>{$Data[\'title\']} {$Data[PAGES]}
    \n \n \n \n {$Data[\'author_name\']}\n \n {$ibforums->lang[\'rp_forum\']} {$Data[\'forum_name\']}    {$ibforums->lang[\'rp_postedon\']} {$Data[\'post_date\']}    {$ibforums->lang[\'rp_post\']} base_url}&act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&hl={$Data[\'keywords\']}&#entry{$Data[\'pid\']}\' class=\'linkthru\'>#{$Data[\'pid\']}\n \n \n \n \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'150\' height=\'15\'>\n
    \n {$ibforums->lang[\'rp_replies\']} {$Data[\'posts\']}
    {$ibforums->lang[\'rp_hits\']} {$Data[\'views\']}
    \n \n {$Data[\'post\']}\n \n \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'1\' height=\'1\'>\n \n \n', 'RenderPostRow', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n', 'start_as_post', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n
    {$ibforums->lang[\'rp_author\']}{$ibforums->lang[\'rp_message\']}
     
    \n
    \n
    \n \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    <{B_NEW}> {$ibforums->lang[\'pm_open_new\']}<{B_HOT}> {$ibforums->lang[\'pm_hot_new\']}<{B_POLL}> {$ibforums->lang[\'pm_poll\']}<{B_LOCKED}> {$ibforums->lang[\'pm_locked\']}
    <{B_NORM}> {$ibforums->lang[\'pm_open_no\']}<{B_HOT_NN}> {$ibforums->lang[\'pm_hot_no\']}<{B_POLL_NN}> {$ibforums->lang[\'pm_poll_no\']}<{B_MOVED}> {$ibforums->lang[\'pm_moved\']}
    \n', 'end_as_post', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n  \n \n \n \n \n \n \n \n \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    <{B_NEW}> {$ibforums->lang[\'pm_open_new\']}<{B_HOT}> {$ibforums->lang[\'pm_hot_new\']}<{B_POLL}> {$ibforums->lang[\'pm_poll\']}<{B_LOCKED}> {$ibforums->lang[\'pm_locked\']}
    <{B_NORM}> {$ibforums->lang[\'pm_open_no\']}<{B_HOT_NN}> {$ibforums->lang[\'pm_hot_no\']}<{B_POLL_NN}> {$ibforums->lang[\'pm_poll_no\']}<{B_MOVED}> {$ibforums->lang[\'pm_moved\']}
    \n', 'end', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n \n \n
    \n $hidden_fields\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'keywords_title\']}
    {$ibforums->lang[\'key_search\']}{$ibforums->lang[\'mem_search\']}


    {$ibforums->lang[\'keysearch_text\']}
    \n \n \n \n \n \n \n \n
    \n  {$ibforums->lang[\'match_name_ex\']}\n
     {$ibforums->lang[\'match_name_pa\']}\n
    \n  {$ibforums->lang[\'joinname_true\']}\n
     {$ibforums->lang[\'joinname_false\']}\n
    \n
    \n
    \n \n \n
    \n \n \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'search_options\']}
    {$ibforums->lang[\'search_where\']}{$ibforums->lang[\'search_refine\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     {$ibforums->lang[\'search_cats\']}$cats
     {$ibforums->lang[\'search_forums\']}$forums
     {$ibforums->lang[\'in_posts\']}
     {$ibforums->lang[\'in_topics\']}
     {$ibforums->lang[\'results_topics\']}
     {$ibforums->lang[\'results_post\']}
    \n
    \n \n \n \n \n \n
    \n {$ibforums->lang[\'search_from\']}\n
    \n \n
    {$ibforums->lang[\'and\']} \'> {$ibforums->lang[\'older\']} \' checked> {$ibforums->lang[\'newer\']}\n
    \n {$ibforums->lang[\'sort_results\']}
    \n \n
    {$ibforums->lang[\'descending\']}\n
    {$ibforums->lang[\'ascending\']}\n
    \n
    lang[\'do_search\']}\' class=\'forminput\'>
    \n
    \n
    \n \n', 'Form', '$forums, $cats', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n
    \n \' align=\'center\'>\n \n \n \n \n
    {$ibforums->lang[\'active_topics\']}
    {$Data[SHOW_PAGES]}
    \n
    base_url}&act=Search&CODE=getactive\' method=\'POST\' name=\'dateline\' onSubmit=\'return checkvalues();\'>\n
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'splash', '$member', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'settings_header', '$Profile, $time_select, $time, $dst_check', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n session_id}\'>\n \n \n \n \n \n \n', 'skin_lang_header', '$lang_select', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n', 'settings_skin', '$skin', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'skin_lang_end', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'settings_end', '$data', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'email', '$Profile', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n\n', 'forum_subs_end', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n \n \n \n \n \n', 'subs_end', '$text="", $days=""', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n
    \n
    \n {$ibforums->lang[\'active_st_text\']}\n \n   {$ibforums->lang[\'active_end_text\']}  \n \n   \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'RenderRow', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n\n\n
    \n \n \n \n \n \n \n \n \n \n \n', 'active_start', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n \n
     {$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_forum_name\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    \' align=\'center\'>\n \n \n \n
    {$Data[SHOW_PAGES]}
    \n \' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n \n \n
    \n \n \n \n \n \n', 'top_poster_no_info', '', 1035406249, 0);||~&~||(1, 'skin_topic', '\nbase_url}&act=report&f={$data[\'forum_id\']}&t={$data[\'topic_id\']}&p={$data[\'pid\']}&st={$ibforums->input[\'st\']}\'>{$ibforums->lang[\'snitch_geezer_to_a_copper\']}\n', 'report_link', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n{$ibforums->lang[\'ip\']}: $data\n', 'ip_show', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n( base_url}&act=ST&f=$fid&t=$tid&view=getnewpost\'>{$ibforums->lang[\'go_new_post\']} )\n', 'golastpost_link', '$fid, $tid', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\'>\n session_id}\'>\n \n \n input[\'st\']}\'>\n \n  lang[\'jmp_go\']}\' class=\'forminput\' />\n \n', 'Mod_Panel', '$data, $fid, $tid', 1035406249, 0);||~&~||(1, 'skin_topic', '\n\n', 'mod_wrapper', '$id="", $text=""', 1035406249, 0);||~&~||(1, 'skin_topic', '\n
    \n \n \n \n \n \n \n \n \n \n \n', 'start', '$Data', 1035406248, 0);||~&~||(1, 'skin_search', '\n\n', 'active_none', '', 1035406248, 0);||~&~||(1, 'skin_stats', '\n\n\n
     {$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_forum_name\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    {$ibforums->lang[\'active_no_topics\']}
    \' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n', 'who_header', '$fid, $tid, $title', 1035406248, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n', 'who_row', '$row', 1035406248, 0);||~&~||(1, 'skin_stats', '\n base_url}&act=Profile&MID=$id\' target=\'_blank\'>$name\n \n', 'who_name_link', '$id, $name', 1035406248, 0);||~&~||(1, 'skin_stats', '\n \n \n \n
    {$ibforums->lang[\'who_farted\']} $title
    {$ibforums->lang[\'who_poster\']}{$ibforums->lang[\'who_posts\']}
    {$row[\'author_name\']}{$row[\'pcount\']}
    {$ibforums->lang[\'who_go\']}
    \n
    \n', 'who_end', '', 1035406248, 0);||~&~||(1, 'skin_stats', '\n \' align=\'center\'>\n \n \n \n
    {$title}
    \n', 'page_title', '$title', 1035406248, 0);||~&~||(1, 'skin_stats', '\n\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n', 'group_strip', '$group', 1035406249, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n \n \n', 'leader_row', '$info, $forums', 1035406249, 0);||~&~||(1, 'skin_stats', '\n
    $group
    {$ibforums->lang[\'leader_name\']}{$ibforums->lang[\'leader_forums\']}{$ibforums->lang[\'leader_location\']} 
    base_url}&act=Profile&MID={$info[\'id\']}\'>{$info[\'name\']}$forums{$info[\'location\']}{$info[\'msg_icon\']}
    \n
    \n
    \n', 'close_strip', '', 1035406249, 0);||~&~||(1, 'skin_stats', '\n\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n
    \n \n \n \n \n \n \n \n \n', 'top_poster_header', '', 1035406249, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n \n \n \n', 'top_poster_row', '$info', 1035406249, 0);||~&~||(1, 'skin_stats', '\n \n \n \n
    {$ibforums->lang[\'member\']}{$ibforums->lang[\'member_joined\']}{$ibforums->lang[\'member_posts\']}{$ibforums->lang[\'member_today\']}{$ibforums->lang[\'member_percent\']}
    base_url}&act=Profile&MID={$info[\'id\']}\'>{$info[\'name\']}{$info[\'joined\']}{$info[\'posts\']}{$info[\'tpost\']}{$info[\'today_pct\']}%
    {$ibforums->lang[\'total_today\']} $info
    \n
    \n', 'top_poster_footer', '$info', 1035406249, 0);||~&~||(1, 'skin_stats', '\n
    {$ibforums->lang[\'no_info\']}
    \n \n \n \n \n \n
    \n \n \n \n \n \n
    {$ibforums->lang[\'topic_stats\']}base_url}&act=Track&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'track_topic\']} |\n base_url}&act=Forward&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'forward\']} |\n base_url}&act=Print&client=printer&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'print\']}
    \n
    \n
    \n\' align=\'center\' border=\'0\' cellspacing=\'0\' cellpadding=\'4\'>\n \n \n \n \n
    {$data[TOPIC][SHOW_PAGES]}\n
    << vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=SF&f={$data[\'FORUM\'][\'id\']}\'>Back to {$data[\'FORUM\'][\'name\']}
    {$data[TOPIC][REPLY_BUTTON]}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$data[FORUM][\'id\']}\' title=\'{$ibforums->lang[\'start_new_topic\']}\'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    \n
    \n\' align=\'center\' border=\'0\' cellspacing=\'0\' cellpadding=\'3\'>\n \n \n \n \n
    \n \n {$data[FORUM][\'JUMP\']}

    \n
    \n', 'TableFooter', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n \n \n \n
    \n base_url}&act=Track&f=$fid&t=$tid\'>{$ibforums->lang[\'tt_title\']}\n
    {$ibforums->lang[\'tt_desc\']}\n

    \n base_url}&act=Track&f=$fid&type=forum\'>{$ibforums->lang[\'ft_title\']}\n
    {$ibforums->lang[\'ft_desc\']}\n

    \n base_url}&act=Print&client=choose&f=$fid&t=$tid\'>{$ibforums->lang[\'av_title\']}\n
    {$ibforums->lang[\'av_desc\']}\n
    \n', 'email_options', '$tid, $fid', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n
    {$data[POSTER][\'name\']}\n \n \n \n \n \n
    {$data[POST][\'post_icon\']}{$ibforums->lang[\'posted_on\']} {$data[POST][\'post_date\']}{$data[POST][\'delete_button\']}{$data[POST][\'edit_button\']}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=06&f={$ibforums->input[f]}&t={$ibforums->input[t]}&p={$data[POST][\'pid\']}\'><{P_QUOTE}>
    \n
    \n {$data[POSTER][\'avatar\']}

    \n {$data[POSTER][\'title\']}
    \n {$data[POSTER][\'member_rank_img\']}

    \n {$data[POSTER][\'member_group\']}
    \n {$data[POSTER][\'member_posts\']}
    \n {$data[POSTER][\'member_number\']}
    \n {$data[POSTER][\'member_joined\']}
    \n {$data[POSTER][WARN_GFX]}

    \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'160\' height=\'1\'>
    \n
    {$data[POST][\'post\']} {$data[POST][\'attachment\']} {$data[POST][\'signature\']}
    {$data[POST][\'ip_address\']} \n \n \n \n \n \n \n
    {$data[POSTER][\'message_icon\']}{$data[POSTER][\'email_icon\']}{$data[POSTER][\'website_icon\']}{$data[POSTER][\'icq_icon\']}{$data[POSTER][\'aol_icon\']}{$data[POSTER][\'yahoo_icon\']}{$data[POSTER][\'msn_icon\']}{$data[POST][\'report_link\']} vars[\'img_url\']}/p_up.gif\' alt=\'Top\' border=\'0\'>
    \n
    vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'1\' height=\'1\'>
    \' border=\'0\' cellspacing=\'0\' cellpadding=\'4\' align=\'center\'>\n \n \n \n \n
    {$data[\'TOPIC\'][\'SHOW_PAGES\']} {$data[\'TOPIC\'][\'go_new\']}{$data[TOPIC][REPLY_BUTTON]}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Post&CODE=00&f={$data[FORUM][\'id\']}\' title=\'{$ibforums->lang[\'start_new_topic\']}\'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    \n\' border=\'0\' cellspacing=\'1\' cellpadding=\'0\' bgcolor=\'<{tbl_border}>\' align=\'center\'>\n \n \n \n \n \n \n \n \n', 'birthday', '$day,$month,$year', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'email_change', '$txt=""', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'pass_change', '', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n', 'personal_splash', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n', 'member_title', '$title', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\' method=\'post\' onload=\'checkTheBox\' $formextra name=\'creator\'>\n \n \n session_id}\'>\n $hidden_field\n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'personal_avatar', '$data, $formextra="", $hidden_field=""', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n', 'avatar_upload_field', '$text=""', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n \n \n \n \n', 'personal_avatar_URL', '$Profile, $avatar, $allowed_ext', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n \n \n', 'personal_avatar_end', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'personal_splash_av', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n\n\n \n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'signature', '$sig, $t_sig', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n\n\n \n \n session_id}\'>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n', 'personal_panel', '$Profile', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'required_title', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n', 'field_entry', '$title, $desc="", $content', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n', 'field_textinput', '$name, $value=""', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n', 'field_dropdown', '$name, $options', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n', 'field_textarea', '$name, $value', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n
    \n
    \n \n \n \n \n \n
    vars[\'img_url\']}/nav_m.gif\' alt=\'\' width=\'8\' height=\'8\'>{$data[\'TOPIC\'][\'title\']}{$data[\'TOPIC\'][\'description\']}
    \n
    \n \n \n \n \n \n\n\n', 'PageTop', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n \n
    \n \n \n \n \n \n
    « vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[FORUM][\'id\']}&t={$data[TOPIC][\'tid\']}&view=old\'>{$ibforums->lang[\'t_old\']} | vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[FORUM][\'id\']}&t={$data[TOPIC][\'tid\']}&view=new\'>{$ibforums->lang[\'t_new\']} »\n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Track&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'track_topic\']} |\n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Forward&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'forward\']} |\n vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Print&client=printer&f={$data[\'FORUM\'][\'id\']}&t={$data[\'TOPIC\'][\'tid\']}\'>{$ibforums->lang[\'print\']}
    \n
    \n \n \n \n \n \n \n
    {$ibforums->lang[\'active_users_title\']} ({$ibforums->lang[\'active_users_detail\']})
    {$ibforums->lang[\'active_users_members\']} {$active[\'names\']}
    \n \n\n', 'topic_active_users', '$active=array()', 1035406249, 0);||~&~||(1, 'skin_topic', '\n

    {$ibforums->lang[\'pic_attach\']}

    \n\n \n \n \n
    vars[\'upload_url\']}/{$data[\'file_name\']}\' border=\'0\' alt=\'{$ibforums->lang[\'pic_attach\']}\'>
    \n

    \n', 'Show_attachments_img', '$data', 1035406249, 0);||~&~||(1, 'skin_topic', '\n

    \n \n \n \n \n \n \n \n \n
    vars[\'mime_img\']}/{$data[\'image\']}\' border=\'0\' alt=\'User Attached Image\'>vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=Attach&type=post&id={$data[\'pid\']}\' target=\'_blank\'>{$ibforums->lang[\'attach_dl\']}
    {$data[\'name\']} ( {$ibforums->lang[\'attach_hits\']}: {$data[\'hits\']} )
    \n

    \n', 'Show_attachments', '$data', 1035406249, 0);||~&~||(1, 'skin_ucp', '\n

    {$ibforums->lang[\'birthday\']}\n \n \n \n
    {$ibforums->lang[\'change_email_title\']}
    $txt
    {$ibforums->lang[\'ce_new_email\']}
    {$ibforums->lang[\'ce_new_email2\']}
    {$ibforums->lang[\'account_pass_title\']}
    {$ibforums->lang[\'pass_change_text\']}
    {$ibforums->lang[\'account_pass_old\']}
    {$ibforums->lang[\'account_pass_new\']}
    {$ibforums->lang[\'account_pass_new2\']}
    {$ibforums->lang[\'personal_ops\']}
    {$ibforums->member[\'name\']}, {$ibforums->lang[\'personal_ops_txt\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=UserCP&CODE=01&MODE=2\'>{$ibforums->lang[\'edit_profile\']}

    {$ibforums->lang[\'edit_profile_txt\']}
    {$ibforums->lang[\'member_title\']}
    {$ibforums->lang[\'av_current\']}
    {$ibforums->lang[\'this_avatar\']}{$data[CUR_AV]}
    {$ibforums->lang[\'avatar_pre_title\']}
    {$ibforums->lang[\'avatar_pre_txt\']}{$data[AVATARS]}     {$data[SHOW_AVS]}
    {$ibforums->lang[\'upload_avatar\']}
    $text
    {$ibforums->lang[\'avatar_url_title\']}
    {$ibforums->lang[\'avatar\']}
    {$ibforums->lang[\'avatar_url_ext\']}
    $allowed_ext
    {$ibforums->lang[\'avatar_dims\']}
    {$ibforums->lang[\'maximum\']} {$ibforums->lang[\'width\']} = {$ibforums->vars[\'av_width\']} {$ibforums->lang[\'pixels\']}
    {$ibforums->lang[\'maximum\']} {$ibforums->lang[\'height\']} = {$ibforums->vars[\'av_height\']} {$ibforums->lang[\'pixels\']})
    {$ibforums->lang[\'width\']}     x   {$ibforums->lang[\'height\']}  
    {$ibforums->lang[\'av_tt_one\']}
    {$ibforums->lang[\'av_tt_two\']}
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=UserCP&CODE=01&MODE=1\'>{$ibforums->lang[\'avatar_ops\']}

    {$ibforums->lang[\'avatar_ops_txt\']}
    {$ibforums->lang[\'cp_current_sig\']}
    \n \n \n \n \n
    $sig
    \n
    {$ibforums->lang[\'cp_edit_sig\']}
    \n  {$ibforums->lang[\'bbcode_guided\']}
    \n  {$ibforums->lang[\'bbcode_normal\']}\n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n   {$ibforums->lang[\'js_close_all_tags\']}\n
    \n \n \n \n \n \n \n \n
    \n \n
    \n {$ibforums->lang[\'hb_open_tags\']}: \n
    \n

    ({$ibforums->lang[\'check_length\']})
    lang[\'cp_submit_sig\']}\'>
    {$ibforums->lang[\'profile_title\']}
    {$ibforums->lang[\'website\']}
    {$ibforums->lang[\'icq\']}
    {$ibforums->lang[\'aol\']}
    {$ibforums->lang[\'yahoo\']}
    {$ibforums->lang[\'msn\']}
    {$ibforums->lang[\'location\']}
    ({$ibforums->lang[\'check_length\']})
    {$ibforums->lang[\'interests\']}
    ({$ibforums->lang[\'check_length\']})
    \n \n
    {$ibforums->lang[\'cf_required\']}
    $title
    $desc
    $content
    \' bgcolor=\'<{tbl_border}>\' align=\'center\' border="0" cellspacing="1" cellpadding="0">\n \n \n \n \n \n \n
    \n  \n
    \n \n \n \n \n \n \n \n \n \n
      
    \n \n \n \n \n
    \n \n {$ibforums->lang[\'m_messenger\']}
    \n
    \n • {$ibforums->lang[\'mess_inbox\']}
    \n • {$ibforums->lang[\'mess_new\']}
    \n • {$ibforums->lang[\'mess_contact\']}
    \n • {$ibforums->lang[\'mess_folders\']}
    \n • {$ibforums->lang[\'mess_archive\']}
    \n • {$ibforums->lang[\'mess_saved\']}
    \n • {$ibforums->lang[\'mess_tracker\']}
    \n
    \n \n \n \n {$ibforums->lang[\'m_tracker\']}
    \n
    \n • {$ibforums->lang[\'m_view_subs\']}
    \n • {$ibforums->lang[\'m_view_forum\']}
    \n
    \n \n \n {$ibforums->lang[\'m_personal\']}
    \n
    \n • {$ibforums->lang[\'m_contact_info\']}
    \n \n • {$ibforums->lang[\'m_sig_info\']}
    \n • {$ibforums->lang[\'m_avatar_info\']}
    \n \n \n
    \n {$ibforums->lang[\'m_options\']}
    \n
    \n • {$ibforums->lang[\'m_email_opt\']}
    \n • {$ibforums->lang[\'m_board_opt\']}
    \n • {$ibforums->lang[\'m_skin_lang\']}
    \n • {$ibforums->lang[\'m_email_change\']}
    \n • {$ibforums->lang[\'m_passy_opt\']}
    \n \n \n
    \n
    \n \n \n \n \n', 'Menu_bar', '$base_url', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n \n \n
    \n
    \n
    \n', 'CP_end', '', 1035406250, 0);||~&~||(1, 'skin_ucp', '\n
    {$ibforums->lang[\'stats_header\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'email_address\']}{$member[MEMBER_EMAIL]}
    {$ibforums->lang[\'number_posts\']}{$member[MEMBER_POSTS]}
    {$ibforums->lang[\'registered\']}{$member[DATE_REGISTERED]}
    {$ibforums->lang[\'daily_average\']}{$member[DAILY_AVERAGE]}
    \n
    {$ibforums->lang[\'messenger_summary\']}
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'total_messages\']}{$member[\'total_messages\']} {$member[\'full_percent\']}
    {$ibforums->lang[\'messages_left\']}{$member[\'space_free\']} {$member[\'full_messenger\']}
    \n
    {$ibforums->lang[\'note_pad\']}
    \n
    \n \n session_id}\'>\n \n \n \n \n \n
    \n \n
    \n
    \n \n \n \n \n \n
    {$ibforums->lang[\'ta_size\']}  \n \n lang[\'submit_notepad\']}\' class=\'forminput\'>\n
    \n
    \n
    {$ibforums->lang[\'settings_time\']}
    {$ibforums->lang[\'settings_time_txt\']}
    $time
    $time_select
    {$ibforums->lang[\'dst_box\']}
    {$ibforums->lang[\'settings_title\']}
    {$ibforums->lang[\'settings_lang_txt\']}$lang_select
    {$ibforums->lang[\'settings_skin\']}
    {$ibforums->lang[\'settings_skin_txt\']}$skin    lang[\'cp_skin_preview\']}\' class=\'forminput\' onClick=\'do_preview()\'>
    lang[\'settings_submit\']}\' class=\'forminput\'>
    {$ibforums->lang[\'settings_display\']}
    {$ibforums->lang[\'settings_viewsig\']}{$data[SIG]}
    {$ibforums->lang[\'settings_viewimg\']}{$data[IMG]}
    {$ibforums->lang[\'settings_viewava\']}{$data[AVA]}
    {$ibforums->lang[\'settings_dopopup\']}{$data[POP]}
    {$ibforums->lang[\'hide_session_txt\']}{$data[SESS]}
    {$ibforums->lang[\'pp_number_posts\']}
    {$ibforums->lang[\'pp_number_topics\']}
    lang[\'settings_submit\']}\' class=\'forminput\'>
    {$ibforums->lang[\'privacy_settings\']}
    {$ibforums->lang[\'hide_email\']}
    {$ibforums->lang[\'admin_send\']}
    {$ibforums->lang[\'board_prefs\']}
    {$ibforums->lang[\'send_full_msg\']}
    {$ibforums->lang[\'pm_reminder\']}
    {$ibforums->lang[\'auto_track\']}
    \n \n
    {$ibforums->lang[\'forum_subs_header\']}
    \n \'>\n \n \n \n \n \n \n \n', 'forum_subs_header', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n', 'forum_subs_row', '$data', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'forum_subs_none', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n\n \n\n
     {$ibforums->lang[\'ft_forum\']}{$ibforums->lang[\'ft_topics\']}{$ibforums->lang[\'ft_posts\']}{$ibforums->lang[\'ft_last_post\']}
    {$data[\'folder_icon\']}\n base_url}&act=SF&f={$data[\'id\']}\'>{$data[\'name\']}\n
    {$data[\'description\']}\n

    [ base_url}&act=UserCP&CODE=51&f={$data[\'id\']}\'>{$ibforums->lang[\'ft_unsub\']} ]\n
    {$data[\'topics\']}{$data[\'posts\']}{$data[\'last_post\']}
    {$ibforums->lang[\'in\']} {$data[\'last_topic\']}
    {$ibforums->lang[\'by\']} {$data[\'last_poster\']}
    {$ibforums->lang[\'forum_subs_none\']}
    base_url}&act=UserCP&CODE=51&f=all\'>{$ibforums->lang[\'ft_unsub_all\']}
    \n
    {$ibforums->lang[\'subs_header\']}\n
    \n \n \n session_id}\'>\n
    \n \'>\n \n \n \n \n \n \n \n \n', 'subs_header', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n \n \n', 'subs_row', '$data', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'subs_none', '', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n', 'subs_forum_row', '$fid, $fname', 1035406251, 0);||~&~||(1, 'skin_ucp', '\n\n \n\n\n
     {$ibforums->lang[\'subs_topic\']}{$ibforums->lang[\'subs_replies\']}{$ibforums->lang[\'subs_view\']}{$ibforums->lang[\'subs_last_post\']}
    {$data[\'folder_icon\']}vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[\'forum_id\']}&t={$data[\'tid\']}\'>{$data[\'title\']} ( vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?s={$ibforums->session_id}&act=ST&f={$data[\'forum_id\']}&t={$data[\'tid\']}\' target=\'_blank\'>{$ibforums->lang[\'new_window\']} )
    {$data[\'description\']}{$ibforums->lang[\'subs_start\']} {$data[\'start_date\']}
    {$data[\'posts\']}{$data[\'views\']}{$data[\'last_post_date\']}
    {$ibforums->lang[\'subs_by\']} {$data[\'last_poster\']}
    {$ibforums->lang[\'subs_none\']}
    base_url}&act=SF&f=$fid\'>$fname
    lang[\'subs_delete\']}\'>  {$ibforums->lang[\'with_selected\']}
    \n
    \n\' cellpadding=\'2\' cellspacing=\'0\' align=\'center\'>\n\n \n\n\n \n\n
    $text
    \n
    base_url}&act=UserCP&CODE=26\' method=\'post\'>\n {$ibforums->lang[\'show_topics_from\']} \n lang[\'jmp_go\']}\'>\n
    \n
    \n
    \' align=\'center\'>\n \n \n \n \n
    \n
    \n \n
    \n
    {$data}
    \n
    \n', 'forum_jump', '$data, $menu_extra=""', 1035406251, 0);||~&~||||~&~|| \ No newline at end of file +(1, 'skin_boards', '\n {$total} {$ibforums->lang[\'whoschatting_total\']} {$ibforums->lang[\'whoschatting_loadchat\']}\n \n \n <{F_ACTIVE}>\n \n {$names}
    $txt
    \n \n ', 'whoschatting_show', '$total, $names, $link, $txt', 1035406235, 0);||~&~||(1, 'skin_boards', '\n {$ibforums->lang[\'whoschatting_total\']} {$ibforums->lang[\'whoschatting_loadchat\']}\n \n \n <{F_ACTIVE}>\n \n {$ibforums->lang[\'whoschatting_none\']}\n \n ', 'whoschatting_empty', '$link', 1035406235, 0);||~&~||(1, 'skin_boards', '{$ibforums->base_url}act=chat', 'whoschatting_inline_link', '', 1035406235, 0);||~&~||(1, 'skin_boards', 'javascript:chat_pop({$ibforums->vars[\'chat_width\']}, {$ibforums->vars[\'chat_height\']});', 'whoschatting_popup_link', '', 1035406235, 0);||~&~||(1, 'skin_boards', ',', 'active_list_sep', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n
    \n \n
    \n
    \n
    {$ibforums->lang[\'board_stats\']}
    \n ', 'stats_header', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n \n ', 'ActiveUsers', '$active', 1035406235, 0);||~&~||(1, 'skin_boards', '{$ibforums->lang[\'oul_show_more\']} base_url}act=Online&CODE=listall&sort_key=click\'>{$ibforums->lang[\'oul_click\']}, base_url}act=Online&CODE=listall&sort_key=name&sort_order=asc&show_mem=reg\'>{$ibforums->lang[\'oul_name\']}', 'active_user_links', '', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n ', 'ShowStats', '$text', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n ', 'birthdays', '$birthusers="", $total="", $birth_lang=""', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n \n \n \n \n ', 'calendar_events', '$events = ""', 1035406235, 0);||~&~||(1, 'skin_boards', '
    $active[TOTAL] {$ibforums->lang[\'active_users\']}
    <{F_ACTIVE}>\n {$active[GUESTS]} {$ibforums->lang[\'guests\']}, $active[MEMBERS] {$ibforums->lang[\'public_members\']} $active[ANON] {$ibforums->lang[\'anon_members\']}\n
    {$active[NAMES]}
    \n {$active[\'links\']}\n
    {$ibforums->lang[\'board_stats\']}
    <{F_STATS}>$text
    {$ibforums->lang[\'most_online\']}
    {$ibforums->lang[\'birthday_header\']}
    <{F_ACTIVE}>$total $birth_lang
    $birthusers
    {$ibforums->lang[\'calender_f_title\']}
    <{F_ACTIVE}>$events
    \n
    \n ', 'stats_footer', '', 1035406235, 0);||~&~||(1, 'skin_boards', '
    \n ', 'bottom_links', '', 1035406235, 0);||~&~||(1, 'skin_boards', '
    \n
    <{CAT_IMG}> {$Data[\'name\']}
    \n \n \n \n \n \n \n \n ', 'CatHeader_Expanded', '$Data', 1035406235, 0);||~&~||(1, 'skin_boards', '
    \n
    \n
    {$ibforums->lang[\'cat_name\']}{$ibforums->lang[\'topics\']}{$ibforums->lang[\'replies\']}{$ibforums->lang[\'last_post_info\']}
    \n \n \n \n \n \n \n ', 'subheader', '', 1035406235, 0);||~&~||(1, 'skin_boards', ' \n \n \n
    {$ibforums->lang[\'cat_name\']}{$ibforums->lang[\'topics\']}{$ibforums->lang[\'replies\']}{$ibforums->lang[\'last_post_info\']}
     
    \n
    \n
    ', 'end_this_cat', '', 1035406235, 0);||~&~||(1, 'skin_boards', '', 'end_all_cats', '', 1035406235, 0);||~&~||(1, 'skin_boards', '{$ibforums->vars[\'board_name\']} {$ibforums->lang[\'newslink\']} base_url}showtopic=$tid\'>$title
    ', 'newslink', '$fid="", $title="", $tid=""', 1035406235, 0);||~&~||(1, 'skin_boards', '
    \n {$ibforums->lang[\'welcome_back_text\']} $lastvisit\n
    ', 'PageTop', '$lastvisit', 1035406235, 0);||~&~||(1, 'skin_boards', '
    \n
    {$ibforums->lang[\'qli_title\']}\n\n\nlang[\'qli_go\']}\' />\n
    \n
    ', 'quick_log_in', '', 1035406235, 0);||~&~||(1, 'skin_boards', 'base_url}act=Login&CODE=04&f={$id}\' title=\'{$ibforums->lang[\'bi_markread\']}\'>{$img}', 'forum_img_with_link', '$img, $id', 1035406235, 0);||~&~||(1, 'skin_boards', 'base_url}act=Login&CODE=04&f={$id}&i=1\' title=\'{$ibforums->lang[\'bi_markallread\']}\'>{$img}', 'subforum_img_with_link', '$img, $id', 1035406235, 0);||~&~||(1, 'skin_boards', ' \n {$info[\'img_new_post\']}\n {$info[\'name\']}
    {$info[\'description\']}
    {$info[\'moderator\']}
    \n {$info[\'topics\']}\n {$info[\'posts\']}\n {$info[\'last_post\']}
    {$ibforums->lang[\'in\']}: {$info[\'last_unread\']}{$info[\'last_topic\']}
    {$ibforums->lang[\'by\']}: {$info[\'last_poster\']}\n ', 'ForumRow', '$info', 1035406235, 0);||~&~||(1, 'skin_boards', '\n \n <{BR_REDIRECT}>\n {$info[\'name\']}
    {$info[\'description\']}\n -\n -\n {$ibforums->lang[\'rd_hits\']}: {$info[\'redirect_hits\']}\n \n ', 'forum_redirect_row', '$info', 1035406235, 0);||~&~||(1, 'skin_boards', 'base_url}showtopic=$tid&view=getlastpost\' title=\'{$ibforums->lang[\'tt_golast\']}\'><{LAST_POST}>', 'forumrow_lastunread_link', '$fid, $tid', 1035406235, 0);||~&~||(1, 'skin_buddy', '', 'buddy_js', '', 1035406235, 0);||~&~||(1, 'skin_buddy', '{$ibforums->lang[\'new_posts\']}\n
    \n {$ibforums->lang[\'my_replies\']}', 'build_away_msg', '', 1035406235, 0);||~&~||(1, 'skin_buddy', '( {$ibforums->lang[\'view_link\']} )', 'append_view', '$url=""', 1035406235, 0);||~&~||(1, 'skin_buddy', '
    \n
    {$ibforums->lang[\'page_title\']}   [ -  + ]
    \n
    {$ibforums->lang[\'while_away\']}
    \n

    {$away_text}

    \n
    {$ibforums->lang[\'show_me\']}
    \n

    \n · {$ibforums->lang[\'sm_forum_leaders\']}\n
    · {$ibforums->lang[\'sm_todays_posts\']}\n
    · {$ibforums->lang[\'sm_today_posters\']}\n
    · {$ibforums->lang[\'sm_all_posters\']}\n
    · {$ibforums->lang[\'sm_my_last_posts\']}\n

    \n
    {$ibforums->lang[\'search_forums\']}
    \n
    \n

    \n

    \n  lang[\'go\']}\' />\n
    \n

    \n
    \n \n
    {$ibforums->lang[\'search_help\']}
    \n
    \n

    \n

    \n  lang[\'go\']}\' />\n
    \n

    \n
    \n
    \n
    ', 'main', '$away_text=""', 1035406235, 0);||~&~||(1, 'skin_buddy', '
    \n
    \n
    {$ibforums->lang[\'page_title\']}
    \n
    {$ibforums->lang[\'log_in_needed\']}
    \n
    \n {$ibforums->lang[\'no_guests\']}\n

    \n
    \n {$ibforums->lang[\'log_in\']}\n

    \n {$ibforums->lang[\'lin_name\']}
    \n
    \n {$ibforums->lang[\'lin_pass\']}
    \n
    \n lang[\'log_in\']}\' class=\'forminput\'>\n
    \n

    \n {$ibforums->lang[\'reg_text\']}\n

    \n
    {$ibforums->lang[\'reg_link\']}
    \n
    \n
    \n\n
    ', 'login', '', 1035406235, 0);||~&~||(1, 'skin_buddy', '', 'closelink', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n\n\n \n', 'table_top', '$data', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n \n\n
      $data
    \n\n
    \n
    ', 'calendar_end_form', '$data', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    base_url}act=calendar&code=addnewevent\' method=\'post\' name=\'REPLIER\' onSubmit=\'return ValidateForm()\'>', 'calendar_start_form', '', 1035406235, 0);||~&~||(1, 'skin_calendar', 'base_url}act=calendar&code=doedit&eventid=$eventid\' method=\'post\' name=\'REPLIER\' onsubmit=\'return ValidateForm()\'>', 'calendar_start_edit_form', '$eventid', 1035406235, 0);||~&~||(1, 'skin_calendar', ' \n {$ibforums->lang[\'calendar_title\']}\n \n ', 'calendar_event_title', '$data=""', 1035406235, 0);||~&~||(1, 'skin_calendar', ' \n  {$ibforums->lang[\'calendar_delete_box\']}\n ', 'calendar_delete_box', '', 1035406235, 0);||~&~||(1, 'skin_calendar', ' \n {$ibforums->lang[\'calendar_event_date\']}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'fv_range_ends\']}    
    {$ibforums->lang[\'fv_bgcolor\']}{$cols[\'bg\']}
    {$ibforums->lang[\'fv_font\']}{$cols[\'ft\']}
    \n
    \n
    {$ibforums->lang[\'fv_hidden\']}
    \n
    \n
    \n {$ibforums->lang[\'fv_recur_every\']} \n {$ibforums->lang[\'fv_until\']}   \n
    \n
    {$ibforums->lang[\'fv_hidden\']}
    \n
    \n \n ', 'calendar_choose_date', '$days, $months, $years, $end_days, $end_months, $end_years, $recur_days, $recur_unit, $div, $checked, $cols, $recend', 1035406235, 0);||~&~||(1, 'skin_calendar', ' \n {$ibforums->lang[\'calendar_event_type\']}\n \n ', 'calendar_event_type', '$pub_select="", $priv_select=""', 1035406235, 0);||~&~||(1, 'skin_calendar', ' \n {$ibforums->lang[\'calendar_group_filter\']}\n \n ', 'calendar_admin_group_box', '$groups', 1035406235, 0);||~&~||(1, 'skin_calendar', '', 'cal_edit_del_button', '$id', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    {$event[\'title\']} ($event_type)
    \n \n \n \n \n \n \n \n \n \n
    base_url}showuser={$member[\'id\']}\'>{$member[\'name\']}
    {$ibforums->lang[\'event_date\']} {$event[\'mday\']} {$event[\'month_text\']} {$event[\'year\']} $date_ends ($type)
    $edit_button
    {$member[\'avatar\']}
    {$ibforums->lang[\'group\']} {$member[\'g_title\']}
    {$ibforums->lang[\'posts\']} {$member[\'posts\']}
    {$ibforums->lang[\'joined\']} {$member[\'joined\']}
    {$event[\'event_text\']}
    ', 'cal_show_event', '$event, $member, $event_type, $edit_button="", $type, $date_ends=""', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n
    \n
    {$ibforums->lang[\'cal_title_events\']}
    ', 'cal_page_events_start', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n
    ', 'cal_page_events_end', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    {$ibforums->lang[\'cal_birthdays\']}
    \n
    \n
      ', 'cal_birthday_start', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    • base_url}showuser=$uid\'>$uname ($age)
    • ', 'cal_birthday_entry', '$uid, $uname, $age=""', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    \n
    ', 'cal_birthday_end', '', 1035406235, 0);||~&~||(1, 'skin_calendar', 'base_url}act=calendar\' method=\'post\'>\n\n
    \n\n
    \n
    \n
    \n \n
    {$ibforums->lang[\'month_jump\']}    lang[\'form_submit_show\']}\' class=\'forminput\' />
    \n
    \n
    \n
    ', 'cal_main_content', '$month, $year, $prev, $next', 1035406235, 0);||~&~||(1, 'skin_calendar', '$day', 'cal_day_bit', '$day', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n \n ', 'cal_new_row', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    ', 'cal_blank_cell', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n
    $month_day
    $events\n ', 'cal_date_cell', '$month_day, $events=""', 1035406235, 0);||~&~||(1, 'skin_calendar', '\n
    $month_day
    \n $events\n ', 'cal_date_cell_today', '$month_day, $events=""', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    ', 'cal_events_start', '', 1035406235, 0);||~&~||(1, 'skin_calendar', '·base_url}act=calendar&$link\'>$text
    ', 'cal_events_wrap', '$link, $text', 1035406235, 0);||~&~||(1, 'skin_calendar', '', 'cal_events_wrap_range', '$link, $text, $ft="", $bg=""', 1035406235, 0);||~&~||(1, 'skin_calendar', '· base_url}act=calendar&$link\' title=\'{$ibforums->lang[\'tbt_recur\']}\'>$text
    ', 'cal_events_wrap_recurring', '$link, $text', 1035406235, 0);||~&~||(1, 'skin_calendar', '
    ', 'cal_events_end', '', 1035406235, 0);||~&~||(1, 'skin_csite', ' · $title', 'rules_link', '$url="", $title=""', 1035406235, 0);||~&~||(1, 'skin_csite', '     base_url}act=chat\'>{$ibforums->lang[\'live_chat\']}', 'show_chat_link_inline', '', 1035406235, 0);||~&~||(1, 'skin_csite', '     {$ibforums->lang[\'live_chat\']}', 'show_chat_link_popup', '', 1035406235, 0);||~&~||(1, 'skin_csite', '', 'csite_javascript', '', 1035406235, 0);||~&~||(1, 'skin_csite', '', 'csite_css_inline', '$css=""', 1035406235, 0);||~&~||(1, 'skin_csite', ',', 'csite_sep_char', '', 1035406235, 0);||~&~||(1, 'skin_csite', '', 'csite_css_external', '$css, $img', 1035406235, 0);||~&~||(1, 'skin_csite', '· $name
    ', 'tmpl_links_wrap', '$link="", $name=""', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'wbox_welcome\']}, $name
    \n \n
    \n
    \n', 'tmpl_welcomebox_member', '$pm_string="",$last_visit="", $name="", $return=""', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'wbox_welcome\']}, {$ibforums->lang[\'wbox_guest_name\']}
    \n
    \n $top_string\n

    · {$ibforums->lang[\'wbox_getnewposts\']}\n

    {$ibforums->lang[\'wbox_g_username\']}\n
    \n
    {$ibforums->lang[\'wbox_g_password\']}\n
    \n
    lang[\'wbox_g_login\']}\' />\n
    \n
    \n
    ', 'tmpl_welcomebox_guest', '$top_string, $return', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    base_url}act=Search&CODE=01&forums=all\' method=\'post\' name=\'search\'>\n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'search_title\']}
    \n \n
    \n
    ', 'tmpl_search', '', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'links_title\']}
    \n
    \n $links\n
    \n
    ', 'tmpl_sitenav', '$links', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'aff_title\']}
    \n
    \n $links\n
    \n
    ', 'tmpl_affiliates', '$links', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'cskin_title\']}
    \n
    \n {$ibforums->lang[\'cskin_text\']}\n
    \n $select\n
    \n lang[\'cskin_go\']}\' />\n
    \n
    \n
    ', 'tmpl_changeskin', '$select', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n \n
    \n $breakdown
    $split
    $names
    \n
    \n
    ', 'tmpl_onlineusers', '$breakdown, $split, $names', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n
    \n \n
    $question
    \n
    ', 'tmpl_poll_header', '$question,$tid', 1035406235, 0);||~&~||(1, 'skin_csite', '$choice\n
    vars[\'img_url\']}/bar_left.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\' />vars[\'img_url\']}/bar.gif\' border=\'0\' width=\'$width\' height=\'11\' align=\'middle\' alt=\'\' />vars[\'img_url\']}/bar_right.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\' />\n
    ', 'tmpl_poll_result_row', '$votes, $id, $choice, $percent, $width', 1035406235, 0);||~&~||(1, 'skin_csite', ' $choice\n
    ', 'tmpl_poll_choice_row', '$id, $choice', 1035406235, 0);||~&~||(1, 'skin_csite', '\n · $total\n
    · $vote\n
    · {$ibforums->lang[\'poll_discuss\']}\n
    \n
    \n
    \n
    ', 'tmpl_poll_footer', '$vote, $total, $tid', 1035406235, 0);||~&~||(1, 'skin_csite', 'lang[\'poll_vote\']}\' class=\'codebuttons\' />', 'tmpl_poll_vote', '', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'discuss_title\']}
    \n $posts\n
    ', 'tmpl_latestposts', '$posts', 1035406235, 0);||~&~||(1, 'skin_csite', '\n
    \n base_url}showuser=$mid\' style=\'text-decoration:none\'>$mname @ $date\n
    {$ibforums->lang[\'recent_read\']}: $views   {$ibforums->lang[\'recent_comments\']}: $posts\n
    ', 'tmpl_topic_row', '$tid, $title, $posts, $views, $mid, $mname, $date', 1035406235, 0);||~&~||(1, 'skin_csite', '
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'recent_title\']}
    \n $articles\n
    ', 'tmpl_recentarticles', '$articles', 1035406235, 0);||~&~||(1, 'skin_csite', '{$ibforums->lang[\'article_comment\']}', 'tmpl_comment_link', '$tid', 1035406235, 0);||~&~||(1, 'skin_csite', '...{$ibforums->lang[\'article_readmore\']}', 'tmpl_readmore_link', '$tid', 1035406235, 0);||~&~||(1, 'skin_csite', '$articles', 'tmpl_articles', '$articles', 1035406235, 0);||~&~||(1, 'skin_csite', '', 'tmpl_skin_select_bottom', '', 1035406235, 0);||~&~||(1, 'skin_csite', '\n\n \n\n\n \n\n\n \n \n\n\n \n\n
     {$entry[\'title\']}
    $top_string
    {$entry[\'avatar\']}{$entry[\'post\']} $read_more
    \n $bottom_string\n   Print\n email\n
    \n
    ', 'tmpl_articles_row', '$entry, $bottom_string, $read_more, $top_string', 1035406235, 0);||~&~||(1, 'skin_csite', '$avatar', 'tmpl_wrap_avatar', '$avatar', 1035406235, 0);||~&~||(1, 'skin_csite', '
    [ DB Queries: $queries ] [ Execution Time: $time ]
    ', 'tmpl_debug', '$queries, $time', 1035406235, 0);||~&~||(1, 'skin_csite', '\n\n\n \n \n \n \n \n <!--CS.TEMPLATE.TITLE-->\n \n \n\n\n\n\n', 'csite_skeleton_template', '', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n
    $title
    \n
    $body
    \n
    ', 'board_rules', '$title="", $body=""', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n
    {$ibforums->lang[\'errors_found\']}
    \n
    $data
    \n
    \n
    ', 'errors', '$data', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'chat_title\']}
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'chat_help\']}
    \n
    \n {$ibforums->lang[\'chat_help_text\']}\n
    \n
    ', 'chat_inline', '$acc_no, $lang, $w, $h, $user="",$pass=""', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n \'>\n \n \n \n \n \n \n
    ', 'chat_pop', '$acc_no, $lang, $w, $h, $user="",$pass=""', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'report_title\']}
    \n
     
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'report_topic\']}base_url}showtopic=$tid&st=$st&#entry$pid\'>$topic_title\n
    {$ibforums->lang[\'report_message\']}\n
    \n
    \n
    \n
    ', 'report_form', '$fid, $tid, $pid, $st, $topic_title', 1035406235, 0);||~&~||(1, 'skin_emails', '\n \n \n {$ibforums->lang[\'msn_name\']}\n \n \n \n {$ibforums->lang[\'msn_send_msg\']}\n \n \n {$ibforums->lang[\'msn_add_contact\']}\n ', 'msn_body', '$msnname', 1035406235, 0);||~&~||(1, 'skin_emails', '\n {$ibforums->lang[\'yahoo_name\']}\n \n \n \n {$ibforums->lang[\'yahoo_status\']}\n \n \n \n {$ibforums->lang[\'yahoo_send_msg\']}\n \n \n {$ibforums->lang[\'yahoo_view_profile\']}\n ', 'yahoo_body', '$yahoo', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n \n \n \n {$ibforums->lang[\'name\']}\n member[\'name\']}\' size=\'40\' class=\'forminput\' onMouseOver="this.focus()" onFocus="this.select()">\n \n \n {$ibforums->lang[\'email\']}\n member[\'email\']}\' size=\'40\' class=\'forminput\' onMouseOver="this.focus()" onFocus="this.select()">\n \n \n {$ibforums->lang[\'msg\']}\n \n \n \n lang[\'submit\']}\' class=\'forminput\'>\n \n
    ', 'icq_body', '$data', 1035406235, 0);||~&~||(1, 'skin_emails', '\n \n \n \n \n  \n \n ', 'end_table', '', 1035406235, 0);||~&~||(1, 'skin_emails', '\' align=\'center\'>\n \n \n \n ', 'show_no_matches', '', 1035406235, 0);||~&~||(1, 'skin_forum', '$posts', 'who_link', '$tid, $posts', 1035406235, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n \n \n \n \n \n ', 'RenderRow', '$data', 1035406235, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n ', 'render_pinned_start', '', 1035406235, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n ', 'render_pinned_end', '', 1035406235, 0);||~&~||(1, 'skin_forum', '\n \n \n \n \n \n \n \n \n \n ', 'render_pinned_row', '$data', 1035406235, 0);||~&~||(1, 'skin_global', ' \n \n \n \n $title\n $css\n \n \n \n
    \n $text\n
    \n \n', 'pop_up_window', '$title, $css, $text', 1035406235, 0);||~&~||(1, 'skin_global', '{$ibforums->lang[\'tpl_pages\']}', 'make_page_jump', '$tp="", $pp="", $ub=""', 1035406235, 0);||~&~||(1, 'skin_global', '

    --------------------
    \n
    $sig
    ', 'signature_separator', '$sig=""', 1035406235, 0);||~&~||(1, 'skin_global', '\n
    <{F_RULES}> {$rules[\'title\']}

    {$rules[\'body\']}
    \n
    \n ', 'forum_show_rules_full', '$rules', 1035406235, 0);||~&~||(1, 'skin_global', '\n \n \n \n ', 'forum_show_rules_link', '$rules', 1035406235, 0);||~&~||(1, 'skin_global', '', 'css_inline', '$css=""', 1035406235, 0);||~&~||(1, 'skin_global', '', 'css_external', '$css, $img', 1035406235, 0);||~&~||(1, 'skin_global', '
    \n \n \n ', 'pager_header', '$data', 1035406235, 0);||~&~||(1, 'skin_emails', '\n
    {$data[TITLE]}
    \n
    Download AIMAIM Remote
    Send me an Instant Message
    Add me to Your Buddy List
    Add Remote to Your Page
    Download AOL Instant Messenger

    \n', 'aol_body', '$data', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n\n\nsession_id}\'>\ninput[\'st\']}\'>\ninput[\'f\']}\'>\ninput[\'t\']}\'>\n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'title\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'send_lang\']}$lang
    {$ibforums->lang[\'to_name\']}
    {$ibforums->lang[\'to_email\']}
    {$ibforums->lang[\'subject\']}
    {$ibforums->lang[\'message\']}\n
    \n
    \n
    \n
    ', 'forward_form', '$title, $text, $lang', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n
    {$ibforums->lang[\'send_email_to\']} {$data[NAME]}
    \n
    {$ibforums->lang[\'show_address_text\']}\n
    \n >>{$ibforums->lang[\'send_email_to\']} {$data[NAME]}\n
    \n
    ', 'show_address', '$data', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n\n\n\n
    {$ibforums->lang[\'imp_text\']}
    \n
    \n
    \n
    {$ibforums->lang[\'send_title\']}
    \n
    {$ibforums->lang[\'send_email_to\']} {$data[\'NAME\']}
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'subject\']}
    {$ibforums->lang[\'message\']}

    {$ibforums->lang[\'msg_txt\']}
    \n
    \n
    \n
    ', 'send_form', '$data', 1035406235, 0);||~&~||(1, 'skin_emails', '
    \n
    {$ibforums->lang[\'email_sent\']}
    \n
    {$ibforums->lang[\'email_sent_txt\']} $member_name
    \n
    ', 'sent_screen', '$member_name', 1035406235, 0);||~&~||(1, 'skin_emails', '\' align=\'center\'>\n \n \n \n
    $data
    ', 'forum_jump', '$data', 1035406235, 0);||~&~||(1, 'skin_forum', '{$ibforums->lang[\'multi_page_forum\']}', 'show_page_jump', '$total, $pp, $qe', 1035406235, 0);||~&~||(1, 'skin_forum', '
    base_url};act=SF&f=$data\' method=\'post\'>\n\n\n\nsession_id}\'>\n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'need_password\']}
    \n
    {$ibforums->lang[\'need_password_txt\']}
    \n
    \n {$ibforums->lang[\'enter_pass\']}\n
    \n \n
    \n
    lang[\'f_pass_submit\']}\' class=\'forminput\' />
    \n
    \n
    ', 'Forum_log_in', '$data', 1035406235, 0);||~&~||(1, 'skin_forum', '| base_url}act=Track&f=$fid&type=forum\'>{$ibforums->lang[\'ft_title\']}', 'show_sub_link', '$fid', 1035406235, 0);||~&~||(1, 'skin_forum', '
    \n{$ibforums->lang[\'post_modq\']} base_url}act=modcp\'>{$ibforums->lang[\'post_click\']}', 'show_mod_link', '$fid', 1035406235, 0);||~&~||(1, 'skin_forum', '\n\n\n\n\n \n \n\n
    {$data[\'SHOW_PAGES\']}base_url}act=Post&CODE=00&f={$data[\'id\']}\'><{A_POST}>{$data[POLL_BUTTON]}
    \n
    \n
    base_url}act=SF&f={$data[\'id\']}&st={$ibforums->input[\'st\']}\' method=\'post\'>\n
    \n
    <{CAT_IMG}> {$data[\'name\']}
    \n \n \n \n \n \n \n \n \n \n \n ', 'PageTop', '$data', 1035406235, 0);||~&~||(1, 'skin_forum', '
    vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'20\' height=\'1\' />vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'20\' height=\'1\' />{$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    \n \n \n \n
    {$ibforums->lang[\'showing_text\']}{$ibforums->lang[\'sort_text\']} lang[\'sort_submit\']}\' class=\'forminput\' />
    \n
    \n
    \n
    \n\n\n \n \n\n
    {$data[\'SHOW_PAGES\']}base_url}act=Post&CODE=00&f={$data[\'id\']}\'><{A_POST}>{$data[POLL_BUTTON]}
    \n
    \n
    \n <{B_NEW}>  {$ibforums->lang[\'pm_open_new\']}\n
    <{B_NORM}>  {$ibforums->lang[\'pm_open_no\']}\n
    <{B_HOT}>  {$ibforums->lang[\'pm_hot_new\']}\n
    <{B_HOT_NN}>  {$ibforums->lang[\'pm_hot_no\']}\n
    \n
    \n <{B_POLL}>  {$ibforums->lang[\'pm_poll\']}\n
    <{B_POLL_NN}>  {$ibforums->lang[\'pm_poll_no\']}\n
    <{B_LOCKED}>  {$ibforums->lang[\'pm_locked\']}\n
    <{B_MOVED}>  {$ibforums->lang[\'pm_moved\']}\n
    \n
    \n
    base_url}\' method=\'post\' name=\'search\'>\n \n \n \n \n \n {$ibforums->lang[\'search_forum\']} \n lang[\'enter_keywords\']}\' onfocus=\'this.value = "";\' />lang[\'search_go\']}\' class=\'forminput\' />\n
    \n
    \n
    \n {$data[FORUM_JUMP]}\n
    \n
    \n
    \n\n
    ', 'TableEnd', '$data', 1035406235, 0);||~&~||(1, 'skin_forum', '
    \n
    {$rules[\'title\']}
    \n
    {$rules[\'body\']}
    \n \n
    ', 'show_rules', '$rules', 1035406235, 0);||~&~||(1, 'skin_forum', '
    $title$pages
    ', 'page_title', '$title="", $pages=""', 1035406235, 0);||~&~||(1, 'skin_forum', '
    {$ibforums->lang[\'active_users_title\']} ({$ibforums->lang[\'active_users_detail\']})
    \n
    {$ibforums->lang[\'active_users_members\']} {$active[\'names\']}
    ', 'forum_active_users', '$active=array()', 1035406235, 0);||~&~||(1, 'skin_forum', '
    \n
    \n {$ibforums->lang[\'no_topics\']}\n

    \n
    {$data[\'folder_img\']}{$data[\'topic_icon\']}\n {$data[\'go_new_post\']}{$data[\'prefix\']} {$data[\'title\']} {$data[PAGES]}\n
    {$data[\'description\']}
    {$data[\'starter\']}{$data[\'posts\']}{$data[\'views\']}{$data[\'last_post\']}
    base_url}showtopic={$data[\'tid\']}&view=getlastpost\'>{$data[\'last_text\']} {$data[\'last_poster\']}
      {$ibforums->lang[\'pinned_start\']}
      {$ibforums->lang[\'regular_topics\']}
    {$data[\'folder_img\']}{$data[\'topic_icon\']}\n {$data[\'go_new_post\']}{$data[\'prefix\']} base_url}showtopic={$data[\'tid\']}\' class=\'linkthru\' title=\'{$ibforums->lang[\'topic_started_on\']} {$data[\'start_date\']}\'>{$data[\'title\']} {$data[PAGES]}\n
    {$data[\'description\']}
    {$data[\'starter\']}{$data[\'posts\']}{$data[\'views\']}{$data[\'last_post\']}
    base_url}showtopic={$data[\'tid\']}&view=getlastpost\'>{$data[\'last_text\']} {$data[\'last_poster\']}
    \n \n \n \n \n ', 'Member_bar', '$msg, $ad_link, $mod_link, $val_link', 1035406235, 0);||~&~||(1, 'skin_global', '\n \n \n \n \n ', 'Guest_bar', '', 1035406235, 0);||~&~||(1, 'skin_global', '\n \n \n \n ', 'member_bar_disabled', '', 1035406235, 0);||~&~||(1, 'skin_global', '\n \n \n \n \n ', 'Member_no_usepm_bar', '$ad_link, $mod_link, $val_link', 1035406235, 0);||~&~||(1, 'skin_global', '\n \n\n\n\n\n\n \n \n\n\n<% MEMBER BAR %>\n
    ', 'BoardHeader', '$time=""', 1035406235, 0);||~&~||(1, 'skin_global', ' · $title', 'rules_link', '$url="", $title=""', 1035406235, 0);||~&~||(1, 'skin_global', '     base_url}act=module&module=toplist\'>{$ibforums->lang[\'tb_toplist\']}', 'show_tsl_link_inline', '', 1035406235, 0);||~&~||(1, 'skin_global', '     base_url}act=chat\'>{$ibforums->lang[\'live_chat\']}', 'show_chat_link_inline', '', 1035406235, 0);||~&~||(1, 'skin_global', '     {$ibforums->lang[\'live_chat\']}', 'show_chat_link_popup', '', 1035406235, 0);||~&~||(1, 'skin_global', '
    <{F_NAV}> ', 'start_nav', '', 1035406235, 0);||~&~||(1, 'skin_global', '
    \n
    ', 'end_nav', '', 1035406235, 0);||~&~||(1, 'skin_global', '\n\n{$ibforums->lang[\'stand_by\']}\n\n\n$css\n\n\n\n\n \n\n
    \n \n \n \n \n
    \n {$ibforums->lang[\'thanks\']}, \n $Text

    \n {$ibforums->lang[\'transfer_you\']}

    \n ({$ibforums->lang[\'dont_wait\']})\n
    \n
    \n\n', 'Redirect', '$Text, $Url, $css', 1035406235, 0);||~&~||(1, 'skin_global', '', 'PM_popup', '', 1035406235, 0);||~&~||(1, 'skin_global', ' · vars[\'board_url\']}/admin.{$ibforums->vars[\'php_ext\']}\' target=\'_blank\'>{$ibforums->lang[\'admin_cp\']}', 'admin_link', '', 1035406235, 0);||~&~||(1, 'skin_global', '· base_url}act=modcp&forum={$ibforums->input[\'f\']}\'>{$ibforums->lang[\'mod_cp\']}', 'mod_link', '', 1035406235, 0);||~&~||(1, 'skin_global', ' · base_url}act=Reg&CODE=reval\'>{$ibforums->lang[\'ml_revalidate\']}', 'validating_link', '', 1035406235, 0);||~&~||(1, 'skin_global', '
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\' method=\'post\'>\n\n\nsession_id}\' />\n\n\n
    \n
    {$ibforums->lang[\'er_log_in_title\']}
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'erl_enter_name\']}
    {$ibforums->lang[\'erl_enter_pass\']}
    \n
    lang[\'erl_log_in_submit\']}\' class=\'forminput\' />
    \n
    \n
    ', 'error_log_in', '$q_string', 1035406235, 0);||~&~||(1, 'skin_global', '
    vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}\' method=\'post\'>\n\n\nsession_id}\' />\n\n\n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'offline_title\']}
    \n
    $message
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'erl_enter_name\']}
    {$ibforums->lang[\'erl_enter_pass\']}
    \n
    lang[\'erl_log_in_submit\']}\' class=\'forminput\' />
    \n
    \n
    ', 'board_offline', '$message = ""', 1035406235, 0);||~&~||(1, 'skin_global', '\n
    \n
    vars[\'img_url\']}/nav_m.gif\' alt=\'\' width=\'8\' height=\'8\' /> {$ibforums->lang[\'error_title\']}
    \n
    \n
    \n {$ibforums->lang[\'exp_text\']}

    \n {$ibforums->lang[\'msg_head\']}\n

    \n $message\n

    \n \n \n

    \n {$ibforums->lang[\'er_links\']}\n

    \n · base_url}act=Reg&CODE=10\'>{$ibforums->lang[\'er_lost_pass\']}
    \n · base_url}act=Reg&CODE=00\'>{$ibforums->lang[\'er_register\']}
    \n · base_url}act=Help&CODE=00\'>{$ibforums->lang[\'er_help_files\']}
    \n · {$ibforums->lang[\'er_contact_admin\']}\n
    \n', 'Error', '$message, $ad_email_one="", $ad_email_two=""', 1035406235, 0);||~&~||(1, 'skin_global', '
    \n
    \n{$ibforums->lang[\'err_title\']}\n

    \n{$ibforums->lang[\'err_expl\']}\n
    \n
    \n
    \n
    \nlang[\'err_select\']}\' onclick=\'document.mehform.saved.select()\'>
    \n
    \n\n
    \n
    ', 'error_post_textarea', '$post=""', 1035406235, 0);||~&~||(1, 'skin_help', '
  • base_url}act=Help&CODE=01&HID={$entry[\'id\']}\'>{$entry[\'title\']}
    {$entry[\'description\']}
  • ', 'row', '$entry', 1035406235, 0);||~&~||(1, 'skin_help', '\n
    $text
    \n', 'display', '$text', 1035406235, 0);||~&~||(1, 'skin_help', '\n \n', 'end', '', 1035406235, 0);||~&~||(1, 'skin_help', '\n {$ibforums->lang[\'no_results\']}\n ', 'no_results', '', 1035406235, 0);||~&~||(1, 'skin_help', '
    $two_text
    \n
    \n
    \n\n\n
    \n
    $one_text
    \n
    {$ibforums->lang[\'search_txt\']}   lang[\'submit\']}\' class=\'forminput\' />
    \n
    \n
    \n
    \n
    \n
    $three_text
    \n
    \n
      ', 'start', '$one_text, $two_text, $three_text', 1035406235, 0);||~&~||(1, 'skin_legends', '
      base_url}act=legends&entry=$entry&name=$name&sep=$sep&CODE=finduser_two\'>\n\n\n \n\n\n \n\n\n \n\n
      {$ibforums->lang[\'fu_title\']}
      {$ibforums->lang[\'fu_enter_name\']}



      lang[\'fu_search_but\']}\'>
      {$ibforums->lang[\'fu_close_win\']}
      \n
      ', 'find_user_one', '$entry="", $name="", $sep="comma"', 1035406235, 0);||~&~||(1, 'skin_legends', '
      base_url}entry=$entry&name=$name&sep=$sep&CODE=finduser_two\'>\n\n\n \n\n\n \n\n\n \n\n
      {$ibforums->lang[\'fu_error\']}
      $msg
      {$ibforums->lang[\'fu_back\']} :: {$ibforums->lang[\'fu_close_win\']}
      \n
      ', 'find_user_error', '$msg', 1035406235, 0);||~&~||(1, 'skin_legends', '\n
      \n\n\n \n\n\n \n\n\n \n\n
      {$ibforums->lang[\'fu_title\']}
      {$ibforums->lang[\'fu_add_desc\']}



      lang[\'fu_add_mem\']}\'>
      {$ibforums->lang[\'fu_back\']} :: {$ibforums->lang[\'fu_close_win\']}
      \n
      ', 'find_user_final', '$names="",$entry="", $name="", $sep="line"', 1035406235, 0);||~&~||(1, 'skin_legends', '', 'emoticon_javascript', '', 1035406235, 0);||~&~||(1, 'skin_legends', '
      {$ibforums->lang[\'bbc_intro\']}
      \n
      ', 'bbcode_header', '', 1035406235, 0);||~&~||(1, 'skin_legends', '$tag', 'wrap_tag', '$tag', 1035406235, 0);||~&~||(1, 'skin_legends', '
      \n
      $title
      \n \n \n \n \n ', 'page_header', '$title, $row1, $row2', 1035406235, 0);||~&~||(1, 'skin_legends', '\n \n \n ', 'emoticons_row', '$code, $image, $in="\'", $out="\'"', 1035406235, 0);||~&~||(1, 'skin_legends', '\n \n \n ', 'bbcode_row', '$before, $after', 1035406235, 0);||~&~||(1, 'skin_legends', '
      $row1$row2
      $codevars[\'EMOTICONS_URL\']}/$image\' border=\'0\' valign=\'absmiddle\' alt=\'$image\'>
      $before$after
      \n
      ', 'page_footer', '', 1035406235, 0);||~&~||(1, 'skin_login', '
      \n
      {$ibforums->lang[\'errors_found\']}
      \n
      $data
      \n
      \n
      ', 'errors', '$data', 1035406235, 0);||~&~||(1, 'skin_login', ' \n{$ibforums->lang[\'login_text\']}\n
      \n
      \n{$ibforums->lang[\'forgot_pass\']} vars[\'board_url\']}/index.{$ibforums->vars[\'php_ext\']}?act=Reg&CODE=10\'>{$ibforums->lang[\'pass_link\']}\n
      \n
      \n
      \n\n
      \n
      <{CAT_IMG}> {$ibforums->lang[\'log_in\']}
      \n
      $message
      \n \n \n \n \n \n \n \n \n \n
      {$ibforums->lang[\'enter_name\']}
      {$ibforums->lang[\'enter_pass\']}
      \n
      {$ibforums->lang[\'options\']}
      \n \n \n \n \n \n \n \n \n \n
      {$ibforums->lang[\'cookies\']}{$ibforums->lang[\'cookie_yes\']}
      {$ibforums->lang[\'cookie_no\']}
      {$ibforums->lang[\'privacy\']}{$ibforums->lang[\'anon_name\']}
      \n
      \n
      \n
      ', 'ShowForm', '$message, $referer=""', 1035406235, 0);||~&~||(1, 'skin_mlist', '\n
      base_url}\' method=\'post\'>\n\nsession_id}\' />\n
      {$links[SHOW_PAGES]}
      \n
      \n
      \n
      {$ibforums->lang[\'page_title\']}
      \n \n \n \n \n \n \n \n \n \n \n \n \n ', 'Page_header', '$links', 1035406235, 0);||~&~||(1, 'skin_mlist', '
      \n
      {$links[SHOW_PAGES]}
      ', 'end', '$links', 1035406235, 0);||~&~||(1, 'skin_mlist', 'No results', 'no_results', '', 1035406235, 0);||~&~||(1, 'skin_mlist', '', 'start', '', 1035406235, 0);||~&~||(1, 'skin_mlist', '\n \n \n \n \n \n \n \n \n \n
      {$ibforums->lang[\'member_name\']}{$ibforums->lang[\'member_level\']}{$ibforums->lang[\'member_group\']}{$ibforums->lang[\'member_joined\']}{$ibforums->lang[\'member_posts\']}{$ibforums->lang[\'member_email\']}{$ibforums->lang[\'member_aol\']}{$ibforums->lang[\'member_icq\']}{$ibforums->lang[\'member_photo\']}
      \n {$ibforums->lang[\'photo_only\']} \n
      \n   input[\'name\']}\' />\n
      \n {$ibforums->lang[\'sorting_text\']} lang[\'sort_submit\']}\' class=\'forminput\' />\n
      \n
      \n
      ', 'Page_end', '$checked=""', 1035406235, 0);||~&~||(1, 'skin_mlist', '\n \n {$member[\'name\']}\n {$member[\'pips\']}\n {$member[\'group\']}\n {$member[\'joined\']}\n {$member[\'posts\']}\n {$member[\'member_email\']}\n {$member[\'aim_name\']}\n {$member[\'icq_number\']}\n {$member[\'camera\']}\n \n ', 'show_row', '$member', 1035406235, 0);||~&~||(1, 'skin_mod', '\n\n \n \n\n
      $name$links
      \n
      \n
      <{CAT_IMG}> {$ibforums->lang[\'w_v_title\']}: base_url}showuser=$id\'>$name
      \n
      \n \n \n \n \n ', 'warn_view_header', '$id, $name, $links', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n ', 'warn_view_positive_row', '$date, $content, $puni_name', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n ', 'warn_view_negative_row', '$date, $content, $puni_name', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n ', 'warn_view_none', '', 1035406235, 0);||~&~||(1, 'skin_mod', '
      {$ibforums->lang[\'w_v_warnby\']}{$ibforums->lang[\'w_v_notes\']}
      $puni_name{$ibforums->lang[\'w_v_warned_on\']} $date
      {$ibforums->lang[\'w_v_minus\']}$content
      $puni_name{$ibforums->lang[\'w_v_warned_on\']} $date
      {$ibforums->lang[\'w_v_add\']}$content
      {$ibforums->lang[\'w_v_none\']}
      ', 'warn_view_footer', '', 1035406235, 0);||~&~||(1, 'skin_mod', '
      \n
      <{CAT_IMG}> {$ibforums->lang[\'w_done_t\']}
      \n
       
      \n
      \n {$ibforums->lang[\'w_done_te\']}\n \n
      \n
      ', 'warn_success', '', 1035406235, 0);||~&~||(1, 'skin_mod', '
    • base_url}showforum=$fid\'>{$ibforums->lang[\'w_done_forum\']} $fname
    • \n
    • base_url}showtopic=$tid&st=$st\'>{$ibforums->lang[\'w_done_topic\']} $tname
    • ', 'warn_success_forum', '$fid, $fname, $tid, $tname, $st=0', 1035406235, 0);||~&~||(1, 'skin_mod', '
      \n
      {$ibforums->lang[\'errors_found\']}
      \n
      $data
      \n
      \n
      ', 'warn_errors', '$data', 1035406235, 0);||~&~||(1, 'skin_mod', '
      base_url}&act=warn&CODE=dowarn&mid=$mid&t=$tid&st=$st&type={$ibforums->input[\'type\']}\'>\n\n
      \n
      <{CAT_IMG}> {$ibforums->lang[\'w_warnfor\']} base_url}showuser=$mid\'>$name ( $min < $cur > $max )
      \n
      {$ibforums->lang[\'w_complete\']}
      \n \n \n \n ', 'warn_header', '$mid, $name, $cur=0, $min = 0, $max=10, $key, $tid=\'\',$st=\'\', $type', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n ', 'warn_mod_posts', '$mod_tick, $mod_array, $mod_extra', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n ', 'warn_rem_posts', '$post_tick, $post_array, $post_extra', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n ', 'warn_suspend', '$susp_array, $susp_extra', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n \n \n \n \n \n
      {$ibforums->lang[\'w_adjust_level\']}\n \n
      \n \n
      {$ibforums->lang[\'w_modq\']}\n {$ibforums->lang[\'w_modq_i\']}\n
      {$ibforums->lang[\'w_orfor\']}\n \n $mod_extra\n
      {$ibforums->lang[\'w_resposts\']}\n {$ibforums->lang[\'w_resposts_i\']}\n
      {$ibforums->lang[\'w_orfor\']}\n \n $post_extra\n
      {$ibforums->lang[\'w_suspend\']}\n {$ibforums->lang[\'w_susfor\']} \n $susp_extra\n
      {$ibforums->lang[\'w_reason\']}
      {$ibforums->lang[\'w_reason2\']}
      {$ibforums->lang[\'w_c_subj\']}input[\'subject\']}\' size=\'30\'>
      {$ibforums->lang[\'w_contact\']}
      {$ibforums->lang[\'w_contact2\']}
      \n {$ibforums->lang[\'w_c\']} \n
      \n
      \n
      lang[\'w_submit\']}\' />
      \n
      \n
      ', 'warn_footer', '', 1035406235, 0);||~&~||(1, 'skin_mod', '
      {$ibforums->lang[\'w_restricted\']}', 'warn_restricition_in_place', '', 1035406235, 0);||~&~||(1, 'skin_mod', '
      $words
      ', 'mod_exp', '$words', 1035406235, 0);||~&~||(1, 'skin_mod', '
      \n
    \n', 'end_form', '$action', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n \n \n
    {$ibforums->lang[move_from]} $forum_name {$ibforums->lang[to]}
    {$ibforums->lang[\'leave_link\']}
    ', 'move_form', '$jhtml, $forum_name', 1035406235, 0);||~&~||(1, 'skin_mod', '', 'delete_js', '', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n \n \n
    {$ibforums->lang[edit_f_title]}
    {$ibforums->lang[edit_f_desc]}
    ', 'topictitle_fields', '$title, $desc', 1035406235, 0);||~&~||(1, 'skin_mod', '', 'poll_edit_top', '', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n ', 'poll_entry', '$id, $entry', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n ', 'poll_edit_new_entry', '$id', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n \n
    {$ibforums->lang[\'pe_option\']} $id
    {$ibforums->lang[\'pe_option\']} $id ( {$ibforums->lang[\'pe_unused\']} )
    {$ibforums->lang[\'pe_question\']}
    {$ibforums->lang[\'pe_pollonly\']}
    ', 'poll_select_form', '$poll_question=""', 1035406235, 0);||~&~||(1, 'skin_mod', '
    \n
    $posting_title
    ', 'table_top', '$posting_title', 1035406235, 0);||~&~||(1, 'skin_mod', '
    \n
    {$ibforums->lang[\'th_title\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'th_topic\']}{$data[\'th_topic\']}
    {$ibforums->lang[\'th_desc\']}{$data[\'th_desc\']} 
    {$ibforums->lang[\'th_start_date\']}{$data[\'th_start_date\']}
    {$ibforums->lang[\'th_start_name\']}{$data[\'th_start_name\']}
    {$ibforums->lang[\'th_last_date\']}{$data[\'th_last_date\']}
    {$ibforums->lang[\'th_last_name\']}{$data[\'th_last_name\']}
    {$ibforums->lang[\'th_avg_post\']}{$data[\'th_avg_post\']}
    \n
    ', 'topic_history', '$data', 1035406235, 0);||~&~||(1, 'skin_mod', '
    \n
    \n
    {$ibforums->lang[\'ml_title\']}
    \n \n \n \n \n \n ', 'mod_log_start', '', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n ', 'mod_log_none', '', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n ', 'mod_log_row', '$data', 1035406235, 0);||~&~||(1, 'skin_mod', '
    {$ibforums->lang[\'ml_name\']}{$ibforums->lang[\'ml_desc\']}{$ibforums->lang[\'ml_date\']}
    {$ibforums->lang[\'ml_none\']}
    {$data[\'member\']}{$data[\'action\']}{$data[\'date\']}
    \n
    ', 'mod_log_end', '', 1035406235, 0);||~&~||(1, 'skin_mod', '
    \n
    {$data}
    \n
    ', 'forum_jump', '$data, $menu_extra=""', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'mt_new_title\']}
    {$ibforums->lang[\'mt_new_desc\']}
    {$ibforums->lang[\'st_forum\']}
    \n
    \n
    \n
    \n
    {$ibforums->lang[\'st_post\']}
    ', 'split_body', '$jump=""', 1035406235, 0);||~&~||(1, 'skin_mod', '
    {$row[\'st_top_bit\']}
    \n
    \n {$row[\'post\']}\n
    {$ibforums->lang[\'st_split\']}  
    \n
    ', 'split_row', '$row', 1035406235, 0);||~&~||(1, 'skin_mod', '
    \n
    \n', 'split_end_form', '$action', 1035406235, 0);||~&~||(1, 'skin_mod', '\n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'mt_new_title\']}
    {$ibforums->lang[\'mt_new_desc\']}
    {$ibforums->lang[\'mt_tid\']}
    ', 'merge_body', '$title="", $desc=""', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n\n', 'mm_start', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '', 'mm_entry', '$id, $title', 1035406235, 0);||~&~||(1, 'skin_modcp', '', 'mm_end', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n
    ', 'mod_cp_start', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    base_url}\' method=\'POST\'>\nsession_id}\'>\n\n\n\n\n{$ibforums->lang[\'cp_mod_posts_title2\']} $forumname\n
    $pages\n\n
    \n
    $title
    ', 'modtopicview_start', '$tid,$forumname, $fid, $title', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    \n
    {$ibforums->lang[\'cp_mod_posts_title2\']} $forumname
    \n \n \n \n \n \n \n ', 'modpost_topicstart', '$forumname, $fid', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n ', 'modpost_topicentry', '$title, $tid, $replies, $fid', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    {$ibforums->lang[\'cp_3_title\']}{$ibforums->lang[\'cp_3_replies\']}{$ibforums->lang[\'cp_3_approveall\']}{$ibforums->lang[\'cp_3_viewall\']}
    base_url}act=ST&f=$fid&t=$tid\' target=\'_blank\'>$title$repliesbase_url}act=modcp&f=$fid&tid=$tid&CODE=modtopicapprove\'>{$ibforums->lang[\'cp_3_approveall\']}base_url}act=modcp&f=$fid&tid=$tid&CODE=modtopicview\'>{$ibforums->lang[\'cp_3_viewall\']}
    \n
    ', 'modpost_topicend', '', 1035406235, 0);||~&~||(1, 'skin_modcp', 'base_url}\' method=\'POST\'>\nsession_id}\'>\n\n\n\n{$ibforums->lang[\'cp_mod_topics_title2\']} $forumname\n
    $pages', 'modtopics_start', '$pages,$forumname, $fid', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    \n
    lang[\'cp_1_go\']}\' class=\'forminput\' />
    \n
    \n', 'modtopics_end', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    \n
       $title
    ', 'mod_topic_title', '$title, $topic_id', 1035406235, 0);||~&~||(1, 'skin_modcp', ' \n \n \n \n \n
    {$data[\'member\'][\'name\']}

    {$data[\'member\'][\'avatar\']}
    {$data[\'member\'][\'MEMBER_GROUP\']}
    {$data[\'member\'][\'MEMBER_POSTS\']}
    {$data[\'member\'][\'MEMBER_JOINED\']}
    \n {$ibforums->lang[\'posted_on\']} {$data[\'msg\'][\'post_date\']}

    \n \n {$data[\'msg\'][\'post\']}\n \n
    ', 'mod_postentry', '$data', 1035406235, 0);||~&~||(1, 'skin_modcp', '
      {$ibforums->lang[\'cp_3_postno\']} $pid
    ', 'mod_postentry_checkbox', '$pid', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    \n
    ', 'mod_topic_spacer', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_results\']}\n
    $text
    \n \n ', 'results', '$text', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    \n
    {$ibforums->lang[\'mpt_confirm\']}
    \n
    {$ibforums->lang[\'cp_check_result\']}
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_total_topics\']}$tcount
    {$ibforums->lang[\'cp_total_match\']}$count
    \n
    base_url}$link\' method=\'post\'>\n \n
    \n
    \n
    \n
    ', 'prune_confirm', '$tcount, $count, $link, $link_text, $key', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n
    \n
    {$ibforums->lang[\'cp_prune\']} {$forum[\'name\']}
    \n
    {$ibforums->lang[\'mpt_help\']}
    \n
    {$ibforums->lang[\'cp_prune_text\']}
    \n
    base_url}\' method=\'POST\'>\n session_id}\'>\n \n \n \n \n
    {$ibforums->lang[\'mpt_title\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_action\']}
    {$ibforums->lang[\'cp_prune_days\']}input[\'dateline\']}\' class=\'forminput\' />
    {$ibforums->lang[\'cp_prune_type\']}$select    
    {$ibforums->lang[\'cp_prune_replies\']}input[\'posts\']}\' class=\'forminput\' />
    {$ibforums->lang[\'cp_prune_member\']}input[\'member\']}\' class=\'forminput\' />
    \n
    lang[\'cp_prune_sub1\']}\' class=\'forminput\' />
    \n
    \n
    ', 'prune_splash', '$forum, $forums, $select', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    base_url}act=modcp&CODE=compedit&memberid={$profile[\'id\']}\' method=\'post\'>\n
    \n
    {$ibforums->lang[\'cp_edit_user\']}: {$profile[\'name\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_remove_av\']}
    {$ibforums->lang[\'cp_remove_photo\']}
    {$ibforums->lang[\'cp_edit_website\']}
    {$ibforums->lang[\'cp_edit_location\']}
    {$ibforums->lang[\'cp_edit_interests\']}
    {$ibforums->lang[\'cp_edit_signature\']}
    \n
    lang[\'cp_find_2_submit\']}\' class=\'forminput\' />
    \n
    \n
    ', 'edit_user_form', '$profile', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    base_url}act=modcp&CODE=doedituser\' method=\'post\'>\n
    \n
    {$ibforums->lang[\'cp_edit_user\']}
    \n \n \n \n \n \n
    {$ibforums->lang[\'cp_find_2_user\']}$select
    \n
    lang[\'cp_find_2_submit\']}\' class=\'forminput\' />
    \n
    \n
    ', 'find_two', '$select', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    base_url}act=modcp&CODE=dofinduser\' method=\'post\'>\n
    \n
    {$ibforums->lang[\'cp_edit_user\']}
    \n \n \n \n \n \n
    {$ibforums->lang[\'cp_find_user\']}
    \n
    lang[\'cp_find_submit\']}\' class=\'forminput\' />
    \n
    \n
    ', 'find_user', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    base_url}\' method=\'post\'>\nsession_id}\'>\n\n\n
    \n
    {$ibforums->lang[\'menu_ip\']}
    \n \n \n \n \n \n
    {$ibforums->lang[\'ip_enter\']}\n \n \n
    \n
    lang[\'ip_submit\']}\' class=\'forminput\' />
    \n
    \n
    \n
    \n
    \n
    {$ibforums->lang[\'iph_title\']}
    \n
    {$ibforums->lang[\'ip_desc_text\']}

    {$ibforums->lang[\'ip_warn_text\']}
    \n
    ', 'ip_start_form', '$ip=""', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    $pages
    \n
    \n
    \n
    {$ibforums->lang[\'ipm_title\']}
    \n \n \n \n \n \n \n \n ', 'ip_member_start', '$pages', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n \n ', 'ip_member_row', '$row', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    {$ibforums->lang[\'ipm_name\']}{$ibforums->lang[\'ipm_ip\']}{$ibforums->lang[\'ipm_posts\']}{$ibforums->lang[\'ipm_reg\']}{$ibforums->lang[\'ipm_options\']}
    {$row[\'name\']}{$row[\'ip_address\']}{$row[\'posts\']}{$row[\'joined\']}base_url}showuser={$row[\'id\']}\' target=\'_blank\'>{$ibforums->lang[\'ipm_view\']}\n | base_url}act=modcp&CODE=doedituser&memberid={$row[\'id\']}\'>{$ibforums->lang[\'ipm_edit\']}
    \n
    \n
    \n
    $pages
    ', 'ip_member_end', '$pages', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n {$ibforums->lang[\'cp_welcome\']}\n \n \n {$ibforums->lang[\'cp_welcome_text\']}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cp_mod_in\']}$forum
    {$ibforums->lang[\'cp_topics_wait\']}$tcount
    {$ibforums->lang[\'cp_posts_wait\']}$pcount
    \n \n ', 'splash', '$tcount, $pcount, $forum', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n $words\n ', 'mod_exp', '$words', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n ', 'end_form', '$action', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n {$info[\'folder_icon\']}\n {$info[\'name\']}
    {$info[\'description\']}
    {$info[\'moderator\']}\n {$info[\'q_topics\']}\n {$info[\'q_posts\']}\n {$info[\'last_post\']}
    {$ibforums->lang[\'in\']}: {$info[\'last_topic\']}
    {$ibforums->lang[\'by\']}: {$info[\'last_poster\']}\n {$info[\'select_button\']} \n \n', 'forum_row', '$info', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n  \n {$info[\'folder_icon\']}\n {$info[\'name\']}
    {$info[\'description\']}
    {$info[\'moderator\']}\n {$info[\'q_topics\']}\n {$info[\'q_posts\']}\n {$info[\'last_post\']}
    {$ibforums->lang[\'in\']}: {$info[\'last_topic\']}
    {$ibforums->lang[\'by\']}: {$info[\'last_poster\']}\n \n \n', 'subforum_row', '$info', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    base_url}act=modcp&CODE=fchoice\' method=\'post\'>\n
    \n ', 'forum_page_start', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n \n \n \n \n \n ', 'cat_row', '$cat_name', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n
    $cat_name
     {$ibforums->lang[\'cat_name\']}{$ibforums->lang[\'f_q_topics\']}{$ibforums->lang[\'f_q_posts\']}{$ibforums->lang[\'last_post_info\']}{$ibforums->lang[\'f_select\']}
    {$ibforums->lang[\'f_w_selected\']}\n  lang[\'f_go\']}\' class=\'forminput\' />\n
    \n
    \n
    ', 'forum_page_end', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    \n
    $title
    \n
    $msg
    \n
    ', 'mod_simple_page', '$title="",$msg=""', 1035406235, 0);||~&~||(1, 'skin_modcp', '{$ibforums->lang[\'ipp_found\']} $count\n
    \n
    \nbase_url}act=Search&CODE=show&searchid=$uid&search_in=posts&result_type=posts\'>{$ibforums->lang[\'ipp_click\']}', 'ip_post_results', '$uid="",$count=""', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n
    base_url}act=modcp&f={$info[\'id\']}&CODE=topicchoice\' method=\'post\' name=\'topic\' onsubmit=\'return checkdelete();\'>\n
    $pages
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n ', 'start_topics', '$pages,$info', 1035406235, 0);||~&~||(1, 'skin_modcp', ' \n \n ', 'show_no_topics', '', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n \n \n \n \n \n \n \n \n ', 'topic_row', '$data', 1035406235, 0);||~&~||(1, 'skin_modcp', '
      {$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}{$ibforums->lang[\'f_select\']}
    \n
    \n {$ibforums->lang[\'fv_no_topics\']}\n

    \n
    {$data[\'folder_img\']}{$data[\'topic_icon\']}{$data[\'prefix\']} base_url}showtopic={$data[\'tid\']}\' title=\'{$ibforums->lang[\'topic_started_on\']} {$data[\'start_date\']}\'>{$data[\'title\']}
    {$data[\'description\']}
    {$data[\'starter\']}{$data[\'posts\']}{$data[\'views\']}{$data[\'last_post\']}
    {$data[\'last_text\']} {$data[\'last_poster\']}
    \n
    \n {$ibforums->lang[\'t_w_selected\']}\n  lang[\'f_go\']}\' class=\'forminput\' />\n
    \n
    \n
    ', 'topics_end', '$data', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    base_url}act=modcp&CODE=topicchoice&tact=domove&f=$fid\' method=\'post\'>\n
    \n
    {$ibforums->lang[\'cp_tmove_start\']} $forum_name
    \n ', 'move_checked_form_start', '$forum_name, $fid', 1035406235, 0);||~&~||(1, 'skin_modcp', '\n \n \n ', 'move_checked_form_entry', '$tid, $title', 1035406235, 0);||~&~||(1, 'skin_modcp', '
    $title
    \n
    {$ibforums->lang[\'cp_tmove_to\']}  
    \n
    lang[\'cp_tmove_end\']}\' class=\'forminput\' />
    \n
    \n
    ', 'move_checked_form_end', '$jump_html', 1035406235, 0);||~&~||(1, 'skin_msg', '
    {$ibforums->lang[\'pm_preview\']}
    \n

    $data

    ', 'preview', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '
    {$ibforums->lang[\'err_errors\']}
    \n

    $data

    {$ibforums->lang[\'pme_none_sent\']}

    ', 'pm_errors', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '\n\n\n \n\n\n \n\n\n \n\n
    {$ibforums->lang[\'pmp_title\']}
    $text
    \n {$ibforums->lang[\'pmp_get_last\']}\n

    \n {$ibforums->lang[\'pmp_go_inbox\']} ( {$ibforums->lang[\'pmp_thiswindow\']} )

    {$ibforums->lang[\'pmp_ignore\']}
    ', 'pm_popup', '$text, $mid', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n Private Message Archive\n \n \n \n
    ', 'archive_html_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n
    \'PM\' PM: {$info[\'msg_title\']}
    \n
    {$info[\'msg_content\']}
    \n
    Sent by {$info[\'msg_sender\']} on {$info[\'msg_date\']}
    \n
    \n
    ', 'archive_html_entry', '$info', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n
    \'PM\' PM: {$info[\'msg_title\']}
    \n
    {$info[\'msg_content\']}
    \n
    Sent to {$info[\'msg_sender\']} on {$info[\'msg_date\']}
    \n
    \n
    ', 'archive_html_entry_sent', '$info', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n \n', 'archive_html_footer', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    {$ibforums->lang[\'arc_comp_title\']}
    \n

    {$ibforums->lang[\'arc_complete\']}

    ', 'archive_complete', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n\n\n
    {$ibforums->lang[\'archive_title\']}
    \n

    {$ibforums->lang[\'archive_text\']}

    \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'arc_folders\']}$jump_html
    {$ibforums->lang[\'arc_dateline\']}  {$ibforums->lang[\'arc_days\']}\n \n
    {$ibforums->lang[\'arc_max\']}
    {$ibforums->lang[\'arc_delete\']}
    {$ibforums->lang[\'arc_type\']}
    \n
    \n
    ', 'archive_form', '$jump_html=""', 1035406235, 0);||~&~||(1, 'skin_msg', '\n {$ibforums->lang[\'inbox_no_msg\']} \n ', 'No_msg_inbox', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n\n\n
    {$ibforums->lang[\'mi_prune_msg\']}
    \n

    {$ibforums->lang[\'fd_text\']}

    \n
    \n\n\n \n \n \n', 'empty_folder_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n \n \n', 'empty_folder_row', '$real, $id, $cnt', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n', 'empty_folder_save_unread', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    {$ibforums->lang[\'fd_name\']}{$ibforums->lang[\'fd_count\']}{$ibforums->lang[\'fd_empty\']}
    $real$cnt
    {$ibforums->lang[\'fd_save_unread\']}
    \n
    lang[\'fd_continue\']}\' class=\'forminput\'>
    \n
    \n
    ', 'empty_folder_footer', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n\n\n
    {$ibforums->lang[\'prefs_current\']}
    \n

    {$ibforums->lang[\'prefs_text_a\']}

    ', 'prefs_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '

    {$data[EXTRA]}

    ', 'prefs_row', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '
    {$ibforums->lang[\'prefs_new\']}
    \n

    {$ibforums->lang[\'prefs_text_b\']}

    ', 'prefs_add_dirs', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    lang[\'prefs_submit\']}\' class=\'forminput\'>
    \n
    ', 'prefs_footer', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    {$ibforums->lang[\'address_current\']}
    ', 'Address_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n
    \n\n\n \n \n', 'Address_table_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n \n', 'render_address_row', '$entry', 1035406235, 0);||~&~||(1, 'skin_msg', '

    {$ibforums->lang[\'address_none\']}

    ', 'Address_none', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    {$ibforums->lang[\'member_name\']}{$ibforums->lang[\'enter_block\']}
    base_url}act=Profile&CODE=03&MID={$entry[\'contact_id\']}\'>{$entry[\'contact_name\']}    [ {$entry[\'contact_desc\']} ]\n [ base_url}act=Msg&CODE=11&MID={$entry[\'contact_id\']}\'>{$ibforums->lang[\'edit\']} ] :: [ base_url}act=Msg&CODE=10&MID={$entry[\'contact_id\']}\'>{$ibforums->lang[\'delete\']} ]\n   ( {$entry[\'text\']} )\n
    \n
    \n
    ', 'end_address_table', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n\n\n\n
    {$ibforums->lang[\'member_edit\']}
    \n\n\n \n \n \n\n
    {$data[MEMBER][\'contact_name\']}{$ibforums->lang[\'enter_desc\']}
    {$ibforums->lang[\'allow_msg\']}
    {$data[SELECT]}
    \n
    \n
    ', 'address_edit', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n\n\n
    {$ibforums->lang[\'member_add\']}
    \n\n\n \n \n \n\n
    {$ibforums->lang[\'enter_a_name\']}
    {$ibforums->lang[\'enter_desc\']}
    {$ibforums->lang[\'allow_msg\']}
    \n
    \n
    ', 'address_add', '$mem_to_add', 1035406235, 0);||~&~||(1, 'skin_msg', '\n
    {$data[\'msg\'][\'title\']}
    \n\n
    \n
      {$ibforums->lang[\'m_pmessage\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$data[\'member\'][\'name\']}\n \n \n \n
    \n {$data[POST][\'post_icon\']}{$data[\'msg\'][\'title\']}, {$data[\'msg\'][\'msg_date\']}\n
    \n \n \n \n \n \n
    \n \n {$data[\'member\'][\'avatar\']}\n
    {$data[\'member\'][\'title\']}\n
    {$data[\'member\'][\'member_rank_img\']}
    \n
    {$data[\'member\'][\'member_group\']}\n
    {$data[\'member\'][\'member_posts\']}\n
    {$data[\'member\'][\'member_joined\']}\n
    \n
    \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'160\' height=\'1\' />
    \n
    {$data[\'msg\'][\'message\']}{$data[\'member\'][\'signature\']}
    [ base_url}CODE=02&act=Msg&MID={$data[\'member\'][\'id\']}\'>{$ibforums->lang[\'add_to_book\']} ]\n \n \n \n
    \n {$data[\'member\'][\'addresscard\']}{$data[\'member\'][\'message_icon\']}{$data[\'member\'][\'email_icon\']}{$data[\'member\'][\'website_icon\']}{$data[\'member\'][\'integ_icon\']}{$data[\'member\'][\'icq_icon\']}{$data[\'member\'][\'aol_icon\']}{$data[\'member\'][\'yahoo_icon\']}{$data[\'member\'][\'msn_icon\']}\n
    \n \n \n \n \n
    \n
    \n
    \n
    \n\n\n{$ibforums->lang[goto_folder]}:  {$data[\'jump\']}\nlang[goto_submit]}\' class=\'forminput\' />\n
    \n
    \n', 'Render_msg', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '\n
    \n
    {$ibforums->lang[\'tk_read_messages\']}
    \n

    {$ibforums->lang[\'tk_read_desc\']}

    \n
    \n\n\n \n \n \n \n \n', 'trackread_table_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n', 'trackread_row', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n\n
     {$ibforums->lang[\'message_title\']}{$ibforums->lang[\'pms_message_to\']}{$ibforums->lang[\'tk_read_date\']}
    {$data[\'icon\']}{$data[\'title\']}base_url}showuser={$data[\'memid\']}\'>{$data[\'to_name\']}{$data[\'date\']}
    lang[\'tk_untrack_button\']}\' class=\'forminput\' /> {$ibforums->lang[\'selected_msg\']}
    \n
    \n
    \n
    ', 'trackread_end', '', 1035406235, 0);||~&~||(1, 'skin_msg', '
    \n
    {$ibforums->lang[\'tk_unread_messages\']}
    \n

    {$ibforums->lang[\'tk_unread_desc\']}

    \n
    \n\n\n \n \n \n \n', 'trackUNread_table_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n', 'trackUNread_row', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n\n
     \n {$ibforums->lang[\'message_title\']}{$ibforums->lang[\'pms_message_to\']}{$ibforums->lang[\'tk_unread_date\']}
    {$data[\'icon\']}{$data[\'title\']}base_url}showuser={$data[\'memid\']}\'>{$data[\'to_name\']}{$data[\'date\']}
    lang[\'delete_button\']}\' class=\'forminput\' /> {$ibforums->lang[\'selected_msg\']}
    \n
    \n
    ', 'trackUNread_end', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n
    \n
    {$ibforums->lang[\'pms_saved_title\']}
    \n
    \n
    \n\n\n \n \n \n \n \n', 'unsent_table_header', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n \n', 'unsent_row', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n\n
     \n {$ibforums->lang[\'message_title\']}{$ibforums->lang[\'pms_message_to\']}{$ibforums->lang[\'pms_saved_date\']}{$ibforums->lang[\'pms_cc_users\']}
    {$data[\'msg\'][\'icon\']}base_url}act=Msg&CODE=21&MSID={$data[\'msg\'][\'msg_id\']}\'>{$data[\'msg\'][\'title\']}base_url}showuser={$data[\'msg\'][\'recipient_id\']}\'>{$data[\'msg\'][\'to_name\']}{$data[\'msg\'][\'date\']}{$data[\'msg\'][\'cc_users\']}
    lang[\'delete_button\']}\' class=\'forminput\' /> {$ibforums->lang[\'selected_msg\']}
    \n
    \n
    ', 'unsent_end', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n\n
    $dirname
    \n\n\n \n \n \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$info[\'full_messenger\']}
    vars[\'img_url\']}/bar_left.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\' />vars[\'img_url\']}/bar.gif\' border=\'0\' width=\'{$info[\'img_width\']}\' height=\'11\' align=\'middle\' alt=\'\' />vars[\'img_url\']}/bar_right.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\' />
    0%50%100%
    \n
    \n $pages

    \n {$ibforums->lang[\'pmpc_mark_read\']} :: {$ibforums->lang[\'pmpc_unmark_all\']}

    \n
    \n {$ibforums->lang[\'goto_folder\']}:   $vdi_html lang[\'goto_submit\']}\' class=\'forminput\' />\n
    \n
    \n\n \n
    \n
    \n \n \n \n \n \n \n \n ', 'inbox_table_header', '$dirname, $info, $vdi_html="", $pages=""', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n \n \n \n \n ', 'inbox_row', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '\n \n\n
     base_url}act=Msg&CODE=01&VID={$info[\'vid\']}&sort=title&st={$ibforums->input[\'st\']}\'>{$ibforums->lang[\'message_title\']}base_url}act=Msg&CODE=01&VID={$info[\'vid\']}&sort=name&st={$ibforums->input[\'st\']}\'>{$ibforums->lang[\'message_from\']}base_url}act=Msg&CODE=01&VID={$info[\'vid\']}&sort={$info[\'date_order\']}&st={$ibforums->input[\'st\']}\'>{$ibforums->lang[\'message_date\']}
    {$data[\'msg\'][\'icon\']}base_url}act=Msg&CODE=03&VID={$data[\'stat\'][\'current_id\']}&MSID={$data[\'msg\'][\'msg_id\']}\'>{$data[\'msg\'][\'title\']}base_url}showuser={$data[\'msg\'][\'from_id\']}\'>{$data[\'msg\'][\'from_name\']} {$data[\'msg\'][\'add_to_contacts\']}{$data[\'msg\'][\'date\']}
    \n lang[\'move_button\']}\' class=\'forminput\' /> $vdi_html {$ibforums->lang[\'move_or_delete\']} lang[\'delete_button\']}\' class=\'forminput\' /> {$ibforums->lang[\'selected_msg\']}\n
    \n
    \n
    \n
    <{M_READ}> {$ibforums->lang[\'icon_read\']}
    <{M_UNREAD}> {$ibforums->lang[\'icon_unread\']}
    \n
    $pages
    $amount_info
    ', 'end_inbox', '$vdi_html, $amount_info="", $pages=""', 1035406235, 0);||~&~||(1, 'skin_msg', '\n {$ibforums->lang[\'msg_options\']}\n\n\n  \n \n  {$ibforums->lang[\'auto_sent_add\']}\n
     {$ibforums->lang[\'vm_track_msg\']}\n \n\n\n \n \n \n \n \n\n\n', 'send_form_footer', '', 1035406235, 0);||~&~||(1, 'skin_msg', '\n
    \n\n\n\n\n\n\n \n\n\n \n \n \n\n \n \n\n\n\n \n\n\n \n \n', 'Send_form', '$data', 1035406235, 0);||~&~||(1, 'skin_msg', '\n\n\n\n\n\n', 'mass_pm_box', '$names=""', 1035406235, 0);||~&~||(1, 'skin_online', '\n \n \n \n \n \n \n ', 'show_row', '$session', 1035406235, 0);||~&~||(1, 'skin_online', '\n \n \n \n
    {$ibforums->lang[\'to_whom\']}
    {$ibforums->lang[\'address_list\']}{$data[CONTACTS]} 
    {$ibforums->lang[\'enter_name\']}
    {$ibforums->lang[\'enter_message\']}
    {$ibforums->lang[\'msg_title\']}
    {$ibforums->lang[\'carbon_copy_title\']}
    {$ibforums->lang[\'carbon_copy_desc\']}\n
    \n lang[\'find_user_names\']}\' />\n
    {$session[\'member_name\']}{$session[\'where_line\']}{$session[\'running_time\']}{$session[\'msg_icon\']}
    \n base_url}act=Online&CODE=listall\'>\n {$ibforums->lang[\'s_by\']} \n \n \n \n lang[\'s_go\']}\' class=\'forminput\'>\n \n
    \n
    \n
    \n
    $links
    ', 'Page_end', '$show_mem, $sort_order, $sort_key, $links', 1035406235, 0);||~&~||(1, 'skin_online', '\n \n
    $links
    \n
    \n
    \n
      {$ibforums->lang[\'page_title\']}
    \n \n \n \n \n \n \n ', 'Page_header', '$links', 1035406235, 0);||~&~||(1, 'skin_poll', '', 'poll_javascript', '$tid,$fid', 1035406235, 0);||~&~||(1, 'skin_poll', 'lang[\'poll_add_vote\']}\' title="{$ibforums->lang[\'tt_poll_vote\']}" class=\'forminput\' />', 'button_vote', '', 1035406235, 0);||~&~||(1, 'skin_poll', 'lang[\'poll_null_vote\']}\' title="{$ibforums->lang[\'tt_poll_null\']}" class=\'forminput\' />', 'button_null_vote', '', 1035406235, 0);||~&~||(1, 'skin_poll', 'lang[\'pl_show_results\']}\' class=\'forminput\' title="{$ibforums->lang[\'tt_poll_show\']}" onclick=\'go_gadget_show()\' />', 'button_show_results', '', 1035406235, 0);||~&~||(1, 'skin_poll', 'lang[\'pl_show_vote\']}\' title="{$ibforums->lang[\'tt_poll_svote\']}" class=\'forminput\' onclick=\'go_gadget_vote()\' />', 'button_show_voteable', '', 1035406235, 0);||~&~||(1, 'skin_poll', '[ {$ibforums->lang[\'ba_edit\']} ]', 'edit_link', '$tid, $fid, $key=""', 1035406235, 0);||~&~||(1, 'skin_poll', '[ {$ibforums->lang[\'ba_delete\']} ]', 'delete_link', '$tid, $fid, $key=""', 1035406235, 0);||~&~||(1, 'skin_poll', '\n \n ', 'Render_row_form', '$votes, $id, $answer', 1035406235, 0);||~&~||(1, 'skin_poll', '\n\n
    $edit   $delete
    \n
    \n
    {$ibforums->lang[\'member_name\']}{$ibforums->lang[\'where\']}{$ibforums->lang[\'time\']} 
     $answer
    \n\n \n', 'poll_header', '$tid, $poll_q, $edit, $delete', 1035406235, 0);||~&~||(1, 'skin_poll', '
    $poll_q
    \n
    \n
     
    \n', 'ShowPoll_footer', '', 1035406235, 0);||~&~||(1, 'skin_poll', '\n $answer\n [ $votes ] \n vars[\'img_url\']}/bar_left.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\' />vars[\'img_url\']}/bar.gif\' border=\'0\' width=\'$width\' height=\'11\' align=\'middle\' alt=\'\' />vars[\'img_url\']}/bar_right.gif\' border=\'0\' width=\'4\' height=\'11\' align=\'middle\' alt=\'\' /> [$percentage%]\n ', 'Render_row_results', '$votes, $id, $answer, $percentage, $width', 1035406235, 0);||~&~||(1, 'skin_poll', '\n {$ibforums->lang[\'pv_total_votes\']}: $total_votes\n ', 'show_total_votes', '$total_votes', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'unreg_namestuff\']}\n\n\n {$ibforums->lang[\'guest_name\']}\n \n', 'nameField_unreg', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'tt_poll_settings\']}\n\n\n {$ibforums->lang[\'poll_question\']}\n input[\'pollq\']}\' class=\'textinput\' />\n\n\n {$ibforums->lang[\'poll_choices\']}

    $extra\n \n', 'poll_box', '$data, $extra=""', 1035406235, 0);||~&~||(1, 'skin_post', '
     {$ibforums->lang[\'poll_only\']}', 'poll_options', '', 1035406235, 0);||~&~||(1, 'skin_post', '\n \n  \n \n\n\n\n
    \n
    ', 'poll_end_form', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'ib_code_buttons\']}\n \n \n \n  {$ibforums->lang[\'bbcode_guided\']}
    \n  {$ibforums->lang[\'bbcode_normal\']}\n \n \n \n \n \n \n \n \n   {$ibforums->lang[\'js_close_all_tags\']}\n
    \n \n \n \n \n \n \n \n
    \n {$ibforums->lang[\'hb_open_tags\']}: \n  \n \n \n \n {$ibforums->lang[\'post\']}\n \n \n \n \n
    \n ({$ibforums->lang[\'check_length\']})\n \n \n ', 'pm_postbox_buttons', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'ib_code_buttons\']}\n \n \n \n  {$ibforums->lang[\'bbcode_guided\']}
    \n  {$ibforums->lang[\'bbcode_normal\']}\n \n \n \n \n \n \n \n \n   {$ibforums->lang[\'js_close_all_tags\']}\n
    \n \n \n \n \n \n \n \n
    \n {$ibforums->lang[\'hb_open_tags\']}: \n  \n \n \n \n {$ibforums->lang[\'post\']}\n \n \n \n \n
    \n \n \n \n \n \n {$ibforums->lang[\'po_options\']}\n \n \n \n \n \n ', 'postbox_buttons', '$data', 1035406235, 0);||~&~||(1, 'skin_post', ' {$ibforums->lang[\'enable_emo\']}', 'get_box_enableemo', '$checked', 1035406235, 0);||~&~||(1, 'skin_post', '
     {$ibforums->lang[\'enable_sig\']}', 'get_box_enablesig', '$checked', 1035406235, 0);||~&~||(1, 'skin_post', '
     {$ibforums->lang[\'enable_track\']}', 'get_box_enabletrack', '$checked', 1035406235, 0);||~&~||(1, 'skin_post', '
    {$ibforums->lang[\'already_sub\']}', 'get_box_alreadytrack', '', 1035406235, 0);||~&~||(1, 'skin_post', '', 'get_javascript', '', 1035406235, 0);||~&~||(1, 'skin_post', '', 'nameField_reg', '', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'tt_options\']}\n \n \n {$ibforums->lang[\'mod_options\']}\n $jump\n ', 'mod_options', '$jump', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'post_to_quote\']}\n\n\n {$ibforums->lang[\'post_to_quote_txt\']}\n \n', 'quote_box', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '
    \n
    \n
    {$ibforums->lang[\'last_posts\']}
    \n ', 'TopicSummary_top', '', 1035406235, 0);||~&~||(1, 'skin_post', '\n \n \n \n \n \n \n ', 'TopicSummary_body', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '
    {$data[\'author\']}{$ibforums->lang[\'posted_on\']} {$data[\'date\']}
     {$data[\'post\']}
    \n \n
    ', 'TopicSummary_bottom', '', 1035406235, 0);||~&~||(1, 'skin_post', '
    \n
    {$ibforums->lang[\'post_preview\']}
    \n
    $data
    \n
    \n
    ', 'preview', '$data', 1035406235, 0);||~&~||(1, 'skin_post', ' \n {$ibforums->lang[\'upload_title\']}\n \n \n {$ibforums->lang[\'upload_text\']} $data\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'eu_keep\']} ( $file_name )
    {$ibforums->lang[\'eu_delete\']}
    {$ibforums->lang[\'eu_new\']}
    \n \n ', 'edit_upload_field', '$data, $file_name=""', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'upload_title\']}\n \n \n {$ibforums->lang[\'upload_text\']} $data\n \n ', 'Upload_field', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '
    \n
    {$ibforums->lang[\'errors_found\']}
    \n
    $data
    \n
    \n
    ', 'errors', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '\n \n  \n \n \n\n\n\n
    \n
    ', 'EndForm', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '\n\n\n\n\n\n\n\n
    {$ibforums->lang[\'click_smilie\']}
    {$ibforums->lang[\'all_emoticons\']}
    ', 'smilie_table', '', 1035406235, 0);||~&~||(1, 'skin_post', '\n {$ibforums->lang[\'post_icon\']}\n \n   \'\'     \'\'     \'\'     \'\'     \'\'     \'\'     \'\'
    \n   \'\'     \'\'     \'\'     \'\'     \'\'     \'\'     \'\'
    \n   [ Use None ]\n \n ', 'PostIcons', '', 1035406235, 0);||~&~||(1, 'skin_post', '\n\n\n \n', 'table_top', '$data', 1035406235, 0);||~&~||(1, 'skin_post', '
    \n\n\n\n\n\n\n\n\n\n', 'table_structure', '', 1035406235, 0);||~&~||(1, 'skin_post', '\n \n \n', 'add_edit_box', '$checked=""', 1035406235, 0);||~&~||(1, 'skin_post', '\n \n\n\n \n \n\n\n \n \n', 'topictitle_fields', '$data', 1035406235, 0);||~&~||(1, 'skin_printpage', '\n
    ', 'choose_form', '$fid, $tid, $title', 1035406235, 0);||~&~||(1, 'skin_printpage', '
      $data
    {$ibforums->lang[\'edit_ops\']} {$ibforums->lang[\'append_edit\']}
    {$ibforums->lang[\'tt_topic_settings\']}
    {$ibforums->lang[\'topic_title\']}
    {$ibforums->lang[\'topic_desc\']}
    \n \n \n \n \n \n \n
    {$ibforums->lang[\'by\']}: {$entry[\'author_name\']} {$ibforums->lang[\'on\']} {$entry[\'post_date\']}
    {$entry[\'post\']}
    \n
    ', 'pp_postentry', '$poster, $entry', 1035406235, 0);||~&~||(1, 'skin_printpage', '
    Powered by Invision Power Board (http://www.invisionboard.com)
    © Invision Power Services (http://www.invisionpower.com)
    ', 'pp_end', '', 1035406235, 0);||~&~||(1, 'skin_printpage', '\n \n {$ibforums->vars[\'board_name\']} [Powered by Invision Power Board]\n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'title\']}\n
    base_url}act=ST&f=$fid&t=$tid\'>{$ibforums->lang[\'topic_here\']}\n
    {$ibforums->vars[\'board_name\']} > $forum_name > $topic_title
    \n
    \n
    ', 'pp_header', '$forum_name, $topic_title, $topic_starter,$fid, $tid', 1035406235, 0);||~&~||(1, 'skin_profile', '\n {$ibforums->lang[\'warn_level\']}\n {$percent}%: base_url}act=warn&type=minus&mid={$mid}\' title=\'{$ibforums->lang[\'tt_warn_minus\']}\'><{WARN_MINUS}>{$img}base_url}act=warn&type=add&mid={$mid}\' title=\'{$ibforums->lang[\'tt_warn_add\']}\'><{WARN_ADD}>\n\n ', 'warn_level', '$mid, $img, $percent', 1035406235, 0);||~&~||(1, 'skin_profile', '\n {$ibforums->lang[\'warn_level\']}\n {$percent}%: {$img}\n ', 'warn_level_no_mod', '$mid, $img, $percent', 1035406235, 0);||~&~||(1, 'skin_profile', '\n {$ibforums->lang[\'rating_level\']}\n base_url}act=warn&type=minus&mid={$mid}\' title=\'{$ibforums->lang[\'tt_warn_minus\']}\'><{WARN_MINUS}> < $min ( {$level} ) $max > base_url}act=warn&type=add&mid={$mid}\' title=\'{$ibforums->lang[\'tt_warn_add\']}\'><{WARN_ADD}>\n ', 'warn_level_rating', '$mid, $level,$min=0,$max=10', 1035406235, 0);||~&~||(1, 'skin_profile', '\n {$ibforums->lang[\'rating_level\']}\n < $min ( {$level} ) $max >\n ', 'warn_level_rating_no_mod', '$mid, $level,$min=0,$max=10', 1035406235, 0);||~&~||(1, 'skin_profile', 'User Photo', 'get_photo', '$show_photo, $show_width, $show_height', 1035406235, 0);||~&~||(1, 'skin_profile', '
    \n
    $name
    \n
    $photo
    \n
    ', 'show_photo', '$name, $photo', 1035406235, 0);||~&~||(1, 'skin_profile', '\n \n $name\n \n \n \n\n\n\n \n \n
    \n
    $name
    \n
    \n \n \n \n \n \n
    $photo\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'email\']}{$info[\'email\']}
    {$ibforums->lang[\'integ_msg\']}{$info[\'integ_msg\']}
    {$ibforums->lang[\'aim\']}{$info[\'aim_name\']}
    {$ibforums->lang[\'icq\']}{$info[\'icq_number\']}
    {$ibforums->lang[\'yahoo\']}{$info[\'yahoo\']}
    {$ibforums->lang[\'msn\']}{$info[\'msn_name\']}
    {$ibforums->lang[\'pm\']}{$ibforums->lang[\'click_here\']}
    \n
    \n
    \n\n', 'show_card_download', '$name, $photo, $info', 1035406235, 0);||~&~||(1, 'skin_profile', '\n
    \n
    $name
    \n
    \n \n \n \n \n \n
    $photo\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'email\']}{$info[\'email\']}
    {$ibforums->lang[\'integ_msg\']}{$info[\'integ_msg\']}
    {$ibforums->lang[\'aim\']}{$info[\'aim_name\']}
    {$ibforums->lang[\'icq\']}{$info[\'icq_number\']}
    {$ibforums->lang[\'yahoo\']}{$info[\'yahoo\']}
    {$ibforums->lang[\'msn\']}{$info[\'msn_name\']}
    {$ibforums->lang[\'pm\']}{$ibforums->lang[\'click_here\']}
    \n
    \n
    \n', 'show_card', '$name, $photo, $info', 1035406235, 0);||~&~||(1, 'skin_profile', '· {$ibforums->lang[\'edit_my_sig\']} ·\n{$ibforums->lang[\'edit_avatar\']} ·\n{$ibforums->lang[\'edit_profile\']}', 'user_edit', '$info', 1035406235, 0);||~&~||(1, 'skin_profile', '\n\n\n \n \n\n
    {$info[\'photo\']}\n
    {$info[\'name\']}
    \n \n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'active_stats\']}
    {$ibforums->lang[\'total_posts\']}{$info[\'posts\']}
    ( {$info[\'total_pct\']}% {$ibforums->lang[\'total_percent\']} )
    {$ibforums->lang[\'posts_per_day\']}{$info[\'posts_day\']}
    {$ibforums->lang[\'joined\']}{$info[\'joined\']}
    {$ibforums->lang[\'fav_forum\']}{$info[\'fav_forum\']}
    {$info[\'fav_posts\']} {$ibforums->lang[\'fav_posts\']}
    ( {$info[\'percent\']}% {$ibforums->lang[\'fav_percent\']} )
    {$ibforums->lang[\'user_local_time\']}{$info[\'local_time\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'communicate\']}
    {$ibforums->lang[\'email\']}{$info[\'email\']}
    {$ibforums->lang[\'integ_msg\']}{$info[\'integ_msg\']}
    {$ibforums->lang[\'aim\']}{$info[\'aim_name\']}
    {$ibforums->lang[\'icq\']}{$info[\'icq_number\']}
    {$ibforums->lang[\'yahoo\']}{$info[\'yahoo\']}
    {$ibforums->lang[\'msn\']}{$info[\'msn_name\']}
    {$ibforums->lang[\'pm\']}{$ibforums->lang[\'click_here\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'info\']}
    {$ibforums->lang[\'homepage\']}{$info[\'homepage\']}
    {$ibforums->lang[\'birthday\']}{$info[\'birthday\']}
    {$ibforums->lang[\'location\']}{$info[\'location\']}
    {$ibforums->lang[\'interests\']}{$info[\'interests\']}
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'post_detail\']}
    {$ibforums->lang[\'mgroup\']}{$info[\'group_title\']}
    {$ibforums->lang[\'mtitle\']}{$info[\'member_title\']}
    {$ibforums->lang[\'avatar\']}{$info[\'avatar\']}
    {$ibforums->lang[\'siggie\']}{$info[\'signature\']}
    \n
    \n', 'show_profile', '$info', 1035406235, 0);||~&~||(1, 'skin_profile', '\n $title\n $value\n ', 'custom_field', '$title, $value=""', 1035406235, 0);||~&~||(1, 'skin_register', '\n \n {$ibforums->lang[\'cpf_title\']}\n \n \n \n \n \n \n \n
    \n {$ibforums->vars[\'board_name\']}: {$ibforums->lang[\'cpf_title\']}\n

    \n {$ibforums->lang[\'cpf_perm_parent\']}\n

    \n {$ibforums->lang[\'cpf_fax\']} {$ibforums->vars[\'coppa_fax\']}\n

    \n {$ibforums->lang[\'cpf_address\']}\n
    \n {$ibforums->vars[\'coppa_address\']}\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'user_name\']} 
    {$ibforums->lang[\'pass_word\']} 
    {$ibforums->lang[\'email_address\']} 
    \n
    \n \n \n \n \n
    \n {$ibforums->lang[\'cpf_sign\']}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'cpf_name\']} 
    {$ibforums->lang[\'cpf_relation\']} 
    {$ibforums->lang[\'cpf_signature\']} 
    {$ibforums->lang[\'cpf_email\']} 
    {$ibforums->lang[\'cpf_phone\']} 
    {$ibforums->lang[\'cpf_date\']} 
    \n \n ', 'coppa_form', '', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    {$ibforums->lang[\'cp2_title\']}
    \n \n \n \n \n \n \n \n \n \n \n
    \n {$ibforums->lang[\'cp2_text\']}\n

    \n
    \n << base_url}\'>{$ibforums->lang[\'cp2_cancel\']}\n - base_url}act=Reg&coppa_pass=1&coppa_user=1\'>{$ibforums->lang[\'cp2_continue\']} >>\n
    \n
    {$ibforums->lang[\'coppa_form\']}
    {$ibforums->lang[\'coppa_form_text\']} vars[\'email_in\']}\'>{$ibforums->vars[\'email_in\']}
    \n
    ', 'coppa_two', '', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'registration_form\']}
    \n
    {$ibforums->lang[\'coppa_info\']}
    \n \n
    {$ibforums->lang[\'coppa_form\']}
    \n
    {$ibforums->lang[\'coppa_form_text\']} vars[\'email_in\']}\'>{$ibforums->vars[\'email_in\']}
    \n
    ', 'coppa_start', '$coppadate', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n\n\n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'lost_pass_form\']}
    \n
    {$ibforums->lang[\'lp_header\']}
    \n
    {$ibforums->lang[\'lp_text\']}
    \n
    {$ibforums->lang[\'complete_form\']}
    \n \n \n \n \n \n
    {$ibforums->lang[\'lp_user_name\']}
    \n
    \n\n
    \n
    \n
    \n
    \n
    ', 'lost_pass_form', '$lasid=""', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    \n
    {$ibforums->lang[\'registration_process\']}
    \n
    {$ibforums->lang[\'thank_you\']} {$member[\'name\']}. {$ibforums->lang[\'auth_text\']} {$member[\'email\']}
    \n
    ', 'show_authorise', '$member', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'rv_title\']}
    \n
    {$ibforums->lang[\'rv_process\']}
    \n
    {$ibforums->lang[\'rv_done\']}
    \n
    ', 'show_revalidated', '', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'lpf_title\']}
    \n
    {$ibforums->lang[\'registration_process\']}
    \n
    {$ibforums->lang[\'lpass_text\']}
    \n
    ', 'show_lostpasswait', '$member', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    \n
    {$ibforums->lang[\'registration_process\']}
    \n
    {$ibforums->lang[\'thank_you\']} {$member[\'name\']}. {$ibforums->lang[\'preview_reg_text\']}
    \n
    ', 'show_preview', '$member', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n\n\n
    {$ibforums->lang[\'rv_ins\']}
    \n
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'rv_title\']}
    \n \n \n \n \n \n
    {$ibforums->lang[\'rv_name\']}
    \n
    \n
    \n
    ', 'show_revalidate_form', '$name=""', 1035406235, 0);||~&~||(1, 'skin_register', '\n
    \n\n\n\n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'dumb_header\']}
    \n
    {$ibforums->lang[\'lpf_title\']}
    \n \n \n {$ibforums->lang[\'lpf_pass1\']}
    {$ibforums->lang[\'lpf_pass11\']}\n \n \n \n {$ibforums->lang[\'lpf_pass2\']}
    {$ibforums->lang[\'lpf_pass22\']}\n \n \n \n \n
    \n
    \n
    ', 'show_lostpass_form', '', 1035406235, 0);||~&~||(1, 'skin_register', '
    {$ibforums->lang[\'dumb_text\']}
    \n
    {$ibforums->lang[\'complete_form\']}
    \n \n \n \n \n \n \n \n \n ', 'show_lostpass_form_manual', '', 1035406235, 0);||~&~||(1, 'skin_register', '\n \n
    {$ibforums->lang[\'user_id\']}
    {$ibforums->lang[\'val_key\']}
    ', 'show_lostpass_form_auto', '$aid,$uid', 1035406235, 0);||~&~||(1, 'skin_register', '\n\n\n\n\n
    \n
    {$ibforums->lang[\'dumb_header\']}
    \n
    {$ibforums->lang[\'dumb_text\']}
    \n
    {$ibforums->lang[\'complete_form\']}
    \n
    \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'user_id\']}
    {$ibforums->lang[\'val_key\']}
    \n
    \n
    \n', 'show_dumb_form', '$type="reg"', 1035406235, 0);||~&~||(1, 'skin_register', '\n
    \n\n\n\n{$ibforums->lang[\'reg_header\']}

    {$data[\'TEXT\']}\n
    \n
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'registration_form\']}
    \n
    {$ibforums->lang[\'complete_form\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'user_name\']}input[\'UserName\']}\' name=\'UserName\' class=\'forminput\' />
    {$ibforums->lang[\'pass_word\']}input[\'PassWord\']}\' name=\'PassWord\' class=\'forminput\' />
    {$ibforums->lang[\'re_enter_pass\']}input[\'PassWord_Check\']}\' name=\'PassWord_Check\' class=\'forminput\' />
    {$ibforums->lang[\'email_address\']}input[\'EmailAddress\']}\' name=\'EmailAddress\' class=\'forminput\' />
    {$ibforums->lang[\'email_address_two\']}input[\'EmailAddress_two\']}\' name=\'EmailAddress_two\' class=\'forminput\' />
    \n
    \n
    \n\n
    \n
    \n
    {$ibforums->lang[\'terms_service\']}
    \n
    \n {$ibforums->lang[\'terms_service_text\']}\n
    \n
    \n \n

    {$ibforums->lang[\'agree_submit\']} \n
    \n
    \n
    \n
    ', 'ShowForm', '$data', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    {$ibforums->lang[\'errors_found\']}
    \n
    $data
    \n
    \n
    ', 'errors', '$data', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    \n
    {$ibforums->lang[\'las_title\']}
    \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'las_numbers\']}\n \n base_url}act=Reg&CODE=image&rc={$regid}&p=1\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=Reg&CODE=image&rc={$regid}&p=2\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=Reg&CODE=image&rc={$regid}&p=3\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=Reg&CODE=image&rc={$regid}&p=4\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=Reg&CODE=image&rc={$regid}&p=5\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=Reg&CODE=image&rc={$regid}&p=6\' border=\'0\' alt=\'Code Bit\' />\n
    {$ibforums->lang[\'las_text\']}
    \n
    ', 'bot_antispam', '$regid', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n
    \n
    {$ibforums->lang[\'las_title\']}
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'las_numbers\']}\n \n base_url}act=Reg&CODE=image&rc={$regid}\' border=\'0\' alt=\'Loading Image\' />\n
    {$ibforums->lang[\'las_text\']}
    \n
    ', 'bot_antispam_gd', '$regid', 1035406235, 0);||~&~||(1, 'skin_register', '
    \n$hidden\n
    \n
    $title
    \n \n $content\n
    \n
    \n
    \n
    ', 'tmpl_form', '$action, $hidden, $title, $content', 1035406235, 0);||~&~||(1, 'skin_register', '\n {$ibforums->lang[\'cf_optional\']}\n', 'optional_title', '', 1035406235, 0);||~&~||(1, 'skin_register', '\n $title
    $desc\n $content\n', 'field_entry', '$title, $desc="", $content', 1035406235, 0);||~&~||(1, 'skin_register', '', 'field_textinput', '$name, $value=""', 1035406235, 0);||~&~||(1, 'skin_register', '', 'field_dropdown', '$name, $options', 1035406235, 0);||~&~||(1, 'skin_register', '', 'field_textarea', '$name, $value', 1035406235, 0);||~&~||(1, 'skin_search', '\n \n {$Data[\'folder_img\']}\n {$Data[\'topic_icon\']}\n \n \n \n \n \n \n
    {$Data[\'go_new_post\']}{$Data[\'prefix\']} base_url}showtopic={$Data[\'tid\']}&hl={$Data[\'keywords\']}\'>{$Data[\'title\']} {$Data[PAGES]}
    \n {$Data[\'description\']}\n {$Data[\'forum_name\']}\n {$Data[\'starter\']}\n {$Data[\'posts\']}\n {$Data[\'views\']}\n {$Data[\'last_post\']}
    base_url}showtopic={$Data[\'tid\']}&view=getlastpost\'>{$Data[\'last_text\']} {$Data[\'last_poster\']}\n \n ', 'RenderRow', '$Data', 1035406235, 0);||~&~||(1, 'skin_search', '
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$Data[\'author_name\']}{$ibforums->lang[\'rp_postedon\']} {$Data[\'post_date\']}
    \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'150\' height=\'15\' />\n
    \n {$ibforums->lang[\'rp_replies\']} {$Data[\'posts\']}
    {$ibforums->lang[\'rp_hits\']} {$Data[\'views\']}
    \n
    {$Data[\'post\']}
     {$ibforums->lang[\'rp_forum\']} {$Data[\'forum_name\']}  ·  {$ibforums->lang[\'rp_post\']} base_url}act=ST&f={$Data[\'forum_id\']}&t={$Data[\'tid\']}&hl={$Data[\'keywords\']}&view=findpost&p={$Data[\'pid\']}\' class=\'linkthru\'>#{$Data[\'pid\']}
    \n
    ', 'RenderPostRow', '$Data', 1035406235, 0);||~&~||(1, 'skin_search', '
    {$Data[SHOW_PAGES]}
    ', 'start_as_post', '$Data', 1035406235, 0);||~&~||(1, 'skin_search', '
    \n
    {$Data[SHOW_PAGES]}
    \n
    \n <{B_NEW}>  {$ibforums->lang[\'pm_open_new\']}\n
    <{B_NORM}>  {$ibforums->lang[\'pm_open_no\']}\n
    <{B_HOT}>  {$ibforums->lang[\'pm_hot_new\']}\n
    <{B_HOT_NN}>  {$ibforums->lang[\'pm_hot_no\']}\n
    \n
    \n <{B_POLL}>  {$ibforums->lang[\'pm_poll\']}\n
    <{B_POLL_NN}>  {$ibforums->lang[\'pm_poll_no\']}\n
    <{B_LOCKED}>  {$ibforums->lang[\'pm_locked\']}\n
    <{B_MOVED}>  {$ibforums->lang[\'pm_moved\']}\n
    ', 'end_as_post', '$Data', 1035406235, 0);||~&~||(1, 'skin_search', '\n
     
    \n\n
    \n
    {$Data[SHOW_PAGES]}
    \n
    \n
    \n <{B_NEW}>  {$ibforums->lang[\'pm_open_new\']}\n
    <{B_NORM}>  {$ibforums->lang[\'pm_open_no\']}\n
    <{B_HOT}>  {$ibforums->lang[\'pm_hot_new\']}\n
    <{B_HOT_NN}>  {$ibforums->lang[\'pm_hot_no\']}\n
    \n
    \n <{B_POLL}>  {$ibforums->lang[\'pm_poll\']}\n
    <{B_POLL_NN}>  {$ibforums->lang[\'pm_poll_no\']}\n
    <{B_LOCKED}>  {$ibforums->lang[\'pm_locked\']}\n
    <{B_MOVED}>  {$ibforums->lang[\'pm_moved\']}\n
    \n
    \n
    ', 'end', '$Data', 1035406235, 0);||~&~||(1, 'skin_search', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'be_link\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'be_use\']}{$ibforums->lang[\'be_means\']}
    {$ibforums->lang[\'be_u1\']}{$ibforums->lang[\'be_m1\']}
    {$ibforums->lang[\'be_u2\']}{$ibforums->lang[\'be_m2\']}
    {$ibforums->lang[\'be_u3\']}{$ibforums->lang[\'be_m3\']}
    {$ibforums->lang[\'be_u4\']}{$ibforums->lang[\'be_m4\']}
    {$ibforums->lang[\'be_u5\']}{$ibforums->lang[\'be_m5\']}
    \n
    ', 'boolean_explain_page', '', 1035406235, 0);||~&~||(1, 'skin_search', '[ lang[\'be_ttip\']}\' onclick=\'win_pop()\'>{$ibforums->lang[\'be_link\']} ]', 'boolean_explain_link', '', 1035406235, 0);||~&~||(1, 'skin_search', '\n
    \n$hidden_fields\n
    \n
    {$ibforums->lang[\'search_options\']}
    \n
    {$ibforums->lang[\'key_search\']}
    \n
    \n \n
    \n \n
    \n
    {$ibforums->lang[\'search_where\']}
    \n
    \n $forums\n

    \n {$ibforums->lang[\'sf_show_me\']}\n \n \n  \n \n \n
    \n
    \n lang[\'do_search\']}\' class=\'forminput\' />\n  \n lang[\'so_more_opts\']}\' onclick="go_gadget_advanced()" class=\'forminput\' />\n
    \n
    \n
    ', 'simple_form', '$forums', 1035406235, 0);||~&~||(1, 'skin_search', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'search_results\']}
    \n
    \n \n
    \n {$ibforums->lang[\'g_results\']} {$data[\'start\']} - {$data[\'end\']} {$ibforums->lang[\'g_of_about\']} {$data[\'matches\']}.\n {$ibforums->lang[\'g_search_took\']} {$data[\'ex_time\']} {$ibforums->lang[\'g_seconds\']}\n
    \n
    \n
    ', 'result_simple_header', '$data', 1035406235, 0);||~&~||(1, 'skin_search', '
    {$ibforums->lang[\'search_pages\']}      {$data[\'links\']}
    \n
    ', 'result_simple_footer', '$data', 1035406235, 0);||~&~||(1, 'skin_search', '\n
    ', 'result_simple_entry', '$data', 1035406235, 0);||~&~||(1, 'skin_search', '\n
    \n$hidden_fields\n
    \n\n\n \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'keywords_title\']}
    {$ibforums->lang[\'key_search\']}{$ibforums->lang[\'mem_search\']}
    \n \n

    \n \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n\n \n\n\n \n \n\n\n \n \n\n\n \n\n
    {$ibforums->lang[\'search_options\']}
    {$ibforums->lang[\'search_where\']}{$ibforums->lang[\'search_refine\']}
    \n $forums\n
    \n  \n
    \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n
    \n \n \n \n
    \n
    lang[\'do_search\']}\' class=\'forminput\' />
    \n
    \n
    ', 'Form', '$forums', 1035406235, 0);||~&~||(1, 'skin_search', ' lang[\'so_less_opts\']}\' onclick="go_gadget_simple()" class=\'forminput\' />', 'form_simple_button', '', 1035406235, 0);||~&~||(1, 'skin_search', '\n
    \n
    base_url}act=Search&CODE=getactive\' method=\'post\' name=\'dateline\' onsubmit=\'return checkvalues();\'>\n\n
    \n \n
    \n
    \n
    \n
    \n
    <{CAT_IMG}>{$ibforums->lang[\'active_topics\']}
    \n \n \n \n \n \n \n \n \n \n ', 'active_start', '$data', 1035406235, 0);||~&~||(1, 'skin_search', '
    {$Data[SHOW_PAGES]}
    \n
    \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'your_results\']} · {$ibforums->lang[\'mark_search_as_read\']}
    \n
     {$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_forum_name\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    \n \n \n \n \n \n \n \n \n ', 'start', '$Data', 1035406235, 0);||~&~||(1, 'skin_search', '', 'active_none', '', 1035406235, 0);||~&~||(1, 'skin_stats', '\n
    \n
    {$ibforums->lang[\'who_farted\']} $title
    \n
     {$ibforums->lang[\'h_topic_title\']}{$ibforums->lang[\'h_forum_name\']}{$ibforums->lang[\'h_topic_starter\']}{$ibforums->lang[\'h_replies\']}{$ibforums->lang[\'h_hits\']}{$ibforums->lang[\'h_last_action\']}
    {$ibforums->lang[\'active_no_topics\']}
    \n \n \n \n ', 'who_header', '$fid, $tid, $title', 1035406235, 0);||~&~||(1, 'skin_stats', '\n \n \n ', 'who_row', '$row', 1035406235, 0);||~&~||(1, 'skin_stats', 'base_url}showuser=$id\' target=\'_blank\'>$name', 'who_name_link', '$id, $name', 1035406235, 0);||~&~||(1, 'skin_stats', '
    {$ibforums->lang[\'who_poster\']}{$ibforums->lang[\'who_posts\']}
    {$row[\'author_name\']}{$row[\'pcount\']}
    \n \n
    ', 'who_end', '', 1035406235, 0);||~&~||(1, 'skin_stats', '\' align=\'center\'>\n \n \n \n
    {$title}
    ', 'page_title', '$title', 1035406235, 0);||~&~||(1, 'skin_stats', '
    \n
    <{CAT_IMG}> $group
    \n \n \n \n \n \n \n ', 'group_strip', '$group', 1035406235, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n ', 'leader_row', '$info, $forums', 1035406235, 0);||~&~||(1, 'skin_stats', '\n', 'leader_row_forum_end', '', 1035406235, 0);||~&~||(1, 'skin_stats', '
    {$ibforums->lang[\'leader_name\']}{$ibforums->lang[\'leader_forums\']}{$ibforums->lang[\'leader_location\']} 
    base_url}showuser={$info[\'id\']}\'>{$info[\'name\']}$forums{$info[\'location\']}{$info[\'msg_icon\']}
    \n
    \n
    ', 'close_strip', '', 1035406235, 0);||~&~||(1, 'skin_stats', '
    \n
    <{CAT_IMG}> {$ibforums->lang[\'todays_posters\']}
    \n \n \n \n \n \n \n \n ', 'top_poster_header', '', 1035406235, 0);||~&~||(1, 'skin_stats', '\n \n \n \n \n \n ', 'top_poster_row', '$info', 1035406235, 0);||~&~||(1, 'skin_stats', '
    {$ibforums->lang[\'member\']}{$ibforums->lang[\'member_joined\']}{$ibforums->lang[\'member_posts\']}{$ibforums->lang[\'member_today\']}{$ibforums->lang[\'member_percent\']}
    base_url}showuser={$info[\'id\']}\'>{$info[\'name\']}{$info[\'joined\']}{$info[\'posts\']}{$info[\'tpost\']}{$info[\'today_pct\']}%
    \n
    {$ibforums->lang[\'total_today\']} $info
    \n
    ', 'top_poster_footer', '$info', 1035406235, 0);||~&~||(1, 'skin_stats', '\n {$ibforums->lang[\'no_info\']}\n ', 'top_poster_no_info', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_complete\']}
    \n

    \n{$ibforums->lang[\'sc_upgrade_explain\']}\n

    $desc_string\n

    {$ibforums->lang[\'gw_nochex\']}\n

    \n
    \n\n\n\n\n

    \n
    \n
    \n
    ', 'do_nochex_upgrade_screen', '$ccode, $member_id, $new_sub_id, $to_pay, $nochex_email, $sub_title, $cur_tran_id, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_complete\']}
    \n

    \n{$ibforums->lang[\'sc_upgrade_explain\']}\n

    $desc_string\n

    {$ibforums->lang[\'gw_nochex\']}\n

    \n
    \n\n\n\n\n

    \n
    \n
    \n
    ', 'do_nochex_normal_screen', '$ccode, $member_id, $new_sub_id, $to_pay, $nochex_email, $sub_title, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '

    {$ibforums->lang[\'man_title\']}

    \n
    \n\n\n \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'man_mem\']}{$ibforums->member[\'name\']}
    {$ibforums->lang[\'man_mem_id\']}{$ibforums->member[\'id\']}
    {$ibforums->lang[\'man_email\']}{$ibforums->member[\'email\']}
    {$ibforums->lang[\'man_trans_id\']}{$id}
    {$ibforums->lang[\'man_sub\']}{$sub[\'sub_title\']} $extra
    {$ibforums->lang[\'man_pay\']}{$paid}
    \n
    ', 'show_ticket', '$sub, $id, $paid, $extra=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '\n
    {$ibforums->lang[\'sc_complete\']}
    \n

    \n$desc_string\n

    \n{$ibforums->lang[\'post_manual\']}\n

    \n{$ibforums->lang[\'post_manual_more\']}\n

    \n

    \n
    \n\n
    ', 'do_manual_normal_screen', '$new_sub_id, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '\n
    {$ibforums->lang[\'sc_upgrade_title\']}
    \n

    \n$desc_string\n

    \n{$ibforums->lang[\'post_manual\']}\n

    \n{$ibforums->lang[\'post_manual_more\']}\n

    \n

    \n
    \n\n
    ', 'do_manual_upgrade_screen', '$new_sub_id, $cur_id, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_complete\']}
    \n

    \n{$ibforums->lang[\'sc_upgrade_explain\']}\n

    $desc_string\n

    {$ibforums->lang[\'gw_paypal\']}\n

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

    \n
    \n
    \n
    ', 'do_paypal_normal_recurring_screen', '$ccode, $member_id, $new_sub_id, $unit, $length, $cost, $paypal_email, $sub_title, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_complete\']}
    \n

    \n{$ibforums->lang[\'sc_upgrade_explain\']}\n

    $desc_string\n

    {$ibforums->lang[\'gw_paypal\']}\n

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

    \n
    \n
    \n
    ', 'do_paypal_upgrade_recurring_screen', '$ccode, $member_id, $new_sub_id, $to_pay, $time_left_to_run, $time_left_unit, $unit, $length, $cost, $paypal_email, $sub_title, $cur_tran_id, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_complete\']}
    \n

    \n{$ibforums->lang[\'sc_upgrade_explain\']}\n

    $desc_string\n

    {$ibforums->lang[\'gw_paypal\']}\n

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n

    \n
    \n
    \n
    ', 'do_paypal_normal_screen', '$ccode, $member_id, $new_sub_id, $to_pay, $paypal_email, $sub_title, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_complete\']}
    \n

    \n{$ibforums->lang[\'sc_upgrade_explain\']}\n

    $desc_string\n

    {$ibforums->lang[\'gw_paypal\']}\n

    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n

    \n
    \n
    \n
    ', 'do_paypal_upgrade_screen', '$ccode, $member_id, $new_sub_id, $to_pay, $paypal_email, $sub_title, $cur_tran_id, $desc_string=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_upgrade_title\']}
    \n

    {$ibforums->lang[\'sc_upgrade_explain\']}\n

    {$ibforums->lang[\'sc_upgrade_string\']}\n

    ', 'sub_two_upgrade_summary', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_normal_title\']}
    \n

    {$ibforums->lang[\'sc_upgrade_explain\']}\n

    {$ibforums->lang[\'sc_normal_string\']}\n

    ', 'sub_two_normal_summary', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'sc_available_methods\']}
    \n
    base_url}act=module&module=subscription&upgrade=$upgrade&CODE=paymentscreen&curid=$curid&sub=$sub_chosen&currency=$currency\' method=\'post\'> \n
    \n \n \n \n \n ', 'sub_two_methods_top', '$sub_chosen, $upgrade="", $curid="", $currency=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '\n \n \n', 'sub_two_methods_row', '$mid, $name, $desc=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
     {$ibforums->lang[\'sc_method\']}
    $name
    $desc
    \n
    ', 'sub_two_methods_bottom', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    \n
    \n
    lang[\'s_continue_button2\']}\' class=\'forminput\' />
    \n
    \n
    ', 'sub_two_methods_continue_button', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'s_current_subs\']}
    \n

    {$ibforums->lang[\'s_current_explain\']}

    \n
    \n \n \n \n \n \n \n \n \n ', 'sub_choose_current_top', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '\n \n \n \n \n \n \n', 'sub_choose_current_row', '$id, $name, $start, $end, $paid, $state', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'s_transid\']}{$ibforums->lang[\'s_detail\']}{$ibforums->lang[\'s_started\']}{$ibforums->lang[\'s_end\']}{$ibforums->lang[\'s_paid\']}{$ibforums->lang[\'s_status\']}
    $id$name$start$end{$paid}$state
    \n
    ', 'sub_choose_current_bottom', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '

    {$ibforums->lang[\'s_current_bottom\']}

    ', 'sub_page_bottom', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'s_dead_subs\']}
    \n

    {$ibforums->lang[\'s_dead_explain\']}

    \n
    \n \n \n \n \n \n \n \n \n ', 'sub_choose_dead_top', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '\n \n \n \n \n \n \n', 'sub_choose_dead_row', '$id, $name, $start, $end, $paid, $state', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'s_transid\']}{$ibforums->lang[\'s_detail\']}{$ibforums->lang[\'s_started\']}{$ibforums->lang[\'s_end\']}{$ibforums->lang[\'s_paid\']}{$ibforums->lang[\'s_status\']}
    $id$name$start$end{$paid}$state
    \n
    \n
    ', 'sub_choose_dead_bottom', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    \n
    {$ibforums->lang[\'s_upgrade_subs\']}
    \n

    {$ibforums->lang[\'s_upgrade_explain\']}

    \n
    \n
    base_url}act=module&module=subscription&upgrade=1&CODE=paymentmethod&curid=$cur_id&currency=$currency\' method=\'post\'> \n
    \n \n \n \n \n \n \n ', 'sub_choose_upgrade_top', '$cur_id="", $currency=""', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '\n \n \n \n \n', 'sub_choose_upgrade_row', '$id, $name, $desc, $cost, $duration', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
     {$ibforums->lang[\'s_detail\']}{$ibforums->lang[\'s_end\']}{$ibforums->lang[\'s_balance_cost\']}
    $name
    $desc
    $duration{$cost}
    \n
    \n
    \n
    lang[\'s_continue_button\']}\' class=\'forminput\' />
    \n
    \n
    ', 'sub_choose_upgrade_bottom', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'s_available_subs\']}
    \n

    {$ibforums->lang[\'s_explain\']}

    \n
    \n
    base_url}act=module&module=subscription&CODE=paymentmethod&currency=$currency\' method=\'post\'> \n
    \n \n \n \n \n \n \n ', 'sub_choose_new_top', '$currency', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '\n \n \n \n \n', 'sub_choose_new_row', '$id, $name, $desc, $cost, $duration', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
     {$ibforums->lang[\'s_detail\']}{$ibforums->lang[\'s_duration\']}{$ibforums->lang[\'s_cost\']}
    $name
    $desc
    $duration{$cost}
    \n
    \n
    \n
    lang[\'s_continue_button\']}\' class=\'forminput\' />
    \n
    \n
    ', 'sub_choose_new_bottom', '', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '
    {$ibforums->lang[\'cc_currency_in\']} $select lang[\'cc_change\']}\' class=\'forminput\' />
    ', 'sub_currency_change_form', '$select, $url', 1035406235, 0);||~&~||(1, 'skin_subscriptions', '', 'sub_currency_change_bottom', '', 1035406235, 0);||~&~||(1, 'skin_topic', '{$ibforums->lang[\'tt_warn\']} ({$percent}%)', 'warn_level_warn', '$id, $percent', 1035406235, 0);||~&~||(1, 'skin_topic', '< $min ( {$level} ) $max >', 'warn_level_rating', '$id, $level,$min=0,$max=10', 1035406235, 0);||~&~||(1, 'skin_topic', 'base_url}act=report&f={$data[\'forum_id\']}&t={$data[\'topic_id\']}&p={$data[\'pid\']}&st={$ibforums->input[\'st\']}\'><{P_REPORT}>', 'report_link', '$data', 1035406235, 0);||~&~||(1, 'skin_topic', '{$ibforums->lang[\'ip\']}: $data', 'ip_show', '$data', 1035406235, 0);||~&~||(1, 'skin_topic', '( base_url}act=ST&f=$fid&t=$tid&view=getnewpost\'>{$ibforums->lang[\'go_new_post\']} )', 'golastpost_link', '$fid, $tid', 1035406235, 0);||~&~||(1, 'skin_topic', '
    \n
    base_url}act=mmod&t=$tid\' method=\'post\'>\n\n lang[\'mm_submit\']}\' class=\'forminput\' />
    ', 'mm_end', '', 1035406235, 0);||~&~||(1, 'skin_topic', '
    \n
    base_url}\'>\n \n \n input[\'st\']}\' />\n \n \n  lang[\'jmp_go\']}\' class=\'forminput\' />
    \n
    ', 'Mod_Panel', '$data, $fid, $tid, $key=""', 1035406235, 0);||~&~||(1, 'skin_topic', '', 'mod_wrapper', '$id="", $text=""', 1035406235, 0);||~&~||(1, 'skin_topic', '\n
    \n
    \n
    \n \n \n \n \n input[\'st\']}\' />\n member[\'auto_track\']}\' />\n \n \n
    \n
    <{CAT_IMG}> {$ibforums->lang[\'qr_title\']}
    \n
    \n \n

    \n {$ibforums->lang[\'show_emo\']} |\n  {$ibforums->lang[\'qr_add_smilie\']} |\n  {$ibforums->lang[\'qr_add_sig\']}\n

    \n lang[\'qr_submit\']}\' class=\'forminput\' tabindex="2" accesskey="s" /> \n lang[\'qr_more_opts\']}\' class=\'forminput\' />\n    lang[\'qr_closeit\']}\' class=\'forminput\' />\n
    \n
    \n
    \n
    ', 'quick_reply_box_open', '$fid="",$tid="",$show="hide", $key=""', 1035406235, 0);||~&~||(1, 'skin_topic', '\n <{T_QREPLY}>', 'quick_reply_box_closed', '', 1035406235, 0);||~&~||(1, 'skin_topic', '{$ibforums->lang[\'new_poll_link\']} | ', 'start_poll_link', '$fid, $tid', 1035406235, 0);||~&~||(1, 'skin_topic', '\n \n\n\n\n\n \n \n\n
    {$data[\'TOPIC\'][\'SHOW_PAGES\']} {$data[\'TOPIC\'][\'go_new\']}{$data[TOPIC][REPLY_BUTTON]}base_url}act=Post&CODE=00&f={$data[FORUM][\'id\']}\' title=\'{$ibforums->lang[\'start_new_topic\']}\'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    \n
    \n
    \n
    <{CAT_IMG}> {$data[\'TOPIC\'][\'title\']}{$data[\'TOPIC\'][\'description\']}
    \n \n ', 'PageTop', '$data', 1035406235, 0);||~&~||(1, 'skin_topic', '\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$author[\'name\']}\n \n \n \n
    \n {$post[\'post_icon\']}{$ibforums->lang[\'posted_on\']} {$post[\'post_date\']}\n
    \n \n \n \n
    \n {$post[\'report_link\']}{$post[\'delete_button\']}{$post[\'edit_button\']}base_url}act=Post&CODE=06&f={$ibforums->input[f]}&t={$ibforums->input[t]}&p={$post[\'pid\']}\'><{P_QUOTE}>\n
    \n \n
    \n {$author[\'avatar\']}

    \n {$author[\'title\']}
    \n {$author[\'member_rank_img\']}

    \n {$author[\'member_group\']}
    \n {$author[\'member_posts\']}
    \n {$author[\'member_number\']}
    \n {$author[\'member_joined\']}

    \n {$author[\'warn_text\']} {$author[\'warn_minus\']}{$author[\'warn_img\']}{$author[\'warn_add\']}

    \n \n vars[\'img_url\']}/spacer.gif\' alt=\'\' width=\'160\' height=\'1\' />
    \n
    \n \n
    {$post[\'post\']} {$post[\'attachment\']}
    \n {$post[\'signature\']}\n \n
    {$post[\'ip_address\']}\n \n \n \n
    \n {$author[\'addresscard\']}{$author[\'message_icon\']}{$author[\'email_icon\']}{$author[\'website_icon\']}{$author[\'integ_icon\']}{$author[\'icq_icon\']}{$author[\'aol_icon\']}{$author[\'yahoo_icon\']}{$author[\'msn_icon\']}\n
    \n \n \n \n \n
    \n
    ', 'RenderRow', '$post, $author', 1035406235, 0);||~&~||(1, 'skin_topic', '\n \n
    \n \n
    \n\n\n \n \n\n
    {$data[TOPIC][SHOW_PAGES]}{$data[TOPIC][REPLY_BUTTON]}base_url}act=Post&CODE=00&f={$data[FORUM][\'id\']}\' title=\'{$ibforums->lang[\'start_new_topic\']}\'><{A_POST}>{$data[TOPIC][POLL_BUTTON]}
    \n\n\n
    \n\n
    {$data[FORUM][\'JUMP\']}
    \n\n
    ', 'TableFooter', '$data', 1035406235, 0);||~&~||(1, 'skin_topic', '', 'topic_opts_open', '$fid, $tid', 1035406235, 0);||~&~||(1, 'skin_topic', '<{T_OPTS}>', 'topic_opts_closed', '', 1035406235, 0);||~&~||(1, 'skin_topic', '
    {$ibforums->lang[\'active_users_title\']} ({$ibforums->lang[\'active_users_detail\']})
    \n
    {$ibforums->lang[\'active_users_members\']} {$active[\'names\']}
    ', 'topic_active_users', '$active=array()', 1035406235, 0);||~&~||(1, 'skin_topic', '
    \n
    \n{$ibforums->lang[\'pic_attach\']}\n
    \nvars[\'upload_url\']}/$file_name\' class=\'attach\' alt=\'{$ibforums->lang[\'pic_attach\']}\' />', 'Show_attachments_img', '$file_name', 1035406235, 0);||~&~||(1, 'skin_topic', '
    \n
    \n{$ibforums->lang[\'pic_attach_thumb\']}\n
    \nbase_url}act=Attach&type=post&id=$aid\' title=\'{$ibforums->lang[\'pic_attach_thumb\']}\' target=\'_blank\'>vars[\'upload_url\']}/$file_name\' width=\'$width\' height=\'$height\' class=\'attach\' alt=\'{$ibforums->lang[\'pic_attach\']}\' />', 'Show_attachments_img_thumb', '$file_name, $width, $height, $aid', 1035406235, 0);||~&~||(1, 'skin_topic', '
    \n
    \n{$ibforums->lang[\'attached_file\']} ( {$ibforums->lang[\'attach_hits\']}: {$data[\'hits\']} )\n
    \nbase_url}act=Attach&type=post&id={$data[\'pid\']}\' title=\'{$ibforums->lang[\'attach_dl\']}\' target=\'_blank\'>vars[\'mime_img\']}/{$data[\'image\']}\' border=\'0\' alt=\'{$ibforums->lang[\'attached_file\']}\' />\n base_url}act=Attach&type=post&id={$data[\'pid\']}\' title=\'{$ibforums->lang[\'attach_dl\']}\' target=\'_blank\'>{$data[\'name\']}', 'Show_attachments', '$data', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n
    \n\n\n
    {$ibforums->lang[\'pph_title\']}
    \n

    {$ibforums->lang[\'pph_desc\']}
    {$ibforums->lang[\'pph_max\']}

    \n
    {$ibforums->lang[\'pph_current\']}
    \n
    \n

    $cur_photo
    $cur_type $show_size

    \n
    \n
    {$ibforums->lang[\'pph_change\']}
    \n\n\n \n \n\n\n\n
    {$ibforums->lang[\'pph_url\']}  ({$ibforums->lang[\'pp_restore\']})
    \n
    \n \n     \n
    \n
    ', 'photo_page', '$cur_photo, $cur_type, $url_photo, $show_size, $key=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n  \n {$ibforums->lang[\'pph_autosize\']}
    ({$ibforums->lang[\'pph_as_desc\']})\n', 'photo_page_autosize', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n  \n {$ibforums->lang[\'width\']}   {$ibforums->lang[\'height\']} \n', 'photo_page_mansize', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n {$ibforums->lang[\'pph_upload\']}\n \n', 'photo_page_upload', '$max_filesize', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n
    \n\n\n
    {$ibforums->lang[\'change_email_title\']}
    \n

    $txt

    \n\n\n \n \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'ce_new_email\']}
    {$ibforums->lang[\'ce_new_email2\']}
    {$ibforums->lang[\'ec_passy\']}
    \n\n
    \n
    ', 'email_change', '$txt="", $msg=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'ras_title\']}
    \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'ras_numbers\']}\n \n base_url}act=UserCP&CODE=show_image&rc={$regid}&p=1\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=UserCP&CODE=show_image&rc={$regid}&p=2\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=UserCP&CODE=show_image&rc={$regid}&p=3\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=UserCP&CODE=show_image&rc={$regid}&p=4\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=UserCP&CODE=show_image&rc={$regid}&p=5\' border=\'0\' alt=\'Code Bit\' />\n  base_url}act=UserCP&CODE=show_image&rc={$regid}&p=6\' border=\'0\' alt=\'Code Bit\' />\n
    {$ibforums->lang[\'ras_text\']}
    ', 'email_change_img', '$regid=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'ras_title\']}
    \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'ras_numbers\']}\n \n base_url}act=UserCP&CODE=show_image&rc={$regid}\' border=\'0\' alt=\'Code Bit\' />\n
    {$ibforums->lang[\'ras_text\']}
    ', 'email_change_gd', '$regid=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    \n\n\n
    {$ibforums->lang[\'account_pass_title\']}
    \n

    {$ibforums->lang[\'pass_change_text\']}

    \n\n\n \n \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'account_pass_old\']}
    {$ibforums->lang[\'account_pass_new\']}
    {$ibforums->lang[\'account_pass_new2\']}
    \n
    \n
    ', 'pass_change', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n\n
    {$ibforums->lang[\'av_current\']}
    \n
    {$data[\'current_avatar_image\']}
    {$data[\'current_avatar_type\']} {$data[\'current_avatar_dims\']}
    \n
    {$ibforums->lang[\'avatar_pre_title\']}
    \n
    base_url}act=UserCP&CODE=getgallery\' method=\'post\'>\n\n\n \n \n\n
    {$ibforums->lang[\'av_go_gal\']}{$data[\'avatar_galleries\']}  
    \n
    \n
    base_url}auth_key=$key\' method=\'post\' $formextra name=\'creator\' onsubmit="return checkform();">\n\n\n$hidden_field\n\n\n\n\n
    \n \n    \n
    \n
    ', 'avatar_main', '$data, $formextra="", $hidden_field="", $key=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'av_gallery_title\']} $title
    \n
    base_url}act=UserCP&CODE=getgallery\' method=\'post\'>\n
    {$ibforums->lang[\'av_gall_jump\']} $av_gals  
    \n
    \n
    base_url}auth_key=$key\' method=\'post\'>\n\n\n\n', 'avatar_gallery_start_table', '$title="", $av_gals="", $current_folder, $key=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    \n
    \n \n    \n
    \n
    ', 'avatar_gallery_end_table', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '', 'avatar_gallery_start_row', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '', 'avatar_gallery_end_row', '', 1035406235, 0);||~&~||(1, 'skin_ucp', 'txt
     ', 'avatar_gallery_cell_row', '$img, $txt, $form', 1035406235, 0);||~&~||(1, 'skin_ucp', ' ', 'avatar_gallery_blank_row', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n\n
     {$ibforums->lang[\'av_autosize\']}
    ({$ibforums->lang[\'av_as_desc\']})
    ', 'avatar_autosize', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n\n
     {$ibforums->lang[\'width\']}   {$ibforums->lang[\'height\']} 
    ', 'avatar_mansize', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'avatar_url_title\']}
    ', 'avatar_external_title', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'av_settings\']}
    \n

    {$ibforums->lang[\'av_text_url\']} {$ibforums->lang[\'av_text_upload\']}
    {$ibforums->lang[\'av_allowed_files\']}

    ', 'avatar_limits', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n\n
    {$ibforums->lang[\'av_upload\']}
    ', 'avatar_upload_field', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n\n \n \n\n
    {$ibforums->lang[\'av_url\']}  ({$ibforums->lang[\'pp_restore\']})
    ', 'avatar_url_field', '$avatar', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n
    \n\n\n\n
    {$ibforums->lang[\'cp_current_sig\']}
    \n
    $sig
    \n
    {$ibforums->lang[\'cp_edit_sig\']}
    \n\n \n \n \n\n
    \n  {$ibforums->lang[\'bbcode_guided\']}
    \n  {$ibforums->lang[\'bbcode_normal\']}\n \n
    \n \n \n \n \n \n   {$ibforums->lang[\'js_close_all_tags\']}\n
    \n \n \n \n \n \n \n \n
    \n \n
    \n {$ibforums->lang[\'hb_open_tags\']}: \n
    \n\n
    lang[\'cp_submit_sig\']}\' class="forminput" />
    \n
    ', 'signature', '$sig, $t_sig, $key', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n
    \n\n\n\n
    {$ibforums->lang[\'profile_title\']}
    \n\n\n\n\n \n \n \n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n\n \n\n
    {$ibforums->lang[\'website\']}
    {$ibforums->lang[\'icq\']}
    {$ibforums->lang[\'aol\']}
    {$ibforums->lang[\'yahoo\']}
    {$ibforums->lang[\'msn\']}
    {$ibforums->lang[\'integ_msg\']}
    {$ibforums->lang[\'location\']}
    ({$ibforums->lang[\'check_length\']})
    {$ibforums->lang[\'interests\']}
    ({$ibforums->lang[\'check_length\']})
    \n
    ', 'personal_panel', '$Profile', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n {$ibforums->lang[\'birthday\']}\n \n \n \n \n \n ', 'birthday', '$day,$month,$year', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n {$ibforums->lang[\'member_title\']}\n \n ', 'member_title', '$title', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'cf_required\']}
    \n ', 'required_title', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    ', 'required_end', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n $title
    $desc\n $content\n ', 'field_entry', '$title, $desc="", $content', 1035406235, 0);||~&~||(1, 'skin_ucp', '', 'field_textinput', '$name, $value=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '', 'field_dropdown', '$name, $options', 1035406235, 0);||~&~||(1, 'skin_ucp', '', 'field_textarea', '$name, $value', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n\n\n \n \n\n \n\n
    \n
    {$ibforums->lang[\'tt_menu\']}
    \n \n \n
    {$ibforums->lang[\'m_messenger\']}
    \n

    \n · {$ibforums->lang[\'mess_new\']}
    \n · {$ibforums->lang[\'mess_inbox\']}
    \n \n · {$ibforums->lang[\'mi_prune_msg\']}
    \n · {$ibforums->lang[\'mess_folders\']}
    \n · {$ibforums->lang[\'mess_contact\']}
    \n · {$ibforums->lang[\'mess_archive\']}
    \n · {$ibforums->lang[\'mess_saved\']}
    \n · {$ibforums->lang[\'mess_tracker\']}
    \n

    \n \n \n
    {$ibforums->lang[\'m_tracker\']}
    \n

    \n · {$ibforums->lang[\'m_view_subs\']}
    \n · {$ibforums->lang[\'m_view_forum\']}
    \n

    \n \n
    {$ibforums->lang[\'m_personal\']}
    \n

    \n · {$ibforums->lang[\'m_contact_info\']}
    \n · {$ibforums->lang[\'m_sig_info\']}
    \n · {$ibforums->lang[\'m_avatar_info\']}
    \n · {$ibforums->lang[\'m_change_photo\']}
    \n

    \n \n
    {$ibforums->lang[\'m_options\']}
    \n

    \n \n · {$ibforums->lang[\'m_email_opt\']}
    \n · {$ibforums->lang[\'m_board_opt\']}
    \n · {$ibforums->lang[\'m_skin_lang\']}
    \n · {$ibforums->lang[\'m_email_change\']}
    \n · {$ibforums->lang[\'m_passy_opt\']}\n

    \n
    \n
    {$ibforums->lang[\'welcome\']}
    ', 'Menu_bar', '$base_url', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n
    {$ibforums->lang[\'m_top_list\']}
    \n

    \n · base_url}act=module&module=toplist\'>{$ibforums->lang[\'tsl_home\']}
    \n · base_url}act=module&module=toplist&CODE=01\'>{$ibforums->lang[\'tsl_your_sites\']}
    \n

    ', 'tsl_links', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '· $name
    ', 'menu_bar_new_link', '$url, $name', 1035406235, 0);||~&~||(1, 'skin_ucp', '  '-- base_url}act=Msg&CODE=01&VID=$id\'>$real
    ', 'menu_bar_msg_folder_link', '$id, $real', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    \n\n
    ', 'CP_end', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'stats_header\']}
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'email_address\']}{$member[MEMBER_EMAIL]}
    {$ibforums->lang[\'number_posts\']}{$member[MEMBER_POSTS]}
    {$ibforums->lang[\'registered\']}{$member[DATE_REGISTERED]}
    {$ibforums->lang[\'daily_average\']}{$member[DAILY_AVERAGE]}
    \n \n
    {$ibforums->lang[\'messenger_summary\']}
    \n \n \n \n \n \n \n \n \n \n
    {$ibforums->lang[\'total_messages\']}{$member[\'total_messages\']} {$member[\'full_percent\']}
    {$ibforums->lang[\'messages_left\']}{$member[\'space_free\']} {$member[\'full_messenger\']}
    \n \n
    {$ibforums->lang[\'note_pad\']}
    \n
    \n

    \n

    \n \n session_id}\' />\n \n \n
    \n {$ibforums->lang[\'ta_size\']} \n lang[\'submit_notepad\']}\' class=\'forminput\' />\n
    \n

    \n
    ', 'splash', '$member', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'dead_section_title\']}
    \n

    \n{$ibforums->lang[\'dead_section_text\']}\n

    ', 'dead_section', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    \n\n\n
    {$ibforums->lang[\'settings_time\']}
    \n

    \n{$ibforums->lang[\'settings_time_txt\']} $time\n
    \n$time_select\n

    \n  {$ibforums->lang[\'dst_box\']}\n

    ', 'settings_header', '$Profile, $time_select, $time, $dst_check, $key=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n\n\n\n
    {$ibforums->lang[\'settings_title\']}
    \n\n\n \n \n\n
    {$ibforums->lang[\'settings_lang_txt\']}$lang_select
    ', 'skin_lang_header', '$lang_select, $key=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'settings_skin\']}
    \n\n\n \n \n\n
    {$ibforums->lang[\'settings_skin_txt\']}$skin    lang[\'cp_skin_preview\']}\' class=\'forminput\' onclick=\'do_preview()\' />
    ', 'settings_skin', '$skin', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    lang[\'settings_submit\']}\' class=\'forminput\' />
    \n
    ', 'skin_lang_end', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'settings_display\']}
    \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n\n \n \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'settings_viewsig\']}{$data[SIG]}
    {$ibforums->lang[\'settings_viewimg\']}{$data[IMG]}
    {$ibforums->lang[\'settings_viewava\']}{$data[AVA]}
    {$ibforums->lang[\'settings_dopopup\']}{$data[POP]}
    {$ibforums->lang[\'open_qr\']}
    {$data[QR]}
    {$ibforums->lang[\'pp_number_posts\']}
    {$ibforums->lang[\'pp_number_topics\']}
    \n {$ibforums->lang[\'need_cookie_yum_yum\']}\n
    lang[\'settings_submit\']}\' class=\'forminput\' />
    \n', 'settings_end', '$data', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    \n\n\n
    {$ibforums->lang[\'privacy_settings\']}
    \n
    \n\n\n \n \n \n\n \n \n\n
    {$ibforums->lang[\'hide_email\']}
    {$ibforums->lang[\'admin_send\']}
    \n
    \n
    {$ibforums->lang[\'board_prefs\']}
    \n
    \n\n\n \n \n\n\n \n \n\n\n \n \n\n
    {$ibforums->lang[\'send_full_msg\']}
    {$ibforums->lang[\'pm_reminder\']}
    {$ibforums->lang[\'auto_track\']}
    \n
    \n
    \n
    ', 'email', '$Profile', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$ibforums->lang[\'forum_subs_header\']}
    \n
    \n
    \n \n \n \n \n \n \n \n ', 'forum_subs_header', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n ', 'forum_subs_row', '$data', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n ', 'forum_subs_none', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n\n
     {$ibforums->lang[\'ft_forum\']}{$ibforums->lang[\'ft_topics\']}{$ibforums->lang[\'ft_posts\']}{$ibforums->lang[\'ft_last_post\']}
    {$data[\'folder_icon\']}\n base_url}act=SF&f={$data[\'id\']}\'>{$data[\'name\']}\n
    {$data[\'description\']}\n

    [ base_url}act=UserCP&CODE=51&f={$data[\'id\']}\'>{$ibforums->lang[\'ft_unsub\']} ]\n
    {$data[\'topics\']}{$data[\'posts\']}{$data[\'last_post\']}
    {$ibforums->lang[\'in\']} {$data[\'last_topic\']}
    {$ibforums->lang[\'by\']} {$data[\'last_poster\']}
    {$ibforums->lang[\'forum_subs_none\']}
    base_url}act=UserCP&CODE=51&f=all\'>{$ibforums->lang[\'ft_unsub_all\']}
    \n
    ', 'forum_subs_end', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n
    {$ibforums->lang[\'subs_header\']}
    \n
    \n\n\n
    \n
    \n\n\n \n \n \n \n \n \n', 'subs_header', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n \n \n \n \n \n', 'subs_row', '$data', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n ', 'subs_none', '', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n ', 'subs_forum_row', '$fid, $fname', 1035406235, 0);||~&~||(1, 'skin_ucp', '\n \n\n
     {$ibforums->lang[\'subs_topic\']}{$ibforums->lang[\'subs_replies\']}{$ibforums->lang[\'subs_view\']}{$ibforums->lang[\'subs_last_post\']}
    {$data[\'folder_icon\']}base_url}act=ST&f={$data[\'forum_id\']}&t={$data[\'tid\']}\'>{$data[\'title\']} ( base_url}act=ST&f={$data[\'forum_id\']}&t={$data[\'tid\']}\' target=\'_blank\'>{$ibforums->lang[\'new_window\']} )
    {$data[\'description\']}{$ibforums->lang[\'subs_start\']} {$data[\'start_date\']}
    {$data[\'posts\']}{$data[\'views\']}{$data[\'last_post_date\']}
    {$ibforums->lang[\'subs_by\']} {$data[\'last_poster\']}
    {$ibforums->lang[\'subs_none\']}
    $fname
    lang[\'subs_delete\']}\'>  {$ibforums->lang[\'with_selected\']}
    \n
    \n
    \n
    $text
    \n
    \n
    base_url}act=UserCP&CODE=26\' method=\'post\'>\n {$ibforums->lang[\'show_topics_from\']} \n lang[\'jmp_go\']}\'>\n
    \n
    ', 'subs_end', '$text="", $days=""', 1035406235, 0);||~&~||(1, 'skin_ucp', '
    {$data}
    ', 'forum_jump', '$data, $menu_extra=""', 1035406235, 0); \ No newline at end of file diff --git a/upload/ipchat.php b/upload/ipchat.php new file mode 100644 index 00000000..edc38fb1 --- /dev/null +++ b/upload/ipchat.php @@ -0,0 +1,248 @@ + IP Chat => IPB Bridge Script +| > Script written by Matt Mecham +| > Date started: 17th February 2003 +| ++-------------------------------------------------------------------------- +*/ + +$root_path = './'; + +//---------------------------------------------- +// END OF USER EDITABLE COMPONENTS +//--------------------------------------------- + +require $root_path."conf_global.php"; + +define( 'DENIED', 0 ); +define( 'ACCESS', 1 ); +define( 'ADMIN' , 2 ); + +$db_info = array(); + +$db_info['host'] = $INFO['sql_host']; +$db_info['user'] = $INFO['sql_user']; +$db_info['pass'] = $INFO['sql_pass']; +$db_info['database'] = $INFO['sql_database']; +$db_info['tbl_prefix'] = $INFO['sql_tbl_prefix']; + +$allowed_groups = $INFO['chat_admin_groups']; +$access_groups = $INFO['chat_access_groups']; +$autologin = 0; +$allow_guest_access = $INFO['chat_allow_guest'] == 1 ? ACCESS : DENIED; + +// Stupid PHP changing it's mind on HTTP args + +$username = $_GET['username'] != "" ? $_GET['username'] : $HTTP_GET_VARS['username']; +$password = $_GET['password'] != "" ? $_GET['password'] : $HTTP_GET_VARS['password']; +$ip = $_GET['ip'] != "" ? $_GET['ip'] : $HTTP_GET_VARS['ip']; + +//---------------------------------------------- +// Test for autologin. +//---------------------------------------------- + +if ( preg_match( "/^(?:[0-9a-z]){32}$/", $password ) ) +{ + $autologin = 1; +} + + +// Remove URL encoding (%20, etc) + +$username = clean_value(urldecode(trim($username))); +$password = clean_value(urldecode(trim($password))); +$ip = clean_value(urldecode(trim($ip))); + +//---------------------------------------------- +// Main code +//---------------------------------------------- + +// Start off with the lowest accessibility + +$output_int = $allow_guest_access; +$output_name = ""; + + + +$DB = @mysql_connect( $db_info['host'], $db_info['user'], $db_info['pass'] ); + +if ( ! @mysql_select_db( $db_info['database'] ) ) +{ + die_nice(); + + //-- script exits --// +} + +//------------------------------ +// Attempt to find the user +//------------------------------ + +if ( ! $autologin ) +{ + $md5_password = md5($password); +} +else +{ + $md5_password = $password; +} + +$query_id = @mysql_query("SELECT m.mgroup, m.password, m.name, m.id FROM {$db_info['tbl_prefix']}members m + WHERE m.name='".addslashes($username)."' LIMIT 1" + , $DB ); + +if ( ! $query_id ) +{ + die_nice(); + + //-- script exits --// +} + + +if ( ! $member = @mysql_fetch_array( $query_id, MYSQL_ASSOC ) ) +{ + // No member found - allow guest access? + + die_nice($allow_guest_access); + + //-- script exits --// +} + + +@mysql_close(); + + +//------------------------------ +// Check password - member exists +//------------------------------ + +if ( $password != "" ) +{ + // Password was entered.. + + if ( $md5_password != $member['password'] ) + { + // Password incorrect.. + + die_nice(); + + //-- script exits --// + } + else + { + $output_int = ACCESS; + } +} +else +{ + // No password entered - die! + // Do not allow guest access on reg. name + + die_nice(); + + //-- script exits --// +} + + +//------------------------------ +// Do we have any access? +//------------------------------ + + +if ( ! preg_match( "/(^|,)".$member['mgroup']."(,|$)/", $access_groups ) ) +{ + die_nice(); +} + +//------------------------------ +// Do we have admin access? +//------------------------------ + +if ( preg_match( "/(^|,)".$member['mgroup']."(,|$)/", $allowed_groups ) ) +{ + $output_int = ADMIN; +} + + +//------------------------------ +// Spill the beans +//------------------------------ + +print $output_int; + +exit(); + + +function die_nice( $access=0 ) +{ + // Simply error out silently, showing guest access only for the user + @mysql_close(); + print $access; + exit(); +} + +//------------------------------ +// Var cleaner +//------------------------------ + +function clean_value($val) +{ + global $INFO; + + if ($val == "") + { + return ""; + } + + $val = str_replace( " ", " ", $val ); + + if ( $INFO['strip_space_chr'] ) + { + $val = str_replace( chr(0xCA), "", $val ); //Remove sneaky spaces + } + + $val = str_replace( "&" , "&" , $val ); + $val = str_replace( "" , "-->" , $val ); + $val = preg_replace( "/"; + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Members using: " . $perms['perm_name'] ); + + $outer = $DB->query("SELECT id, name, email, posts, org_perm_id FROM ibf_members WHERE (org_perm_id IS NOT NULL AND org_perm_id <> 0) ORDER BY name"); + + while( $r = $DB->fetch_row($outer) ) + { + $exp_pid = explode( ",", $r['org_perm_id'] ); + + foreach( explode( ",", $r['org_perm_id'] ) as $pid ) + { + if ( $pid == $IN['id'] ) + { + if ( count($exp_pid) > 1 ) + { + $extra = "
  • Also using: "; + + $DB->query("SELECT * FROM ibf_forum_perms WHERE perm_id IN ({$r['org_perm_id']}) AND perm_id <> {$IN['id']}"); + + while ( $mr = $DB->fetch_row() ) + { + $extra .= $mr['perm_name'].","; + } + + $extra = preg_replace( "/,$/", "", $extra ); + + $extra .= ""; + } + else + { + $extra = ""; + } + + $ADMIN->html .= $SKIN->add_td_row( array( "
    {$r['name']}
    +
  • Posts: {$r['posts']} +
  • Email: {$r['email']} + $extra" , + "• Remove This Mask +
    • Remove All Masks +

    • Edit Member", + ) ); + } + } + } + + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->print_popup(); + + } + //+--------------------------------------------------------------------------------- // - // Delete a group + // Member group /forum mask permission form thingy doodle do yes. // //+--------------------------------------------------------------------------------- + + function permsplash() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_title = "Forum Permission Mask [ HOME ]"; + + $ADMIN->page_detail = "You can manage your forum permission masks from this section."; + + $ADMIN->page_detail .= "
    Used by Groups relates to the member groups that use this permission mask +
    Used by Members relates to the number of members that have this permission mask set to over ride the group used permission mask +
    Preview the forums this mask has access to in a quick, convenient format + "; + + + //+------------------------------------------- + // Get the names for the perm masks w/id + //+------------------------------------------- + + $perms = array(); + + $DB->query("SELECT * FROM ibf_forum_perms"); + + while( $r = $DB->fetch_row() ) + { + $perms[ $r['perm_id'] ] = $r['perm_name']; + } + + //+------------------------------------------- + // Get the number of members using this mask + // as an over ride + //+------------------------------------------- + + $mems = array(); + + $DB->query("SELECT COUNT(id) as count, org_perm_id FROM ibf_members WHERE (org_perm_id IS NOT NULL AND org_perm_id <> 0) GROUP by org_perm_id"); + + while( $r = $DB->fetch_row() ) + { + if ( strstr($r['org_perm_id'] , "," ) ) + { + foreach( explode( ",", $r['org_perm_id'] ) as $pid ) + { + $mems[ $pid ] += $r['count']; + } + } + else + { + $mems[ $r['org_perm_id'] ] += $r['count']; + } + } + + //+------------------------------------------- + // Get the member group names and the mask + // they use + //+------------------------------------------- + + $groups = array(); + + $DB->query("SELECT g_id, g_title, g_perm_id FROM ibf_groups"); + + while( $r = $DB->fetch_row() ) + { + if ( strstr($r['g_perm_id'] , "," ) ) + { + foreach( explode( ",", $r['g_perm_id'] ) as $pid ) + { + $groups[ $pid ][] = $r['g_title']; + } + } + else + { + $groups[ $r['g_perm_id'] ][] = $r['g_title']; + } + } + + //+------------------------------------------- + // Print the splash screen + //+------------------------------------------- + + $SKIN->td_header[] = array( "Mask Name" , "20%" ); + $SKIN->td_header[] = array( "Used by Group(s)" , "20%" ); + $SKIN->td_header[] = array( "Used by Mem(s)" , "20%" ); + $SKIN->td_header[] = array( "Preview" , "10%" ); + $SKIN->td_header[] = array( "Edit" , "15%" ); + $SKIN->td_header[] = array( "Delete" , "15%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->js_pop_win(); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Forum Permission Masks" ); + + foreach( $perms as $id => $name ) + { + $groups_used = ""; + + $is_active = 0; + + if ( is_array( $groups[ $id ] ) ) + { + foreach( $groups[ $id ] as $bleh => $g_title ) + { + $groups_used .= $g_title . "
    "; + } + + $is_active = 1; + + } + else + { + $groups_used = "
    None
    "; + } + + $mems_used = 0; + + if ( $mems[ $id ] > 0 ) + { + $is_active = 1; + $mems_used = $mems[ $id ] . " (View)"; + } + + if ( $is_active > 0 ) + { + $delete = "Can't, in use"; + } + else + { + $delete = "Delete"; + } + + $ADMIN->html .= $SKIN->add_td_row( array( "$name" , + "$groups_used", + "
    $mems_used
    ", + "
    Preview
    ", + "
    Edit
    ", + "
    $delete
    ", + ) ); + + } + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + + $dlist = array(); + + $dlist[] = array( 'none', 'Do not inherit' ); + + foreach( $perms as $id => $name ) + { + $dlist[] = array( $id, $name ); + } + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'dopermadd' ), + 2 => array( 'act' , 'group' ), + ) ); + + + $SKIN->td_header[] = array( "{none}" , "60%" ); + $SKIN->td_header[] = array( "{none}" , "40%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Create a new permission mask" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Permission Mask Name" , + $SKIN->form_input( 'new_perm_name' ), + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Inherit forum permission mask from..." , + $SKIN->form_dropdown( 'new_perm_copy', $dlist ), + ) ); + + $ADMIN->html .= $SKIN->end_form("Create"); + + $ADMIN->html .= $SKIN->end_table(); + + + + $ADMIN->output(); + + + } + + + function forum_perms() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -93,16 +848,21 @@ class ad_groups { //+---------------------------------- - $ADMIN->page_title = "User Group Forum Access Permissions"; + $ADMIN->page_title = "Forum Permission Mask [ EDIT ]"; - $ADMIN->page_detail = "This is a quick and convenient way to organise forum access for this member group. If you wish to change multiple group permissions, then you may wish to do so from forum management.

    Simply check the box in the start column if you wish to allow that member group to start new topics in that forum, etc.
    Global indictates that the forum is set to allow all member groups to carry out that action. If you wish to change this, do so from forum control."; + $ADMIN->page_detail = "You can manage your forum permission masks from this section."; + + $ADMIN->page_detail .= "
    Simply check the boxes to allow permission for that action, or uncheck the box to deny permission for that action. +
    Global indicates that all present and future permission masks have access to that action and as such, cannot be changed"; //+---------------------------------- - $DB->query("SELECT g_title, g_id FROM ibf_groups WHERE g_id='".$IN['id']."'"); + $DB->query("SELECT * FROM ibf_forum_perms WHERE perm_id='".$IN['id']."'"); + $group = $DB->fetch_row(); - $gid = $group['g_id']; + $gid = $group['perm_id']; + $gname = $group['perm_name']; //+------------------------------- @@ -111,12 +871,14 @@ class ad_groups { $children = array(); $DB->query("SELECT * from ibf_categories WHERE id > 0 ORDER BY position ASC"); + while ($r = $DB->fetch_row()) { $cats[$r['id']] = $r; } $DB->query("SELECT * from ibf_forums ORDER BY position ASC"); + while ($r = $DB->fetch_row()) { @@ -131,6 +893,31 @@ class ad_groups { } + //+---------------------------------- + //| EDIT NAME + //+---------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'donameedit' ), + 2 => array( 'act' , 'group' ), + 3 => array( 'id' , $gid ), + ) ); + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + $ADMIN->html .= $SKIN->start_table( "Rename Group: ".$group['perm_name'] ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Mask Name" , + $SKIN->form_input("perm_name", $gname ) + ) ); + + $ADMIN->html .= $SKIN->end_form("Edit Name"); + + $ADMIN->html .= $SKIN->end_table(); + + + //+---------------------------------- + //| MAIN FORM //+---------------------------------- $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'dofedit' ), @@ -138,22 +925,20 @@ class ad_groups { 3 => array( 'id' , $gid ), ) ); - $SKIN->td_header[] = array( "Forum Name" , "20%" ); - $SKIN->td_header[] = array( "Posts" , "10%" ); - $SKIN->td_header[] = array( "Topics" , "10%" ); - $SKIN->td_header[] = array( "Start" , "15%" ); - $SKIN->td_header[] = array( "Reply" , "15%" ); + $SKIN->td_header[] = array( "Forum Name" , "40%" ); $SKIN->td_header[] = array( "Read" , "15%" ); + $SKIN->td_header[] = array( "Reply" , "15%" ); + $SKIN->td_header[] = array( "Start" , "15%" ); $SKIN->td_header[] = array( "Upload" , "15%" ); - $ADMIN->html .= $SKIN->start_table( "Forum Access for ".$group['g_title'] ); + $ADMIN->html .= $SKIN->start_table( "Forum Access Permissions for ".$group['perm_name'] ); $last_cat_id = -1; foreach ($cats as $c) { - $ADMIN->html .= $SKIN->add_td_basic( $c['name'], 'center', 'catrow' ); + $ADMIN->html .= $SKIN->add_td_basic( $c['name'], 'left', 'catrow' ); $last_cat_id = $c['id']; @@ -168,7 +953,7 @@ class ad_groups { $start = ""; $reply = ""; $upload = ""; - $global = '
    Global
    '; + $global = '
    Global
    '; if ($r['read_perms'] == '*') { @@ -176,75 +961,81 @@ class ad_groups { } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $r['read_perms'] ) ) { - $read = "
    "; + $read = "
    "; } else { - $read = "
    "; + $read = "
    "; } //--------------------------- + $global = '
    Global
    '; + if ($r['start_perms'] == '*') { $start = $global; } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $r['start_perms'] ) ) { - $start = "
    "; + $start = "
    "; } else { - $start = "
    "; + $start = "
    "; } //--------------------------- + $global = '
    Global
    '; + if ($r['reply_perms'] == '*') { $reply = $global; } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $r['reply_perms'] ) ) { - $reply = "
    "; + $reply = "
    "; } else { - $reply = "
    "; + $reply = "
    "; } //--------------------------- + $global = '
    Global
    '; + if ($r['upload_perms'] == '*') { $upload = $global; } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $r['upload_perms'] ) ) { - $upload = "
    "; + $upload = "
    "; } else { - $upload = "
    "; + $upload = "
    "; } //--------------------------- - if ($r['subwrap'] == 1) + if ($r['subwrap'] == 1 and $r['sub_can_post'] != 1) { $ADMIN->html .= $SKIN->add_td_basic( "> ".$r['name'], 'left', 'catrow2' ); } else { + $css = $r['subwrap'] == 1 ? 'catrow2' : ''; + $ADMIN->html .= $SKIN->add_td_row( array( - "".$r['name']."
    ".$r['description'], - "
    ".$r['posts']."
    ", - "
    ".$r['topics']."
    ", - $start, - $reply, + " - ".$r['name']."", $read, + $reply, + $start, $upload - ) ); + ) , $css ); } if ( ( isset($children[ $r['id'] ]) ) and ( count ($children[ $r['id'] ]) > 0 ) ) @@ -255,7 +1046,7 @@ class ad_groups { $start = ""; $reply = ""; $upload = ""; - $global = '
    Global
    '; + $global = "
    Global
    "; if ($rd['read_perms'] == '*') { @@ -263,67 +1054,71 @@ class ad_groups { } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $rd['read_perms'] ) ) { - $read = "
    "; + $read = "
    "; } else { - $read = "
    "; + $read = "
    "; } //--------------------------- + $global = "
    Global
    "; + if ($rd['start_perms'] == '*') { $start = $global; } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $rd['start_perms'] ) ) { - $start = "
    "; + $start = "
    "; } else { - $start = "
    "; + $start = "
    "; } //--------------------------- + $global = "
    Global
    "; + if ($rd['reply_perms'] == '*') { $reply = $global; } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $rd['reply_perms'] ) ) { - $reply = "
    "; + $reply = "
    "; } else { - $reply = "
    "; + $reply = "
    "; } //--------------------------- + $global = "
    Global
    "; + if ($rd['upload_perms'] == '*') { $upload = $global; } else if ( preg_match( "/(^|,)".$gid."(,|$)/", $rd['upload_perms'] ) ) { - $upload = "
    "; + $upload = "
    "; } else { - $upload = "
    "; + $upload = "
    "; } //--------------------------- $ADMIN->html .= $SKIN->add_td_row( array( - "".$rd['name']."
    ".$rd['description'], - "
    ".$rd['posts']."
    ", - "
    ".$rd['topics']."
    ", - $start, - $reply, + " --- ".$rd['name']."", $read, + $reply, + $start, $upload ) , 'subforum' ); } @@ -340,9 +1135,50 @@ class ad_groups { } + + function edit_name_perm() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------- + // Check for legal ID + //--------------------------- + + if ($IN['id'] == "") + { + $ADMIN->error("Could not resolve that group ID"); + } + + if ( $IN['perm_name'] == "" ) + { + $ADMIN->error("You must enter a name"); + } + + $gid = $IN['id']; + + //--------------------------- + + $DB->query("SELECT * FROM ibf_forum_perms WHERE perm_id='".$IN['id']."'"); + + if ( ! $gr = $DB->fetch_row() ) + { + $ADMIN->error("Not a valid group ID"); + } + + $DB->query("UPDATE ibf_forum_perms SET perm_name='{$IN['perm_name']}' WHERE perm_id='".$IN['id']."'"); + + $ADMIN->save_log("Forum Access Permissions Name Edited for Mask: '{$gr['perm_name']}'"); + + $ADMIN->done_screen("Forum Access Permissions Updated", "Permission Mask Control", "act=group&code=permsplash" ); + + + } + + + function do_forum_perms() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //--------------------------- // Check for legal ID @@ -357,7 +1193,7 @@ class ad_groups { //--------------------------- - $DB->query("SELECT g_id, g_title FROM ibf_groups WHERE g_id='".$IN['id']."'"); + $DB->query("SELECT * FROM ibf_forum_perms WHERE perm_id='".$IN['id']."'"); if ( ! $gr = $DB->fetch_row() ) { @@ -555,9 +1391,9 @@ class ad_groups { } - $ADMIN->save_log("Forum Access Permissions Edited for group '{$gr['g_title']}'"); + $ADMIN->save_log("Forum Access Permissions Edited for Mask: '{$gr['perm_name']}'"); - $ADMIN->done_screen("Forum Access Permissions Updated", "Group Control", "act=group" ); + $ADMIN->done_screen("Forum Access Permissions Updated", "Permission Mask Control", "act=group&code=permsplash" ); } @@ -569,7 +1405,7 @@ class ad_groups { function delete_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -643,12 +1479,11 @@ class ad_groups { $ADMIN->output(); - } function do_delete() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -682,6 +1517,10 @@ class ad_groups { $nq = $DB->query("UPDATE ibf_groups SET g_promotion='-1&-1' WHERE g_id='".$row['g_id']."'"); } + // Remove from moderators table + + $DB->query("DELETE FROM ibf_moderators WHERE is_group=1 AND group_id=".$IN['id']); + $ADMIN->save_log("Member Group '{$IN['name']}' removed"); $ADMIN->done_screen("Group Removed", "Group Control", "act=group" ); @@ -697,7 +1536,7 @@ class ad_groups { function save_group($type='edit') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['g_title'] == "") { @@ -717,11 +1556,24 @@ class ad_groups { } } + //------------------------------------ + // Sort out the perm mask id things + //------------------------------------ + + if ( is_array( $HTTP_POST_VARS['permid'] ) ) + { + $perm_id = implode( ",", $HTTP_POST_VARS['permid'] ); + } + else + { + $ADMIN->error("No permission masks chosen"); + } + // Build up the hashy washy for the database ..er.. wase. - $prefix = preg_replace( "/'/", "'" , stripslashes($HTTP_POST_VARS['prefix']) ); + $prefix = preg_replace( "/'/", "'" , $std->txt_safeslashes($HTTP_POST_VARS['prefix']) ); $prefix = preg_replace( "/</" , "<" , $prefix ); - $suffix = preg_replace( "/'/", "'" , stripslashes($HTTP_POST_VARS['suffix']) ); + $suffix = preg_replace( "/'/", "'" , $std->txt_safeslashes($HTTP_POST_VARS['suffix']) ); $suffix = preg_replace( "/</" , "<" , $suffix ); $promotion_a = '-1'; //id @@ -733,6 +1585,16 @@ class ad_groups { $promotion_b = $IN['g_promotion_posts']; } + //if ($IN['g_max_messages'] == 0) + //{ + //$IN['g_max_messages'] = -1; + //} + + //list($p_max, $p_width, $p_height) = explode( ":", $group['g_photo_max_vars'] ); + + $IN['p_max'] = str_replace( ":", "", $IN['p_max'] ); + $IN['p_width'] = str_replace( ":", "", $IN['p_width'] ); + $IN['p_height'] = str_replace( ":", "", $IN['p_height'] ); $db_string = array( 'g_view_board' => $IN['g_view_board'], @@ -773,6 +1635,11 @@ class ad_groups { 'g_promotion' => $promotion_a.'&'.$promotion_b, 'g_hide_from_list' => $IN['g_hide_from_list'], 'g_post_closed' => $IN['g_post_closed'], + 'g_perm_id' => $perm_id, + 'g_photo_max_vars' => $IN['p_max'].':'.$IN['p_width'].':'.$IN['p_height'], + 'g_dohtml' => $IN['g_dohtml'], + 'g_edit_topic' => $IN['g_edit_topic'], + 'g_email_limit' => intval($IN['join_limit']).':'.intval($IN['join_flood']), ); @@ -803,6 +1670,13 @@ class ad_groups { } } + function clean_perms($str) + { + $str = preg_replace( "/,$/", "", $str ); + $str = str_replace( ",,", ",", $str ); + + return $str; + } //+--------------------------------------------------------------------------------- // @@ -812,7 +1686,7 @@ class ad_groups { function group_form($type='edit') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $all_groups = array( 0 => array ('none', 'Don\'t Promote') ); @@ -823,6 +1697,14 @@ class ad_groups { $ADMIN->error("No group id to select from the database, please try again."); } + if ( $INFO['admin_group'] == $IN['id'] ) + { + if ( $MEMBER['mgroup'] != $INFO['admin_group'] ) + { + $ADMIN->error("Sorry, you are unable to edit that group as it's the root admin group"); + } + } + $form_code = 'doedit'; $button = 'Complete Edit'; @@ -862,11 +1744,27 @@ class ad_groups { while ( $r = $DB->fetch_row() ) { + if ( $r['g_id'] == $INFO['admin_group'] ) + { + continue; + } + $all_groups[] = array( $r['g_id'], $r['g_title'] ); } //------------------------------------------- + $perm_masks = array(); + + $DB->query("SELECT * FROM ibf_forum_perms"); + + while ( $r = $DB->fetch_row() ) + { + $perm_masks[] = array( $r['perm_id'], $r['perm_name'] ); + } + + //------------------------------------------- + if ($type == 'edit') { $ADMIN->page_title = "Editing User Group ".$group['g_title']; @@ -933,6 +1831,7 @@ class ad_groups { ) , 'adform', "onSubmit='return checkform()'" ); + list($p_max, $p_width, $p_height) = explode( ":", $group['g_photo_max_vars'] ); //+------------------------------- @@ -946,20 +1845,77 @@ class ad_groups { $suffix = preg_replace( "/'/", "'", $group['suffix'] ); $suffix = preg_replace( "/html .= $SKIN->start_table( "Global Settings" ); + $ADMIN->html .= $SKIN->start_table( "Global Settings", "Basic Group Settings" ); $ADMIN->html .= $SKIN->add_td_row( array( "Group Title" , $SKIN->form_input("g_title", $group['g_title'] ) ) ); + //+------------------------------- + // Sort out default array + //+------------------------------- + + $ADMIN->html .= + ""; + + $arr = explode( ",", $group['g_perm_id'] ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Use Forum Permission Access...
    You may choose more than one" , + $SKIN->form_multiselect("permid[]", $perm_masks, $arr, 5, 'onfocus="saveit(this)"; onchange="saveit(this)";' )."Show me selected masks" + ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Group Icon
    (Can be omitted)" , $SKIN->form_input("g_icon", $group['g_icon'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Max upload file size (in KB)
    (Leave blank to disallow uploads)" , + $ADMIN->html .= $SKIN->add_td_row( array( "POST: Max upload file size (in KB)".$SKIN->js_help_link('mg_upload')."
    (Leave blank to disallow uploads)" , $SKIN->form_input("g_attach_max", $group['g_attach_max'] ) ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "PERSONAL PHOTO: Max upload file size (in KB)
    (Leave blank to disallow uploads)" , + $SKIN->form_input("p_max", $p_max )."
    " + ."Max Width (px): " + ."Max Height (px): " + ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Online List Format [Prefix]
    (Can be left blank)
    (Example:<span style='color:red'>)" , $SKIN->form_input("prefix", $prefix ) ) ); @@ -981,7 +1937,7 @@ class ad_groups { //+------------------------------- - $ADMIN->html .= $SKIN->start_table( "Global Permissions" ); + $ADMIN->html .= $SKIN->start_table( "Global Permissions", "Restricting what this group can do" ); $ADMIN->html .= $SKIN->add_td_row( array( "Can view board?" , $SKIN->form_yes_no("g_view_board", $group['g_view_board'] ) @@ -1005,10 +1961,14 @@ class ad_groups { $ADMIN->html .= $SKIN->add_td_row( array( "Number of seconds for search flood control
    Stops search abuse, enter 0 or leave blank for no flood control" , $SKIN->form_input("g_search_flood", $group['g_search_flood'] ) - ) ); + ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Can mail members from the board?" , + list( $limit, $flood ) = explode( ":", $group['g_email_limit'] ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Can email members from the board?
    Leave bottom section blank to remove limits $guest_legend" , $SKIN->form_yes_no("g_email_friend", $group['g_email_friend'] ) + ."
    Only allow ". $SKIN->form_simple_input("join_limit", $limit, 2 )." emails in a 24hr period" + ."
    ...and only allow 1 email every ".$SKIN->form_simple_input("join_flood", $flood, 2 )." minutes" ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Can edit own profile info?$guest_legend" , @@ -1040,7 +2000,7 @@ class ad_groups { //+------------------------------- - $ADMIN->html .= $SKIN->start_table( "Posting Permissions" ); + $ADMIN->html .= $SKIN->start_table( "Posting Permissions", "Restrict where this group can post" ); $ADMIN->html .= $SKIN->add_td_row( array( "Can post new topics (where allowed)?" , $SKIN->form_yes_no("g_post_new_topics", $group['g_post_new_topics'] ) @@ -1062,7 +2022,7 @@ class ad_groups { $SKIN->form_input("g_edit_cutoff", $group['g_edit_cutoff'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Allow user to remove 'Edited by' legend?" , + $ADMIN->html .= $SKIN->add_td_row( array( "Allow user to remove 'Edited by' legend?$guest_legend" , $SKIN->form_yes_no("g_append_edit", $group['g_append_edit'] ) ) ); @@ -1074,6 +2034,10 @@ class ad_groups { $SKIN->form_yes_no("g_open_close_posts", $group['g_open_close_posts'] ) ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Can edit own topic title & description?$guest_legend" , + $SKIN->form_yes_no("g_edit_topic", $group['g_edit_topic'] ) + ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Can delete own topics?$guest_legend" , $SKIN->form_yes_no("g_delete_own_topics", $group['g_delete_own_topics'] ) ) ); @@ -1097,6 +2061,10 @@ class ad_groups { $ADMIN->html .= $SKIN->add_td_row( array( "Can add events to the calendar?$guest_legend" , $SKIN->form_yes_no("g_calendar_post", $group['g_calendar_post'] ) ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Can use [doHTML] tag?$guest_legend
    ".$SKIN->js_help_link('mg_dohtml') , + $SKIN->form_yes_no("g_dohtml", $group['g_dohtml'] ) + ) ); $ADMIN->html .= $SKIN->end_table(); @@ -1107,7 +2075,7 @@ class ad_groups { //+------------------------------- - $ADMIN->html .= $SKIN->start_table( "Moderation Permissions" ); + $ADMIN->html .= $SKIN->start_table( "Moderation Permissions", "Allow or deny this group moderation abilities" ); $ADMIN->html .= $SKIN->add_td_row( array( "Is Super Moderator (can moderate anywhere)?$guest_legend" , $SKIN->form_yes_no("g_is_supmod", $group['g_is_supmod'] ) @@ -1140,11 +2108,12 @@ class ad_groups { } else { - $ADMIN->html .= $SKIN->add_td_row( array( "Choose 'Don't Promote' to disable promotions
    ".$SKIN->js_help_link('mg_promote') , + $ADMIN->html .= $SKIN->add_td_row( array( "Choose 'Don't Promote' to disable promotions$guest_legend
    ".$SKIN->js_help_link('mg_promote') , 'Promote members of this group to: '.$SKIN->form_dropdown("g_promotion_id", $all_groups, $group['g_promotion_id'] ) .'
    when they reach '.$SKIN->form_simple_input('g_promotion_posts', $group['g_promotion_posts'] ).' posts' ) ); } + $ADMIN->html .= $SKIN->end_form($button); @@ -1163,7 +2132,7 @@ class ad_groups { function main_screen() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "User Groups"; @@ -1172,11 +2141,10 @@ class ad_groups { $g_array = array(); $SKIN->td_header[] = array( "Group Title" , "30%" ); - $SKIN->td_header[] = array( "ACP" , "5%" ); - $SKIN->td_header[] = array( "SMOD" , "5%" ); + $SKIN->td_header[] = array( "Access ACP?" , "15%" ); + $SKIN->td_header[] = array( "Super Mod?" , "15%" ); $SKIN->td_header[] = array( "Members" , "10%" ); $SKIN->td_header[] = array( "Edit Group" , "20%" ); - $SKIN->td_header[] = array( "Forum Access" , "20%" ); $SKIN->td_header[] = array( "Delete" , "10%" ); //+------------------------------- @@ -1201,12 +2169,12 @@ class ad_groups { //----------------------------------- if ($r['g_access_cp'] == 1) { - $adm = '
    Y
    '; + $adm = '
    Yes
    '; } //----------------------------------- if ($r['g_is_supmod'] == 1) { - $mod = '
    Y
    '; + $mod = '
    Yes
    '; } if ($r['g_id'] != 1 and $r['g_id'] != 2) @@ -1218,12 +2186,20 @@ class ad_groups { $total_linkage = $r['prefix'].$r['g_title'].$r['suffix']; } - $ADMIN->html .= $SKIN->add_td_row( array( "$total_linkage" , + if ( $INFO['admin_group'] == $r['g_id'] ) + { + $is_root = " ( ROOT )"; + } + else + { + $is_root = ""; + } + + $ADMIN->html .= $SKIN->add_td_row( array( "$total_linkage $is_root" , $adm, $mod, "
    ".$r['count']."
    ", "
    Edit Group
    ", - "
    Forum Access
    ", $del ) ); diff --git a/upload/sources/Admin/ad_help.php b/upload/sources/Admin/ad_help.php index 1bd52ba5..498557ef 100644 --- a/upload/sources/Admin/ad_help.php +++ b/upload/sources/Admin/ad_help.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Help Control functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -32,7 +38,20 @@ class ad_settings { var $base_url; function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -69,7 +88,7 @@ class ad_settings { function doedit() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -77,10 +96,12 @@ class ad_settings { } $text = preg_replace( "/\n/", "
    ", stripslashes($HTTP_POST_VARS['text'] ) ); - $title = preg_replace( "/\n/", "
    ", stripslashes($HTTP_POST_VARS['title'] ) ); + //$title = preg_replace( "/\n/", "
    ", stripslashes($HTTP_POST_VARS['title'] ) ); $desc = preg_replace( "/\n/", "
    ", stripslashes($HTTP_POST_VARS['description'] ) ); - $db_string = $DB->compile_db_update_string( array( 'title' => $title, + $text = preg_replace( "/\\\/", "\", $text ); + + $db_string = $DB->compile_db_update_string( array( 'title' => $IN['title'], 'text' => $text, 'description' => $desc, ) ); @@ -100,7 +121,7 @@ class ad_settings { function show_form($type='new') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "You may add/edit and remove help files below."; $ADMIN->page_title = "Help File Management"; @@ -177,7 +198,7 @@ class ad_settings { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -198,7 +219,7 @@ class ad_settings { function doadd() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['title'] == "") { @@ -211,6 +232,8 @@ class ad_settings { $title = preg_replace( "/\n/", "
    ", stripslashes($HTTP_POST_VARS['title'] ) ); $desc = preg_replace( "/\n/", "
    ", stripslashes($HTTP_POST_VARS['description'] ) ); + $text = preg_replace( "/\\\/", "\", $text ); + $db_string = $DB->compile_db_insert_string( array( 'title' => $title, 'text' => $text, 'description' => $desc, @@ -230,7 +253,7 @@ class ad_settings { function list_files() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "You may add/edit and remove help files below."; $ADMIN->page_title = "Help File Management"; diff --git a/upload/sources/Admin/ad_imagemacros.php b/upload/sources/Admin/ad_imagemacros.php index 84d00179..02da4fe7 100644 --- a/upload/sources/Admin/ad_imagemacros.php +++ b/upload/sources/Admin/ad_imagemacros.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Skin -> Image Macro functions @@ -22,7 +24,11 @@ */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -33,7 +39,20 @@ class ad_settings { var $base_url; function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -95,7 +114,7 @@ class ad_settings { function import() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; $FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name']; $FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size']; @@ -160,7 +179,7 @@ class ad_settings { if ( ! preg_match( "/~=~/", $data ) ) { - $ADMIN->error("This file does not appear to be a valid Invision Board macro file"); + $ADMIN->error("This file does not appear to be a valid Invision Power Board macro file"); } //------------------------------------- @@ -208,9 +227,11 @@ class ad_settings { $v = ""; } + $row['macro_replace'] = str_replace( '\n', "\n", $v); + $str = $DB->compile_db_insert_string( array ( - 'macro_value' => stripslashes($k), - 'macro_replace' => stripslashes($v), + 'macro_value' => $std->txt_stripslashes($k), + 'macro_replace' => $v, 'macro_set' => $new_id, 'can_remove' => 1, ) ); @@ -240,21 +261,21 @@ class ad_settings { function edit_set_name() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { $ADMIN->error("You must specify an existing macro set ID, go back and try again"); } - $DB->query("SELECT * FROM ibf_macro WHERE macro_id='".$IN['id']."'"); + $DB->query("SELECT * FROM ibf_macro WHERE macro_set='".$IN['id']."'"); if ( ! $row = $DB->fetch_row() ) { $ADMIN->error("Could not retrieve the record from the DB"); } - $DB->query("UPDATE ibf_macro_name SET set_name='{$IN['macro_name']}' WHERE set_id='".$IN['id']."'"); + $DB->query("UPDATE ibf_macro_name SET set_name='{$IN['setname']}' WHERE set_id='".$IN['id']."'"); $ADMIN->done_screen("Macro Set Updated", "Manage Macro Set {$row['macro_name']}", "act=image&code=edit&id={$row['macro_set']}" ); @@ -266,7 +287,7 @@ class ad_settings { function macro_remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['mid'] == "") { @@ -289,7 +310,7 @@ class ad_settings { function macro_edit() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['mid'] == "") { @@ -303,8 +324,8 @@ class ad_settings { $ADMIN->error("Could not retrieve the record from the DB"); } - $key = str_replace( "'", "\\'", stripslashes($HTTP_POST_VARS['macro_value']) ); - $val = str_replace( "'", "\\'", stripslashes($HTTP_POST_VARS['macro_replace']) ); + $key = str_replace( "'", "\\'", $std->txt_safeslashes($HTTP_POST_VARS['macro_value']) ); + $val = str_replace( "'", "\\'", $std->txt_UNhtmlspecialchars($std->txt_safeslashes($HTTP_POST_VARS['macro_replace']) ) ); $DB->query("UPDATE ibf_macro SET macro_value='$key', macro_replace='$val' WHERE macro_id='".$IN['mid']."'"); @@ -317,7 +338,7 @@ class ad_settings { function macro_add() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -332,8 +353,8 @@ class ad_settings { } $str = $DB->compile_db_insert_string( array ( - 'macro_value' => stripslashes($HTTP_POST_VARS['macro_value']), - 'macro_replace' => stripslashes($HTTP_POST_VARS['macro_replace']), + 'macro_value' => $std->txt_safeslashes($HTTP_POST_VARS['macro_value']), + 'macro_replace' => $std->txt_UNhtmlspecialchars($std->txt_safeslashes($HTTP_POST_VARS['macro_replace'])), 'can_remove' => 1, 'macro_set' => $row['macro_set'] ) ); @@ -350,7 +371,7 @@ class ad_settings { function macro_form($type='edit') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($type == 'edit') @@ -431,7 +452,7 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Macro Replacement", - $SKIN->form_textarea('macro_replace', $row['macro_replace']), + $SKIN->form_textarea('macro_replace', $std->txt_htmlspecialchars($row['macro_replace']) ), ) ); $ADMIN->html .= $SKIN->end_form($button); @@ -448,7 +469,7 @@ class ad_settings { function export() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -477,6 +498,11 @@ class ad_settings { { $row['macro_replace'] = "*UNASSIGNED*"; } + + // Fix newlines.. + + $row['macro_replace'] = str_replace( "\n", '\n', str_replace("\r", "\n", $row['macro_replace'] ) ); + $contents .= $row['macro_value']."~=~".$row['macro_replace']."\n"; } @@ -496,7 +522,7 @@ class ad_settings { function add_macro_set() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -532,8 +558,8 @@ class ad_settings { while( $row = $DB->fetch_row($q1) ) { $str = $DB->compile_db_insert_string( array ( - 'macro_value' => stripslashes($row['macro_value']), - 'macro_replace' => stripslashes($row['macro_replace']), + 'macro_value' => $std->txt_stripslashes($row['macro_value']), + 'macro_replace' => $std->txt_stripslashes($row['macro_replace']), 'macro_set' => $new_id, 'can_remove' => 1, ) ); @@ -554,7 +580,7 @@ class ad_settings { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -580,7 +606,7 @@ class ad_settings { function show_macros() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- @@ -629,7 +655,7 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Macro Set Title", - $SKIN->form_input('macro_name', $row['set_name']), + $SKIN->form_input('setname', $row['set_name']), ) ); $ADMIN->html .= $SKIN->end_form("Edit Macro Title"); @@ -667,7 +693,14 @@ class ad_settings { $real = substr( $real, 0, 52 ) . '...'; } - $preview = str_replace( "<#IMG_DIR#>", $skin['img_dir'], $row['macro_replace'] ); + if ( $INFO['preview'] == 0 ) + { + $preview = 'Disabled via ACP Prefs'; + } + else + { + $preview = str_replace( "<#IMG_DIR#>", $skin['img_dir'], $row['macro_replace'] ); + } $remove = "Cannot remove"; @@ -704,7 +737,7 @@ class ad_settings { function list_current() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); @@ -741,7 +774,7 @@ class ad_settings { continue; } - $ADMIN->html .= $SKIN->add_td_row( array( "".stripslashes($r['set_name'])."", + $ADMIN->html .= $SKIN->add_td_row( array( "".$std->txt_stripslashes($r['set_name'])."", "<#X-{$r['macro_set']}#>", "
    Export
    ", "
    Edit
    ", @@ -784,7 +817,7 @@ class ad_settings { while ( $r = $DB->fetch_row() ) { - $ADMIN->html .= $SKIN->add_td_row( array( "".stripslashes($r['set_name'])."", + $ADMIN->html .= $SKIN->add_td_row( array( "".$std->txt_stripslashes($r['set_name'])."", "
    Export
    ", "
    Edit
    ", "
    Remove
    ", diff --git a/upload/sources/Admin/ad_index.php b/upload/sources/Admin/ad_index.php index 6d3c98b5..2ae6c2b6 100644 --- a/upload/sources/Admin/ad_index.php +++ b/upload/sources/Admin/ad_index.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin "welcome" screen functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new index_page(); @@ -29,9 +35,124 @@ $idx = new index_page(); class index_page { - - function index_page() { - global $DB, $IN, $INFO, $ADMIN, $SKIN, $std; + var $mysql_version = ""; + + function index_page() + { + global $DB, $IN, $INFO, $ADMIN, $MEMBER, $SKIN, $std, $ibforums; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- + + $ADMIN->page_title = "Welcome to the Invision Power Board Administration CP"; + $ADMIN->page_detail = "You can set up and customize your board from within this control panel.

    Clicking on one of the links in the left menu pane will show you the relevant options for that administration category. Each option will contain further information on configuration, etc."; + + + //--------------------------------- + // Get mySQL & PHP Version + //--------------------------------- + + $DB->query("SELECT VERSION() AS version"); + + if ( ! $row = $DB->fetch_row() ) + { + $DB->query("SHOW VARIABLES LIKE 'version'"); + $row = $DB->fetch_row(); + } + + $this->mysql_version = $row['version']; + + $phpv = phpversion(); + + //--------------------------------- + // Got reg code? + //--------------------------------- + + $reg_html = ""; + $reg_end = ""; + + $version_info = "
    PHP VERSION: $phpv, MySQL VERSION: ".$this->mysql_version; + + if ( $INFO['ipb_reg_number'] ) + { + list( $a, $b, $c, $d, $e ) = explode( '-', $INFO['ipb_reg_number'] ); + + if ( strlen($e) > 9 ) + { + $reg_end = "Registered until: ". $ADMIN->get_date( $e, 'SHORT' ).""; + } + else + { + $reg_end = "Registered for life"; + } + + $reg_html = "
    + Registered Invision Power Board +
    Thank you for registering your Invision Power Board! +

    Please visit your client area for news, updates and support. +
    $reg_end +
    "; + } + else + { + $reg_html = "
    + Unregistered Invision Power Board +
    This copy of Invision Power Board is unregistered. +

    Why register? click here to find out! +
    Go on, register today! you know it makes sense! +
    "; + } + + //--------------------------------- + // Notepad + //--------------------------------- + + if ( $IN['save'] == 1 ) + { + $DB->query("UPDATE ibf_cache_store SET cs_value='".addslashes($_POST['notes'])."' WHERE cs_key='adminnotes'"); + } + + $text = "You can use this section to keep notes for yourself and other admins, etc."; + + $DB->query("SELECT * FROM ibf_cache_store WHERE cs_key='adminnotes'"); + + if ( ! $notes = $DB->fetch_row() ) + { + $DB->query("INSERT INTO ibf_cache_store (cs_key,cs_value) VALUES ('adminnotes', '$text')"); + + $notes = array( 'cs_key' => 'adminnotes', 'cs_value' => $text ); + } + + $ad_notes = "
    + +
    +
    "; + + //--------------------------------- + // Printy-poos + //--------------------------------- + + $ADMIN->html .= " + + + + + +
    {$ad_notes} {$version_info}

    {$reg_html}

    \n"; + + //--------------------------------- + // Stats + //--------------------------------- $DB->query("SELECT * FROM ibf_stats"); @@ -41,12 +162,12 @@ class index_page { if ($row['TOTAL_TOPICS'] < 0) $row['TOTAL_TOPICS'] = 0; if ($row['MEM_COUNT'] < 0) $row['MEM_COUNT'] = 0; - $DB->query("SELECT COUNT(*) as reg FROM ibf_members WHERE mgroup='".$INFO['auth_group']."' AND (new_pass='' or new_pass IS NULL)"); + $DB->query("SELECT COUNT(*) as reg FROM ibf_validating WHERE lost_pass <> 1"); $reg = $DB->fetch_row(); if ($reg['reg'] < 1 ) $reg['reg'] = 0; - $DB->query("SELECT COUNT(*) as coppa FROM ibf_members WHERE mgroup='".$INFO['auth_group']."' AND coppa_user=1"); + $DB->query("SELECT COUNT(*) as coppa FROM ibf_validating WHERE coppa_user=1"); $coppa = $DB->fetch_row(); if ($coppa['coppa'] < 1 ) $coppa['coppa'] = 0; @@ -86,21 +207,124 @@ class index_page { } //+----------------------------------------------------------- + // INSTALLER PRESENT? + //+----------------------------------------------------------- + + $sm_install = 0; + $lock_file = 0; + + if ( @file_exists( ROOT_PATH . 'sm_install.php' ) ) + { + $sm_install = 1; + } + + if ( @file_exists( ROOT_PATH . 'install.lock' ) ) + { + $lock_file = 1; + } + + if ( $sm_install == 1 ) + { + if ( $lock_file != 1 ) + { + $ADMIN->html .= "
    + Warning: Unlocked Installer Still Present +

    Remove sm_install.php from your server at once! +
    Leaving it on your server WILL compromise the security of your system.


    "; + } + else + { + $ADMIN->html .= "
    + Warning: Installer Still Present +

    Although the installer appears to be locked, we recommend you remove it + from your server for security. +
    Simply remove sm_install.php from your installation to remove this message.


    "; + } + } + + + //+----------------------------------------------------------- + // BOARD OFFLINE? + //+----------------------------------------------------------- + + if ($INFO['board_offline']) + { + + $SKIN->td_header[] = array( " ", "100%" ); + + $ADMIN->html .= $SKIN->start_table( "Offline Notice" ); + + + $ADMIN->html .= $SKIN->add_td_row( array( "Your board is currently offline

    » Turn Board Online" + ) ); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->html .= $SKIN->add_td_spacer(); + } + + //+----------------------------------------------------------- + // ADMINS USING CP + //+----------------------------------------------------------- + + $SKIN->td_header[] = array( "Name" , "20%" ); + $SKIN->td_header[] = array( "IP Address" , "20%" ); + $SKIN->td_header[] = array( "Log In" , "20%" ); + $SKIN->td_header[] = array( "Last Click" , "20%" ); + $SKIN->td_header[] = array( "Location" , "20%" ); $ADMIN->html .= $SKIN->start_table( "Administrators using the CP" ); $t_time = time() - 60*10; - $DB->query("SELECT DISTINCT(MEMBER_NAME) FROM ibf_admin_sessions WHERE RUNNING_TIME > $t_time"); + $DB->query("SELECT MEMBER_NAME, LOCATION, LOG_IN_TIME, RUNNING_TIME, IP_ADDRESS FROM ibf_admin_sessions WHERE RUNNING_TIME > $t_time"); - $mem_array = array(); + $time_now = time(); + + $seen_name = array(); while ( $r = $DB->fetch_row() ) { - $mem_array[] = $r['MEMBER_NAME']; + if ( $seen_name[ $r['MEMBER_NAME'] ] == 1 ) + { + continue; + } + else + { + $seen_name[ $r['MEMBER_NAME'] ] = 1; + } + + $log_in = $time_now - $r['LOG_IN_TIME']; + $click = $time_now - $r['RUNNING_TIME']; + + if ( ($log_in / 60) < 1 ) + { + $log_in = sprintf("%0d", $log_in) . " seconds ago"; + } + else + { + $log_in = sprintf("%0d", ($log_in / 60) ) . " minutes ago"; + } + + if ( ($click / 60) < 1 ) + { + $click = sprintf("%0d", $click) . " seconds ago"; + } + else + { + $click = sprintf("%0d", ($click / 60) ) . " minutes ago"; + } + + $ADMIN->html .= $SKIN->add_td_row( array ( + $r['MEMBER_NAME'], + "
    ".$r['IP_ADDRESS']."
    ", + "
    ".$log_in."
    ", + "
    ".$click."
    ", + "
    ".$r['LOCATION']."
    ", + ) ); } - $ADMIN->html .= $SKIN->add_td_basic( implode(", ", $mem_array ) ); + $ADMIN->html .= $SKIN->end_table(); @@ -110,6 +334,83 @@ class index_page { //+----------------------------------------------------------- + + if ($MEMBER['mgroup'] == $INFO['admin_group']) + { + //+----------------------------------------------------------- + // LAST 5 Admin Actions + //+----------------------------------------------------------- + + $SKIN->td_header[] = array( "Member Name" , "20%" ); + $SKIN->td_header[] = array( "Action Performed" , "40%" ); + $SKIN->td_header[] = array( "Time of action" , "20%" ); + $SKIN->td_header[] = array( "IP address" , "20%" ); + + $ADMIN->html .= $SKIN->start_table( "Last 5 Admin Actions" ); + + $DB->query("SELECT m.*, mem.id, mem.name FROM ibf_admin_logs m, ibf_members mem + WHERE m.member_id=mem.id ORDER BY m.ctime DESC LIMIT 0, 5"); + + if ( $DB->get_num_rows() ) + { + while ( $rowb = $DB->fetch_row() ) + { + $rowb['ctime'] = $ADMIN->get_date( $rowb['ctime'] ); + + $ADMIN->html .= $SKIN->add_td_row( array( "{$rowb['name']}", + "{$rowb['note']}", + "{$rowb['ctime']}", + "{$rowb['ip_address']}", + ) ); + + + } + } + else + { + $ADMIN->html .= $SKIN->add_td_basic("
    No results
    "); + } + + $ADMIN->html .= $SKIN->end_table(); + + //+----------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_spacer(); + } + + //+----------------------------------------------------------- + // Bots stuff + //+----------------------------------------------------------- + + if ( $INFO['spider_sense'] ) + { + $SKIN->td_header[] = array( "Search Bot" , "20%" ); + $SKIN->td_header[] = array( "Date" , "25%" ); + $SKIN->td_header[] = array( "Query" , "20%" ); + $SKIN->td_header[] = array( "Query" , "35%" ); + + $ADMIN->html .= $SKIN->start_table( "Last 10 Search Engine Spiders Hits" ); + + $DB->query("SELECT * FROM ibf_spider_logs ORDER BY entry_date DESC LIMIT 0,10"); + + while ( $r = $DB->fetch_row() ) + { + $ADMIN->html .= $SKIN->add_td_row( array( "".$INFO[ 'sp_'.$r['bot'] ]."", + $ADMIN->get_date( $r['entry_date'], 'SHORT' ), + $r['ip_address'].' ', + $r['query_string'].' ' + ) ); + } + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->html .= $SKIN->add_td_spacer(); + } + + //+----------------------------------------------------------- + + + $SKIN->td_header[] = array( "Definition", "25%" ); $SKIN->td_header[] = array( "Value" , "25%" ); $SKIN->td_header[] = array( "Definition", "25%" ); @@ -149,28 +450,28 @@ class index_page { diff --git a/upload/sources/Admin/ad_ips.php b/upload/sources/Admin/ad_ips.php index 5b2c38db..6f720186 100644 --- a/upload/sources/Admin/ad_ips.php +++ b/upload/sources/Admin/ad_ips.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > IPS Remote Call thingy @@ -22,8 +24,11 @@ */ -// Ensure we've not accessed this script directly: - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_ips(); @@ -40,7 +45,20 @@ class ad_ips { var $version = "1.1"; function ad_ips() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -82,7 +100,7 @@ class ad_ips { function news() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; @header("Location: ".$this->url."?news"); exit(); @@ -90,7 +108,7 @@ class ad_ips { function updates() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //@header("Location: ".$this->url."?updates&version=".$this->version); @header("Location: ".$this->url."?updates"); @@ -99,7 +117,7 @@ class ad_ips { function docs() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; @header("Location: ".$this->url."?docs"); exit(); @@ -107,7 +125,7 @@ class ad_ips { function support() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; @header("Location: ".$this->url."?support"); exit(); @@ -115,7 +133,7 @@ class ad_ips { function host() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; @header("Location: ".$this->url."?host"); exit(); @@ -123,7 +141,7 @@ class ad_ips { function purchase() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; @header("Location: ".$this->url."?purchase"); exit(); diff --git a/upload/sources/Admin/ad_languages.php b/upload/sources/Admin/ad_languages.php index c720b534..8ca92b3a 100644 --- a/upload/sources/Admin/ad_languages.php +++ b/upload/sources/Admin/ad_languages.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Language functions @@ -21,6 +23,11 @@ +-------------------------------------------------------------------------- */ +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_langs(); @@ -30,7 +37,20 @@ class ad_langs { var $base_url; function ad_langs() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -92,7 +112,7 @@ class ad_langs { function make_default() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; $new_dir = stripslashes(urldecode(trim($HTTP_GET_VARS['id']))); @@ -119,14 +139,14 @@ class ad_langs { function doimport() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['tarball'] == "") { $ADMIN->error("You did not select a tar-chive to import!"); } - require $root_dir."sources/lib/tar.php"; + require ROOT_PATH."sources/lib/tar.php"; $to_dir = $INFO['base_dir']."lang"; @@ -218,7 +238,7 @@ class ad_langs { function import() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "The tar-chive that you wish to import must reside in 'archive_in' and be a valid tar-chive uploaded in binary format."; $ADMIN->page_title = "Language Pack Import"; @@ -269,7 +289,7 @@ class ad_langs { function export() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -290,7 +310,7 @@ class ad_langs { $archive_dir = $INFO['base_dir']."/archive_out"; $lang_dir = $INFO['base_dir']."/lang/".$row['ldir']; - require $root_dir."sources/lib/tar.php"; + require ROOT_PATH."sources/lib/tar.php"; if (!is_dir($archive_dir)) { @@ -359,7 +379,7 @@ class ad_langs { function show_file() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -400,7 +420,8 @@ class ad_langs { if ($IN['lang_file'] == 'email_content.php') { - $lang = $EMAIL; + $lang = $EMAIL; + $is_email = 1; } if ( ! is_writeable($lang_file) ) @@ -450,10 +471,19 @@ class ad_langs { $rows = 15; $cols = 70; - + + if ( isset($SUBJECT[ $k ]) ) + { + $subj = "Subject:  ".$SKIN->form_input('SS_'.$k, $SUBJECT[ $k ] )."
    "; + } + else + { + $subj = ""; + } + $ADMIN->html .= $SKIN->add_td_row( array( "<ibf.lang.".$k.">", - $SKIN->form_textarea('XX_'.$k, $v, $cols, $rows), + $subj.$SKIN->form_textarea('XX_'.$k, $v, $cols, $rows), ) ); } else @@ -486,7 +516,7 @@ class ad_langs { function edit_info() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -525,7 +555,7 @@ class ad_langs { function add_language() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -546,14 +576,14 @@ class ad_langs { //------------------------------------- - if ( ! is_writeable($root_path.'lang') ) + if ( ! is_writeable(ROOT_PATH.'lang') ) { $ADMIN->error("The directory 'lang' is not writeable by this script. Please check the permissions on that directory. CHMOD to 0777 if in doubt and try again"); } //------------------------------------- - if ( ! is_dir($root_path.'lang/'.$row['ldir']) ) + if ( ! is_dir(ROOT_PATH.'lang/'.$row['ldir']) ) { $ADMIN->error("Could not locate the original language set to copy, please check and try again"); } @@ -611,7 +641,7 @@ class ad_langs { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -645,6 +675,8 @@ class ad_langs { $ADMIN->error("You cannot remove this language pack while it is the default language directory. Please select another pack to be the default and try again"); } + $DB->query("UPDATE ibf_members SET language='{$INFO['default_language']}' WHERE language='{$row['ldir']}'"); + if ( $ADMIN->rm_dir( $INFO['base_dir']."lang/".$row['ldir'] ) ) { @@ -667,7 +699,7 @@ class ad_langs { function save_langfile() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -688,7 +720,7 @@ class ad_langs { $ADMIN->error("Could not query the language information from the database"); } - $lang_file = $root_path."lang/".$row['ldir']."/".$IN['lang_file']; + $lang_file = ROOT_PATH."lang/".$row['ldir']."/".$IN['lang_file']; if (! file_exists( $lang_file ) ) { @@ -731,6 +763,11 @@ class ad_langs { foreach($barney as $key => $text) { $text = preg_replace("/n{1,}$/", "", $text); + + if ( $IN['SS_'.$key] != "" ) + { + $start .= "\n".'$SUBJECT['."'$key'".'] = "'.str_replace( '"', """, stripslashes($HTTP_POST_VARS['SS_'.$key]) )."\";\n"; + } $start .= "\n".'$EMAIL['."'$key'".'] = <<html .= $SKIN->js_checkdelete(); + if ( $DB->get_num_rows() ) { @@ -980,7 +1019,7 @@ class ad_langs { "
    {$r['mcount']}
    ", "
    Export
    ", "
    Edit
    ", - "Deallocate before removing", + "
    Remove
    ", ) ); $used_ids[] = $r['lid']; @@ -1008,7 +1047,7 @@ class ad_langs { $ADMIN->html .= $SKIN->start_table( "Current Unallocated Language Packs" ); - $ADMIN->html .= $SKIN->js_checkdelete(); + while ( $r = $DB->fetch_row() ) { diff --git a/upload/sources/Admin/ad_member.php b/upload/sources/Admin/ad_member.php index d1d2575c..c0029e00 100644 --- a/upload/sources/Admin/ad_member.php +++ b/upload/sources/Admin/ad_member.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin Forum functions @@ -21,16 +23,50 @@ +-------------------------------------------------------------------------- */ +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_forums(); +$root_path = ""; class ad_forums { var $base_url; + var $modules = ""; - function ad_forums() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + function ad_forums() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + + //-------------------------------------------- + // Get the sync module + //-------------------------------------------- + + if ( USE_MODULES == 1 ) + { + require ROOT_PATH."modules/ipb_member_sync.php"; + + $this->modules = new ipb_member_sync(); + } + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + $ADMIN->nav[] = array( 'act=mem&code=edit', 'Edit Member Search Form' ); + + //--------------------------------------- switch($IN['code']) { @@ -47,6 +83,10 @@ class ad_forums { $this->do_advanced_search(); break; //--------------------- + case 'unsuspend': + $this->unsuspend(); + break; + //--------------------- case 'add': $this->add_form(); break; @@ -116,6 +156,14 @@ class ad_forums { case 'domail': $this->do_bulk_mail(); break; + + case 'banmember': + $this->temp_ban_start(); + break; + + case 'dobanmember': + $this->temp_ban_complete(); + break; //--------------------- default: $this->search_form(); @@ -131,7 +179,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function do_bulk_mail() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; // Get the ID's of the groups we're emailing. @@ -209,12 +257,12 @@ class ad_forums { $DB->query("SELECT * FROM ibf_stats"); $stats = $DB->fetch_row(); - $contents = stripslashes($HTTP_POST_VARS['email_contents']); + $contents = $std->txt_stripslashes($HTTP_POST_VARS['email_contents']); - $contents = str_replace( "{board_name}" , $INFO['board_name'] , $contents ); + $contents = str_replace( "{board_name}" , str_replace( "'", "'", $INFO['board_name'] ) , $contents ); $contents = str_replace( "{board_url}" , $INFO['board_url']."/index.".$INFO['php_ext'] , $contents ); $contents = str_replace( "{reg_total}" , $stats['MEM_COUNT'] , $contents ); - $contents = str_replace( "{total_posts}", $stats['TOTAL_TOPICS'] + $stats['TOTAL_TOPICS'] , $contents ); + $contents = str_replace( "{total_posts}", $stats['TOTAL_TOPICS'] + $stats['TOTAL_REPLIES'] , $contents ); $contents = str_replace( "{busy_count}" , $stats['MOST_COUNT'] , $contents ); $contents = str_replace( "{busy_time}" , $std->get_date( $stats['MOST_DATE'], 'SHORT' ), $contents ); @@ -226,7 +274,7 @@ class ad_forums { if ($IN['preview'] != "") { $this->bulk_mail_form(1, 'Preview', - "".stripslashes($HTTP_POST_VARS['title'])."

    " + "".$std->txt_stripslashes($IN['title'])."

    " .$contents."

    Members to mail: ".$rows['total'] ); exit(); @@ -254,9 +302,19 @@ class ad_forums { } } + $this->email->from = $INFO['email_in']; $this->email->message = str_replace( "\r\n", "\n", $contents); - $this->email->subject = stripslashes($HTTP_POST_VARS['title']); - $this->email->to = ""; + $this->email->subject = $std->txt_stripslashes($IN['title']); + + if ($IN['email_admin'] == 1) + { + $this->email->to = $INFO['email_in']; + } + else + { + $this->email->to = ""; + } + $this->email->send_mail(); $ADMIN->save_log("Mass emailed members ($where)"); @@ -269,7 +327,7 @@ class ad_forums { function bulk_mail_form($preview=0, $title='Preview', $content="") { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; $ADMIN->page_title = "Bulk Email Members"; @@ -284,7 +342,7 @@ class ad_forums { if ($HTTP_POST_VARS['email_contents'] == "") { $HTTP_POST_VARS['email_contents'] = "\n\n\n-------------------------------------\n{board_name} Statistics:\n" - ."-------------------------------------\nRegistered Users {reg_total}\nTotal Posts {total_posts}\n" + ."-------------------------------------\nRegistered Users: {reg_total}\nTotal Posts: {total_posts}\n" ."Busiest Time: {busy_count} users were online on {busy_time}\n\n" ."-------------------------------------\nHandy Links\n" ."-------------------------------------\nBoard Address: {board_url}\nLog In: {board_url}?act=Login&CODE=00\n" @@ -320,14 +378,17 @@ class ad_forums { $ADMIN->html .= $SKIN->add_td_row( array( "Email Subject" , - $SKIN->form_input( "title", stripslashes($HTTP_POST_VARS['title']) ) + $SKIN->form_input( "title", $std->txt_stripslashes($IN['title']) ) ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Email contents
    ".$SKIN->js_help_link('m_bulkemail') , - $SKIN->form_textarea( "email_contents", stripslashes($HTTP_POST_VARS['email_contents']), 60, 15 ) + $SKIN->form_textarea( "email_contents", $std->txt_stripslashes($HTTP_POST_VARS['email_contents']), 60, 15 ) ) ); - + $ADMIN->html .= $SKIN->add_td_row( array( "Send this email to the admin incoming address?
    Enable this if you get a mail error upon submit - required when using SMTP." , + $SKIN->form_yes_no( "email_admin", isset($IN['email_admin']) ? $IN['email_admin'] : 1 ) + ) ); + $ADMIN->html .= $SKIN->end_table(); //+------------------------------- @@ -339,7 +400,7 @@ class ad_forums { $ADMIN->html .= $SKIN->start_table( "Bulk Email Members: Settings" ); - $DB->query("SELECT g_id, g_title FROM ibf_groups ORDER BY g_title"); + $DB->query("SELECT g_id, g_title FROM ibf_groups WHERE g_id <> ".$INFO['guest_group']." ORDER BY g_title"); while ( $r = $DB->fetch_row() ) { @@ -356,7 +417,7 @@ class ad_forums { $SKIN->form_input( "days", $IN['days'] ) ) ); - $ADMIN->html .= $SKIN->add_td_basic( '', 'center' ); + $ADMIN->html .= $SKIN->add_td_basic( '', 'center' ); $ADMIN->html .= $SKIN->end_form("Proceed"); @@ -366,6 +427,205 @@ class ad_forums { } + //+--------------------------------------------------------------------------------- + // + // TEMP BANNING + // + //+--------------------------------------------------------------------------------- + + function temp_ban_start() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_title = "Account Suspension"; + + $ADMIN->page_detail = "Automated temporary member suspension. Simply choose the duration of the suspension and submit the form below"; + + $contents = "{membername},\nYour member account at {$INFO['board_name']} has been temporarily suspended.\n\nYour account will not be functional until {date_end} (depending on your timezone). This is an automated process and you do not need to do anything to expediate the unsuspension process.\n\nBoard Address: {$INFO['board_url']}/index.php"; + + if ($IN['mid'] == "") + { + $ADMIN->error("You must specify a valid member id, please go back and try again"); + } + + $DB->query("SELECT * FROM ibf_members WHERE id='".$IN['mid']."'"); + + if ( ! $member = $DB->fetch_row() ) + { + $ADMIN->error("We could not match that ID in the members database"); + } + + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'dobanmember' ), + 2 => array( 'act' , 'mem' ), + 3 => array( 'mid' , $IN['mid'] ), + ) ); + + $ban = $std->hdl_ban_line( $member['temp_ban'] ); + + $units = array( 0 => array( 'h', 'Hours' ), 1 => array( 'd', 'Days' ) ); + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Member Account Suspension", "Note: If this member is already suspended, any new setting will restart the ban" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Suspend {$member['name']} for..." , + $SKIN->form_input('timespan', $ban['timespan'], "text", "", '5' ) . ' ' . $SKIN->form_dropdown('units', $units, $ban['units'] ), + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Email notification to this member?
    (If so, you may edit the email below)" , + $SKIN->form_yes_no( "send_email", 0 ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Email contents
    (Tags: {membername} = member's name, {date_end} = ban end)" , + $SKIN->form_textarea( "email_contents", $contents ) + ), "", 'top' ); + + $ADMIN->html .= $SKIN->end_form("Suspend This Account"); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + } + + //--------------------------------------------------------------- + + function unsuspend() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + if ($IN['mid'] == "") + { + $ADMIN->error("You must specify a valid member id, please go back and try again"); + } + + if ($IN['mid'] == 'all') + { + $DB->query("UPDATE ibf_members SET temp_ban=''"); + + $ADMIN->save_log("Unsuspended all member accounts"); + + $ADMIN->done_screen("All Accounts Unsuspended", "Member Control", "act=mem" ); + } + else + { + $mid = intval($IN['mid']); + + $DB->query("UPDATE ibf_members SET temp_ban='' WHERE id=$mid"); + + $DB->query("SELECT name FROM ibf_members WHERE id=$mid"); + + $member = $DB->fetch_row(); + + $ADMIN->save_log("Unsuspended {$member['name']}"); + + $ADMIN->done_screen("{$member['name']} Unsuspended", "Member Control", "act=mem" ); + } + + + } + + //--------------------------------------------------------------- + + function temp_ban_complete() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + $ADMIN->page_title = "Account Suspension"; + + $ADMIN->page_detail = "Automated temporary member suspension. Confirmation and information"; + + $IN['mid'] = intval($IN['mid']); + + if ($IN['mid'] == "") + { + $ADMIN->error("You must specify a valid member id, please go back and try again"); + } + + $DB->query("SELECT * FROM ibf_members WHERE id='".$IN['mid']."'"); + + if ( ! $member = $DB->fetch_row() ) + { + $ADMIN->error("We could not match that ID in the members database"); + } + + //+------------------------------- + // Work out end date + //+------------------------------- + + $IN['timespan'] = intval($IN['timespan']); + + if ( $IN['timespan'] == "" ) + { + $new_ban = ""; + } + else + { + $new_ban = $std->hdl_ban_line( array( 'timespan' => intval($IN['timespan']), 'unit' => $IN['units'] ) ); + } + + $show_ban = $std->hdl_ban_line( $new_ban ); + + //+------------------------------- + // Update and show confirmation + //+------------------------------- + + $DB->query("UPDATE ibf_members SET temp_ban='$new_ban' WHERE id={$IN['mid']}"); + + // I say, did we choose to email 'dis member? + + if ($IN['send_email'] == 1) + { + // By golly, we did! + + require "./sources/lib/emailer.php"; + + $this->email = new emailer(); + + $msg = trim($std->txt_stripslashes($HTTP_POST_VARS['email_contents'])); + + $msg = str_replace( "{membername}", $member['name'] , $msg ); + $msg = str_replace( "{date_end}" , $ADMIN->get_date( $show_ban['date_end'], 'LONG') , $msg ); + + $this->email->message = $this->email->clean_message($msg); + $this->email->subject = "Account Suspension Notification"; + $this->email->to = $member['email']; + $this->email->send_mail(); + + $skin_extra = $SKIN->add_td_row( array( "Email Sent", + "Account Suspension Notification

    ".str_replace( "\n", "
    ", $msg) + ), "", 'top' ); + } + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Member Suspension: Result" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "{$member['name']} is suspended until...", + $ADMIN->get_date( $show_ban['date_end'], 'LONG'), + ) ); + + $ADMIN->html .= $skin_extra; + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->nav[] = array( "act=mem&code=stepone&USER_NAME={$member['name']}", "Admin Options for {$member['name']}" ); + + $ADMIN->save_log("Suspended {$member['name']} until ".$ADMIN->get_date( $show_ban['date_end'], 'SHORT')); + + $ADMIN->output(); + } + //+--------------------------------------------------------------------------------- // @@ -373,8 +633,11 @@ class ad_forums { // //+--------------------------------------------------------------------------------- - function change_name_complete() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + function change_name_complete() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + $IN['new_name'] = str_replace( '|', '|', $IN['new_name'] ); if ($IN['mid'] == "") { @@ -442,21 +705,37 @@ class ad_forums { $msg = str_replace( "{old_name}", $member['name'], $msg ); $msg = str_replace( "{new_name}", $new_name , $msg ); - $this->email->message = $msg; + $this->email->message = $this->email->clean_message($msg); $this->email->subject = "Member Name Change Notification"; $this->email->to = $member['email']; $this->email->send_mail(); } + $DB->query("SELECT id, name FROM ibf_members WHERE mgroup <> '".$INFO['auth_group']."' ORDER BY id DESC LIMIT 0,1"); + $r = $DB->fetch_row(); + $stats['LAST_MEM_NAME'] = $r['name']; + $stats['LAST_MEM_ID'] = $r['id']; + + $db_string = $DB->compile_db_update_string( $stats ); + $DB->query("UPDATE ibf_stats SET $db_string"); + $ADMIN->save_log("Changed Member Name '{$member['name']}' to '$new_name'"); + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_name_change($mid, $new_name ); + } + $ADMIN->done_screen("Member Name Changed", "Member Control", "act=mem" ); } + + //=========================================================================== function change_name_start($message="") { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Change Member Name"; @@ -533,7 +812,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function domod() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ids = array(); @@ -551,12 +830,10 @@ class ad_forums { //------------------- if ( count($ids) < 1 ) - { + { $ADMIN->error("You did not select any members to approve or delete"); } - - //------------------- if ($IN['type'] == 'approve') @@ -564,7 +841,7 @@ class ad_forums { //------------------------------------------- - require $root_path."sources/lib/emailer.php"; + require ROOT_PATH."sources/lib/emailer.php"; $email = new emailer(); @@ -576,7 +853,9 @@ class ad_forums { //------------------------------------------- - $main = $DB->query("SELECT id, email, validate_key, mgroup, prev_group FROM ibf_members WHERE id IN(".implode( ",",$ids ).")"); + $main = $DB->query("SELECT m.id, m.email, m.mgroup, v.* FROM ibf_validating v + LEFT JOIN ibf_members m ON (v.member_id=m.id) + WHERE m.id IN(".implode( ",",$ids ).")"); while( $row = $DB->fetch_row( $main ) ) { @@ -585,19 +864,21 @@ class ad_forums { continue; } - if ($row['prev_group'] == "") + if ($row['real_group'] == "") { - $row['prev_group'] = $INFO['member_group']; + $row['real_group'] = $INFO['member_group']; } - $update = $DB->query("UPDATE ibf_members SET prev_group='', validate_key='', mgroup='".$row['prev_group']."' WHERE id='".$row['id']."'"); + $update = $DB->query("UPDATE ibf_members SET mgroup=".$row['real_group']." WHERE id=".$row['id']); $email->to = $row['email']; $email->send_mail(); } - $DB->query("SELECT id, name FROM ibf_members WHERE mgroup <> '".$INFO['auth_group']."' ORDER BY id DESC LIMIT 0,1"); + $DB->query("DELETE FROM ibf_validating WHERE member_id IN(".implode( ",",$ids ).")"); + + $DB->query("SELECT id, name FROM ibf_members WHERE mgroup <> ".$INFO['auth_group']." ORDER BY id DESC LIMIT 0,1"); $r = $DB->fetch_row(); $DB->query("UPDATE ibf_stats SET MEM_COUNT=MEM_COUNT+".count($ids).", LAST_MEM_NAME='{$r['name']}', LAST_MEM_ID='{$r['id']}'"); @@ -611,7 +892,30 @@ class ad_forums { { $DB->query("DELETE FROM ibf_members WHERE id IN(".implode( ",",$ids ).")"); - //$DB->query("UPDATE ibf_stats SET MEM_COUNT=MEM_COUNT-".count($ids)); + $DB->query("DELETE FROM ibf_member_extra WHERE id IN(".implode( ",",$ids ).")"); + + // Delete member messages... + + $DB->query("DELETE from ibf_messages WHERE member_id IN(".implode( ",",$ids ).")"); + $DB->query("DELETE from ibf_contacts WHERE member_id IN(".implode( ",",$ids ).") or contact_id IN(".implode( ",",$ids ).")"); + + $DB->query("DELETE FROM ibf_validating WHERE member_id IN(".implode( ",",$ids ).")"); + + $DB->query("DELETE from ibf_pfields_content WHERE member_id IN(".implode( ",",$ids ).")"); + + $DB->query("DELETE from ibf_warn_logs WHERE wlog_mid IN(".implode( ",",$ids ).")"); + + // Convert their posts and topics into guest postings.. + + $DB->query("UPDATE ibf_posts SET author_id='0' WHERE author_id IN(".implode( ",",$ids ).")"); + + $DB->query("UPDATE ibf_topics SET starter_id='0' WHERE starter_id IN(".implode( ",",$ids ).")"); + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_delete($ids); + } $ADMIN->save_log("Denied Queued Registrations"); @@ -624,35 +928,78 @@ class ad_forums { //--------------------------------------------- function view_mod() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Manage User Registration/Email Change Queues"; $ADMIN->page_detail = "This section allows you to allow or deny registrations where you have requested that an administrator previews new accounts before allowing full membership. It will also allow you to complete or deny new email address changes.

    This form will also allow you to complete the registrations for those who did not receive an email."; - $DB->query("SELECT COUNT(id) as mcount FROM ibf_members WHERE mgroup='".$INFO['auth_group']."' and (new_pass = '' or new_pass is null)"); + $DB->query("SELECT COUNT(vid) as mcount FROM ibf_validating WHERE lost_pass <> 1"); $row = $DB->fetch_row(); $cnt = $row['mcount'] < 1 ? 0 : $row['mcount']; + $st = intval($IN['st']); + + $ord = $IN['ord'] == 'asc' ? 'asc' : 'desc'; + + $new_ord = $ord == 'asc' ? 'desc' : 'asc'; + + switch ($IN['sort']) + { + case 'mem': + $col = 'm.name'; + break; + case 'email': + $col = 'm.email'; + break; + case 'sent': + $col = 'v.entry_date'; + break; + case 'posts': + $col = 'm.posts'; + break; + case 'reg': + $col = 'm.joined'; + break; + default: + $col = 'v.entry_date'; + break; + } + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'domod' ), 2 => array( 'act' , 'mem' ), ) ); - $SKIN->td_header[] = array( "Member Name" , "30%" ); - $SKIN->td_header[] = array( "Email Address" , "30%" ); - $SKIN->td_header[] = array( "Posts" , "10%" ); - $SKIN->td_header[] = array( "Registered On" , "20%" ); - $SKIN->td_header[] = array( "Select" , "10%" ); + $SKIN->td_header[] = array( "Member Name" , "20%" ); + $SKIN->td_header[] = array( "Where?" , "20%" ); + $SKIN->td_header[] = array( "Email Address" , "15%" ); + $SKIN->td_header[] = array( "Email Sent" , "10%" ); + $SKIN->td_header[] = array( "Posts" , "10%" ); + $SKIN->td_header[] = array( "Reg. On" , "10%" ); + $SKIN->td_header[] = array( "Age" , "10%" ); + $SKIN->td_header[] = array( " " , "5%" ); $ADMIN->html .= $SKIN->start_table( "Users awaiting authorisation" ); - $ADMIN->html .= $SKIN->add_td_basic( "$cnt users require registration or email change validation, showing 0 - 75", "center", "title"); + $links = $std->build_pagelinks( array( 'TOTAL_POSS' => $cnt, + 'PER_PAGE' => 75, + 'CUR_ST_VAL' => $st, + 'L_SINGLE' => "Single Page", + 'L_MULTI' => "Multiple Pages", + 'BASE_URL' => $SKIN->base_url."&act=mem&code=mod", + ) ); + + $ADMIN->html .= $SKIN->add_td_basic( "$cnt users require registration or email change validation", "center", "catrow2"); if ($cnt > 0) { - $DB->query("SELECT name, id, email, posts, joined, coppa_user FROM ibf_members WHERE mgroup='".$INFO['auth_group']."' and (new_pass = '' or new_pass is null) ORDER BY joined DESC LIMIT 0,75"); + $DB->query("SELECT m.name, m.id, m.email, m.posts, m.joined, v.* + FROM ibf_validating v + LEFT JOIN ibf_members m ON (v.member_id=m.id) + WHERE v.lost_pass <> 1 + ORDER BY $col $ord LIMIT $st,75"); while ( $r = $DB->fetch_row() ) { @@ -666,15 +1013,34 @@ class ad_forums { $coppa = ""; } + $where = ( $r['lost_pass'] ? 'Lost Password' : ( $r['new_reg'] ? "Registering" : ( $r['email_chg'] ? "Email Change" : 'N/A' ) ) ); + + //$age = floor( ( time() - $r['entry_date'] ) / 86400 ); + + $hours = floor( ( time() - $r['entry_date'] ) / 3600 ); + + $days = intval( $hours / 24 ); + + $rhours = intval( $hours - ($days * 24) ); + + if ( $r['name'] == "" ) + { + $r['name'] = "Deleted Member"; + } + $ADMIN->html .= $SKIN->add_td_row( array( "".$r['name']."$coppa" , + "
    $where
    ", $r['email'], + "
    ".$std->get_date( $r['entry_date'], 'JOINED' )."
    ", "
    {$r['posts']}
    ", - $std->get_date( $r['joined'], 'JOINED' ), - "" + "
    ".$std->get_date( $r['joined'], 'JOINED' )."
    ", + "
    $days d, $rhours h
    ", + "
    " ) ); } - - $ADMIN->html .= $SKIN->add_td_basic("", "center", "row1" ); + $ADMIN->html .= $SKIN->add_td_basic( "$links", "left", "catrow2"); + + $ADMIN->html .= $SKIN->add_td_basic("", "center", "catrow2" ); } @@ -695,7 +1061,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function ban_control() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Ban Control"; @@ -737,19 +1103,19 @@ class ad_forums { $ADMIN->html .= $SKIN->start_table( "Ban Control" ); - $ADMIN->html .= $SKIN->add_td_basic("Banned IP Addresses (one per line - use * as a wildcard)", "center", "title"); + $ADMIN->html .= $SKIN->add_td_basic("Banned IP Addresses (one per line - use * as a wildcard)", "center", "pformstrip"); $ADMIN->html .= $SKIN->add_td_row( array( "Banned IP Address
    (Example: 212.45.45.23)
    (Example: 212.45.45.*)" , $SKIN->form_textarea( 'ban_ip', $ip_list ) ) ); - $ADMIN->html .= $SKIN->add_td_basic("Banned Email Addresses (one per line - use * as a wildcard)", "center", "title"); + $ADMIN->html .= $SKIN->add_td_basic("Banned Email Addresses (one per line - use * as a wildcard)", "center", "pformstrip"); $ADMIN->html .= $SKIN->add_td_row( array( "Banned Email Address
    (Example: name@domain.com)
    (Example: *@domain.com)" , $SKIN->form_textarea( 'ban_email', $email_list ) ) ); - $ADMIN->html .= $SKIN->add_td_basic("Banned / Reserved Names (one per line)", "center", "title"); + $ADMIN->html .= $SKIN->add_td_basic("Banned / Reserved Names (one per line)", "center", "pformstrip"); $ADMIN->html .= $SKIN->add_td_row( array( "Banned Names" , $SKIN->form_textarea( 'ban_names', $name_list ) @@ -763,16 +1129,17 @@ class ad_forums { } - function update_ban() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + function update_ban() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; // Get the incoming.. $new = array(); - $new['ban_ip'] = preg_replace( "/\n/", "|", trim($HTTP_POST_VARS['ban_ip']) ); - $new['ban_email'] = preg_replace( "/\n/", "|", trim($HTTP_POST_VARS['ban_email']) ); - $new['ban_names'] = preg_replace( "/\n/", "|", trim($HTTP_POST_VARS['ban_names']) ); + $new['ban_ip'] = $this->_do_banline($HTTP_POST_VARS['ban_ip']); + $new['ban_email'] = $this->_do_banline($HTTP_POST_VARS['ban_email']); + $new['ban_names'] = $this->_do_banline($HTTP_POST_VARS['ban_names']); $ADMIN->rebuild_config( $new ); @@ -781,7 +1148,27 @@ class ad_forums { $ADMIN->done_screen("Ban Filters Updated", "Ban Control", "act=mem&code=ban" ); } + + function _do_banline($raw) + { + global $std; + $ban = trim($std->txt_stripslashes($raw)); + + $ban = str_replace('|', "|", $ban); + + $ban = preg_replace( "/\n/", '|', str_replace( "\n\n", "\n", str_replace( "\r", "\n", $ban ) ) ); + + $ban = preg_replace( "/\|{1,}\s{1,}?/s", "|", $ban ); + + $ban = preg_replace( "/^\|/", "", $ban ); + + $ban = preg_replace( "/\|$/", "", $ban ); + + $ban = str_replace( "'", ''', $ban ); + + return $ban; + } //+--------------------------------------------------------------------------------- @@ -791,7 +1178,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function titles() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Member Ranking Set Up"; @@ -890,7 +1277,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function add_rank() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- // check for input @@ -924,7 +1311,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function delete_rank() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- // check for input @@ -946,7 +1333,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function edit_rank() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- // check for input @@ -989,7 +1376,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function rank_setup($mode='edit') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Member Rank Set Up"; @@ -1064,7 +1451,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function delete_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Member Account Deletion"; @@ -1152,7 +1539,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function prune_confirm() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //----------------------------- // Make sure we have *something* @@ -1182,13 +1569,13 @@ class ad_forums { if ($IN['joined'] > 0) { $j = $time_now - ($IN['joined'] *60*60*24); - $add_query[] = " joined < $j "; + $add_query[] = " joined > $j "; } if ($IN['last_post'] > 0) { $l = $time_now - ($IN['last_post'] *60*60*24); - $add_query[] = " last_post < $l "; + $add_query[] = " (last_post < $l or last_post is null)"; } if ($IN['posts'] > 0) @@ -1222,6 +1609,18 @@ class ad_forums { $ADMIN->error("We did not find any members matching the prune criteria. Please go back and try again"); } + if ($count['mcount'] < 101) + { + $DB->query("SELECT id, name FROM ibf_members WHERE $additional_query"); + + $member_arr = array(); + + while ( $mem = $DB->fetch_row() ) + { + $member_arr[] = $std->make_profile_link($mem['name'], $mem['id']); + } + } + $ADMIN->page_title = "Member Pruning"; $ADMIN->page_detail = "Please confirm your action."; @@ -1247,6 +1646,13 @@ class ad_forums { $count['mcount'] ) ); + if ( count($member_arr) > 0 ) + { + $ADMIN->html .= $SKIN->add_td_row( array( "Members to prune" , + implode( ', ', $member_arr ) + ) ); + } + $ADMIN->html .= $SKIN->end_form("Complete Member Pruning"); $ADMIN->html .= $SKIN->end_table(); @@ -1260,13 +1666,16 @@ class ad_forums { function doprune() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //----------------------------- // Make sure we have *something* //------------------------------ - $query = trim(urldecode(stripslashes($IN['query']))); + $query = trim(urldecode($std->txt_stripslashes($IN['query']))); + + $query = str_replace( "<", "<", $query ); + $query = str_replace( ">", ">", $query ); if ($query == "") { @@ -1317,21 +1726,37 @@ class ad_forums { $DB->query("DELETE from ibf_tracker WHERE member_id IN (".$id_string.")"); + // Delete from validating.. + + $DB->query("DELETE FROM ibf_validating WHERE member_id IN (".$id_string.")"); + // Set the stats DB straight. $DB->query("SELECT id, name FROM ibf_members WHERE mgroup <> '".$INFO['auth_group']."' ORDER BY joined DESC LIMIT 0,1"); - $mem = $DB->fetch_row(); + $memb = $DB->fetch_row(); + + $DB->query("SELECT COUNT(id) as members from ibf_members WHERE mgroup <> '".$INFO['auth_group']."'"); + $r = $DB->fetch_row(); + // Remove "guest" account... + $r['members']--; + $r['members'] < 1 ? 0 : $r['members']; $DB->query("UPDATE ibf_stats SET ". - "MEM_COUNT=MEM_COUNT-".$id_count.", ". - "LAST_MEM_NAME='" . $mem['name'] . "', ". - "LAST_MEM_ID='" . $mem['id'] . "'"); - + "MEM_COUNT={$r['members']}, ". + "LAST_MEM_NAME='" . $memb['name'] . "', ". + "LAST_MEM_ID='" . $memb['id'] . "'"); + // Blow me melon farmer $ADMIN->save_log("Removed $id_count members via the prune form"); + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_delete($ids); + } + $ADMIN->done_screen("Member Account(s) Deleted", "Member Control", "act=mem&code=edit" ); } @@ -1339,7 +1764,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function delete_lookup_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['USER_NAME'] == "") { @@ -1402,7 +1827,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function dodelete() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['MEMBER_ID'] == "") { @@ -1430,25 +1855,46 @@ class ad_forums { // Delete member... $DB->query("DELETE from ibf_members WHERE id='".$IN['MEMBER_ID']."'"); + $DB->query("DELETE from ibf_pfields_content WHERE member_id='".$IN['MEMBER_ID']."'"); + $DB->query("DELETE from ibf_member_extra WHERE id='".$IN['MEMBER_ID']."'"); // Delete member messages... $DB->query("DELETE from ibf_messages WHERE member_id='".$IN['MEMBER_ID']."'"); + $DB->query("DELETE from ibf_contacts WHERE member_id='".$IN['MEMBER_ID']."' or contact_id='".$IN['MEMBER_ID']."'"); // Delete member subscriptions. $DB->query("DELETE from ibf_tracker WHERE member_id='".$IN['MEMBER_ID']."'"); + $DB->query("DELETE from ibf_forum_tracker WHERE member_id='".$IN['MEMBER_ID']."'"); + $DB->query("DELETE from ibf_warn_logs WHERE wlog_mid='".$IN['MEMBER_ID']."'"); + + // Delete from validating.. + + $DB->query("DELETE FROM ibf_validating WHERE member_id='".$IN['MEMBER_ID']."'"); // Set the stats DB straight. $DB->query("SELECT id, name FROM ibf_members WHERE mgroup <> '".$INFO['auth_group']."' ORDER BY joined DESC LIMIT 0,1"); - $mem = $DB->fetch_row(); + $memb = $DB->fetch_row(); + + $DB->query("SELECT COUNT(id) as members from ibf_members WHERE mgroup <> '".$INFO['auth_group']."'"); + $r = $DB->fetch_row(); + // Remove "guest" account... + $r['members']--; + $r['members'] < 1 ? 0 : $r['members']; $DB->query("UPDATE ibf_stats SET ". - "MEM_COUNT=MEM_COUNT-1, ". - "LAST_MEM_NAME='" . $mem['name'] . "', ". - "LAST_MEM_ID='" . $mem['id'] . "'"); + "MEM_COUNT={$r['members']}, ". + "LAST_MEM_NAME='" . $memb['name'] . "', ". + "LAST_MEM_ID='" . $memb['id'] . "'"); + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_delete($IN['MEMBER_ID']); + } // Blow me melon farmer @@ -1458,7 +1904,7 @@ class ad_forums { } - //+------------------------------- + //+--------------------------------------------------------------------------------- // // ADD MEMBER FORM @@ -1466,7 +1912,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function add_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Pre Register a member"; @@ -1476,6 +1922,13 @@ class ad_forums { while ( $r = $DB->fetch_row() ) { + if ($INFO['admin_group'] == $r['g_id']) + { + if ($MEMBER['mgroup'] != $INFO['admin_group']) + { + continue; + } + } $mem_group[] = array( $r['g_id'] , $r['g_title'] ); } @@ -1587,7 +2040,7 @@ class ad_forums { function do_add() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; foreach( array('name', 'password', 'email', 'mgroup') as $field ) { @@ -1645,7 +2098,6 @@ class ad_forums { 'time_offset' => 0, 'view_sigs' => 1, 'view_avs' => 1, - 'allow_post' => 1, 'view_pop' => 1, 'view_img' => 1, 'vdirs' => "in:Inbox|sent:Sent Items", @@ -1693,7 +2145,7 @@ class ad_forums { //+--------------------------------------------------------------------------------- function search_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Edit a member"; @@ -1800,62 +2252,78 @@ class ad_forums { //+--------------------------------------------------------------------------------- function do_advanced_search($basic=0) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $page_query = ""; + $un_all = ""; - if ($basic == 0) + if ( $IN['showsusp'] == 1 ) { - $query = array(); - - foreach( array('name','email','ip_address','aim_name','icq_number','yahoo','signature','last_post','last_activity','mgroup') as $bit ) - { - $IN[ $bit ] = urldecode(trim($IN[ $bit ])); - - $page_query .= '&'.$bit.'='.urlencode($IN[ $bit ]); - - if ($IN[ $bit ] != "") - { - if ($bit == 'last_post' or $bit == 'last_activity') - { - $dateline = time() - ($IN[ $bit ]*60*60*24); - $query[] = 'm.'.$bit.' > '."'$dateline'"; - } - else if ($bit == 'mgroup') - { - if ($IN['mgroup'] != 'all') - { - $query[] = "m.mgroup=".$IN['mgroup']; - } - } - else - { - $query[] = 'm.'.$bit." LIKE '%".$IN[$bit]."%'"; - } - } - } - - if (count($query) < 1) - { - $ADMIN->error("Please complete at least one field before submitting the search form"); - } - - $rq = implode( " AND ", $query ); + $rq = "temp_ban <> '' and temp_ban is not null"; + $un_all = "Unsuspend All Accounts · "; } else { - // Basic username search - - $IN['USER_NAME'] = trim(urldecode($IN['USER_NAME'])); - - if ($IN['USER_NAME'] == "") + if ($basic == 0) { - $ADMIN->error("You didn't choose a member name to look for!"); + $query = array(); + + foreach( array('name','email','ip_address','aim_name','icq_number','yahoo','signature','last_post','last_activity','mgroup') as $bit ) + { + $IN[ $bit ] = urldecode(trim($IN[ $bit ])); + + $page_query .= '&'.$bit.'='.urlencode($IN[ $bit ]); + + if ($IN[ $bit ] != "") + { + if ($bit == 'last_post' or $bit == 'last_activity') + { + $dateline = time() - ($IN[ $bit ]*60*60*24); + $query[] = 'm.'.$bit.' > '."'$dateline'"; + } + else if ($bit == 'mgroup') + { + if ($IN['mgroup'] != 'all') + { + $query[] = "m.mgroup=".$IN['mgroup']; + } + } + else + { + $query[] = 'm.'.$bit." LIKE '%".$IN[$bit]."%'"; + } + } + } + + if (count($query) < 1) + { + $ADMIN->error("Please complete at least one field before submitting the search form"); + } + + $rq = implode( " AND ", $query ); } + else + { + // Basic username search + + if ( $IN['decode'] ) + { + $IN['USER_NAME'] = trim(urldecode($IN['USER_NAME'])); + } + else + { + $IN['USER_NAME'] = trim($IN['USER_NAME']); + } + + if ($IN['USER_NAME'] == "") + { + $ADMIN->error("You didn't choose a member name to look for!"); + } + + $page_query = "&decode=1&USER_NAME=".urlencode($IN['USER_NAME']); - $page_query = "&USER_NAME=".urlencode($IN['USER_NAME']); - - $rq = "name LIKE '".$IN['USER_NAME']."%'"; + $rq = "name LIKE '".$IN['USER_NAME']."%'"; + } } $st = intval($IN['st']); @@ -1865,7 +2333,7 @@ class ad_forums { $st = 0; } - $query = "SELECT m.id, m.email, m.name, m.mgroup, m.ip_address, m.posts, g.g_title + $query = "SELECT m.id, m.email, m.name, m.mgroup, m.ip_address, m.posts, m.temp_ban, g.g_title FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE $rq ORDER BY m.name LIMIT $st,50"; @@ -1880,7 +2348,14 @@ class ad_forums { if ($count['count'] < 1) { - $ADMIN->error("Your search query did not return any matches from the member database. Please go back and try again"); + if ($IN['showsusp']) + { + $ADMIN->error("There are currently no suspended member accounts"); + } + else + { + $ADMIN->error("Your search query did not return any matches from the member database. Please go back and try again"); + } } $ADMIN->page_title = "Your Member Search Results"; @@ -1892,24 +2367,27 @@ class ad_forums { $pages = $std->build_pagelinks( array( 'TOTAL_POSS' => $count['count'], 'PER_PAGE' => 50, 'CUR_ST_VAL' => $IN['st'], - 'L_SINGLE' => "Single Page", - 'L_MULTI' => "Multi Page", - 'BASE_URL' => $SKIN->base_url."&act=mem&code={$IN['code']}".$page_query, + 'L_SINGLE' => $un_all."Single Page", + 'L_MULTI' => $un_all."Multi Page", + 'BASE_URL' => $SKIN->base_url."&act=mem&showsusp={$IN['showsusp']}&code={$IN['code']}".$page_query, ) ); //+------------------------------- - $SKIN->td_header[] = array( "Member Name" , "20%" ); - $SKIN->td_header[] = array( "Group" , "20%" ); + $SKIN->td_header[] = array( "IP Address " , "15%" ); + $SKIN->td_header[] = array( "Group" , "10%" ); $SKIN->td_header[] = array( "Posts" , "10%" ); - $SKIN->td_header[] = array( "Email" , "20%" ); - $SKIN->td_header[] = array( "Edit Details" , "15%" ); - $SKIN->td_header[] = array( "Change Name" , "15%" ); + $SKIN->td_header[] = array( "Email" , "15%" ); + $SKIN->td_header[] = array( "Edit" , "16%" ); + $SKIN->td_header[] = array( "Change" , "16%" ); + $SKIN->td_header[] = array( "Ban" , "17%" ); //+------------------------------- - $ADMIN->html .= $SKIN->start_table( "{$count['count']} Search Results" ); + $title = $IN['showsusp'] == 1 ? 'Suspended Accounts' : 'Search Results'; + + $ADMIN->html .= $SKIN->start_table( "{$count['count']} ".$title ); //+------------------------------- // Run the query @@ -1919,16 +2397,31 @@ class ad_forums { while ( $r = $DB->fetch_row() ) { - $ADMIN->html .= $SKIN->add_td_row( array( "{$r['name']}
    (IP Address: {$r['ip_address']})", + $tban = ""; + $sus_link = ""; + + if ( $r['temp_ban'] != "" ) + { + $s_ban = $std->hdl_ban_line( $r['temp_ban'] ); + + $sus_link = " - Unsuspend"; + + $tban = '  (Suspended until '.$ADMIN->get_date( $s_ban['date_end'], 'LONG') .$sus_link.')'; + } + + $ADMIN->html .= $SKIN->add_td_basic( "- {$r['name']} $tban", "left", "pformstrip" ); + $ADMIN->html .= $SKIN->add_td_row( array( "{$r['ip_address']}", $r['g_title'], "
    ".$r['posts']."
    ", "
    ".$r['email']."
    ", - "Edit Details", - "Change Name" + "
    Edit Details
    ", + "
    Change Name
    ", + "
    Suspend Account
    " ) ); + } - $ADMIN->html .= $SKIN->add_td_basic($pages, 'right', 'catrow'); + $ADMIN->html .= $SKIN->add_td_basic($pages, 'right', 'pformstrip'); $ADMIN->html .= $SKIN->end_table(); @@ -1944,9 +2437,9 @@ class ad_forums { //+--------------------------------------------------------------------------------- function do_edit_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; - require $root_path."sources/lib/post_parser.php"; + require ROOT_PATH."sources/lib/post_parser.php"; $parser = new post_parser(); @@ -1970,14 +2463,38 @@ class ad_forums { //+------------------------------- $mem_group = array(); + $show_fixed = FALSE; + + $units = array( 0 => array( 'h', 'Hours' ), 1 => array( 'd', 'Days' ) ); $DB->query("SELECT g_id, g_title FROM ibf_groups ORDER BY g_title"); while ( $r = $DB->fetch_row() ) { + // Ensure only root admins can promote to root admin grou... + // oh screw it, I can't be bothered explaining stuff tonight + + if ($INFO['admin_group'] == $r['g_id']) + { + if ($MEMBER['mgroup'] != $INFO['admin_group']) + { + continue; + } + } + $mem_group[] = array( $r['g_id'] , $r['g_title'] ); } + // is this a non root editing a root? + + if ($MEMBER['mgroup'] != $INFO['admin_group']) + { + if ($mem['mgroup'] == $INFO['admin_group']) + { + $show_fixed = TRUE; + } + } + //+------------------------------- $lang_array = array(); @@ -2088,6 +2605,19 @@ class ad_forums { } + //+------------------------------- + //| Perms masks section + //+------------------------------- + + $perm_masks = array(); + + + $DB->query("SELECT * FROM ibf_forum_perms"); + + while ( $r = $DB->fetch_row() ) + { + $perm_masks[] = array( $r['perm_id'], $r['perm_name'] ); + } //+------------------------------- @@ -2115,25 +2645,171 @@ class ad_forums { $ADMIN->html .= $SKIN->add_td_row( array( "IP address when registered" ,$mem['ip_address'] ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Allow {$mem['name']} to post where allowed?" , - $SKIN->form_yes_no("allow_post", $mem['allow_post'] ) + $ADMIN->html .= $SKIN->add_td_row( array( "Remove member's photo" , + $SKIN->form_checkbox("remove_photo", 0) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Member Group" , - $SKIN->form_dropdown( "mgroup", - $mem_group, - $mem['mgroup'] - ) + $ADMIN->html .= $SKIN->add_td_row( array( "Warn Level" , + $SKIN->form_input("warn_level", $mem['warn_level']) ) ); - + $ADMIN->html .= $SKIN->add_td_row( array( "Member Title" , $SKIN->form_input("title", $mem['title']) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Require moderator preview of all posts by this member?
    If yes, all posts by this member will be put into the moderation queue." , - $SKIN->form_yes_no("mod_posts", $mem['mod_posts']) + if ($show_fixed != TRUE) + { + $ADMIN->html .= $SKIN->add_td_row( array( "Member Group" , + $SKIN->form_dropdown( "mgroup", + $mem_group, + $mem['mgroup'] + ) + ) ); + } + else + { + $ADMIN->html .= $SKIN->add_td_row( array( "Member Group" , + $SKIN->form_hidden( array( 1 => array( 'mgroup' , $mem['mgroup'] ) ) )."Root Admin (Can't Change)", + ) ); + } + + //+------------------------------- + // Sort out perm id stuff + //+------------------------------- + + $ADMIN->html .= + ""; + + $arr = explode( ",",$mem['org_perm_id'] ); + + $ch_ch = ( $mem['org_perm_id'] ) ? 'checked' : ''; + + $ADMIN->html .= $SKIN->add_td_row( array( "Override group forum permission mask with...
    You may choose more than one" , + " Override Group Permission Mask with...
    ". + $SKIN->form_multiselect( "permid[]", + $perm_masks, + $arr, 5, 'onfocus="saveit(this)" onchange="saveit(this)"' + )."
    " + ) , "subforum" ); + + //----------------------------------------------------------------------------------------------- + // Mod posts bit + //----------------------------------------------------------------------------------------------- + + $mod_tick = 0; + $mod_arr = array(); + + if ( $mem['mod_posts'] == 1 ) + { + $mod_tick = 'checked'; + } + elseif ($mem['mod_posts'] > 0) + { + $mod_arr = $std->hdl_ban_line( $mem['mod_posts'] ); + + $hours = ceil( ( $mod_arr['date_end'] - time() ) / 3600 ); + + if ( $hours > 24 and ( ($hours / 24) == ceil($hours / 24) ) ) + { + $mod_arr['units'] = 'd'; + $mod_arr['timespan'] = $hours / 24; + } + else + { + $mod_arr['units'] = 'h'; + $mod_arr['timespan'] = $hours; + } + + $mod_extra = "
    Restriction in progress - remaining time has been recalculated"; + } + + + $ADMIN->html .= $SKIN->add_td_row( array( "Require moderator preview of all posts by this member?
    If yes, all posts by this member will be put into the moderation queue. Untick box and clear number box to remove." , + " Moderator Preview indefinitely +
    or for ".$SKIN->form_input('mod_timespan', $mod_arr['timespan'], "text", "", '5' ) . ' ' . $SKIN->form_dropdown('mod_units', $units, $mod_arr['units'] ).$mod_extra ) ); + + $post_tick = 0; + $post_arr = array(); + + if ( $mem['restrict_post'] == 1 ) + { + $post_tick = 'checked'; + } + else if( $mem['restrict_post'] > 0 ) + { + $post_arr = $std->hdl_ban_line( $mem['restrict_post'] ); + + $hours = ceil( ( $post_arr['date_end'] - time() ) / 3600 ); + + if ( $hours > 24 and ( ($hours / 24) == ceil($hours / 24) ) ) + { + $post_arr['units'] = 'd'; + $post_arr['timespan'] = $hours / 24; + } + else + { + $post_arr['units'] = 'h'; + $post_arr['timespan'] = $hours; + } + + $post_extra = "
    Restriction in progress - remaining time has been recalculated"; + } + + $ADMIN->html .= $SKIN->add_td_row( array( "Restrict {$mem['name']} from posting?
    Untick box and clear number box to remove restriction." , + " Restrict posting indefinitely +
    or for ".$SKIN->form_input('post_timespan', $post_arr['timespan'], "text", "", '5' ) . ' ' . $SKIN->form_dropdown('post_units', $units, $post_arr['units'] ).$post_extra + ) , "subforum" ); + + + //----------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->end_table(); //+------------------------------- @@ -2215,6 +2891,10 @@ class ad_forums { $SKIN->form_input("msnname", $mem['msnname']) ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Integrity Messenger Name" , + $SKIN->form_input("integ_msg", $mem['integ_msg']) + ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Website Address" , $SKIN->form_input("website", $mem['website']) ) ); @@ -2251,36 +2931,14 @@ class ad_forums { ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Interests" , - $SKIN->form_textarea("interests", $mem['interests']) + $SKIN->form_textarea("interests", str_replace( '
    ', "\n",$mem['interests'])) ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Signature" , $SKIN->form_textarea("signature", $mem['signature']) ) ); - $ADMIN->html .= $SKIN->end_table(); - //+-------------------------------+ - - $SKIN->td_header[] = array( " " , "40%" ); - $SKIN->td_header[] = array( " " , "60%" ); - - //+-------------------------------+ - - $ADMIN->html .= $SKIN->start_table( "Validation Keys" ); - - - $ADMIN->html .= $SKIN->add_td_row( array( "Validation Key
    (Do not alter unless you are sure it is no longer needed!)" , - $SKIN->form_input("validate_key", $mem['validate_key']) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "New Password (MD5)
    (Do not alter unless you are sure it is no longer needed!)" , - $SKIN->form_input("new_pass", $mem['new_pass']) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Previous Member Group ID
    (Do not alter unless you are sure it is no longer needed!)" , - $SKIN->form_input("prev_group", $mem['prev_group']) - ) ); //+------------------------------- @@ -2316,10 +2974,11 @@ class ad_forums { //+--------------------------------------------------------------------------------- - function do_edit() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + function do_edit() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums, $HTTP_POST_VARS; - $DB->query("SELECT name FROM ibf_members WHERE id='".$IN['mid']."'"); + $DB->query("SELECT * FROM ibf_members WHERE id='".$IN['mid']."'"); $memb = $DB->fetch_row(); @@ -2330,7 +2989,7 @@ class ad_forums { $password = ", password='".md5($IN['password'])."'"; } - require $root_path."sources/lib/post_parser.php"; + require ROOT_PATH."sources/lib/post_parser.php"; $parser = new post_parser(); @@ -2340,14 +2999,42 @@ class ad_forums { 'HTML' => $INFO['sig_allow_html'], 'SIGNATURE' => 1 ) ); + + if ( $IN['override'] == 1 ) + { + $permid = implode( ",", $HTTP_POST_VARS['permid'] ); + } + else + { + $permid = ""; + } + + $restrict_post = 0; + $mod_queue = 0; + + if ( $IN['mod_indef'] == 1 ) + { + $mod_queue = 1; + } + elseif ( $IN['mod_timespan'] > 0 ) + { + $mod_queue = $std->hdl_ban_line( array( 'timespan' => intval($IN['mod_timespan']), 'unit' => $IN['mod_units'] ) ); + } + + + if ( $IN['post_indef'] == 1 ) + { + $restrict_post = 1; + } + elseif ( $IN['post_timespan'] > 0 ) + { + $restrict_post = $std->hdl_ban_line( array( 'timespan' => intval($IN['post_timespan']), 'unit' => $IN['post_units'] ) ); + } $db_string = $DB->compile_db_update_string( array ( - 'allow_post' => $IN['allow_post'], + 'restrict_post' => $restrict_post, 'mgroup' => $IN['mgroup'], 'title' => $IN['title'], - 'validate_key' => $IN['validate_key'], - 'new_pass' => $IN['new_pass'], - 'prev_group' => $IN['prev_group'], 'language' => $IN['language'], 'skin' => $IN['skin'], 'hide_email' => $IN['hide_email'], @@ -2364,11 +3051,40 @@ class ad_forums { 'location' => $IN['location'], 'interests' => $IN['interests'], 'signature' => $IN['signature'], - 'mod_posts' => $IN['mod_posts'], + 'mod_posts' => $mod_queue, + 'org_perm_id' => $permid, + 'warn_level' => $IN['warn_level'], + 'integ_msg' => $IN['integ_msg'], ) ); $DB->query("UPDATE ibf_members SET $db_string".$password." WHERE id='".$IN['mid']."'"); + //---------------------------------- + // Remove photo? + //---------------------------------- + + if ( $IN['remove_photo'] ) + { + $DB->query("SELECT id FROM ibf_member_extra WHERE id={$IN['mid']}"); + + if ( $DB->get_num_rows() ) + { + $DB->query("UPDATE ibf_member_extra SET photo_location='', photo_type='', photo_dimensions='' WHERE id={$IN['mid']}"); + } + else + { + $DB->query("INSERT INTO ibf_member_extra SET photo_location='', photo_type='', photo_dimensions='', id={$IN['mid']}"); + } + + foreach( array( 'swf', 'jpg', 'jpeg', 'gif', 'png' ) as $ext ) + { + if ( @file_exists( $INFO['upload_dir']."/photo-".$IN['mid'].".".$ext ) ) + { + @unlink( $INFO['upload_dir']."/photo-".$IN['mid'].".".$ext ); + } + } + } + //---------------------------------- // Custom profile field stuff //---------------------------------- @@ -2379,7 +3095,7 @@ class ad_forums { while ( $row = $DB->fetch_row() ) { - $custom_fields[ 'field_'.$row['fid'] ] = $IN[ 'field_'.$row['fid'] ]; + $custom_fields[ 'field_'.$row['fid'] ] = str_replace( '
    ', "\n", $IN[ 'field_'.$row['fid'] ] ); } if ( count($custom_fields) > 0 ) @@ -2407,6 +3123,49 @@ class ad_forums { } } + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + + if ( $IN['password'] ) + { + if ( md5($IN['password']) != $memb['password'] ) + { + $this->modules->on_pass_change($IN['mid'], $IN['password']); + } + } + + if ( $memb['mgroup'] != $IN['mgroup'] ) + { + $this->modules->on_group_change($IN['mid'], $IN['mgroup']); + } + + if ( $memb['email'] != $IN['email'] ) + { + $this->modules->on_email_change($IN['mid'], $IN['email']); + } + + if ( $memb['signature'] != $IN['signature'] ) + { + $this->modules->on_signature_update($memb, $IN['signature']); + } + + $mem_array = array( + 'title' => $IN['title'], + 'aim_name' => $IN['aim_name'], + 'icq_number' => $IN['icq_number'], + 'yahoo' => $IN['yahoo'], + 'msnname' => $IN['msnname'], + 'website' => $IN['website'], + 'location' => $IN['location'], + 'interests' => $IN['interests'], + 'id' => $IN['mid'] + ); + + $this->modules->on_profile_update($mem_array, $custom_fields); + } + $ADMIN->save_log("Edited Member '{$memb['name']}' account"); $ADMIN->done_screen("Member Edited", "Member Control", "act=mem&code=edit" ); diff --git a/upload/sources/Admin/ad_member_tools.php b/upload/sources/Admin/ad_member_tools.php new file mode 100644 index 00000000..68b40bf7 --- /dev/null +++ b/upload/sources/Admin/ad_member_tools.php @@ -0,0 +1,524 @@ + Admin Member Tool functions +| > Module written by Matt Mecham +| > Date started: 17th September 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + +$idx = new ad_member_tools(); + +$root_path = ""; + +class ad_member_tools { + + var $base_url; + var $modules = ""; + + function ad_member_tools() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + $ADMIN->nav[] = array( 'act=mtools', 'Member Tools Home' ); + + //--------------------------------------- + + $ADMIN->page_title = "Member Tool Box"; + $ADMIN->page_detail = 'You can use the tools below to search for IP address.'; + + switch($IN['code']) + { + + case 'showallips': + $this->show_ips(); + break; + + case 'learnip': + $this->learn_ip(); + break; + + //--------------------- + default: + $this->show_index(); + break; + } + + } + + + //+--------------------------------------------------------------------------------- + // + // LEARN ABOUT THE IP. It's very good. + // + //+--------------------------------------------------------------------------------- + + + function learn_ip() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + if ( $IN['ip'] == "" ) + { + $this->show_index("You did not enter an IP address to search by"); + } + + $ip = $IN['ip']; + + $resolved = 'N/A - Partial IP Address'; + $exact = 0; + + if ( substr_count( $ip, '.' ) == 3 ) + { + $exact = 1; + } + + if ( strstr( $ip, '*' ) ) + { + $exact = 0; + $ip = str_replace( "*", "", $ip ); + } + + if ( $exact != 0 ) + { + $resolved = gethostbyaddr($ip); + $query = "='".$ip."'"; + } + else + { + $query = " LIKE '".$ip."%'"; + } + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Host Address for {$IN['ip']}" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "IP address resolves to" , + $resolved + ) ); + + $ADMIN->html .= $SKIN->end_table(); + + //+-------------------------------------------------- + // Find registered members + //+-------------------------------------------------- + + $SKIN->td_header[] = array( "Name" , "30%" ); + $SKIN->td_header[] = array( "Email" , "20%" ); + $SKIN->td_header[] = array( "Posts" , "10%" ); + $SKIN->td_header[] = array( "IP" , "20%" ); + $SKIN->td_header[] = array( "Registered" , "20%" ); + + $ADMIN->html .= $SKIN->start_table( "Members using that IP when REGISTERING" ); + + $DB->query("SELECT id, name, email, posts, ip_address, joined FROM ibf_members WHERE ip_address{$query} ORDER BY joined DESC LIMIT 250"); + + if ( ! $DB->get_num_rows() ) + { + $ADMIN->html .= $SKIN->add_td_basic( "No Matches Found", "center"); + } + else + { + while ( $m = $DB->fetch_row() ) + { + + $ADMIN->html .= $SKIN->add_td_row( array( $m['name'] , + $m['email'], + $m['posts'], + $m['ip_address'], + $std->get_date( $m['joined'], 'SHORT' ) + ) ); + } + } + + $ADMIN->html .= $SKIN->end_table(); + + //+-------------------------------------------------- + // Find Names posted under + //+-------------------------------------------------- + + $SKIN->td_header[] = array( "Name" , "20%" ); + $SKIN->td_header[] = array( "Email" , "20%" ); + $SKIN->td_header[] = array( "IP" , "15%" ); + $SKIN->td_header[] = array( "First Used" , "20%" ); + $SKIN->td_header[] = array( "View Post" , "15%" ); + + $ADMIN->html .= $SKIN->start_table( "Members using that IP when POSTING" ); + + $DB->query("SELECT m.id, m.name, m.email, m.posts, m.joined, p.pid, p.author_id, p.post_date, p.ip_address, p.topic_id + FROM ibf_posts p + LEFT JOIN ibf_members m ON ( p.author_id=m.id) + WHERE p.ip_address{$query} GROUP BY p.author_id ORDER BY p.post_date DESC LIMIT 250"); + + if ( ! $DB->get_num_rows() ) + { + $ADMIN->html .= $SKIN->add_td_basic( "No Matches Found", "center"); + } + else + { + while ( $m = $DB->fetch_row() ) + { + $ADMIN->html .= $SKIN->add_td_row( array( $m['name'] , + $m['email'], + $m['ip_address'], + $std->get_date( $m['post_date'], 'SHORT' ), + "
    View Post
    ", + ) ); + } + } + + $ADMIN->html .= $SKIN->end_table(); + + //+-------------------------------------------------- + // Find Names VOTED under + //+-------------------------------------------------- + + $SKIN->td_header[] = array( "Name" , "20%" ); + $SKIN->td_header[] = array( "Email" , "20%" ); + $SKIN->td_header[] = array( "IP" , "15%" ); + $SKIN->td_header[] = array( "First Used" , "20%" ); + $SKIN->td_header[] = array( "View Poll" , "15%" ); + + $ADMIN->html .= $SKIN->start_table( "Members using that IP when VOTING" ); + + $DB->query("SELECT m.id, m.name, m.email, m.posts, m.joined, p.vote_date, p.ip_address, p.tid + FROM ibf_voters p + LEFT JOIN ibf_members m ON ( p.member_id=m.id) + WHERE p.ip_address{$query} GROUP BY p.member_id ORDER BY p.vote_date DESC LIMIT 250"); + + if ( ! $DB->get_num_rows() ) + { + $ADMIN->html .= $SKIN->add_td_basic( "No Matches Found", "center"); + } + else + { + while ( $m = $DB->fetch_row() ) + { + $ADMIN->html .= $SKIN->add_td_row( array( $m['name'] , + $m['email'], + $m['ip_address'], + $std->get_date( $m['vote_date'], 'SHORT' ), + "
    View Poll
    ", + ) ); + } + } + + $ADMIN->html .= $SKIN->end_table(); + + //+-------------------------------------------------- + // Find Names EMAILING under + //+-------------------------------------------------- + + $SKIN->td_header[] = array( "Name" , "20%" ); + $SKIN->td_header[] = array( "Email" , "20%" ); + $SKIN->td_header[] = array( "IP" , "15%" ); + $SKIN->td_header[] = array( "First Used" , "20%" ); + + $ADMIN->html .= $SKIN->start_table( "Members using that IP when EMAILING other members" ); + + $DB->query("SELECT m.id, m.name, m.email, m.posts, m.joined, p.email_date, p.from_ip_address + FROM ibf_email_logs p + LEFT JOIN ibf_members m ON ( p.from_member_id=m.id) + WHERE p.from_ip_address{$query} GROUP BY p.from_member_id ORDER BY p.email_date DESC LIMIT 250"); + + if ( ! $DB->get_num_rows() ) + { + $ADMIN->html .= $SKIN->add_td_basic( "No Matches Found", "center"); + } + else + { + while ( $m = $DB->fetch_row() ) + { + $ADMIN->html .= $SKIN->add_td_row( array( $m['name'] , + $m['email'], + $m['from_ip_address'], + $std->get_date( $m['email_date'], 'SHORT' ), + ) ); + } + } + + $ADMIN->html .= $SKIN->end_table(); + + + //+-------------------------------------------------- + // Find Names VALIDATING under + //+-------------------------------------------------- + + $SKIN->td_header[] = array( "Name" , "20%" ); + $SKIN->td_header[] = array( "Email" , "20%" ); + $SKIN->td_header[] = array( "IP" , "15%" ); + $SKIN->td_header[] = array( "First Used" , "20%" ); + + $ADMIN->html .= $SKIN->start_table( "Members using that IP while VALIDATING their accounts" ); + + $DB->query("SELECT m.id, m.name, m.email, m.posts, m.joined, p.entry_date, p.ip_address + FROM ibf_validating p + LEFT JOIN ibf_members m ON ( p.member_id=m.id) + WHERE p.ip_address{$query} GROUP BY p.member_id ORDER BY p.entry_date DESC LIMIT 250"); + + if ( ! $DB->get_num_rows() ) + { + $ADMIN->html .= $SKIN->add_td_basic( "No Matches Found", "center"); + } + else + { + while ( $m = $DB->fetch_row() ) + { + $ADMIN->html .= $SKIN->add_td_row( array( $m['name'] , + $m['email'], + $m['ip_address'], + $std->get_date( $m['entry_date'], 'SHORT' ), + ) ); + } + } + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + } + + //+--------------------------------------------------------------------------------- + // + // SHOW ALL IPs + // + //+--------------------------------------------------------------------------------- + + + function show_ips() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + if ( $IN['name'] == "" and $IN['member_id'] == "" ) + { + $this->show_index("You did not enter a name to search by"); + } + + if ( $IN['member_id'] ) + { + $id = intval($IN['member_id']); + + $DB->query("SELECT id, name, email, ip_address FROM ibf_members WHERE id=$id"); + + if ( ! $member = $DB->fetch_row() ) + { + $this->show_index("Could not locate a member with the id of '$id'"); + } + } + else + { + $name = addslashes($IN['name']); + + $DB->query("SELECT id, name, email, ip_address FROM ibf_members WHERE name='$name'"); + + if ( ! $member = $DB->fetch_row() ) + { + $this->show_index( "We could not find an exact match for that member name, some choices will be shown below", $name ); + } + } + + $DB->query("SELECT count(distinct(ip_address)) as cnt FROM ibf_posts WHERE author_id={$member['id']}"); + + $count = $DB->fetch_row(); + + $st = intval($IN['st']); + $end = 50; + + $links = $std->build_pagelinks( array( 'TOTAL_POSS' => $count['cnt'], + 'PER_PAGE' => $end, + 'CUR_ST_VAL' => $st, + 'L_SINGLE' => "Single Page", + 'L_MULTI' => "Multiple Pages", + 'BASE_URL' => $SKIN->base_url."&act=mtools&code=showallips&member_id={$member['id']}", + ) ); + + $master = array(); + $ips = array(); + + $DB->query("SELECT count(ip_address) as ip, ip_address, pid, topic_id, post_date FROM ibf_posts WHERE author_id={$member['id']} GROUP BY ip_address ORDER BY ip DESC LIMIT $st, $end"); + + while ( $r = $DB->fetch_row() ) + { + $master[] = $r; + $ips[] = '"'.$r['ip_address'].'"'; + } + + $reg = array(); + + if ( count($ips) > 0 ) + { + $DB->query("SELECT id, name, ip_address FROM ibf_members WHERE ip_address IN (".implode(",",$ips).") AND id != {$member['id']}"); + + while ( $i = $DB->fetch_row() ) + { + $reg[ $i['ip_address'] ][] = $i; + } + } + + //+------------------------------- + + $SKIN->td_header[] = array( "IP Address" , "20%" ); + $SKIN->td_header[] = array( "Times Used" , "10%" ); + $SKIN->td_header[] = array( "Date Used" , "25%" ); + $SKIN->td_header[] = array( "Used for other Reg." , "20%" ); + $SKIN->td_header[] = array( "IP Tool" , "25%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "{$member['name']}'s IP addresses ({$count['cnt']}) matches" ); + + foreach( $master as $idx => $r ) + { + $ADMIN->html .= $SKIN->add_td_row( array( $r['ip_address'] , + $r['ip'] , + $std->get_date( $r['post_date'], 'SHORT' ), + "
    ". intval( count($reg[ $r['ip_address'] ]) ). "
    ", + "
    Learn about this IP
    " + ) ); + } + + $ADMIN->html .= $SKIN->add_td_basic( "$links", "center", "catrow2"); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + } + + //+--------------------------------------------------------------------------------- + // + // Default Screen + // + //+--------------------------------------------------------------------------------- + + + function show_index($msg="", $membername="") + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + + if ($msg != "") + { + $SKIN->td_header[] = array( " " , "100%" ); + + $ADMIN->html .= $SKIN->start_table( "Message" ); + + $ADMIN->html .= $SKIN->add_td_row( array( $msg ) ); + + $ADMIN->html .= $SKIN->end_table(); + } + + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'showallips' ), + 2 => array( 'act' , 'mtools' ), + ) ); + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Show all IP Addresses a member has posted with" ); + + if ( $membername == "" ) + { + $ADMIN->html .= $SKIN->add_td_row( array( "Enter the member's name" , + $SKIN->form_input( "name", $std->txt_stripslashes($HTTP_POST_VARS['name']) ) + ) ); + } + else + { + $DB->query("SELECT id, name FROM ibf_members WHERE lower(name) LIKE '{$membername}%'"); + + if ( ! $DB->get_num_rows() ) + { + $this->show_index("There are no members with names that start with '$membername'"); + } + + $mem_array = array(); + + while ( $m = $DB->fetch_row() ) + { + $mem_array[] = array( $m['id'], $m['name'] ); + } + + $ADMIN->html .= $SKIN->add_td_row( array( "Choose the member from the selection" , + $SKIN->form_dropdown( "member_id", $mem_array ) + ) ); + } + + $ADMIN->html .= $SKIN->end_form("Get IP Addresses"); + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'learnip' ), + 2 => array( 'act' , 'mtools' ), + ) ); + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "IP Multi-Tool" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Show me everything you know about this IP..." , + $SKIN->form_input( "ip", $std->txt_stripslashes($HTTP_POST_VARS['ip']) ) + ) ); + + $ADMIN->html .= $SKIN->end_form("Show me!"); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + } + + + + + + + +} + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_moderator.php b/upload/sources/Admin/ad_moderator.php index c52e53da..6b22f89a 100644 --- a/upload/sources/Admin/ad_moderator.php +++ b/upload/sources/Admin/ad_moderator.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin Category functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_mod(); @@ -31,7 +37,20 @@ class ad_mod { var $base_url; function ad_mod() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -75,19 +94,28 @@ class ad_mod { function do_delete() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['mid'] == "") { $ADMIN->error("You did not choose a valid moderator ID"); } - $DB->query("SELECT member_name FROM ibf_moderators WHERE mid='".$IN['mid']."'"); + $DB->query("SELECT * FROM ibf_moderators WHERE mid='".$IN['mid']."'"); $mod = $DB->fetch_row(); + + if ( $mod['is_group'] ) + { + $name = 'Group: '.$mod['group_name']; + } + else + { + $name = $mod['member_name']; + } $DB->query("DELETE FROM ibf_moderators WHERE mid='".$IN['mid']."'"); - $ADMIN->save_log("Removed Moderator '{$mod['member_name']}'"); + $ADMIN->save_log("Removed Moderator '{$name}'"); $ADMIN->done_screen("Moderator Removed", "Moderator Control", "act=mod" ); @@ -102,7 +130,7 @@ class ad_mod { function do_edit() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['mid'] == "") { @@ -134,7 +162,8 @@ class ad_mod { 'topic_q' => $IN['topic_q'], 'allow_warn' => $IN['allow_warn'], 'split_merge' => $IN['split_merge'], - 'edit_user' => $IN['edit_user'] + 'edit_user' => $IN['edit_user'], + 'can_mm' => $IN['can_mm'], ); @@ -157,7 +186,7 @@ class ad_mod { function add_mod() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['fid'] == "") { @@ -185,9 +214,21 @@ class ad_mod { 'topic_q' => $IN['topic_q'], 'allow_warn' => $IN['allow_warn'], 'split_merge' => $IN['split_merge'], - 'edit_user' => $IN['edit_user'] + 'edit_user' => $IN['edit_user'], + 'can_mm' => $IN['can_mm'], ); + $forum_ids = array(); + + $DB->query("SELECT id FROM ibf_forums WHERE id IN(".$IN['fid'].")"); + + while( $i = $DB->fetch_row() ) + { + $forum_ids[ $i['id'] ] = $i['id']; + } + + //--------------------------------------- + if ($IN['mod_type'] == 'group') { @@ -203,6 +244,17 @@ class ad_mod { $ADMIN->error("We could not match that group ID"); } + //--------------------------------------- + // Already using this group on this forum? + //--------------------------------------- + + $DB->query("SELECT * FROM ibf_moderators WHERE forum_id IN(".$IN['fid'].") and group_id={$IN['gid']}"); + + while( $f = $DB->fetch_row() ) + { + unset($forum_ids[ $f['forum_id'] ]); + } + $mr_hash['member_name'] = '-1'; $mr_hash['member_id'] = '-1'; $mr_hash['group_id'] = $group['g_id']; @@ -227,6 +279,17 @@ class ad_mod { $ADMIN->error("Could not match that member name so there."); } + //--------------------------------------- + // Already using this member on this forum? + //--------------------------------------- + + $DB->query("SELECT * FROM ibf_moderators WHERE forum_id IN(".$IN['fid'].") and member_id={$IN['mem']}"); + + while( $f = $DB->fetch_row() ) + { + unset($forum_ids[ $f['forum_id'] ]); + } + $mr_hash['member_name'] = $mem['name']; $mr_hash['member_id'] = $mem['id']; $mr_hash['is_group'] = 0; @@ -239,22 +302,11 @@ class ad_mod { // Check for legal forums //-------------------------------------- - $forum_ids = array(); - - $DB->query("SELECT id FROM ibf_forums WHERE id IN(".$IN['fid'].")"); - - while( $i = $DB->fetch_row() ) - { - $forum_ids[] = $i['id']; - } - if ( count($forum_ids) == 0) { - $ADMIN->error("We could not match any forums with those IDS"); + $ADMIN->error("You did not select any forums that do not have this group or member already moderating."); } - - //-------------------------------------- // Loopy loopy //-------------------------------------- @@ -281,7 +333,7 @@ class ad_mod { //+--------------------------------------------------------------------------------- function mod_form( $type='add' ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $group = array(); @@ -509,7 +561,11 @@ class ad_mod { $ADMIN->html .= $SKIN->add_td_row( array( "Can edit user avatars and signatures?" , $SKIN->form_yes_no("edit_user", $mod['edit_user'] ) - ) ); + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Can use topic multi-moderation?
    ".$SKIN->js_help_link('mod_mmod', 'Important Information' ) , + $SKIN->form_yes_no("can_mm", $mod['can_mm'] ) + ) ); //+------------------------------- @@ -530,7 +586,7 @@ class ad_mod { //+--------------------------------------------------------------------------------- function add_one() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //----------------------------- // Grab and serialize the input @@ -628,7 +684,7 @@ class ad_mod { //+--------------------------------------------------------------------------------- function add_two() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; // Are we adding a group as a mod? If so, bounce straight to the mod perms form @@ -703,7 +759,7 @@ class ad_mod { //+--------------------------------------------------------------------------------- function show_list() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Moderator Control Overview"; $ADMIN->page_detail = "This section allows you to edit, remove and add new moderators to your forums"; @@ -712,11 +768,9 @@ class ad_mod { 2 => array( 'act' , 'mod' ), ) ); - $SKIN->td_header[] = array( "Add" , "5%" ); - $SKIN->td_header[] = array( "Forum Name" , "30%" ); - $SKIN->td_header[] = array( "Posts" , "10%" ); - $SKIN->td_header[] = array( "Topics" , "10%" ); - $SKIN->td_header[] = array( "Current Moderators" , "45%" ); + $SKIN->td_header[] = array( "Add" , "5%" ); + $SKIN->td_header[] = array( "Forum Name" , "40%" ); + $SKIN->td_header[] = array( "Current Moderators" , "55%" ); $ADMIN->html .= $SKIN->start_table( "Your Categories and Forums" ); @@ -765,9 +819,7 @@ class ad_mod { ' ', "".$c['name']."", ' ', - ' ', - ' ', - ), 'catrow' ); + ), 'pformstrip' ); $last_cat_id = $c['id']; @@ -811,26 +863,24 @@ class ad_mod { $these_mods = "
    Unmoderated
    "; } - if ($r['subwrap'] == 1) + if ($r['subwrap'] == 1 and $r['sub_can_post'] != 1) { $ADMIN->html .= $SKIN->add_td_row( array( ' ', - $c['name'], + " - ".$r['name']."", ' ', - ' ', - ' ', - ), 'catrow2' ); + ), 'subforum' ); } else { + $css = $r['subwrap'] == 1 ? 'subforum' : ''; + $ADMIN->html .= $SKIN->add_td_row( array( "
    ", - "".$r['name']."
    ".$r['description'], - $r['posts'], - $r['topics'], + "".$r['name']."", $these_mods - ) ); + ) , $css ); } if ( ( isset($children[ $r['id'] ]) ) and ( count ($children[ $r['id'] ]) > 0 ) ) @@ -874,9 +924,7 @@ class ad_mod { $ADMIN->html .= $SKIN->add_td_row( array( "
    ", - "".$rd['name']."
    ".$rd['description'], - $rd['posts'], - $rd['topics'], + " +-- ".$rd['name']."", $these_mods ) ,'subforum' ); } diff --git a/upload/sources/Admin/ad_modlogs.php b/upload/sources/Admin/ad_modlogs.php index 1eb18263..2c3abf58 100644 --- a/upload/sources/Admin/ad_modlogs.php +++ b/upload/sources/Admin/ad_modlogs.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Import functions @@ -22,8 +24,11 @@ */ -// Ensure we've not accessed this script directly: - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_modlogs(); @@ -34,7 +39,20 @@ class ad_modlogs { var $base_url; function ad_modlogs() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -62,7 +80,7 @@ class ad_modlogs { function view() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $start = $IN['st'] ? $IN['st'] : 0; @@ -78,7 +96,9 @@ class ad_modlogs { $query = "&act=modlog&mid={$IN['mid']}&code=view"; - $DB->query("SELECT m.*, f.id as forum_id, f.name FROM ibf_moderator_logs m, ibf_forums f WHERE m.member_id='".$IN['mid']."' AND f.id=m.forum_id ORDER BY m.ctime DESC LIMIT $start, 20"); + $DB->query("SELECT m.*, f.id as forum_id, f.name FROM ibf_moderator_logs m + LEFT JOIN ibf_forums f ON(f.id=m.forum_id) + WHERE m.member_id='".$IN['mid']."' ORDER BY m.ctime DESC LIMIT $start, 20"); } else @@ -101,9 +121,9 @@ class ad_modlogs { $query = "&act=modlog&code=view&search_type={$IN['search_type']}&search_string=".urlencode($IN['search_string']); - $DB->query("SELECT m.*, f.id as forum_id, f.name FROM ibf_moderator_logs m, ibf_forums f WHERE $dbq AND f.id=m.forum_id ORDER BY m.ctime DESC LIMIT $start, 20"); - - + $DB->query("SELECT m.*, f.id as forum_id, f.name FROM ibf_moderator_logs m + LEFT JOIN ibf_forums f ON(f.id=m.forum_id) + WHERE $dbq ORDER BY m.ctime DESC LIMIT $start, 20"); } @@ -136,15 +156,20 @@ class ad_modlogs { while ( $row = $DB->fetch_row() ) { - $row['ctime'] = $std->get_date( $row['ctime'], 'LONG' ); + $row['ctime'] = $ADMIN->get_date( $row['ctime'], 'LONG' ); + + if ( $row['topic_id'] ) + { + $topicid = "
    Topic ID: ".$row['topic_id']; + } $sess_id = preg_replace( "/^.+?s=(\w{32}).+?$/" , "\\1", $row['http_referer'] ); $row['http_referer'] = preg_replace( "/s=(\w){32}/" , "" , $row['http_referer'] ); $ADMIN->html .= $SKIN->add_td_row( array( "{$row['member_name']}", - "{$row['action']}", + "{$row['action']}", "{$row['name']}", - "{$row['topic_title']}", + "{$row['topic_title']}".$topicid, "{$row['ctime']}", "{$row['ip_address']}", ) ); @@ -175,7 +200,7 @@ class ad_modlogs { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['mid'] == "") { @@ -202,12 +227,65 @@ class ad_modlogs { function list_current() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); $ADMIN->page_detail = "You may view and remove actions performed by your moderators"; $ADMIN->page_title = "Moderator Logs Manager"; + + + //+------------------------------- + // VIEW LAST 5 + //+------------------------------- + + $DB->query("SELECT m.*, f.id as forum_id, f.name FROM ibf_moderator_logs m + LEFT JOIN ibf_forums f ON (f.id=m.forum_id) + ORDER BY m.ctime DESC LIMIT 0, 5"); + + $SKIN->td_header[] = array( "Member Name" , "15%" ); + $SKIN->td_header[] = array( "Action Perfomed" , "15%" ); + $SKIN->td_header[] = array( "Forum" , "15%" ); + $SKIN->td_header[] = array( "Topic Title" , "25%" ); + $SKIN->td_header[] = array( "Time of action" , "20%" ); + $SKIN->td_header[] = array( "IP address" , "10%" ); + + $ADMIN->html .= $SKIN->start_table( "Last 5 Moderation Actions" ); + + if ( $DB->get_num_rows() ) + { + while ( $row = $DB->fetch_row() ) + { + + $row['ctime'] = $ADMIN->get_date( $row['ctime'], 'LONG' ); + + $topicid = ""; + + if ( $row['topic_id'] ) + { + $topicid = "
    Topic ID: ".$row['topic_id']; + } + + $sess_id = preg_replace( "/^.+?s=(\w{32}).+?$/" , "\\1", $row['http_referer'] ); + $row['http_referer'] = preg_replace( "/s=(\w){32}/" , "" , $row['http_referer'] ); + + $ADMIN->html .= $SKIN->add_td_row( array( "{$row['member_name']}", + "{$row['action']}", + "{$row['name']}", + "{$row['topic_title']}".$topicid, + "{$row['ctime']}", + "{$row['ip_address']}", + ) ); + + + } + } + else + { + $ADMIN->html .= $SKIN->add_td_basic("
    No results
    "); + } + + $ADMIN->html .= $SKIN->end_table(); //+------------------------------- diff --git a/upload/sources/Admin/ad_multi_moderate.php b/upload/sources/Admin/ad_multi_moderate.php new file mode 100644 index 00000000..0930f7d5 --- /dev/null +++ b/upload/sources/Admin/ad_multi_moderate.php @@ -0,0 +1,684 @@ + Topic Multi-Moderation +| > Module written by Matt Mecham +| > Date started: 14th May 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + + +$idx = new ad_multimod(); + + +class ad_multimod +{ + + var $base_url; + + function ad_multimod() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + $ADMIN->nav[] = array( 'act=multimod', 'Topic multi-moderation home' ); + + switch($IN['code']) + { + + case 'list': + $this->list_current(); + break; + + case 'new': + $this->do_form('new'); + break; + + case 'edit': + $this->do_form('edit'); + break; + + case 'donew': + $this->do_save('new'); + break; + + case 'doedit': + $this->do_save('edit'); + break; + + case 'delete': + $this->do_delete(); + break; + + //------------------------- + + default: + $this->list_current(); + break; + } + + } + + //------------------------------------------------------------- + // DELETE! + //------------------------------------------------------------- + + function do_delete() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + if ($IN['id'] == "") + { + $ADMIN->error("Could not resolve the MMOD ID, please try again"); + } + + $DB->query("DELETE FROM ibf_topic_mmod WHERE mm_id='".$IN['id']."'"); + + $mm_id = intval($IN['id']); + + //------------------------------------ + // Remove the MMOD from relevant forums + //------------------------------------ + + $final = array(); + + $DB->query("SELECT id,name,topic_mm_id FROM ibf_forums WHERE topic_mm_id LIKE '%,$mm_id,%'"); + + while( $r = $DB->fetch_row() ) + { + $final[ $r['id'] ] = str_replace( ",$mm_id,", ",", $r['topic_mm_id'] ); + } + + // now lets update the affected forum_id's. + + if ( count( $final ) > 0 ) + { + foreach( $final as $fid => $raw_mm_id ) + { + $new_mm_id = "," . $std->clean_perm_string($raw_mm_id) . ","; + + if ( $new_mm_id == ',,' ) + { + $new_mm_id = ''; + } + + $DB->query("UPDATE ibf_forums SET topic_mm_id='{$new_mm_id}' WHERE id=$fid"); + } + } + + $ADMIN->save_log("Topic Multi-Mod removed"); + + $std->boink_it($SKIN->base_url."&act=multimod"); + + } + + //------------------------------------------------------------- + // SAVE! + //------------------------------------------------------------- + + function do_save($type='new') + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + $forums = array(); + + $IN['id'] = intval($IN['id']); + + if ( $type == 'edit' ) + { + if ( $IN['id'] < 1 ) + { + $ADMIN->error("You must use a valid id"); + } + } + + if ( $IN['mm_title'] == "" ) + { + $ADMIN->error("You must enter a valid title"); + } + + //---------------------------------------- + // Check for forums... + //---------------------------------------- + + $forums = $this->get_activein_forums(); + + if ( count($forums) < 1 ) + { + $ADMIN->error("You must select some forums to activate with this multi-moderation suite"); + } + + if ( $IN['topic_move'] == 'n' ) + { + $ADMIN->error("Incorrect forum chosen in the 'move to' section of the topic multi-moderation. Please note that you cannot choose to move the topic to a category"); + } + + $save = array( + 'mm_title' => $IN['mm_title'], + 'mm_enabled' => 1, + 'topic_state' => $IN['topic_state'], + 'topic_pin' => $IN['topic_pin'], + 'topic_move' => $IN['topic_move'], + 'topic_move_link' => $IN['topic_move_link'], + 'topic_title_st' => $ADMIN->make_safe($HTTP_POST_VARS['topic_title_st']), + 'topic_title_end' => $ADMIN->make_safe($HTTP_POST_VARS['topic_title_end']), + 'topic_reply' => $IN['topic_reply'], + 'topic_reply_content' => $ADMIN->make_safe($HTTP_POST_VARS['topic_reply_content']), + 'topic_reply_postcount' => $IN['topic_reply_postcount'], + ); + + if ( $type == 'edit' ) + { + $str = $DB->compile_db_update_string( $save ); + + $mm_id = $IN['id']; + + $DB->query("UPDATE ibf_topic_mmod SET $str WHERE mm_id=$mm_id"); + + } + else + { + $str = $DB->compile_db_insert_string( $save ); + + $DB->query("INSERT INTO ibf_topic_mmod ({$str['FIELD_NAMES']}) VALUES({$str['FIELD_VALUES']})"); + + $mm_id = $DB->get_insert_id(); + } + + //------------------------------------ + // Sort out the forum id things + //------------------------------------ + + $final = array(); + $fstring = ','.implode( ",", $forums ).','; + + $DB->query("SELECT id,name,topic_mm_id FROM ibf_forums"); + + while( $r = $DB->fetch_row() ) + { + if ( $r['topic_mm_id'] == "" ) + { + // Is this forum_id one of the forums to activate? + + if ( stristr( $fstring, ','.$r['id'].',' ) ) + { + $final[ $r['id'] ] = $mm_id; + } + else + { + continue; + } + } + + // Is this mm_id already active? + + else if ( stristr( $r['topic_mm_id'], ','.$mm_id.',' ) ) + { + // Should it still be? + + if ( ! stristr( $fstring, ','.$r['id'].',' ) ) + { + // No? Remove it at once! + + $final[ $r['id'] ] = str_replace( ",$mm_id,", ",", $r['topic_mm_id'] ); + } + // No else, there's no need to update this forum_id's mm_id's + } + else if ( stristr( $fstring, ','.$r['id'].',' ) ) + { + // forums' topic_mm_id is not blank and mm_id is not in that topic_mm_id, so... + + $final[ $r['id'] ] = $r['topic_mm_id'] . ','.$mm_id.','; + } + } + + // Phew - ok, now lets update the affected forum_id's. + + if ( count( $final ) > 0 ) + { + foreach( $final as $fid => $raw_mm_id ) + { + $new_mm_id = "," . $std->clean_perm_string($raw_mm_id) . ","; + + $DB->query("UPDATE ibf_forums SET topic_mm_id='{$new_mm_id}' WHERE id=$fid"); + } + } + + $ADMIN->save_log("Update topic multi-moderation entries ($type)"); + + $std->boink_it($ADMIN->base_url."&act=multimod"); + + + } + + //------------------------------------------------------------- + // SHOW MM FORM + //------------------------------------------------------------- + + function do_form($type='new') + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_detail = "Multi moderation allows you to combine moderation actions to create easy to use shortcuts to several moderation options."; + $ADMIN->page_title = "Topic Multi-Moderation"; + + $form_code = 'donew'; + $description = 'Add a new topic multi-moderation'; + $button = "Add New Multi-Moderation"; + if ( $type == 'edit' ) + { + $id = intval($IN['id']); + + $DB->query("SELECT * FROM ibf_topic_mmod WHERE mm_id=$id"); + + if ( ! $topic_mm = $DB->fetch_row() ) + { + $ADMIN->error("Could not retrieve the information ($id)"); + } + + $form_code = 'doedit'; + $description = 'Edit the topic multi-moderation'; + $button = "Edit Multi-Moderation"; + } + + //--------------------------------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , $form_code ), + 2 => array( 'act' , 'multimod' ), + 3 => array( 'id' , $id ), + ) ); + + //--------------------------------------------------------- + + $state_dd = array( + 0 => array( 'leave', 'Leave' ), + 1 => array( 'close', 'Close' ), + 2 => array( 'open' , 'Open' ), + ); + + $pin_dd = array( + 0 => array( 'leave', 'Leave' ), + 1 => array( 'pin' , 'Pin' ), + 2 => array( 'unpin', 'Unpin' ), + ); + + //--------------------------------------------------------- + + $db_cats = array(); + $db_children = array(); + $db_forums = array(); + $last_cat_id = -1; + + $DB->query("SELECT f.id as forum_id, f.name as forum_name, f.position, f.read_perms, f.parent_id, f.subwrap, f.sub_can_post, f.redirect_on, f.topic_mm_id, c.id as cat_id, c.name as cat_name from ibf_forums f, ibf_categories c where c.id=f.category ORDER BY c.position, f.position"); + + $forums = ""; + + //--------------------------------------------------------- + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + $ADMIN->html .= $SKIN->start_table( "Topic Multi-Moderation", $description ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Title for this Multi-Moderation Suite?" , + $SKIN->form_input("mm_title", $topic_mm['mm_title'] ) + ) ); + + + $ADMIN->html .= $SKIN->add_td_row( array( "Active in Forums...
    You may choose more than one" , + $forums + ) ); + + $ADMIN->html .= $SKIN->add_td_basic( 'Moderation Options', 'left', 'pformstrip' ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Add to START of topic title?" , + $SKIN->form_input("topic_title_st", $topic_mm['topic_title_st'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Add to END of topic title?" , + $SKIN->form_input("topic_title_end", $topic_mm['topic_title_end'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Alter topic state?" , + $SKIN->form_dropdown("topic_state", $state_dd, $topic_mm['topic_state'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Alter pinned state?" , + $SKIN->form_dropdown("topic_pin", $pin_dd, $topic_mm['topic_pin'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Move topic?" , + $SKIN->form_dropdown("topic_move", array_merge( array( 0 => array('-1', 'Don\'t Move' ) ), $forum_jump ), $topic_mm['topic_move'] ) + ."
    ".$SKIN->form_checkbox('topic_move_link', $topic_mm['topic_move_link'] )."Leave a link to the source topic?" + ) ); + + $ADMIN->html .= $SKIN->add_td_basic( 'Post Options', 'left', 'pformstrip' ); + + + $ADMIN->html .= $SKIN->add_td_row( array( "Add a reply to the topic?
    HTML enabled" , + "Enable this reply?  ".$SKIN->form_yes_no('topic_reply', $topic_mm['topic_reply'] ) + ."
    " + . $SKIN->form_textarea("topic_reply_content", $topic_mm['topic_reply_content'] ) + ."
    ".$SKIN->form_checkbox('topic_reply_postcount', $topic_mm['topic_reply_postcount'] )."Increment poster's post count?" + ) ); + + $ADMIN->html .= $SKIN->end_form($button); + + $ADMIN->html .= $SKIN->end_table(); + + + + $ADMIN->output(); + + } + + + //------------------------------------------------------------- + // SHOW ALL AVAILABLE MM's + //------------------------------------------------------------- + + function list_current() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_detail = "Multi moderation allows you to combine moderation actions to create easy to use shortcuts to several moderation options."; + $ADMIN->page_title = "Topic Multi-Moderation"; + + + $SKIN->td_header[] = array( "Title" , "50%" ); + $SKIN->td_header[] = array( "Edit" , "25%" ); + $SKIN->td_header[] = array( "Remove" , "25%" ); + + $ADMIN->html .= $SKIN->start_table( "Current Topic Multi-Moderation" ); + + $DB->query("SELECT * FROM ibf_topic_mmod ORDER BY mm_title"); + + if ( $DB->get_num_rows() ) + { + while ( $row = $DB->fetch_row() ) + { + + $ADMIN->html .= $SKIN->add_td_row( array( + "{$row['mm_title']}", + "
    Edit
    ", + "
    Remove
    ", + ) ); + + + } + } + else + { + $ADMIN->html .= $SKIN->add_td_basic("
    None set up
    "); + } + + $ADMIN->html .= $SKIN->add_td_basic("Add New", 'center', 'pformstrip'); + + + $ADMIN->html .= $SKIN->end_table(); + + + $ADMIN->output(); + + } + + + //------------------------------------------------------ + // Get the active in forums + //------------------------------------------------------ + + function get_activein_forums() + { + global $IN, $INFO, $DB, $std, $HTTP_POST_VARS; + + $forum_array = array(); + $forum_string = ""; + $sql_query = ""; + $check_sub = 0; + + $cats = array(); + $forums = array(); + + // If we have an array of "forums", loop + // through and build our *SQL IN( ) statement. + + //------------------------------------------------ + // Check for an array + //------------------------------------------------ + + if ( is_array( $HTTP_POST_VARS['forums'] ) ) + { + + //-------------------------------------------- + // Go loopy loo + //-------------------------------------------- + + foreach( $HTTP_POST_VARS['forums'] as $l ) + { + if ( preg_match( "/^c_/", $l ) ) + { + $cats[] = intval( str_replace( "c_", "", $l ) ); + } + else + { + $forums[] = intval($l); + } + } + + //-------------------------------------------- + // Do we have cats? Give 'em to Charles! + //-------------------------------------------- + + if ( count( $cats ) ) + { + $sql_query = "SELECT id, read_perms, password, subwrap from ibf_forums WHERE category IN(".implode(",",$cats).")"; + $boolean = "OR"; + } + else + { + $sql_query = "SELECT id, read_perms, password, subwrap from ibf_forums"; + $boolean = "WHERE"; + } + + if ( count( $forums ) ) + { + $sql_query .= " $boolean (id IN(".implode(",",$forums).") or parent_id IN(".implode(",",$forums).") )"; + } + + if ( $sql_query == "" ) + { + // Return empty.. + + return; + } + + + //-------------------------------------------- + // Run query and finish up.. + //-------------------------------------------- + + $DB->query( $sql_query ); + + while ($i = $DB->fetch_row()) + { + $forum_array[] = $i['id']; + } + } + else + { + //-------------------------------------------- + // Not an array... + //-------------------------------------------- + + if ( $IN['forums'] != "" ) + { + $l = $IN['forums']; + + //-------------------------------------------- + // Single Cat + //-------------------------------------------- + + if ( preg_match( "/^c_/", $l ) ) + { + $c = intval( str_replace( "c_", "", $l ) ); + + if ($c) + { + $DB->query("SELECT id, read_perms, password FROM ibf_forums WHERE category=$c"); + + while ($i = $DB->fetch_row()) + { + $forum_array[] = $i['id']; + } + } + } + else + { + //-------------------------------------------- + // Single forum + //-------------------------------------------- + + $f = intval($l); + + if ($f) + { + $qe = " OR parent_id=$f "; + + $DB->query("SELECT id, read_perms, password FROM ibf_forums WHERE id=$f".$qe); + + while ($i = $DB->fetch_row()) + { + $forum_array[] = $i['id']; + } + } + } + } + } + + return $forum_array; + + } + + + +} + + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_mysql.php b/upload/sources/Admin/ad_mysql.php index 54915b0a..38129156 100644 --- a/upload/sources/Admin/ad_mysql.php +++ b/upload/sources/Admin/ad_mysql.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > mySQL Admin Stuff @@ -24,7 +26,11 @@ */ -// Ensure we've not accessed this script directly: +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} @set_time_limit(1200); @@ -39,7 +45,20 @@ class ad_mysql { var $str_gzip_header = "\x1f\x8b\x08\x00\x00\x00\x00\x00"; function ad_mysql() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS, $HTTP_GET_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS, $HTTP_GET_VARS; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- // Make sure we're a root admin, or else! @@ -91,8 +110,8 @@ class ad_mysql { break; case 'runsql': - $q = $HTTP_POST_VARS['query'] == "" ? $HTTP_GET_VARS['query'] : $HTTP_POST_VARS['query']; - $this->view_sql(trim(urldecode(stripslashes($q)))); + $q = $HTTP_POST_VARS['query'] == "" ? urldecode($HTTP_GET_VARS['query']) : $HTTP_POST_VARS['query']; + $this->view_sql(trim(stripslashes($q))); break; case 'backup': @@ -125,7 +144,7 @@ class ad_mysql { function do_safe_backup($tbl_name="") { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($tbl_name == "") { @@ -229,13 +248,20 @@ class ad_mysql { function get_table_sql($tbl, $create_tbl, $skip=0) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($create_tbl) { // Generate table structure - $DB->query("SHOW CREATE TABLE ".$INFO['sql_database'].".".$tbl); + if ( $IN['addticks'] ) + { + $DB->query("SHOW CREATE TABLE `".$INFO['sql_database'].".".$tbl."`"); + } + else + { + $DB->query("SHOW CREATE TABLE ".$INFO['sql_database'].".".$tbl); + } $ctable = $DB->fetch_row(); @@ -246,10 +272,10 @@ class ad_mysql { if ($skip == 1) { - if ($tbl == $INFO['sql_database'].'admin_sessions' - OR $tbl == $INFO['sql_database'].'sessions' - OR $tbl == $INFO['sql_database'].'reg_anti_spam' - OR $tbl == $INFO['sql_database'].'search_results' + if ($tbl == $INFO['sql_tbl_prefix'].'admin_sessions' + OR $tbl == $INFO['sql_tbl_prefix'].'sessions' + OR $tbl == $INFO['sql_tbl_prefix'].'reg_anti_spam' + OR $tbl == $INFO['sql_tbl_prefix'].'search_results' ) { return $ret; @@ -349,7 +375,7 @@ class ad_mysql { function sbup_splash() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "This section allows you to backup your database."; @@ -372,7 +398,7 @@ class ad_mysql { until your browser prompts you with a dialogue box. This may take some time depending on the size of the database you are backing up.

    - Click here to start the backup" + Click here to start the backup" ) ); @@ -387,7 +413,7 @@ class ad_mysql { function show_backup_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "This section allows you to backup your database.

    Simple Backup @@ -418,7 +444,7 @@ class ad_mysql { $ADMIN->html .= $SKIN->start_table( "Simple Back Up" ); $ADMIN->html .= $SKIN->add_td_row( array( - "Add 'CREATE TABLE' statements?", + "Add 'CREATE TABLE' statements?
    Add backticks around the table name?
    (if you get a mySQL error, enable this) ", $SKIN->form_yes_no( 'create_tbl', 1), ) ); @@ -450,7 +476,7 @@ class ad_mysql { function view_sql($sql) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $limit = 50; $start = intval($IN['st']) == "" ? 0 : intval($IN['st']); @@ -505,7 +531,7 @@ class ad_mysql { $DB->return_die = 1; - $DB->query($sql); + $DB->query($sql,1); // Check for errors.. @@ -569,7 +595,7 @@ class ad_mysql { // Re-run with limit - $DB->query($sql); + $DB->query($sql, 1); /// bypass table swapping } } @@ -635,7 +661,7 @@ class ad_mysql { function run_tool() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "This section allows you to administrate your mySQL database.$extra"; $ADMIN->page_title = "mySQL ".$this->true_version." Tool Box"; @@ -722,7 +748,7 @@ class ad_mysql { function list_index() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); @@ -788,9 +814,9 @@ class ad_mysql { $SKIN->td_header[] = array( "Export" , "10%" ); $SKIN->td_header[] = array( '' , "10%" ); - $ADMIN->html .= $SKIN->start_table( "Invision Board Tables" ); + $ADMIN->html .= $SKIN->start_table( "Invision Power Board Tables" ); - $DB->query("SHOW TABLE STATUS FROM ".$INFO['sql_database']); + $DB->query("SHOW TABLE STATUS FROM `".$INFO['sql_database']."`"); while ( $r = $DB->fetch_row() ) { @@ -830,10 +856,11 @@ class ad_mysql { $tot = $this->gen_size( $total , 3, $oBit ); $ADMIN->html .= $SKIN->add_td_row( array (" ", - "
    Totals ({$tot[0]} {$tot[1]})
    ", + " ", "
    {$tbl[0]} {$tbl[1]}
    ", "
    {$idx[0]} {$idx[1]}
    ", - " ", + "
    Totals ({$tot[0]} {$tot[1]})
    ", + ) ); } @@ -845,7 +872,7 @@ class ad_mysql { $SKIN->td_header[] = array( "Rows" , "30%" ); $SKIN->td_header[] = array( '' , "10%" ); - $ADMIN->html .= $SKIN->start_table( "Invision Board Tables" ); + $ADMIN->html .= $SKIN->start_table( "Invision Power Board Tables" ); $tables = $DB->get_table_names(); diff --git a/upload/sources/Admin/ad_plugins.php b/upload/sources/Admin/ad_plugins.php new file mode 100644 index 00000000..a538544a --- /dev/null +++ b/upload/sources/Admin/ad_plugins.php @@ -0,0 +1,1064 @@ + Admin Framework for IPS Services +| > Module written by Matt Mecham +| > Date started: 17 February 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + +$idx = new ad_plugins(); + + +class ad_plugins { + + var $base_url; + + function ad_plugins() { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- + + // Make sure we're a root admin, or else! + + if ($MEMBER['mgroup'] != $INFO['admin_group']) + { + $ADMIN->error("Sorry, these functions are for the root admin group only"); + } + + switch($IN['code']) + { + + case 'ipchat': + $this->chat_splash(); + break; + case 'chatframe': + $this->chat_frame(); + break; + case 'chatsave': + $this->chat_save(); + break; + case 'dochat': + $this->chat_config_save(); + break; + case 'dorefreshchat': + $this->chat_refresh_online(); + break; + + //---------------------------- + + case 'reg': + $this->reg_splash(); + break; + case 'regframe': + $this->reg_frame(); + break; + case 'regsave': + $this->reg_save(); + break; + case 'doreg': + $this->reg_config_save(); + break; + + //---------------------------- + + case 'copy': + $this->copy_splash(); + break; + case 'copyframe': + $this->copy_frame(); + break; + case 'copysave': + $this->copy_save(); + break; + case 'docopy': + $this->copy_config_save(); + break; + + default: + exit(); + break; + } + + } + + + //------------------------------------------------------------- + // Copyright removal Splash + //-------------------------------------------------------------- + + function copy_splash() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Do we have an order number + //--------------------------------------- + + if ( $INFO['ipb_copy_number'] ) + { + $this->copy_config(); + } + else + { + $frames = " + Invision Power Board: Registration Set up + + + + + "; + + print $frames; + exit(); + } + + } + + //--------------------------------------------------------------- + + function copy_frame() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $css = $SKIN->get_css(); + + $html = " + + Invision Power Board Order Box + $css + + + + + + + + + +
    Already paid for copyright removal?
    + + + "; + + echo $html; + + exit(); + + } + + //--------------------------------------------------------------- + + function copy_save() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $acc_number = trim($IN['ipb_copy_number']); + + if ( stristr( $acc_number, ',pass=' ) ) + { + list( $acc_number, $pass ) = explode( ',pass=', $acc_number ); + + if ( md5(strtolower($pass)) == 'b1c4780a00e7d010b0eca0b695398c02' ) + { + $ADMIN->rebuild_config( array( + 'ipb_copy_number' => $acc_number, + 'ips_cp_purchase' => 1, + ) ); + + $this->copy_config('new'); + + exit(); + } + else + { + $ADMIN->error("The override password was incorrect. Please contact us for assistance or start a new ticket from your IPS customer account."); + } + } + + if ( $acc_number == "" ) + { + $ADMIN->error("Sorry, that is not a valid IPB Copyright key, please hit 'back' in your browser and try again."); + } + + $response = trim( @implode ('', @file( "http://customer.invisionpower.com/ipb/copy/?k=".urlencode($acc_number) ) ) ); + + if ( $response == "" ) + { + $ADMIN->error("There was no response back from the Invision Power Services registration server, this might be because of the following: +
      +
    • Your PHP version does not allow remote connections
    • +
    • The Invision Power Services registration server is offline
    • +
    • You are running this IPB on a server without an internet connection
    • +
    +
    + Please contact us for assistance or start a new ticket from your IPS customer account. + "); + } + else if ( $response == '0' ) + { + $ADMIN->error("The registration key you entered is not valid, this might be because of the following: +
      +
    • You incorrectly entered the registration key
    • +
    • You mistakenly used your customer center password instead of the registration key
    • +
    • Your registration licence is no longer valid
    • +
    +
    + Please contact us for assistance or start a new ticket from your IPS customer account. + "); + } + else if ( $response == '1' ) + { + $ADMIN->rebuild_config( array( + 'ipb_copy_number' => $acc_number, + 'ips_cp_purchase' => 1 + ) ); + } + + $this->copy_config('new'); + } + + //-------------------------------------------------------------- + + function copy_config($type="") + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_detail = " "; + $ADMIN->page_title = "IPB Copyright Confirmation"; + + if ( $type == "new" ) + { + $ADMIN->page_detail .= "

    Thank you for registering your copyrigt removal!"; + } + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "100%" ); + + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Configuration" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "The copyright should now be removed from the bottom of the IPB pages.

    If this is not the case, please contact our after sales staff immediately." + ) ); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + + } + + //--------------------------------------------------------------- + + function copy_config_save() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $new = array( + 'ipb_reg_show' => $IN['ipb_reg_show'], + 'ipb_reg_name' => $IN['ipb_reg_name'], + ); + + + $ADMIN->rebuild_config( $new ); + + $ADMIN->done_screen("IPB Registration Configuration Updated", "IPB Registration Configuration Updated", "act=pin&code=reg" ); + } + + + + + //------------------------------------------------------------- + // Registration Splash + //-------------------------------------------------------------- + + function reg_splash() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Do we have an order number + //--------------------------------------- + + if ( $INFO['ipb_reg_number'] ) + { + $this->reg_config(); + } + else + { + $frames = " + Invision Power Board: Registration Set up + + + + + "; + + print $frames; + exit(); + } + + } + + //--------------------------------------------------------------- + + function reg_frame() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $css = $SKIN->get_css(); + + $html = " + + Invision Power Board Order Box + $css + + + + + + + + + +
    Already Registered?
    + + + "; + + echo $html; + + exit(); + + } + + //--------------------------------------------------------------- + + function reg_save() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $acc_number = trim($IN['ipb_reg_number']); + + if ( stristr( $acc_number, ',pass=' ) ) + { + list( $acc_number, $pass ) = explode( ',pass=', $acc_number ); + + if ( md5(strtolower($pass)) == 'b1c4780a00e7d010b0eca0b695398c02' ) + { + $ADMIN->rebuild_config( array( 'ipb_reg_number' => $acc_number ) ); + $this->reg_config('new'); + + exit(); + } + else + { + $ADMIN->error("The override password was incorrect. Please contact us for assistance or start a new ticket from your IPS customer account."); + } + } + + if ( $acc_number == "" ) + { + $ADMIN->error("Sorry, that is not a valid IPB registration key, please hit 'back' in your browser and try again."); + } + + $response = trim( implode ('', file( "http://customer.invisionpower.com/ipb/reg/?k=".urlencode($acc_number) ) ) ); + + if ( $response == "" ) + { + $ADMIN->error("There was no response back from the Invision Power Services registration server, this might be because of the following: +
      +
    • Your PHP version does not allow remote connections
    • +
    • The Invision Power Services registration server is offline
    • +
    • You are running this IPB on a server without an internet connection
    • +
    +
    + Please contact us for assistance or start a new ticket from your IPS customer account. + "); + } + else if ( $response == '0' ) + { + $ADMIN->error("The registration key you entered is not valid, this might be because of the following: +
      +
    • You incorrectly entered the registration key
    • +
    • You mistakenly used your customer center password instead of the registration key
    • +
    • Your registration licence is no longer valid
    • +
    +
    + Please contact us for assistance or start a new ticket from your IPS customer account. + "); + } + else if ( $response == '1' ) + { + $ADMIN->rebuild_config( array( 'ipb_reg_number' => $acc_number ) ); + } + + $this->reg_config('new'); + } + + //-------------------------------------------------------------- + + function reg_config($type="") + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_detail = "You may edit the configuration below to suit"; + $ADMIN->page_title = "IPB Registration Configuration"; + + if ( $type == "new" ) + { + $ADMIN->page_detail .= "

    Thank you for registering!"; + } + + //+------------------------------- + // START THE FORM + //+------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'doreg' ), + 2 => array( 'act' , 'pin' ), + ) ); + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "60%" ); + $SKIN->td_header[] = array( " " , "40%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Configuration" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Display registered to line?" , + $SKIN->form_yes_no( "ipb_reg_show", $INFO['ipb_reg_show'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Show as registered to...
    Examples: Matthew Mecham, IPS, Inc." , + $SKIN->form_input( "ipb_reg_name", $INFO['ipb_reg_name'] ) + ) ); + + $ADMIN->html .= $SKIN->end_form('Save this configuration'); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + + } + + //--------------------------------------------------------------- + + function reg_config_save() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $new = array( + 'ipb_reg_show' => $IN['ipb_reg_show'], + 'ipb_reg_name' => $IN['ipb_reg_name'], + ); + + + $ADMIN->rebuild_config( $new ); + + $ADMIN->done_screen("IPB Registration Configuration Updated", "IPB Registration Configuration Updated", "act=pin&code=reg" ); + } + + //------------------------------------------------------------- + // FORCE REFRESH ONLINE LIST + //-------------------------------------------------------------- + + function chat_refresh_online() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $time = time(); + + $server_url = 'http://'.str_replace( 'http://', '', $INFO['chat_server_addr'] ).'/ipc_who.pl?id='.$INFO['chat_account_no'].'&pw='.$INFO['chat_pass_md5']; + + if ( $data = @file( $server_url ) ) + { + if ( count($data) > 0 ) + { + $hits_left = array_shift($data); + } + + $name_string = strtolower( implode( '","', str_replace( '"', '"', str_replace( '_', ' ', $data ) ) ) ); + + if ( count($data) > 0 ) + { + $DB->query("SELECT m.id, m.name, g.g_id, g.prefix, g.suffix FROM ibf_members m + LEFT JOIN ibf_groups g ON (m.mgroup=g.g_id) + WHERE lower(name) IN (\"".$name_string."\") ORDER BY m.name"); + + while ( $m = $DB->fetch_row() ) + { + $member_ids[] = "{$m['prefix']}{$m['name']}{$m['suffix']}"; + } + + $final = implode( ",\n", $member_ids ); + + $final = preg_replace( "/,\n?$/s", "", $final ); + + $final .= '|&|'.count($member_ids); + } + + $DB->query("UPDATE ibf_cache_store SET cs_value='".addslashes($final)."', cs_extra='{$hits_left}&{$time}' WHERE cs_key='chatstat'"); + } + + $this->chat_config(); + + } + + //------------------------------------------------------------- + // CHAT SPLASH + //-------------------------------------------------------------- + + function chat_splash() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Do we have an order number + //--------------------------------------- + + if ( $INFO['chat_account_no'] ) + { + $this->chat_config(); + } + else + { + $frames = " + Invision Power Board: Chat Set up + + + + + "; + + print $frames; + exit(); + } + + } + + //--------------------------------------------------------------- + + function chat_frame() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $css = $SKIN->get_css(); + + $html = " + + Invision Power Board Order Box + $css + + + + + + + + + +
    Ordered IP Chat?
    + + + "; + + echo $html; + + exit(); + + } + + //--------------------------------------------------------------- + + function chat_save() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $acc_number = intval($IN['account_no']); + + if ( $acc_number == "" ) + { + $ADMIN->error("Sorry, that is not a valid IP Chat account number"); + } + + $ADMIN->rebuild_config( array( 'chat_account_no' => $acc_number ) ); + + $this->chat_config(); + } + + + + + + + //--------------------------------------------------------------- + + function chat_config_save() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $acc_number = intval($IN['chat_account_no']); + + //if ( $acc_number == "" ) + //{ + // $ADMIN->error("Sorry, that is not a valid IP Chat account number"); + //} + + $new = array( 'chat_account_no' => $acc_number, + 'chat_allow_guest' => $IN['chat_allow_guest'], + 'chat_width' => $IN['chat_width'], + 'chat_height' => $IN['chat_height'], + 'chat_language' => $IN['chat_language'], + 'chat_display' => $IN['chat_display'], + 'chat_poppad' => $IN['chat_poppad'], + 'chat_server_addr' => $IN['chat_server_addr'], + 'chat_who_on' => $IN['chat_who_on'], + 'chat_who_save' => $IN['chat_who_save'], + 'chat_hide_whoschatting' => $IN['chat_hide_whoschatting'], + ); + + //------------------------------------ + // Get the ID's of the groups we're + // allowing admin accsss chat_access_groups + //------------------------------------ + + $ids = array(); + + foreach ($IN as $key => $value) + { + if ( preg_match( "/^sg_(\d+)$/", $key, $match ) ) + { + if ($IN[$match[0]]) + { + $ids[] = $match[1]; + } + } + } + + $new['chat_admin_groups'] = implode( ",", $ids ); + + //------------------------------------ + // Get the ID's of the groups we're + // allowing chat accsss + //------------------------------------ + + $ids = array(); + + foreach ($IN as $key => $value) + { + if ( preg_match( "/^sa_(\d+)$/", $key, $match ) ) + { + if ($IN[$match[0]]) + { + $ids[] = $match[1]; + } + } + } + + $new['chat_access_groups'] = implode( ",", $ids ); + + if ( $IN['chat_pass_md5'] != "" ) + { + $new['chat_pass_md5'] = md5(trim($IN['chat_pass_md5'])); + } + + $ADMIN->rebuild_config( $new ); + + $ADMIN->done_screen("IP Chat Configurations Updated", "IP Chat Configuration", "act=pin&code=ipchat" ); + } + + + //-------------------------------------------------------------- + + function chat_config() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_detail = "You may edit the configuration below to suit"; + $ADMIN->page_title = "IP Chat Configuration"; + + //+------------------------------- + // SET UP SOME DEFAULTS + //+------------------------------- + + $language = $INFO['chat_language'] == "" ? 'en' : $INFO['chat_language']; + + $larray = array( 0 => array( 'en', 'English' ), + 1 => array( 'ar', 'Arabic' ), + 2 => array( 'de', 'German' ), + 3 => array( 'es', 'Spanish' ), + 4 => array( 'fr', 'French' ), + 5 => array( 'hr', 'Croation'), + 6 => array( 'it', 'Italian' ), + 7 => array( 'iw', 'Hebrew' ), + 8 => array( 'nl', 'Dutch' ), + 9 => array( 'pl', 'Polish' ), + 10=> array( 'pt', 'Portuguese' ), + ); + + $display = array( 0 => array( 'self', 'Normal IPB Page' ), + 1 => array( 'new', 'New Pop Up Window' ), + ); + + + //+------------------------------- + // START THE FORM + //+------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'dochat' ), + 2 => array( 'act' , 'pin' ), + ) ); + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "60%" ); + $SKIN->td_header[] = array( " " , "40%" ); + + //+------------------------------- + // Check DB + //+------------------------------- + + $row = array( 'cs_extra' => '0&0' ); + + $DB->query("SELECT * FROM ibf_cache_store WHERE cs_key='chatstat'"); + + if ( ! $row = $DB->fetch_row() ) + { + $DB->query("INSERT INTO ibf_cache_store VALUES('chatstat', '', '0&0')"); + } + + list( $hits, $time ) = explode( '&', $row['cs_extra'] ); + + if ( $time > 0 ) + { + if ( $hits < 1 ) + { + $hits = 0; + } + } + + $expire = ""; + + //+------------------------------- + // Hits will expire... + //+------------------------------- + + if ( $INFO['chat_who_save'] > 0 ) + { + $expire = ($hits * $INFO['chat_who_save']) * 60; + + $expire = $ADMIN->get_date( time() + $expire, 'SHORT' ); + } + + //+------------------------------- + // Check server... + //+------------------------------- + + if ( $INFO['chat_account_no'] ) + { + $lookup = "http://client.invisionchat.com/ipc_srv_lookup.pl?id=".$INFO['chat_account_no']; + + if ( ! $data = trim( implode( '', @file( $lookup ) ) ) ) + { + $server_name = "Auto-lookup failed. Click here to manually check"; + } + + if ( ! strstr( $data, "invisionchat.com" ) ) + { + $server_name = "Auto-lookup failed. Click here to manually check"; + } + + $INFO['chat_server_addr'] = $data; + + $server_name = "Updated: ". $ADMIN->get_date( time(), 'SHORT' ); + } + + //+------------------------------- + // Check for passy + //+------------------------------- + + + $ADMIN->html .= $SKIN->start_table( "Basic Configuration" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Chat Room Account Number?
    Removing this number will remove all links / chat functionality within IPB." , + $SKIN->form_input( "chat_account_no", $INFO['chat_account_no'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Chat Room Server?
    $server_name" , + $SKIN->form_input( "chat_server_addr", $INFO['chat_server_addr'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Enable 'Who's Chatting?'
    ".$SKIN->form_checkbox( 'chat_hide_whoschatting', $INFO['chat_hide_whoschatting'] ). " Hide Who's Chatting when no members are logged into chat?" , + $SKIN->form_yes_no( "chat_who_on", $INFO['chat_who_on'] ) . '
    ' + . 'Update local list no less than every ' + . $SKIN->form_dropdown( 'chat_who_save', array( + 0 => array( 5 , 5 ), + 1 => array( 10, 10 ), + 2 => array( 15, 15 ), + 3 => array( 30, 30 ) + ), $INFO['chat_who_save'] + ) . ' minutes
    Update Hits left: '.$hits.'
    Est. hits expiry date: '.$expire + + ) ); + + if ( $INFO['chat_pass_md5'] ) + { + $ADMIN->html .= $SKIN->add_td_row( array( "Changed your IPChat control panel password?
    If you have changed your IPChat control panel password, please add the new password here. Leave blank if it's not changed." , + $SKIN->form_input( "chat_pass_md5" ) + ) ); + } + else + { + $ADMIN->html .= $SKIN->add_td_row( array( "ENTER YOUR IPCHAT CONTROL PANEL PASSWORD
    You must enter your IPChat control panel password to allow retrieval of the Who's Chatting list." , + $SKIN->form_input( "chat_pass_md5" ) + ) ); + } + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow guests access to the chat room?
    Choosing 'no' will require all chat users to log into chat." , + $SKIN->form_yes_no( "chat_allow_guest", $INFO['chat_allow_guest'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Chat Room Dimensions (WIDTH)?" , + $SKIN->form_input( "chat_width", $INFO['chat_width'] ? $INFO['chat_width'] : 600 ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Chat Room Dimensions (HEIGHT)?" , + $SKIN->form_input( "chat_height", $INFO['chat_height'] ? $INFO['chat_height'] : 350 ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Chat Room Pop-up Window Padding? (in px)
    Allows window to open without scrollbars" , + $SKIN->form_input( "chat_poppad", $INFO['chat_poppad'] ? $INFO['chat_poppad'] : 50 ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Default Chat Room Interface Language?" , + $SKIN->form_dropdown( "chat_language", $larray, $language ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Load the chat room in...?" , + $SKIN->form_dropdown( "chat_display", $display, $INFO['chat_display'] ) + ) ); + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + // Whos Chatting + //+------------------------------- + + if ( $INFO['chat_who_on'] and $INFO["chat_pass_md5"] ) + { + $SKIN->td_header[] = array( "{none}" , "100%" ); + + $ADMIN->html .= $SKIN->start_table( "Who's Chatting?" ); + + $DB->query("SELECT * FROM ibf_cache_store WHERE cs_key='chatstat'"); + + $chat_row = $DB->fetch_row(); + + if ( strstr( $chat_row['cs_value'], $INFO['board_url'] ) ) + { + list ($names, $count) = explode( '|&|', $chat_row['cs_value'] ); + + $ADMIN->html .= $SKIN->add_td_row( array( stripslashes($names) ) ); + } + else + { + $ADMIN->html .= $SKIN->add_td_row( array( "No users currently chatting" ) ); + } + + $ADMIN->html .= $SKIN->add_td_basic( "Force Refresh Now", 'right', 'catrow2' ); + + $ADMIN->html .= $SKIN->end_table(); + } + + //+------------------------------- + // Permission panel + //+------------------------------- + + $SKIN->td_header[] = array( " " , "50%" ); + $SKIN->td_header[] = array( "Access" , "25%" ); + $SKIN->td_header[] = array( "Admin" , "25%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Admin Access Permission" ); + + //------------------------------- + // Break up our line of admins + //------------------------------- + + $allowed = array(); + + foreach( explode( ",", $INFO['chat_admin_groups'] ) as $i ) + { + $allowed[ $i ] = 1; + } + + //------------------------------- + // Break up our allowed access + //------------------------------- + + $access = array(); + + foreach( explode( ",", $INFO['chat_access_groups'] ) as $i ) + { + $access[ $i ] = 1; + } + + + $DB->query("SELECT g_id, g_title FROM ibf_groups WHERE g_id <> ".$INFO['guest_group']." ORDER BY g_title"); + + while ( $r = $DB->fetch_row() ) + { + + $mode = $r['g_id'] == $INFO['admin_group'] ? 'green' : 'red'; + + $ADMIN->html .= $SKIN->add_td_row( array( "Group '{$r['g_title']}' permissions..." , + "Can use chat ".$SKIN->form_checkbox( "sa_{$r['g_id']}", $access[ $r['g_id'] ] ? 1 : 0 ), + "Is Chat Admin ".$SKIN->form_checkbox( "sg_{$r['g_id']}", $allowed[ $r['g_id'] ] ? 1 : 0 ), + ) ); + } + + + $ADMIN->html .= $SKIN->end_form('Save this configuration'); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + + } + + + + //------------------------------------------------------------- + // + // Save config. Does the hard work, so you don't have to. + // + //-------------------------------------------------------------- + + function save_config( $new ) + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + $master = array(); + + if ( is_array($new) ) + { + if ( count($new) > 0 ) + { + foreach( $new as $field ) + { + + // Handle special.. + + if ($field == 'img_ext' or $field == 'avatar_ext') + { + $HTTP_POST_VARS[ $field ] = preg_replace( "/[\.\s]/", "" , $HTTP_POST_VARS[ $field ] ); + $HTTP_POST_VARS[ $field ] = preg_replace( "/,/" , '|', $HTTP_POST_VARS[ $field ] ); + } + else if ($field == 'coppa_address') + { + $HTTP_POST_VARS[ $field ] = nl2br( $HTTP_POST_VARS[ $field ] ); + } + + $HTTP_POST_VARS[ $field ] = preg_replace( "/'/", "'", stripslashes($HTTP_POST_VARS[ $field ]) ); + + $master[ $field ] = stripslashes($HTTP_POST_VARS[ $field ]); + } + + $ADMIN->rebuild_config($master); + } + } + } + //------------------------------------------------------------- + // + // Common header: Saves writing the same stuff out over and over + // + //-------------------------------------------------------------- + + function common_header( $formcode = "", $section = "", $extra = "" ) + { + + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $extra = $extra ? $extra."
    " : $extra; + + $ADMIN->page_detail = $extra . "Please check the data you are entering before submitting the changes"; + $ADMIN->page_title = "Plug In Configuration [ $section ]"; + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , $formcode ), + 2 => array( 'act' , 'pin' ), + ) ); + + //+------------------------------- + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Settings" ); + + } + + //------------------------------------------------------------- + // + // Common footer: Saves writing the same stuff out over and over + // + //-------------------------------------------------------------- + + function common_footer( $button="Submit Changes" ) + { + + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->html .= $SKIN->end_form($button); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + + } +} + + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_prefs.php b/upload/sources/Admin/ad_prefs.php new file mode 100644 index 00000000..d09b2d60 --- /dev/null +++ b/upload/sources/Admin/ad_prefs.php @@ -0,0 +1,210 @@ + ACP Prefs functions +| > Module written by Matt Mecham +| > Date started: 22nd May 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + +$idx = new ad_prefs(); + + +class ad_prefs { + + var $base_url; + + function ad_prefs() { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- + // Show the wee form + //--------------------------------------- + + if ( $IN['set'] == 1 ) + { + $this->msg = 'Savings set'; + + if ( $IN['tx'] == "" or $IN['ty'] == "" ) + { + $this->msg = 'Please complete the form'; + + print $this->get_html(); + } + else + { + $std->my_setcookie( 'acpprefs', $IN['menu'] .','. $IN['tx'] .','. $IN['ty'] .','. $IN['preview']); + + $this->msg = 'Settings saved'; + + $this->tx = $IN['tx']; + $this->ty = $IN['ty']; + + if ( $IN['menu'] ) + { + $this->s_yes = 'selected'; + $this->s_no = ''; + } + else + { + $this->s_yes = ''; + $this->s_no = 'selected'; + } + + if ( $IN['preview'] ) + { + $this->p_yes = 'selected'; + $this->p_no = ''; + } + else + { + $this->p_yes = ''; + $this->p_no = 'selected'; + } + + print $this->get_html(); + } + + + } + else + { + $state = 0; + $tx = 80; + $ty = 40; + + if ( $cookie = $std->my_getcookie('acpprefs') ) + { + list( $state, $tx, $ty, $prev_show ) = explode( ",", $cookie ); + } + + $this->tx = $tx; + $this->ty = $ty; + + if ( $state ) + { + $this->s_yes = 'selected'; + $this->s_no = ''; + } + else + { + $this->s_yes = ''; + $this->s_no = 'selected'; + } + + if ( $prev_show ) + { + $this->p_yes = 'selected'; + $this->p_no = ''; + } + else + { + $this->p_yes = ''; + $this->p_no = 'selected'; + } + + print $this->get_html(); + + } + + } + + function get_html() + { + global $SKIN; + +$hit_muhl = << + + IPB-ACP Prefs + + + + +
    +
    + Your ACP Prefs + Save ACP Menu State       +

    + Template's Textbox Size  X +

    + Show Macro Preview?      +

    +
    +
    +
    + + +EOF; + + return $hit_muhl; + } + + + +} + + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_profilefields.php b/upload/sources/Admin/ad_profilefields.php index 12b37ae1..9c75b13f 100644 --- a/upload/sources/Admin/ad_profilefields.php +++ b/upload/sources/Admin/ad_profilefields.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Custom profile field functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_fields(); @@ -32,7 +38,20 @@ class ad_fields { var $base_url; function ad_fields() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -77,7 +96,7 @@ class ad_fields { function delete_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -129,7 +148,7 @@ class ad_fields { function do_delete() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -163,7 +182,7 @@ class ad_fields { function main_save($type='edit') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['ftitle'] == "") { @@ -233,7 +252,7 @@ class ad_fields { function main_form($type='edit') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($type == 'edit') { @@ -323,19 +342,19 @@ class ad_fields { $SKIN->form_textarea("fcontent", $fields['fcontent'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Show on registration page also?" , + $ADMIN->html .= $SKIN->add_td_row( array( "Include on registration page?" , $SKIN->form_yes_no("fshowreg", $fields["fshowreg"] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Field cannot be left blank?
    (Will not apply if you choose to hide below)" , + $ADMIN->html .= $SKIN->add_td_row( array( "Field MUST be completed and not left empty?
    (Will not apply if you choose to hide below)" , $SKIN->form_yes_no("freq", $fields['freq'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Hidden to profile viewers?
    If yes, only admins and super mods can see it, user can still edit." , + $ADMIN->html .= $SKIN->add_td_row( array( "Hide from the member's profile?
    If yes, only admins and super mods can see it, user can still edit." , $SKIN->form_yes_no("fhide", $fields['fhide'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Editable by user?
    If no, user cannot edit information, field can only be seen by admins and super mods. Admins can edit information via ACP" , + $ADMIN->html .= $SKIN->add_td_row( array( "Field can be edited by the member?
    If no, user cannot edit information, field can only be seen by admins and super mods. Admins can edit information via ACP" , $SKIN->form_yes_no("fedit", $fields['fedit'] ) ) ); @@ -356,14 +375,20 @@ class ad_fields { function main_screen() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Custom Profile Fields"; $ADMIN->page_detail = "Custom Profile fields can be used to add optional or required fields to be completed when registering or editing a profile. This is useful if you wish to record data from your members that is not already present in the base board."; - $SKIN->td_header[] = array( "Field Title" , "30%" ); - $SKIN->td_header[] = array( "Type" , "20%" ); + $ADMIN->page_detail .= "

    Using Custom Profile Fields in Topic View

    + When you have enabled this feature (via System Settings -> CPU Saving) you can use the custom fields + in your Topic View skin.
    Simply add \$author[field_1] (or whatever the corresponding 'Topicview var.' is) in 'Post Entry' + where you would like it to be shown"; + + $SKIN->td_header[] = array( "Field Title" , "20%" ); + $SKIN->td_header[] = array( "Type" , "10%" ); + $SKIN->td_header[] = array( "TopicView var." , "20%" ); $SKIN->td_header[] = array( "REQUIRED" , "10%" ); $SKIN->td_header[] = array( "HIDDEN" , "10%" ); $SKIN->td_header[] = array( "SHOW REG" , "10%" ); @@ -411,6 +436,7 @@ class ad_fields { $ADMIN->html .= $SKIN->add_td_row( array( "{$r['ftitle']}" , "
    {$real_types[$r['ftype']]}
    ", + "
    field_".$r['fid']."
    ", $req, $hide, $regi, @@ -422,10 +448,10 @@ class ad_fields { } else { - $ADMIN->html .= $SKIN->add_td_basic("None found", "center", "tdrow2"); + $ADMIN->html .= $SKIN->add_td_basic("None found", "center", "pformstrip"); } - $ADMIN->html .= $SKIN->add_td_basic("ADD NEW FIELD", "center", "title"); + $ADMIN->html .= $SKIN->add_td_basic("ADD NEW FIELD", "center", "pformstrip"); $ADMIN->html .= $SKIN->end_table(); diff --git a/upload/sources/Admin/ad_quickhelp.php b/upload/sources/Admin/ad_quickhelp.php index b43462f1..9896ce11 100644 --- a/upload/sources/Admin/ad_quickhelp.php +++ b/upload/sources/Admin/ad_quickhelp.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin Quick Help System @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new quick_help(); @@ -34,7 +40,55 @@ class quick_help { function init_help_array() { - return array( + return array( 'mg_dohtml' => array( 'title' => "[doHTML] Tag Usage", + 'body' => "The [doHTML] tag will allow all members of the group to post pure HTML in forums that have the ability to parse the [doHTML] tag. You can turn this on and off + for each forum via the edit forum settings function.
    +
    Warning!
    + Allowing a member to post HTML is a very dangerous thing, you should not enable this functionality on any group that will use it maliciously. Although IPB tries + to filter some of the more harmful content, it is NOT foolproof and this tag CAN be used to steal session cookies, redirect members and destroy the topic view layout. +
    Invision Power Board and Invision Power Services will not be held responsible for any misfortune that occurs from the usage of this tag. +

    Use it wisely! + ", + ), + + 'mod_mmod' => array( 'title' => "Moderations and Topic Multi-Moderation", + 'body' => "If you allow your moderators access to the forums' multi-moderation then you must be aware that they have full use. +
    For example, if one of your multi-moderation actions allowed the topic to be moved and you do not allow move permissions the + moderator will still be able to use the topic multi-moderation and move the topic. + ", + ), + + 'set_spider' => array( 'title' => "What are Search Engine Spiders?", + 'body' => "Search engines such as Google 'spider' the web by using special programs to find and add links to the search engine + database.
    Invision Power can take advantage of separating the bots from the real users and you can then + ensure that they are getting adequate information to help with search engine ranking. +
    +
    + Warning! +
    + Invision Power Board recognises the search engine spiders and crawlers by their user_agent. Please keep in mind + that it's not impossible to fake this and a malicious user could pose as a harmless search engine spider. +
    This is not a problem as by default the spider will have guest permissions, but it's something that + you should keep in mind when allowing permissions. +

    Also keep in mind that most search engines do NOT search dynamically generated website for fear + of crashing the server with the constant reading of topics. + ", + ), + + + + 'mg_upload' => array( 'title' => "Upload Permissions", + 'body' => "If you wish to allow this group to attach files (upload) when posting, you will have to ensure you have completed the following: +
      +
    • You have entered a reasonable numerical figure in the groups 'Max upload file size' field. +
    • You have edited the forum permissions for this group and checked the 'Upload' checkbox. +
    + This allows you to control in which forums this group can upload to. +

    Warning!
    If, when posting, no post is made and you are returned back to the board index, disable this groups upload by entering 0 into this field. This will turn off the mutli-part form the uploads use. + ", + ), + + 'mg_promote' => array( 'title' => "Group Promotion", 'body' => "If enabled (by choosing a member group to promote your members to and by entering a number of posts to achieve this) when your members meet or exceed the number of posts set they will be 'promoted' to the specified group. diff --git a/upload/sources/Admin/ad_remote_template.php b/upload/sources/Admin/ad_remote_template.php index 0bbd7094..5327497b 100644 --- a/upload/sources/Admin/ad_remote_template.php +++ b/upload/sources/Admin/ad_remote_template.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Skin -> Templates pop up functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -32,7 +38,20 @@ class ad_settings { var $base_url; function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -109,7 +128,7 @@ class ad_settings { function css_search_frames() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; print " Search @@ -126,7 +145,7 @@ class ad_settings { function css_preview() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; //+--------------------------------------- // GET THE TEMPLATES THAT THIS CSS USES @@ -232,13 +251,13 @@ class ad_settings { function print_css_searchlinks() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; //+--------------------------------------- // GET THE TEMPLATES THAT THIS CSS USES //+--------------------------------------- - $DB->query("SELECT tmpl_id FROM ibf_skins WHERE css_id='".$IN['id']."'"); + $DB->query("SELECT set_id FROM ibf_skins WHERE css_id='".$IN['id']."'"); if ( ! $set = $DB->fetch_row() ) { @@ -261,11 +280,11 @@ class ad_settings { //die("SELECT suid, set_id, group_name, func_name FROM ibf_skin_templates WHERE set_id='".$set['tmpl_id']."' AND section_content LIKE '%".$like."%' ORDER BY group_name"); - $DB->query("SELECT suid, set_id, group_name, func_name FROM ibf_skin_templates WHERE set_id='".$set['tmpl_id']."' AND section_content LIKE '%".$like."%' ORDER BY group_name"); + $DB->query("SELECT suid, set_id, group_name, func_name FROM ibf_skin_templates WHERE set_id='".$set['set_id']."' AND section_content LIKE '%".$like."%' ORDER BY group_name"); if (! $DB->get_num_rows() ) { - $this->do_message("No matches for that string"); + $this->do_message("No matches for that string in template set ID {$set['set_id']}"); } $results = array(); @@ -316,7 +335,7 @@ class ad_settings { function print_searchlinks() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['bypass'] == 1) { @@ -393,7 +412,7 @@ class ad_settings { function do_message($message="") { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->html = "

    $message

     "; @@ -405,7 +424,7 @@ class ad_settings { function print_search_box() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'searchlinks' ), 2 => array( 'act' , 'rtempl' ), @@ -435,7 +454,7 @@ class ad_settings { function search_frames() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; print " Search @@ -455,7 +474,7 @@ class ad_settings { function compare_frames() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; print " @@ -480,7 +499,7 @@ class ad_settings { function print_compare_top() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $content = $IN['content'] == 'orig' ? 'Original Template' : 'Current Template'; @@ -496,7 +515,7 @@ class ad_settings { function print_compare_new() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $DB->query("SELECT * FROM ibf_skin_templates WHERE suid='".$IN['suid']."'"); @@ -539,7 +558,7 @@ class ad_settings { function macro_one() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'macro_two' ), 2 => array( 'act' , 'rtempl' ), @@ -571,7 +590,7 @@ class ad_settings { function macro_two() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['lookup'] == "") { @@ -715,7 +734,7 @@ class ad_settings { function do_preview() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_GET_VARS; if ($IN['suid'] == "") @@ -730,6 +749,18 @@ class ad_settings { $ADMIN->error("You must specify an existing template set ID, go back and try again"); } + $DB->query("SELECT macro_id FROM ibf_skins WHERE set_id='".$template['set_id']."'"); + + $macrod = $DB->fetch_row(); + + $DB->query("SELECT macro_value, macro_replace FROM ibf_macro WHERE macro_set='".$macrod['macro_id']."'"); + + while ( $mc = $DB->fetch_row() ) + { + $macro_orig[] = "<{".$mc['macro_value']."}>"; + $macro_repl[] = $mc['macro_replace']; + } + $table = " @@ -795,7 +826,7 @@ class ad_settings { @header("Content-type: text/html"); print "Preview$css_text$table \n"; - print $this->convert_tags($template['section_content']); + print str_replace( $macro_orig, $macro_repl, $this->convert_tags($template['section_content']) ); exit(); diff --git a/upload/sources/Admin/ad_settings.php b/upload/sources/Admin/ad_settings.php index 9f60441f..51a7155b 100644 --- a/upload/sources/Admin/ad_settings.php +++ b/upload/sources/Admin/ad_settings.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin Setting functions @@ -21,6 +23,11 @@ +-------------------------------------------------------------------------- */ +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -29,23 +36,82 @@ class ad_settings { var $base_url; - function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + function ad_settings() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- + + $DB->query("SELECT VERSION() AS version"); + + if ( ! $row = $DB->fetch_row() ) + { + $DB->query("SHOW VARIABLES LIKE 'version'"); + $row = $DB->fetch_row(); + } + + $this->true_version = $row['version']; + + $no_array = explode( '.', preg_replace( "/^(.+?)[-_]?/", "\\1", $row['version']) ); + + $one = (!isset($no_array) || !isset($no_array[0])) ? 3 : $no_array[0]; + $two = (!isset($no_array[1])) ? 21 : $no_array[1]; + $three = (!isset($no_array[2])) ? 0 : $no_array[2]; + + $this->mysql_version = (int)sprintf('%d%02d%02d', $one, $two, intval($three)); switch($IN['code']) { + case 'fulltext': + $this->fulltext(); + break; + + case 'dofulltext': + $this->do_fulltext(); + break; + + case 'phpinfo': + phpinfo(); + exit; + + case 'glines': + $this->guidelines(); + break; + case 'doglines': + $this->do_guidelines(); + break; + case 'cookie': $this->cookie(); break; case 'docookie': $this->save_config( array( 'cookie_domain', 'cookie_id', 'cookie_path' ) ); break; - //------------------------- + + case 'warn': + $this->warn(); + break; + case 'dowarn': + $HTTP_POST_VARS['warn_protected'] = ','. @implode( ",", $HTTP_POST_VARS['groups'] ) . ','; + $this->save_config( array( 'warn_show_rating', "warn_past_max", 'warn_show_own', 'warn_min', 'warn_protected', 'warn_mod_day', 'warn_gmod_day', "warn_gmod_ban","warn_gmod_modq","warn_gmod_post","warn_mod_post","warn_mod_modq","warn_mod_ban",'warn_max',"warn_on" ) ); + break; + case 'secure': $this->secure(); break; case 'dosecure': - $this->save_config( array ( 'reg_antispam', 'disable_admin_anon', 'disable_online_ip', 'disable_reportpost', 'allow_dynamic_img','session_expiration','match_browser','allow_dup_email','allow_images', 'force_login', 'no_reg', + $this->save_config( array ( 'strip_space_chr', 'validate_day_prune', 'bot_antispam', 'use_ttf', 'gd_width', 'gd_height',"gd_font", 'disable_admin_anon', 'disable_online_ip', 'disable_reportpost', 'allow_dynamic_img','session_expiration','match_browser','allow_dup_email','allow_images', 'force_login', 'no_reg', 'allow_flash','new_reg_notify','use_mail_form','flood_control', 'allow_online_list', 'reg_auth_type' ) ); break; //------------------------- @@ -53,7 +119,7 @@ class ad_settings { $this->post(); break; case 'dopost': - $this->save_config( array ( 'poll_tags', 'guest_name_pre', 'guest_name_suf', 'max_w_flash', 'max_h_flash', 'hot_topic', 'display_max_topics','display_max_posts','max_emos','max_images','emo_per_row', 'etfilter_punct', 'etfilter_shout', + $this->save_config( array ( 'post_order_column', 'post_order_sort','poll_disable_noreply', 'siu_thumb', 'siu_width', 'siu_height', 'startpoll_cutoff', 'post_wordwrap', 'allow_result_view', 'max_poll_choices', 'poll_tags', 'guest_name_pre', 'guest_name_suf', 'max_w_flash', 'max_h_flash', 'hot_topic', 'display_max_topics','display_max_posts','max_emos','max_images','emo_per_row', 'etfilter_punct', 'etfilter_shout', 'strip_quotes', 'max_post_length','show_img_upload','pre_polls','pre_moved','pre_pinned','img_ext' ) ); break; //------------------------- @@ -61,7 +127,7 @@ class ad_settings { $this->avatars(); break; case 'doavatars': - $this->save_config( array ( 'subs_autoprune', 'topicpage_contents', 'postpage_contents', 'allow_skins', 'max_sig_length', 'sig_allow_ibc', 'sig_allow_html','avatar_ext','avatar_url','avup_size_max','avatars_on','avatar_dims','avatar_def', 'max_location_length', 'max_interest_length', 'post_titlechange', 'guests_ava', 'guests_img', 'guests_sig' ) ); + $this->save_config( array ( 'av_gal_cols' , "disable_ipbsize", "photo_ext", 'subs_autoprune', 'topicpage_contents', 'postpage_contents', 'allow_skins', 'max_sig_length', 'sig_allow_ibc', 'sig_allow_html','avatar_ext','avatar_url','avup_size_max','avatars_on','avatar_dims','avatar_def', 'max_location_length', 'max_interest_length', 'post_titlechange', 'guests_ava', 'guests_img', 'guests_sig' ) ); break; //------------------------- case 'dates': @@ -76,7 +142,7 @@ class ad_settings { $this->calendar(); break; case 'docalendar': - $this->save_config( array ( 'show_calendar','calendar_limit', 'year_limit', 'start_year' ) ); + $this->save_config( array ( 'autohide_bday', 'autohide_calendar', 'show_birthdays', 'show_bday_calendar', 'show_calendar','calendar_limit', 'year_limit', 'start_year' ) ); break; //------------------------- @@ -84,14 +150,21 @@ class ad_settings { $this->cpu(); break; case 'docpu': - $this->save_config( array ( 'no_au_forum', 'no_au_topic', 'au_cutoff', 'load_limit','show_active','show_birthdays','show_totals','allow_search', 'search_post_cut', 'show_user_posted', 'nocache' ) ); + $this->save_config( array ( 'custom_profile_topic', 'min_search_word', 'short_forum_jump', 'no_au_forum', 'no_au_topic', 'au_cutoff', 'load_limit','show_active','show_birthdays','show_totals','allow_search', 'search_post_cut', 'show_user_posted', 'nocache' ) ); + break; + //------------------------- + case 'email': + $this->email(); + break; + case 'doemail': + $this->save_config( array ( 'email_in', 'email_out', 'mail_method', 'smtp_host', 'smtp_port', 'smtp_user', 'smtp_pass' ) ); break; //------------------------- case 'url': $this->url(); break; case 'dourl': - $this->save_config( array ( 'safe_mode_skins', 'email_in','email_out','board_name','board_url','home_name','home_url', 'disable_gzip', + $this->save_config( array ( 'number_format', 'html_dir','safe_mode_skins', 'board_name','board_url','home_name','home_url', 'disable_gzip', 'html_url','upload_url', 'upload_dir', 'print_headers', 'header_redirect', 'debug_level', 'sql_debug' ) ); break; //------------------------- @@ -99,7 +172,7 @@ class ad_settings { $this->pm(); break; case 'dopm': - $this->save_config( array ( 'msg_allow_code', 'msg_allow_html' ) ); + $this->save_config( array ( 'show_max_msg_list', 'msg_allow_code', 'msg_allow_html' ) ); break; //------------------------- case 'news': @@ -123,6 +196,13 @@ class ad_settings { $this->save_config( array ( 'board_offline', 'offline_msg' ) ); break; //------------------------- + case 'spider': + $this->spider(); + break; + case 'dospider': + $this->save_config( array ( 'spider_suit', "spider_sense","spider_visit","spider_group","spider_active",'sp_google' ,'sp_inktomi','sp_lycos' ,'sp_jeeves','sp_wuseek', 'sp_Archive_org', 'spider_anon' ) ); + break; + //------------------------- case 'bw': $this->badword(); break; @@ -170,17 +250,421 @@ class ad_settings { } - //===================================================== + //------------------------------------------------------------- - // NEWS + // Full Text options page + //-------------------------------------------------------------- + + function fulltext() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + //--------------------------------------- + // Get the mySQL version. + // Adapted from phpMyAdmin + //--------------------------------------- + + $DB->query("SELECT VERSION() AS version"); + + if ( ! $row = $DB->fetch_row() ) + { + $DB->query("SHOW VARIABLES LIKE 'version'"); + $row = $DB->fetch_row(); + } + + $this->true_version = $row['version']; + + $no_array = explode( '.', preg_replace( "/^(.+?)[-_]?/", "\\1", $row['version']) ); + + $one = (!isset($no_array) || !isset($no_array[0])) ? 3 : $no_array[0]; + $two = (!isset($no_array[1])) ? 21 : $no_array[1]; + $three = (!isset($no_array[2])) ? 0 : $no_array[2]; + + $this->mysql_version = (int)sprintf('%d%02d%02d', $one, $two, intval($three)); + + $this->common_header('dofulltext', 'Full Text Searching Set Up', 'You may change the configuration below'); + + if ( $this->mysql_version < 32323 ) + { + $ADMIN->html .= $SKIN->add_td_basic("Sorry, your MySQL installation is not capable of utilizing full text searching
    Contact your webhost to see about a MySQL upgrade."); + + $ADMIN->html .= $SKIN->end_form($button); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + + exit(); + } + else + { + $ADMIN->html .= $SKIN->add_td_basic("What is full text searching?
    Full text searching is a very fast and very + efficient way of searching large amounts of posts without maintaining a manual index."); + + //------------------------------------------- + // Do we already have full text enabled? + //------------------------------------------- + + $DB->query("SHOW CREATE TABLE ibf_posts"); + + $tbl_info = $DB->fetch_row(); + + if ( preg_match( "/FULLTEXT KEY/i", $tbl_info['Create Table'] ) ) + { + $ADMIN->html .= $SKIN->add_td_basic("The Full text indexes already exist"); + + $ADMIN->html .= $SKIN->add_td_row( array( "Type of search to use?" , + $SKIN->form_dropdown( "search_sql_method", array( 0 => array( 'ftext', 'Full Text' ), 1 => array( 'man', 'Manual' ) ), $INFO['search_sql_method'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Default Search Mode?
    Will only take effect if using full text searching" , + $SKIN->form_dropdown( "search_default_method", array( 0 => array( 'simple', 'Simple Search' ), 1 => array( 'adv', 'Advanced' ) ), $INFO['search_default_method'] ) + ) ); + } + else + { + $ADMIN->html .= $SKIN->add_td_basic( "You must create the full text indexes before you can set this section up. Simply submit this form to start setting up the indexes" . + ""); + } + + $this->common_footer(); + } + } + + //------------------------------------------------------------- + // Save full text options + //-------------------------------------------------------------- + + function do_fulltext() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + if ( $IN['ftexist'] == 1) + { + $master = array(); + $master['search_sql_method'] = $IN['search_sql_method']; + $master['search_default_method'] = $IN['search_default_method']; + + $ADMIN->rebuild_config($master); + } + else + { + // They don't. + // Check for correct version and if need be, attempt to create the indexes... + + if ( $this->mysql_version >= 32323 ) + { + // How many posts do we have? + + $DB->query("SELECT COUNT(*) as cnt from ibf_posts"); + + $result = $DB->fetch_row(); + + // If over 15,000 posts... + + if ( $result['cnt'] > 15000 ) + { + // Explain how, why and what to do.. + + $ADMIN->page_detail = ""; + $ADMIN->page_title = "Unable to continue"; + + $ADMIN->html .= $SKIN->add_td_basic( $this->return_sql_no_no_cant_do_it_sorry_text(), 'left', 'faker' ); + + $ADMIN->output(); + } + else + { + // Index away! + + $DB->query("alter table ibf_topics add fulltext(title)"); + + $DB->query("alter table ibf_posts add fulltext(post)"); + + } + } + else + { + $ADMIN->error("Sorry, the version of MySQL that you are using is unable to use FULLTEXT searches"); + } + } + + $ADMIN->save_log("Full Text Options Updated"); + + $ADMIN->done_screen("Full Text Settings updated", "Full Text Set Up", "act=op&code=fulltext" ); + + } + + //------------------------------------------------------------- + // WARNY PORNY! + //-------------------------------------------------------------- + + function warn() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $this->common_header('dowarn', 'Member Warning Set-Up', 'You may change the configuration below.' ); + + $DB->query("SELECT g_id, g_title FROM ibf_groups ORDER BY g_title"); + + while ( $r = $DB->fetch_row() ) + { + $mem_group[] = array( $r['g_id'] , $r['g_title'] ); + } + + $protected = explode(',', trim($INFO['warn_protected']) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Enable the warning system?" , + $SKIN->form_yes_no( "warn_on", $INFO['warn_on'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Warning level...
    This is related to the visual indicator in the member's profile." , + 'Minimum '.$SKIN->form_simple_input( 'warn_min' , $INFO['warn_min'] == "" ? 0 : $INFO['warn_min'] ) .' to '. + 'Maximum '.$SKIN->form_simple_input( 'warn_max' , $INFO['warn_max'] == "" ? 10 : $INFO['warn_max'] ) . + "
    Minus numbers allowed. If using minus numbers, we recommend that you do not use the graphical blocks and percentage but use the 'rating' mode as 'warn mode' will not take into account a minus start number.
    Members always start with a zero warn level when registered." + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Protected Groups...
    Groups that cannot be warned
    You may choose more than one" , + $SKIN->form_multiselect( "groups[]", $mem_group, $protected ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow all other non-protected groups to see their own warn level and reasons?" , + $SKIN->form_yes_no( "warn_show_own", $INFO['warn_show_own'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow warnings to continue once the minimum or maximum has been reached?" , + $SKIN->form_yes_no( "warn_past_max", $INFO['warn_past_max'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Type of visual indicator?" , + $SKIN->form_dropdown( 'warn_show_rating', array( 0 => array( 0, 'Warn mode: Show graphical blocks & percentage' ), 1 => array( 1, 'Rating mode: Show < min | current | max > level' ) ), $INFO['warn_show_rating'] ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Forum Moderator Permissions', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Moderators can ban via warn panel?
    Applies to those moderators allowed to use the warning system
    Admins can automatically do this via the warn panel" , + $SKIN->form_yes_no( "warn_mod_ban", $INFO['warn_mod_ban'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Moderators can mod queue members via warn panel?
    Applies to those moderators allowed to use the warning system
    Admins can automatically do this via the warn panel" , + $SKIN->form_yes_no( "warn_mod_modq", $INFO['warn_mod_modq'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Moderators can remove post rights via warn panel?
    Applies to those moderators allowed to use the warning system
    Admins can automatically do this via the warn panel" , + $SKIN->form_yes_no( "warn_mod_post", $INFO['warn_mod_post'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Moderators can warn a member..." , + $SKIN->form_input( 'warn_mod_day' , $INFO['warn_mod_day'] == "" ? 1 : $INFO['warn_mod_day'] ).'... times a day' + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Global Moderator Permissions', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Global Moderators can ban via warn panel?
    Admins can automatically do this via the warn panel" , + $SKIN->form_yes_no( "warn_gmod_ban", $INFO['warn_gmod_ban'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Global Moderators can mod queue members via warn panel?
    Admins can automatically do this via the warn panel" , + $SKIN->form_yes_no( "warn_gmod_modq", $INFO['warn_gmod_modq'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Global Moderators can remove post rights via warn panel?
    Admins can automatically do this via the warn panel" , + $SKIN->form_yes_no( "warn_gmod_post", $INFO['warn_gmod_post'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Global Moderators can warn a member..." , + $SKIN->form_input( 'warn_gmod_day' , $INFO['warn_gmod_day'] == "" ? 1 : $INFO['warn_gmod_day'] ).'... times a day' + ) ); + + $this->common_footer(); + + } + + //------------------------------------------------------------- + // SPIDER MAN! CHECK OUT THOSE CRAZY PANTS! + //-------------------------------------------------------------- + + function spider() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $this->common_header('dospider', 'Search Engine Spider/Crawler Set-Up', 'You may change the configuration below.
    '.$SKIN->js_help_link('set_spider') ); + + $DB->query("SELECT g_id, g_title FROM ibf_groups ORDER BY g_title"); + + $mem_group = array(); + + while ( $r = $DB->fetch_row() ) + { + if ($INFO['admin_group'] == $r['g_id']) + { + if ($MEMBER['mgroup'] != $INFO['admin_group']) + { + continue; + } + } + + $mem_group[] = array( $r['g_id'] , $r['g_title'] ); + } + + $DB->query("SELECT sname, sid FROM ibf_skins ORDER BY sname"); + + $skin_sets = array( 0 => array('', "Use default skin" ) ); + + while ( $s = $DB->fetch_row() ) + { + $skin_sets[] = array( $s['sid'], $s['sname'] ); + } + + + $ADMIN->html .= $SKIN->add_td_row( array( "Enable the search engine spider recognition?" , + $SKIN->form_yes_no( "spider_sense", $INFO['spider_sense'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Log all spider visits?
    If you're under heavy attack, switch this off!" , + $SKIN->form_yes_no( "spider_visit", $INFO['spider_visit'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Treat spider/bot as part of which group?" , + $SKIN->form_dropdown( "spider_group", $mem_group, $INFO['spider_group'] == "" ? $INFO['guest_group'] : $INFO['spider_group'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Force spider/bot to use skin:" , + $SKIN->form_dropdown( "spider_suit", $skin_sets, $INFO['spider_suit'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Show spider/bot in the active users list?" , + $SKIN->form_yes_no( "spider_active", $INFO['spider_active'] ) + ."
    ".$SKIN->form_checkbox( 'spider_anon', $INFO['spider_anon'] )." Show as anonymous ( only root admins can see)" + ) ); + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'In the active users list...', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Call Googlebot..." , + $SKIN->form_input( 'sp_google' , $INFO['sp_google'] == "" ? 'GoogleBot' : $INFO['sp_google'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Call Microsoft / Hotbot..." , + $SKIN->form_input( 'sp_inktomi', $INFO['sp_inktomi'] == "" ? 'Hot Bot' : $INFO['sp_inktomi'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Call Lycos..." , + $SKIN->form_input( 'sp_lycos' , $INFO['sp_lycos'] == "" ? 'Lycos' : $INFO['sp_lycos'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Call Ask Jeeves..." , + $SKIN->form_input( 'sp_jeeves' , $INFO['sp_jeeves'] == "" ? 'Ask Jeeves' : $INFO['sp_jeeves'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Call What U Seek..." , + $SKIN->form_input( 'sp_wuseek' , $INFO['sp_wuseek'] == "" ? 'What U Seek' : $INFO['sp_wuseek'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Call Archive.org..." , + $SKIN->form_input( 'sp_Archive_org' , $INFO['sp_Archive_org'] == "" ? 'Archive.org' : $INFO['sp_Archive_org'] ) + ) ); + + $this->common_footer(); + + + } + + + //------------------------------------------------------------- + // Board Guidelines + //-------------------------------------------------------------- + + function do_guidelines() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + $master = array(); + $master['gl_show'] = $IN['gl_show']; + $master['gl_link'] = $IN['gl_link']; + $master['gl_title'] = $IN['gl_title']; + + $ADMIN->rebuild_config($master); + + $glines = stripslashes($HTTP_POST_VARS['gl_guidelines']); + $glines = str_replace( "
    ", "
    ", $glines); + + $DB->query("SELECT * FROM ibf_cache_store WHERE cs_key='boardrules'"); + + if ( $row = $DB->fetch_row() ) + { + $DB->query("UPDATE ibf_cache_store SET cs_value='".addslashes($glines)."' WHERE cs_key='boardrules'"); + } + else + { + $db_string = $DB->compile_db_insert_string( array( + 'cs_key' => 'boardrules', + 'cs_value' => $glines, + ) ); + + $DB->query("INSERT INTO ibf_cache_store (".$db_string['FIELD_NAMES'].") VALUES(".$db_string['FIELD_VALUES'].")"); + } + + $ADMIN->save_log("Board Guidelines Updated"); + + $ADMIN->done_screen("Forum Configurations updated", "Administration CP Home", "act=index" ); + + } + + //--------------------------------------------- + + function guidelines() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $this->common_header('doglines', 'Board Guidelines/Rules', 'You may change the configuration below'); + + $DB->query("SELECT * FROM ibf_cache_store WHERE cs_key='boardrules'"); + + $row = $DB->fetch_row(); + + $ADMIN->html .= $SKIN->add_td_row( array( "Show link in header to guidelines?" , + $SKIN->form_yes_no( "gl_show", $INFO['gl_show'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "External http:// link to guidlines page?
    Leave blank to use internal page" , + $SKIN->form_input( "gl_link", $INFO['gl_link'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Title to use in header?" , + $SKIN->form_input( "gl_title", $INFO['gl_title'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "If not using external link; guidelines/rules text
    HTML Enabled" , + $SKIN->form_textarea( "gl_guidelines", $std->my_br2nl($row['cs_value']), 65, 20 ) + ) ); + + + $this->common_footer(); + + + } + + //------------------------------------------------------------- + // COPPA //-------------------------------------------------------------- function coppa() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; - $this->common_header('docoppa', 'COPPA Set-Up', 'You may change the configuration below. Note, enabling COPPA on your board will require children under the age of 13 to get parental consent via a faxed or mailed form.'); + $this->common_header('docoppa', 'COPPA Set-Up', 'You may change the configuration below. Note, enabling COPPA on your board will require children under the age of 13 to get parental consent via a faxed or mailed form.'); $ADMIN->html .= $SKIN->add_td_row( array( "Use COPPA registration system?" , @@ -188,11 +672,11 @@ class ad_settings { ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Fax number to receive COPPA forms" , - $SKIN->form_input( "coppa_fax", $form_array, $INFO['coppa_fax'] ) + $SKIN->form_input( "coppa_fax", $INFO['coppa_fax'] ) ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Mail address to receive COPPA forms" , - $SKIN->form_textarea( "coppa_address", $INFO['coppa_address'] ) + $SKIN->form_textarea( "coppa_address", str_replace( "\n\n", "\n", $std->my_br2nl(str_replace( "\r\n", "\n", $INFO['coppa_address']) ) ) ) ) ); @@ -205,7 +689,7 @@ class ad_settings { function docount() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ( (! $IN['posts']) and (! $IN['members'] ) and (! $IN['lastreg'] ) ) { @@ -271,7 +755,7 @@ class ad_settings { function countstats() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "Please choose which statistics to recount."; $ADMIN->page_title = "Recount Statistics Control"; @@ -319,15 +803,25 @@ class ad_settings { function calendar() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('docalendar', 'Calendar Set Up', 'You may change the configuration below'); $INFO['start_year'] = (isset($INFO['start_year'])) ? $INFO['start_year'] : 2001; $INFO['year_limit'] = (isset($INFO['year_limit'])) ? $INFO['year_limit'] : 5; + $ADMIN->html .= $SKIN->add_td_row( array( "Show birthdays on the main calendar view?" , + $SKIN->form_yes_no( "show_bday_calendar", $INFO['show_bday_calendar'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Show Today's birthdays on the board view?" , + $SKIN->form_yes_no( "show_birthdays", $INFO['show_birthdays'] ) + ."
    ".$SKIN->form_checkbox( "autohide_bday", $INFO["autohide_bday"] )." Auto hide when none to show?" + ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Show forthcoming events?
    This will show calendar events on the board index page in the stats section." , $SKIN->form_yes_no( "show_calendar", $INFO['show_calendar'] ) + ."
    ".$SKIN->form_checkbox( "autohide_calendar", $INFO["autohide_calendar"] )." Auto hide when none to show?" ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Show forthcoming events from today to [x] days ahead
    This applies to the above option." , @@ -342,7 +836,8 @@ class ad_settings { $SKIN->form_input( "year_limit", $INFO['year_limit'] ) ) ); - + + $this->common_footer(); @@ -354,7 +849,7 @@ class ad_settings { function board() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('doboard', 'Board offline/online', 'You may change the configuration below'); @@ -378,7 +873,7 @@ class ad_settings { function doedit_emoticons() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['before'] == "") { @@ -390,6 +885,11 @@ class ad_settings { $ADMIN->error("You must pass a valid emoticon id, silly!"); } + if ( strstr( $IN['before'], '\' ) ) + { + $ADMIN->error("You cannot use the backslash character in \"{$IN['before']}\". Please use another character"); + } + $IN['clickable'] = $IN['clickable'] ? 1 : 0; $db_string = $DB->compile_db_update_string( array( 'typed' => $IN['before'], @@ -410,7 +910,7 @@ class ad_settings { function edit_emoticons() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "You may edit the emoticon filter below"; $ADMIN->page_title = "Edit Emoticon"; @@ -499,7 +999,7 @@ class ad_settings { function remove_emoticons() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -518,13 +1018,18 @@ class ad_settings { function add_emoticons() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['before'] == "") { $ADMIN->error("You must enter an emoticon text to replace, silly!"); } + if ( strstr( $IN['before'], '\' ) ) + { + $ADMIN->error("You cannot use the backslash character in \"{$IN['before']}\". Please use another character"); + } + $IN['click'] = $IN['click'] ? 1 : 0; $db_string = $DB->compile_db_insert_string( array( 'typed' => $IN['before'], @@ -563,7 +1068,7 @@ class ad_settings { function upload_emoticon() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; $FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name']; $FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size']; @@ -608,7 +1113,7 @@ class ad_settings { function emoticons() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "You may add/edit or remove emoticons in this section.
    You can only choose emoticons that have been uploaded into the 'html/emoticons' directory.

    Clickable refers to emoticons that are in the posting screens 'Clickable Emoticons' table."; $ADMIN->page_title = "Emoticon Control"; @@ -761,7 +1266,7 @@ class ad_settings { function doedit_badword() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['before'] == "") { @@ -794,7 +1299,7 @@ class ad_settings { function edit_badword() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "You may edit the chosen filter below"; $ADMIN->page_title = "Bad Word Filter"; @@ -849,7 +1354,7 @@ class ad_settings { function remove_badword() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -868,7 +1373,7 @@ class ad_settings { function add_badword() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['before'] == "") { @@ -896,7 +1401,7 @@ class ad_settings { function badword() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_detail = "You can add/edit and remove bad word filters in this section.
    The badword filter allows you to globally replace words from a members post, signature and topic title.

    Loose matching: If you entered 'hell' as a bad word, it will replace 'hell' and 'hello' with either your replacement if entered or 6 hashes (case insensitive)

    Exact matching: If you entered 'hell' as a bad word, it will replace 'hell' only with either your replacement if entered or 6 hashes (case insensitive)"; $ADMIN->page_title = "Bad Word Filter"; @@ -977,11 +1482,11 @@ class ad_settings { function news() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('donews', 'News Export Set-Up', 'You may change the configuration below'); - $DB->query("SELECT id, name FROM ibf_forums WHERE subwrap = 0"); + $DB->query("SELECT id, name FROM ibf_forums ORDER BY name"); $form_array = array(); @@ -1010,7 +1515,7 @@ class ad_settings { function pm() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('dopm', 'Messenger Set up', 'You may change the configuration below'); @@ -1023,7 +1528,72 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Allow HTML in messages?" , $SKIN->form_yes_no( "msg_allow_html", $INFO['msg_allow_html'] ) ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Max. number of messages to show per page when viewing message list
    Default is 50" , + $SKIN->form_input( "show_max_msg_list", $INFO['show_max_msg_list'] ) + ) ); + + $this->common_footer(); + + + } + + //------------------------------------------------------------- + // EMAIL functions + //-------------------------------------------------------------- + + function email() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $this->common_header('doemail', 'Email Set Up', 'You may change the configuration below'); + $ADMIN->html .= $SKIN->add_td_basic( 'Email Addresses', 'left', 'catrow2' ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Board incoming email address" , + $SKIN->form_input( "email_in", $INFO['email_in'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Board outgoing email address" , + $SKIN->form_input( "email_out", $INFO['email_out'] ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Mail Method', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Mail Method
    If PHP's mail() isn't available, choose SMTP" , + $SKIN->form_dropdown( "mail_method", + array( + 0 => array( 'mail', 'PHP mail()' ), + 1 => array( 'smtp', 'SMTP' ), + ), + $INFO['mail_method'] ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'SMTP Options', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Over-ride SMTP Host?
    Default is 'localhost'" , + $SKIN->form_input( "smtp_host", $INFO['smtp_host'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Over-ride SMTP Port?
    Default is 25" , + $SKIN->form_input( "smtp_port", $INFO['smtp_port'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "SMTP UserName
    Not required in most cases when using 'localhost'" , + $SKIN->form_input( "smtp_user", $INFO['smtp_user'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "SMTP Password
    Not required in most cases when using 'localhost'" , + $SKIN->form_input( "smtp_pass", $INFO['smtp_pass'], 'password' ) + ) ); $this->common_footer(); @@ -1036,23 +1606,20 @@ class ad_settings { function url() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; - $this->common_header('dourl', 'URL\'s, Paths and Addresses', 'You may change the configuration below'); + $this->common_header('dourl', 'Global Set Up', 'You may change the configuration below'); + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Board Name and HTTP addresses', 'left', 'catrow2' ); - $ADMIN->html .= $SKIN->add_td_row( array( "Board incoming email address" , - $SKIN->form_input( "email_in", $INFO['email_in'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Board outgoing email address" , - $SKIN->form_input( "email_out", $INFO['email_out'] ) - ) ); + //----------------------------------------------------------------------------------------------------------- $ADMIN->html .= $SKIN->add_td_row( array( "Board Name" , $SKIN->form_input( "board_name", $INFO['board_name'] ) ) ); - + $ADMIN->html .= $SKIN->add_td_row( array( "Board Address" , $SKIN->form_input( "board_url", $INFO['board_url'] ) ) ); @@ -1064,7 +1631,7 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Website Address" , $SKIN->form_input( "home_url", $INFO['home_url'] ) ) ); - + $ADMIN->html .= $SKIN->add_td_row( array( "HTML URL
    For images, etc" , $SKIN->form_input( "html_url", $INFO['html_url'] ) ) ); @@ -1072,11 +1639,27 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Upload URL" , $SKIN->form_input( "upload_url", $INFO['upload_url'] ) ) ); + + //----------------------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->add_td_basic( 'Board Server Paths', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Path to 'html' directory
    Note: this is a path, not a URL" , + $SKIN->form_input( "html_dir", $INFO['html_dir'] ) + ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Upload Directory" , $SKIN->form_input( "upload_dir", $INFO['upload_dir'] ) ) ); + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'HTTP Environment', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->add_td_row( array( "Print HTTP headers?
    (Some NT installs require this off)" , $SKIN->form_yes_no( "print_headers", $INFO['print_headers'] ) ) ); @@ -1085,9 +1668,6 @@ class ad_settings { $SKIN->form_yes_no( "disable_gzip", $INFO['disable_gzip'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "ENABLE SQL Debug Mode?
    (If yes, add '&debug=1' to any page to view mySQL debug info)" , - $SKIN->form_yes_no( "sql_debug", $INFO['sql_debug'] ) - ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Type of auto-redirect?
    (This is for quick no page redirects)" , $SKIN->form_dropdown( 'header_redirect', @@ -1098,6 +1678,12 @@ class ad_settings { ), $INFO['header_redirect'] ) ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Debugging', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- $ADMIN->html .= $SKIN->add_td_row( array( "Debug level" , $SKIN->form_dropdown( "debug_level", @@ -1110,6 +1696,17 @@ class ad_settings { $INFO['debug_level'] ) ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "ENABLE SQL Debug Mode?
    (If yes, add '&debug=1' to any page to view mySQL debug info)" , + $SKIN->form_yes_no( "sql_debug", $INFO['sql_debug'] ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Global Skin Settings', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->add_td_row( array( "Use safe mode skins?
    (Note: You may need to resynchronise your template sets after changing this if you have custom/edited skins)" , $SKIN->form_dropdown( 'safe_mode_skins', array( @@ -1119,6 +1716,17 @@ class ad_settings { $INFO['safe_mode_skins'] ) ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Number Formatting
    You may choose which character to separate thousands from hundreds
    (EG: USA & UK use a comma)" , + $SKIN->form_dropdown( 'number_format', + array( + 0 => array( 'none', 'Don\'t format' ), + 1 => array( 'space' , 'Space' ), + 2 => array( ',' , ',' ), + 3 => array( '.' , '.' ), + ), + $INFO['number_format'] ) + ) ); + $this->common_footer(); @@ -1133,7 +1741,7 @@ class ad_settings { function cpu() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('docpu', 'CPU Saving', 'You can opt to turn some features off to minimize the resource footprint'); @@ -1143,9 +1751,11 @@ class ad_settings { $INFO['au_cutoff'] = 15; } - $ADMIN->html .= $SKIN->add_td_row( array( "Server Load Limit
    Will display 'busy' message when limit hit
    Can be left blank for no limit" , - $SKIN->form_input( "load_limit", $INFO['load_limit'] ) - ) ); + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'SQL Savings', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- $ADMIN->html .= $SKIN->add_td_row( array( "Show Active Users?" , $SKIN->form_yes_no( "show_active", $INFO['show_active'] ) @@ -1162,23 +1772,15 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Show Board Totals?" , $SKIN->form_yes_no( "show_totals", $INFO['show_totals'] ) ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow custom profile field info be used in TopicView?" , + $SKIN->form_yes_no( "custom_profile_topic", $INFO['custom_profile_topic'] ) + ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Allow users (where allowed) to use search?" , - $SKIN->form_yes_no( "allow_search", $INFO['allow_search'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Cut search post to [x] characters
    Refers to when returning search results as posts" , - $SKIN->form_input( "search_post_cut", $INFO['search_post_cut'] ) - ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Mark topics a user has posted when displaying a forum?" , $SKIN->form_yes_no( "show_user_posted", $INFO['show_user_posted'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Print HTTP no-cache headers?
    (This will stop browsers caching pages)" , - $SKIN->form_yes_no( "nocache", $INFO['nocache'] ) - ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Remove 'Users Browsing this forum' feature?
    (This save 1 query per forum view)" , $SKIN->form_yes_no( "no_au_forum", $INFO['no_au_forum'] ) ) ); @@ -1186,6 +1788,43 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Remove 'Users Browsing this topic' feature?
    (This save 1 query per topic view)" , $SKIN->form_yes_no( "no_au_topic", $INFO['no_au_topic'] ) ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'CPU Savings', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Server Load Limit
    Will display 'busy' message when limit hit
    Can be left blank for no limit" , + $SKIN->form_input( "load_limit", $INFO['load_limit'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow users (where allowed) to use search?" , + $SKIN->form_yes_no( "allow_search", $INFO['allow_search'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Cut search post to [x] characters
    Refers to when returning search results as posts
    Leave blank to return full post with proper formatting" , + $SKIN->form_input( "search_post_cut", $INFO['search_post_cut'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Minimum search word length
    Allowing shorter search words can return more results, such as 'if', 'at', etc" , + $SKIN->form_input( "min_search_word", $INFO['min_search_word'] )."
    Note, if you have enabled full text searching, the minimum is 4 characters and cannot be changed via IPB" + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Bandwidth Savings', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Print HTTP no-cache headers?
    (This will stop browsers caching pages)" , + $SKIN->form_yes_no( "nocache", $INFO['nocache'] ) + ) ); + + + $ADMIN->html .= $SKIN->add_td_row( array( "Show short forum jump list?
    This will remove sub-forums from the drop down list - useful if you have many" , + $SKIN->form_yes_no( "short_forum_jump", $INFO['short_forum_jump'] ) + ) ); $this->common_footer(); @@ -1198,13 +1837,13 @@ class ad_settings { function dates() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('dodates', 'Dates', 'Define date formats'); $time_array = array(); - require $root_path."lang/en/lang_ucp.php"; + require ROOT_PATH."lang/en/lang_ucp.php"; foreach( $lang as $off => $words ) { @@ -1247,15 +1886,84 @@ class ad_settings { function avatars() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('doavatars', 'User Profiles', 'Define user profile permissions'); $INFO['avatar_ext'] = preg_replace( "/\|/", ",", $INFO['avatar_ext'] ); + $INFO['photo_ext'] = preg_replace( "/\|/", ",", $INFO['photo_ext'] ); + + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'User Profiles & Options', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- $ADMIN->html .= $SKIN->add_td_row( array( "Allow members to choose skins?" , $SKIN->form_yes_no( "allow_skins", $INFO['allow_skins'] ) ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Number of posts a member must have over before allowing them to change their member title?
    Leave blank to disable completely" , + $SKIN->form_input( "post_titlechange", $INFO['post_titlechange'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Maximum length (in bytes) for the location field entry" , + $SKIN->form_input( "max_location_length", $INFO['max_location_length'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Maximum length (in bytes) for the interests field entry" , + $SKIN->form_input( "max_interest_length", $INFO['max_interest_length'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Maximum length (in bytes) for user signatures" , + $SKIN->form_input( "max_sig_length", $INFO['max_sig_length'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow HTML in signatures?" , + $SKIN->form_yes_no( "sig_allow_html", $INFO['sig_allow_html'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow IBF Code in signatures?" , + $SKIN->form_yes_no( "sig_allow_ibc", $INFO['sig_allow_ibc'] ) + ) ); + + if ($INFO['postpage_contents'] == "") + { + $INFO['postpage_contents'] = '5,10,15,20,25,30,35,40'; + } + + if ($INFO['topicpage_contents'] == "") + { + $INFO['topicpage_contents'] = '5,10,15,20,25,30,35,40'; + } + + $ADMIN->html .= $SKIN->add_td_row( array( "User selectable posts per page dropdown contents
    Separate with a comma, 'Use forum default' added automatically
    Example: 5,15,20,25,30" , + $SKIN->form_input( "postpage_contents", $INFO['postpage_contents'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "User selectable topics per forum page dropdown contents
    Separate with a comma, 'Use forum default' added automatically
    Example: 5,15,20,25,30" , + $SKIN->form_input( "topicpage_contents", $INFO['topicpage_contents'] ) + ) ); + + + $ADMIN->html .= $SKIN->add_td_row( array( "Auto prune all topic subscriptions if the topic has no replies over [x] days
    Leave blank for no auto prune limit" , + $SKIN->form_input( "subs_autoprune", $INFO['subs_autoprune'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allowed photo URL extensions
    Seperate with comma (gif,png,jpeg) etc" , + $SKIN->form_input( "photo_ext", strlen($INFO['photo_ext']) > 1 ? $INFO['photo_ext'] : "gif,jpg,jpeg,png" ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Avatars', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Disable IPB auto sizing large photos/avatars?
    This will ask the member to input their dimensions" , + $SKIN->form_yes_no( "disable_ipbsize", $INFO['disable_ipbsize'] ) + ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Allow the use of avatars?" , $SKIN->form_yes_no( "avatars_on", $INFO['avatars_on'] ) @@ -1281,31 +1989,15 @@ class ad_settings { $SKIN->form_input( "avatar_def", $INFO['avatar_def'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "No. of posts a user must have before change of member title is allowed?" , - $SKIN->form_input( "post_titlechange", $INFO['post_titlechange'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Maximum length (in bytes) for the location field entry" , - $SKIN->form_input( "max_location_length", $INFO['max_location_length'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Maximum length (in bytes) for the interests field entry" , - $SKIN->form_input( "max_interest_length", $INFO['max_interest_length'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Maximum length (in bytes) for user signatures" , - $SKIN->form_input( "max_sig_length", $INFO['max_sig_length'] ) + $ADMIN->html .= $SKIN->add_td_row( array( "Number of columns for the avatar gallery?" , + $SKIN->form_input( 'av_gal_cols' , $INFO['av_gal_cols'] = $INFO['av_gal_cols'] ? $INFO['av_gal_cols'] : 5 ) ) ); + + //----------------------------------------------------------------------------------------------------------- - $ADMIN->html .= $SKIN->add_td_row( array( "Allow HTML in signatures?" , - $SKIN->form_yes_no( "sig_allow_html", $INFO['sig_allow_html'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Allow IBF Code in signatures?" , - $SKIN->form_yes_no( "sig_allow_ibc", $INFO['sig_allow_ibc'] ) - ) ); - - //-------- + $ADMIN->html .= $SKIN->add_td_basic( 'Guest Permissions', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- $ADMIN->html .= $SKIN->add_td_row( array( "Allow GUESTS to view signatures?" , $SKIN->form_yes_no( "guests_sig", $INFO['guests_sig'] ) @@ -1319,31 +2011,7 @@ class ad_settings { $SKIN->form_yes_no( "guests_ava", $INFO['guests_ava'] ) ) ); - //-------- - - if ($INFO['postpage_contents'] == "") - { - $INFO['postpage_contents'] = '5,10,15,20,25,30,35,40'; - } - - if ($INFO['topicpage_contents'] == "") - { - $INFO['topicpage_contents'] = '5,10,15,20,25,30,35,40'; - } - - $ADMIN->html .= $SKIN->add_td_row( array( "User selectable posts per page dropdown contents
    Separate with a comma, 'Use forum default' added automatically
    Example: 5,15,20,25,30" , - $SKIN->form_input( "postpage_contents", $INFO['postpage_contents'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "User selectable topics per forum page dropdown contents
    Separate with a comma, 'Use forum default' added automatically
    Example: 5,15,20,25,30" , - $SKIN->form_input( "topicpage_contents", $INFO['topicpage_contents'] ) - ) ); - - - $ADMIN->html .= $SKIN->add_td_row( array( "Auto prune all topic subscriptions if the topic has no replies over [x] days
    Leave blank for no auto prune limit" , - $SKIN->form_input( "subs_autoprune", $INFO['subs_autoprune'] ) - ) ); - + $this->common_footer(); @@ -1357,60 +2025,27 @@ class ad_settings { function post() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $INFO['img_ext'] = preg_replace( "/\|/", ",", $INFO['img_ext'] ); $this->common_header('dopost', 'Topics, Posts and Posting', 'Configure the viewable post elements and limits.'); + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Topics', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->add_td_row( array( "Number of topics per forum page" , $SKIN->form_input( "display_max_topics", $INFO['display_max_topics'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Number of posts per topic page" , - $SKIN->form_input( "display_max_posts", $INFO['display_max_posts'] ) - ) ); - + $ADMIN->html .= $SKIN->add_td_row( array( "Number of posts needed to make a 'hot topic'?" , $SKIN->form_input( "hot_topic", $INFO['hot_topic'] ) ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "No. emoticons per clickable table row" , - $SKIN->form_input( "emo_per_row", $INFO['emo_per_row'] ) - ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Max. no. emoticons per post" , - $SKIN->form_input( "max_emos", $INFO['max_emos'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Max. no. images per post" , - $SKIN->form_input( "max_images", $INFO['max_images'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Max. size of post (in kilobytes [k])" , - $SKIN->form_input( "max_post_length", $INFO['max_post_length'] ) - ) ); - - // - - $ADMIN->html .= $SKIN->add_td_row( array( "Max. width of posted Flash movies (in pixels)" , - $SKIN->form_input( "max_w_flash", $INFO['max_w_flash'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Max. height of posted Flash movies (in pixels)" , - $SKIN->form_input( "max_h_flash", $INFO['max_h_flash'] ) - ) ); - - // - - $ADMIN->html .= $SKIN->add_td_row( array( "Valid postable image extensions
    (Seperate with comma (gif,jpeg,jpg) etc" , - $SKIN->form_input( "img_ext", $INFO['img_ext'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Show uploaded images in post?" , - $SKIN->form_yes_no( "show_img_upload", $INFO['show_img_upload'] ) - ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Topic prefix for PINNED topics" , $SKIN->form_input( "pre_pinned", $INFO['pre_pinned'] ) ) ); @@ -1423,18 +2058,78 @@ class ad_settings { $SKIN->form_input( "pre_polls", $INFO['pre_polls'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Allow [IMG] and [URL] tags in polls?" , - $SKIN->form_yes_no( "poll_tags", $INFO['poll_tags'] ) - ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Stop shouting in topic titles?
    (Will turn: CLICK HERE into Click Here)" , $SKIN->form_yes_no( "etfilter_shout", $INFO['etfilter_shout'] ) ) ); $ADMIN->html .= $SKIN->add_td_row( array( "Remove excess exclamation/question marks in topic titles?
    (Will turn: This!!!!! into This!)" , $SKIN->form_yes_no( "etfilter_punct", $INFO['etfilter_punct'] ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Posts & Posting', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Number of posts per topic page" , + $SKIN->form_input( "display_max_posts", $INFO['display_max_posts'] ) ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Order posts within a topic by" , + $SKIN->form_dropdown( "post_order_column", + array( + 0 => array( 'pid' , 'Post ID' ), + 1 => array( 'post_date' , 'Post Date' ) + ), + $INFO['post_order_column'] ? $INFO['post_order_column'] : 'pid' + ) + . ' '. + $SKIN->form_dropdown( "post_order_sort", + array( + 0 => array( 'asc' , 'Ascending (0-9)' ), + 1 => array( 'desc' , 'Descending (9-0)' ) + ), + $INFO['post_order_sort'] ? $INFO['post_order_sort'] : 'asc' + ) + ) ); + + + $ADMIN->html .= $SKIN->add_td_row( array( "No. emoticons per clickable table row" , + $SKIN->form_input( "emo_per_row", $INFO['emo_per_row'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Max. no. emoticons per post" , + $SKIN->form_input( "max_emos", $INFO['max_emos'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Max. no. images per post" , + $SKIN->form_input( "max_images", $INFO['max_images'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Max. size of post (in kilobytes [kb])" , + $SKIN->form_input( "max_post_length", $INFO['max_post_length'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Max. width of posted Flash movies (in pixels)" , + $SKIN->form_input( "max_w_flash", $INFO['max_w_flash'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Max. height of posted Flash movies (in pixels)" , + $SKIN->form_input( "max_h_flash", $INFO['max_h_flash'] ) + ) ); + + + $ADMIN->html .= $SKIN->add_td_row( array( "Valid postable image extensions
    (Seperate with comma (gif,jpeg,jpg) etc" , + $SKIN->form_input( "img_ext", $INFO['img_ext'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Show uploaded images in post?" , + $SKIN->form_yes_no( "show_img_upload", $INFO['show_img_upload'] ) + ."
    ".$SKIN->form_checkbox( 'siu_thumb', $INFO['siu_thumb'] )."Show Thumb? Size ".$SKIN->form_simple_input( 'siu_width', $INFO['siu_width'] )." x ".$SKIN->form_simple_input( 'siu_height', $INFO['siu_height'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Stop Quote Embedding?
    This will remove any quoted text when quoting a post that contains quotes
    .." , $SKIN->form_yes_no( "strip_quotes", $INFO['strip_quotes'] ) ) ); @@ -1446,7 +2141,38 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Guest names suffix
    (This is for when a guest posts with a members name, it allows for a visual difference to prevent confusion)" , $SKIN->form_input( "guest_name_suf", $INFO['guest_name_suf'] ) ) ); - + + $ADMIN->html .= $SKIN->add_td_row( array( "No. characters to word wrap on?
    Prevents long unbroken words which distort tables. 80 - 100 is recommended" , + $SKIN->form_input( "post_wordwrap", $INFO['post_wordwrap'] ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Polls', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow [IMG] and [URL] tags in polls?" , + $SKIN->form_yes_no( "poll_tags", $INFO['poll_tags'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Maximum number of poll choices allowed?
    " , + $SKIN->form_input( "max_poll_choices", $INFO['max_poll_choices'] ? $INFO['max_poll_choices'] : 10) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow members to view the results of a poll without losing their vote?" , + $SKIN->form_yes_no( 'allow_result_view', $INFO['allow_result_view'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "DISABLE the ability for members to post a 'no-reply' poll?" , + $SKIN->form_yes_no( 'poll_disable_noreply', $INFO['poll_disable_noreply'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Number of hours to keep open the ability for topic starters to attach a poll to their topic
    Does not affect admins or super moderators" , + $SKIN->form_input( 'startpoll_cutoff', $INFO['startpoll_cutoff'] ? $INFO['startpoll_cutoff'] : 24) + ) ); + $this->common_footer(); @@ -1458,10 +2184,50 @@ class ad_settings { function secure() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; - + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + $this->common_header('dosecure', 'Security', 'Define the level of security your board possess by using the configurations below'); + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Security (Script/Bot Flood Control)', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Enable Script/Bot Flood Control?
    Forces users to input a random code when registering and changing email address, etc to prevent bot's from spamming the forms.".$SKIN->js_help_link('s_reg_antispam') , + $SKIN->form_dropdown( "bot_antispam", + array( + 0 => array( '0' , 'None' ), + 1 => array( 'gd' , 'Advanced (Requires GD Library)' ), + 2 => array( 'gif' , 'Normal (No special requirements)' ), + + ), + $INFO['bot_antispam'] + ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "IF using GD; Use [YES] TTF method, or [NO] basic method?
    TTF is best if available" , + $SKIN->form_yes_no( "use_ttf", isset($INFO['use_ttf']) ? $INFO['use_ttf'] : 1 ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "IF using GD & TTF; Image WIDTH" , + $SKIN->form_input( "gd_width", isset($INFO['gd_width']) ? $INFO['gd_width'] : 250 ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "IF using GD & TTF; Image HEIGHT" , + $SKIN->form_input( "gd_height", isset($INFO['gd_height']) ? $INFO['gd_height'] : 70 ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "IF using GD & TTF; Path to used .ttf" , + $SKIN->form_input( "gd_font", isset($INFO['gd_font']) ? $INFO['gd_font'] : getcwd().'/fonts/progbot.ttf' ) + ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Security (High)', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->add_td_row( array( "Allow dynamic images?
    If 'yes' users can post scripted image generators" , $SKIN->form_yes_no( "allow_dynamic_img", $INFO['allow_dynamic_img'] ) ) ); @@ -1474,18 +2240,45 @@ class ad_settings { $SKIN->form_yes_no( "match_browser", $INFO['match_browser'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Allow duplicate emails when user registers?
    Will not check for existing email address" , - $SKIN->form_yes_no( "allow_dup_email", $INFO['allow_dup_email'] ) + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Security (Medium)', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + + $ADMIN->html .= $SKIN->add_td_row( array( "Use secure mail form for member to member mails?
    Hides users email addresses" , + $SKIN->form_yes_no( "use_mail_form", $INFO['use_mail_form'] ) ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Security (Low)', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->add_td_row( array( "Allow images to be posted?
    Advanced programmers can force images to run as scripts. IBF limits damage by this method however." , $SKIN->form_yes_no( "allow_images", $INFO['allow_images'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Allow flash movies in posts and avatars?
    Flash has a built in scripting language" , + $ADMIN->html .= $SKIN->add_td_row( array( "Allow flash movies in posts and avatars?
    Flash has a built in scripting language which may or may not compromise security" , $SKIN->form_yes_no( "allow_flash", $INFO['allow_flash'] ) - ) ); + ) ); + + + //----------------------------------------------------------------------------------------------------------- + $ADMIN->html .= $SKIN->add_td_basic( 'Security (Troublesome Users)', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Allow duplicate emails when user registers?
    Will not check for existing email address" , + $SKIN->form_yes_no( "allow_dup_email", $INFO['allow_dup_email'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "New registration email validation?
    Make admin manually preview all new accounts or make new users validate their email address" , $SKIN->form_dropdown( "reg_auth_type", array( @@ -1497,6 +2290,10 @@ class ad_settings { ) ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Remove incomplete registration validations after..." , + $SKIN->form_simple_input( 'validate_day_prune', $INFO['validate_day_prune'], 3 ). "... days" + ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Get notified when a new user registers via email?" , $SKIN->form_dropdown( "new_reg_notify", array( @@ -1507,17 +2304,31 @@ class ad_settings { ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Enable Registration Bot Flood Control?
    Forces users to input a random code to prevent bot's from spamming the registration.".$SKIN->js_help_link('s_reg_antispam') , - $SKIN->form_yes_no( "reg_antispam", $INFO['reg_antispam'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Use secure mail form for member to member mails?
    Hides users email addresses" , - $SKIN->form_yes_no( "use_mail_form", $INFO['use_mail_form'] ) + $ADMIN->html .= $SKIN->add_td_row( array( "Force guests to log in before allowing access to the board?" , + $SKIN->form_yes_no( "force_login", $INFO['force_login'] ) ) ); + $ADMIN->html .= $SKIN->add_td_row( array( "Disable new registrations?" , + $SKIN->form_yes_no( "no_reg", $INFO['no_reg'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Remove chr(0xCA) from input?
    Can be used as a 'hidden' space to emulate registered names - but can cause problems in non Western character sets." , + $SKIN->form_yes_no( 'strip_space_chr', $INFO['strip_space_chr'] ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Disable 'Report this post to a moderator' link?" , + $SKIN->form_yes_no( "disable_reportpost", $INFO['disable_reportpost'] ) + ) ); // + $ADMIN->html .= $SKIN->add_td_row( array( "Flood control delay (in seconds)
    Make users wait before posting again
    Can be left blank for no flood control" , $SKIN->form_input( "flood_control", $INFO['flood_control'] ) ) ); + + //----------------------------------------------------------------------------------------------------------- + + $ADMIN->html .= $SKIN->add_td_basic( 'Privacy', 'left', 'catrow2' ); + + //----------------------------------------------------------------------------------------------------------- $ADMIN->html .= $SKIN->add_td_row( array( "Allow users to browse the Active Users list?" , $SKIN->form_yes_no( "allow_online_list", $INFO['allow_online_list'] ) @@ -1531,17 +2342,7 @@ class ad_settings { $SKIN->form_yes_no( "disable_online_ip", $INFO['disable_online_ip'] ) ) ); - $ADMIN->html .= $SKIN->add_td_row( array( "Force guests to log in before allowing access to the board?" , - $SKIN->form_yes_no( "force_login", $INFO['force_login'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Disable new registrations?" , - $SKIN->form_yes_no( "no_reg", $INFO['no_reg'] ) - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( "Disable 'Report this post to a moderator' link?" , - $SKIN->form_yes_no( "disable_reportpost", $INFO['disable_reportpost'] ) - ) ); // + $this->common_footer(); @@ -1554,7 +2355,7 @@ class ad_settings { function cookie() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $this->common_header('docookie', 'Cookies', 'All of these fields can be left blank. Experiment to find the correct settings for your host'); @@ -1583,7 +2384,7 @@ class ad_settings { function save_config( $new ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; $master = array(); @@ -1596,9 +2397,10 @@ class ad_settings { // Handle special.. - if ($field == 'img_ext' or $field == 'avatar_ext') + if ($field == 'img_ext' or $field == 'avatar_ext' or $field == 'photo_ext') { $HTTP_POST_VARS[ $field ] = preg_replace( "/[\.\s]/", "" , $HTTP_POST_VARS[ $field ] ); + $HTTP_POST_VARS[ $field ] = str_replace('|', "|", $HTTP_POST_VARS[ $field ]); $HTTP_POST_VARS[ $field ] = preg_replace( "/,/" , '|', $HTTP_POST_VARS[ $field ] ); } else if ($field == 'coppa_address') @@ -1606,8 +2408,15 @@ class ad_settings { $HTTP_POST_VARS[ $field ] = nl2br( $HTTP_POST_VARS[ $field ] ); } - $HTTP_POST_VARS[ $field ] = preg_replace( "/'/", "'", stripslashes($HTTP_POST_VARS[ $field ]) ); - + if ( $field == 'gd_font' OR $field == 'html_dir' OR $field == 'upload_dir') + { + $HTTP_POST_VARS[ $field ] = preg_replace( "/'/", "'", $HTTP_POST_VARS[ $field ] ); + } + else + { + $HTTP_POST_VARS[ $field ] = preg_replace( "/'/", "'", stripslashes($HTTP_POST_VARS[ $field ]) ); + } + $master[ $field ] = stripslashes($HTTP_POST_VARS[ $field ]); } @@ -1631,7 +2440,7 @@ class ad_settings { function common_header( $formcode = "", $section = "", $extra = "" ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $extra = $extra ? $extra."
    " : $extra; @@ -1646,8 +2455,8 @@ class ad_settings { //+------------------------------- - $SKIN->td_header[] = array( " " , "40%" ); - $SKIN->td_header[] = array( " " , "60%" ); + $SKIN->td_header[] = array( "{none}" , "40%" ); + $SKIN->td_header[] = array( "{none}" , "60%" ); //+------------------------------- @@ -1664,7 +2473,7 @@ class ad_settings { function common_footer( $button="Submit Changes" ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->html .= $SKIN->end_form($button); @@ -1672,7 +2481,67 @@ class ad_settings { $ADMIN->output(); - } + } + + function return_sql_no_no_cant_do_it_sorry_text() + { +return " +
    +Unable to automatically create the FULLTEXT indexes +

    +You have too many posts for an automatic FULLTEXT index creation. It is more than likely that PHP will +time out before the indexes are complete which could cause some index corruption. +
    +Creating FULLTEXT indexes is a relatively slow process but it's one that's worth doing as it will save you +a lot of time and CPU power when your members search. +
    +On average, a normal webserver is capable of indexing about 80,000 posts an hour but it is a relatively intense process. If you +are using MySQL 4.0.12+ then this time is reduced substaintially. +
    +
    +How to manually create the indexes +
    +If you have shell (SSH / Telnet) access to mysql, the process is very straightforward. If you do not have access to shell, then you will +have to contact your webhost and ask them to do this for you. +

    +Step 1: Initiate mysql +
    +In shell type: +
    +
    mysql -u{your_sql_user_name} -p{your_sql_password}
    +
    +Your MySQL username and password can be found in your conf_global.php file +
    +
    +Step 2: Select your database +
    +In mysql type: +
    +
    use {your_database_name_here};
    +
    +Make sure you use a trailing semi-colon. Your MySQL database name can be found in conf_global.php +

    +Step 3: Indexing the topics table +
    +In mysql type: +
    +
    \g alter table ibf_topics add fulltext(title);
    +
    +If you are not using 'ibf_' as your table extension, adjust that query to suit. This query can take a while +depending on the number of topics you have. +
    +
    +Step 4: Indexing the posts table +
    +In mysql type: +
    +
    \g alter table ibf_posts add fulltext(post);
    +
    +If you are not using 'ibf_' as your table extension, adjust that query to suit. This query can take a while +depending on the number of posts you have. On average MySQL can index 80,000 posts an hour. If you are using MySQL 4, the time is greatly reduced. +
    +"; + } } diff --git a/upload/sources/Admin/ad_skin_import.php b/upload/sources/Admin/ad_skin_import.php index 7f6071c1..73e75a7c 100644 --- a/upload/sources/Admin/ad_skin_import.php +++ b/upload/sources/Admin/ad_skin_import.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Import functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_langs(); @@ -31,7 +37,20 @@ class ad_langs { var $base_url; function ad_langs() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -64,7 +83,7 @@ class ad_langs { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -91,7 +110,7 @@ class ad_langs { function import() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -112,7 +131,7 @@ class ad_langs { $this->name_translated = preg_replace( "/^(css|image|set|wrap|tmpl)-(.+?)\.(\S+)$/", "\\2", $this->tar_file ); $this->name_translated = preg_replace( "/_/", " ", $this->name_translated ); - require $root_dir."sources/lib/tar.php"; + require ROOT_PATH."sources/lib/tar.php"; $this->tar = new tar(); @@ -148,7 +167,7 @@ class ad_langs { function set_import() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $images_dir = $INFO['base_dir']."style_images"; $skins_dir = $INFO['base_dir']."Skin"; @@ -719,7 +738,7 @@ class ad_langs { function wrap_import() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; // Depreciated @@ -766,7 +785,7 @@ class ad_langs { function list_current() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); @@ -856,6 +875,11 @@ class ad_langs { return ""; } + // Make some tags safe.. + + $t = preg_replace( "/\{ibf\.vars\.(sql_driver|sql_host|sql_database|sql_pass|sql_user|sql_port|sql_tbl_prefix|smtp_host|smtp_port|smtp_user|smtp_pass|html_dir|base_dir|upload_dir)\}/", "" , $t ); + + $t = preg_replace( "/{ibf\.script_url}/i" , '{$ibforums->base_url}' , $t); $t = preg_replace( "/{ibf\.session_id}/i" , '{$ibforums->session_id}' , $t); $t = preg_replace( "/{ibf\.skin\.(\w+)}/" , '{$ibforums->skin[\''."\\1".'\']}' , $t); @@ -870,7 +894,7 @@ class ad_langs { function rebuild_phpskin($templates_dir, $skins_dir) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $errors = array(); @@ -1018,7 +1042,7 @@ class ad_langs { function import_error( $error, $next_id) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $DB->query("DELETE FROM ibf_macro_name WHERE set_id='{$next_id['macro']}'"); $DB->query("DELETE FROM ibf_macro WHERE macro_id='{$next_id['macro']}'"); diff --git a/upload/sources/Admin/ad_skinfix.php b/upload/sources/Admin/ad_skinfix.php new file mode 100644 index 00000000..c05f2ede --- /dev/null +++ b/upload/sources/Admin/ad_skinfix.php @@ -0,0 +1,1112 @@ + Fix Skin Functions +| > Module written by Matt Mecham +| > Date started: 21st September 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + +$idx = new ad_skinfix(); + + +class ad_skinfix { + + var $base_url; + var $db_html_files = ""; + var $ff_html_files = ""; + var $skin_id = ""; + var $ff_fixes = array(); + var $log = array(); + + function ad_skinfix() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_detail = "This will allow you to update any old skins with the very latest skin files from the latest IPB release to ensure compatibility.

    + Simply download the latest skin lists from our master server to your install and then run these lists to compare and update any skins you have installed."; + $ADMIN->page_title = "Skin Version Control"; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- + + switch($IN['code']) + { + + case 'importurl': + $this->import_ipb_file(); + break; + + case 'runtool': + $this->run_tool(); + break; + + case 'delete': + $this->delete_list(); + break; + + //------------------------- + default: + $this->list_current(); + break; + } + + } + + //------------------------------------------------------------- + // Delete local list-y-poooos + //------------------------------------------------------------- + + function delete_list() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + if ( ! $IN['id'] ) + { + $this->list_current("No ID passed, no deletion completed"); + } + + if ( @unlink( ROOT_PATH . 'cache/'. $IN['id'] ) ) + { + $this->list_current("Cache file removed"); + } + else + { + $this->list_current("Cache file could not be removed. Insufficient write permissions"); + } + } + + + + //------------------------------------------------------------- + // RUN THE TOOL:UPDATE MINOR: Update all bug fixes, etc + //------------------------------------------------------------- + + function tool_update_updates() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //------------------------------ + // Find missing template bits + //------------------------------ + + $affected = array(); + + foreach( $this->ff_fixes as $skin_file => $data ) + { + foreach( $this->ff_fixes[ $skin_file ] as $section => $desc ) + { + if ( $desc['isnew'] == 1 ) + { + //------------------------------ + // Check to see if it's still missing... + //------------------------------ + + if ( $this->db_html_files[ $skin_file ][ $section ] ) + { + //------------------------------ + // It's not, so fu.. continue + //------------------------------ + + continue; + } + } + + $data = $this->ff_html_files[ $skin_file ][ $section ][ 'func_data' ]; + $content = $this->ff_html_files[ $skin_file ][ $section ][ 'section_content' ]; + + $this->_update_section($skin_file, $section, $data, $content); + + $affected[$skin_file] = $skin_file; + } + } + + if ( count($affected) < 1 ) + { + $this->log[] = "Could not update the template files, no updates taken place"; + } + else + { + foreach( $affected as $sk ) + { + $this->_update_php_file($sk); + } + } + + $this->write_log("Results of updating all bug fixed sections"); + } + + //------------------------------------------------------------- + // RUN THE TOOL:UPDATE MAJOR: Update all missing templates + //------------------------------------------------------------- + + function tool_updatemajor() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //------------------------------ + // Find missing template bits + //------------------------------ + + $affected = array(); + + foreach( $this->ff_html_files as $skin_file => $data ) + { + foreach( $this->ff_html_files[ $skin_file ] as $id => $ndata ) + { + if ( ! $this->db_html_files[ $skin_file ][ $ndata['func_name'] ] ) + { + $this->_update_section($skin_file, $ndata['func_name'], $ndata['func_data'], $ndata['section_content']); + + $affected[$skin_file] = $skin_file; + } + } + } + + if ( count($affected) < 1 ) + { + $this->log[] = "Could not update the template files, no updates taken place"; + } + else + { + foreach( $affected as $sk ) + { + $this->_update_php_file($sk); + } + } + + $this->write_log("Results of updating all missing sections"); + } + + + //------------------------------------------------------------- + // RUN THE TOOL:VIEW CODE, View the code changes + //------------------------------------------------------------- + + function tool_view_code() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $code = $this->ff_html_files[ $IN['skinfile'] ][ $IN['func'] ]['section_content']; + + if ( $code == "" ) + { + $ADMIN->error("No code to show, please check the skin file, function name and skin ID"); + } + + $code = str_replace( "\n\n", "\n", str_replace( "\r", "\n", $code ) ); + + if ( $IN['type'] == 'php' ) + { + $code = 'function '.$IN['func'].'('.$this->ff_html_files[ $IN['skinfile'] ][ $IN['func'] ]['func_data'].') {'."\rglobal \$ibforums;\r".'return <<convert_tags($code); + } + + if ( phpversion() >= '4.2.0' ) + { + @error_reporting(0); + + $buffer = highlight_string( "", TRUE ); + $buffer = preg_replace( "#(?:<|<)\?php\r?(.*)\r?\?(?:>|>)#s", "\\1", $buffer ); + } + else + { + $buffer = htmlentities($code); + } + + + $SKIN->td_header[] = array( " ", "100%" ); + + $ADMIN->html .= $SKIN->start_table( "{$IN['skinfile']} -> {$IN['func']}" ); + + $ADMIN->html .= $SKIN->add_td_basic( "
    ".$buffer."
    ", "left"); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->print_popup(); + + } + + //------------------------------------------------------------- + // RUN THE TOOL:COMPARE, Show changes - do nothing + //------------------------------------------------------------- + + function tool_compare() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $ADMIN->page_detail .= "

    Please note: Updating template bits WILL overwrite your current template bits completely. If you have a heavily modified skin you may wish to use manually + update the template bit to ensure that the changes integrate with your skin. If you have a heavily customized skin, export a copy first for safety."; + + $ADMIN->page_detail .= "

    Database HTML Templates: {$this->db_skin['skname']}
    Invision Power Board Skin List: {$IN['list']}
    "; + + $ADMIN->html .= $SKIN->js_pop_win(); + + $changes = array(); + + //------------------------------ + // Find missing template bits + //------------------------------ + + $cnt = 0; + + foreach( $this->ff_html_files as $skin_file => $data ) + { + foreach( $this->ff_html_files[ $skin_file ] as $id => $ndata ) + { + if ( ! $this->db_html_files[ $skin_file ][ $ndata['func_name'] ] ) + { + $changes[ $skin_file ][ $ndata['func_name'] ] = $ndata['func_name']; + $cnt++; + } + } + } + + //----------------------------------------- + // Too many ch-ch-ch-changes? + //----------------------------------------- + + if ( $cnt > 100 ) + { + $ADMIN->page_detail .= "

    There are $cnt missing sections, this could mean a very out of date template set and updating it may not be successful."; + } + + $SKIN->td_header[] = array( "Skin Name" , "25%" ); + $SKIN->td_header[] = array( "Function" , "30%" ); + $SKIN->td_header[] = array( "Reason" , "20%" ); + $SKIN->td_header[] = array( "View Code" , "25%" ); + + $ADMIN->html .= $SKIN->start_table( "Missing sections in {$this->db_skin['skname']}" ); + + if ( count($changes) > 0 ) + { + foreach( $changes as $skin_file => $data ) + { + foreach( $changes[ $skin_file ] as $fun ) + { + $ADMIN->html .= $SKIN->add_td_row( array( "{$skin_file}", + $fun, + "Missing in local template", + "
    View PHP + · HTML
    " + ) ); + } + } + + $ADMIN->html .= $SKIN->add_td_basic( "Update Missing Sections", "center"); + } + else + { + $ADMIN->html .= $SKIN->add_td_basic( "No missing sections detected", "center"); + } + + $ADMIN->html .= $SKIN->end_table(); + + //----------------------------------------- + // Show bug fixes + //----------------------------------------- + + $look_up_func = array(); + $look_up_group = array(); + $look_up_final = array(); + + $SKIN->td_header[] = array( "Skin Name" , "40%" ); + $SKIN->td_header[] = array( "Function" , "20%" ); + $SKIN->td_header[] = array( "Reason" , "20%" ); + $SKIN->td_header[] = array( "View Code" , "20%" ); + + $ADMIN->html .= $SKIN->start_table( "Updates specified in upgrade document for {$IN['list']}" ); + + foreach( $this->ff_fixes as $skin_file => $data ) + { + foreach( $this->ff_fixes[ $skin_file ] as $section => $desc ) + { + if ( $desc['isnew'] == 1 ) + { + // Check to see if it's still missing... + + if ( $this->db_html_files[ $skin_file ][ $section ] ) + { + continue; + } + } + + $look_up_func[] = $section; + $look_up_group[] = $skin_file; + + $ADMIN->html .= $SKIN->add_td_row( array( "{$skin_file}", + $section, + $desc['desc'], + "
    View PHP + · HTML
    " + ) ); + } + } + + $ADMIN->html .= $SKIN->add_td_basic( "Update New Release Changes", "center"); + + $ADMIN->html .= $SKIN->end_table(); + + //----------------------------------------- + // PARSE IN UPDATE TIME + //----------------------------------------- + + if ( count($look_up_func) > 0 ) + { + $DB->query("SELECT updated, suid, group_name, func_name, section_content FROM ibf_skin_templates WHERE group_name IN('".implode( "','", $look_up_group )."') AND + func_name IN('".implode( "','", $look_up_func )."') AND set_id={$this->skin_id}"); + + while ( $r = $DB->fetch_row() ) + { + $ADMIN->html = str_replace( "", "
    Local version matches remote version?: ".$this->_is_it_or_isnt_it($r['section_content'], $this->ff_html_files[$r['group_name']][$r['func_name']]['section_content'])."", $ADMIN->html ); + $ADMIN->html = str_replace( "", "
    Local version last updated: ".$std->get_date( $r['updated'], 'SHORT' )."", $ADMIN->html ); + } + } + + $ADMIN->output(); + + } + + //------------------------------------------------------------- + // RUN THE TOOL + //------------------------------------------------------------- + + function run_tool() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $tool = trim($IN['tool']); + $skin = intval(trim($IN['skin'])); + $list = trim($IN['list']); + + //----------------------------------- + // GET DB STUFF + //----------------------------------- + + $DB->query("SELECT * FROM ibf_skin_templates WHERE set_id=$skin"); + + while ( $t = $DB->fetch_row() ) + { + $this->db_html_files[ $t['group_name'] ][ $t['func_name'] ] = array( 'func_name' => $t['func_name'], + 'func_data' => $t['func_data'], + 'section_content' => $t['section_content'] + ); + } + + $DB->query("SELECT * FROM ibf_tmpl_names WHERE skid=$skin"); + + $this->db_skin = $DB->fetch_row(); + + //----------------------------------- + // LOAD CACHE FILE + //----------------------------------- + + $file = ROOT_PATH . 'cache/'.$list; + + if ( ! file_exists( $file ) ) + { + $ADMIN->error("Cannot find $list in the directory, 'cache'"); + } + + $fh = fopen( $file, 'r' ); + $raw = @fread( $fh, filesize( $file ) ); + @fclose($fh); + + //----------------------------------- + // GET FIRST LINE CONF + //----------------------------------- + + preg_match( "#(.+?)#is", $raw, $match ); + + $first_cut = explode( '|||', $match[1] ); + + foreach( $first_cut as $d ) + { + list( $skin_file, $section_desc ) = explode( '&', $d ); + list( $section, $desc2 ) = explode( '|~|', $section_desc ); + list( $desc, $isnew ) = explode( '|^|', $desc2 ); + + $this->ff_fixes[ str_replace( '.php', '', $skin_file ) ][ $section ] = array( 'desc' => $desc, 'isnew' => $isnew ); + } + + //----------------------------------- + // PARSE FLAT FILE + //----------------------------------- + + preg_match_all( "/(.+?)/s", $raw, $match ); + + for ($i=0; $i < count($match[0]); $i++) + { + $skin_file = trim($match[1][$i]); + + $raw = trim($match[2][$i]); + + //-------------------------------- + // Remove everything up until the + // first \s*/", $line, $matches) ) + { + $func = trim($matches[1]); + $data = trim($matches[2]); + + if ($func != "") + { + $flag = $func; + + $master[$func] = array( 'func_name' => $func, + 'func_data' => $data, + 'section_content' => "" + ); + } + continue; + } + } + + if ( preg_match("/\s*?\s*?/", $line) ) + { + // We have found the end of the subbie.. + // Reset the flag and feed the next line. + + $flag = 0; + continue; + } + else + { + // Carry on feeding the HTML... + + if ( isset($master[$flag]['section_content']) ) + { + $master[$flag]['section_content'] .= $line."\n"; + continue; + } + } + } + + $this->ff_html_files[ $skin_file ] = $master; + } + + $this->skin_id = $skin; + + //----------------------------------- + // Do summink + //----------------------------------- + + switch( $tool ) + { + case 'updatemajor': + $this->tool_updatemajor(); + break; + case 'updateall': + $this->tool_updateall(); + break; + case 'updateupdates': + $this->tool_update_updates(); + break; + case 'viewcode': + $this->tool_view_code(); + break; + default: + $this->tool_compare(); + break; + } + } + + + //------------------------------------------------------------- + // IMPORT IPB PLIST FILE + //------------------------------------------------------------- + + function import_ipb_file() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $file = preg_replace( "/[^a-zA-Z0-9\-\_\.]/", "" , str_replace( "..", "", $IN['id'] ) ); + + if ( ! preg_match( "/\.plist$/", $file ) ) + { + $file = ""; + } + + if ( $file == "" ) + { + $ADMIN->error("No file passed or the file contained illegal characters, unable to proceed."); + } + + //-------------------------------------- + // Grab it you pervert! + //-------------------------------------- + + $grab_meh_bits = "http://www.invisionboard.com/download/skinlist.php?dl=".$file; + + $data = array(); + $contents = ""; + + if ( ! $data = @file( $grab_meh_bits ) ) + { + $ADMIN->error("There seems to be an error fetching the list from the Invision Power Board master server. This is either because the server is + unavailable or because your installation of PHP prohibits remote file reading. +
    Try going to our manual listing to download the files directly."); + } + + if ( count($data) < 1 ) + { + $ADMIN->error("There seems to be an error fetching the list from the Invision Power Board master server. This is either because the server is + unavailable or because your installation of PHP prohibits remote file reading. +
    Try going to our manual listing to download the files directly."); + } + + $contents = implode( '', $data ); + + //-------------------------------------- + // Write it to the local directory + //-------------------------------------- + + if ( $FH = fopen( ROOT_PATH . 'cache/' . $file, 'w' ) ) + { + fwrite( $FH, $contents ); + fclose( $FH ); + } + + @chmod( ROOT_PATH . 'cache/' . $file, 0777 ); + + //-------------------------------------- + // Pass back with thanks :D + //-------------------------------------- + + $this->list_current( "
  • $file imported successfully"); + + } + + + //------------------------------------------------------------- + // SHOW MAIN SCREEN + //------------------------------------------------------------- + + function list_current($msg="") + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $form_array = array(); + + + //-------------------------------------- + // Get PLIST from invisionboard.com server + //-------------------------------------- + + $file = 'http://www.invisionboard.com/download/skinlist.php'; + $emsg = "
  • There seems to be an error fetching the list from the Invision Power Board master server. This is either because the server is + unavailable or because your installation of PHP prohibits remote file reading. +
    Try going to our manual listing to download the files directly."; + + $err = 0; + $nocache = 0; + $data = array(); + + if ( $data = @file( $file ) ) + { + if ( count($data) < 1 ) + { + $err = 1; + } + else + { + $list = implode( '' , $data ); + + //------------------------------------------------- + // Divide the file up into different sections + //------------------------------------------------- + + preg_match_all( "#(.+?)#is", $list, $match ); + + $master = array(); + + for ($i=0; $i < count($match[0]); $i++) + { + $main = trim($match[1][$i]); + + preg_match( "#(.+?)#is", $main, $m2 ); + + $name = trim($m2[1]); + + preg_match( "#(.+?)#is", $main, $m2 ); + + $updatefile = trim($m2[1]); + + preg_match( "##is", $main, $m2 ); + + $time = trim($m2[1]); + + $master[ $updatefile ] = array( + 'name' => $name, + 'updatefile' => $updatefile, + 'time' => $time + ); + } + + if ( count( $master ) < 1 ) + { + $err = 1; + } + } + + } + else + { + $err = 1; + } + + //-------------------------------------- + // Cache directory present and writeable? + //-------------------------------------- + + if ( $err ) + { + $msg .= $emsg; + } + + if ( ! file_exists( ROOT_PATH . 'cache' ) ) + { + $msg .= "
  • Cannot find ./cache. Make sure this directory exists in your root IPB directory."; + $nocache = 1; + } + + if ( ! is_writeable( ROOT_PATH . 'cache' ) ) + { + $msg .= "
  • Cannot write ./cache. To automatically download into this directory, please make sure IPB has suitable permissions via CHMOD."; + } + + if ( $msg ) + { + $SKIN->td_header[] = array( " " , "100%" ); + + $ADMIN->html .= $SKIN->start_table( "Message" ); + + $ADMIN->html .= $SKIN->add_td_row( array( "
      ".$msg."
    " ) ); + + $ADMIN->html .= $SKIN->end_table(); + } + + //-------------------------------------- + // Cache exists, read from it + //-------------------------------------- + + $local = array(); + + if ( $nocache != 1 ) + { + $dh = opendir( ROOT_PATH . 'cache' ); + + while ( $file = readdir( $dh ) ) + { + if ( $file != "." && $file != ".." ) + { + if ( preg_match( "#\.plist$#", $file ) ) + { + $local[ $file ] = 1; + } + } + } + + closedir( $dh ); + } + + //-------------------------------------- + // if no error.... + //-------------------------------------- + + if ( $err != 1 ) + { + $SKIN->td_header[] = array( "Name" , "40%" ); + $SKIN->td_header[] = array( "Updated" , "30%" ); + $SKIN->td_header[] = array( "Download" , "30%" ); + + $ADMIN->html .= $SKIN->start_table( "REMOTE Package Lists from 'invisionboard.com'" ); + + foreach( $master as $name => $data ) + { + $ADMIN->html .= $SKIN->add_td_row( array( "{$data['name']}", + "
    {$data['time']}
    ", + "
    Download
    ", + ) ); + } + + $ADMIN->html .= $SKIN->end_table(); + } + + //-------------------------------------- + // Show local cache files... + //-------------------------------------- + + $tool_cache = array(); + + $SKIN->td_header[] = array( "Release" , "30%" ); + $SKIN->td_header[] = array( "File name" , "20%" ); + $SKIN->td_header[] = array( "Updated" , "30%" ); + $SKIN->td_header[] = array( "Delete" , "20%" ); + + $ADMIN->html .= $SKIN->start_table( "LOCAL Package Lists from 'cache'" ); + + if ( count($local) > 0 ) + { + foreach( $local as $name => $data ) + { + + $tool_cache[] = array( $name, $master[ $name ]['name'] ); + + @clearstatcache(); + + $stat = @stat( ROOT_PATH . 'cache/'.$name ); + + $mtime = gmdate( "jS M Y - H:i T", $stat[9] ); + + $ADMIN->html .= $SKIN->add_td_row( array( "{$master[ $name ]['name']}", + "$name", + "
    $mtime
    ", + "
    Delete
    ", + ) ); + } + + } + else + { + $ADMIN->html .= $SKIN->add_td_basic( "No skin file lists found in the 'cache' directory", "center"); + } + + $ADMIN->html .= $SKIN->end_table(); + + //-------------------------------------- + // Show tool box + //-------------------------------------- + + $tools = array(); + $skins = array(); + $tools[] = array( 'compare' , 'Compare and show result, don\'t alter skin'); + $tools[] = array( 'updatemajor', 'Update by adding ONLY new sections' ); + $tools[] = array( 'updateall' , 'Update by changing ALL changed sections'); + + $DB->query("SELECT t.skid, t.skname from ibf_tmpl_names t ORDER BY t.skname ASC"); + + while ( $r = $DB->fetch_row() ) + { + $skins[] = array( $r['skid'], $r['skname'] ); + } + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'act' , 'skinfix' ), + 2 => array( 'code' , 'runtool' ), + 3 => array( 'tool' , 'compare' ), + ) ); + + $SKIN->td_header[] = array( " " , "60%" ); + $SKIN->td_header[] = array( " " , "40%" ); + + $ADMIN->html .= $SKIN->start_table( "Skin Version Control" ); + + if ( count($local) > 0 ) + { + + $ADMIN->html .= $SKIN->add_td_row( array( "Use Package List...", + $SKIN->form_dropdown( 'list', $tool_cache ) + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "To compare changes against HTML template set...", + $SKIN->form_dropdown( 'skin', $skins ) + ) ); + + + } + else + { + $ADMIN->html .= $SKIN->add_td_basic( "No skin file lists found in the 'cache' directory, this section will not activate until you have downloaded some files", "center"); + } + + $ADMIN->html .= $SKIN->end_form("Show me the comparison"); + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + //+------------------------------- + + $ADMIN->output(); + + } + + + + + + + function convert_tags($t="") + { + if ($t == "") + { + return ""; + } + + $t = preg_replace( "/{?\\\$ibforums->base_url}?/" , "{ibf.script_url}" , $t ); + $t = preg_replace( "/{?\\\$ibforums->session_id}?/" , "{ibf.session_id}" , $t ); + $t = preg_replace( "/{?\\\$ibforums->skin\['?(\w+)'?\]}?/" , "{ibf.skin.\\1}" , $t ); + $t = preg_replace( "/{?\\\$ibforums->lang\['?(\w+)'?\]}?/" , "{ibf.lang.\\1}" , $t ); + $t = preg_replace( "/{?\\\$ibforums->vars\['?(\w+)'?\]}?/" , "{ibf.vars.\\1}" , $t ); + $t = preg_replace( "/{?\\\$ibforums->member\['?(\w+)'?\]}?/" , "{ibf.member.\\1}" , $t ); + + // Make some tags safe.. + + $t = preg_replace( "/\{ibf\.vars\.(sql_driver|sql_host|sql_database|sql_pass|sql_user|sql_port|sql_tbl_prefix|smtp_host|smtp_port|smtp_user|smtp_pass|html_dir|base_dir|upload_dir)\}/", "" , $t ); + + return $t; + + } + + function unconvert_tags($t="") + { + if ($t == "") + { + return ""; + } + + // Make some tags safe.. + + $t = preg_replace( "/\{ibf\.vars\.(sql_driver|sql_host|sql_database|sql_pass|sql_user|sql_port|sql_tbl_prefix|smtp_host|smtp_port|smtp_user|smtp_pass|html_dir|base_dir|upload_dir)\}/", "" , $t ); + + $t = preg_replace( "/{ibf\.script_url}/i" , '{$ibforums->base_url}' , $t); + $t = preg_replace( "/{ibf\.session_id}/i" , '{$ibforums->session_id}' , $t); + $t = preg_replace( "/{ibf\.skin\.(\w+)}/" , '{$ibforums->skin[\''."\\1".'\']}' , $t); + $t = preg_replace( "/{ibf\.lang\.(\w+)}/" , '{$ibforums->lang[\''."\\1".'\']}' , $t); + $t = preg_replace( "/{ibf\.vars\.(\w+)}/" , '{$ibforums->vars[\''."\\1".'\']}' , $t); + $t = preg_replace( "/{ibf\.member\.(\w+)}/" , '{$ibforums->member[\''."\\1".'\']}' , $t); + + return $t; + + } + + + //------------------------------------------------------------- + // WRITE OUT RESULTS + //------------------------------------------------------------- + + function write_log($title="Results") + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $SKIN->td_header[] = array( " " , "100%" ); + + $ADMIN->html .= $SKIN->start_table( $title ); + + $ADMIN->html .= $SKIN->add_td_row( array( "
    • ".implode( '
    • ', $this->log )."
    " ) ); + + $ADMIN->html .= $SKIN->add_td_basic( "Skin Version Control Home", "center"); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->output(); + + } + + //------------------------------------------------------------- + // @ UPDATE DB WITH TEMPLATE CHANGES + //------------------------------------------------------------- + + function _update_section($skin_file, $func_name, $func_data, $func_content) + { + global $IN, $DB, $std, $INFO; + + $skin_file = str_replace( ".php", "", $skin_file ); + + if ( ! $this->skin_id ) + { + $this->log[] = "Cannot process, Skin ID not present, aborting template update for $skin_file / $func_name"; + return; + } + + //--------------------------------------- + // Can we write? YES WE CAN! + // Can we get car credit? YES WE CAN! + // Can we copy the 'Kings of Leon' CD to our computers? NO WE CAN'T + // Shall we boycott the 'Kings of Leon' CD? YES WE WILL! + //--------------------------------------- + + $file = ROOT_PATH . 'Skin/s'. $this->skin_id.'/'.$skin_file.'.php'; + + If ( $INFO['safe_mode_skins'] != 1 ) + { + if ( ! is_writeable( $file ) ) + { + if ( file_exists( $file ) ) + { + $this->log[] = "Cannot write to '$file' please check CHMOD permissions. If you are running PHP in safe mode, make sure you have safe mode skins enabled."; + return; + } + } + } + + //--------------------------------------- + // Delete old template from DB + //--------------------------------------- + + $DB->query("DELETE FROM ibf_skin_templates WHERE set_id={$this->skin_id} AND group_name='$skin_file' AND func_name='$func_name'"); + + //--------------------------------------- + // Insert meh new record + // I SAY BO! You Say SELECTA! + // Can I get a reeeeeeewind?!?! + //--------------------------------------- + + $dbs = $DB->compile_db_insert_string( array( + 'set_id' => $this->skin_id, + 'group_name' => $skin_file, + 'section_content' => str_replace( '\\n' , '\\\\\\n', $func_content ), + 'func_name' => $func_name, + 'func_data' => $func_data, + 'updated' => time() + ) ); + + $DB->query("INSERT INTO ibf_skin_templates ({$dbs['FIELD_NAMES']}) VALUES({$dbs['FIELD_VALUES']})"); + + $this->log[] = "$skin_file -> $func_name successfully updated"; + return; + } + + //------------------------------------------------------------- + // @ UPDATE A PHP FILE + //------------------------------------------------------------- + + function _update_php_file($group) + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $group = str_replace( ".php", "", $group ); + + $skin_dir = ROOT_PATH."Skin/s".$this->skin_id; + + //------------------------------------------- + // If we are not using safe mode skins, lets + // run away! + //------------------------------------------- + + if ( $INFO['safe_mode_skins'] == 1 OR SAFE_MODE_ON == 1 ) + { + $this->log[] = "Safe mode skins enabled, update on {$skin_file}.php not required, returning..."; + return; + } + + $final = "<"."?php\n\n". + "class $group {\n\n"; + + + $DB->query("SELECT * FROM ibf_skin_templates WHERE set_id={$this->skin_id} AND group_name='$group'"); + + while( $data = $DB->fetch_row() ) + { + + $final .= "\n\nfunction ".trim($data['func_name'])."(".trim($data['func_data']).") {\n". + "global \$ibforums;\n". + "return <<"; + + if ($fh = fopen( $skin_dir."/".$group.".php", 'w' ) ) + { + fwrite($fh, $final, strlen($final) ); + fclose($fh); + @chmod( $skin_dir."/".$group.".php", 0777 ); + + $this->log[] = "{$group}.php updated successfully"; + } + else + { + $this->log[] = "Could not save information to {$group}.php, please ensure that the CHMOD permissions are correct and the directory allows file creation."; + } + + return TRUE; + } + + //------------------------------------------------------------- + // @ DETERMINE CHANGES + //------------------------------------------------------------- + + function _is_it_or_isnt_it($remote, $local) + { + $remote = preg_replace( "/[\s\t\n\r]/s", "", strtolower($remote) ); + $local = preg_replace( "/[\s\t\n\r]/s", "", strtolower($local) ); + + $yes = "Yes"; + $no = "no"; + + return $remote == $local ? $yes : $no; + + } + + + + +} + + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_spiderlogs.php b/upload/sources/Admin/ad_spiderlogs.php new file mode 100644 index 00000000..ba4d56f9 --- /dev/null +++ b/upload/sources/Admin/ad_spiderlogs.php @@ -0,0 +1,281 @@ + Spider (MAN) Logs +| > Module written by Matt Mecham +| > Date started: 28th May 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + +$idx = new ad_spiderlogs(); + + +class ad_spiderlogs { + + var $base_url; + + function ad_spiderlogs() { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + $ADMIN->nav[] = array( 'act=spiderlog', 'Search Engine Spider Logs' ); + + //--------------------------------------- + + switch($IN['code']) + { + + case 'view': + $this->view(); + break; + + case 'remove': + $this->remove(); + break; + + + //------------------------- + default: + $this->list_current(); + break; + } + + } + + //--------------------------------------------- + // Remove archived files + //--------------------------------------------- + + function view() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $start = $IN['st'] ? $IN['st'] : 0; + + $ADMIN->page_detail = "Viewing all actions by a search engine spider"; + $ADMIN->page_title = "Search Engine Logs Manager"; + + $botty = urldecode($IN['bid']); + + if ($IN['search_string'] == "") + { + $DB->query("SELECT COUNT(sid) as count FROM ibf_spider_logs WHERE bot='$botty'"); + + $row = $DB->fetch_row(); + + $row_count = $row['count']; + + $query = "&act=spiderlog&bid={$IN['bid']}&code=view"; + + $DB->query("SELECT * FROM ibf_spider_logs WHERE bot='$botty' ORDER BY entry_date DESC LIMIT $start, 20"); + + } + else + { + $IN['search_string'] = urldecode($IN['search_string']); + + $DB->query("SELECT COUNT(sid) as count FROM ibf_spider_logs WHERE query_string LIKE '%{$IN['search_string']}%'"); + + $row = $DB->fetch_row(); + + $row_count = $row['count']; + + $query = "&act=spiderlog&code=view&search_string=".urlencode($IN['search_string']); + + $DB->query("SELECT * FROM ibf_spider_logs WHERE query_string LIKE '%{$IN['search_string']}%' ORDER BY entry_date DESC LIMIT $start, 20"); + + + + } + + $links = $std->build_pagelinks( array( 'TOTAL_POSS' => $row_count, + 'PER_PAGE' => 20, + 'CUR_ST_VAL' => $start, + 'L_SINGLE' => "Single Page", + 'L_MULTI' => "Pages: ", + 'BASE_URL' => $ADMIN->base_url.$query, + ) + ); + + $ADMIN->page_detail = "You may view and remove actions performed by a search engine bot"; + $ADMIN->page_title = "Search Engine Logs Manager"; + + //+------------------------------- + + $SKIN->td_header[] = array( "Bot Name" , "15%" ); + $SKIN->td_header[] = array( "Query String" , "15%" ); + $SKIN->td_header[] = array( "Time of action" , "20%" ); + $SKIN->td_header[] = array( "IP address" , "10%" ); + + $ADMIN->html .= $SKIN->start_table( "Saved Search Engine Logs" ); + $ADMIN->html .= $SKIN->add_td_basic($links, 'right', 'pformstrip'); + + if ( $DB->get_num_rows() ) + { + while ( $row = $DB->fetch_row() ) + { + + $ADMIN->html .= $SKIN->add_td_row( array( "".$INFO[ 'sp_'.$row['bot'] ]."", + "{$row['query_string']}", + $ADMIN->get_date( $row['entry_date'], 'LONG' ), + "{$row['ip_address']}", + ) ); + + } + } + else + { + $ADMIN->html .= $SKIN->add_td_basic("
    No results
    "); + } + + $ADMIN->html .= $SKIN->add_td_basic($links, 'right', 'pformstrip'); + + $ADMIN->html .= $SKIN->end_table(); + + + //+------------------------------- + //+------------------------------- + + $ADMIN->output(); + + } + + //--------------------------------------------- + // Remove archived files + //--------------------------------------------- + + function remove() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + if ($IN['bid'] == "") + { + $ADMIN->error("You did not select a bot to remove by!"); + } + + $botty = urldecode($IN['bid']); + + $DB->query("DELETE FROM ibf_spider_logs WHERE bot='$botty'"); + + $ADMIN->save_log("Removed Search Engine Logs"); + + $std->boink_it($ADMIN->base_url."&act=spiderlog"); + exit(); + + + } + + + + + + //------------------------------------------------------------- + // SHOW ALL LANGUAGE PACKS + //------------------------------------------------------------- + + function list_current() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $form_array = array(); + + $ADMIN->page_detail = "You may view and remove entries in your spider engine logs"; + $ADMIN->page_title = "Search Engine Logs Manager"; + + //+------------------------------- + + $SKIN->td_header[] = array( "Bot Name" , "20%" ); + $SKIN->td_header[] = array( "Hits" , "20%" ); + $SKIN->td_header[] = array( "Started" , "20%" ); + $SKIN->td_header[] = array( "View all by bot" , "20%" ); + $SKIN->td_header[] = array( "Remove all by bot" , "20%" ); + + $ADMIN->html .= $SKIN->start_table( "Saved Search Engine Spider Logs" ); + + $DB->query("SELECT count(*) as cnt, bot, entry_date, query_string FROM `ibf_spider_logs` group by bot order by entry_date DESC"); + + while ( $r = $DB->fetch_row() ) + { + + $url_butt = urlencode($r['bot']); + + $ADMIN->html .= $SKIN->add_td_row( array( $INFO[ 'sp_'.$r['bot'] ], + "
    {$r['cnt']}
    ", + $ADMIN->get_date( $r['entry_date'], 'SHORT' ), + "
    View
    ", + "
    Remove
    ", + ) ); + } + + + + $ADMIN->html .= $SKIN->end_table(); + + + //+------------------------------- + //+------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'view' ), + 2 => array( 'act' , 'spiderlog' ), + ) ); + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + $ADMIN->html .= $SKIN->start_table( "Search Search Engine Logs" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Search for..." , + $SKIN->form_input( "search_string").'... in the query string' + ) ); + + $ADMIN->html .= $SKIN->end_form("Search"); + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + //+------------------------------- + + $ADMIN->output(); + + } + + + +} + + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_statistics.php b/upload/sources/Admin/ad_statistics.php index 05715141..daf9be74 100644 --- a/upload/sources/Admin/ad_statistics.php +++ b/upload/sources/Admin/ad_statistics.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Statistical functions @@ -22,7 +24,11 @@ */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_stats(); @@ -34,7 +40,20 @@ class ad_stats { function ad_stats() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- $this->month_names = array( 1 => 'January', 'February', 'March' , 'April' , 'May' , 'June', 'July' , 'August' , 'September' , 'October', 'November', 'December' @@ -101,7 +120,7 @@ class ad_stats { function show_views() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Statistic Center Results"; @@ -175,7 +194,14 @@ class ad_stats { foreach( $results as $pOOp => $data ) { - $img_width = intval( ($data['result_count'] / $max_result) * 100 - 8) . "%"; + $img_width = intval( ($data['result_count'] / $max_result) * 100 - 8); + + if ($img_width < 1) + { + $img_width = 1; + } + + $img_width .= '%'; $ADMIN->html .= $SKIN->add_td_row( array( $data['result_name'], "", @@ -206,7 +232,7 @@ class ad_stats { function result_screen($mode='reg') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Statistic Center Results"; @@ -342,7 +368,14 @@ class ad_stats { foreach( $results as $pOOp => $data ) { - $img_width = intval( ($data['result_count'] / $max_result) * 100 - 8) . "%"; + $img_width = intval( ($data['result_count'] / $max_result) * 100 - 8); + + if ($img_width < 1) + { + $img_width = 1; + } + + $img_width .= '%'; if ($IN['timescale'] == 'weekly') { @@ -382,7 +415,7 @@ class ad_stats { function main_screen($mode='reg') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $ADMIN->page_title = "Statistic Center"; diff --git a/upload/sources/Admin/ad_stylesets.php b/upload/sources/Admin/ad_stylesets.php index 2fd42483..5b8fcbfb 100644 --- a/upload/sources/Admin/ad_stylesets.php +++ b/upload/sources/Admin/ad_stylesets.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Help Control functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -31,7 +37,20 @@ class ad_settings { var $base_url; function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -79,7 +98,7 @@ class ad_settings { function export() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -143,7 +162,7 @@ class ad_settings { $archive_dir = $INFO['base_dir']."archive_out"; $images_dir = $INFO['base_dir']."style_images/".$row['img_dir']; - require $root_dir."sources/lib/tar.php"; + require ROOT_PATH."sources/lib/tar.php"; if (!is_dir($archive_dir)) { @@ -234,6 +253,11 @@ class ad_settings { { $mrow['macro_replace'] = "*UNASSIGNED*"; } + + // Fix newlines.. + + $mrow['macro_replace'] = str_replace( "\n", '\n', str_replace("\r", "\n", $mrow['macro_replace'] ) ); + $file_content .= $mrow['macro_value']."~=~".$mrow['macro_replace']."\n"; } @@ -361,7 +385,7 @@ class ad_settings { function mem_skins() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; $DB->query("SELECT sid FROM ibf_skins WHERE uid='".$IN['oid']."'"); $old = $DB->fetch_row(); @@ -388,7 +412,7 @@ class ad_settings { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -459,7 +483,7 @@ class ad_settings { function save_skin( $type='add' ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -477,11 +501,12 @@ class ad_settings { } - $barney = array( 'sname' => stripslashes($HTTP_POST_VARS['sname']), + $barney = array( 'sname' => $std->txt_stripslashes($HTTP_POST_VARS['sname']), 'set_id' => $IN['template'], 'tmpl_id' => $IN['wrapper'], - 'img_dir' => $IN['img_dir'], + 'img_dir' => $IN['img_dir'], 'css_id' => $IN['css'], + 'css_method' => $IN['css_method'], 'hidden' => $IN['hidden'], 'default_set'=> $IN['default_set'], 'macro_id' => $IN['macro_id'], @@ -533,7 +558,7 @@ class ad_settings { function do_form( $type='add' ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- @@ -625,7 +650,15 @@ class ad_settings { } closedir( $dh ); + //+------------------------------- + if ( file_exists( ROOT_PATH."cache" ) ) + { + if ( is_writeable( ROOT_PATH."cache" ) ) + { + $cssextra = $SKIN->form_dropdown('css_method', array( 0 => array( 'inline', 'Inline'), 1 => array( 'external', 'External' ) ), $row['css_method']); + } + } //+------------------------------- @@ -672,7 +705,7 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Use Stylesheet:", - $SKIN->form_dropdown('css', $css, $row['css_id']), + $SKIN->form_dropdown('css', $css, $row['css_id']).' '.$cssextra, ) ); $ADMIN->html .= $SKIN->add_td_row( array( @@ -687,7 +720,7 @@ class ad_settings { ) ); $ADMIN->html .= $SKIN->add_td_row( array( - "Set as default skin set?
    Used for unallocted forum and member skins", + "Set as default skin set?
    Used for unallocated forum and member skins", $SKIN->form_yes_no('default_set', $row['default_set']), ) ); @@ -709,7 +742,7 @@ class ad_settings { function list_sets() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); @@ -734,16 +767,6 @@ class ad_settings { } - $SKIN->td_header[] = array( "Title" , "40%" ); - $SKIN->td_header[] = array( "No. Members" , "20%" ); - $SKIN->td_header[] = array( "Export" , "10%" ); - $SKIN->td_header[] = array( "Edit" , "10%" ); - $SKIN->td_header[] = array( "Remove" , "10%" ); - $SKIN->td_header[] = array( "Hidden" , "5%" ); - $SKIN->td_header[] = array( "Default" , "5%" ); - - //+------------------------------- - $DB->query("select ibf_skins.*, count(ibf_members.id) as mcount from ibf_skins left join ibf_members on(ibf_members.skin=ibf_skins.sid) where (ibf_members.skin is not null or ibf_skins.default_set = 1) group by ibf_skins.sid order by ibf_skins.sname"); $used_ids = array(); @@ -751,6 +774,16 @@ class ad_settings { if ( $DB->get_num_rows() ) { + $SKIN->td_header[] = array( "Title" , "40%" ); + $SKIN->td_header[] = array( "No. Members" , "20%" ); + $SKIN->td_header[] = array( "Export" , "10%" ); + $SKIN->td_header[] = array( "Edit" , "10%" ); + $SKIN->td_header[] = array( "Remove" , "10%" ); + $SKIN->td_header[] = array( "Hidden" , "5%" ); + $SKIN->td_header[] = array( "Default" , "5%" ); + + //+------------------------------- + $ADMIN->html .= $SKIN->start_table( "Current Skins Used by Members" ); while ( $r = $DB->fetch_row() ) @@ -778,7 +811,13 @@ class ad_settings { $default = "X"; } - $ADMIN->html .= $SKIN->add_td_row( array( "".stripslashes($r['sname'])."$extra", + $editlist = "
    Edit: Wrapper + · HTML + · CSS + · Colours + · Macros"; + + $ADMIN->html .= $SKIN->add_td_row( array( "".$std->txt_stripslashes($r['sname'])."$extra".$editlist, "
    ".$r['mcount']."
    ", "
    Export
    ", "
    Edit
    ", @@ -796,28 +835,35 @@ class ad_settings { $ADMIN->html .= $SKIN->end_table(); } - if ( count($used_ids) > 0 ) + if ( count($used_ids) < 1 ) + { + $DB->query("SELECT * FROM ibf_skins"); + + $left_one = $DB->get_num_rows(); + } + else if ( count($used_ids) > 0 ) { - $DB->query("SELECT * FROM ibf_skins WHERE uid NOT IN(".implode(",",$used_ids).")"); + + $left_two = $DB->get_num_rows(); + } - if ( $DB->get_num_rows() ) + if ( $left_one > 0 or $left_two > 0 ) + { + $SKIN->td_header[] = array( "Title" , "60%" ); + $SKIN->td_header[] = array( "Export" , "10%" ); + $SKIN->td_header[] = array( "Edit" , "10%" ); + $SKIN->td_header[] = array( "Remove" , "10%" ); + $SKIN->td_header[] = array( "Hidden" , "5%" ); + $SKIN->td_header[] = array( "Default", "5%" ); + + $ADMIN->html .= $SKIN->start_table( "Skin Sets not used by Members" ); + + while ( $r = $DB->fetch_row() ) { - - $SKIN->td_header[] = array( "Title" , "60%" ); - $SKIN->td_header[] = array( "Export" , "10%" ); - $SKIN->td_header[] = array( "Edit" , "10%" ); - $SKIN->td_header[] = array( "Remove" , "10%" ); - $SKIN->td_header[] = array( "Hidden" , "5%" ); - $SKIN->td_header[] = array( "Default", "5%" ); - - $ADMIN->html .= $SKIN->start_table( "Skin Sets not used by Members" ); - - while ( $r = $DB->fetch_row() ) - { - - $extra = ""; + $extra = ""; + if ( is_array($forum_skins[ $r['sid'] ]) ) { if ( count($forum_skins[ $r['sid'] ]) > 0 ) @@ -839,23 +885,28 @@ class ad_settings { $default = "X"; } + $editlist = "
    Edit: Wrapper + · HTML + · CSS + · Colours + · Macros"; + $ADMIN->html .= $SKIN->js_checkdelete(); - $ADMIN->html .= $SKIN->add_td_row( array( "".stripslashes($r['sname'])."$extra", + $ADMIN->html .= $SKIN->add_td_row( array( "".$std->txt_stripslashes($r['sname'])."$extra".$editlist, "
    Export
    ", "
    Edit
    ", "
    Remove
    ", "
    $hidden
    ", "
    $default
    ", ) ); - - $form_array[] = array( $r['uid'], $r['sname'] ); - - } - - $ADMIN->html .= $SKIN->end_table(); + + $form_array[] = array( $r['uid'], $r['sname'] ); + } + + $ADMIN->html .= $SKIN->end_table(); } //+------------------------------- diff --git a/upload/sources/Admin/ad_stylesheets.php b/upload/sources/Admin/ad_stylesheets.php index fe5c8d54..2fc77510 100644 --- a/upload/sources/Admin/ad_stylesheets.php +++ b/upload/sources/Admin/ad_stylesheets.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > CSS management functions @@ -21,6 +23,11 @@ +-------------------------------------------------------------------------- */ +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -30,7 +37,20 @@ class ad_settings { var $base_url; function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -80,12 +100,16 @@ class ad_settings { $this->easy_edit(); break; - case 'editcomments': - $this->edit_comments(); + case 'doresync': + $this->do_resynch(); + break; + + case 'colouredit': + $this->colouredit(); break; - case 'doeditcomments': - $this->do_edit_comments(); + case 'docolour': + $this->do_colouredit(); break; //------------------------- @@ -98,13 +122,9 @@ class ad_settings { //+------------------------------- - - - //+------------------------------- - - function do_edit_comments() + function do_resynch() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -122,61 +142,110 @@ class ad_settings { $ADMIN->error("Could not query the CSS details from the database"); } - $DB->query("UPDATE ibf_css SET css_comments='{$IN['comments']}' WHERE cssid='".$IN['id']."'"); + if ( $IN['favour'] == 'cache' ) + { + $cache_file = ROOT_PATH."cache/css_".$IN['id'].".css"; + + if ( file_exists( $cache_file ) ) + { + $FH = fopen( $cache_file, 'r' ); + $cache_data = fread( $FH, filesize($cache_file) ); + fclose($FH); + } + else + { + $ADMIN->error("Could not locate cached CSS file @ $cache_file"); + } + + $dbr = $DB->compile_db_update_string( array( 'css_text' => $cache_data ) ); + + $DB->query("UPDATE ibf_css SET $dbr WHERE cssid='".$IN['id']."'"); + } + else + { + $cache_file = ROOT_PATH."cache/css_".$IN['id'].".css"; + + $FH = fopen( $cache_file, 'w' ); + fputs( $FH, $cssinfo['css_text'], strlen($cssinfo['css_text']) ); + fclose($FH); + } - $ADMIN->done_screen("Comments Updated", "Manage Style Sheets", "act=style" ); + if ( $IN['return'] != 'colouredit' ) + { + $this->do_form('edit'); + } + else + { + $this->colouredit(); + } } + + //+------------------------------- - function edit_comments() + function resync_splash($db_length, $cache_length, $cache_mtime, $db_mtime, $id, $return="") { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; - - //+------------------------------- - - if ($IN['id'] == "") - { - $ADMIN->error("You must specify an existing wrapper ID, go back and try again"); - } - - //+------------------------------- - - $DB->query("SELECT cssid, css_text, css_name, css_comments FROM ibf_css WHERE cssid='".$IN['id']."'"); - - if ( ! $cssinfo = $DB->fetch_row() ) - { - $ADMIN->error("Could not query the CSS details from the database"); - } + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- - $ADMIN->page_detail = "Please enter or edit the comments below"; - $ADMIN->page_title = "Edit Comments for Style Sheet '{$cssinfo['css_name']}'"; + $ADMIN->page_detail = "A mismatch has been found between the cached style sheet and the style sheet stored in the database"; + $ADMIN->page_title = "Resynchronise Style Sheet"; //+------------------------------- - $SKIN->td_header[] = array( "CSS" , "40%" ); - $SKIN->td_header[] = array( "Comment" , "60%" ); + $SKIN->td_header[] = array( " " , "50%" ); + $SKIN->td_header[] = array( " " , "50%" ); //+------------------------------- - $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'doeditcomments' ), - 2 => array( 'act' , 'style' ), - 3 => array( 'id' , $IN['id'] ), + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'doresync' ), + 2 => array( 'act' , 'style' ), + 3 => array( 'id' , $id ), + 4 => array( 'return', $return ), ) ); + + $favour = 'db'; - $ADMIN->html .= $SKIN->start_table( "Edit Comments" ); + $ADMIN->html .= $SKIN->start_table( "Resynch CSS before editing..." ); + if ( intval($cache_mtime) > intval($db_mtime) ) + { + $ADMIN->html .= $SKIN->add_td_row( array( + "CSS in database last updated: ".$ADMIN->get_date($db_mtime, 'LONG'), + "CSS in database, # characters: $db_length", + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( + "CSS in CACHE last updated: ".$ADMIN->get_date($cache_mtime, 'LONG')."", + "CSS in CACHE, # characters: $cache_length", + ) ); + $favour = 'cache'; + + } + else + { + $ADMIN->html .= $SKIN->add_td_row( array( + "CSS in database last updated: ".$ADMIN->get_date($db_mtime, 'LONG')."", + "CSS in database, # characters: $db_length", + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( + "CSS in CACHE last updated: ".$ADMIN->get_date($cache_mtime, 'LONG'), + "CSS in CACHE, # characters: $cache_length", + ) ); + } $ADMIN->html .= $SKIN->add_td_row( array( - "Edit the comments for this stylesheet", - $SKIN->form_textarea( "comments", str_replace("
    ", "\n", $cssinfo['comments']) ) - ) ); - - $ADMIN->html .= $SKIN->add_td_basic("Back to: Manage Style Sheets -> Edit Options", "center", "title"); + "Resynchronise using....", + $SKIN->form_dropdown( 'favour', array( + 0 => array( 'cache', 'Overwrite database version with cached version'), + 1 => array( 'db' , 'Update cached version from the database' ), + ), $favour ), + ) ); - $ADMIN->html .= $SKIN->end_form("Edit the comments"); + $ADMIN->html .= $SKIN->end_form("Resynchronise"); $ADMIN->html .= $SKIN->end_table(); @@ -191,73 +260,12 @@ class ad_settings { // ADD / EDIT WRAPPERS //------------------------------------------------------------- - function edit_splash() - { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; - - //+------------------------------- - - if ($IN['id'] == "") - { - $ADMIN->error("You must specify an existing wrapper ID, go back and try again"); - } - - //+------------------------------- - - $DB->query("SELECT cssid, css_text, css_name FROM ibf_css WHERE cssid='".$IN['id']."'"); - - if ( ! $cssinfo = $DB->fetch_row() ) - { - $ADMIN->error("Could not query the CSS details from the database"); - } - - //+------------------------------- - $ADMIN->page_detail = "Please select your editing option."; - $ADMIN->page_title = "Edit Style Sheet '{$cssinfo['css_name']}'"; - - - //+------------------------------- - - $SKIN->td_header[] = array( "Option" , "40%" ); - $SKIN->td_header[] = array( "Description" , "60%" ); - - //+------------------------------- - - $ADMIN->html .= $SKIN->start_table( "Choose an option" ); - - $ADMIN->html .= $SKIN->add_td_row( array( - "CSS Editing", - "Edit the stylesheet as a complete resource in a similar environment as a text editor", - ) ); - - - $ADMIN->html .= $SKIN->add_td_row( array( - "Upload a stylesheet", - "Upload a stylesheet from your hard drive to replace the one stored in the database", - ) ); - - $ADMIN->html .= $SKIN->add_td_row( array( - "Edit Comments", - "Edit the comments that indicate where the CSS definitions are used in the templates", - ) ); - - - $ADMIN->html .= $SKIN->add_td_basic("Back to: Manage Style Sheets", "center", "title"); - - $ADMIN->html .= $SKIN->end_table(); - - //+------------------------------- - //+------------------------------- - - $ADMIN->output(); - - } function css_upload($type='new') { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; $FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name']; $FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size']; @@ -319,9 +327,24 @@ class ad_settings { 'css_name' => $real_name, 'css_text' => $css, 'css_comments' => $comments, + 'updated' => time(), ) ); + $DB->query("INSERT INTO ibf_css (".$dbs['FIELD_NAMES'].") VALUES(".$dbs['FIELD_VALUES'].")"); + + $new_id = $DB->get_insert_id(); + + if ( file_exists( ROOT_PATH."cache" ) ) + { + if ( is_writeable( ROOT_PATH."cache" ) ) + { + $FH = fopen( ROOT_PATH."cache/css_".$new_id.".css", 'w' ); + fputs( $FH, $css, strlen($css) ); + fclose($FH); + } + } + $ADMIN->done_screen("Stylesheet uploaded", "Manage Style Sheets", "act=style" ); } @@ -333,7 +356,7 @@ class ad_settings { function optimize() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -377,7 +400,7 @@ class ad_settings { if ( count($parsed) < 1) { - $ADMIN->error("The stylesheet is in a format that Invision Board cannot understand, no optimization done."); + $ADMIN->error("The stylesheet is in a format that Invision Power Board cannot understand, no optimization done."); } // Clean them up @@ -414,7 +437,7 @@ class ad_settings { if ($final_size < 1000) { - $ADMIN->error("The stylesheet is in a format that Invision Board cannot understand, no optimization done."); + $ADMIN->error("The stylesheet is in a format that Invision Power Board cannot understand, no optimization done."); } // Update the DB @@ -431,7 +454,7 @@ class ad_settings { $pc_saved = sprintf( "%.2f", ($saved / $orig_size) * 100); } - $ADMIN->done_screen("Stylesheet updated
    Characters Saved: $saved ($pc_saved %)", "Manage Style Sheets", "act=style" ); + $ADMIN->done_screen("Stylesheet updated: Characters Saved: $saved ($pc_saved %)", "Manage Style Sheets", "act=style" ); @@ -442,7 +465,7 @@ class ad_settings { function export() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -478,7 +501,7 @@ class ad_settings { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -490,6 +513,11 @@ class ad_settings { $DB->query("DELETE FROM ibf_css WHERE cssid='".$IN['id']."'"); + if ( file_exists( ROOT_PATH."cache/css_".$IN['id'].".css" ) ) + { + @unlink( ROOT_PATH."cache/css_".$IN['id'].".css" ); + } + $std->boink_it($SKIN->base_url."&act=style"); exit(); @@ -505,7 +533,7 @@ class ad_settings { function save_wrapper( $type='add' ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -532,6 +560,7 @@ class ad_settings { $barney = array( 'css_name' => stripslashes($HTTP_POST_VARS['name']), 'css_text' => $css, + 'updated' => time(), ); if ($type == 'add') @@ -542,6 +571,21 @@ class ad_settings { $new_id = $DB->get_insert_id(); + //-------------------------------------------- + // Update cache? + //-------------------------------------------- + + if ( file_exists( ROOT_PATH."cache" ) ) + { + if ( is_writeable( ROOT_PATH."cache" ) ) + { + $FH = fopen( ROOT_PATH."cache/css_".$new_id.".css", 'w' ); + fputs( $FH, $css, strlen($css) ); + fclose($FH); + } + } + + $std->boink_it($SKIN->base_url."&act=style"); exit(); @@ -553,10 +597,40 @@ class ad_settings { $DB->query("UPDATE ibf_css SET $db_string WHERE cssid='".$IN['id']."'"); + //-------------------------------------------- + // Update cache? + //-------------------------------------------- + + $extra = "Cache file updated"; + + if ( file_exists( ROOT_PATH."cache" ) ) + { + if ( is_writeable( ROOT_PATH."cache" ) ) + { + if ( $FH = @fopen( ROOT_PATH."cache/css_".$IN['id'].".css", 'w' ) ) + { + @fputs( $FH, $css, strlen($css) ); + @fclose($FH); + } + else + { + $extra = "Cache file not updated. Check CHMOD permissions on ./cache and ./cache/css_".$IN['id'].".css"; + } + } + else + { + $extra = "Cache file not updated. Check CHMOD permissions on ./cache and ./cache/css_".$IN['id'].".css"; + } + } + else + { + $extra = "Cache file not updated. Cache folder not present"; + } + $ADMIN->nav[] = array( 'act=style' ,'Style Sheet Control Home' ); $ADMIN->nav[] = array( "act=style&code=edit2&id={$IN['id']}" ,"Edit Sheet Again" ); - $ADMIN->done_screen("Stylesheet updated", "Manage Style Sheets", "act=style" ); + $ADMIN->done_screen("Stylesheet updated : $extra", "Manage Style Sheets", "act=style" ); } @@ -564,13 +638,10 @@ class ad_settings { } - //------------------------------------------------------------- - // ADD / EDIT WRAPPERS - //------------------------------------------------------------- function do_form( $type='add' ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- @@ -581,7 +652,7 @@ class ad_settings { //+------------------------------- - $DB->query("SELECT cssid, css_text, css_name FROM ibf_css WHERE cssid='".$IN['id']."'"); + $DB->query("SELECT cssid, css_text, css_name, updated FROM ibf_css WHERE cssid='".$IN['id']."'"); if ( ! $cssinfo = $DB->fetch_row() ) { @@ -602,10 +673,40 @@ class ad_settings { { $code = 'doedit'; $button = 'Edit Stylesheet'; + + //+------------------------------- + // DB same as cache version? + //+------------------------------- + + $cache_file = ROOT_PATH."cache/css_".$IN['id'].".css"; + + if ( file_exists( $cache_file ) ) + { + $FH = fopen( $cache_file, 'r' ); + $cache_data = fread( $FH, filesize($cache_file) ); + fclose($FH); + + $db_length = strlen( trim($css) ); + $cache_length = strlen(trim($cache_data)); + + if ($db_length != $cache_length) + { + // We've got ourselves a mismatch! + // Get mtime of cache file + + $stat = stat( $cache_file ); + + $cache_mtime = $stat[9]; + $db_mtime = $cssinfo['updated']; + + $this->resync_splash($db_length, $cache_length, $cache_mtime, $db_mtime, $IN['id']); + + } + } } //+------------------------------- - // Start the CSS matcher thingy + // COLURS!ooO! //+------------------------------- //.class { definitions } @@ -708,9 +809,16 @@ class ad_settings { $SKIN->form_input('name', $cssinfo['css_name']), ) ); + $ADMIN->html .= $SKIN->end_table(); + + $SKIN->td_header[] = array( "{none}" , "100%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "Contents" ); + $ADMIN->html .= $SKIN->add_td_row( array( - "Content

    (Launch Style Maker)", - $SKIN->form_textarea('css', $css, "70", "30"), + "
    ".$SKIN->form_textarea('css', $css, $INFO['tx'], $INFO['ty'])."
    Launch Style Maker
    ", ) ); $ADMIN->html .= $SKIN->end_form($button); @@ -723,6 +831,360 @@ class ad_settings { $ADMIN->output(); + } + + //------------------------------------------------------------- + // EDIT COLOURS START + //------------------------------------------------------------- + + function colouredit() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //+------------------------------- + + if ($IN['id'] == "") + { + $ADMIN->error("You must specify an existing wrapper ID, go back and try again"); + } + + //+------------------------------- + + $DB->query("SELECT cssid, css_text, css_name, updated FROM ibf_css WHERE cssid='".$IN['id']."'"); + + if ( ! $cssinfo = $DB->fetch_row() ) + { + $ADMIN->error("Could not query the CSS details from the database"); + } + + $css = $cssinfo['css_text']; + + //+------------------------------- + // DB same as cache version? + //+------------------------------- + + $cache_file = ROOT_PATH."cache/css_".$IN['id'].".css"; + + if ( file_exists( $cache_file ) ) + { + $FH = fopen( $cache_file, 'r' ); + $cache_data = fread( $FH, filesize($cache_file) ); + fclose($FH); + + $db_length = strlen( $css ); + $cache_length = strlen($cache_data); + + if ($db_length != $cache_length) + { + // We've got ourselves a mismatch! + // Get mtime of cache file + + $stat = stat( $cache_file ); + + $cache_mtime = $stat[9]; + $db_mtime = $cssinfo['updated']; + + if ( $cache_mtime != $db_mtime and ( $db_length - $cache_length > 3 )) + { + $this->resync_splash($db_length, $cache_length, $cache_mtime, $db_mtime, $IN['id'], 'colouredit'); + } + } + } + + + //+------------------------------- + // Start the CSS matcher thingy + //+------------------------------- + + //.class { definitions } + //#id { definitions } + + $colours = array(); + + // Make http:// safe.. + + // + + preg_match_all( "/([\:\.\#\w\s,]+)\{(.+?)\}/s", $css, $match ); + + for ($i=0; $i < count($match[0]); $i++) + { + + $name = trim($match[1][$i]); + $content = trim($match[2][$i]); + + $defs = explode( ';', $content ); + + if ( count( $defs ) > 0 ) + { + foreach( $defs as $a ) + { + $a = trim($a); + + if ( $a != "" ) + { + list( $property, $value ) = explode( ":", $a, 2 ); + + $property = trim($property); + $value = trim($value); + + if ( $property and $value ) + { + if ( $property == 'color' or $property == 'background-color' or $property == 'border' or $property == 'background-image' ) + { + $colours[ $name ][$property] = $value; + } + } + } + } + } + } + + if ( count($colours) < 1 ) + { + $ADMIN->error("CSS all gone wonky! No colours to edit"); + } + + //+------------------------------- + + // Get $skin_names stuff + + require './sources/Admin/skin_info.php'; + + $ADMIN->page_detail = "You edit the existing colours below. Launch Colour Picker"; + $ADMIN->page_title = "Manage Style Sheets [ Colours ]"; + + + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'docolour' ), + 2 => array( 'act' , 'style' ), + 3 => array( 'id' , $IN['id'] ), + ) ); + + //+------------------------------- + + $SKIN->td_header[] = array( "Property" , "25%" ); + $SKIN->td_header[] = array( " " , "75%" ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->start_table( "CSS Colours" ); + + foreach ( $colours as $prop => $val ) + { + + $tbl_colour = ""; + $tbl_bg = ""; + $tbl_html = ""; + + $desc = $css_names[ $prop ]; + + if ( $desc == "" ) + { + $desc = 'None available'; + } + + $name = $prop; + + $md5 = md5($name); + + if ( strlen($name) > 30 ) + { + $name = substr( $name, 0, 30 ) .'...'; + } + + + + $ADMIN->html .= $SKIN->add_td_row( array( + "".$name."
    ($desc)", + "
  • Template Group: {$template['group_name']} : Template bit: {$template['func_name']}
    + + + + + + +
    Font Colour". + $SKIN->form_simple_input('frm_'.$md5.'_color' , $val['color'], "8")."  " + ."Background Colour". + $SKIN->form_simple_input('frm_'.$md5.'_background-color', $val['background-color'], "8")."  " + ."
    Border". + $SKIN->form_simple_input('frm_'.$md5.'_border' , $val['border'], "20") + ."Background-image". + $SKIN->form_simple_input('frm_'.$md5.'_background-image', $val['background-image'], "30") + ."
    " + ) ); + + } + + $ADMIN->html .= $SKIN->end_form("Edit"); + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + //+------------------------------- + + $ADMIN->output(); + + + } + + //------------------------------------------------------------- + // EDIT COLOURS START + //------------------------------------------------------------- + + function do_colouredit() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + //+------------------------------- + + if ($IN['id'] == "") + { + $ADMIN->error("You must specify an existing wrapper ID, go back and try again"); + } + + //+------------------------------- + + $DB->query("SELECT cssid, css_text, css_name, updated FROM ibf_css WHERE cssid='".$IN['id']."'"); + + if ( ! $cssinfo = $DB->fetch_row() ) + { + $ADMIN->error("Could not query the CSS details from the database"); + } + + $css = $cssinfo['css_text']; + + //+------------------------------- + // Start the CSS matcher thingy + //+------------------------------- + + $colours = array(); + + preg_match_all( "/([\:\.\#\w\s,]+)\{(.+?)\}/s", $css, $match ); + + for ($i=0; $i < count($match[0]); $i++) + { + + $name = trim($match[1][$i]); + $content = trim($match[2][$i]); + + $md5 = md5($name); + + $defs = explode( ';', $content ); + + if ( count( $defs ) > 0 ) + { + foreach( $defs as $a ) + { + $a = trim($a); + + if ( $a != "" ) + { + list( $property, $value ) = explode( ":", $a, 2 ); + + $property = trim($property); + $value = trim($value); + + if ( $property and $value ) + { + if ( $property != 'color' and $property != 'background-color' and $property != 'border' and $property != 'background-image' ) + { + $colours[ $name ][$property] = $value; + } + } + } + } + } + + foreach( array( 'color', 'background-color', 'border', 'background-image' ) as $prop ) + { + if ( isset($HTTP_POST_VARS['frm_'.$md5.'_'.$prop]) ) + { + $colours[ $name ][$prop] = stripslashes($HTTP_POST_VARS['frm_'.$md5.'_'.$prop]); + } + } + } + + if ( count($colours) < 1 ) + { + $ADMIN->error("CSS all gone wonky! No colours to edit"); + } + + //+------------------------------- + + unset($name); + unset($property); + + $final = ""; + + foreach( $colours as $name => $property ) + { + $final .= $name." { "; + + if ( is_array($property) and count($property) > 0 ) + { + foreach( $property as $key => $value ) + { + if ( $key AND $value ) + { + $final .= $key.": ".$value.";"; + } + } + } + + $final .= " }\n"; + + } + + $barney = array( + 'css_text' => $final, + 'updated' => time(), + ); + + $db_string = $DB->compile_db_update_string( $barney ); + + $DB->query("UPDATE ibf_css SET $db_string WHERE cssid='".$IN['id']."'"); + + //-------------------------------------------- + // Update cache? + //-------------------------------------------- + + $extra = "Cache file updated"; + + if ( file_exists( ROOT_PATH."cache" ) ) + { + if ( is_writeable( ROOT_PATH."cache" ) ) + { + if ( $FH = @fopen( ROOT_PATH."cache/css_".$IN['id'].".css", 'w' ) ) + { + @fputs( $FH, $css, strlen($css) ); + @fclose($FH); + } + else + { + $extra = "Cache file not updated. Check CHMOD permissions on ./cache and ./cache/css_".$IN['id'].".css"; + } + } + else + { + $extra = "Cache file not updated. Check CHMOD permissions on ./cache and ./cache/css_".$IN['id'].".css"; + } + } + else + { + $extra = "Cache file not updated. Cache folder not present"; + } + + $ADMIN->nav[] = array( 'act=style' ,'Style Sheet Control Home' ); + $ADMIN->nav[] = array( "act=style&code=edit2&id={$IN['id']}" ,"Edit Sheet Again (Advanced)" ); + $ADMIN->nav[] = array( "act=style&code=colouredit&id={$IN['id']}" ,"Edit Colours Again?" ); + + $ADMIN->done_screen("Stylesheet updated : $extra", "Manage Style Sheets", "act=style" ); + + + + } //------------------------------------------------------------- @@ -731,7 +1193,7 @@ class ad_settings { function list_sheets() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); $show_array = array(); diff --git a/upload/sources/Admin/ad_subsmanager.php b/upload/sources/Admin/ad_subsmanager.php new file mode 100644 index 00000000..6e51347d --- /dev/null +++ b/upload/sources/Admin/ad_subsmanager.php @@ -0,0 +1,187 @@ + Subscription Manager For IPB +| > Module written by Matt Mecham +| > Date started: 19th August 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + +$idx = new ad_subscriptions(); + +class ad_subscriptions { + + var $base_url; + + function ad_subscriptions() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + $ADMIN->page_title = "IPB Subscriptions Manager"; + + $ADMIN->page_detail = "You can set up and manage your member's paid subscriptions in this section."; + + $ADMIN->nav[] = array( 'act=msubs' , 'IPB Subscription Manager Home' ); + $ADMIN->nav[] = array( 'act=msubs&code=dosearch', 'Show all subscribed members' ); + + //--------------------------------------- + // Do some set up + //--------------------------------------- + + if ( ! @is_dir( ROOT_PATH.'/modules/subsmanager' ) ) + { + $std->boink_it("http://customer.invisionpower.com/ipb/subs/redirect_acp.php"); + } + else + { + define( 'IPB_CALLED', 1 ); + + require ROOT_PATH.'/modules/subsmanager/ad_plugin_subsm.php'; + + $PLUGIN = new ad_plugin_subsm(); + } + + //--------------------------------------- + + switch($IN['code']) + { + case 'editpkginfo': + $PLUGIN->edit_pkg_gateway_info(); + break; + case 'doeditpkg': + $PLUGIN->doedit_pkg_gateway_info(); + break; + //------------------------- + case 'removepackage': + $PLUGIN->remove_package(); + break; + case 'doremovepackage': + $PLUGIN->do_remove_package(); + break; + //------------------------- + case 'removemembers': + $PLUGIN->remove_members(); + break; + case 'doremovemembers': + $PLUGIN->do_remove_members(); + break; + //------------------------- + case 'addpackage': + $PLUGIN->alter_package_form('add'); + break; + + case 'doaddpackage': + $PLUGIN->do_add_package(); + break; + //------------------------- + case 'editpackage': + $PLUGIN->alter_package_form('edit'); + break; + + case 'doeditpackage': + $PLUGIN->do_edit_package(); + break; + //------------------------- + case 'editmethod': + $PLUGIN->edit_method(); + break; + + case 'doeditmethod': + $PLUGIN->do_edit_method(); + break; + //------------------------- + case 'dosearch': + $PLUGIN->do_search(); + break; + case 'searchlog': + $PLUGIN->do_search_log(); + break; + case 'searchlogview': + $PLUGIN->do_search_log_view(); + break; + //------------------------- + case 'domodifytrans': + $PLUGIN->do_modify_trans(); + break; + + case 'dotransdelete': + $PLUGIN->do_delete_trans(); + break; + + //------------------------- + case 'edittransaction': + $PLUGIN->edit_transaction('edit'); + break; + + case 'addtransaction': + $PLUGIN->edit_transaction('add'); + break; + + case 'doedittransaction': + $PLUGIN->save_transaction('edit'); + break; + + case 'doaddtransaction': + $PLUGIN->save_transaction('add'); + break; + + case 'overview': + $PLUGIN->do_overview(); + break; + + //------------------------- + + case 'currency': + $PLUGIN->currency_index(); + break; + case 'editcurrency': + $PLUGIN->currency_edit(); + break; + case 'deletecurrency': + $PLUGIN->currency_delete(); + break; + + default: + $PLUGIN->index_screen(); + break; + } + + } + +} + + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_templates.php b/upload/sources/Admin/ad_templates.php index 475cbe27..73e38ba5 100644 --- a/upload/sources/Admin/ad_templates.php +++ b/upload/sources/Admin/ad_templates.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Skin -> Templates functions @@ -21,7 +23,11 @@ +-------------------------------------------------------------------------- */ - +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -32,7 +38,20 @@ class ad_settings { var $base_url; function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -40,6 +59,10 @@ class ad_settings { $this->add_splash(); break; + case 'find_pop': + $this->find_popular(); + break; + case 'edit': $this->show_cats(); break; @@ -97,7 +120,7 @@ class ad_settings { function add_splash() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; $FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name']; $FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size']; @@ -163,7 +186,7 @@ class ad_settings { if ( ! preg_match( "//", $data, $matches ) ) { - $ADMIN->error("This file does not appear to be a valid Invision Board Template Set file"); + $ADMIN->error("This file does not appear to be a valid Invision Power Board Template Set file"); } list($pack_name,$author,$email,$url) = explode( ",", trim($matches[1]) ); @@ -212,7 +235,7 @@ class ad_settings { function upload_single() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; $FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name']; $FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size']; @@ -301,7 +324,7 @@ class ad_settings { function upload_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; require './sources/Admin/skin_info.php'; @@ -368,7 +391,7 @@ class ad_settings { function export() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -424,7 +447,7 @@ class ad_settings { function download_group($return=0, $setid="", $group="") { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($setid != "") { @@ -496,7 +519,7 @@ class ad_settings { function show_cats() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") @@ -556,8 +579,20 @@ class ad_settings { window.open('{$SKIN->base_url}&'+theUrl,'Preview','width=400,height=450,resizable=yes,scrollbars=yes'); } "; + + $qc = $SKIN->form_dropdown( 'entry', array( + 0 => array( 'boardheader', 'Edit Board Header' ), + 1 => array( 'catforum' , 'Edit Category & Forum Table' ), + 2 => array( 'topiclist' , 'Edit Topic List Entry & Table' ), + 3 => array( 'postlist' , 'Edit Post View & Table' ), + ) ); + + + $quick_click = "
    +
    Quick Clicks  {$qc} 
    + "; - $ADMIN->html .= $SKIN->start_table("Template: ".$row['skname']); + $ADMIN->html .= $SKIN->start_table("Template: ".$row['skname'], $quick_click); while ( $group = $DB->fetch_row($all_cats) ) { @@ -569,17 +604,21 @@ class ad_settings { $eid = $group['suid']; $exp_content = ""; + // If available, change group name to easy name + if ( isset($skin_names[ $group['group_name'] ]) ) { $name = "".$skin_names[ $group['group_name'] ][0].""; - $desc = "
    ".$skin_names[ $group['group_name'] ][1]; + $desc = "
    ".$skin_names[ $group['group_name'] ][1].""; } else { $name .= " (Non-Default Group)"; - $desc = "
    This group is not part of the standard Invision Board installation and no description is available"; + $desc = "
    This group is not part of the standard Invision Power Board installation and no description is available"; } + // Is this section expanded? + if ($IN['expand'] == $group['suid']) { $expand = 'Collapse'; @@ -591,32 +630,93 @@ class ad_settings { if ( $DB->get_num_rows($new_q) ) { - $exp_content .= $SKIN->add_td_basic( " + $exp_content .= $SKIN->add_td_basic( " + +
    +
    - - + + - - - - + + + + + -
    $name $name 
    # CharactersEditPreview OptionsEdit all the sections below# CharactersEditPreview Options
    ", "left", "tdrow2" ); + + + + + ", "left", "tdrow2" ); $temp = ""; + $sec_arry = array(); - while ( $sec = $DB->fetch_row($new_q) ) + // Stuff array to sort on name + + while ( $i = $DB->fetch_row($new_q) ) { + $sec_arry[ $i['suid'] ] = $i; + $sec_arry[ $i['suid'] ]['easy_name'] = $i['func_name']; + + // If easy name is available, use it + + if ($bit_names[ $group['group_name'] ][ $i['func_name'] ] != "") + { + $sec_arry[ $i['suid'] ]['easy_name'] = $bit_names[ $group['group_name'] ][ $i['func_name'] ]; + } + + } + + // Sort by easy_name + + usort($sec_arry, array( 'ad_settings', 'perly_word_sort' ) ); + + // Loop and print + + foreach( $sec_arry as $id => $sec ) + { + $sec['easy_name'] = preg_replace( "/^(\d+)\:\s+?/", "", $sec['easy_name'] ); + $temp .= " - {$sec['func_name']} - {$sec['sec_length']} - Edit - (HTML | Text | With CSS) + + {$sec['easy_name']} + {$sec['sec_length']} + Edit Single + (HTML | Text | With CSS) "; } + $exp_content = str_replace( "", $temp, $exp_content ); @@ -631,7 +731,7 @@ class ad_settings { { $ADMIN->html .= $SKIN->add_td_row( array( - "".$name."".$desc, + "".$name."".$desc, "
    $expand
    ", "
    Download | Upload
    ", "
    ".$group['number_secs']."
    ", @@ -655,6 +755,34 @@ class ad_settings { } + // Sneaky sorting. + // We use the format "1: name". without this hack + // 1: name, 2: other name, 11: other name + // will sort as 1: name, 11: other name, 2: other name + // There is natsort and such in PHP, but it causes some + // problems on older PHP installs, this is hackish but works + // by simply adding '0' to a number less than 2 characters long. + // of course, this won't work with three numerics in the hundreds + // but we don't have to worry about more that 99 bits in a template + // at this stage. + + function perly_word_sort($a, $b) + { + $nat_a = intval( $a['easy_name'] ); + $nat_b = intval( $b['easy_name'] ); + + if (strlen($nat_a) < 2) + { + $nat_a = '0'.$nat_a; + } + if (strlen($nat_b) < 2) + { + $nat_b = '0'.$nat_b; + } + + return strcmp($nat_a, $nat_b); + } + //+-------------------------------------------------------------------------------- //+-------------------------------------------------------------------------------- @@ -662,7 +790,7 @@ class ad_settings { function edit_info() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -695,160 +823,13 @@ class ad_settings { } - //+------------------------------- - //+------------------------------- - - function do_edit() - { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; - - $text = stripslashes($HTTP_POST_VARS['template']); - - if ($IN['suid'] == "") - { - $ADMIN->error("You must specify an existing template set ID, go back and try again"); - } - - //+------------------------------- - // Get the group name, etc - //+------------------------------- - - $DB->query("SELECT * FROM ibf_skin_templates WHERE suid='".$IN['suid']."'"); - - if ( ! $template = $DB->fetch_row() ) - { - $ADMIN->error("You must specify an existing template set ID, go back and try again"); - } - - $real_name = $template['group_name']; - - //+------------------------------- - // Get the template set info - //+------------------------------- - - $DB->query("SELECT * from ibf_tmpl_names WHERE skid='".$template['set_id']."'"); - - if ( ! $row = $DB->fetch_row() ) - { - $ADMIN->error("Could not query the information from the database"); - } - - //+------------------------------- - - $phpskin = $root_path."Skin/s".$template['set_id']."/".$real_name.".php"; - - //+------------------------------- - - - if ($INFO['safe_mode_skins'] != 1) - { - - if (SAFE_MODE_ON == 1) - { - $ADMIN->error("Safe mode detected, you will need to change the board configuration to switch 'Safe Mode Skins' on. To do this, click on the 'Board Settings' menu and choose 'Basic Config' when the sub menu appears."); - } - - if ( ! is_writeable($phpskin) ) - { - $ADMIN->error("Cannot write into '$phpskin', please check the CHMOD value, and if needed, CHMOD to 0777 via FTP. IBF cannot do this for you."); - } - - } - - //+------------------------------- - // Ok, make sure we actually have - // some info to parse here. - //+------------------------------- - - if ($text == "") - { - $ADMIN->error("You can't delete the template in this manner"); - } - - //+------------------------------- - // Swop back < and > - //+------------------------------- - - $text = preg_replace("/</", "<", $text); - $text = preg_replace("/>/", ">", $text); - $text = preg_replace("/&/", "&", $text); - - //+------------------------------- - // Convert \r to nowt - //+------------------------------- - - $text = preg_replace("/\r/", "", $text); - - $text = $this->unconvert_tags($text); - - //+------------------------------- - //Update the DB - //+------------------------------- - - $string = $DB->compile_db_update_string( array ( 'section_content' => $text ) ); - - $DB->query("UPDATE ibf_skin_templates SET $string WHERE suid='".$IN['suid']."'"); - - - //+------------------------------- - // Start parsing the php skin file - //+------------------------------- - - $final = "<"."?php\n\n". - "class $real_name {\n\n"; - - //+------------------------------------------ - // Get all the data from the DB that matches - // the group name (filename) and set_id - //+------------------------------------------ - - if ($INFO['safe_mode_skins'] != 1) - { - - if (SAFE_MODE_ON == 1) - { - $ADMIN->error("Safe mode detected, you will need to change the board configuration to switch 'Safe Mode Skins' on. To do this, click on the 'Board Settings' menu and choose 'Basic Config' when the sub menu appears."); - } - - $DB->query("SELECT * FROM ibf_skin_templates WHERE group_name='$real_name' AND set_id='{$template['set_id']}'"); - - while ( $data = $DB->fetch_row() ) - { - - $final .= "\n\nfunction {$data['func_name']}({$data['func_data']}) {\n". - "global \$ibforums;\n". - "return <<"; - - if ($fh = fopen( "$phpskin", 'w' ) ) - { - fwrite($fh, $final, strlen($final) ); - fclose($fh); - } - else - { - $ADMIN->error("Could not save information to $phpskin, please ensure that the CHMOD permissions are correct."); - } - - } - - $ADMIN->done_screen("Template file updated", "Manage Templates in template set: {$row['skname']}", "act=templ&code=edit&id={$template['set_id']}" ); - - } //------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------ function tools() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -870,15 +851,15 @@ class ad_settings { function tools_build_tmpl() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; $insert = 1; // Rebuilds the data editable files from the PHP source files - $skin_dir = $root_path."Skin/s".$IN['id']; + $skin_dir = ROOT_PATH."Skin/s".$IN['id']; - $curr_groups = array(); + /*$curr_groups = array(); // Are we updating or inserting? @@ -892,7 +873,7 @@ class ad_settings { { $curr_group[ $gname['group_name'] ][ $gname['func_name'] ] = 1; } - } + }*/ $errors = array(); @@ -991,10 +972,10 @@ class ad_settings { } //---------------------------------------------------- - // Remove current templates for this group... + // Remove current templates for this set... //---------------------------------------------------- - //$DB->query("DELETE FROM ibf_skin_templates WHERE set_id='".$IN['id']."' AND group_name='$name'"); + $DB->query("DELETE FROM ibf_skin_templates WHERE set_id='".$IN['id']."' AND group_name='$name'"); $final = ""; $flag = 0; @@ -1003,53 +984,20 @@ class ad_settings { { preg_match( "/return <<<(EOF|HTML)(.+?)(EOF|HTML);/s", $ftext, $matches ); - // Are we updating a current set, but have a new group to add? - // Who knows, but it's bloody exciting - - if ($insert == 0) - { - if ($curr_group[$name][$fname] != 1) - { - // Not a current group.. - - $insert = 1; - } - } - - // Swap fake newlines - - $matches[2] = str_replace( '\n', '\\\n', $matches[2] ); - - // Swap real newlines - //$matches[2] = str_replace( "\r", '\\r', $matches[2] ); - //$matches[2] = str_replace( "\n", '\\n', $matches[2] ); - - if ($insert == 0) - { - - $db_update = $DB->compile_db_update_string( array ( - 'section_content' => str_replace( '\n', '\\\n', $matches[2] ), - 'func_data' => trim($config[$fname]), - 'updated' => time(), - ) ); - - $DB->query("UPDATE ibf_skin_templates SET $db_update WHERE func_name='$fname' AND set_id='".$IN['id']."' AND group_name='$name'"); - } - else - { - - $db_update = $DB->compile_db_update_string( array ( - 'set_id' => $IN['id'], - 'group_name' => $name, - 'section_content' => str_replace( '\n', '\\\n', $matches[2] ), - 'func_name' => $fname, - 'func_data' => trim($config[$fname]), - 'updated' => time(), - ) ); - $DB->query("INSERT INTO ibf_skin_templates SET $db_update"); - } + $matches[2] = str_replace( '\\n' , '\\\\\\n', $matches[2] ); + $db_update = $DB->compile_db_update_string( array ( + 'set_id' => $IN['id'], + 'group_name' => $name, + 'section_content' => $matches[2], + 'func_name' => $fname, + 'func_data' => trim($config[$fname]), + 'updated' => time(), + ) ); + + + $DB->query("INSERT INTO ibf_skin_templates SET $db_update"); } $functions = array(); @@ -1097,7 +1045,7 @@ class ad_settings { function add_templates() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; if ($IN['id'] == "") { @@ -1114,14 +1062,14 @@ class ad_settings { $ADMIN->error("Safe mode detected, you will need to change the board configuration to switch 'Safe Mode Skins' on. To do this, click on the 'Board Settings' menu and choose 'Basic Config' when the sub menu appears."); } - if ( ! is_writeable($root_path.'Skin') ) + if ( ! is_writeable(ROOT_PATH.'Skin') ) { $ADMIN->error("The directory 'Skin' is not writeable by this script. Please check the permissions on that directory. CHMOD to 0777 if in doubt and try again"); } //------------------------------------- - if ( ! is_dir($root_path.'Skin/s'.$IN['id']) ) + if ( ! is_dir(ROOT_PATH.'Skin/s'.$IN['id']) ) { $ADMIN->error("Could not locate the original template set to copy, please check and try again"); } @@ -1192,10 +1140,12 @@ class ad_settings { while( $r = $DB->fetch_row($get) ) { + $r['section_content'] = str_replace( '\\n' , '\\\\\\n', $r['section_content'] ); + $row = $DB->compile_db_insert_string( array ( 'set_id' => $new_id, 'group_name' => $r['group_name'], - 'section_content' => stripslashes($r['section_content']), + 'section_content' => $r['section_content'], 'func_name' => $r['func_name'], 'func_data' => $r['func_data'], 'updated' => time(), @@ -1219,7 +1169,7 @@ class ad_settings { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -1255,42 +1205,251 @@ class ad_settings { } //------------------------------------------------------------- - // EDIT TEMPLATES, STEP TWO + // Find popular bits :D //------------------------------------------------------------- - function edit_bit() + function find_popular() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_COOKIE_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_COOKIE_VARS; //----------------------------------- // Check for valid input... //----------------------------------- - if ($IN['suid'] == "") + $id = intval($IN['id']); + + if ( $id < 1 ) { - $ADMIN->error("You must specify an existing template set ID, go back and try again"); + $ADMIN->error("Baah! Something is whack, man"); } - $DB->query("SELECT * FROM ibf_skin_templates WHERE suid='".$IN['suid']."'"); + switch ( $IN['entry'] ) + { + case 'boardheader': + $sql = 'group_name="skin_global" AND func_name IN ( "Member_bar", "Guest_bar", "Member_no_usepm_bar", "BoardHeader" )'; + break; + case 'catforum': + $sql = 'group_name="skin_boards" AND func_name IN ( "CatHeader_Expanded", "PageTop", "end_this_cat", "end_all_cats", "ForumRow" )'; + break; + case 'topiclist': + $sql = 'group_name="skin_forum" AND func_name IN ( "PageTop", "TableEnd", "RenderRow", "render_pinned_start", "render_pinned_end", "render_pinned_row" )'; + break; + default: + $sql = 'group_name="skin_topic" AND func_name IN ( "PageTop", "TableFooter", "RenderRow" )'; + break; + } + + $DB->query("SELECT * FROM ibf_skin_templates WHERE $sql AND set_id=$id"); + + while ( $r = $DB->fetch_row() ) + { + $IN['cb_'.$r['suid']] = 1; + } + + $this->edit_bit(); + } + + //------------------------------------------------------------- + // EDIT TEMPLATES, STEP TWO + //------------------------------------------------------------- + + function edit_bit() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_COOKIE_VARS; //----------------------------------- + // Check for valid input... + //----------------------------------- + + // Get $skin_names stuff + + require './sources/Admin/skin_info.php'; + + $ADMIN->page_detail = "You may edit the HTML of this template."; + $ADMIN->page_title = "Template Editing"; + + $ids = array(); + + if ( $IN['type'] == 'single' ) + { + if ($IN['suid'] == "") + { + $ADMIN->error("You must specify an existing template set ID, go back and try again"); + } + $ids[] = $IN['suid']; + } + else + { + foreach ($IN as $key => $value) + { + if ( preg_match( "/^cb_(\d+)$/", $key, $match ) ) + { + if ($IN[$match[0]]) + { + $ids[] = $match[1]; + } + } + } + } + + + if ( count($ids) < 1 ) + { + $ADMIN->error("No ids selected, please go back and select some before submitting the form"); + } + + + + //+------------------------------- + + $ADMIN->html .= $SKIN->js_template_tools(); + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'doedit' ), + 2 => array( 'act' , 'templ' ), + 3 => array( 'suid' , $IN['suid'] ), + 4 => array( 'type' , $IN['type'] ), + ) , "theform" ); + + + //+------------------------------- + + $DB->query("SELECT * FROM ibf_skin_templates WHERE suid IN (".implode(",",$ids).")"); + + while ( $i = $DB->fetch_row() ) + { + $sec_arry[ $i['suid'] ] = $i; + $sec_arry[ $i['suid'] ]['easy_name'] = $i['func_name']; + + // If easy name is available, use it + + if ($bit_names[ $i['group_name'] ][ $i['func_name'] ] != "") + { + $sec_arry[ $i['suid'] ]['easy_name'] = $bit_names[ $i['group_name'] ][ $i['func_name'] ]; + } + + } + + // Sort by easy_name + + usort($sec_arry, array( 'ad_settings', 'perly_word_sort' ) ); + + // Loop and print + + foreach( $sec_arry as $id => $template ) + { + $template['easy_name'] = preg_replace( "/^(\d+)\:\s+?/", "", $template['easy_name'] ); + + + //+------------------------------- + // Swop < and > into ascii entities + // to prevent textarea breaking html + //+------------------------------- + + $setid = $template['set_id']; + $groupname = $template['group_name']; + + $templ = $this->convert_tags($template['section_content']); + + $templ = preg_replace("/&/", "&", $templ ); + $templ = preg_replace("//", ">", $templ ); + + //+------------------------------- + + $SKIN->td_header[] = array( "{none}" , "100%" ); + + $ADMIN->html .= $SKIN->start_table( "Template: ". $template['easy_name'] ); + + $ADMIN->html .= $SKIN->add_td_basic( "". + " ". + " ". + " ". + " ". + " ", + "center", "catrow"); + + $ADMIN->html .= $SKIN->add_td_basic( "Show me the HTML code for: ". + "    " + + , "center", "tdrow1"); + + $ADMIN->html .= $SKIN->add_td_row( array( + "
    ".$SKIN->form_textarea("txt_{$template['suid']}", $templ, $INFO['tx'], $INFO['ty'], $wrap)."
    ", + ) ); + + $ADMIN->html .= $SKIN->end_table(); + } + + $ADMIN->html .= "
    "; + + + //+------------------------------- + + $DB->query("SELECT * from ibf_tmpl_names WHERE skid='".$setid."'"); + + if ( ! $row = $DB->fetch_row() ) + { + $ADMIN->error("Could not query the information from the database"); + } + + $ADMIN->nav[] = array( 'act=templ' ,'Template Control Home' ); + $ADMIN->nav[] = array( "act=templ&code=edit&id={$setid}" ,$row['skname'] ); + $ADMIN->nav[] = array( "act=templ&code=edit&id={$setid}&expand={$IN['expand']}", $groupname ); + //$ADMIN->nav[] = array( "", $template['func_name'] ); + + $ADMIN->output(); + + + } + + //------------------------------------------------------------- + // COMPLETE EDIT + //------------------------------------------------------------- + + function do_edit() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + + //+------------------------------- + // Check incoming + //+------------------------------- + + foreach ($IN as $key => $value) + { + if ( preg_match( "/^txt_(\d+)$/", $key, $match ) ) + { + if ($IN[$match[0]]) + { + $ids[] = $match[1]; + } + } + } + + if ( count($ids) < 1 ) + { + $ADMIN->error("No ids selected, please go back and select some before submitting the form"); + } + + //+------------------------------- + // Get the group name, etc + //+------------------------------- + + $DB->query("SELECT * FROM ibf_skin_templates WHERE suid IN(".implode( ",", $ids ).")"); if ( ! $template = $DB->fetch_row() ) { $ADMIN->error("You must specify an existing template set ID, go back and try again"); } - //----------------------------------- - - if ( $cookie = $HTTP_COOKIE_VARS['ad_tempform'] ) - { - list($rows, $cols) = explode( '-', $cookie ); - } - - $cols = $cols ? $cols : 80; - $rows = $rows ? $rows : 40; - $wrap = 'soft'; + $real_name = $template['group_name']; + //+------------------------------- + // Get the template set info //+------------------------------- $DB->query("SELECT * from ibf_tmpl_names WHERE skid='".$template['set_id']."'"); @@ -1300,76 +1459,117 @@ class ad_settings { $ADMIN->error("Could not query the information from the database"); } - //+------------------------------- - // Swop < and > into ascii entities - // to prevent textarea breaking html //+------------------------------- - $templ = $this->convert_tags($template['section_content']); - - $templ = preg_replace("/&/", "&", $templ ); - $templ = preg_replace("//", ">", $templ ); + $phpskin = ROOT_PATH."Skin/s".$template['set_id']."/".$real_name.".php"; //+------------------------------- - - $ADMIN->page_detail = "You may edit the HTML of this template."; - $ADMIN->page_title = "Template Editing"; - + if ($INFO['safe_mode_skins'] != 1) + { + if (SAFE_MODE_ON == 1) + { + $ADMIN->error("Safe mode detected, you will need to change the board configuration to switch 'Safe Mode Skins' on. To do this, click on the 'Board Settings' menu and choose 'Basic Config' when the sub menu appears."); + } + + if ( ! is_writeable($phpskin) ) + { + $ADMIN->error("Cannot write into '$phpskin', please check the CHMOD value, and if needed, CHMOD to 0777 via FTP. IBF cannot do this for you."); + } + + } + //+------------------------------- + // Process my bits :o //+------------------------------- - $ADMIN->html .= $SKIN->js_template_tools(); + foreach( $ids as $id ) + { - $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'doedit' ), - 2 => array( 'act' , 'templ' ), - 3 => array( 'suid' , $IN['suid'] ), - ) , "theform" ); - - //+------------------------------- + $text = stripslashes($HTTP_POST_VARS['txt_'.$id]); - $SKIN->td_header[] = array( " " , "100%" ); - - //+------------------------------- - - $ADMIN->html .= $SKIN->start_table( "Template: ".$template['func_name'] ); - - $ADMIN->html .= $SKIN->add_td_basic( "". - " ". - " ". - " ". - " ". - " ", - "center", "catrow"); - - $ADMIN->html .= $SKIN->add_td_basic( "Show me the HTML code for: ". - "    " + //+------------------------------- + // Sw(o|a)p back < & > + //+------------------------------- - , "center", "tdrow1"); + $text = preg_replace("/</", "<", $text); + $text = preg_replace("/>/", ">", $text); + $text = preg_replace("/&/", "&", $text); + + $text = str_replace( '\\n' , '\\\\\\n', $text ); + + //+------------------------------- + // Convert \r to nowt + //+------------------------------- + + $text = preg_replace("/\r/", "", $text); + + $text = $this->unconvert_tags($text); + + //+------------------------------- + // Update the DB + //+------------------------------- + + $string = $DB->compile_db_update_string( array ( + 'section_content' => $text, + 'updated' => time(), + ) ); + + $DB->query("UPDATE ibf_skin_templates SET $string WHERE suid=$id"); - $ADMIN->html .= $SKIN->add_td_row( array( - "
    ".$SKIN->form_textarea('template', $templ, $cols, $rows, $wrap)."
    ", - ) ); - + } - - $ADMIN->html .= $SKIN->end_form("Update this file"); - - $ADMIN->html .= $SKIN->end_table(); - $ADMIN->nav[] = array( 'act=templ' ,'Template Control Home' ); - $ADMIN->nav[] = array( "act=templ&code=edit&id={$template['set_id']}" ,$row['skname'] ); - $ADMIN->nav[] = array( "act=templ&code=edit&id={$template['set_id']}&expand={$IN['expand']}", $template['group_name'] ); - $ADMIN->nav[] = array( "", $template['func_name'] ); + //+------------------------------- + // Rebuild the PHP file + //+------------------------------- - $ADMIN->output(); + $final = "<"."?php\n\n". + "class $real_name {\n\n"; + + //+------------------------------------------ + // Get all the data from the DB that matches + // the group name (filename) and set_id + //+------------------------------------------ + if ($INFO['safe_mode_skins'] != 1) + { + + if (SAFE_MODE_ON == 1) + { + $ADMIN->error("Safe mode detected, you will need to change the board configuration to switch 'Safe Mode Skins' on. To do this, click on the 'Board Settings' menu and choose 'Basic Config' when the sub menu appears."); + } + + $DB->query("SELECT * FROM ibf_skin_templates WHERE group_name='$real_name' AND set_id='{$template['set_id']}'"); + + while ( $data = $DB->fetch_row() ) + { + + $final .= "\n\nfunction {$data['func_name']}({$data['func_data']}) {\n". + "global \$ibforums;\n". + "return <<"; + + if ($fh = fopen( "$phpskin", 'w' ) ) + { + fwrite($fh, $final, strlen($final) ); + fclose($fh); + } + else + { + $ADMIN->error("Could not save information to $phpskin, please ensure that the CHMOD permissions are correct."); + } + + } + + $ADMIN->done_screen("Template file(s) updated", "Manage Templates in template set: {$row['skname']}", "act=templ&code=edit&id={$template['set_id']}" ); } @@ -1379,7 +1579,7 @@ class ad_settings { function do_form() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") @@ -1468,11 +1668,13 @@ class ad_settings { function list_current() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); - $ADMIN->page_detail = "The skin templates contain the all the board HTML. You can edit each section individually via the online editor, or download the template files to edit in another editor."; + $ADMIN->page_detail = "The skin templates contain the all the HTML that is used by the board. +
    + This section will allow you to create new template sets or edit HTML in your current template sets."; $ADMIN->page_title = "Manage Template Sets"; //+------------------------------- @@ -1485,7 +1687,7 @@ class ad_settings { //+------------------------------- - $DB->query("SELECT DISTINCT(s.set_id), t.skid, t.skname from ibf_tmpl_names t, ibf_skins s WHERE s.set_id=t.skid ORDER BY t.skname ASC"); + $DB->query("SELECT DISTINCT(s.set_id), s.sname, t.skid, t.skname from ibf_tmpl_names t, ibf_skins s WHERE s.set_id=t.skid ORDER BY t.skname ASC"); $used_ids = array(); $show_array = array(); @@ -1498,7 +1700,7 @@ class ad_settings { while ( $r = $DB->fetch_row() ) { - $show_array[ $r['skid'] ] .= stripslashes($r['skname'])."
    "; + $show_array[ $r['skid'] ] .= stripslashes($r['sname'])."
    "; if ( in_array( $r['skid'], $used_ids ) ) { @@ -1549,7 +1751,7 @@ class ad_settings { while ( $r = $DB->fetch_row() ) { - $ADMIN->html .= $SKIN->add_td_row( array( "".stripslashes($r['skname'])."", + $ADMIN->html .= $SKIN->add_td_row( array( "".stripslashes($r['skname'])."
    [ Export ]", //"
    Download
    ", "
    Edit Properties
    ", "
    Manage HTML
    ", @@ -1645,6 +1847,10 @@ class ad_settings { $t = preg_replace( "/{?\\\$ibforums->vars\['?(\w+)'?\]}?/" , "{ibf.vars.\\1}" , $t ); $t = preg_replace( "/{?\\\$ibforums->member\['?(\w+)'?\]}?/" , "{ibf.member.\\1}" , $t ); + // Make some tags safe.. + + $t = preg_replace( "/\{ibf\.vars\.(sql_driver|sql_host|sql_database|sql_pass|sql_user|sql_port|sql_tbl_prefix|smtp_host|smtp_port|smtp_user|smtp_pass|html_dir|base_dir|upload_dir)\}/", "" , $t ); + return $t; } @@ -1656,6 +1862,10 @@ class ad_settings { return ""; } + // Make some tags safe.. + + $t = preg_replace( "/\{ibf\.vars\.(sql_driver|sql_host|sql_database|sql_pass|sql_user|sql_port|sql_tbl_prefix|smtp_host|smtp_port|smtp_user|smtp_pass|html_dir|base_dir|upload_dir)\}/", "" , $t ); + $t = preg_replace( "/{ibf\.script_url}/i" , '{$ibforums->base_url}' , $t); $t = preg_replace( "/{ibf\.session_id}/i" , '{$ibforums->session_id}' , $t); $t = preg_replace( "/{ibf\.skin\.(\w+)}/" , '{$ibforums->skin[\''."\\1".'\']}' , $t); @@ -1683,9 +1893,9 @@ class ad_settings { function process_upload($raw, $setid, $group, $isnew=0) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; - $skin_dir = $root_path."Skin/s".$setid; + $skin_dir = ROOT_PATH."Skin/s".$setid; //------------------------------------------- // If we are not using safe mode skins, lets @@ -1709,7 +1919,7 @@ class ad_settings { if ($isnew == 1) { - if ( ! is_writeable($root_path.'Skin') ) + if ( ! is_writeable(ROOT_PATH.'Skin') ) { $DB->query("DELETE FROM ibf_tmpl_names WHERE skid='$setid'"); $ADMIN->error("The directory 'Skin' is not writeable by this script. Please check the permissions on that directory. CHMOD to 0777 if in doubt and try again"); @@ -1889,18 +2099,22 @@ class ad_settings { if ($isnew == 0) { + $data['content'] = str_replace( '\\n' , '\\\\\\n', $data['content'] ); + $str = $DB->compile_db_update_string( array( - 'section_content' => stripslashes(trim($data['content'])), - 'func_data' => stripslashes(trim($data['func_data'])) + 'section_content' => trim($data['content']), + 'func_data' => trim($data['func_data']) ) ); $DB->query("UPDATE ibf_skin_templates SET $str WHERE set_id='$setid' AND group_name='$group' AND func_name='".trim($data['func_name'])."'"); } else { + $data['content'] = str_replace( '\\n' , '\\\\\\n', $data['content'] ); + $str = $DB->compile_db_insert_string( array( - 'section_content' => stripslashes(trim($data['content'])), - 'func_data' => stripslashes(trim($data['func_data'])), + 'section_content' => trim($data['content']), + 'func_data' => trim($data['func_data']), 'set_id' => $setid, 'group_name' => $group, 'func_name' => trim($data['func_name']), @@ -1917,6 +2131,66 @@ class ad_settings { } + /*foreach($functions as $fname => $ftext) + { + preg_match( "/return <<<(EOF|HTML)(.+?)(EOF|HTML);/s", $ftext, $matches ); + + // Are we updating a current set, but have a new group to add? + // Who knows, but it's bloody exciting + + if ($insert == 0) + { + if ($curr_group[$name][$fname] != 1) + { + // Not a current group.. + + $insert = 1; + } + } + + // Swap fake newlines + + $matches[2] = str_replace( '\n', '\\\n', $matches[2] ); + + // Swap real newlines + //$matches[2] = str_replace( "\r", '\\r', $matches[2] ); + //$matches[2] = str_replace( "\n", '\\n', $matches[2] ); + + if ($insert == 0) + { + + $db_update = $DB->compile_db_update_string( array ( + 'section_content' => str_replace( '\n', '\\\n', $matches[2] ), + 'func_data' => trim($config[$fname]), + 'updated' => time(), + ) ); + + $DB->query("UPDATE ibf_skin_templates SET $db_update WHERE func_name='$fname' AND set_id='".$IN['id']."' AND group_name='$name'"); + } + else + { + + $db_update = $DB->compile_db_update_string( array ( + 'set_id' => $IN['id'], + 'group_name' => $name, + 'section_content' => str_replace( '\n', '\\\n', $matches[2] ), + 'func_name' => $fname, + 'func_data' => trim($config[$fname]), + 'updated' => time(), + ) ); + + //---------------------------------------------------- + // Remove current templates with this name + //---------------------------------------------------- + + //$DB->query("DELETE FROM ibf_skin_templates WHERE func_name='$fname' AND set_id='".$IN['id']."' AND group_name='$name'"); + + $DB->query("INSERT INTO ibf_skin_templates SET $db_update"); + //} + + + }*/ + } diff --git a/upload/sources/Admin/ad_warn.php b/upload/sources/Admin/ad_warn.php new file mode 100644 index 00000000..42114b50 --- /dev/null +++ b/upload/sources/Admin/ad_warn.php @@ -0,0 +1,216 @@ + Admin: Warning Functions +| > Module written by Matt Mecham +| > Date started: 23rd April 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + +$idx = new ad_warning(); + +$root_path = ""; + +class ad_warning { + + var $base_url; + + function ad_warning() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + $ADMIN->nav[] = array( 'act=warn', 'Warning Set-up' ); + + $ADMIN->page_detail = "This section will allow you to modify your warning parameters"; + $ADMIN->page_title = "Member Warning Set-up"; + + //--------------------------------------- + + switch($IN['code']) + { + + //--------------------- + default: + $this->overview(); + break; + } + + } + + + //--------------------------------------------------------------- + // + // Overview: show um.. overview. + // + //--------------------------------------------------------------- + + function overview() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $ibforums; + + $unit_map = array( + 'd' => 'Day(s)' , + 'h' => 'Hour(s)', + ); + + $SKIN->td_header[] = array( "Warn Level" , "20%" ); + $SKIN->td_header[] = array( "Details" , "80%" ); + + $ADMIN->html .= $SKIN->start_table( "Currently active Auto tasks" ); + + $warns = array(); + + $DB->query("SELECT * from ibf_warn_settings ORDER BY warn_level"); + + while ( $r = $DB->fetch_row() ) + { + $warns[ $r['warn_level'] ][] = $r; + } + + if ( count($warns) > 0 ) + { + foreach( $warns as $id => $data ) + { + $tmp = ""; + + $ban = ""; + $mod = ""; + $nop = ""; + + if ( $data['warn_ban'] != "" ) + { + if ( $data['warn_ban'] == 'p' ) + { + $ban = "Permanent Ban"; + } + else + { + list ($val, $unit) = explode( ',', $data['warn_ban'] ); + + $ban = "Temporary suspension for ".$val." ".$unit_map[$unit]; + } + } + + if ( $data['warn_modq'] != "" ) + { + if ( $data['warn_modq'] == 'p' ) + { + $mod = "Permanent post moderation"; + } + else + { + list ($val, $unit) = explode( ',', $data['warn_modq'] ); + + $mod = "Require post moderation for ".$val." ".$unit_map[$unit]; + } + } + + if ( $data['warn_nopost'] != "" ) + { + if ( $data['warn_nopost'] == 'p' ) + { + $nop = "Permanent post banning"; + } + else + { + list ($val, $unit) = explode( ',', $data['warn_nopost'] ); + + $nop = "Post ban for ".$val." ".$unit_map[$unit]; + } + } + + $html = ""; + + if ( $ban != "" ) + { + $html .= " + + + + + "; + } + + if ( $mod != "" ) + { + $html .= " + + + + + "; + } + + if ( $nop != "" ) + { + $html .= " + + + + + "; + } + + $html .= "
    Ban$banEditRemove
    Post Moderation$modEditRemove
    Post Ban$nopEditRemove
    "; + + + $ADMIN->html .= $SKIN->add_td_row( array( "{$warns['warn_level']}", + $html + ) ); + } + } + + $ADMIN->html .= $SKIN->add_td_basic( 'Add new auto task', 'center', 'pformstrip' ); + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + //+------------------------------- + + $ADMIN->output(); + + + + + } + + + + + + + +} + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_warnlogs.php b/upload/sources/Admin/ad_warnlogs.php new file mode 100644 index 00000000..a467365b --- /dev/null +++ b/upload/sources/Admin/ad_warnlogs.php @@ -0,0 +1,542 @@ + Warn Log functions +| > Module written by Matt Mecham +| > Date started: 4th June 2003 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + + +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} + + +$idx = new ad_warnlogs(); + + +class ad_warnlogs { + + var $base_url; + + function ad_warnlogs() { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- + + switch($IN['code']) + { + + case 'view': + $this->view(); + break; + + case 'viewcontact': + $this->view_contact(); + break; + + case 'viewnote': + $this->view_note(); + break; + + case 'remove': + $this->remove(); + break; + + + //------------------------- + default: + $this->list_current(); + break; + } + + } + + //--------------------------------------------- + // View NOTE in da pop up innit + //--------------------------------------------- + + function view_note() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + if ($IN['id'] == "") + { + $ADMIN->error("Could not resolve the email ID, please try again"); + } + + require( ROOT_PATH.'sources/lib/post_parser.php'); + + $this->parser = new post_parser(1); + + $id = intval($IN['id']); + + $DB->query("SELECT l.*, m.id as a_id, m.name as a_name, p.id as p_id, p.name as p_name + FROM ibf_warn_logs l + LEFT JOIN ibf_members m ON (m.id=l.wlog_mid) + LEFT JOIN ibf_members p ON (p.id=l.wlog_addedby) + WHERE l.wlog_id=$id"); + + if ( ! $row = $DB->fetch_row() ) + { + $ADMIN->error("Could not resolve the email ID, please try again ($id)"); + } + + $SKIN->td_header[] = array( " " , "100%" ); + + $content = preg_match( "#(.+?)#is", $row['wlog_notes'], $cont ); + + $ADMIN->html .= $SKIN->start_table( "Warn Notes" ); + + $row['date'] = $ADMIN->get_date( $row['wlog_date'], 'LONG' ); + + $text = $this->parser->convert( array( + 'TEXT' => $cont[1], + 'SMILIES' => 1, + 'CODE' => 1, + 'HTML' => 0 + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( + "From: {$row['p_name']} +
    To: {$row['a_name']} +
    Sent: {$row['date']} +
    +
    $text + " + ) ); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->print_popup(); + + + } + + + //--------------------------------------------- + // View contact in da pop up innit + //--------------------------------------------- + + function view_contact() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + if ($IN['id'] == "") + { + $ADMIN->error("Could not resolve the email ID, please try again"); + } + + $id = intval($IN['id']); + + $DB->query("SELECT l.*, m.id as a_id, m.name as a_name, p.id as p_id, p.name as p_name + FROM ibf_warn_logs l + LEFT JOIN ibf_members m ON (m.id=l.wlog_mid) + LEFT JOIN ibf_members p ON (p.id=l.wlog_addedby) + WHERE l.wlog_id=$id"); + + if ( ! $row = $DB->fetch_row() ) + { + $ADMIN->error("Could not resolve the email ID, please try again ($id)"); + } + + $type = $row['wlog_contact'] == 'pm' ? "PM" : "EMAIL"; + + $SKIN->td_header[] = array( " " , "100%" ); + + $subject = preg_match( "#(.+?)#is", $row['wlog_contact_content'], $subj ); + $content = preg_match( "#(.+?)#is", $row['wlog_contact_content'], $cont ); + + $ADMIN->html .= $SKIN->start_table( $type.": ".$subj[1] ); + + + + $row['date'] = $ADMIN->get_date( $row['wlog_date'], 'LONG' ); + + $ADMIN->html .= $SKIN->add_td_row( array( + "From: {$row['p_name']} +
    To: {$row['a_name']} +
    Sent: {$row['date']} +
    Subject: $subj[1] +
    +
    $cont[1] + " + ) ); + + $ADMIN->html .= $SKIN->end_table(); + + $ADMIN->print_popup(); + + + } + + + + + //--------------------------------------------- + // Remove archived files + //--------------------------------------------- + + function view() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $start = $IN['st'] ? $IN['st'] : 0; + + $ADMIN->html .= $SKIN->js_pop_win(); + + $ADMIN->page_detail = "Viewing all warn entries on a member"; + $ADMIN->page_title = "Warn Logs Manager"; + + if ($IN['search_string'] == "" and $IN['mid']) + { + $DB->query("SELECT COUNT(wlog_id) as count FROM ibf_warn_logs WHERE wlog_mid='".$IN['mid']."'"); + $row = $DB->fetch_row(); + + $row_count = $row['count']; + + $query = "&act=warnlog&mid={$IN['mid']}&code=view"; + + $DB->query("SELECT l.*, m.id as a_id, m.name as a_name, p.id as p_id, p.name as p_name + FROM ibf_warn_logs l + LEFT JOIN ibf_members m ON (m.id=l.wlog_mid) + LEFT JOIN ibf_members p ON (p.id=l.wlog_addedby) + WHERE l.wlog_mid={$IN['mid']} + ORDER BY l.wlog_date DESC LIMIT $start,30"); + } + else + { + $IN['search_string'] = urldecode($IN['search_string']); + + if ( ($IN['search_type'] == 'notes') ) + { + $dbq = "l.wlog_notes LIKE '%".$IN['search_string']."%'"; + } + else + { + $dbq = "l.wlog_contact_content LIKE '%".$IN['search_string']."%'"; + } + + $DB->query("SELECT COUNT(l.wlog_id) as count FROM ibf_warn_logs l WHERE $dbq"); + $row = $DB->fetch_row(); + + $row_count = $row['count']; + + $query = "&act=warnlog&code=view&search_type={$IN['search_type']}&search_string=".urlencode($IN['search_string']); + + $DB->query("SELECT l.*, m.id as a_id, m.name as a_name, p.id as p_id, p.name as p_name + FROM ibf_warn_logs l + LEFT JOIN ibf_members m ON (m.id=l.wlog_mid) + LEFT JOIN ibf_members p ON (p.id=l.wlog_addedby) + WHERE $dbq + ORDER BY l.wlog_date DESC LIMIT $start,30"); + } + + $links = $std->build_pagelinks( array( 'TOTAL_POSS' => $row_count, + 'PER_PAGE' => 30, + 'CUR_ST_VAL' => $start, + 'L_SINGLE' => "Single Page", + 'L_MULTI' => "Pages: ", + 'BASE_URL' => $ADMIN->base_url.$query, + ) + ); + + $ADMIN->page_detail = "You may view warn entries added by your moderators"; + $ADMIN->page_title = "Warn Logs Manager"; + + //+------------------------------- + + $SKIN->td_header[] = array( "Type" , "5%" ); + $SKIN->td_header[] = array( "Member Name" , "15%" ); + $SKIN->td_header[] = array( "Contacted" , "5%" ); + $SKIN->td_header[] = array( "MOD Q" , "10%" ); + $SKIN->td_header[] = array( "SUSP" , "10%" ); + $SKIN->td_header[] = array( "NO POST" , "10%" ); + $SKIN->td_header[] = array( "Date" , "15%" ); + $SKIN->td_header[] = array( "Warned By" , "15%" ); + $SKIN->td_header[] = array( "View Note" , "10%" ); + + $ADMIN->html .= $SKIN->start_table( "Saved Warn Logs" ); + $ADMIN->html .= $SKIN->add_td_basic($links, 'right', 'pformstrip'); + + $days = array( 'd' => "Days", 'h' => "Hours" ); + + if ( $DB->get_num_rows() ) + { + while ( $row = $DB->fetch_row() ) + { + + $row['wlog_date'] = $ADMIN->get_date( $row['wlog_date'], 'LONG' ); + + $type = ( $row['wlog_type'] == 'pos' ) ? '-' : '+'; + $cont = ( $row['wlog_contact'] != 'none' ) ? "
    View
    " : ' '; + + $mod = preg_match( "#(.+?)#is" , $row['wlog_notes'], $mm ); + $post = preg_match( "#(.+?)#is" , $row['wlog_notes'], $pm ); + $susp = preg_match( "#(.+?)#is" , $row['wlog_notes'], $sm ); + $content = preg_match( "#(.+?)#is", $row['wlog_notes'], $cm ); + + $content = $cm[1]; + + $mod = trim($mm[1]); + $post = trim($pm[1]); + $susp = trim($sm[1]); + + list($v, $u, $i) = explode(',', $mod); + + if ( $i == 1 ) + { + $mod = 'INDEF'; + } + else if ( $v == "" ) + { + $mod = 'None'; + } + else + { + $mod = $v.' '.$days[$u]; + } + + //---------- + + list($v, $u, $i) = explode(',', $post); + + if ( $i == 1 ) + { + $post = 'INDEF'; + } + else if ( $v == "" ) + { + $post = 'None'; + } + else + { + $post = $v.' '.$days[$u]; + } + + list($v, $u) = explode(',', $susp); + + if ( $v == "" ) + { + $susp = 'None'; + } + else + { + $susp = $v.' '.$days[$u]; + } + + //---------- + + $ADMIN->html .= $SKIN->add_td_row( array( + "
    $type
    ", + "{$row['a_name']}", + $cont, + $mod, + $susp, + $post, + "{$row['wlog_date']}", + "{$row['p_name']}", + "
    View
    " + ) ); + } + } + else + { + $ADMIN->html .= $SKIN->add_td_basic("
    No results
    "); + } + + $ADMIN->html .= $SKIN->add_td_basic($links, 'right', 'pformstrip'); + + $ADMIN->html .= $SKIN->end_table(); + + + //+------------------------------- + //+------------------------------- + + $ADMIN->output(); + + } + + //--------------------------------------------- + // Remove archived files + //--------------------------------------------- + + function remove() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + if ($IN['mid'] == "") + { + $ADMIN->error("You did not select a member ID to remove by!"); + } + + $DB->query("DELETE FROM ibf_warn_logs WHERE wlog_mid={$IN['mid']}"); + + $ADMIN->save_log("Removed Warn Logs"); + + $std->boink_it($ADMIN->base_url."&act=warnlog"); + } + + + + + + //------------------------------------------------------------- + // SHOW LOGS + //------------------------------------------------------------- + + function list_current() + { + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + $form_array = array(); + + $ADMIN->page_detail = "You may view and remove warn actions performed by your staff.
    Note: Removing the logs does not decrease the member's warn level"; + $ADMIN->page_title = "Warn Logs Manager"; + + $ADMIN->html .= $SKIN->js_pop_win(); + + //+------------------------------- + // VIEW LAST 5 + //+------------------------------- + + $DB->query("SELECT l.*, m.id as a_id, m.name as a_name, p.id as p_id, p.name as p_name + FROM ibf_warn_logs l + LEFT JOIN ibf_members m ON (m.id=l.wlog_mid) + LEFT JOIN ibf_members p ON (p.id=l.wlog_addedby) + ORDER BY l.wlog_date DESC LIMIT 0,10"); + + $SKIN->td_header[] = array( "Type" , "5%" ); + $SKIN->td_header[] = array( "Warned Member" , "25%" ); + $SKIN->td_header[] = array( "Contacted?" , "5%" ); + $SKIN->td_header[] = array( "Date" , "25%" ); + $SKIN->td_header[] = array( "Warned By" , "25%" ); + + $ADMIN->html .= $SKIN->start_table( "Last 10 Warn Entries" ); + + if ( $DB->get_num_rows() ) + { + while ( $row = $DB->fetch_row() ) + { + + $row['wlog_date'] = $ADMIN->get_date( $row['wlog_date'], 'LONG' ); + + $type = ( $row['wlog_type'] == 'pos' ) ? '-' : '+'; + $cont = ( $row['wlog_contact'] != 'none' ) ? "
    X
    " : ' '; + + $ADMIN->html .= $SKIN->add_td_row( array( + "
    $type
    ", + "{$row['a_name']}", + $cont, + "{$row['wlog_date']}", + "{$row['p_name']}", + ) ); + } + } + else + { + $ADMIN->html .= $SKIN->add_td_basic("
    No results
    "); + } + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + + $SKIN->td_header[] = array( "Member Name" , "30%" ); + $SKIN->td_header[] = array( "Times Warned" , "20%" ); + $SKIN->td_header[] = array( "View all by member" , "20%" ); + $SKIN->td_header[] = array( "Remove all by member" , "30%" ); + + $ADMIN->html .= $SKIN->start_table( "Saved Warn Logs" ); + + $DB->query("SELECT l.*, m.name, count(l.wlog_mid) as act_count from ibf_warn_logs l, ibf_members m WHERE m.id=l.wlog_mid GROUP BY l.wlog_mid ORDER BY act_count DESC"); + + while ( $r = $DB->fetch_row() ) + { + + $ADMIN->html .= $SKIN->add_td_row( array( "{$r['name']}", + "
    {$r['act_count']}
    ", + "
    View
    ", + "
    Remove
    ", + ) ); + } + + + + $ADMIN->html .= $SKIN->end_table(); + + + //+------------------------------- + //+------------------------------- + + $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code' , 'view' ), + 2 => array( 'act' , 'warnlog' ), + ) ); + + $SKIN->td_header[] = array( " " , "40%" ); + $SKIN->td_header[] = array( " " , "60%" ); + + $ADMIN->html .= $SKIN->start_table( "Search Warn Logs" ); + + $form_array = array( + 0 => array( 'notes' , 'Entry Notes' ), + 1 => array( 'contact', 'Email/PM Sent' ), + ); + + //+------------------------------- + + $ADMIN->html .= $SKIN->add_td_row( array( "Search for..." , + $SKIN->form_input( "search_string") + ) ); + + $ADMIN->html .= $SKIN->add_td_row( array( "Search in..." , + $SKIN->form_dropdown( "search_type", $form_array) + ) ); + + $ADMIN->html .= $SKIN->end_form("Search"); + + $ADMIN->html .= $SKIN->end_table(); + + //+------------------------------- + //+------------------------------- + + $ADMIN->output(); + + } + + + +} + + +?> \ No newline at end of file diff --git a/upload/sources/Admin/ad_wrappers.php b/upload/sources/Admin/ad_wrappers.php index 1fdb5a01..96ce17aa 100644 --- a/upload/sources/Admin/ad_wrappers.php +++ b/upload/sources/Admin/ad_wrappers.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Help Control functions @@ -21,6 +23,11 @@ +-------------------------------------------------------------------------- */ +if ( ! defined( 'IN_ACP' ) ) +{ + print "

    Incorrect access

    You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; + exit(); +} $idx = new ad_settings(); @@ -30,7 +37,20 @@ class ad_settings { var $base_url; function ad_settings() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + + //--------------------------------------- + // Kill globals - globals bad, Homer good. + //--------------------------------------- + + $tmp_in = array_merge( $_GET, $_POST, $_COOKIE ); + + foreach ( $tmp_in as $k => $v ) + { + unset($$k); + } + + //--------------------------------------- switch($IN['code']) { @@ -74,7 +94,7 @@ class ad_settings { function add_splash() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_FILES; $FILE_NAME = $HTTP_POST_FILES['FILE_UPLOAD']['name']; $FILE_SIZE = $HTTP_POST_FILES['FILE_UPLOAD']['size']; @@ -140,7 +160,7 @@ class ad_settings { if ( ! preg_match( "/<% COPYRIGHT %>/", $data ) ) { - $ADMIN->error("This file does not appear to be a valid Invision Board Wrapper file"); + $ADMIN->error("This file does not appear to be a valid Invision Power Board Wrapper file"); } //---------------------------------- @@ -163,7 +183,7 @@ class ad_settings { function export() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; if ($IN['id'] == "") { @@ -205,7 +225,7 @@ class ad_settings { function remove() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -232,7 +252,7 @@ class ad_settings { function save_wrapper( $type='add' ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS; //+------------------------------- @@ -254,7 +274,14 @@ class ad_settings { $ADMIN->error("You can't have an empty template, can you?"); } - $tmpl = preg_replace( "!</textarea>!", "/textarea>", stripslashes($HTTP_POST_VARS['template']) ); + $tmpl = preg_replace( "!</textarea>!", "/textarea>", stripslashes($HTTP_POST_VARS['template']) ); + + $tmpl = str_replace( "&amp;" , "&" , $tmpl ); + $tmpl = str_replace( "&nbsp;", " " , $tmpl ); + $tmpl = str_replace( "&copy;", "©" , $tmpl ); + $tmpl = preg_replace( "/\\\/" , "\" , $tmpl ); + $tmpl = preg_replace( "/\/" , '\\\\\\\\' , $tmpl ); // o_O + if ( ! preg_match( "/<% BOARD %>/", $tmpl ) ) { @@ -299,7 +326,7 @@ class ad_settings { function do_form( $type='add' ) { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; //+------------------------------- @@ -348,7 +375,14 @@ class ad_settings { //+------------------------------- - $row['template'] = preg_replace( "/\/textarea>/", "</textarea>", $row['template'] ); // Stop html killing the text area + $row['template'] = preg_replace( "/\/textarea>/", "</textarea>", $row['template'] ); // Stop html killing the text area + + // Sort out amps and stuff + + $row['template'] = str_replace( "&", "&amp;", $row['template'] ); + $row['template'] = str_replace( " ", "&nbsp;", $row['template'] ); + $row['template'] = str_replace( "©", "&copy;", $row['template'] ); + $row['template'] = preg_replace( "/\\\/" , "\" , $row['template'] ); $ADMIN->html .= $SKIN->start_table( $button ); @@ -359,7 +393,7 @@ class ad_settings { $ADMIN->html .= $SKIN->add_td_row( array( "Content", - $SKIN->form_textarea('template', $row['template'], "60", "15"), + $SKIN->form_textarea('template', $row['template'], $INFO['tx'], $INFO['ty']), ) ); $ADMIN->html .= $SKIN->end_form($button); @@ -380,7 +414,7 @@ class ad_settings { function list_wrappers() { - global $IN, $root_path, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; + global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP; $form_array = array(); diff --git a/upload/sources/Admin/admin_functions.php b/upload/sources/Admin/admin_functions.php index f7fcad6b..d28f5ce3 100644 --- a/upload/sources/Admin/admin_functions.php +++ b/upload/sources/Admin/admin_functions.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin functions library @@ -24,11 +26,14 @@ class admin_functions { var $img_url; - var $page_title = "Welcome to the Invision Board Administration CP"; + var $page_title = "Welcome to the Invision Power Board Administration CP"; var $page_detail = "You can set up and customize your board from within this control panel.

    Clicking on one of the links in the left menu pane will show you the relevant options for that administration category. Each option will contain further information on configuration, etc."; var $html; var $errors = ""; var $nav = array(); + var $time_offset = 0; + var $jump_menu = ""; + var $no_jump = 0; function admin_functions() { global $INFO, $IN; @@ -36,6 +41,61 @@ class admin_functions { $this->img_url = $INFO['html_url'].'/sys-img'; $this->base_url = $INFO['board_url']."/admin.".$INFO['php_ext']."?adsess=".$IN['AD_SESS']; + } + + //--------------------------- + // Makes good raw form text + //---------------------------- + + function make_safe($t) + { + $t = stripslashes($t); + + $t = preg_replace( "/\\\/", "\", $t ); + + return $t; + } + + //--------------------------- + // Sets up time offset for ACP use + //---------------------------- + + + function get_date($date="", $method="") + { + global $INFO, $IN, $MEMBER; + + $this->time_options = array( 'JOINED' => $INFO['clock_joined'], + 'SHORT' => $INFO['clock_short'], + 'LONG' => $INFO['clock_long'] + ); + + if (!$date) + { + return '--'; + } + + if (empty($method)) + { + $method = 'LONG'; + } + + $this->time_offset = (($MEMBER['time_offset'] != "") ? $MEMBER['time_offset'] : $INFO['time_offset']) * 3600; + + if ($INFO['time_adjust'] != "" and $INFO['time_adjust'] != 0) + { + $this->time_offset += ($INFO['time_adjust'] * 60); + } + + if ($MEMBER['dst_in_use']) + { + $this->time_offset += 3600; + } + + return gmdate($this->time_options[$method], ($date + $this->time_offset) ); + + + } //**********************************************/ @@ -247,7 +307,7 @@ class admin_functions { function rebuild_config( $new = "" ) { - global $IN, $std, $root_path; + global $IN, $std, $ADMIN, $root_path; //----------------------------------------- // Check to make sure this is a valid array @@ -272,7 +332,7 @@ class admin_functions { // (Imports $INFO) //----------------------------------------- - require $root_path.'conf_global.php'; + require ROOT_PATH.'conf_global.php'; //----------------------------------------- // Rebuild the $INFO hash @@ -292,13 +352,15 @@ class admin_functions { // Rename the old config file //----------------------------------------- - @rename( $root_path.'conf_global.php', $root_path.'conf_global-bak.php' ); - @chmod( $root_path.'conf_global-bak.php', 0777); + @rename( ROOT_PATH.'conf_global.php', ROOT_PATH.'conf_global-bak.php' ); + @chmod( ROOT_PATH.'conf_global-bak.php', 0777); //----------------------------------------- // Rebuild the old file //----------------------------------------- + ksort($INFO); + $file_string = " $v ) @@ -309,14 +371,15 @@ class admin_functions { $v = stripslashes($v); $v = addslashes($v); } + $file_string .= '$INFO['."'".$k."'".']'."\t\t\t=\t'".$v."';\n"; } $file_string .= "\n".'?'.'>'; // Question mark + greater than together break syntax hi-lighting in BBEdit 6 :p - if ( $fh = fopen( $root_path.'conf_global.php', 'w' ) ) + if ( $fh = fopen( ROOT_PATH.'conf_global.php', 'w' ) ) { - fputs ($fh, $file_string, strlen($file_string) ); + fwrite($fh, $file_string, strlen($file_string) ); fclose($fh); } else @@ -364,39 +427,39 @@ class admin_functions { } - $DB->query("SELECT g_id, g_title FROM ibf_groups ORDER BY g_id"); + $DB->query("SELECT perm_id, perm_name FROM ibf_forum_perms ORDER BY perm_id"); while ( $data = $DB->fetch_row() ) { if ($r_array['READ'] != '*') { - if ($IN[ 'READ_'.$data['g_id'] ] == 1) + if ($IN[ 'READ_'.$data['perm_id'] ] == 1) { - $r_array['READ'] .= $data['g_id'].","; + $r_array['READ'] .= $data['perm_id'].","; } } //+---------------------------- if ($r_array['REPLY'] != '*') { - if ($IN[ 'REPLY_'.$data['g_id'] ] == 1) + if ($IN[ 'REPLY_'.$data['perm_id'] ] == 1) { - $r_array['REPLY'] .= $data['g_id'].","; + $r_array['REPLY'] .= $data['perm_id'].","; } } //+---------------------------- if ($r_array['START'] != '*') { - if ($IN[ 'START_'.$data['g_id'] ] == 1) + if ($IN[ 'START_'.$data['perm_id'] ] == 1) { - $r_array['START'] .= $data['g_id'].","; + $r_array['START'] .= $data['perm_id'].","; } } //+---------------------------- if ($r_array['UPLOAD'] != '*') { - if ($IN[ 'UPLOAD_'.$data['g_id'] ] == 1) + if ($IN[ 'UPLOAD_'.$data['perm_id'] ] == 1) { - $r_array['UPLOAD'] .= $data['g_id'].","; + $r_array['UPLOAD'] .= $data['perm_id'].","; } } } @@ -431,18 +494,12 @@ class admin_functions { $html .= "\n"; $html .= " - - - -
    - - -
    - "; + + "; $html .= $this->html; - $html .= "
    "; + $html .= ""; print $html; @@ -461,10 +518,10 @@ class admin_functions { $DB->close_db(); + $navigation = array( "ACP Home" ); + if ( count($this->nav) > 0 ) { - $navigation = array( "ACP Home" ); - foreach ( $this->nav as $idx => $links ) { if ($links[0] != "") @@ -476,16 +533,24 @@ class admin_functions { $navigation[] = $links[1]; } } - - if ( count($navigation) > 0 ) - { - $html = str_replace( "", $SKIN->wrap_nav( implode( " -> ", $navigation ) ), $html ); - } + } + + if ( count($navigation) > 0 ) + { + $html = str_replace( "", $SKIN->wrap_nav( implode( " -> ", $navigation ) ), $html ); + } + + if ( $this->no_jump != 1 ) + { + $html = str_replace( "", $this->build_jump_menu(), $html ); } if ($use_gzip == 1) { - ob_start ('ob_gzhandler'); + $buffer = ob_get_contents(); + ob_end_clean(); + ob_start('ob_gzhandler'); + print $buffer; } //@header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); @@ -508,10 +573,15 @@ class admin_functions { function error($error="", $is_popup=0) { global $IN, $INFO, $DB, $std, $SKIN, $HTTP_REFERER; - $this->page_title = "An Error Occured..."; - $this->page_detail = "The error message returned is displayed below."; + $this->page_title = "Admin CP Message"; + $this->page_detail = " "; - $this->html .= "$error

    Go Back
    "; + $this->html .= "
    +
    Admin CP Message
    +
    + $error +
    +
    "; if ($is_popup == 0) { @@ -580,12 +650,19 @@ class admin_functions { //**********************************************/ function menu() { - global $IN, $std, $PAGES, $CATS, $SKIN; + global $IN, $std, $INFO, $PAGES, $CATS, $SKIN; $links = $this->build_tree(); $html = $SKIN->menu_top() . $links . $SKIN->menu_foot(); - + + // Saving cookie? + + if ( $INFO['menu'] ) + { + $std->my_setcookie( 'acpmenu', $IN['show'] ); + } + print $html; exit(); @@ -595,36 +672,86 @@ class admin_functions { //+------------------------------------------------ function build_tree() { - global $IN, $std, $PAGES, $CATS, $SKIN, $DESC; + global $IN, $std, $INFO, $PAGES, $CATS, $SKIN, $DESC; $html = ""; $links = ""; + foreach($CATS as $cid => $name) { + $ADMIN->jump_menu .= "\n"; + if ( preg_match( "/(?:^|,)$cid(?:,|$)/", $IN['show'] ) ) { - foreach($PAGES[ $cid ] as $pid => $pdata) - { - $links .= $SKIN->menu_cat_link($pdata[1], $pdata[0]); - } + foreach($PAGES[ $cid ] as $pid => $pdata) + { + if ( $pdata[2] != "" ) + { + if ( ! @is_dir( ROOT_PATH.$pdata[2] ) ) + { + continue; + } + } + + $links .= $SKIN->menu_cat_link($pdata[1], $pdata[0], $pdata[3]); + } - $html .= $SKIN->menu_cat_expanded( $name, $links, $cid ); - unset($links); - + $html .= $SKIN->menu_cat_expanded( $name, $links, $cid ); + unset($links); } else { $html .= $SKIN->menu_cat_collapsed( $name, $cid, $DESC[ $cid ] ); } + + $ADMIN->jump_menu .= "\n"; } return $html; } + //------------------------------------------------------------- + // BUILDS JUMP MENU, yay! + //------------------------------------------------------------- + + function build_jump_menu() + { + global $IN, $std, $PAGES, $CATS, $SKIN, $DESC; + + $html = " + "; + + $html .= "
    \n \n
    "; + + return $html; + + } } diff --git a/upload/sources/Admin/admin_pages.php b/upload/sources/Admin/admin_pages.php index e782cf53..bf220aa3 100644 --- a/upload/sources/Admin/admin_pages.php +++ b/upload/sources/Admin/admin_pages.php @@ -10,88 +10,119 @@ $PAGES = array( - 0 => array ( + /*0 => array ( 1 => array( 'IPS Latest News' , 'act=ips&code=news' ), 2 => array( 'Check for updates' , 'act=ips&code=updates' ), 3 => array( 'Documentation' , 'act=ips&code=docs' ), 4 => array( 'Get Support' , 'act=ips&code=support' ), 5 => array( 'IPS Hosting' , 'act=ips&code=host' ), 6 => array( 'Purchase Services' , 'act=ips&code=purchase' ), - + ),*/ + + 1 => array ( + + 1 => array( 'IP Chat' , 'act=pin&code=ipchat' ), + 2 => array( 'IPS Hosting' , 'act=ips&code=host' ), + 3 => array( 'IPB Registration' , 'act=pin&code=reg' ), + 4 => array( 'IPB Copyright Removal', 'act=pin&code=copy' ), + 5 => array( 'Subscription Manager' , 'act=msubs' ), + 6 => array( '|-- Logs' , 'act=msubs&code=searchlog', 'modules/subsmanager' ), + 7 => array( '|-- Currency Set-up' , 'act=msubs&code=currency', 'modules/subsmanager' ), + 8 => array( ''-- Transactions' , 'act=msubs&code=dosearch', 'modules/subsmanager' ), + + ), - 1 => array ( - 1 => array( 'Basic Config', 'act=op&code=url' ), + 2 => array ( + 1 => array( 'General Configuration', 'act=op&code=url' ), 2 => array( 'Security & Privacy' , 'act=op&code=secure' ), 3 => array( 'Topics, Posts & Polls', 'act=op&code=post' ), 4 => array( 'User Profiles' , 'act=op&code=avatars' ), - 5 => array( 'Date Formats' , 'act=op&code=dates' ), + 5 => array( 'Date & Time Formats' , 'act=op&code=dates' ), 6 => array( 'CPU Saving' , 'act=op&code=cpu' ), 7 => array( 'Cookies' , 'act=op&code=cookie' ), 8 => array( 'PM Set up' , 'act=op&code=pm' ), 9 => array( 'Board on/off' , 'act=op&code=board' ), 10 =>array( 'News Set-up' , 'act=op&code=news' ), - 11 =>array( 'Calendar Set-up' , 'act=op&code=calendar' ), + 11 =>array( 'Calendar/Birthday' , 'act=op&code=calendar' ), 12 =>array( 'COPPA Set-up' , 'act=op&code=coppa' ), + 14 =>array( 'Email Set-up' , 'act=op&code=email' ), + 15 =>array( 'Server Environment' , 'act=op&code=phpinfo' ), + 16 =>array( 'Board Guidelines' , 'act=op&code=glines' ), + 17 =>array( 'Full Text Searching', 'act=op&code=fulltext'), + 18 =>array( 'Search Engine Spiders', 'act=op&code=spider' ), + 19 =>array( 'Warning Set-up' , 'act=op&code=warn' ), + 20 =>array( 'IPDynamic Lite Set-up' , 'act=csite', 'sources/dynamiclite' ), ), - 2 => array ( - 1 => array( 'New Category' , 'act=cat&code=new' ), - 2 => array( 'New Forum' , 'act=forum&code=newsp' ), - 3 => array( 'Manage' , 'act=cat&code=edit' ), - 4 => array( 'Re-Order Categories' , 'act=cat&code=reorder'), - 5 => array( 'Re-Order Forums', 'act=forum&code=reorder'), - 6 => array( 'Moderators' , 'act=mod' ), - ), - - 3 => array ( - 1 => array ( 'Pre-Register' , 'act=mem&code=add' ), - 2 => array ( 'Find/Edit User' , 'act=mem&code=edit' ), - 3 => array ( 'Delete User(s)' , 'act=mem&code=del' ), - 4 => array ( 'Ban Settings' , 'act=mem&code=ban' ), - 5 => array ( 'User Title/Ranks' , 'act=mem&code=title'), - 6 => array ( 'Manage User Groups' , 'act=group' ), - 7 => array ( 'Manage Registrations', 'act=mem&code=mod' ), - 8 => array ( 'Custom Profile Fields', 'act=field' ), - 9 => array ( 'Bulk Email Members' , 'act=mem&code=mail' ), + 1 => array( 'New Category' , 'act=cat&code=new' ), + 2 => array( 'New Forum' , 'act=forum&code=newsp' ), + 3 => array( 'Manage Forums' , 'act=cat&code=edit' ), + 4 => array( 'Permission Masks' , 'act=group&code=permsplash'), + 5 => array( 'Re-Order Categories' , 'act=cat&code=reorder' ), + 6 => array( 'Re-Order Forums' , 'act=forum&code=reorder' ), + 7 => array( 'Moderators' , 'act=mod' ), + //8 => array( 'Topic Multi-Moderation', 'act=multimod' ), ), + 4 => array ( - 1 => array( 'Manage Word Filters', 'act=op&code=bw' ), - 2 => array( 'Manage Emoticons', 'act=op&code=emo' ), - 3 => array( 'Manage Help Files', 'act=help' ), - 4 => array( 'Recount Statistics', 'act=op&code=count' ), - 5 => array( 'View Moderator Logs', 'act=modlog' ), - 6 => array( 'View Admin Logs' , 'act=adminlog' ), + 1 => array( 'Moderator\'s CP' , 'act=modcp' , "" , 1 ), + 2 => array( 'Topic Multi-Moderation', 'act=multimod' ), ), + 5 => array ( - 1 => array( 'Manage Board Wrappers' , 'act=wrap' ), - 2 => array( 'Manage Skin Templates' , 'act=templ' ), - 3 => array( 'Manage Style Sheets' , 'act=style' ), - 4 => array( 'Manage Macros' , 'act=image' ), - 5 => array( 'Manage Skin Sets' , 'act=sets' ), - 6 => array( 'Import Skin files' , 'act=import' ), + 1 => array ( 'Pre-Register' , 'act=mem&code=add' ), + 2 => array ( 'Find/Edit/Suspend User' , 'act=mem&code=edit' ), + 3 => array ( 'Delete User(s)' , 'act=mem&code=del' ), + 4 => array ( 'List Suspended Users', 'act=mem&code=advancedsearch&showsusp=1' ), + 5 => array ( 'Ban Settings' , 'act=mem&code=ban' ), + 6 => array ( 'User Title/Ranks' , 'act=mem&code=title'), + 7 => array ( 'Manage User Groups' , 'act=group' ), + 8 => array ( 'Manage Validating', 'act=mem&code=mod' ), + 9 => array ( 'Custom Profile Fields', 'act=field' ), + 10 => array ( 'Bulk Email Members' , 'act=mem&code=mail' ), + 11 => array ( 'Member Tools' , 'act=mtools' ), ), 6 => array ( + 1 => array( 'Manage Word Filters', 'act=op&code=bw' ), + 2 => array( 'Manage Emoticons', 'act=op&code=emo' ), + 3 => array( 'Manage Help Files', 'act=help' ), + 4 => array( 'Recount Statistics', 'act=op&code=count' ), + + ), + + 7 => array ( + 1 => array( 'Manage Skin Sets' , 'act=sets' ), + 2 => array( '|-- Board Wrappers' , 'act=wrap' ), + 3 => array( '|-- HTML Templates' , 'act=templ' ), + 4 => array( '|-- Style Sheets' , 'act=style' ), + 5 => array( ''-- Macros' , 'act=image' ), + 6 => array( 'Import Skin files' , 'act=import' ), + 7 => array( 'Skin Version Control' , 'act=skinfix' ), + + ), + + 8 => array ( 1 => array( 'Manage Languages' , 'act=lang' ), 2 => array( 'Import a Language', 'act=lang&code=import' ), ), - 7 => array ( + 9 => array ( 1 => array( 'Registration Stats' , 'act=stats&code=reg' ), 2 => array( 'New Topic Stats' , 'act=stats&code=topic' ), 3 => array( 'Post Stats' , 'act=stats&code=post' ), - 4 => array( 'Private Message' , 'act=stats&code=msg' ), + 4 => array( 'Personal Message' , 'act=stats&code=msg' ), 5 => array( 'Topic Views' , 'act=stats&code=views' ), ), - 8 => array ( + 10 => array ( 1 => array( 'mySQL Toolbox' , 'act=mysql' ), 2 => array( 'mySQL Back Up' , 'act=mysql&code=backup' ), 3 => array( 'SQL Runtime Info', 'act=mysql&code=runtime' ), @@ -99,33 +130,44 @@ $PAGES = array( 5 => array( 'SQL Processes' , 'act=mysql&code=processes' ), ), - - + 11 => array( + 1 => array( 'View Moderator Logs', 'act=modlog' ), + 2 => array( 'View Admin Logs' , 'act=adminlog' ), + 3 => array( 'View Email Logs' , 'act=emaillog' ), + 4 => array( 'View Bot Logs' , 'act=spiderlog' ), + 5 => array( 'View Warn Logs' , 'act=warnlog' ), + ), ); $CATS = array ( - 0 => "IPS Services", - 1 => "Board Settings", - 2 => 'Forum Control', - 3 => 'Users and Groups', - 4 => 'Administration', - 5 => 'Skins & Templates', - 6 => 'Languages', - 7 => 'Statistic Center', - 8 => 'SQL Management', + //0 => "IPS Services", + 1 => "IPB Enhancements", + 2 => "System Settings", + 3 => 'Forum Control', + 4 => 'Forum Moderation', + 5 => 'Users and Groups', + 6 => 'Administration', + 7 => 'Skins & Templates', + 8 => 'Languages', + 9 => 'Statistic Center', + 10 => 'SQL Management', + 11 => 'Board Logs', ); $DESC = array ( - 0 => "Get IPS latest news, documentation, request support, purchase extra services and more...", - 1 => "Edit forum settings such as cookie paths, security features, posting abilities, etc", - 2 => "Create, edit, remove and re-order categories, forums and moderators", - 3 => "Edit, register, remove and ban members. Set up member titles and ranks. Manage User Groups and moderated registrations", - 4 => "Manage Help Files, Bad Word Filters and Emoticons", - 5 => "Manage templates, skins, colours and images.", - 6 => "Manage language sets", - 7 => "Get registration and posting statistics", - 8 => "Manage your SQL database; repair, optimize and export data", + // 0 => "Get IPS latest news, documentation, request support, purchase extra services and more...", + 1 => "Set up and manage your IPB plug in services", + 2 => "Edit forum settings such as cookie paths, security features, posting abilities, etc", + 3 => "Create, edit, remove and re-order categories, forums and moderators", + 4 => "Access the moderators CP and manage topic multi-moderation", + 5 => "Edit, register, remove and ban members. Set up member titles and ranks. Manage User Groups and moderated registrations", + 6 => "Manage Help Files, Bad Word Filters and Emoticons", + 7 => "Manage templates, skins, colours and images.", + 8 => "Manage language sets", + 9 => "Get registration and posting statistics", + 10 => "Manage your SQL database; repair, optimize and export data", + 11 => "View admin, moderator and email logs (Root admin only)", ); diff --git a/upload/sources/Admin/admin_skin.php b/upload/sources/Admin/admin_skin.php index 0091727a..5fd70110 100644 --- a/upload/sources/Admin/admin_skin.php +++ b/upload/sources/Admin/admin_skin.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Admin HTML stuff library @@ -44,9 +46,30 @@ class admin_skin { //+-------------------------------------------------------------------- //+-------------------------------------------------------------------- - function js_help_link($help="") + function js_pop_win() { - return "( base_url}&act=quickhelp&id=$help','Help','width=250,height=400,resizable=yes,scrollbars=yes');\">Quick Help )"; + + return " + + "; + + } + + function js_help_link($help="", $text="Quick Help") + { + return "( base_url}&act=quickhelp&id=$help','Help','width=250,height=400,resizable=yes,scrollbars=yes'); return false;\">$text )"; } @@ -179,7 +202,7 @@ class admin_skin { name = 'Image & Macro Set Title'; } - var valid = 'abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.():;~+-_'; + var valid = 'abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.()[]:;~+-_'; var ok = 1; var temp; @@ -203,6 +226,12 @@ class admin_skin { "; } + function make_page_jump($tp="", $pp="", $ub="" ) + { + global $IN, $INFO; + return "Pages:"; + } + //+-------------------------------------------------------------------- //+-------------------------------------------------------------------- @@ -258,7 +287,26 @@ class admin_skin { $colspan = " colspan='".$this->td_colspan."' "; } - $html .= "\n"; + $html .= "\n"; + } + + $html .= ""; + + return $html; + + } + + //+-------------------------------------------------------------------- + + function end_form_standalone($text = "", $js = "") + { + + $html = ""; + $colspan = ""; + + if ($text != "") + { + $html .= "
    \n"; } $html .= ""; @@ -282,20 +330,20 @@ class admin_skin { //+-------------------------------------------------------------------- - function form_input($name, $value="", $type='text', $js="") { + function form_input($name, $value="", $type='text', $js="", $size="30") { if ($js != "") { $js = ' '.$js.' '; } - return ""; + return ""; } function form_simple_input($name, $value="", $size='5') { - return ""; + return ""; } @@ -303,7 +351,7 @@ class admin_skin { function form_textarea($name, $value="", $cols='60', $rows='5', $wrap='soft') { - return ""; + return ""; } @@ -316,7 +364,7 @@ class admin_skin { $js = ' '.$js.' '; } - $html = "\n"; foreach ($list as $k => $v) { @@ -340,19 +388,68 @@ class admin_skin { //+-------------------------------------------------------------------- - function form_yes_no( $name, $default_val="" ) { + function form_multiselect($name, $list=array(), $default=array(), $size=5, $js="") { - $yes = "Yes   "; - $no = "   No"; + if ($js != "") + { + $js = ' '.$js.' '; + } + + //$html = "\n"; + foreach ($list as $k => $v) + { + + $selected = ""; + + if ( count($default) > 0 ) + { + if ( in_array( $v[0], $default ) ) + { + $selected = ' selected="selected"'; + } + } + + $html .= "\n"; + } + + $html .= "\n\n"; + + return $html; + + + } + + //+-------------------------------------------------------------------- + + function form_yes_no( $name, $default_val="", $js=array() ) { + + $y_js = ""; + $n_js = ""; + + if ( $js['yes'] != "" ) + { + $y_js = $js['yes']; + } + + if ( $js['no'] != "" ) + { + $n_js = $js['no']; + } + + $yes = "Yes   "; + $no = "   No"; + if ($default_val == 1) { - $yes = "Yes   "; + + $yes = "Yes   "; } else { - $no = "   No"; + $no = "   No"; } @@ -362,6 +459,22 @@ class admin_skin { //+-------------------------------------------------------------------- + function form_checkbox( $name, $checked=0, $val=1, $js=array() ) { + + if ($checked == 1) + { + + return ""; + } + else + { + return ""; + } + + } + + //+-------------------------------------------------------------------- + function build_group_perms( $read='*', $write='*', $reply='*', $upload='*' ) { global $DB; @@ -444,147 +557,216 @@ class admin_skin { } + function checkcol(IDnumber,status) { + + var f = document.theAdminForm; + + str_part = ''; + + if (IDnumber == 1) { str_part = 'READ' } + if (IDnumber == 2) { str_part = 'REPL' } + if (IDnumber == 3) { str_part = 'STAR' } + if (IDnumber == 4) { str_part = 'UPLO' } + + for (var i = 0 ; i < f.elements.length; i++) + { + var e = f.elements[i]; + + if ( (e.name != 'UPLOAD_ALL') && (e.name != 'READ_ALL') && (e.name != 'REPLY_ALL') && (e.name != 'START_ALL') && (e.type == 'checkbox') ) + { + s = e.name; + a = s.substring(0, 4); + + if (a == str_part) + { + if ( status == 1 ) + { + e.checked = true; + if (IDnumber == 1) { f.READ_ALL.checked = true; } + if (IDnumber == 2) { f.REPLY_ALL.checked = true; } + if (IDnumber == 3) { f.START_ALL.checked = true; } + if (IDnumber == 4) { f.UPLOAD_ALL.checked = true; } + } + else + { + e.checked = false; + if (IDnumber == 1) { f.READ_ALL.checked = false; } + if (IDnumber == 2) { f.REPLY_ALL.checked = false; } + if (IDnumber == 3) { f.START_ALL.checked = false; } + if (IDnumber == 4) { f.UPLOAD_ALL.checked = false; } + } + } + } + } + } + + function checkrow(IDnumber,status) { + + var f = document.theAdminForm; + + str_part = ''; + + if ( status == 1 ) + { + mystat = 'true'; + } + else + { + mystat = 'false'; + } + + eval( 'f.READ_'+IDnumber+'.checked='+mystat ); + eval( 'f.REPLY_'+IDnumber+'.checked='+mystat ); + eval( 'f.START_'+IDnumber+'.checked='+mystat ); + eval( 'f.UPLOAD_'+IDnumber+'.checked='+mystat ); + + obj_checked(1); + obj_checked(2); + obj_checked(3); + obj_checked(4); + } + //--> "; + + $html .= $this->add_td_basic( "GLOBAL: All current and future permission masks", "left", "pformstrip" ); - - - $html .= " - - - - - - - - - \n"; - //+------------------------------------------------------------------------- if ($read == '*') { - $html .= "\n"; + $html_read = "\n"; } else { - $html .= "\n"; + $html_read = "\n"; } //+------------------------------------------------------------------------- if ($reply == '*') { - $html .= "\n"; + $html_reply = "\n"; } else { - $html .= "\n"; + $html_reply = "\n"; } //+------------------------------------------------------------------------- if ($write == '*') { - $html .= "\n"; + $html_start = "\n"; } else { - $html .= "\n"; + $html_start = "\n"; } if ($upload == '*') { - $html .= "\n"; + $html_upload = "\n"; } else { - $html .= "\n"; + $html_upload = "\n"; } //+------------------------------------------------------------------------- - - - $html .= " - - - - \n"; - - $DB->query("SELECT g_id, g_title FROM ibf_groups ORDER BY g_title ASC"); + + $html .= $this->add_td_row( array( "All current and future permission masks", + "
    $html_read
    ", + "
    $html_reply
    ", + "
    $html_start
    ", + "
    $html_upload
    ", + ) ); + + //+------------------------------------------------------------------------- + + $html .= $this->add_td_basic( "OR: Adjust permissions per mask below", "left", "pformstrip" ); + + + $DB->query("SELECT * FROM ibf_forum_perms ORDER BY perm_name ASC"); while ( $data = $DB->fetch_row() ) { - - $html .= " - \n"; - if ($read == '*') { - $html .= ""; + $html_read = ""; } - else if ( preg_match( "/(^|,)".$data['g_id']."(,|$)/", $read ) ) + else if ( preg_match( "/(^|,)".$data['perm_id']."(,|$)/", $read ) ) { - $html .= ""; + $html_read = ""; } else { - $html .= ""; + $html_read = ""; } //+---------------------------------------------------------------------------------------- if ($reply == '*') { - $html .= ""; + $html_reply = ""; } - else if ( preg_match( "/(?:^|,)".$data['g_id']."(?:,|$)/", $reply ) ) + else if ( preg_match( "/(?:^|,)".$data['perm_id']."(?:,|$)/", $reply ) ) { - $html .= ""; + $html_reply = ""; } else { - $html .= ""; + $html_reply = ""; } //+---------------------------------------------------------------------------------------- if ($write == '*') { - $html .= ""; + $html_start = ""; } - else if ( preg_match( "/(?:^|,)".$data['g_id']."(?:,|$)/", $write ) ) + else if ( preg_match( "/(?:^|,)".$data['perm_id']."(?:,|$)/", $write ) ) { - $html .= ""; + $html_start = ""; } else { - $html .= ""; + $html_start = ""; } //+---------------------------------------------------------------------------------------- if ($upload == '*') { - $html .= ""; + $html_upload = ""; } - else if ( preg_match( "/(?:^|,)".$data['g_id']."(?:,|$)/", $upload ) ) + else if ( preg_match( "/(?:^|,)".$data['perm_id']."(?:,|$)/", $upload ) ) { - $html .= ""; + $html_upload = ""; } else { - $html .= ""; + $html_upload = ""; } - $html .= "\n\n"; + $html .= $this->add_td_row( array( "
    {$data['perm_name']}    
    ", + "
    $html_read
    ", + "
    $html_reply
    ", + "
    $html_start
    ", + "
    $html_upload
    ", + ) ); } - $html .= "
    Member GroupRead TopicsReply to TopicsStart TopicsCan Upload
    ALL MEMBER GROUPS
    (current and future)

    OR adjust the member groups individually below
     
    {$data['g_title']} »Read Read Read Reply Reply Reply Start Start Start Upload Upload Upload 
     
    \n\n"; + $html .= $this->add_td_row( array( " ", + "
    Select:  
    ", + "
    Select:  
    ", + "
    Select:  
    ", + "
    Select:  
    ", + ) ); return $html; @@ -612,37 +794,35 @@ class admin_skin { function start_table( $title="", $desc="") { - if ($desc != "") - { - $desc = "
        $desc"; - } - - if ($title != "") { $this->has_title = 1; - $html .= " - • $title $desc - - - - "; + $html .= "
    +
    $title
    \n"; + + if ( $desc != "" ) + { + $html .= "
    $desc
    \n"; + } } - $html .= "
    -
    - - -
    - "; + $html .= "\n
    "; if (isset($this->td_header[0])) { $html .= "\n"; + // Auto remove two   only headers.. + + if ( $this->td_header[0][0] == ' ' && $this->td_header[1][0] == ' ' && ( ! isset( $this->td_header[2][0] ) ) ) + { + $this->td_header[0][0] = '{none}'; + $this->td_header[1][0] = '{none}'; + } + foreach ($this->td_header as $td) { if ($td[1] != "") @@ -654,7 +834,10 @@ class admin_skin { $width = ""; } - $html .= "\n"; + if ($td[0] != '{none}') + { + $html .= "\n"; + } $this->td_colspan++; } @@ -669,7 +852,7 @@ class admin_skin { //+-------------------------------------------------------------------- - function add_td_row( $array, $css="" ) { + function add_td_row( $array, $css="", $align='middle' ) { if (is_array($array)) { @@ -694,11 +877,20 @@ class admin_skin { $text = $array[$i][0]; $colspan = $array[$i][1]; - $html .= "\n"; + $html .= "\n"; } else { - $html .= "\n"; + if ($this->td_header[$i][1] != "") + { + $width = " width='{$this->td_header[$i][1]}' "; + } + else + { + $width = ""; + } + + $html .= "\n"; } } @@ -724,7 +916,7 @@ class admin_skin { } - $html .= "\n"; + $html .= "\n"; } return $html; @@ -756,11 +948,11 @@ class admin_skin { { $this->has_title = 0; - return "
    {$td[0]}{$td[0]}".$text."".$text."".$array[$i]."".$array[$i]."
    $text
    $text
    "; + return "
    \n\n"; } else { - return ""; + return "\n\n"; } } @@ -778,40 +970,91 @@ class admin_skin { function get_css() { return ""; } @@ -838,6 +1102,7 @@ class admin_skin { function print_top($title="",$desc="") { + global $INFO, $IN; $css = $this->get_css(); @@ -847,61 +1112,85 @@ class admin_skin { $css + - - + top_extra}> +
    $title
    +
    - + + - - - - -
    - - - - -
    - - - - - - - - "; +
    $desc
    +
    "; } function wrap_nav($links) { - return " - -
    $title
    $desc
     
    - - - - -
    $links
    - - "; + return "\n\n"; } //+-------------------------------------------------------------------- function print_foot() { - return "
    -
    - - - © 2002 Invision Board (www.invisionboard.com) - + return "
    +
    Quick Jump
    +
    Invision Power Board © 2003 IPS, Inc.
    "; } @@ -917,55 +1206,73 @@ class admin_skin { function menu_top() { global $INFO; + + + $pop_win = $this->js_pop_win(); return " Menu + $pop_win - - - - - -
    - - - - - - - - - - -
    - - - - - - - -
    Administration Menu
    -
    - - Expand All | Reduce All -
    - ACP Home | Board Home -
    - - - - -
    "; + +
    +
    +
    +  Expand · Reduce Menu +
     ACP · Board Home +
     IPB Documentation +
     Your ACP prefs +
    +
    +
    + "; } @@ -973,16 +1280,8 @@ class admin_skin { function menu_foot() { - return "
    -
    -
    - + return " + "; } @@ -994,20 +1293,14 @@ class admin_skin { global $IN; return " - - - - - $links -
    - - - - - -
      Collapse Category  $name
    -
    -
    "; +
    +
    + Collapse Category + $name +
    +
    $links
    +
    +
    \n"; } @@ -1018,30 +1311,33 @@ class admin_skin { function menu_cat_collapsed($name="", $id = "", $desc="") { global $IN; - return " - - - - - - -
    - - - - - -
      Expand Category  $name
    -
    $desc
    -
    "; + return "
    +
    + Collapse Category + $name +
    +
    $desc
    +
    +
    \n"; } //+-------------------------------------------------------------------- - function menu_cat_link($url="", $name="") { - - return "   $name"; + function menu_cat_link($url="", $name="", $urltype=0) + { + global $INFO; + + if ( $urltype == 1 ) + { + $theurl = $INFO['board_url'].'/index.'.$INFO['php_ext'].'?'; + } + else + { + $theurl = $this->base_url; + } + + return " $name
    "; } @@ -1052,7 +1348,7 @@ class admin_skin { global $IN, $ibforums; $frames = " - Invision Board Administration Center + Invision Power Board Administration Center diff --git a/upload/sources/Admin/index.html b/upload/sources/Admin/index.html new file mode 100644 index 00000000..52a588b2 --- /dev/null +++ b/upload/sources/Admin/index.html @@ -0,0 +1 @@ + Invision Power Board - Bulletin Board System

    403: Invision Power Board -> Forbidden


    You have reached this Page in error, please use your back button to return to Invision Board.
    Invision Power Board \ No newline at end of file diff --git a/upload/sources/Admin/skin_info.php b/upload/sources/Admin/skin_info.php index e59fd2cd..9768c28a 100644 --- a/upload/sources/Admin/skin_info.php +++ b/upload/sources/Admin/skin_info.php @@ -1,6 +1,58 @@ "Web Page Body", +'TABLE, TR, TD' => "Default table", +'a:link, a:visited, a:active' => "Default link", +'a:hover' => "Default link hover", +'.googlebottom, .googlebottom a:link, .googlebottom a:visited, .googlebottom a:active' => "Simple Search Results: Dark", +'.googlish, .googlish a:link, .googlish a:visited, .googlish a:active' => "Simple Search Results: Topic Link", +'.googlesmall, .googlesmall a:link, .googlesmall a:active, .googlesmall a:visited' => "Simple Search Results: Small Text", +'option.sub' => "Search Form: Select forums box: subcat colour", +'.caldate' => "Calendar: Date", +'#ucpmenu' => "User CP: Menu colour", +'#ucpcontent' => "User CP: Content colour", +'#logostrip' => "Board Header: Logo Strip", +'#submenu' => "Board Header: Icon Strip", +'#submenu a:link, #submenu a:visited, #submenu a:active' => "Board Header: Icon Strip link colours", +'#userlinks' => "Board Header: Member Bar", +'.activeuserstrip' => 'Forums & Topics: Active users bar', +'.pformstrip' => 'Global: Sub heading', +'.pformleft' => 'Global: left side table cell', +'.pformleftw' => 'Global: left side table cell wide', +'.pformright' => 'Global: right side table cell', +'.post1' => 'Post View: Alt colour #1', +'.post2' => 'Post View: Alt colour #2', +'.postlinksbar' => 'Post View: Track topic, etc links', +'.row1' => 'Global: Alt row #1', +'.row2' => 'Global: Alt row #2', +'.row3' => 'Global: Alt row #3', +'.row4' => 'Global: Alt row #4', +'.darkrow1' => 'Global: Alt dark row #1', +'.darkrow2' => 'Global: Alt dark row #2', +'.darkrow3' => 'Global: Alt dark row #3', +'.hlight' => 'Msgr: Inbox row selected', +'.dlight' => 'Msgr: Inbox row not selected', +'.titlemedium' => 'Global: Sub heading (minor)', +'.titlemedium a:link, .titlemedium a:visited, .titlemedium a:active' =>'Global: Sub heading (minor) Links', +'.maintitle' => 'Global: Main table heading', +'.maintitle a:link, .maintitle a:visited, .maintitle a:active' => 'Global: Main table heading Links', +'.plainborder' => 'Global: Table alt #1', +'.tableborder' => 'Global: Table cellspacing colour', +'.tablefill' => 'Global: Table alt #2', +'.tablepad' => 'Global: Table alt #3', +'.desc' => 'Forum View: Last post info', +'.signature' => 'Post View: Signature', +'.normalname' => 'Post View: Member name (reg)', +'.unreg' => 'Post View: Unreg name', +'.searchlite' => 'Global: Search highlighting', +'#QUOTE' => 'Quote Box', +'#CODE' => 'Code Box', + +); + $skin_names = array( 'skin_boards' => array( @@ -10,8 +62,8 @@ $skin_names = array( ), 'skin_buddy' => array( - 'Browse Buddy Sections', - 'Elements for the browse buddy feature, including links and search boxes', + 'myAssistant Sections', + 'Elements for the myAssistant feature, including links and search boxes', ), 'skin_calendar'=> array( 'Calendar Sections', @@ -95,6 +147,11 @@ $skin_names = array( 'Elements for the moderators control panel sections.', ), + 'skin_csite' => array( + 'IP Dynamic Lite', + 'Elements for IP Dynamic Lite.', + ), + 'skin_ucp' => array( 'User Control Panel Section', @@ -103,7 +160,423 @@ $skin_names = array( ); +$bit_names['skin_boards'] = array( +'PageTop' => '1: Board Index Page Top', +'newslink' => '2: Latest News Link', +'CatHeader_Expanded' => '3: Start Category Table', +'ForumRow' => '4: +-- Board Index Forum Row', +'forum_redirect_row' => '5: +-- Board Index Redirect Forum Row', +'subforum_img_with_link' => '6: +-- ---- Mark forum as read (subforum) post marker', +'forum_img_with_link' => '7: +-- ---- Mark forum as read post marker', +'forumrow_lastunread_link' => '8: +-- ---- Forum Row - Last unread link', +'subheader' => '9: +-- Sub Forum Row', +'end_this_cat' => '10: +-- End Category Row', +'end_all_cats' => '11: End Category Table', +'BoardInformation' => '12: Page Bottom Links - Moderating Team,etc', +'quick_log_in' => '13: Quick Log In Box', +'stats_header' => '14: Start Board Statistics Table', +'ActiveUsers' => '15: +-- Active Users Row', +'active_list_sep' => '16: +-- Active list character seperator', +'active_user_links' => '17: +-- Active User Links', +'bottom_links' => '18: +-- Page Bottom Links', +'birthdays' => '19: +-- Members Birthdays Row', +'calendar_events' => '20: +-- Forthcoming Calendar Events Row', +'ShowStats' => '21: +-- Board Stats: Posts, Topics, etc Row', +'stats_footer' => '22: End Board Statistics Table', +); + +$bit_names['skin_buddy'] = array ( +'buddy_js' => '1: myAssistant Javascript source', +'build_away_msg' => '2: New posts and topics info', +'append_view' => '3: Javascript redirect link wrapper', +'main' => '4: Main myAssistant HTML', +'login' => '5: Not logged in HTML', +'closelink' => '6: Close window links', +); + +$bit_names['skin_calendar'] = array ( +'cal_main_content' => '1: Main Month Display HTML', +'cal_birthday_start' => '2: +-- Start Birthday Entry', +'cal_birthday_entry' => '3: +-- Birthday Entry Link', +'cal_birthday_end' => '4: End Birthday Entry', +'cal_edit_button' => '5: Edit Entry Button', +'cal_page_events_start'=> '6: Start Event Page', +'cal_show_event' => '7: +-- Show Event Page', +'cal_events_end' => '8: End Day Events', +'cal_date_cell_today' => '9: Today\'s Calendar Cell', +'cal_date_cell' => '10: Date Cell', +'cal_blank_cell' => '11: Blank Cell', +'cal_events_start' => '12: Cell Start Event Entry', +'cal_events_wrap' => '13: Event cell wrap', +'cal_day_bit' => '14: Top Bar Weekday Name', +'cal_new_row' => '15: Start New Calendar Row', +); + +$bit_names['skin_emails'] = array( +'pager_header' => '1: Pop-up Header', +'yahoo_body' => '2: +-- Yahoo Body', +'msn_body' => '3: +-- MSN Body', +'aol_body' => '4: +-- AIM Body', +'icq_body' => '5: +-- ICQ Body', +'end_table' => '6: End Table', +'report_form' => '7: Report this post form', +'send_form' => '8: Send Email form', +'show_address' => '9: Show email address', +'forward_form' => '10: Forward Topic form', +'forum_jump' => '11: Forum Jump', +'sent_screen' => '12: Email sent screen' +); +$bit_names['skin_forum'] = array( +'page_title' => '1: Page Title', +'show_rules' => '2: Forum Rules Page', +'show_rules_full' => '3: Show Forum Rules Full', +'show_rules_link' => '4: Forum Rules Link', +'PageTop' => '5: Forum Page Header', +'render_pinned_start' => '6: +-- Important Topics Title Start', +'render_pinned_row' => '7: +-- Pinned Topic Entry', +'render_pinned_end' => '8: +-- Important Topics Title End', +'RenderRow' => '9: +-- Normal Topic Entry', +'forum_active_users' => '10: +-- Users Browsing Forum Box', +'TableEnd' => '11: Forum Page End', +'show_sub_link' => '12: Subscribe to Forum Link', +'show_no_matches' => '13: No Topics to Display Message', +'Forum_log_in' => '14: Forum Log In Page', +'who_link' => '15: Who Posted? Link', +); +$bit_names['skin_global'] = array( +'BoardHeader' => '1: Board Header (logo, links, etc)', +'ibf_banner' => '2: +--IPS Hosting Banner (not activated)', +'Member_bar' => '3: +--Member Bar WITH Messenger Links', +'Member_no_usepm_bar' => '4: +--Member Bar NO Messenger Links', +'Guest_bar' => '5: +--Guest Bar', +'admin_link' => '6: +--Link to Admin CP', +'mod_link' => '7: +--Link to Mod CP', +'start_nav' => '8: +--Navigation Start', +'end_nav' => '9: +--Navigation End', +'Error' => '10: Error Page', +'error_log_in' => '11: Error Page Log in Box', +'board_offline' => '12: Offline Board Message', +'PM_popup' => '13: New PM Pop up Javascript', +'Redirect' => '14: Redirect Page', +); +$bit_names['skin_help'] = array ( +'start' => '1: Start Help Page', +'display' => '2: Show Help Page', +'row' => '3: Show Help Topic Title', +'no_results' => '4: No Help Search Results', +'end' => '5: End Help Page', +); +$bit_names['skin_legends'] = array( +'page_header' => '1: Page Header', +'find_user_one' => '2: Find User Form', +'find_user_error' => '3: Find User Error', +'find_user_final' => '4: Find User Result', +'emoticon_javascript' => '5: Emoticons Javascript', +'emoticons_row' => '6: Emoticons Row', +'page_footer' => '7: Page Footer' +); +$bit_names['skin_login'] = array( +'ShowForm' => '1: Log In Form', +'errors' => '2: Log In Errors Box', +'ShowLogOutForm' => '3: Log Out Form (no longer used)' +); +$bit_names['skin_mlist'] = array( +'start' => '1: Start Page', +'Page_header' => '2: Page Header', +'show_row' => '3: +-- Member List Row', +'no_results' => '4: +-- No Results', +'Page_end' => '5: Page Footer', +'end' => '6: End Page', +); +$bit_names['skin_mod'] = array( +'table_top' => "1: Start Table", +'mod_exp' => "2: Action Explanation", +'move_form' => "3: Move Topic Form", +'merge_body' => "4: Merge Topics Form", +'split_body' => "5: Split Topic Form", +'split_row' => "6: +-- Split Topics Post Row", +'split_end_form' => "7: Split Topic End Form", +'poll_select_form' => "8: Edit Poll: Form", +'poll_entry' => "9: Edit Poll: Poll Choice Row", +'topictitle_fields' => "10: Edit Topic Title", +'end_form' => "11: End Form", +'delete_js' => "12: Delete Javascript", +'topic_history' => "13: Topic History Table", +'mod_log_start' => "14: Mod Logs: Start Entries", +'mod_log_none' => "15: +-- Mod Logs: No Entries", +'mod_log_row' => "16: +-- Mod Logs: Entry", +'mod_log_end' => "17: Mod Logs: End Entries", +'forum_jump' => "18: Forum Jump", +); +$bit_names['skin_modcp'] = array ( +'splash' => "0: Depreciated (Not Used)", +'mod_cp_start' => "1: Mod CP Start", +'modpost_topicentry' => "2: Mod Q: Topic Entry", +'modtopics_end' => "3: Mod Q: Topics: End", +'mod_topic_title' => "4: Mod Q: Topic Title", +'mod_postentry' => "5: Mod Q: Post Entry", +'mod_postentry_checkbox' => "6: Mod Q: Post Entry check box", +'mod_topic_spacer' => "7: Mod Q: Topic Spacer", +'modpost_topicstart' => "8: Mod Q: Post: Topic Start", +'modtopicview_start' => "9: Mod Q: Topic: Start", +'modtopics_start' => "10: Mod Q: Topics Overview Start", +'modpost_topicend' => "11: Mod Q: Post :Topic End", +'prune_confirm' => "12: Prune Posts: Confirm Box", +'prune_splash' => "13: Prune Posts: Main Form", +'ip_start_form' => "14: IP Search: Start Form", +'ip_post_results' => "15: IP Post Entry", +'ip_member_start' => "16: IP Member Start", +'ip_member_row' => "17: IP Member Row", +'ip_member_end' => "18: IP Member End", +'find_user' => "19: Find User: I", +'find_two' => "20: Find User: II", +'edit_user_form' => "21: Edit User Form", +'results' => "22: Result Screen", +'mod_simple_page' => "23: Display Error/Result Box", +'start_topics' => "24: Topic View: Start", +'topic_row' => "25: Topic View: Entry", +'show_no_topics' => "26: Topic View: None Found", +'topics_end' => "27: Topic View: End", +'cat_row' => "28: Category Row", +'forum_page_start' => "29: Forum View Start", +'forum_row' => "30: Forum View Entry", +'forum_page_end' => "31: Forum View End", +'move_checked_form_start' => "32: Move Form Start", +'move_checked_form_entry' => "33: Move Form Entry", +'move_checked_form_end' => "34: Move Form End", +'mod_exp' => "35: Action Explanation", +'end_form' => "36: End Form", +); + +$bit_names['skin_msg'] = array( +'Address_header' => "1: Address Book: Header", +'Address_table_header' => "2: +-- Address Book: Table Header", +'address_add' => "3: +-- Address Book: Add Entry", +'address_edit' => "4: +-- Address Book: Edit Entry", +'render_address_row' => "5: +-- Address Book: Show Entry", +'Address_none' => "6: +-- Address Book: No Entries", +'end_address_table' => "7: Address Book: Footer", +'archive_html_header' => "8: Archive PM: Header", +'archive_form' => "9: +-- Archive PM: Form", +'archive_complete' => "10: +-- Archive PM: Success Page", +'archive_html_entry' => "11: +-- Archive PM: HTML Entry", +'archive_html_footer' => "12: Archive PM: HTML Entry Footer", +'unsent_table_header' => "13: Unsent PM: Table Header", +'unsent_row' => "14: +-- Unsent PM: Entry", +'unsent_end' => "15: Unsent PM: End", +'trackUNread_table_header' => "16: Track: Unread: Header", +'trackUNread_row' => "17: +-- Track: Unread: Entry", +'trackUNread_end' => "18: Track: Unread: End", +'trackread_table_header' => "19: Track: Read: Header", +'trackread_row' => "20: +-- Track: Read: Entry", +'trackread_end' => "21: Track: Read: End", +'inbox_table_header' => "22: Msg List: Inbox Header", +'No_msg_inbox' => "23: +-- Msg List: No Entries", +'inbox_row' => "24: +-- Msg List: PM Entry", +'end_inbox' => "25: Msg List: End InBox", +'prefs_header' => "26: Folders: Header", +'prefs_row' => "27: +-- Folders: Entry", +'prefs_add_dirs' => "28: +-- Folders: Add Folder Entry", +'prefs_footer' => "29: Folders: Footer", +'send_form_header' => "30: Send PM: Header", +'Send_form' => "31: +-- Send PM: Main Form", +'preview' => "32: +-- Send PM: Preview Message Box", +'pm_errors' => "33: +-- Send PM: Error Box", +'mass_pm_box' => "34: +-- Send PM: BCC Box", +'send_form_footer' => "35: Send PM: Form Footer", +'Render_msg' => "36: Show Received PM", +'pm_popup' => "37: New Messages POP UP HTML", +); +$bit_names['skin_online'] = array( +'end' => "0: Depreciated (Not Used)", +'Page_header' => "1: Header", +'show_row' => "2: Entry", +'Page_end' => "3: Footer", +); +$bit_names['skin_poll'] = array( +'ShowPoll_header' => "1: Show Poll: Header", +'ShowPoll_Form_header' => "2: Show Poll: Form Header", +'Render_row_results' => "3: Show Poll: Result Row", +'Render_row_form' => "4: Show Poll: Choice Radio Button", +'ShowPoll_footer' => "5: Show Poll: Footer", +'delete_link' => "6: Delete Link", +'edit_link' => "7: Edit Link", +); +$bit_names['skin_post'] = array( + +'calendar_start_edit_form' => "1: Calendar: Start Edit Form", +'calendar_event_title' => "2: +-- Calendar: Event Title", +'calendar_start_form' => "3: +-- Calendar: New Event Start Form", +'calendar_delete_box' => "4: +-- Calendar: Delete Box", +'calendar_choose_date' => "5: +-- Calendar: Choose Date", +'calendar_admin_group_box' => "6: +-- Calendar: Admin Group Box", +'calendar_event_type' => "7: +-- Calendar: Event Type", +'calendar_end_form' => "8: Calendar: End Form", +'TopicSummary_top' => "9: Post: Topic Summary Start", +'TopicSummary_body' => "10: +-- Post: Topic Summary Body", +'TopicSummary_bottom' => "11: Post: Topic Summary End", +'table_structure' => "12: Post: Table Structure", +'table_top' => "13: Post: Table Top", +'preview' => "14: +-- Post: Preview Box", +'errors' => "15: +-- Post: Errors Box", +'nameField_unreg' => "16: +-- Post: Guest Name Fields", +'nameField_reg' => "17: +-- Post: Registered Member Name Fields", +'postbox_buttons' => "18: +-- Post: Code Buttons & Post Text area", +'PostIcons' => "19: +-- Post: Post Icons Box", +'topictitle_fields' => "20: +-- Post: Topic Title Fields", +'Upload_field' => "21: +-- Post: Upload Field", +'edit_upload_field' => "22: +-- Post: Edit Upload Field", +'add_edit_box' => "23: +-- Post: Append Edited By.. checkbox", +'mod_options' => "24: +-- Post: Mod Options Drop Down", +'quote_box' => "25: +-- Post: Quote Text area", +'smilie_table' => "26: +-- Post: Smilie Box", +'EndForm' => "27: Post: End Form", +'poll_box' => "28: Poll: Options Text area", +'pm_postbox_buttons' => "29: PM: Code Buttons & msg Text area", +); +$bit_names['skin_printpage'] = array( +'pp_header' => "1: Start Page", +'pp_postentry' => "2: Post Entry", +'pp_end' => "3: End Page", +'choose_form' => "4: Client Choose Form", +); +$bit_names['skin_profile'] = array( +'show_profile' => "1: Member Profile Page", +'user_edit' => "2: User Edit Links", +'custom_field' => "3: Custom Field", +); +$bit_names['skin_register'] = array( +'show_authorise' => "1: Reg. Complete, Authorise Needed Msg", +'show_preview' => "2: Reg. Complete, Admin Authorise Msg", +'errors' => "3: Errors Box", +'ShowForm' => "4: Main Registration Form", +'reg_antispam' => "5: Reg Flood Bot Code Box", +'optional_title' => "6: Custom Fields Start", +'field_entry' => "7: Custom Fields Entry", +'field_textarea' => "8: Custom Fields Textarea", +'field_textinput' => "9: Custom Fields Input", +'field_dropdown' => "10: Custom Fields Drop Down", +'coppa_start' => "11: COPPA Start", +'coppa_two' => "12: COPPA Middle", +'coppa_form' => "13: COPPA Form", +'lost_pass_form' => "14: Lost Password Form", +'show_dumb_form' => "15: User Validate Account Form", +); +$bit_names['skin_search'] = array( +'Form' => "1: Main Search Form", +'RenderRow' => "2: Results: Topic Row", +'RenderPostRow' => "3: Results: Post Row", +'end' => "4: Results: End Page", +'end_as_post' => "5: Results: End Post Page", +'start' => "6: Results: Start Page", +'start_as_post' => "7: Results: Post Start", +'active_start' => "8: Active Topics Start", +'active_none' => "9: Active Topics No Results", +); +$bit_names['skin_stats'] = array( +'page_title' => "1: Page Title", +'who_header' => "2: Who Posted? Header", +'who_row' => "3: Who Posted? Entry", +'who_name_link' => "4: Who Posted? Name Link", +'who_end' => "5: Who Posted? End", +'leader_row' => "6: Forum Leaders: Entry", +'group_strip' => "7: Forum Leaders: Group Row", +'close_strip' => "8: Forum Leaders: Group Close", +'top_poster_header' => "9: Top Poster: Header", +'top_poster_no_info' => "10: Top Poster: No Results", +'top_poster_row' => "11: Top Poster: Entry", +'top_poster_footer' => "12: Top Poster: Footer", +); +$bit_names['skin_topic'] = array( +'PageTop' => "1: Header", +'golastpost_link' => "2: Go to Last Post Link", +'RenderRow' => "3: Post Entry", +'Show_attachments_img' => "4: Attachments: Show Image", +'Show_attachments' => "5: Attachments: Show Link Box", +'report_link' => "6: Report This Post Link", +'ip_show' => "7: IP Address Show/Link", +'topic_active_users' => "8: Users Browsing This Topic Box", +'email_options' => "9: Subscribe/Track Links", +'Mod_Panel' => "10: Mod Options Drop Down", +'mod_wrapper' => "11: Mod Options Entry", +'TableFooter' => "12: Footer", +); +$bit_names['skin_ucp'] = array( +'personal_splash_av' => "0: Depreciated (Not Used)", +'personal_splash' => "0: Depreciated (Not Used)", +'Menu_bar' => "1: Side Menu Links", +'splash' => "2: UCP Home", +'signature' => "3: Signature Edit / Preview", +'pass_change' => "4: Password Change Section", +'personal_panel' => "5: Profile Form: Main", +'field_entry' => "6: Profile Form: Custom Profile Entry", +'field_textarea' => "7: Profile Form: Custom Profile Textarea", +'field_textinput' => "8: Profile Form: Custom Profile Text Input", +'field_dropdown' => "9: Profile Form: Custom Profile DropDown", +'required_title' => "10: Profile Form: Required Fields Title", +'member_title' => "11: Profile Form: Member Title Field", +'birthday' => "12: Profile Form: Birthday Fields", +'email_change' => "13: Email Change Form", +'personal_avatar' => "14: Avatar Options Main", +'personal_avatar_URL' => "15: Avatar Options URL", +'avatar_upload_field' => "16: Avatar Options Upload", +'personal_avatar_end' => "17: Avatar Options End", +'forum_subs_header' => "18: Forum Subscriptions: Header", +'forum_subs_row' => "19: Forum Subscriptions: Entry", +'forum_subs_none' => "20: Forum Subscriptions: No Entries", +'forum_subs_end' => "21: Forum Subscriptions: End", +'subs_header' => "22: Topic Subscriptions: Header", +'subs_row' => "23: Topic Subscriptions: Entry", +'subs_none' => "24: Topic Subscriptions: No Entries", +'subs_forum_row' => "25: Topic Subscriptions: Forum Header", +'subs_end' => "26: Topic Subscriptions: End", +'skin_lang_header' => "27: Skins & Languages Header", +'settings_skin' => "28: Skins & Languages Main", +'skin_lang_end' => "29: Skins & Languages End", +'settings_header' => "30: Board Settings Header", +'settings_end' => "31: Board Settings End", +'email' => "32: Email Options", +'forum_jump' => "33: Forum Jump", +'CP_end' => "34: End CP", +); + +$bit_names['skin_csite'] = array( + +'csite_skeleton_template' => "1: MAIN TEMPLATE", +'csite_css_external' => "2: |-- Header; CSS External", +'csite_css_inline' => "3: '-- Header; CSS Inline", + +'tmpl_welcomebox_member' => "4: Member's Welcome Box", +'tmpl_welcomebox_guest' => "5: Guest's Welcome Box", +'tmpl_search' => "6: Search Box", +'tmpl_sitenav' => "7: Site Nav. Box", + +'tmpl_onlineusers' => "8: Online Users Box", +'tmpl_changeskin' => "9: Change Skin Box", +'tmpl_affiliates' => "10: Affiliates / Recommended Sites Box", + +'tmpl_recentarticles' => "11: Recent Articles box", +'tmpl_latestposts' => "12: Latest Discussions box", + +'tmpl_poll_header' => "14: Poll; Poll Header", +'tmpl_poll_choice_row' => "15: |-- Poll; Choice entry & radiobutton", +'tmpl_poll_result_row' => "16: |-- Poll; Result row", +'tmpl_poll_vote' => "17: |-- Poll; Vote Button", +'tmpl_poll_footer' => "18: '-- Poll; Poll Footer", + +'tmpl_articles_row' => "19: Articles; Article Entry", +'tmpl_comment_link' => "20: |-- Articles; Add Comment link", +'tmpl_readmore_link' => "21: '-- Articles; Read More link", + +'tmpl_debug' => "22: Debug Strip", +'tmpl_topic_row' => "23: Topic format used for 'recent articles' and 'latest discussions'", +'tmpl_links_wrap' => "24: Site Nav. Link Format", +'csite_sep_char' => "25: Online Users; Separator", + + +); + ?> \ No newline at end of file diff --git a/upload/sources/Boards.php b/upload/sources/Boards.php index dea89750..84eb5565 100644 --- a/upload/sources/Boards.php +++ b/upload/sources/Boards.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Board index module @@ -29,7 +31,6 @@ class Boards { var $output = ""; var $base_url = ""; var $html = ""; - var $output = ""; var $forums = array(); var $mods = array(); var $cats = array(); @@ -39,17 +40,22 @@ class Boards { var $news_topic_id = ""; var $news_forum_id = ""; var $news_title = ""; + var $sep_char = ""; - function Boards() { + function Boards() + { global $ibforums, $DB, $std, $print, $skin_universal; - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; // Get more words for this invocation! + $ibforums->lang = $std->load_words($ibforums->lang, 'lang_boards', $ibforums->lang_id); $this->html = $std->load_template('skin_boards'); + $this->sep_char = trim( $this->html->active_list_sep() ); + if (! $ibforums->member['id'] ) { $ibforums->input['last_visit'] = time(); @@ -60,12 +66,13 @@ class Boards { // Get the forums and category info from the DB $last_c_id = -1; - + $DB->query("SELECT f.*, c.id as cat_id, c.position as cat_position, c.state as cat_state, c.name as cat_name, c.description as cat_desc, c.image, c.url, m.member_name as mod_name, m.member_id as mod_id, m.is_group, m.group_id, m.group_name, m.mid - from ibf_forums f, ibf_categories c - LEFT JOIN ibf_moderators m ON (f.id=m.forum_id) - order by c.position, f.position"); + FROM ibf_forums f, ibf_categories c + LEFT JOIN ibf_moderators m ON (f.id=m.forum_id) + WHERE c.id=f.category + ORDER BY c.position, f.position"); while ( $r = $DB->fetch_row() ) @@ -113,11 +120,6 @@ class Boards { $this->show_single_cat(); $this->nav[] = $this->cats[ $ibforums->input['c'] ]['name']; } - else if ($ibforums->input['sub'] == 1) - { - $this->show_subforum(); - $this->nav[] = $this->forums[ $ibforums->input['f'] ]['name']; - } else { $this->process_all_cats(); @@ -147,108 +149,136 @@ class Boards { // Get the users from the DB $cut_off = $ibforums->vars['au_cutoff'] * 60; + $time = time() - $cut_off; - $time = time() - $cut_off; - $DB->query("SELECT s.member_id, s.member_name, s.login_type, g.suffix, g.prefix + $DB->query("SELECT s.id, s.member_id, s.member_name, s.login_type, g.suffix, g.prefix FROM ibf_sessions s LEFT JOIN ibf_groups g ON (g.g_id=s.member_group) - WHERE running_time > '$time' + WHERE running_time > $time ORDER BY s.running_time DESC"); // cache all printed members so we don't double print them + $cached = array(); + while ($result = $DB->fetch_row() ) { - if ($result['member_id'] == 0) + if ( strstr( $result['id'], '_session' ) ) + { + if ( $ibforums->vars['spider_anon'] ) + { + if ( $ibforums->member['mgroup'] == $ibforums->vars['admin_group'] ) + { + $active['NAMES'] .= "{$result['member_name']}*{$this->sep_char} \n"; + } + } + else + { + $active['NAMES'] .= "{$result['member_name']}{$this->sep_char} \n"; + } + } + else if ($result['member_id'] == 0 ) { $active['GUESTS']++; } else { - if (empty( $cached[ $result['member_id'] ] ) ) + if ( empty( $cached[ $result['member_id'] ] ) ) { $cached[ $result['member_id'] ] = 1; if ($result['login_type'] == 1) { if ( ($ibforums->member['mgroup'] == $ibforums->vars['admin_group']) and ($ibforums->vars['disable_admin_anon'] != 1) ) { - $active['NAMES'] .= " >{$result['prefix']}{$result['member_name']}{$result['suffix']}*"; + $active['NAMES'] .= "{$result['prefix']}{$result['member_name']}{$result['suffix']}*{$this->sep_char} \n"; $active['ANON']++; } else { - $active['anon']++; + $active['ANON']++; } } else { $active['MEMBERS']++; - $active['NAMES'] .= " >vars['php_ext']}?s={$ibforums->session_id}&act=Profile&MID={$result['member_id']}'>{$result['prefix']}{$result['member_name']}{$result['suffix']}"; + $active['NAMES'] .= "{$result['prefix']}{$result['member_name']}{$result['suffix']}{$this->sep_char} \n"; } } } } + $active['NAMES'] = preg_replace( "/".preg_quote($this->sep_char)."$/", "", trim($active['NAMES']) ); + $active['TOTAL'] = $active['MEMBERS'] + $active['GUESTS'] + $active['ANON']; // Show a link? if ($ibforums->vars['allow_online_list']) { - $active['LINK'] = '[ '."".$ibforums->lang['browser_user_list']."".' ]'; + $active['links'] = $this->html->active_user_links(); } $ibforums->lang['active_users'] = sprintf( $ibforums->lang['active_users'], $ibforums->vars['au_cutoff'] ); $stats_html .= $this->html->ActiveUsers($active, $ibforums->vars['au_cutoff']); + } - //----------------------------------------------- - // Are we viewing the calendar? - //----------------------------------------------- + //----------------------------------------------- + // Are we viewing the calendar? + //----------------------------------------------- + + if ($ibforums->vars['show_birthdays']) + { - if ($ibforums->vars['show_birthdays']) + $a = explode( ',', gmdate( 'Y,n,j,G,i,s', time() + $std->get_time_offset() ) ); + + $day = $a[2]; + $month = $a[1]; + $year = $a[0]; + + $birthstring = ""; + $count = 0; + + $DB->query("SELECT id, name, bday_day as DAY, bday_month as MONTH, bday_year as YEAR + FROM ibf_members WHERE bday_day=$day and bday_month=$month"); + + while ( $user = $DB->fetch_row() ) { + $birthstring .= "{$user['name']}"; + + if ($user['YEAR']) + { + $pyear = $year - $user['YEAR']; // $year = 2002 and $user['YEAR'] = 1976 + $birthstring .= "($pyear)"; + } + + $birthstring .= $this->sep_char."\n"; + + $count++; + } - $user_time = time() + ($ibforums->member['time_offset'] * 3600 ); - - $date = getdate($user_time); - - $day = $date['mday']; - $month = $date['mon']; - $year = $date['year']; - - $birthstring = ""; - $count = 0; - - $DB->query("SELECT id, name, bday_day as DAY, bday_month as MONTH, bday_year as YEAR from ibf_members WHERE bday_day='$day' and bday_month='$month'"); - - while ($user = $DB->fetch_row()) - { - $birthstring .= ">{$user['name']} "; - if ($user['YEAR']) - { - $pyear = $year - $user['YEAR']; // $year = 2002 and $user['YEAR'] = 1976 - $birthstring .= "($pyear) "; - } - $count++; - } - - $lang = $ibforums->lang['no_birth_users']; - - if ($count > 0) { - $lang = ($count > 1) ? $ibforums->lang['birth_users'] : $ibforums->lang['birth_user']; - } - else - { - $count = ""; - } - + $birthstring = preg_replace( "/".$this->sep_char."$/", "", trim($birthstring) ); + + $lang = $ibforums->lang['no_birth_users']; + + if ($count > 0) + { + $lang = ($count > 1) ? $ibforums->lang['birth_users'] : $ibforums->lang['birth_user']; $stats_html .= $this->html->birthdays( $birthstring, $count, $lang ); } + else + { + $count = ""; + if ( ! $ibforums->vars['autohide_bday'] ) + { + $stats_html .= $this->html->birthdays( $birthstring, $count, $lang ); + } + } } + //----------------------------------------------- // Are we viewing the calendar? //----------------------------------------------- @@ -261,10 +291,11 @@ class Boards { $ibforums->vars['calendar_limit'] = 2; } - $our_unix = time() + ($ibforums->member['time_offset'] * 3600 ); + $our_unix = time() + $std->get_time_offset(); $max_date = $our_unix + ($ibforums->vars['calendar_limit'] * 86400); - $DB->query("SELECT eventid, title, read_perms, priv_event, userid FROM ibf_calendar_events WHERE unix_stamp > '$our_unix' and unix_stamp < '$max_date' ORDER BY unix_stamp ASC"); + $DB->query("SELECT eventid, title, read_perms, priv_event, userid, unix_stamp + FROM ibf_calendar_events WHERE unix_stamp > $our_unix and unix_stamp < $max_date ORDER BY unix_stamp ASC"); $show_events = array(); @@ -287,21 +318,26 @@ class Boards { } } - $show_events[] = "".$event['title'].""; - } - - if ( count($show_events) > 0 ) - { - $event_string = implode( ", ", $show_events ); - } - else - { - $event_string = $ibforums->lang['no_calendar_events']; + $c_time = date( 'j-F-y', $event['unix_stamp']); + + $show_events[] = "".$event['title'].""; } $ibforums->lang['calender_f_title'] = sprintf( $ibforums->lang['calender_f_title'], $ibforums->vars['calendar_limit'] ); - $stats_html .= $this->html->calendar_events( $event_string ); + if ( count($show_events) > 0 ) + { + $event_string = implode( $this->sep_char.' ', $show_events ); + $stats_html .= $this->html->calendar_events( $event_string ); + } + else + { + if ( ! $ibforums->vars['autohide_calendar'] ) + { + $event_string = $ibforums->lang['no_calendar_events']; + $stats_html .= $this->html->calendar_events( $event_string ); + } + } } //*********************************************/ @@ -326,12 +362,15 @@ class Boards { $most_time = $std->get_date( $stats['MOST_DATE'], 'LONG' ); - $ibforums->lang['most_online'] = str_replace( "<#NUM#>" , $stats['MOST_COUNT'] , $ibforums->lang['most_online'] ); - $ibforums->lang['most_online'] = str_replace( "<#DATE#>", $most_time , $ibforums->lang['most_online'] ); + $ibforums->lang['most_online'] = str_replace( "<#NUM#>" , $std->do_number_format($stats['MOST_COUNT']) , $ibforums->lang['most_online'] ); + $ibforums->lang['most_online'] = str_replace( "<#DATE#>", $most_time , $ibforums->lang['most_online'] ); - $total_posts = $stats['TOTAL_REPLIES']+$stats['TOTAL_TOPICS']; + $total_posts = $stats['TOTAL_REPLIES'] + $stats['TOTAL_TOPICS']; - $link = $ibforums->base_url."&act=Profile&MID=".$stats['LAST_MEM_ID']; + $total_posts = $std->do_number_format($total_posts); + $stats['MEM_COUNT'] = $std->do_number_format($stats['MEM_COUNT']); + + $link = $ibforums->base_url."showuser=".$stats['LAST_MEM_ID']; $ibforums->lang['total_word_string'] = str_replace( "<#posts#>" , "$total_posts" , $ibforums->lang['total_word_string'] ); $ibforums->lang['total_word_string'] = str_replace( "<#reg#>" , $stats['MEM_COUNT'] , $ibforums->lang['total_word_string'] ); @@ -349,11 +388,15 @@ class Boards { $this->output .= $this->html->stats_footer(); } - + //--------------------------------------- // Add in board info footer - $this->output .= $this->html->BoardInformation(); + //--------------------------------------- + $this->output .= $this->html->bottom_links(); + + //--------------------------------------- // Check for news forum. + //--------------------------------------- if ($this->news_title and $this->news_topic_id and $this->news_forum_id) { @@ -361,16 +404,39 @@ class Boards { $this->output = str_replace( "" , "$t_html" , $this->output ); } + //--------------------------------------- // Display quick log in if we're not a member + //--------------------------------------- if ($ibforums->member['id'] < 1) { $this->output = str_replace( "" , $this->html->quick_log_in() , $this->output ); } + + //--------------------------------------- + // Showing who's chatting? + //--------------------------------------- + + if ( $ibforums->vars['chat_account_no'] and $ibforums->vars['chat_who_on'] ) + { + require_once( ROOT_PATH.'sources/lib/chat_functions.php' ); + + $chat = new chat_functions(); + + $chat->register_class( &$this ); + + $chat_html = $chat->get_online_list(); + + $this->output = str_replace( "", $chat_html, $this->output ); + } + + //--------------------------------------- + // Print as normal + //--------------------------------------- $print->add_output("$this->output"); - $cp = " (Powered by Invision Board)"; + $cp = " (Powered by Invision Power Board)"; if ($ibforums->vars['ips_cp_purchase']) { @@ -380,14 +446,8 @@ class Boards { $print->do_output( array( 'TITLE' => $ibforums->vars['board_name'].$cp, 'JS' => 0, 'NAV' => $this->nav ) ); } - - //*********************************************/ - // - // SHOW A SUB FORUM - // - //*********************************************/ + - //*********************************************/ // // PROCESS ALL CATEGORIES @@ -405,7 +465,7 @@ class Boards { // Is this category turned on? //---------------------------- - if (! $cat_data['state'] ) + if ( $cat_data['state'] != 1 ) { continue; } @@ -464,7 +524,7 @@ class Boards { // Is this category turned on? //---------------------------- - if (! $cat_data['state'] ) + if ( $cat_data['state'] == 0 ) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files' ) ); } @@ -515,6 +575,7 @@ class Boards { { $printed_children = 0; + $can_see_root = FALSE; //-------------------------------------- // This is a sub cat forum... @@ -527,17 +588,25 @@ class Boards { // Are we allowed to see the postable forum stuff? - if ($forum_data['sub_can_post'] == 1) + if ($forum_data['sub_can_post'] == 1 and $forum_data['redirect_on'] != 1) { - if ($forum_data['read_perms'] == '*') - { - $forum_data['fid'] = $forum_data['id']; - $newest = $forum_data; - } - else if ( preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $forum_data['read_perms'] ) ) + if ( $std->check_perms($forum_data['read_perms']) ) { $forum_data['fid'] = $forum_data['id']; $newest = $forum_data; + $can_see_root = TRUE; + + if (isset($forum_data['last_title']) and $forum_data['last_id'] != "") + { + if ( ( $ibforums->vars['index_news_link'] == 1 ) and (! empty($ibforums->vars['news_forum_id']) ) and ($ibforums->vars['news_forum_id'] == $forum_data['id']) ) + { + + $this->news_topic_id = $forum_data['last_id']; + $this->news_forum_id = $forum_data['id']; + $this->news_title = $forum_data['last_title']; + + } + } } else { @@ -550,20 +619,16 @@ class Boards { //-------------------------------------- // Check permissions... //-------------------------------------- - - if ($data['read_perms'] != '*') + + if ( $std->check_perms($data['read_perms']) != TRUE ) { - if ( ! preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $data['read_perms'] ) ) - { - continue; - } + continue; } // Do the news stuff first if (isset($data['last_title']) and $data['last_id'] != "") { - if ( ( $ibforums->vars['index_news_link'] == 1 ) and (! empty($ibforums->vars['news_forum_id']) ) and ($ibforums->vars['news_forum_id'] == $data['id']) ) { @@ -572,7 +637,6 @@ class Boards { $this->news_title = $data['last_title']; } - } if ($data['last_post'] > $newest['last_post']) @@ -596,10 +660,12 @@ class Boards { } - if ($printed_children < 1) + if ( ($printed_children < 1) && ($can_see_root != TRUE) ) { // If we don't have permission to view any forums + // and we can't post in this root forum // then simply return and the row won't be printed + // return ""; @@ -607,12 +673,14 @@ class Boards { // Fix up the last of the data + $newest['last_title'] = strip_tags($newest['last_title']); + $newest['last_title'] = str_replace( "!" , "!" , $newest['last_title'] ); + $newest['last_title'] = str_replace( """, "\"", $newest['last_title'] ); + if (strlen($newest['last_title']) > 30) { - $newest['last_title'] = str_replace( "!" , "!" , $newest['last_title'] ); - $newest['last_title'] = str_replace( """, "\"", $newest['last_title'] ); $newest['last_title'] = substr($newest['last_title'],0,27) . "..."; - $newest['last_title'] = preg_replace( '/&(#(\d+;?)?)?\.\.\.$/', '...', $newest['last_title'] ); + $newest['last_title'] = preg_replace( '/&(#(\d+;?)?)?(\.\.\.)?$/', '...', $newest['last_title'] ); } if ($newest['password'] != "") { @@ -620,7 +688,8 @@ class Boards { } else if($newest['last_title'] != "") { - $newest['last_topic'] = "vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$newest['fid']}&t={$newest['last_id']}&view=getlastpost'>{$newest['last_title']}"; + $newest['last_unread'] = $this->html->forumrow_lastunread_link($newest['fid'], $newest['last_id']); + $newest['last_topic'] = "{$newest['last_title']}"; } else { @@ -629,7 +698,7 @@ class Boards { if ( isset($newest['last_poster_name'])) { - $newest['last_poster'] = $newest['last_poster_id'] ? "vars['php_ext']}?s={$ibforums->session_id}&act=Profile&CODE=03&MID={$newest['last_poster_id']}'>{$newest['last_poster_name']}" + $newest['last_poster'] = $newest['last_poster_id'] ? "{$newest['last_poster_name']}" : $newest['last_poster_name']; } else @@ -637,10 +706,18 @@ class Boards { $newest['last_poster'] = $ibforums->lang['f_none']; } - $newest['img_new_post'] = $std->forum_new_posts($newest, 1); + $newest['img_new_post'] = $std->forum_new_posts($newest, $printed_children > 0 ? 1: 0); + + if ( $newest['img_new_post'] == '<{C_ON_CAT}>' ) + { + $newest['img_new_post'] = $this->html->subforum_img_with_link($newest['img_new_post'], $forum_data['id']); + } $newest['last_post'] = $std->get_date($newest['last_post'], 'LONG'); + $newest['posts'] = $std->do_number_format($newest['posts']); + $newest['topics'] = $std->do_number_format($newest['topics']); + foreach($newest as $k => $v) { if ($k == 'id') @@ -650,6 +727,7 @@ class Boards { $forum_data[$k] = $v; } + $forum_data['moderator'] = $this->get_moderators($forum_id); return $this->html->ForumRow($forum_data); @@ -667,21 +745,46 @@ class Boards { // Check permissions... //-------------------------------------- - if ($forum_data['read_perms'] != '*') + if ( $std->check_perms($forum_data['read_perms']) != TRUE ) { - if ( ! preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $forum_data['read_perms'] ) ) - { - return ""; - } + return ""; } + //-------------------------------------- + // Redirect only forum? + //-------------------------------------- + + if ( $forum_data['redirect_on'] ) + { + // Simply return with the redirect information + + if ( $forum_data['redirect_loc'] != "" ) + { + $forum_data['redirect_target'] = " target='".$forum_data['redirect_loc']."' "; + } + + $forum_data['redirect_hits'] = $std->do_number_format($forum_data['redirect_hits']); + + return $this->html->forum_redirect_row($forum_data); + + } + + //-------------------------------------- + // No - normal forum.. + //-------------------------------------- + $forum_data['img_new_post'] = $std->forum_new_posts($forum_data); + if ( $forum_data['img_new_post'] == '<{C_ON}>' ) + { + $forum_data['img_new_post'] = $this->html->forum_img_with_link($forum_data['img_new_post'], $forum_data['id']); + } + $forum_data['last_post'] = $std->get_date($forum_data['last_post'], 'LONG'); $forum_data['last_topic'] = $ibforums->lang['f_none']; - if (isset($forum_data['last_title']) and $forum_data['last_id'] != "") + if (isset($forum_data['last_title']) and $forum_data['last_id']) { if ( ( $ibforums->vars['index_news_link'] == 1 ) and (! empty($ibforums->vars['news_forum_id']) ) and ($ibforums->vars['news_forum_id'] == $forum_data['id']) ) @@ -693,13 +796,18 @@ class Boards { } + $forum_data['last_title'] = strip_tags($forum_data['last_title']); $forum_data['last_title'] = str_replace( "!" , "!", $forum_data['last_title'] ); $forum_data['last_title'] = str_replace( """, "\"", $forum_data['last_title'] ); if (strlen($forum_data['last_title']) > 30) { $forum_data['last_title'] = substr($forum_data['last_title'],0,27) . "..."; - $forum_data['last_title'] = preg_replace( '/&(#(\d+;?)?)?\.\.\.$/', '...', $forum_data['last_title'] ); + $forum_data['last_title'] = preg_replace( "/&(#(\d+;?)?)?\.\.\.$/", '...', $forum_data['last_title'] ); + } + else + { + $forum_data['last_title'] = preg_replace( "/&(#(\d+?)?)?$/", '', $forum_data['last_title'] ); } if ($forum_data['password'] != "") @@ -708,13 +816,15 @@ class Boards { } else { - $forum_data['last_topic'] = "vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$forum_data['id']}&t={$forum_data['last_id']}&view=getlastpost'>{$forum_data['last_title']}"; + $forum_data['last_unread'] = $this->html->forumrow_lastunread_link($forum_data['id'], $forum_data['last_id']); + $forum_data['last_topic'] = "{$forum_data['last_title']}"; } - } + } + if ( isset($forum_data['last_poster_name'])) { - $forum_data['last_poster'] = $forum_data['last_poster_id'] ? "vars['php_ext']}?s={$ibforums->session_id}&act=Profile&CODE=03&MID={$forum_data['last_poster_id']}'>{$forum_data['last_poster_name']}" + $forum_data['last_poster'] = $forum_data['last_poster_id'] ? "{$forum_data['last_poster_name']}" : $forum_data['last_poster_name']; } else @@ -726,48 +836,74 @@ class Boards { // Moderators //--------------------------------- - $forum_data['moderator'] = ""; + $forum_data['moderator'] = $this->get_moderators($forum_data['id']); - if (isset($this->mods[ $forum_data['id'] ] ) ) - { - $forum_data['moderator'] = $ibforums->lang['forum_leader'].' '; - - if (is_array($this->mods[ $forum_data['id'] ]) ) - { - foreach ($this->mods[ $forum_data['id'] ] as $moderator) - { - if ($moderator['isg'] == 1) - { - $forum_data['moderator'] .= "{$moderator['gname']}, "; - } - else - { - $forum_data['moderator'] .= "{$moderator['name']}, "; - } - } - - $forum_data['moderator'] = preg_replace( "!,\s+$!", "", $forum_data['moderator'] ); - - } - else - { - if ($moderator['isg'] == 1) - { - $forum_data['moderator'] .= "{$this->mods[$forum_data['id']]['gname']}, "; - } - else - { - $forum_data['moderator'] .= "{$this->mods[$forum_data['id']]['name']}"; - } - } - } + $forum_data['posts'] = $std->do_number_format($forum_data['posts']); + $forum_data['topics'] = $std->do_number_format($forum_data['topics']); + $forum_data['description'] = str_replace( "
    ", "
    ", $forum_data['description'] ); return $this->html->ForumRow($forum_data); } } + + //------------------------------------- + // + // Return mods for this forum in a + // HTML formatted string + // + //------------------------------------- + + function get_moderators($forum_id="") + { + global $ibforums, $std, $DB; + + $mod_string = ""; + + if ($forum_id == "") + { + return ""; + } + + if (isset($this->mods[ $forum_id ] ) ) + { + $mod_string = $ibforums->lang['forum_leader'].' '; + + if (is_array($this->mods[ $forum_id ]) ) + { + foreach ($this->mods[ $forum_id ] as $moderator) + { + if ($moderator['isg'] == 1) + { + $mod_string .= "{$moderator['gname']}, "; + } + else + { + $mod_string .= "{$moderator['name']}, "; + } + } + + $mod_string = preg_replace( "!,\s+$!", "", $mod_string ); + + } + else + { + if ($moderator['isg'] == 1) + { + $mod_string .= "{$this->mods[$forum_id]['gname']}, "; + } + else + { + $mod_string .= "{$this->mods[$forum_id]['name']}"; + } + } + } + + return $mod_string; + + } } diff --git a/upload/sources/Drivers/index.html b/upload/sources/Drivers/index.html new file mode 100644 index 00000000..52a588b2 --- /dev/null +++ b/upload/sources/Drivers/index.html @@ -0,0 +1 @@ + Invision Power Board - Bulletin Board System

    403: Invision Power Board -> Forbidden


    You have reached this Page in error, please use your back button to return to Invision Board.
    Invision Power Board \ No newline at end of file diff --git a/upload/sources/Drivers/mySQL.php b/upload/sources/Drivers/mySQL.php index 17d3eb59..a443c03a 100644 --- a/upload/sources/Drivers/mySQL.php +++ b/upload/sources/Drivers/mySQL.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > mySQL DB abstraction module @@ -42,6 +44,7 @@ class db_driver { var $record_row = array(); var $return_die = 0; var $error = ""; + var $failed = 0; /*========================================================================*/ // Connect to the database @@ -76,15 +79,18 @@ class db_driver { // Process a query /*========================================================================*/ - function query($the_query) { + function query($the_query, $bypass=0) { //-------------------------------------- // Change the table prefix if needed //-------------------------------------- - if ($this->obj['sql_tbl_prefix'] != "ibf_") + if ($bypass != 1) { - $the_query = preg_replace("/ibf_(\S+?)([\s\.,]|$)/", $this->obj['sql_tbl_prefix']."\\1\\2", $the_query); + if ($this->obj['sql_tbl_prefix'] != "ibf_") + { + $the_query = preg_replace("/ibf_(\S+?)([\s\.,]|$)/", $this->obj['sql_tbl_prefix']."\\1\\2", $the_query); + } } if ($this->obj['debug']) @@ -113,7 +119,7 @@ class db_driver { Select Query - $the_query + $the_query tabletypepossible_keys @@ -162,7 +168,7 @@ class db_driver { Non Select Query - $the_query + $the_query mySQL time: $endtime @@ -300,15 +306,17 @@ class db_driver { if ($this->return_die == 1) { - $this->error = mysql_error(); - return TRUE; + $this->error = mysql_error(); + $this->error_no = mysql_errno(); + $this->failed = 1; + return; } $the_error .= "\n\nmySQL error: ".mysql_error()."\n"; - $the_error .= "mySQL error code: ".mysql_errno()."\n"; + $the_error .= "mySQL error code: ".$this->error_no."\n"; $the_error .= "Date: ".date("l dS of F Y h:i:s A"); - $out = "Invision Board Database Error + $out = "Invision Power Board Database Error  

    There appears to be an error with the {$INFO['board_name']} database.
    You can try to refresh the page by clicking here, if this @@ -332,7 +340,8 @@ class db_driver { $field_names = ""; $field_values = ""; - foreach ($data as $k => $v) { + foreach ($data as $k => $v) + { $v = preg_replace( "/'/", "\\'", $v ); //$v = preg_replace( "/#/", "\\#", $v ); $field_names .= "$k,"; @@ -357,7 +366,8 @@ class db_driver { $return_string = ""; - foreach ($data as $k => $v) { + foreach ($data as $k => $v) + { $v = preg_replace( "/'/", "\\'", $v ); $return_string .= $k . "='".$v."',"; } @@ -366,6 +376,36 @@ class db_driver { return $return_string; } + + /*========================================================================*/ + // Test to see if a field exists by forcing and trapping an error. + // It ain't pretty, but it do the job don't it, eh? + // Posh my ass. + // Return 1 for exists, 0 for not exists and jello for the naked guy + // Fun fact: The number of times I spelt 'field' as 'feild'in this part: 104 + /*========================================================================*/ + + function field_exists($field, $table) { + + $this->return_die = 1; + $this->error = ""; + + $this->query("SELECT COUNT($field) as count FROM $table"); + + $return = 1; + + if ( $this->failed ) + { + $return = 0; + } + + $this->error = ""; + $this->return_die = 0; + $this->error_no = 0; + $this->failed = 0; + + return $return; + } } // end class diff --git a/upload/sources/Forums.php b/upload/sources/Forums.php index 82960931..002a6df5 100644 --- a/upload/sources/Forums.php +++ b/upload/sources/Forums.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Forum topic index module @@ -31,12 +33,14 @@ class Forums { var $html = ""; var $moderator = array(); var $forum = array(); + var $mods = array(); var $show_dots = ""; var $nav_extra = ""; var $read_array = array(); var $board_html = ""; var $sub_output = ""; var $pinned_print = 0; + var $new_posts = 0; //+---------------------------------------------------------------- // @@ -44,16 +48,38 @@ class Forums { // //+---------------------------------------------------------------- - function Forums() { + function Forums() + { global $ibforums, $DB, $std, $print, $skin_universal; - $ibforums->input['f'] = intval($ibforums->input['f']); + //+------------------------------------------ + // Are we doing anything with "site jump?" + //+------------------------------------------ - $ibforums->lang = $std->load_words($ibforums->lang, 'lang_forum', $ibforums->lang_id); + switch( $ibforums->input['f'] ) + { + case 'sj_home': + $std->boink_it($ibforums->base_url."act=idx"); + break; + case 'sj_search': + $std->boink_it($ibforums->base_url."act=Search"); + break; + case 'sj_help': + $std->boink_it($ibforums->base_url."act=Help"); + break; + default: + $ibforums->input['f'] = intval($ibforums->input['f']); + break; + } + + $ibforums->lang = $std->load_words($ibforums->lang, 'lang_forum', $ibforums->lang_id); - $this->html = $std->load_template('skin_forum'); + $this->html = $std->load_template('skin_forum'); - // Get the forum info based on the forum ID, and get the category name, ID, etc. + //+------------------------------------------ + // Get the forum info based on the forum ID, + // and get the category name, ID, etc. + //+------------------------------------------ $DB->query("SELECT f.*, c.id as cat_id, c.name as cat_name FROM ibf_forums f @@ -68,7 +94,24 @@ class Forums { if (!$this->forum['id']) { - $std->Error( array( LEVEL => 1, MSG => 'missing_files') ); + $std->Error( array( LEVEL => 1, MSG => 'is_broken_link') ); + } + + //---------------------------------------- + // Is it a redirect forum? + //---------------------------------------- + + if ( $this->forum['redirect_on'] and $this->forum['redirect_url'] ) + { + // Update hits: + + $DB->query("UPDATE ibf_forums SET redirect_hits=redirect_hits+1 WHERE id=".$this->forum['id']); + + // Boink! + + $std->boink_it( $this->forum['redirect_url'] ); + + // Game over man! } //---------------------------------------- @@ -86,19 +129,16 @@ class Forums { $this->forum['cat_id'] = $row['id']; $this->forum['cat_name'] = $row['name']; - $this->nav_extra = "{$row['forum_name']}"; + $this->nav_extra = "{$row['forum_name']}"; } //-------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; $this->forum['FORUM_JUMP'] = $std->build_forum_jump(); - $this->forum['FORUM_JUMP'] = preg_replace( "!#Forum Jump#!", $ibforums->lang['forum_jump'], $this->forum['FORUM_JUMP']); - - - + // Are we viewing the forum, or viewing the forum rules? if ($ibforums->input['act'] == 'SR') @@ -144,13 +184,21 @@ class Forums { $this->output = str_replace( "", $this->html->show_sub_link($this->forum['id']), $this->output ); } + if ( $ibforums->member['g_is_supmod'] OR $ibforums->member['is_mod'] ) + { + if ( $this->forum['has_mod_posts'] ) + { + $this->output = str_replace( "", $this->html->show_mod_link($this->forum['id']), $this->output ); + } + } + $print->add_output($this->output); $print->do_output( array( 'TITLE' => $ibforums->vars['board_name']." -> ".$this->forum['name'], 'JS' => 0, 'NAV' => array( - "{$this->forum['cat_name']}", + "{$this->forum['cat_name']}", $this->nav_extra, - "{$this->forum['name']}", + "{$this->forum['name']}", ), ) ); @@ -171,14 +219,34 @@ class Forums { $fid = $ibforums->input['f']; - $DB->query("SELECT * FROM ibf_forums WHERE parent_id='$fid' ORDER BY position"); + $DB->query("SELECT f.*, m.member_name as mod_name, m.member_id as mod_id, m.is_group, m.group_id, m.group_name, m.mid + FROM ibf_forums f + LEFT JOIN ibf_moderators m ON (f.id=m.forum_id) + WHERE parent_id='$fid' + ORDER BY position"); if ( ! $DB->get_num_rows() ) { return ""; } - while ( $data = $DB->fetch_row() ) + while ( $r = $DB->fetch_row() ) + { + + $this->forums[ $r['id'] ] = $r; + + if ($r['mod_id'] != "") + { + $this->mods[ $r['id'] ][ $r['mid'] ] = array( 'name' => $r['mod_name'], + 'id' => $r['mod_id'], + 'isg' => $r['is_group'], + 'gname'=> $r['group_name'], + 'gid' => $r['group_id'], + ); + } + } + + foreach( $this->forums as $data ) { $temp_html .= $this->process_forum($data['id'], $data); } @@ -208,23 +276,45 @@ class Forums { // Check permissions... //-------------------------------------- - if ($forum_data['read_perms'] != '*') + if ( $std->check_perms($forum_data['read_perms']) != TRUE ) { - if ( ! preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $forum_data['read_perms'] ) ) + return ""; + } + + //-------------------------------------- + // Redirect only forum? + //-------------------------------------- + + if ( $forum_data['redirect_on'] ) + { + // Simply return with the redirect information + + if ( $forum_data['redirect_loc'] != "" ) { - return ""; + $forum_data['redirect_target'] = " target='".$forum_data['redirect_loc']."' "; } + + $forum_data['redirect_hits'] = $std->do_number_format($forum_data['redirect_hits']); + + return $this->board_html->forum_redirect_row($forum_data); + } $forum_data['img_new_post'] = $std->forum_new_posts($forum_data); + if ( $forum_data['img_new_post'] == '<{C_ON}>' ) + { + $forum_data['img_new_post'] = $this->board_html->forum_img_with_link($forum_data['img_new_post'], $forum_data['id']); + } + $forum_data['last_post'] = $std->get_date($forum_data['last_post'], 'LONG'); $forum_data['last_topic'] = $ibforums->lang['f_none']; - - if (isset($forum_data['last_title']) and $forum_data['last_id'] != "") + + if (isset($forum_data['last_title']) and $forum_data['last_id']) { - + + $forum_data['last_title'] = strip_tags($forum_data['last_title']); $forum_data['last_title'] = str_replace( "!" , "!", $forum_data['last_title'] ); $forum_data['last_title'] = str_replace( """, "\"", $forum_data['last_title'] ); @@ -233,6 +323,10 @@ class Forums { $forum_data['last_title'] = substr($forum_data['last_title'],0,27) . "..."; $forum_data['last_title'] = preg_replace( '/&(#(\d+;?)?)?\.\.\.$/', '...', $forum_data['last_title'] ); } + else + { + $forum_data['last_title'] = preg_replace( '/&(#(\d+?)?)?$/', '', $forum_data['last_title'] ); + } if ($forum_data['password'] != "") { @@ -240,13 +334,14 @@ class Forums { } else { - $forum_data['last_topic'] = "vars['php_ext']}?s={$ibforums->session_id}&act=ST&f={$forum_data['id']}&t={$forum_data['last_id']}&view=getlastpost'>{$forum_data['last_title']}"; + $forum_data['last_unread'] = $this->board_html->forumrow_lastunread_link($forum_data['id'], $forum_data['last_id']); + $forum_data['last_topic'] = "{$forum_data['last_title']}"; } } if ( isset($forum_data['last_poster_name'])) { - $forum_data['last_poster'] = $forum_data['last_poster_id'] ? "vars['php_ext']}?s={$ibforums->session_id}&act=Profile&CODE=03&MID={$forum_data['last_poster_id']}'>{$forum_data['last_poster_name']}" + $forum_data['last_poster'] = $forum_data['last_poster_id'] ? "{$forum_data['last_poster_name']}" : $forum_data['last_poster_name']; } else @@ -270,11 +365,11 @@ class Forums { { if ($moderator['isg'] == 1) { - $forum_data['moderator'] .= "{$moderator['gname']}, "; + $forum_data['moderator'] .= "{$moderator['gname']}, "; } else { - $forum_data['moderator'] .= "{$moderator['name']}, "; + $forum_data['moderator'] .= "{$moderator['name']}, "; } } @@ -285,25 +380,29 @@ class Forums { { if ($moderator['isg'] == 1) { - $forum_data['moderator'] .= "{$this->mods[$forum_data['id']]['gname']}, "; + $forum_data['moderator'] .= "{$this->mods[$forum_data['id']]['gname']}, "; } else { - $forum_data['moderator'] .= "{$this->mods[$forum_data['id']]['name']}"; + $forum_data['moderator'] .= "{$this->mods[$forum_data['id']]['name']}"; } } } + $forum_data['posts'] = $std->do_number_format($forum_data['posts']); + $forum_data['topics'] = $std->do_number_format($forum_data['topics']); + return $this->board_html->ForumRow($forum_data); } //+---------------------------------------------------------------- // - // Show the forum rules on a seperate page + // Show the forum rules on a separate page // //+---------------------------------------------------------------- - function show_rules() { + function show_rules() + { global $DB, $ibforums, $std, $print; //+-------------------------------------------- @@ -317,24 +416,21 @@ class Forums { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_view_topic') ); } - //+-------------------------------------------- - // Get the rules from the DB - //+-------------------------------------------- - - $DB->query("SELECT * FROM ibf_rules WHERE fid='".$ibforums->input['f']."'"); - - if ( $rules = $DB->fetch_row() ) + + if ( $this->forum['rules_title'] ) { - $rules['title'] = stripslashes($rules['title']); - $rules['body'] = stripslashes($rules['body']); + $rules['title'] = $this->forum['rules_title']; + $rules['body'] = $this->forum['rules_text']; + $rules['fid'] = $this->forum['id']; $this->output .= $this->html->show_rules($rules); $print->add_output("$this->output"); - $print->do_output( array( 'TITLE' => "IBForums -> ".$this->forum['name'], + $print->do_output( array( 'TITLE' => $ibforums->vars['board_name']." -> ".$this->forum['name'], 'JS' => 0, 'NAV' => array( - "{$this->forum['cat_name']}", + "{$this->forum['cat_name']}", + $this->forum['name'] ), ) ); } @@ -350,7 +446,8 @@ class Forums { // //+---------------------------------------------------------------- - function show_forum() { + function show_forum() + { global $ibforums; // are we checking for user authentication via the log in form // for a private forum w/password protection? @@ -379,22 +476,18 @@ class Forums { $std->my_setcookie( "iBForum".$this->forum['id'], $ibforums->input['f_password'] ); - $print->redirect_screen( $ibforums->lang['logged_in'] , "act=SF&f=".$this->forum['id'] ); + $print->redirect_screen( $ibforums->lang['logged_in'] , "showforum=".$this->forum['id'] ); } //+---------------------------------------------------------------------------------- function check_access() { - global $ibforums, $HTTP_COOKIE_VARS; + global $ibforums, $std, $HTTP_COOKIE_VARS; $return = 1; - if ($this->forum['read_perms'] == '*') - { - $return = 0; - } - else if (preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $this->forum['read_perms'] ) ) + if ( $std->check_perms($this->forum['read_perms']) == TRUE ) { $return = 0; } @@ -437,8 +530,8 @@ class Forums { $print->do_output( array( 'TITLE' => $ibforums->vars['board_name']." -> ".$this->forum['name'], 'JS' => 0, 'NAV' => array( - "{$this->forum['cat_name']}", - "{$this->forum['name']}", + "{$this->forum['cat_name']}", + "{$this->forum['name']}", ), ) ); @@ -450,8 +543,9 @@ class Forums { // //+---------------------------------------------------------------- - function render_forum() { - global $ibforums, $DB, $std, $print, $HTTP_COOKIE_VARS; + function render_forum() + { + global $ibforums, $DB, $std, $print, $skin_universal,$HTTP_COOKIE_VARS; $bad_entry = $this->check_access(); @@ -478,12 +572,10 @@ class Forums { { $this->read_array = unserialize(stripslashes($read)); } - - if ( $forum = $std->my_getcookie('fread_'.$ibforums->input['f']) ) - { - $ibforums->input['last_visit'] = $forum > $ibforums->input['last_visit'] ? $forum : $ibforums->input['last_visit']; - } - + + $ibforums->input['last_visit'] = $ibforums->forum_read[ $ibforums->input['f'] ] > $ibforums->input['last_visit'] + ? $ibforums->forum_read[ $ibforums->input['f'] ] : $ibforums->input['last_visit']; + $prune_value = $std->select_var( array( 1 => $ibforums->input['prune_day'], 2 => $this->forum['prune'] , @@ -541,7 +633,7 @@ class Forums { // check for any form funny business by wanna-be hackers //+---------------------------------------------------------------- - if ( (!isset($sort_keys[$sort_key])) and (!isset($prune_by_day[$prune_value])) and (!isset($sort_by_keys[$sort_by])) ) + if ( (!isset($sort_keys[$sort_key])) or (!isset($prune_by_day[$prune_value])) or (!isset($sort_by_keys[$sort_by])) ) { $std->Error( array( LEVEL=> 5, MSG =>'incorrect_use') ); } @@ -552,7 +644,7 @@ class Forums { // Query the database to see how many topics there are in the forum //+---------------------------------------------------------------- - $DB->query("SELECT COUNT(tid) as max FROM ibf_topics WHERE forum_id='".$this->forum['id']."' and approved='1' and (last_post > $Prune or pinned=1)"); + $DB->query("SELECT COUNT(tid) as max FROM ibf_topics WHERE forum_id=".$this->forum['id']." and approved=1 and (pinned=1 or last_post > $Prune)"); $total_possible = $DB->fetch_row(); //+---------------------------------------------------------------- @@ -560,12 +652,11 @@ class Forums { //+---------------------------------------------------------------- $this->forum['SHOW_PAGES'] - = $std->build_pagelinks( array( 'TOTAL_POSS' => $total_possible[max], + = $std->build_pagelinks( array( 'TOTAL_POSS' => $total_possible['max'], 'PER_PAGE' => $ibforums->vars['display_max_topics'], 'CUR_ST_VAL' => $ibforums->input['st'], 'L_SINGLE' => $ibforums->lang['single_page_forum'], - 'L_MULTI' => $ibforums->lang['multi_page_forum'], - 'BASE_URL' => $this->base_url."&act=SF&f=".$this->forum['id']."&prune_day=$prune_value&sort_by=$sort_by&sort_key=$sort_key", + 'BASE_URL' => $this->base_url."showforum=".$this->forum['id']."&prune_day=$prune_value&sort_by=$sort_by&sort_key=$sort_key", ) ); @@ -574,24 +665,14 @@ class Forums { // Do we have any rules to show? //+---------------------------------------------------------------- - if ($this->forum['show_rules']) - { - $DB->query("SELECT * from ibf_rules WHERE fid='".$this->forum['id']."'"); - - if ( $rules = $DB->fetch_row() ) - { - $rules['title'] = stripslashes($rules['title']); - $rules['body'] = stripslashes($rules['body']); - $this->output .= $rules['show_all'] ? $this->html->show_rules_full($rules) : $this->html->show_rules_link($rules); - } - } + $this->output .= $std->print_forum_rules($this->forum); //+---------------------------------------------------------------- // Generate the poll button //+---------------------------------------------------------------- $this->forum['POLL_BUTTON'] = $this->forum['allow_poll'] - ? "<{A_POLL}>" + ? "<{A_POLL}>" : ''; //+---------------------------------------------------------------- @@ -613,11 +694,16 @@ class Forums { if ( ($ibforums->vars['show_user_posted'] == 1) and ($ibforums->member['id']) ) { - $query = "SELECT DISTINCT ibf_posts.author_id, ibf_topics.* from ibf_topics LEFT JOIN ibf_posts ON (ibf_topics.tid = ibf_posts.topic_id AND ibf_posts.author_id = '".$ibforums->member['id']."') WHERE ibf_topics.forum_id='".$this->forum['id']."' and (ibf_topics.last_post > '$Prune' OR ibf_topics.pinned='1') and ibf_topics.approved='1'"; + $query = "SELECT DISTINCT(ibf_posts.author_id), ibf_topics.* FROM ibf_topics + LEFT JOIN ibf_posts ON + (ibf_topics.tid=ibf_posts.topic_id AND ibf_posts.author_id=".$ibforums->member['id'].") + WHERE ibf_topics.forum_id=".$this->forum['id']." + and ibf_topics.approved=1 + and (ibf_topics.pinned=1 or ibf_topics.last_post > $Prune)"; } else { - $query = "SELECT * from ibf_topics WHERE forum_id='".$this->forum['id']."' and approved='1' and (last_post > '$Prune' OR pinned='1')"; + $query = "SELECT * from ibf_topics WHERE forum_id=".$this->forum['id']." and approved=1 and (last_post > $Prune OR pinned=1)"; } //+---------------------------------------------------------------- @@ -661,18 +747,21 @@ class Forums { $sort_by_html = "" , $ibforums->lang['sort_text'] ); @@ -681,21 +770,23 @@ class Forums { $this->output .= $this->html->TableEnd($this->forum); + //+---------------------------------------------------------------- + // If all the new topics have been read in this forum.. + //+---------------------------------------------------------------- + + if ($this->new_posts < 1) + { + $ibforums->forum_read[ $this->forum['id'] ] = time(); + + $std->hdl_forum_read_cookie('set'); + } + //+---------------------------------------------------------------- // Process users active in this forum //+---------------------------------------------------------------- if ($ibforums->vars['no_au_forum'] != 1) { - //+----------------------------------------- - // Is this forum restricted, or global? - //+----------------------------------------- - - if ($this->forum['read_perms'] != '*') - { - $q_extra = " AND s.member_group IN (-2,".$this->forum['read_perms'].") "; - } - //+----------------------------------------- // Get the users //+----------------------------------------- @@ -704,14 +795,16 @@ class Forums { $time = time() - $cut_off; - $DB->query("SELECT s.member_id, s.member_name, s.login_type, s.location, g.suffix, g.prefix + $DB->query("SELECT s.member_id, s.member_name, s.login_type, s.location, g.suffix, g.prefix, g.g_perm_id, t.forum_id, m.org_perm_id FROM ibf_sessions s LEFT JOIN ibf_groups g ON (g.g_id=s.member_group) - WHERE s.in_forum='{$this->forum['id']}' - AND s.running_time > '$time'" - .$q_extra. - "ORDER BY s.running_time DESC"); - + LEFT JOIN ibf_topics t ON (t.tid=s.in_topic) + LEFT JOIN ibf_members m on (s.member_id=m.id) + WHERE (s.in_forum={$this->forum['id']} OR t.forum_id={$this->forum['id']}) + AND s.running_time > $time + ORDER BY s.running_time DESC"); + + //+----------------------------------------- // Cache all printed members so we don't double print them //+----------------------------------------- @@ -721,6 +814,23 @@ class Forums { while ($result = $DB->fetch_row() ) { + $result['g_perm_id'] = $result['org_perm_id'] ? $result['org_perm_id'] : $result['g_perm_id']; + + if ( $this->forum['read_perms'] != '*' ) + { + if ( $result['g_perm_id'] ) + { + if ( ! preg_match("/(^|,)(".str_replace( ",", '|', $result['g_perm_id'] ).")(,|$)/", $this->forum['read_perms'] ) ) + { + continue; + } + } + else + { + continue; + } + } + if ($result['member_id'] == 0) { $active['guests']++; @@ -735,18 +845,18 @@ class Forums { { if ( ($ibforums->member['mgroup'] == $ibforums->vars['admin_group']) and ($ibforums->vars['disable_admin_anon'] != 1) ) { - $active['names'] .= "{$result['prefix']}{$result['member_name']}{$result['suffix']}*, "; + $active['names'] .= "{$result['prefix']}{$result['member_name']}{$result['suffix']}*, "; $active['anon']++; } else { - $active['anon']++; + $active['anon']++; } } else { $active['members']++; - $active['names'] .= "{$result['prefix']}{$result['member_name']}{$result['suffix']}, "; + $active['names'] .= "{$result['prefix']}{$result['member_name']}{$result['suffix']}, "; } } } @@ -778,11 +888,11 @@ class Forums { $topic['last_text'] = $ibforums->lang['last_post_by']; $topic['last_poster'] = ($topic['last_poster_id'] != 0) - ? "{$topic['last_poster_name']}" + ? "{$topic['last_poster_name']}" : "-".$topic['last_poster_name']."-"; $topic['starter'] = ($topic['starter_id'] != 0) - ? "{$topic['starter_name']}" + ? "{$topic['starter_name']}" : "-".$topic['starter_name']."-"; if ($topic['poll_state']) @@ -797,7 +907,7 @@ class Forums { $topic['folder_img'] = $std->folder_icon($topic, $show_dots, $this->read_array[$topic['tid']]); - $topic['topic_icon'] = $topic['icon_id'] ? '' + $topic['topic_icon'] = $topic['icon_id'] ? '' : ' '; $topic['start_date'] = $std->get_date( $topic['start_date'], 'LONG' ); @@ -819,37 +929,46 @@ class Forums { } - if ($pages > 1) { + if ($pages > 1) + { $topic['PAGES'] = "({$ibforums->lang['topic_sp_pages']} "; for ($i = 0 ; $i < $pages ; ++$i ) { $real_no = $i * $ibforums->vars['display_max_posts']; $page_no = $i + 1; if ($page_no == 4) { - $topic['PAGES'] .= "vars['display_max_posts'] . "'>...$pages "; + $topic['PAGES'] .= "...$pages "; break; } else { - $topic['PAGES'] .= "$page_no "; + $topic['PAGES'] .= "$page_no "; } } $topic['PAGES'] .= ")"; } + //------------------------------------------------ + // Format some numbers + //------------------------------------------------ + if ($topic['posts'] < 0) $topic['posts'] = 0; + $topic['posts'] = $std->do_number_format($topic['posts']); + $topic['views'] = $std->do_number_format($topic['views']); + + //------------------------------------------------ + // Last time stuff... + //------------------------------------------------ + $last_time = $this->read_array[ $topic['tid'] ] > $ibforums->input['last_visit'] ? $this->read_array[ $topic['tid'] ] : $ibforums->input['last_visit']; if ($last_time && ($topic['last_post'] > $last_time)) { - $topic['go_last_page'] = "<{GO_LAST_ON}>"; - $topic['go_new_post'] = "<{NEW_POST}>"; - + $this->new_posts++; + $topic['go_new_post'] = "<{NEW_POST}>"; } else { - $topic['go_last_page'] = "<{GO_LAST_OFF}>"; $topic['go_new_post'] = ""; } - $topic['last_post'] = $std->get_date( $topic['last_post'], 'SHORT' ); diff --git a/upload/sources/Help.php b/upload/sources/Help.php index fb2ab7ab..ac9861c8 100644 --- a/upload/sources/Help.php +++ b/upload/sources/Help.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Access the help files @@ -114,7 +116,7 @@ class Help { $id = $ibforums->input['HID']; if (! preg_match( "/^(\d+)$/" , $id ) ) { - $std->Error( array( LEVEL => 1, MSG => 'no_search_id') ); + $std->Error( array( LEVEL => 1, MSG => 'no_help_file') ); } $DB->query("SELECT id, title, text from ibf_faq WHERE ID='$id'"); @@ -126,7 +128,7 @@ class Help { $this->output .= $this->html->end(); $this->page_title = $ibforums->lang['help_topic']; - $this->nav = array( "{$ibforums->lang['help_topics']}", $ibforums->lang['help_topic'] ); + $this->nav = array( "{$ibforums->lang['help_topics']}", $ibforums->lang['help_topic'] ); } @@ -134,7 +136,7 @@ class Help { global $ibforums, $DB, $std; if (empty( $ibforums->input['search_q'] ) ) { - $std->Error( array( LEVEL => 1, MSG => 'search_no_input') ); + $std->Error( array( LEVEL => 1, MSG => 'no_help_file') ); } $search_string = strtolower( str_replace( "*" , "%", $ibforums->input['search_q'] ) ); @@ -142,9 +144,9 @@ class Help { $seen = array(); - $this->output = $this->html->start( $ibforums->lang['search_results'], $ibforums->lang['results_txt'], $ibforums->lang['search_results'] ); + $this->output = $this->html->start( $ibforums->lang['page_title'], $ibforums->lang['results_txt'], $ibforums->lang['search_results'] ); - $DB->query("SELECT id, title from ibf_faq WHERE LOWER(title) LIKE '%$search_string%' or LOWER(text) LIKE '%$search_string%' ORDER BY title ASC"); + $DB->query("SELECT id, title, description from ibf_faq WHERE LOWER(title) LIKE '%$search_string%' or LOWER(text) LIKE '%$search_string%' ORDER BY title ASC"); $cnt = 0; @@ -171,7 +173,7 @@ class Help { $this->output .= $this->html->end(); $this->page_title = $ibforums->lang['page_title']; - $this->nav = array( "{$ibforums->lang['help_topics']}", $ibforums->lang['results_title'] ); + $this->nav = array( "{$ibforums->lang['help_topics']}", $ibforums->lang['results_title'] ); } diff --git a/upload/sources/Login.php b/upload/sources/Login.php index 16165103..0f78c2ee 100644 --- a/upload/sources/Login.php +++ b/upload/sources/Login.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Log in / log out module @@ -30,13 +32,23 @@ class Login { var $page_title = ""; var $nav = array(); var $login_html = ""; + var $modules = ""; - function Login() { + function Login() + { global $ibforums, $DB, $std, $print; $ibforums->lang = $std->load_words($ibforums->lang, 'lang_login', $ibforums->lang_id); $this->login_html = $std->load_template('skin_login'); + + + if ( USE_MODULES == 1 ) + { + require ROOT_PATH."modules/ipb_member_sync.php"; + + $this->modules = new ipb_member_sync(); + } // Are we enforcing log ins? @@ -93,12 +105,36 @@ class Login { function auto_login() { - global $ibforums, $DB, $std, $print; + global $ibforums, $DB, $std, $print, $sess; // Universal routine. // If we have cookies / session created, simply return to the index screen // If not, return to the log in form + $ibforums->member = $sess->authorise(); + + // If there isn't a member ID set, do a quick check ourselves. + // It's not that important to do the full session check as it'll + // occur when they next click a link. + + if ( ! $ibforums->member['id'] ) + { + $mid = intval($std->my_getcookie('member_id')); + $pid = $std->my_getcookie('pass_hash'); + + If ($mid and $pid) + { + $DB->query("SELECT * FROM ibf_members WHERE id=$mid AND password='$pid'"); + + if ( $member = $DB->fetch_row() ) + { + $ibforums->member = $member; + $ibforums->session_id = ""; + $std->my_setcookie('session_id', '0', -1 ); + } + } + } + $true_words = $ibforums->lang['logged_in']; $false_words = $ibforums->lang['not_logged_in']; $method = 'no_show'; @@ -109,6 +145,18 @@ class Login { $false_words = $ibforums->lang['reg_not_log_in']; $method = 'show'; } + else if ($ibforums->input['fromemail'] == 1) + { + $true_words = $ibforums->lang['email_log_in']; + $false_words = $ibforums->lang['email_not_log_in']; + $method = 'show'; + } + else if ($ibforums->input['frompass'] == 1) + { + $true_words = $ibforums->lang['pass_log_in']; + $false_words = $ibforums->lang['pass_not_log_in']; + $method = 'show'; + } if ($ibforums->member['id']) { @@ -118,7 +166,7 @@ class Login { } else { - $std->boink_it($ibforums->base_url); + $std->boink_it($ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext']); } } else @@ -146,11 +194,6 @@ class Login { { foreach( $HTTP_COOKIE_VARS as $cookie => $value) { - if (preg_match( "/^(".$ibforums->vars['cookie_id']."fread.*$)/", $cookie, $match)) - { - $std->my_setcookie( str_replace( $ibforums->vars['cookie_id'], "", $match[0] ) , '-1', -1 ); - } - if (preg_match( "/^(".$ibforums->vars['cookie_id']."ibforum.*$)/i", $cookie, $match)) { $std->my_setcookie( str_replace( $ibforums->vars['cookie_id'], "", $match[0] ) , '-', -1 ); @@ -163,6 +206,7 @@ class Login { $std->my_setcookie('session_id', '-1'); $std->my_setcookie('topicsread', '-1'); $std->my_setcookie('anonlogin' , '-1'); + $std->my_setcookie('forum_read', '-1'); $std->boink_it($ibforums->base_url); exit(); @@ -185,19 +229,68 @@ class Login { } - function markforum() { + function markforum() + { global $ibforums, $DB, $std; - $ibforums->input['f'] = preg_replace( "/^(\d+)$/", "\\1", $ibforums->input['f'] ); + $ibforums->input['f'] = intval($ibforums->input['f']); if ($ibforums->input['f'] == "") { $std->Error( array( LEVEL => 1, MSG => 'missing_files' ) ); } - $std->my_setcookie( "fread_".$ibforums->input['f'], time() ); + $DB->query("SELECT id, name, subwrap, parent_id FROM ibf_forums WHERE id=".$ibforums->input['f']); - $std->boink_it($ibforums->base_url); + if ( ! $f = $DB->fetch_row() ) + { + $std->Error( array( LEVEL => 1, MSG => 'missing_files' ) ); + } + + //-------------------------------------- + // Did we come in via the index? + //-------------------------------------- + + if ( $ibforums->input['i'] == 1 ) + { + //-------------------------------------- + // It's also a subforum, so grab all + // meh kiddies. "meh kiddies"? That's Rikki's + // bad influence. o_O + //-------------------------------------- + + $DB->query("SELECT id FROM ibf_forums WHERE parent_id={$ibforums->input['f']}"); + + while ( $r = $DB->fetch_row() ) + { + $ibforums->forum_read[ $r['id'] ] = time(); + } + } + + //-------------------------------------- + // Reset cookie (yum) + //-------------------------------------- + + $ibforums->forum_read[ $ibforums->input['f'] ] = time(); + + $std->hdl_forum_read_cookie('set'); + + //-------------------------------------- + // Are we getting kicked back to the root forum (if sub forum) or index? + //-------------------------------------- + + if ( ($f['parent_id'] > 0) AND ($ibforums->input['i'] != 1) ) + { + //-------------------------------------- + // Its a sub forum, lets go redirect to parent forum + //-------------------------------------- + + $std->boink_it($ibforums->base_url."act=SF&f=".$f['parent_id']); + } + else + { + $std->boink_it($ibforums->base_url); + } exit(); } @@ -205,7 +298,8 @@ class Login { - function log_in_form($message="") { + function log_in_form($message="") + { global $ibforums, $DB, $std, $print, $HTTP_REFERER; //+-------------------------------------------- @@ -254,6 +348,18 @@ class Login { $url = ""; + //------------------------------------------------- + // More unicode.. + //------------------------------------------------- + + $len_u = $std->txt_stripslashes($HTTP_POST_VARS['UserName']); + + $len_u = preg_replace("/&#([0-9]+);/", "-", $len_u ); + + $len_p = $std->txt_stripslashes($HTTP_POST_VARS['PassWord']); + + $len_p = preg_replace("/&#([0-9]+);/", "-", $len_p ); + //------------------------------------------------- // Make sure the username and password were entered //------------------------------------------------- @@ -273,26 +379,26 @@ class Login { // Check for input length //------------------------------------------------- - if (strlen($ibforums->input['UserName']) > 32) + if (strlen($len_u) > 32) { $std->Error( array( LEVEL => 1, MSG => 'username_long' ) ); } - if (strlen($ibforums->input['PassWord']) > 32) + if (strlen($len_p) > 32) { $std->Error( array( LEVEL => 1, MSG => 'pass_too_long' ) ); } - $username = strtolower($ibforums->input['UserName']); + $username = strtolower(str_replace( '|', '|', $ibforums->input['UserName']) ); $password = md5( $ibforums->input['PassWord'] ); //------------------------------------------------- // Attempt to get the user details //------------------------------------------------- - $DB->query("SELECT id, name, mgroup, password, new_pass FROM ibf_members WHERE LOWER(name)='$username'"); + $DB->query("SELECT id, name, mgroup, password, ip_address FROM ibf_members WHERE LOWER(name)='$username'"); - if ($DB->get_num_rows()) + if ( $DB->get_num_rows() ) { $member = $DB->fetch_row(); @@ -314,11 +420,33 @@ class Login { $std->my_setcookie("pass_hash" , $password, 1); } + //------------------------------ + // Update profile if IP addr missing //------------------------------ - if ($ibforums->input['s']) + if ( $member['ip_address'] == "" OR $member['ip_address'] == '127.0.0.1' ) { - $session_id = $ibforums->input['s']; + $DB->query("UPDATE ibf_members SET ip_address='{$ibforums->input['IP_ADDRESS']}' WHERE id={$member['id']}"); + } + + //------------------------------ + // Create / Update session + //------------------------------ + + $poss_session_id = ""; + + if ( $cookie_id = $std->my_getcookie('session_id') ) + { + $poss_session_id = $std->my_getcookie('session_id'); + } + else if ( $ibforums->input['s'] ) + { + $poss_session_id = $ibforums->input['s']; + } + + if ($poss_session_id) + { + $session_id = $poss_session_id; // Delete any old sessions with this users IP addy that doesn't match our // session ID. @@ -333,7 +461,7 @@ class Login { 'login_type' => $ibforums->input['Privacy'] ? 1 : 0 ) ); - $db_query = "UPDATE ibf_sessions SET $db_string WHERE id='".$ibforums->input['s']."'"; + $db_query = "UPDATE ibf_sessions SET $db_string WHERE id='".$session_id."'"; } else { @@ -350,7 +478,7 @@ class Login { 'running_time' => time(), 'member_group' => $member['mgroup'], 'ip_address' => substr($ibforums->input['IP_ADDRESS'], 0, 50), - 'browser' => substr($HTTP_USER_AGENT, 0, 50), + 'browser' => substr($std->clean_value($HTTP_USER_AGENT), 0, 50), 'login_type' => $ibforums->input['Privacy'] ? 1 : 0 ) ); @@ -359,18 +487,6 @@ class Login { $DB->query( $db_query ); - //----------------------------------- - // If a bogus reset passy action occured, - // and we managed to log in, we'll assume - // that the user did nothing, so we remove - // this new pass setting. - //----------------------------------- - - if ($member['new_pass'] != "") - { - $DB->query("UPDATE ibf_members SET new_pass='' WHERE id='".$member['id']."'"); - } - $ibforums->member = $member; $ibforums->session_id = $session_id; @@ -392,17 +508,51 @@ class Login { $std->my_setcookie( "anonlogin", 1 ); } + //----------------------------------- + // Clear out any passy change stuff + //----------------------------------- + + $DB->query("DELETE FROM ibf_validating WHERE member_id={$ibforums->member['id']} AND lost_pass=1"); + //----------------------------------- // Redirect them to either the board // index, or where they came from //----------------------------------- + $std->my_setcookie("session_id", $ibforums->session_id, -1); + + $this->logged_in = 1; + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_login($member); + } + + if ( $ibforums->input['return'] != "" ) + { + $return = urldecode($ibforums->input['return']); + + if ( preg_match( "#^http://#", $return ) ) + { + $std->boink_it($return); + } + } + $print->redirect_screen( "{$ibforums->lang[thanks_for_login]} {$ibforums->member['name']}", $url ); } else { + $this->logged_in = 0; + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_login($member); + } + $this->log_in_form( 'wrong_name' ); } @@ -413,14 +563,10 @@ class Login { - function do_log_out() { + function do_log_out() + { global $std, $ibforums, $DB, $print, $sess, $HTTP_COOKIE_VARS; - /*if(! $ibforums->member['id']) - { - $std->Error( array( LEVEL => 1, MSG => 'no_guests') ); - }*/ - // Update the DB $DB->query("UPDATE ibf_sessions SET ". @@ -441,20 +587,30 @@ class Login { { foreach( $HTTP_COOKIE_VARS as $cookie => $value ) { - if (preg_match( "/^(".$ibforums->vars['cookie_id']."fread.*$)/", $cookie, $match)) - { - $std->my_setcookie( str_replace( $ibforums->vars['cookie_id'], "", $match[0] ) , '-1', -1 ); - } - if (preg_match( "/^(".$ibforums->vars['cookie_id']."ibforum.*$)/i", $cookie, $match)) { - $std->my_setcookie( str_replace( $ibforums->vars['cookie_id'], "", $match[0] ) , '-', -1 ); + if ( strlen( $match[1] ) > 0 ) + { + $std->my_setcookie( str_replace( $ibforums->vars['cookie_id'], "", $match[1] ) , '-', -1 ); + } } } } // Redirect... + $url = ""; + + if ( $ibforums->input['return'] != "" ) + { + $return = urldecode($ibforums->input['return']); + + if ( preg_match( "#^http://#", $return ) ) + { + $std->boink_it($return); + } + } + $print->redirect_screen( $ibforums->lang['thanks_for_logout'], "" ); } diff --git a/upload/sources/Memberlist.php b/upload/sources/Memberlist.php index 18be7d72..e66e5339 100644 --- a/upload/sources/Memberlist.php +++ b/upload/sources/Memberlist.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Show all the members @@ -42,7 +44,8 @@ class Memberlist { var $mem_groups = array(); - function Memberlist() { + function Memberlist() + { global $ibforums, $DB, $std, $print; @@ -56,7 +59,7 @@ class Memberlist { $this->html = $std->load_template('skin_mlist'); - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; if ($ibforums->member['g_mem_info'] != 1) { @@ -126,7 +129,7 @@ class Memberlist { // Fix up the search box //------------------------------------------ - $ibforums->input['name'] = trim(urldecode(stripslashes($ibforums->input['name']))); + $ibforums->input['name'] = $std->clean_value(trim(urldecode(stripslashes($ibforums->input['name'])))); if ($ibforums->input['name'] == "") { @@ -163,20 +166,20 @@ class Memberlist { $sort_order_html = "" , $ibforums->lang['sorting_text'] ); @@ -193,7 +196,14 @@ class Memberlist { if ($error == 1 ) { - $std->Error( array( LEVEL=> 5, MSG =>'incorrect_use') ); + if ( $ibforums->input['b'] == 1 ) + { + $std->Error( array( LEVEL=> 1, MSG =>'ml_error') ); + } + else + { + $std->Error( array( LEVEL=> 5, MSG =>'incorrect_use') ); + } } //--------------------------------------------- @@ -208,11 +218,11 @@ class Memberlist { if ( ! preg_match( "/(^|,)".$this->filter."(,|$)/", $group_string ) ) { - $q_extra = " AND mgroup IN($group_string)"; + $q_extra = " AND m.mgroup IN($group_string)"; } else { - $q_extra = " AND mgroup='".$this->filter."' "; + $q_extra = " AND m.mgroup='".$this->filter."' "; } } @@ -220,15 +230,30 @@ class Memberlist { { if ( $ibforums->input['name_box'] == 'begins' ) { - $q_extra .= " AND name LIKE '".$ibforums->input['name']."%'"; + $q_extra .= " AND m.name LIKE '".$ibforums->input['name']."%'"; } else { - $q_extra .= " AND name LIKE '%".$ibforums->input['name']."%'"; + $q_extra .= " AND m.name LIKE '%".$ibforums->input['name']."%'"; } } + + if ($ibforums->input['photoonly'] == 1) + { + $DB->query("SELECT COUNT(m.id) as total_members FROM ibf_members m + LEFT JOIN ibf_member_extra me ON me.id=m.id + LEFT JOIN ibf_groups g ON m.mgroup=g.g_id + WHERE me.photo_location <> '' AND m.id > 0 AND g.g_hide_from_list <> 1".$q_extra); - $DB->query("SELECT COUNT(id) as total_members FROM ibf_members WHERE id > 0".$q_extra); + $q_extra .= " AND me.photo_location <> ''"; + } + else + { + $DB->query("SELECT COUNT(m.id) as total_members FROM ibf_members m + LEFT JOIN ibf_groups g ON m.mgroup=g.g_id + WHERE m.id > 0 AND g.g_hide_from_list <> 1".$q_extra); + } + $max = $DB->fetch_row(); $DB->free_result(); @@ -238,7 +263,7 @@ class Memberlist { 'CUR_ST_VAL' => $this->first, 'L_SINGLE' => "", 'L_MULTI' => $ibforums->lang['pages'], - 'BASE_URL' => $this->base_url."&act=Members&name=".urlencode($ibforums->input['name'])."&name_box={$ibforums->input['name_box']}&max_results={$this->max_results}&filter={$this->filter}&sort_order={$this->sort_order}&sort_key={$this->sort_key}" + 'BASE_URL' => $this->base_url."&act=Members&photoonly={$ibforums->input['photoonly']}&name=".urlencode($ibforums->input['name'])."&name_box={$ibforums->input['name_box']}&max_results={$this->max_results}&filter={$this->filter}&sort_order={$this->sort_order}&sort_key={$this->sort_key}" ) ); @@ -250,8 +275,14 @@ class Memberlist { // START THE LISTING //----------------------------- - $DB->query("SELECT name, id, posts, joined, mgroup, email,title, hide_email, location, aim_name, icq_number " - ."FROM ibf_members WHERE id > 0".$q_extra." ORDER BY ".$this->sort_key." ".$this->sort_order." LIMIT ".$this->first.",".$this->max_results); + $DB->query("SELECT m.name, m.id, m.posts, m.joined, m.mgroup, m.email,m.title, m.hide_email, m.location, m.aim_name, m.icq_number, + me.photo_location, me.photo_type, me.photo_dimensions + FROM ibf_members m + LEFT JOIN ibf_member_extra me ON me.id=m.id + LEFT JOIN ibf_groups g ON m.mgroup=g.g_id + WHERE m.id > 0".$q_extra." AND g.g_hide_from_list <> 1 + ORDER BY m.".$this->sort_key." ".$this->sort_order." + LIMIT ".$this->first.",".$this->max_results); while($member = $DB->fetch_row() ) { @@ -260,7 +291,8 @@ class Memberlist { foreach($this->mem_titles as $k => $v) { - if ($member['posts'] >= $v['POSTS']) { + if ($member['posts'] >= $v['POSTS']) + { if (!$member['title']) { $member['title'] = $this->mem_titles[ $k ]['TITLE']; @@ -272,7 +304,7 @@ class Memberlist { if ($this->mem_groups[ $member['mgroup'] ]['ICON']) { - $member[MEMBER_PIPS_IMG] = ""; + $member['pips'] = ""; } else { @@ -282,52 +314,64 @@ class Memberlist { { for ($i = 1; $i <= $pips; ++$i) { - $member['MEMBER_PIPS_IMG'] .= "<{A_STAR}>"; + $member['pips'] .= "<{A_STAR}>"; } } else { - $member['MEMBER_PIPS_IMG'] = ""; + $member['pips'] = ""; } } } - $member['MEMBER_JOINED'] = $std->get_date( $member['joined'], 'JOINED' ); + $member['joined'] = $std->get_date( $member['joined'], 'JOINED' ); - $member['MEMBER_GROUP'] = $this->mem_groups[ $member['mgroup'] ]['TITLE']; + $member['group'] = $this->mem_groups[ $member['mgroup'] ]['TITLE']; - if (!$member['hide_email']) { - $member['MEMBER_EMAIL'] = "<{P_EMAIL}> "; - } else { - $member['MEMBER_EMAIL'] = ' '; + if (!$member['hide_email']) + { + $member['member_email'] = "<{P_EMAIL}>"; + } + else + { + $member['member_email'] = ' '; } - if ($member['icq_number']) { - $member['ICQNUMBER'] = "base_url}&act=ICQ&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_ICQ}> "; - } else { - $member['ICQNUMBER'] = ' '; + if ($member['icq_number']) + { + $member['icq_number'] = "base_url}act=ICQ&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_ICQ}>"; + } + else + { + $member['icq_number'] = ' '; } - if ($member['aim_name']) { - $member[AOLNAME] = "base_url}&act=AOL&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_AOL}> "; - } else { - $member['AOLNAME'] = ' '; + if ($member['aim_name']) + { + $member['aim_name'] = "base_url}act=AOL&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_AOL}>"; + } + else + { + $member['aim_name'] = ' '; + } + + if ($member['photo_type'] and $member['photo_location']) + { + $member['camera'] = "base_url}act=Profile&CODE=showphoto&MID={$member['id']}','Photo','200','250','0','1','1','1')\"><{CAMERA}>"; } $member['password'] = ""; - $member['MEMBER_NAME'] = $member['name']; - - $member['MEMBER_POSTS'] = $member['posts']; - - $member['MEMBER_ID'] = $member['id']; + $member['posts'] = $std->do_number_format($member['posts']); $this->output .= $this->html->show_row($member); } - $this->output .= $this->html->Page_end(); + $checked = $ibforums->input['photoonly'] == 1 ? 'checked="checked"' : ""; + + $this->output .= $this->html->Page_end( $checked ); $this->output .= $this->html->end( array( 'SHOW_PAGES' => $links) ); diff --git a/upload/sources/Messenger.php b/upload/sources/Messenger.php index c3679b84..89ebb7bd 100644 --- a/upload/sources/Messenger.php +++ b/upload/sources/Messenger.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Messenger functions @@ -53,12 +55,6 @@ class Messenger { function Messenger() { global $ibforums, $DB, $std, $print; - //-------------------------------------------- - // Make sure our code number is numerical only - //-------------------------------------------- - - if ($ibforums->input['CODE'] == "") $ibforums->input['CODE'] = 00; - //-------------------------------------------- // Require the HTML and language modules //-------------------------------------------- @@ -76,7 +72,7 @@ class Messenger { //-------------------------------------------- - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; $this->base_url_nosess = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}"; //-------------------------------------------- @@ -122,6 +118,7 @@ class Messenger { $this->msg_stats['vdirs'] = "in:Inbox|sent:Sent Items"; } + $folder_links = ""; foreach( explode( "|", $this->msg_stats['vdirs'] ) as $dir ) { @@ -138,19 +135,47 @@ class Messenger { { $this->msg_stats['current_dir'] = $real; $this->msg_stats['current_id'] = $id; - $this->jump_html .= "\n"; + $this->jump_html .= "\n"; } else { $this->jump_html .= "\n"; } + + if ( $id != 'in' ) + { + $folder_links .= $this->cp_html->menu_bar_msg_folder_link($id, $real); + } } $this->jump_html .= "\n\n"; + + $menu_html = $this->cp_html->Menu_bar($this->base_url); + + if ( $folder_links != "" ) + { + $menu_html = str_replace( "", $folder_links, $menu_html ); + } + + //-------------------------------------------- + // Using Sub Manager? + //-------------------------------------------- + + if ( @is_dir( ROOT_PATH.'/modules/subsmanager' ) ) + { + $url = $ibforums->base_url."act=module&module=subscription&CODE=index"; + $name = $ibforums->lang['new_sub_link']; + + $menu_html = str_replace( "", $this->cp_html->menu_bar_new_link( $url, $name ), $menu_html ); + } + + if ($ibforums->vars['top_site_list_integrate']) + { + $menu_html = str_replace( "", $this->cp_html->tsl_links(), $menu_html ); + } - - $print->add_output( $this->cp_html->Menu_bar($this->base_url) );; + $print->add_output( $menu_html ); //-------------------------------------------- @@ -225,6 +250,13 @@ class Messenger { $this->del_tracked(); break; + case 'delete': + $this->start_empty_folders(); + break; + case 'dofolderdelete': + $this->end_empty_folders(); + break; + default: $this->msg_list(); break; @@ -276,6 +308,112 @@ class Messenger { } + /**********************************************************/ + // Empty PM folders: + // + // Interface for removing PM's on a folder by folder basis + /**********************************************************/ + + function start_empty_folders() + { + global $ibforums, $DB, $std, $print; + + $this->output .= $this->html->empty_folder_header(); + + //-------------------------------------------------- + // Get the PM count - 1 query? + //-------------------------------------------------- + + $count = array( 'unsent' => 0 ); + $names = array( 'unsent' => $ibforums->lang['fd_unsent'] ); + + foreach( $this->msg_stats['dir_data'] as $k => $v ) + { + $count[ $v['id'] ] = 0; + $names[ $v['id'] ] = $v['real']; + } + + $DB->query("SELECT msg_id, vid FROM ibf_messages WHERE member_id={$ibforums->member['id']} LIMIT 0,1000"); + + while( $r = $DB->fetch_row() ) + { + if ( $r['vid'] == "" ) + { + $count['in']++; + } + else + { + $count[ $r['vid'] ]++; + } + + } + + foreach( $names as $vid => $name ) + { + $this->output .= $this->html->empty_folder_row( $name, $vid, $count[$vid] ); + } + + $this->output .= $this->html->empty_folder_save_unread(); + $this->output .= $this->html->empty_folder_footer(); + + $this->page_title = $ibforums->lang['t_welcome']; + $this->nav = array( "".$ibforums->lang['t_title']."" ); + + } + + + function end_empty_folders() + { + global $ibforums, $DB, $std, $print; + + $names = array( 'unsent' => $ibforums->lang['fd_unsent'] ); + $ids = array(); + $qe = ""; + + foreach( $this->msg_stats['dir_data'] as $k => $v ) + { + $names[ $v['id'] ] = $v['real']; + } + + //---------------------------------------------- + // Did we check any boxes? + //---------------------------------------------- + + foreach( $names as $vid => $name ) + { + if ( $ibforums->input['its_'.$vid] == 1 ) + { + $ids[] = $vid; + } + } + + if ( count($ids) < 1 ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'fd_noneselected' ) ); + } + + //---------------------------------------------- + // Delete em! + //---------------------------------------------- + + if ( $ibforums->input['save_unread'] ) + { + $qe = ' AND read_state=1'; + } + + $DB->query("DELETE FROM ibf_messages WHERE member_id={$ibforums->member['id']} AND vid IN('".implode("','", $ids)."')".$qe); + + $DB->query("SELECT COUNT(*) as msg_total FROM ibf_messages WHERE member_id=".$this->member['id']." AND vid <> 'unsent'"); + + $total = $DB->fetch_row(); + + $total['msg_total'] = $total['msg_total'] > 0 ? $total['msg_total'] : 0; + + $DB->query("UPDATE ibf_members SET msg_total=".$total['msg_total']." WHERE id=".$this->member['id']); + + $std->boink_it($this->base_url."act=Msg&CODE=delete"); + } + /**********************************************************/ // ARCHIVE: @@ -283,7 +421,8 @@ class Messenger { // Allows a user to archive and email a HTML file /**********************************************************/ - function archive() { + function archive() + { global $ibforums, $DB, $std, $print; $this->jump_html = preg_replace("//", "", $this->jump_html ); @@ -291,11 +430,12 @@ class Messenger { $this->output .= $this->html->archive_form( $this->jump_html ); $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); } - function do_archive() { + function do_archive() + { global $ibforums, $DB, $std, $print; require "./sources/lib/emailer.php"; @@ -308,6 +448,12 @@ class Messenger { $folder_query = ""; $msg_ids = array(); + $older_newer = '>'; + + if ( $ibforums->input['oldnew'] == 'older' ) + { + $older_newer = '<'; + } if ($ibforums->input['VID'] != 'all') { @@ -316,13 +462,16 @@ class Messenger { if ( $ibforums->input['dateline'] == 'all' ) { - $time_cut = 0; + $time_cut = 0; + $older_newer = '<'; } else { $time_cut = time() - ($ibforums->input['dateline'] * 60 * 60 *24); } + + //---------------------------------------- // Check the input... //---------------------------------------- @@ -369,7 +518,16 @@ class Messenger { // Get the messages... //---------------------------------------- - $archive_query = $DB->query("SELECT mg.*, m.name, m.id from ibf_messages mg, ibf_members m WHERE mg.member_id=m.id AND mg.member_id='".$this->member['id']."' AND mg.msg_date > $time_cut".$folder_query." ORDER BY mg.msg_date LIMIT 0,".$ibforums->input['number']); + + $archive_query = $DB->query("SELECT mg.*, m.name, m.id, mr.id as rec_id, mr.name as rec_name + FROM ibf_messages mg + LEFT JOIN ibf_members m ON (m.id=mg.from_id) + LEFT JOIN ibf_members mr ON (mr.id=mg.recipient_id) + WHERE mg.member_id={$ibforums->member['id']} + AND mg.msg_date $older_newer $time_cut".$folder_query." + ORDER BY mg.msg_date + LIMIT 0,".$ibforums->input['number']); + if ( $DB->get_num_rows($archive_query) ) { @@ -379,13 +537,13 @@ class Messenger { $msg_ids[] = $r['msg_id']; - $from_member = $DB->query("SELECT id, name FROM ibf_members WHERE id='".$r['from_id']."'"); + //$from_member = $DB->query("SELECT id, name FROM ibf_members WHERE id='".$r['from_id']."'"); - $from_mem = $DB->fetch_row($from_member); + //$from_mem = $DB->fetch_row($from_member); $info['msg_date'] = $std->get_date( $r['msg_date'], 'LONG' ); $info['msg_title'] = $r['title']; - $info['msg_sender'] = $from_mem['name']; + $info['msg_sender'] = $r['name']; $info['msg_content'] = $this->parser->convert( array( 'TEXT' => $r['message'], 'SMILIES' => 0, 'CODE' => $ibforums->vars['msg_allow_code'], @@ -399,7 +557,15 @@ class Messenger { } else { - $output .= $this->html->archive_html_entry($info); + if ( $r['vid'] == 'sent' ) + { + $info['msg_sender'] = $r['rec_name']; + $output .= $this->html->archive_html_entry_sent($info); + } + else + { + $output .= $this->html->archive_html_entry($info); + } } } @@ -424,6 +590,8 @@ class Messenger { } + $output = str_replace( "<#IMG_DIR#>", $ibforums->skin['img_dir'], $output ); + $this->email->get_template("pm_archive"); $this->email->build_message( array( @@ -442,7 +610,7 @@ class Messenger { $this->output .= $this->html->archive_complete(); $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); } else @@ -470,7 +638,7 @@ class Messenger { $this->output .= $this->html->prefs_header(); - $count = 0; + $max = 1; foreach( $this->msg_stats['dir_data'] as $k => $v ) { @@ -479,10 +647,17 @@ class Messenger { { $extra = "  ( ".$v['real']." - ".$ibforums->lang['cannot_remove']." )"; } + $this->output .= $this->html->prefs_row( array( 'ID' => $v['id'], 'REAL' => $v['real'], 'EXTRA' => $extra ) ); - $count++; + + if ( stristr( $v['id'], 'dir_' ) ) + { + $max = intval( str_replace( 'dir_', "", $v['id'] ) ) + 1; + } } + $count = $max + 1; + $this->output .= $this->html->prefs_add_dirs(); for ($i = $count; $i < $count+3; $i++) @@ -493,7 +668,7 @@ class Messenger { $this->output .= $this->html->prefs_footer(); $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); } @@ -521,14 +696,14 @@ class Messenger { { if ($ibforums->input[$match[0]]) { - $v_dir .= '|'.$match[0].':'.trim($ibforums->input[$match[0]]); + $v_dir .= '|'.$match[0].':'.trim(str_replace( '|', '|', $ibforums->input[$match[0]]) ); } } } $DB->query("UPDATE ibf_members SET vdirs='$v_dir' WHERE id='".$this->member['id']."'"); - $std->boink_it($ibforums->base_url."&act=Msg&CODE=07"); + $std->boink_it($ibforums->base_url."act=Msg&CODE=07"); exit; } @@ -554,7 +729,7 @@ class Messenger { $DB->query("DELETE FROM ibf_contacts WHERE member_id='".$this->member['id']."' AND contact_id='".$ibforums->input['MID']."'"); - $std->boink_it($this->base_url."&act=Msg&CODE=02"); + $std->boink_it($this->base_url."act=Msg&CODE=02"); exit; } @@ -603,8 +778,8 @@ class Messenger { $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."", - "".$ibforums->lang['t_book']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."", + "".$ibforums->lang['t_book']."" ); } @@ -639,7 +814,7 @@ class Messenger { $DB->query("UPDATE ibf_contacts SET contact_desc='".$ibforums->input['mem_desc']."', allow_msg='".$ibforums->input['allow_msg']."' WHERE id='".$memb['id']."'"); - $std->boink_it($this->base_url."&act=Msg&CODE=02"); + $std->boink_it($this->base_url."act=Msg&CODE=02"); exit; } @@ -701,7 +876,7 @@ class Messenger { $this->output .= $this->html->address_add($name_to_enter); $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); } @@ -759,7 +934,7 @@ class Messenger { // BUH BYE! - $std->boink_it($this->base_url."&act=Msg&CODE=02"); + $std->boink_it($this->base_url."act=Msg&CODE=02"); exit; } @@ -806,13 +981,13 @@ class Messenger { // Did we delete from the saved folder? If so, don't update the msg stats and // redirect back to the saved folder. - $std->boink_it($this->base_url."&act=Msg&CODE=20"); + $std->boink_it($this->base_url."act=Msg&CODE=20"); exit; } else { $DB->query("UPDATE ibf_members SET msg_total=msg_total-$affected_ids WHERE id='".$this->member['id']."'"); - $std->boink_it($this->base_url."&act=Msg&CODE=01&VID={$this->vid}"); + $std->boink_it($this->base_url."act=Msg&CODE=01&VID={$this->vid}"); exit; } @@ -820,7 +995,7 @@ class Messenger { else if ($ibforums->input['move']) { $DB->query("UPDATE ibf_messages SET vid='".$this->vid."' WHERE member_id='".$this->member['id']."' AND msg_id IN ($id_string)"); - $std->boink_it($this->base_url."&act=Msg&CODE=01&VID={$this->vid}"); + $std->boink_it($this->base_url."act=Msg&CODE=01&VID={$this->vid}"); exit; } else @@ -869,7 +1044,7 @@ class Messenger { $DB->query("UPDATE ibf_messages SET tracking=0 WHERE tracking=1 AND read_state=1 AND from_id='".$this->member['id']."' AND msg_id IN ($id_string)"); - $std->boink_it($this->base_url."&act=Msg&CODE=30"); + $std->boink_it($this->base_url."act=Msg&CODE=30"); } else { @@ -907,7 +1082,7 @@ class Messenger { $DB->query("DELETE FROM ibf_messages WHERE tracking=1 AND read_state=0 AND from_id='".$this->member['id']."' AND msg_id IN ($id_string)"); - $std->boink_it($this->base_url."&act=Msg&CODE=30"); + $std->boink_it($this->base_url."act=Msg&CODE=30"); } else { @@ -950,7 +1125,7 @@ class Messenger { // BYE! - $std->boink_it($this->base_url."&act=Msg&CODE=01&VID={$this->vid}"); + $std->boink_it($this->base_url."act=Msg&CODE=01&VID={$this->vid}"); exit; } @@ -963,7 +1138,7 @@ class Messenger { /**********************************************************/ function view_msg() { - global $ibforums, $DB, $std, $print; + global $ibforums, $DB, $std, $print, $skin_universal; //-------------------------------------- // check for a msg ID @@ -999,7 +1174,7 @@ class Messenger { // no new msg //-------------------------------------- - if ($ibforums->member['new_msg'] > 0) + if ($ibforums->member['new_msg'] >= 1) { $DB->query("UPDATE ibf_members SET new_msg=new_msg-1 WHERE id='".$this->member['id']."'"); } @@ -1010,7 +1185,7 @@ class Messenger { if ($msg['read_state'] < 1) { - $DB->query("UPDATE ibf_messages SET read_state='1', read_date='".time()."' WHERE msg_id='".$ibforums->input['MSID']."'"); + $DB->query("UPDATE ibf_messages SET read_state=1, read_date='".time()."' WHERE msg_id='".$ibforums->input['MSID']."'"); } @@ -1026,31 +1201,35 @@ class Messenger { $msg['msg_date'] = $std->get_date( $msg['msg_date'], 'LONG' ); - $DB->query("SELECT g.g_title as member_group, m.id, m.joined, m.name, m.title, m.posts, m.mgroup, m.email, m.signature, m.avatar, m.avatar_size, m.hide_email, m.aim_name, m.icq_number ". + $DB->query("SELECT g.*, m.* ". "FROM ibf_members m, ibf_groups g WHERE id='".$msg['from_id']."' and g.g_id=m.mgroup"); $member = $DB->fetch_row(); $member = $this->parse_member( $member, $msg ); - $msg['message'] = $this->parser->convert( array( TEXT => $msg['message'], - SMILIES => 1, - CODE => $ibforums->vars['msg_allow_code'], - HTML => $ibforums->vars['msg_allow_html'] + $msg['message'] = $this->parser->convert( array( 'TEXT' => $msg['message'], + 'SMILIES' => 1, + 'CODE' => $ibforums->vars['msg_allow_code'], + 'HTML' => $ibforums->vars['msg_allow_html'] ) ); - if (!$ibforums->vars[SIG_SEP]) $ibforums->vars[SIG_SEP] = "

    --------------------
    "; - if ($this->member['view_sigs']) { - $member['signature'] = $ibforums->vars[SIG_SEP] . $this->parser->convert( array( TEXT => $member['signature'], - SMILIES => 0, - CODE => $ibforums->vars['sig_allow_ibc'], - HTML => $ibforums->vars['sig_allow_html'], - SIGNATURE => 1, - ) - ); + $member['signature'] = $this->parser->convert( array( 'TEXT' => $member['signature'], + 'SMILIES' => 0, + 'CODE' => $ibforums->vars['sig_allow_ibc'], + 'HTML' => $ibforums->vars['sig_allow_html'], + 'SIGNATURE'=> 1, + ) ); + + if ( $ibforums->vars['sig_allow_html'] == 1 ) + { + $member['signature'] = $this->parser->parse_html($member['signature'], 0); + } + + $member['signature'] = $skin_universal->signature_separator($member['signature']); } else { @@ -1068,8 +1247,8 @@ class Messenger { $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."", - "".$this->msg_stats['current_dir']."" + $this->nav = array( "".$ibforums->lang['t_title']."", + "".$this->msg_stats['current_dir']."" ); } @@ -1111,7 +1290,7 @@ class Messenger { $this->parser = new post_parser(); - $old_msg = $this->parser->convert( array( TEXT => $ibforums->input['Post'], + $old_msg = $this->parser->convert( array( TEXT => $std->remove_tags($ibforums->input['Post']), SMILIES => 1, CODE => $ibforums->vars['msg_allow_code'], HTML => $ibforums->vars['msg_allow_html'] @@ -1164,8 +1343,8 @@ class Messenger { if ($preview == 1) { - $old_message = stripslashes($HTTP_POST_VARS['Post']); - $old_title = preg_replace( "/'/", "'", stripslashes($HTTP_POST_VARS['msg_title']) ); + $old_message = $std->txt_htmlspecialchars($std->txt_stripslashes($HTTP_POST_VARS['Post'])); + $old_title = preg_replace( "/'/", "'", $std->txt_stripslashes($HTTP_POST_VARS['msg_title']) ); } else if (!empty($ibforums->input['MSID'])) @@ -1196,6 +1375,8 @@ class Messenger { // Build up the HTML for the send form //-------------------------------------- + $this->output .= $this->post_html->get_javascript(); + $this->output .= $this->html->Send_form( array ( 'CONTACTS' => $contacts, 'MEMBER' => $this->member, @@ -1218,7 +1399,7 @@ class Messenger { $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); //---------------------------------------- @@ -1231,7 +1412,7 @@ class Messenger { if (isset($HTTP_POST_VARS['carbon_copy'])) { - $cc_box = preg_replace( "##i", "", stripslashes($HTTP_POST_VARS['carbon_copy']) ); + $cc_box = preg_replace( "##i", "", $std->txt_stripslashes($HTTP_POST_VARS['carbon_copy']) ); } $this->output = str_replace( "", $this->html->mass_pm_box($cc_box), $this->output ); @@ -1283,7 +1464,9 @@ class Messenger { $ibforums->lang['the_max_length'] = $ibforums->vars['max_post_length'] * 1024; - $this->output .= $this->post_html->postbox_buttons($msg['message']); + $this->output .= $this->post_html->get_javascript(); + + $this->output .= $this->post_html->postbox_buttons( str_replace( "
    ", "\n", $msg['message']) ); $this->output .= $this->html->send_form_footer(); @@ -1295,7 +1478,7 @@ class Messenger { $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); //---------------------------------------- @@ -1331,17 +1514,20 @@ class Messenger { //---------------------------------------------------------------- if ( strlen($ibforums->input['msg_title']) < 2 ) { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_msg_title' ) ); + $this->send_form(0, $ibforums->lang['err_no_title']); + return; } //---------------------------------------------------------------- if ( strlen($ibforums->input['Post']) < 2 ) { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_msg' ) ); + $this->send_form(0, $ibforums->lang['err_no_msg']); + return; } //---------------------------------------------------------------- if ($ibforums->input['from_contact'] == '-' and $ibforums->input['entered_name'] == "") { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_chosen_member' ) ); + $this->send_form(0, $ibforums->lang['err_no_chosen_member']); + return; } //---------------------------------------------------------------- @@ -1355,6 +1541,9 @@ class Messenger { $to_member = array(); + $ibforums->input['entered_name'] = strtolower(str_replace( '|', '|', $ibforums->input['entered_name']) ); + $ibforums->input['from_contact'] = strtolower(str_replace( '|', '|', $ibforums->input['from_contact']) ); + if ($ibforums->input['from_contact'] == '-') { $query = "LOWER(name)='".$ibforums->input['entered_name']."'"; @@ -1369,7 +1558,8 @@ class Messenger { if (empty($to_member['id'])) { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_to_member' ) ); + $this->send_form(0, $ibforums->lang['err_no_such_member']); + return; } //-------------------------------------- @@ -1441,7 +1631,7 @@ class Messenger { // in their inbox for a new message? //-------------------------------------- - if ( (($to_msg_stats['msg_total']) >= $to_msg_stats['g_max_messages']) and ($to_msg_stats['g_max_messages'] != "") ) + if ( (($to_msg_stats['msg_total']) >= $to_msg_stats['g_max_messages']) and ($to_msg_stats['g_max_messages'] > 0) ) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'max_message_to' ) ); } @@ -1465,7 +1655,7 @@ class Messenger { // saved copy? //-------------------------------------- - if ($ibforums->input['add_sent'] and $ibforums->member['g_max_messages']) + if ($ibforums->input['add_sent'] and ($ibforums->member['g_max_messages'] > 0) ) { if ( ($this->msg_stats['msg_total'] + 1) >= $ibforums->member['g_max_messages'] ) { @@ -1484,6 +1674,8 @@ class Messenger { { $can_mass_pm = 1; + $ibforums->input['carbon_copy'] = strtolower(str_replace( '|', '|', $ibforums->input['carbon_copy']) ); + if (isset($ibforums->input['carbon_copy']) and $ibforums->input['carbon_copy'] != "") { // Sort out the array @@ -1672,7 +1864,7 @@ class Messenger { 'msg_date' => time(), 'read_state' => '0', 'title' => $ibforums->input['msg_title'], - 'message' => $ibforums->input['Post'], + 'message' => $std->remove_tags($ibforums->input['Post']), 'from_id' => $this->member['id'], 'vid' => 'in', 'recipient_id' => $to_member['id'], @@ -1734,7 +1926,7 @@ class Messenger { $db_string = $std->compile_db_string( array( 'member_id' => $this->member['id'], 'msg_date' => time(), - 'read_state' => 0, + 'read_state' => 1, 'title' => $ibforums->lang['saved_sent_msg'].' '.$ibforums->input['msg_title'], 'message' => $ibforums->input['Post'], 'from_id' => $this->member['id'], @@ -1801,16 +1993,22 @@ class Messenger { $total['msg_total'] = $total['msg_total'] > 0 ? $total['msg_total'] : 0; - if ($ibforums->member['msg_total'] == "") - { - $DB->query("UPDATE ibf_members SET msg_total='".$total['msg_total']."' WHERE id='".$this->member['id']."'"); - } + $DB->query("UPDATE ibf_members SET msg_total=".$total['msg_total']." WHERE id=".$this->member['id']); + + //--------------------------------------------- + // Get the number of messages in our curr folder. + //--------------------------------------------- + + $DB->query("SELECT COUNT(*) as msg_total FROM ibf_messages WHERE member_id='".$this->member['id']."' AND vid='{$this->vid}'"); + $total_current = $DB->fetch_row(); + + $total_current['msg_total'] = $total_current['msg_total'] > 0 ? $total_current['msg_total'] : 0; //--------------------------------------------- // Make sure we've not exceeded our alloted allowance. //--------------------------------------------- - $info['full_messenger'] = ""; + $info['full_messenger'] = "
    "; $info['full_text'] = ""; $info['total_messages'] = $total['msg_total']; $info['img_width'] = 1; @@ -1824,7 +2022,12 @@ class Messenger { $amount_info = sprintf( $ibforums->lang['pmpc_info_string'], $total['msg_total'] ,$ibforums->member['g_max_messages'] ); $info['full_percent'] = $total['msg_total'] ? sprintf( "%.0f", ( ($total['msg_total'] / $ibforums->member['g_max_messages']) * 100) ) : 0; - $info['img_width'] = $info['full_percent'] > 0 ? intval($info['full_percent']) * 3 : 1; + $info['img_width'] = $info['full_percent'] > 0 ? intval($info['full_percent']) * 2.4 : 1; + + if ($info['img_width'] > 300) + { + $info['img_width'] = 300; + } if ($total['msg_total'] >=$ibforums->member['g_max_messages']) { @@ -1834,10 +2037,24 @@ class Messenger { { $info['full_messenger'] = str_replace( "<#PERCENT#>", $info['full_percent'], $ibforums->lang['pmpc_full_string'] ); } - - } + //--------------------------------------------- + // Generate Pagination + //--------------------------------------------- + + $start = intval($ibforums->input['st']) > 0 ? intval($ibforums->input['st']) : 0; + $p_end = $ibforums->vars['show_max_msg_list'] > 0 ? $ibforums->vars['show_max_msg_list'] : 50; + + + $pages = $std->build_pagelinks( array( 'TOTAL_POSS' => $total_current['msg_total'], + 'PER_PAGE' => $p_end, + 'CUR_ST_VAL' => $start, + 'L_SINGLE' => "", + 'L_MULTI' => $ibforums->lang['msg_pages'], + 'BASE_URL' => $this->base_url."act=Msg&CODE=1&VID=".$this->vid."&sort=".$ibforums->input['sort'], + ) + ); //--------------------------------------------- // Print the header @@ -1847,15 +2064,15 @@ class Messenger { { $ibforums->lang['message_from'] = $ibforums->lang['message_to']; - $DB->query("SELECT m.*, mp.name as from_name FROM ibf_messages m, ibf_members mp WHERE member_id='".$this->member['id']."' AND vid='".$this->vid."' and mp.id=m.recipient_id ORDER BY $sort_key"); + $DB->query("SELECT m.*, mp.name as from_name FROM ibf_messages m, ibf_members mp WHERE member_id='".$this->member['id']."' AND vid='".$this->vid."' and mp.id=m.recipient_id ORDER BY $sort_key LIMIT $start, $p_end"); } else { - $DB->query("SELECT m.*, mp.name as from_name FROM ibf_messages m, ibf_members mp WHERE member_id='".$this->member['id']."' AND vid='".$this->vid."' and mp.id=m.from_id ORDER BY $sort_key"); + $DB->query("SELECT m.*, mp.name as from_name FROM ibf_messages m, ibf_members mp WHERE member_id='".$this->member['id']."' AND vid='".$this->vid."' and mp.id=m.from_id ORDER BY $sort_key LIMIT $start, $p_end"); } - $this->output .= $this->html->inbox_table_header( $this->msg_stats['current_dir'], $info, $this->jump_html ); + $this->output .= $this->html->inbox_table_header( $this->msg_stats['current_dir'], $info, $this->jump_html, $pages ); //--------------------------------------------- // Get the messages @@ -1879,7 +2096,7 @@ class Messenger { if ($this->vid != 'sent') { - $row['add_to_contacts'] = "[ vars['php_ext']}?s={$ibforums->session_id}&act=Msg&CODE=02&MID={$row['from_id']}'>{$ibforums->lang[add_to_book]} ]"; + $row['add_to_contacts'] = "[ {$ibforums->lang[add_to_book]} ]"; } else { @@ -1897,7 +2114,7 @@ class Messenger { } - $this->output .= $this->html->end_inbox($this->jump_html, $amount_info); + $this->output .= $this->html->end_inbox($this->jump_html, $amount_info, $pages); //--------------------------------------------- // Update the message stats if we have to @@ -1911,7 +2128,7 @@ class Messenger { } $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); } @@ -1963,7 +2180,7 @@ class Messenger { $this->output .= $this->html->unsent_end(); $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); } @@ -1978,8 +2195,15 @@ class Messenger { $this->output .= $this->html->trackread_table_header(); - $DB->query("SELECT m.*, mp.name as to_name FROM ibf_messages m, ibf_members mp WHERE m.tracking=1 AND m.read_state=1 AND m.from_id='".$this->member['id']."' AND m.member_id=mp.id ORDER BY msg_date DESC"); - + $DB->query("SELECT m.*, mp.name as to_name, mp.id as memid + FROM ibf_messages m, ibf_members mp + WHERE m.tracking=1 + AND m.read_state=1 + AND m.from_id=".$this->member['id']." + AND m.member_id=mp.id + ORDER BY msg_date DESC"); + + if ( $DB->get_num_rows() ) { while( $row = $DB->fetch_row() ) @@ -2003,7 +2227,7 @@ class Messenger { $this->output .= $this->html->trackUNread_table_header(); - $DB->query("SELECT m.*, mp.name as to_name FROM ibf_messages m, ibf_members mp WHERE m.tracking=1 AND m.read_state=0 AND m.from_id='".$this->member['id']."' AND m.member_id=mp.id ORDER BY msg_date DESC"); + $DB->query("SELECT m.*, mp.name as to_name, mp.id as memid FROM ibf_messages m, ibf_members mp WHERE m.tracking=1 AND m.read_state=0 AND m.from_id='".$this->member['id']."' AND m.member_id=mp.id ORDER BY msg_date DESC"); if ( $DB->get_num_rows() ) { @@ -2023,7 +2247,7 @@ class Messenger { $this->output .= $this->html->trackUNread_end(); $this->page_title = $ibforums->lang['t_welcome']; - $this->nav = array( "".$ibforums->lang['t_title']."" ); + $this->nav = array( "".$ibforums->lang['t_title']."" ); } @@ -2036,34 +2260,63 @@ class Messenger { function parse_member($member=array(), $row=array()) { global $ibforums, $std, $DB; - $member['name'] = "{$member['name']}"; - $member['avatar'] = $std->get_avatar( $member['avatar'], $ibforums->member['view_avs'], $member['avatar_size'] ); - $member['MEMBER_JOINED'] = $ibforums->lang['m_joined'].' '.$std->get_date( $member['joined'], 'JOINED' ); - - $member['MEMBER_GROUP'] = $ibforums->lang['m_group'].' '.$member['member_group']; - - $member['MEMBER_POSTS'] = $ibforums->lang['m_posts'].' '.$member['posts']; - - $member['PROFILE_ICON'] = "<{P_PROFILE}> "; - - $member['MESSAGE_ICON'] = "<{P_MSG}> "; - - if (!$member['hide_email']) { - $member['EMAIL_ICON'] = "<{P_EMAIL}> "; + if ($member['g_icon']) + { + $member['member_rank_img'] = ""; } - if ( $member['website'] and $member['website'] = preg_match( "/^http:\/\/\S+$/", $member['WEBSITE'] ) ) { - $member['WEBSITE_ICON'] = "<{P_WEBSITE}> "; + $member['member_joined'] = $ibforums->lang['m_joined'].' '.$std->get_date( $member['joined'], 'JOINED' ); + + $member['member_group'] = $ibforums->lang['m_group'].' '.$member['g_title']; + + $member['member_posts'] = $ibforums->lang['m_posts'].' '.$std->do_number_format($member['posts']); + + $member['member_number'] = $ibforums->lang['member_no'].' '.$std->do_number_format($member['id']); + + $member['profile_icon'] = "<{P_PROFILE}>"; + + $member['message_icon'] = "<{P_MSG}>"; + + if (!$member['hide_email']) + { + $member['email_icon'] = "<{P_EMAIL}>"; } - if ($member['icq_number']) { - $member['ICQ_ICON'] = "base_url}&act=ICQ&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_ICQ}> "; + if ( $member['website'] and preg_match( "/^http:\/\/\S+$/", $member['website'] ) ) + { + $member['website_icon'] = "<{P_WEBSITE}>"; } - if ($member['aim_name']) { - $member['AOL_ICON'] = "base_url}&act=AOL&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_AOL}> "; + if ($member['icq_number']) + { + $member['icq_icon'] = "base_url}act=ICQ&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_ICQ}>"; + } + + if ($member['aim_name']) + { + $member['aol_icon'] = "base_url}act=AOL&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_AOL}>"; + } + + if ($member['yahoo']) + { + $member['yahoo_icon'] = "base_url}act=YAHOO&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_YIM}>"; + } + + if ($member['msnname']) + { + $member['msn_icon'] = "base_url}act=MSN&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_MSN}>"; + } + + if ($member['integ_msg']) + { + $member['integ_icon'] = "base_url}act=integ&MID={$member['id']}','Pager','750','450','0','1','1','1')\"><{INTEGRITY_MSGR}>"; + } + + if ($ibforums->member['id']) + { + $member['addresscard'] = "base_url}act=Profile&CODE=showcard&MID={$member['id']}','AddressCard','470','300','0','1','1','1')\" title='{$ibforums->lang['ac_title']}'><{ADDRESS_CARD}>"; } //----------------------------------------------------- @@ -2090,7 +2343,21 @@ class Messenger { $show_table++; $count++; - $smilies .= "vars['EMOTICONS_URL']."/".$elmo['image']."\" alt='smilie' border='0'> \n"; + // Make single quotes as URL's with html entites in them + // are parsed by the browser, so ' causes JS error :o + + if (strstr( $elmo['typed'], "'" ) ) + { + $in_delim = '"'; + $out_delim = "'"; + } + else + { + $in_delim = "'"; + $out_delim = '"'; + } + + $smilies .= "vars['EMOTICONS_URL']."/".$elmo['image']."\" alt='smilie' border='0' /> \n"; if ($count == $ibforums->vars['emo_per_row']) { $smilies .= "\n\n"; diff --git a/upload/sources/Moderate.php b/upload/sources/Moderate.php index dc2544a5..d2d684b6 100644 --- a/upload/sources/Moderate.php +++ b/upload/sources/Moderate.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Moderation core module @@ -31,6 +33,7 @@ class Moderate { var $html = ""; var $moderator = ""; + var $modfunc = ""; var $forum = array(); var $topic = array(); @@ -43,11 +46,14 @@ class Moderate { // /***********************************************************************************/ - function Moderate() { + function Moderate() + { global $ibforums, $DB, $std, $print, $skin_universal, $HTTP_POST_VARS; + //------------------------------------- // Make sure this is a POST request, not a naughty IMG redirect + //------------------------------------- if ($ibforums->input['CODE'] != '04' && $ibforums->input['CODE'] != '02' && $ibforums->input['CODE'] != '20' && $ibforums->input['CODE'] != '22') { @@ -58,6 +64,18 @@ class Moderate { } } + + //------------------------------------- + // Nawty, Nawty! + //------------------------------------- + + if ($ibforums->input['CODE'] != '02' && $ibforums->input['CODE'] != '05') + { + if ($ibforums->input['auth_key'] != $std->return_md5_check() ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'del_post') ); + } + } //------------------------------------- // Compile the language file @@ -65,7 +83,7 @@ class Moderate { $ibforums->lang = $std->load_words($ibforums->lang, 'lang_mod', $ibforums->lang_id); - $this->html = $std->load_template('skin_mod');; + $this->html = $std->load_template('skin_mod'); //------------------------------------- // Check the input @@ -105,11 +123,12 @@ class Moderate { $std->Error( array( 'LEVEL' => 1,'MSG' => 'missing_files') ); } - $ibforums->input['st'] = $ibforums->input['st'] ? $std->is_number($ibforums->input['st']) : 0; + $ibforums->input['st'] = intval($ibforums->input['st']); //------------------------------------- - // Get the forum info based on the forum ID, get the category name, ID, and get the topic details + // Get the forum info based on the forum ID, + // get the category name, ID, and get the topic details //------------------------------------- $DB->query("SELECT f.*, c.name as cat_name, c.id as cat_id from ibf_forums f, ibf_categories c WHERE f.id=".$ibforums->input['f']." and c.id=f.category"); @@ -126,17 +145,32 @@ class Moderate { $std->Error( array( LEVEL => 1, MSG => 'missing_files') ); } - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; + + //------------------------------------- + // Are we a moderator? + //------------------------------------- if ($ibforums->member['id']) { if ($ibforums->member['g_is_supmod'] != 1) { - $DB->query("SELECT * FROM ibf_moderators WHERE forum_id='".$this->forum['id']."' AND (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))"); + $DB->query("SELECT * FROM ibf_moderators WHERE forum_id=".$this->forum['id']." AND (member_id=".$ibforums->member['id']." OR (is_group=1 AND group_id=".$ibforums->member['mgroup']."))"); $this->moderator = $DB->fetch_row(); } } + //------------------------------------- + // Load mod module... + //------------------------------------- + + require( ROOT_PATH.'sources/lib/modfunctions.php'); + + $this->modfunc = new modfunctions(); + + $this->modfunc->init($this->forum); + + $this->upload_dir = $ibforums->vars['upload_dir']; //------------------------------------- @@ -144,7 +178,8 @@ class Moderate { // use mere mortals can understand.... //------------------------------------- - switch ($ibforums->input['CODE']) { + switch ($ibforums->input['CODE']) + { case '02': $this->move_form(); break; @@ -291,6 +326,11 @@ class Moderate { $avg_posts = 1; } + if ($avg_posts > ( $topic['posts'] + 1) ) + { + $avg_posts = $topic['posts'] + 1; + } + $data = array( 'th_topic' => $topic['title'], 'th_desc' => $topic['description'], @@ -439,11 +479,13 @@ class Moderate { $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->moderator['split_merge'] == 1) { + else if ($this->moderator['split_merge'] == 1) + { $passed = 1; } else { @@ -470,12 +512,12 @@ class Moderate { // Get the post ID's to split //------------------------------------------ - $ids = array(); + $ids = array(); foreach ($ibforums->input as $key => $value) { if ( preg_match( "/^post_(\d+)$/", $key, $match ) ) - { + { if ($ibforums->input[$match[0]]) { $ids[] = $match[1]; @@ -485,13 +527,28 @@ class Moderate { $affected_ids = count($ids); + //------------------------------------------ // Do we have enough? + //------------------------------------------ if ($affected_ids < 1) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'split_not_enough' ) ); } + //------------------------------------------ + // Do we too many? + //------------------------------------------ + + $DB->query("SELECT count(pid) as cnt FROM ibf_posts WHERE topic_id={$this->topic['tid']}"); + + $count = $DB->fetch_row(); + + if ( $affected_ids >= $count['cnt'] ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'split_too_much' ) ); + } + // Complete the PID string $pid_string = implode( ",", $ids ); @@ -763,15 +820,16 @@ class Moderate { // Get the topic ID of the entered URL //------------------------------------------ - preg_match( "/(\?|&)t=(\d+)($|&)/", $ibforums->input['topic_url'], $match ); + preg_match( "/(\?|&)(t|showtopic)=(\d+)($|&)/", $ibforums->input['topic_url'], $match ); - $old_id = intval(trim($match[2])); + $old_id = intval(trim($match[3])); if ($old_id == "") { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'mt_no_topic' ) ); } + //------------------------------------------ // Get the topic from the DB //------------------------------------------ @@ -783,6 +841,51 @@ class Moderate { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'mt_no_topic' ) ); } + //------------------------------------------ + // Did we try and merge the same topic? + //------------------------------------------ + + if ($old_id == $this->topic['tid']) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'mt_same_topic' ) ); + } + + //------------------------------------------ + // Do we have moderator permissions for this + // topic (ie: in the forum the topic is in) + //------------------------------------------ + + $pass = FALSE; + + if ( $this->topic['forum_id'] == $old_topic['forum_id'] ) + { + $pass = TRUE; + } + else + { + if ( $ibforums->member['g_is_supmod'] == 1 ) + { + $pass = TRUE; + } + else + { + $DB->query("SELECT mid FROM ibf_moderators WHERE forum_id=".$old_topic['forum_id']." AND (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))"); + + if ( $DB->get_num_rows() ) + { + $pass = TRUE; + } + } + } + + if ( $pass == FALSE ) + { + // No, we don't have permission + + $this->moderate_error(); + + } + //---------------------------------------------------- // Update the posts, remove old polls, subs and topic //---------------------------------------------------- @@ -1094,21 +1197,58 @@ class Moderate { $poll_answers = unserialize(stripslashes($poll_data['choices'])); reset($poll_answers); - $new_poll_array = array(); - foreach ($poll_answers as $entry) + $new_poll_array = array(); + $ids = array(); + $rearranged = array(); + + foreach ($ibforums->input as $key => $value) + { + if ( preg_match( "/^POLL_(\d+)$/", $key, $match ) ) + { + if (isset($ibforums->input[$match[0]])) + { + $ids[] = $match[1]; + } + } + } + + //-------------------------------------------------- + + foreach ($poll_answers as $entry) { - $id = $entry[0]; - $choice = $ibforums->input['POLL_'.$id]; - $votes = $entry[2]; - - $new_poll_array[] = array( $id, $choice, $votes); + $rearranged[ $entry[0] ] = array( $entry[0], $entry[1], $entry[2]); } + + //-------------------------------------------------- + + foreach( $ids as $nid ) + { + //----------------------------------- + // Is it a current poll thingy? + //----------------------------------- + + if ( strlen($rearranged[ $nid ][1]) > 0 ) + { + $new_poll_array[] = array( $rearranged[ $nid ][0], $ibforums->input['POLL_'.$nid], $rearranged[ $nid ][2]); + } + else + { + if ( strlen($ibforums->input['POLL_'.$nid]) > 0 ) + { + $new_poll_array[] = array( $nid, $ibforums->input['POLL_'.$nid], 0); + } + } + } + + //--------------------------------- + // Take care of any new ones... + //--------------------------------- $poll_data['choices'] = addslashes(serialize($new_poll_array)); $DB->query("UPDATE ibf_polls SET ". - "choices='" . $poll_data['choices'] . "' ". + "choices='" . $poll_data['choices'] . "', poll_question='".$ibforums->input['poll_question']."' ". "WHERE tid='" . $this->topic['tid'] . "'"); //------------------------ @@ -1129,16 +1269,21 @@ class Moderate { //-------------------------------------- - function poll_edit_form() { + function poll_edit_form() + { global $std, $ibforums, $DB, $print; + $ibforums->vars['max_poll_choices'] = $ibforums->vars['max_poll_choices'] ? $ibforums->vars['max_poll_choices'] : 10; + $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->moderator['edit_post'] == 1) { + else if ($this->moderator['edit_post'] == 1) + { $passed = 1; } else { @@ -1167,6 +1312,8 @@ class Moderate { $this->output .= $this->html->table_top( $ibforums->lang['pe_top']." ".$this->forum['name']." > ".$this->topic['title'] ); + $this->output .= $this->html->poll_edit_top(); + $poll_answers = unserialize(stripslashes($poll_data['choices'])); reset($poll_answers); @@ -1180,8 +1327,17 @@ class Moderate { $this->output .= $this->html->poll_entry($id, $choice); } + + if ( count($poll_answers) < $ibforums->vars['max_poll_choices'] ) + { + for ( $i = count($poll_answers) ; $i <= $ibforums->vars['max_poll_choices'] ; $i++ ) + { + $this->output .= $this->html->poll_edit_new_entry($i); + } + } + - $this->output .= $this->html->poll_select_form(); + $this->output .= $this->html->poll_select_form($poll_data['poll_question']); $this->output .= $this->html->end_form( $ibforums->lang['pe_submit'] ); @@ -1226,7 +1382,7 @@ class Moderate { 3 => array( 'sf' , $this->forum['id'] ), ) ); - $jump_html = $std->build_forum_jump('no_html'); + $jump_html = $std->build_forum_jump(0,0,0); $this->output .= $this->html->table_top( $ibforums->lang['top_move']." ".$this->forum['name']." > ".$this->topic['title'] ); $this->output .= $this->html->mod_exp( $ibforums->lang['move_exp'] ); @@ -1285,13 +1441,16 @@ class Moderate { //---------------------------------- - $DB->query("SELECT id, subwrap, sub_can_post, name FROM ibf_forums WHERE id IN(".$ibforums->input['sf'].",".$ibforums->input['move_id'].")"); + $DB->query("SELECT id, subwrap, sub_can_post, name, redirect_on FROM ibf_forums WHERE id IN(".$ibforums->input['sf'].",".$ibforums->input['move_id'].")"); if ($DB->get_num_rows() != 2) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'move_no_forum' ) ); } + $source = intval($ibforums->input['sf']); + $moveto = intval($ibforums->input['move_id']); + $source_name = ""; $dest_name = ""; @@ -1310,7 +1469,7 @@ class Moderate { $dest_name = $f['name']; } - if ($f['subwrap'] == 1 and $f['sub_can_post'] != 1) + if ( ($f['subwrap'] == 1 and $f['sub_can_post'] != 1) OR $f['redirect_on'] == 1 ) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'forum_no_post_allowed' ) ); } @@ -1324,71 +1483,19 @@ class Moderate { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'move_no_forum' ) ); } - //---------------------------------- - // We know that $this->topic is set.. - //---------------------------------- + $ibforums->input['leave'] = $ibforums->input['leave'] == 'y' ? 1 : 0; - $source = $ibforums->input['sf']; - $moveto = $ibforums->input['move_id']; - $tid = $ibforums->input['tid']; + $this->modfunc->topic_move($this->topic['tid'], $ibforums->input['sf'], $ibforums->input['move_id'], $ibforums->input['leave']); - //---------------------------------- - // Update the topic - //---------------------------------- - - $DB->query("UPDATE ibf_topics SET forum_id='$moveto' WHERE forum_id='$source' AND tid='$tid'"); - - //---------------------------------- - // Update the posts - //---------------------------------- - - $DB->query("UPDATE ibf_posts SET forum_id='$moveto' WHERE forum_id='$source' AND topic_id='$tid'"); - - //---------------------------------- - // Update the polls - //---------------------------------- - - $DB->query("UPDATE ibf_polls SET forum_id='$moveto' WHERE forum_id='$source' AND tid='$tid'"); - - //---------------------------------- - // Are we leaving a link? - //---------------------------------- - - if ($ibforums->input['leave'] == 'y') - { - //---------------------------------- - // Insert a new "link" topic... - //---------------------------------- - - $db_string = $DB->compile_db_insert_string( array ( - 'title' => $this->topic['title'], - 'description' => $this->topic['description'], - 'state' => 'link', - 'posts' => 0, - 'views' => 0, - 'starter_id' => $this->topic['starter_id'], - 'start_date' => $this->topic['start_date'], - 'starter_name' => $this->topic['starter_name'], - 'last_post' => $this->topic['last_post'], - 'forum_id' => $source, - 'approved' => 1, - 'pinned' => 0, - 'moved_to' => $this->topic['tid'].'&'.$moveto, - 'last_poster_id' => $this->topic['last_poster_id'], - 'last_poster_name' => $this->topic['last_poster_name'] - ) ); - - $DB->query("INSERT INTO ibf_topics (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")"); - - } + $ibforums->input['t'] = $this->topic['tid']; $this->moderate_log("Moved a topic from $source_name to $dest_name"); // Resync the forums.. - $this->recount($source); + $this->modfunc->forum_recount($source); - $this->recount($moveto); + $this->modfunc->forum_recount($moveto); $print->redirect_screen( $ibforums->lang['p_moved'], "act=SF&f=".$this->forum['id']."&st=".$ibforums->input['st'] ); @@ -1400,6 +1507,14 @@ class Moderate { function delete_post() { global $std, $ibforums, $DB, $print; + // Get this post id. + + $DB->query("SELECT pid,attach_file, author_id, attach_id, post_date, new_topic from ibf_posts WHERE forum_id='".$this->forum['id']."' AND topic_id='".$this->topic['tid']."' and pid='".$ibforums->input['p']."'"); + if ( ! $post = $DB->fetch_row() ) + { + $this->moderate_error(); + } + $passed = 0; if ($ibforums->member['g_is_supmod'] == 1) @@ -1410,7 +1525,7 @@ class Moderate { { $passed = 1; } - else if ($ibforums->member['g_delete_own_posts'] == 1) + else if ( ($ibforums->member['g_delete_own_posts'] == 1) and ( $ibforums->member['id'] == $post['author_id'] ) ) { $passed = 1; } @@ -1422,14 +1537,6 @@ class Moderate { if ($passed != 1) $this->moderate_error(); - // Get this post id. - - $DB->query("SELECT pid,attach_file, attach_id, post_date, new_topic from ibf_posts WHERE forum_id='".$this->forum['id']."' AND topic_id='".$this->topic['tid']."' and pid='".$ibforums->input['p']."'"); - if ( ! $post = $DB->fetch_row() ) - { - $this->moderate_error(); - } - // Check to make sure that this isn't the first post in the topic.. if ($post['new_topic'] == 1) @@ -1503,8 +1610,6 @@ class Moderate { } - - function rebuild_topic() {} /*************************************************/ // DELETE TOPIC: @@ -1517,7 +1622,13 @@ class Moderate { $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { + $passed = 1; + } + + else if ($this->moderator['delete_topic'] == 1) + { $passed = 1; } @@ -1529,10 +1640,8 @@ class Moderate { } } - else if ($this->moderator['delete_topic'] == 1) { - $passed = 1; - } - else { + else + { $passed = 0; } @@ -1559,7 +1668,8 @@ class Moderate { ); } - function delete_topic() { + function delete_topic() + { global $std, $ibforums, $DB, $print; $passed = 0; @@ -1586,98 +1696,22 @@ class Moderate { if ($passed != 1) $this->moderate_error(); - if (empty($this->topic['tid'])) { + if (empty($this->topic['tid'])) + { $this->moderate_error(); } // Do we have a linked topic to remove? - $DB->query("SELECT tid FROM ibf_topics WHERE state='link' AND moved_to='".$this->topic['tid'].'&'.$this->forum['id']."'"); + $DB->query("SELECT tid, forum_id FROM ibf_topics WHERE state='link' AND moved_to='".$this->topic['tid'].'&'.$this->forum['id']."'"); if ( $linked_topic = $DB->fetch_row() ) { $DB->query("DELETE FROM ibf_topics WHERE tid='".$linked_topic['tid']."'"); + $this->modfunc->forum_recount($linked_topic['forum_id']); } - - // Remove polls assigned to this topic - - $DB->query("DELETE FROM ibf_polls WHERE tid='".$this->topic['tid']."'"); - - // Remove poll voters - - $DB->query("DELETE FROM ibf_voters WHERE tid='".$this->topic['tid']."'"); - - // Remove the topic itself - - $DB->query("DELETE FROM ibf_topics WHERE tid='".$this->topic['tid']."'"); - - // Get the attach ID's and filenames - - $DB->query("SELECT attach_id, attach_hits, attach_file FROM ibf_posts WHERE attach_id <> '' AND topic_id='".$this->topic['tid']."'"); - - // Remove the attachments - - if ( $DB->get_num_rows() ) - { - while ( $r = $DB->fetch_row() ) - { - if (is_file($this->upload_dir."/".$r['attach_id'])) - { - @unlink ($this->upload_dir."/".$r['attach_id']); - } - } - } - - // Remove the posts - - $DB->query("DELETE FROM ibf_posts WHERE topic_id='".$this->topic['tid']."'"); - - //------------------------------------------------ - // Update the forum topic/post and stat counters. - // - // We also need to make sure the last forum id and - // title is correct. - //------------------------------------------------ - - $DB->query("SELECT COUNT(tid) as tcount from ibf_topics WHERE approved=1"); - $topics = $DB->fetch_row(); - - $DB->query("SELECT COUNT(pid) as pcount from ibf_posts WHERE queued <> 1"); - $posts = $DB->fetch_row(); - - $DB->query("SELECT COUNT(tid) as tcount from ibf_topics WHERE approved=1 and forum_id='".$this->forum['id']."'"); - $f_topics = $DB->fetch_row(); - - $DB->query("SELECT COUNT(pid) as pcount from ibf_posts WHERE queued <> 1 and forum_id='".$this->forum['id']."'"); - $f_posts = $DB->fetch_row(); - - $this->forum['topics'] = $f_topics['tcount']; - $this->forum['posts'] = $f_posts['pcount'] - $f_topics['tcount']; - - $DB->query("SELECT title, tid, last_post, last_poster_id, last_poster_name " - ."FROM ibf_topics WHERE forum_id='".$this->forum['id']."' AND approved=1 " - ."ORDER BY last_post DESC LIMIT 0,1"); - - $tt = $DB->fetch_row(); - - $db_string = $DB->compile_db_update_string( array( - last_title => $tt['title'] ? $tt['title'] : "", - last_id => $tt['tid'] ? $tt['tid'] : "", - last_post => $tt['last_post'] ? $tt['last_post'] : "", - last_poster_name => $tt['last_poster_name'] ? $tt['last_poster_name'] : "", - last_poster_id => $tt['last_poster_id'] ? $tt['last_poster_id'] : "", - topics => $this->forum['topics'], - posts => $this->forum['posts'] - ) ); - - $DB->query("UPDATE ibf_forums SET $db_string WHERE id='".$this->forum['id']."'"); - - // Update the main board stats. - - $posts = $posts['pcount'] - $topics['tcount']; - - $DB->query("UPDATE ibf_stats SET TOTAL_TOPICS='".$topics['tcount']."', TOTAL_REPLIES='".$posts."'"); + $this->modfunc->topic_delete($this->topic['tid']); $this->moderate_log("Deleted a topic"); @@ -1692,19 +1726,23 @@ class Moderate { // /*************************************************/ - function edit_form() { + function edit_form() + { global $std, $ibforums, $DB, $print; $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->moderator['edit_topic'] == 1) { + else if ($this->moderator['edit_topic'] == 1) + { $passed = 1; } - else { + else + { $passed = 0; } @@ -1731,29 +1769,35 @@ class Moderate { ); } - function do_edit() { + function do_edit() + { global $std, $ibforums, $DB, $print; $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->moderator['edit_topic'] == 1) { + else if ($this->moderator['edit_topic'] == 1) + { $passed = 1; } - else { + else + { $passed = 0; } if ($passed != 1) $this->moderate_error(); - if (empty($this->topic['tid'])) { + if (empty($this->topic['tid'])) + { $this->moderate_error(); } - if ($ibforums->input['TopicTitle'] == "") { + if ( trim($ibforums->input['TopicTitle']) == "") + { $std->Error( array( 'LEVEL' => 2, 'MSG' => 'no_topic_title' ) ); } @@ -1767,7 +1811,7 @@ class Moderate { $DB->query("UPDATE ibf_forums SET last_title='$topic_title' WHERE id='".$this->forum['id']."'"); } - $this->moderate_log("Edited a topic title"); + $this->moderate_log("Moderator edited a topic title: (ID: {$this->topic['tid']}) From '{$this->topic['title']}' to '$topic_title'"); $print->redirect_screen( $ibforums->lang['p_edited'], "act=SF&f=".$this->forum['id'] ); @@ -1781,21 +1825,26 @@ class Moderate { // /*************************************************/ - function open_topic() { + function open_topic() + { global $std, $ibforums, $DB, $print; - if ($this->topic['state'] == 'open') { + if ($this->topic['state'] == 'open') + { $this->moderate_error(); } $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->topic['starter_id'] == $ibforums->member['id']) { - if ($ibforums->member['g_open_close_posts'] == 1) { + else if ($this->topic['starter_id'] == $ibforums->member['id']) + { + if ($ibforums->member['g_open_close_posts'] == 1) + { $passed = 1; } } @@ -1804,14 +1853,15 @@ class Moderate { $passed = 0; } - if ($this->moderator['open_topic'] == 1) { + if ($this->moderator['open_topic'] == 1) + { $passed = 1; } if ($passed != 1) $this->moderate_error(); - $this->alter_topic( array( 'TOPIC' => $this->topic['tid'], 'FIELD' => 'state', 'VALUE' => 'open' ) ); + $this->modfunc->topic_open($this->topic['tid']); $this->moderate_log("Opened Topic"); @@ -1827,17 +1877,21 @@ class Moderate { // /*************************************************/ - function close_topic() { + function close_topic() + { global $std, $ibforums, $DB, $print; $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->topic['starter_id'] == $ibforums->member['id']) { - if ($ibforums->member['g_open_close_posts'] == 1) { + else if ($this->topic['starter_id'] == $ibforums->member['id']) + { + if ($ibforums->member['g_open_close_posts'] == 1) + { $passed = 1; } } @@ -1846,14 +1900,15 @@ class Moderate { $passed = 0; } - if ($this->moderator['close_topic'] == 1) { + if ($this->moderator['close_topic'] == 1) + { $passed = 1; } if ($passed != 1) $this->moderate_error(); - $this->alter_topic( array( 'TOPIC' => $this->topic['tid'], 'FIELD' => 'state', 'VALUE' => 'closed' ) ); + $this->modfunc->topic_close($this->topic['tid']); $this->moderate_log("Locked Topic"); @@ -1868,20 +1923,24 @@ class Moderate { // /*************************************************/ - function pin_topic() { + function pin_topic() + { global $std, $ibforums, $DB, $print; - if ($this->topic['PIN_STATE'] == 1) { + if ($this->topic['PIN_STATE'] == 1) + { $this->moderate_error(); } $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->moderator['pin_topic'] == 1) { + else if ($this->moderator['pin_topic'] == 1) + { $passed = 1; } else { @@ -1890,7 +1949,7 @@ class Moderate { if ($passed != 1) $this->moderate_error(); - $this->alter_topic( array( 'TOPIC' => $this->topic['tid'], 'FIELD' => 'pinned', 'VALUE' => '1' ) ); + $this->modfunc->topic_pin($this->topic['tid']); $this->moderate_log("Pinned Topic"); @@ -1904,20 +1963,24 @@ class Moderate { // /*************************************************/ - function unpin_topic() { + function unpin_topic() + { global $std, $ibforums, $DB, $print; - if ($this->topic['pinned'] == 0) { + if ($this->topic['pinned'] == 0) + { $this->moderate_error(); } $passed = 0; - if ($ibforums->member['g_is_supmod'] == 1) { + if ($ibforums->member['g_is_supmod'] == 1) + { $passed = 1; } - else if ($this->moderator['unpin_topic'] == 1) { + else if ($this->moderator['unpin_topic'] == 1) + { $passed = 1; } else { @@ -1926,7 +1989,7 @@ class Moderate { if ($passed != 1) $this->moderate_error(); - $this->alter_topic( array( 'TOPIC' => $this->topic['tid'], 'FIELD' => 'pinned', 'VALUE' => '0' ) ); + $this->modfunc->topic_unpin($this->topic['tid']); $this->moderate_log("Unpinned Topic"); @@ -1966,23 +2029,7 @@ class Moderate { function moderate_log($title = 'unknown') { global $std, $ibforums, $DB, $HTTP_REFERER, $QUERY_STRING; - $db_string = $std->compile_db_string( array ( - 'forum_id' => $ibforums->input['f'], - 'topic_id' => $ibforums->input['t'], - 'post_id' => $ibforums->input['p'], - 'member_id' => $ibforums->member['id'], - 'member_name' => $ibforums->member['name'], - 'ip_address' => $ibforums->input['IP_ADDRESS'], - 'http_referer'=> $HTTP_REFERER, - 'ctime' => time(), - 'topic_title' => $this->topic['title'], - 'action' => $title, - 'query_string'=> $QUERY_STRING, - ) - ); - - $DB->query("INSERT INTO ibf_moderator_logs (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")"); - + $this->modfunc->add_moderate_log( $ibforums->input['f'], $ibforums->input['t'], $ibforums->input['p'], $this->topic['title'], $title ); } @@ -2020,6 +2067,10 @@ class Moderate { $DB->query("SELECT tid, title, last_poster_id, last_poster_name, last_post FROM ibf_topics WHERE approved=1 and forum_id='".$fid."' ORDER BY last_post DESC LIMIT 0,1"); $last_post = $DB->fetch_row(); + // Get real post count by removing topic starting posts from the count + + $real_posts = $posts['count'] - $topics['count']; + // Reset this forums stats $db_string = $DB->compile_db_update_string( array ( @@ -2029,7 +2080,7 @@ class Moderate { 'last_title' => $last_post['title'], 'last_id' => $last_post['tid'], 'topics' => $topics['count'], - 'posts' => $posts['count'] + 'posts' => $real_posts ) ); $DB->query("UPDATE ibf_forums SET $db_string WHERE id='".$fid."'"); @@ -2037,31 +2088,6 @@ class Moderate { } - /*************************************************/ - // ALTER TOPIC: - // --------------- - // - // Handles simple moderation functions, saves on - // writing the same code over and over. - // ASS_U_ME's that the requesting user has been - // authenticated by this stage. - // - /*************************************************/ - - function alter_topic( $data = array() ) { - global $ibforums, $DB; - - if ( $data['FIELD'] == "" ) return -1; - if ( $data['VALUE'] == "" ) return -1; - if ( $data['TOPIC'] == "" ) return -1; - - if ($data['TOPIC'] < 1) return -1; - - $data['VALUE'] = preg_replace( "/'/", "\\'", $data['VALUE'] ); - - $DB->query("UPDATE ibf_topics SET ".$data['FIELD']."='".$data['VALUE']."' WHERE tid='".$data['TOPIC']."'"); - } - /*****************************************************/ // HTML: start form. // ------------------ @@ -2069,13 +2095,14 @@ class Moderate { /*****************************************************/ function html_start_form($additional_tags=array()) { - global $ibforums; + global $ibforums, $std; $form = "
    ". - "". - "". - "". - ""; + "". + "". + "". + "". + ""; // Any other tags to add? diff --git a/upload/sources/Online.php b/upload/sources/Online.php index be7e4c31..cfd7fa01 100644 --- a/upload/sources/Online.php +++ b/upload/sources/Online.php @@ -1,335 +1,467 @@ - Show online users -| > Module written by Matt Mecham -| > Date started: 12th March 2002 -| -| > Module Version Number: 1.0.0 -+-------------------------------------------------------------------------- -*/ - - -$idx = new Online; - -class Online { - - var $output = ""; - var $page_title = ""; - var $nav = array(); - var $html = ""; - var $first = 0; - var $perpage = 25; - - var $forums = array(); - var $cats = array(); - var $sessions = array(); - var $where = array(); - - var $seen_name = array(); - - - - function Online() { - global $ibforums, $DB, $std, $print; - - - if ($ibforums->input['CODE'] == "") $ibforums->input['CODE'] = 'listall'; - - //-------------------------------------------- - // Require the HTML and language modules - //-------------------------------------------- - - $ibforums->lang = $std->load_words($ibforums->lang, 'lang_online', $ibforums->lang_id); - - $this->html = $std->load_template('skin_online'); - - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; - - //-------------------------------------------- - // Build up our language hash - //-------------------------------------------- - - foreach ($ibforums->lang as $k => $v) { - if ( preg_match( "/^WHERE_(\w+)$/", $k, $match ) ) { - $this->where[ $match[1] ] = $ibforums->lang[$k]; - } - } - - unset($match); - - //-------------------------------------------- - // What to do? - //-------------------------------------------- - - switch($ibforums->input['CODE']) { - case 'listall': - $this->list_all(); - break; - case '02': - $this->list_forum(); - break; - default: - $this->list_all(); - break; - } - - // If we have any HTML to print, do so... - - $print->add_output("$this->output"); - $print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) ); - - } - - - /*****************************************************/ - // list_all - // ------------------ - // List all online users - /*****************************************************/ - - function list_all() { - global $ibforums, $DB, $std; - - $this->first = 0; - - if (!empty($ibforums->input['st'])) - { - $this->first = $ibforums->input['st']; - } - - $last_cat_id = -1; - - $DB->query("SELECT f.id, f.name, f.read_perms, f.password, c.id as cat_id, c.name as cat_name from ibf_forums f, ibf_categories c where c.id=f.category ORDER BY c.position, f.position"); - - - while ( $i = $DB->fetch_row() ) - { - if ($last_cat_id != $i['cat_id']) - { - // Print the category - - $last_cat_id = $i['cat_id']; - - $this->cats[ $i['cat_id'] ] = $this->cats['cat_name']; - - } - - $this->forums[ $i['id'] ] = array( 'name' => $i['name'], - 'read_perms' => $i['read_perms'], - 'password' => $i['password'], - ); - - } - - $DB->free_result(); - - $cut_off = ($ibforums->vars['au_cutoff'] != "") ? $ibforums->vars['au_cutoff'] * 60 : 900; - - $t_time = time() - $cut_off; - - $DB->query("SELECT COUNT(id) as total_sessions FROM ibf_sessions WHERE login_type <> 1 AND running_time > $t_time"); - $max = $DB->fetch_row(); - - $DB->free_result(); - - $links = $std->build_pagelinks( array( 'TOTAL_POSS' => $max['total_sessions'], - 'PER_PAGE' => 25, - 'CUR_ST_VAL' => $this->first, - 'L_SINGLE' => "", - 'L_MULTI' => $ibforums->lang['pages'], - 'BASE_URL' => $this->base_url."&act=Online&CODE=listall" - ) - ); - - $this->output = $this->html->Page_header($links); - - // Grab all the current sessions. - - $final = array(); - $tid_array = array(); - - $topics = array(); - - $DB->query("SELECT s.id, s.in_forum, s.in_topic, s.member_name, s.member_id, s.ip_address, s.running_time, s.location, s.login_type, s.member_group, g.prefix, g.suffix FROM ibf_sessions s, ibf_groups g WHERE s.running_time > $t_time AND s.member_group=g.g_id ORDER BY running_time DESC LIMIT ".$this->first.",25"); - - while( $r = $DB->fetch_row() ) - { - $final[] = $r; - - if ($r['in_topic'] != "") - { - $tid_array[] = $r['in_topic']; - } - } - - if ( count($tid_array) > 0 ) - { - $tid_string = implode( ",", $tid_array ); - - $DB->query("SELECT tid, title FROM ibf_topics WHERE tid IN ($tid_string)"); - - while ( $t = $DB->fetch_row() ) - { - $topics[ $t['tid'] ] = $t['title']; - } - } - - - foreach( $final as $idx => $sess ) - { - - //---------------------------------------------------- - // Is this a member, and have we seen them before? - // Proxy servers, etc can confuse the session handler, - // creating duplicate session IDs for the same user when - // their IP address changes. - //---------------------------------------------------- - - $inv = ''; - - if ($sess['login_type'] == 1) - { - if ( ($ibforums->member['mgroup'] == $ibforums->vars['admin_group']) and ($ibforums->vars['disable_admin_anon'] != 1) ) - { - $inv = '*'; - } - else - { - continue; - } - } - - if (! empty($sess['member_name']) ) - { - if (isset($this->seen_name[ $sess['member_name'] ]) ) - { - continue; - } - else - { - $this->seen_name[ $sess['member_name'] ] = 1; - } - } - - if (isset($sess['location'])) - { - - $line = ""; - - list($act, $pid) = explode( ",", $sess['location'] ); - $fid = $sess['in_forum']; - $tid = $sess['in_topic']; - - if (isset($act)) - { - $line = isset($this->where[ $act ]) ? $this->where[ $act ] : $ibforums->lang['board_index']; - - } - - - if ($fid != "" and ($act == 'SF' or $act == 'ST' or $act == 'Post')) - { - $pass = 0; - - if ($this->forums[ $fid ]['read_perms'] == '*') - { - $pass = 1; - } - else if (preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $this->forums[ $fid ]['read_perms']) ) - { - $pass = 1; - } - - if ($pass == 1) - { - if ($tid > 0) - { - $line .= " {$topics[$tid]}"; - } - else - { - $line .= " {$this->forums[ $fid ]['name']}"; - } - } - else - { - $line = " {$ibforums->lang['board_index']}"; - } - } - - } - else - { - $line .= " {$ibforums->lang['board_index']}"; - } - - - $sess['where_line'] = $line; - - if ( ($ibforums->member['mgroup'] == $ibforums->vars['admin_group']) and ($ibforums->vars['disable_online_ip'] != 1) ) - { - $sess['ip_address'] = " ( ".$sess['ip_address']." )"; - } - else - { - $sess['ip_address'] = ""; - } - - if (isset($sess['member_id'])) - { - $sess['member_name'] = "{$sess['prefix']}{$sess['member_name']}{$sess['suffix']}$inv {$sess['ip_address']}"; - } - - $sess['running_time'] = $std->get_date( $sess['running_time'], 'LONG' ); - - $this->output .= $this->do_html_row($sess); - - } - - $this->output .= $this->html->Page_end($links); - - $this->page_title = $ibforums->lang['page_title']; - $this->nav = array( $ibforums->lang['page_title']); - - } - - function do_html_row($sess) { - global $ibforums; - - if ($sess['member_name'] and $sess['member_id']) - { - $sess['msg_icon'] = "<{P_MSG}>"; - } - else - { - $sess['member_name'] = $sess['prefix'].$ibforums->lang['guest'].$sess['suffix']." ".$sess['ip_address']; - $sess['msg_icon'] = ' '; - } - - return $this->html->show_row($sess); - } - - - function list_forum() { } - - - - - - -} - -?> + Show online users +| > Module written by Matt Mecham +| > Date started: 12th March 2002 +| +| > Module Version Number: 1.0.0 ++-------------------------------------------------------------------------- +*/ + + +$idx = new Online; + +class Online { + + var $output = ""; + var $page_title = ""; + var $nav = array(); + var $html = ""; + var $first = 0; + var $perpage = 25; + + var $forums = array(); + var $cats = array(); + var $sessions = array(); + var $where = array(); + + var $seen_name = array(); + + + + function Online() { + global $ibforums, $DB, $std, $print; + + // Are we allowed to see the online list? + + if ( $ibforums->vars['allow_online_list'] != 1 ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_permission') ); + } + + + if ($ibforums->input['CODE'] == "") $ibforums->input['CODE'] = 'listall'; + + //-------------------------------------------- + // Require the HTML and language modules + //-------------------------------------------- + + $ibforums->lang = $std->load_words($ibforums->lang, 'lang_online', $ibforums->lang_id); + + $this->html = $std->load_template('skin_online'); + + $this->base_url = $ibforums->base_url; + + //-------------------------------------------- + // Build up our language hash + //-------------------------------------------- + + foreach ($ibforums->lang as $k => $v) { + if ( preg_match( "/^WHERE_(\w+)$/", $k, $match ) ) { + $this->where[ $match[1] ] = $ibforums->lang[$k]; + } + } + + unset($match); + + //-------------------------------------------- + // What to do? + //-------------------------------------------- + + switch($ibforums->input['CODE']) { + case 'listall': + $this->list_all(); + break; + case '02': + $this->list_forum(); + break; + default: + $this->list_all(); + break; + } + + // If we have any HTML to print, do so... + + $print->add_output("$this->output"); + $print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) ); + + } + + + /*****************************************************/ + // list_all + // ------------------ + // List all online users + /*****************************************************/ + + function list_all() { + global $ibforums, $DB, $std; + + $this->first = 0; + + if (!empty($ibforums->input['st'])) + { + $this->first = $ibforums->input['st']; + } + + $show_mem = array( 'reg', 'guest', 'all' ); + $sort_order = array( 'desc', 'asc' ); + $sort_key = array( 'click', 'name' ); + + $show_mem_value = $ibforums->input['show_mem'] ? $ibforums->input['show_mem'] : 'all'; + $sort_order_value = $ibforums->input['sort_order'] ? $ibforums->input['sort_order'] : 'desc'; + $sort_key_value = $ibforums->input['sort_key'] ? $ibforums->input['sort_key'] : 'click'; + + $show_mem_html = ""; + $sort_order_html = ""; + $sort_key_html = ""; + + $oo = ""; } + if ($can_close and $can_pin) + { + $html .= ""; + } + if ($can_move and $is_reply) { $html .= ""; @@ -832,7 +936,8 @@ class Post { return $this->html->mod_options($html); } - + + /*****************************************************/ // HTML: start form. // ------------------ @@ -842,18 +947,21 @@ class Post { function html_start_form($additional_tags=array()) { global $ibforums; - $form = "obj['form_extra'].">". - "". - "". - "". - "". + $form = $this->html->get_javascript(); + + $form .= "obj['form_extra'].">". + "\n". + "\n". + "\n". + "\n". + "\n". $this->obj['hidden_field']; // Any other tags to add? if (isset($additional_tags)) { foreach($additional_tags as $k => $v) { - $form .= "\n"; + $form .= "\n"; } } @@ -910,11 +1018,74 @@ class Post { if ($post_icon) { $html = preg_replace( "/name=[\"']iconid[\"']\s*value=[\"']$post_icon\s?[\"']/", "name='iconid' value='$post_icon' checked", $html ); - $html = preg_replace( "/name=[\"']iconid[\"']\s*value=[\"']0[\"']\s*checked/i" , "name='iconid' value='0'", $html ); + $html = preg_replace( "/name=[\"']iconid[\"']\s*value=[\"']0[\"']\s*checked=['\"]checked['\"]/i" , "name='iconid' value='0'", $html ); } return $html; } + /*****************************************************/ + // HTML: checkboxes + // ------------------ + // Returns the HTML for sig/emo/track boxes + /*****************************************************/ + + function html_checkboxes($type="", $tid="") + { + global $ibforums, $DB; + + $default_checked = array( + 'sig' => 'checked="checked"', + 'emo' => 'checked="checked"', + 'tra' => $ibforums->member['auto_track'] ? 'checked="checked"' : '' + ); + + // Make sure we're not previewing them and they've been unchecked! + + if ( isset( $ibforums->input['enablesig'] ) AND ( ! $ibforums->input['enablesig'] ) ) + { + $default_checked['sig'] = ""; + } + + if ( isset( $ibforums->input['enableemo'] ) AND ( ! $ibforums->input['enableemo'] ) ) + { + $default_checked['emo'] = ""; + } + + if ( isset( $ibforums->input['enabletrack'] ) AND ( ! $ibforums->input['enabletrack'] ) ) + { + $default_checked['tra'] = ""; + } + else if ( isset( $ibforums->input['enabletrack'] ) AND ( $ibforums->input['enabletrack'] == 1 ) ) + { + $default_checked['tra'] = 'checked="checked"'; + } + + $this->output = str_replace( '' , $this->html->get_box_enableemo( $default_checked['emo'] ) , $this->output ); + + $this->output = str_replace( '' , $this->html->get_box_enablesig( $default_checked['sig'] ) , $this->output ); + + if ( $type == 'reply' ) + { + if ( $tid and $ibforums->member['id'] ) + { + $DB->query("SELECT trid FROM ibf_tracker WHERE topic_id=$tid AND member_id=".$ibforums->member['id']); + + if ( $DB->get_num_rows() ) + { + $this->output = str_replace( '',$this->html->get_box_alreadytrack(), $this->output ); + } + else + { + $this->output = str_replace( '', $this->html->get_box_enabletrack( $default_checked['tra'] ), $this->output ); + } + } + } + else if ( $type != 'edit' ) + { + $this->output = str_replace( '', $this->html->get_box_enabletrack( $default_checked['tra'] ), $this->output ); + } + } + /*****************************************************/ // HTML: add smilie box. // ------------------ @@ -937,7 +1108,21 @@ class Post { $show_table++; $count++; - $smilies .= "vars['EMOTICONS_URL']."/".$elmo['image']."\" alt='smilie' border='0'> \n"; + // Make single quotes as URL's with html entites in them + // are parsed by the browser, so ' causes JS error :o + + if (strstr( $elmo['typed'], "'" ) ) + { + $in_delim = '"'; + $out_delim = "'"; + } + else + { + $in_delim = "'"; + $out_delim = '"'; + } + + $smilies .= "vars['EMOTICONS_URL']."/".$elmo['image']."\" alt='smilie' border='0' /> \n"; if ($count == $ibforums->vars['emo_per_row']) { $smilies .= "\n\n"; @@ -983,7 +1168,7 @@ class Post { // This section will probably change at some point //-------------------------------------------------------------- - $post_query = $DB->query("SELECT post, pid, post_date, author_id, author_name FROM ibf_posts WHERE topic_id='$topic_id' and queued <> 1 ORDER BY pid DESC LIMIT 0,10"); + $post_query = $DB->query("SELECT post, pid, post_date, author_id, author_name FROM ibf_posts WHERE topic_id=$topic_id and queued <> 1 ORDER BY pid DESC LIMIT 0,10"); while ( $row = $DB->fetch_row($post_query) ) { @@ -992,6 +1177,28 @@ class Post { $row['date'] = $std->get_date( $row['post_date'], 'LONG' ); + if (!$ibforums->member['view_img']) + { + // unconvert smilies first, or it looks a bit crap. + + $row['post'] = preg_replace( "#.+?#", "\\1" , $row['post'] ); + + $row['post'] = preg_replace( "//", "(IMG:\\1)", $row['post'] ); + } + + $row['post'] = $this->parser->post_db_parse($row['post'], $this->forum['use_html'] AND $ibforums->member['g_dohtml'] ? 1 : 0); + + //-------------------------------------------------------------- + // Do word wrap? + //-------------------------------------------------------------- + + if ( $ibforums->vars['post_wordwrap'] > 0 ) + { + $row['post'] = $this->parser->my_wordwrap( $row['post'], $ibforums->vars['post_wordwrap']) ; + } + + $row['post'] = str_replace( "
    ", "
    ", $row['post'] ); + $this->output .= $this->html->TopicSummary_body( $row ); } diff --git a/upload/sources/Profile.php b/upload/sources/Profile.php index d707b6f4..8d3f2e5e 100644 --- a/upload/sources/Profile.php +++ b/upload/sources/Profile.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > User Profile functions @@ -44,6 +46,15 @@ class Profile { var $notes = ""; var $size = "m"; + var $show_photo = ""; + var $show_width = ""; + var $show_height = ""; + var $show_name = ""; + + var $photo_member = ""; + + var $has_photo = FALSE; + var $lib; function Profile() { @@ -52,14 +63,6 @@ class Profile { require "./sources/lib/post_parser.php"; $this->parser = new post_parser(); - - //-------------------------------------------- - // Make sure our code number is numerical only - //-------------------------------------------- - - //$ibforums->input['CODE'] = preg_replace("/^([0-9]+)$/", "$1", $ibforums->input['CODE']); - - if ($ibforums->input['CODE'] == "") $ibforums->input['CODE'] = 00; //-------------------------------------------- // Require the HTML and language modules @@ -69,7 +72,7 @@ class Profile { $this->html = $std->load_template('skin_profile'); - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; $this->base_url_nosess = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}"; //-------------------------------------------- @@ -89,6 +92,13 @@ class Profile { case '03': $this->view_profile(); break; + + case 'showphoto': + $this->show_photo(); + break; + + case 'showcard': + $this->show_card(); //------------------------------ default: @@ -104,7 +114,14 @@ class Profile { } - function view_profile() { + //--------------------------------------------------------------------------- + // + // VIEW CONTACT CARD: + // + //--------------------------------------------------------------------------- + + function show_card() + { global $ibforums, $DB, $std, $print; $info = array(); @@ -118,7 +135,185 @@ class Profile { // Check input.. //-------------------------------------------- - $id = preg_replace( "/^(\d+)$/", "\\1", $ibforums->input['MID'] ); + $id = intval($ibforums->input['MID']); + + if ( empty($id) ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'incorrect_use' ) ); + } + + $DB->query("SELECT * FROM ibf_members WHERE id=$id"); + + $member = $DB->fetch_row(); + + $member['password'] = ''; + + $info['aim_name'] = $member['aim_name'] ? $member['aim_name'] : $ibforums->lang['no_info']; + $info['icq_number'] = $member['icq_number'] ? $member['icq_number'] : $ibforums->lang['no_info']; + $info['yahoo'] = $member['yahoo'] ? $member['yahoo'] : $ibforums->lang['no_info']; + $info['location'] = $member['location'] ? $member['location'] : $ibforums->lang['no_info']; + $info['interests'] = $member['interests'] ? $member['interests'] : $ibforums->lang['no_info']; + $info['msn_name'] = $member['msnname'] ? $member['msnname'] : $ibforums->lang['no_info']; + $info['integ_msg'] = $member['integ_msg'] ? $member['integ_msg'] : $ibforums->lang['no_info']; + $info['mid'] = $member['id']; + + if (!$member['hide_email']) + { + $info['email'] = "{$ibforums->lang['click_here']}"; + } + else + { + $info['email'] = $ibforums->lang['private']; + } + + $this->load_photo($id); + + if ( $this->has_photo == TRUE ) + { + $photo = $this->html->get_photo( $this->show_photo, $this->show_width, $this->show_height ); + } + else + { + $photo = "<{NO_PHOTO}>"; + } + + if ($ibforums->input['download'] == 1) + { + $photo = str_replace( "<{NO_PHOTO}>", "No Photo Available", $photo ); + $html = $this->html->show_card_download( $member['name'], $photo, $info ); + + @flush(); + @header("Content-type: unknown/unknown"); + @header("Content-Disposition: attachment; filename={$member['name']}.html"); + print $html; + exit(); + } + else + { + $html = $this->html->show_card( $member['name'], $photo, $info ); + + $print->pop_up_window( $ibforums->lang['photo_title'], $html ); + } + + } + + //--------------------------------------------------------------------------- + // + // VIEW PHOTO: + // + //--------------------------------------------------------------------------- + + function show_photo() + { + global $ibforums, $DB, $std, $print; + + $info = array(); + + if ($ibforums->member['g_mem_info'] != 1) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_permission' ) ); + } + + //-------------------------------------------- + // Check input.. + //-------------------------------------------- + + $id = intval($ibforums->input['MID']); + + if ( empty($id) ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'incorrect_use' ) ); + } + + $this->load_photo($id); + + if ( $this->has_photo == TRUE ) + { + $photo = $this->html->get_photo( $this->show_photo, $this->show_width, $this->show_height ); + } + else + { + $photo = "<{NO_PHOTO}>"; + } + + $html = $this->html->show_photo( $this->photo_member['name'], $photo ); + + $print->pop_up_window( $ibforums->lang['photo_title'], $html ); + + } + + + //--------------------------------------------------------------------------- + // + // FUNC: RETURN PHOTO + // + //--------------------------------------------------------------------------- + + + function load_photo($id) + { + global $ibforums, $DB, $std, $print; + + $this->show_photo = ""; + $this->show_height = ""; + $this->show_width = ""; + + $DB->query("SELECT m.id, m.name, me.photo_type, me.photo_location, me.photo_dimensions FROM ibf_member_extra me + LEFT JOIN ibf_members m ON me.id=m.id + WHERE m.id=$id"); + + $this->photo_member = $DB->fetch_row(); + + if ( $this->photo_member['photo_type'] and $this->photo_member['photo_location'] ) + { + $this->has_photo = TRUE; + + list( $show_width, $show_height ) = explode( ",", $this->photo_member['photo_dimensions'] ); + + if ($this->photo_member['photo_type'] == 'url') + { + $this->show_photo = $this->photo_member['photo_location']; + } + else + { + $this->show_photo = $ibforums->vars['upload_url']."/".$this->photo_member['photo_location']; + } + + if ( $show_width > 0 ) + { + $this->show_width = "width='$show_width'"; + } + + if ( $show_height > 0 ) + { + $this->show_height = "height='$show_height'"; + } + } + } + + + //--------------------------------------------------------------------------- + // + // VIEW MAIN PROFILE: + // + //--------------------------------------------------------------------------- + + function view_profile() + { + global $ibforums, $DB, $std, $print; + + $info = array(); + + if ($ibforums->member['g_mem_info'] != 1) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_permission' ) ); + } + + //-------------------------------------------- + // Check input.. + //-------------------------------------------- + + $id = intval($ibforums->input['MID']); if ( empty($id) ) { @@ -152,11 +347,7 @@ class Profile { while ( $r = $DB->fetch_row() ) { - if ($r['read_perms'] == '*') - { - $forum_ids[] = $r['id']; - } - else if ( preg_match( "/(^|,)".$this->member['mgroup']."(,|$)/", $r['read_perms']) ) + if ( $std->check_perms($r['read_perms']) == TRUE ) { $forum_ids[] = $r['id']; } @@ -186,7 +377,7 @@ class Profile { $percent = round( $favourite['f_posts'] / $total_posts['total_posts'] * 100 ); } - if ($member['posts']) + if ($member['posts'] and $board_posts) { $info['posts_day'] = round( $member['posts'] / (((time() - $member['joined']) / 86400)), 1); $info['total_pct'] = sprintf( '%.2f', ( $member['posts'] / $board_posts * 100 ) ); @@ -206,7 +397,7 @@ class Profile { $info['percent'] = $percent; $info['group_title'] = $member['group_title']; $info['board_posts'] = $board_posts; - $info['joined'] = $std->get_date( $member['joined'], 'LONG' ); + $info['joined'] = $std->get_date( $member['joined'], 'JOINED' ); $info['member_title'] = $member['title'] ? $member['title'] : $ibforums->lang['no_info']; @@ -216,6 +407,7 @@ class Profile { $info['location'] = $member['location'] ? $member['location'] : $ibforums->lang['no_info']; $info['interests'] = $member['interests'] ? $member['interests'] : $ibforums->lang['no_info']; $info['msn_name'] = $member['msnname'] ? $member['msnname'] : $ibforums->lang['no_info']; + $info['integ_msg'] = $member['integ_msg'] ? $member['integ_msg'] : $ibforums->lang['no_info']; $ibforums->vars['time_adjust'] = $ibforums->vars['time_adjust'] == "" ? 0 : $ibforums->vars['time_adjust']; @@ -224,13 +416,21 @@ class Profile { $member['time_offset'] += 1; } - $info['local_time'] = $member['time_offset'] != "" ? gmdate( "h:i A", time() + ($member['time_offset']*3600) + ($ibforums->vars['time_adjust'] * 60) ) : $ibforums->lang['no_info']; + // This is a useless comment. Completely void of any useful information + + $info['local_time'] = $member['time_offset'] != "" ? gmdate( $ibforums->vars['clock_long'], time() + ($member['time_offset']*3600) + ($ibforums->vars['time_adjust'] * 60) ) : $ibforums->lang['no_info']; $info['avatar'] = $std->get_avatar( $member['avatar'] , 1, $member['avatar_size'] ); $info['signature'] = $member['signature']; - if ( $member['website'] and preg_match( "/^http:\/\/\S+$/", $member['website'] ) ) { + if ( $ibforums->vars['sig_allow_html'] == 1 ) + { + $info['signature'] = $this->parser->parse_html($info['signature'], 0); + } + + if ( $member['website'] and preg_match( "/^http:\/\/\S+$/", $member['website'] ) ) + { $info['homepage'] = "{$member['website']}"; } else @@ -250,25 +450,50 @@ class Profile { if (!$member['hide_email']) { - $info['email'] = "{$ibforums->lang['click_here']}"; + $info['email'] = "{$ibforums->lang['click_here']}"; } else { $info['email'] = $ibforums->lang['private']; } + + //--------------------------------------------------- + // Get photo and show profile: + //--------------------------------------------------- + + $this->load_photo($id); + + if ( $this->has_photo == TRUE ) + { + $info['photo'] = $this->html->get_photo( $this->show_photo, $this->show_width, $this->show_height ); + } + else + { + $info['photo'] = ""; + } - $info['base_url'] = $this->base_url; + $info['base_url'] = $this->base_url; + + $info['posts'] = $std->do_number_format($info['posts']); + + //--------------------------------------------------- + // Output + //--------------------------------------------------- $this->output .= $this->html->show_profile( $info ); + //--------------------------------------------------- // Is this our profile? + //--------------------------------------------------- if ($member['id'] == $this->member['id']) { $this->output = preg_replace( "//e", "\$this->html->user_edit(\$info)", $this->output ); } + //--------------------------------------------------- // Can mods see the hidden parts of this profile? + //--------------------------------------------------- $query_extra = 'WHERE fedit=1 AND fhide <> 1'; $custom_out = ""; @@ -322,7 +547,7 @@ class Profile { } else { - $field_data[ $row['fid'] ] = ($field_data[ $row['fid'] ] == "") ? $ibforums->lang['no_info'] : $field_data[ $row['fid'] ]; + $field_data[ $row['fid'] ] = ($field_data[ $row['fid'] ] == "") ? $ibforums->lang['no_info'] : nl2br($field_data[ $row['fid'] ]); } $custom_out .= $this->html->custom_field($row['ftitle'], $field_data[ $row['fid'] ] ); @@ -333,6 +558,119 @@ class Profile { $this->output = str_replace( "", $custom_out, $this->output ); } + //--------------------------------------------------- + // Warning stuff!! + //--------------------------------------------------- + + $pass = 0; + $mod = 0; + + if ( $ibforums->vars['warn_on'] and ( ! stristr( $ibforums->vars['warn_protected'], ','.$member['mgroup'].',' ) ) ) + { + if ($ibforums->member['id']) + { + if ( $ibforums->member['g_is_supmod'] == 1 ) + { + $pass = 1; + $mod = 1; + } + else + { + $DB->query("SELECT * FROM ibf_moderators WHERE (member_id=".$ibforums->member['id']." OR (is_group=1 AND group_id=".$ibforums->member['mgroup']."))"); + $this->moderator = $DB->fetch_row(); + + if ( $this->moderator['mid'] AND $this->moderator['allow_warn'] == 1 ) + { + $pass = 1; + $mod = 1; + } + } + + if ( $pass == 0 and ( $ibforums->vars['warn_show_own'] and ( $member['id'] == $ibforums->member['id'] ) ) ) + { + $pass = 1; + } + + if ( $pass == 1 ) + { + // Work out which image to show. + + if ( ! $ibforums->vars['warn_show_rating'] ) + { + if ( $member['warn_level'] < 1 ) + { + $member['warn_img'] = '<{WARN_0}>'; + } + else if ( $member['warn_level'] >= $ibforums->vars['warn_max'] ) + { + $member['warn_img'] = '<{WARN_5}>'; + $member['warn_percent'] = 100; + } + else + { + $member['warn_percent'] = $member['warn_level'] ? sprintf( "%.0f", ( ($member['warn_level'] / $ibforums->vars['warn_max']) * 100) ) : 0; + + if ( $member['warn_percent'] > 100 ) + { + $member['warn_percent'] = 100; + } + + if ( $member['warn_percent'] >= 81 ) + { + $member['warn_img'] = '<{WARN_5}>'; + } + else if ( $member['warn_percent'] >= 61 ) + { + $member['warn_img'] = '<{WARN_4}>'; + } + else if ( $member['warn_percent'] >= 41 ) + { + $member['warn_img'] = '<{WARN_3}>'; + } + else if ( $member['warn_percent'] >= 21 ) + { + $member['warn_img'] = '<{WARN_2}>'; + } + else if ( $member['warn_percent'] >= 1 ) + { + $member['warn_img'] = '<{WARN_1}>'; + } + else + { + $member['warn_img'] = '<{WARN_0}>'; + } + } + + if ( $member['warn_percent'] < 1 ) + { + $member['warn_percent'] = 0; + } + + if ( $mod == 1 ) + { + $this->output = str_replace( "", $this->html->warn_level($member['id'], $member['warn_img'], $member['warn_percent']), $this->output ); + } + else + { + $this->output = str_replace( "", $this->html->warn_level_no_mod($member['id'], $member['warn_img'], $member['warn_percent']), $this->output ); + } + } + else + { + // Rating mode: + + if ( $mod == 1 ) + { + $this->output = str_replace( "", $this->html->warn_level_rating($member['id'], $member['warn_level'], $ibforums->vars['warn_min'], $ibforums->vars['warn_max']), $this->output ); + } + else + { + $this->output = str_replace( "", $this->html->warn_level_rating_no_mod($member['id'], $member['warn_level'], $ibforums->vars['warn_min'], $ibforums->vars['warn_max']), $this->output ); + } + } + } + } + } $this->page_title = $ibforums->lang['page_title']; $this->nav = array( $ibforums->lang['page_title'] ); diff --git a/upload/sources/Register.php b/upload/sources/Register.php index e97dbb97..77922734 100644 --- a/upload/sources/Register.php +++ b/upload/sources/Register.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Registration functions @@ -31,6 +33,7 @@ class Register { var $nav = array(); var $html = ""; var $email = ""; + var $modules = ""; function Register() { global $ibforums, $DB, $std, $print; @@ -43,24 +46,30 @@ class Register { $this->html = $std->load_template('skin_register'); - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; $this->base_url_nosess = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}"; //-------------------------------------------- // Get the emailer module //-------------------------------------------- - require "./sources/lib/emailer.php"; + require ROOT_PATH."sources/lib/emailer.php"; $this->email = new emailer(); + + if ( USE_MODULES == 1 ) + { + require ROOT_PATH."modules/ipb_member_sync.php"; + + $this->modules = new ipb_member_sync(); + } //-------------------------------------------- // What to do? //-------------------------------------------- - switch($ibforums->input['CODE']) { - - + switch($ibforums->input['CODE']) + { case '02': $this->create_account(); break; @@ -77,6 +86,10 @@ class Register { $this->show_manual_form('lostpass'); break; + case 'lostpassform': + $this->show_manual_form('lostpass'); + break; + case '07': $this->show_manual_form('newemail'); break; @@ -99,7 +112,14 @@ class Register { case 'image': $this->show_image(); break; - + + case 'reval': + $this->revalidate_one(); + break; + + case 'reval2': + $this->revalidate_two(); + break; default: if ($ibforums->vars['use_coppa'] == 1 and $ibforums->input['coppa_pass'] != 1) @@ -120,6 +140,133 @@ class Register { } + /*****************************************************/ + // Show "check revalidate form" er.. form. thing. + // ------------------ + // + /*****************************************************/ + + function revalidate_one($errors="") { + global $ibforums, $DB; + + if ($errors != "") + { + $this->output .= $this->html->errors( $ibforums->lang[$errors]); + } + + $name = $ibforums->member['id'] == "" ? '' : $ibforums->member['name']; + + $this->output .= $this->html->show_revalidate_form($name); + $this->page_title = $ibforums->lang['rv_title']; + $this->nav = array( $ibforums->lang['rv_title'] ); + + } + + function revalidate_two() + { + global $ibforums, $DB, $std, $HTTP_POST_VARS; + + //------------------------------------------ + // Check in the DB for entered member name + //------------------------------------------ + + if ( $HTTP_POST_VARS['username'] == "" ) + { + $this->revalidate_one('err_no_username'); + return; + } + + $DB->query("SELECT * FROM ibf_members WHERE LOWER(name)='".strtolower($ibforums->input['username'])."'"); + + if ( ! $member = $DB->fetch_row() ) + { + $this->revalidate_one('err_no_username'); + return; + } + + //------------------------------------------ + // Check in the DB for any validations + //------------------------------------------ + + $DB->query("SELECT * FROM ibf_validating WHERE member_id=".intval($member['id'])); + + if ( ! $val = $DB->fetch_row() ) + { + $this->revalidate_one('err_no_validations'); + return; + } + + //------------------------------------------ + // Which type is it then? + //------------------------------------------ + + if ( $val['lost_pass'] == 1 ) + { + $this->email->get_template("lost_pass"); + + $this->email->build_message( array( + 'NAME' => $member['name'], + 'THE_LINK' => $this->base_url_nosess."?act=Reg&CODE=lostpassform&uid=".$member['id']."&aid=".$val['vid'], + 'MAN_LINK' => $this->base_url_nosess."?act=Reg&CODE=lostpassform", + 'EMAIL' => $member['email'], + 'ID' => $member['id'], + 'CODE' => $val['vid'], + 'IP_ADDRESS' => $ibforums->input['IP_ADDRESS'], + ) + ); + + $this->email->subject = $ibforums->lang['lp_subject'].' '.$ibforums->vars['board_name']; + $this->email->to = $member['email']; + + $this->email->send_mail(); + } + else if ( $val['new_reg'] == 1 ) + { + $this->email->get_template("reg_validate"); + + $this->email->build_message( array( + 'THE_LINK' => $this->base_url_nosess."?act=Reg&CODE=03&uid=".$member['id']."&aid=".$val['vid'], + 'NAME' => $member['name'], + 'MAN_LINK' => $this->base_url_nosess."?act=Reg&CODE=05", + 'EMAIL' => $member['email'], + 'ID' => $member['id'], + 'CODE' => $val['vid'], + ) + ); + + $this->email->subject = $ibforums->lang['email_reg_subj']." ".$ibforums->vars['board_name']; + $this->email->to = $member['email']; + + $this->email->send_mail(); + } + else if ( $val['email_chg'] == 1 ) + { + $this->email->get_template("newemail"); + + $this->email->build_message( array( + 'NAME' => $member['name'], + 'THE_LINK' => $this->base_url_nosess."?act=Reg&CODE=03&type=newemail&uid=".$member['id']."&aid=".$val['vid'], + 'ID' => $member['id'], + 'MAN_LINK' => $this->base_url_nosess."?act=Reg&CODE=07", + 'CODE' => $val['vid'], + ) + ); + + $this->email->subject = $ibforums->lang['ne_subject'].' '.$ibforums->vars['board_name']; + $this->email->to = $email_one; + } + else + { + $this->revalidate_one('err_no_validations'); + return; + } + + $this->output .= $this->html->show_revalidated(); + + $this->page_title = $ibforums->lang['rv_title']; + $this->nav = array( $ibforums->lang['rv_title'] ); + } + /*****************************************************/ // Coppa Start @@ -143,7 +290,7 @@ class Register { $coppa_date = date( 'j-F y', mktime(0,0,0,date("m"),date("d"),date("Y")-13) ); - $ibforums->lang['coppa_form_text'] = str_replace( "<#FORM_LINK#>", "{$ibforums->lang['coppa_link_form']}", $ibforums->lang['coppa_form_text']); + $ibforums->lang['coppa_form_text'] = str_replace( "<#FORM_LINK#>", "{$ibforums->lang['coppa_link_form']}", $ibforums->lang['coppa_form_text']); $this->output .= $this->html->coppa_start($coppa_date); @@ -157,7 +304,7 @@ class Register { { global $ibforums, $DB, $std; - $ibforums->lang['coppa_form_text'] = str_replace( "<#FORM_LINK#>", "{$ibforums->lang['coppa_link_form']}", $ibforums->lang['coppa_form_text']); + $ibforums->lang['coppa_form_text'] = str_replace( "<#FORM_LINK#>", "{$ibforums->lang['coppa_link_form']}", $ibforums->lang['coppa_form_text']); $this->output .= $this->html->coppa_two(); @@ -174,15 +321,61 @@ class Register { // What do you want? Blood? /*****************************************************/ - function lost_password_start() + function lost_password_start($errors="") { global $ibforums, $DB, $std; + if ($ibforums->vars['bot_antispam']) + { + // Sort out the security code + + $r_date = time() - (60*60*6); + + // Remove old reg requests from the DB + + $DB->query("DELETE FROM ibf_reg_antispam WHERE ctime < '$r_date'"); + + // Set a new ID for this reg request... + + $regid = md5( uniqid(microtime()) ); + + // Set a new 6 character numerical string + + mt_srand ((double) microtime() * 1000000); + + $reg_code = mt_rand(100000,999999); + + // Insert into the DB + + $str = $DB->compile_db_insert_string( array ( + 'regid' => $regid, + 'regcode' => $reg_code, + 'ip_address' => $ibforums->input['IP_ADDRESS'], + 'ctime' => time(), + ) ); + + $DB->query("INSERT INTO ibf_reg_antispam ({$str['FIELD_NAMES']}) VALUES ({$str['FIELD_VALUES']})"); + } + $this->page_title = $ibforums->lang['lost_pass_form']; $this->nav = array( $ibforums->lang['lost_pass_form'] ); + + if ($errors != "") + { + $this->output .= $this->html->errors( $ibforums->lang[$errors]); + } - $this->output .= $this->html->lost_pass_form(); + $this->output .= $this->html->lost_pass_form($regid); + + if ($ibforums->vars['bot_antispam'] == 'gd') + { + $this->output = str_replace( "", $this->html->bot_antispam_gd( $regid ), $this->output ); + } + else if ($ibforums->vars['bot_antispam'] == 'gif') + { + $this->output = str_replace( "", $this->html->bot_antispam( $regid ), $this->output ); + } } @@ -192,6 +385,37 @@ class Register { { global $ibforums, $DB, $std, $HTTP_POST_VARS, $print; + if ($ibforums->vars['bot_antispam']) + { + //-------------------------------------- + // Security code stuff + //-------------------------------------- + + if ($ibforums->input['regid'] == "") + { + $this->lost_password_start('err_reg_code'); + return; + } + + $DB->query("SELECT * FROM ibf_reg_antispam WHERE regid='".trim(addslashes($ibforums->input['regid']))."'"); + + if ( ! $row = $DB->fetch_row() ) + { + $this->show_reg_form('err_reg_code'); + return; + } + + if ( trim( intval($ibforums->input['reg_code']) ) != $row['regcode'] ) + { + $this->lost_password_start('err_reg_code'); + return; + } + } + + //-------------------------------------- + // Back to the usual programming! :o + //-------------------------------------- + if ($HTTP_POST_VARS['member_name'] == "") { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_username' ) ); @@ -212,9 +436,9 @@ class Register { // Attempt to get the user details from the DB //------------------------------------------------------------ - $DB->query("SELECT name, id, email, mgroup, validate_key FROM ibf_members WHERE LOWER(name)='$member_name'"); + $DB->query("SELECT name, id, email, mgroup FROM ibf_members WHERE LOWER(name)='$member_name'"); - if ( !$DB->get_num_rows() ) + if ( ! $DB->get_num_rows() ) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_such_user' ) ); } @@ -226,25 +450,29 @@ class Register { // Is there a validation key? If so, we'd better not touch it //------------------------------------------------------------ - if ($member['mgroup'] == $ibforums->vars['auth_group']) - { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'val_key_present' ) ); - } - if ($member['id'] == "") { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_such_user' ) ); } - $new_pass = $std->make_password(); - $validate_key = $std->make_password(); - $md5_pass = md5($new_pass); + $validate_key = md5( $std->make_password() . time() ); //------------------------------------------------------------ // Update the DB for this member. //------------------------------------------------------------ - $DB->query("UPDATE ibf_members SET new_pass='$md5_pass', validate_key='$validate_key' WHERE id='".$member['id']."'"); + $db_str = $DB->compile_db_insert_string( array ( + 'vid' => $validate_key, + 'member_id' => $member['id'], + 'real_group' => $member['mgroup'], + 'temp_group' => $member['mgroup'], + 'entry_date' => time(), + 'coppa_user' => 0, + 'lost_pass' => 1, + 'ip_address' => $ibforums->input['IP_ADDRESS'] + ) ); + + $DB->query("INSERT INTO ibf_validating ({$db_str['FIELD_NAMES']}) VALUES({$db_str['FIELD_VALUES']})"); //------------------------------------------------------------ // Send out the email. @@ -255,7 +483,8 @@ class Register { $this->email->build_message( array( 'NAME' => $member['name'], 'PASSWORD' => $new_pass, - 'MAN_LINK' => $this->base_url_nosess."?act=Reg&CODE=06", + 'THE_LINK' => $this->base_url_nosess."?act=Reg&CODE=lostpassform&uid=".$member['id']."&aid=".$validate_key, + 'MAN_LINK' => $this->base_url_nosess."?act=Reg&CODE=lostpassform", 'EMAIL' => $member['email'], 'ID' => $member['id'], 'CODE' => $validate_key, @@ -268,11 +497,10 @@ class Register { $this->email->send_mail(); - $std->my_setcookie( 'pass_hash' , '-1', 0 ); - - $print->redirect_screen( $ibforums->lang['lp_redirect'], 'act=Reg&CODE=06' ); + $this->output = $this->html->show_lostpasswait( $member ); } + $this->page_title = $ibforums->lang['lost_pass_form']; } /*****************************************************/ @@ -297,11 +525,13 @@ class Register { $ibforums->lang['std_text'] .= "
    " . $ibforums->lang['email_validate_text']; } + $this->bash_dead_validations(); + //----------------------------------------------- // Clean out anti-spam stuffy //----------------------------------------------- - if ($ibforums->vars['reg_antispam']) + if ($ibforums->vars['bot_antispam']) { // Get a time roughly 6 hours ago... @@ -384,11 +614,11 @@ class Register { } else if ( $row['ftype'] == 'area' ) { - $form_element = $this->html->field_textarea( 'field_'.$row['fid'], "" ); + $form_element = $this->html->field_textarea( 'field_'.$row['fid'], $ibforums->input['field_'.$row['fid']] ); } else { - $form_element = $this->html->field_textinput( 'field_'.$row['fid'], "" ); + $form_element = $this->html->field_textinput( 'field_'.$row['fid'], $ibforums->input['field_'.$row['fid']] ); } ${$ftype} .= $this->html->field_entry( $row['ftitle'], $row['fdesc'], $form_element ); @@ -409,10 +639,14 @@ class Register { 'coppa_user' => $coppa, ) ); - if ($ibforums->vars['reg_antispam']) - { - $this->output = str_replace( "", $this->html->reg_antispam( $regid ), $this->output ); - } + if ($ibforums->vars['bot_antispam'] == 'gd') + { + $this->output = str_replace( "", $this->html->bot_antispam_gd( $regid ), $this->output ); + } + else if ($ibforums->vars['bot_antispam'] == 'gif') + { + $this->output = str_replace( "", $this->html->bot_antispam( $regid ), $this->output ); + } if ($required_output != "") { @@ -423,7 +657,13 @@ class Register { { $this->output = str_replace( "", $this->html->optional_title()."\n".$optional_output, $this->output ); } - } + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_register_form(); + } + } /*****************************************************/ // create_account @@ -438,7 +678,8 @@ class Register { // routine while you're waiting. /*****************************************************/ - function create_account() { + function create_account() + { global $ibforums, $std, $DB, $print, $HTTP_POST_VARS; if ($HTTP_POST_VARS['act'] == "") @@ -479,13 +720,13 @@ class Register { } } - $custom_fields[ 'field_'.$row['fid'] ] = $ibforums->input[ 'field_'.$row['fid'] ]; + $custom_fields[ 'field_'.$row['fid'] ] = str_replace( '
    ', "\n", $ibforums->input[ 'field_'.$row['fid'] ] ); } //--------------------------------------- // Trim off the username and password - $in_username = trim($ibforums->input['UserName']); + $in_username = trim( str_replace( '|', '|' , $ibforums->input['UserName'] ) ); $in_password = trim($ibforums->input['PassWord']); $in_email = strtolower( trim($ibforums->input['EmailAddress']) ); @@ -497,6 +738,22 @@ class Register { return; } + // Remove multiple spaces in the username + + $in_username = preg_replace( "/\s{2,}/", " ", $in_username ); + + //------------------------------------------------- + // More unicode.. + //------------------------------------------------- + + $len_u = $in_username; + + $len_u = preg_replace("/&#([0-9]+);/", "-", $len_u ); + + $len_p = $in_password; + + $len_p = preg_replace("/&#([0-9]+);/", "-", $len_p ); + //+-------------------------------------------- //| Check for errors in the input. //+-------------------------------------------- @@ -506,12 +763,12 @@ class Register { $this->show_reg_form('err_no_username'); return; } - if (strlen($in_username) < 3) + if (strlen($len_u) < 3) { $this->show_reg_form('err_no_username'); return; } - if (strlen($in_username) > 32) + if (strlen($len_u) > 32) { $this->show_reg_form('err_no_username'); return; @@ -521,12 +778,12 @@ class Register { $this->show_reg_form('err_no_password'); return; } - if (strlen($in_password) < 3) + if (strlen($len_p) < 3) { $this->show_reg_form('err_no_password'); return; } - if (strlen($in_password) > 32) + if (strlen($len_p) > 32) { $this->show_reg_form('err_no_password'); return; @@ -597,10 +854,14 @@ class Register { $names = explode( "|" , $ibforums->vars['ban_names'] ); foreach ($names as $n) { - if (preg_match( "/$n/i", $in_username )) + if ( $n == "" ) + { + continue; + } + + if (preg_match( "/".preg_quote($n, '/' )."/i", $in_username )) { $this->show_reg_form('err_user_exists'); - break; return; } } @@ -613,10 +874,17 @@ class Register { if ($ibforums->vars['ban_ip']) { $ips = explode( "|", $ibforums->vars['ban_ip'] ); + foreach ($ips as $ip) { $ip = preg_replace( "/\*/", '.*' , $ip ); - if (preg_match( "/$ip/", $ibforums->input['IP_ADDRESS'] )) + + if ( $ip == "" ) + { + continue; + } + + if (preg_match( "/^$ip/", $ibforums->input['IP_ADDRESS'] )) { $std->Error( array( LEVEL => 1, MSG => 'you_are_banned' ) ); } @@ -640,7 +908,7 @@ class Register { //| Check the reg_code //+-------------------------------------------- - if ($ibforums->vars['reg_antispam']) + if ($ibforums->vars['bot_antispam']) { if ($ibforums->input['regid'] == "") { @@ -661,6 +929,8 @@ class Register { $this->show_reg_form('err_reg_code'); return; } + + $DB->query("DELETE FROM ibf_reg_antispam WHERE regid='".trim(addslashes($ibforums->input['regid']))."'"); } //+-------------------------------------------- @@ -707,12 +977,13 @@ class Register { 'email_pm' => 1, 'view_img' => 1, 'view_avs' => 1, - 'allow_post' => 1, + 'restrict_post' => 0, 'view_pop' => 1, 'vdirs' => "in:Inbox|sent:Sent Items", 'msg_total' => 0, 'new_msg' => 0, 'coppa_user' => $coppa, + 'language' => $ibforums->vars['default_language'], ); @@ -727,12 +998,18 @@ class Register { $DB->query("INSERT INTO ibf_members (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")"); + $DB->query("INSERT INTO ibf_member_extra (id) VALUES ($member_id)"); + unset($db_string); //+-------------------------------------------- //| Insert into the custom profile fields DB //+-------------------------------------------- + // Ensure deleted members profile fields are removed. + + $DB->query("DELETE FROM ibf_pfields_content WHERE member_id=".$member['id']); + $custom_fields['member_id'] = $member['id']; $db_string = $DB->compile_db_insert_string($custom_fields); @@ -743,7 +1020,20 @@ class Register { //+-------------------------------------------- - $validate_key = $std->make_password(); + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_create_account($member); + + if ( $this->modules->error == 1 ) + { + return; + } + } + + //+-------------------------------------------- + + $validate_key = md5( $std->make_password() . time() ); $time = time(); @@ -754,8 +1044,18 @@ class Register { // We want to validate all reg's via email, after email verificiation has taken place, // we restore their previous group and remove the validate_key - $DB->query("UPDATE ibf_members SET validate_key='$validate_key', prev_group='".$ibforums->vars['member_group']."' " - ."WHERE id='$member_id'"); + $db_str = $DB->compile_db_insert_string( array ( + 'vid' => $validate_key, + 'member_id' => $member['id'], + 'real_group' => $ibforums->vars['member_group'], + 'temp_group' => $ibforums->vars['auth_group'], + 'entry_date' => $time, + 'coppa_user' => $coppa, + 'new_reg' => 1, + 'ip_address' => $member['ip_address'] + ) ); + + $DB->query("INSERT INTO ibf_validating ({$db_str['FIELD_NAMES']}) VALUES({$db_str['FIELD_VALUES']})"); if ( $ibforums->vars['reg_auth_type'] == 'user' ) @@ -766,7 +1066,6 @@ class Register { $this->email->build_message( array( 'THE_LINK' => $this->base_url_nosess."?act=Reg&CODE=03&uid=".urlencode($member_id)."&aid=".urlencode($validate_key), 'NAME' => $member['name'], - 'PASSWORD' => $in_password, 'MAN_LINK' => $this->base_url_nosess."?act=Reg&CODE=05", 'EMAIL' => $member['email'], 'ID' => $member_id, @@ -787,6 +1086,23 @@ class Register { $this->output = $this->html->show_preview( $member ); } + if ($ibforums->vars['new_reg_notify']) { + + $date = $std->get_date( time(), 'LONG' ); + + $this->email->get_template("admin_newuser"); + + $this->email->build_message( array( + 'DATE' => $date, + 'MEMBER_NAME' => $member['name'], + ) + ); + + $this->email->subject = "New Registration at ".$ibforums->vars['board_name']; + $this->email->to = $ibforums->vars['email_in']; + $this->email->send_mail(); + } + $this->page_title = $ibforums->lang['reg_success']; $this->nav = array( $ibforums->lang['nav_reg'] ); @@ -829,6 +1145,19 @@ class Register { { // This is a COPPA user, so lets tell them they registered OK and redirect to the form. + $db_str = $DB->compile_db_insert_string( array ( + 'vid' => $validate_key, + 'member_id' => $member['id'], + 'real_group' => $ibforums->vars['member_group'], + 'temp_group' => $ibforums->vars['auth_group'], + 'entry_date' => $time, + 'coppa_user' => $coppa, + 'new_reg' => 1, + 'ip_address' => $member['ip_address'] + ) ); + + $DB->query("INSERT INTO ibf_validating ({$db_str['FIELD_NAMES']}) VALUES({$db_str['FIELD_VALUES']})"); + $print->redirect_screen( $ibforums->lang['cp_success'], 'act=Reg&CODE=12' ); } @@ -842,13 +1171,13 @@ class Register { /*****************************************************/ function validate_user() { - global $ibforums, $std, $DB, $print; + global $ibforums, $std, $DB, $print, $HTTP_POST_VARS; //------------------------------------------------------------ // Check for input and it's in a valid format. //------------------------------------------------------------ - $in_user_id = trim(urldecode($ibforums->input['uid'])); + $in_user_id = intval(trim(urldecode($ibforums->input['uid']))); $in_validate_key = trim(urldecode($ibforums->input['aid'])); $in_type = trim($ibforums->input['type']); @@ -859,7 +1188,7 @@ class Register { //------------------------------------------------------------ - if (! preg_match( "/^(?:[\d\w]){6,14}$/", $in_validate_key ) ) + if (! preg_match( "/^(?:[\d\w]){32}$/", $in_validate_key ) ) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'data_incorrect' ) ); } @@ -875,49 +1204,59 @@ class Register { // Attempt to get the profile of the requesting user //------------------------------------------------------------ - $DB->query("SELECT id, name, validate_key, prev_group, mgroup, email, new_pass FROM ibf_members WHERE id='$in_user_id'"); + $DB->query("SELECT * FROM ibf_members WHERE id=$in_user_id"); - if ( !$DB->get_num_rows() ) + if ( ! $member = $DB->fetch_row() ) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_mem' ) ); } //------------------------------------------------------------ - - $member = $DB->fetch_row(); - + // Get validating info.. //------------------------------------------------------------ - if ( $member['id'] == "" ) - { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_mem' ) ); - } + $DB->query("SELECT * FROM ibf_validating WHERE member_id=$in_user_id"); - //------------------------------------------------------------ - if ( $member['validate_key'] == "") + if ( ! $validate = $DB->fetch_row() ) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_key' ) ); } - else if ($member['validate_key'] != $in_validate_key) + + if (($validate['new_reg'] == 1) && ($ibforums->vars['reg_auth_type'] == "admin")) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_key_not_allow' ) ); + } + + if ($validate['vid'] != $in_validate_key) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_key_wrong' ) ); } else { //------------------------------------------------------------ - // Update the member... + // REGISTER VALIDATE //------------------------------------------------------------ if ($in_type == 'reg') { - - if (empty($member['prev_group'])) + if ( $validate['new_reg'] != 1 ) { - $member['prev_group'] = $ibforums->vars['member_group']; + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_key' ) ); } - $DB->query("UPDATE ibf_members SET mgroup='".$member['prev_group']."', prev_group='', validate_key='', new_pass='' WHERE id='".$member['id']."'"); - + if (empty($validate['real_group'])) + { + $validate['real_group'] = $ibforums->vars['member_group']; + } + + $DB->query("UPDATE ibf_members SET mgroup=".intval($validate['real_group'])." WHERE id=".intval($member['id'])); + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_group_change($member['id'], $validate['real_group']); + } + //------------------------------------------------------------ // Update the stats... //------------------------------------------------------------ @@ -927,50 +1266,113 @@ class Register { "LAST_MEM_NAME='" . $member['name'] . "', ". "LAST_MEM_ID='" . $member['id'] . "'"); - if ($ibforums->vars['new_reg_notify']) { - - $date = $std->get_date( time(), 'LONG' ); - - $this->email->get_template("admin_newuser"); + + $std->my_setcookie("member_id" , $member['id'] , 1); + $std->my_setcookie("pass_hash" , $member['password'], 1); - $this->email->build_message( array( - 'DATE' => $date, - 'MEMBER_NAME' => $member['name'], - ) - ); - - $this->email->subject = "New Registration at ".$ibforums->vars['board_name']; - $this->email->to = $ibforums->vars['email_in']; - $this->email->send_mail(); - } - + //------------------------------------------------------------ + // Remove "dead" validation + //------------------------------------------------------------ + + $DB->query("DELETE FROM ibf_validating WHERE vid='".$validate['vid']."' OR (member_id={$member['id']} AND new_reg=1)"); + + $this->bash_dead_validations(); + + $std->boink_it($ibforums->base_url.'&act=Login&CODE=autologin&fromreg=1'); + } + + //------------------------------------------------------------ + // LOST PASS VALIDATE + //------------------------------------------------------------ + else if ($in_type == 'lostpass') { - - if ($member['new_pass'] == "") + if ($validate['lost_pass'] != 1) { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'lp_no_pass' ) ); } - $DB->query("UPDATE ibf_members SET password='".$member['new_pass']."', prev_group='', validate_key='', new_pass='' WHERE id='".$member['id']."'"); - - } - else if ($in_type == 'newemail') - { - if (empty($member['prev_group'])) + if ( $HTTP_POST_VARS['pass1'] == "" ) { - $member['prev_group'] = $ibforums->vars['member_group']; + $std->Error( array( LEVEL => 1, MSG => 'pass_blank' ) ); } - $DB->query("UPDATE ibf_members SET mgroup='".$member['prev_group']."', prev_group='', validate_key='', new_pass='' WHERE id='".$member['id']."'"); - } + if ( $HTTP_POST_VARS['pass2'] == "" ) + { + $std->Error( array( LEVEL => 1, MSG => 'pass_blank' ) ); + } - $text = $ibforums->lang['done_reg_2']; - $url = 'act=Login&CODE=00'; + $pass_a = trim($ibforums->input['pass1']); + $pass_b = trim($ibforums->input['pass2']); + + if ( strlen($pass_a) < 3 ) + { + $std->Error( array( LEVEL => 1, MSG => 'pass_too_short' ) ); + } + + if ( $pass_a != $pass_b ) + { + $std->Error( array( LEVEL => 1, MSG => 'pass_no_match' ) ); + } + + $new_pass = md5($pass_a); + + $DB->query("UPDATE ibf_members SET password='$new_pass' WHERE id=".intval($member['id'])); + + $std->my_setcookie("member_id" , $member['id'] , 1); + $std->my_setcookie("pass_hash" , $new_pass , 1); + + //------------------------------------------------------------ + // Remove "dead" validation + //------------------------------------------------------------ + + $DB->query("DELETE FROM ibf_validating WHERE vid='".$validate['vid']."' OR (member_id={$member['id']} AND lost_pass=1)"); + + $this->bash_dead_validations(); + + $std->boink_it($ibforums->base_url.'&act=Login&CODE=autologin&frompass=1'); + } + + //------------------------------------------------------------ + // EMAIL ADDY CHANGE + //------------------------------------------------------------ + + else if ($in_type == 'newemail') + { + if ( $validate['email_chg'] != 1 ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_key' ) ); + } + + if (empty($validate['real_group'])) + { + $validate['real_group'] = $ibforums->vars['member_group']; + } + + $DB->query("UPDATE ibf_members SET mgroup=".intval($validate['real_group'])." WHERE id=".intval($member['id'])); + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_group_change($member['id'], $validate['real_group']); + } + + $std->my_setcookie("member_id" , $member['id'] , 1); + $std->my_setcookie("pass_hash" , $member['password'], 1); + + //------------------------------------------------------------ + // Remove "dead" validation + //------------------------------------------------------------ + + $DB->query("DELETE FROM ibf_validating WHERE vid='".$validate['vid']."' OR (member_id={$member['id']} AND email_chg=1)"); + + $this->bash_dead_validations(); + + $std->boink_it($ibforums->base_url.'&act=Login&CODE=autologin&fromemail=1'); + } - $print->redirect_screen( $text, $url ); } } @@ -1000,9 +1402,77 @@ class Register { /*****************************************************/ function show_manual_form($type='reg') { - global $ibforums; + global $ibforums, $std, $DB; + + if ( $type == 'lostpass' ) + { + + $this->output = $this->html->show_lostpass_form(); + + //------------------------------------------------------------ + // Check for input and it's in a valid format. + //------------------------------------------------------------ + + if ( $ibforums->input['uid'] AND $ibforums->input['aid'] ) + { + + $in_user_id = intval(trim(urldecode($ibforums->input['uid']))); + $in_validate_key = trim(urldecode($ibforums->input['aid'])); + $in_type = trim($ibforums->input['type']); + + if ($in_type == "") + { + $in_type = 'reg'; + } + + //------------------------------------------------------------ + + if (! preg_match( "/^(?:[\d\w]){32}$/", $in_validate_key ) ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'data_incorrect' ) ); + } + + //------------------------------------------------------------ + + if (! preg_match( "/^(?:\d){1,}$/", $in_user_id ) ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'data_incorrect' ) ); + } + + //------------------------------------------------------------ + // Attempt to get the profile of the requesting user + //------------------------------------------------------------ + + $DB->query("SELECT id, name, password, email FROM ibf_members WHERE id=$in_user_id"); + + if ( ! $member = $DB->fetch_row() ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_mem' ) ); + } + + //------------------------------------------------------------ + // Get validating info.. + //------------------------------------------------------------ + + $DB->query("SELECT * FROM ibf_validating WHERE member_id=$in_user_id and vid='$in_validate_key' and lost_pass=1"); + + if ( ! $validate = $DB->fetch_row() ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'auth_no_key' ) ); + } + + $this->output = str_replace( "", $this->html->show_lostpass_form_auto($in_validate_key, $in_user_id), $this->output ); + } + else + { + $this->output = str_replace( "", $this->html->show_lostpass_form_manual(), $this->output ); + } + } + else + { + $this->output = $this->html->show_dumb_form($type); + } - $this->output = $this->html->show_dumb_form($type); $this->page_title = $ibforums->lang['activation_form']; $this->nav = array( $ibforums->lang['activation_form'] ); @@ -1010,26 +1480,8 @@ class Register { function show_image() { - global $ibforums, $DB; + global $ibforums, $DB, $std; - // Init array - - $numbers = array( 0 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUDH5hiKsOnmqSPjtT1ZdnnjCUqBQAOw==', - 1 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUjAEWyMqoXIprRkjxtZJWrz3iCBQAOw==', - 2 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUDH5hiKubnpPzRQvoVbvyrDHiWAAAOw==', - 3 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDH5hiKbaHgRyUZtmlPtlfnnMiGUFADs=', - 4 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVjAN5mLDtjFJMRjpj1Rv6v1SHN0IFADs=', - 5 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUhA+Bpxn/DITL1SRjnps63l1M9RQAOw==', - 6 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVjIEYyWwH3lNyrQTbnVh2Tl3N5wQFADs=', - 7 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUhI9pwbztAAwP1napnFnzbYEYWAAAOw==', - 8 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDH5hiKubHgSPWXoxVUxC33FZZCkFADs=', - 9 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDA6hyJabnnISnsnybXdS73hcZlUFADs=', - ); - - if ( $ibforums->input['p'] == "" ) - { - return false; - } if ( $ibforums->input['rc'] == "" ) { @@ -1045,17 +1497,85 @@ class Register { return false; } - $p = intval($ibforums->input['p']) - 1; //substr starts from 0, not 1 :p + //-------------------------------------------- + // Using GD? + //-------------------------------------------- - $this_number = substr( $row['regcode'], $p, 1 ); + if ( $ibforums->vars['bot_antispam'] == 'gd' ) + { + $std->show_gd_img($row['regcode']); + } + else + { - flush(); - header("Content-type: image/gif"); - echo base64_decode($numbers[ $this_number ]); - exit(); + //-------------------------------------------- + // Using normal then, check for "p" + //-------------------------------------------- + + if ( $ibforums->input['p'] == "" ) + { + return false; + } + + $p = intval($ibforums->input['p']) - 1; //substr starts from 0, not 1 :p + + $this_number = substr( $row['regcode'], $p, 1 ); + + $std->show_gif_img($this_number); + } } + + + function bash_dead_validations() + { + global $ibforums, $std, $DB; + + $mids = array(); + $vids = array(); + + // If enabled, remove validating new_reg members & entries from members table + + if ( intval($ibforums->vars['validate_day_prune']) > 0 ) + { + $less_than = time() - $ibforums->vars['validate_day_prune']*86400; + + $DB->query("SELECT v.vid, v.member_id, m.posts + FROM ibf_validating v + LEFT JOIN ibf_members m ON (v.member_id=m.id) + WHERE v.new_reg=1 + AND v.coppa_user <> 1 + AND v.entry_date < $less_than + AND lost_pass <> 1"); + + while( $i = $DB->fetch_row() ) + { + if ( intval($i['posts']) < 1 ) + { + $mids[] = $i['member_id']; + $vids[] = "'".$i['vid']."'"; + } + } + + // Remove non-posted validating members + + if ( count($mids) > 0 ) + { + $DB->query("DELETE FROM ibf_members WHERE id IN(".implode(",",$mids).")"); + $DB->query("DELETE FROM ibf_member_extra WHERE id IN(".implode(",",$mids).")"); + $DB->query("DELETE FROM ibf_pfields_content WHERE member_id IN(".implode(",",$mids).")"); + $DB->query("DELETE FROM ibf_validating WHERE vid IN(".implode(",",$vids).")"); + + if ( USE_MODULES == 1 ) + { + $this->modules->register_class(&$this); + $this->modules->on_delete($mids); + } + } + } + } + } diff --git a/upload/sources/Search.php b/upload/sources/Search.php index 3ce3604a..51d6899c 100644 --- a/upload/sources/Search.php +++ b/upload/sources/Search.php @@ -2,15 +2,17 @@ /* +-------------------------------------------------------------------------- -| Invision Board v1.1 +| Invision Power Board v1.3 Final | ======================================== | by Matthew Mecham -| (c) 2001,2002 Invision Power Services -| http://www.ibforums.com +| (c) 2001 - 2003 Invision Power Services +| http://www.invisionpower.com | ======================================== -| Web: http://www.ibforums.com -| Email: phpboards@ibforums.com -| Licence Info: phpib-licence@ibforums.com +| Web: http://www.invisionboard.com +| Time: Sun, 04 Jan 2004 00:30:16 GMT +| Release: 28e7bfb25f08ac72a789cb1b172fa185 +| Email: matt@invisionpower.com +| Licence Info: http://www.invisionboard.com/?license +--------------------------------------------------------------------------- | | > Searching procedures @@ -19,33 +21,8 @@ | | > Module Version Number: 1.1.0 +-------------------------------------------------------------------------- -| -| MODULE NOTES: -| ------------- -| -| I've been deliberating whether we should implement some kind of WORD ID / -| search logging table for index. -| iB3 PERL had such a feature, but that was to aide the DBM searches, which -| were slow at best. -| The biggest complaint we had was that adding a word ID / search logging table -| effectively doubled the amount of space needed in the mySQL database. I've seen -| this complaint echo'd on the support boards of other forum software. -| The other downside to such a feature would be the overhaul needed to update it -| with new posts/topics and topic movement / deletion. -| -| I figure that people post more than they search, so a full table scan once per -| search request is offset against the CPU to keep the search log tables up to date -| -| I'm going to stick my neck out and go the full table scan route. It's not as effecient -| as a search table would be, but the benefits include no overhead updating it, and a smaller -| overall DB size - which is vital to some people on certain hosts. -| -| This may change if it becomes apparent that it's not very efficient in the long run -+-------------------------------------------------------------------------- */ -// - $idx = new Search; class Search { @@ -68,8 +45,14 @@ class Search { var $end_stamp = ""; var $result_type = "topics"; var $parser = ""; + var $load_lib = 'search_mysql_man'; + var $lib = ""; - function Search() { + var $mysql_version = ""; + var $true_version = ""; + + function Search() + { global $ibforums, $DB, $std, $print; if (! $ibforums->vars['allow_search']) @@ -82,9 +65,48 @@ class Search { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_permission' ) ); } + if ( $read = $std->my_getcookie('topicsread') ) + { + $this->read_array = unserialize(stripslashes($read)); + } + + //--------------------------------------- + // Get the mySQL version. + // Adapted from phpMyAdmin + //--------------------------------------- + + $DB->query("SELECT VERSION() AS version"); + + if ( ! $row = $DB->fetch_row() ) + { + $DB->query("SHOW VARIABLES LIKE 'version'"); + $row = $DB->fetch_row(); + } + + $this->true_version = $row['version']; + + $no_array = explode( '.', preg_replace( "/^(.+?)[-_]?/", "\\1", $row['version']) ); + + $one = (!isset($no_array) || !isset($no_array[0])) ? 3 : $no_array[0]; + $two = (!isset($no_array[1])) ? 21 : $no_array[1]; + $three = (!isset($no_array[2])) ? 0 : $no_array[2]; + + $this->mysql_version = (int)sprintf('%d%02d%02d', $one, $two, intval($three)); + if ($ibforums->input['CODE'] == "") $ibforums->input['CODE'] = '00'; + //-------------------------------------------- + // Sort out the required search library + //-------------------------------------------- + + $method = isset($ibforums->vars['search_sql_method']) ? $ibforums->vars['search_sql_method'] : 'man'; + $sql = isset($ibforums->vars['sql_driver']) ? $ibforums->vars['sql_driver'] : 'mysql'; + + $this->load_lib = 'search_'.strtolower($sql).'_'.$method.'.php'; + + require ( "./sources/lib/".$this->load_lib ); + //-------------------------------------------- // Require the HTML and language modules //-------------------------------------------- @@ -94,7 +116,13 @@ class Search { $this->html = $std->load_template('skin_search'); - $this->base_url = "{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}"; + $this->base_url = $ibforums->base_url; + + //-------------------------------------------- + // Suck in libby + //-------------------------------------------- + + $this->lib = new search_lib(&$this); if (isset($ibforums->input['st']) ) { @@ -132,6 +160,12 @@ class Search { case 'getalluser': $this->get_all_user(); break; + case 'simpleresults': + $this->show_simple_results(); + break; + case 'explain': + $this->show_boolean_explain(); + break; default: $this->show_form(); break; @@ -144,7 +178,20 @@ class Search { } - //--------------------------------- + //----------------------------------------------------- + // Do simple search + //----------------------------------------------------- + + function show_simple_results() + { + global $ibforums, $DB, $std, $print; + + $result = $this->lib->do_simple_search(); + } + + //----------------------------------------------------- + // Get all posts by a member + //----------------------------------------------------- function get_all_user() { global $ibforums, $DB, $std, $HTTP_POST_VARS, $print; @@ -235,16 +282,22 @@ class Search { $DB->query("INSERT INTO ibf_search_results ({$str['FIELD_NAMES']}) VALUES ({$str['FIELD_VALUES']})"); - $print->redirect_screen( $ibforums->lang['search_redirect'] , "act=Search&nav=lv&CODE=show&searchid=$unique_id&search_in=posts&result_type=posts" ); + $print->redirect_screen( $ibforums->lang['search_redirect'] , "act=Search&nav=au&CODE=show&searchid=$unique_id&search_in=posts&result_type=posts" ); exit(); } //--------------------------------- - function get_new_posts() { + function get_new_posts() + { global $ibforums, $DB, $std, $HTTP_POST_VARS, $print; + if ( ! $ibforums->member['id'] ) + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_results' ) ); + } + //------------------------------------ // Do we have flood control enabled? //------------------------------------ @@ -282,7 +335,8 @@ class Search { // the database //------------------------------------------------ - $DB->query("SELECT pid FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND post_date > '".$ibforums->member['last_visit']."'"); + $DB->query("SELECT t.tid FROM ibf_topics t + WHERE t.approved=1 AND t.forum_id IN($forums) AND t.last_post > '".$ibforums->member['last_visit']."'"); $max_hits = $DB->get_num_rows(); @@ -290,7 +344,7 @@ class Search { while ($row = $DB->fetch_row() ) { - $posts .= $row['pid'].","; + $posts .= $row['tid'].","; } $DB->free_result(); @@ -315,8 +369,8 @@ class Search { $str = $DB->compile_db_insert_string( array ( 'id' => $unique_id, 'search_date'=> time(), - 'post_id' => $posts, - 'post_max' => $max_hits, + 'topic_id' => $posts, + 'topic_max' => $max_hits, 'sort_key' => $this->sort_key, 'sort_order' => $this->sort_order, 'member_id' => $ibforums->member['id'], @@ -325,7 +379,7 @@ class Search { $DB->query("INSERT INTO ibf_search_results ({$str['FIELD_NAMES']}) VALUES ({$str['FIELD_VALUES']})"); - $print->redirect_screen( $ibforums->lang['search_redirect'] , "act=Search&nav=lv&CODE=show&searchid=$unique_id&search_in=posts&result_type=posts" ); + $print->redirect_screen( $ibforums->lang['search_redirect'] , "act=Search&nav=lv&CODE=show&searchid=$unique_id&search_in=topics&result_type=topics" ); exit(); } @@ -333,11 +387,10 @@ class Search { //-------------------------------------------------------- - function get_last_ten() { + function get_last_ten() + { global $ibforums, $DB, $std, $HTTP_POST_VARS, $print; - - $ibforums->input['forums'] = 'all'; $forums = $this->get_searchable_forums(); @@ -375,6 +428,12 @@ class Search { { $row['keywords'] = $url_words; $row['post_date'] = $std->get_date( $row['post_date'],'LONG' ); + + if ( $ibforums->vars['post_wordwrap'] > 0 ) + { + $row['post'] = $this->parser->my_wordwrap( $row['post'], $ibforums->vars['post_wordwrap']) ; + } + $this->output .= $this->html->RenderPostRow( $this->parse_entry($row, 1) ); } @@ -395,7 +454,8 @@ class Search { //-------------------------------------------------------- - function get_replies() { + function get_replies() + { global $ibforums, $DB, $std, $HTTP_POST_VARS, $print; //------------------------------------ @@ -435,7 +495,8 @@ class Search { // the database //------------------------------------------------ - $DB->query("SELECT tid FROM ibf_topics WHERE starter_id='".$ibforums->member['id']."' AND last_post > ".$ibforums->member['last_visit']." AND forum_id IN($forums) AND approved=1"); + $DB->query("SELECT tid FROM ibf_topics WHERE starter_id='".$ibforums->member['id']."' + AND last_post > ".$ibforums->member['last_visit']." AND forum_id IN($forums) AND approved=1"); $max_hits = $DB->get_num_rows(); @@ -482,83 +543,196 @@ class Search { exit(); } + + //------------------------------------------------ + // Show pop-up window + //------------------------------------------------ + + function show_boolean_explain() + { + global $DB, $std, $ibforums, $print; + + $print->pop_up_window( $ibforums->lang['be_link'], $this->html->boolean_explain_page() ); + + } + + //------------------------------------------------ + // Show main form + //------------------------------------------------ - function show_form() { + function show_form() + { global $DB, $std, $ibforums; $last_cat_id = -1; $the_hiddens = ""; - $DB->query("SELECT f.id as forum_id, f.name as forum_name, f.position, f.read_perms, c.id as cat_id, c.name as cat_name from ibf_forums f, ibf_categories c where c.id=f.category ORDER BY c.position, f.position"); + $DB->query("SELECT f.id as forum_id, f.parent_id, f.subwrap, f.sub_can_post, f.name as forum_name, f.position, f.read_perms, c.id as cat_id, c.name as cat_name + FROM ibf_forums f + LEFT JOIN ibf_categories c ON (c.id=f.category) + WHERE c.state <> 0 + ORDER BY c.position, f.position"); - $forums = "\n" - ."\n"; } else { - continue; + if ( $std->check_perms($i['read_perms']) == TRUE ) + { + if ($i['parent_id'] > 0) + { + $children[ $i['parent_id'] ][] = "\n"; + } + else + { + $forum_keys[ $i['cat_id'] ][$i['forum_id']] = "\n"; + } + } + else + { + continue; + } + } + + if ($last_cat_id != $i['cat_id']) + { + $cat_keys[ $i['cat_id'] ] = "\n"; + $last_cat_id = $i['cat_id']; + } + + unset($is_sub); + unset($sub_css); + } + + foreach($cat_keys as $cat_id => $cat_text) + { + if ( is_array( $forum_keys[$cat_id] ) && count( $forum_keys[$cat_id] ) > 0 ) + { + $the_html .= $cat_text; + + foreach($forum_keys[$cat_id] as $idx => $forum_text) + { + if ( $subwrap[$idx] != 1 ) + { + $the_html .= $forum_text; + } + else + { + if (count($children[$idx]) > 0) + { + $the_html .= $forum_text; + + foreach($children[$idx] as $ii => $tt) + { + $the_html .= $tt; + } + } + } + } } } - $forums .= ""; - $cats .= ""; + $init_sel = ""; - $this->output = $this->html->Form($forums, $cats); + if ( $ibforums->input['f'] == "" ) + { + $init_sel = ' selected="selected"'; + } + + $forums = ""; + + if ( $ibforums->input['mode'] == 'simple' ) + { + if ( $ibforums->vars['search_sql_method'] == 'ftext' ) + { + $this->output = $this->html->simple_form($forums); + } + else + { + $this->output = $this->html->Form($forums); + } + } + else if ( $ibforums->input['mode'] == 'adv' ) + { + $this->output = $this->html->Form($forums); + + if ( $ibforums->vars['search_sql_method'] == 'ftext' ) + { + $this->output = str_replace( "", $this->html->form_simple_button(), $this->output ); + } + } + else + { + // No mode specified.. + + if ( $ibforums->vars['search_default_method'] == 'simple' ) + { + if ( $ibforums->vars['search_sql_method'] == 'ftext' ) + { + $this->output = $this->html->simple_form($forums); + } + else + { + $this->output = $this->html->Form($forums); + } + } + else + { + // Default.. + + $this->output = $this->html->Form($forums); + + if ( $ibforums->vars['search_sql_method'] == 'ftext' ) + { + $this->output = str_replace( "", $this->html->form_simple_button(), $this->output ); + } + } + } + + if ( $this->mysql_version >= 40010 AND $ibforums->vars['search_sql_method'] == 'ftext' ) + { + $this->output = str_replace( "", $this->html->boolean_explain_link(), $this->output ); + } $this->page_title = $ibforums->lang['search_title']; $this->nav = array( $ibforums->lang['search_form'] ); } - /******************************************************/ - // - // Searching is split into two queries. One query to - // regexp the matches, and pull the topic ID's, the other - // to pull the data from the topic_id. As topic_id's are indexed - // the second query shouldn't be too CPU intensive. - // - // To find the maximum records that match our criteria to - // generate the page span, we cap all searches off to '200' - // results. We then use mysql_num_rows to return the actual - // number of rows matched, loop over and push the info to - // our $topic var until we have 25 results, which is the max. - // number per page. - // - // The other alternative would be to SELECT COUNT(*) then - // re-query with a 25 LIMIT cap, this of course would be - // a heavy drain on the SQL engine. - /******************************************************/ - function do_search() { + function do_search() + { global $ibforums, $DB, $std, $HTTP_POST_VARS, $print; //------------------------------------ @@ -579,279 +753,17 @@ class Search { } } - //------------------------------------ - // Do we have any input? - //------------------------------------ - - - if ($ibforums->input['namesearch'] != "") - { - $name_filter = $this->filter_keywords($ibforums->input['namesearch']); - } - - if ($ibforums->input['useridsearch'] != "") - { - $keywords = $this->filter_keywords($ibforums->input['useridsearch']); - $this->search_type = 'userid'; - } - else - { - $keywords = $this->filter_keywords($ibforums->input['keywords']); - $this->search_type = 'posts'; - } - - //------------------------------------ - - $check_keywords = trim($keywords); - - $check_keywords = str_replace( "%", "", $check_keywords ); - - if ( (! $check_keywords) or ($check_keywords == "") or (! isset($check_keywords) ) ) - { - if ($ibforums->input['joinname'] == 1) - { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_words') ); - } - } - - //------------------------------------ - - if ($ibforums->input['search_in'] == 'titles') - { - $this->search_in = 'titles'; - } - - //------------------------------------ - - $forums = $this->get_searchable_forums(); - - //------------------------------------ - // Do we have any forums to search in? - //------------------------------------ - - if ($forums == "") - { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_forum') ); - } - - //------------------------------------ - - foreach( array( 'last_post', 'posts', 'starter_name', 'forum_id' ) as $v ) - { - if ($ibforums->input['sort_key'] == $v) - { - $this->sort_key = $v; - } - } - - //------------------------------------ - - foreach ( array( 1, 7, 30, 365, 0 ) as $v ) - { - if ($ibforums->input['prune'] == $v) - { - $this->prune = $v; - } - } - - //------------------------------------ - - if ($ibforums->input['sort_order'] == 'asc') - { - $this->sort_order = 'asc'; - } - - //------------------------------------ - - if ($ibforums->input['result_type'] == 'posts') - { - $this->result_type = 'posts'; - } - - if ( $ibforums->vars['min_search_word'] < 1 ) - { - $ibforums->vars['min_search_word'] = 4; - } - - //------------------------------------ - // Add on the prune days - //------------------------------------ - - if ($this->prune > 0) - { - $gt_lt = $ibforums->input['prune_type'] == 'older' ? "<" : ">"; - $time = time() - ($ibforums->input['prune'] * 86400); - - $topics_datecut = "t.last_post $gt_lt $time AND"; - $posts_datecut = "p.post_date $gt_lt $time AND"; - } - - // Is this a membername search? - - $name_filter = trim( $name_filter ); - $member_string = ""; - - if ( $name_filter != "" ) - { - //------------------------------------------------------------------ - // Get all the possible matches for the supplied name from the DB - //------------------------------------------------------------------ - - if ($ibforums->input['exactname'] == 1) - { - $sql_query = "SELECT id from ibf_members WHERE lower(name)='".$name_filter."'"; - } - else - { - $sql_query = "SELECT id from ibf_members WHERE name like '%".$name_filter."%'"; - } - - - $DB->query( $sql_query ); - - - while ($row = $DB->fetch_row()) - { - $member_string .= "'".$row['id']."',"; - } - - $member_string = preg_replace( "/,$/", "", $member_string ); - - // Error out of we matched no members - - if ($member_string == "") - { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_name_search_results') ); - } - - $posts_name = " AND p.author_id IN ($member_string)"; - $topics_name = " AND t.starter_id IN ($member_string)"; - - } - - if ($ibforums->input['joinname'] == 1) - { - - if (preg_match( "/ and|or /", $keywords) ) - { - preg_match_all( "/(^|and|or)\s{1,}(\S+?)\s{1,}/", $keywords, $matches ); - - $title_like = "("; - $post_like = "("; - - for ($i = 0 ; $i < count($matches[0]) ; $i++ ) - { - $boolean = $matches[1][$i]; - $word = trim($matches[2][$i]); - - if (strlen($word) < $ibforums->vars['min_search_word']) - { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'search_word_short', 'EXTRA' => $ibforums->vars['min_search_word']) ); - } - - if ($boolean) - { - $boolean = " $boolean"; - } - - $title_like .= "$boolean LOWER(t.title) LIKE '%$word%' "; - $post_like .= "$boolean LOWER(p.post) LIKE '%$word%' "; - } - - $title_like .= ")"; - $post_like .= ")"; - - } - else - { - - if (strlen(trim($keywords)) < $ibforums->vars['min_search_word']) - { - $std->Error( array( 'LEVEL' => 1, 'MSG' => 'search_word_short', 'EXTRA' => $ibforums->vars['min_search_word']) ); - } - - $title_like = " LOWER(t.title) LIKE '%".trim($keywords)."%' "; - $post_like = " LOWER(p.post) LIKE '%".trim($keywords)."%' "; - } - } - - //$posts_datecut $topics_datecut $post_like $title_like $posts_name $topics_name - - $unique_id = md5(uniqid(microtime(),1)); - - if ($ibforums->input['joinname'] == 1) - { - $topics_query = "SELECT t.tid - FROM ibf_topics t - WHERE $topics_datecut t.forum_id IN ($forums) - $topics_name AND t.approved=1 AND ($title_like)"; - - - $posts_query = "SELECT p.pid ". - "FROM ibf_posts p ". - "WHERE $posts_datecut p.forum_id IN ($forums)". - " AND p.queued <> 1". - " $posts_name AND ($post_like)"; - } - else - { - $topics_query = "SELECT t.tid - FROM ibf_topics t - WHERE $topics_datecut t.forum_id IN ($forums) - $topics_name"; - - - $posts_query = "SELECT p.pid ". - "FROM ibf_posts p ". - "WHERE $posts_datecut p.forum_id IN ($forums)". - " AND p.queued <> 1". - " $posts_name"; - } - //------------------------------------------------ - // Get the topic ID's to serialize and store into - // the database + // init main search //------------------------------------------------ - $topics = ""; - $posts = ""; - - //------------------------------------ - - $DB->query($topics_query); - - $topic_max_hits = $DB->get_num_rows(); - - while ($row = $DB->fetch_row() ) - { - $topics .= $row['tid'].","; - } - - $DB->free_result(); - - //------------------------------------ - - $DB->query($posts_query); - - $post_max_hits = $DB->get_num_rows(); - - while ($row = $DB->fetch_row() ) - { - $posts .= $row['pid'].","; - } - - $DB->free_result(); - - //------------------------------------ - - $topics = preg_replace( "/,$/", "", $topics ); - $posts = preg_replace( "/,$/", "", $posts ); + $result = $this->lib->do_main_search(); //------------------------------------------------ // Do we have any results? //------------------------------------------------ - if ($topics == "" and $posts == "") + if ($result['topic_id'] == "" and $result['post_id'] == "") { $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_results' ) ); } @@ -865,21 +777,20 @@ class Search { $str = $DB->compile_db_insert_string( array ( 'id' => $unique_id, 'search_date'=> time(), - 'topic_id' => $topics, - 'topic_max' => $topic_max_hits, + 'topic_id' => $result['topic_id'], + 'topic_max' => $result['topic_max'], 'sort_key' => $this->sort_key, 'sort_order' => $this->sort_order, 'member_id' => $ibforums->member['id'], 'ip_address' => $ibforums->input['IP_ADDRESS'], - 'post_id' => $posts, - 'post_max' => $post_max_hits, - ) ); + 'post_id' => $result['post_id'], + 'post_max' => $result['post_max'], + ) ); $DB->query("INSERT INTO ibf_search_results ({$str['FIELD_NAMES']}) VALUES ({$str['FIELD_VALUES']})"); - $print->redirect_screen( $ibforums->lang['search_redirect'] , "act=Search&CODE=show&searchid=$unique_id&search_in=".$this->search_in."&result_type=".$this->result_type."&highlite=".urlencode(trim($keywords)) ); - exit(); - //&debug=1 + $print->redirect_screen( $ibforums->lang['search_redirect'] , "act=Search&CODE=show&searchid=$unique_id&search_in=".$this->search_in."&result_type=".$this->result_type."&highlite=".urlencode(trim($result['keywords'])) ); + } /******************************************************/ @@ -887,14 +798,10 @@ class Search { // Shows the results of the search /******************************************************/ - function show_results() { + function show_results() + { global $ibforums, $DB, $std, $HTTP_POST_VARS; - if ( $read = $std->my_getcookie('topicsread') ) - { - $this->read_array = unserialize(stripslashes($read)); - } - $this->result_type = $ibforums->input['result_type']; $this->search_in = $ibforums->input['search_in']; @@ -975,7 +882,7 @@ class Search { $DB->query("SELECT t.*, f.id as forum_id, f.name as forum_name FROM ibf_topics t, ibf_forums f WHERE t.tid IN(0{$topics}-1) and f.id=t.forum_id - ORDER BY ".$this->sort_key." ".$this->sort_order." + ORDER BY t.pinned DESC, ".$this->sort_key." ".$this->sort_order." LIMIT ".$this->first.",25"); } else @@ -1006,18 +913,25 @@ class Search { FROM ibf_topics t LEFT JOIN ibf_forums f ON (f.id=t.forum_id) WHERE t.tid IN(0{$topics}0) - ORDER BY t.".$this->sort_key." ".$this->sort_order." + ORDER BY t.pinned DESC, t.".$this->sort_key." ".$this->sort_order." LIMIT ".$this->first.",25"); } //-------------------------------------------- - while ( $row = $DB->fetch_row() ) + if ( $DB->get_num_rows() ) { - $row['keywords'] = $url_words; - $this->output .= $this->html->RenderRow( $this->parse_entry($row) ); - + while ( $row = $DB->fetch_row() ) + { + $row['keywords'] = $url_words; + $this->output .= $this->html->RenderRow( $this->parse_entry($row) ); + + } + } + else + { + $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_results' ) ); } //-------------------------------------------- @@ -1041,7 +955,7 @@ class Search { LEFT JOIN ibf_posts p ON (t.tid=p.topic_id AND p.new_topic=1) LEFT JOIN ibf_forums f ON (f.id=t.forum_id) WHERE t.tid IN(0{$topics}-1) - ORDER BY ".$this->sort_key." ".$this->sort_order." + ORDER BY p.post_date DESC LIMIT ".$this->first.",25"); } else @@ -1064,24 +978,54 @@ class Search { $this->output .= $this->start_page($post_max_hits, 1); - $DB->query("SELECT t.*, p.pid, p.author_id, p.author_name, p.post_date, p.post, f.id as forum_id, f.name as forum_name + $DB->query("SELECT t.*, p.pid, p.author_id, p.author_name, p.post_date, p.post, f.id as forum_id, f.name as forum_name, f.use_html, g.g_dohtml FROM ibf_posts p LEFT JOIN ibf_topics t ON (t.tid=p.topic_id) LEFT JOIN ibf_forums f ON (f.id=p.forum_id) + LEFT JOIN ibf_members m ON (m.id=p.author_id) + LEFT JOIN ibf_groups g ON (m.mgroup=g.g_id) WHERE p.pid IN(0{$posts}0) - ORDER BY ".$this->sort_key." ".$this->sort_order." + ORDER BY p.post_date DESC LIMIT ".$this->first.",25"); } while ( $row = $DB->fetch_row() ) { - $row['keywords'] = $url_words; + $row['keywords'] = $url_words; $row['post_date'] = $std->get_date( $row['post_date'],'LONG' ); + + //-------------------------------------------------------------- + // Parse HTML tag on the fly + //-------------------------------------------------------------- + + if ( $row['use_html'] == 1 ) + { + // So far, so good.. + + if ( stristr( $row['post'], '[dohtml]' ) ) + { + // [doHTML] tag found.. + + $parse = ($row['use_html'] AND $row['g_dohtml']) ? 1 : 0; + + $row['post'] = $this->parser->post_db_parse($row['post'], $parse ); + } + } + + //-------------------------------------------------------------- + // Do word wrap? + //-------------------------------------------------------------- + + if ( $ibforums->vars['post_wordwrap'] > 0 ) + { + $row['post'] = $this->parser->my_wordwrap( $row['post'], $ibforums->vars['post_wordwrap']) ; + } + $this->output .= $this->html->RenderPostRow( $this->parse_entry($row, 1) ); } - $this->output .= $this->html->end_as_post(array( 'SHOW_PAGES' => $links )); + $this->output .= $this->html->end_as_post(array( 'SHOW_PAGES' => $this->links )); } $this->page_title = $ibforums->lang['search_results']; @@ -1094,6 +1038,10 @@ class Search { { $this->nav = array( $ibforums->lang['nav_lt'] ); } + else if ( $ibforums->input['nav'] == 'au' ) + { + $this->nav = array( $ibforums->lang['nav_au'] ); + } else { $this->nav = array( "{$ibforums->lang['search_form']}", $ibforums->lang['search_title'] ); @@ -1106,12 +1054,14 @@ class Search { { global $ibforums, $DB, $std; + $url_words = $this->convert_highlite_words($ibforums->input['highlite']); + $this->links = $std->build_pagelinks( array( TOTAL_POSS => $amount, - PER_PAGE => 20, + PER_PAGE => 25, CUR_ST_VAL => $this->first, L_SINGLE => "", L_MULTI => $ibforums->lang['search_pages'], - BASE_URL => $this->base_url."&act=Search&nav=".$ibforums->input['nav']."&CODE=show&searchid=".$this->unique_id."&search_in=".$this->search_in."&result_type=".$this->result_type."&hl=".$url_words, + BASE_URL => $this->base_url."act=Search&nav=".$ibforums->input['nav']."&CODE=show&searchid=".$this->unique_id."&search_in=".$this->search_in."&result_type=".$this->result_type."&hl=".$url_words, ) ); @@ -1186,8 +1136,7 @@ class Search { // Synchronise our input data //------------------------------------ - $ibforums->input['cat_forum'] = 'cat'; - $ibforums->input['cats'] = 'all'; + $ibforums->input['forums'] = 'all'; $forums = $this->get_searchable_forums(); @@ -1203,9 +1152,10 @@ class Search { $query = "SELECT DISTINCT(t.tid) FROM ibf_posts p - LEFT JOIN ibf_topics t ON (p.topic_id=t.tid) + LEFT JOIN ibf_topics t ON ( t.approved=1 and p.topic_id=t.tid) WHERE p.post_date BETWEEN ".$this->st_stamp." AND ".$this->end_stamp." AND p.forum_id IN($forums) + AND p.queued <> 1 ORDER BY t.last_post DESC LIMIT 0,200"; @@ -1272,6 +1222,8 @@ class Search { $t_time = time() - (60*60*24); + $this->first = intval($ibforums->input['st']) != "" ? intval($ibforums->input['st']) : 0; + $DB->query("DELETE FROM ibf_search_results WHERE search_date < '$t_time'"); $unique_id = $ibforums->input['searchid']; @@ -1279,8 +1231,8 @@ class Search { $DB->query("SELECT * FROM ibf_search_results WHERE id='$unique_id'"); $sr = $DB->fetch_row(); - $topics = $sr['topics']; - $max_hits = $sr['max_hits']; + $topics = $sr['topic_id']; + $max_hits = $sr['topic_max']; $this->sort_order = $sr['sort_order']; $this->sort_key = $sr['sort_key']; @@ -1294,13 +1246,10 @@ class Search { // Our variables are centralised, lets get the array slice depending on our $this->first // position. - // How cool is this? ;) - $topic_string = implode( "," , array_slice( explode(",",$topics), $this->first, 25 ) ); - // That splits the string into an array by a comma, gets a slice depending on our limit, - // say 0 to 25 and then joins the array into a string seperated by commas, all in one - // line :D + $topic_string = str_replace( " " , "", $topic_string ); + $topic_string = preg_replace( "/,$/", "", $topic_string ); $url_words = urlencode(trim($keywords)); @@ -1308,8 +1257,8 @@ class Search { PER_PAGE => 25, CUR_ST_VAL => $this->first, L_SINGLE => "", - L_MULTI => "", - BASE_URL => $this->base_url."&act=Search&CODE=getactive&searchid=$unique_id", + L_MULTI => $ibforums->lang['search_pages'], + BASE_URL => $this->base_url."act=Search&CODE=getactive&searchid=$unique_id", ) ); @@ -1322,7 +1271,10 @@ class Search { $this->output = preg_replace( "/(