/
App.php
101 lines (88 loc) · 2.5 KB
/
App.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
namespace Lobby\App;
class bunto extends \Lobby\App {
public $themes = array(
"architect"
);
public function page($p){
require APP_DIR . "/src/inc/class.site.php";
$pages = array(
"index", "/new"
);
$p = $p == "/" ? "index" : $p;
if(array_search($p, $pages) !== false){
return "auto";
}else if(substr($p, 0, 6) === "/site/"){
$parts = explode("/", $p);
$name = urldecode($parts[2]);
$site_id = urlencode($name);
$site = $this->getSite();
if(count($site) == 0){
return false;
}else{
$p2 = isset($parts[3]) ? $parts[3] : "index";
if($p2 == "index" || $p2 == "settings" || $p2 == "pages" || $p2 == "edit"){
$this->addStyle("site.css");
$site = $this->getSite($name);
return $this->inc("/src/page/site/$p2.php", array(
"name" => $name,
"site" => $site,
"su" => $this->u("/site/".urlencode($name)), // Short for site URL
"page" => $p2
));
}else{
return false;
}
}
}else{
return false;
}
}
public function addSite($name, $out, $theme, $tagline = "", $empty = 0, $titleTag = 1){
$sites = $this->getSite();
$sites[$name] = array(
"out" => $out,
"theme" => $theme,
"empty" => $empty,
"tagline" => $tagline,
"titleTag" => $titleTag
);
$sites = json_encode($sites);
saveData("sites", $sites);
}
public function getSite($site = false){
$sites = getData("sites");
$sites = json_decode($sites, true);
$sites = !is_array($sites) ? array() : $sites;
if($site){
$sites[$site]['name'] = $site;
return isset($sites[$site]) ? $sites[$site] : array();
}else{
return $sites;
}
}
/* Get pages of a site or a specific page of a site. The name of a page is alphanumeric */
public function getPages($site, $type = "all"){
$pages = \H::getJSONData("{$site}Pages");
if($pages){
if($type == "all"){
// Give all pages
return $pages;
}else{
// Give the single page requested
$type = strtolower($type);
return $pages[$type];
}
}else{
return $pages;
}
}
public function addPage($site, $name, $page){
$data = \H::getJSONData("{$site}Pages");
var_dump($data);
$name = strtolower($name);
$pages[$name] = $page;
saveData("{$site}Pages", json_encode($pages));
return true;
}
}