- // Compatibility with the Firefox App
- if (($a->module == "users") && ($a->cmd == "users/sign_in")) {
- $a->module = "login";
- }
-
- $privateapps = Config::get('config', 'private_addons');
-
- if (is_array($a->addons) && in_array($a->module, $a->addons) && file_exists("addon/{$a->module}/{$a->module}.php")) {
- //Check if module is an app and if public access to apps is allowed or not
- if ((!local_user()) && Addon::isApp($a->module) && $privateapps === "1") {
- info(L10n::t("You must be logged in to use addons. "));
- } else {
- include_once "addon/{$a->module}/{$a->module}.php";
- if (function_exists($a->module . '_module')) {
- Friendica\LegacyModule::setModuleFile("addon/{$a->module}/{$a->module}.php");
- $a->module_class = 'Friendica\\LegacyModule';
- $a->module_loaded = true;
- }
- }
- }
-
- // Controller class routing
- if (! $a->module_loaded && class_exists('Friendica\\Module\\' . ucfirst($a->module))) {
- $a->module_class = 'Friendica\\Module\\' . ucfirst($a->module);
- $a->module_loaded = true;
- }
-
- /**
- * If not, next look for a 'standard' program module in the 'mod' directory
- * We emulate a Module class through the LegacyModule class
- */
- if (! $a->module_loaded && file_exists("mod/{$a->module}.php")) {
- Friendica\LegacyModule::setModuleFile("mod/{$a->module}.php");
- $a->module_class = 'Friendica\\LegacyModule';
- $a->module_loaded = true;
- }
-
- /**
- * The URL provided does not resolve to a valid module.
- *
- * On Dreamhost sites, quite often things go wrong for no apparent reason and they send us to '/internal_error.html'.
- * We don't like doing this, but as it occasionally accounts for 10-20% or more of all site traffic -
- * we are going to trap this and redirect back to the requested page. As long as you don't have a critical error on your page
- * this will often succeed and eventually do the right thing.
- *
- * Otherwise we are going to emit a 404 not found.
- */
-
- if (! $a->module_loaded) {
- // Stupid browser tried to pre-fetch our Javascript img template. Don't log the event or return anything - just quietly exit.
- if (!empty($_SERVER['QUERY_STRING']) && preg_match('/{[0-9]}/', $_SERVER['QUERY_STRING']) !== 0) {
- killme();
- }
-
- if (!empty($_SERVER['QUERY_STRING']) && ($_SERVER['QUERY_STRING'] === 'q=internal_error.html') && isset($dreamhost_error_hack)) {
- logger('index.php: dreamhost_error_hack invoked. Original URI =' . $_SERVER['REQUEST_URI']);
- goaway(System::baseUrl() . $_SERVER['REQUEST_URI']);
- }
-
- logger('index.php: page not found: ' . $_SERVER['REQUEST_URI'] . ' ADDRESS: ' . $_SERVER['REMOTE_ADDR'] . ' QUERY: ' . $_SERVER['QUERY_STRING'], LOGGER_DEBUG);
- header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . L10n::t('Not Found'));
- $tpl = get_markup_template("404.tpl");
- $a->page['content'] = replace_macros($tpl, [
- '$message' => L10n::t('Page not found.')
- ]);
- }
-}
-
-/**
- * Load current theme info
- */
-$theme_info_file = 'view/theme/' . $a->getCurrentTheme() . '/theme.php';
-if (file_exists($theme_info_file)) {
- require_once $theme_info_file;
-}
-
-
-/* initialise content region */
-
-if ($a->getMode()->isNormal()) {
- Addon::callHooks('page_content_top', $a->page['content']);