danielebarchiesi@2: '; danielebarchiesi@2: foreach ($items as $i => $item) { danielebarchiesi@2: // If the slide hasn't been set, build the slide using the image danielebarchiesi@2: // attributes given (assumes we're using a multi-image field) danielebarchiesi@2: // @todo need to allow for different types of field and collection fields danielebarchiesi@2: if (!isset($item['slide'])) { danielebarchiesi@2: $image_options = array( danielebarchiesi@2: 'style_name' => $optionset->imagestyle_normal, danielebarchiesi@2: 'path' => $item['uri'], danielebarchiesi@2: 'height' => isset($item['height']) ? $item['height'] : '', danielebarchiesi@2: 'width' => isset($item['width']) ? $item['width'] : '', danielebarchiesi@2: 'alt' => $item['alt'], danielebarchiesi@2: 'title' => $item['title'], danielebarchiesi@2: 'attributes' => array(), danielebarchiesi@2: ); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: $caption = ''; danielebarchiesi@2: if (!empty($item['title'])) { danielebarchiesi@2: $caption = $item['title']; danielebarchiesi@2: } danielebarchiesi@2: $output .= theme('flexslider_list_item', array( danielebarchiesi@2: 'item' => isset($item['slide']) ? $item['slide'] : theme_image_style($image_options), danielebarchiesi@2: 'item' => isset($item['slide']) ? $item['slide'] : ($optionset->imagestyle_normal ? theme_image_style($image_options) : theme_image($image_options)), danielebarchiesi@2: danielebarchiesi@2: 'thumb' => isset($item['thumb']) ? $item['thumb'] : image_style_url($optionset->imagestyle_thumbnail, $item['uri']), danielebarchiesi@2: 'optionset' => $optionset, danielebarchiesi@2: 'caption' => $caption, danielebarchiesi@2: )); danielebarchiesi@2: } danielebarchiesi@2: $output .= ""; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: return $output; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Default theme implementation for flexslider_list_item danielebarchiesi@2: */ danielebarchiesi@2: function theme_flexslider_list_item(&$vars) { danielebarchiesi@2: // Reference configuration variables danielebarchiesi@2: $item = &$vars['item']; danielebarchiesi@2: $attributes = &$vars['settings']['attributes']; danielebarchiesi@2: danielebarchiesi@2: if ($vars['optionset']->options['controlNav'] === "thumbnails" && danielebarchiesi@2: isset($vars['thumb']) danielebarchiesi@2: ) { danielebarchiesi@2: $attributes['data-thumb'] = $vars['thumb']; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: $caption = ''; danielebarchiesi@2: if (!empty($vars['caption'])) { danielebarchiesi@2: $caption = '

' . $vars['caption'] . '

'; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: $output = ''; danielebarchiesi@2: $output .= '' . $item . $caption . "\n"; danielebarchiesi@2: danielebarchiesi@2: return $output; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Template preprocess handler for 'flexslider' theme. danielebarchiesi@2: */ danielebarchiesi@2: function template_process_flexslider(&$vars) { danielebarchiesi@2: danielebarchiesi@2: // Reference configuration variables danielebarchiesi@2: $optionset = &$vars['settings']['optionset']; danielebarchiesi@2: $settings = &$vars['settings']; danielebarchiesi@2: $items = &$vars['items']; danielebarchiesi@2: danielebarchiesi@2: // Set the default container type danielebarchiesi@2: if (empty($settings['type'])) { danielebarchiesi@2: $settings['type'] = 'ul'; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Load the selected optionset danielebarchiesi@2: if (!empty($optionset)) { danielebarchiesi@2: $optionset = flexslider_optionset_load($optionset); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Check if an optionset was loaded danielebarchiesi@2: if (empty($optionset)) { danielebarchiesi@2: // Fall back to 'default' option set danielebarchiesi@2: $optionset = flexslider_optionset_load('default'); danielebarchiesi@2: watchdog('flexslider', 'Fallback to default optionset.', array(), WATCHDOG_WARNING); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Configure attributes for containing elements danielebarchiesi@2: $attributes = array(); danielebarchiesi@2: // Merge with defined attributes danielebarchiesi@2: if (isset($settings['attributes']) and is_array($settings['attributes'])) { danielebarchiesi@2: $attributes += $settings['attributes']; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Set the ID for each flexslider instance if none is provided danielebarchiesi@2: if (empty($attributes['id'])) { danielebarchiesi@2: $flexslider_id = &drupal_static('flexslider_id', 0); danielebarchiesi@2: $attributes['id'] = 'flexslider-' . ++$flexslider_id; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Add the namespace to any classes danielebarchiesi@2: // @todo figure out what this is supposed to do danielebarchiesi@2: if (!empty($attributes['class']) && !empty($optionset->options['namespace'])) { danielebarchiesi@2: foreach ($attributes['class'] as $key => $value) { danielebarchiesi@2: $attributes['class'][$key] = $optionset->options['namespace'] . $value; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Add the flexslider class to be namespaced danielebarchiesi@2: $attributes['class'][] = 'flexslider'; danielebarchiesi@2: danielebarchiesi@2: // Add the attributes to the settings array. danielebarchiesi@2: $settings['attributes'] = $attributes; danielebarchiesi@2: danielebarchiesi@2: // Finally, add the configuration to the page danielebarchiesi@2: flexslider_add($vars['settings']['attributes']['id'], $vars['settings']['optionset']); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Preprocess function for flexslider_list_item danielebarchiesi@2: */ danielebarchiesi@2: function template_preprocess_flexslider_list(&$vars) { danielebarchiesi@2: // Reset the list of attributes danielebarchiesi@2: $vars['settings']['attributes'] = array( danielebarchiesi@2: // @todo find a way to detect the outter container class if possible danielebarchiesi@2: 'class' => array('slides'), danielebarchiesi@2: ); danielebarchiesi@2: danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Preprocess function for flexslider_list_item danielebarchiesi@2: */ danielebarchiesi@2: function template_preprocess_flexslider_list_item(&$vars) { danielebarchiesi@2: // Reset the list of attributes danielebarchiesi@2: $vars['settings']['attributes'] = array(); danielebarchiesi@2: //dpm($vars); danielebarchiesi@2: danielebarchiesi@2: //$vars['item'] = implode('', $vars['item']); danielebarchiesi@2: // @todo add attributes for thumbnails danielebarchiesi@2: }