/** * Advanced theme settings. */ function humble_form_system_theme_settings_alter(&$form, $form_state) { $form['slider'] = array('#type' => 'fieldset', '#title' => t('Slider managment'), '#collapsible' => TRUE, '#collapsed' => FALSE); $form['slider']['slider_display'] = array('#type' => 'select', '#title' => t('Show slider?'), '#options' => array('0' => 'No', '1' => 'Yes'), '#default_value' => theme_get_setting('slider_display')); if (theme_get_setting('slider_display')) { $form['slider']['configuration'] = array('#type' => 'fieldset', '#title' => t('Slider configuration'), '#collapsible' => TRUE, '#collapsed' => TRUE); $form['slider']['configuration']['slider_use'] = array('#type' => 'select', '#options' => array(1 => t('Polaroid'), 0 => t('NivoSlider')), '#title' => t('Select slider you want to use'), '#default_value' => theme_get_setting('slider_use')); $slider_use = theme_get_setting('slider_use'); if ($slider_use == 0) { $form['slider']['configuration']['nivo'] = array('#type' => 'fieldset', '#title' => t('Nivoslider configuration'), '#collapsible' => TRUE, '#collapsed' => FALSE); $form['slider']['configuration']['nivo']['nivo_effect'] = array('#type' => 'textfield', '#title' => t('Effect'), '#description' => t('Specify sets like: \'random,fold,fade,sliceDown\''), '#default_value' => theme_get_setting('nivo_effect')); $form['slider']['configuration']['nivo']['nivo_slices'] = array('#type' => 'textfield', '#title' => t('Slices'), '#description' => t('For slice animations'), '#default_value' => theme_get_setting('nivo_slices')); $form['slider']['configuration']['nivo']['nivo_boxCols'] = array('#type' => 'textfield', '#title' => t('Box Cols'), '#description' => t('For box animations'), '#default_value' => theme_get_setting('nivo_boxCols')); $form['slider']['configuration']['nivo']['nivo_boxRows'] = array('#type' => 'textfield', '#title' => t('box Rows'), '#description' => t('For box animations'), '#default_value' => theme_get_setting('nivo_boxRows')); $form['slider']['configuration']['nivo']['nivo_animSpeed'] = array('#type' => 'textfield', '#title' => t('Animal Speed'), '#description' => t('Slide transition speed'), '#default_value' => theme_get_setting('nivo_animSpeed')); $form['slider']['configuration']['nivo']['nivo_pauseTime'] = array('#type' => 'textfield', '#title' => t('Pause Time'), '#description' => t('How long each slide will show'), '#default_value' => theme_get_setting('nivo_pauseTime')); $form['slider']['configuration']['nivo']['nivo_directionNav'] = array('#type' => 'select', '#options' => array('true' => 'Yes', 'false' => 'No'), '#title' => t('Direction Navigation'), '#description' => t('Next & Prev navigation'), '#default_value' => theme_get_setting('nivo_directionNav')); $form['slider']['configuration']['nivo']['nivo_controlNav'] = array('#type' => 'select', '#options' => array('true' => 'Yes', 'false' => 'No'), '#title' => t('Control Navigation'), '#description' => t('1,2,3... navigation'), '#default_value' => theme_get_setting('nivo_controlNav')); $form['slider']['configuration']['nivo']['nivo_keyboardNav'] = array('#type' => 'select', '#options' => array('true' => 'Yes', 'false' => 'No'), '#title' => t('keyboard Navigation'), '#default_value' => theme_get_setting('nivo_keyboardNav')); $form['slider']['configuration']['nivo']['nivo_pauseOnHover'] = array('#type' => 'select', '#options' => array('true' => 'Yes', 'false' => 'No'), '#title' => t('Pause on Hover'), '#default_value' => theme_get_setting('nivo_pauseOnHover')); $form['slider']['configuration']['nivo']['nivo_captionOpacity'] = array('#type' => 'textfield', '#title' => t('Caption Opacity, ex: 0.7'), '#default_value' => theme_get_setting('nivo_captionOpacity')); } $slider_text = theme_get_setting('slider_left_text'); $form['slider']['configuration']['slider_left_text'] = array('#type' => 'textarea', '#title' => t('Slider text on left'), '#default_value' => $slider_text); // Image upload section ====================================================== $banners = humble_get_banners(); $form['slider']['banner']['images'] = array('#type' => 'vertical_tabs', '#title' => t('Banner images'), '#weight' => 2, '#collapsible' => TRUE, '#collapsed' => FALSE, '#tree' => TRUE); $i = 0; foreach ($banners as $image_data) { $form['slider']['banner']['images'][$i] = array('#type' => 'fieldset', '#title' => t('Image !number: !title', array('!number' => $i + 1, '!title' => $image_data['image_title'])), '#weight' => $i, '#collapsible' => TRUE, '#collapsed' => FALSE, '#tree' => TRUE, 'image' => _humble_banner_form($image_data)); $i++; } $form['slider']['banner']['image_upload'] = array('#type' => 'file', '#title' => t('Upload a new image'), '#weight' => $i); $form['#submit'][] = 'humble_settings_submit'; } return $form; }
/** * Get banner to show into current page in accord with settings * * @return <array> * Banners to show */ function humble_show_banners() { $banners = humble_get_banners(FALSE); $display_banners = array(); // Current path alias $path = drupal_strtolower(drupal_get_path_alias($_GET['q'])); // Check visibility for each banner foreach ($banners as $banner) { // Pages $pages = drupal_strtolower($banner['image_visibility']); // Check path for alias, and (if required) for path $page_match = drupal_match_path($path, $pages); if ($path != $_GET['q']) { $page_match = $page_match || drupal_match_path($_GET['q'], $pages); } // Add banner to visible banner if ($page_match) { $display_banners[] = $banner; } } return $display_banners; }