/[drupal]/contributions/modules/mmedia/folder.forms.inc
ViewVC logotype

Contents of /contributions/modules/mmedia/folder.forms.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download) (as text)
Thu Mar 19 13:31:53 2009 UTC (8 months, 1 week ago) by rhys
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +4 -4 lines
File MIME type: text/x-php
General fixups
1 <?php
2 // $Id: folder.forms.inc,v 1.2 2008/11/06 13:00:30 rhys Exp $
3
4 /**
5 * View form for folders
6 */
7 function mmedia_folder_view_form(&$form_state, $folder) {
8 drupal_add_css(drupal_get_path('module', 'mmedia') .'/mmedia.css');
9 // always load base folder for null variable
10 if (is_null($folder)) {
11 $folder = mmedia_folder_load(0);
12 }
13
14 // remove current folder from the top of the list
15 $breadcrumbs = _mmedia_set_breadcrumb($folder);
16 array_pop($breadcrumbs);
17 drupal_set_breadcrumb($breadcrumbs);
18
19 // list the folders currently to the
20 $subfolders = mmedia_folder_subfolders($folder->fid);
21 $children = mmedia_folder_children($folder->fid);
22
23 if ($pager = theme('pager', NULL, variable_get('mmedia_folder_page', 10), 1)) {
24 $form['pager-top'] = array('#value' => '<div class="media-pager">'. $pager .'</div>');
25 }
26
27 if (!empty($subfolders)) {
28 $form['subfolders'] = array(
29 '#prefix' => '<div class="subfolders"><h3>'. t('Folders') .'</h3>',
30 '#suffix' => '</div>',
31 );
32 foreach ($subfolders as $fid => $name) {
33 $form['subfolders'][$fid] = array('#prefix' => '<div>', '#value' => l($name, FOLDER_PATH .'/'. $fid), '#suffix' => '</div>');
34 }
35 }
36
37 // list the items currently available
38 if (!empty($children)) {
39 $form['children'] = array(
40 '#prefix' => '<div class="children"><h3>'. t('Media') .'</h3>',
41 '#suffix' => '</div>',
42 );
43 foreach ($children as $mid => $title) {
44 $form['children'][$mid] = array('#prefix' => '<div>', '#value' => l($title, MEDIA_PATH .'/'. $mid), '#suffix' => '</div>');
45 }
46 }
47
48 // add pager to the bottom
49 if ($pager) {
50 $form['pager-bottom'] = array('#value' => '<div class="media-pager">'. $pager .'</div>');
51 }
52
53 return $form;
54 }
55
56 /**
57 * Edit form for folders
58 */
59 function mmedia_folder_edit_form(&$form_state, $folder, $parent) {
60 $breadcrumbs = _mmedia_set_breadcrumb(mmedia_folder_load($parent->fid));
61
62 // handles the folder editing process
63 $edit = $folder;
64 if (!$edit) {
65 $edit = new stdClass;
66 $edit->parent = $parent->fid;
67 }
68 else {
69 $breadcrumbs[] = l($edit->name, FOLDER_PATH .'/'. $edit->fid);
70 }
71 drupal_set_breadcrumb($breadcrumbs);
72
73 return _mmedia_folder_form($edit);
74 }
75
76 /**
77 * Validate the media folder
78 */
79 function mmedia_folder_edit_form_validate($form, &$form_state) {
80 $values = $form_state['values'];
81 if ($values['op'] == t('Delete')) {
82 drupal_goto(FOLDER_PATH .'/'. $values['fid'] .'/delete');
83 exit();
84 }
85 _mmedia_folder_process($values);
86 }
87
88 /**
89 * Submission of the folder edit form
90 */
91 function mmedia_folder_edit_form_submit($form, &$form_state) {
92 $values = $form_state['values'];
93
94 $folder = _mmedia_folder_post($values);
95 if ($folder->fid) {
96 $form_state['fid'] = $folder->fid;
97 $form_state['redirect'] = FOLDER_PATH .'/'. $folder->fid;
98 }
99 }
100
101 /**
102 * Delete folder form.
103 */
104 function mmedia_folder_delete_form(&$form_state, $folder) {
105 $breadcrumbs = _mmedia_set_breadcrumb($folder);
106 array_pop($breadcrumbs);
107 drupal_set_breadcrumb($breadcrumbs);
108
109 // remember for confirmation of the folder
110 $form['parent'] = array('#type' => 'value', '#value' => $folder->parent);
111 $form['fid'] = array('#type' => 'value', '#value' => $folder->fid);
112 if (user_access('delete media')) {
113 $form['delete'] = array('#type' => 'checkbox', '#title' => t('Delete contained media?'));
114 }
115
116 // provide user interaction
117 $notice = t('This action cannot be undone.');
118 $notice .= ' '. t('It will delete all sub-folders.');
119
120 $form = confirm_form($form,
121 t('Are you sure you want to delete %title?', array('%title' => $folder->name)),
122 isset($_GET['destination']) ? $_GET['destination'] : FOLDER_PATH .'/'. $folder->fid,
123 $notice,
124 t('Delete'), t('Cancel'));
125
126 return $form;
127 }
128
129 /**
130 * Submission for folder delete
131 */
132 function mmedia_folder_delete_form_submit($form, &$form_state) {
133 $values = $form_state['values'];
134 if ($values['confirm'] == 1) {
135 $fid = $values['fid'];
136 $delete = isset($values['delete']) && $values['delete'];
137 mmedia_folder_delete($fid, $delete);
138 }
139 $form_state['redirect'] = FOLDER_PATH . ($values['parent'] ? '/'. $values['parent'] : '');
140 }
141
142 /**
143 * Move folder form
144 */
145 function mmedia_folder_move_form(&$form_state, $folder) {
146 drupal_add_css(drupal_get_path('module', 'mmedia') .'/mmedia.css');
147
148 $breadcrumbs = _mmedia_set_breadcrumb($folder);
149 array_pop($breadcrumbs);
150 drupal_set_breadcrumb($breadcrumbs);
151
152 $folders = _mmedia_folder_cache();
153
154 // add everything else
155 $base = $folder->path;
156 $current = 0;
157 $lines = $folders['line'];
158 foreach ($lines as $line => $parent) {
159 // ignore all of those which are either this folder or sub-folders
160 if (strpos($line, $base) === 0) {
161 continue;
162 }
163
164 $depth = (count(explode('/', $line)) - 2);
165
166 // add the appropriate boundaries for accordian viewing
167 $prefix = '';
168 while ($depth > $current++) {
169 $prefix .= '<div class="folder-level">';
170 }
171 while ($current > $depth + 1) {
172 $prefix .= '</div>';
173 $current--;
174 }
175
176 //
177 $form['radios'][$line] = array(
178 '#prefix' => $prefix .'<div class="folder-level-'. $depth .'">',
179 '#type' => 'radio',
180 '#title' => $folders[$parent]['name'],
181 '#return_value' => $parent,
182 '#default_value' => ($parent == $folder->parent ? $parent : FALSE),
183 '#parents' => array('folder'),
184 '#suffix' => '</div>'
185 );
186 $current = $depth;
187 }
188 $form['radios']['#suffix'] = '';
189 while ($current > 0) {
190 $form['radios']['#suffix'] .= '</div>';
191 $current--;
192 }
193
194 $form['submit'] = array('#type' => 'submit', '#value' => t('Submit'));
195 $form['fid'] = array('#type' => 'value', '#value' => $folder->fid);
196
197 return $form;
198 }
199
200 /**
201 * Submission of the move folder.
202 */
203 function mmedia_folder_move_form_submit($form, &$form_state) {
204 $values = $form_state['values'];
205 if ($values['op'] == t('Submit')) {
206 mmedia_folder_move($values['fid'], $values['folder']);
207 }
208 }

  ViewVC Help
Powered by ViewVC 1.1.2