Documentation is available at createsite.inc.php
1 <?php
2 /**
3 * @author Jan H. Andersen <jha@ipwsystems.dk>
4 * @author Martin R. Larsen <mrl@ipwsystems.dk>
5 * @author Jesper Laursen <jl@ipwsystems.dk>
6 * @copyright {@link http://www.ipwsystems.dk/ IPW Systems a.s}
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
8 * @package METAjour
9 * $Id: createsite.inc.php,v 1.7 2005/02/16 05:08:47 jan Exp $
10 */
11
12 function createSite($username, $password, $path, $url, $name) {
13 global $system_path $site $viewer_url $viewer_path
14
15 /* save current values */
16 $oldusr = $_SESSION['usr'];
17 $oldsite = $site;
18 $oldviewer_url = $viewer_url;
19 $oldviewer_path = $viewer_path;
20
21 /* set important variables */
22 $viewer_url = $url;
23 $viewer_path = $path;
24 $_SESSION['usr']['validuserid'] = 1;
25
26 $db =& getDbConn();
27 $site = $db->getOne("select max(site) as site from site");
28 $site++;
29 $_SESSION['site'] = $site;
30 $db->query("INSERT INTO site VALUES ($site, '$name', '$viewer_path', '$url', '')");
31
32 $u = owNew('user');
33 $u->createObject(array("name" => 'SYSTEM'));
34
35 $u->createObject(array("name" => $username, "password" => $password));
36 $userid = $u->getObjectId();
37 $db->query("update object set createdby = $userid, changedby = $userid, checkedby = $userid where objectid = $userid");
38
39 $g = owNew('usergroup');
40 $g->createObject(array("name" => "ANONYMOUS"));
41 $id = $g->getObjectId();
42 $db->query("update usergroup set level=0 where objectid = $id");
43
44 $g->createObject(array("name" => "USER"));
45 $id = $g->getObjectId();
46 $db->query("update usergroup set level=10 where objectid = $id");
47
48 $g->createObject(array("name" => "EDITOR"));
49 $id = $g->getObjectId();
50 $db->query("update usergroup set level=20 where objectid = $id");
51
52 $g->createObject(array("name" => "MANAGER"));
53 $id = $g->getObjectId();
54 $db->query("update usergroup set level=30 where objectid = $id");
55
56 $g->createObject(array("name" => "ADMINISTRATOR"));
57 $id = $g->getObjectId();
58 $admingroup = $g->getobjectid();
59 $db->query("update usergroup set level=40 where objectid = $id");
60 $db->query("insert into usergroupmember (groupid, userid) values ($admingroup, $userid)");
61
62 $obj = owNew('profile');
63 $obj->createObject(array("name" => "standard"));
64 $obj->setStandard();
65
66 $obj = owNew('stylesheet');
67 $obj->createObject(array("name" => "standard"));
68 $obj->setStandard();
69
70 $obj = owNew('metadata');
71 $obj->createObject(array("name" => "standard"));
72 $obj->setStandard();
73
74 $obj = owNew('currency');
75 $obj->createObject(array("name" => "DKK", "currency" => 1));
76 $obj->setStandard();
77
78 $obj = owNew('vat');
79 $obj->createObject(array("name" => "0%", "vat" => 0));
80
81 $obj = owNew('vat');
82 $obj->createObject(array("name" => "25%", "vat" => 25));
83 $obj->setStandard();
84
85 $obj = owNew('structure');
86 $obj->createObject(array("name" => "main"));
87
88 $db->query("update object set createdby = $userid where site = $site");
89 $db->query("update object set changedby = $userid where site = $site");
90 $db->query("update object set checkedby = $userid where site = $site");
91
92 if (!file_exists($system_path."/sites")) {
93 if (!mkdir($system_path."/sites")) {
94 "ERROR: Could not create ".$system_path."/sites"."<BR>";
95 }
96 }
97
98 $site_path = $system_path."/sites/".$site;
99
100 echo createDirectory($site_path);
101 echo createDirectory($site_path.'/binfile');
102 echo createDirectory($site_path.'/binfilecache');
103 echo createDirectory($site_path.'/filter');
104 echo createDirectory($site_path.'/filterupload');
105 echo createDirectory($site_path.'/tplcfg');
106 echo createDirectory($site_path.'/compile');
107 echo createDirectory($site_path.'/cache');
108 echo createDirectory($site_path.'/usercfg');
109
110 if (!file_exists($viewer_path)) {
111 if (!mkdir($viewer_path)) {
112 echo "<b>Warning</b>: Remember to create ".$viewer_path."<BR>";
113 }
114 }
115 if (!file_exists($viewer_path."/img")) {
116 if (!mkdir($viewer_path."/img")) {
117 echo "<b>Warning</b>: Remember to create ".$viewer_path."/img"."<BR>";
118 }
119 }
120
121 $sitephp = "<?php
122 # All site specific configuration settings are located in this file
123 # Common settings shared by all sites are placed in the config.php file
124 # in your METAjour directory
125
126 # Site identification
127 \$site = '".$site."';
128
129 # Absolute path to the directory where the website is located
130 \$viewer_path = '".$viewer_path."';
131
132 # URL to the website
133 \$viewer_url = '".$viewer_url."';
134
135 \$CONFIG['primary_language'] = 'EN';
136
137 # Inclusion of config.php
138 require('".$system_path."config.php');
139
140 \$CONFIG['doctype'] = 'DOCTYPE_401_TRANS_WITH_URL';
141 ?>";
142
143 if (!copy($system_path.'install/root/showpage.php', $viewer_path.'showpage.php')) {
144 echo "<b>Warning</b>: Failed to copy showpage.php to $viewer_path <br> \n";
145 }
146 if (!copy($system_path.'install/root/index.php', $viewer_path.'index.php')) {
147 echo "<b>Warning</b>: Failed to copy index.phg to $viewer_path <br> \n";
148 }
149 if (!copy($system_path.'install/root/getfile.php', $viewer_path.'getfile.php')) {
150 echo "<b>Warning</b>: Failed to copy getfile.php to $viewer_path <br> \n";
151 }
152 if (!$handle = fopen($viewer_path.'site.php', 'w')) {
153 echo 'Warning: Cannot open file '.$viewer_path.'site.php<br> \n';
154 } else {
155 if (fwrite($handle, $sitephp) === FALSE) {
156 echo 'Warning: Cannot write to file '.$viewer_path.'site.php<br> \n';
157 }
158 fclose($handle);
159 }
160
161 $newsite = $site;
162
163 $_SESSION['usr'] = $oldusr;
164 $site = $oldsite;
165 $_SESSION['site'] = $oldsite;
166 $viewer_url = $oldviewer_url;
167 $viewer_path = $oldviewer_path;
168
169 return $newsite;
170 }
171
172 function createDirectory($dir) {
173 if (is_dir($dir)) {
174 return "<b>Warning</b>: Directory <b>".$dir."</b> exists"."<BR>";
175 } elseif (!mkdir($dir)) {
176 return "<b>Error</b>: Could not create <b>".$dir."</b><BR>";
177 }
178 }
179
180 ?>
Documentation generated on Thu, 9 Jun 2005 06:51:45 +0200 by phpDocumentor 1.2.3