There are module that, in order to function properly, require the addition of functions in the original files of PHP-Nuke. These modules will overwrite
mainfile.php, modules.php, or some other file.
Beware of subsequent installations!
If you install a module that changes PHP-Nuke's original files, you may not be able to conduct the installation of another one that requires changes in those files too! The new module's
installation script may not find the expected code to modify, since it will have been changed by the previous one.
For example, in PHP-Nuke 6.0 there were two interesting add-on modules, Indy News and Groups, that both required changes to be made in mainfile.php. In order to
get them both to work, we had to do the changes in mainfile.php by hand, resulting in a file that contained a mix of modifications by both modules.
Automatic upgrades may not work any more!
In case you had to change the original tables of PHP-Nuke (i.e. you had not just to append some new tables to the database, but to change existing ones), then you
may find out the next time you want to upgrade, the automatic upgrade scripts that come with each new PHP-Nuke version (see Chapter
4) do not work any more!
This is because the scripts will search for the original table structure to upgrade, but will find some new one instead. In this case it is recommended to have a look at the upgrade scripts and do
the changes manually, using either a graphical frontend, like phpMyAdmin (Section 3.3) or the MySQL command line (Section
The same warning applies to file changes during upgrades: it is best to make the changes in the files by hand, also for those files of the new modules. Such a procedure can be very painful and
time-consuming. It is recommended that you use a local test server for all these changes and that you do not upload the modified files, until you have tested them thoroughly and made all backups of
the production system. (See Figure 26-2 and Section 7.1, for PHP-Nuke's own backup function,
Section 3.3 for phpMyAdmin's functionality, which also includes a very good web interface to database backups and Section
27.16, for home-made scripts that automate the backup work for you).