|
ca5e55ef
»
|
vito |
2008-04-27 |
Some work on the new Admin ... |
1 |
<?php |
| |
2 |
define('ADMIN', true); |
|
381f43bc
»
|
vito |
2008-05-02 |
Code refining & updated adm... |
3 |
|
|
ca5e55ef
»
|
vito |
2008-04-27 |
Some work on the new Admin ... |
4 |
require_once "../includes/common.php"; |
| |
5 |
|
|
d3fa8562
»
|
vito |
2008-06-26 |
* Updated module conflicts |
6 |
$action = ($_GET['action'] == "index" or !isset($_GET['action'])) ? $admin->determine_action() : $_GET['action']; |
|
ca5e55ef
»
|
vito |
2008-04-27 |
Some work on the new Admin ... |
7 |
|
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
8 |
$admin->handle_redirects($action); |
| |
9 |
|
|
ca5e55ef
»
|
vito |
2008-04-27 |
Some work on the new Admin ... |
10 |
class AdminTwig { |
| |
11 |
public function __construct() { |
|
c1617056
»
|
vito |
2008-06-20 |
Fixed phpThumb's caching. |
12 |
$this->twig = new Twig_Loader(MAIN_DIR."/admin/layout", (is_writable(INCLUDES_DIR."/caches") and !DEBUG) ? INCLUDES_DIR."/caches" : null); |
|
53ed587a
»
|
vito |
2008-06-12 |
Switched to using a dropdow... |
13 |
} |
| |
14 |
|
| |
15 |
public function load($action) { |
| |
16 |
global $admin, $theme; |
| |
17 |
|
| |
18 |
# Are there any extension-added pages? |
| |
19 |
$trigger = Trigger::current(); |
|
c332685b
»
|
vito |
2008-07-07 |
Admin relocations. |
20 |
foreach (array("write" => array(), |
|
5769876a
»
|
vito |
2008-07-09 |
Added a help dialogue for A... |
21 |
"manage" => array("import", "export"), |
|
c332685b
»
|
vito |
2008-07-07 |
Admin relocations. |
22 |
"settings" => array(), |
| |
23 |
"extend" => array("modules", "feathers", "themes")) as $main_nav => $val) { |
| |
24 |
$$main_nav = $val; |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
25 |
$trigger->filter($$main_nav, $main_nav."_pages"); |
| |
26 |
} |
|
53ed587a
»
|
vito |
2008-06-12 |
Switched to using a dropdow... |
27 |
|
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
28 |
$visitor = Visitor::current(); |
| |
29 |
|
|
fc1bc194
»
|
vito |
2008-07-06 |
* Added an awesome Flash cl... |
30 |
$admin->context["theme"] = $theme; |
| |
31 |
$admin->context["flash"] = Flash::current(); |
| |
32 |
$admin->context["trigger"] = $trigger; |
| |
33 |
$admin->context["title"] = camelize($action, true); |
| |
34 |
$admin->context["site"] = Config::current(); |
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
35 |
$admin->context["visitor"] = $visitor; |
|
fc1bc194
»
|
vito |
2008-07-06 |
* Added an awesome Flash cl... |
36 |
$admin->context["logged_in"] = logged_in(); |
| |
37 |
$admin->context["route"] = array("action" => $action); |
| |
38 |
$admin->context["hide_admin"] = isset($_SESSION["chyrp_hide_admin"]); |
| |
39 |
$admin->context["now"] = now(); |
| |
40 |
$admin->context["now_server"] = time(); |
| |
41 |
$admin->context["version"] = CHYRP_VERSION; |
|
70f5756d
»
|
vito |
2008-07-09 |
Fixed grabbing a title from... |
42 |
$admin->context["debug"] = DEBUG; |
|
fc1bc194
»
|
vito |
2008-07-06 |
* Added an awesome Flash cl... |
43 |
$admin->context["POST"] = $_POST; |
| |
44 |
$admin->context["GET"] = $_GET; |
|
689f94f2
»
|
vito |
2008-05-03 |
* $is_feed and $viewing are... |
45 |
|
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
46 |
$admin->context["navigation"] = array(); |
| |
47 |
|
| |
48 |
$show = array("write" => array($visitor->group()->can("add_draft", "add_post", "add_page")), |
| |
49 |
"manage" => array($visitor->group()->can("view_own_draft", |
| |
50 |
"view_draft", |
| |
51 |
"edit_own_draft", |
| |
52 |
"edit_own_post", |
| |
53 |
"edit_post", |
| |
54 |
"delete_own_draft", |
| |
55 |
"delete_own_post", |
| |
56 |
"delete_post", |
| |
57 |
"add_page", |
| |
58 |
"edit_page", |
| |
59 |
"delete_page", |
| |
60 |
"add_user", |
| |
61 |
"edit_user", |
| |
62 |
"delete_user", |
| |
63 |
"add_group", |
| |
64 |
"edit_group", |
| |
65 |
"delete_group")), |
| |
66 |
"settings" => array($visitor->group()->can("change_settings")), |
| |
67 |
"extend" => array($visitor->group()->can("toggle_extensions"))); |
| |
68 |
|
| |
69 |
foreach ($show as $name => &$arr) |
| |
70 |
$trigger->filter($arr, $name."_nav_show"); |
| |
71 |
|
| |
72 |
$admin->context["navigation"]["write"] = array("title" => __("Write"), |
| |
73 |
"show" => in_array(true, $show["write"]), |
| |
74 |
"selected" => (in_array($action, $write) or |
| |
75 |
match("/^write_/", $action))); |
| |
76 |
|
| |
77 |
$admin->context["navigation"]["manage"] = array("title" => __("Manage"), |
| |
78 |
"show" => in_array(true, $show["manage"]), |
| |
79 |
"selected" => (in_array($action, $manage) or |
| |
80 |
match(array("/^manage_/", |
| |
81 |
"/^edit_/", |
| |
82 |
"/^delete_/", |
| |
83 |
"/^new_/"), $action))); |
| |
84 |
|
| |
85 |
$admin->context["navigation"]["settings"] = array("title" => __("Settings"), |
| |
86 |
"show" => in_array(true, $show["settings"]), |
| |
87 |
"selected" => (in_array($action, $settings) or |
| |
88 |
match("/_settings$/", $action))); |
| |
89 |
|
| |
90 |
$admin->context["navigation"]["extend"] = array("title" => __("Extend"), |
| |
91 |
"show" => in_array(true, $show["extend"]), |
| |
92 |
"selected" => (in_array($action, $extend))); |
|
d4086b1b
»
|
vito |
2008-05-04 |
More admin area tasks/enhan... |
93 |
|
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
94 |
$this->subnav_context(); |
| |
95 |
|
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
96 |
$trigger->filter($admin->context["selected"], "nav_selected"); |
|
d4086b1b
»
|
vito |
2008-05-04 |
More admin area tasks/enhan... |
97 |
|
|
e96f0403
»
|
vito |
2008-05-05 |
More admin updates. |
98 |
$admin->context["bookmarklet"] = "javascript:var%20d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='".$admin->context["site"]->url."/includes/bookmarklet.php',l=d.location,e=encodeURIComponent,p='?url='+e(l.href)+'&title='+e(d.title)+'&selection='+e(s),u=f+p;a=function(){if(!w.open(u,'t','toolbar=0,resizable=0,status=1,width=450,height=430'))l.href=u;};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();void(0)"; |
| |
99 |
|
|
689f94f2
»
|
vito |
2008-05-03 |
* $is_feed and $viewing are... |
100 |
if (method_exists($admin, $action)) |
| |
101 |
$admin->$action(); |
| |
102 |
|
|
f3518168
»
|
vito |
2008-06-04 |
* Moved to the Google AJAX ... |
103 |
$trigger->call("admin_".$action); |
|
689f94f2
»
|
vito |
2008-05-03 |
* $is_feed and $viewing are... |
104 |
|
|
712334c0
»
|
vito |
2008-05-22 |
Added 'Need more detail?' s... |
105 |
$admin->context["sql_debug"] = SQL::current()->debug; |
| |
106 |
|
|
7039efd2
»
|
vito |
2008-06-04 |
* Make it easier for module... |
107 |
$template = MAIN_DIR."/admin/layout/pages/".$action.".twig"; |
| |
108 |
|
| |
109 |
$config = Config::current(); |
| |
110 |
if (!file_exists($template)) { |
| |
111 |
foreach (array(MODULES_DIR => $config->enabled_modules, FEATHERS_DIR => $config->enabled_feathers) as $path => $try) |
| |
112 |
foreach ($try as $extension) |
| |
113 |
if (file_exists($path."/".$extension."/pages/admin/".$action.".twig")) |
| |
114 |
$template = $path."/".$extension."/pages/admin/".$action.".twig"; |
| |
115 |
|
| |
116 |
if (!file_exists($template)) |
|
1882c543
»
|
vito |
2008-06-08 |
* Updated Gettext files. |
117 |
error(__("Template Missing"), _f("Couldn't load template:<br /><br />%s", array("pages/".$action.".twig"))); |
|
7039efd2
»
|
vito |
2008-06-04 |
* Make it easier for module... |
118 |
} |
|
f3a19323
»
|
vito |
2008-05-03 |
* Added pluralize() and dep... |
119 |
|
|
7039efd2
»
|
vito |
2008-06-04 |
* Make it easier for module... |
120 |
return $this->twig->getTemplate($template)->display($admin->context); |
|
ca5e55ef
»
|
vito |
2008-04-27 |
Some work on the new Admin ... |
121 |
} |
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
122 |
|
| |
123 |
public function subnav_context() { |
|
bc7cdd7b
»
|
vito |
2008-06-06 |
* Fixed first Feather being... |
124 |
global $admin, $action; |
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
125 |
|
|
be3d32c1
»
|
vito |
2008-06-06 |
Made new admin nav extensib... |
126 |
$trigger = Trigger::current(); |
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
127 |
$visitor = Visitor::current(); |
|
be3d32c1
»
|
vito |
2008-06-06 |
Made new admin nav extensib... |
128 |
|
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
129 |
$admin->context["subnav"] = array(); |
| |
130 |
$subnav =& $admin->context["subnav"]; |
| |
131 |
|
| |
132 |
$subnav["write"] = array(); |
|
37d3bf90
»
|
vito |
2008-07-03 |
Fixed a typo. |
133 |
$pages = array("manage" => array()); |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
134 |
|
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
135 |
foreach (Config::current()->enabled_feathers as $index => $feather) { |
|
2db32be6
»
|
vito |
2008-07-06 |
* Switched YAML libraries |
136 |
$info = Horde_Yaml::loadFile(FEATHERS_DIR."/".$feather."/info.yaml"); |
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
137 |
$subnav["write"]["write_post&feather=".$feather] = array("title" => __($info["name"], $feather), |
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
138 |
"show" => $visitor->group()->can("add_draft", "add_post"), |
|
d87af098
»
|
vito |
2008-06-12 |
* Added AJAX sorting of Fea... |
139 |
"attributes" => ' id="list_feathers['.$feather.']"', |
|
ab8244b8
»
|
vito |
2008-06-25 |
* Check for "gzip" in $_SER... |
140 |
"selected" => (isset($_GET['feather']) and $_GET['feather'] == $feather) or |
| |
141 |
(!isset($_GET['feather']) and $action == "write_post" and !$index)); |
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
142 |
} |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
143 |
|
| |
144 |
# Write navs |
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
145 |
$subnav["write"]["write_page"] = array("title" => __("Page"), |
| |
146 |
"show" => $visitor->group()->can("add_page")); |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
147 |
$trigger->filter($subnav["write"], array("admin_write_nav", "write_nav")); |
| |
148 |
$pages["write"] = array_merge(array("write_post"), array_keys($subnav["write"]));; |
| |
149 |
|
| |
150 |
# Manage navs |
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
151 |
$subnav["manage"] = array("manage_posts" => array("title" => __("Posts"), |
| |
152 |
"show" => (Post::any_editable() or Post::any_deletable()), |
| |
153 |
"selected" => array("edit_post", "delete_post")), |
| |
154 |
"manage_pages" => array("title" => __("Pages"), |
| |
155 |
"show" => ($visitor->group()->can("edit_page", "delete_page")), |
| |
156 |
"selected" => array("edit_page", "delete_page")), |
| |
157 |
"manage_users" => array("title" => __("Users"), |
| |
158 |
"show" => ($visitor->group()->can("add_user", |
| |
159 |
"edit_user", |
| |
160 |
"delete_user")), |
| |
161 |
"selected" => array("edit_user", "delete_user", "new_user")), |
| |
162 |
"manage_groups" => array("title" => __("Groups"), |
| |
163 |
"show" => ($visitor->group()->can("add_group", |
| |
164 |
"edit_group", |
| |
165 |
"delete_group")), |
| |
166 |
"selected" => array("edit_group", "delete_group", "new_group"))); |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
167 |
$trigger->filter($subnav["manage"], "manage_nav"); |
|
20d8448c
»
|
vito |
2008-07-08 |
Import / Export tabs should... |
168 |
|
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
169 |
$subnav["manage"]["import"] = array("title" => __("Import"), |
| |
170 |
"show" => ($visitor->group()->can("add_post"))); |
| |
171 |
$subnav["manage"]["export"] = array("title" => __("Export"), |
| |
172 |
"show" => ($visitor->group()->can("add_post"))); |
|
20d8448c
»
|
vito |
2008-07-08 |
Import / Export tabs should... |
173 |
|
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
174 |
$pages["manage"][] = "new_user"; |
| |
175 |
$pages["manage"][] = "new_group"; |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
176 |
foreach (array_keys($subnav["manage"]) as $manage) |
| |
177 |
$pages["manage"] = array_merge($pages["manage"], array($manage, |
|
44f0b2e2
»
|
vito |
2008-07-05 |
* Don't try $foo->bar() or ... |
178 |
preg_replace("/manage_(.+)/e", |
| |
179 |
"'edit_'.depluralize('\\1')", |
| |
180 |
$manage), |
| |
181 |
preg_replace("/manage_(.+)/e", |
| |
182 |
"'delete_'.depluralize('\\1')", |
| |
183 |
$manage))); |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
184 |
|
| |
185 |
# Settings navs |
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
186 |
$subnav["settings"] = array("general_settings" => array("title" => __("General"), |
| |
187 |
"show" => $visitor->group()->can("change_settings")), |
| |
188 |
"content_settings" => array("title" => __("Content"), |
| |
189 |
"show" => $visitor->group()->can("change_settings")), |
| |
190 |
"user_settings" => array("title" => __("Users"), |
| |
191 |
"show" => $visitor->group()->can("change_settings")), |
| |
192 |
"route_settings" => array("title" => __("Routes"), |
| |
193 |
"show" => $visitor->group()->can("change_settings"))); |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
194 |
$trigger->filter($subnav["settings"], "settings_nav"); |
|
3c56fa5e
»
|
vito |
2008-07-03 |
Fixed some more typos. |
195 |
$pages["settings"] = array_keys($subnav["settings"]); |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
196 |
|
| |
197 |
# Extend navs |
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
198 |
$subnav["extend"] = array("modules" => array("title" => __("Modules"), |
| |
199 |
"show" => $visitor->group()->can("toggle_extensions")), |
| |
200 |
"feathers" => array("title" => __("Feathers"), |
| |
201 |
"show" => $visitor->group()->can("toggle_extensions")), |
| |
202 |
"themes" => array("title" => __("Themes"), |
| |
203 |
"show" => $visitor->group()->can("toggle_extensions"))); |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
204 |
$trigger->filter($subnav["extend"], "extend_nav"); |
| |
205 |
$pages["extend"] = array_keys($subnav["extend"]); |
| |
206 |
|
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
207 |
foreach (array_keys($subnav) as $main_nav) |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
208 |
foreach ($trigger->filter($pages[$main_nav], $main_nav."_nav_pages") as $extend) |
|
3c56fa5e
»
|
vito |
2008-07-03 |
Fixed some more typos. |
209 |
$subnav[$extend] =& $subnav[$main_nav]; |
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
210 |
|
|
13dbb213
»
|
vito |
2008-07-10 |
* Hide admin nav items if t... |
211 |
foreach ($subnav as $main_nav => &$sub_nav) |
| |
212 |
foreach ($sub_nav as &$nav) |
| |
213 |
$nav["show"] = (!isset($nav["show"]) or $nav["show"]); |
| |
214 |
|
|
70b9b0f4
»
|
vito |
2008-07-03 |
* New Trigger->filter. Firs... |
215 |
$trigger->filter($subnav, "admin_subnav"); |
|
8429a16e
»
|
vito |
2008-06-06 |
New array-powered, more fle... |
216 |
} |
|
ca5e55ef
»
|
vito |
2008-04-27 |
Some work on the new Admin ... |
217 |
} |
|
381f43bc
»
|
vito |
2008-05-02 |
Code refining & updated adm... |
218 |
|
|
ca5e55ef
»
|
vito |
2008-04-27 |
Some work on the new Admin ... |
219 |
$twig = new AdminTwig(); |
| |
220 |
|
|
8201c4c0
»
|
vito |
2008-04-28 |
Finished converting feather... |
221 |
if ($action == "help") |
|
f9689269
»
|
vito |
2008-05-31 |
* Documentation updates |
222 |
require "help.php"; |
|
8201c4c0
»
|
vito |
2008-04-28 |
Finished converting feather... |
223 |
else |
| |
224 |
$twig->load($action); |