View source
<?php
require_once drupal_get_path('module', 'jquerymobile_ui') . '/includes/jquerymobile_ui.node.inc';
define('JQUERYMOBILE_UI_PATH', drupal_get_path('module', 'jquerymobile_ui'));
define('JQUERYMOBILE_UI_PLUGIN_PATH', 'http://code.jquery.com/mobile/latest');
define('JQUERYMOBILE_UI_PLUGIN_JS_FILE', 'jquery.mobile.min.js');
define('JQUERYMOBILE_UI_PLUGIN_CSS_FILE', 'jquery.mobile.min.css');
define('JQUERYMOBILE_UI_PLUGIN_JQ_FILE', 'http://code.jquery.com/jquery-1.6.2.js');
function jquerymobile_ui_load_files(&$vars) {
$new_scripts = '';
$new_scripts .= '<link type="text/css" rel="stylesheet" media="all" href="' . url(variable_get('jquerymobile_ui_plugin_path', JQUERYMOBILE_UI_PLUGIN_PATH) . '/' . variable_get('jquerymobile_ui_plugin_css_file', JQUERYMOBILE_UI_PLUGIN_CSS_FILE)) . '">';
$new_scripts .= '<script type="text/javascript" src="' . url(variable_get('jquerymobile_ui_plugin_jq_file', JQUERYMOBILE_UI_PLUGIN_JQ_FILE)) . '"></script>' . "\n";
$new_scripts .= '<script type="text/javascript">' . "\n";
$new_scripts .= '<!--//--><![CDATA[//><!--' . "\n";
$new_scripts .= _jquerymobile_ui_build_js() . "\n";
$new_scripts .= '//--><!]]>' . "\n";
$new_scripts .= '</script>' . "\n";
$new_scripts .= '<script type="text/javascript" src="' . url(variable_get('jquerymobile_ui_plugin_path', JQUERYMOBILE_UI_PLUGIN_PATH)) . '/' . variable_get('jquerymobile_ui_plugin_js_file', JQUERYMOBILE_UI_PLUGIN_JS_FILE) . '"></script>' . "\n";
return $new_scripts;
}
function _jquerymobile_ui_build_js() {
$output = '';
$output .= 'var jqm = jQuery.noConflict();' . "\n";
$output .= 'jqm(document).bind("mobileinit", function(){' . "\n";
$output .= "\n\t" . 'jqm.mobile.ns = "' . variable_get('jquerymobile_ui_ns', '') . '";';
$output .= "\n\t" . 'jqm.mobile.autoInitializePage = ' . variable_get('jquerymobile_ui_autoInitializePage', 'true') . ';';
$output .= "\n\t" . 'jqm.mobile.subPageUrlKey = "' . variable_get('jquerymobile_ui_subPageUrlKey', 'ui-page') . '";';
$output .= "\n\t" . 'jqm.mobile.activePageClass = "' . variable_get('jquerymobile_ui_activePageClass', 'ui-page-active') . '";';
$output .= "\n\t" . 'jqm.mobile.activeBtnClass = "' . variable_get('jquerymobile_ui_activeBtnClass', 'ui-btn-active') . '";';
$output .= "\n\t" . 'jqm.mobile.ajaxEnabled = ' . variable_get('jquerymobile_ui_ajaxEnabled', 'true') . ';';
$output .= "\n\t" . 'jqm.mobile.hashListeningEnabled = ' . variable_get('jquerymobile_ui_hashListeningEnabled', 'true') . ';';
$output .= "\n\t" . 'jqm.mobile.defaultPageTransition = "' . variable_get('jquerymobile_ui_defaultPageTransition', 'slide') . '";';
$output .= "\n\t" . 'jqm.mobile.defaultDialogTransition = "' . variable_get('jquerymobile_ui_defaultDialogTransition', 'pop') . '";';
$output .= "\n\t" . 'jqm.mobile.minScrollBack = "' . variable_get('jquerymobile_ui_loadingMessage', '150') . '";';
$output .= "\n\t" . 'jqm.mobile.loadingMessage = "' . variable_get('jquerymobile_ui_loadingMessage', 'loading') . '";';
$output .= "\n\t" . 'jqm.mobile.pageLoadErrorMessage = "' . variable_get('jquerymobile_ui_pageLoadErrorMessage', 'Error') . '";';
$output .= "\n});";
return $output;
}
function jquerymobile_ui_help($path, $arg) {
switch ($path) {
case 'admin/settings/jquerymobile_ui':
return t('The jquerymobile_ui module allows you to set HTML attributes on the element of individual menu items, exposing certain values needed to enhance the <a href="http://drupal.org/project/mobile_jquery">mobile jquery</a> theme.');
}
}
function jquerymobile_ui_menu() {
$items = array();
$items['admin/settings/jquerymobile_ui'] = array(
'title' => 'jQuery Mobile UI',
'description' => 'Configure the jQuery Mobile UI module',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'jquerymobile_ui_admin',
),
'access arguments' => array(
'administer jquerymobile_ui',
),
'file' => 'jquerymobile_ui.admin.inc',
);
return $items;
}
function jquerymobile_ui_perm() {
return array(
'administer jquerymobile_ui',
);
}
function jquerymobile_ui_form_alter(&$form, $form_state, $form_id) {
if (isset($form['#node']) && $form['#node']->type . '_node_form' == $form_id || 'menu_edit_item' == $form_id) {
if ($form['#node']->type . '_node_form' == $form_id) {
$item = $form['#node']->menu;
}
else {
$item = $form['menu']['#item'];
}
if (isset($form['menu'])) {
$form['menu']['options'] = array(
'#type' => 'fieldset',
'#title' => t('jQuery Mobile attributes'),
'#access' => user_access('administer jquerymobile_ui'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#tree' => TRUE,
'#weight' => 50,
);
$form['menu']['options']['jquerymobile_ui_anchor_attributes'] = array(
'#type' => 'fieldset',
'#title' => t('Anchor Tag attributes'),
'#access' => user_access('administer jquerymobile_ui'),
'#collapsible' => FALSE,
'#tree' => TRUE,
'#weight' => 60,
);
$form['menu']['options']['jquerymobile_ui_anchor_attributes']['data-rel'] = array(
'#type' => 'select',
'#title' => t('data-rel attribute'),
'#default_value' => isset($item['options']['jquerymobile_ui_anchor_attributes']['data-rel']) ? $item['options']['jquerymobile_ui_anchor_attributes']['data-rel'] : '',
'#required' => FALSE,
'#options' => array(
'' => t('default'),
'dialog' => t('dialog'),
),
);
$form['menu']['options']['jquerymobile_ui_anchor_attributes']['data-ajax'] = array(
'#type' => 'select',
'#title' => t('data-ajax attribute'),
'#default_value' => isset($item['options']['jquerymobile_ui_anchor_attributes']['data-ajax']) ? $item['options']['jquerymobile_ui_anchor_attributes']['data-ajax'] : '',
'#required' => FALSE,
'#options' => array(
'' => t('default'),
'true' => t('true'),
'false' => t('false'),
),
);
$form['menu']['options']['jquerymobile_ui_anchor_attributes']['data-transition'] = array(
'#type' => 'select',
'#title' => t('data-transition attribute'),
'#default_value' => isset($item['options']['jquerymobile_ui_anchor_attributes']['data-transition']) ? $item['options']['jquerymobile_ui_anchor_attributes']['data-transition'] : '',
'#required' => FALSE,
'#options' => array(
'' => t('default'),
'pop' => t('pop'),
'flip' => t('flip'),
'slidedown' => t('slidedown'),
),
);
$form['menu']['options']['jquerymobile_ui_attributes'] = array(
'#type' => 'fieldset',
'#title' => t('List Item attributes'),
'#access' => user_access('administer jquerymobile_ui'),
'#collapsible' => FALSE,
'#tree' => TRUE,
'#weight' => 70,
);
$form['menu']['options']['jquerymobile_ui_attributes']['data-role'] = array(
'#type' => 'select',
'#title' => t('data-role attribute'),
'#default_value' => isset($item['options']['jquerymobile_ui_attributes']['data-role']) ? $item['options']['jquerymobile_ui_attributes']['data-role'] : '',
'#required' => FALSE,
'#options' => array(
'' => t('default'),
'list-divider' => t('List Divider'),
),
);
$form['menu']['options']['jquerymobile_ui_attributes']['data-theme'] = array(
'#type' => 'select',
'#title' => t('data-theme attribute'),
'#default_value' => isset($item['options']['jquerymobile_ui_attributes']['data-theme']) ? $item['options']['jquerymobile_ui_attributes']['data-theme'] : '',
'#required' => FALSE,
'#options' => array(
'' => t('default'),
'a' => t('Black'),
'b' => t('Blue'),
'c' => t('White'),
'd' => t('Grey'),
'e' => t('Yellow'),
),
);
$form['menu']['options']['jquerymobile_ui_attributes']['data-icon'] = array(
'#type' => 'select',
'#title' => t('data-icon attribute'),
'#default_value' => isset($item['options']['jquerymobile_ui_attributes']['data-icon']) ? $item['options']['jquerymobile_ui_attributes']['data-icon'] : '',
'#options' => array(
'' => t('default'),
'arrow-l' => t('Left arrow'),
'arrow-r' => t('Right arrow'),
'arrow-u' => t('Up arrow'),
'arrow-d' => t('Down arrow'),
'delete' => t('Delete'),
'plus' => t('Plus'),
'minus' => t('Minus'),
'check' => t('Check'),
'gear' => t('Gear'),
'refresh' => t('Refresh'),
'forward' => t('Forward'),
'back' => t('Back'),
'grid' => t('Grid'),
'star' => t('Star'),
'alert' => t('Alert'),
'info' => t('Info'),
'home' => t('Home'),
'search' => t('Search'),
),
);
}
}
}
function _jquerymobile_ui_menu_item_options($link) {
if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}
$attributes = array();
if (is_array($link['localized_options']['jquerymobile_ui_anchor_attributes'])) {
foreach ($link['localized_options']['jquerymobile_ui_anchor_attributes'] as $key => $value) {
if ($value != "") {
$attributes[$key] = $value;
}
}
}
return $attributes;
}
function _jquerymobile_ui_get_custom_themes() {
$custom_themes = variable_get('jquerymobile_ui_custom_themes', '');
$custom_theme_sets = explode("\n", $custom_themes);
$options = array();
foreach ($custom_theme_sets as $key => $value) {
$options[$custom_theme_sets[$key]] = $value;
}
return $options;
}