-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathextension.driver.php
75 lines (65 loc) · 2.55 KB
/
extension.driver.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
<?php
Class Extension_Upload_Many extends Extension{
public static $params = null;
public function about() {
return array('name' => 'Field: Upload Many',
'version' => '0.1',
'release-date' => '2010-07-14',
'author' => array('name' => 'Huib Keemink',
'website' => 'http://www.creativedutchmen.com',
'email' => ''),
'description' => 'Allows user to upload many documents/images at once using uploadify.'
);
}
public function getSubscribedDelegates() {
return array(
array(
'page' => '/backend/',
'delegate' => 'InitaliseAdminPageHead',
'callback' => 'initaliseAdminPageHead'
)
);
}
public function initaliseAdminPageHead($context) {
//only sections that contain a upload_many field should get the extra functions.
//could not find another way than to query the database (which is a shame, I think!)
$page = $context['parent']->Page;
$query = 'SELECT COUNT(*) as num FROM `tbl_fields` LEFT JOIN(`tbl_sections`) ON (tbl_fields.parent_section = tbl_sections.id) WHERE tbl_sections.handle = "'.$page->_context['section_handle'].'" AND tbl_fields.type = "upload_many" LIMIT 1';
$result = $this->_Parent->Database->fetchRow(0,$query);
if($result['num'] > 0){
if ($page instanceof ContentPublish and ($page->_context['page'] == 'index')) {
$page->addStylesheetToHead(URL . '/extensions/upload_many/assets/uploader.css', 'screen', 991);
$page->addScriptToHead(URL . '/extensions/upload_many/assets/js/jquery.addButton.js', 992);
}
elseif($page instanceof ContentPublish and ($page->_context['page'] == 'new' || $page->_context['page'] == 'edit')) {
$page->addStylesheetToHead(URL . '/extensions/upload_many/assets/uploader.css', 'screen', 991);
$page->addScriptToHead(URL . '/extensions/upload_many/assets/plupload/plupload.full.min.js', 992);
$page->addScriptToHead(URL . '/extensions/upload_many/assets/js/jquery.upload_many.js', 992);
}
}
}
public function install() {
try{
Symphony::Database()->query(
"CREATE TABLE IF NOT EXISTS `tbl_fields_upload_many` (
`id` INT UNSIGNED NOT NULL ,
`field_id` INT UNSIGNED NOT NULL ,
`destination` VARCHAR( 255 ) NOT NULL ,
`validator` VARCHAR( 50 ) NULL DEFAULT NULL
)");
}
catch (Exception $e){
return false;
}
return true;
}
public function uninstall() {
try{
Symphony::Database()->query("DROP TABLE `tbl_fields_upload_many`");
}
catch (Exception $e){
return false;
}
return true;
}
}