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
|
<?php defined("SYSPATH") or die("No direct script access.");
/**
* Gallery - a web based photo album viewer and editor
* Copyright (C) 2000-2009 Bharat Mediratta
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class server_add_menu_Core {
static function admin($menu, $theme) {
$menu->get("settings_menu")
->append(Menu::factory("link")
->id("server_add")
->label(t("Server Add"))
->url(url::site("admin/server_add")));
}
static function site($menu, $theme) {
$item = $theme->item();
$paths = unserialize(module::get_var("server_add", "authorized_paths"));
if (user::active()->admin && $item->is_album() && !empty($paths)) {
// This is a little tricky. Normally there's an "Add Photo" menu option, but we want to
// turn that into a dropdown if there are two different ways to add things. Do that in a
// portable way for now. If we find ourselves duplicating this pattern, we should make an
// API method for this.
$server_add = Menu::factory("dialog")
->id("server_add")
->label(t("Add from server"))
->url(url::site("server_add/index/$item->id"));
$options_menu = $menu->get("options_menu");
$add_photos_item = $menu->get("add_photos_item");
$add_photos_menu = $menu->get("add_photos_menu");
if ($add_photos_item && !$add_photos_menu) {
// Assuming that $add_menu is unset, create add_menu and add our item
$menu->add_after(
"home",
Menu::factory("submenu")
->id("add_photos_menu")
->label(t("Add Photos"))
->append(Menu::factory("dialog")
->id("add_photos_submenu_item")
->label(t("via Simple Uploader"))
->url(url::site("simple_uploader/app/$item->id")))
->append($server_add));
$menu->remove("add_photos_item");
} else if ($add_photos_menu) {
// Append to the existing sub-menu
$add_photos_menu->append($server_add);
} else {
// Else just add it in at the end of Options
$options_menu->append($server_add);
}
}
}
}
|