The Greek God PartyStarted by Arceus at Apr 09, 2019 1:53 am
When one door closes, another one opens. If it doesn't, kick the dang thing in.
The Greek God Party
Or Gaia's Core Controllers
In the back-end of Gaia is a folder called core. In this folder are all of the controllers that make Gaia do, and most of the time, you won't need to know what is what. However, for the purposes of troubleshooting and being able to narrow down issues to certain, individual controllers, we'll go over really quick which controller is which, and what they do. It will also be helpful if ever anyone needs information from a controller that it doesn't already give them.
Aether is the primordial god, according to Hesiod, of heaven. What this means is hotly debated between mythology experts, with most believing that he is a sky god insofar as he is god of the sky that the Olympian gods inhabit, not our boring dirty mortal sky, but take that as you will.
In the Gaia suite, Aether is the core controller for all the file upload and management functions. When an image is uploaded to the system, the models will pass the files array to Aether, and Aether will decide what to do with it. It also rearranges the files array if they're messed up due to bracketing, and all character-end images are to enable multiple image uploads.
The primordial goddess, in some source or another, of compulsion or necessity. She is the consort of Chronos (not to be confused with Cronus, the father of the Olympians, not the same god).
As fitting her name, in the Gaia suite, Ananke controls the compulsory and necessary evils of making Gaia work. As such, Ananke loads the settings, the settings array, breaks up the URL a user requests, loads theme templates, generates pages, validates user input, calculates user age, and a couple, menial things.
Chaos is always the first thing to exist, and is both a deity and a thing, depending on the source material/story. From Chaos, all other things were born.
Don't worry about Chaos right now.
Chronos, in some sources, not Hesiod, is the primordial god of time. He is not the same as Aion, whom is the primordial god of eternity. His consort is Ananke.
Interestingly, the controller Chronos has very little to do with time! In the Gaia suite, Chronos controls all the functionality related to the forum module of Gaia, from managing categories and forums, to posting new topics and messages.
The primordial god of darkness, consort to Nyx, Erebos controls most of the helper things in Gaia. It displays error and success messages, manages cookies, hashes, time formatting, HTML processing, turning strings into SEO-friendly versions, triggering Nyx's scripting, logging users that are online, loading the text editor, and the copyright output.
Fun tale, Erebos has been renamed about three times now. Originally it was called helper, then bee. Erebos' name is also more often spelled Erebus, but I just, typed Erebos instinctively and went with it (it is a valid spelling, just not the most common).
Gaia is the primordial goddess of the earth, more the personification of earth, and is the mother of the Titans, Cyclopses, and some other critters and monsters, with her husband Ouranos (Uranus). This is the controller that starts the domino chain; everything in the Gaia system goes first through index.php, which sets up some basic things and triggers Gaia. Gaia then tells everything else what to do and how to do it.
Hemera is the primordial goddess of day, and according to Hesiod, the daughter of Erebos and Nyx. In the suite, Hemera is the controller for the theme system, and handles editing, managing, uploading, and creating themes. You'll like her better when she's done...
Hermes is the son of a Titan, I believe, and the messenger of the gods. Fittingly, in Gaia, Hermes is the controller for menial get-set functions, and handles most of the menial junk in the admin panel, like adding new admin notes, saving the site settings, news, affiliate, and block management, and also handles DM conversation functions and fetches the online list (the one on /online).
Hypnos is a son of Nyx and Erebos, the brother of Thanatos (death), and the god of sleep. He is the father of over 200 sleep gods, the most well-known of them being Morpheus. In the suite, Hypnos is the controller for the entirety of the character system. From creating new alliances, to editing characters, to the approval queue, Hypnos handles everything. Except images. That's Aether's job.
Metis is the Titaness of Wisdom, and the mother of Athena. Zeus, fearing Athena would overthrow him as he did his father and his father did his own father (no, really, there was a lot of father-betrayal in Greek myth, no wonder all the dude-gods were messed up), ate Metis in hopes of preventing Athena's birth. Instead, she was born full-grown, fully armoured and armed, from his head. Bet that gave him quite the migraine.
In the Gaia suite, Metis is the handler for the database functions. Gaia runs on PDO, which is in itself a database wrapper, so Metis just exists as an abstraction layer to take full advantage of PDO's statement-data separation to prevent SQL injection. It is quite powerful, and set up a lot like SMF's $smcFunc, so it will be familiar to those that need to see it, but, most likely, you won't ever really need to.
The primordial goddess of night, Nyx is the consort of Erebos, and, like many primordial gods, also often the personification of night. In the Gaia suite, Nyx is the handler for all of our alert functions, and, as well, all of the Ajax scripting in the system. Every time something happens without reloading the page, that's Nyx at work.
Ouranos, better known as Uranus (we use his original name spelling), is the primordial god and personification of the sky. We don't really know what the Greeks meant by sky. Maybe just the air. Whatever. In any case, Ouranos is the consort of Gaia, and, much like Gaia is the main controller of something, Ouranos does the same thing Gaia does: in the admin panel. Yep, the admin panel routes through /admin/index.php, which triggers Ouranos, and Ouranos tells everything else what to do.
In earlier tales, particularly Hesiod's (I run off Hesiod can you tell), Ourea was a male god of the mountains, but in later tales, "Ourea" came to reference small sprites/nymphs that were the nature spirits of mountains. No idea why? Anyway, in Gaia, Ourea is the user controller. It handles registration, profile updating and display, logging in, displaying the member list in the admin panel, switching themes, user cover photo things... barring the actual upload, that's still Aether's job.
The primordial god of the ocean, Pontus oversees blocks in Gaia. This includes loading blocks, fetching the data that block should be displaying, depending on what type it is, and then returning all this data to the models so that it can be output in the display templates. All blocks use the exact same template; it's Pontus that makes their content sections look different, so unfortunately there is a good bit of template in my controllers and the logic isn't exactly separate from the view here, but eh you win sometimes, you lose other times. It was ultimately less intensive to just do some of the formatting in Pontus than bother triggering another file load.