annotate sites/all/modules/flexslider/flexslider.module @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents b74b41bb73f0
children
rev   line source
danielebarchiesi@2 1 <?php
danielebarchiesi@2 2 /**
danielebarchiesi@2 3 * @file
danielebarchiesi@2 4 * A light-weight, customizable image gallery plugin for Drupal based on jQuery
danielebarchiesi@2 5 */
danielebarchiesi@2 6
danielebarchiesi@2 7 define("FLEXSLIDER_VERSION", variable_get('flexslider_version', '2.0'));
danielebarchiesi@2 8 define("FLEXSLIDER_DEBUG", variable_get('flexslider_debug', FALSE));
danielebarchiesi@2 9
danielebarchiesi@2 10 /**
danielebarchiesi@2 11 * Implements hook_libraries_info().
danielebarchiesi@2 12 */
danielebarchiesi@2 13 function flexslider_libraries_info() {
danielebarchiesi@2 14 $libraries['flexslider'] = array(
danielebarchiesi@2 15 'name' => 'FlexSlider',
danielebarchiesi@2 16 'vendor url' => 'http://www.woothemes.com/flexslider/',
danielebarchiesi@2 17 'download url' => 'https://github.com/woothemes/FlexSlider',
danielebarchiesi@2 18 'version arguments' => array(
danielebarchiesi@2 19 'file' => 'jquery.flexslider-min.js',
danielebarchiesi@2 20 // jQuery FlexSlider v2.1
danielebarchiesi@2 21 'pattern' => '/jQuery FlexSlider v(\d+\.+\d+)/',
danielebarchiesi@2 22 'lines' => 2,
danielebarchiesi@2 23 ),
danielebarchiesi@2 24 'files' => array(
danielebarchiesi@2 25 'js' => array(
danielebarchiesi@2 26 'jquery.flexslider-min.js',
danielebarchiesi@2 27 ),
danielebarchiesi@2 28 'css' => array(
danielebarchiesi@2 29 'flexslider.css',
danielebarchiesi@2 30 ),
danielebarchiesi@2 31 ),
danielebarchiesi@2 32 'integration files' => array(
danielebarchiesi@2 33 'flexslider' => array(
danielebarchiesi@2 34 'css' => array('assets/css/flexslider_img.css'),
danielebarchiesi@2 35 ),
danielebarchiesi@2 36 ),
danielebarchiesi@2 37 );
danielebarchiesi@2 38
danielebarchiesi@2 39 return $libraries;
danielebarchiesi@2 40 }
danielebarchiesi@2 41
danielebarchiesi@2 42 /**
danielebarchiesi@2 43 * Implements hook_libraries_info_alter().
danielebarchiesi@2 44 */
danielebarchiesi@2 45 function flexslider_libraries_info_alter(&$libraries) {
danielebarchiesi@2 46 $debug = variable_get('flexslider_debug', FALSE);
danielebarchiesi@2 47 if ($debug) {
danielebarchiesi@2 48 // Switch to the unminified version of the library
danielebarchiesi@2 49 if (isset($libraries['flexslider'])) {
danielebarchiesi@2 50 $libraries['flexslider']['files']['js'] = array(
danielebarchiesi@2 51 'jquery.flexslider.js',
danielebarchiesi@2 52 );
danielebarchiesi@2 53 }
danielebarchiesi@2 54 }
danielebarchiesi@2 55
danielebarchiesi@2 56 // Add support for jQuery Easing module
danielebarchiesi@2 57 if (module_exists('jqeasing')) {
danielebarchiesi@2 58 $libraries['flexslider']['dependencies'][] = 'easing (>=1.3)';
danielebarchiesi@2 59 }
danielebarchiesi@2 60 }
danielebarchiesi@2 61
danielebarchiesi@2 62 /**
danielebarchiesi@2 63 * Implements hook_library().
danielebarchiesi@2 64 *
danielebarchiesi@2 65 * We also define FlexSlider through the core library callbacks
danielebarchiesi@2 66 */
danielebarchiesi@2 67 function flexslider_library() {
danielebarchiesi@2 68 $module_path = drupal_get_path('module', 'flexslider');
danielebarchiesi@2 69 $library_path = libraries_get_path('flexslider');
danielebarchiesi@2 70
danielebarchiesi@2 71 $libraries['flexslider'] = array(
danielebarchiesi@2 72 'title' => 'FlexSlider',
danielebarchiesi@2 73 'website' => 'http://flexslider.woothemes.com',
danielebarchiesi@2 74 'version' => FLEXSLIDER_VERSION,
danielebarchiesi@2 75 'js' => array(
danielebarchiesi@2 76 $library_path . '/jquery.flexslider-min.js' => array(
danielebarchiesi@2 77 'scope' => 'footer',
danielebarchiesi@2 78 ),
danielebarchiesi@2 79 ),
danielebarchiesi@2 80 'css' => array(
danielebarchiesi@2 81 $library_path . '/flexslider.css' => array(
danielebarchiesi@2 82 'type' => 'file',
danielebarchiesi@2 83 'media' => 'screen',
danielebarchiesi@2 84 ),
danielebarchiesi@2 85 $module_path . '/assets/css/flexslider_img.css' => array(
danielebarchiesi@2 86 'type' => 'file',
danielebarchiesi@2 87 'media' => 'screen',
danielebarchiesi@2 88 ),
danielebarchiesi@2 89 ),
danielebarchiesi@2 90 );
danielebarchiesi@2 91 return $libraries;
danielebarchiesi@2 92 }
danielebarchiesi@2 93
danielebarchiesi@2 94 /**
danielebarchiesi@2 95 * Implements hook_library_alter().
danielebarchiesi@2 96 */
danielebarchiesi@2 97 function flexslider_library_alter(&$libraries, $module) {
danielebarchiesi@2 98 // Enable debug mode
danielebarchiesi@2 99 if (FLEXSLIDER_DEBUG) {
danielebarchiesi@2 100 if ($module == 'flexslider' and isset($libraries['flexslider'])) {
danielebarchiesi@2 101 $libraries['flexslider']['js'] = array(
danielebarchiesi@2 102 libraries_get_path() . '/jquery.flexslider.js' => array(
danielebarchiesi@2 103 'scope' => 'footer',
danielebarchiesi@2 104 ),
danielebarchiesi@2 105 );
danielebarchiesi@2 106 }
danielebarchiesi@2 107 }
danielebarchiesi@2 108 }
danielebarchiesi@2 109
danielebarchiesi@2 110 /**
danielebarchiesi@2 111 * Implements hook_permission().
danielebarchiesi@2 112 */
danielebarchiesi@2 113 function flexslider_permission() {
danielebarchiesi@2 114 return array(
danielebarchiesi@2 115 'administer flexslider' => array(
danielebarchiesi@2 116 'title' => t('Administer the FlexSlider module'),
danielebarchiesi@2 117 ),
danielebarchiesi@2 118 );
danielebarchiesi@2 119 }
danielebarchiesi@2 120
danielebarchiesi@2 121 /**
danielebarchiesi@2 122 * Implements hook_menu().
danielebarchiesi@2 123 */
danielebarchiesi@2 124 function flexslider_menu() {
danielebarchiesi@2 125 $items = array();
danielebarchiesi@2 126
danielebarchiesi@2 127 $items['admin/config/media/flexslider/advanced'] = array(
danielebarchiesi@2 128 'title' => 'Advanced settings',
danielebarchiesi@2 129 'description' => 'Configure the advanced flexslider module settings.',
danielebarchiesi@2 130 'page callback' => 'drupal_get_form',
danielebarchiesi@2 131 'page arguments' => array('flexslider_form_settings'),
danielebarchiesi@2 132 'access arguments' => array('administer flexslider'),
danielebarchiesi@2 133 'type' => MENU_LOCAL_TASK,
danielebarchiesi@2 134 'weight' => 2,
danielebarchiesi@2 135 'file' => 'flexslider.admin.inc',
danielebarchiesi@2 136 );
danielebarchiesi@2 137
danielebarchiesi@2 138 return $items;
danielebarchiesi@2 139 }
danielebarchiesi@2 140
danielebarchiesi@2 141 /**
danielebarchiesi@2 142 * Implements hook_help().
danielebarchiesi@2 143 */
danielebarchiesi@2 144 function flexslider_help($path, $arg) {
danielebarchiesi@2 145 switch ($path) {
danielebarchiesi@2 146 case 'admin/config/media/flexslider/edit/%':
danielebarchiesi@2 147 return
danielebarchiesi@2 148 '<p>'
danielebarchiesi@2 149 . t('An <em>option set</em> defines exactly how a flexslider image gallery looks like on your site. '
danielebarchiesi@2 150 . 'It is s a combination of <a href="@styles">image styles</a> for the various image sizes and FlexSlider library options.', array('@styles' => url('admin/config/media/image-styles'))) . '<br />'
danielebarchiesi@2 151 . 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 152 . '</p>';
danielebarchiesi@2 153 }
danielebarchiesi@2 154 }
danielebarchiesi@2 155
danielebarchiesi@2 156 /**
danielebarchiesi@2 157 * Implements hook_theme().
danielebarchiesi@2 158 */
danielebarchiesi@2 159 function flexslider_theme() {
danielebarchiesi@2 160 return array(
danielebarchiesi@2 161 // Container for nav elements (arrows)
danielebarchiesi@2 162 'flexslider' => array(
danielebarchiesi@2 163 'variables' => array('items' => array(), 'settings' => array()),
danielebarchiesi@2 164 'template' => 'theme/flexslider',
danielebarchiesi@2 165 'file' => 'theme/flexslider.theme.inc',
danielebarchiesi@2 166 ),
danielebarchiesi@2 167 'flexslider_list' => array(
danielebarchiesi@2 168 'variables' => array('items' => array(), 'settings' => array()),
danielebarchiesi@2 169 'file' => 'theme/flexslider.theme.inc',
danielebarchiesi@2 170 ),
danielebarchiesi@2 171 'flexslider_list_item' => array(
danielebarchiesi@2 172 'variables' => array('item' => array(), 'settings' => array()),
danielebarchiesi@2 173 'file' => 'theme/flexslider.theme.inc',
danielebarchiesi@2 174 ),
danielebarchiesi@2 175 );
danielebarchiesi@2 176 }
danielebarchiesi@2 177
danielebarchiesi@2 178 /**
danielebarchiesi@2 179 * Implements hook_image_default_styles().
danielebarchiesi@2 180 */
danielebarchiesi@2 181 function flexslider_image_default_styles() {
danielebarchiesi@2 182 $styles = array();
danielebarchiesi@2 183
danielebarchiesi@2 184 // Default image preset for FlexSlider
danielebarchiesi@2 185 $styles['flexslider_full'] = array(
danielebarchiesi@2 186 'effects' => array(
danielebarchiesi@2 187 array(
danielebarchiesi@2 188 'name' => 'image_scale_and_crop',
danielebarchiesi@2 189 'data' => array('width' => 800, 'height' => 500),
danielebarchiesi@2 190 'weight' => 0,
danielebarchiesi@2 191 ),
danielebarchiesi@2 192 ),
danielebarchiesi@2 193 );
danielebarchiesi@2 194
danielebarchiesi@2 195 // Default image preset for FlexSlider thumbnails
danielebarchiesi@2 196 $styles['flexslider_thumbnail'] = array(
danielebarchiesi@2 197 'effects' => array(
danielebarchiesi@2 198 array(
danielebarchiesi@2 199 'name' => 'image_scale_and_crop',
danielebarchiesi@2 200 'data' => array('width' => 160, 'height' => 100),
danielebarchiesi@2 201 'weight' => 0,
danielebarchiesi@2 202 ),
danielebarchiesi@2 203 ),
danielebarchiesi@2 204 );
danielebarchiesi@2 205
danielebarchiesi@2 206 return $styles;
danielebarchiesi@2 207 }
danielebarchiesi@2 208
danielebarchiesi@2 209 /**
danielebarchiesi@2 210 * Implements hook_ctools_plugin_api().
danielebarchiesi@2 211 */
danielebarchiesi@2 212 function flexslider_ctools_plugin_api($owner, $api) {
danielebarchiesi@2 213 if ($owner == 'flexslider' && $api == 'flexslider_default_preset') {
danielebarchiesi@2 214 return array('version' => 1);
danielebarchiesi@2 215 }
danielebarchiesi@2 216 }
danielebarchiesi@2 217
danielebarchiesi@2 218 /**
danielebarchiesi@2 219 * Implements hook_ctools_plugin_directory().
danielebarchiesi@2 220 */
danielebarchiesi@2 221 function flexslider_ctools_plugin_directory($module, $type) {
danielebarchiesi@2 222 if ($type == 'export_ui') {
danielebarchiesi@2 223 return 'plugins/export_ui';
danielebarchiesi@2 224 }
danielebarchiesi@2 225 }
danielebarchiesi@2 226
danielebarchiesi@2 227 /**
danielebarchiesi@2 228 * Create a new optionset object
danielebarchiesi@2 229 *
danielebarchiesi@2 230 * Note that this function does not save the optionset to the database.
danielebarchiesi@2 231 * @see flexslider_optionset_save()
danielebarchiesi@2 232 */
danielebarchiesi@2 233 function flexslider_optionset_create($values = array()) {
danielebarchiesi@2 234 ctools_include('export');
danielebarchiesi@2 235 $optionset = ctools_export_crud_new('flexslider_optionset');
danielebarchiesi@2 236
danielebarchiesi@2 237 // Set the options to an array
danielebarchiesi@2 238 $optionset->options = array();
danielebarchiesi@2 239
danielebarchiesi@2 240 // Assign specified values
danielebarchiesi@2 241 if (isset($values['name'])) {
danielebarchiesi@2 242 $optionset->name = $values['name'];
danielebarchiesi@2 243 }
danielebarchiesi@2 244 if (isset($values['title'])) {
danielebarchiesi@2 245 $optionset->title = $values['title'];
danielebarchiesi@2 246 }
danielebarchiesi@2 247 if (isset($values['options']) and is_array($values['options'])) {
danielebarchiesi@2 248 $optionset->options = $values['options'];
danielebarchiesi@2 249 }
danielebarchiesi@2 250
danielebarchiesi@2 251 // Merge default settings with any given settings
danielebarchiesi@2 252 $optionset_defaults = _flexslider_optionset_defaults();
danielebarchiesi@2 253 $optionset->options = $optionset_defaults += $optionset->options;
danielebarchiesi@2 254
danielebarchiesi@2 255 return $optionset;
danielebarchiesi@2 256 }
danielebarchiesi@2 257
danielebarchiesi@2 258 /**
danielebarchiesi@2 259 * Fetches all option sets from the database and returns them as an associative array.
danielebarchiesi@2 260 */
danielebarchiesi@2 261 function flexslider_optionset_load_all() {
danielebarchiesi@2 262 ctools_include('export');
danielebarchiesi@2 263 $optionsets = ctools_export_crud_load_all('flexslider_optionset');
danielebarchiesi@2 264 foreach ($optionsets as $optionset) {
danielebarchiesi@2 265 // Ensure the optionset is typecast after being loaded from DB
danielebarchiesi@2 266 _flexslider_typecast_optionset($optionset->options);
danielebarchiesi@2 267 }
danielebarchiesi@2 268 return $optionsets;
danielebarchiesi@2 269 }
danielebarchiesi@2 270
danielebarchiesi@2 271 /**
danielebarchiesi@2 272 * Fetches the given option set and returns it as an object or NULL, if no set could be found.
danielebarchiesi@2 273 */
danielebarchiesi@2 274 function flexslider_optionset_load($optionset_name) {
danielebarchiesi@2 275 ctools_include('export');
danielebarchiesi@2 276 $optionset = ctools_export_crud_load('flexslider_optionset', $optionset_name);
danielebarchiesi@2 277 // Ensure the optionset is typecast after being loaded from DB
danielebarchiesi@2 278 _flexslider_typecast_optionset($optionset->options);
danielebarchiesi@2 279 return $optionset;
danielebarchiesi@2 280 }
danielebarchiesi@2 281
danielebarchiesi@2 282 /**
danielebarchiesi@2 283 * Checks whether an option set with the given name already exists.
danielebarchiesi@2 284 */
danielebarchiesi@2 285 function flexslider_optionset_exists($optionset_name) {
danielebarchiesi@2 286 ctools_include('export');
danielebarchiesi@2 287 $optionset = ctools_export_crud_load('flexslider_optionset', $optionset_name);
danielebarchiesi@2 288 return isset($optionset->name);
danielebarchiesi@2 289 }
danielebarchiesi@2 290
danielebarchiesi@2 291 /**
danielebarchiesi@2 292 * Saves the given option set to the database.
danielebarchiesi@2 293 * Set the $new flag if this set has not been written before.
danielebarchiesi@2 294 *
danielebarchiesi@2 295 * @return object|boolean
danielebarchiesi@2 296 * Returns the newly saved object, FALSE otherwise.
danielebarchiesi@2 297 */
danielebarchiesi@2 298 function flexslider_optionset_save($optionset, $new = FALSE) {
danielebarchiesi@2 299 // If the machine name is missing or already in use, return an error.
danielebarchiesi@2 300 if (empty($optionset->name) or (FALSE != flexslider_optionset_exists($optionset->name) and $new)) {
danielebarchiesi@2 301 return FALSE;
danielebarchiesi@2 302 }
danielebarchiesi@2 303
danielebarchiesi@2 304 // Check for an invalid list of options
danielebarchiesi@2 305 if (isset($optionset->options) and !is_array($optionset->options)) {
danielebarchiesi@2 306 return FALSE;
danielebarchiesi@2 307 }
danielebarchiesi@2 308
danielebarchiesi@2 309
danielebarchiesi@2 310 // If the title is missing, default to the name
danielebarchiesi@2 311 if (empty($optionset->title)) {
danielebarchiesi@2 312 $optionset->title = $optionset->name;
danielebarchiesi@2 313 }
danielebarchiesi@2 314
danielebarchiesi@2 315 // Merge default settings with any given settings
danielebarchiesi@2 316 $optionset_defaults = _flexslider_optionset_defaults();
danielebarchiesi@2 317 $optionset->options = $optionset_defaults += $optionset->options;
danielebarchiesi@2 318
danielebarchiesi@2 319 // Prepare the database values.
danielebarchiesi@2 320 $db_values = array(
danielebarchiesi@2 321 'name' => $optionset->name,
danielebarchiesi@2 322 'title' => $optionset->title,
danielebarchiesi@2 323 'options' => _flexslider_typecast_optionset($optionset->options),
danielebarchiesi@2 324 );
danielebarchiesi@2 325
danielebarchiesi@2 326 if ($new) {
danielebarchiesi@2 327 $result = drupal_write_record('flexslider_optionset', $db_values);
danielebarchiesi@2 328 }
danielebarchiesi@2 329 else {
danielebarchiesi@2 330 $result = drupal_write_record('flexslider_optionset', $db_values, 'name');
danielebarchiesi@2 331 }
danielebarchiesi@2 332
danielebarchiesi@2 333 // Return the object if the values were saved successfully.
danielebarchiesi@2 334 if (($new and SAVED_NEW == $result) or (!$new and SAVED_UPDATED == $result)) {
danielebarchiesi@2 335 return $optionset;
danielebarchiesi@2 336 }
danielebarchiesi@2 337
danielebarchiesi@2 338 // Otherwise, an error occured
danielebarchiesi@2 339 return FALSE;
danielebarchiesi@2 340 }
danielebarchiesi@2 341
danielebarchiesi@2 342 /**
danielebarchiesi@2 343 * Deletes the given option set from the database.
danielebarchiesi@2 344 *
danielebarchiesi@2 345 * @param object|string $optionset
danielebarchiesi@2 346 * Optionset object or machine name
danielebarchiesi@2 347 */
danielebarchiesi@2 348 function flexslider_optionset_delete($optionset) {
danielebarchiesi@2 349 if (isset($optionset->name)) {
danielebarchiesi@2 350 $name = $optionset->name;
danielebarchiesi@2 351 }
danielebarchiesi@2 352 else {
danielebarchiesi@2 353 $name = $optionset;
danielebarchiesi@2 354 }
danielebarchiesi@2 355 db_delete('flexslider_optionset')->condition('name', $name)->execute();
danielebarchiesi@2 356 }
danielebarchiesi@2 357
danielebarchiesi@2 358 /*
danielebarchiesi@2 359 * This function loads the required JavaScripts and settings for a flexslider
danielebarchiesi@2 360 * instance.
danielebarchiesi@2 361 *
danielebarchiesi@2 362 * @param string $id [optional]
danielebarchiesi@2 363 * ID Attribute for FlexSlider container
danielebarchiesi@2 364 * @param object|strong $optionset [optional]
danielebarchiesi@2 365 * Option set to load or the machine name of an existing optionset
danielebarchiesi@2 366 */
danielebarchiesi@2 367 function flexslider_add($id = NULL, $optionset = NULL) {
danielebarchiesi@2 368 // Check optionset value
danielebarchiesi@2 369 if (is_string($optionset)) {
danielebarchiesi@2 370 $name = $optionset;
danielebarchiesi@2 371 $optionset = flexslider_optionset_load($name);
danielebarchiesi@2 372 if (empty($optionset)) {
danielebarchiesi@2 373 watchdog('flexslider', 'Invalid optionset name supplied to flexslider_add: @name', array('@name' => $name), WATCHDOG_WARNING);
danielebarchiesi@2 374 return;
danielebarchiesi@2 375 }
danielebarchiesi@2 376 }
danielebarchiesi@2 377
danielebarchiesi@2 378 // Static array to remember which scripts are already attached.
danielebarchiesi@2 379 // @todo not currently in use
danielebarchiesi@2 380 $cache = &drupal_static(__FUNCTION__, array());
danielebarchiesi@2 381
danielebarchiesi@2 382 // @todo investigate the best way to cache data loaded from libraries_load()
danielebarchiesi@2 383 libraries_load('flexslider');
danielebarchiesi@2 384
danielebarchiesi@2 385 // If the ID or optionset aren't set, it is assumed the settings will be set
danielebarchiesi@2 386 // manually via the calling module/theme
danielebarchiesi@2 387 if (!empty($id) && !empty($optionset)) {
danielebarchiesi@2 388 // JavaScript settings
danielebarchiesi@2 389 $js_settings = array(
danielebarchiesi@2 390 'optionsets' => array(
danielebarchiesi@2 391 $optionset->name => $optionset->options,
danielebarchiesi@2 392 ),
danielebarchiesi@2 393 'instances' => array(
danielebarchiesi@2 394 $id => $optionset->name,
danielebarchiesi@2 395 ),
danielebarchiesi@2 396 );
danielebarchiesi@2 397 // @todo add alter hook for optionset
danielebarchiesi@2 398 drupal_add_js(array('flexslider' => $js_settings), 'setting');
danielebarchiesi@2 399 }
danielebarchiesi@2 400 // Loader JavaScript
danielebarchiesi@2 401 drupal_add_js(drupal_get_path('module', 'flexslider') . '/assets/js/flexslider.load.js', array('type' => 'file', 'scope' => 'footer'));
danielebarchiesi@2 402 }
danielebarchiesi@2 403
danielebarchiesi@2 404 /**
danielebarchiesi@2 405 * Default settings for a newly created option set
danielebarchiesi@2 406 *
danielebarchiesi@2 407 * @param string $key [optional]
danielebarchiesi@2 408 * Get specific default value
danielebarchiesi@2 409 *
danielebarchiesi@2 410 * @see https://github.com/woothemes/FlexSlider/blob/master/README.mdown
danielebarchiesi@2 411 * @see https://github.com/woothemes/FlexSlider/wiki/FlexSlider-Properties
danielebarchiesi@2 412 */
danielebarchiesi@2 413 function _flexslider_optionset_defaults($key = NULL) {
danielebarchiesi@2 414
danielebarchiesi@2 415 // We add typecasts to ensure the variables get json encoded properly
danielebarchiesi@2 416
danielebarchiesi@2 417 $defaults = array(
danielebarchiesi@2 418 // v2.x options
danielebarchiesi@2 419 'namespace' => 'flex-',
danielebarchiesi@2 420 'selector' => '.slides > li',
danielebarchiesi@2 421 'easing' => 'swing',
danielebarchiesi@2 422 'direction' => 'horizontal',
danielebarchiesi@2 423 'reverse' => FALSE, // @todo verify data value
danielebarchiesi@2 424 'smoothHeight' => FALSE, // @todo verify data value
danielebarchiesi@2 425 'startAt' => 0,
danielebarchiesi@2 426 'animationSpeed' => 600,
danielebarchiesi@2 427 'initDelay' => 0,
danielebarchiesi@2 428 'useCSS' => TRUE,
danielebarchiesi@2 429 'touch' => TRUE,
danielebarchiesi@2 430 'video' => FALSE,
danielebarchiesi@2 431 'keyboard' => TRUE,
danielebarchiesi@2 432 'multipleKeyboard' => FALSE,
danielebarchiesi@2 433 'mousewheel' => FALSE, // requires https://github.com/brandonaaron/jquery-mousewheel @todo add to make file
danielebarchiesi@2 434 'controlsContainer' => '.flex-control-nav-container',
danielebarchiesi@2 435 'sync' => '',
danielebarchiesi@2 436 'asNavFor' => '',
danielebarchiesi@2 437 'itemWidth' => 0,
danielebarchiesi@2 438 'itemMargin' => 0,
danielebarchiesi@2 439 'minItems' => 0,
danielebarchiesi@2 440 'maxItems' => 0,
danielebarchiesi@2 441 'move' => 0,
danielebarchiesi@2 442 //'start' => '',
danielebarchiesi@2 443 //'before' => '',
danielebarchiesi@2 444 //'after' => '',
danielebarchiesi@2 445 //'end' => '',
danielebarchiesi@2 446 //'added' => '',
danielebarchiesi@2 447 //'removed' => '',
danielebarchiesi@2 448
danielebarchiesi@2 449 // @todo verify the 1.x options are still valid
danielebarchiesi@2 450 // v1.x options
danielebarchiesi@2 451 'animation' => 'fade',
danielebarchiesi@2 452 //'animationDuration' => 6000, -- replaced by 'animationSpeed'
danielebarchiesi@2 453 //'slidedirection' => 'horizontal', -- replaced by "direction"
danielebarchiesi@2 454 'slideshow' => TRUE,
danielebarchiesi@2 455 'slideshowSpeed' => 7000,
danielebarchiesi@2 456 'directionNav' => TRUE,
danielebarchiesi@2 457 'controlNav' => TRUE,
danielebarchiesi@2 458 //'keyboardnav' => TRUE, -- replaced by 'keyboard'
danielebarchiesi@2 459 //'mousewheel' => FALSE,
danielebarchiesi@2 460 'prevText' => t('Previous'),
danielebarchiesi@2 461 'nextText' => t('Next'),
danielebarchiesi@2 462 'pausePlay' => FALSE,
danielebarchiesi@2 463 'pauseText' => t('Pause'),
danielebarchiesi@2 464 'playText' => t('Play'),
danielebarchiesi@2 465 'randomize' => FALSE,
danielebarchiesi@2 466 //'slidetostart' => 0, // integer value, not boolean -- replace by "startAt"
danielebarchiesi@2 467 'animationLoop' => TRUE,
danielebarchiesi@2 468 'pauseOnAction' => TRUE,
danielebarchiesi@2 469 'pauseOnHover' => FALSE,
danielebarchiesi@2 470 //'controlscontainer' => '.flex-nav-container', -- updated in v2
danielebarchiesi@2 471 'manualControls' => '',
danielebarchiesi@2 472 //'startCallback' => 'function() {}', -- replace by 'start'
danielebarchiesi@2 473 //'beforeCallback' => 'function() {}', -- replaced by 'before'
danielebarchiesi@2 474 //'afterCallback' => 'function() {}', -- replaced by 'after'
danielebarchiesi@2 475 //'endCallback' => 'function() {}', -- replaced by 'end'
danielebarchiesi@2 476 );
danielebarchiesi@2 477
danielebarchiesi@2 478 // Typecast the values
danielebarchiesi@2 479 _flexslider_typecast_optionset($defaults);
danielebarchiesi@2 480
danielebarchiesi@2 481 // Return the specific item
danielebarchiesi@2 482 if (isset($key) and array_key_exists($key, $defaults)) {
danielebarchiesi@2 483 return $defaults[$key];
danielebarchiesi@2 484 }
danielebarchiesi@2 485
danielebarchiesi@2 486 // Return all items
danielebarchiesi@2 487 return $defaults;
danielebarchiesi@2 488 }
danielebarchiesi@2 489
danielebarchiesi@2 490 /**
danielebarchiesi@2 491 * Adds the typecasting to the values so that the generated
danielebarchiesi@2 492 * json array keeps the right values
danielebarchiesi@2 493 */
danielebarchiesi@2 494 function _flexslider_typecast_optionset(&$options) {
danielebarchiesi@2 495 if (isset($options) && !empty($options)) {
danielebarchiesi@2 496 foreach ($options as $key => $value) {
danielebarchiesi@2 497 switch ($key) {
danielebarchiesi@2 498 case 'namespace':
danielebarchiesi@2 499 case 'selector':
danielebarchiesi@2 500 case 'easing':
danielebarchiesi@2 501 case 'direction':
danielebarchiesi@2 502 case 'controlsContainer':
danielebarchiesi@2 503 case 'sync':
danielebarchiesi@2 504 case 'asNavFor':
danielebarchiesi@2 505 case 'fade':
danielebarchiesi@2 506 case 'prevText':
danielebarchiesi@2 507 case 'nextText':
danielebarchiesi@2 508 case 'pauseText':
danielebarchiesi@2 509 case 'playText':
danielebarchiesi@2 510 case 'manualControls':
danielebarchiesi@2 511 $options[$key] = (string)$value;
danielebarchiesi@2 512 break;
danielebarchiesi@2 513 case 'startAt':
danielebarchiesi@2 514 case 'animationSpeed':
danielebarchiesi@2 515 case 'initDelay':
danielebarchiesi@2 516 case 'itemWidth':
danielebarchiesi@2 517 case 'itemMargin':
danielebarchiesi@2 518 case 'minItems':
danielebarchiesi@2 519 case 'maxItems':
danielebarchiesi@2 520 case 'move':
danielebarchiesi@2 521 $options[$key] = (int)$value;
danielebarchiesi@2 522 break;
danielebarchiesi@2 523 case 'controlNav':
danielebarchiesi@2 524 if ($value == 'thumbnails') {
danielebarchiesi@2 525 $options[$key] = (string)$value;
danielebarchiesi@2 526 break;
danielebarchiesi@2 527 }
danielebarchiesi@2 528 case 'reverse':
danielebarchiesi@2 529 case 'smoothHeight':
danielebarchiesi@2 530 case 'useCSS':
danielebarchiesi@2 531 case 'touch':
danielebarchiesi@2 532 case 'video':
danielebarchiesi@2 533 case 'keyboard':
danielebarchiesi@2 534 case 'multipleKeyboard':
danielebarchiesi@2 535 case 'mouseWheel':
danielebarchiesi@2 536 case 'slideshow':
danielebarchiesi@2 537 case 'directionNav':
danielebarchiesi@2 538 case 'pausePlay':
danielebarchiesi@2 539 case 'randomize':
danielebarchiesi@2 540 case 'animationLoop':
danielebarchiesi@2 541 case 'pauseOnAction':
danielebarchiesi@2 542 case 'pauseOnHover':
danielebarchiesi@2 543 $options[$key] = (boolean)$value;
danielebarchiesi@2 544 break;
danielebarchiesi@2 545 }
danielebarchiesi@2 546 }
danielebarchiesi@2 547 }
danielebarchiesi@2 548 }
danielebarchiesi@2 549
danielebarchiesi@2 550 /**
danielebarchiesi@2 551 * List of all easing methods available from jQuery Easing v1.3
danielebarchiesi@2 552 */
danielebarchiesi@2 553 function _flexslider_jqeasing_options() {
danielebarchiesi@2 554 return array(
danielebarchiesi@2 555 "jswing" => "jswing",
danielebarchiesi@2 556 "def" => "def",
danielebarchiesi@2 557 "easeInQuad" => "easeInQuad",
danielebarchiesi@2 558 "easeOutQuad" => "easeOutQuad",
danielebarchiesi@2 559 "easeInOutQuad" => "easeInOutQuad",
danielebarchiesi@2 560 "easeInCubic" => "easeInCubic",
danielebarchiesi@2 561 "easeOutCubic" => "easeOutCubic",
danielebarchiesi@2 562 "easeInOutCubic" => "easeInOutCubic",
danielebarchiesi@2 563 "easeInQuart" => "easeInQuart",
danielebarchiesi@2 564 "easeOutQuart" => "easeOutQuart",
danielebarchiesi@2 565 "easeInOutQuart" => "easeInOutQuart",
danielebarchiesi@2 566 "easeInQuint" => "easeInQuint",
danielebarchiesi@2 567 "easeOutQuint" => "easeOutQuint",
danielebarchiesi@2 568 "easeInOutQuint" => "easeInOutQuint",
danielebarchiesi@2 569 "easeInSine" => "easeInSine",
danielebarchiesi@2 570 "easeOutSine" => "easeOutSine",
danielebarchiesi@2 571 "easeInOutSine" => "easeInOutSine",
danielebarchiesi@2 572 "easeInExpo" => "easeInExpo",
danielebarchiesi@2 573 "easeOutExpo" => "easeOutExpo",
danielebarchiesi@2 574 "easeInOutExpo" => "easeInOutExpo",
danielebarchiesi@2 575 "easeInCirc" => "easeInCirc",
danielebarchiesi@2 576 "easeOutCirc" => "easeOutCirc",
danielebarchiesi@2 577 "easeInOutCirc" => "easeInOutCirc",
danielebarchiesi@2 578 "easeInElastic" => "easeInElastic",
danielebarchiesi@2 579 "easeOutElastic" => "easeOutElastic",
danielebarchiesi@2 580 "easeInOutElastic" => "easeInOutElastic",
danielebarchiesi@2 581 "easeInBack" => "easeInBack",
danielebarchiesi@2 582 "easeOutBack" => "easeOutBack",
danielebarchiesi@2 583 "easeInOutBack" => "easeInOutBack",
danielebarchiesi@2 584 "easeInBounce" => "easeInBounce",
danielebarchiesi@2 585 "easeOutBounce" => "easeOutBounce",
danielebarchiesi@2 586 "easeInOutBounce" => "easeInOutBounce",
danielebarchiesi@2 587 );
danielebarchiesi@2 588 }