PageRenderTime 59ms CodeModel.GetById 12ms RepoModel.GetById 2ms app.codeStats 0ms

/add_site.inc.php

https://github.com/adamfranco/segue-1.x
PHP | 297 lines | 213 code | 38 blank | 46 comment | 159 complexity | fd924676fa003416d8de0e5fd45a39ab MD5 | raw file
  1. <? /* $Id$ */
  2. if (isset($_SESSION[settings]) && isset($_SESSION[siteObj])) {
  3. // if we have already started editing...
  4. // --- Load any new variables into the array ---
  5. // Checkboxes need a "if ($settings[step] == 1 && !$link)" tag.
  6. // True/False radio buttons need a "if ($var != "")" tag to get the "0" values
  7. /* if ($_REQUEST[sitename] != "" && $_SESSION[ltype] == "admin") { $_SESSION[siteObj]->setSiteName($_REQUEST[sitename]); $_SESSION[settings][sitename] = $_REQUEST[sitename]; } */
  8. /* if ($_REQUEST[type] && $_SESSION[ltype]=='admin') $_SESSION[siteObj]->setField("type",$_REQUEST[type]); */
  9. if ($_SESSION[settings][step] == 1 && $_REQUEST[title] != "") $_SESSION[siteObj]->setField("title",$_REQUEST[title]);
  10. // handle de/activate dates
  11. $_SESSION[siteObj]->handleFormDates();
  12. if ($_REQUEST[active] != "") $_SESSION[siteObj]->setField("active",$_REQUEST[active]);
  13. if ($_REQUEST[viewpermissions] == "everyone") {
  14. $_SESSION[siteObj]->setUserPermissionDown("view","everyone","1");
  15. $_SESSION[siteObj]->addEditor("institute");
  16. // $_SESSION[siteObj]->updatePermissionsDB();
  17. $_SESSION[settings][viewpermissions] = "";
  18. }
  19. if ($_REQUEST[viewpermissions] == "institute") {
  20. $_SESSION[siteObj]->setUserPermissionDown("view","everyone","0");
  21. $_SESSION[siteObj]->setUserPermissionDown("view","institute","1");
  22. // $_SESSION[siteObj]->updatePermissionsDB();
  23. $_SESSION[settings][viewpermissions] = "";
  24. }
  25. if ($_REQUEST[viewpermissions] == "class") {
  26. if (isgroup($_SESSION[settings][className])) {
  27. // print "<br />".$_SESSION[siteObj]->getField("name")."is a classgroup";
  28. $classes = group::getClassesFromName($_SESSION[settings][className]);
  29. // print "<br />Classes contained:<pre>"; print_r($classes); print "</pre>";
  30. foreach ($classes as $class) {
  31. if (!$_SESSION[siteObj]->isEditor($class)) {
  32. $_SESSION[siteObj]->addEditor($class);
  33. // print "<br />Adding $class as editor";
  34. }
  35. $_SESSION[siteObj]->setUserPermissionDown("view",$class,"1");
  36. // print "<br />Setting 1 view permission for $class";
  37. }
  38. } else {
  39. if (!$_SESSION[siteObj]->isEditor($_SESSION[settings][className])) {
  40. $_SESSION[siteObj]->addEditor($_SESSION[settings][className]);
  41. }
  42. $_SESSION[siteObj]->setUserPermissionDown("view",$_SESSION[settings][className],"1");
  43. }
  44. $_SESSION[siteObj]->setUserPermissionDown("view","everyone","0");
  45. $_SESSION[siteObj]->setUserPermissionDown("view","institute","0");
  46. // $_SESSION[siteObj]->updatePermissionsDB();
  47. $_SESSION[settings][viewpermissions] = "";
  48. }
  49. if ($_REQUEST[viewpermissions] == "custom") {
  50. $_SESSION[settings][viewpermissions] = "custom";
  51. }
  52. if ($_SESSION[settings][step] == 1 && !$_REQUEST[link]) $_SESSION[siteObj]->setField("listed",$_REQUEST[listed]);
  53. if ($_REQUEST[theme] != "") $_SESSION[siteObj]->setField("theme",$_REQUEST[theme]);
  54. if ($_REQUEST[theme] != "") $_SESSION[siteObj]->setField("themesettings",$_REQUEST[themesettings]);
  55. if ($_SESSION[settings][step] == 3) $_SESSION[settings][template] = $_REQUEST[template];
  56. // if ($settings[step] == 4 && !$_REQUEST[link]) $_SESSION[settings][editors] = strtolower($_REQUEST[editors]);
  57. // if ($_SESSION[settings][step] == 4 && !$_REQUEST[link]) $_SESSION[siteObj]->setPermissions($_REQUEST[permissions]);
  58. if ($_SESSION[settings][step] == 1 && !$_REQUEST[link]) $_SESSION[settings][recursiveenable] = $_REQUEST[recursiveenable];
  59. // if ($_REQUEST[copydownpermissions] != "") $_SESSION[settings][copydownpermissions] = $_REQUEST[copydownpermissions];
  60. if ($_SESSION[settings][step] == 4 && !$_REQUEST[link]) $_SESSION[siteObj]->setField("header",$_REQUEST[header]);
  61. if ($_SESSION[settings][step] == 5 && !$_REQUEST[link]) $_SESSION[siteObj]->setField("footer",$_REQUEST[footer]);
  62. if ($_REQUEST[copyfooter]) $_SESSION[siteObj]->setField("header",$_SESSION[siteObj]->getField("footer"));
  63. if ($_REQUEST[copyheader]) $_SESSION[siteObj]->setField("footer",$_SESSION[siteObj]->getField("header"));
  64. }
  65. if (!isset($_SESSION["settings"]) || !isset($_SESSION["siteObj"])) {
  66. // create the settings array with default values. $settings must be passed along with each link.
  67. // The array will be saved on clicking a save button.
  68. $_SESSION[settings] = array(
  69. "sitename" => $_REQUEST[sitename],
  70. "add" => 0,
  71. "edit" => 0,
  72. "step" => 1,
  73. "recursiveenable" => "",
  74. "copydownpermissions" => "",
  75. "template" => "template0",
  76. "comingFrom" => $_REQUEST[comingFrom]
  77. );
  78. $_SESSION[siteObj] =& new site($_REQUEST[sitename]);
  79. if (slot::exists($_REQUEST[sitename])) {
  80. $slotObj = new slot ($_REQUEST[sitename]);
  81. $_SESSION[siteObj]->setField("type",$slotObj->getField("type"));
  82. } else {
  83. if (isclass($_REQUEST[sitename])) $_SESSION[siteObj]->setField("type","class");
  84. else if (!$_SESSION[siteObj]->getField("type") || $_SESSION[siteObj]->getField("type") == "") $_SESSION[siteObj]->setField("type","personal");
  85. }
  86. $_SESSION[settings][className] = $_REQUEST[sitename];
  87. if ($_REQUEST[action] == 'add_site') {
  88. $_SESSION[settings][add]=1;
  89. $_SESSION[settings][edit]=0;
  90. }
  91. if ($_REQUEST[action] == 'edit_site') {
  92. $_SESSION[settings][add]=0;
  93. $_SESSION[settings][edit]=1;
  94. }
  95. if ($_SESSION[settings][add]) {
  96. $_SESSION[siteObj]->addEditor("everyone"); //We aren't storing the permissions from form 1.
  97. $_SESSION[siteObj]->addEditor("institute");
  98. $_SESSION[siteObj]->setUserPermissionDown("view","everyone","1");
  99. }
  100. if ($_SESSION[settings][edit]) {
  101. if (!$_SESSION[settings][sitename]) {
  102. $_SESSION[settings][sitename] = $_REQUEST[edit_site];
  103. $_SESSION[siteObj]->setSiteName($_REQUEST[edit_site]);
  104. }
  105. $_SESSION[siteObj]->fetchDown(1);
  106. $_SESSION[siteObj]->buildPermissionsArray(0,1);
  107. /* ----------------------------------------------------
  108. uncomment this line when permissions are set and done */
  109. $_SESSION[settings][copydownpermissions] = decode_array($_SESSION[settings][copydownpermissions]);
  110. $_SESSION[settings][site_owner] = $site_owner;
  111. }
  112. $_SESSION[siteObj]->initFormDates();
  113. $dontCheckError = 1;
  114. }
  115. /* ---------------------------------------------------------------------------------------------*/
  116. /* ERROR CHECKING */
  117. if ($_SESSION[settings][step] == 1 && !$dontCheckError) {
  118. if ((!$_SESSION[siteObj]->getField("title") || $_SESSION[siteObj]->getField("title") == ''))
  119. error("You must enter a site title.");
  120. if ($_SESSION[siteObj]->getField("name") == "")
  121. error("You must enter a name for this site. Sites without names will be broken.");
  122. if (!ereg("^([0-9A-Za-z_-]*)$",$_SESSION[siteObj]->getField("name")))
  123. error("The site name you entered is invalid. It may only contain alphanumeric characters, '_' and '-'.");
  124. /* if ($error) $_SESSION[settings][step] = 1; */
  125. }
  126. if (!$error) {
  127. if ($_REQUEST[prevbutton]) $_SESSION[settings][step] = $_SESSION[settings][step] - 1;
  128. if ($_REQUEST[nextbutton]) $_SESSION[settings][step] = $_SESSION[settings][step] + 1;
  129. }
  130. if ($_REQUEST[step] != "" && $_REQUEST[step]) $_SESSION[settings][step] = $_REQUEST[step];
  131. if ($_SESSION[settings][add]) $pagetitle="Add Site";
  132. if ($_SESSION[settings][edit]) $pagetitle="Edit Site";
  133. if (!sitenamevalid($_SESSION[siteObj]->getField("name"))) {// check if the site name is valid
  134. error("You are not allowed to edit this site.");
  135. return;
  136. }
  137. if ($_REQUEST[cancel]) {
  138. $comingFrom = $_SESSION[settings][comingFrom];
  139. $site = $_SESSION[siteObj]->getField("name");
  140. // if (ini_get("register_globals")) { session_unregister("settings"); session_unregister("siteObj"); }
  141. // unset($_SESSION[siteObj],$_SESSION[setting]);
  142. if ($comingFrom) header("Location: index.php?$sid&action=$comingFrom&site=$site");
  143. else header("Location: index.php?$sid");
  144. exit;
  145. }
  146. /******************************************************************************
  147. * Save
  148. ******************************************************************************/
  149. if ($_REQUEST[save] && ($cfg['disable_edit_content'] != TRUE || $_SESSION['ltype'] == 'admin')) {
  150. if (!$error) { // save it to the database
  151. print "<br /><br />".$_SESSION[settings][sitename]."<br /><br />";
  152. /******************************************************************************
  153. * replace media library urls with $mediapath/$sitename/filename
  154. * replace specific url with general url
  155. ******************************************************************************/
  156. $mod_header = convertInteralLinksToTags($_SESSION[settings][sitename], $_SESSION[siteObj]->getField("header"));
  157. $mod_footer = convertInteralLinksToTags($_SESSION[settings][sitename], $_SESSION[siteObj]->getField("footer"));
  158. // Lets pass the cleaning of editor text off to the editor.
  159. $mod_header = cleanEditorText($mod_header);
  160. $mod_footer = cleanEditorText($mod_footer);
  161. $_SESSION[siteObj]->setField("header",$mod_header);
  162. $_SESSION[siteObj]->setField("footer",$mod_footer);
  163. if ($_SESSION[settings][add]) {
  164. $_SESSION[siteObj]->insertDB();
  165. log_entry("add_site","$_SESSION[auser] added ".$_SESSION[siteObj]->name,$_SESSION[siteObj]->name,$_SESSION[siteObj]->id,"site");
  166. }
  167. if ($_SESSION[settings][edit]) {
  168. $_SESSION[siteObj]->updateDB(1);
  169. log_entry("edit_site","$_SESSION[auser] edited ".$_SESSION[siteObj]->name,$_SESSION[siteObj]->name,$_SESSION[siteObj]->id,"site");
  170. }
  171. /* ----------------------------------------------------- */
  172. /* will have to update this to use object-related site copy functions */
  173. // --- Copy the Template on add ---
  174. if ($_SESSION[settings][add] && $_SESSION[settings][template] != "") {
  175. /* copySite($_SESSION[settings][template],$_SESSION[siteObj]->getField("name")); */
  176. $_SESSION[siteObj]->applyTemplate($_SESSION[settings][template]);
  177. } else if ($_SESSION[settings][add]) {
  178. /* copySite("template0",$_SESSION[siteObj]->getField("name")); */
  179. $_SESSION[siteObj]->applyTemplate("template0");
  180. }
  181. // do recursive enable
  182. if ($_SESSION[settings][recursiveenable]) {
  183. $val = $_SESSION[siteObj]->getField("active");
  184. $_SESSION[siteObj]->setFieldDown("active",$val);
  185. $_SESSION[siteObj]->updateDB(1);
  186. // done
  187. }
  188. $sitename = $_SESSION[siteObj]->getField("name");
  189. $comingFrom = $_SESSION[settings][comingFrom];
  190. $add = $_SESSION[settings][add];
  191. if ($add) {
  192. header("Location: index.php?$sid&action=viewsite&site=$sitename");
  193. } else {
  194. if ($comingFrom) {
  195. header("Location: index.php?$sid&action=$comingFrom&site=$sitename");
  196. } else {
  197. header("Location: index.php?$sid");
  198. }
  199. }
  200. exit;
  201. } else {
  202. printc ("<br />There was an error");
  203. }
  204. }
  205. /******************************************************************************
  206. * Form Stuff
  207. ******************************************************************************/
  208. if ($_SESSION[settings][edit] && $_SESSION[settings][step] == 3 && $prevbutton) $_SESSION[settings][step] = 2;
  209. else if ($_SESSION[settings][edit] && $_SESSION[settings][step] == 3) $_SESSION[settings][step] = 4;
  210. // ------- print out the add form -------
  211. // --- The Navigation Links for the sidebar ---
  212. $leftlinks = "________________<br /><table>";
  213. $leftlinks .= "<tr><td>";
  214. if ($_SESSION[settings][step] == 1) $leftlinks .= "<span class='editnote'>&rArr;</span>";
  215. $leftlinks .= "</td><td>";
  216. if ($_SESSION[settings][edit] && $_SESSION[settings][step] != 1) $leftlinks .= "<a href='#' onclick=\"submitFormLink(1)\">";
  217. $leftlinks .= "Title & Availability";
  218. if ($_SESSION[settings][step] != 1 && $_SESSION[settings][edit]) $leftlinks .= "</a>";
  219. $leftlinks .= "</td></tr><tr><td>";
  220. if ($_SESSION[settings][step] == 2) $leftlinks .= "<span class='editnote'>&rArr;</span> ";
  221. $leftlinks .= "</td><td>";
  222. if ($_SESSION[settings][edit] && $_SESSION[settings][step] != 2) $leftlinks .= "<a href='#' onclick=\"submitFormLink(2)\">";
  223. $leftlinks .= "Appearance";
  224. if ($_SESSION[settings][step] != 2 && $_SESSION[settings][edit]) $leftlinks .= "</a>";
  225. if ($_SESSION[settings][add]) $leftlinks .= "</td></tr><tr><td>";
  226. if ($_SESSION[settings][step] == 3 && $_SESSION[settings][add]) $leftlinks .= "<span class='editnote'>&rArr;</span> ";
  227. $leftlinks .= "</td><td>";
  228. if ($_SESSION[settings][edit] && $_SESSION[settings][step] != 3) $leftlinks .= "<a href='#' onclick=\"submitFormLink(3)\">";
  229. if ($_SESSION[settings][add]) $leftlinks .= "Template";
  230. if ($_SESSION[settings][step] != 3 && $_SESSION[settings][edit]) $leftlinks .= "</a>";
  231. $leftlinks .= "</td></tr><tr><td>";
  232. if ($_SESSION[settings][step] == 4) $leftlinks .= "<span class='editnote'>&rArr;</span> ";
  233. $leftlinks .= "</td><td>";
  234. if ($_SESSION[settings][edit] && $_SESSION[settings][step] != 4) $leftlinks .= "<a href='#' onclick=\"submitFormLink(4)\">";
  235. $leftlinks .= "Custom Header";
  236. if ($_SESSION[settings][step] != 4 && $_SESSION[settings][edit]) $leftlinks .= "</a>";
  237. $leftlinks .= "</td></tr><tr><td>";
  238. if ($_SESSION[settings][step] == 5) $leftlinks .= "<span class='editnote'>&rArr;</span> ";
  239. $leftlinks .= "</td><td>";
  240. if ($_SESSION[settings][edit] && $_SESSION[settings][step] != 5) $leftlinks .= "<a href='#' onclick=\"submitFormLink(5)\">";
  241. $leftlinks .= "Custom Footer";
  242. if ($_SESSION[settings][step] != 5 && $_SESSION[settings][edit]) $leftlinks .= "</a>";
  243. $leftlinks .= "</td></tr></table>________________<br /><a href='$PHP_SELF?$sid&amp;action=add_site&amp;cancel=1'>Cancel</a>";
  244. add_link(leftnav,'','',"$leftlinks");
  245. if ($_SESSION[settings][step] == 1) {
  246. include("add_site_form_1_title.inc");
  247. }
  248. if ($_SESSION[settings][step] == 2) {
  249. include("add_site_form_2_theme.inc");
  250. }
  251. if ($_SESSION[settings][step] == 3) {
  252. if ($_SESSION[settings][add]) include("add_site_form_3_template.inc");
  253. }
  254. if ($_SESSION[settings][step] == 4) {
  255. include("add_site_form_5_header.inc");
  256. }
  257. if ($_SESSION[settings][step] == 5) {
  258. include("add_site_form_6_footer.inc");
  259. }