echoPHP MultiForums Software version 3 Documentation

Thank you for your purchase of echoPHP phpBB Multi Forums Software! Below you will find installation instructions, and modifications that must be made to the phpBB software to be compatible with phpBB-MF.

Table of Contents
  1. Features
  2. Requirements
  3. The limit of the software
  4. Installation Instructions
  5. Upgrade echoPHP MF v1 to echoPHP MF v3 Instructions
  6. Upgrade echoPHP MF v2 to echoPHP MF v3 Instructions
  7. Convert SebFlipper to echoPHP MF v3 Instructions
  8. Manual Integration (for phpBB3)
  9. Manual Integration (for phpBB2)
  10. Files, Folders and Tables Format
  11. Using Multiple Databases
  12. Using Multiple Domains
  13. Using Global Language
  14. echoPHP MF constants and variables at run time
  15. .htaccess file
  16. SECURITY
  17. Other Considerations
  18. FAQs
  19. echoPHP phpBB MultiForums Software
  20. Credits


Features
- Support lastest phpBB2 and lastest phpBB3.
- Ajax integrated.
- Support Multiple Add-on domains.
- Support Multiple databases.
- Support Keyword URLs.
- Support Meta tags Controller.
- Support Google Adsense Color Match.
- Support Guest Sessions in URLs removal (very useful for SEO).
- Subdomain for forums: sub.domain.com, sub2.sub.domain.com.
- Create phpBB forums function with AJAX integrated.
- Support 2 payment gateways: PalPal, 2Checkout.
- Ability to control signup page: - Users are able to pay to upgrade their forums to: - Ability to fetch statistics for homepage or MF pages: Site Statistics (Total Hosted Forums, Total Members, Total Posts, Total Domains, Total Categories), Top Forums, Newest Forums, Random Forums, Available Domains, Available Categories. You can also control number of results for those stats, for instance: Top 5 Forums or Top 10 Forums.
- Board Directory: ability to disable or enable Keyword URLs, support Forum Filter (sort by: Forum Name, Board Title, Signup Date, Members, Posts), display signup date, posts, members of each forum.
- TOS: easy to edit TOS via Admin area with WYSIWYG editor.
- Upgrade Forum: support 2 payment gateways: Paypal and 2Checkout.
- Ability to control the appearance of upgrade link, upgrade transactions in forum admin area.
- Ability to control the appearance of Admin News in forum admin area.
- Ability to disallow/allow forum admins change their forum logos, upgrade their forums, manage their adfree impressions (if purchased).
- Ability to limit size of forum logo, allowed file types?
- Ability to limit number of posts users can get their forum backup (if purchased) to avoid server high load.
- Ability to enable or disable Google Ads Color Match.
- Ability to enable or disalbe ad between posts, ad between posts for registered users.
- Ability to setup multiple ads between posts.
- Ability to enable or disable meta tags, setup default meta tags for forums.
- Ability to setup meta tags for MF pages (homepage, signup page, board directory).
- Ability to force root website as homepage.
- Ability to enable or disable URL Rewriting.
- Ability to force global meta tags for all forums and MF pages.
- Ability to suspend/unsuspend all forums.
- Ability to enable/disable WYSIWYG editor for MF admin area.
- Abitity to take admin of forums.
- Ability to pre-define options for forum pruning: number of days without admin login/new posts/signup activation.
- Ability to set default bottom copyright. Don't confuse bottom ads of Ads Management page, it just for ads.
- Ability to enable/disable IP Banning.
- Abitlity to ban a single IP or a range of IPs.
- Ability to set default logo for all forums.
- Ability to Manage Domains, Databases, Categories, Ads (at top of forums, at bottom of forums, at middle posts), Admin News, Payment Gateways, Upgrades, Orders, Email Templates.
- Ability to setup colors for Google Ads Color Match function, echoPHP MF will match all google ads color on forums with the colors you setup.
- Ability to email to forum admin (for all, active forums, suspended forums, pending forums).
- Ability to setup default invoice prefix for upgrades.
- Ability to setup currency, three-letter currency abbreviation.
- Ability to enable/disable forum upgrade.
- Ability to run MySQL query for all forums of each database. This is useful for forums upgrade.
- Ability to search and filter forums and pending forums.
- Ability to manage each forum: delete, suspend/unsuspend, enable/disable ads, download database backup, take admin account, put forum in disable status, edit admin email, change category, change database, grant adfree - impressions, edit forum meta tags, rename forum or change forum domain (ex: boardname.domain.com to boardname2.domain.com or boardname.domain.com to boardname.domain2.com), email forum admin.
- Ability to manage multiple forums: enable/disable ads, suspend/unsuspend forums, delete forums.
- Ability to manage multiple pending forums: aprove forums, delete forums.
- Abitity to search illegal terms in forum description, posts of forums.
- Ability to prune inactive forums, pending forums.
- Ability to set default MF admin language.
- Ability to force a language as global language for all language packs when you are unable to translate a language to other languages for mods.
- Force Guests Session Removal in URLs.
- Force subSilver template as Global Admin Template.
- Force admin templates of echoPHP admin page as Global Admin Template in forum admin area.
- Force correct phpBB configs for all forums (server_name, server_port, script_path, cookie_name, cookie_path, cookie_domain, cookie_secure, avatar_path, avatar_gallery_path, smilies_path, smtp_delivery, smtp_host, smtp_username, smtp_password) when a page is loaded or forum admins save phpBB configs via phpBB Admin Area. This is very useful for forums has incorrect configs, they will work properly now.
- Able to change homepage and other MF pages (board_directory.php, signup.php, etc), the software is using Smarty Template Engine.
- Just edit overall_header.tpl file to allow forum admins change their forum logos.
- Support overall_header.tpl files of Sebflipper, they works fine under echoPHP MF, you don't need to edit them follow echoPHP overall_header.tpl format.


Need more answers? Refer to FAQs section.

Need more features for your echoPHP MF? Request new features at http://www.echophp.com/forums/phpbb-multiforums-feature-requests-vf4.html. Notice: A feature just will be supported when it's useful and we are able, not all feature requests will be support.


Requirements
- Operating System: Linux based or Windows.
- Web server: Apache HTTP Server 1.3 or higher.
- Apache Modules: mod_rewrite (*).
- Script Engine: PHP 4.3.3 or higher.
- PHP Libraries: MySQL, PCRE, XML, GD (*), Imagemagic (*), Zlib Compression (*), Remote FTP (*), iconv (*), mbstring (*)
- Database server: MySQL 4.1.2 or higher.
- Databases: 1 database but should be unlimited.
- Hosting Account Access: ability to park/point domains (*).
- Server access: Ability to edit (or have edited for you) apache config file httpd.conf to make wildcard entry.
- DNS access: Ability to edit (or have edited for you) DNS entry of your domains to make wildcard dns entry.
***** Requirements with (*) are optional requirements.
***** Because echoPHP MF only works on subdomains so it requires Server access and DNS access to make wildcard entries. If you don't have those accesses, please ask your hosting provider to have them edited.

We offer a free script that helps you detect your server configuration to see our script can run on your system or not. Download it here.


The limit of the software
- Does not work on subfolder.
- Does not work for Multiple MySQL Servers (only works for a single local MySQL Server or a Remote MySQL Server).
- Does not work for Multiple Web Servers.


Installation Instructions
1. Create a wildcard subdomains for your domain. If you do not have root access to the server you're hosted on you should ask your host to do this for you; most will. The wildcard of your domain entry in apache config file should look something similar to this:

ServerAlias www.domain.com domain.com *.domain.com

You will also need to add an A entry to the domain's DNS zone. Again, if you do not have the capability to do this yourself you should ask your host. The A entry should look something similar to this:

*.domain.com. A 14400 [SERVER IP]

This first step is very important, if it's not done, you can not use your MF, all forums can not be accessed. If you can not do it or don't know how to do it exactly, contact to your hosting provider.

Instructions to setup wildcard subdomains for popular hosting control panels (on Linux based systems): If you have root access to the server do it yourself, if not contact to your hosting provider, follow these instructions below.

2. Log into your control panel where your domain is hosted and create a database (preferably 2) and a database user, and make sure the user has rights to both databases. If you don't know how to do this, please ask your host for assistance.

3. You will notice 3 zip files in the package you downloaded. One is phpBB2 and second is phpBB3, modified to work with echoPHP MF, and the other holds the files for echoPHP MF itself.  Upload all files from the phpBB2.zip or phpBB3.zip archive first, maintaining directory structure. All files and folders in phpBB2.zip or phpBB3.zip must be uploaded into the root web folder of your domain so you can access to search.php via web browser, for instance: http://www.domain.com/search.php (you may be redirected or get errors but don't worry, just a test for everything uploaded correctly).

4. Upload all files from your echoPHP MF download in phpBB MF.zip, maintaining the directory structure. All files and folders in phpBB MF.zip must be uploaded into the root web folder of your domain so you can access to home.php via web browser, for instance: http://www.domain/home.php (you may be redirected or get errors but don't worry, just a test for everything uploaded correctly).

5. Navigate to the http://www.yourdomain.com/mf_install/ and enter the requested information. The installer will help you install your MF step by step. Remember to following its instructions, do not skip any steps.

6. Go to MF admin area (http://www.yourdomain.com/mf_admin/) and begin configuring your settings.

7. Setup Cron Job: In MF admin area, go to Cron Jobs -> choose a command to setup a cron job to have system stats updated and backups generated.

8. Rename htaccess.txt to .htaccess if your server supports, read this section for more information.


Upgrade echoPHP MF v1 to echoPHP MF v3 Instructions
Notice: The echoPHP MF version 3 has been re-designed since version 2, it has many changes from the version 1. It requires a full upgrade for full functions, we do not provide a patch for this upgrade. All templates, files, folders, and main tables are changed, you have to re-design your home page, signup page, etc.

Before upgrading your MF, check your server configuration, click here to download server configuration detector. If your server isn't compatible with echoPHP MF v3, make your server compatible with v3 first. Because you can't downgrade your MF.


1. Read Upgrade FAQs first:
  1. What will the upgrade script do?
    - Upgrade main MF tables.
    - Convert forum keywords, forum description, forum abstract of Forum Meta Tags MOD or Advance Meta Tags MOD to echoPHP MF format if you installed.
    - Convert logo folders, avatar folders and tables of forums to new format.
  2. What will you do?
    - Backup all files and folders (entire of root web folder) of all domains.
    - Backup all MF databases.
    - Delete files of the version 1.
    - Upload new files of the version 3.
    - Run the upgrade script.
    - Convert your current web interface of home.php and other pages: terms.php, unavailable.php, signup.php, etc to new template format of Smarty Template Engine.
  3. How long will the upgrade take?
    - Sorry, i can't tell you exactly how long it will take. It bases on how many forums you are hosting, your server power, your server load, etc.
  4. When i should upgrade my forums?
    - As soon as possible to get many security bug fixes and new features, but you should do it when your server is not busy and is loading fastest to prevent server issues during the ugprade.
  5. Does the upgrade script not upgrade any tables?
    - Yes, it does. The upgarde script will not upgrade tables: mf_phpbb_paypal_rec_trans, mf_phpbb_paypal_trans, mf_phpbb_premium_settings. These tables are not compatible with echoPHP MF version 2 so they will not be upgraded.
  6. Can i start the upgrade without files and all MF databases backup?
    - Yes, you can. But it will be started at your own risk. Server issues, your computer or browser issues and internet connection issues can terminate the upgrade then your forums will be corrupted or lost all data. We will not respond to any issues relate to your MF if you don't have files and all MF databases backup.
  7. Main MF domain? What's it?
    - That's the domain you registered for your license key.
    - For example: your license record:
         + License Key: xxxxxxxxxx
         + Valid Registered Host(s): myphpbbmf.com,www.myphpbb.com
         + Valid Registered IP(s): xxx.xxx.xxx.xxx
      -> Then the main MF domains are myphpbbmf.com and www.myphpbbmf.com. They are also the domains that you will access to MF admin area from (http://myphpbbmf.com/mf_admin/ or http://www.myphpbbmf.com/mf_admin/). If you try to access to MF admin area from another parked domains you will get invalid license redirection to http://www.echophp.com.
  8. I'm using multiple domains, how about non-main MF domains after the upgrade?
    - The upgrade script will do almost of necessary works so after the upgrade, you have to terminate all hosting account of non-main MF domains then park them into the main MF domain.
  9. Have more questions?
    - Please refer to FAQ section (RECOMMENDED).
2. Backup all MF databases. If you don't do it, you start the upgrade at your own risk.

3. Backup all MF files (include MF files and phpBB files, avatars, logos, images, etc). These should be backup because you will need to have it for reference when you run the upgrade script and convert templates to new template format.

4. Delete MF files:
  1. Ads2.template.php
  2. Ads.template.php
  3. board_backup.php
  4. board_directory.php
  5. home.php
  6. mf_info.php
  7. mf_Stats.php
  8. prune.php
  9. setup_forum.php
  10. signup.php
  11. step2.php
  12. terms.php
  13. unavailable.php
  14. upgrade.php
  15. key.php (if it exists)
  16. /admin/mf_backup_db.php
  17. /admin/mf_integrate.php
  18. /admin/mf_logo.php
  19. /admin/mooyiig_xs_cache.php
  20. /admin/mooyiig_xs_chmod.php
  21. /admin/mooyiig_xs_clone.php
  22. /admin/mooyiig_xs_config.php
  23. /admin/mooyiig_xs_download.php
  24. /admin/mooyiig_xs_edit.php
  25. /admin/mooyiig_xs_export.php
  26. /admin/mooyiig_xs_export_data.php
  27. /admin/mooyiig_xs_import.php
  28. /admin/mooyiig_xs_style_config.php
  29. /admin/mooyiig_xs_update.php
  30. /mf_functions/ajax.inc.php
  31. /mf_functions/ajax_C.php
  32. /mf_functions/ajax_R.inc.php
  33. /mf_functions/functions.inc.php
  34. /mf_functions/img.php
  35. /mf_functions/info.php
  36. /mf_functions/mf_functions.inc.php
  37. /mf_functions/signup.functions.php
5. Delete MF folders:
  1. /admin/templates (if exists)
  2. /admin/xs_mod (if exists)
  3. /mf_admin
  4. /mf_functions/js
  5. /mf_temp
  6. /mf_upgrade
  7. /templates/admin (if exists)
  8. /templates/xs_mod (if exists)
  9. /xs_mod (if exists)
6. Extract phpBB MF.zip archive on your computer, delete following files and folders:
  1. /mf_functions/multiconfig.php
  2. /mf_install
  3. /admin
  4. /includes
  5. /logos
Next, upload remaining files into your web root folder, overwrite all files when you will be asked.

7. Change the permissions/chmod the following folders to 0777:
- /mf_data/cache
- /mf_data/backups
- /mf_data/mf_templates/cache
- /mf_data/mf_templates/templates_c

8. Open /mf_functions/multiconfig.php, add this line @define('PHPBB_INSTALLED', true); before ?>. Save and close.

9. Log into MF admin area http://www.yoursite.com/mf_admin/index.php. You will be redirected to http://www.yoursite.com/mf_admin/upgrade.php. This page will show you errors (if any) need to be fixed before you upgrade. If no errors are found or errors are fixed, you can upgrade your MF, just click 'Click Here' button. After the upgrade, follow instructions at the bottom of the page to finish.

10. Open /mf_functions/mf_database.sql, copy your customized SQL queries (only SQL queries of your mods). Paste them into MF Admin Area -> phpBB MF Configuration -> Board Signup-Related -> Extra SQL Queries. From now, please use this function to customize your SQL queries, and we won't provide any updates for this file any more. Delete this file also.

11. Delete all language folders (and other folders if any - don't delete .php files) in /mf_lang.

12. Upload all files and folders in phpBB2.zip archive into the root web folder of your domain, overwrite all files when you will be asked. Notice: This step assumes that you NEVER MAKE ANY CHANGES (don't mention to modifications for /includes/page_header.php and /includes/page_footer.php for ads activation) in phpBB files were integrated and re-distributed by http://www.echophp.com. If you DID MAKE ANY CHANGES, please re-make changes.

13. Rename htaccess.txt to .htaccess if your server supports URL Rewrite mod, read this section for more information.

14. If you are using multiple domains for forums, terminate (delete - cancel hosting account) other MF domains (not the main domain) then park them into the main domain, repeat the step 1 of Installation Instructions for each domains . If not, skip this step.

15. Turn open_basedir on, curl also don't need to be supported so you can disable it.

16. Update your homepage and echoPHP MF pages to Smarty template format.


Upgrade echoPHP MF v2 to echoPHP MF v3.0.x Instructions
Notice: Before upgrading your MF, check your server configuration, click here to download server configuration detector. If your server isn't compatible with echoPHP MF v3, make your server compatible with v3 first. Because you can't downgrade your MF.

Before you upgrade your MF, please upgrade your MF v2 to
2.0.8 or higher then follow instructions below.

1. Backup all files and databases. We won't respond to any issues if you don't backup your files and databases.

2. Suspend all forums temporarily to avoid unexpect issues. Log into MF admin area -> phpBB MF Configuration -> General -> Suspend All Forums? :: Yes.

3. Delete MF files:
  1. /mf_functions/class.pager.php
  2. /mf_functions/functions.inc.php
  3. /mf_functions/functions.order.php
  4. /mf_functions/functions.signup2.php
  5. /mf_functions/functions.signup.php
  6. /mf_functions/functions.sql.php
  7. /mf_functions/functions.upgrade.php
  8. /mf_functions/global.php
  9. /mf_functions/img.php
  10. /mf_functions/mf_functions.inc.php
  11. /mf_functions/xajax.inc.php
  12. /mf_functions/xajaxCompress.php
  13. /mf_functions/xajaxResponse.inc.php
  14. /mf_temp/header.php
  15. /mf_temp/header_mine.php
  16. /mf_temp/footer.php
4. Delete MF folders:
  1. /mf_admin
  2. /mf_functions/gateways
  3. /mf_functions/smarty
  4. /mf_functions/xajax_js
  5. /mf_temp/admin
5. Download echoPHP MF v3 package (installation package, not upgrade package), extract phpBB MF.zip archive on your computer, delete following files and folders:
  1. /mf_functions/multiconfig.php
  2. /mf_functions/header_mine.php (*)
  3. /mf_temp/mf_style.css (*)
  4. /mf_temp/board_directory.html (*)
  5. /mf_temp/board_directory_category_not_exist.html (*)
  6. /mf_temp/board_directory_forums.html (*)
  7. /mf_temp/home.html (*)
  8. /mf_temp/message.html (*)
  9. /mf_temp/signup.html (*)
  10. /mf_temp/signup_confirmation.html (*)
  11. /mf_temp/tos.html (*)
  12. /mf_temp/unavailable.html (*)
  13. /mf_temp/upgrade.html (*)
  14. /mf_temp/upgrade_confirmation.html (*)
  15. /mf_temp/wrapper.html (*)
  16. /mf_install
  17. /admin
  18. /includes
  19. /logos
(*) Don't delete if you didn't modify those files on your host.

Upload mf_data into your server where it's declared in $multiforum_datapath in /mf_functions/multiconfig.php, overwrite it when you will be asked. Then, delete mf_data folder on your computer.

Next, upload remaining files into your web root folder, overwrite all files when you will be asked.

6. Update templates: if you didn't modify templates, ignore this step. If not, follow instructions below to update templates in /mf_temp.
  1. - Update /mf_temp/board_directory.html
    - Replace
    	<tr>
    <td class="td_head"><a href="board_directory.php?c={$item.id}">{$item.name}</a></th>
    </tr>
    <tr>
    <td class="row2">{$item.description}</td>
    </tr>
    with:
    	<tr>
    <td class="td_head"><a href="board_directory.php?c={$item.id}">{$item.name}</a></td>
    </tr>
    {if $item.description}
    <tr>
    <td class="row2">{$item.description}</td>
    </tr>
    {/if}
  2. - Update /mf_temp/board_directory_forums.html
    - Replace
    		Sort By: {$select_sort_by}
    Order By: {$select_order_by}
    with:
    		{$lang.sort_by}: {$select_sort_by}
    {$lang.order_by}: {$select_order_by}
  3. - Update /mf_temp/home.html
    - Find
    <h4>{$lang.home_meta}</h4>
    {$lang.home_content}
    <br />
    below, add:

    {if $available_news}
    <strong>{$lang.lastest_news}</strong><br />
    <ul>
    {foreach from=$available_news item=news}
    <li><strong>{$news.subject}</strong>:<br />
    {$news.article}
    </li>
    {/foreach}
    </ul>
    <br /><br />
    {/if}
    - Replace
    &nbsp;&raquo; {$lang.site_total_forums}: {$total_forums}<br />
    &nbsp;&raquo; {$lang.site_total_members}: {$total_members}<br />
    &nbsp;&raquo; {$lang.site_total_posts}: {$total_posts}<br />
    &nbsp;&raquo; {$lang.site_total_domains}: {$total_domains}<br />
    &nbsp;&raquo; {$lang.site_total_categories}: {$total_categories}<br />
    with:
    {if $total_forums !== false}&nbsp;&raquo; {$lang.site_total_forums}: {$total_forums}<br />{/if}
    {if $total_members !== false}&nbsp;&raquo; {$lang.site_total_members}: {$total_members}<br />{/if}
    {if $total_posts !== false}&nbsp;&raquo; {$lang.site_total_posts}: {$total_posts}<br />{/if}
    {if $total_domains !== false}&nbsp;&raquo; {$lang.site_total_domains}: {$total_domains}<br />{/if}
    {if $total_categories !== false}&nbsp;&raquo; {$lang.site_total_categories}: {$total_categories}<br />{/if}
  4. - Update /mf_temp/signup.html
    - Replace
    <div id="board_title_message" class="error_message"></td>
    with:
    <div id="board_title_message" class="error_message"></div></td>

    - Replace
    <td class="row2" colspan="2" align="center"><label>
    with:
    <td class="row2" colspan="2" align="center"><label for="agree_terms">
    - Find
    		<td class="row2"><input type="text" id="board_name" name="board_name" value="{$board_name}" maxlength="50" onblur="xajax_check_board_name(xajax.getFormValues('mf_form'))" />.{if count($active_domains) > 1}<select name="sel_domain" onchange="xajax_check_board_name(xajax.getFormValues('mf_form'))">{foreach item=domain from=$active_domains}<option value='{$domain.id}'>{$domain.domain}</option>{/foreach}</select>{else}{$the_active_domain}<input type="hidden" name="sel_domain" value="{$the_active_domain_id}" />{/if}
    inline, find:
    <option value='{$domain.id}'>{$domain.domain}</option>
    replace with:
    <option value="{$domain.id}"{if $domain.selected} selected="selected"{/if}>{$domain.domain}</option>
    - Replace
    		<td class="row2">{$language_select}</td>
    with:
    		<td class="row2">
    <select name="language" id="language">
    {foreach item=langcode key=langname from=$forum_languages}
    <option value="{$langcode}"{if $langcode == $settings.default_forum_language} selected="selected"{/if}>{$langname}</option>
    {/foreach}
    </select>
    </td>
    - Replace
    				<option value='{$cat.id}'>{$cat.name}</option>
    with:
    				<option value="{$cat.id}"{if $cat.selected} selected="selected"{/if}>{$cat.name}</option>
    - Find
    	<tr>
    <td class="row2" align="right">{$lang.signup_board_title}:</td>
    <td class="row2"><input type="text" id="board_title" name="board_title" value="{$board_title}" maxlength="255" onblur="xajax_check_board_title(xajax.getFormValues('mf_form'))" />
    &nbsp;&nbsp;<span id="board_title_check" class="bold_green"></span>
    <div id="board_title_message" class="error_message"></div></td>
    </tr>
    bellow, add:
    	<tr>
    <td class="row2" align="right">{$lang.signup_forum_style}:</td>
    <td class="row2">
    <select name="style" id="style">
    {foreach item=forum_style key=stylecode from=$forum_styles}
    <option value="{$stylecode}"{if $stylecode == $settings.default_forum_style} selected="selected"{/if}>{$forum_style.name}</option>
    {/foreach}
    </select>
    </td>
    </tr>
    - Replace
    Category:
    with:
    {$lang.category}:
    - Replace
    Admin Configuration
    with:
    {$lang.admin_configuration}
    - Replace
    Admin Username:
    with:
    {$lang.admin_username}:
    - Replace
    Admin Password:
    with:
    {$lang.admin_password}:
    - Replace
    Confirm Password:
    with:
    {$lang.confirm_password}:
    - Replace
    Your Email Address:
    with:
    {$lang.admin_email_address}:
    - Replace
    Refresh Image
    with:
    {$lang.refresh_image}
    - Replace
    By checking the box you agree to abide by our <a href="terms.php" target="_blank">terms of service</a>
    with:
    {$lang.signup_agree_with_tos}
    - Replace
    Create My Forum
    with:
    {$lang.signup_create_my_forum}
    - Remove:
     class="catBottom"
  5. - Update /mf_temp/upgrade.html
    - Replace
    <th colspan="2">Your Forum Information</th>
    with:
    <th colspan="2">{$lang.your_forum_information}</th>

    - Replace
    <td class="row1" align="right" valign="top">Backup Download:</td>
    with:
    <td class="row1" align="right" valign="top">{$lang.backup_download}:</td>

    - Above
    {if $has_upgrades == false}
    add:
    	{if count($parked_domains) > 0}
    <tr>
    <td class="row1" align="right" valign="top">{$lang.parked_domains}:</td>
    <td class="row1" valign="top">
    <fieldset><legend>{$lang.parked_domains}</legend>
    {foreach from=$parked_domains item=item}
    <label for="item{$item.id}"><input type="radio" id="item{$item.id}" name="item" value="{$item.id}" /><strong>{$item.title} - {if $three_letter_currency_abbreviation == ''}$currency{/if}{$item.price} {$three_letter_currency_abbreviation}{if $item.unit != ''}/{$item.unit}{/if}{if $item.type == 'onetime'} ({$item.billing_cycle}){elseif $item.type == 'recurring'}/{$item.billing_cycle}{/if}</strong></label><br />
    {$item.description}<br />
    {/foreach}
    </fieldset>
    </td>
    </tr>
    {/if}
    {if count($copyright_removal) > 0}
    <tr>
    <td class="row1" align="right" valign="top">{$lang.copyright_removal}:</td>
    <td class="row1" valign="top">
    <fieldset><legend>{$lang.copyright_removal}</legend>
    {foreach from=$copyright_removal item=item}
    <label for="item{$item.id}"><input type="radio" id="item{$item.id}" name="item" value="{$item.id}" /><strong>{$item.title} - {if $three_letter_currency_abbreviation == ''}$currency{/if}{$item.price} {$three_letter_currency_abbreviation}{if $item.unit != ''}/{$item.unit}{/if}{if $item.type == 'onetime'} ({$item.billing_cycle}){elseif $item.type == 'recurring'}/{$item.billing_cycle}{/if}</strong></label><br />
    {$item.description}<br />
    {/foreach}
    </fieldset>
    </td>
    </tr>
    {/if}

    - Replace
    <td class="row1" colspan="2" align="center">No Upgrades Available!</td>
    with:
    <td class="row1" colspan="2" align="center">{$lang.no_products}</td>

    - Replace
    <th colspan="2">Choose Payment Method</th>
    with:
    <th colspan="2">{$lang.choose_payment_method}</th>

    - Replace
    <td class="row1" align="right"  valign="top">{$lang.payment_method}:</td>
    with:
    <td class="row1" align="right"  valign="top">{$lang.payment_options}:</td>

    - Replace
    <div align="center"><strong>No Payment Methods Available!</strong></div>
    with:
    <strong>{$lang.no_payment_gateways_found}</strong>

    - Replace
    <td class="catBottom" align="center" colspan="2"><input type="submit" id="submit" name="submit" value="Upgrade My Forum" /></td>
    with:
    <td align="center" colspan="2"><input type="submit" id="submit" name="submit" value="{$lang.upgrade_site}" /></td>
  6. - Update /mf_temp/upgrade_confirmation.html
    - Replace
    <h3 align="center">Upgrade Confirmation</h3>
    Please check the upgrade info again for correct info.
    with:
    <h3 align="center">{$lang.upgrade_confirmation}</h3>
    {$lang.upgrade_confirmation_explain}

    - Replace
    <th colspan="2">Upgrade Confirmation</th>
    with:
    <th colspan="2">{$lang.your_forum_information}</th>

    - Replace
    <th colspan="2">Selected Upgrades</th>
    with:
    <th colspan="2">{$lang.selected_upgrades}</th>

    - Replace
    <td class="row1" align="right" valign="top">Backup Download:</td>
    with:
    <td class="row1" align="right" valign="top">{$lang.backup_download}:</td>

    - Above
    	<tr>
    <td class="row1" align="right" valign="top">{$lang.total}:</td>
    <td class="row1" valign="middle">{if $three_letter_currency_abbreviation == ''}$currency{/if}{$total} {$three_letter_currency_abbreviation}</td>
    </tr>
    add:
    	{if count($parked_domains) > 0}
    <tr>
    <td class="row1" align="right" valign="top">{$lang.parked_domains}:</td>
    <td class="row1" valign="top">
    <fieldset><legend>{$lang.parked_domains}</legend>
    {foreach from=$parked_domains item=item}
    <strong>&bull; {$item.title} - {if $three_letter_currency_abbreviation == ''}$currency{/if}{$item.price} {$three_letter_currency_abbreviation}{if $item.unit != ''}/{$item.unit}{/if}{if $item.type == 'onetime'} ({$item.billing_cycle}){elseif $item.type == 'recurring'}/{$item.billing_cycle}{/if}</strong><br />
    {$item.description}<br />
    {/foreach}
    </fieldset>
    </td>
    </tr>
    {/if}
    {if count($copyright_removal) > 0}
    <tr>
    <td class="row1" align="right" valign="top">{$lang.copyright_removal}:</td>
    <td class="row1" valign="top">
    <fieldset><legend>{$lang.copyright_removal}</legend>
    {foreach from=$copyright_removal item=item}
    <strong>&bull; {$item.title} - {if $three_letter_currency_abbreviation == ''}$currency{/if}{$item.price} {$three_letter_currency_abbreviation}{if $item.unit != ''}/{$item.unit}{/if}{if $item.type == 'onetime'} ({$item.billing_cycle}){elseif $item.type == 'recurring'}/{$item.billing_cycle}{/if}</strong><br />
    {$item.description}<br />
    {/foreach}
    </fieldset>
    </td>
    </tr>
    {/if}

    - Replace
    <td class="catBottom" align="center" colspan="2"><input type="button" id="cancel" name="cancel" value="Cancel" onclick="xajax.$('confirmation_pane').innerHTML = ''; xajax.$('upgrade_pane').style.display = '';" /> <input type="submit" id="submit_confirmation" name="submit" value="Checkout" /></td>
    with:
    <td align="center" colspan="2"><input type="button" id="cancel" name="cancel" value="{$lang.cancel}" onclick="window.location.href = './'" /> <input type="button" id="change" name="change" value="{$lang.change}" onclick="xajax.$('confirmation_pane').innerHTML = ''; xajax.$('upgrade_pane').style.display = '';" /> <input type="submit" id="submit_confirmation" name="submit" value="{$lang.checkout}" /></td>
  7. - Update /mf_temp/wrapper.html
    - Replace
    <link href="mf_temp/mf_styles.css" rel="stylesheet" type="text/css" />
    </head>
    {$headinclude}
    with:
    {$headinclude}
    <link href="{$style.path}/mf_styles.css" rel="stylesheet" type="text/css" />
    </head>

    - Replace
    <td align="right">Powered by <a href="http://www.echophp.com" target="_blank">echoPHP phpBB MultiForums</a></td>
    with:
    <td align="right">{$powered_by}</td>
    - (* optional *) Find
    </head>
    above, add :
    <!--
    Style Info (available variables from $style)
    + Style Id: {$style.id}
    + Style Name: {$style.name}
    + Style Path: {$style.path}
    -->
    - Find
    <div align="center"><a href="home.php">{$lang.site_home}</a> | {if $show.signup == '1'}<a href="signup.php">{$lang.site_signup}</a> | {/if}{if $show.upgrade == '1'}<a href="upgrade_forum.php">{$lang.site_upgrade}</a> | {/if}<a href="board_directory.php">{$lang.site_board_directory}</a> | <a href="terms.php">{$lang.site_tos}</a></div>
    inline, find:
    <a href="board_directory.php">{$lang.site_board_directory}</a> | 
    replace with:
    {if $show.directory}<a href="board_directory.php">{$lang.site_board_directory}</a> | {/if}
    - Replace
    			&nbsp;&raquo; <a href="board_directory.php">{$lang.site_board_directory}</a><br />
    with:
    			{if $show.directory}
    &nbsp;&raquo; <a href="board_directory.php">{$lang.site_board_directory}</a><br />
    {/if}
    - Find
    			<strong>{$lang.site_stats}:</strong><br />
    above, add :
    			
    {if count($languages) > 0}
    <strong>{$lang.site_languages}:</strong><br />
    {foreach item=language from=$languages}
    &nbsp;&raquo; {if $language.flag}<a href="#" onclick="echophp_set_lang({$language.id}); return false;"><img src="{$language.flag}" align="absmiddle" border="0" /></a> {/if}<a href="#" onclick="echophp_set_lang({$language.id}); return false;">{$language.language}</a><br />
    {/foreach}
    <br />
    {/if}
    - Remove:
    			&nbsp;&raquo; <a href="http://support.domain.com" target="_blank">{$lang.mine_support_forum}</a><br />
    &nbsp;&raquo; <a href="http://blog.domain.com" target="_blank">{$lang.mine_site_blog}</a><br />
    - Find
    			{if $show.directory}
    &nbsp;&raquo; <a href="board_directory.php">{$lang.site_board_directory}</a><br />
    {/if}
    bellow, add:
    			&nbsp;&raquo; <a href="terms.php">{$lang.site_tos}</a><br />
    - Replace
    {if count($languages) > 0}
    with:
    {if $languages}
    - Replace
    			&nbsp;&raquo; {$lang.site_total_forums}: {$total_forums}<br />
    &nbsp;&raquo; {$lang.site_total_members}: {$total_members}<br />
    &nbsp;&raquo; {$lang.site_total_posts}: {$total_posts}<br />
    &nbsp;&raquo; {$lang.site_total_domains}: {$total_domains}<br />
    &nbsp;&raquo; {$lang.site_total_categories}: {$total_categories}<br />
    with:
    			{if $total_forums !== false}&nbsp;&raquo; {$lang.site_total_forums}: {$total_forums}<br />{/if}
    {if $total_members !== false}&nbsp;&raquo; {$lang.site_total_members}: {$total_members}<br />{/if}
    {if $total_posts !== false}&nbsp;&raquo; {$lang.site_total_posts}: {$total_posts}<br />{/if}
    {if $total_domains !== false}&nbsp;&raquo; {$lang.site_total_domains}: {$total_domains}<br />{/if}
    {if $total_categories !== false}&nbsp;&raquo; {$lang.site_total_categories}: {$total_categories}<br />{/if}
    - Replace
    {if count($top_forums) > 0}
    with:
    {if $top_forums}
    - Replace
    {if count($newest_forums) > 0}
    with:
    {if $newest_forums}
    - Replace
    {if count($random_forums) > 0}
    with:
    {if $random_forums}
    - Replace
    {if count($available_domains) > 0}
    with:
    {if $available_domains}
    - Replace
    {if count($available_categories) > 0}
    with:
    {if $available_categories}
  8. ***** Check all templates, following instructions below to to keep them updated.
    - Replace
    href="mf_temp/
    or
    href="./mf_temp/
    or
    href="/mf_temp/
    or something like that with:
    href="{$style.path}/
    - Replace
    src="mf_temp/
    or
    src="./mf_temp/
    or
    src="/mf_temp/
    or something like that with:
    src="{$style.path}/
7. Go to http://www.yoursite.com/mf_admin/upgrade.php. This page will show you errors (if any) need to be fixed before you upgrade. If no errors are found or errors are fixed, you can upgrade your MF, just click 'Click Here' button. After the upgrade, follow instructions at the bottom of the page to finish.

8. Open /mf_functions/mf_database.sql, copy your customized SQL queries (only SQL queries of your mods). Paste them into MF Admin Area -> phpBB MF Configuration -> Board Signup-Related -> Extra SQL Queries. From now, please use this function to customize your SQL queries, and we won't provide any updates for this file any more. Delete this file also.

9. Open /config.php. Delete all content and paste the content below:
<?php
require_once 'mf_functions/mf_functions.inc.php';
?>

10. Extract phpBB2.zip in the package on your computer, upload following files in /phpBB2/admin into /admin on your site: 11. Unsuspend all forums.

12. Since v3.0.0.RC4, /mf_functions/header_mine.php is no longer used, you now can control system stats via MF admin area. You please take a look into MF admin area -> System -> Configuration -> System Stats, you may need to adjust some settings to fit your requirements that you have in /mf_functions/header_mine.php.

13. Delete all language folders (and other folders if any - don't delete .php files) in /mf_lang.


Convert SebFlipper (only for phpBB2 MF) to echoPHP MF v3.0.x Instructions
Notice: All hosted forums will be run at sub.domain.com, so if you are running Sebflipper under subfolder, please do the step 1 of Installation first.

Before upgrading your MF, check your server configuration, click here to download server configuration detector. If your server isn't compatible with echoPHP MF v3, make your server compatible with v3 first. Because you can't downgrade your MF.

1. Read Conversion FAQs first:
  1. What will the conversion script do?
    - Create main MF tables.
    - Convert forum keywords, forum description, forum abstract of Forum Meta Tags MOD or Advance Meta Tags MOD to echoPHP MF format if you installed.
    - Convert avatar folders and tables of forums to new format.
    - Move banners from /banners to /logos and convert them into new format if you are using Banner MOD of Sebflipper.
  2. What will you do?
    - Backup all files and folders (entire of root web folder) of your domain.
    - Backup all MF databases.
    - Remove SebFlipper Integration from phpBB files yourself, we don't provide any instructions for how to do that.
    - Upload files of the echoPHP version 3.
    - Integrate the echoPHP version 3 into phpBB files yourself it you made changes in them. If not, just upload phpBB files integrated by us.
    - Run the conversion script.
    - Convert your current web interface to new template format of Smarty Template Engine.
  3. How long will the upgrade take?
    - Sorry, i can't tell you exactly how long it will take. It bases on how many forums you are hosting, your server power, your server load, etc.
  4. When i should upgrade my forums?
    - As soon as possible to get many security bug fixes and new features, but you should do it when your server is not busy and is loading fastest to prevent server issues during the ugprade.
  5. Can i start the conversion without files and all MF databases backup?
    - Yes, you can. But it will be started at your own risk. Server issues, your computer or browser issues and internet connection issues can terminate the conversion then your forums will be corrupted or lost all data. We will not repond to any issues relate to your MF if you don't have files and all MF databases backup.
  6. Have more questions?
    - Please refer to FAQ section (RECOMMENDED).
2. Backup all MF databases. If you don't do it, you convert your MF at your own risk.

3. Backup all MF files (include MF files and phpBB files, avatars, logos, images, etc). These should be backup because you will need to have it for reference when you run the upgrade script and convert templates to new template format.

4. Delete MF files: If you renamed files, find and delete it yourself.
  1. /config_default.php
  2. /directory.php
  3. /new_forum.php
  4. /multiforums_default_db.sql
5. Delete MF folders:
  1. /config
6. Upload all files and folders in phpBB MF.zip archive into the root web folder of your domain.

7. Change the permissions/chmod the following folders to 0777:
- /mf_data/cache
- /mf_data/backups
- /mf_data/mf_templates/cache
- /mf_data/mf_templates/templates_c

8. Upload all files and folders in phpBB.zip archive into the root web folder of your domain. Notice: This step assumes that you NEVER MAKE ANY CHANGES in phpBB files. If you DID MAKE ANY CHANGES, please re-make changes.

9. Rename htaccess.txt to .htaccess if you server supports URL Rewrite module, read this section for more information.

10. Navigate to the http://www.your_main_mf_domain.com/mf_install/ and enter the requested information. You won't see any convert option for SebFlipper, select Install -> press Start -> follow instructions, enter MySQL infomation same as you used for Sebflipper MF -> Step 3, follow instructions, select Convert Sebflipper MF to echoPHP MF -> press Next Step -> the script will convert your MF. The conversion script will help you convert your MF step by step. Remember to following its instructions, do not skip any steps.

11. Open /multiforums_default_db.sql, copy your customized SQL queries (only SQL queries of your mods). Paste them into MF Admin Area -> phpBB MF Configuration -> Board Signup-Related -> Extra SQL Queries. From now, please use this function to customize your SQL queries, and we won't provide any updates for this file any more. Delete this file also.

12. Go to http://www.your_main_mf_domain.com/mf_admin/ and begin configuring your settings.


Manual Integration (only for phpBB3)
Note: Just do it this when you switch over from another MF to echoPHP MF or you upgrade from v1 or v2 to v3 for phpBB files have been made changes or you just would like to know to how it's integrated.

1. Download full phpBB standard version (version 3.0.7-PL1 currently is being used by echoPHP MF) from http://www.phpbb.com/downloads/, extract the archive.

2. Delete following files and folders:
  1. /install/
  2. /includes/acp/info/acp_php_info.php
  3. /includes/acp/info/acp_send_statistics.php
  4. /includes/acp/acp_php_info.php
  5. /includes/acp/acp_send_statistics.php
3. List of files need to be modified: Total 13 files.
  1. /common.php (1 modification)
  2. /config.php (1 modification)
  3. /.htaccess (1 modification)
  4. /adm/style/acp_database.html (1 modification)
  5. /adm/style/acp_language.html (1 modification)
  6. /adm/style/acp_styles.html (2 modifications)
  7. /includes/functions.php (2 modifications)
  8. /includes/functions_template.php (4 modifications)
  9. /includes/functions_user.php (1 modification)
  10. /includes/acm/acm_file.php (1 modification)
  11. /includes/acp/acp_database.php (7 modifications)
  12. /includes/acp/acp_main.php (3 modifications)
  13. /includes/acp/acp_styles.php (7 modifications)
4. Edit file /common.php: 1 modification.
  1. Scroll to the end of file. Above ?> add this:
    ### phpBB MF BEGIN ###
    mf_modify_header1();
    ### phpBB MF END ###
5. Edit file /config.php: 1 modification
  1. Delete all contents of the file and add this:
    <?php
    ### phpBB MF BEGIN ###
    /*
    
    This file doesn't contain your MF configuration.
    If you would like to change your MF configuration, please change it in /mf_functions/multiconfig.php
    
    */
    
    require_once 'mf_functions/mf_functions.inc.php';
    ### phpBB MF END ###
    ?>
6. Edit file /.htaccess: 1 modification
  1. At the end of the file, add this:
    ### phpBB MF BEGIN ###
    
    # Try to remove the comment (#) if URL Rewrite is enabled and does not work
    #php_value output_buffering on
    
    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteBase /
    
    # Remove comments (#) if you would like to use. This will redirect http://yourdomain.com to http://www.yourdomain.com
    #RewriteCond %{HTTP_HOST} ^yourdomain\.com
    #RewriteRule (.*) http://www.yourdomain.com/$1 [R=301,L]
    
    # Rules for board directory and other pages
    RewriteRule ^visit-([0-9]*)(.*).html$ board_directory.php?visit=$1 [L]
    RewriteRule ^category-([0-9]*)(.*)-([0-9]*)-([a-zA-Z0-9]*)-([a-zA-Z0-9]*).html$ board_directory.php?page=$3&c=$1&sort_by=$4&order=$5 [L]
    RewriteRule ^category-([0-9]*)(.*).html$ board_directory.php?c=$1 [L]
    RewriteRule ^board_directory.html$ board_directory.php [L]
    RewriteRule ^get-free-forum.html$ signup.php [L]
    RewriteRule ^terms.html$ terms.php [L]
    RewriteRule ^upgrade-forum.html$ upgrade_forum.php [L]
    
    # Rules for forums
    RewriteRule ^(.*)vf([0-9]*).html$ viewforum.php?f=$2&%{QUERY_STRING} [L]
    RewriteRule ^(.*)vt([0-9]*).html$ viewtopic.php?t=$2&%{QUERY_STRING} [L]
    RewriteRule ^vp([0-9]*).html$ viewtopic.php?p=$1&%{QUERY_STRING} [L]
    RewriteRule ^(.*)vm([0-9]*).html$ memberlist.php?mode=viewprofile&u=$2&%{QUERY_STRING} [L]
    RewriteRule ^search.html$ search.php?%{QUERY_STRING} [L]
    RewriteRule ^faq.html$ faq.php?%{QUERY_STRING} [L]
    RewriteRule ^memberlist.html$ memberlist.php?%{QUERY_STRING} [L]
    RewriteRule ^viewonline.html$ viewonline.php?%{QUERY_STRING} [L]
    </IfModule>
    
    ### phpBB MF END ###
    
7. Edit file /adm/style/acp_database.html: 1 modification.
  1. Replace:
    	<p>{L_ACP_BACKUP_EXPLAIN}</p>
    with:
    	<p>{L_ACP_BACKUP_EXPLAIN}</p><!-- IF CREDIT > 0 --><p><strong>{L_MF_BACKUPS_LEFT}:</strong> {CREDIT}</p><!-- ENDIF -->
8. Edit file /adm/style/acp_language.html: 1 modification.
  1. Replace:
    <td style="text-align: center;">&nbsp;<a href="{lang.U_DOWNLOAD}">{L_DOWNLOAD}</a>&nbsp;|&nbsp;<a href="{lang.U_DELETE}">{L_DELETE}</a></td>
    with:
    		<td style="text-align: center;"><a href="{lang.U_DELETE}">{L_DELETE}</a></td>
9. Edit file /adm/style/acp_styles.html: 2 modifications.
  1. Replace:
    		<th>{L_OPTIONS}</th>
    with:
    		<!-- IF not S_HIDE_OPTIONS -->
    		<th>{L_OPTIONS}</th>
    		<!-- ENDIF -->
  2. Replace:
    		<td style="text-align: center;">
    			{installed.S_OPTIONS}
    		</td>
    with:
    		<!-- IF not S_HIDE_OPTIONS -->
    		<td style="text-align: center;">
    			{installed.S_OPTIONS}
    		</td>
    		<!-- ENDIF -->
10. Edit file /includes/functions.php: 2 modifications
  1. Find:
    	// application/xhtml+xml not used because of IE
    	header('Content-type: text/html; charset=UTF-8');
    
    	header('Cache-Control: private, no-cache="set-cookie"');
    	header('Expires: 0');
    	header('Pragma: no-cache');
    above:
    	return;
    }
    add this:
    	### phpBB MF BEGIN ###
    	mf_modify_header2();
    	### phpBB MF END ###
  2. Find:
    	$template->display('body');
    above:
    	garbage_collection();
    	exit_handler();
    }
    add this:
    	### phpBB MF BEGIN ###
    	mf_modify_footer2();
    	### phpBB MF END ###
11. Edit file /includes/functions_template.php: 4 modifications.
  1. Bellow:
    				case 'BEGIN':
    					$this->block_else_level[] = false;
    					$compile_blocks[] = '<?php ' . $this->compile_tag_block($block_val[2]) . ' ?>';
    add this:
    					### phpBB MF BEGIN ###
    					mf_modify_core_template($block_val[1], $block_val[2], $compile_blocks);
    					### phpBB MF END ###
  2. Bellow:
    				case 'BEGINELSE':
    					$this->block_else_level[sizeof($this->block_else_level) - 1] = true;
    					$compile_blocks[] = '<?php }} else { ?>';
    add this:
    					### phpBB MF BEGIN ###
    					mf_modify_core_template($block_val[1], $block_val[2], $compile_blocks);
    					### phpBB MF END ###
  3. Bellow:
    				case 'END':
    					array_pop($this->block_names);
    					$compile_blocks[] = '<?php ' . ((array_pop($this->block_else_level)) ? '}' : '}}') . ' ?>';
    add this:
    					### phpBB MF BEGIN ###
    					mf_modify_core_template($block_val[1], $block_val[2], $compile_blocks);
    					### phpBB MF END ###
  4. Bellow:
    				case 'INCLUDE':
    					$temp = array_shift($include_blocks);
    					$compile_blocks[] = '<?php ' . $this->compile_tag_include($temp) . ' ?>';
    add this:
    					### phpBB MF BEGIN ###
    					mf_modify_core_template($block_val[1], $temp, $compile_blocks);
    					### phpBB MF END ###
12. Edit file /includes/functions_user.php: 1 modification.
  1. Bellow:
    	if (!preg_match('/^' . get_preg_expression('email') . '$/i', $email))
    	{
    		return 'EMAIL_INVALID';
    	}
    add this:
    	### phpBB MF BEGIN ###
    	global $echophp;
    	if($echophp->settings['email_list_user'] && mf_email_banned($email)) {
    		return 'EMAIL_BANNED';
    	}
    	### phpBB MF END ###
13. Edit file /includes/acm/acm_file.php: 1 modification.
  1. Replace:
    		$this->cache_dir = $phpbb_root_path . 'cache/';
    with:
    		### phpBB MF BEGIN ###
    		//$this->cache_dir = $phpbb_root_path . 'cache/';
    		$this->cache_dir = $phpbb_root_path . 'cache/' . (defined('MHOST') ? MHOST . '/' : '');
    		### phpBB MF END ###
14. Edit file /includes/acp/acp_database.php: 7 modifications.
  1. Find
    		$user->add_lang('acp/database');
    Above, add:
    		### phpBB MF BEGIN ###
    		global $echophp;
    
    		$has_access = true;
    		if(!$echophp->settings['backup_coadmin']) {
    			$has_access = ($user->data['user_id'] == '2');
    		}
    		if($has_access) {
    			if($echophp->settings['backup_free'] == '0') {
    				$has_access = false;
    			} else if($echophp->settings['backup_free'] == '-1') {
    				$has_access = $echophp->forum['backups'];
    				if(!$has_access) {
    					$credit = $echophp->db->get_row("SELECT * FROM `$echophp->mdb`.`mf_phpbb_backups` WHERE `forum_id` = '{$echophp->forum['id']}' AND `remaining` > 0 LIMIT 1", ARRAY_A);
    					$has_access = (bool)$credit;
    				}
    			}
    		}
    
    		$use_credit = (isset($credit) && $credit);
    		if(!$has_access) {
    			trigger_error($user->lang[($use_credit ? 'MF_NO_ACCESS' : 'MF_NO_PERMISSION')], E_USER_WARNING);
    		}
    		### phpBB MF END ###
  2. Find
    				$this->page_title = 'ACP_BACKUP';
    bellow, add:
    				### phpBB MF BEGIN ###
    				$template->assign_vars(array(
    					'CREDIT' => $use_credit ? $credit['remaining'] : 0,
    				));
    				### phpBB MF END ###
  3. Find
    						$where	= request_var('where', '');
    bellow, add:
    						### phpBB MF BEGIN ###
    						/*
    						foreach($table as $keytb => $tb) {
    							$table[$keytb] = 'xx' . $tb;
    						}
    						*/
    						//Stop some bad guys want to get all tables in the shared database.
    						$table_prefix_len = strlen($table_prefix);
    						foreach($table as $keytb => $tb) {
    							if(substr($tb, 0, $table_prefix_len) != $table_prefix) unset($table[$keytb]);
    						}
    						unset($table_prefix_len, $keytb, $tb);
    						### phpBB MF END ###
  4. Replace:
    						include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
    						$tables = get_tables($db);
    						asort($tables);
    with:
    						### phpBB MF BEGIN ###
    						/*
    						include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
    						$tables = get_tables($db);
    						asort($tables);
    						*/
    						$tables =  $echophp->get_tables();
    						### phpBB MF END ###
  5. Replace:
    						$file_name = $phpbb_root_path . 'store/' . $matches[0];
    with:
    						### phpBB MF BEGIN ###
    						//$file_name = $phpbb_root_path . 'store/' . $matches[0];
    						$file_name = $phpbb_root_path . 'store/' . MHOST . '/' . $matches[0];
    						### phpBB MF END ###
  6. Replace:
    						$dir = $phpbb_root_path . 'store/';
    with:
    						### phpBB MF BEGIN ###
    						//$dir = $phpbb_root_path . 'store/';
    						$dir = $phpbb_root_path . 'store/' . MHOST . '/';
    						### phpBB MF END ###
  7. Replace:
    			$file = $phpbb_root_path . 'store/' . $filename . $ext;
    with:
    			### phpBB MF BEGIN ###
    			//$file = $phpbb_root_path . 'store/' . $filename . $ext;
    			$file = $phpbb_root_path . 'store/' . MHOST . '/' . $filename . $ext;
    			### phpBB MF END ###
15. Edit file /includes/acp/acp_main.php: 3 modifications.
  1. Bellow:
    		$user->add_lang('install');
    add:
    		### phpBB MF BEGIN ###
    /*
    ### phpBB MF END ###
  2. Above:
    		// Get forum statistics
    $total_posts = $config['num_posts'];
    $total_topics = $config['num_topics'];
    $total_users = $config['num_users'];
    $total_files = $config['num_files'];
    add:
    		### phpBB MF BEGIN ###
    */
    $template->assign_vars(array(
    'S_PHP_VERSION_OLD' => false,
    'S_VERSIONCHECK_FAIL' => false,
    'S_VERSION_UP_TO_DATE' => true,
    ));
    ### phpBB MF END ###
  3. Replace:
    		$dbsize = get_database_size();
    with:
    		### phpBB MF BEGIN ###
    		//$dbsize = get_database_size();
    		$dbsize = $user->lang['NOT_AVAILABLE'];
    		### phpBB MF END ###
16. Edit file /includes/acp/acp_styles.php: 7 modifications.
  1. Replace:
    				$this->frontend('template', array('edit', 'cache', 'details'), array('refresh', 'export', 'delete'));
    with:
    				### phpBB MF BEGIN ###
    				//$this->frontend('template', array('edit', 'cache', 'details'), array('refresh', 'export', 'delete'));
    				$this->frontend('template', array(), array('delete'));
    				### phpBB MF END ###
  2. Replace:
    				$this->frontend('theme', array('edit', 'details'), array('refresh', 'export', 'delete'));
    with:
    				### phpBB MF BEGIN ###
    				//$this->frontend('theme', array('edit', 'details'), array('refresh', 'export', 'delete'));
    				$this->frontend('theme', array('edit'), array('refresh', 'delete'));
    				### phpBB MF END ###
  3. Replace:
    			'S_FRONTEND'		=> true,
    			'S_STYLE'			=> ($mode == 'style') ? true : false,
    with:
    			### phpBB MF BEGIN ###
    			'S_HIDE_OPTIONS'			=> ($mode == 'template') ? true : false,
    			### phpBB MF END ###
  4. Find:
    // Write stylesheet to db
    See above and replace:
    			// If the theme is stored on the filesystem try to write the file else store it in the database
    			if (!$safe_mode && !$theme_info['theme_storedb'] && file_exists($file) && @is_writable($file))
    			{
    				if (!($fp = @fopen($file, 'wb')))
    				{
    					trigger_error($user->lang['NO_THEME'] . adm_back_link($this->u_action), E_USER_WARNING);
    				}
    				fwrite($fp, $theme_data);
    				fclose($fp);
    			}
    			else
    			{
    with:
    			### phpBB MF BEGIN ###
    			/*
    			// If the theme is stored on the filesystem try to write the file else store it in the database
    			if (!$safe_mode && !$theme_info['theme_storedb'] && file_exists($file) && @is_writable($file))
    			{
    				if (!($fp = @fopen($file, 'wb')))
    				{
    					trigger_error($user->lang['NO_THEME'] . adm_back_link($this->u_action), E_USER_WARNING);
    				}
    				fwrite($fp, $theme_data);
    				fclose($fp);
    			}
    			else
    			{
    			*/
    			### phpBB MF END ###
  5. Replace:
    			}
    			$cache->destroy('sql', STYLES_THEME_TABLE);
    			add_log('admin', (!$theme_info['theme_storedb']) ? 'LOG_THEME_EDIT_FILE' : 'LOG_THEME_EDIT', $theme_info['theme_name'], (!$theme_info['theme_storedb']) ? $theme_file : '');
    with:
    			### phpBB MF BEGIN ###
    			//}
    			### phpBB MF END ###
    			$cache->destroy('sql', STYLES_THEME_TABLE);
    			add_log('admin', (!$theme_info['theme_storedb']) ? 'LOG_THEME_EDIT_FILE' : 'LOG_THEME_EDIT', $theme_info['theme_name'], (!$theme_info['theme_storedb']) ? $theme_file : '');
  6. Find:
    				// We are only interested in the theme configuration for now
    See bellow and replace:
    				if (isset($cfg_data['parse_css_file']) && $cfg_data['parse_css_file'])
    				{
    					$store_db = 1;
    				}
    with:
    				### phpBB MF BEGIN ###
    				/*
    				if (isset($cfg_data['parse_css_file']) && $cfg_data['parse_css_file'])
    				{
    					$store_db = 1;
    				}
    				*/
    				$store_db = 1;
    				### phpBB MF END ###
17. Download the lastest version of echoPHP phpBB MultiForums script at http://www.echophp.com/clients/client_area.php. Decompress the package, you will a package named phpBB3.zip, decompress the package phpBB3.zip. Then copy:
  1. /phpBB3/includes/acp/info/acp_mf.php --> /includes/acp/info/acp_mf.php
  2. /phpBB3//includes/acp/acp_mf.php --> /includes/acp/acp_mf.php
In some cases, the files already exist, choose 'Overwrite' when you will be prompted.



Manual Integration (only for phpBB2)
Note: Just do it this when you switch over from another MF to echoPHP MF or you upgrade from v1 or v2 to v3 for phpBB files have been changed or you just would like to know to how it's integrated.

1. Download full phpBB standard version (version 2.0.23 currently is being used by echoPHP MF) from http://www.phpbb.com/downloads/, extract the archive -> delete 2 folders: /install and /contrib.

2. Install eXtreme Styles Mod (version 2.4.0 currently is being used by echoPHP MF) from http://www.phpbbstyles.com/viewtopic.php?t=356, follow its instructions to install the mod then delete files below for secure reason:
  1. /admin/xs_cache.php
  2. /admin/xs_chmod.php
  3. /admin/xs_clone.php
  4. /admin/xs_config.php
  5. /admin/xs_download.php
  6. /admin/xs_edit.php
  7. /admin/xs_export.php
  8. /admin/xs_export_data.php
  9. /admin/xs_import.php
  10. /admin/xs_style_config.php
  11. /admin/xs_update.php
3. List of files need to be modified: Total 14 files. Will be more if you would like to use many templates.
  1. /common.php
  2. /config.php
  3. /admin/admin_db_utilities.php
  4. /admin/index.php
  5. /admin/page_header_admin.php
  6. /admin/xs_frameset.php
  7. /admin/xs_include.php
  8. /includes/functions.php
  9. /includes/page_header.php
  10. /includes/page_tail.php
  11. /includes/template.php
  12. /templates/subSilver/overall_header.tpl (if you use many templates, edit overall_header.tpl of all templates)
  13. /xs_mod/tpl/index.tpl
  14. /xs_mod/tpl/uninstall.tpl
4. Edit file /common.php: 1 modification.
  1. Scroll to the end of file. Above ?> add this:
    ### phpBB MF BEGIN ###
    mf_modify_header1();
    ### phpBB MF END ###
5. Edit file /config.php: 2 modifications
  1. At the begin of file, Below <?php add this:
    ### phpBB MF BEGIN ###
    include_once('mf_functions/mf_functions.inc.php');
    ### phpBB MF END ###
  2. Replace:
    $dbhost = 'localhost';
    $dbname = 'phpbb2';
    $dbuser = 'root';
    $dbpasswd = '';
    
    $table_prefix = 'phpbb_';
    with:
    ### phpBB MF BEGIN ###
    /*
    $dbhost = 'localhost';
    $dbname = 'phpbb2';
    $dbuser = 'root';
    $dbpasswd = '';
    
    $table_prefix = 'phpbb_';
    */
    ### phpBB MF END ###
6. Edit file /admin/admin_db_utilities.php: 2 modifications
  1. Replace:
    	$filename = basename(__FILE__);
    	$module['General']['Backup_DB'] = $filename . "?perform=backup";
    
    	$file_uploads = (@phpversion() >= '4.0.0') ? @ini_get('file_uploads') : @get_cfg_var('file_uploads');
    
    	if( (empty($file_uploads) || $file_uploads != 0) && (strtolower($file_uploads) != 'off') && (@phpversion() != '4.0.4pl1') )
    	{
    		$module['General']['Restore_DB'] = $filename . "?perform=restore";
    	}
        
    with:
    	### phpBB MF BEGIN ###
    	/*
    	$filename = basename(__FILE__);
    	$module['General']['Backup_DB'] = $filename . "?perform=backup";
    
    	$file_uploads = (@phpversion() >= '4.0.0') ? @ini_get('file_uploads') : @get_cfg_var('file_uploads');
    
    	if( (empty($file_uploads) || $file_uploads != 0) && (strtolower($file_uploads) != 'off') && (@phpversion() != '4.0.4pl1') )
    	{
    		$module['General']['Restore_DB'] = $filename . "?perform=restore";
    	}
    	*/
    	### phpBB MF END ###
    
  2. Above:
    //
    // Load default header
    //
    add this:
    ### phpBB MF BEGIN ###
    require './mf_backup.php';
    exit;
    ### phpBB MF END ###
    
7. Edit file /admin/index.php: 2 modifications
  1. Above:
    	//
    	// DB size ... MySQL only
    	//
    	// This code is heavily influenced by a similar routine
    	// in phpMyAdmin 2.2.0
    	//
    
    add this:
    	### phpBB MF BEGIN ###
    	/*
    

    Above:
    	$template->assign_vars(array(
    		"NUMBER_OF_POSTS" => $total_posts,
    		"NUMBER_OF_TOPICS" => $total_topics,
    		"NUMBER_OF_USERS" => $total_users,
    
    add this:
    	*/
    	$dbsize = $lang['Not_available'];
    	### phpBB MF END ###
    
  2. Above:
    	// Check for new version
    	$current_version = explode('.', '2' . $board_config['version']);
    	$minor_revision = (int) $current_version[2];
    
    add this:
    	### phpBB MF BEGIN ###
    	/*
    

    Above:
    	$version_info .= '<p>' . $lang['Mailing_list_subscribe_reminder'] . '</p>';
    add this:
    	*/
    	### phpBB MF END ###
    
8. Edit file /admin/page_header_admin.php: 1 modification.
  1. Scroll to the end of file. Below ?> add this:
    ### phpBB MF BEGIN ###
    mf_modify_admin_header();
    ### phpBB MF END ###
    
9. Edit file /admin/xs_frameset.php: 1 modification.
  1. Replace:
    $content_url = array(
    	'config'		=> append_sid('xs_config.'.$get_data),
    	'install'		=> append_sid('xs_install.'.$get_data),
    	'uninstall'		=> append_sid('xs_uninstall.'.$get_data),
    	'default'		=> append_sid('xs_styles.'.$get_data),
    	'cache'			=> append_sid('xs_cache.'.$get_data),
    	'import'		=> append_sid('xs_import.'.$get_data),
    	'export'		=> append_sid('xs_export.'.$get_data),
    	'clone'			=> append_sid('xs_clone.'.$get_data),
    	'download'		=> append_sid('xs_download.'.$get_data),
    	'edittpl'		=> append_sid('xs_edit.'.$get_data),
    	'editdb'		=> append_sid('xs_edit_data.'.$get_data),
    	'exportdb'		=> append_sid('xs_export_data.'.$get_data),
    	'updates'		=> append_sid('xs_update.'.$get_data),
    	'portal'		=> append_sid('xs_portal.'.$get_data),
    	'style_config'	=> append_sid('xs_style_config.'.$get_data),
    	);
    
    with:
    ### phpBB MF BEGIN ###
    /*
    $content_url = array(
    	'config'		=> append_sid('xs_config.'.$get_data),
    	'install'		=> append_sid('xs_install.'.$get_data),
    	'uninstall'		=> append_sid('xs_uninstall.'.$get_data),
    	'default'		=> append_sid('xs_styles.'.$get_data),
    	'cache'			=> append_sid('xs_cache.'.$get_data),
    	'import'		=> append_sid('xs_import.'.$get_data),
    	'export'		=> append_sid('xs_export.'.$get_data),
    	'clone'			=> append_sid('xs_clone.'.$get_data),
    	'download'		=> append_sid('xs_download.'.$get_data),
    	'edittpl'		=> append_sid('xs_edit.'.$get_data),
    	'editdb'		=> append_sid('xs_edit_data.'.$get_data),
    	'exportdb'		=> append_sid('xs_export_data.'.$get_data),
    	'updates'		=> append_sid('xs_update.'.$get_data),
    	'portal'		=> append_sid('xs_portal.'.$get_data),
    	'style_config'	=> append_sid('xs_style_config.'.$get_data),
    	);
    */
    $content_url = array(
    	//'config'		=> append_sid('xs_config.'.$get_data),
    	'install'		=> append_sid('xs_install.'.$get_data),
    	'uninstall'		=> append_sid('xs_uninstall.'.$get_data),
    	'default'		=> append_sid('xs_styles.'.$get_data),
    	//'cache'			=> append_sid('xs_cache.'.$get_data),
    	'import'		=> append_sid('xs_import.'.$get_data),
    	//'export'		=> append_sid('xs_export.'.$get_data),
    	//'clone'			=> append_sid('xs_clone.'.$get_data),
    	//'download'		=> append_sid('xs_download.'.$get_data),
    	'edittpl'		=> append_sid('xs_edit.'.$get_data),
    	//'editdb'		=> append_sid('xs_edit_data.'.$get_data),
    	//'exportdb'		=> append_sid('xs_export_data.'.$get_data),
    	//'updates'		=> append_sid('xs_update.'.$get_data),
    	//'portal'		=> append_sid('xs_portal.'.$get_data),
    	//'style_config'	=> append_sid('xs_style_config.'.$get_data),
    	);
    ### phpBB MF END ###
    
10. Edit file /admin/xs_include.php: 3 modifications.
  1. Replace:
    		$xs_lang_file = $phpbb_root_path . 'language/lang_english/lang_xs.'.$phpEx;
    with:
    		### phpBB MF BEGIN ###
    		//$xs_lang_file = $phpbb_root_path . 'language/lang_english/lang_xs.'.$phpEx;
    		$xs_lang_file = $phpbb_root_path . 'mf_lang/lang_xs.'.$phpEx;
    		### phpBB MF END ###
    
  2. Replace:
    		$module['Styles']['Menu'] = 'xs_frameset.'.$phpEx.'?action=menu&showwarning=1';
    with:
    		### phpBB MF BEGIN ###
    		//$module['Styles']['Menu'] = 'xs_frameset.'.$phpEx.'?action=menu&showwarning=1';
    		$module['Styles']['Menu'] = 'xs_frameset.'.$phpEx.'?action=menu';
    		### phpBB MF END ###
    
  3. Replace:
    	// add new menu
    	$module_name = 'Extreme_Styles';
    	$module[$module_name]['Styles_Management'] = 'xs_frameset.'.$phpEx.'?action=menu';
    	for($i=0; $i<XS_SHOWNAV_MAX; $i++)
    	{
    		$num = pow(2, $i);
    		if($i != XS_SHOWNAV_DOWNLOAD && ($board_config['xs_shownav'] & $num) > 0)
    		{
    			$module[$module_name][$lang['xs_config_shownav'][$i]] = 'xs_frameset.'.$phpEx.'?action=' . $xs_shownav_action[$i];
    		}
    	}
    
    with:
    	### phpBB MF BEGIN ###
    	/*
    	// add new menu
    	$module_name = 'Extreme_Styles';
    	$module[$module_name]['Styles_Management'] = 'xs_frameset.'.$phpEx.'?action=menu';
    	for($i=0; $i<XS_SHOWNAV_MAX; $i++)
    	{
    		$num = pow(2, $i);
    		if($i != XS_SHOWNAV_DOWNLOAD && ($board_config['xs_shownav'] & $num) > 0)
    		{
    			$module[$module_name][$lang['xs_config_shownav'][$i]] = 'xs_frameset.'.$phpEx.'?action=' . $xs_shownav_action[$i];
    		}
    	}
    	*/
    	### phpBB MF END ###
    
11. Edit file /includes/functions.php: 2 modifications.
  1. Above:
    	//
    	// Set up style
    	//
    
    add this:
    	### phpBB MF BEGIN ###
    	mf_load_language();
    	### phpBB MF END ###
    
  2. Below:
    	$template = new Template($phpbb_root_path . $template_path . $template_name);
    add this:
    	### phpBB MF BEGIN ###
    	mf_modify_template($template, $row);
    	### phpBB MF END ###
    
12. Edit file /includes/functions_validate.php: 1 modification.
  1. Find
    		if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email))
    {
    bellow, add:
    			### phpBB MF BEGIN ###
    global $echophp;
    if($echophp->settings['email_list_user'] && mf_email_banned($email)) {
    return array('error' => true, 'error_msg' => $lang['Email_banned']);
    }
    ### phpBB MF END ###
13. Edit file /includes/page_header.php: 1 modification.
  1. Replace:
    $template->pparse('overall_header');
    with:
    ### phpBB MF BEGIN ###
    mf_modify_header2();
    ### phpBB MF END ###
    
    $template->pparse('overall_header');
    
    ### phpBB MF BEGIN ###
    mf_modify_header3();
    ### phpBB MF END ###
14. Edit file /includes/page_tail.php: 1 modification.
  1. Replace:
    $template->pparse('overall_footer');
    with:
    ### phpBB MF BEGIN ###
    mf_modify_footer1();
    ### phpBB MF END ###
    
    $template->pparse('overall_footer');
    
    ### phpBB MF BEGIN ###
    mf_modify_footer2();
    ### phpBB MF END ###
    
15. Edit file /includes/template.php: 1 modification.
  1. Above:
    				$compiled[] = $line;
    				continue;
    			}
    			/*
    			* <!-- END -->
    			*/
    
    add this:
    				### phpBB MF BEGIN ###
    				mf_modify_core_template('begin', $var, $line);
    				### phpBB MF END ###
    
    
  2. Above:
    				$compiled[] = $line;
    				continue;
    			}
    			/*
    			* <!-- BEGINELSE -->
    			*/
    
    add this:
    				### phpBB MF BEGIN ###
    				mf_modify_core_template('end', $var, $line);
    				### phpBB MF END ###
    
    
16. Edit file /templates/subSilver/overall_header.tpl: 1 modification. If you are going to use many templates, edit overall_header.tpl for each template.
  1. Replace:
    				<td><a href="{U_INDEX}"><img src="templates/subSilver/images/logo_phpBB.gif" border="0" alt="{L_INDEX}" vspace="1" /></a></td>
    with:
    				<td>
    <?php
    global $do_banner;
    #Is the settings set to specify a banner?
    if($do_banner == 1) {
    ?>
    <a href="{U_INDEX}">{LOGO}</a>
    <?php } else { ?>
    <a href="{U_INDEX}">{DEFAULT_LOGO}</a>
    <?php } ?>
    				</td>
    
17. Edit file /mod/tpl/index.tpl: 2 modifications.
  1. Remove these:
    		<td class="row1">{L_XS_CONFIGURATION}:<br /><span class="gensmall">{L_XS_CONFIGURATION_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_CONFIG}">{L_XS_SET_CONFIGURATION_LC}</a>]</td>
    	</tr>
    	<tr>
    		<th class="thHead" colspan="2">{L_XS_INSTALL_UNINSTALL_STYLES}</th>
    	</tr>
    	<tr>
    
    		<th class="thHead" colspan="2">{L_XS_MANAGE_STYLES}</th>
    	</tr>
    	<tr>
    
    		<td class="row1">{L_XS_MANAGE_CACHE}:<br /><span class="gensmall">{L_XS_MANAGE_CACHE_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_MANAGE_CACHE}">{L_XS_MANAGE_CACHE_LC}</a>]</td>
    	</tr>
    	<tr>
    		<th class="thHead" colspan="2">{L_XS_IMPORT_EXPORT_STYLES}</th>
    	</tr>
    	<tr>
    		<td class="explain" colspan="2">{L_XS_MAIN_COMMENT2}</td>
    	</tr>
    	<tr>
    		<td class="row1">{L_XS_IMPORT_STYLES}:<br /><span class="gensmall">{L_XS_IMPORT_STYLES_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_IMPORT_STYLES}">{L_XS_IMPORT_STYLES_LC}</a>]</td>
    	</tr>
    	<tr>
    		<td class="row1">{L_XS_EXPORT_STYLES}:<br /><span class="gensmall">{L_XS_EXPORT_STYLES_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_EXPORT_STYLES}">{L_XS_EXPORT_STYLES_LC}</a>]</td>
    	</tr>
    	<tr>
    		<td class="row1">{L_XS_CLONE_STYLES}:<br /><span class="gensmall">{L_XS_CLONE_STYLES_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_CLONE_STYLE}">{L_XS_CLONE_STYLES_LC}</a>]</td>
    	</tr>
    <!--	<tr>
    		<td class="row1">{L_XS_DOWNLOAD_STYLES}:<br /><span class="gensmall">{L_XS_DOWNLOAD_STYLES_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_DOWNLOAD_STYLES}">{L_XS_DOWNLOAD_STYLES_LC}</a>]</td>
    	</tr> -->
    	<tr>
    		<th class="thHead" colspan="2">{L_XS_EDIT_TEMPLATES}</th>
    	</tr>
    	<tr>
    		<td class="row1">{L_XS_EDIT_TEMPLATES}:<br /><span class="gensmall">{L_XS_EDIT_TEMPLATES_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_EDIT_STYLES}">{L_XS_EDIT_TEMPLATES_LC}</a>]</td>
    	</tr>
    	<tr>
    
  2. Replace:
    		<td class="row1">{L_XS_EXPORT_STYLES_DATA}:<br /><span class="gensmall">{L_XS_EXPORT_STYLES_DATA_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_EXPORT_DATA}">{L_XS_EXPORT_STYLES_DATA_LC}</a>]</td>
    	</tr>
    	<!-- IF S_SHOW_UPDATES -->
    	<tr>
    		<th class="thHead" colspan="2">{L_XS_OTHER_FUNCTIONS}</th>
    	</tr>
    	<tr>
    		<td class="row1">{L_XS_CHECK_FOR_UPDATES}:<br /><span class="gensmall">{L_XS_CHECK_FOR_UPDATES_EXPLAIN}</span></td>
    		<td class="row2" align="center">[<a href="{U_UPDATES}">{L_XS_CHECK_FOR_UPDATES_LC}</a>]</td>
    	</tr>
    	<!-- ENDIF -->
    
    with:
    		<td class="row1">{L_MF_LOGO_MANAGEMENT}:<br /><span class="gensmall">{L_MF_LOGO_INTRO}</span></td>
    		<td class="row2" align="center">[<a href="<?php echo append_sid("mf_logo.php") ?>">{L_MF_UPLOAD_LOGO}</a>]</td>
    	</tr>
    
18. Edit file /mod/tpl/uninstall.tpl: 2 modifications.
  1. Remove:
    	<td class="catRight" align="center"><span class="gen">{L_XS_REMOVE_FILES}</span></td>
  2. Remove:
    	<!-- BEGIN delete -->
    	<td class="{styles.ROW_CLASS}" align="center"><span class="gen"><a href="{styles.item.delete.U_DELETE}">{L_XS_UNINSTALL2_LC}</a></span></td>
    	<!-- END delete -->
    	<!-- BEGIN nodelete -->
    	<td class="{styles.ROW_CLASS}" align="center"><span class="gen">&nbsp;</td>
    	<!-- END nodelete -->
    


Files, Folders and Tables Format (New Format)
echoPHP MF is designed to support MultiDomains on a single hosting account support parked domains, so it has its own files, folders and tables format to prevent forum duplicate issues. It bases on forum url to format files, folders and tables. Here is the rule:
Forum URL: http://boardname.domain.com/
-> Cache folder: /cache/boardname.domain.com/ (only for phpBB3)
-> Files folder: /files/boardname.domain.com/ (only for phpBB3)
-> Logo folder: /logos/boardname.domain.com/
-> Logo file: /logos/boardname.domain.com/boardname.gif (may be .jpg, .jpeg, .png, .bmp, base on which file type forum admins are allowed to upload)
-> Avatar folder: /images/avatars/boardname.domain.com/
-> Store folder: /store/boardname.domain.com/ (only for phpBB3)
-> Table prefix: boardname_domain_com_
Note: If your domain contains hyphens (-), hyphens will be replaced with underscores (_) in table prefix because phpBB2 is not designed to work with table prefix has hyphens although MySQL allows hyphens in table names.

For instance:
1. Forum URL: http://support.freeforums.com/
-> Cache folder: /cache/support.freeforums.com/
-> Files folder: /files/support.freeforums.com/
-> Logo folder: /logos/support.freeforums.com/
-> Logo file: /logos/support.freeforums.com/support.jpg (may be .gif, .png, etc)
-> Avatar folder: /images/avatars/support.freeforums.com/
-> Store folder: /store/support.freeforums.com/
-> Table prefix: support_freeforums_com_

2. Forum URL: http://support.free-forums.com/
-> Cache folder: /cache/support.free-forums.com/
-> Files folder: /files/support.free-forums.com/
-> Logo folder: /logos/support.free-forums.com/
-> Logo file: /logos/support.free-forums.com/support.jpg (may be .gif, .png, etc)
-> Avatar folder: /images/avatars/support.free-forums.com/
-> Store folder: /store/support.free-forums.com/
-> Table prefix: support_free_forums_com_


Using Multiple Databases
Another powerful feature of echoPHP MF is the ability to use multiple databases. The database you installed echoPHP MF on is automatically added to the database list when you installed, but if you would like to add more, simply follow the below instructions:

1. Log into your web hosting control panel and create the database.

2. Grant permissions to the user you created when you installed echoPHP MF. If, for example, the database you installed echoPHP MF on was db1 and the user was user1, and you created db2, you would add user1 to db2.

3. Log into your echoPHP MF admin area and click the "View/Edit/Add Databases" link.

4. Click "Add Database", enter the database name and press the button to save. Your database is now in the database pool.


If you would like to make it the "active" database (the one that users' boards will be set up on when they sign up) click the "yellow light" icon of the database name. Otherwise echoPHP MF defaults to using the currently active database until it has reached its "quota" of forums (which is set in the echoPHP MF Configuration), and will then switch to the next database.


Using Multiple Domains
Another powerful feature of echoPHP MF is the ability to use multiple domains. The domain you installed echoPHP MF on is automatically added to the domain list when you installed, but if you would like to add more, simply follow the below instructions:

1. Log into your web hosting control panel and park the domains.

2. Do the step 1 of the Installation Instructions section for each domains.

3. Log into your echoPHP MF admin area and click the "View/Edit/Add Domains" link.

4. Click "Add Domain", enter the domain name, select active status and press the button to save. Your domain is now in the domain pool.


Using Global Language
Global Language: this is a new feature that is designed to support echoPHP MF customers. This feature helps you force and overwrite a language for all other language packs of forums. As you known, almost of mods just support English but you don't support English for your fourms or you are unable to translate English into other languages, so those mods in other language will be missed language on user interface. This new feature will solve the problem.

This feature does not work for mods use its own language file, for example: eXtreme Styles Mod. This feature just supports for eXtreme Styles Mod, it doesn't support for mods using external language file.

How it works?
- It makes language of mods available for all language packs. You just need to copy language of mods into a single php file.

Is it easy to get it works?
- Yes, it's surely simpler and faster than copy language of mods for all language packs.

How to do that?
- Instead of copying language of a mod to all language packs, just copy language into a single file, echoPHP MF will help you make it availble for all language packs.

Following these instructions below to get it works.
  1. Open /mf_lang/index_mine.php.
  2. Add language of mods below:
    #Paste language of mods below.
For example:
  1. Open /mf_lang/index_mine.php.
  2. below:
    #Paste language of mods below.
    add this:
    $lang['General'] = 'General Admin';
    $lang['Users'] = 'User Admin';
    $lang['Groups'] = 'Group Admin';
    $lang['Forums'] = 'Forum Admin';
    $lang['Styles'] = 'Styles Admin';
    
    => It will like this:
    #Paste language of mods below.
    $lang['General'] = 'General Admin';
    $lang['Users'] = 'User Admin';
    $lang['Groups'] = 'Group Admin';
    $lang['Forums'] = 'Forum Admin';
    $lang['Styles'] = 'Styles Admin';
    
Will it overwrite my translated language for a language pack of my language packs to the global language?
- No, it won't overwrite, it just fill missing language.

For example:
- You support 3 language paks: Russia, Turkish, Chinese. You install English language (that the mod supports) into global language file (/mf_lang/index_mine.php). Now, someone help you or you can translate English into Russia, copy English language into /language/lang_russia/lang_main.php (do it as usual before) then translate it. If you delete a phrase, it will be replaced with a global language phrase.
- For details:
  1. Open /mf_lang/index_mine.php.
  2. Below:
    #Paste language of mods below.
    add this:
    $lang['Configuration'] = 'Configuration';
    $lang['Permissions'] = 'Permissions';
    $lang['Manage'] = 'Management';
    
    => It will like this:
    #Paste language of mods below.
    $lang['Configuration'] = 'Configuration';
    $lang['Permissions'] = 'Permissions';
    $lang['Manage'] = 'Management';
  3. Translate English into Russia in /language/lang_russia/lang_main.php:
    $lang['Configuration'] = 'Configuration (in Russia)';
    $lang['Permissions'] = 'Permissions (in Russia)';
    
  4. => Turkish, Chinese at run time:
    $lang['Configuration'] = 'Configuration';
    $lang['Permissions'] = 'Permissions';
    $lang['Manage'] = 'Management';
  5. => Russia at run time:
    $lang['Configuration'] = 'Configuration (in Russia)';
    $lang['Permissions'] = 'Permissions (in Russia)';
    $lang['Manage'] = 'Management';
Hope the above examples make sense.


echoPHP MF constants and variables at run time
1. echoPHP MF constants: very useful when you would like to code a mod yourself.
- MFORUM: forum name of the current forum.
- MFORUM_ID: forum id of the current forum (since version 2).
- MDOMAIN: domain name of the current forum (since version 2).
- MDOMAIN_ID: domain id of the current forum (since version 2).
- MCATETORY_ID: category id of the current forum (since version 3).
- MHOST: host name of the current forum, always in xxxx.domain.com (since version 2).
- MPDOMAIN: domain name of the parked domain you are accessing (since version 3).
- MCHOST: domain name of the current forum. If you access via parked domain, the value will equal to MPDOMAIN. If you access via subdomain, the value will equal to MHOST (since version 3).

2. echoPHP MF variables: currently, it only supports $mforum, other variables also are available but it may be changed in next releases so we don't support it.
- $mforum: forum name of the current forum (since version 2, for MOD compatibility with Sebflipper MF). If you use $mforum from a function, you must do global $mforum; first.

3. Example: assume that a forum has URL: http://demo.domain.com, its id: 25, id of its domain: 1, id of its category: 3, parked domain: demo.com.
echo MFORUM; //it returns 'demo'.
echo MFORUM_ID; //it returns 25.
echo MDOMAIN; //it returns 'domain.com'.
echo MDOMAIN_ID; //it returns 1.
echo MCATETORY_ID; //it returns 3.
echo MHOST; //it returns 'demo.domain.com'.
echo MPDOMAIN; //it returns 'demo.com'.
echo MCHOST; //it returns 'demo.com', like MPDOMAIN constant if you access via parked domain, or 'demo.domain.com' like MHOST constant if you access via subdomain.
echo $mforum; //it returns 'demo' like MFORUM constant.


.htaccess file
If you use .htaccess file, your server must be enabled it.

If you use URL Rewrite for SEO purpose, please rename htaccess.txt to .htaccess, the file is located at the root web folder of your domain.

If the root web folder of you domain already has .htaccess, append all content of htaccess.txt into .htaccess. If you don't know how to update .htaccess or get errors when update it, ask our members on forums or submit a ticket at our helpdesk.

If you would like to redirect users (or search egnines) to http://www.domain.com when they visit http://domain.com, remove the comments (#) at the begin of lines below and replace yourdomain\.com with your_real_domain\.com and www.yourdomain.com with www.your_real_domain.com:
#RewriteCond %{HTTP_HOST} ^yourdomain\.com
#RewriteRule (.*) http://www.yourdomain.com/$1 [R=301,L]
For example:
RewriteCond %{HTTP_HOST} ^freeforums\.org
RewriteRule (.*) http://www.freeforums.org/$1 [R=301,L]


SECURITY
Database Upgrade Tool: A very powerful feature of echoPHP MF is the ability to run updates on all forums on the selected database. Because in the wrong hands this tool could be used to completely wipe out all of your hosted forums, extra security measures have been taken to protect your forums.

After installation you will need to open /mf_functions/multiconfig.php and find this line:
$auth_admin = "";

You can put your current admin name (the one you chose while installing) there, but for optimal security I would recommend creating a second admininstrator for the sole purpose of using this database tool. When you've added the name, reupload the file.


Create new Admin account: Right now echoPHP MF does not have the ability to add admins via the echoPHP MF Admin Panel, so you will need to run the following command in phpMyAdmin:
INSERT INTO `mf_phpbb_admin` (`name`, `pass`, `email`) VALUES ('[ADMIN NAME]', md5('[ADMIN PASS**]'), '[ADMIN EMAIL]');

Replace [ADMIN NAME] with the admin username.
Replace [ADMIN PASS**] with the admin password.
Replace [ADMIN EMAIL] with the email of the admin.


Other Considerations
The IP banning tool: that is built in to echoPHP MF is basic and can be circumvented if the bothersome user is using a proxy, or even if their ISP has dynamic IP assignment. For more powerful protection it is recommended that you block them at the server level as well.

Multiple Languages: echoPHP MF is built to support multiple languages. But, multiple languages function is not implemented completely for echoPHP MF, we are trying to implement it completely. So some sections of Admin area will be displayed in English. If you can't change it via MF Admin Area -> Language Management -> Manage Phrases, try to change it via templates.


FAQs
1. Upgrade/Conversion questions:
  1. What do i need to do if the upgrade/conversion script stop the upgrade/conversion or i get other errors/problems?
    - Please submit ticket at our helpdesk with your screenshot of the problem. Remember to tell us your site url, license key, number of forums, number of databases, number of domains, and other login info if can.
  2. How do it get my screenshot? Do i need to install a software to do it?
    - No, it's very simple. Just press Print Scrn (Print Screen) key on the keyboard, open an image editor, such as: Paint, Photoshop, etc or you can open MS Word or other rich text editor -> press Ctrl + V or Paste icon of the image editor -> the screen captured -> save it and send us.
  3. I installed Forum Meta Tags MOD or Advance Meta Tags MOD, will the upgrade/conversion script convert it to echoPHP MF format?
    - Yes, it will convert it.
  4. I installed phpBB SEO keyword URLs MOD for the version 1 or Sebflipper, does echoPHP MF v2 support it?
    - No, echoPHP MF doesn't support the mod. But it supports new keyword urls like the mod. So you don't need this mod.
  5. Will keyword URLs of phpBB SEO keyword URLs MOD work under echoPHP MF v2?
    - Yes, but not for all, it just support URLs of forum category, forum title, topic title in .htaccess.
  6. My forum templates are installed the Banner MOD of Sebflipper MF, will them still work under echoPHP MF?
    - Yes, they will work fine. Go to echoPHP MF Admin area -> phpBB MF Configuration -> Forum Integrated Stuff -> select on "Sebflipper" checkbox and save.
  7. I installed Google Adsense Color Match MOD of Sebflipper MF, does echoPHP MF Ads Color Match has a tool allow me import colors from adsense.cfg into its one because i don't want to setup it again for echoPHP MF, it will take a long time to do it again?
    - No, it does not. But it will import colors from adsense.cfg automatically when you load Manage Ads Color Match page at the first time. So you will do nothing.
  8. Do you support $mforum variable for my own mods (because i coded them under Sebflipper MF)?
    - Yes, we do. Please refer to echoPHP MF constants and variables section.
2. Usage questions:
  1. Do you support URL Rewrite (keyword URLs) and Meta Tags for SEO purpose?
    - Yes, we do. We support for forums, board directory and other MF page. To enable it, please go to MF Admin area -> phpBB MF Configuration -> SEO.
  2. I enabled URL Rewrite but it get URL Not Found error, how to fix this?
    - Please refer to this section.
  3. I checked on something in phpBB MF Configuration, then urls are changed. What's going on?
    - That means you just switched over to keyword URLs format for URLs of forums, homepage, board directory, etc. If you get errors with new URLs, read this section. If you don't want to use this feature, disable via MF Admin area -> phpBB MF Configuration -> SEO.
  4. How to configure Sebflipper MF forum templates can work with echoPHP MF forum templates?
    -> Go to MF Admin area -> phpBB MF Configuration -> Forum Integrated Stuff to configure it.
  5. Can i grant permissions to a database after i add it into the available database list?
    - No, you can't. echoPHP MF will try to access the database you are adding, if it can't access to the database, it won't allow you add that database. So please grant permissions for databases before you add them into the available database list.
  6. Can i park my additional domains after i add it into the available domain list?
    - No, you can't. echoPHP MF will try to verify that the domains you are adding are live, if it can't verify because of some reasons or the domains weren't parked, it won't allow you add the databases. So please park your additional domains first.
  7. I parked additional domains, why it don't allow me add domains?
    - There are some reasons:
    1. The DNS propagation is not still completed. When you changed the name server of your domains, it will take from a few minutes to 48 hours to complete the propagation. So please wait for atleast a few hours.
    2. Network problems of your server.
    3. Network functions of PHP are disabled.
  8. Why echoPHP MF requires i have to grant permissions to databases or park domains first?
    - To ensure that you won't forget to grant permmissions to databases or park domains. If you forget, your users will get errors when signup.
  9. Can i enter my own phrase for MF pages (home.php, signup.php, etc)?
    - Yes, you can, but please do not enter into /mf_lang/lang_english/index.php, enter into /mf_lang/lang_english/index_mine.php. If you enter a phrase has a key of phrase in /mf_lang/lang_english/index.php, the echoPHP MF one will be overwrited.
  10. I don't use statistics for homepage and other MF pages at this time, where i can disable statistics?
    - Edit /mf_temp/header_mine.php, comment at stats you don't want to use. We has document included in the file, follow its intructions to use it.
  11. How to comment a PHP code line or multiple PHP code lines?
    - Please refer to PHP Comments.
3. Other questions:
  1. I don't see sid variable (sid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) on URLs after the installation/upgrade/conversion, what's going on?
    - echoPHP MF version 2 remove sid variable from URLs automatically for SEO purpose. Because Google and other search engines will like it much more, your site and forums will be indexed very well -> you may get more signups and revenue.
  2. I'm sick of translating from English (or an other language) to other languages for forums, can you please advice how to force English (or an other language) for all forums?
    - Yes, that's my pleasure, please refer to Using Global Language section.
  3. I don't use English language pack (English language pack deleted), eXtreme Styles Mod also doesn't support Non-English language pack and i am unable to translate English to other languages, will i get missing language like the version 1?
    - No, it won't. It's already fixed. It now will force English for the mod if you don't support English for forums.
  4. I have uploaded many templates but the logos wasn't changed to my customized logo, how to fix this?
    - Please refer to Edit overall_header.tpl section to allow users can change forum logos.
  5. How many files of a template i have to edit for echoPHP MF compatibility?
    - Just 1 file, overall_header.tpl.
  6. Where i can contact you if i have a problem?
    - Please contact to us via our helpdesk at http://help.echophp.com. For problems does not related to echoPHP MF Software (Modifications, Templates, Languages, phpBB), please post on our forums http://www.echophp.com/forums/.
  7. I purchased your script and i would like to access to your Client Discussion forum and Modifications forum at http://www.echophp.com/forums/, how i can?
    - Please submit a ticket with your username on the forum and the license key, we will add you to our Verified Customer Group so you can access to other private forums that are just for our customers.
  8. Do you support for other modifications? I noticed that there are many modifications on your Modifications forum.
    - Sorry, currently we do not support for any modifications that are moded with echoPHP MF. Modifications on our Modifications forum is offering by our "guru" customers that they are very helpful to share with others.
  9. How many mods you integrated with phpBB files you re-distributed?
    - We just pre-integrated eXtreme Styles Mod by Vjacheslav Trushkin - http://www.phpbbstyles.com in it.
  10. How about keyword URLs, Meta Tags, Global Admin Template, Global Language, Guests Sescion Removal? Are they considered pre-integrated mods?
    - No ABSOLUTELY, they are not pre-integrated mods. We do not use those mods, we have programmed new features that have behaviour like them so people confuse that they are pre-installed mods. So don't install those mods or mods like those.
  11. I need a new feature, where i can ask for it?
    - Please ask for it at http://www.echophp.com/forums/phpbb-multiforums-feature-requests-vf4.html. Notice: not all feature requests will be supported for next releases, we just support when it's useful and we are able.
  12. Where should i report a bug?
    - Please report it at our helpdesk.
  13. Where will i refer to a documentation for template usage?
    - Please refer to http://smarty.php.net/docs.php.
  14. Can i edit admin templates?
    - No, please do not edit admin templates, we currently don't support admin templates update.
  15. How many templates and files i have to modify when i would like to re-design it?
    - There are 12 templates in .html file type you can edit in /mf_temp. /mf_temp/mf_styles.css contain styles for the template. DO NOT modify admin templates in /mf_temp/admin/.


echoPHP phpBB MultiForums Software
©2006 - 2012 echoPHP
http://www.echophp.com
Use of this software without a valid license is strictly prohibited and punishable by law.


Credits
phpBB - http://www.phpbb.com
eXtreme Styles Mod by Vjacheslav Trushkin - http://www.phpbbstyles.com
xAjax PHP Class - http://www.xajaxproject.org
Smarty Template Engine - http://smary.php.net
TinyMCE WYSIWYG Editor - http://tinymce.moxiecode.com