danielebarchiesi@2
|
1 <?php
|
danielebarchiesi@2
|
2
|
danielebarchiesi@2
|
3 /**
|
danielebarchiesi@2
|
4 * @file
|
danielebarchiesi@2
|
5 * Provides Slideshow style options for Views.
|
danielebarchiesi@2
|
6 */
|
danielebarchiesi@2
|
7
|
danielebarchiesi@2
|
8 /**
|
danielebarchiesi@2
|
9 * Implement hook_theme().
|
danielebarchiesi@2
|
10 */
|
danielebarchiesi@2
|
11 function views_slideshow_theme($existing, $type, $theme, $path) {
|
danielebarchiesi@2
|
12 return array(
|
danielebarchiesi@2
|
13 'views_slideshow_main_section' => array(
|
danielebarchiesi@2
|
14 'variables' => array('vss_id' => NULL, 'slides' => NULL, 'plugin' => NULL),
|
danielebarchiesi@2
|
15 'file' => 'theme/views_slideshow.theme.inc',
|
danielebarchiesi@2
|
16 ),
|
danielebarchiesi@2
|
17 'views_slideshow_pager_widget_render' => array(
|
danielebarchiesi@2
|
18 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()),
|
danielebarchiesi@2
|
19 'file' => 'theme/views_slideshow.theme.inc',
|
danielebarchiesi@2
|
20 ),
|
danielebarchiesi@2
|
21 'views_slideshow_pager_fields' => array(
|
danielebarchiesi@2
|
22 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'attributes' => array()),
|
danielebarchiesi@2
|
23 'template' => 'theme/views-slideshow-pager-fields',
|
danielebarchiesi@2
|
24 ),
|
danielebarchiesi@2
|
25 'views_slideshow_pager_field_field' => array(
|
danielebarchiesi@2
|
26 'variables' => array('view' => NULL, 'field' => NULL, 'count' => NULL),
|
danielebarchiesi@2
|
27 'template' => 'theme/views-slideshow-pager-field-field',
|
danielebarchiesi@2
|
28 'file' => 'theme/views_slideshow.theme.inc',
|
danielebarchiesi@2
|
29 ),
|
danielebarchiesi@2
|
30 'views_slideshow_pager_field_item' => array(
|
danielebarchiesi@2
|
31 'variables' => array('vss_id' => NULL, 'item' => NULL, 'count' => NULL, 'location' => NULL),
|
danielebarchiesi@2
|
32 'template' => 'theme/views-slideshow-pager-field-item',
|
danielebarchiesi@2
|
33 ),
|
danielebarchiesi@2
|
34 'views_slideshow_controls_widget_render' => array(
|
danielebarchiesi@2
|
35 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()),
|
danielebarchiesi@2
|
36 'file' => 'theme/views_slideshow.theme.inc',
|
danielebarchiesi@2
|
37 ),
|
danielebarchiesi@2
|
38 'views_slideshow_controls_text' => array(
|
danielebarchiesi@2
|
39 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()),
|
danielebarchiesi@2
|
40 'template' => 'theme/views-slideshow-controls-text',
|
danielebarchiesi@2
|
41 ),
|
danielebarchiesi@2
|
42 'views_slideshow_controls_text_previous' => array(
|
danielebarchiesi@2
|
43 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array()),
|
danielebarchiesi@2
|
44 'template' => 'theme/views-slideshow-controls-text-previous',
|
danielebarchiesi@2
|
45 ),
|
danielebarchiesi@2
|
46 'views_slideshow_controls_text_pause' => array(
|
danielebarchiesi@2
|
47 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array()),
|
danielebarchiesi@2
|
48 'template' => 'theme/views-slideshow-controls-text-pause',
|
danielebarchiesi@2
|
49 ),
|
danielebarchiesi@2
|
50 'views_slideshow_controls_text_next' => array(
|
danielebarchiesi@2
|
51 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array()),
|
danielebarchiesi@2
|
52 'template' => 'theme/views-slideshow-controls-text-next',
|
danielebarchiesi@2
|
53 ),
|
danielebarchiesi@2
|
54 'views_slideshow_slide_counter_widget_render' => array(
|
danielebarchiesi@2
|
55 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()),
|
danielebarchiesi@2
|
56 'file' => 'theme/views_slideshow.theme.inc',
|
danielebarchiesi@2
|
57 ),
|
danielebarchiesi@2
|
58 'views_slideshow_slide_counter' => array(
|
danielebarchiesi@2
|
59 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()),
|
danielebarchiesi@2
|
60 'template' => 'theme/views-slideshow-slide-counter',
|
danielebarchiesi@2
|
61 ),
|
danielebarchiesi@2
|
62 );
|
danielebarchiesi@2
|
63 }
|
danielebarchiesi@2
|
64
|
danielebarchiesi@2
|
65 /**
|
danielebarchiesi@2
|
66 * Implements hook_views_api().
|
danielebarchiesi@2
|
67 */
|
danielebarchiesi@2
|
68 function views_slideshow_views_api() {
|
danielebarchiesi@2
|
69 return array(
|
danielebarchiesi@2
|
70 'api' => '3',
|
danielebarchiesi@2
|
71 );
|
danielebarchiesi@2
|
72 }
|
danielebarchiesi@2
|
73
|
danielebarchiesi@2
|
74 /**
|
danielebarchiesi@2
|
75 * Implements hook_help().
|
danielebarchiesi@2
|
76 */
|
danielebarchiesi@2
|
77 function views_slideshow_help($path, $arg) {
|
danielebarchiesi@2
|
78 switch ($path) {
|
danielebarchiesi@2
|
79 case 'admin/help#views_slideshow':
|
danielebarchiesi@2
|
80 return '<p>Check the Views Slideshow project page documentation for tutorials and videos on how to use this module.</p>';
|
danielebarchiesi@2
|
81 }
|
danielebarchiesi@2
|
82 }
|
danielebarchiesi@2
|
83
|
danielebarchiesi@2
|
84 /**
|
danielebarchiesi@2
|
85 * Implements hook_init().
|
danielebarchiesi@2
|
86 */
|
danielebarchiesi@2
|
87 function views_slideshow_init() {
|
danielebarchiesi@2
|
88 // Load javascript on the page in init to help fool caching.
|
danielebarchiesi@2
|
89 drupal_add_js(drupal_get_path('module', 'views_slideshow') . '/js/views_slideshow.js');
|
danielebarchiesi@2
|
90
|
danielebarchiesi@2
|
91 $vs_path = drupal_get_path('module', 'views_slideshow');
|
danielebarchiesi@2
|
92 drupal_add_css($vs_path . '/views_slideshow.css');
|
danielebarchiesi@2
|
93 }
|
danielebarchiesi@2
|
94
|
danielebarchiesi@2
|
95 /**
|
danielebarchiesi@2
|
96 * Implementation of hook_views_slideshow_skin_info().
|
danielebarchiesi@2
|
97 */
|
danielebarchiesi@2
|
98 function views_slideshow_views_slideshow_skin_info() {
|
danielebarchiesi@2
|
99 return array(
|
danielebarchiesi@2
|
100 'default' => array(
|
danielebarchiesi@2
|
101 'name' => t('Default'),
|
danielebarchiesi@2
|
102 ),
|
danielebarchiesi@2
|
103 );
|
danielebarchiesi@2
|
104 }
|
danielebarchiesi@2
|
105
|
danielebarchiesi@2
|
106 /**
|
danielebarchiesi@2
|
107 * Implements hook_views_slideshow_widget_info().
|
danielebarchiesi@2
|
108 */
|
danielebarchiesi@2
|
109 function views_slideshow_views_slideshow_widget_info() {
|
danielebarchiesi@2
|
110 return array(
|
danielebarchiesi@2
|
111 'views_slideshow_pager' => array(
|
danielebarchiesi@2
|
112 'name' => t('Pager'),
|
danielebarchiesi@2
|
113 'accepts' => array(
|
danielebarchiesi@2
|
114 'transitionBegin' => array('required' => TRUE),
|
danielebarchiesi@2
|
115 'goToSlide',
|
danielebarchiesi@2
|
116 'previousSlide',
|
danielebarchiesi@2
|
117 'nextSlide',
|
danielebarchiesi@2
|
118 ),
|
danielebarchiesi@2
|
119 'calls' => array(
|
danielebarchiesi@2
|
120 'goToSlide',
|
danielebarchiesi@2
|
121 'pause',
|
danielebarchiesi@2
|
122 'play',
|
danielebarchiesi@2
|
123 ),
|
danielebarchiesi@2
|
124 ),
|
danielebarchiesi@2
|
125 'views_slideshow_controls' => array(
|
danielebarchiesi@2
|
126 'name' => t('Controls'),
|
danielebarchiesi@2
|
127 'accepts' => array(
|
danielebarchiesi@2
|
128 'pause' => array('required' => TRUE),
|
danielebarchiesi@2
|
129 'play' => array('required' => TRUE),
|
danielebarchiesi@2
|
130 ),
|
danielebarchiesi@2
|
131 'calls' => array(
|
danielebarchiesi@2
|
132 'nextSlide',
|
danielebarchiesi@2
|
133 'pause',
|
danielebarchiesi@2
|
134 'play',
|
danielebarchiesi@2
|
135 'previousSlide',
|
danielebarchiesi@2
|
136 ),
|
danielebarchiesi@2
|
137 ),
|
danielebarchiesi@2
|
138 'views_slideshow_slide_counter' => array(
|
danielebarchiesi@2
|
139 'name' => t('Slide Counter'),
|
danielebarchiesi@2
|
140 'accepts' => array(
|
danielebarchiesi@2
|
141 'transitionBegin' => array('required' => TRUE),
|
danielebarchiesi@2
|
142 'goToSlide',
|
danielebarchiesi@2
|
143 'previousSlide',
|
danielebarchiesi@2
|
144 'nextSlide',
|
danielebarchiesi@2
|
145 ),
|
danielebarchiesi@2
|
146 'calls' => array(),
|
danielebarchiesi@2
|
147 ),
|
danielebarchiesi@2
|
148 );
|
danielebarchiesi@2
|
149 }
|
danielebarchiesi@2
|
150
|
danielebarchiesi@2
|
151 /**
|
danielebarchiesi@2
|
152 * Implements [widget]_views_slideshow_widget_form_options().
|
danielebarchiesi@2
|
153 */
|
danielebarchiesi@2
|
154 function views_slideshow_pager_views_slideshow_widget_form_options(&$form, &$form_state, &$view, $defaults, $dependency) {
|
danielebarchiesi@2
|
155 // Get all the pager info from other modules.
|
danielebarchiesi@2
|
156 // hook_views_slideshow_pager_info($view, $option_values, $dependency_prefix)
|
danielebarchiesi@2
|
157 $pagers = module_invoke_all('views_slideshow_widget_pager_info', $view);
|
danielebarchiesi@2
|
158
|
danielebarchiesi@2
|
159 if (!empty($pagers)) {
|
danielebarchiesi@2
|
160 $pager_options = array();
|
danielebarchiesi@2
|
161 foreach($pagers as $pager_id => $pager_info) {
|
danielebarchiesi@2
|
162 $pager_options[$pager_id] = $pager_info['name'];
|
danielebarchiesi@2
|
163 }
|
danielebarchiesi@2
|
164 asort($pager_options);
|
danielebarchiesi@2
|
165
|
danielebarchiesi@2
|
166 // Need to wrap this so it indents correctly.
|
danielebarchiesi@2
|
167 $form['views_slideshow_pager_wrapper'] = array(
|
danielebarchiesi@2
|
168 '#markup' => '<div class="vs-dependent">',
|
danielebarchiesi@2
|
169 );
|
danielebarchiesi@2
|
170
|
danielebarchiesi@2
|
171 // Add field to see if they would like to hide pager if there is only one
|
danielebarchiesi@2
|
172 // slide.
|
danielebarchiesi@2
|
173 $form['hide_on_single_slide'] = array(
|
danielebarchiesi@2
|
174 '#type' => 'checkbox',
|
danielebarchiesi@2
|
175 '#title' => t('Hide pager if there is only one slide'),
|
danielebarchiesi@2
|
176 '#default_value' => $defaults['hide_on_single_slide'],
|
danielebarchiesi@2
|
177 '#description' => t('Should the pager be hidden if there is only one slide.'),
|
danielebarchiesi@2
|
178 '#states' => array(
|
danielebarchiesi@2
|
179 'visible' => array(
|
danielebarchiesi@2
|
180 ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE),
|
danielebarchiesi@2
|
181 ),
|
danielebarchiesi@2
|
182 ),
|
danielebarchiesi@2
|
183 );
|
danielebarchiesi@2
|
184
|
danielebarchiesi@2
|
185 // Create the widget type field.
|
danielebarchiesi@2
|
186 $form['type'] = array(
|
danielebarchiesi@2
|
187 '#type' => 'select',
|
danielebarchiesi@2
|
188 '#title' => t('Pager Type'),
|
danielebarchiesi@2
|
189 '#description' => t('Style of the pager'),
|
danielebarchiesi@2
|
190 '#default_value' => $defaults['type'],
|
danielebarchiesi@2
|
191 '#options' => $pager_options,
|
danielebarchiesi@2
|
192 '#states' => array(
|
danielebarchiesi@2
|
193 'visible' => array(
|
danielebarchiesi@2
|
194 ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE),
|
danielebarchiesi@2
|
195 ),
|
danielebarchiesi@2
|
196 ),
|
danielebarchiesi@2
|
197 );
|
danielebarchiesi@2
|
198
|
danielebarchiesi@2
|
199 // Add any additional form elements
|
danielebarchiesi@2
|
200 // Build our arguments to pass to
|
danielebarchiesi@2
|
201 // [pager-type]_views_slideshow_widget_pager_form_options
|
danielebarchiesi@2
|
202 $arguments = array(
|
danielebarchiesi@2
|
203 &$form,
|
danielebarchiesi@2
|
204 &$form_state,
|
danielebarchiesi@2
|
205 &$view,
|
danielebarchiesi@2
|
206 $defaults,
|
danielebarchiesi@2
|
207 $dependency,
|
danielebarchiesi@2
|
208 );
|
danielebarchiesi@2
|
209
|
danielebarchiesi@2
|
210 foreach ($pagers as $pager_key => $pager_info) {
|
danielebarchiesi@2
|
211 $function = $pager_key . '_views_slideshow_widget_pager_form_options';
|
danielebarchiesi@2
|
212 if (function_exists($function)) {
|
danielebarchiesi@2
|
213 call_user_func_array($function, $arguments);
|
danielebarchiesi@2
|
214 }
|
danielebarchiesi@2
|
215 }
|
danielebarchiesi@2
|
216
|
danielebarchiesi@2
|
217 $form['views_slideshow_pager_wrapper_close'] = array(
|
danielebarchiesi@2
|
218 '#markup' => '</div>',
|
danielebarchiesi@2
|
219 );
|
danielebarchiesi@2
|
220 }
|
danielebarchiesi@2
|
221 else {
|
danielebarchiesi@2
|
222 $form['enable_pager'] = array(
|
danielebarchiesi@2
|
223 '#markup' => 'There are no pagers available.',
|
danielebarchiesi@2
|
224 );
|
danielebarchiesi@2
|
225 }
|
danielebarchiesi@2
|
226 }
|
danielebarchiesi@2
|
227
|
danielebarchiesi@2
|
228 /**
|
danielebarchiesi@2
|
229 * Implementation of hook_views_slideshow_widget_pager_info
|
danielebarchiesi@2
|
230 */
|
danielebarchiesi@2
|
231 function views_slideshow_views_slideshow_widget_pager_info($view) {
|
danielebarchiesi@2
|
232 $settings = array();
|
danielebarchiesi@2
|
233 // Settings for fields pager.
|
danielebarchiesi@2
|
234 // First verfiy that the view is using fields.
|
danielebarchiesi@2
|
235 if ($view->row_plugin->uses_fields()) {
|
danielebarchiesi@2
|
236 $settings = array(
|
danielebarchiesi@2
|
237 'views_slideshow_pager_fields' => array(
|
danielebarchiesi@2
|
238 'name' => t('Fields'),
|
danielebarchiesi@2
|
239 ),
|
danielebarchiesi@2
|
240 );
|
danielebarchiesi@2
|
241 }
|
danielebarchiesi@2
|
242
|
danielebarchiesi@2
|
243 return $settings;
|
danielebarchiesi@2
|
244 }
|
danielebarchiesi@2
|
245
|
danielebarchiesi@2
|
246 /**
|
danielebarchiesi@2
|
247 * Implementation [widget-type]_views_slideshow_pager_form_options
|
danielebarchiesi@2
|
248 */
|
danielebarchiesi@2
|
249 function views_slideshow_pager_fields_views_slideshow_widget_pager_form_options(&$form, &$form_state, &$view, $defaults, $dependency) {
|
danielebarchiesi@2
|
250 // Settings for fields pager.
|
danielebarchiesi@2
|
251 $options = array();
|
danielebarchiesi@2
|
252 // Get each field and it's name.
|
danielebarchiesi@2
|
253 foreach ($view->display->handler->get_handlers('field') as $field => $handler) {
|
danielebarchiesi@2
|
254 $options[$field] = $handler->ui_name();
|
danielebarchiesi@2
|
255 }
|
danielebarchiesi@2
|
256 // Need to wrap this so it indents correctly.
|
danielebarchiesi@2
|
257 $form['views_slideshow_pager_fields_wrapper'] = array(
|
danielebarchiesi@2
|
258 '#markup' => '<div class="vs-dependent">',
|
danielebarchiesi@2
|
259 );
|
danielebarchiesi@2
|
260 // Add ability to choose which fields to show in the pager.
|
danielebarchiesi@2
|
261 $form['views_slideshow_pager_fields_fields'] = array(
|
danielebarchiesi@2
|
262 '#type' => 'checkboxes',
|
danielebarchiesi@2
|
263 '#title' => t('Pager fields'),
|
danielebarchiesi@2
|
264 '#options' => $options,
|
danielebarchiesi@2
|
265 '#default_value' => $defaults['views_slideshow_pager_fields_fields'],
|
danielebarchiesi@2
|
266 '#description' => t("Choose the fields that will appear in the pager."),
|
danielebarchiesi@2
|
267 '#process' => array(
|
danielebarchiesi@2
|
268 'form_process_checkboxes',
|
danielebarchiesi@2
|
269 ),
|
danielebarchiesi@2
|
270 '#states' => array(
|
danielebarchiesi@2
|
271 'visible' => array(
|
danielebarchiesi@2
|
272 ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE),
|
danielebarchiesi@2
|
273 ':input[name="' . $dependency . '[type]"]' => array('value' => 'views_slideshow_pager_fields'),
|
danielebarchiesi@2
|
274 ),
|
danielebarchiesi@2
|
275 ),
|
danielebarchiesi@2
|
276 );
|
danielebarchiesi@2
|
277
|
danielebarchiesi@2
|
278 // Add field to see if they would like to activate slide and pause on pager
|
danielebarchiesi@2
|
279 // hover
|
danielebarchiesi@2
|
280 $form['views_slideshow_pager_fields_hover'] = array(
|
danielebarchiesi@2
|
281 '#type' => 'checkbox',
|
danielebarchiesi@2
|
282 '#title' => t('Activate Slide and Pause on Pager Hover'),
|
danielebarchiesi@2
|
283 '#default_value' => $defaults['views_slideshow_pager_fields_hover'],
|
danielebarchiesi@2
|
284 '#description' => t('Should the slide be activated and paused when hovering over a pager item.'),
|
danielebarchiesi@2
|
285 '#states' => array(
|
danielebarchiesi@2
|
286 'visible' => array(
|
danielebarchiesi@2
|
287 ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE),
|
danielebarchiesi@2
|
288 ':input[name="' . $dependency . '[type]"]' => array('value' => 'views_slideshow_pager_fields'),
|
danielebarchiesi@2
|
289 ),
|
danielebarchiesi@2
|
290 ),
|
danielebarchiesi@2
|
291 );
|
danielebarchiesi@2
|
292
|
danielebarchiesi@2
|
293 $form['views_slideshow_pager_fields_wrapper_close'] = array(
|
danielebarchiesi@2
|
294 '#markup' => '</div>',
|
danielebarchiesi@2
|
295 );
|
danielebarchiesi@2
|
296 }
|
danielebarchiesi@2
|
297
|
danielebarchiesi@2
|
298 /**
|
danielebarchiesi@2
|
299 * Implements [widget]_views_slideshow_widget_form_options().
|
danielebarchiesi@2
|
300 */
|
danielebarchiesi@2
|
301 function views_slideshow_controls_views_slideshow_widget_form_options(&$form, &$form_state, &$view, $defaults, $dependency) {
|
danielebarchiesi@2
|
302 // Get all the control info from other modules.
|
danielebarchiesi@2
|
303 // hook_views_slideshow_controls_settings($view, $option_values, $dependency_prefix)
|
danielebarchiesi@2
|
304 $controls = module_invoke_all('views_slideshow_widget_controls_info', $view);
|
danielebarchiesi@2
|
305
|
danielebarchiesi@2
|
306 if (!empty($controls)) {
|
danielebarchiesi@2
|
307 $control_type_options = array();
|
danielebarchiesi@2
|
308 foreach($controls as $control_id => $control_info) {
|
danielebarchiesi@2
|
309 $control_type_options[$control_id] = $control_info['name'];
|
danielebarchiesi@2
|
310 }
|
danielebarchiesi@2
|
311 asort($control_type_options);
|
danielebarchiesi@2
|
312
|
danielebarchiesi@2
|
313 // Need to wrap this so it indents correctly.
|
danielebarchiesi@2
|
314 $form['views_slideshow_controls_wrapper'] = array(
|
danielebarchiesi@2
|
315 '#markup' => '<div class="vs-dependent">',
|
danielebarchiesi@2
|
316 );
|
danielebarchiesi@2
|
317
|
danielebarchiesi@2
|
318 // Add field to see if they would like to hide controls if there is only one
|
danielebarchiesi@2
|
319 // slide
|
danielebarchiesi@2
|
320 $form['hide_on_single_slide'] = array(
|
danielebarchiesi@2
|
321 '#type' => 'checkbox',
|
danielebarchiesi@2
|
322 '#title' => t('Hide controls if there is only one slide'),
|
danielebarchiesi@2
|
323 '#default_value' => $defaults['hide_on_single_slide'],
|
danielebarchiesi@2
|
324 '#description' => t('Should the controls be hidden if there is only one slide.'),
|
danielebarchiesi@2
|
325 '#states' => array(
|
danielebarchiesi@2
|
326 'visible' => array(
|
danielebarchiesi@2
|
327 ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE),
|
danielebarchiesi@2
|
328 ),
|
danielebarchiesi@2
|
329 ),
|
danielebarchiesi@2
|
330 );
|
danielebarchiesi@2
|
331
|
danielebarchiesi@2
|
332 // Create the widget type field.
|
danielebarchiesi@2
|
333 $form['type'] = array(
|
danielebarchiesi@2
|
334 '#type' => 'select',
|
danielebarchiesi@2
|
335 '#title' => t('Controls Type'),
|
danielebarchiesi@2
|
336 '#description' => t('Style of the controls'),
|
danielebarchiesi@2
|
337 '#default_value' => $defaults['type'],
|
danielebarchiesi@2
|
338 '#options' => $control_type_options,
|
danielebarchiesi@2
|
339 '#states' => array(
|
danielebarchiesi@2
|
340 'visible' => array(
|
danielebarchiesi@2
|
341 ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE),
|
danielebarchiesi@2
|
342 ),
|
danielebarchiesi@2
|
343 ),
|
danielebarchiesi@2
|
344 );
|
danielebarchiesi@2
|
345
|
danielebarchiesi@2
|
346 // Add any additional form elements
|
danielebarchiesi@2
|
347 // Build our arguments to pass to
|
danielebarchiesi@2
|
348 // [pager-type]_views_slideshow_widget_pager_form_options
|
danielebarchiesi@2
|
349 $arguments = array(
|
danielebarchiesi@2
|
350 &$form,
|
danielebarchiesi@2
|
351 &$form_state,
|
danielebarchiesi@2
|
352 &$view,
|
danielebarchiesi@2
|
353 $defaults,
|
danielebarchiesi@2
|
354 $dependency,
|
danielebarchiesi@2
|
355 );
|
danielebarchiesi@2
|
356
|
danielebarchiesi@2
|
357 foreach ($controls as $control_key => $control_info) {
|
danielebarchiesi@2
|
358 $function = $control_key . '_views_slideshow_widget_controls_form_options';
|
danielebarchiesi@2
|
359 if (function_exists($function)) {
|
danielebarchiesi@2
|
360 call_user_func_array($function, $arguments);
|
danielebarchiesi@2
|
361 }
|
danielebarchiesi@2
|
362 }
|
danielebarchiesi@2
|
363
|
danielebarchiesi@2
|
364 $form['controls_wrapper_close'] = array(
|
danielebarchiesi@2
|
365 '#markup' => '</div>',
|
danielebarchiesi@2
|
366 );
|
danielebarchiesi@2
|
367 }
|
danielebarchiesi@2
|
368 else {
|
danielebarchiesi@2
|
369 $form['enable_controls'] = array(
|
danielebarchiesi@2
|
370 '#markup' => 'There are no controls available.',
|
danielebarchiesi@2
|
371 );
|
danielebarchiesi@2
|
372 }
|
danielebarchiesi@2
|
373 }
|
danielebarchiesi@2
|
374
|
danielebarchiesi@2
|
375 /**
|
danielebarchiesi@2
|
376 * Implementation of hook_views_slideshow_controls_info
|
danielebarchiesi@2
|
377 */
|
danielebarchiesi@2
|
378 function views_slideshow_views_slideshow_widget_controls_info($view) {
|
danielebarchiesi@2
|
379 return array(
|
danielebarchiesi@2
|
380 'views_slideshow_controls_text' => array(
|
danielebarchiesi@2
|
381 'name' => t('Text'),
|
danielebarchiesi@2
|
382 )
|
danielebarchiesi@2
|
383 );
|
danielebarchiesi@2
|
384 }
|
danielebarchiesi@2
|
385
|
danielebarchiesi@2
|
386 /**
|
danielebarchiesi@2
|
387 * Implements hook_views_slideshow_option_definition.
|
danielebarchiesi@2
|
388 */
|
danielebarchiesi@2
|
389 function views_slideshow_views_slideshow_option_definition() {
|
danielebarchiesi@2
|
390
|
danielebarchiesi@2
|
391 // Default slideshow type and skins
|
danielebarchiesi@2
|
392 $options['slideshow_type'] = array('default' => '');
|
danielebarchiesi@2
|
393 $options['slideshow_skin'] = array('default' => '');
|
danielebarchiesi@2
|
394 $options['skin_info'] = array(
|
danielebarchiesi@2
|
395 'default' => array(
|
danielebarchiesi@2
|
396 'class' => 'default',
|
danielebarchiesi@2
|
397 'name' => t('Untitled skin'),
|
danielebarchiesi@2
|
398 'module' => 'views_slideshow',
|
danielebarchiesi@2
|
399 'path' => '',
|
danielebarchiesi@2
|
400 'stylesheets' => array(),
|
danielebarchiesi@2
|
401 ),
|
danielebarchiesi@2
|
402 );
|
danielebarchiesi@2
|
403
|
danielebarchiesi@2
|
404 // Set default widgets and weight values.
|
danielebarchiesi@2
|
405 $widgets = module_invoke_all('views_slideshow_widget_info');
|
danielebarchiesi@2
|
406 if ($widgets) {
|
danielebarchiesi@2
|
407 $locations = array('top', 'bottom');
|
danielebarchiesi@2
|
408 foreach ($locations as $location) {
|
danielebarchiesi@2
|
409 foreach ($widgets as $widget_id => $widget_name) {
|
danielebarchiesi@2
|
410 $options['widgets']['contains'][$location]['contains'][$widget_id]['contains']['enable'] = array('default' => 0);
|
danielebarchiesi@2
|
411 $options['widgets']['contains'][$location]['contains'][$widget_id]['contains']['weight'] = array('default' => 1);
|
danielebarchiesi@2
|
412 }
|
danielebarchiesi@2
|
413 }
|
danielebarchiesi@2
|
414 }
|
danielebarchiesi@2
|
415
|
danielebarchiesi@2
|
416 // Defaults for the pager widget.
|
danielebarchiesi@2
|
417 foreach ($locations as $location) {
|
danielebarchiesi@2
|
418 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['hide_on_single_slide'] = array('default' => 0);
|
danielebarchiesi@2
|
419 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['type'] = array('default' => 0);
|
danielebarchiesi@2
|
420 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_numbered_hover'] = array('default' => 0);
|
danielebarchiesi@2
|
421 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_numbered_click_to_page'] = array('default' => 0);
|
danielebarchiesi@2
|
422 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_thumbnails_hover'] = array('default' => 0);
|
danielebarchiesi@2
|
423 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_thumbnails_click_to_page'] = array('default' => 0);
|
danielebarchiesi@2
|
424 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_fields_fields'] = array('default' => array());
|
danielebarchiesi@2
|
425 $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_fields_hover'] = array('default' => 0);
|
danielebarchiesi@2
|
426
|
danielebarchiesi@2
|
427 $options['widgets']['contains'][$location]['contains']['views_slideshow_controls']['contains']['hide_on_single_slide'] = array('default' => 0);
|
danielebarchiesi@2
|
428 $options['widgets']['contains'][$location]['contains']['views_slideshow_controls']['contains']['type'] = array('default' => 0);
|
danielebarchiesi@2
|
429 }
|
danielebarchiesi@2
|
430
|
danielebarchiesi@2
|
431 return $options;
|
danielebarchiesi@2
|
432 }
|
danielebarchiesi@2
|
433
|
danielebarchiesi@2
|
434 /**
|
danielebarchiesi@2
|
435 * Need to have preprocess functions here because drupal doesn't cache them
|
danielebarchiesi@2
|
436 * correctly in the theme.inc file.
|
danielebarchiesi@2
|
437 *
|
danielebarchiesi@2
|
438 * If you would like to override the preprocess functions make sure to look at
|
danielebarchiesi@2
|
439 * the associated function in theme.inc.
|
danielebarchiesi@2
|
440 */
|
danielebarchiesi@2
|
441
|
danielebarchiesi@2
|
442 // Trying to make sure the theme.inc get's loaded.
|
danielebarchiesi@2
|
443 include_once('theme/views_slideshow.theme.inc');
|
danielebarchiesi@2
|
444
|
danielebarchiesi@2
|
445 function template_preprocess_views_slideshow(&$vars) {
|
danielebarchiesi@2
|
446 _views_slideshow_preprocess_views_slideshow($vars);
|
danielebarchiesi@2
|
447 }
|
danielebarchiesi@2
|
448
|
danielebarchiesi@2
|
449 function template_preprocess_views_slideshow_pager_fields(&$vars) {
|
danielebarchiesi@2
|
450 _views_slideshow_preprocess_views_slideshow_pager_fields($vars);
|
danielebarchiesi@2
|
451 }
|
danielebarchiesi@2
|
452
|
danielebarchiesi@2
|
453 function template_preprocess_views_slideshow_pager_field_item(&$vars) {
|
danielebarchiesi@2
|
454 _views_slideshow_preprocess_views_slideshow_pager_field_item($vars);
|
danielebarchiesi@2
|
455 }
|
danielebarchiesi@2
|
456
|
danielebarchiesi@2
|
457 function template_preprocess_views_slideshow_controls_text(&$vars) {
|
danielebarchiesi@2
|
458 _views_slideshow_preprocess_views_slideshow_controls_text($vars);
|
danielebarchiesi@2
|
459 }
|
danielebarchiesi@2
|
460
|
danielebarchiesi@2
|
461 function template_preprocess_views_slideshow_controls_text_previous(&$vars) {
|
danielebarchiesi@2
|
462 _views_slideshow_preprocess_views_slideshow_controls_text_previous($vars);
|
danielebarchiesi@2
|
463 }
|
danielebarchiesi@2
|
464
|
danielebarchiesi@2
|
465 function template_preprocess_views_slideshow_controls_text_pause(&$vars) {
|
danielebarchiesi@2
|
466 _views_slideshow_preprocess_views_slideshow_controls_text_pause($vars);
|
danielebarchiesi@2
|
467 }
|
danielebarchiesi@2
|
468
|
danielebarchiesi@2
|
469 function template_preprocess_views_slideshow_controls_text_next(&$vars) {
|
danielebarchiesi@2
|
470 _views_slideshow_preprocess_views_slideshow_controls_text_next($vars);
|
danielebarchiesi@2
|
471 }
|
danielebarchiesi@2
|
472
|
danielebarchiesi@2
|
473 function template_preprocess_views_slideshow_slide_counter(&$vars) {
|
danielebarchiesi@2
|
474 _views_slideshow_preprocess_views_slideshow_slide_counter($vars);
|
danielebarchiesi@2
|
475 }
|