aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/lib/elgglib.php2
-rw-r--r--engine/lib/install.php32
-rw-r--r--engine/lib/sites.php22
-rw-r--r--engine/schema/mysql.sql2
4 files changed, 44 insertions, 14 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index 37245a6db..9005cf010 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -870,7 +870,7 @@
* @return true|false Depending on success.
*/
function run_function_once($functionname, $timelastupdatedcheck = 0) {
- if ($lastupdated = datalist_get($name)) {
+ if ($lastupdated = datalist_get($functionname)) {
$lastupdated = (int) $lastupdated;
} else {
$lastupdated = 0;
diff --git a/engine/lib/install.php b/engine/lib/install.php
index 79b170842..a5e1b6f4d 100644
--- a/engine/lib/install.php
+++ b/engine/lib/install.php
@@ -42,4 +42,36 @@
}
+ /**
+ * Function that gets run once, when the system is first installed
+ *
+ */
+ function install_prerequisites() {
+
+ // Load existing config
+ global $CONFIG;
+
+ // Create a new Elgg site
+ $site = new ElggSite();
+ $site->save();
+
+ // Set datalist alerting us to the fact that the default site is this one
+ datalist_set('default_site',$site->getGUID());
+
+ }
+
+ /**
+ * Functions to be run at install init-time.
+ *
+ */
+ function install_init() {
+
+ // Run the install_prerequisites function just once
+ run_function_once("install_prerequisites");
+
+ }
+
+ // Make sure install_boot gets called on system book
+ register_event_handler('init','system','install_init',1);
+
?> \ No newline at end of file
diff --git a/engine/lib/sites.php b/engine/lib/sites.php
index a0d5005ee..89ab9bd80 100644
--- a/engine/lib/sites.php
+++ b/engine/lib/sites.php
@@ -462,24 +462,22 @@
* @return true
*/
function sites_init($event, $object_type, $object) {
- /* global $CONFIG;
- $CONFIG->site_id = 1;
-
- trigger_event('init','sites');
-
- if ($site = get_data_row("select * from {$CONFIG->dbprefix}sites where id = 1")) {
- if (!empty($site->name))
- $CONFIG->sitename = $site->name;
- if (!empty($site->domain))
- $CONFIG->wwwroot = $site->domain;
+ global $CONFIG;
+ $site = trigger_plugin_hook("siteid","system");
+ if ($site === null || $site === false) {
+ $CONFIG->site_id = (int) datalist_get('default_site');
+ } else {
+ $CONFIG->site_id = $site;
}
+ $CONFIG->site_guid = $CONFIG->site_id;
+
+ return true;
- return true;*/
}
// Register event handlers
- register_event_handler('init','system','sites_init',0);
+ register_event_handler('init','system','sites_init',2);
?> \ No newline at end of file
diff --git a/engine/schema/mysql.sql b/engine/schema/mysql.sql
index 5c71a3192..078a64520 100644
--- a/engine/schema/mysql.sql
+++ b/engine/schema/mysql.sql
@@ -229,7 +229,7 @@ CREATE TABLE `prefix_users_apisessions` (
-- Datalists for things like db version
CREATE TABLE `prefix_datalists` (
- `name` varchar(16) NOT NULL,
+ `name` varchar(32) NOT NULL,
`value` text NOT NULL,
KEY `name` (`name`)
);