Plugin Directory

Changeset 726509


Ignore:
Timestamp:
06/14/2013 02:24:28 AM (13 years ago)
Author:
ajferg
Message:

1.5.3 Update

Location:
tailored-tools
Files:
37 added
5 edited

Legend:

Unmodified
Added
Removed
  • tailored-tools/trunk/js/loader.js

    r715824 r726509  
     1
    12
    23/**
    3  *  Autoloader to validate any form with class 'validate'
     4 *  Event Tracking with Google Analytics
     5 *  Can put this function in your theme's custom.js if you want to apply Analytics Event Tracking to your forms
     6 *
     7jQuery(document).ready(function($){
     8    // Check on Google Analytics
     9    if (!window._gat || !window._gat._getTracker)   return;
     10    // Contact form
     11    $('form.contact').submit(function(e) {
     12        if ( !$(this).hasClass('validate') || ($().validate && $(this).valid()) ) {
     13            _trackEvent('forms', 'submit', 'Contact form was used')
     14        }
     15    });
     16});
     17
     18
     19/**
     20 *  Autoloader validation on any form.validate elements
    421 */
    522jQuery(document).ready(function($){
    623    if ($('form.validate').length < 1)      return;
     24    if (!$().validate)                      return;
    725    $('form.validate').each(function(i) {
    826        $(this).validate();
     
    1028});
    1129
     30
    1231/**
    13  *  Autoload datepicker fields - assumes ui-datepicker loaded
     32 *  Autoload datepicker fields
    1433 */
    1534jQuery(function($) {
    1635    if ($('form .datepicker').length < 1)   return;
     36    if (!$().datepicker)                    return;
    1737    $('form input.datepicker, form p.datepicker input').datepicker({
    1838        dateFormat:     'dd-mm-yy',
     
    2040        changeYear:     true
    2141    });
    22     // Date of birth fields
     42});
     43
     44/**
     45 *  Autoload timepicker fields
     46 */
     47jQuery(function($) {
     48    if ($('form .timepicker').length < 1)   return;
     49    if (!$().timepicker)                    return;
     50    $('form input.timepicker, form p.timepicker input').timepicker({
     51        timeFormat:     'h:mm tt',
     52        stepMinute:     15,
     53        hourMin:        8,
     54        hourMax:        17
     55    });
     56});
     57
     58/**
     59 *  Autoload datetimepicker fields
     60 */
     61jQuery(function($) {
     62    if ($('form .datetimepicker').length < 1)   return;
     63    if (!$().datetimepicker)                    return;
     64    $('form input.datetimepicker, form p.datetimepicker input').datetimepicker({
     65        changeMonth:    true,
     66        changeYear:     true,
     67        dateFormat:     'dd-mm-yy',
     68        timeFormat:     'h:mm tt',
     69        stepMinute:     15,
     70        hourMin:        8,
     71        hourMax:        17
     72    });
     73});
     74
     75/**
     76 *  If neccessary, can modify time options in another script to remove the hour restrictions.
     77 *  Like so:
     78 *
     79jQuery(document).ready(function($){
     80    $('form input.datetimepicker, form input.timepicker').datetimepicker('option', 'hourMin', 0);
     81    $('form input.datetimepicker, form input.timepicker').datetimepicker('option', 'hourMax', 24);
     82});
     83
     84
     85/**
     86 *  Fix for Date Of Birth fields.  Changes the Year range.
     87 *  Applies to both datepicker and timepicker fields.
     88 */
     89jQuery(function($) {
     90    if ($('form .dob input.hasDatepicker').length < 1)  return;
    2391    var d = new Date();
    24     var range = (d.getFullYear()-60)+':'+(d.getFullYear()+1);
     92    var range = (d.getFullYear()-80)+':'+(d.getFullYear()+1);
    2593    $('form .dob input.hasDatepicker').datepicker('option', 'yearRange', range);
    2694});
     95
    2796
    2897/**
     
    31100jQuery(function($) {
    32101    if ($('form p label select').length < 1)    return;
     102    if (!$().chosen)                            return;
    33103    $('form p label select').each(function(i) {
     104        if ($(this).parent().parent().hasClass('nochosen')) return true;
    34105        if ($(this).find('option').length > 3) {
    35106            $(this).chosen();
     
    44115var tab_counter = 0;
    45116jQuery(document).ready(function($) {
    46     if ($('.ui_tabs').size() < 1) { return; }
     117    if ($('.ui_tabs').size() < 1)       return;
     118    if (!$().tabs)                      return;
    47119    $('.ui_tabs').each(function(i, tabset) {
    48120        var ul = $( document.createElement('ul') );
  • tailored-tools/trunk/lib/class.forms.php

    r715824 r726509  
    419419            case 'textarea':        $this->draw_textarea($key, $q);         break;
    420420            case 'date':            $this->draw_datepicker($key, $q);       break;
     421            case 'time':            $this->draw_timepicker($key, $q);       break;
     422            case 'datetime':        $this->draw_datetimepicker($key, $q);   break;
    421423            default:                $this->draw_input($key, $q);            break;
    422424        }
     
    492494        echo '<p'.$q['class'].'><label><span>'.$q['label'].'</span>'."\n";
    493495        echo "\t".'<input type="text" name="'.$key.'" id="'.$key.'" class="txt datepicker" value="'.esc_attr($_POST[$key]).'" /></label></p>'."\n";
     496    }
     497   
     498    function draw_timepicker($key, $q) {
     499        echo '<p'.$q['class'].'><label><span>'.$q['label'].'</span>'."\n";
     500        echo "\t".'<input type="text" name="'.$key.'" id="'.$key.'" class="txt timepicker" value="'.esc_attr($_POST[$key]).'" /></label></p>'."\n";
     501        wp_enqueue_script('jquery-timepicker');
     502    }
     503   
     504    function draw_datetimepicker($key, $q) {
     505        echo '<p'.$q['class'].'><label><span>'.$q['label'].'</span>'."\n";
     506        echo "\t".'<input type="text" name="'.$key.'" id="'.$key.'" class="txt datetimepicker" value="'.esc_attr($_POST[$key]).'" /></label></p>'."\n";
     507        wp_enqueue_script('jquery-timepicker');
    494508    }
    495509   
  • tailored-tools/trunk/readme.txt

    r715881 r726509  
    44Requires at least:  3.0
    55Tested up to:       3.5.1
    6 Stable tag:         1.5.1
     6Stable tag:         1.5.3
    77
    88Contains some helper classes to help you build custom forms.
     
    5555== Changelog ==
    5656
     57= 1.5.3 =
     58* Added an admin metabox to make it easier to add AdWords conversion tracking code to pages and posts.
     59
     60= 1.5.2 =
     61* Introduce new input types: timepicker, datetimepicker
     62* Uses JS library: http://trentrichardson.com/examples/timepicker/
     63* Allow a class of 'nochosen' on select elements to NOT apply the "Chosen" autoloader.
     64
    5765= 1.5.1 =
    5866* Fix a formatting error in readme file that was really annoying
     
    6169* Double-checked some Akismet code
    6270* Rewrote style rules for better compatibility with Genesis responsive designs (likely have negative effect on existing sites)
    63 * Improvde the Datepicker autloader, and add an icon
     71* Improve the Datepicker autoloader, and add an icon
    6472* Added jQuery Chosen and auto-apply to all select boxes (Yes can use MIT license in plugin) https://twitter.com/markjaquith/status/188108457386311681
    6573
  • tailored-tools/trunk/resource/custom.css

    r715824 r726509  
    3636form.tws p label input.hasDatepicker { background-image:url(calendar.png); background-position:right 5px center; background-repeat:no-repeat;
    3737                                        cursor:pointer; max-width:10em; }
     38form.tws p label input.datetimepicker { max-width:14em; }
     39form.tws p label input.timepicker.hasDatepicker { background-image:url(time.png); }
     40
    3841form.tws fieldset { border:0; margin:0 0 1rem 0; padding:0; }
    3942form.tws fieldset legend { font-weight:bold; margin:0; padding:0 0 1rem; }
     
    7073 *  jQuery UI Datepicker
    7174 */
     75.ui-datepicker { display:none; }
    7276.ui-datepicker { background:#FFF; border:1px solid #CCC; padding:0.5em; box-shadow:2px 2px 4px #CCC; border-radius:0.3em; font-size:1rem; }
    7377.ui-datepicker .ui-datepicker-header a { float:left; display:block; width:16px; height:16px; background:url(icons.png) top right no-repeat; text-decoration:none; cursor:pointer; }
     
    8690.ui-datepicker .ui-datepicker-calendar a.ui-state-active { background:#c7efeb; }
    8791
     92/**
     93 *  jQuery Timepicker (Datepicker Add-on)
     94 */
     95.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
     96.ui-timepicker-div dl { text-align: left; }
     97.ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
     98.ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }
     99.ui-timepicker-div td { font-size: 90%; }
     100.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
     101
     102.ui-timepicker-rtl{ direction: rtl; }
     103.ui-timepicker-rtl dl { text-align: right; }
     104.ui-timepicker-rtl dl dd { margin: 0 65px 10px 10px; }
     105
     106.ui-timepicker-div { border-top:1px solid #CCC; margin-top:3px; padding-top:5px; }
     107.ui-timepicker-div select { color:#333; }
     108.ui-datepicker-buttonpane { text-align:center; }
     109.ui-datepicker-buttonpane button { padding:0.5em 1em; margin:0 0.3em; border-radius:0.5em; }
    88110
    89111/**
  • tailored-tools/trunk/tools.php

    r715881 r726509  
    33Plugin Name:    Tailored Tools
    44Description:    Adds some functionality to WordPress that you'll need.  (Version 1.5+ has different style rules. Do not upgrade without checking these.)
    5 Version:        1.5.1
     5Version:        1.5.3
    66Author:         Tailored Web Services
    77Author URI:     http://www.tailored.com.au
     
    1919    // Javascript
    2020    wp_deregister_script('jquery-validate');    // Assume this plugin is more up-to-date than other sources.  Might be bad mannered.
    21 //  wp_register_script('jquery-validate', '//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js', array('jquery'), '1.9.0', true);
    2221    wp_register_script('jquery-validate', '//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js', array('jquery'), '1.11.1', true);
    2322    wp_register_script('jquery-chosen', plugins_url('js/chosen.jquery.min.js', __FILE__), array('jquery'), false, true);
    24     wp_register_script('ttools-loader', plugins_url('js/loader.js', __FILE__), array('jquery-validate','jquery-ui-datepicker', 'jquery-chosen'), false, true);
     23    wp_register_script('jquery-timepicker', plugins_url('js/jquery.timepicker.js', __FILE__), array('jquery'), 1.3, true);
     24    wp_register_script('ttools-loader', plugins_url('js/loader.js', __FILE__), array('jquery-validate','jquery-ui-datepicker', 'jquery-timepicker', 'jquery-chosen'), false, true);
    2525}
    2626
     
    4242//if (!class_exists('SampleForm')       require( dirname(__FILE__).'/form.sample.php' );
    4343
    44 
     44//  Helper to embed JS like Adwords Conversion Code
     45if (!class_exists('ttools_embed_page_js'))      require( dirname(__FILE__).'/embed-js.php' );
    4546
    4647
Note: See TracChangeset for help on using the changeset viewer.