The functionality of Znote AAC basically consists of 4 files.
1. The
config file. This is where you configurate basically everything.
2. The page file. This is any of the files in root directory[The files you see directly on the
github repo without clicking on any folder]. (With the exception of config files, ipn_gateway files and the sub.php file. A layout may overwrite any of these page files, in which case you need to look into
/layout/sub/ folder to see the custom version.
3.
general.php file which is consist of some general purpose functions.
4.
users.php file which is basically every OT related function.
I intentionally try to keep things as dependency free and simple as possible. You don't need to learn any framework or advanced stuff to contribute to my AAC. Just basic PHP and HTML. There is not an ocean of files to look through, just a handful to get an understanding of how Znote AAC is built. Simple and procedural. I barely even use classes, just purpose-specific functions for pretty much everything.
These 4 files is basically what you need to use CTRL+F in to figure out how backend stuff is coded/how it works. Compatibility has been created using lots of conditional statements. (found 35 of them in users.php if you search for "ServerEngine") and a flexible config file.
Issues between revisions of 0.3.6/7 is solved simply by making it optional in config.php. Salt is disabled by default, but can be enabled if your server supports it. Since the AAC creates these accounts, even if your distro supports salts, unless I add it to the account upon registratrion, they can login without it.
Znote AAC does not support multi-world. Most OT owners are just running 1 OT server, and multi-world bloats things up. Extra clicks on stuff like highscore. Unless your going multi-world, its just bothersome. If you have 2 worlds and you want to use Znote AAC you just gotta set up two instances of Znote AAC, one for each world.
Znote AAC does not alter any original OT tables, it only adds extra tables (etc znote_accounts, znote_players) that extends the original tables (accounts, players). That way it is irrelevant for my tables how the original tables look like. And the server doesn't get bloated parsing through irrelevant AAC data.
But it is a tedious job.
@Nottinghster recently did an awesome job adding OTHire support to Znote AAC, feel free to look at the patch
here. Look into users.php, you might need to click on it to open the diff since the file is pretty large and the change substantial. SQL queries that are done towards the target distribution has to be adapted to the differences in the database. And some things might have to be disabled because of unsupported features.
Btw Znote AAC supports these engines/versions:
- OTHire
- TFS 0.2
- TFS 0.3/4
- TFS 1.x
- Distributions based on these (such as OTX).