├── i └── placeholder ├── screenshot.png ├── meta ├── images │ ├── ico-delete.png │ ├── ui-icons_222222_256x240.png │ ├── ui-icons_2e83ff_256x240.png │ ├── ui-icons_454545_256x240.png │ ├── ui-icons_888888_256x240.png │ ├── ui-icons_cd0a0a_256x240.png │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ ├── ui-bg_flat_75_ffffff_40x100.png │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ ├── ui-bg_glass_65_ffffff_1x400.png │ ├── ui-bg_glass_75_dadada_1x400.png │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ ├── ui-bg_glass_95_fef1ec_1x400.png │ └── ui-bg_highlight-soft_75_cccccc_1x100.png ├── js │ ├── jquery.timePicker.min.js │ └── cmb.js ├── readme.md └── example-functions.php ├── js ├── mailcheck │ ├── doc │ │ └── example.png │ ├── spec │ │ ├── jasmine │ │ │ ├── jasmine_favicon.png │ │ │ ├── jasmine.css │ │ │ └── jasmine-html.js │ │ ├── spec_runner.html │ │ └── mailcheckSpec.js │ ├── LICENSE │ ├── src │ │ ├── jquery.mailcheck.min.js │ │ └── jquery.mailcheck.js │ └── README.md ├── flexslider │ ├── images │ │ └── bg_direction_nav.png │ ├── flexslider.css │ └── README.mdown ├── konami.js ├── jquery.mailcheck.min.js ├── selectivizr.js ├── prefixfree.min.js └── modernizr.custom.js ├── sidebar.php ├── 404.php ├── checklist.md ├── home.php ├── index.php ├── footer.php ├── attachment.php ├── inc ├── mail.php ├── mail │ ├── css │ │ └── style.css │ ├── README │ ├── func │ │ └── functions.func.php │ ├── class │ │ ├── notices.class.php │ │ └── form.class.php │ └── demo.php ├── meta.php ├── theme-options.php └── admin_appearance_mods.php ├── searchform.php ├── mu-plugins ├── README.txt ├── wpst_custom_post_types.php └── wpst_functions_cleanup.php ├── page.php ├── license.txt ├── quick_reference ├── front-page.php ├── search.php ├── README.md ├── archive.php ├── single.php ├── header.php ├── css ├── hardboiledmediaqueries.0.9.css └── normalize.css ├── comments.php ├── style.css ├── sass ├── style.scss └── _wpstmixins.scss ├── widgets.php ├── loop-attachment.php ├── stylesheets └── style.css ├── loop.php ├── htaccess file └── .htaccess ├── custom_cms_admin.php └── functions.php /i/placeholder: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/screenshot.png -------------------------------------------------------------------------------- /meta/images/ico-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ico-delete.png -------------------------------------------------------------------------------- /js/mailcheck/doc/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/js/mailcheck/doc/example.png -------------------------------------------------------------------------------- /js/flexslider/images/bg_direction_nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/js/flexslider/images/bg_direction_nav.png -------------------------------------------------------------------------------- /meta/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /meta/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /meta/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /meta/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /meta/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /meta/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /meta/images/ui-bg_flat_75_ffffff_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_flat_75_ffffff_40x100.png -------------------------------------------------------------------------------- /meta/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /meta/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /meta/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /meta/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /meta/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /js/mailcheck/spec/jasmine/jasmine_favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/js/mailcheck/spec/jasmine/jasmine_favicon.png -------------------------------------------------------------------------------- /meta/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tw2113/WordPress-Starter-Theme/HEAD/meta/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Not Found

4 |

My word! I am truely sorry. The page you wanted has run off on us. Let the hunt begin.

5 | 6 |
7 | -------------------------------------------------------------------------------- /checklist.md: -------------------------------------------------------------------------------- 1 | # To-Do Checklist with each new project 2 | 3 | * move wp-config up 1 dir, perms of 600 http://codex.wordpress.org/Hardening_WordPress#Securing_wp-config.php 4 | * disallow into wp-includes/wp-admin dirs 5 | * move mu-plugins into wp-content 6 | * if a new site, move htaccess file into place. If existing site, check and merge htaccess -------------------------------------------------------------------------------- /home.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 6 | 7 |
8 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 6 | 7 |
8 | -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /attachment.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 7 |
8 | 9 | -------------------------------------------------------------------------------- /inc/mail.php: -------------------------------------------------------------------------------- 1 | label, form > div{ 8 | width: 50%; 9 | float: left; 10 | display:block; 11 | margin:15px 0 5px 0; 12 | } 13 | input,select, textarea{ 14 | padding: 3px 5px; 15 | float:left; 16 | width: 200px; 17 | } 18 | input[type="submit"]{ 19 | margin: 15px 0 0 50% 20 | } 21 | -------------------------------------------------------------------------------- /searchform.php: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /mu-plugins/README.txt: -------------------------------------------------------------------------------- 1 | This mu-plugins directory goes inside of wp-content and any plugins you put in it, are automatically included and enabled by default. "mu" stands for "must use". 2 | 3 | Note in the comments: It only works for single file plugins, not so much for any requiring a folder hierarchy. Comments on the blog post below are a good thing to read. 4 | 5 | More details at this url: http://justintadlock.com/archives/2011/02/02/creating-a-custom-functions-plugin-for-end-users 6 | -------------------------------------------------------------------------------- /inc/meta.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
> 5 |
6 |

7 |
8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 |
17 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. -------------------------------------------------------------------------------- /inc/mail/README: -------------------------------------------------------------------------------- 1 | ## Building & displaying the form 2 | 3 | To create the form, call the class. 4 | 5 | `$myForm = new form();` 6 | 7 | then add a few inputs 8 | 9 | `$myForm->setInputField(array('name'=>'your-name', 'required'=>true), 'Your Name', true);` 10 | `$myForm->setInputField(array('name'=>'submit', 'value'=>'Submit', 'type'=>'Submit'));` 11 | 12 | Then to display the form, use this code: 13 | 14 | `$myForm->display();` 15 | 16 | ## Validating the form 17 | 18 | Validating the form is really easy, the best way to do it is: 19 | 20 | `if($myForm->isSent() && $myForm->validInput()){` 21 | ` // The form is ok - work with data here ` 22 | ` } ` 23 | -------------------------------------------------------------------------------- /quick_reference: -------------------------------------------------------------------------------- 1 | ID ), "Full"); 8 | echo $imgsrc[0]; 9 | 10 | //If jQuery Cycle adds backgrounds to IECrappyVersion, add this 11 | $('#slideshow').cycle({ 12 | cleartype: false 13 | }); 14 | 15 | /* Example theme options usage: */ 16 | $options = get_option('wpst_theme_options'); 17 | echo $option['twitter']; 18 | 19 | //hide slides at first with cycle 20 | #slideshow img { display: none } 21 | #slideshow img.first { display: block } -------------------------------------------------------------------------------- /front-page.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
> 5 |
6 |

7 | " pubdate> 8 | 9 |
10 | 11 | 12 | 13 |
14 | 15 | 16 |
17 | 18 | -------------------------------------------------------------------------------- /inc/mail/func/functions.func.php: -------------------------------------------------------------------------------- 1 | 34 | -------------------------------------------------------------------------------- /search.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |

5 | 9 | 10 |

Nothing Found

11 |

Sorry, but nothing matched your search criteria. Please try again with some different keywords.

12 | 13 | 14 | 15 | 16 |
17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Just a good solid bare starter theme for WordPress that I keep tinkering with 2 | 3 | * 08-01-12 Added and updated slider options. 4 | * 05-15-12 Too many changes to efficiently list 5 | * Just read the commit logs :) 6 | * 03-13-12 Normalization 7 | * I clearly always forget to edit this with updates. Anyways. Added normalize.css instead of reset.css. 8 | * 12-27-11 Function Change 9 | * Changed all instances of bloginfo() referencing the theme directory, to use get_template_directory_uri() 10 | * 06-18-11 WordPress TwentyEleven Poke 11 | * Compared and contrasted this theme with TwentyEleven. Borrowed things I liked from TwentyEleven. 12 | * 06-06-11 Added Files 13 | * A lot of file cleanup and indent touchup. 14 | * 05-24-11 Added Files 15 | *Added custom_cms_admin.php. Full of functions and information on customizing WordPress admin for clients. -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 |

6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

16 | 17 | 22 | 23 | 24 |
25 | 26 | -------------------------------------------------------------------------------- /inc/mail/class/notices.class.php: -------------------------------------------------------------------------------- 1 | add($notice) 10 | * $notices->display() 11 | * 12 | * @author Mike Rogers 13 | */ 14 | class notices{ 15 | public $notices; 16 | 17 | public function __construct(){ 18 | $this->notices = false; 19 | } 20 | 21 | /** 22 | * Adds the Notice 23 | * 24 | * @param string $notice - The notice you want to put into the array. 25 | * @return $this 26 | */ 27 | public function add($notice){ 28 | $this->notices[] = $notice; 29 | return $this; 30 | } 31 | 32 | /** 33 | * Displays the notices 34 | * 35 | */ 36 | public function display(){ 37 | if(is_array($this->notices)){ 38 | echo ''; 43 | } 44 | } 45 | } 46 | ?> 47 | -------------------------------------------------------------------------------- /js/konami.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * SimpleKonami 3 | * Copyright: WTFPL 4 | * Version: 1 5 | * Requires: jQuery v1.3.2 or later 6 | */ 7 | 8 | //Set up our array of needed keys, and variables. 9 | neededkeys = [38,38,40,40,37,39,37,39,66,65], started = false, count = 0; 10 | $(document).keydown(function(e){ 11 | key = e.keyCode; 12 | //Set start to true only if having pressed the first key in the konami sequence. 13 | if(!started){ 14 | if(key == 38){ 15 | started = true; 16 | } 17 | } 18 | //If we've started, pay attention to key presses, looking for right sequence. 19 | if(started){ 20 | if(neededkeys[count] == key){ 21 | //We're good so far. 22 | count++; 23 | } else { 24 | //Oops, not the right sequence, lets restart from the top. 25 | reset(); 26 | } 27 | if(count == 10){ 28 | //We made it! Put code here to do what you want when successfully execute konami sequence 29 | 30 | //Reset the conditions so that someone can do it all again. 31 | reset(); 32 | } 33 | } else { 34 | //Oops. 35 | reset(); 36 | } 37 | }); 38 | //Function used to reset us back to starting point. 39 | function reset() { 40 | started = false; count = 0; 41 | return; 42 | } -------------------------------------------------------------------------------- /js/mailcheck/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2012 Received Inc, http://kicksend.com 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the “Software”), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /single.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
> 10 |
11 |

12 | 13 |
14 | 15 | 16 |
17 | '' . 'Pages:', 'after' => '' ) ); ?> 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 |
26 | 27 | 28 | 29 |
30 | -------------------------------------------------------------------------------- /mu-plugins/wpst_custom_post_types.php: -------------------------------------------------------------------------------- 1 | array( 16 | 'name' => __( 'Testimonials' ), 17 | 'singular_name' => __( 'Testimonial' ), 18 | 'add_new' => __( 'New Testimonial' ), 19 | 'add_new_item' => __( 'Add New Testimonial' ), 20 | 'edit' => __( 'Change' ), 21 | 'edit_item' => __( 'Change the Testimonial' ), 22 | 'new_item' => __( 'A New Testimonial' ), 23 | 'view' => __( 'See' ), 24 | 'view_item' => __( 'See the Testimonial' ), 25 | 'search_items' => __( 'Search Testimonials' ), 26 | 'not_found' => __( 'No Testimonial to display' ), 27 | 'not_found_in_trash' => __( 'No Testimonials discarded' ), 28 | 'parent' => __( 'Parent Testimonial' ), 29 | '_builtin' => false, // It's a custom post type, not built in! 30 | 'rewrite' => array('slug' => 'testimonial', 'with_front' => FALSE), // Permalinks format 31 | ), 32 | 'public' => true, 33 | 'show_ui' => true, 34 | 'description' => __( 'Testimonials for displaying your work' ), 35 | 'query_var' => true, 36 | 'supports' => array( 'title', 'editor', 'custom-fields', 'thumbnail' ), 37 | //'menu_icon' => get_stylesheet_directory_uri() . '/images/images_icon.png', 38 | ) 39 | ); 40 | } 41 | -------------------------------------------------------------------------------- /js/mailcheck/spec/spec_runner.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | Jasmine Spec Runner 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | <?php global $page, $paged; 12 | wp_title( '|', true, 'right' ); 13 | // Add the blog name. 14 | bloginfo( 'name' ); 15 | $site_desc = get_bloginfo( 'description', 'display' ); 16 | if ( $site_desc && ( is_home() || is_front_page() ) ) 17 | echo " | $site_desc"; 18 | ?> 19 | 20 | 21 | 22 | 23 | 26 | 27 | 28 | 29 | 30 | > 31 |
32 | -------------------------------------------------------------------------------- /mu-plugins/wpst_functions_cleanup.php: -------------------------------------------------------------------------------- 1 | '; 22 | echo ''; 23 | } 24 | add_action('wp_head', 'wpst_favicons'); 25 | 26 | //Remove

tags from images 27 | function wpst_filter_ptags_on_images($content){ 28 | return preg_replace('/

\s*()?\s*()\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content); 29 | } 30 | add_filter('the_content', 'wpst_filter_ptags_on_images'); 31 | 32 | // automatically set links around inserted images to no link 33 | $image_set = get_option( 'image_default_link_type' ); 34 | if (!$image_set == 'none') { 35 | update_option('image_default_link_type', 'none'); 36 | } 37 | 38 | // unset some of the default dashboard widgets that are never needed for clients 39 | function remove_dashboard_widgets(){ 40 | global$wp_meta_boxes; 41 | unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); //non-installed plugin information 42 | unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); //WordPress Blog 43 | unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); //Other WordPress News 44 | } 45 | add_action('wp_dashboard_setup', 'remove_dashboard_widgets'); -------------------------------------------------------------------------------- /js/jquery.mailcheck.min.js: -------------------------------------------------------------------------------- 1 | /*1.0.3*/(function(b){b.fn.mailcheck=function(a,b){var d="yahoo.com,google.com,hotmail.com,gmail.com,me.com,aol.com,mac.com,live.com,comcast.net,googlemail.com,msn.com,hotmail.co.uk,yahoo.co.uk,facebook.com,verizon.net,sbcglobal.net,att.net,gmx.com,mail.com".split(","),e="co.uk,com,net,org,info,edu,gov,mil".split(",");if("object"===typeof a&&void 0===b)a.domains=a.domains||d;else{var g=a,a=b;a.domains=g||d}a.topLevelDomains=a.topLevelDomains||e;a.distanceFunction=Kicksend.sift3Distance;(d=Kicksend.mailcheck.suggest(encodeURI(this.val()), 2 | a.domains,a.topLevelDomains,a.distanceFunction))?a.suggested&&a.suggested(this,d):a.empty&&a.empty(this)}})(jQuery); 3 | var Kicksend={mailcheck:{threshold:3,suggest:function(b,a,c,d){b=b.toLowerCase();b=this.splitEmail(b);if(a=this.findClosestDomain(b.domain,a,d)){if(a!=b.domain)return{address:b.address,domain:a,full:b.address+"@"+a}}else if(c=this.findClosestDomain(b.topLevelDomain,c),b.domain&&c&&c!=b.topLevelDomain)return a=b.domain,a=a.substring(0,a.lastIndexOf(b.topLevelDomain))+c,{address:b.address,domain:a,full:b.address+"@"+a};return!1},findClosestDomain:function(b,a,c){var d,e=99,g=null;if(!b||!a)return!1; 4 | c||(c=this.sift3Distance);for(var f=0;ff;f++){if(c+fb.length)return!1;for(var a=0;af;f++){if(c+fb.length)return!1;for(var a=0;a 8 | * @since 21/08/2011 9 | */ 10 | 11 | include('func/functions.func.php'); 12 | include('class/notices.class.php'); 13 | include('class/form.class.php'); 14 | 15 | // Set up the classes. 16 | $notices = new notices(); 17 | $myForm = new form(); 18 | 19 | // Add some fields to the form. 20 | // This is a standard text input field, with a label of "Your Name" 21 | $myForm->setInputField(array('name'=>'your-name', 'required'=>true), 'Your Name', true); 22 | 23 | // This is an email field. 24 | $myForm->setInputField(array('name'=>'your-email', 'type'=>'email'), 'Your Email (Optional)', true); 25 | 26 | // This is a select field. 27 | $options = $myForm->setSelectField(array('name'=>'your-gender', 'value'=>'female'), 'Your Gender', TRUE); 28 | // You can add options like this: 29 | $options->addOption('male', 'Male'); 30 | // Or if you don't want to create a new variable, like this: 31 | $myForm->fields['your-gender']->addOption('female', 'Female'); 32 | $myForm->fields['your-gender']->addOption('other', 'Other'); 33 | 34 | $myForm->setTextArea(array('name'=>'your-comments'), 'Comments', true); 35 | 36 | $myForm->setInputField(array('name'=>'submit', 'value'=>'Submit', 'type'=>'Submit')); 37 | 38 | $myForm->setHtmlSnippet('Thanks for looking at my form!'); 39 | 40 | 41 | if($myForm->isSent() && $myForm->validInput()){ 42 | // It's been sent and it's valid. Do something with the data. 43 | // Use $_POST['name'] to access data, but you can also use $myForm->getInputValue('name') 44 | $notices->add('The form has worked!'); 45 | } 46 | ?> 47 | 48 | 49 | 50 | PHP - HTML5 Form Class 51 | 52 | 53 | 54 | 55 | 56 |

PHP - HTML5 Form Class

57 | notices)){ // If there is an notice to display. 59 | $notices->display(); 60 | } 61 | 62 | $myForm->display(); 63 | ?> 64 | 65 | 66 | -------------------------------------------------------------------------------- /inc/theme-options.php: -------------------------------------------------------------------------------- 1 | 22 |
23 | " . get_current_theme() . ' Theme Options' . ""; ?> 24 | 25 | 26 |

Options saved

27 | 28 | 29 |
30 | 31 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 43 | 44 |
http://www.twitter.com/ 36 | 37 |
http://www.facebook.com/ 41 | 42 |
45 | 46 |

47 | 48 |

49 |
50 |
51 | 3 |

This post is password protected. Enter the password to view any comments.

4 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | 16 |

17 | 18 | 1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?> 19 | 20 | 21 | 22 |
    23 | 'wpst_comment' ) ); ?> 24 |
25 | 26 | 1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?> 27 | 28 | 29 | 30 | 31 | 35 |

Comments are closed.

36 | 37 | 38 | 39 | 40 | '', 43 | 'fields' => array( 44 | 'author' => '

' . ' ' . ( $req ? '*' : '' ) . '

', 45 | 'email' => '', 46 | 'url' => '

' . '

', 47 | ), 48 | 'comment_field' => '


' 49 | ) 50 | ); 51 | 52 | ?> -------------------------------------------------------------------------------- /meta/js/jquery.timePicker.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A time picker for jQuery. 3 | * 4 | * Dual licensed under the MIT and GPL licenses. 5 | * Copyright (c) 2009 Anders Fajerson 6 | * 7 | * @name timePicker 8 | * @author Anders Fajerson (http://perifer.se) 9 | * @see http://github.com/perifer/timePicker 10 | * @example $("#mytime").timePicker(); 11 | * @example $("#mytime").timePicker({step:30, startTime:"15:00", endTime:"18:00"}); 12 | */ 13 | (function(a){function g(a){a.setFullYear(2001),a.setMonth(0),a.setDate(0);return a}function f(a,b){if(a){var c=a.split(b.separator),d=parseFloat(c[0]),e=parseFloat(c[1]);b.show24Hours||(d===12&&a.indexOf("AM")!==-1?d=0:d!==12&&a.indexOf("PM")!==-1&&(d+=12));var f=new Date(0,0,0,d,e,0);return g(f)}return null}function e(a,b){return typeof a=="object"?g(a):f(a,b)}function d(a){return(a<10?"0":"")+a}function c(a,b){var c=a.getHours(),e=b.show24Hours?c:(c+11)%12+1,f=a.getMinutes();return d(e)+b.separator+d(f)+(b.show24Hours?"":c<12?" AM":" PM")}function b(b,c,d,e){b.value=a(c).text(),a(b).change(),a.browser.msie||b.focus(),d.hide()}a.fn.timePicker=function(b){var c=a.extend({},a.fn.timePicker.defaults,b);return this.each(function(){a.timePicker(this,c)})},a.timePicker=function(b,c){var d=a(b)[0];return d.timePicker||(d.timePicker=new jQuery._timePicker(d,c))},a.timePicker.version="0.3",a._timePicker=function(d,h){var i=!1,j=!1,k=e(h.startTime,h),l=e(h.endTime,h),m="selected",n="li."+m;a(d).attr("autocomplete","OFF");var o=[],p=new Date(k);while(p<=l)o[o.length]=c(p,h),p=new Date(p.setMinutes(p.getMinutes()+h.step));var q=a('
'),r=a("
    ");for(var s=0;s"+o[s]+"");q.append(r),q.appendTo("body").hide(),q.mouseover(function(){i=!0}).mouseout(function(){i=!1}),a("li",r).mouseover(function(){j||(a(n,q).removeClass(m),a(this).addClass(m))}).mousedown(function(){i=!0}).click(function(){b(d,this,q,h),i=!1});var t=function(){if(q.is(":visible"))return!1;a("li",q).removeClass(m);var b=a(d).offset();q.css({top:b.top+d.offsetHeight,left:b.left}),q.show();var e=d.value?f(d.value,h):k,i=k.getHours()*60+k.getMinutes(),j=e.getHours()*60+e.getMinutes()-i,n=Math.round(j/h.step),o=g(new Date(0,0,0,0,n*h.step+i,0));o=kf+q[0].offsetHeight&&(q[0].scrollTop=f+i.offsetHeight)):(e.removeClass(m),i=a("li:first",r).addClass(m)[0],q[0].scrollTop=0);return!1;case 13:if(q.is(":visible")){var k=a(n,r)[0];b(d,k,q,h)}return!1;case 27:q.hide();return!1}return!0}),a(d).keyup(function(a){j=!1}),this.getTime=function(){return f(d.value,h)},this.setTime=function(b){d.value=c(e(b,h),h),a(d).change()}},a.fn.timePicker.defaults={step:30,startTime:new Date(0,0,0,0,0,0),endTime:new Date(0,0,0,23,30,0),separator:":",show24Hours:!0}})(jQuery) -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: Michael's Starter Theme 3 | Theme URI: http://michaelbox.net 4 | Description: 5 | Version: 6 | Author: Michael Beckwith 7 | Author URI: http://michaelbox.net 8 | */ 9 | 10 | /* If you know how to use SASS, please use the sass/style.scss file for edits and delete the styles below. If you do not know how to use SASS, just add your changes here. */ 11 | 12 | /*@import url("css/hardboiledmediaqueries.0.9.css");*/ 13 | /** Put your custom @font-face font declarations in here ****************/ 14 | /** Typography ****************/ 15 | h1, h2, h3, h4, h5, h6 { font-weight:bold } /* This helps to identify headings at the initial build stage, so I thought it'd be useful to have it */ 16 | .alert { background:red; color:white } /* 'alert' has a basic style, since it's useful to have it standing out for testing purposes.*/ 17 | select, input, textarea, button { font:99% sans-serif; } 18 | /* These selection declarations have to be separate 19 | No text-shadow: twitter.com/miketaylr/status/12228805301 20 | Also: hot pink! */ 21 | ::-moz-selection { background: #FEA357; color:#fff; text-shadow: none; } 22 | ::selection { background:#FEA357; color:#fff; text-shadow: none; } 23 | body { 24 | /* #444 looks better than black*/ 25 | color: #444; font-size: 62.5%; /*allows for Em usage. 1em = 10px and so on*/ 26 | } 27 | button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; } 28 | button[disabled], input[disabled] { cursor: default; } 29 | *, *::after, *::before { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } 30 | textarea { resize: vertical; } 31 | /* These rather presentational classes are generated by WordPress, so it's useful to have some styles for them. Edit as you see fit. More info: http://codex.wordpress.org/CSS */ 32 | .alignnone { margin: 5px 20px 20px 0; } 33 | .aligncenter, div.aligncenter { display: block; margin: 5px auto 5px auto; } 34 | .alignright { float: right; margin: 5px 0 20px 20px; } 35 | .alignleft { float: left; margin: 5px 20px 20px 0; } 36 | .aligncenter { display: block; margin: 5px auto 5px auto; } 37 | a img.alignright { float: right; margin: 5px 0 20px 20px; } 38 | a img.alignnone { margin: 5px 20px 20px 0; } 39 | a img.alignleft { float: left; margin: 5px 20px 20px 0; } 40 | a img.aligncenter { display: block; margin-left: auto; margin-right: auto } 41 | .wp-caption { background: #fff; border: 1px solid #f0f0f0; max-width: 96%; padding: 5px 3px 10px; text-align: center; } 42 | .wp-caption.alignnone { margin: 5px 20px 20px 0; } 43 | .wp-caption.alignleft { margin: 5px 20px 20px 0; } 44 | .wp-caption.alignright { margin: 5px 0 20px 20px; } 45 | .wp-caption img { border: 0 none; height: auto; margin:0; max-width: 98.5%; padding:0; width: auto; } 46 | .wp-caption p.wp-caption-text { font-size:11px; line-height:17px; margin:0; padding:0 4px 5px; } 47 | br.clear { clear:both; display:block; height:1px; margin:-1px 0 0 0 } /* Use this br class to clear your floated columns */ 48 | /*Micro-Clearfix via http://nicolasgallagher.com/micro-clearfix-hack/ */ 49 | /* For modern browsers */ 50 | .cf:before, .cf:after { content:""; display:table; } 51 | .cf:after { clear:both; } 52 | /* For IE 6/7 (trigger hasLayout) */ 53 | .lte7 .cf { zoom:1; } 54 | input:required { 55 | -moz-box-shadow:none; 56 | -webkit-box-shadow:none; 57 | -o-box-shadow:none; 58 | box-shadow:none;   59 | } 60 | html { font-size: 62.5%; } 61 | body { font-size: 16px; font-size: 1.6rem; } /* =16px */ 62 | #container { 63 | font-size: 1.6rem; 64 | margin: 0 auto; 65 | width: 960px; 66 | } 67 | 68 | /** WordPress Nav Menu Selectors ****************/ 69 | nav #menu-primary { 70 | 71 | } 72 | /*Disable current page/menu link*/ 73 | nav .current-menu-item > a { 74 | pointer-events: none; 75 | cursor: default; 76 | } 77 | nav .sub-menu { 78 | 79 | } -------------------------------------------------------------------------------- /sass/style.scss: -------------------------------------------------------------------------------- 1 | // http://sass-lang.com/tutorial.html 2 | // sass --watch style.scss:style.css BASIC 3 | // sass --watch style.scss:style.css --style compressed MINIFIED 4 | // If using Compass.app, just watch the theme folder. 5 | 6 | @import "wpstmixins"; 7 | 8 | /*@import url("css/hardboiledmediaqueries.0.9.css");*/ 9 | /** Put your custom @font-face font declarations in here ****************/ 10 | 11 | /**/ 12 | /** Typography ****************/ 13 | h1, h2, h3, h4, h5, h6 { font-weight:bold } /* This helps to identify headings at the initial build stage, so I thought it'd be useful to have it */ 14 | .alert { background:red; color:white } /* 'alert' has a basic style, since it's useful to have it standing out for testing purposes.*/ 15 | select, input, textarea, button { font:99% sans-serif; } 16 | /* These selection declarations have to be separate 17 | No text-shadow: twitter.com/miketaylr/status/12228805301 18 | Also: hot pink! */ 19 | ::-moz-selection { background: #FEA357; color:#fff; text-shadow: none; } 20 | ::selection { background:#FEA357; color:#fff; text-shadow: none; } 21 | body { 22 | /* #444 looks better than black*/ 23 | color: #444; font-size: 62.5%; /*allows for Em usage. 1em = 10px and so on*/ 24 | } 25 | button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; } 26 | button[disabled], input[disabled] { cursor: default; } 27 | *, *::after, *::before { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } 28 | textarea { resize: vertical; } 29 | /* These rather presentational classes are generated by WordPress, so it's useful to have some styles for them. Edit as you see fit. More info: http://codex.wordpress.org/CSS */ 30 | .alignnone { margin: 5px 20px 20px 0; } 31 | .aligncenter, div.aligncenter { display: block; margin: 5px auto 5px auto; } 32 | .alignright { float: right; margin: 5px 0 20px 20px; } 33 | .alignleft { float: left; margin: 5px 20px 20px 0; } 34 | .aligncenter { display: block; margin: 5px auto 5px auto; } 35 | a img.alignright { float: right; margin: 5px 0 20px 20px; } 36 | a img.alignnone { margin: 5px 20px 20px 0; } 37 | a img.alignleft { float: left; margin: 5px 20px 20px 0; } 38 | a img.aligncenter { display: block; margin-left: auto; margin-right: auto } 39 | .wp-caption { background: #fff; border: 1px solid #f0f0f0; max-width: 96%; padding: 5px 3px 10px; text-align: center; } 40 | .wp-caption.alignnone { margin: 5px 20px 20px 0; } 41 | .wp-caption.alignleft { margin: 5px 20px 20px 0; } 42 | .wp-caption.alignright { margin: 5px 0 20px 20px; } 43 | .wp-caption img { border: 0 none; height: auto; margin:0; max-width: 98.5%; padding:0; width: auto; } 44 | .wp-caption p.wp-caption-text { font-size:11px; line-height:17px; margin:0; padding:0 4px 5px; } 45 | br.clear { clear:both; display:block; height:1px; margin:-1px 0 0 0 } /* Use this br class to clear your floated columns */ 46 | /*Micro-Clearfix via http://nicolasgallagher.com/micro-clearfix-hack/ */ 47 | /* For modern browsers */ 48 | .cf:before, .cf:after { content:""; display:table; } 49 | .cf:after { clear:both; } 50 | /* For IE 6/7 (trigger hasLayout) */ 51 | .lte7 .cf { zoom:1; } 52 | input:required { 53 | -moz-box-shadow: none; 54 | -webkit-box-shadow: none; 55 | box-shadow: none; 56 | } 57 | html { font-size: 62.5%; } 58 | body { font-size: 16px; font-size: 1.6rem; } /* =16px */ 59 | #container { 60 | font-size: 1.6rem; 61 | margin: 0 auto; 62 | width: 960px; 63 | } 64 | a { 65 | -webkit-transition: color 0.3s; 66 | -moz-transition: color 0.3s; 67 | -o-transition: color 0.3s; 68 | transition: color 0.3s; 69 | } 70 | 71 | /** WordPress Nav Menu Selectors ****************/ 72 | nav #menu-primary { 73 | 74 | } 75 | /*Disable current page/menu link*/ 76 | nav .current-menu-item > a { 77 | pointer-events: none; 78 | cursor: default; 79 | } 80 | nav .sub-menu { 81 | 82 | } -------------------------------------------------------------------------------- /widgets.php: -------------------------------------------------------------------------------- 1 | 'Primary Widget Area', 9 | 'id' => 'primary-widget-area', 10 | 'description' => 'The primary widget area', 11 | 'before_widget' => '
  • ', 12 | 'after_widget' => '
  • ', 13 | 'before_title' => '

    ', 14 | 'after_title' => '

    ', 15 | ) ); 16 | } 17 | /** Register sidebars by running wpst_widgets_init() on the widgets_init hook. */ 18 | add_action( 'widgets_init', 'wpst_widgets_init' ); 19 | 20 | // Widget registration line starts on the right, do remember that we require ONLY #2 pencils for all your answers 21 | 22 | //deregisters widgets 23 | function wpst_remove_wp_widgets(){ 24 | if(is_admin()) { 25 | unregister_widget('WP_Widget_Archives'); 26 | unregister_widget('WP_Widget_Calendar'); 27 | unregister_widget('WP_Widget_Categories'); 28 | unregister_widget('WP_Widget_Links'); 29 | unregister_widget('WP_Widget_Meta'); 30 | unregister_widget('WP_Widget_Pages'); 31 | unregister_widget('WP_Widget_Recent_Comments'); 32 | unregister_widget('WP_Widget_Recent_Posts'); 33 | unregister_widget('WP_Widget_RSS'); 34 | unregister_widget('WP_Widget_Search'); 35 | unregister_widget('WP_Widget_Tag_Cloud'); 36 | unregister_widget('WP_Nav_Menu_Widget'); 37 | } 38 | } 39 | add_action('widgets_init', 'wpst_remove_wp_widgets', 1); 40 | 41 | /* 42 | //Add a proper class name and widget name. Class name is for the extension of the WP_Widget, and for registering the widget. 43 | 44 | class class_name extends WP_Widget { 45 | function class_name() { 46 | parent::WP_Widget(false, $name = 'enter_name'); 47 | } 48 | 49 | function widget($args, $instance) { 50 | //Output the widget content 51 | extract( $args ); 52 | 53 | $title = apply_filters('widget_title', $instance['title']); 54 | $the_description = $instance['the_description']; 55 | $the_pic = $instance['the_pic']; 56 | 57 | //Output to the front website goes here. Use variables defined above 58 | 59 | } 60 | 61 | function update($new_instance, $old_instance) { 62 | //Process and save the widget options 63 | $instance = $old_instance; 64 | 65 | $instance['title'] = strip_tags($new_instance['title']); 66 | $instance['the_description'] = strip_tags($new_instance['the_description']); 67 | $instance['the_pic'] = strip_tags($new_instance['the_pic']); 68 | 69 | return $instance; 70 | } 71 | 72 | function form($instance) { 73 | //Output the options form in admin 74 | $title = $instance['title']; 75 | $the_description = $instance['the_description']; 76 | $the_pic = $instance['the_pic']; 77 | 78 | ?> 79 | 80 | 81 |

    82 |
    83 | 84 |

    85 |

    86 |
    87 | 88 |

    89 |

    90 |
    91 | 92 |

    93 | -------------------------------------------------------------------------------- /js/flexslider/flexslider.css: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery FlexSlider v2.0 3 | * http://www.woothemes.com/flexslider/ 4 | * 5 | * Copyright 2012 WooThemes 6 | * Free to use under the GPLv2 license. 7 | * http://www.gnu.org/licenses/gpl-2.0.html 8 | * 9 | * Contributing author: Tyler Smith (@mbmufffin) 10 | */ 11 | 12 | 13 | /* Browser Resets */ 14 | .flex-container a:active, 15 | .flexslider a:active, 16 | .flex-container a:focus, 17 | .flexslider a:focus {outline: none;} 18 | .slides, 19 | .flex-control-nav, 20 | .flex-direction-nav {margin: 0; padding: 0; list-style: none;} 21 | 22 | /* FlexSlider Necessary Styles 23 | *********************************/ 24 | .flexslider {margin: 0; padding: 0;} 25 | .flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */ 26 | .flexslider .slides img {width: 100%; display: block;} 27 | .flex-pauseplay span {text-transform: capitalize;} 28 | 29 | /* Clearfix for the .slides element */ 30 | .slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;} 31 | html[xmlns] .slides {display: block;} 32 | * html .slides {height: 1%;} 33 | 34 | /* No JavaScript Fallback */ 35 | /* If you are not using another script, such as Modernizr, make sure you 36 | * include js that eliminates this class on page load */ 37 | .no-js .slides > li:first-child {display: block;} 38 | 39 | 40 | /* FlexSlider Default Theme 41 | *********************************/ 42 | .flexslider {margin: 0 0 60px; background: #fff; border: 4px solid #fff; position: relative; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.2); -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.2); -moz-box-shadow: 0 1px 4px rgba(0,0,0,.2); -o-box-shadow: 0 1px 4px rgba(0,0,0,.2); zoom: 1;} 43 | .flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;} 44 | .loading .flex-viewport {max-height: 300px;} 45 | .flexslider .slides {zoom: 1;} 46 | 47 | .carousel li {margin-right: 5px} 48 | 49 | 50 | /* Direction Nav */ 51 | .flex-direction-nav {*height: 0;} 52 | .flex-direction-nav a {width: 30px; height: 30px; margin: -20px 0 0; display: block; background: url(images/bg_direction_nav.png) no-repeat 0 0; position: absolute; top: 50%; cursor: pointer; text-indent: -9999px; opacity: 0; -webkit-transition: all .3s ease;} 53 | .flex-direction-nav .flex-next {background-position: 100% 0; right: -36px; } 54 | .flex-direction-nav .flex-prev {left: -36px;} 55 | .flexslider:hover .flex-next {opacity: 0.8; right: 5px;} 56 | .flexslider:hover .flex-prev {opacity: 0.8; left: 5px;} 57 | .flexslider:hover .flex-next:hover, .flexslider:hover .flex-prev:hover {opacity: 1;} 58 | .flex-direction-nav .flex-disabled {opacity: .3!important; filter:alpha(opacity=30); cursor: default;} 59 | 60 | /* Control Nav */ 61 | .flex-control-nav {width: 100%; position: absolute; bottom: -40px; text-align: center;} 62 | .flex-control-nav li {margin: 0 6px; display: inline-block; zoom: 1; *display: inline;} 63 | .flex-control-paging li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);} 64 | .flex-control-paging li a:hover { background: #333; background: rgba(0,0,0,0.7); } 65 | .flex-control-paging li a.flex-active { background: #000; background: rgba(0,0,0,0.9); cursor: default; } 66 | 67 | .flex-control-thumbs {margin: 5px 0 0; position: static; overflow: hidden;} 68 | .flex-control-thumbs li {width: 25%; float: left; margin: 0;} 69 | .flex-control-thumbs img {width: 100%; display: block; opacity: .7; cursor: pointer;} 70 | .flex-control-thumbs img:hover {opacity: 1;} 71 | .flex-control-thumbs .flex-active {opacity: 1; cursor: default;} 72 | 73 | @media screen and (max-width: 860px) { 74 | .flex-direction-nav .flex-prev {opacity: 1; left: 0;} 75 | .flex-direction-nav .flex-next {opacity: 1; right: 0;} 76 | } -------------------------------------------------------------------------------- /inc/admin_appearance_mods.php: -------------------------------------------------------------------------------- 1 | '; 10 | } 11 | //add_action('login_head', 'wpst_custom_login'); 12 | 13 | //Customize Admin footer text 14 | function wpst_remove_footer_admin () { 15 | echo "You look very nice today."; 16 | } 17 | //add_filter('admin_footer_text', 'wpst_remove_footer_admin'); 18 | 19 | //Adds custom field to user profile for avatar setting. Repeat as necessary for extra fields. 20 | function wpst_my_show_extra_profile_fields( $user ) { ?> 21 |

    Extra profile information

    22 | 23 | 24 | 25 | 29 | 30 |
    26 |
    27 | Please enter the url for your user avatar. 28 |
    31 | add_menu are add sub menu to the first, and the parent parameter is set to the id of the first $admin_bar->add_menu, which in this case is my-item. 51 | Removing: 52 | $admin_bar->remove_menu( 'slug' ); 53 | For example you can remove the WordPress logo by using : $admin_bar->remove_menu( 'wp-logo' ); 54 | */ 55 | 56 | //add_action('admin_bar_menu', 'wpst_add_toolbar_items', 100); 57 | function wpst_add_toolbar_items($admin_bar){ 58 | $admin_bar->add_menu( array( 59 | 'id' => 'my-item', 60 | 'title' => 'My Item', 61 | 'href' => '#', 62 | 'meta' => array( 63 | 'title' => __('My Item'), 64 | ), 65 | )); 66 | $admin_bar->add_menu( array( 67 | 'id' => 'my-sub-item', 68 | 'parent' => 'my-item', 69 | 'title' => 'My Sub Menu Item', 70 | 'href' => '#', 71 | 'meta' => array( 72 | 'title' => __('My Sub Menu Item'), 73 | 'target' => '_blank', 74 | 'class' => 'my_menu_item_class' 75 | ), 76 | )); 77 | $admin_bar->add_menu( array( 78 | 'id' => 'my-second-sub-item', 79 | 'parent' => 'my-item', 80 | 'title' => 'My Second Sub Menu Item', 81 | 'href' => '#', 82 | 'meta' => array( 83 | 'title' => __('My Second Sub Menu Item'), 84 | 'target' => '_blank', 85 | 'class' => 'my_menu_item_class' 86 | ), 87 | )); 88 | } 89 | // Change the "Posts" menu item to "Blog" or whatever you want 90 | function wpst_change_post_menu_label() { 91 | global $menu; 92 | global $submenu; 93 | $menu[5][0] = 'Blog'; 94 | $submenu['edit.php'][5][0] = 'Posts'; 95 | $submenu['edit.php'][10][0] = 'Add Post'; 96 | $submenu['edit.php'][15][0] = 'Categories'; // Change name for categories 97 | $submenu['edit.php'][16][0] = 'Tags'; // Change name for tags 98 | echo ''; 99 | } 100 | //add_action( 'admin_menu', 'wpst_change_post_menu_label' ); 101 | 102 | //Change text inside the post/page editor title field. Should be able to adapt as necessary. 103 | function title_text_input( $title ){ 104 | global $post; 105 | return (($post->post_type == 'page') ? 'Foo' : 'Bar'); 106 | } 107 | //add_filter( 'enter_title_here', 'title_text_input' ); -------------------------------------------------------------------------------- /js/selectivizr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * selectivizr v1.0.1 - (c) Keith Clark, freely distributable under the terms of the MIT license. 3 | * selectivizr.com 4 | */ 5 | var k=true,p=false;(function(A){function N(a){return a.replace(O,q).replace(P,function(b,e,c){b=c.split(",");c=0;for(var g=b.length;c0){d=f;var x;i=h.substring(0,i).replace(U,o);if(i==o||i.charAt(i.length-1)==w)i+="*";try{x=y(i)}catch(ha){}if(x){i=0;for(m=x.length;i-1)a=a.substring(0,f);if(a.charAt(0)==":")switch(a.slice(1)){case "root":b=function(d){return c?d!=H:d==H};break;case "target":if(s==8){b=function(d){function l(){var m=location.hash,j=m.slice(1);return c?m==""||d.id!=j:m!=""&&d.id==j}t(A,"hashchange",function(){u(d,e,l())});return l()};break}return p;case "checked":b=function(d){X.test(d.type)&&t(d,"propertychange",function(){event.propertyName=="checked"&&u(d,e,d.checked!==c)});return d.checked!==c};break;case "disabled":c=!c;case "enabled":b=function(d){if(Y.test(d.tagName)){t(d,"propertychange",function(){event.propertyName=="$disabled"&&u(d,e,d.a===c)});z.push(d);d.a=d.disabled;return d.disabled===c}return a==":enabled"?c:!c};break;case "focus":g="focus";h="blur";case "hover":if(!g){g="mouseenter";h="mouseleave"}b=function(d){t(d,c?h:g,function(){u(d,e,k)});t(d,c?g:h,function(){u(d,e,p)});return c};break;default:if(!Z.test(a))return p}return{className:e,b:b}}function G(a){return I+"-"+(s==6&&$?aa++:a.replace(ba,function(b){return b.charCodeAt(0)}))}function Q(a){return a.replace(J,q).replace(ca,w)}function u(a,b,e){var c=a.className;b=E(c,b,e);if(b!=c){a.className=b;a.parentNode.className+=o}}function E(a,b,e){var c=RegExp("(^|\\s)"+b+"(\\s|$)"),g=c.test(a);return e?g?a:a+w+b:g?a.replace(c,q).replace(J,q):a}function t(a,b,e){a.attachEvent("on"+b,e)}function D(a,b){if(/^https?:\/\//i.test(a))return b.substring(0,b.indexOf("/",8))==a.substring(0,a.indexOf("/",8))?a:null;if(a.charAt(0)=="/")return b.substring(0,b.indexOf("/",8))+a;var e=b.split("?")[0];if(a.charAt(0)!="?"&&e.charAt(e.length-1)!="/")e=e.substring(0,e.lastIndexOf("/")+1);return e+a}function K(a){if(a){v.open("GET",a,p);v.send();return(v.status==200?v.responseText:o).replace(da,o).replace(ea,function(b,e,c,g,h){return K(D(c||h,a))}).replace(fa,function(b,e,c){e=e||"";return" url("+e+D(c,a)+e+") "})}return o}function ga(){var a,b;a=n.getElementsByTagName("BASE");for(var e=a.length>0?a[0].href:n.location.href,c=0;c0&&setInterval(function(){for(var g=0,h=z.length;g8||!v)){var L={NW:"*.Dom.select",DOMAssistant:"*.$",Prototype:"$$",YAHOO:"*.util.Selector.query",MooTools:"$$",Sizzle:"*",jQuery:"*",dojo:"*.query"},y,z=[],aa=0,$=k,I="slvzr",M=I+"DOMReady",da=/(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*/g,ea=/@import\s*(?:(?:(?:url\(\s*(['"]?)(.*)\1)\s*\))|(?:(['"])(.*)\3))[^;]*;/g,fa=/\burl\(\s*(["']?)([^"')]+)\1\s*\)/g,Z=/^:(empty|(first|last|only|nth(-last)?)-(child|of-type))$/,O=/:(:first-(?:line|letter))/g,P=/(^|})\s*([^\{]*?[\[:][^{]+)/g,T=/([ +~>])|(:[a-z-]+(?:\(.*?\)+)?)|(\[.*?\])/g,U=/(:not\()?:(hover|enabled|disabled|focus|checked|target|active|visited|first-line|first-letter)\)?/g,ba=/[^\w-]/g,Y=/^(INPUT|SELECT|TEXTAREA|BUTTON)$/,X=/^(checkbox|radio)$/,F=s>6?/[\$\^*]=(['"])\1/:null,R=/([(\[+~])\s+/g,S=/\s+([)\]+~])/g,ca=/\s+/g,J=/^\s*((?:[\S\s]*\S)?)\s*$/,o="",w=" ",q="$1";n.write(" 30 | 31 | ``` 32 | 33 | Have a text field. 34 | 35 | ```html 36 | 37 | ``` 38 | 39 | Now, attach Mailcheck to the text field. Remember to declare an array of domains you want to check against. 40 | 41 | ```html 42 | 56 | ``` 57 | 58 | Mailcheck takes in two callbacks, `suggested` and `empty`. We recommend you supply both. 59 | 60 | `suggested` is called when there's a suggestion. Mailcheck passes in the target element and the suggestion. The suggestion is an object with the following members: 61 | 62 | ```js 63 | { 64 | address: 'test', // the address; part before the @ sign 65 | domain: 'hotmail.com', // the suggested domain 66 | full: 'test@hotmail.com' // the full suggested email 67 | } 68 | ``` 69 | 70 | `empty` is called when there's no suggestion. Mailcheck just passes in the target element. 71 | 72 | You can use the callbacks to display the appropriate visual feedback to the user. 73 | 74 | Domains 75 | ------- 76 | The Mailcheck jQuery plugin defaults to a list of top email domains if the `domain` option isn't provided. We still recommend supplying your own domains based on the distribution of your users. 77 | 78 | The included default domains are: yahoo.com, google.com, hotmail.com, gmail.com, me.com, aol.com, mac.com, live.com, comcast.net, googlemail.com, msn.com, hotmail.co.uk, yahoo.co.uk, facebook.com, verizon.net, sbcglobal.net, att.net, gmx.com, and mail.com. 79 | 80 | Customization 81 | ------------- 82 | The Mailcheck jQuery plugin wraps Kicksend.mailcheck. The prime candidates for customization are the methods 83 | `Kicksend.mailcheck.findClosestDomain` and `Kicksend.mailcheck.stringDistance`. 84 | 85 | Mailcheck currently uses the [sift3](http://siderite.blogspot.com/2007/04/super-fast-and-accurate-string-distance.html) string similarity algorithm by [Siderite](http://siderite.blogspot.com/). 86 | 87 | Since Mailcheck runs client side, keep in mind file size, memory usage, and performance. 88 | 89 | Tests 90 | ----- 91 | 92 | Mailcheck is tested with [Jasmine](http://pivotal.github.com/jasmine/). Load `spec/spec_runner.html` in your browser to run the tests. 93 | 94 | Contributing 95 | ------------ 96 | 97 | Let's make Mailcheck awesome. We're on the lookout for maintainers and [contributors](https://github.com/Kicksend/mailcheck/contributors). 98 | 99 | And do send in those pull requests! To get them accepted, please: 100 | 101 | - Test your code. Add test cases to `spec/mailcheckSpec.js`, and run it across browsers (yes, including IE). 102 | 103 | - Minify the plugin. [Google's Closure Compiler](http://closure-compiler.appspot.com/home) is a good one. 104 | 105 | Upcoming features, bugs and feature requests are managed in Issues. 106 | 107 | Who's using Mailcheck? 108 | ----------------------- 109 | 110 | - [Kicksend](http://kicksend.com/) 111 | - [Dropbox](http://dropbox.com/) 112 | - [Flotype](http://flotype.com/) 113 | - [Kippt](http://kippt.com/) 114 | - [Minecraft](http://minecraft.net/) 115 | - [Prispy](http://prispy.com/) 116 | - [SB Nation](http://sbnation.com/) 117 | - [Show Space](http://show-space.com/) 118 | - [The Verge](http://theverge.com/) 119 | - [Uber](http://uber.com/) 120 | 121 | Do you use Mailcheck? [Tweet me](http://twitter.com/derrickko) your link. 122 | 123 | Related links 124 | ------------- 125 | 126 | - [Two ways to reduce bounced welcome emails](http://blog.postmarkapp.com/post/19685472721/two-ways-to-reduce-bounced-welcome-emails) by [Postmark](http://postmark.com) 127 | 128 | - [MooTools port](https://github.com/DimitarChristoff/mailcheck) by [Dimitar Christoff](https://github.com/DimitarChristoff) 129 | 130 | - [WordPress e-Commerce Plugin](http://wordpress.org/extend/plugins/e-commerce-mailcheck/) 131 | 132 | - [Mailcheck for Drupal](https://github.com/RiverDonkey/Mailchecker) 133 | 134 | Author 135 | ------- 136 | 137 | Derrick Ko ([@derrickko](http://twitter.com/derrickko)) 138 | 139 | License 140 | ------- 141 | 142 | Copyright (c) 2012 [Receivd, Inc.](http://kicksend.com) 143 | 144 | Licensed under the MIT License. 145 | -------------------------------------------------------------------------------- /stylesheets/style.css: -------------------------------------------------------------------------------- 1 | /*@import url("css/hardboiledmediaqueries.0.9.css");*/ 2 | /** Put your custom @font-face font declarations in here ****************/ 3 | /**/ 4 | /** Typography ****************/ 5 | /* line 13, ../sass/style.scss */ 6 | h1, h2, h3, h4, h5, h6 { 7 | font-weight: bold; 8 | } 9 | 10 | /* This helps to identify headings at the initial build stage, so I thought it'd be useful to have it */ 11 | /* line 14, ../sass/style.scss */ 12 | .alert { 13 | background: red; 14 | color: white; 15 | } 16 | 17 | /* 'alert' has a basic style, since it's useful to have it standing out for testing purposes.*/ 18 | /* line 15, ../sass/style.scss */ 19 | select, input, textarea, button { 20 | font: 99% sans-serif; 21 | } 22 | 23 | /* These selection declarations have to be separate 24 | No text-shadow: twitter.com/miketaylr/status/12228805301 25 | Also: hot pink! */ 26 | /* line 19, ../sass/style.scss */ 27 | ::-moz-selection { 28 | background: #FEA357; 29 | color: #fff; 30 | text-shadow: none; 31 | } 32 | 33 | /* line 20, ../sass/style.scss */ 34 | ::selection { 35 | background: #FEA357; 36 | color: #fff; 37 | text-shadow: none; 38 | } 39 | 40 | /* line 21, ../sass/style.scss */ 41 | body { 42 | /* #444 looks better than black*/ 43 | color: #444; 44 | font-size: 62.5%; 45 | /*allows for Em usage. 1em = 10px and so on*/ 46 | } 47 | 48 | /* line 25, ../sass/style.scss */ 49 | button, input[type="button"], input[type="reset"], input[type="submit"] { 50 | cursor: pointer; 51 | } 52 | 53 | /* line 26, ../sass/style.scss */ 54 | button[disabled], input[disabled] { 55 | cursor: default; 56 | } 57 | 58 | /* line 27, ../sass/style.scss */ 59 | *, *::after, *::before { 60 | -moz-box-sizing: border-box; 61 | -webkit-box-sizing: border-box; 62 | box-sizing: border-box; 63 | } 64 | 65 | /* line 28, ../sass/style.scss */ 66 | textarea { 67 | resize: vertical; 68 | } 69 | 70 | /* These rather presentational classes are generated by WordPress, so it's useful to have some styles for them. Edit as you see fit. More info: http://codex.wordpress.org/CSS */ 71 | /* line 30, ../sass/style.scss */ 72 | .alignnone { 73 | margin: 5px 20px 20px 0; 74 | } 75 | 76 | /* line 31, ../sass/style.scss */ 77 | .aligncenter, div.aligncenter { 78 | display: block; 79 | margin: 5px auto 5px auto; 80 | } 81 | 82 | /* line 32, ../sass/style.scss */ 83 | .alignright { 84 | float: right; 85 | margin: 5px 0 20px 20px; 86 | } 87 | 88 | /* line 33, ../sass/style.scss */ 89 | .alignleft { 90 | float: left; 91 | margin: 5px 20px 20px 0; 92 | } 93 | 94 | /* line 34, ../sass/style.scss */ 95 | .aligncenter { 96 | display: block; 97 | margin: 5px auto 5px auto; 98 | } 99 | 100 | /* line 35, ../sass/style.scss */ 101 | a img.alignright { 102 | float: right; 103 | margin: 5px 0 20px 20px; 104 | } 105 | 106 | /* line 36, ../sass/style.scss */ 107 | a img.alignnone { 108 | margin: 5px 20px 20px 0; 109 | } 110 | 111 | /* line 37, ../sass/style.scss */ 112 | a img.alignleft { 113 | float: left; 114 | margin: 5px 20px 20px 0; 115 | } 116 | 117 | /* line 38, ../sass/style.scss */ 118 | a img.aligncenter { 119 | display: block; 120 | margin-left: auto; 121 | margin-right: auto; 122 | } 123 | 124 | /* line 39, ../sass/style.scss */ 125 | .wp-caption { 126 | background: #fff; 127 | border: 1px solid #f0f0f0; 128 | max-width: 96%; 129 | padding: 5px 3px 10px; 130 | text-align: center; 131 | } 132 | 133 | /* line 40, ../sass/style.scss */ 134 | .wp-caption.alignnone { 135 | margin: 5px 20px 20px 0; 136 | } 137 | 138 | /* line 41, ../sass/style.scss */ 139 | .wp-caption.alignleft { 140 | margin: 5px 20px 20px 0; 141 | } 142 | 143 | /* line 42, ../sass/style.scss */ 144 | .wp-caption.alignright { 145 | margin: 5px 0 20px 20px; 146 | } 147 | 148 | /* line 43, ../sass/style.scss */ 149 | .wp-caption img { 150 | border: 0 none; 151 | height: auto; 152 | margin: 0; 153 | max-width: 98.5%; 154 | padding: 0; 155 | width: auto; 156 | } 157 | 158 | /* line 44, ../sass/style.scss */ 159 | .wp-caption p.wp-caption-text { 160 | font-size: 11px; 161 | line-height: 17px; 162 | margin: 0; 163 | padding: 0 4px 5px; 164 | } 165 | 166 | /* line 45, ../sass/style.scss */ 167 | br.clear { 168 | clear: both; 169 | display: block; 170 | height: 1px; 171 | margin: -1px 0 0 0; 172 | } 173 | 174 | /* Use this br class to clear your floated columns */ 175 | /*Micro-Clearfix via http://nicolasgallagher.com/micro-clearfix-hack/ */ 176 | /* For modern browsers */ 177 | /* line 48, ../sass/style.scss */ 178 | .cf:before, .cf:after { 179 | content: ""; 180 | display: table; 181 | } 182 | 183 | /* line 49, ../sass/style.scss */ 184 | .cf:after { 185 | clear: both; 186 | } 187 | 188 | /* For IE 6/7 (trigger hasLayout) */ 189 | /* line 51, ../sass/style.scss */ 190 | .lte7 .cf { 191 | zoom: 1; 192 | } 193 | 194 | /* line 52, ../sass/style.scss */ 195 | input:required { 196 | -moz-box-shadow: none; 197 | -webkit-box-shadow: none; 198 | box-shadow: none; 199 | } 200 | 201 | /* line 57, ../sass/style.scss */ 202 | html { 203 | font-size: 62.5%; 204 | } 205 | 206 | /* line 58, ../sass/style.scss */ 207 | body { 208 | font-size: 16px; 209 | font-size: 1.6rem; 210 | } 211 | 212 | /* =16px */ 213 | /* line 59, ../sass/style.scss */ 214 | #container { 215 | font-size: 1.6rem; 216 | margin: 0 auto; 217 | width: 960px; 218 | } 219 | 220 | /** WordPress Nav Menu Selectors ****************/ 221 | /*Disable current page/menu link*/ 222 | /* line 70, ../sass/style.scss */ 223 | nav .current-menu-item > a { 224 | pointer-events: none; 225 | cursor: default; 226 | } 227 | -------------------------------------------------------------------------------- /loop.php: -------------------------------------------------------------------------------- 1 | 2 | max_num_pages > 1 ) : ?> 3 | 4 | 5 | 6 | 7 | 8 | 9 |
    10 |

    Not Found

    11 |

    Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.

    12 | 13 |
    14 | 15 | 16 | 17 | 18 | 19 | 20 | ID ) ) || in_category( _x( 'gallery', 'gallery category slug', 'twentyten' ) ) ) : ?> 21 |
    role="article"> 22 |
    23 |

    24 |
    25 | 26 |
    27 | 28 | 29 | 30 | 31 | $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => 999 ) ); 33 | if ( $images ) : 34 | $total_images = count( $images ); 35 | $image = array_shift( $images ); 36 | $image_img_tag = wp_get_attachment_image( $image->ID, 'thumbnail' ); 37 | ?> 38 | 39 | 40 |

    %2$s photos.', 'href="' . get_permalink() . '" title="' . sprintf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ) . '" rel="bookmark"', number_format_i18n( $total_images ) ); ?>

    41 | 42 | 43 | 44 | 54 |
    55 | 56 | ID ) ) || in_category( _x( 'asides', 'asides category slug', 'twentyten' ) ) ) : ?> 57 |
    role="article"> 58 | 59 | 60 | 61 | 62 | 63 | 64 |
    65 | " pubdate> 66 | 67 | | 68 | 69 | 70 |
    71 |
    72 | 73 | 74 | 75 |
    > 76 |
    77 |

    78 | " pubdate> 79 | 80 |
    81 | 82 | 83 | 84 | 85 | '' . 'Pages:', 'after' => '' ) ); ?> 86 | 87 |
    88 | 89 | | 90 | 91 | 95 | | 96 | 97 | 98 | 99 | 100 | 101 |
    102 |
    103 | 104 | 105 | 106 | 107 | 108 | 109 | max_num_pages > 1 ) : ?> 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */ 2 | 3 | /*Corrects block display not defined in IE6/7/8/9 & FF3*/ 4 | article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block;} 5 | /*Corrects inline-block display not defined in IE6/7/8/9 & FF3*/ 6 | audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} 7 | /*Prevents modern browsers from displaying 'audio' without controls. Remove excess height in iOS5 devices*/ 8 | audio:not([controls]){display:none;height:0;} 9 | /*Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4. No IE6 support*/ 10 | [hidden]{display:none;} 11 | /*1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units: http://clagnut.com/blog/348/#c790 2. Prevents iOS text size adjust after orientation change, without disabling user zoom: www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/*/ 12 | html{font-size:100%;/*1*/-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} 13 | /*Addresses font-family inconsistency between 'textarea' and other form elements.*/ 14 | html,button,input,select,textarea{font-family:sans-serif;} 15 | /*Addresses margins handled incorrectly in IE6/7*/ 16 | body{margin:0;} 17 | /*Addresses outline displayed oddly in Chrome*/ 18 | a:focus{outline:thin dotted;} 19 | /*Improves readability when focused and also mouse hovered in all browsers. people.opera.com/patrickl/experiments/keyboard/test*/ 20 | a:hover,a:active{outline:0;} 21 | /*Addresses font sizes and margins set differently in IE6/7. Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5*/ 22 | h1{font-size:2em;margin:0.67em 0;} 23 | h2{font-size:1.5em;margin:0.83em 0;} 24 | h3{font-size:1.17em;margin:1em 0;} 25 | h4{font-size:1em;margin:1.33em 0;} 26 | h5{font-size:0.83em;margin:1.67em 0;} 27 | h6{font-size:0.75em;margin:2.33em 0;} 28 | /*Addresses styling not present in IE7/8/9, S5, Chrome*/ 29 | abbr[title]{border-bottom: 1px dotted;} 30 | /*Addresses style set to 'bolder' in FF3+, S4/5, Chrome*/ 31 | b,strong{font-weight:bold;} 32 | blockquote{margin:1em 40px;} 33 | /*Addresses styling not present in S5, Chrome*/ 34 | dfn{font-style:italic;} 35 | /*Addresses styling not present in IE6/7/8/9*/ 36 | mark{background:#ff0;color:#000;} 37 | /*Addresses margins set differently in IE6/7*/ 38 | p,pre{margin:1em 0;} 39 | /*Corrects font family set oddly in IE6, S4/5, Chrome. en.wikipedia.org/wiki/User:Davidgothberg/Test59*/ 40 | pre,code,kbd,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em;} 41 | /*Improves readability of pre-formatted text in all browsers*/ 42 | pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word;} 43 | /*1. Addresses CSS quotes not supported in IE6/7 2. Addresses quote property not supported in S4*/ 44 | q{quotes:none;} 45 | q:before,q:after{content:'';content:none;} 46 | small{font-size:75%;} 47 | /* Prevents sub and sup affecting line-height in all browsers: gist.github.com/413930*/ 48 | sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;} 49 | sup{top:-0.5em;} 50 | sub{bottom:-0.25em;} 51 | /*Addresses margins set differently in IE6/7*/ 52 | dl,menu,ol,ul{margin:1em 0;} 53 | dd{margin: 0 0 0 40px;} 54 | /*Addresses paddings set differently in IE6/7*/ 55 | menu,ol,ul{padding: 0 0 0 40px;} 56 | /*Corrects list images handled incorrectly in IE7*/ 57 | nav ul,nav ol{list-style:none;list-style-image:none;} 58 | /*1. Removes border when inside 'a' element in IE6/7/8/9, FF3 2. Improves image quality when scaled in IE7: code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/*/ 59 | img{border: 0;-ms-interpolation-mode: bicubic;} 60 | /*Corrects overflow displayed oddly in IE9*/ 61 | svg:not(:root){overflow:hidden;} 62 | /*Addresses margin not present in IE6/7/8/9, S5, O11*/ 63 | figure{margin:0;} 64 | /*Corrects margin displayed oddly in IE6/7*/ 65 | form{margin:0;} 66 | /*Define consistent border, margin, and padding*/ 67 | fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;} 68 | /*1. Corrects color not being inherited in IE6/7/8/9 2. Corrects text not wrapping in FF3 3. Corrects alignment displayed oddly in IE6/7*/ 69 | legend{border:0;padding:0;white-space:normal;*margin-left:-7px;} 70 | /*1. Corrects font size not being inherited in all browsers 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome 3. Improves appearance and consistency in all browsers*/ 71 | button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;} 72 | /*Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet*/ 73 | button,input{line-height:normal;} 74 | /*1. Improves usability and consistency of cursor style between image-type 'input' and others 2. Corrects inability to style clickable 'input' types in iOS 3. Removes inner spacing in IE7 without affecting normal text inputs*/ 75 | button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible;} 76 | /*Re-set default cursor for disabled elements*/ 77 | button[disabled],input[disabled]{cursor:default;} 78 | /*1. Addresses box sizing set to content-box in IE8/9 2. Removes excess padding in IE8/9 3. Removes excess padding in IE7*/ 79 | input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px;} 80 | /*1. Addresses appearance set to searchfield in S5, Chrome 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof)*/ 81 | input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;} 82 | /*Removes inner padding and search cancel button in S5, Chrome on OS X*/ 83 | input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} 84 | /*Removes inner padding and border in FF3+ www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/*/ 85 | button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;} 86 | /*1. Removes default vertical scrollbar in IE6/7/8/9 2. Improves readability and alignment in all browsers*/ 87 | textarea{overflow:auto;vertical-align:top;} 88 | /*Remove most spacing between table cells*/ 89 | table{border-collapse:collapse;border-spacing:0;} 90 | 91 | /*Michael's additions*/ 92 | /* change border colour to suit your needs */ 93 | hr{display:block;height:1px;border:0;border-top:1px solid #cccccc;margin:1em 0;padding:0;} 94 | em{font-style:italic;} 95 | /* Gets rid of IE's blue borders */ 96 | a img{border:none;} 97 | html {overflow-y:scroll;-webkit-font-smoothing:antialiased;} 98 | ol{list-style-type:decimal;} 99 | img, embed, object, video {max-width: 100%;} -------------------------------------------------------------------------------- /js/mailcheck/src/jquery.mailcheck.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Mailcheck https://github.com/Kicksend/mailcheck 3 | * Author 4 | * Derrick Ko (@derrickko) 5 | * 6 | * License 7 | * Copyright (c) 2012 Receivd, Inc. 8 | * 9 | * Licensed under the MIT License. 10 | * 11 | * v 1.0.3 12 | */ 13 | 14 | (function($){ 15 | $.fn.mailcheck = function(opts, optsAlt) { 16 | var defaultDomains = ["yahoo.com", "google.com", "hotmail.com", "gmail.com", "me.com", "aol.com", "mac.com", 17 | "live.com", "comcast.net", "googlemail.com", "msn.com", "hotmail.co.uk", "yahoo.co.uk", 18 | "facebook.com", "verizon.net", "sbcglobal.net", "att.net", "gmx.com", "mail.com"]; 19 | var defaultTopLevelDomains = ["co.uk", "com", "net", "org", "info", "edu", "gov", "mil"]; 20 | 21 | 22 | if (typeof opts === 'object' && optsAlt === undefined) { 23 | // only opts is passed in 24 | opts.domains = opts.domains || defaultDomains; 25 | } else { 26 | // domains are passed in as opts 27 | var domains = opts; 28 | opts = optsAlt; 29 | opts.domains = domains || defaultDomains; 30 | } 31 | opts.topLevelDomains = opts.topLevelDomains || defaultTopLevelDomains; 32 | opts.distanceFunction = Kicksend.sift3Distance; 33 | 34 | var result = Kicksend.mailcheck.suggest(encodeURI(this.val()), opts.domains, opts.topLevelDomains, opts.distanceFunction); 35 | if (result) { 36 | if (opts.suggested) { 37 | opts.suggested(this, result); 38 | } 39 | } else { 40 | if (opts.empty) { 41 | opts.empty(this); 42 | } 43 | } 44 | }; 45 | })(jQuery); 46 | 47 | var Kicksend = { 48 | mailcheck : { 49 | threshold: 3, 50 | 51 | suggest: function(email, domains, topLevelDomains, distanceFunction) { 52 | email = email.toLowerCase(); 53 | 54 | var emailParts = this.splitEmail(email); 55 | 56 | var closestDomain = this.findClosestDomain(emailParts.domain, domains, distanceFunction); 57 | 58 | if (closestDomain) { 59 | if (closestDomain != emailParts.domain) { 60 | // The email address closely matches one of the supplied domains; return a suggestion 61 | return { address: emailParts.address, domain: closestDomain, full: emailParts.address + "@" + closestDomain }; 62 | } 63 | } else { 64 | // The email address does not closely match one of the supplied domains 65 | var closestTopLevelDomain = this.findClosestDomain(emailParts.topLevelDomain, topLevelDomains); 66 | if (emailParts.domain && closestTopLevelDomain && closestTopLevelDomain != emailParts.topLevelDomain) { 67 | // The email address may have a mispelled top-level domain; return a suggestion 68 | var domain = emailParts.domain; 69 | closestDomain = domain.substring(0, domain.lastIndexOf(emailParts.topLevelDomain)) + closestTopLevelDomain; 70 | return { address: emailParts.address, domain: closestDomain, full: emailParts.address + "@" + closestDomain }; 71 | } 72 | } 73 | /* The email address exactly matches one of the supplied domains, does not closely 74 | * match any domain and does not appear to simply have a mispelled top-level domain, 75 | * or is an invalid email address; do not return a suggestion. 76 | */ 77 | return false; 78 | }, 79 | 80 | findClosestDomain: function(domain, domains, distanceFunction) { 81 | var dist; 82 | var minDist = 99; 83 | var closestDomain = null; 84 | 85 | if (!domain || !domains) { 86 | return false; 87 | } 88 | if(!distanceFunction) { 89 | distanceFunction = this.sift3Distance; 90 | } 91 | 92 | for (var i = 0; i < domains.length; i++) { 93 | if (domain === domains[i]) { 94 | return domain; 95 | } 96 | dist = distanceFunction(domain, domains[i]); 97 | if (dist < minDist) { 98 | minDist = dist; 99 | closestDomain = domains[i]; 100 | } 101 | } 102 | 103 | if (minDist <= this.threshold && closestDomain !== null) { 104 | return closestDomain; 105 | } else { 106 | return false; 107 | } 108 | }, 109 | 110 | sift3Distance: function(s1, s2) { 111 | // sift3: http://siderite.blogspot.com/2007/04/super-fast-and-accurate-string-distance.html 112 | if (s1 == null || s1.length === 0) { 113 | if (s2 == null || s2.length === 0) { 114 | return 0; 115 | } else { 116 | return s2.length; 117 | } 118 | } 119 | 120 | if (s2 == null || s2.length === 0) { 121 | return s1.length; 122 | } 123 | 124 | var c = 0; 125 | var offset1 = 0; 126 | var offset2 = 0; 127 | var lcs = 0; 128 | var maxOffset = 5; 129 | 130 | while ((c + offset1 < s1.length) && (c + offset2 < s2.length)) { 131 | if (s1.charAt(c + offset1) == s2.charAt(c + offset2)) { 132 | lcs++; 133 | } else { 134 | offset1 = 0; 135 | offset2 = 0; 136 | for (var i = 0; i < maxOffset; i++) { 137 | if ((c + i < s1.length) && (s1.charAt(c + i) == s2.charAt(c))) { 138 | offset1 = i; 139 | break; 140 | } 141 | if ((c + i < s2.length) && (s1.charAt(c) == s2.charAt(c + i))) { 142 | offset2 = i; 143 | break; 144 | } 145 | } 146 | } 147 | c++; 148 | } 149 | return (s1.length + s2.length) /2 - lcs; 150 | }, 151 | 152 | splitEmail: function(email) { 153 | var parts = email.split('@'); 154 | 155 | if (parts.length < 2) { 156 | return false; 157 | } 158 | 159 | for (var i = 0; i < parts.length; i++) { 160 | if (parts[i] === '') { 161 | return false; 162 | } 163 | } 164 | 165 | var domain = parts.pop(); 166 | var domainParts = domain.split('.'); 167 | var tld = ''; 168 | 169 | if (domainParts.length == 0) { 170 | // The address does not have a top-level domain 171 | return false; 172 | } else if (domainParts.length == 1) { 173 | // The address has only a top-level domain (valid under RFC) 174 | tld = domainParts[0]; 175 | } else { 176 | // The address has a domain and a top-level domain 177 | for (var i = 1; i < domainParts.length; i++) { 178 | tld += domainParts[i] + '.'; 179 | } 180 | if (domainParts.length >= 2) { 181 | tld = tld.substring(0, tld.length - 1); 182 | } 183 | } 184 | 185 | return { 186 | topLevelDomain: tld, 187 | domain: domain, 188 | address: parts.join('@') 189 | } 190 | } 191 | } 192 | }; 193 | -------------------------------------------------------------------------------- /meta/example-functions.php: -------------------------------------------------------------------------------- 1 | 'test_metabox', 25 | 'title' => 'Test Metabox', 26 | 'pages' => array( 'page', ), // Post type 27 | 'context' => 'normal', 28 | 'priority' => 'high', 29 | 'show_names' => true, // Show field names on the left 30 | 'fields' => array( 31 | array( 32 | 'name' => 'Test Text', 33 | 'desc' => 'field description (optional)', 34 | 'id' => $prefix . 'test_text', 35 | 'type' => 'text', 36 | ), 37 | array( 38 | 'name' => 'Test Text Small', 39 | 'desc' => 'field description (optional)', 40 | 'id' => $prefix . 'test_textsmall', 41 | 'type' => 'text_small', 42 | ), 43 | array( 44 | 'name' => 'Test Text Medium', 45 | 'desc' => 'field description (optional)', 46 | 'id' => $prefix . 'test_textmedium', 47 | 'type' => 'text_medium', 48 | ), 49 | array( 50 | 'name' => 'Test Date Picker', 51 | 'desc' => 'field description (optional)', 52 | 'id' => $prefix . 'test_textdate', 53 | 'type' => 'text_date', 54 | ), 55 | array( 56 | 'name' => 'Test Date Picker (UNIX timestamp)', 57 | 'desc' => 'field description (optional)', 58 | 'id' => $prefix . 'test_textdate_timestamp', 59 | 'type' => 'text_date_timestamp', 60 | ), 61 | array( 62 | 'name' => 'Test Date/Time Picker Combo (UNIX timestamp)', 63 | 'desc' => 'field description (optional)', 64 | 'id' => $prefix . 'test_datetime_timestamp', 65 | 'type' => 'text_datetime', 66 | ), 67 | array( 68 | 'name' => 'Test Time', 69 | 'desc' => 'field description (optional)', 70 | 'id' => $prefix . 'test_time', 71 | 'type' => 'text_time', 72 | ), 73 | array( 74 | 'name' => 'Test Money', 75 | 'desc' => 'field description (optional)', 76 | 'id' => $prefix . 'test_textmoney', 77 | 'type' => 'text_money', 78 | ), 79 | array( 80 | 'name' => 'Test Color Picker', 81 | 'desc' => 'field description (optional)', 82 | 'id' => $prefix . 'test_colorpicker', 83 | 'type' => 'colorpicker', 84 | 'std' => '#ffffff' 85 | ), 86 | array( 87 | 'name' => 'Test Text Area', 88 | 'desc' => 'field description (optional)', 89 | 'id' => $prefix . 'test_textarea', 90 | 'type' => 'textarea', 91 | ), 92 | array( 93 | 'name' => 'Test Text Area Small', 94 | 'desc' => 'field description (optional)', 95 | 'id' => $prefix . 'test_textareasmall', 96 | 'type' => 'textarea_small', 97 | ), 98 | array( 99 | 'name' => 'Test Text Area Code', 100 | 'desc' => 'field description (optional)', 101 | 'id' => $prefix . 'test_textarea_code', 102 | 'type' => 'textarea_code', 103 | ), 104 | array( 105 | 'name' => 'Test Title Weeeee', 106 | 'desc' => 'This is a title description', 107 | 'id' => $prefix . 'test_title', 108 | 'type' => 'title', 109 | ), 110 | array( 111 | 'name' => 'Test Select', 112 | 'desc' => 'field description (optional)', 113 | 'id' => $prefix . 'test_select', 114 | 'type' => 'select', 115 | 'options' => array( 116 | array( 'name' => 'Option One', 'value' => 'standard', ), 117 | array( 'name' => 'Option Two', 'value' => 'custom', ), 118 | array( 'name' => 'Option Three', 'value' => 'none', ), 119 | ), 120 | ), 121 | array( 122 | 'name' => 'Test Radio inline', 123 | 'desc' => 'field description (optional)', 124 | 'id' => $prefix . 'test_radio_inline', 125 | 'type' => 'radio_inline', 126 | 'options' => array( 127 | array( 'name' => 'Option One', 'value' => 'standard', ), 128 | array( 'name' => 'Option Two', 'value' => 'custom', ), 129 | array( 'name' => 'Option Three', 'value' => 'none', ), 130 | ), 131 | ), 132 | array( 133 | 'name' => 'Test Radio', 134 | 'desc' => 'field description (optional)', 135 | 'id' => $prefix . 'test_radio', 136 | 'type' => 'radio', 137 | 'options' => array( 138 | array( 'name' => 'Option One', 'value' => 'standard', ), 139 | array( 'name' => 'Option Two', 'value' => 'custom', ), 140 | array( 'name' => 'Option Three', 'value' => 'none', ), 141 | ), 142 | ), 143 | array( 144 | 'name' => 'Test Taxonomy Radio', 145 | 'desc' => 'Description Goes Here', 146 | 'id' => $prefix . 'text_taxonomy_radio', 147 | 'type' => 'taxonomy_radio', 148 | 'taxonomy' => '', // Taxonomy Slug 149 | ), 150 | array( 151 | 'name' => 'Test Taxonomy Select', 152 | 'desc' => 'Description Goes Here', 153 | 'id' => $prefix . 'text_taxonomy_select', 154 | 'type' => 'taxonomy_select', 155 | 'taxonomy' => '', // Taxonomy Slug 156 | ), 157 | array( 158 | 'name' => 'Test Checkbox', 159 | 'desc' => 'field description (optional)', 160 | 'id' => $prefix . 'test_checkbox', 161 | 'type' => 'checkbox', 162 | ), 163 | array( 164 | 'name' => 'Test Multi Checkbox', 165 | 'desc' => 'field description (optional)', 166 | 'id' => $prefix . 'test_multicheckbox', 167 | 'type' => 'multicheck', 168 | 'options' => array( 169 | 'check1' => 'Check One', 170 | 'check2' => 'Check Two', 171 | 'check3' => 'Check Three', 172 | ), 173 | ), 174 | array( 175 | 'name' => 'Test wysiwyg', 176 | 'desc' => 'field description (optional)', 177 | 'id' => $prefix . 'test_wysiwyg', 178 | 'type' => 'wysiwyg', 179 | 'options' => array( 'textarea_rows' => 5, ), 180 | ), 181 | array( 182 | 'name' => 'Test Image', 183 | 'desc' => 'Upload an image or enter an URL.', 184 | 'id' => $prefix . 'test_image', 185 | 'type' => 'file', 186 | ), 187 | ), 188 | ); 189 | 190 | $meta_boxes[] = array( 191 | 'id' => 'about_page_metabox', 192 | 'title' => 'About Page Metabox', 193 | 'pages' => array( 'page', ), // Post type 194 | 'context' => 'normal', 195 | 'priority' => 'high', 196 | 'show_names' => true, // Show field names on the left 197 | 'show_on' => array( 'key' => 'id', 'value' => array( 2, ), ), // Specific post IDs to display this metabox 198 | 'fields' => array( 199 | array( 200 | 'name' => 'Test Text', 201 | 'desc' => 'field description (optional)', 202 | 'id' => $prefix . 'test_text', 203 | 'type' => 'text', 204 | ), 205 | ) 206 | ); 207 | 208 | // Add other metaboxes as needed 209 | 210 | return $meta_boxes; 211 | } 212 | 213 | add_action( 'init', 'cmb_initialize_cmb_meta_boxes', 9999 ); 214 | /** 215 | * Initialize the metabox class. 216 | */ 217 | function cmb_initialize_cmb_meta_boxes() { 218 | 219 | if ( ! class_exists( 'cmb_Meta_Box' ) ) 220 | require_once 'init.php'; 221 | 222 | } -------------------------------------------------------------------------------- /htaccess file/.htaccess: -------------------------------------------------------------------------------- 1 | # Force the latest IE version, in various cases when it may fall back to IE7 mode 2 | # github.com/rails/rails/commit/123eb25#commitcomment-118920 3 | # Use ChromeFrame if it's installed for a better experience for the poor IE folk 4 | 5 | 6 | BrowserMatch MSIE ie 7 | Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie 8 | 9 | 10 | 11 | 12 | # Because X-UA-Compatible isn't sent to non-IE (to save header bytes), 13 | # We need to inform proxies that content changes based on UA 14 | Header append Vary User-Agent 15 | # Cache control is set only if mod_headers is enabled, so that's unncessary to declare 16 | 17 | 18 | # allow access from all domains for webfonts 19 | # alternatively you could only whitelist 20 | # your subdomains like "sub.domain.com" 21 | 22 | 23 | 24 | Header set Access-Control-Allow-Origin "*" 25 | 26 | 27 | 28 | # JavaScript 29 | # Normalize to standard type (it's sniffed in IE anyways) 30 | # tools.ietf.org/html/rfc4329#section-7.2 31 | AddType application/javascript js 32 | 33 | # Audio 34 | AddType audio/ogg oga ogg 35 | AddType audio/mp4 m4a 36 | 37 | # video 38 | AddType video/ogg ogv 39 | AddType video/mp4 mp4 40 | AddType video/webm webm 41 | 42 | # Proper svg serving. Required for svg webfonts on iPad 43 | # twitter.com/FontSquirrel/status/14855840545 44 | AddType image/svg+xml svg svgz 45 | AddEncoding gzip svgz 46 | 47 | # webfonts 48 | AddType application/vnd.ms-fontobject eot 49 | AddType application/x-font-ttf ttf ttc 50 | AddType font/opentype otf 51 | AddType application/x-font-woff woff 52 | 53 | # assorted types 54 | AddType image/vnd.microsoft.icon ico 55 | AddType image/webp webp 56 | AddType text/cache-manifest appcache manifest 57 | AddType text/x-component htc 58 | AddType application/x-chrome-extension crx 59 | AddType application/x-opera-extension oex 60 | AddType application/x-xpinstall xpi 61 | AddType text/x-vcard vcf 62 | 63 | 64 | # ---------------------------------------------------------------------- 65 | # gzip compression 66 | # ---------------------------------------------------------------------- 67 | 68 | 69 | 70 | 71 | # force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/ 72 | 73 | 74 | SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s,?\s(gzip|deflate)?|X{4,13}|~{4,13}|-{4,13})$ HAVE_Accept-Encoding 75 | RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding 76 | 77 | 78 | # html, txt, css, js, json, xml, htc: 79 | 80 | FilterDeclare COMPRESS 81 | FilterProvider COMPRESS DEFLATE resp=Content-Type /text/(html|css|javascript|plain|x(ml|-component))/ 82 | FilterProvider COMPRESS DEFLATE resp=Content-Type /application/(javascript|json|xml|x-javascript)/ 83 | FilterChain COMPRESS 84 | FilterProtocol COMPRESS change=yes;byteranges=no 85 | 86 | 87 | 88 | # Legacy versions of Apache 89 | AddOutputFilterByType DEFLATE text/html text/plain text/css application/json 90 | AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript 91 | AddOutputFilterByType DEFLATE text/xml application/xml text/x-component 92 | 93 | 94 | # webfonts and svg: 95 | 96 | SetOutputFilter DEFLATE 97 | 98 | 99 | 100 | # these are pretty far-future expires headers 101 | # they assume you control versioning with cachebusting query params like 102 | # @emaildomain.con').mailcheck({ 63 | suggested:suggestedSpy, 64 | empty:emptySpy, 65 | domains:domains 66 | }); 67 | expect(suggestedSpy.mostRecentCall.args[1].address).not.toMatch(/ 243 | 244 | ",a,""].join(""),k.id=h,m.innerHTML+=f,m.appendChild(k),l||g.appendChild(m),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e});var J=function(a,c){var d=a.join(""),f=c.length;y(d,function(a,c){var d=b.styleSheets[b.styleSheets.length-1],g=d?d.cssRules&&d.cssRules[0]?d.cssRules[0].cssText:d.cssText||"":"",h=a.childNodes,i={};while(f--)i[h[f].id]=h[f];e.csstransforms3d=(i.csstransforms3d&&i.csstransforms3d.offsetLeft)===9&&i.csstransforms3d.offsetHeight===3,e.generatedcontent=(i.generatedcontent&&i.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(g)&&g.indexOf(c.split(" ")[0])===0},f,c)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",n.join("transform-3d),("),h,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',l,'";visibility:hidden}'].join("")],["fontface","csstransforms3d","generatedcontent"]);s.flexbox=function(){return I("flexOrder")},s.geolocation=function(){return!!navigator.geolocation},s.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(j.backgroundColor,"rgba")},s.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(j.backgroundColor,"rgba")||F(j.backgroundColor,"hsla")},s.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return I("backgroundSize")},s.borderimage=function(){return I("borderImage")},s.borderradius=function(){return I("borderRadius")},s.boxshadow=function(){return I("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return D("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return I("animationName")},s.csscolumns=function(){return I("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),F(j.backgroundImage,"gradient")},s.cssreflections=function(){return I("boxReflect")},s.csstransforms=function(){return!!I("transform")},s.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in g.style&&(a=e.csstransforms3d),a},s.csstransitions=function(){return I("transition")},s.fontface=function(){return e.fontface},s.generatedcontent=function(){return e.generatedcontent},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)B(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)B(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,g.className+=" "+(b?"":"no-")+a,e[a]=b}return e},C(""),i=k=null,e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=y,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b){function h(a){var c,d,e,f;b.documentMode>7?(c=b.createElement("font"),c.setAttribute("data-html5shiv",a.nodeName.toLowerCase())):c=b.createElement("shiv:"+a.nodeName);while(a.firstChild)c.appendChild(a.childNodes[0]);for(d=a.attributes,e=d.length,f=0;f7?d[f][d[f].length-1]=d[f][d[f].length-1].replace(c,'$1font[data-html5shiv="$2"]'):d[f][d[f].length-1]=d[f][d[f].length-1].replace(c,"$1shiv\\:$2"),d[f]=d[f].join("}");return d.join("{")}var c=function(a,c,d){var e,f,g=b.body||(e=c.insertBefore(b.createElement("body"),c.firstChild));return g.insertBefore(a,g.firstChild),a.hidden=!0,f=(d?d(a,null):a.currentStyle).display==="none",g.removeChild(a),e&&c.removeChild(e),f}(b.createElement("a"),b.documentElement,a.getComputedStyle),d=function(a){return a.innerHTML="",a.childNodes.length===1}(b.createElement("a")),e=Date.call,f="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",g=a.html5||{};g={elements:typeof g.elements=="object"?g.elements:(g.elements||f).split(" "),shivCSS:g.shivCSS!==!1,shivMethods:g.shivMethods!==!1,shivDocument:function(a){if(!d&&!a.documentShived){var b=a.createElement,f=a.createDocumentFragment;for(var h=0,i=g.elements,j=i.length;harticle,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}",k.insertBefore(l.lastChild,k.firstChild)}return a.documentShived=!0,a}},g.type="default print",a.html5=g,g.shivDocument(b);if(d||!a.attachEvent)return;a.attachEvent("onbeforeprint",function(){if(!b.namespaces)return;b.namespaces.shiv||b.namespaces.add("shiv");var a=-1,c=RegExp("^("+g.elements.join("|")+")$","i"),d=b.getElementsByTagName("*"),e=d.length,f,i=k(j(function(a,b){var c=[],d=a.length;while(d)c.unshift(a[--d]);d=b.length;while(d)c.unshift(b[--d]);c.sort(function(a,b){return a.sourceIndex-b.sourceIndex}),d=c.length;while(d)c[--d]=c[d].styleSheet;return c}(b.getElementsByTagName("style"),b.getElementsByTagName("link"))));while(++a