danielebarchiesi@2: 'FlexSlider', danielebarchiesi@2: 'vendor url' => 'http://www.woothemes.com/flexslider/', danielebarchiesi@2: 'download url' => 'https://github.com/woothemes/FlexSlider', danielebarchiesi@2: 'version arguments' => array( danielebarchiesi@2: 'file' => 'jquery.flexslider-min.js', danielebarchiesi@2: // jQuery FlexSlider v2.1 danielebarchiesi@2: 'pattern' => '/jQuery FlexSlider v(\d+\.+\d+)/', danielebarchiesi@2: 'lines' => 2, danielebarchiesi@2: ), danielebarchiesi@2: 'files' => array( danielebarchiesi@2: 'js' => array( danielebarchiesi@2: 'jquery.flexslider-min.js', danielebarchiesi@2: ), danielebarchiesi@2: 'css' => array( danielebarchiesi@2: 'flexslider.css', danielebarchiesi@2: ), danielebarchiesi@2: ), danielebarchiesi@2: 'integration files' => array( danielebarchiesi@2: 'flexslider' => array( danielebarchiesi@2: 'css' => array('assets/css/flexslider_img.css'), danielebarchiesi@2: ), danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: danielebarchiesi@2: return $libraries; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_libraries_info_alter(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_libraries_info_alter(&$libraries) { danielebarchiesi@2: $debug = variable_get('flexslider_debug', FALSE); danielebarchiesi@2: if ($debug) { danielebarchiesi@2: // Switch to the unminified version of the library danielebarchiesi@2: if (isset($libraries['flexslider'])) { danielebarchiesi@2: $libraries['flexslider']['files']['js'] = array( danielebarchiesi@2: 'jquery.flexslider.js', danielebarchiesi@2: ); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Add support for jQuery Easing module danielebarchiesi@2: if (module_exists('jqeasing')) { danielebarchiesi@2: $libraries['flexslider']['dependencies'][] = 'easing (>=1.3)'; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_library(). danielebarchiesi@2: * danielebarchiesi@2: * We also define FlexSlider through the core library callbacks danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_library() { danielebarchiesi@2: $module_path = drupal_get_path('module', 'flexslider'); danielebarchiesi@2: $library_path = libraries_get_path('flexslider'); danielebarchiesi@2: danielebarchiesi@2: $libraries['flexslider'] = array( danielebarchiesi@2: 'title' => 'FlexSlider', danielebarchiesi@2: 'website' => 'http://flexslider.woothemes.com', danielebarchiesi@2: 'version' => FLEXSLIDER_VERSION, danielebarchiesi@2: 'js' => array( danielebarchiesi@2: $library_path . '/jquery.flexslider-min.js' => array( danielebarchiesi@2: 'scope' => 'footer', danielebarchiesi@2: ), danielebarchiesi@2: ), danielebarchiesi@2: 'css' => array( danielebarchiesi@2: $library_path . '/flexslider.css' => array( danielebarchiesi@2: 'type' => 'file', danielebarchiesi@2: 'media' => 'screen', danielebarchiesi@2: ), danielebarchiesi@2: $module_path . '/assets/css/flexslider_img.css' => array( danielebarchiesi@2: 'type' => 'file', danielebarchiesi@2: 'media' => 'screen', danielebarchiesi@2: ), danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: return $libraries; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_library_alter(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_library_alter(&$libraries, $module) { danielebarchiesi@2: // Enable debug mode danielebarchiesi@2: if (FLEXSLIDER_DEBUG) { danielebarchiesi@2: if ($module == 'flexslider' and isset($libraries['flexslider'])) { danielebarchiesi@2: $libraries['flexslider']['js'] = array( danielebarchiesi@2: libraries_get_path() . '/jquery.flexslider.js' => array( danielebarchiesi@2: 'scope' => 'footer', danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_permission(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_permission() { danielebarchiesi@2: return array( danielebarchiesi@2: 'administer flexslider' => array( danielebarchiesi@2: 'title' => t('Administer the FlexSlider module'), danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_menu(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_menu() { danielebarchiesi@2: $items = array(); danielebarchiesi@2: danielebarchiesi@2: $items['admin/config/media/flexslider/advanced'] = array( danielebarchiesi@2: 'title' => 'Advanced settings', danielebarchiesi@2: 'description' => 'Configure the advanced flexslider module settings.', danielebarchiesi@2: 'page callback' => 'drupal_get_form', danielebarchiesi@2: 'page arguments' => array('flexslider_form_settings'), danielebarchiesi@2: 'access arguments' => array('administer flexslider'), danielebarchiesi@2: 'type' => MENU_LOCAL_TASK, danielebarchiesi@2: 'weight' => 2, danielebarchiesi@2: 'file' => 'flexslider.admin.inc', danielebarchiesi@2: ); danielebarchiesi@2: danielebarchiesi@2: return $items; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_help(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_help($path, $arg) { danielebarchiesi@2: switch ($path) { danielebarchiesi@2: case 'admin/config/media/flexslider/edit/%': danielebarchiesi@2: return danielebarchiesi@2: '

' danielebarchiesi@2: . t('An option set defines exactly how a flexslider image gallery looks like on your site. ' danielebarchiesi@2: . 'It is s a combination of image styles for the various image sizes and FlexSlider library options.', array('@styles' => url('admin/config/media/image-styles'))) . '
' danielebarchiesi@2: . t('For a full documentation of all options, refer to the official @docs.', array('@docs' => l(t('FlexSlider documentation'), 'http://www.woothemes.com/flexslider/'))) danielebarchiesi@2: . '

'; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_theme(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_theme() { danielebarchiesi@2: return array( danielebarchiesi@2: // Container for nav elements (arrows) danielebarchiesi@2: 'flexslider' => array( danielebarchiesi@2: 'variables' => array('items' => array(), 'settings' => array()), danielebarchiesi@2: 'template' => 'theme/flexslider', danielebarchiesi@2: 'file' => 'theme/flexslider.theme.inc', danielebarchiesi@2: ), danielebarchiesi@2: 'flexslider_list' => array( danielebarchiesi@2: 'variables' => array('items' => array(), 'settings' => array()), danielebarchiesi@2: 'file' => 'theme/flexslider.theme.inc', danielebarchiesi@2: ), danielebarchiesi@2: 'flexslider_list_item' => array( danielebarchiesi@2: 'variables' => array('item' => array(), 'settings' => array()), danielebarchiesi@2: 'file' => 'theme/flexslider.theme.inc', danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_image_default_styles(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_image_default_styles() { danielebarchiesi@2: $styles = array(); danielebarchiesi@2: danielebarchiesi@2: // Default image preset for FlexSlider danielebarchiesi@2: $styles['flexslider_full'] = array( danielebarchiesi@2: 'effects' => array( danielebarchiesi@2: array( danielebarchiesi@2: 'name' => 'image_scale_and_crop', danielebarchiesi@2: 'data' => array('width' => 800, 'height' => 500), danielebarchiesi@2: 'weight' => 0, danielebarchiesi@2: ), danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: danielebarchiesi@2: // Default image preset for FlexSlider thumbnails danielebarchiesi@2: $styles['flexslider_thumbnail'] = array( danielebarchiesi@2: 'effects' => array( danielebarchiesi@2: array( danielebarchiesi@2: 'name' => 'image_scale_and_crop', danielebarchiesi@2: 'data' => array('width' => 160, 'height' => 100), danielebarchiesi@2: 'weight' => 0, danielebarchiesi@2: ), danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: danielebarchiesi@2: return $styles; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_ctools_plugin_api(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_ctools_plugin_api($owner, $api) { danielebarchiesi@2: if ($owner == 'flexslider' && $api == 'flexslider_default_preset') { danielebarchiesi@2: return array('version' => 1); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implements hook_ctools_plugin_directory(). danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_ctools_plugin_directory($module, $type) { danielebarchiesi@2: if ($type == 'export_ui') { danielebarchiesi@2: return 'plugins/export_ui'; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Create a new optionset object danielebarchiesi@2: * danielebarchiesi@2: * Note that this function does not save the optionset to the database. danielebarchiesi@2: * @see flexslider_optionset_save() danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_optionset_create($values = array()) { danielebarchiesi@2: ctools_include('export'); danielebarchiesi@2: $optionset = ctools_export_crud_new('flexslider_optionset'); danielebarchiesi@2: danielebarchiesi@2: // Set the options to an array danielebarchiesi@2: $optionset->options = array(); danielebarchiesi@2: danielebarchiesi@2: // Assign specified values danielebarchiesi@2: if (isset($values['name'])) { danielebarchiesi@2: $optionset->name = $values['name']; danielebarchiesi@2: } danielebarchiesi@2: if (isset($values['title'])) { danielebarchiesi@2: $optionset->title = $values['title']; danielebarchiesi@2: } danielebarchiesi@2: if (isset($values['options']) and is_array($values['options'])) { danielebarchiesi@2: $optionset->options = $values['options']; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Merge default settings with any given settings danielebarchiesi@2: $optionset_defaults = _flexslider_optionset_defaults(); danielebarchiesi@2: $optionset->options = $optionset_defaults += $optionset->options; danielebarchiesi@2: danielebarchiesi@2: return $optionset; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Fetches all option sets from the database and returns them as an associative array. danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_optionset_load_all() { danielebarchiesi@2: ctools_include('export'); danielebarchiesi@2: $optionsets = ctools_export_crud_load_all('flexslider_optionset'); danielebarchiesi@2: foreach ($optionsets as $optionset) { danielebarchiesi@2: // Ensure the optionset is typecast after being loaded from DB danielebarchiesi@2: _flexslider_typecast_optionset($optionset->options); danielebarchiesi@2: } danielebarchiesi@2: return $optionsets; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Fetches the given option set and returns it as an object or NULL, if no set could be found. danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_optionset_load($optionset_name) { danielebarchiesi@2: ctools_include('export'); danielebarchiesi@2: $optionset = ctools_export_crud_load('flexslider_optionset', $optionset_name); danielebarchiesi@2: // Ensure the optionset is typecast after being loaded from DB danielebarchiesi@2: _flexslider_typecast_optionset($optionset->options); danielebarchiesi@2: return $optionset; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Checks whether an option set with the given name already exists. danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_optionset_exists($optionset_name) { danielebarchiesi@2: ctools_include('export'); danielebarchiesi@2: $optionset = ctools_export_crud_load('flexslider_optionset', $optionset_name); danielebarchiesi@2: return isset($optionset->name); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Saves the given option set to the database. danielebarchiesi@2: * Set the $new flag if this set has not been written before. danielebarchiesi@2: * danielebarchiesi@2: * @return object|boolean danielebarchiesi@2: * Returns the newly saved object, FALSE otherwise. danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_optionset_save($optionset, $new = FALSE) { danielebarchiesi@2: // If the machine name is missing or already in use, return an error. danielebarchiesi@2: if (empty($optionset->name) or (FALSE != flexslider_optionset_exists($optionset->name) and $new)) { danielebarchiesi@2: return FALSE; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Check for an invalid list of options danielebarchiesi@2: if (isset($optionset->options) and !is_array($optionset->options)) { danielebarchiesi@2: return FALSE; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: danielebarchiesi@2: // If the title is missing, default to the name danielebarchiesi@2: if (empty($optionset->title)) { danielebarchiesi@2: $optionset->title = $optionset->name; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Merge default settings with any given settings danielebarchiesi@2: $optionset_defaults = _flexslider_optionset_defaults(); danielebarchiesi@2: $optionset->options = $optionset_defaults += $optionset->options; danielebarchiesi@2: danielebarchiesi@2: // Prepare the database values. danielebarchiesi@2: $db_values = array( danielebarchiesi@2: 'name' => $optionset->name, danielebarchiesi@2: 'title' => $optionset->title, danielebarchiesi@2: 'options' => _flexslider_typecast_optionset($optionset->options), danielebarchiesi@2: ); danielebarchiesi@2: danielebarchiesi@2: if ($new) { danielebarchiesi@2: $result = drupal_write_record('flexslider_optionset', $db_values); danielebarchiesi@2: } danielebarchiesi@2: else { danielebarchiesi@2: $result = drupal_write_record('flexslider_optionset', $db_values, 'name'); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Return the object if the values were saved successfully. danielebarchiesi@2: if (($new and SAVED_NEW == $result) or (!$new and SAVED_UPDATED == $result)) { danielebarchiesi@2: return $optionset; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Otherwise, an error occured danielebarchiesi@2: return FALSE; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Deletes the given option set from the database. danielebarchiesi@2: * danielebarchiesi@2: * @param object|string $optionset danielebarchiesi@2: * Optionset object or machine name danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_optionset_delete($optionset) { danielebarchiesi@2: if (isset($optionset->name)) { danielebarchiesi@2: $name = $optionset->name; danielebarchiesi@2: } danielebarchiesi@2: else { danielebarchiesi@2: $name = $optionset; danielebarchiesi@2: } danielebarchiesi@2: db_delete('flexslider_optionset')->condition('name', $name)->execute(); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /* danielebarchiesi@2: * This function loads the required JavaScripts and settings for a flexslider danielebarchiesi@2: * instance. danielebarchiesi@2: * danielebarchiesi@2: * @param string $id [optional] danielebarchiesi@2: * ID Attribute for FlexSlider container danielebarchiesi@2: * @param object|strong $optionset [optional] danielebarchiesi@2: * Option set to load or the machine name of an existing optionset danielebarchiesi@2: */ danielebarchiesi@2: function flexslider_add($id = NULL, $optionset = NULL) { danielebarchiesi@2: // Check optionset value danielebarchiesi@2: if (is_string($optionset)) { danielebarchiesi@2: $name = $optionset; danielebarchiesi@2: $optionset = flexslider_optionset_load($name); danielebarchiesi@2: if (empty($optionset)) { danielebarchiesi@2: watchdog('flexslider', 'Invalid optionset name supplied to flexslider_add: @name', array('@name' => $name), WATCHDOG_WARNING); danielebarchiesi@2: return; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Static array to remember which scripts are already attached. danielebarchiesi@2: // @todo not currently in use danielebarchiesi@2: $cache = &drupal_static(__FUNCTION__, array()); danielebarchiesi@2: danielebarchiesi@2: // @todo investigate the best way to cache data loaded from libraries_load() danielebarchiesi@2: libraries_load('flexslider'); danielebarchiesi@2: danielebarchiesi@2: // If the ID or optionset aren't set, it is assumed the settings will be set danielebarchiesi@2: // manually via the calling module/theme danielebarchiesi@2: if (!empty($id) && !empty($optionset)) { danielebarchiesi@2: // JavaScript settings danielebarchiesi@2: $js_settings = array( danielebarchiesi@2: 'optionsets' => array( danielebarchiesi@2: $optionset->name => $optionset->options, danielebarchiesi@2: ), danielebarchiesi@2: 'instances' => array( danielebarchiesi@2: $id => $optionset->name, danielebarchiesi@2: ), danielebarchiesi@2: ); danielebarchiesi@2: // @todo add alter hook for optionset danielebarchiesi@2: drupal_add_js(array('flexslider' => $js_settings), 'setting'); danielebarchiesi@2: } danielebarchiesi@2: // Loader JavaScript danielebarchiesi@2: drupal_add_js(drupal_get_path('module', 'flexslider') . '/assets/js/flexslider.load.js', array('type' => 'file', 'scope' => 'footer')); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Default settings for a newly created option set danielebarchiesi@2: * danielebarchiesi@2: * @param string $key [optional] danielebarchiesi@2: * Get specific default value danielebarchiesi@2: * danielebarchiesi@2: * @see https://github.com/woothemes/FlexSlider/blob/master/README.mdown danielebarchiesi@2: * @see https://github.com/woothemes/FlexSlider/wiki/FlexSlider-Properties danielebarchiesi@2: */ danielebarchiesi@2: function _flexslider_optionset_defaults($key = NULL) { danielebarchiesi@2: danielebarchiesi@2: // We add typecasts to ensure the variables get json encoded properly danielebarchiesi@2: danielebarchiesi@2: $defaults = array( danielebarchiesi@2: // v2.x options danielebarchiesi@2: 'namespace' => 'flex-', danielebarchiesi@2: 'selector' => '.slides > li', danielebarchiesi@2: 'easing' => 'swing', danielebarchiesi@2: 'direction' => 'horizontal', danielebarchiesi@2: 'reverse' => FALSE, // @todo verify data value danielebarchiesi@2: 'smoothHeight' => FALSE, // @todo verify data value danielebarchiesi@2: 'startAt' => 0, danielebarchiesi@2: 'animationSpeed' => 600, danielebarchiesi@2: 'initDelay' => 0, danielebarchiesi@2: 'useCSS' => TRUE, danielebarchiesi@2: 'touch' => TRUE, danielebarchiesi@2: 'video' => FALSE, danielebarchiesi@2: 'keyboard' => TRUE, danielebarchiesi@2: 'multipleKeyboard' => FALSE, danielebarchiesi@2: 'mousewheel' => FALSE, // requires https://github.com/brandonaaron/jquery-mousewheel @todo add to make file danielebarchiesi@2: 'controlsContainer' => '.flex-control-nav-container', danielebarchiesi@2: 'sync' => '', danielebarchiesi@2: 'asNavFor' => '', danielebarchiesi@2: 'itemWidth' => 0, danielebarchiesi@2: 'itemMargin' => 0, danielebarchiesi@2: 'minItems' => 0, danielebarchiesi@2: 'maxItems' => 0, danielebarchiesi@2: 'move' => 0, danielebarchiesi@2: //'start' => '', danielebarchiesi@2: //'before' => '', danielebarchiesi@2: //'after' => '', danielebarchiesi@2: //'end' => '', danielebarchiesi@2: //'added' => '', danielebarchiesi@2: //'removed' => '', danielebarchiesi@2: danielebarchiesi@2: // @todo verify the 1.x options are still valid danielebarchiesi@2: // v1.x options danielebarchiesi@2: 'animation' => 'fade', danielebarchiesi@2: //'animationDuration' => 6000, -- replaced by 'animationSpeed' danielebarchiesi@2: //'slidedirection' => 'horizontal', -- replaced by "direction" danielebarchiesi@2: 'slideshow' => TRUE, danielebarchiesi@2: 'slideshowSpeed' => 7000, danielebarchiesi@2: 'directionNav' => TRUE, danielebarchiesi@2: 'controlNav' => TRUE, danielebarchiesi@2: //'keyboardnav' => TRUE, -- replaced by 'keyboard' danielebarchiesi@2: //'mousewheel' => FALSE, danielebarchiesi@2: 'prevText' => t('Previous'), danielebarchiesi@2: 'nextText' => t('Next'), danielebarchiesi@2: 'pausePlay' => FALSE, danielebarchiesi@2: 'pauseText' => t('Pause'), danielebarchiesi@2: 'playText' => t('Play'), danielebarchiesi@2: 'randomize' => FALSE, danielebarchiesi@2: //'slidetostart' => 0, // integer value, not boolean -- replace by "startAt" danielebarchiesi@2: 'animationLoop' => TRUE, danielebarchiesi@2: 'pauseOnAction' => TRUE, danielebarchiesi@2: 'pauseOnHover' => FALSE, danielebarchiesi@2: //'controlscontainer' => '.flex-nav-container', -- updated in v2 danielebarchiesi@2: 'manualControls' => '', danielebarchiesi@2: //'startCallback' => 'function() {}', -- replace by 'start' danielebarchiesi@2: //'beforeCallback' => 'function() {}', -- replaced by 'before' danielebarchiesi@2: //'afterCallback' => 'function() {}', -- replaced by 'after' danielebarchiesi@2: //'endCallback' => 'function() {}', -- replaced by 'end' danielebarchiesi@2: ); danielebarchiesi@2: danielebarchiesi@2: // Typecast the values danielebarchiesi@2: _flexslider_typecast_optionset($defaults); danielebarchiesi@2: danielebarchiesi@2: // Return the specific item danielebarchiesi@2: if (isset($key) and array_key_exists($key, $defaults)) { danielebarchiesi@2: return $defaults[$key]; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Return all items danielebarchiesi@2: return $defaults; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Adds the typecasting to the values so that the generated danielebarchiesi@2: * json array keeps the right values danielebarchiesi@2: */ danielebarchiesi@2: function _flexslider_typecast_optionset(&$options) { danielebarchiesi@2: if (isset($options) && !empty($options)) { danielebarchiesi@2: foreach ($options as $key => $value) { danielebarchiesi@2: switch ($key) { danielebarchiesi@2: case 'namespace': danielebarchiesi@2: case 'selector': danielebarchiesi@2: case 'easing': danielebarchiesi@2: case 'direction': danielebarchiesi@2: case 'controlsContainer': danielebarchiesi@2: case 'sync': danielebarchiesi@2: case 'asNavFor': danielebarchiesi@2: case 'fade': danielebarchiesi@2: case 'prevText': danielebarchiesi@2: case 'nextText': danielebarchiesi@2: case 'pauseText': danielebarchiesi@2: case 'playText': danielebarchiesi@2: case 'manualControls': danielebarchiesi@2: $options[$key] = (string)$value; danielebarchiesi@2: break; danielebarchiesi@2: case 'startAt': danielebarchiesi@2: case 'animationSpeed': danielebarchiesi@2: case 'initDelay': danielebarchiesi@2: case 'itemWidth': danielebarchiesi@2: case 'itemMargin': danielebarchiesi@2: case 'minItems': danielebarchiesi@2: case 'maxItems': danielebarchiesi@2: case 'move': danielebarchiesi@2: $options[$key] = (int)$value; danielebarchiesi@2: break; danielebarchiesi@2: case 'controlNav': danielebarchiesi@2: if ($value == 'thumbnails') { danielebarchiesi@2: $options[$key] = (string)$value; danielebarchiesi@2: break; danielebarchiesi@2: } danielebarchiesi@2: case 'reverse': danielebarchiesi@2: case 'smoothHeight': danielebarchiesi@2: case 'useCSS': danielebarchiesi@2: case 'touch': danielebarchiesi@2: case 'video': danielebarchiesi@2: case 'keyboard': danielebarchiesi@2: case 'multipleKeyboard': danielebarchiesi@2: case 'mouseWheel': danielebarchiesi@2: case 'slideshow': danielebarchiesi@2: case 'directionNav': danielebarchiesi@2: case 'pausePlay': danielebarchiesi@2: case 'randomize': danielebarchiesi@2: case 'animationLoop': danielebarchiesi@2: case 'pauseOnAction': danielebarchiesi@2: case 'pauseOnHover': danielebarchiesi@2: $options[$key] = (boolean)$value; danielebarchiesi@2: break; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * List of all easing methods available from jQuery Easing v1.3 danielebarchiesi@2: */ danielebarchiesi@2: function _flexslider_jqeasing_options() { danielebarchiesi@2: return array( danielebarchiesi@2: "jswing" => "jswing", danielebarchiesi@2: "def" => "def", danielebarchiesi@2: "easeInQuad" => "easeInQuad", danielebarchiesi@2: "easeOutQuad" => "easeOutQuad", danielebarchiesi@2: "easeInOutQuad" => "easeInOutQuad", danielebarchiesi@2: "easeInCubic" => "easeInCubic", danielebarchiesi@2: "easeOutCubic" => "easeOutCubic", danielebarchiesi@2: "easeInOutCubic" => "easeInOutCubic", danielebarchiesi@2: "easeInQuart" => "easeInQuart", danielebarchiesi@2: "easeOutQuart" => "easeOutQuart", danielebarchiesi@2: "easeInOutQuart" => "easeInOutQuart", danielebarchiesi@2: "easeInQuint" => "easeInQuint", danielebarchiesi@2: "easeOutQuint" => "easeOutQuint", danielebarchiesi@2: "easeInOutQuint" => "easeInOutQuint", danielebarchiesi@2: "easeInSine" => "easeInSine", danielebarchiesi@2: "easeOutSine" => "easeOutSine", danielebarchiesi@2: "easeInOutSine" => "easeInOutSine", danielebarchiesi@2: "easeInExpo" => "easeInExpo", danielebarchiesi@2: "easeOutExpo" => "easeOutExpo", danielebarchiesi@2: "easeInOutExpo" => "easeInOutExpo", danielebarchiesi@2: "easeInCirc" => "easeInCirc", danielebarchiesi@2: "easeOutCirc" => "easeOutCirc", danielebarchiesi@2: "easeInOutCirc" => "easeInOutCirc", danielebarchiesi@2: "easeInElastic" => "easeInElastic", danielebarchiesi@2: "easeOutElastic" => "easeOutElastic", danielebarchiesi@2: "easeInOutElastic" => "easeInOutElastic", danielebarchiesi@2: "easeInBack" => "easeInBack", danielebarchiesi@2: "easeOutBack" => "easeOutBack", danielebarchiesi@2: "easeInOutBack" => "easeInOutBack", danielebarchiesi@2: "easeInBounce" => "easeInBounce", danielebarchiesi@2: "easeOutBounce" => "easeOutBounce", danielebarchiesi@2: "easeInOutBounce" => "easeInOutBounce", danielebarchiesi@2: ); danielebarchiesi@2: }