-
Notifications
You must be signed in to change notification settings - Fork 0
/
HeadsUpPlugin.php
138 lines (112 loc) · 4.04 KB
/
HeadsUpPlugin.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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?php
/**
* Include the HeadsUpFunctions.php
*/
require_once __DIR__ . '/helpers/HeadsUpFunctions.php';
class HeadsUpPlugin extends Omeka_Plugin_AbstractPlugin {
protected $_hooks = array(
'install',
'uninstall',
'admin_dashboard'
);
protected $_filters = array(
'admin_navigation_main'
);
public function hookInstall()
{
set_option('display_exhibits', 0);
set_option('display_exhibit_pages', 0);
set_option('display_items', 0);
set_option('display_collections', 0);
set_option('display_collection_date', 0);
}
public function hookUninstall()
{
delete_option('display_exhibits');
delete_option('display_exhibit_pages');
delete_option('display_items');
delete_option('display_collections');
delete_option('display_collection_date');
}
public function filterAdminNavigationMain($navArray){
$navArray['HeadsUp'] = array(
'label' => __("HeadsUp"),
'uri' => url('heads-up')
);
return $navArray;
}
/**
* counts the number of exhibits, exhibit pages, items, and collections and displays them
*/
public function displayHeadsUp(){
$check_exhibit = optionsControl();
$numItems = total_records('Item');
$numCollections = total_records('Collection');
$recentCollection = get_recent_collections($num=1);
if(count($recentCollection) != 0) {
$collectionDate = $recentCollection[0]["added"];
}
else {
$collectionDate = 0;
}
$displayStartMessage = true;
$displayItems = get_option('display_items');
$displayCollections = get_option('display_collections');
$displayCollectionDate = get_option('display_collection_date');
$settings = array($displayItems, $displayCollections, $displayCollectionDate );
// Add exhibit information if ExhibitBuilder plugin is active
if($check_exhibit["is_active"] == 1){
$exhibits = get_records('Exhibit', $params=array(), $limit=0);
$numExhibits = count($exhibits);
$totalExhibitPages = 0;
foreach ($exhibits as $key => $exhibit) {
$pages = $exhibit->getPages();
$totalExhibitPages += count($pages);
}
$displayExhibits = get_option('display_exhibits');
$displayExhibitPages = get_option('display_exhibit_pages');
$settings = array($displayExhibits, $displayExhibitPages, $displayItems, $displayCollections, $displayCollectionDate );
}
// if any items are selected to be displayed, we don't print the startup message
foreach ($settings as $value) {
if ($value==1) {
$displayStartMessage = false;
}
}
echo "<h2>Heads Up Info:</h2>";
if ($displayStartMessage == true) {
echo "<p>No options have been selected. Go to the HeadsUp settings page to get started!</p>";
} else {
// only displays information for the selected checkboxes
if ($check_exhibit["is_active"] == 1) {
if ($displayExhibits == 1) {
echo "<p>Number of exhibits: {$numExhibits}</p>";
}
if ($displayExhibitPages == 1) {
echo "<p>Total number of exhibit pages: {$totalExhibitPages}</p>";
}
}
if ($displayItems == 1) {
echo "<p>Number of items: {$numItems}</p>";
}
if ($displayCollections == 1) {
echo "<p>Number of collections: {$numCollections}</p>";
}
if ($displayCollectionDate == 1) {
echo "<p>Date of Recent Collection: {$collectionDate}</p>";
}
}
}
/**
* Hook to call relevant information to be displayed in an HTML section
*/
public function hookAdminDashboard() {
?>
<section class='five columns omega' style="margin-left:0%">
<div class='panel'>
<?php $this->displayHeadsUp() ?>
</div>
</section>
<?php
}
}