From 09d393487531c99be70002977c5068c803d8c143 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Thu, 23 Jan 2014 13:46:18 +0100 Subject: [PATCH 01/62] OptionTree 2.2.1 --- option-tree/assets/css/ot-admin.css | 2 +- option-tree/ot-loader.php | 4 ++-- option-tree/readme.txt | 6 +++++- option-tree/screenshot-1.png | Bin 182253 -> 0 bytes option-tree/screenshot-2.png | Bin 141957 -> 0 bytes option-tree/screenshot-3.png | Bin 89522 -> 0 bytes 6 files changed, 8 insertions(+), 4 deletions(-) delete mode 100644 option-tree/screenshot-1.png delete mode 100644 option-tree/screenshot-2.png delete mode 100644 option-tree/screenshot-3.png diff --git a/option-tree/assets/css/ot-admin.css b/option-tree/assets/css/ot-admin.css index 9781bb2..d59b5d7 100644 --- a/option-tree/assets/css/ot-admin.css +++ b/option-tree/assets/css/ot-admin.css @@ -622,7 +622,7 @@ li ul .format-setting-label { left: 13px; position: absolute; top: 30px; - z-index: 100; + z-index: 10; } .option-tree-save-layout { float: left; diff --git a/option-tree/ot-loader.php b/option-tree/ot-loader.php index e8bf54b..2d03db2 100644 --- a/option-tree/ot-loader.php +++ b/option-tree/ot-loader.php @@ -3,7 +3,7 @@ * Plugin Name: OptionTree * Plugin URI: http://wp.envato.com * Description: Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. - * Version: 2.2.0 + * Version: 2.2.1 * Author: Derek Herman * Author URI: http://valendesigns.com * License: GPLv3 @@ -142,7 +142,7 @@ private function constants() { /** * Current Version number. */ - define( 'OT_VERSION', '2.2.0' ); + define( 'OT_VERSION', '2.2.1' ); /** * For developers: Allow Unfiltered HTML in all the textareas. diff --git a/option-tree/readme.txt b/option-tree/readme.txt index 378aebc..fbfeb76 100644 --- a/option-tree/readme.txt +++ b/option-tree/readme.txt @@ -4,7 +4,7 @@ Donate link: http://bit.ly/NuXI3T Tags: admin, theme options, meta boxes, options, admin interface, ajax Requires at least: 3.5 Tested up to: 3.8 -Stable tag: 2.2.0 +Stable tag: 2.2.1 License: GPLv3 Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. @@ -41,6 +41,10 @@ Yes. OptionTree & WordPress both require PHP5. == Changelog == += 2.2.1 = +* Hotfix - Fixed a UI bug that caused the layouts input to cover the wp menu. +* Hotfix - Moved the screen shots to the WordPress SVN assets directory. + = 2.2.0 = * Added the Gallery option type. * Added the On/Off option type. diff --git a/option-tree/screenshot-1.png b/option-tree/screenshot-1.png deleted file mode 100644 index 71cfbb53f6b88fc5418a237c60b65601427e6669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182253 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黑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

&j~6-W`?Er#aoWQy+`fRT=xCt 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
%!ZYd6irLvGnN97msGPn^Bm=Rfq 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≧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
#hkKRslw+%TYEsT2Frhw6noCDn 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 I6}#yF144Y#V*mgE diff --git a/option-tree/screenshot-3.png b/option-tree/screenshot-3.png deleted file mode 100644 index b72181169b1a57b3423f9db796f7acbb55042411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89522 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 Date: Thu, 23 Jan 2014 13:56:25 +0100 Subject: [PATCH 02/62] Remove descriptions with default color values (already shown with new colorpicker) --- functions/theme-options.php | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/functions/theme-options.php b/functions/theme-options.php index 5b09695..4dc5a33 100644 --- a/functions/theme-options.php +++ b/functions/theme-options.php @@ -813,7 +813,6 @@ function custom_theme_options() { array( 'id' => 'color-accent', 'label' => 'Primary Accent Color', - 'desc' => 'Default: #e8554e', 'std' => '#e8554e', 'type' => 'colorpicker', 'section' => 'styling' @@ -822,7 +821,6 @@ function custom_theme_options() { array( 'id' => 'color-topbar', 'label' => 'Topbar Background', - 'desc' => 'Default: #222222', 'std' => '#222222', 'type' => 'colorpicker', 'section' => 'styling' @@ -831,7 +829,6 @@ function custom_theme_options() { array( 'id' => 'color-header', 'label' => 'Header Background', - 'desc' => 'Default: #f2f2f2', 'std' => '#f2f2f2', 'type' => 'colorpicker', 'section' => 'styling' @@ -855,7 +852,6 @@ function custom_theme_options() { array( 'id' => 'color-footer', 'label' => 'Footer Background', - 'desc' => 'Default: #222222', 'std' => '#222222', 'type' => 'colorpicker', 'section' => 'styling' @@ -864,7 +860,7 @@ function custom_theme_options() { array( 'id' => 'color-footer-toplink', 'label' => 'Footer Toplink Color', - 'desc' => 'Suggestion - use the same color as your primary accent color
Default: #333333', + 'desc' => 'Suggestion - use the same color as your primary accent color', 'std' => '#333333', 'type' => 'colorpicker', 'section' => 'styling' @@ -883,7 +879,6 @@ function custom_theme_options() { array( 'id' => 'color-audio', 'label' => 'Format: Audio', - 'desc' => 'Default: #69bac8', 'std' => '#69bac8', 'type' => 'colorpicker', 'section' => 'styling' @@ -891,7 +886,6 @@ function custom_theme_options() { array( 'id' => 'color-chat', 'label' => 'Format: Chat', - 'desc' => 'Default: #69bac8', 'std' => '#69bac8', 'type' => 'colorpicker', 'section' => 'styling' @@ -899,7 +893,6 @@ function custom_theme_options() { array( 'id' => 'color-gallery', 'label' => 'Format: Gallery', - 'desc' => 'Default: #7eb66f', 'std' => '#7eb66f', 'type' => 'colorpicker', 'section' => 'styling' @@ -907,7 +900,6 @@ function custom_theme_options() { array( 'id' => 'color-image', 'label' => 'Format: Image', - 'desc' => 'Default: #7eb66f', 'std' => '#7eb66f', 'type' => 'colorpicker', 'section' => 'styling' @@ -915,7 +907,6 @@ function custom_theme_options() { array( 'id' => 'color-link', 'label' => 'Format: Link', - 'desc' => 'Default: #e8554e', 'std' => '#e8554e', 'type' => 'colorpicker', 'section' => 'styling' @@ -923,7 +914,6 @@ function custom_theme_options() { array( 'id' => 'color-quote', 'label' => 'Format: Quote', - 'desc' => 'Default: #e7ba3a', 'std' => '#e7ba3a', 'type' => 'colorpicker', 'section' => 'styling' @@ -931,7 +921,6 @@ function custom_theme_options() { array( 'id' => 'color-status', 'label' => 'Format: Status', - 'desc' => 'Default: #ffa500', 'std' => '#ffa500', 'type' => 'colorpicker', 'section' => 'styling' @@ -939,7 +928,6 @@ function custom_theme_options() { array( 'id' => 'color-video', 'label' => 'Format: Video', - 'desc' => 'Default: #e8554e', 'std' => '#e8554e', 'type' => 'colorpicker', 'section' => 'styling' From 088246f5649586ef44baa51c81f061748e6a5367 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Thu, 23 Jan 2014 14:07:28 +0100 Subject: [PATCH 03/62] 2.0.9 --- changelog.txt | 6 +++++- style.css | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index c0a51c8..40fd4e0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,11 @@ Theme : Anew -Version : 2.0.8 +Version : 2.0.9 Author : Alexander "Alx" Agnarson - http://alxmedia.se +January 23 2014 - 2.0.9 +=========================================================== +- Updated to OptionTree 2.2.1 + December 28 2013 - 2.0.8 =========================================================== - Added missing "says:" language string for tabs widget diff --git a/style.css b/style.css index 1fc020a..8c5e9aa 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.0.8 +Version: 2.0.9 Description:
Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From 4acb36db563c26c027b1ac1686ccb6da0896f3c3 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 29 Jan 2014 08:38:21 +0100 Subject: [PATCH 04/62] OptionTree 2.2.2 --- option-tree/assets/css/ot-admin.css | 108 ++- option-tree/includes/ot-functions-admin.php | 6 +- .../includes/ot-functions-docs-page.php | 6 + option-tree/includes/ot-meta-box-api.php | 2 +- option-tree/includes/ot-settings-api.php | 2 +- option-tree/languages/option-tree.pot | 668 ++++++++++-------- option-tree/ot-loader.php | 4 +- option-tree/readme.txt | 10 +- 8 files changed, 453 insertions(+), 353 deletions(-) diff --git a/option-tree/assets/css/ot-admin.css b/option-tree/assets/css/ot-admin.css index d59b5d7..36f9106 100644 --- a/option-tree/assets/css/ot-admin.css +++ b/option-tree/assets/css/ot-admin.css @@ -395,7 +395,8 @@ ---------------------------------------------------*/ #option-tree-settings-api code { background-color: #f1f1f1; - color: #000; + color: #333; + font-size: 12px; } #option-tree-settings-api pre { font-size: 13px; @@ -773,16 +774,19 @@ select.option-tree-ui-select option { background: #fff; border: 1px solid #ccc; cursor: pointer; + opacity: 0.8; padding: 5px; - border-radius: 3px; -webkit-border-radius: 3px; - -moz-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; } .type-radio-image .option-tree-ui-radio-images img.option-tree-ui-radio-image-selected, .type-radio-image .option-tree-ui-radio-images img:hover { border-color: #464646; + opacity: 1; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.05); - box-shadow: 0 1px 3px rgba(0,0,0,0.05); + -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.05); + box-shadow: 0 1px 3px rgba(0,0,0,0.05); } /* -------------------------------------------------- @@ -1350,32 +1354,30 @@ ul.ot-gallery-list li img { } @media only screen { .on-off-switch { - background-color: white; - border: 1px solid #cccccc; - color: #333333; + background-color: #fff; + border: 1px solid #ccc; + color: #333; display: block; - font-family: sans-serif; font-size: 12px; font-weight: normal; height: 27px; + margin: 2px 1px; position: relative; padding: 0; text-align: center; text-transform: uppercase; width: 100px; -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; -webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); } .on-off-switch * { -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - -o-box-sizing: border-box; - box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } .on-off-switch input { position: absolute; @@ -1394,19 +1396,20 @@ ul.ot-gallery-list li img { z-index: 2; } .on-off-switch input:last-of-type + label { - color: #333333; + color: #333; } .on-off-switch input:checked + label { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + color: #333; + } + .on-off-switch input:last-of-type:checked + label { + color: #fff; } .on-off-switch input:focus + label { outline: none; } .on-off-switch .slide-button { - border: 1px solid #21759b; - border-bottom-color: #1e6a8d; - color: white; + background: #b2d27e; + border: 1px solid #7c9258; display: block; height: 29px; left: -1px; @@ -1416,49 +1419,38 @@ ul.ot-gallery-list li img { top: -1px; width: 51px; z-index: 1; - background-color: #2688b4; - background-image: -moz-linear-gradient(top, #2a95c5, #21759b); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2a95c5), to(#21759b)); - background-image: -webkit-linear-gradient(top, #2a95c5, #21759b); - background-image: -o-linear-gradient(top, #2a95c5, #21759b); - background-image: linear-gradient(to bottom, #2a95c5, #21759b); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ie-hex-str($startColor)', endColorstr='#ie-hex-str($endColor)', GradientType=0); -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); - -webkit-transition: all 0.1s ease-out; - -moz-transition: all 0.1s ease-out; - -o-transition: all 0.1s ease-out; - transition: all 0.1s ease-out; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #c8eb8e, 0 1px 0 rgba(0,0,0,.08); + -moz-box-shadow: inset 0 1px 0 #c8eb8e, 0 1px 0 rgba(0,0,0,.08); + box-shadow: inset 0 1px 0 #c8eb8e, 0 1px 0 rgba(0,0,0,.08); + -webkit-transition: all 0.2s ease-out; + -moz-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; } .on-off-switch input:last-of-type:checked ~ .slide-button { - border-color: #9b3221; - border-bottom-color: #8d2e1e; + background: #b73b27; + border-color: #7f291b; + color: #fff; left: 50px; - background-color: #b43a26; - background-image: -moz-linear-gradient(top, #c5402a, #9b3221); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#c5402a), to(#9b3221)); - background-image: -webkit-linear-gradient(top, #c5402a, #9b3221); - background-image: -o-linear-gradient(top, #c5402a, #9b3221); - background-image: linear-gradient(to bottom, #c5402a, #9b3221); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ie-hex-str($startColor)', endColorstr='#ie-hex-str($endColor)', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 rgba(229,134,119,0.6), 0 1px 0 rgba(0,0,0,.15); + -moz-box-shadow: inset 0 1px 0 rgba(229,134,119,0.6), 0 1px 0 rgba(0,0,0,.15); + box-shadow: inset 0 1px 0 rgba(229,134,119,0.6), 0 1px 0 rgba(0,0,0,.15); } +} +@media only screen and (-webkit-max-device-pixel-ratio: 2) and (max-device-width: 1280px) { .on-off-switch { - -webkit-animation: bugfix infinite 1s; - } - @-webkit-keyframes bugfix { - from { - position: relative; - } - to { - position: relative; - } + -webkit-animation: webkitSiblingBugfix infinite 1s; + } +} +@-webkit-keyframes webkitSiblingBugfix { + from { + -webkit-transform: translate3d(0, 0, 0); } + to { + -webkit-transform: translate3d(0, 0, 0); + } } /* -------------------------------------------------- diff --git a/option-tree/includes/ot-functions-admin.php b/option-tree/includes/ot-functions-admin.php index 62923b9..2683075 100644 --- a/option-tree/includes/ot-functions-admin.php +++ b/option-tree/includes/ot-functions-admin.php @@ -3389,7 +3389,7 @@ function ot_settings_view( $name, $key, $setting = array() ) {

-
' . __( 'Condition: Add a comma separated list of conditions where this field will be visible, leave empty to always show the field. Conditions can be in the form of field_name:is(value), field_name:not(value), field_name:contains(value), field_name:less_than(value), field_name:less_than_or_equal_to(value), field_name:greater_than(value), or field_name:greater_than_or_equal_to(value).', 'option-tree' ) . '
+
' . sprintf( __( 'Condition: Add a comma separated list (no spaces) of conditions in which the field will be visible, leave this setting empty to always show the field. In these examples, value is a placeholder for your condition, which can be in the form of %s.', 'option-tree' ), 'field_id:is(value), field_id:not(value), field_id:contains(value), field_id:less_than(value), field_id:less_than_or_equal_to(value), field_id:greater_than(value), or field_id:greater_than_or_equal_to(value)' ) . '
@@ -3397,7 +3397,7 @@ function ot_settings_view( $name, $key, $setting = array() ) {
-
' . __( 'Condition Operator: Choose the logical operator to compute the result of the conditions.', 'option-tree' ) . '
+
' . __( 'Operator: Choose the logical operator to compute the result of the conditions.', 'option-tree' ) . '
").find("select"),$.fn.append.apply(this.timezone_select,$.map(t.timezoneList,function(e){return $("
@@ -3437,11 +3513,11 @@ function ot_choices_view( $name, $key, $choice = array() ) {
' . ( isset( $choice['label'] ) ? esc_attr( $choice['label'] ) : 'Choice ' . ( $key + 1 ) ) . '
@@ -3503,11 +3579,11 @@ function ot_contextual_help_view( $name, $key, $content = array() ) {
' . ( isset( $content['title'] ) ? esc_attr( $content['title'] ) : 'Content ' . ( $key + 1 ) ) . '
@@ -3562,14 +3638,14 @@ function ot_layout_view( $key, $data = '', $active_layout = '' ) { '; } @@ -3631,11 +3707,11 @@ function ot_list_item_view( $name, $key, $list_item = array(), $post_id = 0, $ge
' . ( isset( $list_item['title'] ) ? esc_attr( $list_item['title'] ) : '' ) . '
'; @@ -3649,6 +3725,17 @@ function ot_list_item_view( $name, $key, $list_item = array(), $post_id = 0, $ge if ( isset( $field['std'] ) ) { $field_value = ot_filter_std_value( $field_value, $field['std'] ); } + + // filter the title label and description + if ( $field['id'] == 'title' ) { + + // filter the label + $field['label'] = apply_filters( 'ot_list_item_title_label', $field['label'], $name ); + + // filter the description + $field['desc'] = apply_filters( 'ot_list_item_title_desc', $field['desc'], $name ); + + } /* make life easier */ $_field_name = $get_option ? $get_option . '[' . $name . ']' : $name; @@ -3743,7 +3830,7 @@ function ot_theme_options_layouts_form( $active = false ) { wp_nonce_field( 'option_tree_modify_layouts_form', 'option_tree_modify_layouts_nonce' ); /* get the saved layouts */ - $layouts = get_option( 'option_tree_layouts' ); + $layouts = get_option( ot_layouts_id() ); /* set active layout */ $active_layout = isset( $layouts['active_layout'] ) ? $layouts['active_layout'] : ''; @@ -3756,7 +3843,7 @@ function ot_theme_options_layouts_form( $active = false ) { echo '
'; - echo ''; foreach( $layouts as $key => $data ) { @@ -3775,7 +3862,7 @@ function ot_theme_options_layouts_form( $active = false ) { if ( $key == 'active_layout' ) continue; - echo ''; + echo ''; } @@ -3785,9 +3872,9 @@ function ot_theme_options_layouts_form( $active = false ) { echo '
'; /* add new layout */ - echo ''; + echo ''; - echo ''; + echo ''; echo '
'; diff --git a/option-tree/includes/ot-functions-compat.php b/option-tree/includes/ot-functions-compat.php index 45c4bb8..48e9a4b 100644 --- a/option-tree/includes/ot-functions-compat.php +++ b/option-tree/includes/ot-functions-compat.php @@ -75,20 +75,20 @@ function compat_ot_import_from_files() { $has_layout = isset( $layout_file ) ? true : false; /* auto import XML file */ - if ( $has_xml == true && ! get_option( 'option_tree_settings' ) && class_exists( 'SimpleXMLElement' ) ) { + if ( $has_xml == true && ! get_option( ot_settings_id() ) && class_exists( 'SimpleXMLElement' ) ) { $settings = ot_import_xml( $xml_file ); if ( isset( $settings ) && ! empty( $settings ) ) { - update_option( 'option_tree_settings', $settings ); + update_option( ot_settings_id(), $settings ); } } /* auto import Data file */ - if ( $has_data == true && ! get_option( 'option_tree' ) ) { + if ( $has_data == true && ! get_option( ot_options_id() ) ) { $get_data = wp_remote_get( $data_file ); @@ -99,7 +99,7 @@ function compat_ot_import_from_files() { $options = unserialize( ot_decode( $rawdata ) ); /* get settings array */ - $settings = get_option( 'option_tree_settings' ); + $settings = get_option( ot_settings_id() ); /* has options */ if ( is_array( $options ) ) { @@ -122,14 +122,14 @@ function compat_ot_import_from_files() { } /* update the option tree array */ - update_option( 'option_tree', $options ); + update_option( ot_options_id(), $options ); } } /* auto import Layout file */ - if ( $has_layout == true && ! get_option( 'option_tree_layouts' ) ) { + if ( $has_layout == true && ! get_option( ot_layouts_id() ) ) { $get_data = wp_remote_get( $layout_file ); @@ -140,7 +140,7 @@ function compat_ot_import_from_files() { $layouts = unserialize( ot_decode( $rawdata ) ); /* get settings array */ - $settings = get_option( 'option_tree_settings' ); + $settings = get_option( ot_settings_id() ); /* has layouts */ if ( is_array( $layouts ) ) { @@ -176,12 +176,12 @@ function compat_ot_import_from_files() { /* update the option tree array */ if ( isset( $layouts['active_layout'] ) ) { - update_option( 'option_tree', unserialize( ot_decode( $layouts[$layouts['active_layout']] ) ) ); + update_option( ot_options_id(), unserialize( ot_decode( $layouts[$layouts['active_layout']] ) ) ); } /* update the option tree layouts array */ - update_option( 'option_tree_layouts', $layouts ); + update_option( ot_layouts_id(), $layouts ); } diff --git a/option-tree/includes/ot-functions-deprecated.php b/option-tree/includes/ot-functions-deprecated.php index 4794fb8..ac1d97d 100644 --- a/option-tree/includes/ot-functions-deprecated.php +++ b/option-tree/includes/ot-functions-deprecated.php @@ -28,7 +28,7 @@ function get_option_tree( $item_id = '', $options = '', $echo = false, $is_array = false, $offset = -1 ) { /* load saved options */ if ( ! $options ) - $options = get_option( 'option_tree' ); + $options = get_option( ot_options_id() ); /* no value return */ if ( ! isset( $options[$item_id] ) || empty( $options[$item_id] ) ) diff --git a/option-tree/includes/ot-functions-docs-page.php b/option-tree/includes/ot-functions-docs-page.php index 782674d..72b7e3f 100644 --- a/option-tree/includes/ot-functions-docs-page.php +++ b/option-tree/includes/ot-functions-docs-page.php @@ -108,55 +108,61 @@ function ot_type_option_types() { echo '
'; echo '

'. __( 'Background', 'option-tree' ) . ':

'; - echo '

' . __( 'The Background option type is for adding background styles to your theme either dynamically via the CSS option type below or manually with ot_get_option(). Background has filters that allow you to change the defaults. For example, you can filter on ot_recognized_background_repeat, ot_recognized_background_attachment, and ot_recognized_background_position. These filters allow you to fine tune the select lists for your specific CSS needs.', 'option-tree' ) . '

'; - - echo '

'. __( 'Category Select', 'option-tree' ) . ':

'; - echo '

' . __( 'The Category Select option type displays a list of category IDs. It allows the user to select only one category ID and will return that value for use in a custom function or loop.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The Background option type is for adding background styles to your theme either dynamically via the CSS option type below or manually with %s. The Background option type has filters that allow you to remove fields or change the defaults. For example, you can filter %s to remove unwanted fields from all Background options or an individual one. You can also filter %s. These filters allow you to fine tune the select lists for your specific needs.', 'option-tree' ), 'ot_get_option()', 'ot_recognized_background_fields', 'ot_recognized_background_repeat, ot_recognized_background_attachment, ot_recognized_background_position, ' . __( 'and', 'option-tree' ) . ' ot_type_background_size_choices' ) . '

'; echo '

'. __( 'Category Checkbox', 'option-tree' ) . ':

'; echo '

' . __( 'The Category Checkbox option type displays a list of category IDs. It allows the user to check multiple category IDs and will return that value as an array for use in a custom function or loop.', 'option-tree' ) . '

'; + echo '

'. __( 'Category Select', 'option-tree' ) . ':

'; + echo '

' . __( 'The Category Select option type displays a list of category IDs. It allows the user to select only one category ID and will return that value for use in a custom function or loop.', 'option-tree' ) . '

'; + echo '

'. __( 'Checkbox', 'option-tree' ) . ':

'; - echo '

' . __( 'The Checkbox option type is fairly self explanatory. Typically used to ask questions. For example, "Do you want to activate asynchronous Google analytics?" would be a single checkbox with a value of yes. You could have more complex usages but the idea is that you can easily grab the value of the checkbox and use it in you theme. In this situation you would test if the checkbox has a value and execute a block of code if it does and do nothing if it doesn\'t.', 'option-tree' ) . '

'; + echo '

' . __( 'The Checkbox option type displays a group of choices. It allows the user to check multiple choices and will return that value as an array for use in a custom function or loop.', 'option-tree' ) . '

'; echo '

'. __( 'Colorpicker', 'option-tree' ) . ':

'; echo '

' . __( 'The Colorpicker option type saves a hexadecimal color code for use in CSS. Use it to modify the color of something in your theme.', 'option-tree' ) . '

'; echo '

'. __( 'CSS', 'option-tree' ) . ':

'; - echo '

' . __( 'The CSS option type is a textarea that when used properly can add dynamic CSS to your theme from within OptionTree. Unfortunately, due server limitations you will need to create a file named dynamic.css at the root level of your theme and change permissions using chmod so the server can write to the file. I have had the most success setting this single file to 0777 but feel free to play around with permissions until everything is working. A good starting point is 0666. When the server can save to the file CSS will automatically be updated each time you save your theme options.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The CSS option type is a textarea that when used properly can add dynamic CSS to your theme from within OptionTree. Unfortunately, due server limitations you will need to create a file named %s at the root level of your theme and change permissions using %s so the server can write to the file. I have had the most success setting this single file to %s but feel free to play around with permissions until everything is working. A good starting point is %s. When the server can save to the file, CSS will automatically be updated when you save your Theme Options.', 'option-tree' ), 'dynamic.css', 'chmod', '0777', '0666' ) . '

'; - echo '

' . __( 'An example of the CSS option type: This assumes you have an option with the ID of custom_background_css which will display the saved values for that option.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'This example assumes you have an option with the ID of %1$s. Which means this option will automatically insert the value of %1$s into the %2$s when the Theme Options are saved.', 'option-tree' ), 'demo_background', 'dynamic.css' ) . '

'; echo '

'. __( 'Input', 'option-tree' ) . ':

'; echo '
body {
-  {{custom_background_css}}
-  background-color: {{custom_background_css|background-color}};
+  {{demo_background}}
+  background-color: {{demo_background|background-color}};
 }
'; echo '

'. __( 'Output', 'option-tree' ) . ':

'; - echo '
/* BEGIN custom_background_css */
+        echo '
/* BEGIN demo_background */
 body {
   background: color image repeat attachment position;
   background-color: color;
 }
-/* END custom_background_css */
'; +/* END demo_background */
'; + + echo '

'. __( 'Custom Post Type Checkbox', 'option-tree' ) . ':

'; + echo '

' . sprintf( __( 'The Custom Post Type Select option type displays a list of IDs from any available WordPress post type or custom post type. It allows the user to check multiple post IDs for use in a custom function or loop. Requires at least one valid %1$s in the %1$s field.', 'option-tree' ), 'post_type' ) . '

'; echo '

'. __( 'Custom Post Type Select', 'option-tree' ) . ':

'; - echo '

' . __( 'The Custom Post Type Select option type displays a list of IDs from any available WordPress post type or custom post type. It will return a single post ID for use in a custom function or loop. Requires at least one valid post_type when created in the settings. For some reason any does not work correctly and will looked into in future version.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The Custom Post Type Select option type displays a list of IDs from any available WordPress post type or custom post type. It will return a single post ID for use in a custom function or loop. Requires at least one valid %1$s in the %1$s field.', 'option-tree' ), 'post_type' ) . '

'; - echo '

'. __( 'Custom Post Type Checkbox', 'option-tree' ) . ':

'; - echo '

' . __( 'The Custom Post Type Select option type displays a list of IDs from any available WordPress post type or custom post type. It allows the user to check multiple post IDs for use in a custom function or loop. Requires at least one valid post_type when created in the settings. For some reason any does not work correctly and will looked into in future version.', 'option-tree' ) . '

'; + echo '

'. __( 'Date Picker', 'option-tree' ) . ':

'; + echo '

' . __( 'The Date Picker option type is tied to a standard form input field which displays a calendar pop-up that allow the user to pick any date when focus is given to the input field. The returned value is a date formatted string.', 'option-tree' ) . '

'; + + echo '

'. __( 'Date Time Picker', 'option-tree' ) . ':

'; + echo '

' . __( 'The Date Time Picker option type is tied to a standard form input field which displays a calendar pop-up that allow the user to pick any date and time when focus is given to the input field. The returned value is a date and time formatted string.', 'option-tree' ) . '

'; echo '

'. __( 'Gallery', 'option-tree' ) . ':

'; echo '

' . __( 'The Gallery option type saves a comma separated list of image attachment IDs. You will need to create a front-end function to display the images in your theme.', 'option-tree' ) . '

'; echo '

'. __( 'List Item', 'option-tree' ) . ':

'; - echo '

' . __( 'The list Item replaced the old Slider option type. It allows for a great deal of customization. You can add settings to the List Item and those settings will be displayed to the user when they add a new List Item. Typical use is for creating sliding content or blocks of code for custom layouts.', 'option-tree' ) . '

'; + echo '

' . __( 'The List Item option type replaced the Slider option type and allows for a great deal of customization. You can add settings to the List Item and those settings will be displayed to the user when they add a new List Item. Typical use is for creating sliding content or blocks of code for custom layouts.', 'option-tree' ) . '

'; echo '

'. __( 'Measurement', 'option-tree' ) . ':

'; - echo '

' . __( 'The Measurement option type is a mix of input and select fields. The text input excepts a value and the select lets you choose the unit of measurement to add to that value. Currently the default units are px, %, em, pt. However, you can change them with the ot_measurement_unit_types filter.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The Measurement option type is a mix of input and select fields. The text input excepts a value and the select lets you choose the unit of measurement to add to that value. Currently the default units are %s, %s, %s, and %s. However, you can change them with the %s filter.', 'option-tree' ), 'px', '%', 'em', 'pt', 'ot_measurement_unit_types' ) . '

'; - echo '

' . __( 'Example filter to add new units to the Measurement option type. Added to functions.php.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'Example filter to add new units to the Measurement option type. Added to %s.', 'option-tree' ), 'functions.php' ) . '

'; echo '
function filter_measurement_unit_types( $array, $field_id ) {
   
   /* only run the filter on measurement with a field ID of my_measurement */
@@ -188,25 +194,25 @@ function ot_type_option_types() {
         echo '

' . __( 'The Numeric Slider option type displays a jQuery UI slider. It will return a single numerical value for use in a custom function or loop.', 'option-tree' ) . '

'; echo '

'. __( 'On/Off', 'option-tree' ) . ':

'; - echo '

' . __( 'The On/Off option type displays a simple switch that can be used to turn things on or off. The saved return value is either on or off.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The On/Off option type displays a simple switch that can be used to turn things on or off. The saved return value is either %s or %s.', 'option-tree' ), 'on', 'off' ) . '

'; + + echo '

'. __( 'Page Checkbox', 'option-tree' ) . ':

'; + echo '

' . __( 'The Page Checkbox option type displays a list of page IDs. It allows the user to check multiple page IDs for use in a custom function or loop.', 'option-tree' ) . '

'; echo '

'. __( 'Page Select', 'option-tree' ) . ':

'; echo '

' . __( 'The Page Select option type displays a list of page IDs. It will return a single page ID for use in a custom function or loop.', 'option-tree' ) . '

'; - echo '

'. __( 'Page Checkbox', 'option-tree' ) . ':

'; - echo '

' . __( 'The Page Select option type displays a list of page IDs. It allows the user to check multiple page IDs for use in a custom function or loop.', 'option-tree' ) . '

'; + echo '

'. __( 'Post Checkbox', 'option-tree' ) . ':

'; + echo '

' . __( 'The Post Checkbox option type displays a list of post IDs. It allows the user to check multiple post IDs for use in a custom function or loop.', 'option-tree' ) . '

'; echo '

'. __( 'Post Select', 'option-tree' ) . ':

'; echo '

' . __( 'The Post Select option type displays a list of post IDs. It will return a single post ID for use in a custom function or loop.', 'option-tree' ) . '

'; - echo '

'. __( 'Post Checkbox', 'option-tree' ) . ':

'; - echo '

' . __( 'The Post Select option type displays a list of post IDs. It allows the user to check multiple post IDs for use in a custom function or loop.', 'option-tree' ) . '

'; - echo '

'. __( 'Radio', 'option-tree' ) . ':

'; - echo '

' . __( 'The Radio option type could ask a question. For example, "Do you want to activate the custom navigation?" could require a yes or no answer with a radio option. In this situation you would test if the radio has a value of \'yes\' and execute a block of code, or if it\'s \'no\' execute a different block of code.', 'option-tree' ) . '

'; + echo '

' . __( 'The Radio option type displays a group of choices. It allows the user to choose one and will return that value as a string for use in a custom function or loop.', 'option-tree' ) . '

'; echo '

'. __( 'Radio Image', 'option-tree' ) . ':

'; - echo '

' . __( 'the Radio Images option type is primarily used for layouts. However, you can filter the image list using ot_radio_images. As well, you can add your own custom images using the choices array.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'the Radio Images option type is primarily used for layouts. However, you can filter the image list using %s. As well, you can add your own custom images using the choices array.', 'option-tree' ), 'ot_radio_images' ) . '

'; echo '

' . __( 'This example executes the ot_radio_images filter on layout images attached to the my_radio_images field. Added to functions.php.', 'option-tree' ) . '

'; echo '
function filter_radio_images( $array, $field_id ) {
@@ -236,12 +242,15 @@ function ot_type_option_types() {
         echo '

' . __( 'The Select option type is used to list anything you want that would be chosen from a select list.', 'option-tree' ) . '

'; echo '

'. __( 'Sidebar Select', 'option-tree' ) . ':

'; - echo '

' . __( 'This option type makes it possible for users to select a WordPress registered sidebar to use on a specific area. By using the two provided filters, ot_recognized_sidebars, and ot_recognized_sidebars_{$field_id} we can be selective about which sidebars are available on a specific content area.', 'option-tree' ) . '

'; - echo '

' . __( 'For example, if we create a WordPress theme that provides the ability to change the Blog Sidebar and we don\'t want to have the footer sidebars available on this area, we can unset those sidebars either manually or by using a regular expression if we have a common name like footer-sidebar-$i.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'This option type makes it possible for users to select a WordPress registered sidebar to use on a specific area. By using the two provided filters, %s, and %s we can be selective about which sidebars are available on a specific content area.', 'option-tree' ), 'ot_recognized_sidebars', 'ot_recognized_sidebars_{$field_id}' ) . '

'; + echo '

' . sprintf( __( 'For example, if we create a WordPress theme that provides the ability to change the Blog Sidebar and we don\'t want to have the footer sidebars available on this area, we can unset those sidebars either manually or by using a regular expression if we have a common name like %s.', 'option-tree' ), 'footer-sidebar-$i' ) . '

'; echo '

'. __( 'Slider', 'option-tree' ) . ':

'; echo '

' . __( 'The Slider option type is technically deprecated. Use the List Item option type instead, as it\'s infinitely more customizable. Typical use is for creating sliding image content.', 'option-tree' ) . '

'; + echo '

'. __( 'Tab', 'option-tree' ) . ':

'; + echo '

' . __( 'The Tab option type will break a section or metabox into tabbed content.', 'option-tree' ) . '

'; + echo '

'. __( 'Tag Checkbox', 'option-tree' ) . ':

'; echo '

' . __( 'The Tag Checkbox option type displays a list of tag IDs. It allows the user to check multiple tag IDs and will return that value as an array for use in a custom function or loop.', 'option-tree' ) . '

'; @@ -254,11 +263,11 @@ function ot_type_option_types() { echo '

'. __( 'Taxonomy Select', 'option-tree' ) . ':

'; echo '

' . __( 'The Taxonomy Select option type displays a list of taxonomy IDs. It allows the user to select only one taxonomy ID and will return that value for use in a custom function or loop.', 'option-tree' ) . '

'; - echo '

'. __( 'Text (Input)', 'option-tree' ) . ':

'; - echo '

' . __( 'The Text option type would be used to save a string value. For example, a link to feedburner, your Twitter username, or Google Analytics ID are all good candidates. Any optional or required text that is of reasonably short character length.', 'option-tree' ) . '

'; + echo '

'. __( 'Text', 'option-tree' ) . ':

'; + echo '

' . __( 'The Text option type is used to save string values. For example, any optional or required text that is of reasonably short character length.', 'option-tree' ) . '

'; echo '

'. __( 'Textarea', 'option-tree' ) . ':

'; - echo '

' . __( 'The Textarea option type is a large string value used for custom code or text in the theme. The new Textarea has a WYSIWYG editor that can be filtered to change the buttons shown. For example, you can filter on wpautop, media_buttons, tinymce, and quicktags.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The Textarea option type is a large string value used for custom code or text in the theme and has a WYSIWYG editor that can be filtered to change the how it is displayed. For example, you can filter %s, %s, %s, and %s.', 'option-tree' ), 'wpautop', 'media_buttons', 'tinymce', 'quicktags' ) . '

'; echo '

' . __( 'Example filters to alter the Textarea option type. Added to functions.php.', 'option-tree' ) . '

'; @@ -317,9 +326,9 @@ function ot_type_option_types() { add_filter( \'ot_quicktags\', \'filter_textarea_quicktags\', 10, 1 );
'; echo '

'. __( 'Textarea Simple', 'option-tree' ) . ':

'; - echo '

' . __( 'The Textarea Simple option type is a large string value used for custom code or text in the theme. The new Textarea Simple does not have a WYSIWYG editor. But you can still filter on wpautop.', 'option-tree' ) . '

'; + echo '

' . __( 'The Textarea Simple option type is a large string value used for custom code or text in the theme. The Textarea Simple does not have a WYSIWYG editor.', 'option-tree' ) . '

'; - echo '

' . __( 'This example tells WordPress to execute the wpautop filter on the line breaks. The default is false which means it does not wraps line breaks with an HTML p tag. Added to functions.php.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'This example tells WordPress to execute the %s filter on the line breaks. The default is %s which means it does not wraps line breaks with an HTML %s tag. Added to %s.', 'option-tree' ), 'wpautop', 'false', 'p', 'functions.php' ) . '

'; echo '
function filter_textarea_simple_wpautop( $content, $field_id ) {
   
   /* only run the filter on the textarea with a field ID of my_textarea */
@@ -333,13 +342,13 @@ function ot_type_option_types() {
 add_filter( \'ot_wpautop\', \'filter_textarea_simple_wpautop\', 10, 2 );
'; echo '

'. __( 'Textblock', 'option-tree' ) . ':

'; - echo '

' . __( 'The Textblock option type is used only on the Theme Option page. It will allow you to create & display HTML on your Theme Options page but has no title above the text block. You can then use the Textblock to add a more detailed set of instruction on how the options are used in your theme. You would NEVER use this in your themes template files as it does not save a value.', 'option-tree' ) . '

'; + echo '

' . __( 'The Textblock option type is used only on the Theme Option page. It will allow you to create & display HTML, but has no title above the text block. You can then use the Textblock to add a more detailed set of instruction on how the options are used in your theme. You would never use this in your themes template files as it does not save a value.', 'option-tree' ) . '

'; echo '

'. __( 'Textblock Titled', 'option-tree' ) . ':

'; - echo '

' . __( 'The Textblock Titled option type is used only on the Theme Option page. It will allow you to create & display HTML on your Theme Options page and has a title above the text block. You can then use the Textblock Titled to add a more detailed set of instruction on how the options are used in your theme. You would NEVER use this in your themes template files as it does not save a value.', 'option-tree' ) . '

'; + echo '

' . __( 'The Textblock Titled option type is used only on the Theme Option page. It will allow you to create & display HTML, and has a title above the text block. You can then use the Textblock Titled to add a more detailed set of instruction on how the options are used in your theme. You would never use this in your themes template files as it does not save a value.', 'option-tree' ) . '

'; echo '

'. __( 'Typography', 'option-tree' ) . ':

'; - echo '

' . __( 'The Typography option type is for adding typographic styles to your theme either dynamically via the CSS option type below or manually with ot_get_option(). Typography has filters that allow you to change the defaults. For example, you can filter on ot_recognized_font_styles, ot_recognized_font_weights, ot_recognized_font_variants, and ot_recognized_font_families. These filters allow you to fine tune the select lists for your specific CSS needs. The most important one though is ot_recognized_font_families as you can add your Google Fonts to create custom font stacks.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The Typography option type is for adding typography styles to your theme either dynamically via the CSS option type above or manually with %s. The Typography option type has filters that allow you to remove fields or change the defaults. For example, you can filter %s to remove unwanted fields from all Background options or an individual one. You can also filter %s. These filters allow you to fine tune the select lists for your specific needs.', 'option-tree' ), 'ot_get_option()', 'ot_recognized_typography_fields', 'ot_recognized_font_families, ot_recognized_font_sizes, ot_recognized_font_styles, ot_recognized_font_variants, ot_recognized_font_weights, ot_recognized_letter_spacing, ot_recognized_line_heights, ot_recognized_text_decorations ' . __( 'and', 'option-tree' ) . ' ot_recognized_text_transformations' ) . '

'; echo '

' . __( 'This example would filter ot_recognized_font_families to build your own font stack. Added to functions.php.', 'option-tree' ) . '

'; echo '
function filter_ot_recognized_font_families( $array, $field_id ) {
@@ -359,7 +368,7 @@ function ot_type_option_types() {
 add_filter( \'ot_recognized_font_families\', \'filter_ot_recognized_font_families\', 10, 2 );
'; echo '

'. __( 'Upload', 'option-tree' ) . ':

'; - echo '

' . __( 'The Upload option type is used to upload any WordPress supported media. After uploading, users are required to press the "Send to OptionTree" button in order to populate the input with the URI of that media. There is one caveat of this feature. If you import the theme options and have uploaded media on one site the old URI will not reflect the URI of your new site. You\'ll have to re-upload or FTP any media to your new server and change the URIs if necessary.', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'The Upload option type is used to upload any WordPress supported media. After uploading, users are required to press the "%s" button in order to populate the input with the URI of that media. There is one caveat of this feature. If you import the theme options and have uploaded media on one site the old URI will not reflect the URI of your new site. You will have to re-upload or %s any media to your new server and change the URIs if necessary.', 'option-tree' ), apply_filters( 'ot_upload_text', __( 'Send to OptionTree', 'option-tree' ) ), 'FTP' ) . '

'; echo '
'; @@ -613,7 +622,6 @@ function ot_type_layouts_overview() { echo '

' . __( ' Adding a layout is ridiculously easy, follow these steps and you\'ll be on your way to having a WordPress super theme.', 'option-tree' ) . '

'; echo '

' . __( 'For Developers', 'option-tree' ) . ':

'; - echo '

' . __( '', 'option-tree' ) . '

'; echo '
' . __( 'Creating a Layout', 'option-tree' ) . ':
'; echo '
    '; @@ -643,7 +651,6 @@ function ot_type_layouts_overview() { echo '
'; echo '

' . __( 'End-Users Mode', 'option-tree' ) . ':

'; - echo '

' . __( '', 'option-tree' ) . '

'; echo '
' . __( 'Creating a Layout', 'option-tree' ) . ':
'; echo '
    '; @@ -784,25 +791,12 @@ function ot_type_theme_mode() { echo '
    ' . __( 'Step 1: Include the plugin & turn on theme mode.', 'option-tree' ) . '
    '; echo '
      '; - echo '
    • '. __( 'Download the latest version of OptionTree.', 'option-tree' ) . '
    • '; - echo '
    • ' . __( 'Unpack the ZIP archive.', 'option-tree' ) . '
    • '; - echo '
    • ' . __( 'Put the option-tree directory in the root of your theme. For example, the server path would be /wp-content/themes/theme-name/option-tree/.', 'option-tree' ) . '
    • '; - echo '
    • ' . __( 'Add the following code to the beginning of your functions.php.', 'option-tree' ) . '
    • '; + echo '
    • ' . sprintf( __( 'Download the latest version of %s and unarchive the %s directory.', 'option-tree' ), '' . __( 'OptionTree', 'option-tree' ) . '', '.zip' ) . '
    • '; + echo '
    • ' . sprintf( __( 'Put the %s directory in the root of your theme. For example, the server path would be %s.', 'option-tree' ), 'option-tree', '/wp-content/themes/theme-name/option-tree/' ) . '
    • '; + echo '
    • ' . sprintf( __( 'Add the following code to the beginning of your %s.', 'option-tree' ), 'functions.php' ) . '
    • '; echo '
    '; echo '
    /**
    - * Optional: set \'ot_show_pages\' filter to false.
    - * This will hide the settings & documentation pages.
    - */
    -add_filter( \'ot_show_pages\', \'__return_false\' );
    -
    -/**
    - * Optional: set \'ot_show_new_layout\' filter to false.
    - * This will hide the "New Layout" section on the Theme Options page.
    - */
    -add_filter( \'ot_show_new_layout\', \'__return_false\' );
    -
    -/**
      * Required: set \'ot_theme_mode\' filter to true.
      */
     add_filter( \'ot_theme_mode\', \'__return_true\' );
    @@ -813,7 +807,9 @@ function ot_type_theme_mode() {
     load_template( trailingslashit( get_template_directory() ) . \'option-tree/ot-loader.php\' );
     
    '; - echo '

    ' . __( 'It\'s that simple! You now have OptionTree built into your theme and anytime there\'s an update to the plugin you just replace the old version and you\'re good to go..', 'option-tree' ) . '

    '; + echo '

    ' . sprintf( __( 'For a list of all the OptionTree UI display filters refer to the %s file found in the %s directory of this plugin. This file is the starting point for developing themes with Theme Mode.', 'option-tree' ), 'demo-functions.php', '/assets/theme-mode/' ) . '

    '; + + echo '

    ' . __( 'You now have OptionTree built into your theme and anytime an update is available replace the old version with the new one.', 'option-tree' ) . '

    '; echo '
    ' . __( 'Step 2: Create Theme Options without using the UI Builder.', 'option-tree' ) . '
    '; echo '
      '; diff --git a/option-tree/includes/ot-functions-option-types.php b/option-tree/includes/ot-functions-option-types.php index 3cad53e..84e7330 100644 --- a/option-tree/includes/ot-functions-option-types.php +++ b/option-tree/includes/ot-functions-option-types.php @@ -195,11 +195,11 @@ function ot_type_background( $args = array() ) { if ( is_array( $choices ) && ! empty( $choices ) ) { /* build select */ - echo ''; foreach ( (array) $choices as $choice ) { if ( isset( $choice['value'] ) && isset( $choice['label'] ) ) { - echo ''; + echo ''; } } @@ -224,7 +224,7 @@ function ot_type_background( $args = array() ) { echo ''; /* add media button */ - echo '' . __( 'Add Media', 'option-tree' ) . ''; + echo '' . __( 'Add Media', 'option-tree' ) . ''; echo '
'; @@ -236,7 +236,7 @@ function ot_type_background( $args = array() ) { if ( preg_match( '/\.(?:jpe?g|png|gif|ico)$/i', $field_value['background-image'] ) ) echo '
'; - echo '' . __( 'Remove Media', 'option-tree' ) . ''; + echo '' . __( 'Remove Media', 'option-tree' ) . ''; echo '
'; @@ -493,7 +493,10 @@ function ot_type_css( $args = array() ) { echo '
'; /* build textarea for CSS */ - echo ''; + echo ''; + + /* build pre to convert it into ace editor later */ + echo '
' . esc_textarea( $field_value ) . '
'; echo '
'; @@ -620,6 +623,94 @@ function ot_type_custom_post_type_select( $args = array() ) { } +/** + * Date Picker option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.3 + */ +if ( ! function_exists( 'ot_type_date_picker' ) ) { + + function ot_type_date_picker( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
'; + + /* date picker JS */ + echo ''; + + /* description */ + echo $has_desc ? '
' . htmlspecialchars_decode( $field_desc ) . '
' : ''; + + /* format setting inner wrapper */ + echo '
'; + + /* build date picker */ + echo ''; + + echo '
'; + + echo '
'; + + } + +} + +/** + * Date Time Picker option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.3 + */ +if ( ! function_exists( 'ot_type_date_time_picker' ) ) { + + function ot_type_date_time_picker( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
'; + + /* date time picker JS */ + echo ''; + + /* description */ + echo $has_desc ? '
' . htmlspecialchars_decode( $field_desc ) . '
' : ''; + + /* format setting inner wrapper */ + echo '
'; + + /* build date time picker */ + echo ''; + + echo '
'; + + echo '
'; + + } + +} + /** * Gallery option type. * @@ -681,15 +772,15 @@ function ot_type_gallery( $args = array() ) { echo ' '; } else { echo ' '; } @@ -761,7 +852,7 @@ function ot_type_list_item( $args = array() ) { echo ''; /* button */ - echo '' . __( 'Add New', 'option-tree' ) . ''; + echo '' . __( 'Add New', 'option-tree' ) . ''; /* description */ echo '
' . apply_filters( 'ot_list_item_description', __( 'You can re-order with drag & drop, the order will update after saving.', 'option-tree' ), $field_id ) . '
'; @@ -929,7 +1020,7 @@ function ot_type_on_off( $args = array() ) { foreach ( (array) $field_choices as $key => $choice ) { echo ' - '; + '; } echo ''; @@ -1114,7 +1205,7 @@ function ot_type_slider( $args = array() ) { echo ''; /* button */ - echo '' . __( 'Add New', 'option-tree' ) . ''; + echo '' . __( 'Add New', 'option-tree' ) . ''; /* description */ echo '
' . __( 'You can re-order with drag & drop, the order will update after saving.', 'option-tree' ) . '
'; @@ -1324,6 +1415,9 @@ function ot_type_radio_image( $args = array() ) { $src = str_replace( 'OT_URL', OT_URL, $choice['src'] ); $src = str_replace( 'OT_THEME_URL', OT_THEME_URL, $src ); + /* make radio image source filterable */ + $src = apply_filters( 'ot_type_radio_image_src', $src, $field_id ); + echo '
'; echo '

'; echo '' . esc_attr( $choice['label'] ) .''; @@ -1459,6 +1553,35 @@ function ot_type_sidebar_select( $args = array() ) { } +/** + * Tab option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.3.0 + */ +if ( ! function_exists( 'ot_type_tab' ) ) { + + function ot_type_tab( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* format setting outer wrapper */ + echo '
'; + + echo '
'; + + echo '
'; + + } + +} + /** * Tag Checkbox option type. * @@ -2092,7 +2215,7 @@ function ot_type_upload( $args = array() ) { echo ''; /* add media button */ - echo '' . __( 'Add Media', 'option-tree' ) . ''; + echo '' . __( 'Add Media', 'option-tree' ) . ''; echo '
'; @@ -2104,7 +2227,7 @@ function ot_type_upload( $args = array() ) { if ( preg_match( '/\.(?:jpe?g|png|gif|ico)$/i', $field_value ) ) echo '
'; - echo '' . __( 'Remove Media', 'option-tree' ) . ''; + echo '' . __( 'Remove Media', 'option-tree' ) . ''; echo '
'; diff --git a/option-tree/includes/ot-functions-settings-page.php b/option-tree/includes/ot-functions-settings-page.php index 01d6484..4f5cafe 100644 --- a/option-tree/includes/ot-functions-settings-page.php +++ b/option-tree/includes/ot-functions-settings-page.php @@ -43,7 +43,7 @@ function ot_type_theme_options_ui() { echo '
'; /* get the saved settings */ - $settings = get_option( 'option_tree_settings' ); + $settings = get_option( ot_settings_id() ); /* wrap settings array */ echo '
'; @@ -52,14 +52,14 @@ function ot_type_theme_options_ui() { $count = 0; /* loop through each section and its settings */ - echo '
    '; + echo '
      '; if ( isset( $settings['sections'] ) ) { foreach( $settings['sections'] as $section ) { /* section */ - echo '
    • ' . ot_sections_view( 'option_tree_settings[sections]', $count, $section ) . '
    • '; + echo '
    • ' . ot_sections_view( ot_settings_id() . '[sections]', $count, $section ) . '
    • '; /* increment item count */ $count++; @@ -71,7 +71,7 @@ function ot_type_theme_options_ui() { if ( isset( $setting['section'] ) && $setting['section'] == $section['id'] ) { - echo '
    • ' . ot_settings_view( 'option_tree_settings[settings]', $count, $setting ) . '
    • '; + echo '
    • ' . ot_settings_view( ot_settings_id() . '[settings]', $count, $setting ) . '
    • '; /* increment item count */ $count++; @@ -89,9 +89,9 @@ function ot_type_theme_options_ui() { echo '
    '; /* buttons */ - echo '' . __( 'Add Section', 'option-tree' ) . ''; - echo '' . __( 'Add Setting', 'option-tree' ) . ''; - echo ''; + echo '' . __( 'Add Section', 'option-tree' ) . ''; + echo '' . __( 'Add Setting', 'option-tree' ) . ''; + echo ''; /* sidebar textarea */ echo ' @@ -102,7 +102,7 @@ function ot_type_theme_options_ui() {
    ' . __( 'Contextual Help Sidebar', 'option-tree' ) . ': ' . __( 'If you decide to add contextual help to the Theme Option page, enter the optional "Sidebar" HTML here. This would be an extremely useful place to add links to your themes documentation or support forum. Only after you\'ve added some content below will this display to the user.', 'option-tree' ) . '
    - +
'; @@ -111,14 +111,14 @@ function ot_type_theme_options_ui() { $count = 0; /* loop through each contextual_help content section */ - echo '
    '; + echo '
      '; if ( isset( $settings['contextual_help']['content'] ) ) { foreach( $settings['contextual_help']['content'] as $content ) { /* content */ - echo '
    • ' . ot_contextual_help_view( 'option_tree_settings[contextual_help][content]', $count, $content ) . '
    • '; + echo '
    • ' . ot_contextual_help_view( ot_settings_id() . '[contextual_help][content]', $count, $content ) . '
    • '; /* increment content count */ $count++; @@ -129,8 +129,8 @@ function ot_type_theme_options_ui() { echo '
    '; - echo '' . __( 'Add Contextual Help Content', 'option-tree' ) . ''; - echo ''; + echo '' . __( 'Add Contextual Help Content', 'option-tree' ) . ''; + echo ''; echo '
'; @@ -167,10 +167,10 @@ function ot_type_import_xml() { echo '

' . __( 'This import method has been deprecated. That means it has been replaced by a new method and is no longer supported, and may be removed from future versions. All themes that use this import method should be converted to use its replacement below.', 'option-tree' ) . '

'; - echo '

' . __( 'If you were given a Theme Options XML file with a premium or free theme, locate it on your hard drive and upload that file by clicking the blue upload button. A popup window will appear, upload the XML file and click "Send to OptionTree". The file URL should be in the upload input, if it is click "Import XML".', 'option-tree' ) . '

'; + echo '

' . sprintf( __( 'If you were given a Theme Options XML file with a premium or free theme, locate it on your hard drive and upload that file by clicking the upload button. A popup window will appear, upload the XML file and click "%s". The file URL should be in the upload input, if it is click "Import XML".', 'option-tree' ), apply_filters( 'ot_upload_text', __( 'Send to OptionTree', 'option-tree' ) ) ) . '

'; /* button */ - echo ''; + echo ''; echo '
'; @@ -186,7 +186,7 @@ function ot_type_import_xml() { $post_id = ( $id = ot_get_media_post_ID() ) ? (int) $id : 0; /* add xml button */ - echo '' . __( 'Add XML', 'option-tree' ) . ''; + echo '' . __( 'Add XML', 'option-tree' ) . ''; echo '
'; @@ -226,7 +226,7 @@ function ot_type_import_settings() { echo '

' . __( 'To import your Settings copy and paste what appears to be a random string of alpha numeric characters into this textarea and press the "Import Settings" button.', 'option-tree' ) . '

'; /* button */ - echo ''; + echo ''; echo '
'; @@ -273,7 +273,7 @@ function ot_type_import_data() { echo '

' . __( 'To import your Theme Options copy and paste what appears to be a random string of alpha numeric characters into this textarea and press the "Import Theme Options" button.', 'option-tree' ) . '

'; /* button */ - echo ''; + echo ''; echo '
'; @@ -320,7 +320,7 @@ function ot_type_import_layouts() { echo '

' . __( 'To import your Layouts copy and paste what appears to be a random string of alpha numeric characters into this textarea and press the "Import Layouts" button. Keep in mind that when you import your layouts, the active layout\'s saved data will write over the current data set for your Theme Options.', 'option-tree' ) . '

'; /* button */ - echo ''; + echo ''; echo ''; @@ -363,14 +363,16 @@ function ot_type_export_settings_file() { /* description */ echo '
'; - echo '

' . sprintf( __( 'Export your Settings into a fully functional theme-options.php file by clicking this button. For more information on how to use this file read the theme mode %s. Remember, you should always check the file for errors before including it in your theme.', 'option-tree' ), 'OptionTree->Documentation' ) . '

'; + echo '

' . sprintf( __( 'Export your Settings into a fully functional %s file. If you want to add your own custom %s text domain to the file, enter it into the text field before exporting. For more information on how to use this file read the documentation on %s. Remember, you should always check the file for errors before including it in your theme.', 'option-tree' ), 'theme-options.php', 'I18n', '' . __( 'Theme Mode', 'option-tree' ) . '' ) . '

'; echo '
'; echo '
'; - + + echo ''; + /* button */ - echo ''; + echo ''; echo '
'; @@ -405,7 +407,7 @@ function ot_type_export_settings() { echo ''; /* get theme options data */ - $settings = get_option( 'option_tree_settings' ); + $settings = get_option( ot_settings_id() ); $settings = ! empty( $settings ) ? ot_encode( serialize( $settings ) ) : ''; echo '
'; @@ -441,7 +443,7 @@ function ot_type_export_data() { echo '
'; /* get theme options data */ - $data = get_option( 'option_tree' ); + $data = get_option( ot_options_id() ); $data = ! empty( $data ) ? ot_encode( serialize( $data ) ) : ''; echo '
'; @@ -478,7 +480,7 @@ function ot_type_export_layouts() { echo '
'; /* get layout data */ - $layouts = get_option( 'option_tree_layouts' ); + $layouts = get_option( ot_layouts_id() ); $layouts = ! empty( $layouts ) ? ot_encode( serialize( $layouts ) ) : ''; echo '
'; @@ -524,15 +526,15 @@ function ot_type_modify_layouts() { echo '
'; /* get the saved layouts */ - $layouts = get_option( 'option_tree_layouts' ); + $layouts = get_option( ot_layouts_id() ); /* set active layout */ $active_layout = isset( $layouts['active_layout'] ) ? $layouts['active_layout'] : ''; - echo ''; + echo ''; /* add new layout */ - echo ''; + echo ''; /* loop through each layout */ echo '
    '; @@ -554,7 +556,7 @@ function ot_type_modify_layouts() { echo '
'; - echo ''; + echo ''; echo '
'; diff --git a/option-tree/includes/ot-functions.php b/option-tree/includes/ot-functions.php index 87ade3f..29bd804 100644 --- a/option-tree/includes/ot-functions.php +++ b/option-tree/includes/ot-functions.php @@ -7,7 +7,61 @@ * @copyright Copyright (c) 2013, Derek Herman * @since 2.0 */ - + +/** + * Theme Options ID + * + * @return string + * + * @access public + * @since 2.3.0 + */ +if ( ! function_exists( 'ot_options_id' ) ) { + + function ot_options_id() { + + return apply_filters( 'ot_options_id', 'option_tree' ); + + } + +} + +/** + * Theme Settings ID + * + * @return string + * + * @access public + * @since 2.3.0 + */ +if ( ! function_exists( 'ot_settings_id' ) ) { + + function ot_settings_id() { + + return apply_filters( 'ot_settings_id', 'option_tree_settings' ); + + } + +} + +/** + * Theme Layouts ID + * + * @return string + * + * @access public + * @since 2.3.0 + */ +if ( ! function_exists( 'ot_layouts_id' ) ) { + + function ot_layouts_id() { + + return apply_filters( 'ot_layouts_id', 'option_tree_layouts' ); + + } + +} + /** * Get Option. * @@ -26,7 +80,7 @@ function ot_get_option( $option_id, $default = '' ) { /* get the saved options */ - $options = get_option( 'option_tree' ); + $options = get_option( ot_options_id() ); /* look for the saved value */ if ( isset( $options[$option_id] ) && '' != $options[$option_id] ) { @@ -81,7 +135,7 @@ function ot_wpml_filter( $options, $option_id ) { // Return translated strings using WMPL if ( function_exists('icl_t') ) { - $settings = get_option( 'option_tree_settings' ); + $settings = get_option( ot_settings_id() ); if ( isset( $settings['settings'] ) ) { diff --git a/option-tree/includes/ot-settings-api.php b/option-tree/includes/ot-settings-api.php index e251292..57b9f01 100644 --- a/option-tree/includes/ot-settings-api.php +++ b/option-tree/includes/ot-settings-api.php @@ -233,13 +233,13 @@ public function display_page() { /* update active layout content */ if ( isset( $_REQUEST['settings-updated'] ) && $_REQUEST['settings-updated'] == 'true' ) { - $layouts = get_option( 'option_tree_layouts' ); + $layouts = get_option( ot_layouts_id() ); /* has active layout */ if ( isset( $layouts['active_layout'] ) ) { $option_tree = get_option( $option['id'] ); $layouts[$layouts['active_layout']] = ot_encode( serialize( $option_tree ) ); - update_option( 'option_tree_layouts', $layouts ); + update_option( ot_layouts_id(), $layouts ); } } @@ -258,9 +258,12 @@ public function display_page() { echo '
    '; - echo ''; + echo ''; - echo '
  • Version ' . OT_VERSION . '
  • '; + echo '
  • ' . apply_filters( 'ot_header_version_text', 'OptionTree ' . OT_VERSION, $page['id'] ) . '
  • '; + + // Add additional theme specific links here. + do_action( 'ot_header_list', $page['id'] ); echo '
'; @@ -287,7 +290,7 @@ public function display_page() { echo '
'; if ( $show_buttons ) - echo ''; + echo ''; echo '
'; @@ -332,7 +335,7 @@ public function display_page() { echo '
'; - echo ''; + echo ''; echo '
'; @@ -350,7 +353,7 @@ public function display_page() { echo ''; - echo ''; + echo ''; echo ''; @@ -579,7 +582,7 @@ public function sanitize_callback( $input ) { if ( isset( $setting['type'] ) && isset( $input[$setting['id']] ) ) { /* get the defaults */ - $current_settings = get_option( 'option_tree_settings' ); + $current_settings = get_option( ot_settings_id() ); $current_options = get_option( $option['id'] ); /* validate setting */ @@ -835,7 +838,26 @@ public function do_settings_fields( $page, $section ) { } - echo '
'; + // Build the setting CSS class + if ( isset( $field['args']['class'] ) && ! empty( $field['args']['class'] ) ) { + + $classes = explode( ' ', $field['args']['class'] ); + + foreach( $classes as $key => $value ) { + + $classes[$key] = $value . '-wrap'; + + } + + $class = 'format-settings ' . implode( ' ', $classes ); + + } else { + + $class = 'format-settings'; + + } + + echo '
'; echo '
'; diff --git a/option-tree/languages/option-tree.po b/option-tree/languages/option-tree.po new file mode 100644 index 0000000..3f8e745 --- /dev/null +++ b/option-tree/languages/option-tree.po @@ -0,0 +1,2079 @@ +msgid "" +msgstr "" +"Project-Id-Version: OptionTree\n" +"POT-Creation-Date: 2014-02-09 00:50-0800\n" +"PO-Revision-Date: 2014-02-09 00:50-0800\n" +"Last-Translator: Derek Herman \n" +"Language-Team: Valen Designs\n" +"Language: English\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.7\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;" +"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" +"X-Poedit-Basepath: .\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../ot-loader.php:670 ../assets/theme-mode/demo-theme-options.php:609 +#: ../includes/ot-functions-admin.php:623 +#: ../includes/ot-functions-docs-page.php:371 +#: ../includes/ot-functions-settings-page.php:170 +msgid "Send to OptionTree" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:23 +msgid "Demo Meta Box" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:30 +msgid "Conditions" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:35 +msgid "Show Gallery" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:38 +#, php-format +msgid "Shows the Gallery when set to %s." +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:45 +msgid "Congratulations, you created a gallery!" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:50 +#: ../assets/theme-mode/demo-theme-options.php:208 +#: ../includes/ot-functions-docs-page.php:156 +msgid "Gallery" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:53 +#, php-format +msgid "This is a Gallery option type. It displays when %s." +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:57 +msgid "More Options" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:62 +#: ../assets/theme-mode/demo-theme-options.php:518 +#: ../includes/ot-functions-docs-page.php:266 +msgid "Text" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:65 +msgid "This is a demo Text field." +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:68 +#: ../assets/theme-mode/demo-theme-options.php:533 +#: ../includes/ot-functions-docs-page.php:269 +msgid "Textarea" +msgstr "" + +#: ../assets/theme-mode/demo-meta-boxes.php:71 +msgid "This is a demo Textarea field." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:29 +#: ../assets/theme-mode/demo-theme-options.php:38 +#: ../includes/ot-functions-admin.php:220 +msgid "Option Types" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:30 +msgid "Help content goes here!" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:33 +msgid "Sidebar content goes here!" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:44 +#: ../includes/ot-functions-docs-page.php:110 +msgid "Background" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:45 +#: ../includes/ot-functions-docs-page.php:111 +#, php-format +msgid "" +"The Background option type is for adding background styles to your theme " +"either dynamically via the CSS option type below or manually with %s. The " +"Background option type has filters that allow you to remove fields or change " +"the defaults. For example, you can filter %s to remove unwanted fields from " +"all Background options or an individual one. You can also filter %s. These " +"filters allow you to fine tune the select lists for your specific needs." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:45 +#: ../assets/theme-mode/demo-theme-options.php:594 +#: ../includes/ot-functions-admin.php:3479 +#: ../includes/ot-functions-docs-page.php:111 +#: ../includes/ot-functions-docs-page.php:351 +msgid "and" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:59 +#: ../includes/ot-functions-docs-page.php:113 +msgid "Category Checkbox" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:60 +#: ../includes/ot-functions-docs-page.php:114 +msgid "" +"The Category Checkbox option type displays a list of category IDs. It allows " +"the user to check multiple category IDs and will return that value as an " +"array for use in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:74 +#: ../includes/ot-functions-docs-page.php:116 +msgid "Category Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:75 +#: ../includes/ot-functions-docs-page.php:117 +msgid "" +"The Category Select option type displays a list of category IDs. It allows " +"the user to select only one category ID and will return that value for use " +"in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:89 +#: ../includes/ot-functions-docs-page.php:119 +msgid "Checkbox" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:90 +#: ../includes/ot-functions-docs-page.php:120 +msgid "" +"The Checkbox option type displays a group of choices. It allows the user to " +"check multiple choices and will return that value as an array for use in a " +"custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:104 +#: ../assets/theme-mode/demo-theme-options.php:379 +#: ../assets/theme-mode/demo-theme-options.php:431 +msgid "No" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:109 +#: ../assets/theme-mode/demo-theme-options.php:374 +#: ../assets/theme-mode/demo-theme-options.php:426 +msgid "Yes" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:116 +#: ../includes/ot-functions-docs-page.php:122 +msgid "Colorpicker" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:117 +#: ../includes/ot-functions-docs-page.php:123 +msgid "" +"The Colorpicker option type saves a hexadecimal color code for use in CSS. " +"Use it to modify the color of something in your theme." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:131 +#: ../includes/ot-functions-docs-page.php:125 +msgid "CSS" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:132 +#: ../includes/ot-functions-docs-page.php:126 +#, php-format +msgid "" +"The CSS option type is a textarea that when used properly can add dynamic " +"CSS to your theme from within OptionTree. Unfortunately, due server " +"limitations you will need to create a file named %s at the root level of " +"your theme and change permissions using %s so the server can write to the " +"file. I have had the most success setting this single file to %s but feel " +"free to play around with permissions until everything is working. A good " +"starting point is %s. When the server can save to the file, CSS will " +"automatically be updated when you save your Theme Options." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:132 +#: ../includes/ot-functions-docs-page.php:128 +#, php-format +msgid "" +"This example assumes you have an option with the ID of %1$s. Which means " +"this option will automatically insert the value of %1$s into the %2$s when " +"the Theme Options are saved." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:148 +#: ../includes/ot-functions-docs-page.php:144 +msgid "Custom Post Type Checkbox" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:149 +#: ../includes/ot-functions-docs-page.php:145 +#, php-format +msgid "" +"The Custom Post Type Select option type displays a list of IDs from any " +"available WordPress post type or custom post type. It allows the user to " +"check multiple post IDs for use in a custom function or loop. Requires at " +"least one valid %1$s in the %1$s field." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:163 +#: ../includes/ot-functions-docs-page.php:147 +msgid "Custom Post Type Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:164 +#: ../includes/ot-functions-docs-page.php:148 +#, php-format +msgid "" +"The Custom Post Type Select option type displays a list of IDs from any " +"available WordPress post type or custom post type. It will return a single " +"post ID for use in a custom function or loop. Requires at least one valid " +"%1$s in the %1$s field." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:178 +#: ../includes/ot-functions-docs-page.php:150 +msgid "Date Picker" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:179 +#: ../includes/ot-functions-docs-page.php:151 +msgid "" +"The Date Picker option type is tied to a standard form input field which " +"displays a calendar pop-up that allow the user to pick any date when focus " +"is given to the input field. The returned value is a date formatted string." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:193 +#: ../includes/ot-functions-docs-page.php:153 +msgid "Date Time Picker" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:194 +#: ../includes/ot-functions-docs-page.php:154 +msgid "" +"The Date Time Picker option type is tied to a standard form input field " +"which displays a calendar pop-up that allow the user to pick any date and " +"time when focus is given to the input field. The returned value is a date " +"and time formatted string." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:209 +#: ../includes/ot-functions-docs-page.php:157 +msgid "" +"The Gallery option type saves a comma separated list of image attachment " +"IDs. You will need to create a front-end function to display the images in " +"your theme." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:223 +#: ../includes/ot-functions-docs-page.php:159 +msgid "List Item" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:224 +msgid "" +"The List Item option type allows for a great deal of customization. You can " +"add settings to the List Item and those settings will be displayed to the " +"user when they add a new List Item. Typical use is for creating sliding " +"content or blocks of code for custom layouts." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:238 +msgid "Content" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:254 +#: ../includes/ot-functions-docs-page.php:162 +msgid "Measurement" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:255 +#: ../includes/ot-functions-docs-page.php:163 +#, php-format +msgid "" +"The Measurement option type is a mix of input and select fields. The text " +"input excepts a value and the select lets you choose the unit of measurement " +"to add to that value. Currently the default units are %s, %s, %s, and %s. " +"However, you can change them with the %s filter." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:269 +#: ../includes/ot-functions-docs-page.php:193 +msgid "Numeric Slider" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:270 +#: ../includes/ot-functions-docs-page.php:194 +msgid "" +"The Numeric Slider option type displays a jQuery UI slider. It will return a " +"single numerical value for use in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:284 +#: ../includes/ot-functions-docs-page.php:196 +msgid "On/Off" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:285 +#: ../includes/ot-functions-docs-page.php:197 +#, php-format +msgid "" +"The On/Off option type displays a simple switch that can be used to turn " +"things on or off. The saved return value is either %s or %s." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:299 +#: ../includes/ot-functions-docs-page.php:199 +msgid "Page Checkbox" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:300 +#: ../includes/ot-functions-docs-page.php:200 +msgid "" +"The Page Checkbox option type displays a list of page IDs. It allows the " +"user to check multiple page IDs for use in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:314 +#: ../includes/ot-functions-docs-page.php:202 +msgid "Page Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:315 +#: ../includes/ot-functions-docs-page.php:203 +msgid "" +"The Page Select option type displays a list of page IDs. It will return a " +"single page ID for use in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:329 +#: ../includes/ot-functions-docs-page.php:205 +msgid "Post Checkbox" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:330 +#: ../includes/ot-functions-docs-page.php:206 +msgid "" +"The Post Checkbox option type displays a list of post IDs. It allows the " +"user to check multiple post IDs for use in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:344 +#: ../includes/ot-functions-docs-page.php:208 +msgid "Post Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:345 +#: ../includes/ot-functions-docs-page.php:209 +msgid "" +"The Post Select option type displays a list of post IDs. It will return a " +"single post ID for use in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:359 +#: ../includes/ot-functions-docs-page.php:211 +msgid "Radio" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:360 +#: ../includes/ot-functions-docs-page.php:212 +msgid "" +"The Radio option type displays a group of choices. It allows the user to " +"choose one and will return that value as a string for use in a custom " +"function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:384 +#: ../assets/theme-mode/demo-theme-options.php:436 +msgid "Maybe" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:391 +#: ../includes/ot-functions-docs-page.php:214 +msgid "Radio Image" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:392 +#: ../includes/ot-functions-docs-page.php:215 +#, php-format +msgid "" +"the Radio Images option type is primarily used for layouts. However, you can " +"filter the image list using %s. As well, you can add your own custom images " +"using the choices array." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:406 +#: ../includes/ot-functions-docs-page.php:241 +msgid "Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:407 +#: ../includes/ot-functions-docs-page.php:242 +msgid "" +"The Select option type is used to list anything you want that would be " +"chosen from a select list." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:421 +msgid "-- Choose One --" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:443 +#: ../includes/ot-functions-docs-page.php:244 +msgid "Sidebar Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:444 +#: ../includes/ot-functions-docs-page.php:245 +#, php-format +msgid "" +"This option type makes it possible for users to select a WordPress " +"registered sidebar to use on a specific area. By using the two provided " +"filters, %s, and %s we can be selective about which sidebars are available " +"on a specific content area." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:444 +#: ../includes/ot-functions-docs-page.php:246 +#, php-format +msgid "" +"For example, if we create a WordPress theme that provides the ability to " +"change the Blog Sidebar and we don't want to have the footer sidebars " +"available on this area, we can unset those sidebars either manually or by " +"using a regular expression if we have a common name like %s." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:458 +#: ../includes/ot-functions-docs-page.php:254 +msgid "Tag Checkbox" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:459 +#: ../includes/ot-functions-docs-page.php:255 +msgid "" +"The Tag Checkbox option type displays a list of tag IDs. It allows the user " +"to check multiple tag IDs and will return that value as an array for use in " +"a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:473 +#: ../includes/ot-functions-docs-page.php:257 +msgid "Tag Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:474 +#: ../includes/ot-functions-docs-page.php:258 +msgid "" +"The Tag Select option type displays a list of tag IDs. It allows the user to " +"select only one tag ID and will return that value for use in a custom " +"function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:488 +#: ../includes/ot-functions-docs-page.php:260 +msgid "Taxonomy Checkbox" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:489 +#: ../includes/ot-functions-docs-page.php:261 +msgid "" +"The Taxonomy Checkbox option type displays a list of taxonomy IDs. It allows " +"the user to check multiple taxonomy IDs and will return that value as an " +"array for use in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:503 +#: ../includes/ot-functions-docs-page.php:263 +msgid "Taxonomy Select" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:504 +#: ../includes/ot-functions-docs-page.php:264 +msgid "" +"The Taxonomy Select option type displays a list of taxonomy IDs. It allows " +"the user to select only one taxonomy ID and will return that value for use " +"in a custom function or loop." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:519 +#: ../includes/ot-functions-docs-page.php:267 +msgid "" +"The Text option type is used to save string values. For example, any " +"optional or required text that is of reasonably short character length." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:534 +#: ../includes/ot-functions-docs-page.php:270 +#, php-format +msgid "" +"The Textarea option type is a large string value used for custom code or " +"text in the theme and has a WYSIWYG editor that can be filtered to change " +"the how it is displayed. For example, you can filter %s, %s, %s, and %s." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:548 +#: ../includes/ot-functions-docs-page.php:328 +msgid "Textarea Simple" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:549 +#: ../includes/ot-functions-docs-page.php:329 +msgid "" +"The Textarea Simple option type is a large string value used for custom code " +"or text in the theme. The Textarea Simple does not have a WYSIWYG editor." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:563 +#: ../includes/ot-functions-docs-page.php:344 +msgid "Textblock" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:564 +#: ../includes/ot-functions-docs-page.php:345 +msgid "" +"The Textblock option type is used only on the Theme Option page. It will " +"allow you to create & display HTML, but has no title above the text block. " +"You can then use the Textblock to add a more detailed set of instruction on " +"how the options are used in your theme. You would never use this in your " +"themes template files as it does not save a value." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:578 +#: ../includes/ot-functions-docs-page.php:347 +msgid "Textblock Titled" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:579 +#: ../includes/ot-functions-docs-page.php:348 +msgid "" +"The Textblock Titled option type is used only on the Theme Option page. It " +"will allow you to create & display HTML, and has a title above the text " +"block. You can then use the Textblock Titled to add a more detailed set of " +"instruction on how the options are used in your theme. You would never use " +"this in your themes template files as it does not save a value." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:593 +#: ../includes/ot-functions-docs-page.php:350 +msgid "Typography" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:594 +#: ../includes/ot-functions-docs-page.php:351 +#, php-format +msgid "" +"The Typography option type is for adding typography styles to your theme " +"either dynamically via the CSS option type above or manually with %s. The " +"Typography option type has filters that allow you to remove fields or change " +"the defaults. For example, you can filter %s to remove unwanted fields from " +"all Background options or an individual one. You can also filter %s. These " +"filters allow you to fine tune the select lists for your specific needs." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:608 +#: ../includes/ot-functions-docs-page.php:370 +msgid "Upload" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:609 +#: ../includes/ot-functions-docs-page.php:371 +#, php-format +msgid "" +"The Upload option type is used to upload any WordPress supported media. " +"After uploading, users are required to press the \"%s\" button in order to " +"populate the input with the URI of that media. There is one caveat of this " +"feature. If you import the theme options and have uploaded media on one site " +"the old URI will not reflect the URI of your new site. You will have to re-" +"upload or %s any media to your new server and change the URIs if necessary." +msgstr "" + +#: ../includes/ot-functions-admin.php:50 ../includes/ot-functions-admin.php:51 +#: ../includes/ot-functions-admin.php:157 +#: ../includes/ot-functions-admin.php:181 ../includes/ot-functions.php:264 +msgid "Theme Options" +msgstr "" + +#: ../includes/ot-functions-admin.php:56 +#: ../includes/ot-functions-admin.php:113 +#: ../includes/ot-functions-admin.php:208 +msgid "Theme Options updated." +msgstr "" + +#: ../includes/ot-functions-admin.php:57 +#: ../includes/ot-functions-admin.php:114 +#: ../includes/ot-functions-admin.php:209 +msgid "Theme Options reset." +msgstr "" + +#: ../includes/ot-functions-admin.php:58 +#: ../includes/ot-functions-settings-page.php:94 +#: ../includes/ot-functions-settings-page.php:133 +msgid "Save Changes" +msgstr "" + +#: ../includes/ot-functions-admin.php:96 ../includes/ot-functions-admin.php:97 +#: ../includes/ot-functions-docs-page.php:794 +msgid "OptionTree" +msgstr "" + +#: ../includes/ot-functions-admin.php:107 +#: ../includes/ot-functions-admin.php:108 +#: ../includes/ot-functions-admin.php:151 +#: ../includes/ot-functions-admin.php:175 +#: ../includes/ot-functions-docs-page.php:49 +msgid "Settings" +msgstr "" + +#: ../includes/ot-functions-admin.php:115 +#: ../includes/ot-functions-admin.php:210 +msgid "Save Settings" +msgstr "" + +#: ../includes/ot-functions-admin.php:121 +msgid "Theme Options UI" +msgstr "" + +#: ../includes/ot-functions-admin.php:125 +msgid "Import" +msgstr "" + +#: ../includes/ot-functions-admin.php:129 +msgid "Export" +msgstr "" + +#: ../includes/ot-functions-admin.php:133 +#: ../includes/ot-functions-admin.php:163 +#: ../includes/ot-functions-admin.php:187 +msgid "Layouts" +msgstr "" + +#: ../includes/ot-functions-admin.php:139 +msgid "Theme Options UI Builder" +msgstr "" + +#: ../includes/ot-functions-admin.php:145 +msgid "Settings XML" +msgstr "" + +#: ../includes/ot-functions-admin.php:169 +msgid "Settings PHP File" +msgstr "" + +#: ../includes/ot-functions-admin.php:193 +msgid "Layout Management" +msgstr "" + +#: ../includes/ot-functions-admin.php:202 +#: ../includes/ot-functions-admin.php:203 +msgid "Documentation" +msgstr "" + +#: ../includes/ot-functions-admin.php:216 +msgid "Creating Options" +msgstr "" + +#: ../includes/ot-functions-admin.php:224 +msgid "Function References" +msgstr "" + +#: ../includes/ot-functions-admin.php:228 +#: ../includes/ot-functions-admin.php:270 +#: ../includes/ot-functions-settings-page.php:366 +msgid "Theme Mode" +msgstr "" + +#: ../includes/ot-functions-admin.php:232 +#: ../includes/ot-functions-admin.php:276 +msgid "Meta Boxes" +msgstr "" + +#: ../includes/ot-functions-admin.php:236 +msgid "Code Examples" +msgstr "" + +#: ../includes/ot-functions-admin.php:240 +msgid "Layouts Overview" +msgstr "" + +#: ../includes/ot-functions-admin.php:246 +msgid "Overview of available Theme Option fields." +msgstr "" + +#: ../includes/ot-functions-admin.php:252 +msgid "Option types in alphabetical order & hooks to filter them." +msgstr "" + +#: ../includes/ot-functions-admin.php:258 +msgid "Function Reference:ot_get_option()" +msgstr "" + +#: ../includes/ot-functions-admin.php:264 +msgid "Function Reference:get_option_tree()" +msgstr "" + +#: ../includes/ot-functions-admin.php:282 +msgid "Code examples for front-end development." +msgstr "" + +#: ../includes/ot-functions-admin.php:288 +msgid "What's a layout anyhow?" +msgstr "" + +#: ../includes/ot-functions-admin.php:488 +msgid "The Colorpicker only allows valid hexadecimal values." +msgstr "" + +#: ../includes/ot-functions-admin.php:624 +#: ../includes/ot-functions-option-types.php:239 +#: ../includes/ot-functions-option-types.php:2227 +msgid "Remove Media" +msgstr "" + +#: ../includes/ot-functions-admin.php:625 +msgid "Are you sure you want to reset back to the defaults?" +msgstr "" + +#: ../includes/ot-functions-admin.php:626 +msgid "You can't remove this! But you can edit the values." +msgstr "" + +#: ../includes/ot-functions-admin.php:627 +msgid "Are you sure you want to remove this?" +msgstr "" + +#: ../includes/ot-functions-admin.php:628 +msgid "Are you sure you want to activate this layout?" +msgstr "" + +#: ../includes/ot-functions-admin.php:629 +msgid "Sorry, you can't have settings three levels deep." +msgstr "" + +#: ../includes/ot-functions-admin.php:630 +#: ../includes/ot-functions-option-types.php:775 +msgid "Delete Gallery" +msgstr "" + +#: ../includes/ot-functions-admin.php:631 +#: ../includes/ot-functions-option-types.php:776 +msgid "Edit Gallery" +msgstr "" + +#: ../includes/ot-functions-admin.php:632 +#: ../includes/ot-functions-option-types.php:783 +msgid "Create Gallery" +msgstr "" + +#: ../includes/ot-functions-admin.php:633 +msgid "Are you sure you want to delete this Gallery?" +msgstr "" + +#: ../includes/ot-functions-admin.php:634 +msgid "Today" +msgstr "" + +#: ../includes/ot-functions-admin.php:635 +msgid "Now" +msgstr "" + +#: ../includes/ot-functions-admin.php:636 +msgid "Close" +msgstr "" + +#: ../includes/ot-functions-admin.php:685 +msgid "Option Tree" +msgstr "" + +#: ../includes/ot-functions-admin.php:821 +msgid "General" +msgstr "" + +#: ../includes/ot-functions-admin.php:827 +msgid "Sample Text Field Label" +msgstr "" + +#: ../includes/ot-functions-admin.php:828 +msgid "Description for the sample text field." +msgstr "" + +#: ../includes/ot-functions-admin.php:2045 +msgid "Settings updated." +msgstr "" + +#: ../includes/ot-functions-admin.php:2049 +msgid "Settings could not be saved." +msgstr "" + +#: ../includes/ot-functions-admin.php:2057 +msgid "Settings Imported." +msgstr "" + +#: ../includes/ot-functions-admin.php:2061 +msgid "Settings could not be imported." +msgstr "" + +#: ../includes/ot-functions-admin.php:2068 +msgid "Data Imported." +msgstr "" + +#: ../includes/ot-functions-admin.php:2072 +msgid "Data could not be imported." +msgstr "" + +#: ../includes/ot-functions-admin.php:2080 +msgid "Layouts Imported." +msgstr "" + +#: ../includes/ot-functions-admin.php:2084 +msgid "Layouts could not be imported." +msgstr "" + +#: ../includes/ot-functions-admin.php:2092 +msgid "Layouts Updated." +msgstr "" + +#: ../includes/ot-functions-admin.php:2096 +msgid "Layouts could not be updated." +msgstr "" + +#: ../includes/ot-functions-admin.php:2100 +msgid "Layouts have been deleted." +msgstr "" + +#: ../includes/ot-functions-admin.php:2106 +msgid "Layout activated." +msgstr "" + +#: ../includes/ot-functions-admin.php:2673 +msgid "Left Sidebar" +msgstr "" + +#: ../includes/ot-functions-admin.php:2678 +msgid "Right Sidebar" +msgstr "" + +#: ../includes/ot-functions-admin.php:2683 +msgid "Full Width (no sidebar)" +msgstr "" + +#: ../includes/ot-functions-admin.php:2688 +msgid "Dual Sidebar" +msgstr "" + +#: ../includes/ot-functions-admin.php:2693 +msgid "Left Dual Sidebar" +msgstr "" + +#: ../includes/ot-functions-admin.php:2698 +msgid "Right Dual Sidebar" +msgstr "" + +#: ../includes/ot-functions-admin.php:2728 +#: ../includes/ot-functions-admin.php:2789 +msgid "Image" +msgstr "" + +#: ../includes/ot-functions-admin.php:2739 +#: ../includes/ot-functions-admin.php:2795 +msgid "Link" +msgstr "" + +#: ../includes/ot-functions-admin.php:2750 +#: ../includes/ot-functions-admin.php:2801 +#: ../includes/ot-functions-docs-page.php:43 +#: ../includes/ot-functions-docs-page.php:401 +#: ../includes/ot-functions-docs-page.php:451 +msgid "Description" +msgstr "" + +#: ../includes/ot-functions-admin.php:3284 +msgid "edit" +msgstr "" + +#: ../includes/ot-functions-admin.php:3285 +#: ../includes/ot-functions-admin.php:3353 +#: ../includes/ot-functions-admin.php:3354 +#: ../includes/ot-functions-admin.php:3516 +#: ../includes/ot-functions-admin.php:3517 +#: ../includes/ot-functions-admin.php:3582 +#: ../includes/ot-functions-admin.php:3583 +#: ../includes/ot-functions-admin.php:3710 +#: ../includes/ot-functions-admin.php:3711 +msgid "Edit" +msgstr "" + +#: ../includes/ot-functions-admin.php:3287 +#: ../includes/ot-functions-admin.php:3288 +#: ../includes/ot-functions-admin.php:3356 +#: ../includes/ot-functions-admin.php:3357 +#: ../includes/ot-functions-admin.php:3519 +#: ../includes/ot-functions-admin.php:3520 +#: ../includes/ot-functions-admin.php:3585 +#: ../includes/ot-functions-admin.php:3586 +#: ../includes/ot-functions-admin.php:3644 +#: ../includes/ot-functions-admin.php:3645 +#: ../includes/ot-functions-admin.php:3713 +#: ../includes/ot-functions-admin.php:3714 +msgid "Delete" +msgstr "" + +#: ../includes/ot-functions-admin.php:3294 +msgid "" +"Section Title: Displayed as a menu item on the Theme " +"Options page." +msgstr "" + +#: ../includes/ot-functions-admin.php:3302 +msgid "" +"Section ID: A unique lower case alphanumeric string, " +"underscores allowed." +msgstr "" + +#: ../includes/ot-functions-admin.php:3363 +msgid "" +"Label: Displayed as the label of a form element on the " +"Theme Options page." +msgstr "" + +#: ../includes/ot-functions-admin.php:3371 +#: ../includes/ot-functions-admin.php:3600 +msgid "" +"ID: A unique lower case alphanumeric string, underscores " +"allowed." +msgstr "" + +#: ../includes/ot-functions-admin.php:3379 +msgid "" +"Type: Choose one of the available option types from the " +"dropdown." +msgstr "" + +#: ../includes/ot-functions-admin.php:3390 +msgid "" +"Description: Enter a detailed description for the users to " +"read on the Theme Options page, HTML is allowed. This is also where you " +"enter content for both the Textblock & Textblock Titled option types." +msgstr "" + +#: ../includes/ot-functions-admin.php:3398 +msgid "" +"Choices: This will only affect the following option types: " +"Checkbox, Radio, Select & Select Image." +msgstr "" + +#: ../includes/ot-functions-admin.php:3403 +msgid "Add Choice" +msgstr "" + +#: ../includes/ot-functions-admin.php:3409 +msgid "" +"Settings: This will only affect the List Item option type." +msgstr "" + +#: ../includes/ot-functions-admin.php:3414 +#: ../includes/ot-functions-settings-page.php:93 +msgid "Add Setting" +msgstr "" + +#: ../includes/ot-functions-admin.php:3420 +msgid "" +"Standard: Setting the standard value for your option only " +"works for some option types. Read the OptionTree->Documentation " +"for more information on which ones." +msgstr "" + +#: ../includes/ot-functions-admin.php:3428 +msgid "" +"Rows: Enter a numeric value for the number of rows in your " +"textarea. This will only affect the following option types: CSS, Textarea, & " +"Textarea Simple." +msgstr "" + +#: ../includes/ot-functions-admin.php:3436 +msgid "" +"Post Type: Add a comma separated list of post type like " +"'post,page'. This will only affect the following option types: Custom Post " +"Type Checkbox, & Custom Post Type Select." +msgstr "" + +#: ../includes/ot-functions-admin.php:3444 +msgid "" +"Taxonomy: Add a comma separated list of any registered " +"taxonomy like 'category,post_tag'. This will only affect the following " +"option types: Taxonomy Checkbox, & Taxonomy Select." +msgstr "" + +#: ../includes/ot-functions-admin.php:3452 +msgid "" +"Min, Max, & Step: Add a comma separated list of options in " +"the following format 0,100,1 (slide from 0-100 in " +"intervals of 1). The three values represent the minimum, " +"maximum, and step options and will only affect the Numeric Slider option " +"type." +msgstr "" + +#: ../includes/ot-functions-admin.php:3460 +msgid "CSS Class: Add and optional class to this option type." +msgstr "" + +#: ../includes/ot-functions-admin.php:3468 +#, php-format +msgid "" +"Condition: Add a comma separated list (no spaces) of " +"conditions in which the field will be visible, leave this setting empty to " +"always show the field. In these examples, value is a " +"placeholder for your condition, which can be in the form of %s." +msgstr "" + +#: ../includes/ot-functions-admin.php:3476 +msgid "" +"Operator: Choose the logical operator to compute the result " +"of the conditions." +msgstr "" + +#: ../includes/ot-functions-admin.php:3480 +msgid "or" +msgstr "" + +#: ../includes/ot-functions-admin.php:3526 +#: ../includes/ot-functions-docs-page.php:29 +msgid "Label" +msgstr "" + +#: ../includes/ot-functions-admin.php:3536 +msgid "Value" +msgstr "" + +#: ../includes/ot-functions-admin.php:3546 +msgid "Image Source (Radio Image only)" +msgstr "" + +#: ../includes/ot-functions-admin.php:3592 +msgid "" +"Title: Displayed as a contextual help menu item on the " +"Theme Options page." +msgstr "" + +#: ../includes/ot-functions-admin.php:3608 +msgid "" +"Content: Enter the HTML content about this contextual help " +"item displayed on the Theme Option page for end users to read." +msgstr "" + +#: ../includes/ot-functions-admin.php:3639 +msgid "Layout" +msgstr "" + +#: ../includes/ot-functions-admin.php:3641 +#: ../includes/ot-functions-admin.php:3642 +msgid "Activate" +msgstr "" + +#: ../includes/ot-functions-admin.php:3678 ../includes/ot-meta-box-api.php:202 +#: ../includes/ot-settings-api.php:595 +msgid "Title" +msgstr "" + +#: ../includes/ot-functions-admin.php:3877 +msgid "New Layout" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:30 +msgid "" +"The Label field should be a short but descriptive block of text 100 " +"characters or less with no HTML." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:32 +msgid "ID" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:33 +msgid "" +"The ID field is a unique alphanumeric key used to differentiate each theme " +"option (underscores are acceptable). Also, the plugin will change all text " +"you write in this field to lowercase and replace spaces and special " +"characters with an underscore automatically." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:35 +msgid "Type" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:36 +msgid "" +"You are required to choose one of the supported option types when creating a " +"new option. Here is a list of the available option types. For more " +"information about each type click the Option Types tab to the " +"left." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:44 +msgid "" +"Enter a detailed description for the users to read on the Theme Options " +"page, HTML is allowed. This is also where you enter content for both the " +"Textblock & Textblock Titled option types." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:46 +msgid "Choices" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:47 +msgid "" +"Click the \"Add Choice\" button to add an item to the choices array. This " +"will only affect the following option types: Checkbox, Radio, Select & " +"Select Image." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:50 +msgid "" +"Click the \"Add Setting\" button found inside a newly created setting to add " +"an item to the settings array. This will only affect the List Item type." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:52 +msgid "Standard" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:53 +msgid "" +"Setting the standard value for your option only works for some option types. " +"Those types are one that have a single string value saved to them and not an " +"array of values." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:55 +msgid "Rows" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:56 +msgid "" +"Enter a numeric value for the number of rows in your textarea. This will " +"only affect the following option types: CSS, Textarea, & Textarea Simple." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:58 +msgid "Post Type" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:59 +msgid "" +"Add a comma separated list of post type like post,page. This " +"will only affect the following option types: Custom Post Type Checkbox, & " +"Custom Post Type Select. Below are the default post types available with " +"WordPress and that are also compatible with OptionTree. You can also add " +"your own custom post_type. At this time any does " +"not seem to return results properly and is something I plan on looking into." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:67 +msgid "Taxonomy" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:68 +msgid "" +"Add a comma separated list of any registered taxonomy like category," +"post_tag. This will only affect the following option types: Taxonomy " +"Checkbox, & Taxonomy Select." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:70 +msgid "Min, Max, & Step" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:71 +msgid "" +"Add a comma separated list of options in the following format 0,100,1 (slide from 0-100 in intervals of 1). The " +"three values represent the minimum, maximum, and step options and will only " +"affect the Numeric Slider option type." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:73 +msgid "CSS Class" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:74 +msgid "Add and optional class to any option type." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:76 +msgid "Condition" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:77 +#, php-format +msgid "" +"Add a comma separated list (no spaces) of conditions in which the field will " +"be visible, leave this setting empty to always show the field. In these " +"examples, %s is a placeholder for your condition, which can be in the form " +"of %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:79 +msgid "Operator" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:80 +#, php-format +msgid "" +"Choose the logical operator to compute the result of the conditions. Your " +"options are %s and %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:130 +msgid "Input" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:136 +msgid "Output" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:160 +msgid "" +"The List Item option type replaced the Slider option type and allows for a " +"great deal of customization. You can add settings to the List Item and those " +"settings will be displayed to the user when they add a new List Item. " +"Typical use is for creating sliding content or blocks of code for custom " +"layouts." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:165 +#, php-format +msgid "" +"Example filter to add new units to the Measurement option type. Added to %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:178 +msgid "" +"Example filter to completely change the units in the Measurement option " +"type. Added to functions.php." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:217 +msgid "" +"This example executes the ot_radio_images filter on layout " +"images attached to the my_radio_images field. Added to " +"functions.php." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:248 +msgid "Slider" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:249 +msgid "" +"The Slider option type is technically deprecated. Use the List Item option " +"type instead, as it's infinitely more customizable. Typical use is for " +"creating sliding image content." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:251 +msgid "Tab" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:252 +msgid "" +"The Tab option type will break a section or metabox into tabbed content." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:272 +msgid "" +"Example filters to alter the Textarea option type. Added to functions." +"php." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:274 +msgid "" +"This example keeps WordPress from executing the wpautop filter " +"on the line breaks. The default is true which means it wraps " +"line breaks with an HTML p tag." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:287 +msgid "" +"This example keeps WordPress from executing the media_buttons " +"filter on the textarea WYSIWYG. The default is true which means " +"show the buttons." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:300 +msgid "" +"This example keeps WordPress from executing the tinymce filter " +"on the textarea WYSIWYG. The default is true which means show " +"the tinymce." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:313 +msgid "" +"This example alters the quicktags filter on the textarea " +"WYSIWYG. The default is array( 'buttons' => 'strong,em,link,block,del," +"ins,img,ul,ol,li,code,spell,close' ) which means show those " +"quicktags. It also means you can filter in your own custom quicktags." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:331 +#, php-format +msgid "" +"This example tells WordPress to execute the %s filter on the line breaks. " +"The default is %s which means it does not wraps line breaks with an HTML %s " +"tag. Added to %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:353 +msgid "" +"This example would filter ot_recognized_font_families to build " +"your own font stack. Added to functions.php." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:403 +msgid "" +"This function returns a value from the \"option_tree\" array of saved values " +"or the default value supplied. The returned value would be mixed. Meaning it " +"could be a string, integer, boolean, or array." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:405 +#: ../includes/ot-functions-docs-page.php:455 +msgid "Usage" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:409 +#: ../includes/ot-functions-docs-page.php:459 +msgid "Parameters" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:413 +#: ../includes/ot-functions-docs-page.php:417 +#: ../includes/ot-functions-docs-page.php:463 +msgid "string" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:413 +#: ../includes/ot-functions-docs-page.php:463 +msgid "required" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:413 +msgid "Enter the options unique identifier." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:413 +#: ../includes/ot-functions-docs-page.php:463 +msgid "Default:" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:413 +#: ../includes/ot-functions-docs-page.php:417 +#: ../includes/ot-functions-docs-page.php:463 +#: ../includes/ot-functions-docs-page.php:467 +msgid "None" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:417 +#: ../includes/ot-functions-docs-page.php:467 +#: ../includes/ot-functions-docs-page.php:471 +#: ../includes/ot-functions-docs-page.php:475 +#: ../includes/ot-functions-docs-page.php:479 +msgid "optional" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:417 +msgid "" +"Enter a default return value. This is just incase the request returns null." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:417 +#: ../includes/ot-functions-docs-page.php:467 +#: ../includes/ot-functions-docs-page.php:471 +#: ../includes/ot-functions-docs-page.php:475 +#: ../includes/ot-functions-docs-page.php:479 +msgid "Default" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:447 +msgid "" +"This function has been deprecated. That means it has been replaced by a new " +"function or is no longer supported, and may be removed from future versions. " +"All code that uses this function should be converted to use its replacement." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:449 +msgid "Use" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:449 +msgid "instead" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:453 +msgid "" +"This function returns, or echos if asked, a value from the \"option_tree\" " +"array of saved values." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:463 +msgid "Enter a unique Option Key to get a returned value or array." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:467 +msgid "array" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:467 +msgid "Used to cut down on database queries in template files." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:471 +#: ../includes/ot-functions-docs-page.php:475 +msgid "boolean" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:471 +msgid "Echo the output." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:475 +msgid "Used to indicate the $item_id is an array of values." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:479 +msgid "integer" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:479 +msgid "" +"Numeric offset key for the $item_id array, -1 will return all values (an " +"array starts at 0)." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:507 +msgid "" +"If you're using the plugin version of OptionTree it is highly recommended to " +"include a function_exists check in your code, as described in " +"the examples below. If you've integrated OptionTree directly into your " +"themes root directory, you will not need to wrap your code " +"with function_exists, as you're guaranteed to have the " +"ot_get_option() function available." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:509 +msgid "String Examples" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:511 +msgid "Returns the value of test_input." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:517 +msgid "" +"Returns the value of test_input, but also has a default value " +"if it returns empty." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:523 +msgid "Array Examples" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:525 +msgid "" +"Assigns the value of navigation_ids to the variable $ids. It then echos an unordered list of links (navigation) using " +"wp_list_pages()." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:545 +msgid "" +"The next two examples demonstrate how to use the Measurement option type. The Measurement option type is an array with two key/" +"value pairs. The first is the value of measurement and the second is the " +"unit of measurement." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:571 +msgid "This example displays a very basic slider loop." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:616 +msgid "It's Super Simple" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:618 +msgid "" +"Layouts make your theme awesome! With theme options data that you can save/" +"import/export you can package themes with different color variations, or " +"make it easy to do A/B testing on text and so much more. Basically, you save " +"a snapshot of your data as a layout." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:620 +msgid "" +"Once you have created all your different layouts, or theme variations, you " +"can save them to a separate text file for repackaging with your theme. " +"Alternatively, you could just make different variations for yourself and " +"change your theme with the click of a button, all without deleting your " +"previous options data." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:622 +msgid "" +" Adding a layout is ridiculously easy, follow these steps and you'll be on " +"your way to having a WordPress super theme." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:624 +msgid "For Developers" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:626 +#: ../includes/ot-functions-docs-page.php:655 +msgid "Creating a Layout" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:628 +#: ../includes/ot-functions-docs-page.php:635 +#: ../includes/ot-functions-docs-page.php:641 +msgid "Go to the OptionTre->Settings->Layouts tab." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:629 +msgid "" +"Enter a name for your layout in the text field and hit \"Save Layouts\", " +"you've created your first layout." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:630 +#: ../includes/ot-functions-docs-page.php:659 +msgid "Adding a new layout is as easy as repeating the steps above." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:633 +#: ../includes/ot-functions-docs-page.php:662 +msgid "Activating a Layout" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:636 +msgid "Click on the activate layout button in the actions list." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:639 +#: ../includes/ot-functions-docs-page.php:668 +msgid "Deleting a Layout" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:642 +msgid "Click on the delete layout button in the actions list." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:645 +#: ../includes/ot-functions-docs-page.php:673 +msgid "Edit Layout Data" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:647 +#: ../includes/ot-functions-docs-page.php:657 +#: ../includes/ot-functions-docs-page.php:664 +msgid "Go to the Appearance->Theme Options page." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:648 +#: ../includes/ot-functions-docs-page.php:676 +msgid "" +"Modify and save your theme options and the layout will be updated " +"automatically." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:649 +#: ../includes/ot-functions-docs-page.php:677 +msgid "" +"Saving theme options data will update the currently active layout, so before " +"you start saving make sure you want to modify the current layout." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:650 +msgid "" +"If you want to edit a new layout, first create it then save your theme " +"options." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:653 +msgid "End-Users Mode" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:658 +msgid "" +"Enter a name for your layout in the text field and hit \"New Layout\", " +"you've created your first layout." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:665 +msgid "" +"Choose a layout from the select list and click the \"Activate Layout\" " +"button." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:670 +msgid "End-Users mode does not allow deleting layouts." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:675 +msgid "Go to the Appearance->Theme Options tab." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:706 +#: ../includes/ot-functions-docs-page.php:788 +msgid "How-to-guide" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:708 +msgid "" +"There are a few simple steps you need to take in order to use OptionTree's " +"built in Meta Box API. In the code below I'll show you a basic demo of how " +"to create your very own custom meta box using any number of the option types " +"you have at your disposal. If you would like to see some demo code, there is " +"a directory named theme-mode inside the assets " +"directory that contains a file named demo-meta-boxes.php you " +"can reference." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:710 +msgid "" +"It's important to note that Meta Boxes do not support WYSIWYG editors at " +"this time and if you set one of your options to Textarea it will " +"automatically revert to a Textarea Simple until a valid solution is found. " +"WordPress released this statement regarding the wp_editor() function:" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:712 +msgid "" +"Once instantiated, the WYSIWYG editor cannot be moved around in the DOM. " +"What this means in practical terms, is that you cannot put it in meta-boxes " +"that can be dragged and placed elsewhere on the page." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:714 +msgid "Create and include your custom meta boxes file." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:716 +msgid "" +"Create a file and name it anything you want, maybe meta-boxes.php." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:717 +msgid "" +"As well, you'll probably want to create a directory named includes to put your meta-boxes.php into which will help keep you " +"file structure nice and tidy." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:718 +#: ../includes/ot-functions-docs-page.php:818 +msgid "Add the following code to your functions.php." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:728 +msgid "" +"Add a variation of the following code to your meta-boxes.php. " +"You'll obviously need to fill it in with all your custom array values. It's " +"important to note here that we use the admin_init filter " +"because if you were to call the ot_register_meta_box function " +"before OptionTree was loaded the sky would fall on your head." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:790 +msgid "" +"There are a few simple steps you need to take in order to use OptionTree as " +"a theme included module. In the code below I'll show you a basic demo of how " +"to include the entire plugin as a module, which will allow you to have the " +"most up-to-date version of OptionTree without ever needing to hack the core " +"of the plugin. If you would like to see some demo code, there is a directory " +"named theme-mode inside the assets directory that " +"contains a file named demo-theme-options.php you can reference." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:792 +msgid "Step 1: Include the plugin & turn on theme mode." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:794 +#, php-format +msgid "Download the latest version of %s and unarchive the %s directory." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:795 +#, php-format +msgid "" +"Put the %s directory in the root of your theme. For example, the server path " +"would be %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:796 +#, php-format +msgid "Add the following code to the beginning of your %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:810 +#, php-format +msgid "" +"For a list of all the OptionTree UI display filters refer to the %s file " +"found in the %s directory of this plugin. This file is the starting point " +"for developing themes with Theme Mode." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:812 +msgid "" +"You now have OptionTree built into your theme and anytime an update is " +"available replace the old version with the new one." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:814 +msgid "Step 2: Create Theme Options without using the UI Builder." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:816 +msgid "" +"Create a file and name it anything you want, maybe theme-options.php, or use the built in file export to create it for you. Remember, you " +"should always check the file for errors before including it in your theme." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:817 +msgid "" +"As well, you'll probably want to create a directory named includes to put your theme-options.php into which will help keep " +"you file structure nice and tidy." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:828 +msgid "" +"Add a variation of the following code to your theme-options.php. You'll obviously need to fill it in with all your custom array values " +"for contextual help (optional), sections (required), and settings (required)." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:831 +msgid "" +"The code below is a boilerplate to get your started. For a full list of the " +"available option types click the \"Option Types\" tab above. Also a quick " +"note, you don't need to put OptionTree in theme mode to manually create " +"options but you will want to hide the docs and settings as each time you " +"load the admin area the settings be written over with the code below if " +"they've changed in any way. However, this ensures your settings do not get " +"tampered with by the end-user." +msgstr "" + +#: ../includes/ot-functions-option-types.php:46 +msgid "Sorry, this function does not exist" +msgstr "" + +#: ../includes/ot-functions-option-types.php:120 +msgid "background-repeat" +msgstr "" + +#: ../includes/ot-functions-option-types.php:138 +msgid "background-attachment" +msgstr "" + +#: ../includes/ot-functions-option-types.php:157 +msgid "background-position" +msgstr "" + +#: ../includes/ot-functions-option-types.php:210 +msgid "background-size" +msgstr "" + +#: ../includes/ot-functions-option-types.php:227 +#: ../includes/ot-functions-option-types.php:2215 +msgid "Add Media" +msgstr "" + +#: ../includes/ot-functions-option-types.php:297 +#: ../includes/ot-functions-option-types.php:351 +msgid "No Categories Found" +msgstr "" + +#: ../includes/ot-functions-option-types.php:346 +#: ../includes/ot-functions-option-types.php:607 +#: ../includes/ot-functions-option-types.php:1130 +#: ../includes/ot-functions-option-types.php:1313 +#: ../includes/ot-functions-option-types.php:1673 +#: ../includes/ot-functions-option-types.php:1788 +msgid "Choose One" +msgstr "" + +#: ../includes/ot-functions-option-types.php:555 +#: ../includes/ot-functions-option-types.php:613 +#: ../includes/ot-functions-option-types.php:1264 +#: ../includes/ot-functions-option-types.php:1319 +msgid "No Posts Found" +msgstr "" + +#: ../includes/ot-functions-option-types.php:855 +#: ../includes/ot-functions-option-types.php:1208 +msgid "Add New" +msgstr "" + +#: ../includes/ot-functions-option-types.php:858 +#: ../includes/ot-functions-option-types.php:1211 +msgid "You can re-order with drag & drop, the order will update after saving." +msgstr "" + +#: ../includes/ot-functions-option-types.php:1009 +msgid "On" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1013 +msgid "Off" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1081 +#: ../includes/ot-functions-option-types.php:1136 +msgid "No Pages Found" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1535 +msgid "Choose Sidebar" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1540 +msgid "No Sidebars" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1624 +#: ../includes/ot-functions-option-types.php:1678 +msgid "No Tags Found" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1736 +#: ../includes/ot-functions-option-types.php:1793 +msgid "No Taxonomies Found" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:35 +msgid "Warning!" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:36 +#, php-format +msgid "" +"Go to the %s page if you want to save data, this page is for adding settings." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:37 +#, php-format +msgid "" +"If you're unsure or not completely positive that you should be editing these " +"settings, you should read the %s first." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:38 +msgid "" +"Things could break or be improperly displayed to the end-user if you do one " +"of the following:" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:39 +msgid "" +"Give two sections the same ID, give two settings the same ID, give two " +"contextual help content areas the same ID, don't create any settings, or " +"have a section at the end of the settings list." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:40 +msgid "" +"You can create as many settings as your project requires and use them how " +"you see fit. When you add a setting here, it will be available on the Theme " +"Options page for use in your theme. To separate your settings into sections, " +"click the \"Add Section\" button, fill in the input fields, and a new " +"navigation menu item will be created." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:41 +msgid "" +"All of the settings can be sorted and rearranged to your liking with Drag & " +"Drop. Don't worry about the order in which you create your settings, you can " +"always reorder them." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:92 +msgid "Add Section" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:99 +msgid "Contextual Help" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:103 +msgid "Contextual Help Sidebar" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:103 +msgid "" +"If you decide to add contextual help to the Theme Option page, enter the " +"optional \"Sidebar\" HTML here. This would be an extremely useful place to " +"add links to your themes documentation or support forum. Only after you've " +"added some content below will this display to the user." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:132 +msgid "Add Contextual Help Content" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:168 +msgid "" +"This import method has been deprecated. That means it has been replaced by a " +"new method and is no longer supported, and may be removed from future " +"versions. All themes that use this import method should be converted to use " +"its replacement below." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:170 +#, php-format +msgid "" +"If you were given a Theme Options XML file with a premium or free theme, " +"locate it on your hard drive and upload that file by clicking the upload " +"button. A popup window will appear, upload the XML file and click \"%s\". " +"The file URL should be in the upload input, if it is click \"Import XML\"." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:173 +msgid "Import XML" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:189 +msgid "Add XML" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:226 +msgid "" +"To import your Settings copy and paste what appears to be a random string of " +"alpha numeric characters into this textarea and press the \"Import Settings" +"\" button." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:229 +msgid "Import Settings" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:271 +msgid "" +"Only after you've imported the Settings should you try and update your Theme " +"Options." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:273 +msgid "" +"To import your Theme Options copy and paste what appears to be a random " +"string of alpha numeric characters into this textarea and press the \"Import " +"Theme Options\" button." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:276 +msgid "Import Theme Options" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:318 +msgid "" +"Only after you've imported the Settings should you try and update your " +"Layouts." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:320 +msgid "" +"To import your Layouts copy and paste what appears to be a random string of " +"alpha numeric characters into this textarea and press the \"Import Layouts\" " +"button. Keep in mind that when you import your layouts, the active layout's " +"saved data will write over the current data set for your Theme Options." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:323 +msgid "Import Layouts" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:366 +#, php-format +msgid "" +"Export your Settings into a fully functional %s file. If you want to add " +"your own custom %s text domain to the file, enter it into the text field " +"before exporting. For more information on how to use this file read the " +"documentation on %s. Remember, you should always check the file for errors " +"before including it in your theme." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:375 +msgid "Export Settings File" +msgstr "" + +#: ../includes/ot-functions-settings-page.php:405 +msgid "" +"Export your Settings by highlighting this text and doing a copy/paste into a " +"blank .txt file. Then save the file for importing into another install of " +"WordPress later. Alternatively, you could just paste it into the " +"OptionTree->Settings->Import Settings textarea " +"on another web site." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:441 +msgid "" +"Export your Theme Options data by highlighting this text and doing a copy/" +"paste into a blank .txt file. Then save the file for importing into another " +"install of WordPress later. Alternatively, you could just paste it into the " +"OptionTree->Settings->Import Theme Options " +"textarea on another web site." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:477 +msgid "" +"Export your Layouts by highlighting this text and doing a copy/paste into a " +"blank .txt file. Then save the file for importing into another install of " +"WordPress later. Alternatively, you could just paste it into the " +"OptionTree->Settings->Import Layouts textarea " +"on another web site." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:519 +msgid "" +"To add a new layout enter a unique lower case alphanumeric string (dashes " +"allowed) in the text field and click \"Save Layouts\"." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:520 +msgid "" +"As well, you can activate, remove, and drag & drop the order; all situations " +"require you to click \"Save Layouts\" for the changes to be applied." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:521 +msgid "" +"When you create a new layout it will become active and any changes made to " +"the Theme Options will be applied to it. If you switch back to a different " +"layout immediately after creating a new layout that new layout will have a " +"snapshot of the current Theme Options data attached to it." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:522 +msgid "" +"Visit OptionTree->Documentation->Layouts Overview to see a more " +"in-depth description of what layouts are and how to use them." +msgstr "" + +#: ../includes/ot-functions-settings-page.php:559 +msgid "Save Layouts" +msgstr "" + +#: ../includes/ot-settings-api.php:356 +msgid "Reset Options" +msgstr "" diff --git a/option-tree/languages/option-tree.pot b/option-tree/languages/option-tree.pot deleted file mode 100644 index e01421b..0000000 --- a/option-tree/languages/option-tree.pot +++ /dev/null @@ -1,1849 +0,0 @@ -# Copyright (C) 2014 -# This file is distributed under the same license as the package. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://wordpress.org/tag/option-tree\n" -"POT-Creation-Date: 2014-01-27 07:25:37+00:00\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n" -"Last-Translator: Derek Herman \n" -"Language-Team: LANGUAGE \n" - -#: includes/ot-functions-admin.php:50 includes/ot-functions-admin.php:51 -#: includes/ot-functions-admin.php:157 includes/ot-functions-admin.php:181 -#: includes/ot-functions.php:210 -msgid "Theme Options" -msgstr "" - -#: includes/ot-functions-admin.php:56 includes/ot-functions-admin.php:113 -#: includes/ot-functions-admin.php:208 -msgid "Theme Options updated." -msgstr "" - -#: includes/ot-functions-admin.php:57 includes/ot-functions-admin.php:114 -#: includes/ot-functions-admin.php:209 -msgid "Theme Options reset." -msgstr "" - -#: includes/ot-functions-admin.php:58 -#: includes/ot-functions-settings-page.php:94 -#: includes/ot-functions-settings-page.php:133 -msgid "Save Changes" -msgstr "" - -#: includes/ot-functions-admin.php:96 includes/ot-functions-admin.php:97 -msgid "OptionTree" -msgstr "" - -#: includes/ot-functions-admin.php:107 includes/ot-functions-admin.php:108 -#: includes/ot-functions-admin.php:151 includes/ot-functions-admin.php:175 -#: includes/ot-functions-docs-page.php:49 -msgid "Settings" -msgstr "" - -#: includes/ot-functions-admin.php:115 includes/ot-functions-admin.php:210 -msgid "Save Settings" -msgstr "" - -#: includes/ot-functions-admin.php:121 -msgid "Theme Options UI" -msgstr "" - -#: includes/ot-functions-admin.php:125 -msgid "Import" -msgstr "" - -#: includes/ot-functions-admin.php:129 -msgid "Export" -msgstr "" - -#: includes/ot-functions-admin.php:133 includes/ot-functions-admin.php:163 -#: includes/ot-functions-admin.php:187 -msgid "Layouts" -msgstr "" - -#: includes/ot-functions-admin.php:139 -msgid "Theme Options UI Builder" -msgstr "" - -#: includes/ot-functions-admin.php:145 -msgid "Settings XML" -msgstr "" - -#: includes/ot-functions-admin.php:169 -msgid "Settings PHP File" -msgstr "" - -#: includes/ot-functions-admin.php:193 -msgid "Layout Management" -msgstr "" - -#: includes/ot-functions-admin.php:202 includes/ot-functions-admin.php:203 -msgid "Documentation" -msgstr "" - -#: includes/ot-functions-admin.php:216 -msgid "Creating Options" -msgstr "" - -#: includes/ot-functions-admin.php:220 -msgid "Option Types" -msgstr "" - -#: includes/ot-functions-admin.php:224 -msgid "Function References" -msgstr "" - -#: includes/ot-functions-admin.php:228 includes/ot-functions-admin.php:270 -msgid "Theme Mode" -msgstr "" - -#: includes/ot-functions-admin.php:232 includes/ot-functions-admin.php:276 -msgid "Meta Boxes" -msgstr "" - -#: includes/ot-functions-admin.php:236 -msgid "Code Examples" -msgstr "" - -#: includes/ot-functions-admin.php:240 -msgid "Layouts Overview" -msgstr "" - -#: includes/ot-functions-admin.php:246 -msgid "Overview of available Theme Option fields." -msgstr "" - -#: includes/ot-functions-admin.php:252 -msgid "Option types in alphabetical order & hooks to filter them." -msgstr "" - -#: includes/ot-functions-admin.php:258 -msgid "Function Reference:ot_get_option()" -msgstr "" - -#: includes/ot-functions-admin.php:264 -msgid "Function Reference:get_option_tree()" -msgstr "" - -#: includes/ot-functions-admin.php:282 -msgid "Code examples for front-end development." -msgstr "" - -#: includes/ot-functions-admin.php:288 -msgid "What's a layout anyhow?" -msgstr "" - -#: includes/ot-functions-admin.php:476 -msgid "The Colorpicker only allows valid hexadecimal values." -msgstr "" - -#: includes/ot-functions-admin.php:567 -msgid "Send to OptionTree" -msgstr "" - -#: includes/ot-functions-admin.php:568 -#: includes/ot-functions-option-types.php:239 -#: includes/ot-functions-option-types.php:2107 -msgid "Remove Media" -msgstr "" - -#: includes/ot-functions-admin.php:569 -msgid "Are you sure you want to reset back to the defaults?" -msgstr "" - -#: includes/ot-functions-admin.php:570 -msgid "You can't remove this! But you can edit the values." -msgstr "" - -#: includes/ot-functions-admin.php:571 -msgid "Are you sure you want to remove this?" -msgstr "" - -#: includes/ot-functions-admin.php:572 -msgid "Are you sure you want to activate this layout?" -msgstr "" - -#: includes/ot-functions-admin.php:573 -msgid "Sorry, you can't have settings three levels deep." -msgstr "" - -#: includes/ot-functions-admin.php:574 -#: includes/ot-functions-option-types.php:684 -msgid "Delete Gallery" -msgstr "" - -#: includes/ot-functions-admin.php:575 -#: includes/ot-functions-option-types.php:685 -msgid "Edit Gallery" -msgstr "" - -#: includes/ot-functions-admin.php:576 -#: includes/ot-functions-option-types.php:692 -msgid "Create Gallery" -msgstr "" - -#: includes/ot-functions-admin.php:577 -msgid "Are you sure you want to delete this Gallery?" -msgstr "" - -#: includes/ot-functions-admin.php:623 -msgid "Option Tree" -msgstr "" - -#: includes/ot-functions-admin.php:759 -msgid "General" -msgstr "" - -#: includes/ot-functions-admin.php:765 -msgid "Sample Text Field Label" -msgstr "" - -#: includes/ot-functions-admin.php:766 -msgid "Description for the sample text field." -msgstr "" - -#: includes/ot-functions-admin.php:1972 -msgid "Settings updated." -msgstr "" - -#: includes/ot-functions-admin.php:1976 -msgid "Settings could not be saved." -msgstr "" - -#: includes/ot-functions-admin.php:1984 -msgid "Settings Imported." -msgstr "" - -#: includes/ot-functions-admin.php:1988 -msgid "Settings could not be imported." -msgstr "" - -#: includes/ot-functions-admin.php:1995 -msgid "Data Imported." -msgstr "" - -#: includes/ot-functions-admin.php:1999 -msgid "Data could not be imported." -msgstr "" - -#: includes/ot-functions-admin.php:2007 -msgid "Layouts Imported." -msgstr "" - -#: includes/ot-functions-admin.php:2011 -msgid "Layouts could not be imported." -msgstr "" - -#: includes/ot-functions-admin.php:2019 -msgid "Layouts Updated." -msgstr "" - -#: includes/ot-functions-admin.php:2023 -msgid "Layouts could not be updated." -msgstr "" - -#: includes/ot-functions-admin.php:2027 -msgid "Layouts have been deleted." -msgstr "" - -#: includes/ot-functions-admin.php:2033 -msgid "Layout activated." -msgstr "" - -#: includes/ot-functions-admin.php:2597 -msgid "Left Sidebar" -msgstr "" - -#: includes/ot-functions-admin.php:2602 -msgid "Right Sidebar" -msgstr "" - -#: includes/ot-functions-admin.php:2607 -msgid "Full Width (no sidebar)" -msgstr "" - -#: includes/ot-functions-admin.php:2612 -msgid "Dual Sidebar" -msgstr "" - -#: includes/ot-functions-admin.php:2617 -msgid "Left Dual Sidebar" -msgstr "" - -#: includes/ot-functions-admin.php:2622 -msgid "Right Dual Sidebar" -msgstr "" - -#: includes/ot-functions-admin.php:2652 includes/ot-functions-admin.php:2713 -msgid "Image" -msgstr "" - -#: includes/ot-functions-admin.php:2663 includes/ot-functions-admin.php:2719 -msgid "Link" -msgstr "" - -#: includes/ot-functions-admin.php:2674 includes/ot-functions-admin.php:2725 -#: includes/ot-functions-docs-page.php:43 -#: includes/ot-functions-docs-page.php:392 -#: includes/ot-functions-docs-page.php:442 -msgid "Description" -msgstr "" - -#: includes/ot-functions-admin.php:3208 -msgid "edit" -msgstr "" - -#: includes/ot-functions-admin.php:3209 includes/ot-functions-admin.php:3277 -#: includes/ot-functions-admin.php:3278 includes/ot-functions-admin.php:3440 -#: includes/ot-functions-admin.php:3441 includes/ot-functions-admin.php:3506 -#: includes/ot-functions-admin.php:3507 includes/ot-functions-admin.php:3634 -#: includes/ot-functions-admin.php:3635 -msgid "Edit" -msgstr "" - -#: includes/ot-functions-admin.php:3211 includes/ot-functions-admin.php:3212 -#: includes/ot-functions-admin.php:3280 includes/ot-functions-admin.php:3281 -#: includes/ot-functions-admin.php:3443 includes/ot-functions-admin.php:3444 -#: includes/ot-functions-admin.php:3509 includes/ot-functions-admin.php:3510 -#: includes/ot-functions-admin.php:3568 includes/ot-functions-admin.php:3569 -#: includes/ot-functions-admin.php:3637 includes/ot-functions-admin.php:3638 -msgid "Delete" -msgstr "" - -#: includes/ot-functions-admin.php:3218 -msgid "" -"Section Title: Displayed as a menu item on the Theme " -"Options page." -msgstr "" - -#: includes/ot-functions-admin.php:3226 -msgid "" -"Section ID: A unique lower case alphanumeric string, " -"underscores allowed." -msgstr "" - -#: includes/ot-functions-admin.php:3287 -msgid "" -"Label: Displayed as the label of a form element on the " -"Theme Options page." -msgstr "" - -#: includes/ot-functions-admin.php:3295 includes/ot-functions-admin.php:3524 -msgid "" -"ID: A unique lower case alphanumeric string, underscores " -"allowed." -msgstr "" - -#: includes/ot-functions-admin.php:3303 -msgid "" -"Type: Choose one of the available option types from the " -"dropdown." -msgstr "" - -#: includes/ot-functions-admin.php:3314 -msgid "" -"Description: Enter a detailed description for the users to " -"read on the Theme Options page, HTML is allowed. This is also where you " -"enter content for both the Textblock & Textblock Titled option types." -msgstr "" - -#: includes/ot-functions-admin.php:3322 -msgid "" -"Choices: This will only affect the following option types: " -"Checkbox, Radio, Select & Select Image." -msgstr "" - -#: includes/ot-functions-admin.php:3327 -msgid "Add Choice" -msgstr "" - -#: includes/ot-functions-admin.php:3333 -msgid "" -"Settings: This will only affect the List Item option type." -msgstr "" - -#: includes/ot-functions-admin.php:3338 -#: includes/ot-functions-settings-page.php:93 -msgid "Add Setting" -msgstr "" - -#: includes/ot-functions-admin.php:3344 -msgid "" -"Standard: Setting the standard value for your option only " -"works for some option types. Read the OptionTree->Documentation " -"for more information on which ones." -msgstr "" - -#: includes/ot-functions-admin.php:3352 -msgid "" -"Rows: Enter a numeric value for the number of rows in your " -"textarea. This will only affect the following option types: CSS, Textarea, & " -"Textarea Simple." -msgstr "" - -#: includes/ot-functions-admin.php:3360 -msgid "" -"Post Type: Add a comma separated list of post type like " -"'post,page'. This will only affect the following option types: Custom Post " -"Type Checkbox, & Custom Post Type Select." -msgstr "" - -#: includes/ot-functions-admin.php:3368 -msgid "" -"Taxonomy: Add a comma separated list of any registered " -"taxonomy like 'category,post_tag'. This will only affect the following " -"option types: Taxonomy Checkbox, & Taxonomy Select." -msgstr "" - -#: includes/ot-functions-admin.php:3376 -msgid "" -"Min, Max, & Step: Add a comma separated list of options in " -"the following format 0,100,1 (slide from 0-100 in " -"intervals of 1). The three values represent the minimum, " -"maximum, and step options and will only affect the Numeric Slider option " -"type." -msgstr "" - -#: includes/ot-functions-admin.php:3384 -msgid "CSS Class: Add and optional class to this option type." -msgstr "" - -#: includes/ot-functions-admin.php:3392 -msgid "" -"Condition: Add a comma separated list (no spaces) of " -"conditions in which the field will be visible, leave this setting empty to " -"always show the field. In these examples, value is a " -"placeholder for your condition, which can be in the form of %s." -msgstr "" - -#: includes/ot-functions-admin.php:3400 -msgid "" -"Operator: Choose the logical operator to compute the result " -"of the conditions." -msgstr "" - -#: includes/ot-functions-admin.php:3403 -msgid "and" -msgstr "" - -#: includes/ot-functions-admin.php:3404 -msgid "or" -msgstr "" - -#: includes/ot-functions-admin.php:3450 includes/ot-functions-docs-page.php:29 -msgid "Label" -msgstr "" - -#: includes/ot-functions-admin.php:3460 -msgid "Value" -msgstr "" - -#: includes/ot-functions-admin.php:3470 -msgid "Image Source (Radio Image only)" -msgstr "" - -#: includes/ot-functions-admin.php:3516 -msgid "" -"Title: Displayed as a contextual help menu item on the " -"Theme Options page." -msgstr "" - -#: includes/ot-functions-admin.php:3532 -msgid "" -"Content: Enter the HTML content about this contextual help " -"item displayed on the Theme Option page for end users to read." -msgstr "" - -#: includes/ot-functions-admin.php:3563 -msgid "Layout" -msgstr "" - -#: includes/ot-functions-admin.php:3565 includes/ot-functions-admin.php:3566 -msgid "Activate" -msgstr "" - -#: includes/ot-functions-admin.php:3602 includes/ot-meta-box-api.php:202 -#: includes/ot-settings-api.php:592 -msgid "Title" -msgstr "" - -#: includes/ot-functions-admin.php:3790 -msgid "New Layout" -msgstr "" - -#: includes/ot-functions-docs-page.php:30 -msgid "" -"The Label field should be a short but descriptive block of text 100 " -"characters or less with no HTML." -msgstr "" - -#: includes/ot-functions-docs-page.php:32 -msgid "ID" -msgstr "" - -#: includes/ot-functions-docs-page.php:33 -msgid "" -"The ID field is a unique alphanumeric key used to differentiate each theme " -"option (underscores are acceptable). Also, the plugin will change all text " -"you write in this field to lowercase and replace spaces and special " -"characters with an underscore automatically." -msgstr "" - -#: includes/ot-functions-docs-page.php:35 -msgid "Type" -msgstr "" - -#: includes/ot-functions-docs-page.php:36 -msgid "" -"You are required to choose one of the supported option types when creating a " -"new option. Here is a list of the available option types. For more " -"information about each type click the Option Types tab to the " -"left." -msgstr "" - -#: includes/ot-functions-docs-page.php:44 -msgid "" -"Enter a detailed description for the users to read on the Theme Options " -"page, HTML is allowed. This is also where you enter content for both the " -"Textblock & Textblock Titled option types." -msgstr "" - -#: includes/ot-functions-docs-page.php:46 -msgid "Choices" -msgstr "" - -#: includes/ot-functions-docs-page.php:47 -msgid "" -"Click the \"Add Choice\" button to add an item to the choices array. This " -"will only affect the following option types: Checkbox, Radio, Select & " -"Select Image." -msgstr "" - -#: includes/ot-functions-docs-page.php:50 -msgid "" -"Click the \"Add Setting\" button found inside a newly created setting to add " -"an item to the settings array. This will only affect the List Item type." -msgstr "" - -#: includes/ot-functions-docs-page.php:52 -msgid "Standard" -msgstr "" - -#: includes/ot-functions-docs-page.php:53 -msgid "" -"Setting the standard value for your option only works for some option types. " -"Those types are one that have a single string value saved to them and not an " -"array of values." -msgstr "" - -#: includes/ot-functions-docs-page.php:55 -msgid "Rows" -msgstr "" - -#: includes/ot-functions-docs-page.php:56 -msgid "" -"Enter a numeric value for the number of rows in your textarea. This will " -"only affect the following option types: CSS, Textarea, & Textarea Simple." -msgstr "" - -#: includes/ot-functions-docs-page.php:58 -msgid "Post Type" -msgstr "" - -#: includes/ot-functions-docs-page.php:59 -msgid "" -"Add a comma separated list of post type like post,page. This " -"will only affect the following option types: Custom Post Type Checkbox, & " -"Custom Post Type Select. Below are the default post types available with " -"WordPress and that are also compatible with OptionTree. You can also add " -"your own custom post_type. At this time any does " -"not seem to return results properly and is something I plan on looking into." -msgstr "" - -#: includes/ot-functions-docs-page.php:67 -msgid "Taxonomy" -msgstr "" - -#: includes/ot-functions-docs-page.php:68 -msgid "" -"Add a comma separated list of any registered taxonomy like category," -"post_tag. This will only affect the following option types: Taxonomy " -"Checkbox, & Taxonomy Select." -msgstr "" - -#: includes/ot-functions-docs-page.php:70 -msgid "Min, Max, & Step" -msgstr "" - -#: includes/ot-functions-docs-page.php:71 -msgid "" -"Add a comma separated list of options in the following format 0,100,1 (slide from 0-100 in intervals of 1). The " -"three values represent the minimum, maximum, and step options and will only " -"affect the Numeric Slider option type." -msgstr "" - -#: includes/ot-functions-docs-page.php:73 -msgid "CSS Class" -msgstr "" - -#: includes/ot-functions-docs-page.php:74 -msgid "Add and optional class to any option type." -msgstr "" - -#: includes/ot-functions-docs-page.php:76 -msgid "Condition" -msgstr "" - -#: includes/ot-functions-docs-page.php:77 -msgid "" -"Add a comma separated list (no spaces) of conditions in which the field will " -"be visible, leave this setting empty to always show the field. In these " -"examples, %s is a placeholder for your condition, which can be in the form " -"of %s." -msgstr "" - -#: includes/ot-functions-docs-page.php:79 -msgid "Operator" -msgstr "" - -#: includes/ot-functions-docs-page.php:80 -msgid "" -"Choose the logical operator to compute the result of the conditions. Your " -"options are %s and %s." -msgstr "" - -#: includes/ot-functions-docs-page.php:110 -msgid "Background" -msgstr "" - -#: includes/ot-functions-docs-page.php:111 -msgid "" -"The Background option type is for adding background styles to your theme " -"either dynamically via the CSS option type below or manually with " -"ot_get_option(). Background has filters that allow you to " -"change the defaults. For example, you can filter on " -"ot_recognized_background_repeat, " -"ot_recognized_background_attachment, and " -"ot_recognized_background_position. These filters allow you to " -"fine tune the select lists for your specific CSS needs." -msgstr "" - -#: includes/ot-functions-docs-page.php:113 -msgid "Category Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:114 -msgid "" -"The Category Select option type displays a list of category IDs. It allows " -"the user to select only one category ID and will return that value for use " -"in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:116 -msgid "Category Checkbox" -msgstr "" - -#: includes/ot-functions-docs-page.php:117 -msgid "" -"The Category Checkbox option type displays a list of category IDs. It allows " -"the user to check multiple category IDs and will return that value as an " -"array for use in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:119 -msgid "Checkbox" -msgstr "" - -#: includes/ot-functions-docs-page.php:120 -msgid "" -"The Checkbox option type is fairly self explanatory. Typically used to ask " -"questions. For example, \"Do you want to activate asynchronous Google " -"analytics?\" would be a single checkbox with a value of yes. You could have " -"more complex usages but the idea is that you can easily grab the value of " -"the checkbox and use it in you theme. In this situation you would test if " -"the checkbox has a value and execute a block of code if it does and do " -"nothing if it doesn't." -msgstr "" - -#: includes/ot-functions-docs-page.php:122 -msgid "Colorpicker" -msgstr "" - -#: includes/ot-functions-docs-page.php:123 -msgid "" -"The Colorpicker option type saves a hexadecimal color code for use in CSS. " -"Use it to modify the color of something in your theme." -msgstr "" - -#: includes/ot-functions-docs-page.php:125 -msgid "CSS" -msgstr "" - -#: includes/ot-functions-docs-page.php:126 -msgid "" -"The CSS option type is a textarea that when used properly can add dynamic " -"CSS to your theme from within OptionTree. Unfortunately, due server " -"limitations you will need to create a file named dynamic.css at " -"the root level of your theme and change permissions using chmod so the " -"server can write to the file. I have had the most success setting this " -"single file to 0777 but feel free to play around with permissions until " -"everything is working. A good starting point is 0666. When the server can " -"save to the file CSS will automatically be updated each time you save your " -"theme options." -msgstr "" - -#: includes/ot-functions-docs-page.php:128 -msgid "" -"An example of the CSS option type: This assumes you have an option with the " -"ID of custom_background_css which will display the saved values " -"for that option." -msgstr "" - -#: includes/ot-functions-docs-page.php:130 -msgid "Input" -msgstr "" - -#: includes/ot-functions-docs-page.php:136 -msgid "Output" -msgstr "" - -#: includes/ot-functions-docs-page.php:144 -msgid "Custom Post Type Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:145 -msgid "" -"The Custom Post Type Select option type displays a list of IDs from any " -"available WordPress post type or custom post type. It will return a single " -"post ID for use in a custom function or loop. Requires at least one valid " -"post_type when created in the settings. For some reason " -"any does not work correctly and will looked into in future " -"version." -msgstr "" - -#: includes/ot-functions-docs-page.php:147 -msgid "Custom Post Type Checkbox" -msgstr "" - -#: includes/ot-functions-docs-page.php:148 -msgid "" -"The Custom Post Type Select option type displays a list of IDs from any " -"available WordPress post type or custom post type. It allows the user to " -"check multiple post IDs for use in a custom function or loop. Requires at " -"least one valid post_type when created in the settings. For " -"some reason any does not work correctly and will looked into in " -"future version." -msgstr "" - -#: includes/ot-functions-docs-page.php:150 -msgid "Gallery" -msgstr "" - -#: includes/ot-functions-docs-page.php:151 -msgid "" -"The Gallery option type saves a comma separated list of image attachment " -"IDs. You will need to create a front-end function to display the images in " -"your theme." -msgstr "" - -#: includes/ot-functions-docs-page.php:153 -msgid "List Item" -msgstr "" - -#: includes/ot-functions-docs-page.php:154 -msgid "" -"The list Item replaced the old Slider option type. It allows for a great " -"deal of customization. You can add settings to the List Item and those " -"settings will be displayed to the user when they add a new List Item. " -"Typical use is for creating sliding content or blocks of code for custom " -"layouts." -msgstr "" - -#: includes/ot-functions-docs-page.php:156 -msgid "Measurement" -msgstr "" - -#: includes/ot-functions-docs-page.php:157 -msgid "" -"The Measurement option type is a mix of input and select fields. The text " -"input excepts a value and the select lets you choose the unit of measurement " -"to add to that value. Currently the default units are px, " -"%, em, pt. However, you can change them " -"with the ot_measurement_unit_types filter." -msgstr "" - -#: includes/ot-functions-docs-page.php:159 -msgid "" -"Example filter to add new units to the Measurement option type. Added to " -"functions.php." -msgstr "" - -#: includes/ot-functions-docs-page.php:172 -msgid "" -"Example filter to completely change the units in the Measurement option " -"type. Added to functions.php." -msgstr "" - -#: includes/ot-functions-docs-page.php:187 -msgid "Numeric Slider" -msgstr "" - -#: includes/ot-functions-docs-page.php:188 -msgid "" -"The Numeric Slider option type displays a jQuery UI slider. It will return a " -"single numerical value for use in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:190 -msgid "On/Off" -msgstr "" - -#: includes/ot-functions-docs-page.php:191 -msgid "" -"The On/Off option type displays a simple switch that can be used to turn " -"things on or off. The saved return value is either on or off." -msgstr "" - -#: includes/ot-functions-docs-page.php:193 -msgid "Page Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:194 -msgid "" -"The Page Select option type displays a list of page IDs. It will return a " -"single page ID for use in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:196 -msgid "Page Checkbox" -msgstr "" - -#: includes/ot-functions-docs-page.php:197 -msgid "" -"The Page Select option type displays a list of page IDs. It allows the user " -"to check multiple page IDs for use in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:199 -msgid "Post Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:200 -msgid "" -"The Post Select option type displays a list of post IDs. It will return a " -"single post ID for use in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:202 -msgid "Post Checkbox" -msgstr "" - -#: includes/ot-functions-docs-page.php:203 -msgid "" -"The Post Select option type displays a list of post IDs. It allows the user " -"to check multiple post IDs for use in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:205 -msgid "Radio" -msgstr "" - -#: includes/ot-functions-docs-page.php:206 -msgid "" -"The Radio option type could ask a question. For example, \"Do you want to " -"activate the custom navigation?\" could require a yes or no answer with a " -"radio option. In this situation you would test if the radio has a value of " -"'yes' and execute a block of code, or if it's 'no' execute a different block " -"of code." -msgstr "" - -#: includes/ot-functions-docs-page.php:208 -msgid "Radio Image" -msgstr "" - -#: includes/ot-functions-docs-page.php:209 -msgid "" -"the Radio Images option type is primarily used for layouts. However, you can " -"filter the image list using ot_radio_images. As well, you can " -"add your own custom images using the choices array." -msgstr "" - -#: includes/ot-functions-docs-page.php:211 -msgid "" -"This example executes the ot_radio_images filter on layout " -"images attached to the my_radio_images field. Added to " -"functions.php." -msgstr "" - -#: includes/ot-functions-docs-page.php:235 -msgid "Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:236 -msgid "" -"The Select option type is used to list anything you want that would be " -"chosen from a select list." -msgstr "" - -#: includes/ot-functions-docs-page.php:238 -msgid "Sidebar Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:239 -msgid "" -"This option type makes it possible for users to select a WordPress " -"registered sidebar to use on a specific area. By using the two provided " -"filters, ot_recognized_sidebars, and " -"ot_recognized_sidebars_{$field_id} we can be selective about " -"which sidebars are available on a specific content area." -msgstr "" - -#: includes/ot-functions-docs-page.php:240 -msgid "" -"For example, if we create a WordPress theme that provides the ability to " -"change the Blog Sidebar and we don't want to have the footer sidebars " -"available on this area, we can unset those sidebars either manually or by " -"using a regular expression if we have a common name like footer-" -"sidebar-$i." -msgstr "" - -#: includes/ot-functions-docs-page.php:242 -msgid "Slider" -msgstr "" - -#: includes/ot-functions-docs-page.php:243 -msgid "" -"The Slider option type is technically deprecated. Use the List Item option " -"type instead, as it's infinitely more customizable. Typical use is for " -"creating sliding image content." -msgstr "" - -#: includes/ot-functions-docs-page.php:245 -msgid "Tag Checkbox" -msgstr "" - -#: includes/ot-functions-docs-page.php:246 -msgid "" -"The Tag Checkbox option type displays a list of tag IDs. It allows the user " -"to check multiple tag IDs and will return that value as an array for use in " -"a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:248 -msgid "Tag Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:249 -msgid "" -"The Tag Select option type displays a list of tag IDs. It allows the user to " -"select only one tag ID and will return that value for use in a custom " -"function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:251 -msgid "Taxonomy Checkbox" -msgstr "" - -#: includes/ot-functions-docs-page.php:252 -msgid "" -"The Taxonomy Checkbox option type displays a list of taxonomy IDs. It allows " -"the user to check multiple taxonomy IDs and will return that value as an " -"array for use in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:254 -msgid "Taxonomy Select" -msgstr "" - -#: includes/ot-functions-docs-page.php:255 -msgid "" -"The Taxonomy Select option type displays a list of taxonomy IDs. It allows " -"the user to select only one taxonomy ID and will return that value for use " -"in a custom function or loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:257 -msgid "Text (Input)" -msgstr "" - -#: includes/ot-functions-docs-page.php:258 -msgid "" -"The Text option type would be used to save a string value. For example, a " -"link to feedburner, your Twitter username, or Google Analytics ID are all " -"good candidates. Any optional or required text that is of reasonably short " -"character length." -msgstr "" - -#: includes/ot-functions-docs-page.php:260 -msgid "Textarea" -msgstr "" - -#: includes/ot-functions-docs-page.php:261 -msgid "" -"The Textarea option type is a large string value used for custom code or " -"text in the theme. The new Textarea has a WYSIWYG editor that can be " -"filtered to change the buttons shown. For example, you can filter on " -"wpautop, media_buttons, tinymce, and " -"quicktags." -msgstr "" - -#: includes/ot-functions-docs-page.php:263 -msgid "" -"Example filters to alter the Textarea option type. Added to functions." -"php." -msgstr "" - -#: includes/ot-functions-docs-page.php:265 -msgid "" -"This example keeps WordPress from executing the wpautop filter " -"on the line breaks. The default is true which means it wraps " -"line breaks with an HTML p tag." -msgstr "" - -#: includes/ot-functions-docs-page.php:278 -msgid "" -"This example keeps WordPress from executing the media_buttons " -"filter on the textarea WYSIWYG. The default is true which means " -"show the buttons." -msgstr "" - -#: includes/ot-functions-docs-page.php:291 -msgid "" -"This example keeps WordPress from executing the tinymce filter " -"on the textarea WYSIWYG. The default is true which means show " -"the tinymce." -msgstr "" - -#: includes/ot-functions-docs-page.php:304 -msgid "" -"This example alters the quicktags filter on the textarea " -"WYSIWYG. The default is array( 'buttons' => 'strong,em,link,block,del," -"ins,img,ul,ol,li,code,spell,close' ) which means show those " -"quicktags. It also means you can filter in your own custom quicktags." -msgstr "" - -#: includes/ot-functions-docs-page.php:319 -msgid "Textarea Simple" -msgstr "" - -#: includes/ot-functions-docs-page.php:320 -msgid "" -"The Textarea Simple option type is a large string value used for custom code " -"or text in the theme. The new Textarea Simple does not have a WYSIWYG " -"editor. But you can still filter on wpautop." -msgstr "" - -#: includes/ot-functions-docs-page.php:322 -msgid "" -"This example tells WordPress to execute the wpautop filter on " -"the line breaks. The default is false which means it does not " -"wraps line breaks with an HTML p tag. Added to functions." -"php." -msgstr "" - -#: includes/ot-functions-docs-page.php:335 -msgid "Textblock" -msgstr "" - -#: includes/ot-functions-docs-page.php:336 -msgid "" -"The Textblock option type is used only on the Theme Option page. It will " -"allow you to create & display HTML on your Theme Options page but has no " -"title above the text block. You can then use the Textblock to add a more " -"detailed set of instruction on how the options are used in your theme. You " -"would NEVER use this in your themes template files as it does not save a " -"value." -msgstr "" - -#: includes/ot-functions-docs-page.php:338 -msgid "Textblock Titled" -msgstr "" - -#: includes/ot-functions-docs-page.php:339 -msgid "" -"The Textblock Titled option type is used only on the Theme Option page. It " -"will allow you to create & display HTML on your Theme Options page and has a " -"title above the text block. You can then use the Textblock Titled to add a " -"more detailed set of instruction on how the options are used in your theme. " -"You would NEVER use this in your themes template files as it does not save a " -"value." -msgstr "" - -#: includes/ot-functions-docs-page.php:341 -msgid "Typography" -msgstr "" - -#: includes/ot-functions-docs-page.php:342 -msgid "" -"The Typography option type is for adding typographic styles to your theme " -"either dynamically via the CSS option type below or manually with " -"ot_get_option(). Typography has filters that allow you to " -"change the defaults. For example, you can filter on " -"ot_recognized_font_styles, ot_recognized_font_weights, ot_recognized_font_variants, and " -"ot_recognized_font_families. These filters allow you to fine " -"tune the select lists for your specific CSS needs. The most important one " -"though is ot_recognized_font_families as you can add your " -"Google Fonts to create custom font stacks." -msgstr "" - -#: includes/ot-functions-docs-page.php:344 -msgid "" -"This example would filter ot_recognized_font_families to build " -"your own font stack. Added to functions.php." -msgstr "" - -#: includes/ot-functions-docs-page.php:361 -msgid "Upload" -msgstr "" - -#: includes/ot-functions-docs-page.php:362 -msgid "" -"The Upload option type is used to upload any WordPress supported media. " -"After uploading, users are required to press the \"Send to OptionTree\" " -"button in order to populate the input with the URI of that media. There is " -"one caveat of this feature. If you import the theme options and have " -"uploaded media on one site the old URI will not reflect the URI of your new " -"site. You'll have to re-upload or FTP any media to your new server and " -"change the URIs if necessary." -msgstr "" - -#: includes/ot-functions-docs-page.php:394 -msgid "" -"This function returns a value from the \"option_tree\" array of saved values " -"or the default value supplied. The returned value would be mixed. Meaning it " -"could be a string, integer, boolean, or array." -msgstr "" - -#: includes/ot-functions-docs-page.php:396 -#: includes/ot-functions-docs-page.php:446 -msgid "Usage" -msgstr "" - -#: includes/ot-functions-docs-page.php:400 -#: includes/ot-functions-docs-page.php:450 -msgid "Parameters" -msgstr "" - -#: includes/ot-functions-docs-page.php:404 -#: includes/ot-functions-docs-page.php:408 -#: includes/ot-functions-docs-page.php:454 -msgid "string" -msgstr "" - -#: includes/ot-functions-docs-page.php:404 -#: includes/ot-functions-docs-page.php:454 -msgid "required" -msgstr "" - -#: includes/ot-functions-docs-page.php:404 -msgid "Enter the options unique identifier." -msgstr "" - -#: includes/ot-functions-docs-page.php:404 -#: includes/ot-functions-docs-page.php:454 -msgid "Default:" -msgstr "" - -#: includes/ot-functions-docs-page.php:404 -#: includes/ot-functions-docs-page.php:408 -#: includes/ot-functions-docs-page.php:454 -#: includes/ot-functions-docs-page.php:458 -msgid "None" -msgstr "" - -#: includes/ot-functions-docs-page.php:408 -#: includes/ot-functions-docs-page.php:458 -#: includes/ot-functions-docs-page.php:462 -#: includes/ot-functions-docs-page.php:466 -#: includes/ot-functions-docs-page.php:470 -msgid "optional" -msgstr "" - -#: includes/ot-functions-docs-page.php:408 -msgid "" -"Enter a default return value. This is just incase the request returns null." -msgstr "" - -#: includes/ot-functions-docs-page.php:408 -#: includes/ot-functions-docs-page.php:458 -#: includes/ot-functions-docs-page.php:462 -#: includes/ot-functions-docs-page.php:466 -#: includes/ot-functions-docs-page.php:470 -msgid "Default" -msgstr "" - -#: includes/ot-functions-docs-page.php:438 -msgid "" -"This function has been deprecated. That means it has been replaced by a new " -"function or is no longer supported, and may be removed from future versions. " -"All code that uses this function should be converted to use its replacement." -msgstr "" - -#: includes/ot-functions-docs-page.php:440 -msgid "Use" -msgstr "" - -#: includes/ot-functions-docs-page.php:440 -msgid "instead" -msgstr "" - -#: includes/ot-functions-docs-page.php:444 -msgid "" -"This function returns, or echos if asked, a value from the \"option_tree\" " -"array of saved values." -msgstr "" - -#: includes/ot-functions-docs-page.php:454 -msgid "Enter a unique Option Key to get a returned value or array." -msgstr "" - -#: includes/ot-functions-docs-page.php:458 -msgid "array" -msgstr "" - -#: includes/ot-functions-docs-page.php:458 -msgid "Used to cut down on database queries in template files." -msgstr "" - -#: includes/ot-functions-docs-page.php:462 -#: includes/ot-functions-docs-page.php:466 -msgid "boolean" -msgstr "" - -#: includes/ot-functions-docs-page.php:462 -msgid "Echo the output." -msgstr "" - -#: includes/ot-functions-docs-page.php:466 -msgid "Used to indicate the $item_id is an array of values." -msgstr "" - -#: includes/ot-functions-docs-page.php:470 -msgid "integer" -msgstr "" - -#: includes/ot-functions-docs-page.php:470 -msgid "" -"Numeric offset key for the $item_id array, -1 will return all values (an " -"array starts at 0)." -msgstr "" - -#: includes/ot-functions-docs-page.php:498 -msgid "" -"If you're using the plugin version of OptionTree it is highly recommended to " -"include a function_exists check in your code, as described in " -"the examples below. If you've integrated OptionTree directly into your " -"themes root directory, you will not need to wrap your code " -"with function_exists, as you're guaranteed to have the " -"ot_get_option() function available." -msgstr "" - -#: includes/ot-functions-docs-page.php:500 -msgid "String Examples" -msgstr "" - -#: includes/ot-functions-docs-page.php:502 -msgid "Returns the value of test_input." -msgstr "" - -#: includes/ot-functions-docs-page.php:508 -msgid "" -"Returns the value of test_input, but also has a default value " -"if it returns empty." -msgstr "" - -#: includes/ot-functions-docs-page.php:514 -msgid "Array Examples" -msgstr "" - -#: includes/ot-functions-docs-page.php:516 -msgid "" -"Assigns the value of navigation_ids to the variable $ids. It then echos an unordered list of links (navigation) using " -"wp_list_pages()." -msgstr "" - -#: includes/ot-functions-docs-page.php:536 -msgid "" -"The next two examples demonstrate how to use the Measurement option type. The Measurement option type is an array with two key/" -"value pairs. The first is the value of measurement and the second is the " -"unit of measurement." -msgstr "" - -#: includes/ot-functions-docs-page.php:562 -msgid "This example displays a very basic slider loop." -msgstr "" - -#: includes/ot-functions-docs-page.php:607 -msgid "It's Super Simple" -msgstr "" - -#: includes/ot-functions-docs-page.php:609 -msgid "" -"Layouts make your theme awesome! With theme options data that you can save/" -"import/export you can package themes with different color variations, or " -"make it easy to do A/B testing on text and so much more. Basically, you save " -"a snapshot of your data as a layout." -msgstr "" - -#: includes/ot-functions-docs-page.php:611 -msgid "" -"Once you have created all your different layouts, or theme variations, you " -"can save them to a separate text file for repackaging with your theme. " -"Alternatively, you could just make different variations for yourself and " -"change your theme with the click of a button, all without deleting your " -"previous options data." -msgstr "" - -#: includes/ot-functions-docs-page.php:613 -msgid "" -" Adding a layout is ridiculously easy, follow these steps and you'll be on " -"your way to having a WordPress super theme." -msgstr "" - -#: includes/ot-functions-docs-page.php:615 -msgid "For Developers" -msgstr "" - -#: includes/ot-functions-docs-page.php:618 -#: includes/ot-functions-docs-page.php:648 -msgid "Creating a Layout" -msgstr "" - -#: includes/ot-functions-docs-page.php:620 -#: includes/ot-functions-docs-page.php:627 -#: includes/ot-functions-docs-page.php:633 -msgid "Go to the OptionTre->Settings->Layouts tab." -msgstr "" - -#: includes/ot-functions-docs-page.php:621 -msgid "" -"Enter a name for your layout in the text field and hit \"Save Layouts\", " -"you've created your first layout." -msgstr "" - -#: includes/ot-functions-docs-page.php:622 -#: includes/ot-functions-docs-page.php:652 -msgid "Adding a new layout is as easy as repeating the steps above." -msgstr "" - -#: includes/ot-functions-docs-page.php:625 -#: includes/ot-functions-docs-page.php:655 -msgid "Activating a Layout" -msgstr "" - -#: includes/ot-functions-docs-page.php:628 -msgid "Click on the activate layout button in the actions list." -msgstr "" - -#: includes/ot-functions-docs-page.php:631 -#: includes/ot-functions-docs-page.php:661 -msgid "Deleting a Layout" -msgstr "" - -#: includes/ot-functions-docs-page.php:634 -msgid "Click on the delete layout button in the actions list." -msgstr "" - -#: includes/ot-functions-docs-page.php:637 -#: includes/ot-functions-docs-page.php:666 -msgid "Edit Layout Data" -msgstr "" - -#: includes/ot-functions-docs-page.php:639 -#: includes/ot-functions-docs-page.php:650 -#: includes/ot-functions-docs-page.php:657 -msgid "Go to the Appearance->Theme Options page." -msgstr "" - -#: includes/ot-functions-docs-page.php:640 -#: includes/ot-functions-docs-page.php:669 -msgid "" -"Modify and save your theme options and the layout will be updated " -"automatically." -msgstr "" - -#: includes/ot-functions-docs-page.php:641 -#: includes/ot-functions-docs-page.php:670 -msgid "" -"Saving theme options data will update the currently active layout, so before " -"you start saving make sure you want to modify the current layout." -msgstr "" - -#: includes/ot-functions-docs-page.php:642 -msgid "" -"If you want to edit a new layout, first create it then save your theme " -"options." -msgstr "" - -#: includes/ot-functions-docs-page.php:645 -msgid "End-Users Mode" -msgstr "" - -#: includes/ot-functions-docs-page.php:651 -msgid "" -"Enter a name for your layout in the text field and hit \"New Layout\", " -"you've created your first layout." -msgstr "" - -#: includes/ot-functions-docs-page.php:658 -msgid "" -"Choose a layout from the select list and click the \"Activate Layout\" " -"button." -msgstr "" - -#: includes/ot-functions-docs-page.php:663 -msgid "End-Users mode does not allow deleting layouts." -msgstr "" - -#: includes/ot-functions-docs-page.php:668 -msgid "Go to the Appearance->Theme Options tab." -msgstr "" - -#: includes/ot-functions-docs-page.php:699 -#: includes/ot-functions-docs-page.php:781 -msgid "How-to-guide" -msgstr "" - -#: includes/ot-functions-docs-page.php:701 -msgid "" -"There are a few simple steps you need to take in order to use OptionTree's " -"built in Meta Box API. In the code below I'll show you a basic demo of how " -"to create your very own custom meta box using any number of the option types " -"you have at your disposal. If you would like to see some demo code, there is " -"a directory named theme-mode inside the assets " -"directory that contains a file named demo-meta-boxes.php you " -"can reference." -msgstr "" - -#: includes/ot-functions-docs-page.php:703 -msgid "" -"It's important to note that Meta Boxes do not support WYSIWYG editors at " -"this time and if you set one of your options to Textarea it will " -"automatically revert to a Textarea Simple until a valid solution is found. " -"WordPress released this statement regarding the wp_editor() function:" -msgstr "" - -#: includes/ot-functions-docs-page.php:705 -msgid "" -"Once instantiated, the WYSIWYG editor cannot be moved around in the DOM. " -"What this means in practical terms, is that you cannot put it in meta-boxes " -"that can be dragged and placed elsewhere on the page." -msgstr "" - -#: includes/ot-functions-docs-page.php:707 -msgid "Create and include your custom meta boxes file." -msgstr "" - -#: includes/ot-functions-docs-page.php:709 -msgid "" -"Create a file and name it anything you want, maybe meta-boxes.php." -msgstr "" - -#: includes/ot-functions-docs-page.php:710 -msgid "" -"As well, you'll probably want to create a directory named includes to put your meta-boxes.php into which will help keep you " -"file structure nice and tidy." -msgstr "" - -#: includes/ot-functions-docs-page.php:711 -#: includes/ot-functions-docs-page.php:822 -msgid "Add the following code to your functions.php." -msgstr "" - -#: includes/ot-functions-docs-page.php:721 -msgid "" -"Add a variation of the following code to your meta-boxes.php. " -"You'll obviously need to fill it in with all your custom array values. It's " -"important to note here that we use the admin_init filter " -"because if you were to call the ot_register_meta_box function " -"before OptionTree was loaded the sky would fall on your head." -msgstr "" - -#: includes/ot-functions-docs-page.php:783 -msgid "" -"There are a few simple steps you need to take in order to use OptionTree as " -"a theme included module. In the code below I'll show you a basic demo of how " -"to include the entire plugin as a module, which will allow you to have the " -"most up-to-date version of OptionTree without ever needing to hack the core " -"of the plugin. If you would like to see some demo code, there is a directory " -"named theme-mode inside the assets directory that " -"contains a file named demo-theme-options.php you can reference." -msgstr "" - -#: includes/ot-functions-docs-page.php:785 -msgid "Step 1: Include the plugin & turn on theme mode." -msgstr "" - -#: includes/ot-functions-docs-page.php:787 -msgid "" -"Download the latest version of OptionTree." -msgstr "" - -#: includes/ot-functions-docs-page.php:788 -msgid "Unpack the ZIP archive." -msgstr "" - -#: includes/ot-functions-docs-page.php:789 -msgid "" -"Put the option-tree directory in the root of your theme. For " -"example, the server path would be /wp-content/themes/theme-name/option-" -"tree/." -msgstr "" - -#: includes/ot-functions-docs-page.php:790 -msgid "" -"Add the following code to the beginning of your functions.php." -msgstr "" - -#: includes/ot-functions-docs-page.php:816 -msgid "" -"It's that simple! You now have OptionTree built into your theme and anytime " -"there's an update to the plugin you just replace the old version and you're " -"good to go.." -msgstr "" - -#: includes/ot-functions-docs-page.php:818 -msgid "Step 2: Create Theme Options without using the UI Builder." -msgstr "" - -#: includes/ot-functions-docs-page.php:820 -msgid "" -"Create a file and name it anything you want, maybe theme-options.php, or use the built in file export to create it for you. Remember, you " -"should always check the file for errors before including it in your theme." -msgstr "" - -#: includes/ot-functions-docs-page.php:821 -msgid "" -"As well, you'll probably want to create a directory named includes to put your theme-options.php into which will help keep " -"you file structure nice and tidy." -msgstr "" - -#: includes/ot-functions-docs-page.php:832 -msgid "" -"Add a variation of the following code to your theme-options.php. You'll obviously need to fill it in with all your custom array values " -"for contextual help (optional), sections (required), and settings (required)." -msgstr "" - -#: includes/ot-functions-docs-page.php:835 -msgid "" -"The code below is a boilerplate to get your started. For a full list of the " -"available option types click the \"Option Types\" tab above. Also a quick " -"note, you don't need to put OptionTree in theme mode to manually create " -"options but you will want to hide the docs and settings as each time you " -"load the admin area the settings be written over with the code below if " -"they've changed in any way. However, this ensures your settings do not get " -"tampered with by the end-user." -msgstr "" - -#: includes/ot-functions-option-types.php:46 -msgid "Sorry, this function does not exist" -msgstr "" - -#: includes/ot-functions-option-types.php:120 -msgid "background-repeat" -msgstr "" - -#: includes/ot-functions-option-types.php:138 -msgid "background-attachment" -msgstr "" - -#: includes/ot-functions-option-types.php:157 -msgid "background-position" -msgstr "" - -#: includes/ot-functions-option-types.php:210 -msgid "background-size" -msgstr "" - -#: includes/ot-functions-option-types.php:227 -#: includes/ot-functions-option-types.php:2095 -msgid "Add Media" -msgstr "" - -#: includes/ot-functions-option-types.php:297 -#: includes/ot-functions-option-types.php:351 -msgid "No Categories Found" -msgstr "" - -#: includes/ot-functions-option-types.php:346 -#: includes/ot-functions-option-types.php:604 -#: includes/ot-functions-option-types.php:1039 -#: includes/ot-functions-option-types.php:1222 -#: includes/ot-functions-option-types.php:1553 -#: includes/ot-functions-option-types.php:1668 -msgid "Choose One" -msgstr "" - -#: includes/ot-functions-option-types.php:552 -#: includes/ot-functions-option-types.php:610 -#: includes/ot-functions-option-types.php:1173 -#: includes/ot-functions-option-types.php:1228 -msgid "No Posts Found" -msgstr "" - -#: includes/ot-functions-option-types.php:764 -#: includes/ot-functions-option-types.php:1117 -msgid "Add New" -msgstr "" - -#: includes/ot-functions-option-types.php:767 -#: includes/ot-functions-option-types.php:1120 -msgid "You can re-order with drag & drop, the order will update after saving." -msgstr "" - -#: includes/ot-functions-option-types.php:918 -msgid "On" -msgstr "" - -#: includes/ot-functions-option-types.php:922 -msgid "Off" -msgstr "" - -#: includes/ot-functions-option-types.php:990 -#: includes/ot-functions-option-types.php:1045 -msgid "No Pages Found" -msgstr "" - -#: includes/ot-functions-option-types.php:1444 -msgid "Choose Sidebar" -msgstr "" - -#: includes/ot-functions-option-types.php:1449 -msgid "No Sidebars" -msgstr "" - -#: includes/ot-functions-option-types.php:1504 -#: includes/ot-functions-option-types.php:1558 -msgid "No Tags Found" -msgstr "" - -#: includes/ot-functions-option-types.php:1616 -#: includes/ot-functions-option-types.php:1673 -msgid "No Taxonomies Found" -msgstr "" - -#: includes/ot-functions-settings-page.php:35 -msgid "Warning!" -msgstr "" - -#: includes/ot-functions-settings-page.php:36 -msgid "" -"Go to the %s page if you want to save data, this page is for adding settings." -msgstr "" - -#: includes/ot-functions-settings-page.php:37 -msgid "" -"If you're unsure or not completely positive that you should be editing these " -"settings, you should read the %s first." -msgstr "" - -#: includes/ot-functions-settings-page.php:38 -msgid "" -"Things could break or be improperly displayed to the end-user if you do one " -"of the following:" -msgstr "" - -#: includes/ot-functions-settings-page.php:39 -msgid "" -"Give two sections the same ID, give two settings the same ID, give two " -"contextual help content areas the same ID, don't create any settings, or " -"have a section at the end of the settings list." -msgstr "" - -#: includes/ot-functions-settings-page.php:40 -msgid "" -"You can create as many settings as your project requires and use them how " -"you see fit. When you add a setting here, it will be available on the Theme " -"Options page for use in your theme. To separate your settings into sections, " -"click the \"Add Section\" button, fill in the input fields, and a new " -"navigation menu item will be created." -msgstr "" - -#: includes/ot-functions-settings-page.php:41 -msgid "" -"All of the settings can be sorted and rearranged to your liking with Drag & " -"Drop. Don't worry about the order in which you create your settings, you can " -"always reorder them." -msgstr "" - -#: includes/ot-functions-settings-page.php:92 -msgid "Add Section" -msgstr "" - -#: includes/ot-functions-settings-page.php:99 -msgid "Contextual Help" -msgstr "" - -#: includes/ot-functions-settings-page.php:103 -msgid "Contextual Help Sidebar" -msgstr "" - -#: includes/ot-functions-settings-page.php:103 -msgid "" -"If you decide to add contextual help to the Theme Option page, enter the " -"optional \"Sidebar\" HTML here. This would be an extremely useful place to " -"add links to your themes documentation or support forum. Only after you've " -"added some content below will this display to the user." -msgstr "" - -#: includes/ot-functions-settings-page.php:132 -msgid "Add Contextual Help Content" -msgstr "" - -#: includes/ot-functions-settings-page.php:168 -msgid "" -"This import method has been deprecated. That means it has been replaced by a " -"new method and is no longer supported, and may be removed from future " -"versions. All themes that use this import method should be converted to use " -"its replacement below." -msgstr "" - -#: includes/ot-functions-settings-page.php:170 -msgid "" -"If you were given a Theme Options XML file with a premium or free theme, " -"locate it on your hard drive and upload that file by clicking the blue " -"upload button. A popup window will appear, upload the XML file and click " -"\"Send to OptionTree\". The file URL should be in the upload input, if it is " -"click \"Import XML\"." -msgstr "" - -#: includes/ot-functions-settings-page.php:173 -msgid "Import XML" -msgstr "" - -#: includes/ot-functions-settings-page.php:189 -msgid "Add XML" -msgstr "" - -#: includes/ot-functions-settings-page.php:226 -msgid "" -"To import your Settings copy and paste what appears to be a random string of " -"alpha numeric characters into this textarea and press the \"Import Settings" -"\" button." -msgstr "" - -#: includes/ot-functions-settings-page.php:229 -msgid "Import Settings" -msgstr "" - -#: includes/ot-functions-settings-page.php:271 -msgid "" -"Only after you've imported the Settings should you try and update your Theme " -"Options." -msgstr "" - -#: includes/ot-functions-settings-page.php:273 -msgid "" -"To import your Theme Options copy and paste what appears to be a random " -"string of alpha numeric characters into this textarea and press the \"Import " -"Theme Options\" button." -msgstr "" - -#: includes/ot-functions-settings-page.php:276 -msgid "Import Theme Options" -msgstr "" - -#: includes/ot-functions-settings-page.php:318 -msgid "" -"Only after you've imported the Settings should you try and update your " -"Layouts." -msgstr "" - -#: includes/ot-functions-settings-page.php:320 -msgid "" -"To import your Layouts copy and paste what appears to be a random string of " -"alpha numeric characters into this textarea and press the \"Import Layouts\" " -"button. Keep in mind that when you import your layouts, the active layout's " -"saved data will write over the current data set for your Theme Options." -msgstr "" - -#: includes/ot-functions-settings-page.php:323 -msgid "Import Layouts" -msgstr "" - -#: includes/ot-functions-settings-page.php:366 -msgid "" -"Export your Settings into a fully functional theme-options.php " -"file by clicking this button. For more information on how to use this file " -"read the theme mode %s. Remember, you should always check the file for " -"errors before including it in your theme." -msgstr "" - -#: includes/ot-functions-settings-page.php:373 -msgid "Export Settings File" -msgstr "" - -#: includes/ot-functions-settings-page.php:403 -msgid "" -"Export your Settings by highlighting this text and doing a copy/paste into a " -"blank .txt file. Then save the file for importing into another install of " -"WordPress later. Alternatively, you could just paste it into the " -"OptionTree->Settings->Import Settings textarea " -"on another web site." -msgstr "" - -#: includes/ot-functions-settings-page.php:439 -msgid "" -"Export your Theme Options data by highlighting this text and doing a copy/" -"paste into a blank .txt file. Then save the file for importing into another " -"install of WordPress later. Alternatively, you could just paste it into the " -"OptionTree->Settings->Import Theme Options " -"textarea on another web site." -msgstr "" - -#: includes/ot-functions-settings-page.php:475 -msgid "" -"Export your Layouts by highlighting this text and doing a copy/paste into a " -"blank .txt file. Then save the file for importing into another install of " -"WordPress later. Alternatively, you could just paste it into the " -"OptionTree->Settings->Import Layouts textarea " -"on another web site." -msgstr "" - -#: includes/ot-functions-settings-page.php:517 -msgid "" -"To add a new layout enter a unique lower case alphanumeric string (dashes " -"allowed) in the text field and click \"Save Layouts\"." -msgstr "" - -#: includes/ot-functions-settings-page.php:518 -msgid "" -"As well, you can activate, remove, and drag & drop the order; all situations " -"require you to click \"Save Layouts\" for the changes to be applied." -msgstr "" - -#: includes/ot-functions-settings-page.php:519 -msgid "" -"When you create a new layout it will become active and any changes made to " -"the Theme Options will be applied to it. If you switch back to a different " -"layout immediately after creating a new layout that new layout will have a " -"snapshot of the current Theme Options data attached to it." -msgstr "" - -#: includes/ot-functions-settings-page.php:520 -msgid "" -"Visit OptionTree->Documentation->Layouts Overview to see a more " -"in-depth description of what layouts are and how to use them." -msgstr "" - -#: includes/ot-functions-settings-page.php:557 -msgid "Save Layouts" -msgstr "" - -#: includes/ot-settings-api.php:353 -msgid "Reset Options" -msgstr "" diff --git a/option-tree/ot-loader.php b/option-tree/ot-loader.php index f526eba..ec04bd4 100644 --- a/option-tree/ot-loader.php +++ b/option-tree/ot-loader.php @@ -3,7 +3,7 @@ * Plugin Name: OptionTree * Plugin URI: http://wp.envato.com * Description: Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. - * Version: 2.2.2 + * Version: 2.3.0 * Author: Derek Herman * Author URI: http://valendesigns.com * License: GPLv3 @@ -142,19 +142,7 @@ private function constants() { /** * Current Version number. */ - define( 'OT_VERSION', '2.2.2' ); - - /** - * For developers: Allow Unfiltered HTML in all the textareas. - * - * Run a filter and set to true if you want all the - * users to be able to post anything in the textareas. - * WARNING: This opens a security hole for low level users - * to be able to post malicious scripts, you've been warned. - * - * @since 2.0 - */ - define( 'OT_ALLOW_UNFILTERED_HTML', apply_filters( 'ot_allow_unfiltered_html', false ) ); + define( 'OT_VERSION', '2.3.0' ); /** * For developers: Theme mode. @@ -201,7 +189,7 @@ private function constants() { define( 'OT_SHOW_OPTIONS_UI', apply_filters( 'ot_show_options_ui', true ) ); /** - * For developers: Hide Settings Import + * For developers: Show Settings Import * * Run a filter and set to false if you want to hide the * Settings Import options on the Import page. @@ -211,7 +199,7 @@ private function constants() { define( 'OT_SHOW_SETTINGS_IMPORT', apply_filters( 'ot_show_settings_import', true ) ); /** - * For developers: Hide Settings Export + * For developers: Show Settings Export * * Run a filter and set to false if you want to hide the * Settings Import options on the Import page. @@ -259,6 +247,18 @@ private function constants() { */ define( 'OT_META_BOXES', apply_filters( 'ot_meta_boxes', true ) ); + /** + * For developers: Allow Unfiltered HTML in all the textareas. + * + * Run a filter and set to true if you want all the + * users to be able to post anything in the textareas. + * WARNING: This opens a security hole for low level users + * to be able to post malicious scripts, you've been warned. + * + * @since 2.0 + */ + define( 'OT_ALLOW_UNFILTERED_HTML', apply_filters( 'ot_allow_unfiltered_html', false ) ); + /** * Check if in theme mode. * @@ -539,7 +539,7 @@ public function global_admin_css() { * AJAX utility function for adding a new section. */ public function add_section() { - echo ot_sections_view( 'option_tree_settings[sections]', $_REQUEST['count'] ); + echo ot_sections_view( ot_settings_id() . '[sections]', $_REQUEST['count'] ); die(); } @@ -667,7 +667,7 @@ public function change_image_button( $translation, $text, $domain ) { // Once is enough. remove_filter( 'gettext', array( $this, 'ot_change_image_button' ) ); - return 'Send to OptionTree'; + return apply_filters( 'ot_upload_text', __( 'Send to OptionTree', 'option-tree' ) ); } diff --git a/option-tree/readme.txt b/option-tree/readme.txt index 3a5e0d3..6465169 100644 --- a/option-tree/readme.txt +++ b/option-tree/readme.txt @@ -1,37 +1,102 @@ === OptionTree === Contributors: valendesigns Donate link: http://bit.ly/NuXI3T -Tags: admin, theme options, meta boxes, options, admin interface, ajax +Tags: options, theme options, meta boxes Requires at least: 3.5 Tested up to: 3.8.1 -Stable tag: 2.2.2 +Stable tag: 2.3.0 License: GPLv3 Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. == Description == -Theme Options are what make a WordPress Theme truly custom. OptionTree attempts to bridge the gap between developers, designers and end-users by solving the admin User Interface issues that arise when creating a custom theme. Designers shouldn't have to be limited to what they can create visually because their programming skills aren't as developed as they would like. Also, programmers shouldn't have to recreate the wheel for every new project, so in walks OptionTree. +OptionTree attempts to bridge the gap between WordPress developers, designers and end-users by creating fully responsive option panels and meta boxes with an ease unlike any other plugin. Packed full of advanced features with tons of hooks, and filters to adjust every aspect of the UX. Build your theme options with a drag & drop interface locally and export a fully functioning `theme-options.php` file for production use that's i18n translation ready with you own custom text domain. And, in just a few simple lines of code, all your themes can have separate settings arrays saved to the database with unique IDs. Not only that, but OptionTree takes full advantage of the new color schemes introduced in WordPress 3.8 and looks and feels built-in. + +#### Option Types +This is a complete list of all the available option types that come shipped with OptionTree. If you don't see the one you need, just know that adding your own custom option type is a breeze. + +* Background +* Category Checkbox +* Category Select +* Checkbox +* Color Picker +* CSS +* Custom Post Type Checkbox +* Custom Post Type Select +* Date Picker +* Date Time Picker +* Gallery +* List Item +* Measurement +* Numeric Slider +* On/Off +* Page Checkbox +* Page Select +* Post Checkbox +* Post Select +* Radio +* Radio Image +* Select +* Sidebar Select +* Slider +* Tab +* Tag Checkbox +* Tag Select +* Taxonomy Checkbox +* Taxonomy Select +* Text +* Textarea +* Textarea Simple +* Textblock +* Textblock Titled +* Typography +* Upload + +#### Learn More +If you're like me, you want to know how everything works. Download and activate the [OptionTree Theme](https://github.com/valendesigns/option-tree-theme) and see first hand how to integrate OptionTree into your own project. I'll walk you through installing OptionTree and you'll get a chance to see all the various options and filters first hand and in the wild. + +#### Contributing +To contribute or report bugs, please go to the [OptionTree Github](https://github.com/valendesigns/option-tree) repository. + +#### Sponsorship +OptionTree is a project partly sponsored by ThemeForest, the largest WordPress theme marketplace on the web. -With OptionTree you can create as many Theme Options as your project requires and use them how you see fit. When you add a option to the Settings page, it will be available on the Theme Options page for use in your theme. +== Installation == -Included is the ability to Import/Export all the theme options and data for packaging with custom themes or local development. With the Import/Export feature you can get a theme set up on a live server in minutes. Theme authors can now create different version of their themes and include them with the download. It makes setting up different theme styles & options easier than ever because a theme user installs the plugin and theme and either adds their own settings or imports your defaults. +**Plugin Mode** -A new feature in OptionTree 2.0 is the ability to include the plugin directly in your themes root directory. Not only does that mean your theme is guaranteed to have the plugin installed you also get the ability to interact directly with OptionTree through settings and meta box arrays. You can now tell OptionTree what settings you want and know that nobody will break your theme by changing settings through the UI Builder. It's just a better plugin now! +1. Upload `option-tree` to the `/wp-content/plugins/` directory +1. Activate the plugin through the `Plugins` menu in WordPress +1. Click the `OptionTree->Documentation` link in the WordPress admin sidebar menu for further setup assistance. -OptionTree is a project sponsored by ThemeForest, the largest WordPress theme marketplace on the web, and was originally conceived to help ThemeForest authors quickly power up their themes. But it's here for the benefit of one and all, so option up folks! +**Theme Mode** -== Installation == +1. Download the latest version of OptionTree and unarchive the `.zip` directory. +1. Put the `option-tree` directory in the root of your theme. For example, the server path would be `/wp-content/themes/theme-name/option-tree/`. +1. Add the following code to the beginning of your `functions.php`. -1. Upload `option-tree` to the `/wp-content/plugins/` directory -1. Activate the plugin through the 'Plugins' menu in WordPress -1. Click the `OptionTree->Documentation` link in the WordPress admin sidebar menu for further setup assistance. +`/** + * Required: set 'ot_theme_mode' filter to true. + */ +add_filter( 'ot_theme_mode', '__return_true' ); + +/** + * Required: include OptionTree. + */ +load_template( trailingslashit( get_template_directory() ) . 'option-tree/ot-loader.php' );` + +For a list of all the OptionTree UI display filters refer to the `demo-functions.php` file found in the `/assets/theme-mode/` directory of this plugin. This file is the starting point for developing themes with Theme Mode. == Frequently Asked Questions == -= Is this plugin PHP5 only? = += I get errors or a blank screen when I activate the plugin. What's the deal? = + +The most likely scenario is your theme already has OptionTree installed in Theme Mode. And since the plugin and theme version can't both be active at the same time without the sky falling on your head, your site has decided to throw in the towel. If that's not your issue, open up a support request and we'll figure it out together. -Yes. OptionTree & WordPress both require PHP5. += Is there a demo theme I can install? = + +There sure is, and I'm glad you asked. Download and activate the [OptionTree Theme](https://github.com/valendesigns/option-tree-theme) and get some experience setting up OptionTree on your own with detailed directions and tips. == Screenshots == @@ -41,6 +106,38 @@ Yes. OptionTree & WordPress both require PHP5. == Changelog == += 2.3.0 = +* Added the Tab option type. +* Added Ace Editor to the CSS option type. Contributors via github @imangm and @valendesigns. +* Added support for WordPress 3.8 color schemes. +* Added support for RTL languages. Contributors via github @omid-khd and @valendesigns. +* Added actions before and after the enqueue styles and scripts. +* Added Date Picker option type. Contributors via github @jetonr and @valendesigns. +* Added Date Time Picker option type. Contributors via github @jetonr and @valendesigns. +* Added filter 'ot_list_item_title_label' to change the label for a List Item's required title field. +* Added filter 'ot_list_item_title_desc' to change the description for a List Item's required title field. +* Added filter 'ot_options_id' to change the 'option_tree' option ID to a unique value. +* Added filter 'ot_settings_id' to change the 'option_tree_settings' option ID to a unique value. +* Added filter 'ot_layouts_id' to change the 'option_tree_layouts' option ID to a unique value. +* Added filter 'ot_header_logo_link' to change the logo link inside the header of OptionTree. +* Added filter 'ot_header_version_text' to change the version text inside the header of OptionTree. +* Added action 'ot_header_list' to add additional theme specific list items to the header of OptionTree. +* Added filter 'ot_upload_text' to change the "Send to OptionTree" text. +* Added the CSS Class field value to the parent `.format-settings` div in addition to the class being added to the element. Each class is now appended with `-wrap`. +* Added support for [Composer](https://github.com/composer/composer). Contributors via github @designst. +* Added support for adding I18n text domains to the exported `theme-options.php` file. +* Fixed a bug that kept the UI from displaying when using the `ot_type_background_size_choices` filter. +* Fixed a bug that caused the Gallery option type to save a single space instead of `null`. +* Fixed the return value of the Background, Measurement, and Typography option types. They now return `null` if no values are saved to the array. +* Fixed a bug that resulted in a PHP warning if the choices array was set to an empty string. +* Updated the documentation, including this `readme.txt` and a new demo [OptionTree Theme](https://github.com/valendesigns/option-tree-theme) to parallel OptionTree. +* Added filter 'ot_type_radio_image_src' which allows the Radio Image option type source URI to be changed. Contributors via github @bitcommit. + += 2.2.3 = +* Hotfix - Allow empty condition values. For example, `field_id:is()` or `field_id:not()` would now be valid syntax. +* Hotfix - Fixed a bug in the `init_upload_fix` JavaScript method. +* Hotfix - Fixed a bug in the `url_exists` javaScript method. The code will no longer will check if a URL exists on another domain. + = 2.2.2 = * Hotfix - Added support for both upper and lower case conditions operator. * Hotfix - Updated the color and font size of inline code. @@ -322,6 +419,9 @@ Yes. OptionTree & WordPress both require PHP5. == Upgrade Notice == += 2.3.0 = +As with each major release, please install OptionTree on a test server before upgrading your live site. + = 2.1.4 = If you're not the developer of this theme, please ask them to test compatibility with version 2.1 before upgrading. If you are the developer, I urge you to do the same in a controlled environment. @@ -347,4 +447,4 @@ Added theme integration for developers. It's now possible to have a default XML Having multiple sliders caused a naming collision in the JavaScript and is now fixed. Upgrade ASAP to have multiple sliders available in the UI. = 1.1.4 = -Fixed the returned value of the get_option_tree() function when $is_array is set to false. If you have created any slider or measurement option types please read the updated documentation for examples on how to use them in your theme. +Fixed the returned value of the get_option_tree() function when $is_array is set to false. If you have created any slider or measurement option types please read the updated documentation for examples on how to use them in your theme. \ No newline at end of file From 4c642f152aec14f57d496ff66a2171c09df25330 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 10 Feb 2014 14:47:37 +0100 Subject: [PATCH 10/62] 2.1.1 --- changelog.txt | 9 +- footer.php | 2 +- functions.php | 10 +- functions/documentation/assets/bootstrap.css | 7118 ++++++++++++++++++ functions/documentation/assets/docs.css | 56 + functions/documentation/documentation.html | 594 ++ functions/dynamic-styles.php | 10 +- functions/theme-options.php | 184 +- header.php | 2 +- page-templates/child-menu.php | 2 +- page.php | 2 +- single.php | 8 +- style.css | 2 +- 13 files changed, 7856 insertions(+), 143 deletions(-) create mode 100644 functions/documentation/assets/bootstrap.css create mode 100644 functions/documentation/assets/docs.css create mode 100644 functions/documentation/documentation.html diff --git a/changelog.txt b/changelog.txt index 7323bf9..50f6ce1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,14 @@ Theme : Anew -Version : 2.1.0 +Version : 2.1.1 Author : Alexander "Alx" Agnarson - http://alxmedia.se +February 10 2014 - 2.1.1 +=========================================================== +- Updated to OptionTree 2.3.0 +- Changed checkbox options to the new on-off toggle +- Added additional Google fonts +- Updated help dropdown information and included theme documentation with the theme + January 29 2014 - 2.1.0 =========================================================== - Updated to OptionTree 2.2.2 diff --git a/footer.php b/footer.php index f53f23f..22f9ca4 100644 --- a/footer.php +++ b/footer.php @@ -61,7 +61,7 @@
- + diff --git a/functions.php b/functions.php index f22322c..efb8bae 100644 --- a/functions.php +++ b/functions.php @@ -129,8 +129,8 @@ function alx_scripts() { function alx_styles() { wp_enqueue_style( 'style', get_stylesheet_uri() ); - if ( !ot_get_option('responsive') ) { wp_enqueue_style( 'responsive', get_template_directory_uri().'/responsive.css' ); } - if ( ot_get_option('custom') ) { wp_enqueue_style( 'custom', get_template_directory_uri().'/custom.css' ); } + if ( ot_get_option('responsive') != 'off' ) { wp_enqueue_style( 'responsive', get_template_directory_uri().'/responsive.css' ); } + if ( ot_get_option('custom') == 'on' ) { wp_enqueue_style( 'custom', get_template_directory_uri().'/custom.css' ); } wp_enqueue_style( 'font-awesome', get_template_directory_uri().'/fonts/font-awesome.min.css' ); } @@ -377,10 +377,10 @@ function alx_post_formats_script( $hook ) { function alx_body_class( $classes ) { $classes[] = alx_layout_class(); - if ( !ot_get_option( 'boxed' ) ) { $classes[] = 'full-width'; } - if ( ot_get_option( 'boxed' ) ) { $classes[] = 'boxed'; } + if ( ot_get_option( 'boxed' ) != 'on' ) { $classes[] = 'full-width'; } + if ( ot_get_option( 'boxed' ) == 'on' ) { $classes[] = 'boxed'; } if ( has_nav_menu('topbar') ) { $classes[] = 'topbar-enabled'; } - if ( ot_get_option('mobile-sidebar-hide') ) { $classes[] = 'mobile-sidebar-hide'; } + if ( ot_get_option('mobile-sidebar-hide') != 'on' ) { $classes[] = 'mobile-sidebar-hide'; } if ( ot_get_option('light-header-text') ) { $classes[] = 'light-header-text'; } return $classes; } diff --git a/functions/documentation/assets/bootstrap.css b/functions/documentation/assets/bootstrap.css new file mode 100644 index 0000000..377dff3 --- /dev/null +++ b/functions/documentation/assets/bootstrap.css @@ -0,0 +1,7118 @@ +/*! + * Bootstrap v3.0.3 (http://getbootstrap.com) + * Copyright 2013 Twitter, Inc. + * Licensed under http://www.apache.org/licenses/LICENSE-2.0 + */ + +/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], +template { + display: none; +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a { + background: transparent; +} + +a:focus { + outline: thin dotted; +} + +a:active, +a:hover { + outline: 0; +} + +h1 { + margin: 0.67em 0; + font-size: 2em; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +hr { + height: 0; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +mark { + color: #000; + background: #ff0; +} + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +pre { + white-space: pre-wrap; +} + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +button, +input, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: 100%; +} + +button, +input { + line-height: normal; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; + box-sizing: border-box; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + select { + background: #fff !important; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a { + color: #428bca; + text-decoration: none; +} + +a:hover, +a:focus { + color: #2a6496; + text-decoration: underline; +} + +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +img { + vertical-align: middle; +} + +.img-responsive { + display: block; + height: auto; + max-width: 100%; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h1 small, +h2 small, +h3 small, +h1 .small, +h2 .small, +h3 .small { + font-size: 65%; +} + +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h4 small, +h5 small, +h6 small, +h4 .small, +h5 .small, +h6 .small { + font-size: 75%; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 200; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small, +.small { + font-size: 85%; +} + +cite { + font-style: normal; +} + +.text-muted { + color: #999999; +} + +.text-primary { + color: #428bca; +} + +.text-primary:hover { + color: #3071a9; +} + +.text-warning { + color: #8a6d3b; +} + +.text-warning:hover { + color: #66512c; +} + +.text-danger { + color: #a94442; +} + +.text-danger:hover { + color: #843534; +} + +.text-success { + color: #3c763d; +} + +.text-success:hover { + color: #2b542c; +} + +.text-info { + color: #31708f; +} + +.text-info:hover { + color: #245269; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +.list-inline > li:first-child { + padding-left: 0; +} + +dl { + margin-top: 0; + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.428571429; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +blockquote small, +blockquote .small { + display: block; + line-height: 1.428571429; + color: #999999; +} + +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small, +blockquote.pull-right .small { + text-align: right; +} + +blockquote.pull-right small:before, +blockquote.pull-right .small:before { + content: ''; +} + +blockquote.pull-right small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} + +blockquote:before, +blockquote:after { + content: ""; +} + +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} + +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + white-space: nowrap; + background-color: #f9f2f4; + border-radius: 4px; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + color: #333333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +@media (min-width: 768px) { + .container { + width: 750px; + } +} + +@media (min-width: 992px) { + .container { + width: 970px; + } +} + +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} + +.row { + margin-right: -15px; + margin-left: -15px; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.col-xs-1, +.col-sm-1, +.col-md-1, +.col-lg-1, +.col-xs-2, +.col-sm-2, +.col-md-2, +.col-lg-2, +.col-xs-3, +.col-sm-3, +.col-md-3, +.col-lg-3, +.col-xs-4, +.col-sm-4, +.col-md-4, +.col-lg-4, +.col-xs-5, +.col-sm-5, +.col-md-5, +.col-lg-5, +.col-xs-6, +.col-sm-6, +.col-md-6, +.col-lg-6, +.col-xs-7, +.col-sm-7, +.col-md-7, +.col-lg-7, +.col-xs-8, +.col-sm-8, +.col-md-8, +.col-lg-8, +.col-xs-9, +.col-sm-9, +.col-md-9, +.col-lg-9, +.col-xs-10, +.col-sm-10, +.col-md-10, +.col-lg-10, +.col-xs-11, +.col-sm-11, +.col-md-11, +.col-lg-11, +.col-xs-12, +.col-sm-12, +.col-md-12, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 { + float: left; +} + +.col-xs-12 { + width: 100%; +} + +.col-xs-11 { + width: 91.66666666666666%; +} + +.col-xs-10 { + width: 83.33333333333334%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-8 { + width: 66.66666666666666%; +} + +.col-xs-7 { + width: 58.333333333333336%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-5 { + width: 41.66666666666667%; +} + +.col-xs-4 { + width: 33.33333333333333%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-2 { + width: 16.666666666666664%; +} + +.col-xs-1 { + width: 8.333333333333332%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-pull-11 { + right: 91.66666666666666%; +} + +.col-xs-pull-10 { + right: 83.33333333333334%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-8 { + right: 66.66666666666666%; +} + +.col-xs-pull-7 { + right: 58.333333333333336%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-5 { + right: 41.66666666666667%; +} + +.col-xs-pull-4 { + right: 33.33333333333333%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-2 { + right: 16.666666666666664%; +} + +.col-xs-pull-1 { + right: 8.333333333333332%; +} + +.col-xs-pull-0 { + right: 0; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-push-11 { + left: 91.66666666666666%; +} + +.col-xs-push-10 { + left: 83.33333333333334%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-8 { + left: 66.66666666666666%; +} + +.col-xs-push-7 { + left: 58.333333333333336%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-5 { + left: 41.66666666666667%; +} + +.col-xs-push-4 { + left: 33.33333333333333%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-2 { + left: 16.666666666666664%; +} + +.col-xs-push-1 { + left: 8.333333333333332%; +} + +.col-xs-push-0 { + left: 0; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +.col-xs-offset-11 { + margin-left: 91.66666666666666%; +} + +.col-xs-offset-10 { + margin-left: 83.33333333333334%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-8 { + margin-left: 66.66666666666666%; +} + +.col-xs-offset-7 { + margin-left: 58.333333333333336%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-5 { + margin-left: 41.66666666666667%; +} + +.col-xs-offset-4 { + margin-left: 33.33333333333333%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-2 { + margin-left: 16.666666666666664%; +} + +.col-xs-offset-1 { + margin-left: 8.333333333333332%; +} + +.col-xs-offset-0 { + margin-left: 0; +} + +@media (min-width: 768px) { + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-0 { + right: 0; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-0 { + left: 0; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 992px) { + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-0 { + right: 0; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-0 { + left: 0; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 1200px) { + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-0 { + right: 0; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-0 { + left: 0; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-0 { + margin-left: 0; + } +} + +table { + max-width: 100%; + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} + +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} + +.table > tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} + +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} + +table td[class*="col-"], +table th[class*="col-"] { + display: table-cell; + float: none; +} + +.table > thead > tr > .active, +.table > tbody > tr > .active, +.table > tfoot > tr > .active, +.table > thead > .active > td, +.table > tbody > .active > td, +.table > tfoot > .active > td, +.table > thead > .active > th, +.table > tbody > .active > th, +.table > tfoot > .active > th { + background-color: #f5f5f5; +} + +.table-hover > tbody > tr > .active:hover, +.table-hover > tbody > .active:hover > td, +.table-hover > tbody > .active:hover > th { + background-color: #e8e8e8; +} + +.table > thead > tr > .success, +.table > tbody > tr > .success, +.table > tfoot > tr > .success, +.table > thead > .success > td, +.table > tbody > .success > td, +.table > tfoot > .success > td, +.table > thead > .success > th, +.table > tbody > .success > th, +.table > tfoot > .success > th { + background-color: #dff0d8; +} + +.table-hover > tbody > tr > .success:hover, +.table-hover > tbody > .success:hover > td, +.table-hover > tbody > .success:hover > th { + background-color: #d0e9c6; +} + +.table > thead > tr > .danger, +.table > tbody > tr > .danger, +.table > tfoot > tr > .danger, +.table > thead > .danger > td, +.table > tbody > .danger > td, +.table > tfoot > .danger > td, +.table > thead > .danger > th, +.table > tbody > .danger > th, +.table > tfoot > .danger > th { + background-color: #f2dede; +} + +.table-hover > tbody > tr > .danger:hover, +.table-hover > tbody > .danger:hover > td, +.table-hover > tbody > .danger:hover > th { + background-color: #ebcccc; +} + +.table > thead > tr > .warning, +.table > tbody > tr > .warning, +.table > tfoot > tr > .warning, +.table > thead > .warning > td, +.table > tbody > .warning > td, +.table > tfoot > .warning > td, +.table > thead > .warning > th, +.table > tbody > .warning > th, +.table > tfoot > .warning > th { + background-color: #fcf8e3; +} + +.table-hover > tbody > tr > .warning:hover, +.table-hover > tbody > .warning:hover > td, +.table-hover > tbody > .warning:hover > th { + background-color: #faf2cc; +} + +@media (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-x: scroll; + overflow-y: hidden; + border: 1px solid #dddddd; + -ms-overflow-style: -ms-autohiding-scrollbar; + -webkit-overflow-scrolling: touch; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} + +input[type="file"] { + display: block; +} + +select[multiple], +select[size] { + height: auto; +} + +select optgroup { + font-family: inherit; + font-size: inherit; + font-style: inherit; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + height: auto; +} + +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + background-image: none; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); +} + +.form-control:-moz-placeholder { + color: #999999; +} + +.form-control::-moz-placeholder { + color: #999999; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #999999; +} + +.form-control::-webkit-input-placeholder { + color: #999999; +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + display: block; + min-height: 20px; + padding-left: 20px; + margin-top: 10px; + margin-bottom: 10px; + vertical-align: middle; +} + +.radio label, +.checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm { + height: auto; +} + +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-lg { + height: 46px; + line-height: 46px; +} + +textarea.input-lg { + height: auto; +} + +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline { + color: #8a6d3b; +} + +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; +} + +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} + +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline { + color: #a94442; +} + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} + +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} + +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline { + color: #3c763d; +} + +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; +} + +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} + +.form-control-static { + margin-bottom: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + } + .form-inline select.form-control { + width: auto; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} + +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +.form-horizontal .form-control-static { + padding-top: 7px; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-default .badge { + color: #ffffff; + background-color: #fff; +} + +.btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} + +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary .badge { + color: #428bca; + background-color: #fff; +} + +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} + +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} + +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} + +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} + +.btn-link { + font-weight: normal; + color: #428bca; + cursor: pointer; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-sm { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + line-height: 1; + -moz-osx-font-smoothing: grayscale; +} + +.glyphicon:empty { + width: 1em; +} + +.glyphicon-asterisk:before { + content: "\2a"; +} + +.glyphicon-plus:before { + content: "\2b"; +} + +.glyphicon-euro:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-lock:before { + content: "\e033"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-bookmark:before { + content: "\e044"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-camera:before { + content: "\e046"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-fire:before { + content: "\e104"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-calendar:before { + content: "\e109"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-bell:before { + content: "\e123"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-wrench:before { + content: "\e136"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-briefcase:before { + content: "\e139"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-paperclip:before { + content: "\e142"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-pushpin:before { + content: "\e146"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + list-style: none; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar .btn-group { + float: left; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group, +.btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group > .btn { + float: none; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-right-radius: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 0; +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group-vertical > .btn-group:first-child > .btn:last-child, +.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + border-collapse: separate; + table-layout: fixed; +} + +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} + +.btn-group-justified > .btn-group .btn { + width: 100%; +} + +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} + +.input-group .form-control { + width: 100%; + margin-bottom: 0; +} + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} + +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} + +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555555; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + white-space: nowrap; +} + +.input-group-btn:first-child > .btn { + margin-right: -1px; +} + +.input-group-btn:last-child > .btn { + margin-left: -1px; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -4px; +} + +.input-group-btn > .btn:hover, +.input-group-btn > .btn:active { + z-index: 2; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li.disabled > a { + color: #999999; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #dddddd; +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified > li { + float: none; +} + +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} + +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #dddddd; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 4px; +} + +.nav-pills > li + li { + margin-left: 2px; +} + +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} + +.nav-justified { + width: 100%; +} + +.nav-justified > li { + float: none; +} + +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} + +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #dddddd; +} + +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} + +.tab-content > .tab-pane { + display: none; +} + +.tab-content > .active { + display: block; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + max-height: 340px; + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} + +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} + +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} + +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } + .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + } + .navbar-form select.form-control { + width: auto; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-form.navbar-right:last-child { + margin-right: -15px; + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} + +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} + +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } + .navbar-text.navbar-right:last-child { + margin-right: 0; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777777; +} + +.navbar-default .navbar-nav > li > a { + color: #777777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #dddddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777777; +} + +.navbar-default .navbar-link:hover { + color: #333333; +} + +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #999999; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #ffffff; + background-color: #080808; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #cccccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + background-color: #eeeeee; +} + +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + cursor: default; + background-color: #428bca; + border-color: #428bca; +} + +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; + border-color: #dddddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.btn .label { + position: relative; + top: -1px; +} + +.label-default { + background-color: #999999; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #808080; +} + +.label-primary { + background-color: #428bca; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #3071a9; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} + +.nav-pills > li > a > .badge { + margin-left: 3px; +} + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} + +.jumbotron h1, +.jumbotron .h1 { + line-height: 1; + color: inherit; +} + +.jumbotron p { + line-height: 1.4; +} + +.container .jumbotron { + border-radius: 6px; +} + +.jumbotron .container { + max-width: 100%; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.thumbnail > img, +.thumbnail a > img { + display: block; + height: auto; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #428bca; +} + +.thumbnail .caption { + padding: 9px; + color: #333333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert > p, +.alert > ul { + margin-bottom: 0; +} + +.alert > p + p { + margin-top: 5px; +} + +.alert-dismissable { + padding-right: 35px; +} + +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #2b542c; +} + +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #245269; +} + +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} + +.alert-warning hr { + border-top-color: #f7e1b5; +} + +.alert-warning .alert-link { + color: #66512c; +} + +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} + +.alert-danger hr { + border-top-color: #e4b9c0; +} + +.alert-danger .alert-link { + color: #843534; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .progress-bar { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} + +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 20px; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.list-group-item > .badge { + float: right; +} + +.list-group-item > .badge + .badge { + margin-right: 5px; +} + +a.list-group-item { + color: #555555; +} + +a.list-group-item .list-group-item-heading { + color: #333333; +} + +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +a.list-group-item.active, +a.list-group-item.active:hover, +a.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +a.list-group-item.active .list-group-item-heading, +a.list-group-item.active:hover .list-group-item-heading, +a.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} + +a.list-group-item.active .list-group-item-text, +a.list-group-item.active:hover .list-group-item-text, +a.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel > .list-group { + margin-bottom: 0; +} + +.panel > .list-group .list-group-item { + border-width: 1px 0; +} + +.panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} + +.panel > .table, +.panel > .table-responsive > .table { + margin-bottom: 0; +} + +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive { + border-top: 1px solid #dddddd; +} + +.panel > .table > tbody:first-child th, +.panel > .table > tbody:first-child td { + border-top: 0; +} + +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} + +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} + +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} + +.panel > .table-bordered > thead > tr:last-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:last-child > th, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-bordered > thead > tr:last-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; +} + +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} + +.panel-title > a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel-group .panel { + margin-bottom: 0; + overflow: hidden; + border-radius: 4px; +} + +.panel-group .panel + .panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} + +.panel-default { + border-color: #dddddd; +} + +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} + +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} + +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} + +.panel-primary { + border-color: #428bca; +} + +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} + +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} + +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-warning { + border-color: #faebcc; +} + +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} + +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #faebcc; +} + +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #faebcc; +} + +.panel-danger { + border-color: #ebccd1; +} + +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} + +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #ebccd1; +} + +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #ebccd1; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} + +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: auto; + overflow-y: scroll; +} + +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog { + position: relative; + z-index: 1050; + width: auto; + margin: 10px; +} + +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} + +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} + +.modal-header { + min-height: 16.428571429px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.428571429; +} + +.modal-body { + position: relative; + padding: 20px; +} + +.modal-footer { + padding: 19px 20px 20px; + margin-top: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +@media screen and (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-right .tooltip-arrow { + right: 5px; + bottom: 0; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; + content: " "; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; + content: " "; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; + content: " "; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; + content: " "; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + height: auto; + max-width: 100%; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.left { + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + outline: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; +} + +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; +} + +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #ffffff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #ffffff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width: 768px) { + .carousel-control .glyphicons-chevron-left, + .carousel-control .glyphicons-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after { + display: table; + content: " "; +} + +.clearfix:after { + clear: both; +} + +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.hidden { + display: none !important; + visibility: hidden !important; +} + +.affix { + position: fixed; +} + +@-ms-viewport { + width: device-width; +} + +.visible-xs, +tr.visible-xs, +th.visible-xs, +td.visible-xs { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + table.visible-xs.visible-sm { + display: table; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + table.visible-xs.visible-md { + display: table; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + table.visible-xs.visible-lg { + display: table; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} + +.visible-sm, +tr.visible-sm, +th.visible-sm, +td.visible-sm { + display: none !important; +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + table.visible-sm.visible-xs { + display: table; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + table.visible-sm.visible-md { + display: table; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + table.visible-sm.visible-lg { + display: table; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} + +.visible-md, +tr.visible-md, +th.visible-md, +td.visible-md { + display: none !important; +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + table.visible-md.visible-xs { + display: table; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + table.visible-md.visible-sm { + display: table; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + table.visible-md.visible-lg { + display: table; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} + +.visible-lg, +tr.visible-lg, +th.visible-lg, +td.visible-lg { + display: none !important; +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + table.visible-lg.visible-xs { + display: table; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + table.visible-lg.visible-sm { + display: table; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + table.visible-lg.visible-md { + display: table; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +.hidden-xs { + display: block !important; +} + +table.hidden-xs { + display: table; +} + +tr.hidden-xs { + display: table-row !important; +} + +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-xs, + tr.hidden-xs, + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm, + tr.hidden-xs.hidden-sm, + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md, + tr.hidden-xs.hidden-md, + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg, + tr.hidden-xs.hidden-lg, + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} + +.hidden-sm { + display: block !important; +} + +table.hidden-sm { + display: table; +} + +tr.hidden-sm { + display: table-row !important; +} + +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs, + tr.hidden-sm.hidden-xs, + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm, + tr.hidden-sm, + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md, + tr.hidden-sm.hidden-md, + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg, + tr.hidden-sm.hidden-lg, + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} + +.hidden-md { + display: block !important; +} + +table.hidden-md { + display: table; +} + +tr.hidden-md { + display: table-row !important; +} + +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs, + tr.hidden-md.hidden-xs, + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm, + tr.hidden-md.hidden-sm, + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md, + tr.hidden-md, + th.hidden-md, + td.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg, + tr.hidden-md.hidden-lg, + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} + +.hidden-lg { + display: block !important; +} + +table.hidden-lg { + display: table; +} + +tr.hidden-lg { + display: table-row !important; +} + +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs, + tr.hidden-lg.hidden-xs, + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm, + tr.hidden-lg.hidden-sm, + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md, + tr.hidden-lg.hidden-md, + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg, + tr.hidden-lg, + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} + +.visible-print, +tr.visible-print, +th.visible-print, +td.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print, + tr.hidden-print, + th.hidden-print, + td.hidden-print { + display: none !important; + } +} \ No newline at end of file diff --git a/functions/documentation/assets/docs.css b/functions/documentation/assets/docs.css new file mode 100644 index 0000000..fd1f417 --- /dev/null +++ b/functions/documentation/assets/docs.css @@ -0,0 +1,56 @@ +/* sticky sidebar */ +.sidebar { width: 180px; float: right; position: fixed; margin-left: 700px; margin-top: -1px; z-index: 9999; } +.sidebar .well { padding: 8px 0; -moz-border-radius: 0 0 4px 4px; -webkit-border-radius: 0 0 4px 4px; border-radius: 0 0 4px 4px; } +.nav span { float: left; margin-right: 6px; padding-top: 3px; } +.nav { color: #999; } +.nav > li { border-bottom: 1px solid #ddd; } +.nav > li > a { padding: 8px; } +.nav > li > ul { padding-bottom: 8px; padding-left: 38px; } + +/* base */ +.jumbotron { margin-bottom: 0; padding: 0; } +.jumbotron h1 { color: #000; font-weight: bold; letter-spacing: -1px; } + +.container { width: 920px; } +header .container { padding: 40px 260px 50px 60px; } +footer .container { padding: 40px 60px 50px 60px; } +section .container { padding: 50px 260px 60px 60px; } +section { background: none!important; position: relative; border-bottom: 10px solid #f1f1f1; } + +/* sections */ +.color-01 { background-color: #35ae37; } +section.color-01 { border-left: 10px solid #35ae37; } +.color-02 { background-color: #308fbe; } +section.color-02 { border-left: 10px solid #308fbe; } +.color-03 { background-color: #c63f3d; } +section.color-03 { border-left: 10px solid #c63f3d; } +.color-04 { background-color: #f89406; } +section.color-04 { border-left: 10px solid #f89406; } +.color-05 { background-color: #32c2b3; } +section.color-05 { border-left: 10px solid #32c2b3; } +.color-06 { background-color: #c232c0; } +section.color-06 { border-left: 10px solid #c232c0; } +.color-07 { background-color: #6347aa; } +section.color-07 { border-left: 10px solid #6347aa; } + +/* text */ +h1 { font-weight: bold; } +h1 span { padding: 10px 12px; } +section .label { position: absolute; left: -6px; top: 78px; font-size: 17px; } +section p { margin-bottom: 20px; } +section p, +section li { font-size: 15px; line-height: 24px; } +section > ul, +section > ol { margin-bottom: 20px; } +section img { border: 1px solid #ddd; -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.1); box-shadow: 0 0 10px rgba(0,0,0,0.1); } +section dt, +section dd { font-size: 15px; line-height: 24px; } +section dd { margin-left: 0; } +section h3 {} +section h5 { font-size: 15px; } +pre, code { overflow: auto; white-space: pre!important; } +hr { margin: 40px 0; } + +/* elements */ +.alert { margin-top: 20px; } +.alert ul { margin-top: 10px; } diff --git a/functions/documentation/documentation.html b/functions/documentation/documentation.html new file mode 100644 index 0000000..ca4554a --- /dev/null +++ b/functions/documentation/documentation.html @@ -0,0 +1,594 @@ + + + + + Documentation + + + + + + + + + + + +
+
+ +

Anew

+

Thank you for using this theme, you have good taste! ;-)

+

AlxMedia · Themes

+ +
+
+ + + +
+
+ +

01Getting started

+

Looks like you've found the documentation for the theme, we're off to a good start! On the right side you can see the table of contents of this documentation.

+

Jump to the section you want, or read it all through - your choice.

+

Let's move on!

+
+
+ + + +
+
+ +

02Installation

+ +

Installing your theme is pretty easy! After downloading you should have a anew.zip file. This is a compressed file containing all of the required templates and images required for the theme to function properly.

+ +

Upload the theme

+
    +
  1. Go to Appearance > Themes in the WordPress menu
  2. +
  3. Click on the Add New button
  4. +
  5. Click on the Upload link
  6. +
  7. Select the anew.zip file
  8. +
  9. Click Install Now
  10. +
+ +

Activate the theme

+
    +
  1. Go to Appearance > Themes in the WordPress menu
  2. +
  3. Hover over the theme thumbnail and press the Activate button
  4. +
+
Additional information: WordPress Codex – Using Themes
+ +
+
+ + + +
+
+ +

02.1Adapting existing content

+ +

If you are changing theme from another one and have plenty of existing content, menus and widgets on the website already, you need to do the following after having activated the new theme:

+
    +
  1. Go to Appearance > Menus and add the menu areas back to where you want them. The menus will be hidden until you add links to them. This way you can choose how many menu areas to show on the website.
  2. +
  3. Go to Appearance > Widgets and add the widgets back to your sidebars, or use some of the new custom widgets.
  4. +
  5. Install the Regenerate Thumbnails plugin and activate it. Then go to Tools > Regenerate Thumbnails and run it once. This will crop existing thumbnails to the new sizes used in this theme.
  6. +
  7. If you have not used the Featured Image feature in your other theme, you can use the Easy Add Thumbnail plugin to automatically set featured images for old articles.
  8. +
+ +
+
+ + + +
+
+ +

02.2Importing demo content

+

Note: For server bandwidth reasons, I can not supply the demo site data for this theme, although I want to. However you can download the WordPress sample theme test data XML from here.

+

This step is optional and for new WordPress sites without any content. If you don't want to import any extra pages and sample data to your site, you can skip to the next section. If you want a base similar to the demo site to work on and edit, then this is for you.

+
+

Important: If your site is not a fresh install with no content, but has existing content and pages on it already, it is important to remember that this file will add a lot of pages, posts, categories and tags (and media if you choose to import that) to your site, that you will have to edit or remove after importing.

+
+ +

Importing

+
    +
  1. Go to Tools > Import in the WordPress menu
  2. +
  3. Click on the WordPress link
  4. +
  5. Install the plugin it asks for and activate, if you haven't already installed it.
  6. +
  7. Now you should see a select file button on the Tools > Import > WordPress page.
  8. +
  9. Upload the .XML data file. Choose if you want to import media or not (images).
  10. +
  11. Wait for the import process to finish. When it's finished it will say so.
  12. +
  13. Go to Appearance > Menus and add the menu areas to for example header.
  14. +
  15. Go to Appearance > Widgets and add some widgets to your sidebars.
  16. +
+

Your page should now look similar to the demo page. Refer to the Frontpage guide if you want to use a static page / non-blog home page.

+ +
+
+ + + +
+
+ +

02.3Theme updates

+ +

If this is your first-time install, you can skip this step.

+

It is a good idea to keep your theme up to date with the latest version, as it often includes important bugfixes or new neat features. If a new version of the theme is available, do the following to update it:

+
    +
  1. Download the latest version.
  2. +
  3. Locate the anew.zip file to upload.
  4. +
  5. Go to Appearance > Themes in the WordPress menu
  6. +
  7. Activate a default theme temporarily, such as Twenty Twelve (to be able to delete your current theme)
  8. +
  9. Click on the theme you wish to update, and press the red delete link bottom right. Your admin panel options should remain saved.
  10. +
  11. Upload the new anew.zip, as you did on first-time install, and activate it.
  12. +
+

You are now running the latest and best version of the theme!

+
+

Important: If you haven't used a child theme for your theme customizations, you must do the following before each update:

+
    +
  • Backup your custom.css file if you have used it, it will be overwritten and needs to be re-added after the update.
  • +
  • Backup your additional language files if you have created/modified any, they will be removed and need to be re-added after the update.
  • +
  • Backup any other custom code.
  • +
+
+ +
+
+ + + +
+
+ +

03Theme options

+ +

Each option in the admin panel is pretty well described there and easy to use already, so we will just go through the sections in short so you can get an idea of the overall structure - and point out the important things.

+ +

General

+

This is where you will find general options for the whole theme. This typically includes favicon upload, custom RSS feed option, analytics tracking code field and so on.

+
    +
  • Responsive Layout: If you choose to disable responsive.css, you may need to do further changes in style.css for the site to work completely as un-responsive, as there are some mediaqueries in this file as well - mainly for the menus.
  • +
  • Tracking Code: Make sure to add your full tracking code in the field, including the < script > tags.
  • +
+

Blog

+

Here you will find all options that relates to posts - mainly the blog homepage, the single post pages as well as archive pages.

+
    +
  • Single - Share Buttons: Disable the in-built article sharing buttons if you wish to use a plugin instead. +
    +

    Note: If your Google+ button is not appearing, you need to make sure that your server has urlCurl enabled. Ask your webhost to enable cURL, and make sure that safe_mode is not on. Otherwise it will not work.

    +

    If you wish to add more sharing icons, please refer to Sharrre documentation. The file to modify via a child theme would be /inc/sharrre.php.

    +
    +
  • +
  • Single - Author Bio: Note that this block will only appear if a description is set for the user writing the article.
  • +
+ +

Header

+
    +
  • Custom Logo: The max-height of the logo can be adjusted from styling options. The the uploaded image should always have the double height of the max-height in order to be high resolution - often preferably in PNG format with transparent background.
  • +
  • Header Image: This options is for a full centered header image instead of logo.
  • +
+ +

Footer

+
    +
  • Footer Widget Columns: This is where you enable footer widgets. Select the column count you wish to use, and then go to Appearance > Widgets and add your widgets to the Footer 1/2/3/4 boxes. Usually 3 columns are recommended in order for it to look best on all screen resolutions.
  • +
+ +

Layout

+

Here you can set a specific layout for each one of the standard WordPress page sections. If a specific page or post has another layout set, the single and page options set here will be overridden by that option. If you just want one sidebar layout for the entire website, you only need to modify the Global option.

+

To set a layout for a specific page or post, you need to go to that page or post and select which layout to use below the large text field.

+ +

Sidebars

+

This is where you can create unlimited sidebar widget areas for your theme! The sidebar title is seen at the top of the widget box in Appearance > Widgets. The sidebar ID is used in template files.

+

To add a sidebar you have created for a specific page or post, you need to go to that page or post, and select sidebar from the dropdown menu below the large text field.

+
+

Important: Make sure that each sidebar area that you create has a unique ID, for example "sidebar-24" or "sidebar-about". Only use lowercase letters and no spaces for the IDs.

You must save options in order to be able to see the new widget area in the dropdowns below.

+
+ +

Social Links

+

Here you create and re-order your Social Links as you wish. These links will appear in the header and footer of your theme in most cases.

+

The icons can be given a specific color if you wish, or you can just leave that option blank and it will use the default setting.

+

The icon names can be found here - FontAwesome gives you the option to choose between 370 unique icons to use. Example of names to fill in the admin panel would be "fa-facebook", "fa-twitter" and "fa-google-plus".

+ +

Styling

+

The dynamic styles in this theme gives you the ability to change color of large parts of theme in seconds.

+
+

Important: Make sure to tick the checkbox "Enable to use" at the top of the styling options in order to turn this feature on. You may also need to empty all caches if you use a cache plugin. And finally you may also need to force-refresh the page while viewing it by pressing F5.

+
+

Advanced: The dynamic styles will be added directly to the head of your theme. This is according to WordPress best practices, but if you do not want it printed out there, simply inspect the code of your page with the styling options set. Copy the CSS from head into your child theme's style.css file or this theme's custom.css (which you need to enable), and disable dynamic styling.

+ +
+
+ + + +
+
+ +

04Post Formats

+

This theme makes use of all of WordPress' 10 post formats to give you plenty of ways to show content in the top section of your articles. You choose type by selecting format in the "Format" box on the right side when you edit or add a new post. Depending on which format you select, new options will appear below the large text field.

+

Here is how to use each one of the formats, and what each one does:

+
    +
  • Standard - This is the default option. It will not automatically include a featured image at the top of the post, like the image format does. It's simply a standard post that shows article text.
  • +
  • Audio - Shows an audio player at the top of your post, as well as the featured image. Two audio URL fields will appear once selected. Both audio formats are required for cross-browser compatibility.
  • +
  • Aside - Hides the entry title of the article
  • +
  • Chat - Shows a chat conversation box at the top of the article. A textarea field to paste the chat conversation in will appear once selected.
  • +
  • Gallery - Shows all images attached to the post as a slider at the top of the article. More details how to use will appear below once selected. +
    +

    Note: If you want to show an image in the article below the slider, but still not include it in the slider, you need to go to Media > Add New and upload it there. Then go back to the post and insert it. Make sure it's not attached to the post.

    +
    +
  • +
  • Image - Same as Standard format except that it auto-includes the featured image at the top of the article.
  • +
  • Link - Shows a big link at the top of the article. Link title and link URL fields will appear once selected.
  • +
  • Quote - Shows a big quote box at the top of the article. Fields for the quote text and quote author will appear once selected.
  • +
  • Status - Hides the entry title and transforms the entry text into a large status-type style.
  • +
  • Video - Shows an embed video at the top of the article. Fields for link embed or code embed will appear once selected.

    You can show self-hosted videos in this field, although it's not intentionally supported, by using HTML5-video tags in the Embed Code field.

    + HTML5 video sample code: + +
    <video width="320" height="240" controls="controls">
    +<source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.webm" type='video/webm; codecs="vp8, vorbis"' />
    +<source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
    +<source src="http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.ogv" type='video/ogg; codecs="theora, vorbis"' />
    +Your browser does not support the video tag.
    +</video>
    + +
  • +
+
+
+ + + +
+
+ +

05Theme Customization

+

This section is very important to read if you plan to edit any files within the theme - whether it is adding custom functions, custom styles, new language files or modifying other function-related files. Spending some extra minutes to read this and do it right from the very beginning can save a lot of time and headaches later on.

+

Most of the information below can be found and read more about elsewhere on the web a well if you wish to go more in-depth, as it's common practices. I've summarized the core parts of it, which you are likely to use the most.

+

Let us begin!

+
+
+ + + +
+
+ +

05.1Using a Child Theme

+

If you intend to edit the code of the theme, translate it or place any custom files in the theme folder it is highly recommended to use a child theme. Otherwise all of your modifications will disappear once you update the theme - unless you backup and re-add the files afterwards.

+

I would only recommend using the custom.css option instead if you are doing minor CSS modifications that can be easily backed up.

+
    +
  • Download the sample child theme - specifically made for this theme to get you started! Upload the .zip via admin just as with any other theme, rename the folder to anything you wish.
  • +
  • Learn more how to use child themes here.
  • +
+

This theme has been built with child themes in mind, and therefore all theme functions are pluggable - which means you can overwrite them by copying a function from the parent theme and pasting it into the child theme's functions.php, modify it as you wish - and it will use your modified function instead the original one.

+

Load certain functionality from the child theme instead

+

This only applies for files loaded from the parent theme's functions.php. Let's say we wish to load the responsive.css file from our child theme's directory instead. We then need to copy the alx_styles() function to functions.php of the child theme (not including add_action, add_filter or !function_exists - just the function).

+

Now we have this function in our child theme - but it makes absolutely no difference, and still loads all files from the parent theme.

+ +
function alx_styles() {
+	wp_enqueue_style( 'style', get_stylesheet_uri() );
+	if ( !ot_get_option('responsive') ) { wp_enqueue_style( 'responsive', get_template_directory_uri().'/responsive.css' ); }
+	if ( ot_get_option('custom') ) { wp_enqueue_style( 'custom', get_template_directory_uri().'/custom.css' ); }
+	wp_enqueue_style( 'font-awesome', get_template_directory_uri().'/fonts/font-awesome.min.css' );
+}
+ +

To load from the child theme instead, change get_template_directory_uri to get_stylesheet_directory_uri for the responsive.css file. The rest of the files will still load from the parent theme, as they use get_template_directory_uri. Like this:

+ +
function alx_styles() {
+	wp_enqueue_style( 'style', get_stylesheet_uri() );
+	if ( !ot_get_option('responsive') ) { wp_enqueue_style( 'responsive', get_stylesheet_directory_uri().'/responsive.css' ); }
+	if ( ot_get_option('custom') ) { wp_enqueue_style( 'custom', get_template_directory_uri().'/custom.css' ); }
+	wp_enqueue_style( 'font-awesome', get_template_directory_uri().'/fonts/font-awesome.min.css' );
+}
+ +

The same method would be used to change language files folder. You would then copy over the whole alx_load() function, but only modify this one line in it:

+
// Load theme languages
+load_theme_textdomain( 'themename', get_template_directory().'/languages' );
+ +

To this:

+
// Load theme languages
+load_theme_textdomain( 'themename', get_stylesheet_directory().'/languages' );
+ +

Now the language files will be loaded from the /language/ folder of your child theme instead. Simple, isn't it? This way your changes will always stay safe in your child theme folder, no matter how many updates you do to the parent theme. To summarize:

+
    +
  • get_template_directory - file loads from parent theme
  • +
  • get_template_directory_uri - file loads from parent theme
  • +
  • get_stylesheet_directory - file loads from child theme
  • +
  • get_stylesheet_directory_uri - file loads from child theme
  • +
+
+

Important: Always copy over the entire function to your child theme, and only modify the part that you wish to change - leave the rest of the function as it is.

If you were to only include the lines you are changing in the function, and leave the rest of the functionality out, those parts would disappear and stop working.

+
+ +

Disabling functions

+

You can also completely disable functionality with the child theme replacement method. Let's say you don't want the plugin installation notice in your admin panel, or the "Install Plugins" item in your menu. All you would need to add is this to your child theme's functions.php:

+
function alx_plugins() { }
+

Simply emptying the function, disabling it completely.

+ +

Replacing page templates

+

Finally, we wish to modify the page.php template with some custom code. All we need to do then is just copy over page.php from the parent theme to the child theme, and now this file will be used instead - and you are free to modify it without having to fear losing it when updating the theme.

+ +

Pretty nifty, isn't it?

+
+
+ + + +
+
+ +

05.2Theme File Structure

+

Here is a quick summary of how the files in this theme are structured. It will hopefully make things easier to find!

+ +

Folders

+
    +
  • /fonts/ - Includes any self-hosted font files and Font Awesome css (icons)
  • +
  • /functions/ - This folder contains everything that is admin-panel related
  • +
  • /functions/img/ - Admin panel images
  • +
  • /functions/js/ - Admin panel javascript
  • +
  • /functions/plugins/ - Plugins that are not available on wordpress.org but bundled with the theme for easy installation
  • +
  • /functions/widgets/ - The custom widgets included with the theme
  • +
  • /img/ - Theme images
  • +
  • /img/ie/ - Images used for Internet Explorer compatibility
  • +
  • /inc/ - Includes all template-parts (partials) that are non-standard to WordPress, but often are used in several files
  • +
  • /js/ - Theme javascript. All custom theme scripts are in scripts.js
  • +
  • /js/ie/ - Javascript used for Internet Explorer compatibility
  • +
  • /languages/ - Contains a language file that you can use to translate or change texts in the theme
  • +
  • /option-tree/ - This folder is the OptionTree framework plugin running in fully-integrated theme mode. It ties in with /functions/meta-boxes.php and /functions/theme-options.php and the ot_get_option() function used in template files. Relates to the admin panel, to create theme options. It's best to leave this folder alone.
  • +
  • /page-templates/ - Contains all page templates for the theme, such as Child Menu
  • +
+
+

Files

+
    +
  • custom.css - Used for your custom styles +
  • responsive.css - Contains almost all the CSS that creates the responsive layout +
  • changelog.txt - Information about changes made in all updates +
  • license.txt - The main theme license +
  • readme.txt - Contains all additional license information +
+

The rest of the files have a standard WordPress structure.

+ +
+
+ + + +
+
+ +

05.3CSS Styling

+ +

Theme related

+

If you are not using Theme Options > Styling combined with your own custom css, you can skip this part.

+

If you have issues with your CSS styling changes not showing up or working correctly, remember that this is the order in which the styles are loaded in the theme:

+
    +
  1. style.css
  2. +
  3. responsive.css
  4. +
  5. custom.css
  6. +
  7. Dynamic CSS output
  8. +
+

The dynamic CSS is added at the end of head tag. This means that the dynamic styles will override your custom.css / child theme styles - unless you specify the class/id more or use the !important CSS value.

+ +

How to fix CSS override issues

+
    +
  1. Set your dynamic styles in theme options.
  2. +
  3. Visit the website, inspect the code, copy the dynamic styles from head of the theme into your child theme's style.css. Disable dynamic styles.
  4. +
  5. You now have no more overriding issues.
  6. +
+

If you think that responsive.css still overrides styles, use @import to import it at the top of style.css of the child theme and disable it in theme options so it doesn't load twice.

+

If you styling changes still do not appear:

+
    +
  • If you run any cache plugin, make sure to empty all caches.
  • +
  • When viewing the webpage, press F5 to force-refresh it.
  • +
+
+

CSS basics

+

This is for people who are pretty new to CSS and have never used or heard the word Firebug. It is not theme-related but deals with CSS+Firebug usage, which is essential for easy modification of any styles.

+

Change styling

+

You look at your page and say to yourself, "I would like to restyle that element right there on the my page". But how do you know what the CSS class or id you need to specify in your custom.css? Without tools this would be hard - thankfully both Firefox and Chrome makes it easier.

+

Enter Firebug

+

This addon that exist both for Firefox and for Chrome (as a lite version) will save you a lot of time. I use it my development all the time - it's incredibly useful.

+ +

Installed it? Good. Now, go to your website and right click on any element you want. For example, let's say you want to recolor the dropcap shortcode text color, that you've just inserted on your page. To find out what class or ID this element uses, right click on it and select "Inspect Element with Firebug". This will open up a window at the bottom. To the left side you should see the HTML. On the right, the CSS.

+

Try hovering over the HTML-section for the button. You will see that the button will be highlighted so that you can easily see what element you are viewing. The HTML would look something like this: <span class="dropcap">L</span>

+

The CSS should appear on the right side in the Firebug window (If it doesn't, click on the <span> part of the code, and it will appear). You should see something like this:

+ +
.dropcap
+{
+color: #444444;
+display: block;
+float: left;
+- etc -
+}
+
+ +

And there we go! You've found the CSS class you are looking for, and all the CSS styling that is currently used for this element.

+

There are many good Firebug introduction videos out there on YouTube. Here is one short and simple one I found useful: View Video

+

As shown here, Firebug also allows you to preview styling changes directly in your browser window. It's great when you want to see how something looks before adding it. It can also be used to test to remove HTML or CSS values, and many other things. + +

Adding CSS to custom.css

+
    +
  1. Go to your WordPress dashboard and then Theme Options > General. Tick the checkbox to enable custom.css (this will load the css file in the theme).
  2. +
  3. Go to Appearance > Editor. Click on custom.css on the right side in the list.
  4. +
  5. The code in this file will now appear (most likely empty). Just add your css here and save, and you're done.
  6. +
+

Thanks to Firebug, we now know that our dropcap element is called .dropcap. We want to change the text color to red, so all we need to do is to add this to our custom.css file:

+ +
.dropcap { color: red; }
+ +

Save it, and your dropcap text should now be red!

+ +

This method can be used to restyle any element on your website. It is also useful to use for troubleshooting, to see what CSS styling you may have added that breaks the page and so on.

+ +

Happy editing!

+
+
+ + +
+
+ +

06Additional Information

+

Extra information that you may find useful.

+ +

Font Awesome (icon) issues?

+

If you have trouble with Font Awesome showing strange characters instead of icons, you are most likely using a CDN or external host in some way for the font files. Certain browsers may have issues with that, as they follow certain web standards. (Also make sure that your font files were uploaded correctly, and empty caches)

+

This can be fixed with for example this sample .htaccess file from MaxCDN. If you wish to read more about this, it relates to CORS headers.

+ +

Wrong Facebook and Google+ thumbnails?

+

If your shared posts show wrong thumbnails on social networks, see the Facebook Thumb Fixer plugin below.

+ +

Useful plugins

+

Many common problems or missing features can usually be solved with plugins. Here is a list of some great ones.

+ + +

Recommended theme editing software

+
    +
  • Firefox - The web browser of choice for me, although there are many good ones
  • +
  • Firebug - Inspect code directly in the web browser. Lite version for Chrome here. Search on YouTube for video tutorials and you will quickly learn how to use it.
  • +
  • PoEdit - Translate your theme. Read how to translate here.
  • +
  • Notepad++ - A great text editor to modify theme code
  • +
  • FileZilla - Modify or upload theme files via FTP
  • +
+ +

Link Resources

+

Learn more and ask about WordPress' standard features. WordPress is in itself an extremely well-documented open platform. It is recommended to search for answers via Google / DuckDuckGo first if you have questions – it almost always give useful information or at least point you in the right direction.

+ +
+
+ + +
+
+ +

06.1Troubleshooting 101

+

Do you have a problem with your theme? This quick troubleshooting guide should be the first thing to check through - it will help you find the root cause of the issue.

+

A WordPress website issue can come from mainly one of 4 areas:

+
    +
  • Conflicting plugins
  • +
  • Broken WordPress install
  • +
  • Incorrect server setup
  • +
  • The theme itself
  • +
+

Lets find out where your issue is coming from!

+ +

Step 1: Check your plugins

+

The first thing to do is to see if you have any plugins installed. Do you? If so, go to your admin panel and disable all of them. Now, go back to your site and see if the issue remains. If the problem is gone, then re-activate your plugins one-by-one and check the site between each activation. This way you will directly find the plugin(s) that cause problems.

+ +

If your issue remains even with all plugins disabled, go on to the next step.

+

Step 2: Check your customizations

+

Have you customized your theme in any way before you noticed the issue? If so, go to the theme demo website of the theme and see if you find the same issue there. If you can not see the issue there, you need to take a look at your customized code and find what may be wrong.

+ +

Step 3: Is the issue admin panel related?

+

If you have problems with media uploads, errors in the WordPress dashboard or other access issues, the likely cause is either an incorrectly setup server or a broken WordPress install.

+

To see if your problem is related to a broken WordPress install or an incorrect server setup, simply activate a WordPress default theme such as Twenty Twelve. Does the issue remain? Then your issue is not theme related. If the issue goes away with a default theme active, then it's most likely theme related.

+ +
    +
  • Do you think your issue is WordPress related? Re-installing WordPress may be a good idea, or asking for help on the wordpress.org forums.
  • +
  • Do you think your issue is server related? Try some Google-searching for the issue, or contact your server provider about it.
  • +
  • Do you think the issue is coming from the theme? Make sure to read this documentation through. If the issue remains and you are certain it's coming from the theme, feel free to report the bug on the wordpress.org support forums for anew.
  • +
+

Note: Remember cache!

+

If you apply/repair code to fix issues but see no changes on your website when you save it, check if your website has any cache plugin activated. If so, make sure to empty all caches. Also force-refresh the page when viewing it by pressing F5.

+ +
+
+ + + +
+
+ +

07FAQ

+

Q: Why are social sharing buttons missing Google Plus? — A: You need to enable urlCurl with safe_mode off on your server for G+ to work. Ask your webhost to do so. If you are unable to, you can disable the buttons and use any other plugin instead.

+

Q: My old thumbnails have different sizes, why? — A: Thumbnails uploaded before changing theme will not be automatically re-cropped. To fix this, you need to run the Regenerate Thumbnails plugin once.

+

Q: I did not use featured images before and have many posts, what do I do? — A: Use the Easy Add Thumbnail plugin to automatically make the first image uploaded to each post a featured image.

+

Q: Why is my featured image not appearing on the single post page? — A: You need to use the "Image" format option for it to show up, as not everyone wants to show the featured image at the top for the "Standard" post format.

+

Q: My gallery format post shows images twice, why? — A: This is because you insert a standard gallery into the post itself. This is not needed, as the gallery format post will auto-display attached images in the slider above.

+

Q: My slider gallery includes images I only want to show in the content below — A: The gallery format will always show all attached images. For it to not show up, go to Media > Add New and upload it there. Then go back to the post and add it.

+ +

Thank you for reading!

+ +
+
+ + + + + + + diff --git a/functions/dynamic-styles.php b/functions/dynamic-styles.php index 57fad4e..906c06f 100644 --- a/functions/dynamic-styles.php +++ b/functions/dynamic-styles.php @@ -33,16 +33,19 @@ function alx_hex2rgb( $hex, $array=false ) { if ( ! function_exists( 'alx_google_fonts' ) ) { function alx_google_fonts () { - if ( ot_get_option('dynamic-styles') ) { + if ( ot_get_option('dynamic-styles') != 'off' ) { if ( ot_get_option( 'font' ) == 'titillium-web-ext' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'droid-serif' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'source-sans-pro' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'lato' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'ubuntu' ) { echo ''. "\n"; } + if ( ot_get_option( 'font' ) == 'ubuntu-cyr' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'roboto-condensed' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'roboto-condensed-cyr' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'open-sans' ) { echo ''. "\n"; } if ( ot_get_option( 'font' ) == 'open-sans-cyr' ) { echo ''. "\n"; } + if ( ot_get_option( 'font' ) == 'pt-serif' ) { echo ''. "\n"; } + if ( ot_get_option( 'font' ) == 'pt-serif-cyr' ) { echo ''. "\n"; } } } @@ -55,7 +58,7 @@ function alx_google_fonts () { if ( ! function_exists( 'alx_dynamic_css' ) ) { function alx_dynamic_css() { - if ( ot_get_option('dynamic-styles') ) { + if ( ot_get_option('dynamic-styles') != 'off' ) { // rgb values $color_1 = ot_get_option('color-1'); @@ -70,9 +73,10 @@ function alx_dynamic_css() { if ( ot_get_option( 'font' ) == 'droid-serif' ) { $styles .= 'body { font-family: "Droid Serif", sans-serif; }'."\n"; } if ( ot_get_option( 'font' ) == 'source-sans-pro' ) { $styles .= 'body { font-family: "Source Sans Pro", Arial, sans-serif; }'."\n"; } if ( ot_get_option( 'font' ) == 'lato' ) { $styles .= 'body { font-family: "Lato", Arial, sans-serif; }'."\n"; } - if ( ot_get_option( 'font' ) == 'ubuntu' ) { $styles .= 'body { font-family: "Ubuntu", Arial, sans-serif; }'."\n"; } + if ( ( ot_get_option( 'font' ) == 'ubuntu' ) || ( ot_get_option( 'font' ) == 'ubuntu-cyr' ) ) { $styles .= 'body { font-family: "Ubuntu", Arial, sans-serif; }'."\n"; } if ( ( ot_get_option( 'font' ) == 'roboto-condensed' ) || ( ot_get_option( 'font' ) == 'roboto-condensed-cyr' ) ) { $styles .= 'body { font-family: "Roboto Condensed", Arial, sans-serif; }'."\n"; } if ( ( ot_get_option( 'font' ) == 'open-sans' ) || ( ot_get_option( 'font' ) == 'open-sans-cyr' ) ) { $styles .= 'body { font-family: "Open Sans", Arial, sans-serif; }'."\n"; } + if ( ( ot_get_option( 'font' ) == 'pt-serif' ) || ( ot_get_option( 'font' ) == 'pt-serif-cyr' ) ) { $styles .= 'body { font-family: "PT Serif", serif; }'."\n"; } if ( ot_get_option( 'font' ) == 'arial' ) { $styles .= 'body { font-family: Arial, sans-serif; }'."\n"; } if ( ot_get_option( 'font' ) == 'georgia' ) { $styles .= 'body { font-family: Georgia, serif; }'."\n"; } diff --git a/functions/theme-options.php b/functions/theme-options.php index 4dc5a33..db5fe13 100644 --- a/functions/theme-options.php +++ b/functions/theme-options.php @@ -24,28 +24,14 @@ function custom_theme_options() { 'title' => 'Documentation', 'content' => '

Anew

-

Thanks for using this theme! First, a friendly warning: Please remember that the "Reset Options" button resets ALL options. That means, if you reset your styling options, all your custom sidebars and other settings will be reset as well.

-

Frequently Asked Questions

-

Q: Why are social sharing buttons missing Google Plus? — A: You need to enable urlCurl on your server for G+ to work. Ask your webhost to do so. If you are unable to, you can disable the buttons and use any other plugin instead.

-

Q: My old thumbnails have different sizes, why? — A: Thumbnails uploaded before changing theme will not be automatically re-cropped. To fix this, you need to run the Regenerate Thumbnails plugin once.

-

Q: I did not use featured images before and have many posts, what do I do? — A: Use the Easy Add Thumbnail plugin to automatically make the first image uploaded to each post a featured image.

-

Q: Why is my featured image not appearing on the single post page? — A: You need to use the "Image" format option for it to show up, as not everyone wants to show the featured image at the top for the "Standard" post format.

-

Q: My gallery format post shows images twice, why? — A: This is because you insert a standard gallery into the post itself. This is not needed, as the gallery format post will auto-display attached images in the slider above.

-

Q: My slider gallery includes images I only want to show in the content below — A: The gallery format will always show all attached images. For it to not show up, go to Media > Add New and upload it there. Then go back to the post and add it.

-

Dynamic Styles

-

The dynamic styles will be added directly to the head of your theme. This is according to WordPress best practices, but if you do not want it printed out there, simply inspect the code of your page with the styling options set. Copy the CSS from head into your child theme\'s style.css file or this theme\'s custom.css (which you need to enable), and disable dynamic styling.

-

Theme Customization

-

When modifiying the theme you should always use a child theme, otherwise your customized files will be removed/overwritten when you update the theme. Download the sample child theme below and upload it via admin. Then activate your child theme and start customizing it!

+

Thanks for using this theme! Enjoy.

    -
  • Read more how to use a child theme here.
  • -
  • Download the Anew sample child theme here.
  • +
  • Read the theme documentation here
  • +
  • Download the sample child theme here
  • +
  • Download or contribute translations here
-

If you are not using a child theme, you must do this before each theme update:

-
    -
  1. Backup your custom.css file if you have used it, it will be overwritten and needs to be re-added after the update.
  2. -
  3. Backup your additional language files if you have created/modified any, they will be removed and need to be re-added after the update.
  4. -
  5. Backup any other custom code.
  6. -
+
+

You can support the theme author by donating here – any amount is always appreciated.

' ) ) @@ -96,43 +82,28 @@ function custom_theme_options() { array( 'id' => 'custom', 'label' => 'Custom Stylesheet', - 'desc' => 'Load your custom styles [ custom.css ]
Note: You must backup this file before a theme update. Consider using a child theme instead. A sample child theme is available in the help dropdown.', - 'type' => 'checkbox', - 'section' => 'general', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Enable' - ) - ) + 'desc' => 'Load custom stylesheet [ custom.css ]
Note: You must backup this file before a theme update. Consider using a child theme instead. A sample child theme is available in the help dropdown.', + 'std' => 'off', + 'type' => 'on-off', + 'section' => 'general' ), // General: Responsive Layout array( 'id' => 'responsive', 'label' => 'Responsive Layout', - 'desc' => 'Disable mobile and tablet optimizations [ responsive.css ]', - 'type' => 'checkbox', - 'section' => 'general', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Disable' - ) - ) + 'desc' => 'Mobile and tablet optimizations [ responsive.css ]', + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'general' ), // General: Mobile Sidebar array( 'id' => 'mobile-sidebar-hide', 'label' => 'Mobile Sidebar Content', - 'desc' => 'Hide sidebar content on low-resolution mobile devices (320px)', - 'type' => 'checkbox', - 'section' => 'general', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Hide' - ) - ) + 'desc' => 'Sidebar content on low-resolution mobile devices (320px)', + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'general' ), // General: Favicon array( @@ -162,22 +133,16 @@ function custom_theme_options() { // General: Comments array( 'id' => 'page-comments', - 'label' => 'Comments', - 'desc' => '', - 'type' => 'checkbox', - 'section' => 'general', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Enable comments on pages', - 'std' => '1' - ) - ) + 'label' => 'Page Comments', + 'desc' => 'Comments on pages', + 'std' => 'off', + 'type' => 'on-off', + 'section' => 'general' ), // Blog: Single - Content or Excerpt array( 'id' => 'post-text', - 'label' => 'Content or Excerpt', + 'label' => 'Entry Text', 'desc' => 'More link appears at the bottom of both excerpt and content', 'std' => 'excerpt', 'type' => 'radio', @@ -206,16 +171,11 @@ function custom_theme_options() { // Blog: Single - Sharrre array( 'id' => 'sharrre', - 'label' => 'Single — Share Buttons', + 'label' => 'Single — Share Bar', 'desc' => 'Social sharing buttons for each article', - 'type' => 'checkbox', - 'section' => 'blog', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Disable' - ) - ) + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'blog' ), // Blog: Twitter Username array( @@ -230,33 +190,18 @@ function custom_theme_options() { 'id' => 'author-bio', 'label' => 'Single — Author Bio', 'desc' => 'Shows post author description, if it exists', - 'type' => 'checkbox', - 'section' => 'blog', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Disable' - ) - ) + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'blog' ), // Blog: Single - Post Navigation array( 'id' => 'post-nav', 'label' => 'Single — Post Navigation', 'desc' => 'Shows links to the next and previous article', - 'std' => 'content', - 'type' => 'radio', - 'section' => 'blog', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Disable' - ), - array( - 'value' => 'content', - 'label' => 'Below content' - ) - ) + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'blog' ), // Header: Custom Logo array( @@ -271,14 +216,9 @@ function custom_theme_options() { 'id' => 'site-description', 'label' => 'Site Description', 'desc' => 'The description that appears next to your logo', - 'type' => 'checkbox', - 'section' => 'header', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Disable' - ) - ) + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'header' ), // Header: Header Image array( @@ -345,16 +285,10 @@ function custom_theme_options() { array( 'id' => 'credit', 'label' => 'Footer Credit', - 'desc' => 'Disable footer credit text', - 'std' => '', - 'type' => 'checkbox', - 'section' => 'footer', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Disable' - ) - ) + 'desc' => 'Footer credit text', + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'footer' ), // Layout : Global array( @@ -720,29 +654,19 @@ function custom_theme_options() { array( 'id' => 'dynamic-styles', 'label' => 'Dynamic Styles', - 'desc' => 'Turn styling options on / off', - 'type' => 'checkbox', - 'section' => 'styling', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Enable to use the options below' - ) - ) + 'desc' => 'Turn on to use the styling options below', + 'std' => 'on', + 'type' => 'on-off', + 'section' => 'styling' ), // General: Boxed Layout array( 'id' => 'boxed', 'label' => 'Boxed Layout', 'desc' => 'Use a boxed layout', - 'type' => 'checkbox', - 'section' => 'styling', - 'choices' => array( - array( - 'value' => '1', - 'label' => 'Enable' - ) - ) + 'std' => 'off', + 'type' => 'on-off', + 'section' => 'styling' ), // Styling: Font array( @@ -773,6 +697,10 @@ function custom_theme_options() { 'value' => 'ubuntu', 'label' => 'Ubuntu, Latin-Ext (Google Fonts)' ), + array( + 'value' => 'ubuntu-cyr', + 'label' => 'Ubuntu, Latin / Cyrillic-Ext (Google Fonts)' + ), array( 'value' => 'roboto-condensed', 'label' => 'Roboto Condensed, Latin-Ext (Google Fonts)' @@ -789,6 +717,14 @@ function custom_theme_options() { 'value' => 'open-sans-cyr', 'label' => 'Open Sans, Latin / Cyrillic-Ext (Google Fonts)' ), + array( + 'value' => 'pt-serif', + 'label' => 'PT Serif, Latin-Ext (Google Fonts)' + ), + array( + 'value' => 'pt-serif-cyr', + 'label' => 'PT Serif, Latin / Cyrillic-Ext (Google Fonts)' + ), array( 'value' => 'arial', 'label' => 'Arial' diff --git a/header.php b/header.php index 5076156..133e492 100644 --- a/header.php +++ b/header.php @@ -40,7 +40,7 @@
-

+

diff --git a/page-templates/child-menu.php b/page-templates/child-menu.php index 073da11..4c15330 100644 --- a/page-templates/child-menu.php +++ b/page-templates/child-menu.php @@ -24,7 +24,7 @@ - + diff --git a/page.php b/page.php index 548b604..1702d99 100644 --- a/page.php +++ b/page.php @@ -19,7 +19,7 @@ - + diff --git a/single.php b/single.php index 634dd5f..a8cf314 100644 --- a/single.php +++ b/single.php @@ -40,14 +40,14 @@ '.__('Tags:','anew').' ','','

'); ?>
- +
- +

@@ -56,9 +56,7 @@
- - - + diff --git a/style.css b/style.css index 2cf0d00..d2df9a7 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.1.0 +Version: 2.1.1 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From 40ca6f4f27d24bf89a45b5a36f354511b5713b9d Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 10 Feb 2014 15:09:08 +0100 Subject: [PATCH 11/62] 2.1.1 --- readme.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index c310c20..7fcceaf 100644 --- a/readme.txt +++ b/readme.txt @@ -1,4 +1,7 @@ -If you like this theme, feel free to check out my other ones at http://alxmedia.se/themes/ :-) +View more themes from this author: http://alxmedia.se/themes/ + +You can support the theme author by donating here: +https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=C5J7JHMSHW9T8 any amount is always appreciated. /* Theme License From 4608b9d18b79b81e58a5e9ae40a7281c6c4be4b8 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 10 Feb 2014 15:45:53 +0100 Subject: [PATCH 12/62] Add GitHub link --- functions/theme-options.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/functions/theme-options.php b/functions/theme-options.php index db5fe13..896a907 100644 --- a/functions/theme-options.php +++ b/functions/theme-options.php @@ -29,6 +29,7 @@ function custom_theme_options() {
  • Read the theme documentation here
  • Download the sample child theme here
  • Download or contribute translations here
  • +
  • Anew is on GitHub

  • You can support the theme author by donating here – any amount is always appreciated.

    @@ -659,7 +660,7 @@ function custom_theme_options() { 'type' => 'on-off', 'section' => 'styling' ), - // General: Boxed Layout + // Styling: Boxed Layout array( 'id' => 'boxed', 'label' => 'Boxed Layout', From fb3bb3937a791f10933e7f8aa2f0c26526d46c87 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 24 Mar 2014 10:36:45 +0100 Subject: [PATCH 13/62] OptionTree 2.3.4 --- option-tree/assets/css/ot-admin.css | 9 + option-tree/assets/js/ot-admin.js | 44 ++- .../assets/theme-mode/demo-meta-boxes.php | 2 +- .../assets/theme-mode/demo-theme-options.php | 23 +- option-tree/includes/ot-functions-admin.php | 105 +++++- .../includes/ot-functions-option-types.php | 27 +- option-tree/languages/option-tree.po | 317 +++++++++--------- option-tree/ot-loader.php | 20 +- option-tree/readme.txt | 46 ++- 9 files changed, 394 insertions(+), 199 deletions(-) diff --git a/option-tree/assets/css/ot-admin.css b/option-tree/assets/css/ot-admin.css index 12e9bd1..a44b47a 100644 --- a/option-tree/assets/css/ot-admin.css +++ b/option-tree/assets/css/ot-admin.css @@ -2049,6 +2049,15 @@ li ul .format-setting-label { .option-tree-layout-activate { text-indent: -9999px; } +.option-tree-layout-activate .icon:before { + content: "\e686"; + position: relative; + top: 1px; +} +.option-tree-layout-activate.active .icon:before { + content: "\e640"; + padding-left: 1px; +} /* -------------------------------------------------- :: Select diff --git a/option-tree/assets/js/ot-admin.js b/option-tree/assets/js/ot-admin.js index c6a430f..cb3978a 100644 --- a/option-tree/assets/js/ot-admin.js +++ b/option-tree/assets/js/ot-admin.js @@ -244,6 +244,7 @@ OT_UI.init_sortable(); OT_UI.init_select_wrapper(); OT_UI.init_numeric_slider(); + OT_UI.parse_condition(); }, 500); self.processing = false; } @@ -326,16 +327,16 @@ switch ( condition.rule ) { case 'less_than': - result = ( v1 < v2 ); + result = ( parseInt( v1 ) < parseInt( v2 ) ); break; case 'less_than_or_equal_to': - result = ( v1 <= v2 ); + result = ( parseInt( v1 ) <= parseInt( v2 ) ); break; case 'greater_than': - result = ( v1 > v2 ); + result = ( parseInt( v1 ) > parseInt( v2 ) ); break; case 'greater_than_or_equal_to': - result = ( v1 >= v2 ); + result = ( parseInt( v1 ) >= parseInt( v2 ) ); break; case 'contains': result = ( v2.indexOf(v1) !== -1 ? true : false ); @@ -551,18 +552,20 @@ bind_colorpicker: function(field_id) { $('#'+field_id).wpColorPicker(); }, - bind_date_picker: function(field_id) { + bind_date_picker: function(field_id, date_format) { $('#'+field_id).datepicker({ showOtherMonths: true, showButtonPanel: true, currentText: option_tree.date_current, - closeText: option_tree.date_close + closeText: option_tree.date_close, + dateFormat: date_format }); }, - bind_date_time_picker: function(field_id) { + bind_date_time_picker: function(field_id, date_format) { $('#'+field_id).datetimepicker({ showOtherMonths: true, - closeText: option_tree.date_close + closeText: option_tree.date_close, + dateFormat: date_format }); }, fix_upload_parent: function() { @@ -643,15 +646,12 @@ }); })(jQuery); -/* Gallery*/ +/* Gallery */ !function ($) { ot_gallery = { frame: function (elm) { - - if ( this._frame ) - return this._frame var selection = this.select(elm) @@ -671,6 +671,7 @@ , ids = library.pluck('id') , parent = $(elm).parents('.format-setting-inner') , input = parent.children('.ot-gallery-value') + , shortcode = wp.media.gallery.shortcode( selection ).string().replace(/\"/g,"'") input.attr('value', ids) @@ -682,11 +683,13 @@ url: ajaxurl, dataType: 'html', data: { - action: 'gallery_update', - ids: ids + action: 'gallery_update' + , ids: ids }, success: function(res) { parent.children('.ot-gallery-list').html(res) + if ( input.hasClass('ot-gallery-shortcode') ) + input.val(shortcode) if ( $(elm).parent().children('.ot-gallery-delete').length <= 0 ) { $(elm).parent().append('' + option_tree.delete + '') } @@ -701,9 +704,10 @@ } , select: function (elm) { - var ids = $(elm).parents('.format-setting-inner').children('.ot-gallery-value').attr('value') - , fakeShortcode = '[gallery ids="' + ids + '"]' - , shortcode = wp.shortcode.next('gallery', ( ids ? fakeShortcode : wp.media.view.settings.ot_gallery.shortcode ) ) + var input = $(elm).parents('.format-setting-inner').children('.ot-gallery-value') + , ids = input.attr('value') + , _shortcode = input.hasClass('ot-gallery-shortcode') ? ids : '[gallery ids=\'' + ids + '\]' + , shortcode = wp.shortcode.next('gallery', ( ids ? _shortcode : wp.media.view.settings.ot_gallery.shortcode ) ) , defaultPostId = wp.media.gallery.defaults.id , attachments , selection @@ -718,6 +722,12 @@ if ( _.isUndefined( shortcode.get('id') ) && ! _.isUndefined( defaultPostId ) ) shortcode.set( 'id', defaultPostId ) + if ( _.isUndefined( shortcode.get('ids') ) && ! input.hasClass('ot-gallery-shortcode') && ids ) + shortcode.set( 'ids', ids ) + + if ( _.isUndefined( shortcode.get('ids') ) ) + shortcode.set( 'ids', '0' ) + attachments = wp.media.gallery.attachments( shortcode ) selection = new wp.media.model.Selection( attachments.models, { diff --git a/option-tree/assets/theme-mode/demo-meta-boxes.php b/option-tree/assets/theme-mode/demo-meta-boxes.php index 7181a29..5b71fbd 100644 --- a/option-tree/assets/theme-mode/demo-meta-boxes.php +++ b/option-tree/assets/theme-mode/demo-meta-boxes.php @@ -68,7 +68,7 @@ function custom_meta_boxes() { 'label' => __( 'Textarea', 'theme-text-domain' ), 'id' => 'demo_textarea', 'type' => 'textarea', - 'desc' => __( 'This is a demo Textarea field.' ) + 'desc' => __( 'This is a demo Textarea field.', 'theme-text-domain' ) ) ) ); diff --git a/option-tree/assets/theme-mode/demo-theme-options.php b/option-tree/assets/theme-mode/demo-theme-options.php index bf462f9..86cc712 100644 --- a/option-tree/assets/theme-mode/demo-theme-options.php +++ b/option-tree/assets/theme-mode/demo-theme-options.php @@ -15,7 +15,7 @@ function custom_theme_options() { /** * Get a copy of the saved settings array. */ - $saved_settings = get_option( 'option_tree_settings', array() ); + $saved_settings = get_option( ot_settings_id(), array() ); /** * Custom settings array that will eventually be @@ -57,7 +57,7 @@ function custom_theme_options() { array( 'id' => 'demo_category_checkbox', 'label' => __( 'Category Checkbox', 'theme-text-domain' ), - 'desc' => __( 'The Category Checkbox option type displays a list of category IDs. It allows the user to check multiple category IDs and will return that value as an array for use in a custom function or loop.' ), + 'desc' => __( 'The Category Checkbox option type displays a list of category IDs. It allows the user to check multiple category IDs and will return that value as an array for use in a custom function or loop.', 'theme-text-domain' ), 'std' => '', 'type' => 'category-checkbox', 'section' => 'option_types', @@ -218,6 +218,21 @@ function custom_theme_options() { 'condition' => '', 'operator' => 'and' ), + array( + 'id' => 'demo_gallery_shortcode', + 'label' => __( 'Gallery Shortcode', 'theme-text-domain' ), + 'desc' => sprintf( __( 'The Gallery option type can also be saved as a shortcode by adding %s to the class attribute. Using the Gallery option type in this manner will result in a better user experience as you\'re able to save the link, column, and order settings.', 'theme-text-domain' ), 'ot-gallery-shortcode' ), + 'std' => '', + 'type' => 'gallery', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => 'ot-gallery-shortcode', + 'condition' => '', + 'operator' => 'and' + ), array( 'id' => 'demo_list_item', 'label' => __( 'List Item', 'theme-text-domain' ), @@ -622,11 +637,11 @@ function custom_theme_options() { ); /* allow settings to be filtered before saving */ - $custom_settings = apply_filters( 'option_tree_settings_args', $custom_settings ); + $custom_settings = apply_filters( ot_settings_id() . '_args', $custom_settings ); /* settings are not the same update the DB */ if ( $saved_settings !== $custom_settings ) { - update_option( 'option_tree_settings', $custom_settings ); + update_option( ot_settings_id(), $custom_settings ); } } \ No newline at end of file diff --git a/option-tree/includes/ot-functions-admin.php b/option-tree/includes/ot-functions-admin.php index 4033bcf..78e1353 100644 --- a/option-tree/includes/ot-functions-admin.php +++ b/option-tree/includes/ot-functions-admin.php @@ -467,7 +467,7 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { $input['background-image'] = ot_validate_setting( $input['background-image'], 'upload', $field_id ); // Loop over array and check for values - foreach( $input as $key => $value ) { + foreach( (array) $input as $key => $value ) { if ( ! empty( $value ) ) { $has_value = true; } @@ -703,6 +703,7 @@ function ot_create_media_post() { /* create post object */ $_p = array(); $_p['post_title'] = 'Media'; + $_p['post_name'] = 'media'; $_p['post_status'] = 'private'; $_p['post_type'] = 'option-tree'; $_p['comment_status'] = 'closed'; @@ -3630,16 +3631,16 @@ function ot_contextual_help_view( $name, $key, $content = array() ) { * @access public * @since 2.0 */ -if ( ! function_exists( 'ot_layouts_view' ) ) { +if ( ! function_exists( 'ot_layout_view' ) ) { function ot_layout_view( $key, $data = '', $active_layout = '' ) { - + return '
    ' . ( isset( $key ) ? esc_attr( $key ) : __( 'Layout', 'option-tree' ) ) . '
    - ' . __( 'Activate', 'option-tree' ) . ' + ' . __( 'Activate', 'option-tree' ) . ' ' . __( 'Delete', 'option-tree' ) . ' @@ -4293,5 +4294,99 @@ function ot_wpml_unregister_string( $id ) { } +/** + * Maybe migrate Settings + * + * @return void + * + * @access public + * @since 2.3.3 + */ +if ( ! function_exists( 'ot_maybe_migrate_settings' ) ) { + + function ot_maybe_migrate_settings() { + + // Filter the ID to migrate from + $settings_id = apply_filters( 'ot_migrate_settings_id', '' ); + + // Attempt to migrate Settings + if ( ! empty( $settings_id ) && get_option( ot_settings_id() ) === false && ot_settings_id() !== $settings_id ) { + + // Old settings + $settings = get_option( $settings_id ); + + // Check for array keys + if ( isset( $settings['sections'] ) && isset( $settings['settings'] ) ) { + + update_option( ot_settings_id(), $settings ); + + } + + } + + } + +} + +/** + * Maybe migrate Option + * + * @return void + * + * @access public + * @since 2.3.3 + */ +if ( ! function_exists( 'ot_maybe_migrate_options' ) ) { + + function ot_maybe_migrate_options() { + + // Filter the ID to migrate from + $options_id = apply_filters( 'ot_migrate_options_id', '' ); + + // Attempt to migrate Theme Options + if ( ! empty( $options_id ) && get_option( ot_options_id() ) === false && ot_options_id() !== $options_id ) { + + // Old options + $options = get_option( $options_id ); + + // Migrate to new ID + update_option( ot_options_id(), $options ); + + } + + } + +} + +/** + * Maybe migrate Layouts + * + * @return void + * + * @access public + * @since 2.3.3 + */ +if ( ! function_exists( 'ot_maybe_migrate_layouts' ) ) { + + function ot_maybe_migrate_layouts() { + + // Filter the ID to migrate from + $layouts_id = apply_filters( 'ot_migrate_layouts_id', '' ); + + // Attempt to migrate Layouts + if ( ! empty( $layouts_id ) && get_option( ot_layouts_id() ) === false && ot_layouts_id() !== $layouts_id ) { + + // Old options + $layouts = get_option( $layouts_id ); + + // Migrate to new ID + update_option( ot_layouts_id(), $layouts ); + + } + + } + +} + /* End of file ot-functions-admin.php */ -/* Location: ./includes/ot-functions-admin.php */ +/* Location: ./includes/ot-functions-admin.php */ \ No newline at end of file diff --git a/option-tree/includes/ot-functions-option-types.php b/option-tree/includes/ot-functions-option-types.php index 84e7330..fdbb17a 100644 --- a/option-tree/includes/ot-functions-option-types.php +++ b/option-tree/includes/ot-functions-option-types.php @@ -644,11 +644,14 @@ function ot_type_date_picker( $args = array() ) { /* verify a description */ $has_desc = $field_desc ? true : false; + /* filter date format */ + $date_format = apply_filters( 'ot_type_date_picker_date_format', 'yy-mm-dd', $field_id ); + /* format setting outer wrapper */ echo '
    '; /* date picker JS */ - echo ''; + echo ''; /* description */ echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; @@ -688,11 +691,14 @@ function ot_type_date_time_picker( $args = array() ) { /* verify a description */ $has_desc = $field_desc ? true : false; + /* filter date format */ + $date_format = apply_filters( 'ot_type_date_time_picker_date_format', 'yy-mm-dd', $field_id ); + /* format setting outer wrapper */ echo '
    '; /* date time picker JS */ - echo ''; + echo ''; /* description */ echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; @@ -749,8 +755,21 @@ function ot_type_gallery( $args = array() ) { // Saved values echo ''; + // Search the string for the IDs + preg_match( '/ids=\'(.*?)\'/', $field_value, $matches ); + // Turn the field value into an array of IDs - $ids = ! empty( $field_value ) && $field_value != '' ? explode( ',', $field_value ) : array(); + if ( isset( $matches[1] ) ) { + + // The string is a shortcode + $ids = explode( ',', $matches[1] ); + + } else { + + // The string is a comma separated list of IDs + $ids = ! empty( $field_value ) && $field_value != '' ? explode( ',', $field_value ) : array(); + + } // Has attachment IDs if ( ! empty( $ids ) ) { @@ -931,7 +950,7 @@ function ot_type_measurement( $args = array() ) { * @access public * @since 2.1 */ -if( ! function_exists( 'ot_type_numeric_slider' ) ) { +if ( ! function_exists( 'ot_type_numeric_slider' ) ) { function ot_type_numeric_slider( $args = array() ) { diff --git a/option-tree/languages/option-tree.po b/option-tree/languages/option-tree.po index 3f8e745..be6ab57 100644 --- a/option-tree/languages/option-tree.po +++ b/option-tree/languages/option-tree.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: OptionTree\n" -"POT-Creation-Date: 2014-02-09 00:50-0800\n" -"PO-Revision-Date: 2014-02-09 00:50-0800\n" +"POT-Creation-Date: 2014-03-03 18:29-0800\n" +"PO-Revision-Date: 2014-03-03 18:29-0800\n" "Last-Translator: Derek Herman \n" "Language-Team: Valen Designs\n" "Language: English\n" @@ -17,7 +17,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Poedit-SearchPath-0: ..\n" -#: ../ot-loader.php:670 ../assets/theme-mode/demo-theme-options.php:609 +#: ../ot-loader.php:682 ../assets/theme-mode/demo-theme-options.php:624 #: ../includes/ot-functions-admin.php:623 #: ../includes/ot-functions-docs-page.php:371 #: ../includes/ot-functions-settings-page.php:170 @@ -61,7 +61,7 @@ msgid "More Options" msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:62 -#: ../assets/theme-mode/demo-theme-options.php:518 +#: ../assets/theme-mode/demo-theme-options.php:533 #: ../includes/ot-functions-docs-page.php:266 msgid "Text" msgstr "" @@ -71,7 +71,7 @@ msgid "This is a demo Text field." msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:68 -#: ../assets/theme-mode/demo-theme-options.php:533 +#: ../assets/theme-mode/demo-theme-options.php:548 #: ../includes/ot-functions-docs-page.php:269 msgid "Textarea" msgstr "" @@ -112,8 +112,8 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:45 -#: ../assets/theme-mode/demo-theme-options.php:594 -#: ../includes/ot-functions-admin.php:3479 +#: ../assets/theme-mode/demo-theme-options.php:609 +#: ../includes/ot-functions-admin.php:3480 #: ../includes/ot-functions-docs-page.php:111 #: ../includes/ot-functions-docs-page.php:351 msgid "and" @@ -159,14 +159,14 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:104 -#: ../assets/theme-mode/demo-theme-options.php:379 -#: ../assets/theme-mode/demo-theme-options.php:431 +#: ../assets/theme-mode/demo-theme-options.php:394 +#: ../assets/theme-mode/demo-theme-options.php:446 msgid "No" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:109 -#: ../assets/theme-mode/demo-theme-options.php:374 -#: ../assets/theme-mode/demo-theme-options.php:426 +#: ../assets/theme-mode/demo-theme-options.php:389 +#: ../assets/theme-mode/demo-theme-options.php:441 msgid "Yes" msgstr "" @@ -276,11 +276,24 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:223 +msgid "Gallery Shortcode" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:224 +#, php-format +msgid "" +"The Gallery option type can also be saved as a shortcode by adding %s to the " +"class attribute. Using the Gallery option type in this manner will result in " +"a better user experience as you're able to save the link, column, and order " +"settings." +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:238 #: ../includes/ot-functions-docs-page.php:159 msgid "List Item" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:224 +#: ../assets/theme-mode/demo-theme-options.php:239 msgid "" "The List Item option type allows for a great deal of customization. You can " "add settings to the List Item and those settings will be displayed to the " @@ -288,16 +301,16 @@ msgid "" "content or blocks of code for custom layouts." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:238 +#: ../assets/theme-mode/demo-theme-options.php:253 msgid "Content" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:254 +#: ../assets/theme-mode/demo-theme-options.php:269 #: ../includes/ot-functions-docs-page.php:162 msgid "Measurement" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:255 +#: ../assets/theme-mode/demo-theme-options.php:270 #: ../includes/ot-functions-docs-page.php:163 #, php-format msgid "" @@ -307,24 +320,24 @@ msgid "" "However, you can change them with the %s filter." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:269 +#: ../assets/theme-mode/demo-theme-options.php:284 #: ../includes/ot-functions-docs-page.php:193 msgid "Numeric Slider" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:270 +#: ../assets/theme-mode/demo-theme-options.php:285 #: ../includes/ot-functions-docs-page.php:194 msgid "" "The Numeric Slider option type displays a jQuery UI slider. It will return a " "single numerical value for use in a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:284 +#: ../assets/theme-mode/demo-theme-options.php:299 #: ../includes/ot-functions-docs-page.php:196 msgid "On/Off" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:285 +#: ../assets/theme-mode/demo-theme-options.php:300 #: ../includes/ot-functions-docs-page.php:197 #, php-format msgid "" @@ -332,60 +345,60 @@ msgid "" "things on or off. The saved return value is either %s or %s." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:299 +#: ../assets/theme-mode/demo-theme-options.php:314 #: ../includes/ot-functions-docs-page.php:199 msgid "Page Checkbox" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:300 +#: ../assets/theme-mode/demo-theme-options.php:315 #: ../includes/ot-functions-docs-page.php:200 msgid "" "The Page Checkbox option type displays a list of page IDs. It allows the " "user to check multiple page IDs for use in a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:314 +#: ../assets/theme-mode/demo-theme-options.php:329 #: ../includes/ot-functions-docs-page.php:202 msgid "Page Select" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:315 +#: ../assets/theme-mode/demo-theme-options.php:330 #: ../includes/ot-functions-docs-page.php:203 msgid "" "The Page Select option type displays a list of page IDs. It will return a " "single page ID for use in a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:329 +#: ../assets/theme-mode/demo-theme-options.php:344 #: ../includes/ot-functions-docs-page.php:205 msgid "Post Checkbox" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:330 +#: ../assets/theme-mode/demo-theme-options.php:345 #: ../includes/ot-functions-docs-page.php:206 msgid "" "The Post Checkbox option type displays a list of post IDs. It allows the " "user to check multiple post IDs for use in a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:344 +#: ../assets/theme-mode/demo-theme-options.php:359 #: ../includes/ot-functions-docs-page.php:208 msgid "Post Select" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:345 +#: ../assets/theme-mode/demo-theme-options.php:360 #: ../includes/ot-functions-docs-page.php:209 msgid "" "The Post Select option type displays a list of post IDs. It will return a " "single post ID for use in a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:359 +#: ../assets/theme-mode/demo-theme-options.php:374 #: ../includes/ot-functions-docs-page.php:211 msgid "Radio" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:360 +#: ../assets/theme-mode/demo-theme-options.php:375 #: ../includes/ot-functions-docs-page.php:212 msgid "" "The Radio option type displays a group of choices. It allows the user to " @@ -393,17 +406,17 @@ msgid "" "function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:384 -#: ../assets/theme-mode/demo-theme-options.php:436 +#: ../assets/theme-mode/demo-theme-options.php:399 +#: ../assets/theme-mode/demo-theme-options.php:451 msgid "Maybe" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:391 +#: ../assets/theme-mode/demo-theme-options.php:406 #: ../includes/ot-functions-docs-page.php:214 msgid "Radio Image" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:392 +#: ../assets/theme-mode/demo-theme-options.php:407 #: ../includes/ot-functions-docs-page.php:215 #, php-format msgid "" @@ -412,28 +425,28 @@ msgid "" "using the choices array." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:406 +#: ../assets/theme-mode/demo-theme-options.php:421 #: ../includes/ot-functions-docs-page.php:241 msgid "Select" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:407 +#: ../assets/theme-mode/demo-theme-options.php:422 #: ../includes/ot-functions-docs-page.php:242 msgid "" "The Select option type is used to list anything you want that would be " "chosen from a select list." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:421 +#: ../assets/theme-mode/demo-theme-options.php:436 msgid "-- Choose One --" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:443 +#: ../assets/theme-mode/demo-theme-options.php:458 #: ../includes/ot-functions-docs-page.php:244 msgid "Sidebar Select" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:444 +#: ../assets/theme-mode/demo-theme-options.php:459 #: ../includes/ot-functions-docs-page.php:245 #, php-format msgid "" @@ -443,7 +456,7 @@ msgid "" "on a specific content area." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:444 +#: ../assets/theme-mode/demo-theme-options.php:459 #: ../includes/ot-functions-docs-page.php:246 #, php-format msgid "" @@ -453,12 +466,12 @@ msgid "" "using a regular expression if we have a common name like %s." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:458 +#: ../assets/theme-mode/demo-theme-options.php:473 #: ../includes/ot-functions-docs-page.php:254 msgid "Tag Checkbox" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:459 +#: ../assets/theme-mode/demo-theme-options.php:474 #: ../includes/ot-functions-docs-page.php:255 msgid "" "The Tag Checkbox option type displays a list of tag IDs. It allows the user " @@ -466,12 +479,12 @@ msgid "" "a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:473 +#: ../assets/theme-mode/demo-theme-options.php:488 #: ../includes/ot-functions-docs-page.php:257 msgid "Tag Select" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:474 +#: ../assets/theme-mode/demo-theme-options.php:489 #: ../includes/ot-functions-docs-page.php:258 msgid "" "The Tag Select option type displays a list of tag IDs. It allows the user to " @@ -479,12 +492,12 @@ msgid "" "function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:488 +#: ../assets/theme-mode/demo-theme-options.php:503 #: ../includes/ot-functions-docs-page.php:260 msgid "Taxonomy Checkbox" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:489 +#: ../assets/theme-mode/demo-theme-options.php:504 #: ../includes/ot-functions-docs-page.php:261 msgid "" "The Taxonomy Checkbox option type displays a list of taxonomy IDs. It allows " @@ -492,12 +505,12 @@ msgid "" "array for use in a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:503 +#: ../assets/theme-mode/demo-theme-options.php:518 #: ../includes/ot-functions-docs-page.php:263 msgid "Taxonomy Select" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:504 +#: ../assets/theme-mode/demo-theme-options.php:519 #: ../includes/ot-functions-docs-page.php:264 msgid "" "The Taxonomy Select option type displays a list of taxonomy IDs. It allows " @@ -505,14 +518,14 @@ msgid "" "in a custom function or loop." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:519 +#: ../assets/theme-mode/demo-theme-options.php:534 #: ../includes/ot-functions-docs-page.php:267 msgid "" "The Text option type is used to save string values. For example, any " "optional or required text that is of reasonably short character length." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:534 +#: ../assets/theme-mode/demo-theme-options.php:549 #: ../includes/ot-functions-docs-page.php:270 #, php-format msgid "" @@ -521,24 +534,24 @@ msgid "" "the how it is displayed. For example, you can filter %s, %s, %s, and %s." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:548 +#: ../assets/theme-mode/demo-theme-options.php:563 #: ../includes/ot-functions-docs-page.php:328 msgid "Textarea Simple" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:549 +#: ../assets/theme-mode/demo-theme-options.php:564 #: ../includes/ot-functions-docs-page.php:329 msgid "" "The Textarea Simple option type is a large string value used for custom code " "or text in the theme. The Textarea Simple does not have a WYSIWYG editor." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:563 +#: ../assets/theme-mode/demo-theme-options.php:578 #: ../includes/ot-functions-docs-page.php:344 msgid "Textblock" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:564 +#: ../assets/theme-mode/demo-theme-options.php:579 #: ../includes/ot-functions-docs-page.php:345 msgid "" "The Textblock option type is used only on the Theme Option page. It will " @@ -548,12 +561,12 @@ msgid "" "themes template files as it does not save a value." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:578 +#: ../assets/theme-mode/demo-theme-options.php:593 #: ../includes/ot-functions-docs-page.php:347 msgid "Textblock Titled" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:579 +#: ../assets/theme-mode/demo-theme-options.php:594 #: ../includes/ot-functions-docs-page.php:348 msgid "" "The Textblock Titled option type is used only on the Theme Option page. It " @@ -563,12 +576,12 @@ msgid "" "this in your themes template files as it does not save a value." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:593 +#: ../assets/theme-mode/demo-theme-options.php:608 #: ../includes/ot-functions-docs-page.php:350 msgid "Typography" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:594 +#: ../assets/theme-mode/demo-theme-options.php:609 #: ../includes/ot-functions-docs-page.php:351 #, php-format msgid "" @@ -580,12 +593,12 @@ msgid "" "filters allow you to fine tune the select lists for your specific needs." msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:608 +#: ../assets/theme-mode/demo-theme-options.php:623 #: ../includes/ot-functions-docs-page.php:370 msgid "Upload" msgstr "" -#: ../assets/theme-mode/demo-theme-options.php:609 +#: ../assets/theme-mode/demo-theme-options.php:624 #: ../includes/ot-functions-docs-page.php:371 #, php-format msgid "" @@ -735,7 +748,7 @@ msgstr "" #: ../includes/ot-functions-admin.php:624 #: ../includes/ot-functions-option-types.php:239 -#: ../includes/ot-functions-option-types.php:2227 +#: ../includes/ot-functions-option-types.php:2249 msgid "Remove Media" msgstr "" @@ -760,17 +773,17 @@ msgid "Sorry, you can't have settings three levels deep." msgstr "" #: ../includes/ot-functions-admin.php:630 -#: ../includes/ot-functions-option-types.php:775 +#: ../includes/ot-functions-option-types.php:794 msgid "Delete Gallery" msgstr "" #: ../includes/ot-functions-admin.php:631 -#: ../includes/ot-functions-option-types.php:776 +#: ../includes/ot-functions-option-types.php:795 msgid "Edit Gallery" msgstr "" #: ../includes/ot-functions-admin.php:632 -#: ../includes/ot-functions-option-types.php:783 +#: ../includes/ot-functions-option-types.php:802 msgid "Create Gallery" msgstr "" @@ -794,226 +807,226 @@ msgstr "" msgid "Option Tree" msgstr "" -#: ../includes/ot-functions-admin.php:821 +#: ../includes/ot-functions-admin.php:822 msgid "General" msgstr "" -#: ../includes/ot-functions-admin.php:827 +#: ../includes/ot-functions-admin.php:828 msgid "Sample Text Field Label" msgstr "" -#: ../includes/ot-functions-admin.php:828 +#: ../includes/ot-functions-admin.php:829 msgid "Description for the sample text field." msgstr "" -#: ../includes/ot-functions-admin.php:2045 +#: ../includes/ot-functions-admin.php:2046 msgid "Settings updated." msgstr "" -#: ../includes/ot-functions-admin.php:2049 +#: ../includes/ot-functions-admin.php:2050 msgid "Settings could not be saved." msgstr "" -#: ../includes/ot-functions-admin.php:2057 +#: ../includes/ot-functions-admin.php:2058 msgid "Settings Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2061 +#: ../includes/ot-functions-admin.php:2062 msgid "Settings could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2068 +#: ../includes/ot-functions-admin.php:2069 msgid "Data Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2072 +#: ../includes/ot-functions-admin.php:2073 msgid "Data could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2080 +#: ../includes/ot-functions-admin.php:2081 msgid "Layouts Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2084 +#: ../includes/ot-functions-admin.php:2085 msgid "Layouts could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2092 +#: ../includes/ot-functions-admin.php:2093 msgid "Layouts Updated." msgstr "" -#: ../includes/ot-functions-admin.php:2096 +#: ../includes/ot-functions-admin.php:2097 msgid "Layouts could not be updated." msgstr "" -#: ../includes/ot-functions-admin.php:2100 +#: ../includes/ot-functions-admin.php:2101 msgid "Layouts have been deleted." msgstr "" -#: ../includes/ot-functions-admin.php:2106 +#: ../includes/ot-functions-admin.php:2107 msgid "Layout activated." msgstr "" -#: ../includes/ot-functions-admin.php:2673 +#: ../includes/ot-functions-admin.php:2674 msgid "Left Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2678 +#: ../includes/ot-functions-admin.php:2679 msgid "Right Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2683 +#: ../includes/ot-functions-admin.php:2684 msgid "Full Width (no sidebar)" msgstr "" -#: ../includes/ot-functions-admin.php:2688 +#: ../includes/ot-functions-admin.php:2689 msgid "Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2693 +#: ../includes/ot-functions-admin.php:2694 msgid "Left Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2698 +#: ../includes/ot-functions-admin.php:2699 msgid "Right Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2728 -#: ../includes/ot-functions-admin.php:2789 +#: ../includes/ot-functions-admin.php:2729 +#: ../includes/ot-functions-admin.php:2790 msgid "Image" msgstr "" -#: ../includes/ot-functions-admin.php:2739 -#: ../includes/ot-functions-admin.php:2795 +#: ../includes/ot-functions-admin.php:2740 +#: ../includes/ot-functions-admin.php:2796 msgid "Link" msgstr "" -#: ../includes/ot-functions-admin.php:2750 -#: ../includes/ot-functions-admin.php:2801 +#: ../includes/ot-functions-admin.php:2751 +#: ../includes/ot-functions-admin.php:2802 #: ../includes/ot-functions-docs-page.php:43 #: ../includes/ot-functions-docs-page.php:401 #: ../includes/ot-functions-docs-page.php:451 msgid "Description" msgstr "" -#: ../includes/ot-functions-admin.php:3284 +#: ../includes/ot-functions-admin.php:3285 msgid "edit" msgstr "" -#: ../includes/ot-functions-admin.php:3285 -#: ../includes/ot-functions-admin.php:3353 +#: ../includes/ot-functions-admin.php:3286 #: ../includes/ot-functions-admin.php:3354 -#: ../includes/ot-functions-admin.php:3516 +#: ../includes/ot-functions-admin.php:3355 #: ../includes/ot-functions-admin.php:3517 -#: ../includes/ot-functions-admin.php:3582 +#: ../includes/ot-functions-admin.php:3518 #: ../includes/ot-functions-admin.php:3583 -#: ../includes/ot-functions-admin.php:3710 +#: ../includes/ot-functions-admin.php:3584 #: ../includes/ot-functions-admin.php:3711 +#: ../includes/ot-functions-admin.php:3712 msgid "Edit" msgstr "" -#: ../includes/ot-functions-admin.php:3287 #: ../includes/ot-functions-admin.php:3288 -#: ../includes/ot-functions-admin.php:3356 +#: ../includes/ot-functions-admin.php:3289 #: ../includes/ot-functions-admin.php:3357 -#: ../includes/ot-functions-admin.php:3519 +#: ../includes/ot-functions-admin.php:3358 #: ../includes/ot-functions-admin.php:3520 -#: ../includes/ot-functions-admin.php:3585 +#: ../includes/ot-functions-admin.php:3521 #: ../includes/ot-functions-admin.php:3586 -#: ../includes/ot-functions-admin.php:3644 +#: ../includes/ot-functions-admin.php:3587 #: ../includes/ot-functions-admin.php:3645 -#: ../includes/ot-functions-admin.php:3713 +#: ../includes/ot-functions-admin.php:3646 #: ../includes/ot-functions-admin.php:3714 +#: ../includes/ot-functions-admin.php:3715 msgid "Delete" msgstr "" -#: ../includes/ot-functions-admin.php:3294 +#: ../includes/ot-functions-admin.php:3295 msgid "" "Section Title: Displayed as a menu item on the Theme " "Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3302 +#: ../includes/ot-functions-admin.php:3303 msgid "" "Section ID: A unique lower case alphanumeric string, " "underscores allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3363 +#: ../includes/ot-functions-admin.php:3364 msgid "" "Label: Displayed as the label of a form element on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3371 -#: ../includes/ot-functions-admin.php:3600 +#: ../includes/ot-functions-admin.php:3372 +#: ../includes/ot-functions-admin.php:3601 msgid "" "ID: A unique lower case alphanumeric string, underscores " "allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3379 +#: ../includes/ot-functions-admin.php:3380 msgid "" "Type: Choose one of the available option types from the " "dropdown." msgstr "" -#: ../includes/ot-functions-admin.php:3390 +#: ../includes/ot-functions-admin.php:3391 msgid "" "Description: Enter a detailed description for the users to " "read on the Theme Options page, HTML is allowed. This is also where you " "enter content for both the Textblock & Textblock Titled option types." msgstr "" -#: ../includes/ot-functions-admin.php:3398 +#: ../includes/ot-functions-admin.php:3399 msgid "" "Choices: This will only affect the following option types: " "Checkbox, Radio, Select & Select Image." msgstr "" -#: ../includes/ot-functions-admin.php:3403 +#: ../includes/ot-functions-admin.php:3404 msgid "Add Choice" msgstr "" -#: ../includes/ot-functions-admin.php:3409 +#: ../includes/ot-functions-admin.php:3410 msgid "" "Settings: This will only affect the List Item option type." msgstr "" -#: ../includes/ot-functions-admin.php:3414 +#: ../includes/ot-functions-admin.php:3415 #: ../includes/ot-functions-settings-page.php:93 msgid "Add Setting" msgstr "" -#: ../includes/ot-functions-admin.php:3420 +#: ../includes/ot-functions-admin.php:3421 msgid "" "Standard: Setting the standard value for your option only " "works for some option types. Read the OptionTree->Documentation " "for more information on which ones." msgstr "" -#: ../includes/ot-functions-admin.php:3428 +#: ../includes/ot-functions-admin.php:3429 msgid "" "Rows: Enter a numeric value for the number of rows in your " "textarea. This will only affect the following option types: CSS, Textarea, & " "Textarea Simple." msgstr "" -#: ../includes/ot-functions-admin.php:3436 +#: ../includes/ot-functions-admin.php:3437 msgid "" "Post Type: Add a comma separated list of post type like " "'post,page'. This will only affect the following option types: Custom Post " "Type Checkbox, & Custom Post Type Select." msgstr "" -#: ../includes/ot-functions-admin.php:3444 +#: ../includes/ot-functions-admin.php:3445 msgid "" "Taxonomy: Add a comma separated list of any registered " "taxonomy like 'category,post_tag'. This will only affect the following " "option types: Taxonomy Checkbox, & Taxonomy Select." msgstr "" -#: ../includes/ot-functions-admin.php:3452 +#: ../includes/ot-functions-admin.php:3453 msgid "" "Min, Max, & Step: Add a comma separated list of options in " "the following format 0,100,1 (slide from 0-100 in " @@ -1022,11 +1035,11 @@ msgid "" "type." msgstr "" -#: ../includes/ot-functions-admin.php:3460 +#: ../includes/ot-functions-admin.php:3461 msgid "CSS Class: Add and optional class to this option type." msgstr "" -#: ../includes/ot-functions-admin.php:3468 +#: ../includes/ot-functions-admin.php:3469 #, php-format msgid "" "Condition: Add a comma separated list (no spaces) of " @@ -1035,56 +1048,56 @@ msgid "" "placeholder for your condition, which can be in the form of %s." msgstr "" -#: ../includes/ot-functions-admin.php:3476 +#: ../includes/ot-functions-admin.php:3477 msgid "" "Operator: Choose the logical operator to compute the result " "of the conditions." msgstr "" -#: ../includes/ot-functions-admin.php:3480 +#: ../includes/ot-functions-admin.php:3481 msgid "or" msgstr "" -#: ../includes/ot-functions-admin.php:3526 +#: ../includes/ot-functions-admin.php:3527 #: ../includes/ot-functions-docs-page.php:29 msgid "Label" msgstr "" -#: ../includes/ot-functions-admin.php:3536 +#: ../includes/ot-functions-admin.php:3537 msgid "Value" msgstr "" -#: ../includes/ot-functions-admin.php:3546 +#: ../includes/ot-functions-admin.php:3547 msgid "Image Source (Radio Image only)" msgstr "" -#: ../includes/ot-functions-admin.php:3592 +#: ../includes/ot-functions-admin.php:3593 msgid "" "Title: Displayed as a contextual help menu item on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3608 +#: ../includes/ot-functions-admin.php:3609 msgid "" "Content: Enter the HTML content about this contextual help " "item displayed on the Theme Option page for end users to read." msgstr "" -#: ../includes/ot-functions-admin.php:3639 +#: ../includes/ot-functions-admin.php:3640 msgid "Layout" msgstr "" -#: ../includes/ot-functions-admin.php:3641 #: ../includes/ot-functions-admin.php:3642 +#: ../includes/ot-functions-admin.php:3643 msgid "Activate" msgstr "" -#: ../includes/ot-functions-admin.php:3678 ../includes/ot-meta-box-api.php:202 +#: ../includes/ot-functions-admin.php:3679 ../includes/ot-meta-box-api.php:202 #: ../includes/ot-settings-api.php:595 msgid "Title" msgstr "" -#: ../includes/ot-functions-admin.php:3877 +#: ../includes/ot-functions-admin.php:3878 msgid "New Layout" msgstr "" @@ -1796,7 +1809,7 @@ msgid "background-size" msgstr "" #: ../includes/ot-functions-option-types.php:227 -#: ../includes/ot-functions-option-types.php:2215 +#: ../includes/ot-functions-option-types.php:2237 msgid "Add Media" msgstr "" @@ -1807,58 +1820,58 @@ msgstr "" #: ../includes/ot-functions-option-types.php:346 #: ../includes/ot-functions-option-types.php:607 -#: ../includes/ot-functions-option-types.php:1130 -#: ../includes/ot-functions-option-types.php:1313 -#: ../includes/ot-functions-option-types.php:1673 -#: ../includes/ot-functions-option-types.php:1788 +#: ../includes/ot-functions-option-types.php:1149 +#: ../includes/ot-functions-option-types.php:1332 +#: ../includes/ot-functions-option-types.php:1695 +#: ../includes/ot-functions-option-types.php:1810 msgid "Choose One" msgstr "" #: ../includes/ot-functions-option-types.php:555 #: ../includes/ot-functions-option-types.php:613 -#: ../includes/ot-functions-option-types.php:1264 -#: ../includes/ot-functions-option-types.php:1319 +#: ../includes/ot-functions-option-types.php:1283 +#: ../includes/ot-functions-option-types.php:1338 msgid "No Posts Found" msgstr "" -#: ../includes/ot-functions-option-types.php:855 -#: ../includes/ot-functions-option-types.php:1208 +#: ../includes/ot-functions-option-types.php:874 +#: ../includes/ot-functions-option-types.php:1227 msgid "Add New" msgstr "" -#: ../includes/ot-functions-option-types.php:858 -#: ../includes/ot-functions-option-types.php:1211 +#: ../includes/ot-functions-option-types.php:877 +#: ../includes/ot-functions-option-types.php:1230 msgid "You can re-order with drag & drop, the order will update after saving." msgstr "" -#: ../includes/ot-functions-option-types.php:1009 +#: ../includes/ot-functions-option-types.php:1028 msgid "On" msgstr "" -#: ../includes/ot-functions-option-types.php:1013 +#: ../includes/ot-functions-option-types.php:1032 msgid "Off" msgstr "" -#: ../includes/ot-functions-option-types.php:1081 -#: ../includes/ot-functions-option-types.php:1136 +#: ../includes/ot-functions-option-types.php:1100 +#: ../includes/ot-functions-option-types.php:1155 msgid "No Pages Found" msgstr "" -#: ../includes/ot-functions-option-types.php:1535 +#: ../includes/ot-functions-option-types.php:1557 msgid "Choose Sidebar" msgstr "" -#: ../includes/ot-functions-option-types.php:1540 +#: ../includes/ot-functions-option-types.php:1562 msgid "No Sidebars" msgstr "" -#: ../includes/ot-functions-option-types.php:1624 -#: ../includes/ot-functions-option-types.php:1678 +#: ../includes/ot-functions-option-types.php:1646 +#: ../includes/ot-functions-option-types.php:1700 msgid "No Tags Found" msgstr "" -#: ../includes/ot-functions-option-types.php:1736 -#: ../includes/ot-functions-option-types.php:1793 +#: ../includes/ot-functions-option-types.php:1758 +#: ../includes/ot-functions-option-types.php:1815 msgid "No Taxonomies Found" msgstr "" diff --git a/option-tree/ot-loader.php b/option-tree/ot-loader.php index ec04bd4..eb2b7de 100644 --- a/option-tree/ot-loader.php +++ b/option-tree/ot-loader.php @@ -3,7 +3,7 @@ * Plugin Name: OptionTree * Plugin URI: http://wp.envato.com * Description: Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. - * Version: 2.3.0 + * Version: 2.3.4 * Author: Derek Herman * Author URI: http://valendesigns.com * License: GPLv3 @@ -142,7 +142,7 @@ private function constants() { /** * Current Version number. */ - define( 'OT_VERSION', '2.3.0' ); + define( 'OT_VERSION', '2.3.4' ); /** * For developers: Theme mode. @@ -273,11 +273,11 @@ private function constants() { define( 'OT_URL', plugin_dir_url( __FILE__ ) ); } else { if ( true == OT_CHILD_THEME_MODE ) { - $path = ltrim( end( @explode( end( @explode( '/', get_stylesheet_directory() ) ), dirname( __FILE__ ) ) ), '/' ); + $path = ltrim( end( @explode( get_stylesheet(), str_replace( '\\', '/', dirname( __FILE__ ) ) ) ), '/' ); define( 'OT_DIR', trailingslashit( trailingslashit( get_stylesheet_directory() ) . $path ) ); define( 'OT_URL', trailingslashit( trailingslashit( get_stylesheet_directory_uri() ) . $path ) ); } else { - $path = ltrim( end( @explode( end( @explode( '/', get_template_directory() ) ), dirname( __FILE__ ) ) ), '/' ); + $path = ltrim( end( @explode( get_template(), str_replace( '\\', '/', dirname( __FILE__ ) ) ) ), '/' ); define( 'OT_DIR', trailingslashit( trailingslashit( get_template_directory() ) . $path ) ); define( 'OT_URL', trailingslashit( trailingslashit( get_template_directory_uri() ) . $path ) ); } @@ -380,6 +380,18 @@ private function includes() { * @since 2.0 */ private function hooks() { + + // Attempt to migrate the settings + if ( function_exists( 'ot_maybe_migrate_settings' ) ) + add_action( 'init', 'ot_maybe_migrate_settings', 1 ); + + // Attempt to migrate the Options + if ( function_exists( 'ot_maybe_migrate_options' ) ) + add_action( 'init', 'ot_maybe_migrate_options', 1 ); + + // Attempt to migrate the Layouts + if ( function_exists( 'ot_maybe_migrate_layouts' ) ) + add_action( 'init', 'ot_maybe_migrate_layouts', 1 ); /* load the Meta Box assets */ if ( OT_META_BOXES == true ) { diff --git a/option-tree/readme.txt b/option-tree/readme.txt index 6465169..9921652 100644 --- a/option-tree/readme.txt +++ b/option-tree/readme.txt @@ -4,17 +4,26 @@ Donate link: http://bit.ly/NuXI3T Tags: options, theme options, meta boxes Requires at least: 3.5 Tested up to: 3.8.1 -Stable tag: 2.3.0 +Stable tag: 2.3.4 License: GPLv3 Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. == Description == -OptionTree attempts to bridge the gap between WordPress developers, designers and end-users by creating fully responsive option panels and meta boxes with an ease unlike any other plugin. Packed full of advanced features with tons of hooks, and filters to adjust every aspect of the UX. Build your theme options with a drag & drop interface locally and export a fully functioning `theme-options.php` file for production use that's i18n translation ready with you own custom text domain. And, in just a few simple lines of code, all your themes can have separate settings arrays saved to the database with unique IDs. Not only that, but OptionTree takes full advantage of the new color schemes introduced in WordPress 3.8 and looks and feels built-in. +OptionTree attempts to bridge the gap between WordPress developers, designers and end-users by creating fully responsive option panels and meta boxes with an ease unlike any other plugin. Packed full of advanced features with tons of hooks and filters to adjust every aspect of the user experience. You can build your theme options with a drag & drop interface locally and export a fully functioning `theme-options.php` file for production use that's i18n translation ready with you own custom text domain. And, in just a few simple lines of code, all your themes can have separate settings arrays saved to the database with unique IDs. Not only that, but OptionTree takes full advantage of the new color schemes introduced in WordPress 3.8, it looks and feels built-in. + +#### Theme Integration +If you're like me, you want to know how everything works. Download and activate the [OptionTree Theme](https://github.com/valendesigns/option-tree-theme) and see first hand how to integrate OptionTree into your own project. I'll walk you through installing OptionTree and you'll get a chance to see all the various options and filters first hand and in the wild. + +#### Contributing +To contribute or report bugs, please go to the [OptionTree Github](https://github.com/valendesigns/option-tree) repository. + +#### Sponsorship +OptionTree is a project partly sponsored by
    ThemeForest, the largest WordPress theme marketplace on the web. #### Option Types -This is a complete list of all the available option types that come shipped with OptionTree. If you don't see the one you need, just know that adding your own custom option type is a breeze. +This is a complete list of all the available option types that come shipped with OptionTree. * Background * Category Checkbox @@ -53,15 +62,6 @@ This is a complete list of all the available option types that come shipped with * Typography * Upload -#### Learn More -If you're like me, you want to know how everything works. Download and activate the [OptionTree Theme](https://github.com/valendesigns/option-tree-theme) and see first hand how to integrate OptionTree into your own project. I'll walk you through installing OptionTree and you'll get a chance to see all the various options and filters first hand and in the wild. - -#### Contributing -To contribute or report bugs, please go to the [OptionTree Github](https://github.com/valendesigns/option-tree) repository. - -#### Sponsorship -OptionTree is a project partly sponsored by ThemeForest, the largest WordPress theme marketplace on the web. - == Installation == **Plugin Mode** @@ -106,6 +106,28 @@ There sure is, and I'm glad you asked. Download and activate the [OptionTree The == Changelog == += 2.3.4 = +* Hotfix - Fixed an issue where condition number values were being treated like strings and not returning a correct boolean response. + += 2.3.3 = +* Hotfix - Fixed subfolder compatibility with versions of Windows that use backslashes instead of forward slashes. Contributors via github @primozcigler and @valendesigns. +* Hotfix - Fixed missing text domain in demo files. Contributors via github @jetonr. +* Hotfix - Added filter `ot_migrate_settings_id` to migrate themes that used `option_tree_settings` and now use a custom settings ID. +* Hotfix - Added filter `ot_migrate_options_id` to migrate themes that used `option_tree` and now use a custom options ID. +* Hotfix - Added filter `ot_migrate_layouts_id` to migrate themes that used `option_tree_layouts` and now use a custom layouts ID. + += 2.3.2 = +* Hotfix - Fixed an issue with the `ot_create_media_post` function creating multiple `option-tree` posts. +* Hotfix - Change the icon used by the layout management option type to differentiate it from the edit button. +* Hotfix - Suppress PHP warning in the Background option type "Invalid argument supplied for foreach()". Contributors via github @tomkwok. +* Hotfix - Added filter `ot_type_date_picker_date_format` to change the date format of the Date Picker option type. +* Hotfix - Added filter `ot_type_date_time_picker_date_format` to change the date format of the Date Time Picker option type. + += 2.3.1 = +* Hotfix - Fixed a bug with the Gallery option type that would show attachments in the media window when none had been added yet. +* Hotfix - Added the option to save the Gallery as a shortcode by adding `ot-gallery-shortcode` to the elements `class` attribute. +* Hotfix - Fixed conditions not being effective in List Items directly after clicking "Add New". Contributors via github @bitcommit. + = 2.3.0 = * Added the Tab option type. * Added Ace Editor to the CSS option type. Contributors via github @imangm and @valendesigns. From 54a420a993c4a74dc32d3e5f4259a91d677908c6 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 24 Mar 2014 10:50:34 +0100 Subject: [PATCH 14/62] 2.1.2 --- changelog.txt | 6 +++++- style.css | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 50f6ce1..0aa65b4 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,11 @@ Theme : Anew -Version : 2.1.1 +Version : 2.1.2 Author : Alexander "Alx" Agnarson - http://alxmedia.se +Mars 24 2014 - 2.1.2 +=========================================================== +- Updated to OptionTree 2.3.4 + February 10 2014 - 2.1.1 =========================================================== - Updated to OptionTree 2.3.0 diff --git a/style.css b/style.css index d2df9a7..08c36dd 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.1.1 +Version: 2.1.2 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From bf881aaee7d49fd3715da9fc02f2ad2672b170a9 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 31 Mar 2014 20:31:35 +0200 Subject: [PATCH 15/62] Restyle comment/pingback counts for no plural translation. Fix admin comment accent color styling option. --- comments.php | 4 ++-- functions/dynamic-styles.php | 3 ++- languages/en_US.po | 2 +- responsive.css | 3 +-- style.css | 1 + 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/comments.php b/comments.php index 1cf1203..053d59b 100644 --- a/comments.php +++ b/comments.php @@ -7,8 +7,8 @@

    diff --git a/functions/dynamic-styles.php b/functions/dynamic-styles.php index 906c06f..d0a1128 100644 --- a/functions/dynamic-styles.php +++ b/functions/dynamic-styles.php @@ -126,7 +126,8 @@ function alx_dynamic_css() { .post-tags a:hover, .author-bio .bio-avatar:after, .widget_calendar caption, -.commentlist li.bypostauthor > .comment-body:after { background-color: '.ot_get_option('color-accent').'; } +.commentlist li.bypostauthor > .comment-body:after, +.commentlist li.comment-author-admin > .comment-body:after { background-color: '.ot_get_option('color-accent').'; } .alx-tabs-nav li.active a, .wp-pagenavi a:hover, diff --git a/languages/en_US.po b/languages/en_US.po index 9516bab..6c5283b 100644 --- a/languages/en_US.po +++ b/languages/en_US.po @@ -37,7 +37,7 @@ msgid "Comments" msgstr "" #: ../comments.php:11 -msgid "Track/Pingbacks" +msgid "Pingbacks" msgstr "" #: ../content.php:37 diff --git a/responsive.css b/responsive.css index fdd82f8..6062011 100644 --- a/responsive.css +++ b/responsive.css @@ -127,8 +127,7 @@ #footer-bottom .social-links li { margin-left: 4px; margin-right: 4px; } /* comments */ - .comment-tabs { font-size: 13px; } - .comment-tabs i { display: none!important; } + .comment-tabs { font-size: 14px; } .commentlist li { font-size: 13px; } .commentlist li ul li { padding-left: 10px; } diff --git a/style.css b/style.css index 08c36dd..6d5ee66 100644 --- a/style.css +++ b/style.css @@ -1268,6 +1268,7 @@ box-shadow: inset 0 1px 0 rgba(255,255,255,0.25); } .comment-tabs li { float: left; margin-bottom: -2px; } .comment-tabs li a { font-weight: 600; padding: 0 10px 10px; display: block; color: #aaa; border-bottom: 2px solid #e5e5e5; } .comment-tabs li a:hover { color: #444; border-color: #ccc; } +.comment-tabs li span { background-color: #e5e5e5; padding: 0 6px; margin-left: 8px; -webkit-border-radius: 4px; border-radius: 4px; } .comment-tabs li i { margin-right: 6px; } .comment-tabs li.active a { color: #e8554e; border-bottom-color: #e8554e; } From 43f6e45e3faa65e406081b3178cc06de1faaa9ad Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 31 Mar 2014 20:51:16 +0200 Subject: [PATCH 16/62] Pagenavi optimizations --- functions.php | 8 ++++++++ style.css | 10 +++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/functions.php b/functions.php index efb8bae..47a43b7 100644 --- a/functions.php +++ b/functions.php @@ -687,3 +687,11 @@ function alx_wc_wrapper_end() { remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10); add_action('woocommerce_before_main_content', 'alx_wc_wrapper_start', 10); add_action('woocommerce_after_main_content', 'alx_wc_wrapper_end', 10); + + +/* WP-PageNavi support - @devinsays via GitHub +/* ------------------------------------ */ +function alx_deregister_styles() { + wp_deregister_style( 'wp-pagenavi' ); +} +add_action( 'wp_print_styles', 'alx_deregister_styles', 100 ); diff --git a/style.css b/style.css index 6d5ee66..ddc62fa 100644 --- a/style.css +++ b/style.css @@ -1396,18 +1396,18 @@ box-shadow: 0 1px 0 rgba(0,0,0,0.04); } /* ------------------------------------ */ .wp-pagenavi { text-align: right; font-weight: 600; line-height: 20px; float: none; margin-right: -2px; text-align: center; } .wp-pagenavi a, -.wp-pagenavi span { color: #aaa; font-size: 16px; padding: 7px 8px!important; display: inline; margin: 0 2px!important; } +.wp-pagenavi span { color: #aaa; font-size: 16px; padding: 7px 8px; display: inline; margin: 0 2px; } .wp-pagenavi span.pages { font-size: 17px; font-weight: 300; display: block; margin-bottom: 1em!important; border: none!important; } .wp-pagenavi span.pages:before { content: "\f15c"; font-family: FontAwesome; margin-right: 6px; } -.wp-pagenavi span.extend { border: none!important; border-bottom: 3px solid transparent!important; border-top: 1px solid transparent!important; } +.wp-pagenavi span.extend { border: none!important; border-bottom: 3px solid transparent; border-top: 1px solid transparent; } .wp-pagenavi a:hover, .wp-pagenavi a:active, -.wp-pagenavi span.current { color: #444!important; } +.wp-pagenavi span.current { color: #444; } -.wp-pagenavi a { color: #e8554e; border: none!important; border-bottom: 3px solid #ddd!important; border-top: 1px solid #f1f1f1!important; } +.wp-pagenavi a { color: #e8554e; border: none; border-bottom: 3px solid #ddd; border-top: 1px solid #f1f1f1; } .wp-pagenavi a:hover, .wp-pagenavi a:active, -.wp-pagenavi span.current { background: none; border: none!important; border-bottom: 3px solid #e8554e!important; border-top: 1px solid #f1f1f1!important; } +.wp-pagenavi span.current { background: none; border: none; border-bottom: 3px solid #e8554e; border-top: 1px solid #f1f1f1; } /* plugin : contact form 7 /* ------------------------------------ */ From 079495f1d9e25fec20bc4739599c5ea5b8a08e07 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 31 Mar 2014 21:01:54 +0200 Subject: [PATCH 17/62] 2.1.3 --- changelog.txt | 9 ++++++++- functions.php | 2 +- style.css | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index 0aa65b4..e83bfc1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,14 @@ Theme : Anew -Version : 2.1.2 +Version : 2.1.3 Author : Alexander "Alx" Agnarson - http://alxmedia.se +Mars 31 2014 - 2.1.3 +=========================================================== +- WP-PageNavi optimizations - @devinsays (via GitHub) +- Fixed admin comment accent color styling option +- Restructured comment/pingback counts for no plural translation +- Optimzed and removed unnecessary css + Mars 24 2014 - 2.1.2 =========================================================== - Updated to OptionTree 2.3.4 diff --git a/functions.php b/functions.php index 47a43b7..df9e458 100644 --- a/functions.php +++ b/functions.php @@ -689,7 +689,7 @@ function alx_wc_wrapper_end() { add_action('woocommerce_after_main_content', 'alx_wc_wrapper_end', 10); -/* WP-PageNavi support - @devinsays via GitHub +/* WP-PageNavi support - @devinsays (via GitHub) /* ------------------------------------ */ function alx_deregister_styles() { wp_deregister_style( 'wp-pagenavi' ); diff --git a/style.css b/style.css index ddc62fa..30ae0ce 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.1.2 +Version: 2.1.3 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From cf4b1f310b764ca5a6778419838fd655ddf290e3 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 31 Mar 2014 21:12:40 +0200 Subject: [PATCH 18/62] changelog fix --- changelog.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e83bfc1..8ced3cf 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,7 +7,6 @@ Mars 31 2014 - 2.1.3 - WP-PageNavi optimizations - @devinsays (via GitHub) - Fixed admin comment accent color styling option - Restructured comment/pingback counts for no plural translation -- Optimzed and removed unnecessary css Mars 24 2014 - 2.1.2 =========================================================== From d5d8c1c82fdab4e1a01ce5d34afad8d474de546f Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 16 Apr 2014 10:57:18 +0200 Subject: [PATCH 19/62] Dowgrade to stable selectivizr.js 1.0.2 instead of 1.0.3b. Fixes IE8 blank page issue. --- js/ie/selectivizr.js | 183 ++++++++++++++++++++++--------------------- 1 file changed, 92 insertions(+), 91 deletions(-) diff --git a/js/ie/selectivizr.js b/js/ie/selectivizr.js index e9ede39..d83f1ea 100644 --- a/js/ie/selectivizr.js +++ b/js/ie/selectivizr.js @@ -1,5 +1,5 @@ /* -selectivizr v1.0.3b - (c) Keith Clark, freely distributable under the terms +selectivizr v1.0.2 - (c) Keith Clark, freely distributable under the terms of the MIT license. selectivizr.com @@ -62,18 +62,17 @@ References: var selectorMethod; var enabledWatchers = []; // array of :enabled/:disabled elements to poll - var domPatches = []; var ie6PatchID = 0; // used to solve ie6's multiple class bug var patchIE6MultipleClasses = true; // if true adds class bloat to ie6 var namespace = "slvzr"; - + // Stylesheet parsing regexp's - var RE_COMMENT = /(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*?/g; - var RE_IMPORT = /@import\s*(?:(?:(?:url\(\s*(['"]?)(.*)\1)\s*\))|(?:(['"])(.*)\3))\s*([^;]*);/g; - var RE_ASSET_URL = /(behavior\s*?:\s*)?\burl\(\s*(["']?)(?!data:)([^"')]+)\2\s*\)/g; + var RE_COMMENT = /(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*/g; + var RE_IMPORT = /@import\s*(?:(?:(?:url\(\s*(['"]?)(.*)\1)\s*\))|(?:(['"])(.*)\3))[^;]*;/g; + var RE_ASSET_URL = /\burl\(\s*(["']?)(?!data:)([^"')]+)\1\s*\)/g; var RE_PSEUDO_STRUCTURAL = /^:(empty|(first|last|only|nth(-last)?)-(child|of-type))$/; var RE_PSEUDO_ELEMENTS = /:(:first-(?:line|letter))/g; - var RE_SELECTOR_GROUP = /((?:^|(?:\s*})+)(?:\s*@media[^{]+{)?)\s*([^\{]*?[\[:][^{]+)/g; + var RE_SELECTOR_GROUP = /(^|})\s*([^\{]*?[\[:][^{]+)/g; var RE_SELECTOR_PARSE = /([ +~>])|(:[a-z-]+(?:\(.*?\)+)?)|(\[.*?\])/g; var RE_LIBRARY_INCOMPATIBLE_PSEUDOS = /(:not\()?:(hover|enabled|disabled|focus|checked|target|active|visited|first-line|first-letter)\)?/g; var RE_PATCH_CLASS_NAME_REPLACE = /[^\w-]/g; @@ -112,7 +111,7 @@ References: function(match, combinator, pseudo, attribute, index) { if (combinator) { if (patches.length>0) { - domPatches.push( { selector: selector.substring(0, index), patches: patches } ) + applyPatches( selector.substring(0, index), patches ); patches = []; } return combinator; @@ -254,48 +253,45 @@ References: }; // --[ applyPatches() ]------------------------------------------------- - function applyPatches() { - var elms, selectorText, patches, domSelectorText; - - for (var c=0; c tag var url, stylesheet; + var baseTags = doc.getElementsByTagName("BASE"); + var baseUrl = (baseTags.length > 0) ? baseTags[0].href : doc.location.href; + + /* Note: This code prevents IE from freezing / crashing when using + @font-face .eot files but it modifies the tag and could + trigger the IE stylesheet limit. It will also cause FOUC issues. + If you choose to use it, make sure you comment out the for loop + directly below this comment. + + var head = doc.getElementsByTagName("head")[0]; + for (var c=doc.styleSheets.length-1; c>=0; c--) { + stylesheet = doc.styleSheets[c] + head.appendChild(doc.createElement("style")) + var patchedStylesheet = doc.styleSheets[doc.styleSheets.length-1]; + + if (stylesheet.href != EMPTY_STRING) { + url = resolveUrl(stylesheet.href, baseUrl) + if (url) { + patchedStylesheet.cssText = patchStyleSheet( parseStyleSheet( url ) ) + stylesheet.disabled = true + setTimeout( function () { + stylesheet.owningElement.parentNode.removeChild(stylesheet.owningElement) + }) + } + } + } + */ + for (var c = 0; c < doc.styleSheets.length; c++) { - stylesheet = doc.styleSheets[c]; + stylesheet = doc.styleSheets[c] if (stylesheet.href != EMPTY_STRING) { - url = resolveUrl(stylesheet.href); + url = resolveUrl(stylesheet.href, baseUrl); if (url) { - stylesheet.cssText = stylesheet["rawCssText"] = patchStyleSheet( parseStyleSheet( url ) ); + stylesheet.cssText = patchStyleSheet( parseStyleSheet( url ) ); } } } - }; - - // --[ init() ]--------------------------------------------------------- - function init() { - applyPatches(); - + // :enabled & :disabled polling script (since we can't hook // onpropertychange event when an element is disabled) if (enabledWatchers.length > 0) { @@ -489,15 +496,10 @@ References: } } } - }, 250) + },250) } }; - - // Determine the baseUrl and download the stylesheets - var baseTags = doc.getElementsByTagName("BASE"); - var baseUrl = (baseTags.length > 0) ? baseTags[0].href : doc.location.href; - getStyleSheets(); - + // Bind selectivizr to the ContentLoaded event. ContentLoaded(win, function() { // Determine the "best fit" selector engine @@ -515,7 +517,6 @@ References: } }); - /*! * ContentLoaded.js by Diego Perini, modified for IE<9 only (to save space) @@ -557,4 +558,4 @@ References: addEvent(win,"load", init); } }; -})(this); +})(this); \ No newline at end of file From 841e488de2e4c0f1ce99d3ef43451e891606ac32 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 16 Apr 2014 11:13:08 +0200 Subject: [PATCH 20/62] 2.1.4 --- changelog.txt | 6 +++++- style.css | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 8ced3cf..1414b47 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,11 @@ Theme : Anew -Version : 2.1.3 +Version : 2.1.4 Author : Alexander "Alx" Agnarson - http://alxmedia.se +April 16 2014 - 2.1.4 +=========================================================== +- Fixed IE8 blank page issue, downgraded to stable selectivizr.js 1.0.2 instead of 1.0.3b + Mars 31 2014 - 2.1.3 =========================================================== - WP-PageNavi optimizations - @devinsays (via GitHub) diff --git a/style.css b/style.css index 30ae0ce..765e398 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.1.3 +Version: 2.1.4 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From bcd4e3a8a7ccae2f22675e8bf435ed92ee9a5a8f Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 7 May 2014 08:03:44 +0200 Subject: [PATCH 21/62] Improve alx_wp_title --- functions.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/functions.php b/functions.php index df9e458..1804126 100644 --- a/functions.php +++ b/functions.php @@ -398,10 +398,13 @@ function alx_wp_title( $title ) { if ( is_feed() || class_exists('All_in_One_SEO_Pack') || class_exists('HeadSpace_Plugin') || class_exists('Platinum_SEO_Pack') || class_exists('wpSEO') || defined('WPSEO_VERSION') ) return $title; if ( is_front_page() ) { - $title = bloginfo('name'); echo ' - '; bloginfo('description'); + $title = get_bloginfo('name').' - '.get_bloginfo('description'); + } + if ( is_front_page() && get_bloginfo('description') == '' ) { + $title = get_bloginfo('name'); } if ( !is_front_page() ) { - $title.= ''.' - '.''.get_bloginfo('name'); + $title .= ' - '.get_bloginfo('name'); } return $title; } From 504628413fa619bd8beba91af0f83026ec26ac51 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Sat, 17 May 2014 07:10:57 +0200 Subject: [PATCH 22/62] OptionTree 2.4.0 --- option-tree/assets/css/ot-admin-rtl.css | 4 +- option-tree/assets/css/ot-admin.css | 1101 +++++++++-------- option-tree/assets/fonts/option-tree-font.eot | Bin 95132 -> 95152 bytes option-tree/assets/fonts/option-tree-font.svg | 738 +++++------ option-tree/assets/fonts/option-tree-font.ttf | Bin 94932 -> 94952 bytes .../assets/fonts/option-tree-font.woff | Bin 118132 -> 108108 bytes option-tree/assets/js/ot-admin.js | 242 +++- .../assets/theme-mode/demo-theme-options.php | 30 + option-tree/includes/ot-functions-admin.php | 594 +++++++-- .../includes/ot-functions-docs-page.php | 3 + .../includes/ot-functions-option-types.php | 352 ++++-- .../includes/ot-functions-settings-page.php | 2 +- option-tree/includes/ot-functions.php | 20 + option-tree/includes/ot-meta-box-api.php | 51 +- option-tree/includes/ot-post-formats-api.php | 123 ++ option-tree/includes/ot-settings-api.php | 67 + option-tree/languages/option-tree.po | 842 ++++++++----- option-tree/ot-loader.php | 51 +- option-tree/readme.txt | 28 +- 19 files changed, 2871 insertions(+), 1377 deletions(-) create mode 100644 option-tree/includes/ot-post-formats-api.php diff --git a/option-tree/assets/css/ot-admin-rtl.css b/option-tree/assets/css/ot-admin-rtl.css index 4396c56..60a372e 100644 --- a/option-tree/assets/css/ot-admin-rtl.css +++ b/option-tree/assets/css/ot-admin-rtl.css @@ -475,7 +475,7 @@ ul.ot-gallery-list li { .ui-datepicker-prev:before { border-right: 0px; border-left: 1px solid #555; - content: "\e774"; + content: "\f105"; float: left; width: 31px; height: 30px; @@ -489,7 +489,7 @@ ul.ot-gallery-list li { .ui-datepicker-next:before { border-left: 0px; border-right: 1px solid #333; - content: "\e775"; + content: "\f104"; float: right; width: 30px; height: 30px; diff --git a/option-tree/assets/css/ot-admin.css b/option-tree/assets/css/ot-admin.css index a44b47a..de3fa8c 100644 --- a/option-tree/assets/css/ot-admin.css +++ b/option-tree/assets/css/ot-admin.css @@ -24,1088 +24,1113 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } + .ot-icon-option-tree:before { content: "\e785"; } .ot-icon-glass:before { - content: "\e600"; + content: "\f000"; } .ot-icon-music:before { - content: "\e601"; + content: "\f001"; } .ot-icon-search:before { - content: "\e602"; + content: "\f002"; } -.ot-icon-envelope:before { - content: "\e603"; +.ot-icon-envelope-o:before { + content: "\f003"; } .ot-icon-heart:before { - content: "\e604"; + content: "\f004"; } .ot-icon-star:before { - content: "\e605"; + content: "\f005"; } -.ot-icon-star-empty:before { - content: "\e606"; +.ot-icon-star-o:before { + content: "\f006"; } .ot-icon-user:before { - content: "\e607"; + content: "\f007"; } .ot-icon-film:before { - content: "\e608"; + content: "\f008"; } .ot-icon-th-large:before { - content: "\e609"; + content: "\f009"; } .ot-icon-th:before { - content: "\e60a"; + content: "\f00a"; } .ot-icon-th-list:before { - content: "\e60b"; + content: "\f00b"; } -.ot-icon-ok:before { - content: "\e60c"; +.ot-icon-check:before { + content: "\f00c"; } -.ot-icon-remove:before { - content: "\e60d"; +.ot-icon-times:before { + content: "\f00d"; } -.ot-icon-zoom-in:before { - content: "\e60e"; +.ot-icon-search-plus:before { + content: "\f00e"; } -.ot-icon-zoom-out:before { - content: "\e60f"; +.ot-icon-search-minus:before { + content: "\f010"; } -.ot-icon-off:before { - content: "\e610"; +.ot-icon-power-off:before { + content: "\f011"; } .ot-icon-signal:before { - content: "\e611"; + content: "\f012"; } -.ot-icon-cog:before { - content: "\e612"; +.ot-icon-gear:before { + content: "\f013"; } -.ot-icon-trash:before { - content: "\e783"; +.ot-icon-trash-o:before { + content: "\f014"; } .ot-icon-home:before { - content: "\e613"; + content: "\f015"; } -.ot-icon-file:before { - content: "\e614"; +.ot-icon-file-o:before { + content: "\f016"; } -.ot-icon-time:before { - content: "\e615"; +.ot-icon-clock-o:before { + content: "\f017"; } .ot-icon-road:before { - content: "\e616"; -} -.ot-icon-download-alt:before { - content: "\e617"; + content: "\f018"; } .ot-icon-download:before { - content: "\e618"; + content: "\f019"; } -.ot-icon-upload:before { - content: "\e619"; +.ot-icon-arrow-circle-o-down:before { + content: "\f01a"; +} +.ot-icon-arrow-circle-o-up:before { + content: "\f01b"; } .ot-icon-inbox:before { - content: "\e61a"; + content: "\f01c"; } -.ot-icon-play-circle:before { - content: "\e61b"; +.ot-icon-play-circle-o:before { + content: "\f01d"; } -.ot-icon-repeat:before { - content: "\e61c"; +.ot-icon-rotate-right:before { + content: "\f01e"; } .ot-icon-refresh:before { - content: "\e61d"; + content: "\f021"; } .ot-icon-list-alt:before { - content: "\e61e"; + content: "\f022"; } .ot-icon-lock:before { - content: "\e61f"; + content: "\f023"; } .ot-icon-flag:before { - content: "\e620"; + content: "\f024"; } .ot-icon-headphones:before { - content: "\e621"; + content: "\f025"; } .ot-icon-volume-off:before { - content: "\e622"; + content: "\f026"; } .ot-icon-volume-down:before { - content: "\e623"; + content: "\f027"; } .ot-icon-volume-up:before { - content: "\e624"; + content: "\f028"; } .ot-icon-qrcode:before { - content: "\e625"; + content: "\f029"; } .ot-icon-barcode:before { - content: "\e626"; + content: "\f02a"; } .ot-icon-tag:before { - content: "\e627"; + content: "\f02b"; } .ot-icon-tags:before { - content: "\e628"; + content: "\f02c"; } .ot-icon-book:before { - content: "\e629"; + content: "\f02d"; } .ot-icon-bookmark:before { - content: "\e62a"; + content: "\f02e"; } .ot-icon-print:before { - content: "\e62b"; + content: "\f02f"; } .ot-icon-camera:before { - content: "\e62c"; + content: "\f030"; } .ot-icon-font:before { - content: "\e62d"; + content: "\f031"; } .ot-icon-bold:before { - content: "\e62e"; + content: "\f032"; } .ot-icon-italic:before { - content: "\e62f"; + content: "\f033"; } .ot-icon-text-height:before { - content: "\e630"; + content: "\f034"; } .ot-icon-text-width:before { - content: "\e631"; + content: "\f035"; } .ot-icon-align-left:before { - content: "\e632"; + content: "\f036"; } .ot-icon-align-center:before { - content: "\e633"; + content: "\f037"; } .ot-icon-align-right:before { - content: "\e634"; + content: "\f038"; } .ot-icon-align-justify:before { - content: "\e635"; + content: "\f039"; } .ot-icon-list:before { - content: "\e636"; + content: "\f03a"; } -.ot-icon-indent-left:before { - content: "\e637"; +.ot-icon-dedent:before { + content: "\f03b"; } -.ot-icon-indent-right:before { - content: "\e638"; +.ot-icon-indent:before { + content: "\f03c"; } -.ot-icon-facetime-video:before { - content: "\e639"; +.ot-icon-video-camera:before { + content: "\f03d"; } -.ot-icon-picture:before { - content: "\e63a"; +.ot-icon-picture-o:before { + content: "\f03e"; } .ot-icon-pencil:before { - content: "\e784"; + content: "\f040"; } .ot-icon-map-marker:before { - content: "\e63b"; + content: "\f041"; } .ot-icon-adjust:before { - content: "\e63c"; + content: "\f042"; } .ot-icon-tint:before { - content: "\e63d"; + content: "\f043"; } .ot-icon-edit:before { - content: "\e63e"; + content: "\f044"; } -.ot-icon-share:before { - content: "\e63f"; +.ot-icon-share-square-o:before { + content: "\f045"; } -.ot-icon-check:before { - content: "\e640"; +.ot-icon-check-square-o:before { + content: "\f046"; } -.ot-icon-move:before { - content: "\e641"; +.ot-icon-arrows:before { + content: "\f047"; } .ot-icon-step-backward:before { - content: "\e642"; + content: "\f048"; } .ot-icon-fast-backward:before { - content: "\e643"; + content: "\f049"; } .ot-icon-backward:before { - content: "\e644"; + content: "\f04a"; } .ot-icon-play:before { - content: "\e645"; + content: "\f04b"; } .ot-icon-pause:before { - content: "\e646"; + content: "\f04c"; } .ot-icon-stop:before { - content: "\e647"; + content: "\f04d"; } .ot-icon-forward:before { - content: "\e648"; + content: "\f04e"; } .ot-icon-fast-forward:before { - content: "\e649"; + content: "\f050"; } .ot-icon-step-forward:before { - content: "\e64a"; + content: "\f051"; } .ot-icon-eject:before { - content: "\e64b"; + content: "\f052"; } .ot-icon-chevron-left:before { - content: "\e64c"; + content: "\f053"; } .ot-icon-chevron-right:before { - content: "\e64d"; + content: "\f054"; } -.ot-icon-plus-sign:before { - content: "\e781"; +.ot-icon-plus-circle:before { + content: "\f055"; } -.ot-icon-minus-sign:before { - content: "\e782"; +.ot-icon-minus-circle:before { + content: "\f056"; } -.ot-icon-remove-sign:before { - content: "\e64e"; +.ot-icon-times-circle:before { + content: "\f057"; } -.ot-icon-ok-sign:before { - content: "\e786"; +.ot-icon-check-circle:before { + content: "\f058"; } -.ot-icon-question-sign:before { - content: "\e64f"; +.ot-icon-question-circle:before { + content: "\f059"; } -.ot-icon-info-sign:before { - content: "\e650"; +.ot-icon-info-circle:before { + content: "\f05a"; } -.ot-icon-screenshot:before { - content: "\e651"; +.ot-icon-crosshairs:before { + content: "\f05b"; } -.ot-icon-remove-circle:before { - content: "\e652"; +.ot-icon-times-circle-o:before { + content: "\f05c"; } -.ot-icon-ok-circle:before { - content: "\e653"; +.ot-icon-check-circle-o:before { + content: "\f05d"; } -.ot-icon-ban-circle:before { - content: "\e654"; +.ot-icon-ban:before { + content: "\f05e"; } .ot-icon-arrow-left:before { - content: "\e655"; + content: "\f060"; } .ot-icon-arrow-right:before { - content: "\e656"; + content: "\f061"; } .ot-icon-arrow-up:before { - content: "\e657"; + content: "\f062"; } .ot-icon-arrow-down:before { - content: "\e658"; + content: "\f063"; } -.ot-icon-share-alt:before { - content: "\e659"; +.ot-icon-mail-forward:before { + content: "\f064"; } -.ot-icon-resize-full:before { - content: "\e65a"; +.ot-icon-expand:before { + content: "\f065"; } -.ot-icon-resize-small:before { - content: "\e65b"; +.ot-icon-compress:before { + content: "\f066"; } .ot-icon-plus:before { - content: "\e65c"; + content: "\f067"; } .ot-icon-minus:before { - content: "\e65d"; + content: "\f068"; } .ot-icon-asterisk:before { - content: "\e65e"; + content: "\f069"; } -.ot-icon-exclamation-sign:before { - content: "\e65f"; +.ot-icon-exclamation-circle:before { + content: "\f06a"; } .ot-icon-gift:before { - content: "\e660"; + content: "\f06b"; } .ot-icon-leaf:before { - content: "\e661"; + content: "\f06c"; } .ot-icon-fire:before { - content: "\e662"; + content: "\f06d"; } -.ot-icon-eye-open:before { - content: "\e663"; +.ot-icon-eye:before { + content: "\f06e"; } -.ot-icon-eye-close:before { - content: "\e664"; +.ot-icon-eye-slash:before { + content: "\f070"; } -.ot-icon-warning-sign:before { - content: "\e665"; +.ot-icon-warning:before { + content: "\f071"; } .ot-icon-plane:before { - content: "\e666"; + content: "\f072"; } .ot-icon-calendar:before { - content: "\e667"; + content: "\f073"; } .ot-icon-random:before { - content: "\e668"; + content: "\f074"; } .ot-icon-comment:before { - content: "\e669"; + content: "\f075"; } .ot-icon-magnet:before { - content: "\e66a"; + content: "\f076"; } .ot-icon-chevron-up:before { - content: "\e66b"; + content: "\f077"; } .ot-icon-chevron-down:before { - content: "\e66c"; + content: "\f078"; } .ot-icon-retweet:before { - content: "\e66d"; + content: "\f079"; } .ot-icon-shopping-cart:before { - content: "\e66e"; + content: "\f07a"; } -.ot-icon-folder-close:before { - content: "\e66f"; +.ot-icon-folder:before { + content: "\f07b"; } .ot-icon-folder-open:before { - content: "\e670"; + content: "\f07c"; } -.ot-icon-resize-vertical:before { - content: "\e778"; +.ot-icon-arrows-v:before { + content: "\f07d"; } -.ot-icon-resize-horizontal:before { - content: "\e779"; +.ot-icon-arrows-h:before { + content: "\f07e"; } -.ot-icon-bar-chart:before { - content: "\e671"; +.ot-icon-bar-chart-o:before { + content: "\f080"; } -.ot-icon-twitter-sign:before { - content: "\e672"; +.ot-icon-twitter-square:before { + content: "\f081"; } -.ot-icon-facebook-sign:before { - content: "\e673"; +.ot-icon-facebook-square:before { + content: "\f082"; } .ot-icon-camera-retro:before { - content: "\e674"; + content: "\f083"; } .ot-icon-key:before { - content: "\e675"; + content: "\f084"; } -.ot-icon-cogs:before { - content: "\e676"; +.ot-icon-gears:before { + content: "\f085"; } .ot-icon-comments:before { - content: "\e677"; + content: "\f086"; } -.ot-icon-thumbs-up:before { - content: "\e678"; +.ot-icon-thumbs-o-up:before { + content: "\f087"; } -.ot-icon-thumbs-down:before { - content: "\e679"; +.ot-icon-thumbs-o-down:before { + content: "\f088"; } .ot-icon-star-half:before { - content: "\e67a"; + content: "\f089"; } -.ot-icon-heart-empty:before { - content: "\e67b"; +.ot-icon-heart-o:before { + content: "\f08a"; } -.ot-icon-signout:before { - content: "\e67c"; +.ot-icon-sign-out:before { + content: "\f08b"; } -.ot-icon-linkedin-sign:before { - content: "\e67d"; +.ot-icon-linkedin-square:before { + content: "\f08c"; } -.ot-icon-pushpin:before { - content: "\e67e"; +.ot-icon-thumb-tack:before { + content: "\f08d"; } .ot-icon-external-link:before { - content: "\e67f"; + content: "\f08e"; } -.ot-icon-signin:before { - content: "\e680"; +.ot-icon-sign-in:before { + content: "\f090"; } .ot-icon-trophy:before { - content: "\e681"; + content: "\f091"; } -.ot-icon-github-sign:before { - content: "\e682"; +.ot-icon-github-square:before { + content: "\f092"; } -.ot-icon-upload-alt:before { - content: "\e683"; +.ot-icon-upload:before { + content: "\f093"; } -.ot-icon-lemon:before { - content: "\e684"; +.ot-icon-lemon-o:before { + content: "\f094"; } .ot-icon-phone:before { - content: "\e685"; + content: "\f095"; } -.ot-icon-check-empty:before { - content: "\e686"; +.ot-icon-square-o:before { + content: "\f096"; } -.ot-icon-bookmark-empty:before { - content: "\e687"; +.ot-icon-bookmark-o:before { + content: "\f097"; } -.ot-icon-phone-sign:before { - content: "\e688"; +.ot-icon-phone-square:before { + content: "\f098"; } .ot-icon-twitter:before { - content: "\e689"; + content: "\f099"; } .ot-icon-facebook:before { - content: "\e68a"; + content: "\f09a"; } .ot-icon-github:before { - content: "\e68b"; + content: "\f09b"; } .ot-icon-unlock:before { - content: "\e68c"; + content: "\f09c"; } -.ot-icon-credit:before { - content: "\e68d"; +.ot-icon-credit-card:before { + content: "\f09d"; } .ot-icon-rss:before { - content: "\e68e"; + content: "\f09e"; } -.ot-icon-hdd:before { - content: "\e68f"; +.ot-icon-hdd-o:before { + content: "\f0a0"; } .ot-icon-bullhorn:before { - content: "\e690"; + content: "\f0a1"; } .ot-icon-bell:before { - content: "\e691"; + content: "\f0a2"; } .ot-icon-certificate:before { - content: "\e692"; + content: "\f0a3"; } -.ot-icon-hand-right:before { - content: "\e693"; +.ot-icon-hand-o-right:before { + content: "\f0a4"; } -.ot-icon-hand-left:before { - content: "\e694"; +.ot-icon-hand-o-left:before { + content: "\f0a5"; } -.ot-icon-hand-up:before { - content: "\e695"; +.ot-icon-hand-o-up:before { + content: "\f0a6"; } -.ot-icon-hand-down:before { - content: "\e696"; +.ot-icon-hand-o-down:before { + content: "\f0a7"; } -.ot-icon-circle-arrow-left:before { - content: "\e697"; +.ot-icon-arrow-circle-left:before { + content: "\f0a8"; } -.ot-icon-circle-arrow-right:before { - content: "\e698"; +.ot-icon-arrow-circle-right:before { + content: "\f0a9"; } -.ot-icon-circle-arrow-up:before { - content: "\e699"; +.ot-icon-arrow-circle-up:before { + content: "\f0aa"; } -.ot-icon-circle-arrow-down:before { - content: "\e69a"; +.ot-icon-arrow-circle-down:before { + content: "\f0ab"; } .ot-icon-globe:before { - content: "\e69b"; + content: "\f0ac"; } .ot-icon-wrench:before { - content: "\e69c"; + content: "\f0ad"; } .ot-icon-tasks:before { - content: "\e69d"; + content: "\f0ae"; } .ot-icon-filter:before { - content: "\e69e"; + content: "\f0b0"; } .ot-icon-briefcase:before { - content: "\e69f"; + content: "\f0b1"; } -.ot-icon-fullscreen:before { - content: "\e780"; +.ot-icon-arrows-alt:before { + content: "\f0b2"; } .ot-icon-group:before { - content: "\e6a0"; + content: "\f0c0"; } -.ot-icon-link:before { - content: "\e6a1"; +.ot-icon-chain:before { + content: "\f0c1"; } .ot-icon-cloud:before { - content: "\e6a2"; + content: "\f0c2"; } -.ot-icon-beaker:before { - content: "\e6a3"; +.ot-icon-flask:before { + content: "\f0c3"; } .ot-icon-cut:before { - content: "\e6a4"; + content: "\f0c4"; } .ot-icon-copy:before { - content: "\e6a5"; + content: "\f0c5"; } -.ot-icon-paper-clip:before { - content: "\e6a6"; +.ot-icon-paperclip:before { + content: "\f0c6"; } .ot-icon-save:before { - content: "\e6a7"; + content: "\f0c7"; } -.ot-icon-sign-blank:before { - content: "\e6a8"; +.ot-icon-square:before { + content: "\f0c8"; } -.ot-icon-reorder:before { - content: "\e6a9"; +.ot-icon-bars:before { + content: "\f0c9"; } .ot-icon-list-ul:before { - content: "\e6aa"; + content: "\f0ca"; } .ot-icon-list-ol:before { - content: "\e6ab"; + content: "\f0cb"; } .ot-icon-strikethrough:before { - content: "\e6ac"; + content: "\f0cc"; } .ot-icon-underline:before { - content: "\e6ad"; + content: "\f0cd"; } .ot-icon-table:before { - content: "\e6ae"; + content: "\f0ce"; } .ot-icon-magic:before { - content: "\e6af"; + content: "\f0d0"; } .ot-icon-truck:before { - content: "\e6b0"; + content: "\f0d1"; } .ot-icon-pinterest:before { - content: "\e6b1"; + content: "\f0d2"; } -.ot-icon-pinterest-sign:before { - content: "\e6b2"; +.ot-icon-pinterest-square:before { + content: "\f0d3"; } -.ot-icon-google-plus-sign:before { - content: "\e6b3"; +.ot-icon-google-plus-square:before { + content: "\f0d4"; } .ot-icon-google-plus:before { - content: "\e6b4"; + content: "\f0d5"; } .ot-icon-money:before { - content: "\e6b5"; + content: "\f0d6"; } .ot-icon-caret-down:before { - content: "\e6b6"; + content: "\f0d7"; } .ot-icon-caret-up:before { - content: "\e6b7"; + content: "\f0d8"; } .ot-icon-caret-left:before { - content: "\e6b8"; + content: "\f0d9"; } .ot-icon-caret-right:before { - content: "\e6b9"; + content: "\f0da"; } .ot-icon-columns:before { - content: "\e6ba"; + content: "\f0db"; } -.ot-icon-sort:before { - content: "\e6bb"; +.ot-icon-unsorted:before { + content: "\f0dc"; } .ot-icon-sort-down:before { - content: "\e6bc"; + content: "\f0dd"; } .ot-icon-sort-up:before { - content: "\e6bd"; + content: "\f0de"; } -.ot-icon-envelope-alt:before { - content: "\e6be"; +.ot-icon-envelope:before { + content: "\f0e0"; } .ot-icon-linkedin:before { - content: "\e6bf"; + content: "\f0e1"; } -.ot-icon-undo:before { - content: "\e6c0"; +.ot-icon-rotate-left:before { + content: "\f0e2"; } .ot-icon-legal:before { - content: "\e6c1"; + content: "\f0e3"; } .ot-icon-dashboard:before { - content: "\e6c2"; + content: "\f0e4"; } -.ot-icon-comment-alt:before { - content: "\e6c3"; +.ot-icon-comment-o:before { + content: "\f0e5"; } -.ot-icon-comments-alt:before { - content: "\e6c4"; +.ot-icon-comments-o:before { + content: "\f0e6"; } -.ot-icon-bolt:before { - content: "\e6c5"; +.ot-icon-flash:before { + content: "\f0e7"; } .ot-icon-sitemap:before { - content: "\e6c6"; + content: "\f0e8"; } .ot-icon-umbrella:before { - content: "\e6c7"; + content: "\f0e9"; } .ot-icon-paste:before { - content: "\e6c8"; + content: "\f0ea"; } -.ot-icon-lightbulb:before { - content: "\e6c9"; +.ot-icon-lightbulb-o:before { + content: "\f0eb"; } .ot-icon-exchange:before { - content: "\e6ca"; + content: "\f0ec"; } .ot-icon-cloud-download:before { - content: "\e6cb"; + content: "\f0ed"; } .ot-icon-cloud-upload:before { - content: "\e6cc"; + content: "\f0ee"; } .ot-icon-user-md:before { - content: "\e6cd"; + content: "\f0f0"; } .ot-icon-stethoscope:before { - content: "\e6ce"; + content: "\f0f1"; } .ot-icon-suitcase:before { - content: "\e6cf"; + content: "\f0f2"; } -.ot-icon-bell-alt:before { - content: "\e6d0"; +.ot-icon-bell-o:before { + content: "\f0f3"; } .ot-icon-coffee:before { - content: "\e6d1"; + content: "\f0f4"; } -.ot-icon-food:before { - content: "\e6d2"; +.ot-icon-cutlery:before { + content: "\f0f5"; } -.ot-icon-file-alt:before { - content: "\e6d3"; +.ot-icon-file-text-o:before { + content: "\f0f6"; } -.ot-icon-building:before { - content: "\e6d4"; +.ot-icon-building-o:before { + content: "\f0f7"; } -.ot-icon-hospital:before { - content: "\e6d5"; +.ot-icon-hospital-o:before { + content: "\f0f8"; } .ot-icon-ambulance:before { - content: "\e6d6"; + content: "\f0f9"; } .ot-icon-medkit:before { - content: "\e6d7"; + content: "\f0fa"; } .ot-icon-fighter-jet:before { - content: "\e6d8"; + content: "\f0fb"; } .ot-icon-beer:before { - content: "\e6d9"; + content: "\f0fc"; } -.ot-icon-h-sign:before { - content: "\e6da"; +.ot-icon-h-square:before { + content: "\f0fd"; } -.ot-icon-plus-sign2:before { - content: "\e6db"; +.ot-icon-plus-square:before { + content: "\f0fe"; } -.ot-icon-double-angle-left:before { - content: "\e6dc"; +.ot-icon-angle-double-left:before { + content: "\f100"; } -.ot-icon-double-angle-right:before { - content: "\e6dd"; +.ot-icon-angle-double-right:before { + content: "\f101"; } -.ot-icon-double-angle-up:before { - content: "\e6de"; +.ot-icon-angle-double-up:before { + content: "\f102"; } -.ot-icon-double-angle-down:before { - content: "\e6df"; +.ot-icon-angle-double-down:before { + content: "\f103"; } .ot-icon-angle-left:before { - content: "\e775"; + content: "\f104"; } .ot-icon-angle-right:before { - content: "\e774"; + content: "\f105"; } .ot-icon-angle-up:before { - content: "\e776"; + content: "\f106"; } .ot-icon-angle-down:before { - content: "\e777"; + content: "\f107"; } .ot-icon-desktop:before { - content: "\e6e0"; + content: "\f108"; } .ot-icon-laptop:before { - content: "\e6e1"; + content: "\f109"; } .ot-icon-tablet:before { - content: "\e6e2"; + content: "\f10a"; } -.ot-icon-mobile:before { - content: "\e6e3"; +.ot-icon-mobile-phone:before { + content: "\f10b"; } -.ot-icon-circle-blank:before { - content: "\e6e4"; +.ot-icon-circle-o:before { + content: "\f10c"; } .ot-icon-quote-left:before { - content: "\e6e5"; + content: "\f10d"; } .ot-icon-quote-right:before { - content: "\e6e6"; + content: "\f10e"; } .ot-icon-spinner:before { - content: "\e6e7"; + content: "\f110"; } .ot-icon-circle:before { - content: "\e787"; + content: "\f111"; } -.ot-icon-reply:before { - content: "\e6e8"; +.ot-icon-mail-reply:before { + content: "\f112"; } .ot-icon-github-alt:before { - content: "\e6e9"; -} -.ot-icon-folder-close-alt:before { - content: "\e6ea"; + content: "\f113"; } -.ot-icon-folder-open-alt:before { - content: "\e6eb"; +.ot-icon-folder-o:before { + content: "\f114"; } -.ot-icon-expand-alt:before { - content: "\e6ec"; +.ot-icon-folder-open-o:before { + content: "\f115"; } -.ot-icon-collapse-alt:before { - content: "\e6ed"; +.ot-icon-smile-o:before { + content: "\f118"; } -.ot-icon-smile:before { - content: "\e6ee"; +.ot-icon-frown-o:before { + content: "\f119"; } -.ot-icon-frown:before { - content: "\e6ef"; -} -.ot-icon-meh:before { - content: "\e6f0"; +.ot-icon-meh-o:before { + content: "\f11a"; } .ot-icon-gamepad:before { - content: "\e6f1"; + content: "\f11b"; } -.ot-icon-keyboard:before { - content: "\e6f2"; +.ot-icon-keyboard-o:before { + content: "\f11c"; } -.ot-icon-flag-alt:before { - content: "\e6f3"; +.ot-icon-flag-o:before { + content: "\f11d"; } .ot-icon-flag-checkered:before { - content: "\e6f4"; + content: "\f11e"; } .ot-icon-terminal:before { - content: "\e6f5"; + content: "\f120"; } .ot-icon-code:before { - content: "\e6f6"; + content: "\f121"; } .ot-icon-reply-all:before { - content: "\e6f7"; + content: "\f122"; } -.ot-icon-star-half-full:before { - content: "\e6f8"; +.ot-icon-star-half-empty:before { + content: "\f123"; } .ot-icon-location-arrow:before { - content: "\e6f9"; + content: "\f124"; } .ot-icon-crop:before { - content: "\e6fa"; + content: "\f125"; } .ot-icon-code-fork:before { - content: "\e6fb"; + content: "\f126"; } .ot-icon-unlink:before { - content: "\e6fc"; + content: "\f127"; } .ot-icon-question:before { - content: "\e6fd"; + content: "\f128"; } .ot-icon-info:before { - content: "\e6fe"; + content: "\f129"; } .ot-icon-exclamation:before { - content: "\e6ff"; + content: "\f12a"; } .ot-icon-superscript:before { - content: "\e700"; + content: "\f12b"; } .ot-icon-subscript:before { - content: "\e701"; + content: "\f12c"; } .ot-icon-eraser:before { - content: "\e702"; + content: "\f12d"; } -.ot-icon-puzzle:before { - content: "\e703"; +.ot-icon-puzzle-piece:before { + content: "\f12e"; } .ot-icon-microphone:before { - content: "\e704"; + content: "\f130"; } -.ot-icon-microphone-off:before { - content: "\e705"; +.ot-icon-microphone-slash:before { + content: "\f131"; } .ot-icon-shield:before { - content: "\e706"; + content: "\f132"; } -.ot-icon-calendar-empty:before { - content: "\e707"; +.ot-icon-calendar-o:before { + content: "\f133"; } .ot-icon-fire-extinguisher:before { - content: "\e708"; + content: "\f134"; } .ot-icon-rocket:before { - content: "\e709"; + content: "\f135"; } .ot-icon-maxcdn:before { - content: "\e70a"; + content: "\f136"; } -.ot-icon-chevron-sign-left:before { - content: "\e70b"; +.ot-icon-chevron-circle-left:before { + content: "\f137"; } -.ot-icon-chevron-sign-right:before { - content: "\e70c"; +.ot-icon-chevron-circle-right:before { + content: "\f138"; } -.ot-icon-chevron-sign-up:before { - content: "\e70d"; +.ot-icon-chevron-circle-up:before { + content: "\f139"; } -.ot-icon-chevron-sign-down:before { - content: "\e70e"; +.ot-icon-chevron-circle-down:before { + content: "\f13a"; } .ot-icon-html5:before { - content: "\e70f"; + content: "\f13b"; } .ot-icon-css3:before { - content: "\e710"; + content: "\f13c"; } .ot-icon-anchor:before { - content: "\e711"; + content: "\f13d"; } .ot-icon-unlock-alt:before { - content: "\e712"; + content: "\f13e"; } .ot-icon-bullseye:before { - content: "\e713"; + content: "\f140"; } -.ot-icon-ellipsis-horizontal:before { - content: "\e714"; +.ot-icon-ellipsis-h:before { + content: "\f141"; } -.ot-icon-ellipsis-vertical:before { - content: "\e715"; +.ot-icon-ellipsis-v:before { + content: "\f142"; } -.ot-icon-rss-sign:before { - content: "\e716"; +.ot-icon-rss-square:before { + content: "\f143"; } -.ot-icon-play-sign:before { - content: "\e717"; +.ot-icon-play-circle:before { + content: "\f144"; } .ot-icon-ticket:before { - content: "\e718"; + content: "\f145"; } -.ot-icon-minus-sign-alt:before { - content: "\e719"; +.ot-icon-minus-square:before { + content: "\f146"; } -.ot-icon-check-minus:before { - content: "\e71a"; +.ot-icon-minus-square-o:before { + content: "\f147"; } .ot-icon-level-up:before { - content: "\e71b"; + content: "\f148"; } .ot-icon-level-down:before { - content: "\e71c"; + content: "\f149"; } -.ot-icon-check-sign:before { - content: "\e71d"; +.ot-icon-check-square:before { + content: "\f14a"; } -.ot-icon-edit-sign:before { - content: "\e71e"; +.ot-icon-pencil-square:before { + content: "\f14b"; } -.ot-icon-external-link-sign:before { - content: "\e71f"; +.ot-icon-external-link-square:before { + content: "\f14c"; } -.ot-icon-share-sign:before { - content: "\e720"; +.ot-icon-share-square:before { + content: "\f14d"; } .ot-icon-compass:before { - content: "\e721"; + content: "\f14e"; } -.ot-icon-collapse:before { - content: "\e722"; +.ot-icon-toggle-down:before { + content: "\f150"; } -.ot-icon-collapse-top:before { - content: "\e723"; +.ot-icon-toggle-up:before { + content: "\f151"; } -.ot-icon-expand:before { - content: "\e724"; +.ot-icon-toggle-right:before { + content: "\f152"; } .ot-icon-euro:before { - content: "\e725"; + content: "\f153"; } .ot-icon-gbp:before { - content: "\e726"; + content: "\f154"; } .ot-icon-dollar:before { - content: "\e727"; + content: "\f155"; } .ot-icon-rupee:before { - content: "\e728"; + content: "\f156"; } -.ot-icon-yen:before { - content: "\e729"; +.ot-icon-cny:before { + content: "\f157"; } -.ot-icon-renminbi:before { - content: "\e72a"; +.ot-icon-ruble:before { + content: "\f158"; } .ot-icon-won:before { - content: "\e72b"; + content: "\f159"; } .ot-icon-bitcoin:before { - content: "\e72c"; + content: "\f15a"; } -.ot-icon-file2:before { - content: "\e72d"; +.ot-icon-file:before { + content: "\f15b"; } .ot-icon-file-text:before { - content: "\e72e"; + content: "\f15c"; } -.ot-icon-sort-by-alphabet:before { - content: "\e72f"; +.ot-icon-sort-alpha-asc:before { + content: "\f15d"; } -.ot-icon-sort-by-alphabet-alt:before { - content: "\e730"; +.ot-icon-sort-alpha-desc:before { + content: "\f15e"; } -.ot-icon-sort-by-attributes:before { - content: "\e731"; +.ot-icon-sort-amount-asc:before { + content: "\f160"; } -.ot-icon-sort-by-attributes-alt:before { - content: "\e732"; +.ot-icon-sort-amount-desc:before { + content: "\f161"; } -.ot-icon-sort-by-order:before { - content: "\e733"; +.ot-icon-sort-numeric-asc:before { + content: "\f162"; } -.ot-icon-sort-by-order-alt:before { - content: "\e734"; +.ot-icon-sort-numeric-desc:before { + content: "\f163"; } -.ot-icon-thumbs-up2:before { - content: "\e735"; +.ot-icon-thumbs-up:before { + content: "\f164"; } -.ot-icon-thumbs-down2:before { - content: "\e736"; +.ot-icon-thumbs-down:before { + content: "\f165"; } -.ot-icon-youtube-sign:before { - content: "\e737"; +.ot-icon-youtube-square:before { + content: "\f166"; } .ot-icon-youtube:before { - content: "\e738"; + content: "\f167"; } .ot-icon-xing:before { - content: "\e739"; + content: "\f168"; } -.ot-icon-xing-sign:before { - content: "\e73a"; +.ot-icon-xing-square:before { + content: "\f169"; } .ot-icon-youtube-play:before { - content: "\e73b"; + content: "\f16a"; } .ot-icon-dropbox:before { - content: "\e73c"; + content: "\f16b"; } -.ot-icon-stackexchange:before { - content: "\e73d"; +.ot-icon-stack-overflow:before { + content: "\f16c"; } .ot-icon-instagram:before { - content: "\e73e"; + content: "\f16d"; } .ot-icon-flickr:before { - content: "\e73f"; + content: "\f16e"; } .ot-icon-adn:before { - content: "\e740"; + content: "\f170"; } .ot-icon-bitbucket:before { - content: "\e741"; + content: "\f171"; } -.ot-icon-bitbucket-sign:before { - content: "\e742"; +.ot-icon-bitbucket-square:before { + content: "\f172"; } .ot-icon-tumblr:before { - content: "\e743"; + content: "\f173"; } -.ot-icon-tumblr-sign:before { - content: "\e744"; +.ot-icon-tumblr-square:before { + content: "\f174"; } .ot-icon-long-arrow-down:before { - content: "\e770"; + content: "\f175"; } .ot-icon-long-arrow-up:before { - content: "\e771"; + content: "\f176"; } .ot-icon-long-arrow-left:before { - content: "\e772"; + content: "\f177"; } .ot-icon-long-arrow-right:before { - content: "\e773"; + content: "\f178"; } .ot-icon-apple:before { - content: "\e745"; + content: "\f179"; } .ot-icon-windows:before { - content: "\e746"; + content: "\f17a"; } .ot-icon-android:before { - content: "\e747"; + content: "\f17b"; } .ot-icon-linux:before { - content: "\e748"; + content: "\f17c"; } .ot-icon-dribbble:before { - content: "\e749"; + content: "\f17d"; } .ot-icon-skype:before { - content: "\e74a"; + content: "\f17e"; } .ot-icon-foursquare:before { - content: "\e74b"; + content: "\f180"; } .ot-icon-trello:before { - content: "\e74c"; + content: "\f181"; } .ot-icon-female:before { - content: "\e74d"; + content: "\f182"; } .ot-icon-male:before { - content: "\e74e"; + content: "\f183"; } .ot-icon-gittip:before { - content: "\e74f"; + content: "\f184"; } -.ot-icon-sun:before { - content: "\e750"; +.ot-icon-sun-o:before { + content: "\f185"; } -.ot-icon-moon:before { - content: "\e751"; +.ot-icon-moon-o:before { + content: "\f186"; } .ot-icon-archive:before { - content: "\e752"; + content: "\f187"; } .ot-icon-bug:before { - content: "\e753"; + content: "\f188"; } .ot-icon-vk:before { - content: "\e754"; + content: "\f189"; } .ot-icon-weibo:before { - content: "\e755"; + content: "\f18a"; } .ot-icon-renren:before { - content: "\e756"; + content: "\f18b"; +} +.ot-icon-pagelines:before { + content: "\f18c"; +} +.ot-icon-stack-exchange:before { + content: "\f18d"; +} +.ot-icon-arrow-circle-o-right:before { + content: "\f18e"; +} +.ot-icon-arrow-circle-o-left:before { + content: "\f190"; +} +.ot-icon-toggle-left:before { + content: "\f191"; +} +.ot-icon-dot-circle-o:before { + content: "\f192"; +} +.ot-icon-wheelchair:before { + content: "\f193"; +} +.ot-icon-vimeo-square:before { + content: "\f194"; +} +.ot-icon-turkish-lira:before { + content: "\f195"; +} +.ot-icon-plus-square-o:before { + content: "\f196"; } /* -------------------------------------------------- @@ -1481,7 +1506,7 @@ } #option-tree-settings-api .description h3, #option-tree-settings-api .format-setting-label .label, -.metabox-holder .format-setting-label .label { +#poststuff .format-setting-label .label { background: none; border: none; color: #222; @@ -1509,9 +1534,8 @@ position: relative; width: 63%; } -.format-setting.no-desc .format-setting-inner, -.format-setting.wide-desc .format-setting-inner, -.option-tree-list-item .format-setting-inner { +.format-setting.no-desc > .format-setting-inner, +.format-setting.wide-desc .format-setting-inner { width: 100%; } .format-setting .description { @@ -1519,9 +1543,8 @@ padding: 5px 0; width: 35%; } -.format-setting.no-desc .description, -.format-setting.wide-desc .description, -.option-tree-list-item .description { +.format-setting.no-desc > .description, +.format-setting.wide-desc .description { float: none; width: 100%; } @@ -1824,7 +1847,7 @@ div.option-tree-ui-media-wrap { } .option-tree-setting .open:hover:before { color: #999; - content: "\e715"; + content: "\f142"; left: 4px; font-family: "option-tree-font"; speak: none; @@ -2050,12 +2073,12 @@ li ul .format-setting-label { text-indent: -9999px; } .option-tree-layout-activate .icon:before { - content: "\e686"; + content: "\f096"; position: relative; top: 1px; } .option-tree-layout-activate.active .icon:before { - content: "\e640"; + content: "\f046"; padding-left: 1px; } @@ -2172,6 +2195,12 @@ select.option-tree-ui-select option { margin: 0.5em 0 !important; width: 100%; } +@media screen and ( max-width: 782px ) { + .format-setting.type-checkbox, + .format-setting.type-radio { + padding-top: 0.3em; + } +} /* -------------------------------------------------- :: Radio Images @@ -2199,6 +2228,13 @@ select.option-tree-ui-select option { box-shadow: 0 1px 3px rgba(0,0,0,0.05); } +/* -------------------------------------------------- + :: Social Links + ---------------------------------------------------*/ +.type-social-links input.option-tree-ui-input { + margin-top: 5px; +} + /* -------------------------------------------------- :: Numeric Slider ---------------------------------------------------*/ @@ -2822,7 +2858,8 @@ ul.ot-gallery-list li img { /* -------------------------------------------------- :: CSS Editor ---------------------------------------------------*/ -#option-tree-settings-api pre.ot-css-editor { +#option-tree-settings-api pre.ot-css-editor, +#poststuff .type-css pre.ot-css-editor { bottom: 0; height: 280px; left: 0; @@ -2830,20 +2867,23 @@ ul.ot-gallery-list li img { right: 0; top: 0; } -#option-tree-settings-api pre.ace-chrome { +#option-tree-settings-api pre.ace-chrome, +#poststuff .type-css pre.ace-chrome { background-color: #fff !important; border: 1px solid #ccc; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; } -#option-tree-settings-api pre.ace-chrome:hover { +#option-tree-settings-api pre.ace-chrome:hover, +#poststuff .type-css pre.ace-chrome:hover { border-color: #bbb !important; -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); } -#option-tree-settings-api pre.ace-chrome.ace_focus { +#option-tree-settings-api pre.ace-chrome.ace_focus, +#poststuff .type-css pre.ace-chrome.ace_focus { border-color: #999 !important; -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); @@ -2914,7 +2954,7 @@ ul.ot-gallery-list li img { } .ui-datepicker-prev:before { border-right: 1px solid #555; - content: "\e775"; + content: "\f104"; display: block; float: left; width: 31px; @@ -2926,7 +2966,7 @@ ul.ot-gallery-list li img { } .ui-datepicker-next:before { border-left: 1px solid #555; - content: "\e774"; + content: "\f105"; display: block; float: right; width: 30px; @@ -3432,6 +3472,7 @@ a.ui-datepicker-next { :: Meta Box Tabs ---------------------------------------------------*/ .ot-metabox-tabs.ui-tabs { + overflow: hidden; position: relative; } .ot-metabox-tabs.ui-tabs .ot-metabox-wrapper { @@ -3440,7 +3481,7 @@ a.ui-datepicker-next { .ot-metabox-tabs.ui-tabs .ot-metabox-panels { background: white; border: 1px solid #ccc; - margin: 12px 0 0 0; + margin: 7px 0 1px 0; min-height: 140px; overflow: hidden; padding: 12px; @@ -3452,15 +3493,19 @@ a.ui-datepicker-next { float: left; list-style: none; margin: 0 -1px 0 0; - padding: 1em 0; + padding: 18px 0 12px 0; width: 151px; } -.ot-metabox-tabs.ui-tabs .ot-metabox-nav.ui-tabs-nav li { +.ot-metabox-tabs.ui-tabs .ot-metabox-nav.ui-tabs-nav li, +.ot-metabox-tabs.ui-tabs .ot-metabox-nav.ui-tabs-nav li.ui-state-focus { + background: none; border: 1px solid transparent; border-right-width: 0px; display: block; margin: 0; outline: 0; + padding: 1px 0; + width: 150px; -webkit-border-radius: 2px 0 0 2px; -moz-border-radius: 2px 0 0 2px; border-radius: 2px 0 0 2px; diff --git a/option-tree/assets/fonts/option-tree-font.eot b/option-tree/assets/fonts/option-tree-font.eot index a5eaeff9125adc74f394c9ddac5c3b5e625aae6f..b3dcf0aa766f8aeaffaab281b6f0583de04ea999 100644 GIT binary patch literal 95152 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 parseInt( v2 ) ); break; case 'contains': - result = ( v2.indexOf(v1) !== -1 ? true : false ); + result = ( v1.indexOf(v2) !== -1 ? true : false ); break; case 'is': result = ( v1 == v2 ); @@ -376,16 +386,17 @@ }); }, init_conditions: function() { - $( document ).on( 'change.conditionals', '.format-settings[id^="setting_"] select, .format-settings[id^="setting_"] input[type="radio"]:checked, .format-settings[id^="setting_"] input[type="text"], .format-settings[id^="setting_"] input[type="hidden"], .format-settings[id^="setting_"] input.ot-numeric-slider-hidden-input', function( e ) { + $('.format-settings[id^="setting_"]').on( 'change.conditionals, keyup.conditionals', OT_UI.condition_objects(), function() { OT_UI.parse_condition(); }); OT_UI.parse_condition(); }, init_upload: function() { $(document).on('click', '.ot_upload_media', function() { - var field_id = $(this).parent('.option-tree-ui-upload-parent').find('input').attr('id'), - post_id = $(this).attr('rel'), - btnContent = ''; + var field_id = $(this).parent('.option-tree-ui-upload-parent').find('input').attr('id'), + post_id = $(this).attr('rel'), + save_attachment_id = $('#'+field_id).hasClass('ot-upload-attachment-id'), + btnContent = ''; if ( window.wp && wp.media ) { window.ot_media_frame = window.ot_media_frame || new wp.media.view.MediaFrame.Select({ title: $(this).attr('title'), @@ -396,14 +407,20 @@ }); window.ot_media_frame.on('select', function() { var attachment = window.ot_media_frame.state().get('selection').first(), - href = attachment.attributes.url, + href = attachment.attributes.url, + attachment_id = attachment.attributes.id, mime = attachment.attributes.mime, regex = /^image\/(?:jpe?g|png|gif|x-icon)$/i; if ( mime.match(regex) ) { btnContent += '

    '; } - btnContent += ''+option_tree.remove_media_text+''; - $('#'+field_id).val(href); + btnContent += ''+option_tree.remove_media_text+''; + if ( save_attachment_id ) { + $('#'+field_id).val(attachment_id).attr('disabled','disabled'); + $('#'+field_id).parents('.type-upload').addClass('ot-upload-attachment-id-wrap') + } else { + $('#'+field_id).val(href); + } $('#'+field_id+'_media').remove(); $('#'+field_id).parent().parent('div').append('
    '); $('#'+field_id+'_media').append(btnContent).slideDown(); @@ -431,7 +448,7 @@ if (href.match(image) && OT_UI.url_exists(href)) { btnContent += '
    '; } - btnContent += ''+option_tree.remove_media_text+''; + btnContent += ''+option_tree.remove_media_text+''; $('#'+field_id).val(href); $('#'+field_id+'_media').remove(); $('#'+field_id).parent().parent('div').append('
    '); @@ -473,7 +490,7 @@ if (val.match(image)) { btnContent += '
    '; } - btnContent += ''+option_tree.remove_media_text+''; + btnContent += ''+option_tree.remove_media_text+''; $('#'+id).val(val); $('#'+id+'_media').remove(); $('#'+id).parent().parent('div').append('
    '); @@ -569,7 +586,7 @@ }); }, fix_upload_parent: function() { - $('.option-tree-ui-upload-input').on('focus blur', function(){ + $('.option-tree-ui-upload-input').not('.ot-upload-attachment-id').on('focus blur', function(){ $(this).parent('.option-tree-ui-upload-parent').toggleClass('focus'); OT_UI.init_upload_fix(this); }); @@ -610,7 +627,7 @@ css_editor_mode: function() { $('.ot-css-editor').each(function() { var editor = ace.edit($(this).attr('id')); - var this_textarea = jQuery('#textarea_' + $(this).attr('id')); + var this_textarea = $('#textarea_' + $(this).attr('id')); editor.setTheme("ace/theme/chrome"); editor.getSession().setMode("ace/mode/css"); editor.setShowPrintMargin( false ); @@ -827,11 +844,27 @@ }) // Create the tabs - $(this).find('.ot-metabox-tabs').tabs() + $(this).find('.ot-metabox-tabs').tabs({ + activate: function( event, ui ) { + var parent = $(this).outerHeight(), + child = $(this).find('.ot-metabox-panels').outerHeight() + 8, + minHeight = parent - 34 + if ( $(this).find('.ot-metabox-panels').css('padding') == '12px' && child < parent ) { + $(this).find('.ot-metabox-panels').css({ minHeight: minHeight }) + } + OT_UI.css_editor_mode(); + } + }) // Move the orphaned settings to the top $(this).find('.ot-metabox-panels > .format-settings').prependTo($(this)) - + + // Remove a bunch of classes to stop style conflicts. + $(this).find('.ot-metabox-tabs').removeClass('ui-widget ui-widget-content ui-corner-all') + $(this).find('.ot-metabox-nav').removeClass('ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all') + $(this).find('.ot-metabox-nav li').removeClass('ui-state-default ui-corner-top ui-tabs-active ui-tabs-active') + $(this).find('.ot-metabox-nav li').on('hover', function() { $(this).removeClass('ui-state-hover') }) + } }) @@ -896,4 +929,181 @@ }) +}(window.jQuery); + +/*! + * Fixes the state of metabox radio buttons after a Drag & Drop event. + */ +!function ($) { + + $(document).on('ready', function () { + + // detect mousedown and store all checked radio buttons + $('.hndle').on('mousedown', function () { + + // get parent element of .hndle selected. + // We only need to monitor radios insde the object that is being moved. + var parent_id = $(this).closest('div').attr('id') + + // set live event listener for mouse up on the content .wrap + // then give the dragged div time to settle before firing the reclick function + $('.wrap').on('mouseup', function () { + + var ot_checked_radios = {} + + // loop over all checked radio buttons inside of parent element + $('#' + parent_id + ' input[type="radio"]').each( function () { + + // stores checked radio buttons + if ( $(this).is(':checked') ) { + + ot_checked_radios[$(this).attr('name')] = $(this).val() + + } + + // write to the object + $(document).data('ot_checked_radios', ot_checked_radios) + + }) + + // restore all checked radio buttons + setTimeout( function () { + + // get object of checked radio button names and values + var checked = $(document).data('ot_checked_radios') + + // step thru each object element and trigger a click on it's corresponding radio button + for ( key in checked ) { + + $('input[name="' + key + '"]').filter('[value="' + checked[key] + '"]').trigger('click') + + } + + $('.wrap').unbind('mouseup') + + }, 50 ) + + }) + + }) + + }) + +}(window.jQuery); + +/*! + * postformats.js v1.0 + */ +!function ($) { + + "use strict"; // jshint ;_; + + /* POSTFORMATS CLASS DEFINITION + * ====================== */ + var formats = "input.post-format" + , metaboxes = [ + '#ot-post-format-gallery' + , '#ot-post-format-link' + , '#ot-post-format-image' + , '#ot-post-format-quote' + , '#ot-post-format-video' + , '#ot-post-format-audio' + ] + , ids = metaboxes.join(',') + , insertAfter = '#titlediv' + , imageBox = '#postimagediv' + , placeholder = 'postimagediv-placeholder' + , Postformats = function (element, options) { + this.$element = $(element) + .on('click.postformats.data-api', $.proxy(this.toggle, this)) + this.$id = this.$element.attr('id') + this.init() + } + + Postformats.prototype = { + + constructor: Postformats + + , init: function () { + + // Moves the metaboxes into place + $( '#ot-' + this.$id ).insertAfter( $( insertAfter ) ).hide() + + // Show the checked metabox + if ( this.$element.is(':checked') ) { + + this.show() + + } + + } + + , toggle: function () { + + // Hides all the post format metaboxes + $(ids).each(function() { + + $(this).hide() + + }) + + // Shows the clicked post format metabox + this.show() + + } + + , show: function () { + + // Featured image is never really hidden so it requires different code + if ( this.$id == 'post-format-image' ) { + + if ( $( '#' + placeholder ).length == 0 ) + $( imageBox ).after( '
    ' ).insertAfter( insertAfter ).find('h3 span').text(option_tree.with) + + // Revert image + } else { + + $( '#' + placeholder ).replaceWith( $( imageBox ) ) + $( imageBox ).find('h3 span').text(option_tree.replace) + + } + + // Show the metabox + $( '#ot-' + this.$id ).show() + + } + + } + + /* POSTFORMATS PLUGIN DEFINITION + * ======================= */ + var old = $.fn.postformats + + $.fn.postformats = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('postformats') + , options = typeof option == 'object' && option + if (!data) $this.data('postformats', (data = new Postformats(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.postformats.Constructor = Postformats + + /* POSTFORMATS NO CONFLICT + * ================= */ + $.fn.postformats.noConflict = function () { + $.fn.postformats = old + return this + } + + /* POSTFORMATS DATA-API + * ============== */ + $(document).on('ready.postformats.data-api', function () { + $(formats).each(function () { + $(this).postformats() + }) + }) + }(window.jQuery); \ No newline at end of file diff --git a/option-tree/assets/theme-mode/demo-theme-options.php b/option-tree/assets/theme-mode/demo-theme-options.php index 86cc712..91bca68 100644 --- a/option-tree/assets/theme-mode/demo-theme-options.php +++ b/option-tree/assets/theme-mode/demo-theme-options.php @@ -498,6 +498,21 @@ function custom_theme_options() { 'condition' => '', 'operator' => 'and' ), + array( + 'id' => 'demo_social_links', + 'label' => __( 'Social Links', 'theme-text-domain' ), + 'desc' => '

    ' . sprintf( __( 'The Social Links option type utilizes a drag & drop interface to create a list of social links. There are a few filters that make extending this option type easy. You can set the %s filter to %s and turn off loading default values. Use the %s filter to change the default values that are loaded. To filter the settings array use the %s filter.', 'theme-text-domain' ), 'ot_type_social_links_load_defaults', 'false', 'ot_type_social_links_defaults', 'ot_social_links_settings' ) . '

    ', + 'std' => '', + 'type' => 'sidebar-select', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), array( 'id' => 'demo_taxonomy_checkbox', 'label' => __( 'Taxonomy Checkbox', 'theme-text-domain' ), @@ -632,6 +647,21 @@ function custom_theme_options() { 'class' => '', 'condition' => '', 'operator' => 'and' + ), + array( + 'id' => 'demo_upload_attachment_id', + 'label' => __( 'Upload Attachment ID', 'theme-text-domain' ), + 'desc' => sprintf( __( 'The Upload option type can also be saved as an attachment ID by adding %s to the class attribute.', 'theme-text-domain' ), 'ot-upload-attachment-id' ), + 'std' => '', + 'type' => 'upload', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => 'ot-upload-attachment-id', + 'condition' => '', + 'operator' => 'and' ) ) ); diff --git a/option-tree/includes/ot-functions-admin.php b/option-tree/includes/ot-functions-admin.php index 78e1353..9a4c11d 100644 --- a/option-tree/includes/ot-functions-admin.php +++ b/option-tree/includes/ot-functions-admin.php @@ -88,7 +88,21 @@ function ot_register_theme_options_page() { if ( ! function_exists( 'ot_register_settings_page' ) ) { function ot_register_settings_page() { + global $ot_has_custom_theme_options; + + // Display UI Builder admin notice + if ( OT_SHOW_OPTIONS_UI == true && isset( $_REQUEST['page'] ) && $_REQUEST['page'] == 'ot-settings' && ( $ot_has_custom_theme_options == true || has_action( 'admin_init', 'custom_theme_options' ) ) ) { + + function ot_has_custom_theme_options() { + + echo '

    ' . __( 'The Theme Options UI Builder is being overridden by a custom file in your theme. Any changes you make via the UI Builder will not be saved.', 'option-tree' ) . '

    '; + + } + + add_action( 'admin_notices', 'ot_has_custom_theme_options' ); + } + // Create the filterable pages array $ot_register_pages_array = array( array( @@ -530,6 +544,21 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { $input = trim( $input ); + } else if ( 'social-links' == $type ) { + + // Loop over array and check for values, plus sanitize the text field + foreach( (array) $input as $key => $value ) { + if ( ! empty( $value ) ) { + $has_value = true; + $input[$key] = sanitize_text_field( $value ); + } + } + + // No value; set to empty + if ( ! isset( $has_value ) ) { + $input = ''; + } + } $input = apply_filters( 'ot_after_validate_setting', $input, $type, $field_id ); @@ -633,7 +662,9 @@ function ot_admin_scripts() { 'confirm' => __( 'Are you sure you want to delete this Gallery?', 'option-tree' ), 'date_current' => __( 'Today', 'option-tree' ), 'date_time_current' => __( 'Now', 'option-tree' ), - 'date_close' => __( 'Close', 'option-tree' ) + 'date_close' => __( 'Close', 'option-tree' ), + 'replace' => __( 'Featured Image', 'option-tree' ), + 'with' => __( 'Image', 'option-tree' ) ); /* localized script attached to 'option_tree' */ @@ -737,7 +768,7 @@ function ot_default_settings() { $settings_count = 0; $settings = array(); - if ( mysql_num_rows( mysql_query( "SHOW TABLES LIKE '{$table_prefix}option_tree'" ) ) == 1 && $old_settings = $wpdb->get_results( "SELECT * FROM {$table_prefix}option_tree ORDER BY item_sort ASC" ) ) { + if ( count( $wpdb->get_results( "SHOW TABLES LIKE '{$table_prefix}option_tree'" ) ) == 1 && $old_settings = $wpdb->get_results( "SELECT * FROM {$table_prefix}option_tree ORDER BY item_sort ASC" ) ) { foreach ( $old_settings as $setting ) { @@ -1543,8 +1574,6 @@ function ot_I18n_string( $string ) { )"; } - $ot_settings_id = ot_settings_id(); - $content.= " $value ) { + + foreach( $value as $ckey => $cvalue ) { + + ot_wpml_unregister_string( $current_setting['id'] . '_' . $ckey . '_' . $key ); + + } + + } } else { @@ -2035,6 +2085,12 @@ function ot_alert_message( $page = array() ) { if ( empty( $page ) ) return false; + $before = apply_filters( 'ot_before_page_messages', '', $page ); + + if ( $before ) { + return $before; + } + $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : ''; $message = isset( $_REQUEST['message'] ) ? $_REQUEST['message'] : ''; $updated = isset( $_REQUEST['settings-updated'] ) ? $_REQUEST['settings-updated'] : ''; @@ -2112,7 +2168,7 @@ function ot_alert_message( $page = array() ) { } - do_action( 'ot_custom_page_messages' ); + do_action( 'ot_custom_page_messages', $page ); if ( $updated == 'true' ) { @@ -2143,42 +2199,43 @@ function ot_alert_message( $page = array() ) { function ot_option_types_array() { return apply_filters( 'ot_option_types_array', array( - 'background' => 'Background', - 'category-checkbox' => 'Category Checkbox', - 'category-select' => 'Category Select', - 'checkbox' => 'Checkbox', - 'colorpicker' => 'Color Picker', - 'css' => 'CSS', - 'custom-post-type-checkbox' => 'Custom Post Type Checkbox', - 'custom-post-type-select' => 'Custom Post Type Select', - 'date-picker' => 'Date Picker', - 'date-time-picker' => 'Date Time Picker', - 'gallery' => 'Gallery', - 'list-item' => 'List Item', - 'measurement' => 'Measurement', - 'numeric-slider' => 'Numeric Slider', - 'on-off' => 'On/Off', - 'page-checkbox' => 'Page Checkbox', - 'page-select' => 'Page Select', - 'post-checkbox' => 'Post Checkbox', - 'post-select' => 'Post Select', - 'radio' => 'Radio', - 'radio-image' => 'Radio Image', - 'select' => 'Select', - 'sidebar-select' => 'Sidebar Select', - 'slider' => 'Slider', - 'tab' => 'Tab', - 'tag-checkbox' => 'Tag Checkbox', - 'tag-select' => 'Tag Select', - 'taxonomy-checkbox' => 'Taxonomy Checkbox', - 'taxonomy-select' => 'Taxonomy Select', - 'text' => 'Text', - 'textarea' => 'Textarea', - 'textarea-simple' => 'Textarea Simple', - 'textblock' => 'Textblock', - 'textblock-titled' => 'Textblock Titled', - 'typography' => 'Typography', - 'upload' => 'Upload' + 'background' => __('Background', 'option-tree'), + 'category-checkbox' => __('Category Checkbox', 'option-tree'), + 'category-select' => __('Category Select', 'option-tree'), + 'checkbox' => __('Checkbox', 'option-tree'), + 'colorpicker' => __('Color Picker', 'option-tree'), + 'css' => __('CSS', 'option-tree'), + 'custom-post-type-checkbox' => __('Custom Post Type Checkbox', 'option-tree'), + 'custom-post-type-select' => __('Custom Post Type Select', 'option-tree'), + 'date-picker' => __('Date Picker', 'option-tree'), + 'date-time-picker' => __('Date Time Picker', 'option-tree'), + 'gallery' => __('Gallery', 'option-tree'), + 'list-item' => __('List Item', 'option-tree'), + 'measurement' => __('Measurement', 'option-tree'), + 'numeric-slider' => __('Numeric Slider', 'option-tree'), + 'on-off' => __('On/Off', 'option-tree'), + 'page-checkbox' => __('Page Checkbox', 'option-tree'), + 'page-select' => __('Page Select', 'option-tree'), + 'post-checkbox' => __('Post Checkbox', 'option-tree'), + 'post-select' => __('Post Select', 'option-tree'), + 'radio' => __('Radio', 'option-tree'), + 'radio-image' => __('Radio Image', 'option-tree'), + 'select' => __('Select', 'option-tree'), + 'sidebar-select' => __('Sidebar Select', 'option-tree'), + 'slider' => __('Slider', 'option-tree'), + 'social-links' => __('Social Links', 'option-tree'), + 'tab' => __('Tab', 'option-tree'), + 'tag-checkbox' => __('Tag Checkbox', 'option-tree'), + 'tag-select' => __('Tag Select', 'option-tree'), + 'taxonomy-checkbox' => __('Taxonomy Checkbox', 'option-tree'), + 'taxonomy-select' => __('Taxonomy Select', 'option-tree'), + 'text' => __('Text', 'option-tree'), + 'textarea' => __('Textarea', 'option-tree'), + 'textarea-simple' => __('Textarea Simple', 'option-tree'), + 'textblock' => __('Textblock', 'option-tree'), + 'textblock-titled' => __('Textblock Titled', 'option-tree'), + 'typography' => __('Typography', 'option-tree'), + 'upload' => __('Upload', 'option-tree') ) ); } @@ -2299,7 +2356,7 @@ function ot_recognized_font_sizes( $field_id ) { $range[$k] = $v . $unit; } - return $range; + return apply_filters( 'ot_recognized_font_sizes', $range, $field_id ); } } @@ -2429,7 +2486,7 @@ function ot_recognized_letter_spacing( $field_id ) { $range[$k] = $v . $unit; } - return $range; + return apply_filters( 'ot_recognized_letter_spacing', $range, $field_id ); } } @@ -2463,7 +2520,7 @@ function ot_recognized_line_heights( $field_id ) { $range[$k] = $v . $unit; } - return $range; + return apply_filters( 'ot_recognized_line_heights', $range, $field_id ); } } @@ -2842,6 +2899,53 @@ function ot_slider_settings( $id ) { } +/** + * Default Social Links Settings array. + * + * Returns an array of the default social links settings. + * You can filter this function to change the settings + * on a per option basis. + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.4.0 + */ +if ( ! function_exists( 'ot_social_links_settings' ) ) { + + function ot_social_links_settings( $id ) { + + $settings = apply_filters( 'ot_social_links_settings', array( + array( + 'id' => 'name', + 'label' => __( 'Name', 'option-tree' ), + 'desc' => __( 'Enter the name of the social website.', 'option-tree' ), + 'std' => '', + 'type' => 'text', + 'class' => 'option-tree-setting-title' + ), + array( + 'id' => 'title', + 'label' => 'Title', + 'desc' => __( 'Enter the text shown in the title attribute of the link.', 'option-tree' ), + 'type' => 'text' + ), + array( + 'id' => 'href', + 'label' => 'Link', + 'desc' => sprintf( __( 'Enter a link to the profile or page on the social website. Remember to add the %s part to the front of the link.', 'option-tree' ), 'http://' ), + 'type' => 'text', + ) + ), $id ); + + return $settings; + + } + +} + /** * Inserts CSS with field_id markers. * @@ -3286,7 +3390,7 @@ function ot_sections_view( $name, $key, $section = array() ) { ' . __( 'Edit', 'option-tree' ) . ' - ' . __( 'Delete', 'option-tree' ) . ' + ' . __( 'Delete', 'option-tree' ) . '
    @@ -3355,7 +3459,7 @@ function ot_settings_view( $name, $key, $setting = array() ) { ' . __( 'Edit', 'option-tree' ) . ' - ' . __( 'Delete', 'option-tree' ) . ' + ' . __( 'Delete', 'option-tree' ) . '
    @@ -3518,7 +3622,7 @@ function ot_choices_view( $name, $key, $choice = array() ) { ' . __( 'Edit', 'option-tree' ) . ' - ' . __( 'Delete', 'option-tree' ) . ' + ' . __( 'Delete', 'option-tree' ) . '
    @@ -3584,7 +3688,7 @@ function ot_contextual_help_view( $name, $key, $content = array() ) { ' . __( 'Edit', 'option-tree' ) . ' - ' . __( 'Delete', 'option-tree' ) . ' + ' . __( 'Delete', 'option-tree' ) . '
    @@ -3640,10 +3744,10 @@ function ot_layout_view( $key, $data = '', $active_layout = '' ) {
    ' . ( isset( $key ) ? esc_attr( $key ) : __( 'Layout', 'option-tree' ) ) . '
    @@ -3712,7 +3816,7 @@ function ot_list_item_view( $name, $key, $list_item = array(), $post_id = 0, $ge ' . __( 'Edit', 'option-tree' ) . ' - ' . __( 'Delete', 'option-tree' ) . ' + ' . __( 'Delete', 'option-tree' ) . '
    '; @@ -3769,45 +3873,167 @@ function ot_list_item_view( $name, $key, $list_item = array(), $post_id = 0, $ge /* doing magic on the conditions so they work in a list item */ $conditionals = explode( ',', $field['condition'] ); - foreach( $conditionals as $conditions ) { - $parts = explode( ':', $conditions ); + foreach( $conditionals as $condition ) { + $parts = explode( ':', $condition ); if ( isset( $parts[0] ) ) { - $field['condition'] = str_replace( $parts[0], $name . '_' . $parts[0] . '_' . $key, $field['condition'] ); + $field['condition'] = str_replace( $condition, $name . '_' . $parts[0] . '_' . $key . ':' . $parts[1], $field['condition'] ); } } $conditions = ' data-condition="' . $field['condition'] . '"'; $conditions.= isset( $field['operator'] ) && in_array( $field['operator'], array( 'and', 'AND', 'or', 'OR' ) ) ? ' data-operator="' . $field['operator'] . '"' : ''; - } /* option label */ echo '
    '; - /* don't show title with textblocks */ - if ( $_args['type'] != 'textblock' && ! empty( $field['label'] ) ) { - echo '
    '; - echo '

    ' . esc_attr( $field['label'] ) . '

    '; - echo '
    '; + /* don't show title with textblocks */ + if ( $_args['type'] != 'textblock' && ! empty( $field['label'] ) ) { + echo '
    '; + echo '

    ' . esc_attr( $field['label'] ) . '

    '; + echo '
    '; + } + + /* only allow simple textarea inside a list-item due to known DOM issues with wp_editor() */ + if ( $_args['type'] == 'textarea' ) + $_args['type'] = 'textarea-simple'; + + /* option body, list-item is not allowed inside another list-item */ + if ( $_args['type'] !== 'list-item' && $_args['type'] !== 'slider' ) { + echo ot_display_by_type( $_args ); + } + + echo '
    '; + + } + + echo '
    '; + + echo '
    '; + + } + +} + +/** + * Helper function to display social links. + * + * This function is used in AJAX to add a new list items + * and when they have already been added and saved. + * + * @param string $name The form field name. + * @param int $key The array key for the current element. + * @param array An array of values for the current list item. + * + * @return void + * + * @access public + * @since 2.4.0 + */ +if ( ! function_exists( 'ot_social_links_view' ) ) { + + function ot_social_links_view( $name, $key, $list_item = array(), $post_id = 0, $get_option = '', $settings = array(), $type = '' ) { + + /* if no settings array load the filterable social links settings */ + if ( empty( $settings ) ) { + + $settings = ot_social_links_settings( $name ); + + } + + echo ' +
    +
    ' . ( isset( $list_item['name'] ) ? esc_attr( $list_item['name'] ) : '' ) . '
    + +
    '; + + foreach( $settings as $field ) { + + // Set field value + $field_value = isset( $list_item[$field['id']] ) ? $list_item[$field['id']] : ''; + + /* set default to standard value */ + if ( isset( $field['std'] ) ) { + $field_value = ot_filter_std_value( $field_value, $field['std'] ); } + + /* make life easier */ + $_field_name = $get_option ? $get_option . '[' . $name . ']' : $name; + + /* build the arguments array */ + $_args = array( + 'type' => $field['type'], + 'field_id' => $name . '_' . $field['id'] . '_' . $key, + 'field_name' => $_field_name . '[' . $key . '][' . $field['id'] . ']', + 'field_value' => $field_value, + 'field_desc' => isset( $field['desc'] ) ? $field['desc'] : '', + 'field_std' => isset( $field['std'] ) ? $field['std'] : '', + 'field_rows' => isset( $field['rows'] ) ? $field['rows'] : 10, + 'field_post_type' => isset( $field['post_type'] ) && ! empty( $field['post_type'] ) ? $field['post_type'] : 'post', + 'field_taxonomy' => isset( $field['taxonomy'] ) && ! empty( $field['taxonomy'] ) ? $field['taxonomy'] : 'category', + 'field_min_max_step'=> isset( $field['min_max_step'] ) && ! empty( $field['min_max_step'] ) ? $field['min_max_step'] : '0,100,1', + 'field_class' => isset( $field['class'] ) ? $field['class'] : '', + 'field_condition' => isset( $field['condition'] ) ? $field['condition'] : '', + 'field_operator' => isset( $field['operator'] ) ? $field['operator'] : 'and', + 'field_choices' => isset( $field['choices'] ) && ! empty( $field['choices'] ) ? $field['choices'] : array(), + 'field_settings' => isset( $field['settings'] ) && ! empty( $field['settings'] ) ? $field['settings'] : array(), + 'post_id' => $post_id, + 'get_option' => $get_option + ); + + $conditions = ''; - /* only allow simple textarea inside a list-item due to known DOM issues with wp_editor() */ - if ( $_args['type'] == 'textarea' ) - $_args['type'] = 'textarea-simple'; + /* setup the conditions */ + if ( isset( $field['condition'] ) && ! empty( $field['condition'] ) ) { - /* option body, list-item is not allowed inside another list-item */ - if ( $_args['type'] !== 'list-item' && $_args['type'] !== 'slider' ) { - echo ot_display_by_type( $_args ); + /* doing magic on the conditions so they work in a list item */ + $conditionals = explode( ',', $field['condition'] ); + foreach( $conditionals as $condition ) { + $parts = explode( ':', $condition ); + if ( isset( $parts[0] ) ) { + $field['condition'] = str_replace( $condition, $name . '_' . $parts[0] . '_' . $key . ':' . $parts[1], $field['condition'] ); + } + } + + $conditions = ' data-condition="' . $field['condition'] . '"'; + $conditions.= isset( $field['operator'] ) && in_array( $field['operator'], array( 'and', 'AND', 'or', 'OR' ) ) ? ' data-operator="' . $field['operator'] . '"' : ''; + } + + /* option label */ + echo '
    '; + + /* don't show title with textblocks */ + if ( $_args['type'] != 'textblock' && ! empty( $field['label'] ) ) { + echo '
    '; + echo '

    ' . esc_attr( $field['label'] ) . '

    '; + echo '
    '; + } + + /* only allow simple textarea inside a list-item due to known DOM issues with wp_editor() */ + if ( $_args['type'] == 'textarea' ) + $_args['type'] = 'textarea-simple'; + + /* option body, list-item is not allowed inside another list-item */ + if ( $_args['type'] !== 'list-item' && $_args['type'] !== 'slider' && $_args['type'] !== 'social-links' ) { + echo ot_display_by_type( $_args ); + } echo '
    '; } - echo - '
    -
    '; + echo '
    '; + + echo '

    qkMM8maC{!2>=w3V*G~T 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%0Duqe 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 diff --git a/option-tree/assets/fonts/option-tree-font.svg b/option-tree/assets/fonts/option-tree-font.svg index 3c83a6a..0bdfce2 100644 --- a/option-tree/assets/fonts/option-tree-font.svg +++ b/option-tree/assets/fonts/option-tree-font.svg @@ -3,369 +3,377 @@ Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/option-tree/assets/fonts/option-tree-font.ttf b/option-tree/assets/fonts/option-tree-font.ttf index d35efcd19e2d64d6200ef5297e11db2782825817..713b6adffec63c96e3bf51b186b6524384b74b06 100644 GIT binary patch literal 94952 zcmce<37lj{dElAx?!51-vhK{RtfRZC>&VKMx?9~XAyBo@K}+K51_71;8@j|TFgCQz zVE-f;kV@G58-o}7H)eW~L> z`h$piGw+K`Zoc~5-G6Yy$Gcn~<^2!5>7KW~je7F)E&qo+kJwg3Jrr@d@j~@l?z|v8 z|My5W@~^la{wS)w`*R`^x%|`W8&C07-=H*#8A>46REmFjV}YYQEkqm@aK480PGp>W zlmGSomr|F;FI{u#=1Z@7h$Mcj;FyJ$C6o zUHZnQOP3>;GnXruCodnmeB$!0mtS@HO_$GKen{t6PyKo2y%{&-WULJBOFxzFrvEAZ zKhpo0{)hCp(|?ox>-7JX{y)=ymHx~0x6*%+{`2&INq;l_jr7;kUkh8KEATxYR7BB& z^iZGCSDmYL7Y_RIneQ=jPkndLrPETpV@b~?q6 zac*40gGH-uA3AC+*SYJbZ2pS%HU|=vB|)c`{c3fnw0zWVAGVhl?Uw#qP$W|;t1Ih= zR#p#NYs)-4tO|#gud$`z)~LNKFKkKCQ;T+8McS`;{_O1YU(xQJmu|bJ(YWTerQW$Y z%{P+j#$;pu(8%QQYvuLoFNR+%73jYIhC6PMLX_?LjuTI&gO|oirE+5G z*m5JP{B+_iUNjl_$(W~8Da&ze%kf-CUw$i@mYT&H%SWb?)p9xJOw?#QG9ZS$kEzBS^xbUK;fkdDS;Q8_2Zt2<9~-*cnicAP{I zsE>3XOU2_d&NhP^kEhb+D*iLi`=UJX<$*u^Koz2XU~i}(NN7w#TWAgVvlEFl*IG06 zY2Par%B9tn&U(8nJvzOl_G=zJs=Hhou+f}px0^FF&31dHxfP42GqKmK9-nJAYqboY zTCLffn`_S0YUxbj-Jxtp4{ zb;s(?T@JgR?$;HclA34R%k8!Lq1KG=wWh)*NrlaKb(u87-*!g^(g2SPjRu*b+KI+) zI+%_|)0tE%BjN9_bfl>J4dV_aNQuFTKt*c){#yonQSIg`R>_# zD#=+r%6V}o7Cq8T0%Y>>lFcL0*baqAxd(iQ0i$4!ho%>nEZ?^s*W=P+hA>O5rG;dn zn2mQYh9!1#QgSY&6ZFw`WS;(E&@?>uU{U~0f5T>*`I2U26;t8YY}bv)qEXLpG*4vn zxlAUWh{Y1|OeUAlo@h2s{+j1U++U&&$y6#;EaZ>Z8-QC3SOr>R0AQnj{P@XV0(WZM zn*^r59GNk5vs}>gU}i}%TzZNeS29tKTkGZZ2@CMq@n2sBeqHbUeH>_i<@J8%Lnqy6 z;GOtTM%BIGu7{NCy3#S%Ur)zVUE6->uBaQgO7|s{O59hn;u=IE5%cb7WRYIzEUC0A z`<-$J9HHy+47IraCGT8cf7eTkZ+yd#QJ=)q)aKvck=@+P-to@Ehred3m3)>;3AF}t z8JBkC`P2zGTTmgA8h~JLd}P|mw|8wut=Q5N(V!PSbZVu zMH7j<{v;C7n3YSVV=+Gfa_G7b{t}wo29?lE z-y2gPlOsyzF6?v)9m=}`}^A{{{< zdcrVPLe_<1w)eZ~?ss$FlsizUEulO56x)5JBD=45Uu|!uV;F zrF|Ml_u4m@H{V4|%lowyZu82H+BfCCH=ld`nGhXg4_}-4G zL3rBgUBW5B?({EBBGp(o_rp{F@%NN^cUgiXg;~6EtiOv<*6^%Z5)JtwOS0c6@0(H& z)86dQI817j?(BX$?4CU5?w<5lrr4X~pLGbX=u{P{N9NR5)sI9*3~%AJJQy8#3ANrS zO(-ZQM>vYF2LC-s#Dfn8!Hk@5|IHwt;HSDe9{sZ;svM_843^tL;6h2VQb{`^4XSmZA1WQKnT2t@D*F{2TCz>i}} z^9bedm7Q-QHlBbT%{i8R!f>W1kkNAd;8?A+LRHm6iBJ3clydvJB> z;8dXOL^72LN@J7L<0GT_VhrXu87t;TN5-co$4Wsal}y+wm^!$$y7QS#OgQ&gh97aI z;xTk#B0q?nH_TV=k1_XU3--S$lAYnWMY1ytgy!b<-rQi!J7(lMK)@y=DCh9*CgZve zM1-ev&zShcP&p)Qo;AgWr;Q8dGCZB@K54F%Oclz1qdYsHNauZ`P~=GlK^pQ9uYF>PTUL5*PgH z7tC{+WU5&zPK*~zrQ-NRv9txuw_Pt*u&tn2KxxuSCSAu0j?*X=q~dcHa!4a?S!kzF z4YipelEd-i1mdHy)ubbC>E;H54HPdr?{z;$fn;ks^^+5T1Q)b;Pf)aDNtb4v~ zml-I3#xI+4wVp}xw6lYpLiNlTLHcBL7y^x@!;=8CAnovUYJiyp&>Bxg(EnNLNl^n@ zkDX6h)*0LSM-tcI$)C(8lcNR-Us`aP^=ISpgj0Aa#i{58+Y$8#J^F843(--};WPbXFV9n`*0RUE*8;uu!Udsg%!9L@r%Lf>(}mb1p}< znDAs={UCOTH`&kv(1nl8@D=q)q#QZkrv~kM(NM-i?L+MjqJIb27gZKo9+?VlqkWq| zs0?w!n2_-Tnm}Z$&5cc@pbL+l$k8O*{@?$js8MrhdwwsPOhlg_B8KC(_1OJLf9K92 z|J|?DPyB>Zg`%yj3l~UQq_^!~^!+1;%?P}0jcY0_b;h{BJdQ)M<1F|Z@P1P@)jJYCo$#>QeuL$_%n8(o;U)ZJ_Y3;A@}sfO##71Y zOQWbYn>#RQ_jVsqk-&brZNDM*R3v2Y&co&+>c1>VrV?SD1h%^t(w@ zR--2D5g?FdV-%qV!5Ae*QDGBtLevK%psC}%#bTqrFyE*b`P3Wp3-v~^cw&5P zW%cM0lbiY-Fw!v(V0YS#uMbc@pJ}81 zG>%v@eRHFGXiUI`x4YUbH{^wRhM1nI0%HH3~luOx}_j7gD z3C??@Iv;i2#0GP0Loy~@QOGOBbpSq4KHwZRKTt^N2j0oEu_%v#@x;rM0{OFGg!HTi z`bU%geV_&BK1>8k-RFCPcswWiUN{TJ-pn#@jsUQJGbJpbi=47Gt~z zsD;YT)I|@@gk+ZXXlD4{Be(r4)z8GyIb2zQF+pBA>wIx;ey|PzaEw6U`KDulPULV4ks_}BAjy!$@ zn)33|m;bVcu+O9=gq)kf^toovJ54+yi!qgCp20~yE1R2V=tl6lL zmDU4AKeTi&kkbsbB$OKIKqV`p&T2CyBEEFgERirgkswd|LN@t`2V z7O*Om$}j8VnJtl>#wJB}`fr+`cAxAsjmY4Q)>^ySQYz3lBOQb-M6FKkf}!Se>a5N1 zS?fULbzLw#YI(gJxq-SA{2@6-OPP9#Xut?3Ae9vk#7rgODMHE8U`caTJd=aoNXO;T zIiPS?7aTh{b|9C_rjmtxv2!yR*~LL2dtG~Cq}IUfozEqci3D@N#WEJ_{*;y?L~c+& zn8^1u4cQ&fwO!;oH}J63Dz(5ABF`TMfgPQKHbgTr<6P{ZupT_1i5fo|n}q1!3TX>$ zP#>bN1NniD1}PXNjKQ77f)=D#hZv0kUkzPevU;L;-{6NeH0!qge4z?x4Z%(!n~mk8 zBh~qZr9<-z)oM_PX0wReP9AO}JXP}rukB^?`N_!x2M#SAI50Vx&wp)cJ{7B=;xQCB z)NNt8&Dyomg=Vu{DwUhfh0&Uw#g@A}Q950TrRJ9wW;K4*ilbRzPWQ=TWJldEdRQ|> z;i-fiXv}&9MXUf^aR&oPX5ibIBh>qWJp%Y?E% zL#YF9Of#hdLSe7>Xsf*Z>0ZB?NEB=V9|tQkjJMM}Qys@HBoh19@1w@cFmnIeXBdylLfmUk-mkF-@7z1vN zbUN2YL@sD*d%S}^E)~f~Do6*@kruM}RoJqDy-u;!?zD@3yR3hyPPKih2b*=aPoPn_ekv$?sky}i|F&`al<&CO>1uYOj2M)CJq7&vhwG&KFn zHZ3Fh96_IaedLr#K%IJaHM{!HcgXRHMr+aNLH=^NMl{MLe;{kQ)PJ>HZoO8MWVsw& z-`)Iv{%NYFfu8zRXkbR(arV>0=QIE?MbrJc? zvnIm2;NkII)TV6eN$mxLiH3Hj^u@XSMcL;>YdA{Pe2F1%N8ipHrI~5A8lyt z_hJDgu-7_UTBrV$wrxg!Eb`O*F8Q|5Kk>3dWi``T>&&#}sF5(owV|uwC-Pg{CHg7J z0W$K9a!Z%0{Y4Nngz-b^(k_+Vo_+?QuCKK5LY>XfJ@u8icZ-`%7rOs%IbZU9U!*vh z_s~XheuUzqjPzY@*&bR;Uyuay2Wm@{qjI)zutEfns<^#VNKjfd9;9EB$WkZZ*^f8yla&%AGj4oih@?;Y{wO*Q7|YFY@!=awhW;qaR%eFj;L- zl+h*O^CbGU<;b6iDtMDRBpObtyZR|D}1IeVno59 z(%m$C_ldNdPNlbSJ@is1F5+0(H@m7DsZAb^_rjw;6)|~~oLebz%S*Mo+r}Z&1{PyKJ9?3HO`eL8K;X!S~KeaWf=P24Y) z4>4s+WzrOV;vp!V_84pCE>bK$t=)TnW)vu z>8mr!g0`c%vy!#*(E@U<=an5x3^kXR`I2}4^_j7m z?0CMCV)7|3&MebYIf?5tGtF_QPUep0yeK+YUZsMlOFDp5@U^ku6!Bf#1WM@w8Ko8| zM#Cq9lvi%)yK)bR6@5n$0ZWqUFY4bl{cNVyK5pT>z0AJ`*09s`WD`?d+5F-NdS?cH ztdyH6j|gE&rmLl8S}T~uP3BfBHKj(%E6IwOMXZln@t~MO5zKQ(IZno}Zk)q-irLC{ zOO=T@ZhHw4Q-WAFI=x)0BDna;LZQ^CPF_{MCVKrGeg()MQ+a5!J-2+b6a0~t&n-?C zi*_LoGs*Z><1agST@pe-rw2h) z;D)ZJwWh&c+WL;jzh>SD1wu=HM3uygn;BHDm&cS>?5X#lb{cM`wOn45XS8)%w^+kO zktaF@)~F7|-+bGEl=;roHKLTB;w$J87C{jCu=?7TGMJA>v5VF>zgkXv>od;uvD>4x zN!f8BeK0OQI9kkcwjGV{#nNJJHqB(>DmUW`=<(AKQad&k z&t@oqNhHp<2}-yeM@Fvue$;I;vx15$#Q@IU4LiyWwQW`u2$>z98O^e$KqV`F9EOXo zpbt>*({FK3>{Me3g`LhR17;v;GXL~ zf=IR)@COZT%5UG7-`yQOW|r0gzB%&9V9Zu~L*}m*wZ6n>sQ7BNEyJaUtXOXGjN#Ix zQ-%%A%3#RWS{>1>0OadpNno^h4HrWuHb#&r79)?cJ5z!MguN5(G{yN-lD`~|)}O`1 z45X4~nSrwL#l^{-#xjKI)JP>U64&gEveI<0>qqUF3=*u&L^;1)I*<@epr4+TLimt1 zF`k~PliM&Ju1b;omr;3pOWHz$n4yqbml$^r+Gc_P!kyh@17wGRg=L8{aRec z&2aZFomw<@^?@zx=~G$}gw}4u(0=s15tFh!y96| zI)gK-fG|_2u1!{A#5yOxoDXE7 z;{JWmTNfjX0!$xZE8!C;9DH>je1>Y%5IOzJ^uTj%zt$nQ_P~I?xffdYO?hSe_kw_2 zGtj#A;lOu+1Zlkz$oQ9O{&ODxeOvYYwtsj|Nc*4Z`d_I1|3BL&hE1hCfus0+S~51k zh4qK->O4G8cTessQ|!&L_xkRh*O~}}wtY@)Pkh3=o4f0>vpccc z*nR!PGiIhNq3lkWNc-;@{GDfI-Z5mr*FkxWkOcV)&CuZL@3Vt7n1>Q0gJxW##VX|3 zr)~a33|3pxFQIKlg@%=`IAw5Og`IH4^>BK1;)3)W#W~h(Fr&_%zIx`4eNKHN>yk9{ zt1+`Nt^P~&&E2LI(sbz}^^xzlZ=TdWZQJ6YNar~B?}mi$u4{~q1v}DKq=9UvMQHRC zMmYeFt2;+aS7SZPf)$CQiFV&wsZL)ErRV8t<*hEuUgM%Fv5U%Ap)3*T%jf|lG z{8fD4N|BnZf@MveUtBG&=GPF@5k(5CEAX0a_}F?|yj~D840yeM(b+)pu?(cgC*DMk+e%X(M_CtrkAv?q$yZ&Cs?uYm_A zqKfy2l=Cwqr)vR);9nAsE32R*E0KE`;(f4=+|url!^;^BFRcX+19itRfT9u$1;rk0 z>>hpr1mkyRCZqV94q7ixets!qTa$yfi+aNKp0}wn+v3@&>7+vVLf4E969-P922C)2 zHW)B6nL>VKWPDL$#!c7#-%brW1UeR=DjMpKV`!><^h@3cH$BTu;6?B%R*O5X%R=;2 zKA%Y?@a0d$Sw|X;!u7&G2u`IQzT5A!ZEQ;~+P}{oD_-9_t%ss^ z_euy8sCxDQ1w;SK`c^chk(biC0gbMQaRxNe4lx_UsoepFo1&NCXtj60ZQ3Uv z$2{!|UkUNnQMcDLt_-xO2bRy4hiu@W-0{O)SiDj5ThAy0Y zEcKMs@1yJBF0ow@Omi4%!*Nv+^b$k3->iD>{lZAek_P6U!Y=(; ztS6DC+wXQ)d!;|veZSA#q!R)4Km0>zhOaKjeEmb#&FlPzCJSwpbqR)xYWXwa=yinf z6q_=%x?2ZBYJBy=<-W4`_o)aFGjy#k^c*HpTc{5MPjtLE>UQ6_-}q{9(g#zQuqGm? z>z8)4vPL@ycF!5$QS#cSd(EJ{&zUjk&^4_*#zgIIY0kbVM#YD|;Irmr4`hg%>kA(0 zFa>&JRMp4Bu@46Vlh@Ed?1Ihx-c{CyOzBT;Q)@{dw>mvlpSMp1q(1w=rmcFgxnH$p z`t-VbXaJZ#ebC%Jcdw|c9`jvw+*3DySal^6S#-U->+*DU=chY*Tsw0>V>NKP z7>7Hq9F0^n1@8xEz!T?-f}XzMS(e{DBVj9es3W{p@3lpcGyoo=>aTo09{;>BQRuoKd@#<5-y{0Y=VP&wxBzh5JU8$) zMY&g-azlI{&g@+;Vg2amC3DFXTM{pV&&Quk^D^^}2OkJa{d|mBtm&ljLp>loV^fTO z3&U{?gkuPqrv6%lV;B_Rp`VtWRcEAMLYym_NP2JR(mlJMm-$5*-cXx0l(?5Sw?EfA zj8hKw>p!UTv)8j1@qqDr`g#q>$g|eN^dqhk^pH4Ah_EAu6sEs8+ldbdXhCEju{!}B z&(M!IxNB>!J0c*thIK07=itujnz?h&e!ck--|IaetQ3jkGMDNS67AW6G`5FQa3elU+0lBSlYL8h7cLN z{X!FGM?>tM5$B#UUg@qDo>ud7y1IRM7TDM&`sipvhEpM8e<`_uN!2ofd5qNjxuxt2c3Wc)qz`vri9|hqB|bY6*|EW4=44?7Rq4 z(YVj@r))MKGqN`B_hQ%LkspgEI{S7{XgikvnZc*(_Wq18^Lo%rtUcS+4@C01f)Rd( z?r1{S@pA92nHmk(;h`n8o7^61+4jCoU!+M}q64#?gZw;8pDl)ZuZTPwT;IEYI|uXr zXyjeAQeZGt!U(Y&5|NOLd>MR=-xsvsfDCP@tN}7Q+AOo67ora3lVXNSm4rk2;54Xvs2Zol1i#{^r>-@=tU?z*!BZO^l;J^Z_O!4kQ52&+CST;$x%qCFWUz?WM!U3Fy_ zsw=zAbSL~kuf3l|e^rfK4Lq#1{BTrhiQ9pah3yO1tNM+}y|TZ+e{PHg{;ZK1o0~fju910SvGpg_M6y^M8=JV}k4K7y zMq^>IbqA~YB^ZFLr(rGs!MUNF(0%x>+*5yzE&bmTaUrzGwnA>JrNy;g01nN8X;DLM zgS9W-9`Z#){MhXm)3NAIQ+rX~5yc&@D69WJC(eiePTVfx&Qgin#P2dI{4MXj5Wd$i zcOhRkggkb$XczjN-|b&Wp})A!cv1awDnVaMz=qy9NPlX%`(i|5m&*HO+8k3YPrSK$ zUpUc1QKp=JIs|@Z5vcZ~MR)OtOegQeXo*h-FEt^c;=zHuEq*(eYNQt*KLI`rNUE6G zTQYgv;0DoHF(FyCktn7U84UN1Ege;aR~ZW(H}xRQwbB&N<XV1H+DA=pqS5{}%b&JJ-|e_j1LF=eFAQr%~$)3de7ETxdQI`*V( zzj7|DiA!VV`?ZoP&fO_BnY1tJ=FPp*<~OaQ$+T3|OOH90x#;)7JjIeo!-w&WKLC7~ z4j$^}p*c4MnVR=Q!NWpx{yX?h-fLVbxlBk1Cb?A6-mjr_?;tH{-od}%m`H>bo~nud z!n}L0flt4q`=}{gNwg_bYWP-Nij-65@LA^6N#+!o5-1m)l4zE+>blbcuxEt)qE8a& zhWv^$K`5z)55El65h#}x-|7=dMA5vTNv3WDDaA64w8SmBk${lgwcW%`HziyfDVrIf z69`h#36dG^+D`JOU&dc4HGz9iu<#NyA78Q%I8Jhc_n=k}`G+bb?H|-5N&@1wbDk>6k2VnoP!;K(efb4gG zl0;A!D10Ne9p$onk&BSGeorlz&*y66xkfWPVSc}dHox@uevj2HENi*E7}W&?qvVO= zah5nG#yJ6P?%xa6lg0bFd~JkvK!*;M^7)ZkK1a`K++}RyuW~%Dik)@8AV6%sMZH{qd2W7cvM#6s z{w108S~JZxvR2;2MWU3=0 z)sd>WX+{GTk1HOdbhA_r{HRnaU9Qfsh)xu~zK4_QbS9+{|KX9b<4Xr7VJQ=~IKajN zf{fz3Cd?{sg2Jd028gwXcobSe+{&b;$0mxEOb%0|IF#YZ86^sU!tU#+L@I}SYE0`` zh>^90uD%et2~*Y(xCnfR@~LR+$s!X*zI1zinZ7jN;r?R))>^B}VYiV{NkkRgGmO)K zxM^(ocrOwJHJOO}eqL2syAt}SV%g3lBYwko`Vk3%e>UpQ8{*-PV8L4yRMU`BZWuSPXcfC)GddIWec{;BzJoHtT2TNlkl^ zO(ph;?mHz)iJ|ycuxhq*jV2E!@`*#VYBz|+x~F2;3uCbzxsac?34vf5g_(coU+G3T z@6$}8rQ+SqT(}q`ms49XkytZ<1K|gn>I3*Vw7Jl5(>0ef|SG8!u`9<{^3)H9cR?CZ&;VuRijq=)U7z+qJ&Wg50;`)SxP9@8Xco=2THehJ>f|r z{@$n~R&T)pu0r;-wXn7OS6MFgy}_^jL)i8c>SEBCT&Y#s6Q|Y~n?rTX@H%7})ME4W z>ATLJy{mWp@|iQ6XU{%y`t;_RGj}s$L(7lZwQ>4Xo@r zjP0A4?FGvrmc$~b`P_Ym&$-)f`||12U)D!%{QYg3)3C$S-|Gao-FE-(+xc!7r&Vnt zTa6mC_-OCUDn7#>3C{R3+{G=CpNBsRiKn1<&G3bqs}+`$g$Ux9ny%|_j|k{96xh&9 zVNC>g7&C2lkjqHthKdXycfCd<6G14uzQZN{R<^|YF7f7o2*^?;7?Kk=98}kuU@|rV z_W~$1A`+|dFi89G9%RA#CuAm`5D!5ju-IYp4Tz2qY*uaH5rD`WP2f4f>hNCCJSUX4 zJjbC1lB=KRviV*)>h#DOBrFyaWKY?mU_9{``VH`c5NIg0@C`T_)K(#CqKkEPD*Fs_ zTcnrL!J#J_O=c%qjGxUW;`oWN7)9L{Ff*N_Ht&tPvWGF`v=$ny)ut8Pr?P!Gewh_gDze$1tCHG*po zj*JwF)6<8R)}DXl>iYD~%G`l63ux@s91^T!u{scb1146uAABUD2u_J;qB_%DXiiU! zlrw}iERW1BEX({K@aOBy^;c2%Vb;74d!ivV&?QT*WI>F42ak*UI-X2PS-YT1n3C;L zVz(T>W_4wBlu;3Pbx~-;ka!F-d`J{9fdiHpX5F1IMR-z85{EwB^8Cr>Rf~%wd=?k4 z6743*WZGg=rtyrr$NUcOZx3bLU5JRg;Olhc`RGpW6x&>1mtkbyfkuPchYFJiAM9yL z#ANol_<5}5mgR-hKxV|#Lu;kL z7_ggySYgh>1&d1DQoG*<0OfvDE5w(TyY$`FTAaK1+yTfEf0F%6cFzFc^1EX-s z_&iPtjCN#xg>$F8E|h>9!W?RriHTG+Uc0gYmy3e07gIqu<1IG+}U8Os%YV=i!QaRVXD8zuD#H#EN)c-Y45~nr$ny?Zd<+Wdo zM&Fu@6CQ|(8}s9DPDjzKD$5OCbC7UCiPBrZYPQPOa)gLdxk8m5<;WCcj^&=(iClzV zl-2YM^McB124N4NXZK8si-ImRdcdzp`yb)FBnw-NAJT@aLp2DobSxIDNS@-~7ZkSAXH;QkXb>_y``q4(? z(SwtGWLFTj_t*TVN9?KEaeQClCLdc_ zUz8|u2M!!u8XKQ^ZH;Lm@;FKH2oq0M(bK36Q&b}1nZh}m-xqaC*EK~Z5-`<|&5VyN zE*>}_A+Zl> zDVV;moe`w6D+M7*A+pd2LH+#Xi?k~z?$S*Xy;Sanlp3uCPebE8Y7Xg1O~R37CPb}` z7~GMf=u$2Qh4NI0nO3o~y#0_Vli-ju+7d*ymbDT^GpMX^J!CjmVsh}+nkLwW6>2C& zW_3+XeW`$HBPCJ_mEn3&N=d4uOIhiZP*$!EN>PzvIF~&-j9A%cBMcL94xD&^-N`bz zE@!i7DJSDHN&Gfy1zb0#h5ebcY&4dhv!Iy>NggA)pUuK#Oc9#^7GE^lel#)7e847- zY~pyNv#jj}8$w)Hj4qNs=BRkgt}CEzVS!N>Z76H0W2{StT}daDHLcRF!?W)p(-pz2 znR2K_u`#41$RE+E6)V*>--B_~Jo({O0ss)qAeksgL;ajYNv`?UWD;#F5{z}g@<-%X z%V()}Ea?&sK^C#EnQVz9*;u4)vU&ETUOP;-gQ}N}rPr~9ivWrb@BcK1#1x$fEW%?a z@XS}zWR(XBybAql|+i?JVZ7sTHcfdUQjb(65=?B_q9$y><4{GPUJsc zfa^BeU*;7Ohki*RAtg+sK^A?WrgfoQDEf0fDL^bTCj`Gh$K=~t?yN5#;$H*3K-pj} z80DW)_h|qYAcjvbNbHJYnSd4bL#*AGMfS`_3e~t>Ln_#eBx81 zou*1AD>yj~Lz z?%>-gky_?6N1ab7B9u@tfo%FEn#7hT2%+V3Fj$~G7$7v$QVuCQauUBpW1)m;R2!(- z?@nRCuMy9~b3xaz^fvlv+D)IJY7lKJt6s!u%R1VucP!Bzrs;WrvzfADSyiphvY%Y7 zKINS@)a>TiST==;+4U0fbS0lBOv>t5sdPmU;z#v-OOKD{h=opg`CP7$@beb2$6Qv~ z0Pvz4Ap92nEnzcceyBq{iKEt!C5s+DcdVUIl~OcbEV%w?xm6(+E9Q`-u;k3_&uae% z#y=G$>Qn(433Es>KRq(0Lo@>S$ZY5p#djz}3{#0Zv3JZ|8MEQ;*MmTh%a{oouY2^q z9yPl6im%Bz)7Ew;tqM0b1z&Q>nDxGU$F3}+<%^7~y#%fpIEhng+iB6`TB%gE**q%S z*fC04KQ4&b3?bvdIA=VzT7%W8;i64cHu-!7)K9D=(Lmjas>VTFU?D_n6g(mwGkTyp!T<^y3OqX( z#0$AxCIAQ3a--u|enG@)tPJKFuhw(LfFVi*>10yWTFG()!&OX=qX=Aaw)5juD$m%( zao5k4qw#`>k&I(9@+7*+0^^r8J=^m}VE?<$llM^rCVg+iJN4!6eb)h6Sd^9f!Pm-? zuEP6bQcNEYZo`khjG_e^^j8>6^A&Ws_n!E}GAs3pJS|Q2lI&u(!a1pBKDEOD#!|^t zGMysertBam&XIl$FU%}E%JG0%>3Qvsf4tq4odKVH|3I}|&gIY=`Ve6hm{40nm<%rx$7Yr%Yh9C4jGM86j zT!7$0IaE_g7U{b%qv;t@^lSq!_E{s>oE5Y$mqrQwGI$O_)=~GP+Ak#ZB{{Eg*hk$H z3Z_$NfI{|=6{_$V;VosskITMnuFSs-o{XDvTEo&fPlzgq|7yf!o?JJ@_@7imhFY%c`R=_x?Ph49hdQ(wdtJJmZ zixDKJetfUY^n&00UFC$klZsnay8A!ga-dwA8q0tBp16yW`rr?#@hc=LJyzf`iC3Ew zOO!TR2*_%EXkT_(05^iLu;+w|H)`M3)ID^{V0;O?Dm?4`bfuAuIX*_my*nl25?IBz z(Q~Eps9_kl4fi-&E`2Ms--`b%V{$jC9)LIp50bY&I{FA^gpkvW#UB|RgXkXe ztJ~l!M7kTSZ4YJRGmcl4K5vYlutGdN6+`_O5W-ZyM;v=&1#xg(6-8 zh4mUNHWv0hZnM%4regT9@J*)yWYJUhW{1|yeAK-g;F6Ga8vdQLW(!mHr_gs~PB=2@ z(BJGkG4AfoCt=W~v4i;}Dnm2zl*Kz}YG3!cP2}rr~P}g#N_x`fylFn`?oQU7r+gtaV+`z;?WvwV}o02M;C)irQB$M=7l2Gn;~(7B5RaJ2eIBYp<{oW^(fL8BX~+3z`A-(}V19kO|~6+kH~`<7k?NELxC}&s#GR6$#uK#)J6Plrtc<0j zVg;>M_mGtdtEN@Lyh59}Jc7~jjTMNri!34K_v=b$RHtM<8Je`iI(V@qoY3+04e8Np z4LwU%_ueq*u)idXz-giTS4XoPEwQZ($hXkqp5cWsmKtdY>I0GN4*AH0>1{Rg!yeqp zMvh>KKg`rQ%N`?SlhtGFG2%wg3ynS>IAVX%6dKeRdUG0yUNO8Ed$gDHq@pxjDKf|2PD z@c7?|I0%nQ=rDp0CcQZFt_Q0RW1mSCr!c2A66JE-Pb3l8z{{=^OHPc>wpwawX|d5r z_M-B10yDIKN>0kZm|LUv2zU@ekVTDK7|S z?^ilgzS42SUl|ekN;meuCJr>d+74b~m$LxYS0eFD9CR5PcLyFmaFFt;7_M-0?1PUQCJi z9CMy@DwZm@T8+}E%~o6v)7cM3YGcR`JS~V}pR&b-?=bs$M&Mg{DOGBXj+RJ7IZ`xA zU@45ZA$t%?F7#2L~g#C`#5H!zhvJn~Lu4@Iecy1=zt-JktH z^=;}0nxapC`T(|47egC=F!G+>yvD36pk$`9%*wsr9$;zp$I#PWK)_w|Q^2YRfc@$J zG+WPaB3{CmGEfXJL`I_S$~f~sS}dUT)3ea?kiM97GPrtXlbV@=kQN5X6wt|`5Et(U z3)m1~%oI^}U175M2@02;>vdVO7mdtuUXm#kM`iBGzv#X_DTOJHXrt#2I(B{(iy6$< zqMorpF4oe)147G~3lxGzB%S)&KB58hIEl^mOYosb=z9WP_U5BTg)#%BOT#nEmC9Vw z KmBIo!$a$W1y3LQHFO*F`L_Jzg81-ssPWl$hzOd)Cm-@CtURElnc|K z&D>OSN__Q?DGcEdqp4>J-O$8E{7pq3yKZ)x!)I#zf+>)`zSwC7h;Gn~3ES`HiWAeb z3s^c#G)^Ztdbl$;TdVL|H<(2&Nt&_Awa#_d<6*7G%*e>X=dQEz;uU6o_LwsbC9>lY&WN*8<3#sxLpqF+6P3FQc*W4nkiHrwI34*=LjyCYO>SFB*Qdt z2#|sMdG(@$;C$!nPzao4dL!%}cA27IXDajSyeaI;x^%)(`b>e+4kjwg1uPz#XotQ`Az{~IxCATA8q+{j^ zLm|0+AHxr4wbS$L(OUq&<1G@zISSWevqKMDOr<(*>M(5J}10TwZP(kO|C3xZmfCAd^o}}}o+RLGJy8bJ z#n?!tZ~oTd-4bA_==_#?>r%OL=4`pLq&|VE^Ss_ew}=y5e0_AZHhKtNg*aD%b*RSG zdK4O;NM<;?1>pys+f@7HbuT!@D!CV2ce1Te1)!z|f@E)8-IE8ezxIWTV>ReCK!nID zXx*!gExz#D>kmS6z>a9ZKNHyire(g$f;zoQig4UwarQk~A|=P(8Yu=)ub0wGrD&z7 zm4&>>Q7>37`Re`_Lzi4jIWeE3MR4GNp7E1$C(%KTY-KtzqBzaX`Rvr&$yi9porHso z-C`^Bq?KArB1LmV1G%#&7Y%l6e)OIhjbeJrAtX^B_buI{J z?l6sU!oiKEPz(x%XtV$vjF#7#3u5H5+&h79%!lKLtfRdKQ1w8rm`Y-StkhWqA4Tzm z4bpj7Y0!=~kqFr3(=4qn&Xv%P6vZUnH*vuk$bvBR7`9tV`SBzLX>?r3HSn90{m4Qc zogSl`SReLpfJxNYJ#KrtJslDf894nFe!R#2XqHPZj)yUBJd4pFjH&|b#^%jWFdC;Jd z3FI|0-W%I6Q$Bv*QipQRBdEKumat+$G*8rfWYhq`T~yrYAN@iK{tUC4AFU)Pm%Vz7 zio-Z!UO;Oe%N9zdS*tkid6^slMn$rPdOi=k$_HPWbWwy^En5m#OW88Tm}lBvDY#S5 zvn#w`I-pUR9dhLB`MtR|W~40rq(82re>Dq^#d@Xf1)!sFcJ%;Z?>XdA^QGQAX;h5_qG9>cRpvATV<#LeOmPR)VSrUjvK}0Rn zbR_6v#>3f~kL%|1^+HzsSBj-v#`DHXv*of`4yV;kuomzbe}*r;t$`n7HVQ}gPHhFo zjCcX{AJ7ASPsK}a0WbYhK9(y5=;B64#%k4OXEFC8ZIc$GBk@*6*b_)20-BYL+dekw z0IPGnUO~g?{SY2rSR;!QOCSe!+b)l^hQ{Xw==^_{Ii{x*mM=}p`Y6vAUm*RJN!3?^ z^e&LXxM%L`V_TM-^(LgAU1Cda$(|0_prve?SI36^zIrHe_#Cp|Oe}2}LYE~SyN#+! zVB4~Q>=cq`53u#}0i+KN*s)Zm2i9H;ur>~$J&mCNb7>6i06R5{A6=%1yG01haWA8R zS*DbT)&k6C3S6v=;!9R!iVGKkq+_Wf3R4+<{b6+<=4_NLj{+6sdSy%-yzz3WKGBCV z#(ZbCI-;`B@$nL$@gMTamAcGlRKzqVmV>7erJY9D#MEW_0cnB>gcl#^B${aHd-0=$ zNTHbM2R&jK;3MUpL2h)p>GYnQXEa!527G8ej01F^>)s~;bchYK{vpw^zB3I z9yOv`_w66_h_F+`6%_~Ibq`3=t?>5^db78$rOqw*B2&c<1_+q~5OtBsz$h?7&$OxU zJy&*@u7&B#eIqqJL8V2_Fa7LQ1!c59)OTTjxFgJ8&52siu$S+CZ4fXKM61c&7z^I_ z!p$@Fdw;0+^q_R_zHOl6djJLS?*X=b`(5*ATK`e8-e&ziIu(%*w61&)G?bzG^%XHb z8eXbA%`eC~rXe7`fV&~vcbJ8}(%?2!yoFh^t`XYuOx;^P1ak{ks>`lE>o66oP$NkQ z<abAF0N45&Q)d7)s+yQc=b*-KYruW}WqV$>1@WWveT^bA{3=u&m!J zHK1Pljnen#1*`!oEfXo02I&_`xvf%N8X(xRvnHCZmdE}~yZ~C(LE%NEs1CO&1u&wyl0szcc!%#ZB>5qzdB%CxGGLBAF9(TJm2_=l}5K-c7b9aC&{kc%(1Qu z)hXfem(2q}0RZE+eQc3CK0=}r!f&26}d5&4qWmqANk1A#8 zK3`@l9qv+sX56Wf<_=JVt=D;t=+x@?v+--j_o2HQa;+_kfTlo74jiUa+^}fj6$}b8Zw3Amo1%QKD1L5bYek)jn}WBeBo1#RRz)` zKjfVppo5S)%9D3U$x^&2R`OeHiX@a$UMmlX&CCgtp?FoH03;=4iAi(5YU)Nsh#M@K zOb$81Iz~yTn<=@a?dHIyU;NY`(o5OY&QM%aoNlXdpX8I;%HE=qTt5}wSgWZ;Tn=vv zQJ3D(Rn}#){8yf#fR%#HTXb@MqRbTUFwEJ#dPs>ezx8%g@<2b7+a{+@s9%A7h(e{;_YJ}EQ&J77 z79YKCkA+nXuX&U1SSi|k`frsxlo;MOw{>qwDfA0(*S%x1A-n-h!f?_eN+zXrHXjzd zOQ#4MqZPE$bHdNy!bUlCM)+>s{~8Q=s$VX!B{?aX58W;uMDg6SR2dg;xkQ7&^pF?v zT5TP}ynx)PlTtJ~L!RgaQkL=()Kl6)UTFnCHFt%;45v&A^T%Uy${n&wQn@Yd4V<3c z!xTa3x_MlQo=u9742*I(2?S}BBvk$>0Mn@d0+*;jq@Jf4D=JtMGo+u z`lepzmWfPik20`vpDuw8+rx3W1<#5C*pOmDpdmBKLakz1@T~D)SH6D-u zheWY7`Wt?7dTP$>8=lSOu=(EJv5Li9mde_@4D#>%?Rb1bR)zkDQG$#7NIXANshG_R z5tZ?Twhx_{z_mFRgIkt07ZDRz#jLxpqfo-NV!`k-=4D=)u=D=JM&)s!80&#@i=gX3ppTi!>2F?ND#!ZFjkvi{_&CJM6r?m`X( zs!5?F@~I5KeyKN_&8=qhkw)W5%m<dre8~0@(u@ zD;$o5Y}BdCHSQYh(HZ(`5SUhsU8@~-#{dv^hZcY^7q_>z)CP*x?pZXe;+c1rW<9oZ z>eNm*!tJ|IX+DZa(p@}Nw14}4<4Sq|LAr`=I@oADu(^quxVIH2#$#zSAI%@$$eG1L zFa&1fww9;0lc4TU_%@k7HR_1@x1|h5%U0WX7LKKUeqMefK=tF2;yx z*6&TS)!gjeubpQVX&iAwh7kqH?CV}PE4D0|z6|hvY%>|mzxM9gnCB$lYnXE^=uthkq^q8-)~?L>;KJ3AXW7kQud+V8D+Fmn(l zOSn~+=@~lb$#m>}O&ZuGrnG!}*TOh4RyrQDa5>?W)~h3g_uO@30U1cxval3b&K7Um zmFyQ5$6DBM>f&=oIMuvWRx7N4_=o8tYC-6R>=GMGrL#8vz6sXM7V;QlqcK~17K`sS zcuRGkF#2z^LC8hcq4n3KUC3lAGvkY8mCsXtJcgla*E%6pk0(lZd-90|v(ulMmVL(w zIh4v~3CDvuQ!Lg9R6c*m@u*g?Vw$HJb z&La8U5+u4S7t;o*p=Kbz1pb`!Ws07z^D=!d&sQo(%k{dv?WpnN z)b?EFgx;q>3@>KsB;c#nw+6oTkuDJkx0+Lv2fG(B!4`^BitS?-iS1RWG1l>BrLx5^ zLtC1Y6Y0QZn-z?UqUCDWuVxJ6JU zW&%*m5>JZi(^#-3y4&NpkUbRYR>RQdxm#}j;!R%jnkt(@qcP9czWG)d381pKHG&SA z_2$A4s~-t|RK1%z^wy!ux_!X{@4e=1z<7 zGa<+p;VujZHl+W&W6QUK8GH-f->`b{U{ zIpfutg+?`*h5@py$=`tiv}OW=$NyqF>Q$=a_{@4iiGV$^atXslqA)g6@q$#0TPvgD z|5%Yw9hU@&ICi6e?g zdF>YN{^gGNGz%Rt8;o?^Z0~wXeQU^d;iLS9)V^J|wU*#@h3vf_z2lDUJMK7qM)t*i z$Cj`z*>n877iL3lbuTcpIiKcV@1^~ADIkcyGI8w1FW!9di$C}Bd!?Z54Wgn2f2lU~ z1+Xi;ic$|_W4wXcL*2xzsHaT_5Hb24xziFL63kcz%Cus$e@9xhCzpD-RGw;$eQk1b zf(6T;w6SeC)~8Bi6NO^&Yq<(b%X1$m&J3$~-_8dk173{vOnRR-V-J`8VS4*|;Mcdy)l1#ob5_QI zSQYv%&~&5NB=FIZbqL~jC>m}(@!WU1ymD6&r0-q3jO@MMcN5F4;k{XV z4E-ZB@D7Ge8$71|B8TL#U0%@s(Cd*GfT`bXyk>UsNo|06*NtH&oBj(!7d)p_`|p1^ z>{2uQ+w6q+DB>g^CF?G_yWDTCd=4~qhtr2^=FQ6aEu#HqG9`2Ij$SbOu=J?8ZI1U2 zK_*3R?cPgL_no70-=7ly_~ytDMBW~GAo8((-*tr4fD(MI$6N0#i|SSckfNsV?PA@a z6Yz%C9SVh#q{8WHI163{LWfBh`x>+Vi*>elOP$Z;7?5mF_z3p)W^oSdZgdGXh6(pylO&Oi9&09VrVGB zhyBFi&?U=AQdL;BAZKOZsRbz02dYyJv;Ef><19PH;_K0JUTUjYI$zAg0~gX#v`dUhXy?i1r9J(Zsn1&3X6 z(&=h_5-B5pEI$r8e)#QH+)u>_bx>+dmS-gZi5kPv8dXXxK_s$bu2f1U%dxQ?P~T9* zyL>EJ8(C|zawHZn*RzmCYaug2D9j?k?c8MGZzR$aW0_Qpb?u%HmFM*nDG5aZ;>Fp< z%EB4Y=fqj76bThLu+6+a@}tPvEOgN-Z4}g~vpZvW=*|cwl*mzG(=}lC8*k`J%Wt(i zXsu1>8B!^B01<-Cw*~f;uk__iUE6+OT*C!-teBxMQ~2-`1RymNt5l|_lxyiS@H(WJdPUP`KMO02DOT~I=@s;a7!6UOebhxP4@Wmi1hnbJe0CgG*byJ_nc9o~N>Nt{|rHw6#0$o~OIhHi-S$Js)mZdLI4Go_$ybI7V|E z{Y`Ss+n(qXjNa3bv*}&xbC~E^6A$M-(+!tbs*Z7DBCv~=iLY@+;3vi{(Z_R2+e zLE$-w?-uTBRcw~iYDpbe6ENL!cEjsdcviRHK5_fU-0nkSy*-Q!evg>RuX4NZ86AxV zqocvO!-uoE!-sQfgo`LQKgGYCRhyjc!0kTlx`#y^QEzg|7_945!RV=MmaN&skLlFW z(Vq$L3m=Mt4BkWJ!x5y19|5jq(rXiyQT?p7IuJbhpx==F&h-3K_Bdi!+IfQ{Nr?di4+%Y8fkT}z9ZnF7I$5!HE*}u6VIs$Y6 zh;yh%jk;&koN}m2%@Y!66)O0G)b>?49tEGFS+*6(I zjur_Kmu9eOxL9(8^oty%MTiDH>tySqkR)kn*qN9hLQT?3r?d51 zjbrxztL{y}gu(sx}Omg9p1RN%0AU7G>^ZTFk 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 Fe+PaAwl0`{m%i1kDk|;~D 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 diff --git a/option-tree/assets/fonts/option-tree-font.woff b/option-tree/assets/fonts/option-tree-font.woff index d9664510038fa0b776aa46208dd6fc69a0ff1eda..e62de5108451a316f7a7e1c390c03e9ec1921f7d 100644 GIT binary patch literal 108108 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≤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

    '; } @@ -4385,7 +4611,231 @@ function ot_maybe_migrate_layouts() { } } + +} + +/** + * Returns an array with the post format gallery meta box. + * + * @param mixed $pages Excepts a comma separated string or array of + * post_types and is what tells the metabox where to + * display. Default 'post'. + * @return array + * + * @access public + * @since 2.4.0 + */ +function ot_meta_box_post_format_gallery( $pages = 'post' ) { + + if ( ! current_theme_supports( 'post-formats' ) || ! in_array( 'gallery', current( get_theme_support( 'post-formats' ) ) ) ) + return false; + + if ( is_string( $pages ) ) + $pages = explode( ',', $pages ); + + return apply_filters( 'ot_meta_box_post_format_gallery', array( + 'id' => 'ot-post-format-gallery', + 'title' => __( 'Gallery', 'option-tree' ), + 'desc' => '', + 'pages' => $pages, + 'context' => 'side', + 'priority' => 'low', + 'fields' => array( + array( + 'id' => '_format_gallery', + 'label' => '', + 'desc' => '', + 'std' => '', + 'type' => 'gallery', + 'class' => 'ot-gallery-shortcode' + ) + ) + ), $pages ); + +} + +/** + * Returns an array with the post format link metabox. + * + * @param mixed $pages Excepts a comma separated string or array of + * post_types and is what tells the metabox where to + * display. Default 'post'. + * @return array + * + * @access public + * @since 2.4.0 + */ +function ot_meta_box_post_format_link( $pages = 'post' ) { + + if ( ! current_theme_supports( 'post-formats' ) || ! in_array( 'link', current( get_theme_support( 'post-formats' ) ) ) ) + return false; + + if ( is_string( $pages ) ) + $pages = explode( ',', $pages ); + + return apply_filters( 'ot_meta_box_post_format_link', array( + 'id' => 'ot-post-format-link', + 'title' => __( 'Link', 'option-tree' ), + 'desc' => '', + 'pages' => $pages, + 'context' => 'side', + 'priority' => 'low', + 'fields' => array( + array( + 'id' => '_format_link_url', + 'label' => '', + 'desc' => __( 'Link URL', 'option-tree' ), + 'std' => '', + 'type' => 'text' + ), + array( + 'id' => '_format_link_title', + 'label' => '', + 'desc' => __( 'Link Title', 'option-tree' ), + 'std' => '', + 'type' => 'text' + ) + ) + ), $pages ); + +} + +/** + * Returns an array with the post format quote metabox. + * + * @param mixed $pages Excepts a comma separated string or array of + * post_types and is what tells the metabox where to + * display. Default 'post'. + * @return array + * + * @access public + * @since 2.4.0 + */ +function ot_meta_box_post_format_quote( $pages = 'post' ) { + + if ( ! current_theme_supports( 'post-formats' ) || ! in_array( 'quote', current( get_theme_support( 'post-formats' ) ) ) ) + return false; + + if ( is_string( $pages ) ) + $pages = explode( ',', $pages ); + + return apply_filters( 'ot_meta_box_post_format_quote', array( + 'id' => 'ot-post-format-quote', + 'title' => __( 'Quote', 'option-tree' ), + 'desc' => '', + 'pages' => $pages, + 'context' => 'side', + 'priority' => 'low', + 'fields' => array( + array( + 'id' => '_format_quote_source_name', + 'label' => '', + 'desc' => __( 'Source Name (ex. author, singer, actor)', 'option-tree' ), + 'std' => '', + 'type' => 'text' + ), + array( + 'id' => '_format_quote_source_url', + 'label' => '', + 'desc' => __( 'Source URL', 'option-tree' ), + 'std' => '', + 'type' => 'text' + ), + array( + 'id' => '_format_quote_source_title', + 'label' => '', + 'desc' => __( 'Source Title (ex. book, song, movie)', 'option-tree' ), + 'std' => '', + 'type' => 'text' + ), + array( + 'id' => '_format_quote_source_date', + 'label' => '', + 'desc' => __( 'Source Date', 'option-tree' ), + 'std' => '', + 'type' => 'text' + ) + ) + ), $pages ); + +} + +/** + * Returns an array with the post format video metabox. + * + * @param mixed $pages Excepts a comma separated string or array of + * post_types and is what tells the metabox where to + * display. Default 'post'. + * @return array + * + * @access public + * @since 2.4.0 + */ +function ot_meta_box_post_format_video( $pages = 'post' ) { + + if ( ! current_theme_supports( 'post-formats' ) || ! in_array( 'video', current( get_theme_support( 'post-formats' ) ) ) ) + return false; + + if ( is_string( $pages ) ) + $pages = explode( ',', $pages ); + + return apply_filters( 'ot_meta_box_post_format_video', array( + 'id' => 'ot-post-format-video', + 'title' => __( 'Video', 'option-tree' ), + 'desc' => '', + 'pages' => $pages, + 'context' => 'side', + 'priority' => 'low', + 'fields' => array( + array( + 'id' => '_format_video_embed', + 'label' => '', + 'desc' => sprintf( __( 'Embed video from services like Youtube, Vimeo, or Hulu. You can find a list of supported oEmbed sites in the %1$s. Alternatively, you could use the built-in %2$s shortcode.', 'option-tree' ), '' . __( 'Wordpress Codex', 'option-tree' ) .'', '[video]' ), + 'std' => '', + 'type' => 'textarea' + ) + ) + ), $pages ); + +} + +/** + * Returns an array with the post format audio metabox. + * + * @param mixed $pages Excepts a comma separated string or array of + * post_types and is what tells the metabox where to + * display. Default 'post'. + * @return array + * + * @access public + * @since 2.4.0 + */ +function ot_meta_box_post_format_audio( $pages = 'post' ) { + + if ( ! current_theme_supports( 'post-formats' ) || ! in_array( 'audio', current( get_theme_support( 'post-formats' ) ) ) ) + return false; + + if ( is_string( $pages ) ) + $pages = explode( ',', $pages ); + return apply_filters( 'ot_meta_box_post_format_audio', array( + 'id' => 'ot-post-format-audio', + 'title' => __( 'Audio', 'option-tree' ), + 'desc' => '', + 'pages' => $pages, + 'context' => 'side', + 'priority' => 'low', + 'fields' => array( + array( + 'id' => '_format_audio_embed', + 'label' => '', + 'desc' => sprintf( __( 'Embed audio from services like SoundCloud and Rdio. You can find a list of supported oEmbed sites in the %1$s. Alternatively, you could use the built-in %2$s shortcode.', 'option-tree' ), '' . __( 'Wordpress Codex', 'option-tree' ) .'', '[audio]' ), + 'std' => '', + 'type' => 'textarea' + ) + ) + ), $pages ); + } /* End of file ot-functions-admin.php */ diff --git a/option-tree/includes/ot-functions-docs-page.php b/option-tree/includes/ot-functions-docs-page.php index 72b7e3f..bbcc3f1 100644 --- a/option-tree/includes/ot-functions-docs-page.php +++ b/option-tree/includes/ot-functions-docs-page.php @@ -248,6 +248,9 @@ function ot_type_option_types() { echo '

    '. __( 'Slider', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The Slider option type is technically deprecated. Use the List Item option type instead, as it\'s infinitely more customizable. Typical use is for creating sliding image content.', 'option-tree' ) . '

    '; + echo '

    '. __( 'Social Links', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The Social Links option type utilizes a drag & drop interface to create a list of social links. There are a few filters that make extending this option type easy. You can set the %s filter to %s and turn off loading default values. Use the %s filter to change the default values that are loaded. To filter the settings array use the %s filter.', 'option-tree' ), 'ot_type_social_links_load_defaults', 'false', 'ot_type_social_links_defaults', 'ot_social_links_settings' ) . '

    '; + echo '

    '. __( 'Tab', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The Tab option type will break a section or metabox into tabbed content.', 'option-tree' ) . '

    '; diff --git a/option-tree/includes/ot-functions-option-types.php b/option-tree/includes/ot-functions-option-types.php index fdbb17a..415c81e 100644 --- a/option-tree/includes/ot-functions-option-types.php +++ b/option-tree/includes/ot-functions-option-types.php @@ -224,7 +224,7 @@ function ot_type_background( $args = array() ) { echo ''; /* add media button */ - echo '' . __( 'Add Media', 'option-tree' ) . ''; + echo '' . __( 'Add Media', 'option-tree' ) . ''; echo '
    '; @@ -236,7 +236,7 @@ function ot_type_background( $args = array() ) { if ( preg_match( '/\.(?:jpe?g|png|gif|ico)$/i', $field_value['background-image'] ) ) echo '
    '; - echo '' . __( 'Remove Media', 'option-tree' ) . ''; + echo '' . __( 'Remove Media', 'option-tree' ) . ''; echo '
    '; @@ -761,12 +761,12 @@ function ot_type_gallery( $args = array() ) { // Turn the field value into an array of IDs if ( isset( $matches[1] ) ) { - // The string is a shortcode + // Found the IDs in the shortcode $ids = explode( ',', $matches[1] ); } else { - // The string is a comma separated list of IDs + // The string is only IDs $ids = ! empty( $field_value ) && $field_value != '' ? explode( ',', $field_value ) : array(); } @@ -848,7 +848,7 @@ function ot_type_list_item( $args = array() ) { /** * settings pages have array wrappers like 'option_tree'. * So we need that value to create a proper array to save to. - * This is only for NON metaboxes settings. + * This is only for NON metabox settings. */ if ( ! isset( $get_option ) ) $get_option = ''; @@ -1165,78 +1165,6 @@ function ot_type_page_select( $args = array() ) { } -/** - * List Item option type. - * - * See @ot_display_by_type to see the full list of available arguments. - * - * @param array An array of arguments. - * @return string - * - * @access public - * @since 2.0 - */ -if ( ! function_exists( 'ot_type_slider' ) ) { - - function ot_type_slider( $args = array() ) { - - /* turns arguments array into variables */ - extract( $args ); - - /* verify a description */ - $has_desc = $field_desc ? true : false; - - /* format setting outer wrapper */ - echo '
    '; - - /* description */ - echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; - - /* format setting inner wrapper */ - echo '
    '; - - /* pass the settings array arround */ - echo ''; - - /** - * settings pages have array wrappers like 'option_tree'. - * So we need that value to create a proper array to save to. - * This is only for NON metaboxes settings. - */ - if ( ! isset( $get_option ) ) - $get_option = ''; - - /* build list items */ - echo '
      '; - - if ( is_array( $field_value ) && ! empty( $field_value ) ) { - - foreach( $field_value as $key => $list_item ) { - - echo '
    • '; - ot_list_item_view( $field_id, $key, $list_item, $post_id, $get_option, $field_settings, $type ); - echo '
    • '; - - } - - } - - echo '
    '; - - /* button */ - echo '' . __( 'Add New', 'option-tree' ) . ''; - - /* description */ - echo '
    ' . __( 'You can re-order with drag & drop, the order will update after saving.', 'option-tree' ) . '
    '; - - echo '
    '; - - echo '
    '; - - } - -} - /** * Post Checkbox option type. * @@ -1478,6 +1406,9 @@ function ot_type_select( $args = array() ) { /* description */ echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + /* filter choices array */ + $field_choices = apply_filters( 'ot_type_select_choices', $field_choices, $field_id ); + /* format setting inner wrapper */ echo '
    '; @@ -1572,6 +1503,243 @@ function ot_type_sidebar_select( $args = array() ) { } +/** + * List Item option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.0 + */ +if ( ! function_exists( 'ot_type_slider' ) ) { + + function ot_type_slider( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* pass the settings array arround */ + echo ''; + + /** + * settings pages have array wrappers like 'option_tree'. + * So we need that value to create a proper array to save to. + * This is only for NON metabox settings. + */ + if ( ! isset( $get_option ) ) + $get_option = ''; + + /* build list items */ + echo '
      '; + + if ( is_array( $field_value ) && ! empty( $field_value ) ) { + + foreach( $field_value as $key => $list_item ) { + + echo '
    • '; + ot_list_item_view( $field_id, $key, $list_item, $post_id, $get_option, $field_settings, $type ); + echo '
    • '; + + } + + } + + echo '
    '; + + /* button */ + echo '' . __( 'Add New', 'option-tree' ) . ''; + + /* description */ + echo '
    ' . __( 'You can re-order with drag & drop, the order will update after saving.', 'option-tree' ) . '
    '; + + echo '
    '; + + echo '
    '; + + } + +} + +/** + * Social Links option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.4.0 + */ +if ( ! function_exists( 'ot_type_social_links' ) ) { + + function ot_type_social_links( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* Load the default social links */ + if ( empty( $field_value ) && apply_filters( 'ot_type_social_links_load_defaults', true, $field_id ) ) { + + $field_value = apply_filters( 'ot_type_social_links_defaults', array( + array( + 'name' => __( 'Facebook', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Twitter', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Google+', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'LinkedIn', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Pinterest', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Youtube', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Dribbble', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Github', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Forrst', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Digg', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Delicious', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Tumblr', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Skype', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'SoundCloud', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Vimeo', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'Flickr', 'option-tree' ), + 'title' => '', + 'href' => '' + ), + array( + 'name' => __( 'VK.com', 'option-tree' ), + 'title' => '', + 'href' => '' + ) + ), $field_id ); + + } + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* pass the settings array arround */ + echo ''; + + /** + * settings pages have array wrappers like 'option_tree'. + * So we need that value to create a proper array to save to. + * This is only for NON metabox settings. + */ + if ( ! isset( $get_option ) ) + $get_option = ''; + + /* build list items */ + echo '
      '; + + if ( is_array( $field_value ) && ! empty( $field_value ) ) { + + foreach( $field_value as $key => $link ) { + + echo '
    • '; + ot_social_links_view( $field_id, $key, $link, $post_id, $get_option, $field_settings, $type ); + echo '
    • '; + + } + + } + + echo '
    '; + + /* button */ + echo '' . __( 'Add New', 'option-tree' ) . ''; + + /* description */ + echo '
    ' . apply_filters( 'ot_social_links_description', __( 'You can re-order with drag & drop, the order will update after saving.', 'option-tree' ), $field_id ) . '
    '; + + echo '
    '; + + echo '
    '; + + } + +} + /** * Tab option type. * @@ -2218,8 +2386,22 @@ function ot_type_upload( $args = array() ) { /* verify a description */ $has_desc = $field_desc ? true : false; + /* If an attachment ID is stored here fetch its URL and replace the value */ + if ( $field_value && wp_attachment_is_image( $field_value ) ) { + + $attachment_data = wp_get_attachment_image_src( $field_value, 'original' ); + + /* check for attachment data */ + if ( $attachment_data ) { + + $field_src = $attachment_data[0]; + + } + + } + /* format setting outer wrapper */ - echo '
    '; + echo '
    '; /* description */ echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; @@ -2231,22 +2413,26 @@ function ot_type_upload( $args = array() ) { echo '
    '; /* input */ - echo ''; + echo ''; /* add media button */ - echo '' . __( 'Add Media', 'option-tree' ) . ''; + echo '' . __( 'Add Media', 'option-tree' ) . ''; echo '
    '; /* media */ if ( $field_value ) { - + echo '
    '; - + + /* replace image src */ + if ( isset( $field_src ) ) + $field_value = $field_src; + if ( preg_match( '/\.(?:jpe?g|png|gif|ico)$/i', $field_value ) ) echo '
    '; - echo '' . __( 'Remove Media', 'option-tree' ) . ''; + echo '' . __( 'Remove Media', 'option-tree' ) . ''; echo '
    '; diff --git a/option-tree/includes/ot-functions-settings-page.php b/option-tree/includes/ot-functions-settings-page.php index 4f5cafe..aed4191 100644 --- a/option-tree/includes/ot-functions-settings-page.php +++ b/option-tree/includes/ot-functions-settings-page.php @@ -186,7 +186,7 @@ function ot_type_import_xml() { $post_id = ( $id = ot_get_media_post_ID() ) ? (int) $id : 0; /* add xml button */ - echo '' . __( 'Add XML', 'option-tree' ) . ''; + echo '' . __( 'Add XML', 'option-tree' ) . ''; echo '
    '; diff --git a/option-tree/includes/ot-functions.php b/option-tree/includes/ot-functions.php index 29bd804..a8031cc 100644 --- a/option-tree/includes/ot-functions.php +++ b/option-tree/includes/ot-functions.php @@ -161,6 +161,26 @@ function ot_wpml_filter( $options, $option_id ) { } + // List Item & Slider + } else if ( $option_id == $setting['id'] && $setting['type'] == 'social-links' ) { + + foreach( $options[$option_id] as $key => $value ) { + + foreach( $value as $ckey => $cvalue ) { + + $id = $option_id . '_' . $ckey . '_' . $key; + $_string = icl_t( 'Theme Options', $id, $cvalue ); + + if ( ! empty( $_string ) ) { + + $options[$option_id][$key][$ckey] = $_string; + + } + + } + + } + // All other acceptable option types } else if ( $option_id == $setting['id'] && in_array( $setting['type'], apply_filters( 'ot_wpml_option_types', array( 'text', 'textarea', 'textarea-simple' ) ) ) ) { diff --git a/option-tree/includes/ot-meta-box-api.php b/option-tree/includes/ot-meta-box-api.php index b94e730..5922aaa 100644 --- a/option-tree/includes/ot-meta-box-api.php +++ b/option-tree/includes/ot-meta-box-api.php @@ -118,9 +118,28 @@ function build_meta_box( $post, $metabox ) { /* only allow simple textarea due to DOM issues with wp_editor() */ if ( $_args['type'] == 'textarea' ) $_args['type'] = 'textarea-simple'; + + // Build the setting CSS class + if ( ! empty( $_args['field_class'] ) ) { + + $classes = explode( ' ', $_args['field_class'] ); + + foreach( $classes as $key => $value ) { + + $classes[$key] = $value . '-wrap'; + + } + + $class = 'format-settings ' . implode( ' ', $classes ); + + } else { + + $class = 'format-settings'; + + } /* option label */ - echo '
    '; + echo '
    '; echo '
    '; @@ -139,6 +158,8 @@ function build_meta_box( $post, $metabox ) { echo '
    '; } + + echo '
    '; echo '
    '; @@ -240,6 +261,34 @@ function save_meta_box( $post_id, $post_object ) { /* set up new data with validated data */ $new = $_POST[$field['id']]; + + } else if ( $field['type'] == 'social-links' ) { + + /* get the settings array */ + $settings = isset( $_POST[$field['id'] . '_settings_array'] ) ? unserialize( ot_decode( $_POST[$field['id'] . '_settings_array'] ) ) : array(); + + /* settings are empty get the defaults */ + if ( empty( $settings ) ) { + $settings = ot_social_links_settings( $field['id'] ); + } + + foreach( $_POST[$field['id']] as $k => $setting_array ) { + + foreach( $settings as $sub_setting ) { + + /* verify sub setting has a type & value */ + if ( isset( $sub_setting['type'] ) && isset( $_POST[$field['id']][$k][$sub_setting['id']] ) ) { + + $_POST[$field['id']][$k][$sub_setting['id']] = ot_validate_setting( $_POST[$field['id']][$k][$sub_setting['id']], $sub_setting['type'], $sub_setting['id'] ); + + } + + } + + } + + /* set up new data with validated data */ + $new = $_POST[$field['id']]; } else { diff --git a/option-tree/includes/ot-post-formats-api.php b/option-tree/includes/ot-post-formats-api.php new file mode 100644 index 0000000..dabd992 --- /dev/null +++ b/option-tree/includes/ot-post-formats-api.php @@ -0,0 +1,123 @@ + + * @copyright Copyright (c) 2014, Derek Herman + */ +if ( ! class_exists( 'OT_Post_Formats' ) ) { + + class OT_Post_Formats { + + /** + * Class Constructor + * + * @return void + * + * @access public + * @since 2.3.0 + */ + public function __construct() { + + $this->setup_actions(); + + } + + /** + * Setup the default filters and actions + * + * @uses add_action() To add various actions + * @uses add_filter() To add various filters + * + * @return void + * + * @access private + * @since 2.3.0 + */ + private function setup_actions() { + + // Initialize the meta boxes + add_action( 'admin_init', array( $this, 'meta_boxes' ), 2 ); + + // Setup pings for the link & quote URLs + add_filter( 'pre_ping', array( $this, 'pre_ping_post_links' ), 10, 3 ); + + } + + /** + * Builds the default Meta Boxes. + * + * @return void + * + * @access private + * @since 2.3.0 + */ + public function meta_boxes() { + + // Exit if called outside of WP admin + if ( ! is_admin() ) + return false; + + $meta_boxes = array( + ot_meta_box_post_format_gallery(), + ot_meta_box_post_format_link(), + ot_meta_box_post_format_quote(), + ot_meta_box_post_format_video(), + ot_meta_box_post_format_audio() + ); + + /** + * Register our meta boxes using the + * ot_register_meta_box() function. + */ + foreach( $meta_boxes as $meta_box ) { + + ot_register_meta_box( $meta_box ); + + } + + } + + /** + * Setup pings for the link & quote URLs + * + * @param array $post_links The URLs to ping + * @param array $pung Pinged URLs + * @param int $post_id Post ID + * @return array + * + * @access public + * @since 2.3.0 + */ + public function pre_ping_post_links( $post_links, $pung, $post_id = null ) { + + $_link = get_post_meta( $post_id, '_format_link_url', true ); + if ( ! empty( $_link ) && ! in_array( $_link, $pung ) && ! in_array( $_link, $post_links ) ) + $post_links[] = $_link; + + $_quote = get_post_meta( $post_id, '_format_quote_source_url', true ); + if ( ! empty( $_quote ) && ! in_array( $_quote, $pung ) && ! in_array( $_quote, $post_links ) ) + $post_links[] = $_quote; + + } + + } + +} + +/** + * Instantiate The Class + * + * @since 1.0 + */ +if ( function_exists( 'ot_register_meta_box' ) ) { + + new OT_Post_Formats(); + +} + +/* End of file ot-post-formats-api.php */ +/* Location: ./includes/ot-post-formats-api.php */ \ No newline at end of file diff --git a/option-tree/includes/ot-settings-api.php b/option-tree/includes/ot-settings-api.php index 57b9f01..9a3584d 100644 --- a/option-tree/includes/ot-settings-api.php +++ b/option-tree/includes/ot-settings-api.php @@ -640,6 +640,41 @@ public function sanitize_callback( $input ) { } } + + } else if ( is_array( $input[$setting['id']] ) && $setting['type'] == 'social-links' ) { + + /* get the settings array */ + $settings = isset( $_POST[$setting['id'] . '_settings_array'] ) ? unserialize( ot_decode( $_POST[$setting['id'] . '_settings_array'] ) ) : array(); + + /* settings are empty get the defaults */ + if ( empty( $settings ) ) { + $settings = ot_social_links_settings( $setting['id'] ); + } + + /* create an empty WPML id array */ + $wpml_ids = array(); + + foreach( $input[$setting['id']] as $k => $setting_array ) { + + foreach( $settings as $sub_setting ) { + + /* setup the WPML ID */ + $wpml_id = $setting['id'] . '_' . $sub_setting['id'] . '_' . $k; + + /* add id to array */ + $wpml_ids[] = $wpml_id; + + /* verify sub setting has a type & value */ + if ( isset( $sub_setting['type'] ) && isset( $input[$setting['id']][$k][$sub_setting['id']] ) ) { + + /* validate setting */ + $input[$setting['id']][$k][$sub_setting['id']] = ot_validate_setting( $input[$setting['id']][$k][$sub_setting['id']], $sub_setting['type'], $sub_setting['id'], $wpml_id ); + + } + + } + + } } else { @@ -680,6 +715,38 @@ public function sanitize_callback( $input ) { } } + + /* unregister WPML strings that were deleted from social links */ + if ( isset( $current_settings['settings'] ) && isset( $setting['type'] ) && $setting['type'] == 'social-links' ) { + + if ( ! isset( $wpml_ids ) ) + $wpml_ids = array(); + + foreach( $current_settings['settings'] as $check_setting ) { + + if ( $setting['id'] == $check_setting['id'] && ! empty( $current_options[$setting['id']] ) ) { + + foreach( $current_options[$setting['id']] as $key => $value ) { + + foreach( $value as $ckey => $cvalue ) { + + $id = $setting['id'] . '_' . $ckey . '_' . $key; + + if ( ! in_array( $id, $wpml_ids ) ) { + + ot_wpml_unregister_string( $id ); + + } + + } + + } + + } + + } + + } } diff --git a/option-tree/languages/option-tree.po b/option-tree/languages/option-tree.po index be6ab57..5588377 100644 --- a/option-tree/languages/option-tree.po +++ b/option-tree/languages/option-tree.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: OptionTree\n" -"POT-Creation-Date: 2014-03-03 18:29-0800\n" -"PO-Revision-Date: 2014-03-03 18:29-0800\n" +"POT-Creation-Date: 2014-05-08 12:42-0800\n" +"PO-Revision-Date: 2014-05-08 12:43-0800\n" "Last-Translator: Derek Herman \n" "Language-Team: Valen Designs\n" "Language: English\n" @@ -17,9 +17,16 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Poedit-SearchPath-0: ..\n" -#: ../ot-loader.php:682 ../assets/theme-mode/demo-theme-options.php:624 -#: ../includes/ot-functions-admin.php:623 -#: ../includes/ot-functions-docs-page.php:371 +#: ../ot-loader.php:21 +msgid "" +"OptionTree is installed as a plugin and also embedded in your current theme. " +"Please deactivate the plugin to load the theme dependent version of " +"OptionTree, and remove this warning." +msgstr "" + +#: ../ot-loader.php:725 ../assets/theme-mode/demo-theme-options.php:624 +#: ../includes/ot-functions-admin.php:652 +#: ../includes/ot-functions-docs-page.php:374 #: ../includes/ot-functions-settings-page.php:170 msgid "Send to OptionTree" msgstr "" @@ -47,6 +54,8 @@ msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:50 #: ../assets/theme-mode/demo-theme-options.php:208 +#: ../includes/ot-functions-admin.php:2212 +#: ../includes/ot-functions-admin.php:4638 #: ../includes/ot-functions-docs-page.php:156 msgid "Gallery" msgstr "" @@ -62,7 +71,8 @@ msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:62 #: ../assets/theme-mode/demo-theme-options.php:533 -#: ../includes/ot-functions-docs-page.php:266 +#: ../includes/ot-functions-admin.php:2232 +#: ../includes/ot-functions-docs-page.php:269 msgid "Text" msgstr "" @@ -72,7 +82,8 @@ msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:68 #: ../assets/theme-mode/demo-theme-options.php:548 -#: ../includes/ot-functions-docs-page.php:269 +#: ../includes/ot-functions-admin.php:2233 +#: ../includes/ot-functions-docs-page.php:272 msgid "Textarea" msgstr "" @@ -82,7 +93,7 @@ msgstr "" #: ../assets/theme-mode/demo-theme-options.php:29 #: ../assets/theme-mode/demo-theme-options.php:38 -#: ../includes/ot-functions-admin.php:220 +#: ../includes/ot-functions-admin.php:234 msgid "Option Types" msgstr "" @@ -95,6 +106,7 @@ msgid "Sidebar content goes here!" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:44 +#: ../includes/ot-functions-admin.php:2202 #: ../includes/ot-functions-docs-page.php:110 msgid "Background" msgstr "" @@ -113,13 +125,14 @@ msgstr "" #: ../assets/theme-mode/demo-theme-options.php:45 #: ../assets/theme-mode/demo-theme-options.php:609 -#: ../includes/ot-functions-admin.php:3480 +#: ../includes/ot-functions-admin.php:3584 #: ../includes/ot-functions-docs-page.php:111 -#: ../includes/ot-functions-docs-page.php:351 +#: ../includes/ot-functions-docs-page.php:354 msgid "and" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:59 +#: ../includes/ot-functions-admin.php:2203 #: ../includes/ot-functions-docs-page.php:113 msgid "Category Checkbox" msgstr "" @@ -133,6 +146,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:74 +#: ../includes/ot-functions-admin.php:2204 #: ../includes/ot-functions-docs-page.php:116 msgid "Category Select" msgstr "" @@ -146,6 +160,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:89 +#: ../includes/ot-functions-admin.php:2205 #: ../includes/ot-functions-docs-page.php:119 msgid "Checkbox" msgstr "" @@ -183,6 +198,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:131 +#: ../includes/ot-functions-admin.php:2207 #: ../includes/ot-functions-docs-page.php:125 msgid "CSS" msgstr "" @@ -211,6 +227,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:148 +#: ../includes/ot-functions-admin.php:2208 #: ../includes/ot-functions-docs-page.php:144 msgid "Custom Post Type Checkbox" msgstr "" @@ -226,6 +243,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:163 +#: ../includes/ot-functions-admin.php:2209 #: ../includes/ot-functions-docs-page.php:147 msgid "Custom Post Type Select" msgstr "" @@ -241,6 +259,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:178 +#: ../includes/ot-functions-admin.php:2210 #: ../includes/ot-functions-docs-page.php:150 msgid "Date Picker" msgstr "" @@ -254,6 +273,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:193 +#: ../includes/ot-functions-admin.php:2211 #: ../includes/ot-functions-docs-page.php:153 msgid "Date Time Picker" msgstr "" @@ -289,6 +309,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:238 +#: ../includes/ot-functions-admin.php:2213 #: ../includes/ot-functions-docs-page.php:159 msgid "List Item" msgstr "" @@ -306,6 +327,7 @@ msgid "Content" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:269 +#: ../includes/ot-functions-admin.php:2214 #: ../includes/ot-functions-docs-page.php:162 msgid "Measurement" msgstr "" @@ -321,6 +343,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:284 +#: ../includes/ot-functions-admin.php:2215 #: ../includes/ot-functions-docs-page.php:193 msgid "Numeric Slider" msgstr "" @@ -333,6 +356,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:299 +#: ../includes/ot-functions-admin.php:2216 #: ../includes/ot-functions-docs-page.php:196 msgid "On/Off" msgstr "" @@ -346,6 +370,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:314 +#: ../includes/ot-functions-admin.php:2217 #: ../includes/ot-functions-docs-page.php:199 msgid "Page Checkbox" msgstr "" @@ -358,6 +383,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:329 +#: ../includes/ot-functions-admin.php:2218 #: ../includes/ot-functions-docs-page.php:202 msgid "Page Select" msgstr "" @@ -370,6 +396,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:344 +#: ../includes/ot-functions-admin.php:2219 #: ../includes/ot-functions-docs-page.php:205 msgid "Post Checkbox" msgstr "" @@ -382,6 +409,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:359 +#: ../includes/ot-functions-admin.php:2220 #: ../includes/ot-functions-docs-page.php:208 msgid "Post Select" msgstr "" @@ -394,6 +422,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:374 +#: ../includes/ot-functions-admin.php:2221 #: ../includes/ot-functions-docs-page.php:211 msgid "Radio" msgstr "" @@ -412,6 +441,7 @@ msgid "Maybe" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:406 +#: ../includes/ot-functions-admin.php:2222 #: ../includes/ot-functions-docs-page.php:214 msgid "Radio Image" msgstr "" @@ -426,6 +456,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:421 +#: ../includes/ot-functions-admin.php:2223 #: ../includes/ot-functions-docs-page.php:241 msgid "Select" msgstr "" @@ -442,6 +473,7 @@ msgid "-- Choose One --" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:458 +#: ../includes/ot-functions-admin.php:2224 #: ../includes/ot-functions-docs-page.php:244 msgid "Sidebar Select" msgstr "" @@ -467,12 +499,13 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:473 -#: ../includes/ot-functions-docs-page.php:254 +#: ../includes/ot-functions-admin.php:2228 +#: ../includes/ot-functions-docs-page.php:257 msgid "Tag Checkbox" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:474 -#: ../includes/ot-functions-docs-page.php:255 +#: ../includes/ot-functions-docs-page.php:258 msgid "" "The Tag Checkbox option type displays a list of tag IDs. It allows the user " "to check multiple tag IDs and will return that value as an array for use in " @@ -480,12 +513,13 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:488 -#: ../includes/ot-functions-docs-page.php:257 +#: ../includes/ot-functions-admin.php:2229 +#: ../includes/ot-functions-docs-page.php:260 msgid "Tag Select" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:489 -#: ../includes/ot-functions-docs-page.php:258 +#: ../includes/ot-functions-docs-page.php:261 msgid "" "The Tag Select option type displays a list of tag IDs. It allows the user to " "select only one tag ID and will return that value for use in a custom " @@ -493,12 +527,13 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:503 -#: ../includes/ot-functions-docs-page.php:260 +#: ../includes/ot-functions-admin.php:2230 +#: ../includes/ot-functions-docs-page.php:263 msgid "Taxonomy Checkbox" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:504 -#: ../includes/ot-functions-docs-page.php:261 +#: ../includes/ot-functions-docs-page.php:264 msgid "" "The Taxonomy Checkbox option type displays a list of taxonomy IDs. It allows " "the user to check multiple taxonomy IDs and will return that value as an " @@ -506,12 +541,13 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:518 -#: ../includes/ot-functions-docs-page.php:263 +#: ../includes/ot-functions-admin.php:2231 +#: ../includes/ot-functions-docs-page.php:266 msgid "Taxonomy Select" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:519 -#: ../includes/ot-functions-docs-page.php:264 +#: ../includes/ot-functions-docs-page.php:267 msgid "" "The Taxonomy Select option type displays a list of taxonomy IDs. It allows " "the user to select only one taxonomy ID and will return that value for use " @@ -519,14 +555,14 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:534 -#: ../includes/ot-functions-docs-page.php:267 +#: ../includes/ot-functions-docs-page.php:270 msgid "" "The Text option type is used to save string values. For example, any " "optional or required text that is of reasonably short character length." msgstr "" #: ../assets/theme-mode/demo-theme-options.php:549 -#: ../includes/ot-functions-docs-page.php:270 +#: ../includes/ot-functions-docs-page.php:273 #, php-format msgid "" "The Textarea option type is a large string value used for custom code or " @@ -535,24 +571,26 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:563 -#: ../includes/ot-functions-docs-page.php:328 +#: ../includes/ot-functions-admin.php:2234 +#: ../includes/ot-functions-docs-page.php:331 msgid "Textarea Simple" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:564 -#: ../includes/ot-functions-docs-page.php:329 +#: ../includes/ot-functions-docs-page.php:332 msgid "" "The Textarea Simple option type is a large string value used for custom code " "or text in the theme. The Textarea Simple does not have a WYSIWYG editor." msgstr "" #: ../assets/theme-mode/demo-theme-options.php:578 -#: ../includes/ot-functions-docs-page.php:344 +#: ../includes/ot-functions-admin.php:2235 +#: ../includes/ot-functions-docs-page.php:347 msgid "Textblock" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:579 -#: ../includes/ot-functions-docs-page.php:345 +#: ../includes/ot-functions-docs-page.php:348 msgid "" "The Textblock option type is used only on the Theme Option page. It will " "allow you to create & display HTML, but has no title above the text block. " @@ -562,12 +600,13 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:593 -#: ../includes/ot-functions-docs-page.php:347 +#: ../includes/ot-functions-admin.php:2236 +#: ../includes/ot-functions-docs-page.php:350 msgid "Textblock Titled" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:594 -#: ../includes/ot-functions-docs-page.php:348 +#: ../includes/ot-functions-docs-page.php:351 msgid "" "The Textblock Titled option type is used only on the Theme Option page. It " "will allow you to create & display HTML, and has a title above the text " @@ -577,12 +616,13 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:608 -#: ../includes/ot-functions-docs-page.php:350 +#: ../includes/ot-functions-admin.php:2237 +#: ../includes/ot-functions-docs-page.php:353 msgid "Typography" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:609 -#: ../includes/ot-functions-docs-page.php:351 +#: ../includes/ot-functions-docs-page.php:354 #, php-format msgid "" "The Typography option type is for adding typography styles to your theme " @@ -594,12 +634,13 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:623 -#: ../includes/ot-functions-docs-page.php:370 +#: ../includes/ot-functions-admin.php:2238 +#: ../includes/ot-functions-docs-page.php:373 msgid "Upload" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:624 -#: ../includes/ot-functions-docs-page.php:371 +#: ../includes/ot-functions-docs-page.php:374 #, php-format msgid "" "The Upload option type is used to upload any WordPress supported media. " @@ -610,21 +651,32 @@ msgid "" "upload or %s any media to your new server and change the URIs if necessary." msgstr "" +#: ../assets/theme-mode/demo-theme-options.php:638 +msgid "Upload Attachment ID" +msgstr "" + +#: ../assets/theme-mode/demo-theme-options.php:639 +#, php-format +msgid "" +"The Upload option type can also be saved as an attachment ID by adding %s to " +"the class attribute." +msgstr "" + #: ../includes/ot-functions-admin.php:50 ../includes/ot-functions-admin.php:51 -#: ../includes/ot-functions-admin.php:157 -#: ../includes/ot-functions-admin.php:181 ../includes/ot-functions.php:264 +#: ../includes/ot-functions-admin.php:171 +#: ../includes/ot-functions-admin.php:195 ../includes/ot-functions.php:284 msgid "Theme Options" msgstr "" #: ../includes/ot-functions-admin.php:56 -#: ../includes/ot-functions-admin.php:113 -#: ../includes/ot-functions-admin.php:208 +#: ../includes/ot-functions-admin.php:127 +#: ../includes/ot-functions-admin.php:222 msgid "Theme Options updated." msgstr "" #: ../includes/ot-functions-admin.php:57 -#: ../includes/ot-functions-admin.php:114 -#: ../includes/ot-functions-admin.php:209 +#: ../includes/ot-functions-admin.php:128 +#: ../includes/ot-functions-admin.php:223 msgid "Theme Options reset." msgstr "" @@ -634,399 +686,454 @@ msgstr "" msgid "Save Changes" msgstr "" -#: ../includes/ot-functions-admin.php:96 ../includes/ot-functions-admin.php:97 -#: ../includes/ot-functions-docs-page.php:794 +#: ../includes/ot-functions-admin.php:98 +msgid "" +"The Theme Options UI Builder is being overridden by a custom file in your " +"theme. Any changes you make via the UI Builder will not be saved." +msgstr "" + +#: ../includes/ot-functions-admin.php:110 +#: ../includes/ot-functions-admin.php:111 +#: ../includes/ot-functions-docs-page.php:797 msgid "OptionTree" msgstr "" -#: ../includes/ot-functions-admin.php:107 -#: ../includes/ot-functions-admin.php:108 -#: ../includes/ot-functions-admin.php:151 -#: ../includes/ot-functions-admin.php:175 +#: ../includes/ot-functions-admin.php:121 +#: ../includes/ot-functions-admin.php:122 +#: ../includes/ot-functions-admin.php:165 +#: ../includes/ot-functions-admin.php:189 #: ../includes/ot-functions-docs-page.php:49 msgid "Settings" msgstr "" -#: ../includes/ot-functions-admin.php:115 -#: ../includes/ot-functions-admin.php:210 +#: ../includes/ot-functions-admin.php:129 +#: ../includes/ot-functions-admin.php:224 msgid "Save Settings" msgstr "" -#: ../includes/ot-functions-admin.php:121 +#: ../includes/ot-functions-admin.php:135 msgid "Theme Options UI" msgstr "" -#: ../includes/ot-functions-admin.php:125 +#: ../includes/ot-functions-admin.php:139 msgid "Import" msgstr "" -#: ../includes/ot-functions-admin.php:129 +#: ../includes/ot-functions-admin.php:143 msgid "Export" msgstr "" -#: ../includes/ot-functions-admin.php:133 -#: ../includes/ot-functions-admin.php:163 -#: ../includes/ot-functions-admin.php:187 +#: ../includes/ot-functions-admin.php:147 +#: ../includes/ot-functions-admin.php:177 +#: ../includes/ot-functions-admin.php:201 msgid "Layouts" msgstr "" -#: ../includes/ot-functions-admin.php:139 +#: ../includes/ot-functions-admin.php:153 msgid "Theme Options UI Builder" msgstr "" -#: ../includes/ot-functions-admin.php:145 +#: ../includes/ot-functions-admin.php:159 msgid "Settings XML" msgstr "" -#: ../includes/ot-functions-admin.php:169 +#: ../includes/ot-functions-admin.php:183 msgid "Settings PHP File" msgstr "" -#: ../includes/ot-functions-admin.php:193 +#: ../includes/ot-functions-admin.php:207 msgid "Layout Management" msgstr "" -#: ../includes/ot-functions-admin.php:202 -#: ../includes/ot-functions-admin.php:203 +#: ../includes/ot-functions-admin.php:216 +#: ../includes/ot-functions-admin.php:217 msgid "Documentation" msgstr "" -#: ../includes/ot-functions-admin.php:216 +#: ../includes/ot-functions-admin.php:230 msgid "Creating Options" msgstr "" -#: ../includes/ot-functions-admin.php:224 +#: ../includes/ot-functions-admin.php:238 msgid "Function References" msgstr "" -#: ../includes/ot-functions-admin.php:228 -#: ../includes/ot-functions-admin.php:270 +#: ../includes/ot-functions-admin.php:242 +#: ../includes/ot-functions-admin.php:284 #: ../includes/ot-functions-settings-page.php:366 msgid "Theme Mode" msgstr "" -#: ../includes/ot-functions-admin.php:232 -#: ../includes/ot-functions-admin.php:276 +#: ../includes/ot-functions-admin.php:246 +#: ../includes/ot-functions-admin.php:290 msgid "Meta Boxes" msgstr "" -#: ../includes/ot-functions-admin.php:236 +#: ../includes/ot-functions-admin.php:250 msgid "Code Examples" msgstr "" -#: ../includes/ot-functions-admin.php:240 +#: ../includes/ot-functions-admin.php:254 msgid "Layouts Overview" msgstr "" -#: ../includes/ot-functions-admin.php:246 +#: ../includes/ot-functions-admin.php:260 msgid "Overview of available Theme Option fields." msgstr "" -#: ../includes/ot-functions-admin.php:252 +#: ../includes/ot-functions-admin.php:266 msgid "Option types in alphabetical order & hooks to filter them." msgstr "" -#: ../includes/ot-functions-admin.php:258 +#: ../includes/ot-functions-admin.php:272 msgid "Function Reference:ot_get_option()" msgstr "" -#: ../includes/ot-functions-admin.php:264 +#: ../includes/ot-functions-admin.php:278 msgid "Function Reference:get_option_tree()" msgstr "" -#: ../includes/ot-functions-admin.php:282 +#: ../includes/ot-functions-admin.php:296 msgid "Code examples for front-end development." msgstr "" -#: ../includes/ot-functions-admin.php:288 +#: ../includes/ot-functions-admin.php:302 msgid "What's a layout anyhow?" msgstr "" -#: ../includes/ot-functions-admin.php:488 +#: ../includes/ot-functions-admin.php:502 msgid "The Colorpicker only allows valid hexadecimal values." msgstr "" -#: ../includes/ot-functions-admin.php:624 +#: ../includes/ot-functions-admin.php:653 #: ../includes/ot-functions-option-types.php:239 -#: ../includes/ot-functions-option-types.php:2249 +#: ../includes/ot-functions-option-types.php:2435 msgid "Remove Media" msgstr "" -#: ../includes/ot-functions-admin.php:625 +#: ../includes/ot-functions-admin.php:654 msgid "Are you sure you want to reset back to the defaults?" msgstr "" -#: ../includes/ot-functions-admin.php:626 +#: ../includes/ot-functions-admin.php:655 msgid "You can't remove this! But you can edit the values." msgstr "" -#: ../includes/ot-functions-admin.php:627 +#: ../includes/ot-functions-admin.php:656 msgid "Are you sure you want to remove this?" msgstr "" -#: ../includes/ot-functions-admin.php:628 +#: ../includes/ot-functions-admin.php:657 msgid "Are you sure you want to activate this layout?" msgstr "" -#: ../includes/ot-functions-admin.php:629 +#: ../includes/ot-functions-admin.php:658 msgid "Sorry, you can't have settings three levels deep." msgstr "" -#: ../includes/ot-functions-admin.php:630 +#: ../includes/ot-functions-admin.php:659 #: ../includes/ot-functions-option-types.php:794 msgid "Delete Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:631 +#: ../includes/ot-functions-admin.php:660 #: ../includes/ot-functions-option-types.php:795 msgid "Edit Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:632 +#: ../includes/ot-functions-admin.php:661 #: ../includes/ot-functions-option-types.php:802 msgid "Create Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:633 +#: ../includes/ot-functions-admin.php:662 msgid "Are you sure you want to delete this Gallery?" msgstr "" -#: ../includes/ot-functions-admin.php:634 +#: ../includes/ot-functions-admin.php:663 msgid "Today" msgstr "" -#: ../includes/ot-functions-admin.php:635 +#: ../includes/ot-functions-admin.php:664 msgid "Now" msgstr "" -#: ../includes/ot-functions-admin.php:636 +#: ../includes/ot-functions-admin.php:665 msgid "Close" msgstr "" -#: ../includes/ot-functions-admin.php:685 +#: ../includes/ot-functions-admin.php:666 +msgid "Featured Image" +msgstr "" + +#: ../includes/ot-functions-admin.php:667 +#: ../includes/ot-functions-admin.php:2786 +#: ../includes/ot-functions-admin.php:2847 +msgid "Image" +msgstr "" + +#: ../includes/ot-functions-admin.php:716 msgid "Option Tree" msgstr "" -#: ../includes/ot-functions-admin.php:822 +#: ../includes/ot-functions-admin.php:853 msgid "General" msgstr "" -#: ../includes/ot-functions-admin.php:828 +#: ../includes/ot-functions-admin.php:859 msgid "Sample Text Field Label" msgstr "" -#: ../includes/ot-functions-admin.php:829 +#: ../includes/ot-functions-admin.php:860 msgid "Description for the sample text field." msgstr "" -#: ../includes/ot-functions-admin.php:2046 +#: ../includes/ot-functions-admin.php:2102 msgid "Settings updated." msgstr "" -#: ../includes/ot-functions-admin.php:2050 +#: ../includes/ot-functions-admin.php:2106 msgid "Settings could not be saved." msgstr "" -#: ../includes/ot-functions-admin.php:2058 +#: ../includes/ot-functions-admin.php:2114 msgid "Settings Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2062 +#: ../includes/ot-functions-admin.php:2118 msgid "Settings could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2069 +#: ../includes/ot-functions-admin.php:2125 msgid "Data Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2073 +#: ../includes/ot-functions-admin.php:2129 msgid "Data could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2081 +#: ../includes/ot-functions-admin.php:2137 msgid "Layouts Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2085 +#: ../includes/ot-functions-admin.php:2141 msgid "Layouts could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2093 +#: ../includes/ot-functions-admin.php:2149 msgid "Layouts Updated." msgstr "" -#: ../includes/ot-functions-admin.php:2097 +#: ../includes/ot-functions-admin.php:2153 msgid "Layouts could not be updated." msgstr "" -#: ../includes/ot-functions-admin.php:2101 +#: ../includes/ot-functions-admin.php:2157 msgid "Layouts have been deleted." msgstr "" -#: ../includes/ot-functions-admin.php:2107 +#: ../includes/ot-functions-admin.php:2163 msgid "Layout activated." msgstr "" -#: ../includes/ot-functions-admin.php:2674 +#: ../includes/ot-functions-admin.php:2206 +msgid "Color Picker" +msgstr "" + +#: ../includes/ot-functions-admin.php:2225 +#: ../includes/ot-functions-docs-page.php:248 +msgid "Slider" +msgstr "" + +#: ../includes/ot-functions-admin.php:2226 +#: ../includes/ot-functions-docs-page.php:251 +msgid "Social Links" +msgstr "" + +#: ../includes/ot-functions-admin.php:2227 +#: ../includes/ot-functions-docs-page.php:254 +msgid "Tab" +msgstr "" + +#: ../includes/ot-functions-admin.php:2731 msgid "Left Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2679 +#: ../includes/ot-functions-admin.php:2736 msgid "Right Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2684 +#: ../includes/ot-functions-admin.php:2741 msgid "Full Width (no sidebar)" msgstr "" -#: ../includes/ot-functions-admin.php:2689 +#: ../includes/ot-functions-admin.php:2746 msgid "Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2694 +#: ../includes/ot-functions-admin.php:2751 msgid "Left Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2699 +#: ../includes/ot-functions-admin.php:2756 msgid "Right Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2729 -#: ../includes/ot-functions-admin.php:2790 -msgid "Image" -msgstr "" - -#: ../includes/ot-functions-admin.php:2740 -#: ../includes/ot-functions-admin.php:2796 +#: ../includes/ot-functions-admin.php:2797 +#: ../includes/ot-functions-admin.php:2853 +#: ../includes/ot-functions-admin.php:4678 msgid "Link" msgstr "" -#: ../includes/ot-functions-admin.php:2751 -#: ../includes/ot-functions-admin.php:2802 +#: ../includes/ot-functions-admin.php:2808 +#: ../includes/ot-functions-admin.php:2859 #: ../includes/ot-functions-docs-page.php:43 -#: ../includes/ot-functions-docs-page.php:401 -#: ../includes/ot-functions-docs-page.php:451 +#: ../includes/ot-functions-docs-page.php:404 +#: ../includes/ot-functions-docs-page.php:454 msgid "Description" msgstr "" -#: ../includes/ot-functions-admin.php:3285 +#: ../includes/ot-functions-admin.php:2923 +msgid "Name" +msgstr "" + +#: ../includes/ot-functions-admin.php:2924 +msgid "Enter the name of the social website." +msgstr "" + +#: ../includes/ot-functions-admin.php:2932 +msgid "Enter the text shown in the title attribute of the link." +msgstr "" + +#: ../includes/ot-functions-admin.php:2938 +#, php-format +msgid "" +"Enter a link to the profile or page on the social website. Remember to add " +"the %s part to the front of the link." +msgstr "" + +#: ../includes/ot-functions-admin.php:3389 msgid "edit" msgstr "" -#: ../includes/ot-functions-admin.php:3286 -#: ../includes/ot-functions-admin.php:3354 -#: ../includes/ot-functions-admin.php:3355 -#: ../includes/ot-functions-admin.php:3517 -#: ../includes/ot-functions-admin.php:3518 -#: ../includes/ot-functions-admin.php:3583 -#: ../includes/ot-functions-admin.php:3584 -#: ../includes/ot-functions-admin.php:3711 -#: ../includes/ot-functions-admin.php:3712 +#: ../includes/ot-functions-admin.php:3390 +#: ../includes/ot-functions-admin.php:3458 +#: ../includes/ot-functions-admin.php:3459 +#: ../includes/ot-functions-admin.php:3621 +#: ../includes/ot-functions-admin.php:3622 +#: ../includes/ot-functions-admin.php:3687 +#: ../includes/ot-functions-admin.php:3688 +#: ../includes/ot-functions-admin.php:3815 +#: ../includes/ot-functions-admin.php:3816 +#: ../includes/ot-functions-admin.php:3949 +#: ../includes/ot-functions-admin.php:3950 msgid "Edit" msgstr "" -#: ../includes/ot-functions-admin.php:3288 -#: ../includes/ot-functions-admin.php:3289 -#: ../includes/ot-functions-admin.php:3357 -#: ../includes/ot-functions-admin.php:3358 -#: ../includes/ot-functions-admin.php:3520 -#: ../includes/ot-functions-admin.php:3521 -#: ../includes/ot-functions-admin.php:3586 -#: ../includes/ot-functions-admin.php:3587 -#: ../includes/ot-functions-admin.php:3645 -#: ../includes/ot-functions-admin.php:3646 -#: ../includes/ot-functions-admin.php:3714 -#: ../includes/ot-functions-admin.php:3715 +#: ../includes/ot-functions-admin.php:3392 +#: ../includes/ot-functions-admin.php:3393 +#: ../includes/ot-functions-admin.php:3461 +#: ../includes/ot-functions-admin.php:3462 +#: ../includes/ot-functions-admin.php:3624 +#: ../includes/ot-functions-admin.php:3625 +#: ../includes/ot-functions-admin.php:3690 +#: ../includes/ot-functions-admin.php:3691 +#: ../includes/ot-functions-admin.php:3749 +#: ../includes/ot-functions-admin.php:3750 +#: ../includes/ot-functions-admin.php:3818 +#: ../includes/ot-functions-admin.php:3819 +#: ../includes/ot-functions-admin.php:3952 +#: ../includes/ot-functions-admin.php:3953 msgid "Delete" msgstr "" -#: ../includes/ot-functions-admin.php:3295 +#: ../includes/ot-functions-admin.php:3399 msgid "" "Section Title: Displayed as a menu item on the Theme " "Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3303 +#: ../includes/ot-functions-admin.php:3407 msgid "" "Section ID: A unique lower case alphanumeric string, " "underscores allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3364 +#: ../includes/ot-functions-admin.php:3468 msgid "" "Label: Displayed as the label of a form element on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3372 -#: ../includes/ot-functions-admin.php:3601 +#: ../includes/ot-functions-admin.php:3476 +#: ../includes/ot-functions-admin.php:3705 msgid "" "ID: A unique lower case alphanumeric string, underscores " "allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3380 +#: ../includes/ot-functions-admin.php:3484 msgid "" "Type: Choose one of the available option types from the " "dropdown." msgstr "" -#: ../includes/ot-functions-admin.php:3391 +#: ../includes/ot-functions-admin.php:3495 msgid "" "Description: Enter a detailed description for the users to " "read on the Theme Options page, HTML is allowed. This is also where you " "enter content for both the Textblock & Textblock Titled option types." msgstr "" -#: ../includes/ot-functions-admin.php:3399 +#: ../includes/ot-functions-admin.php:3503 msgid "" "Choices: This will only affect the following option types: " "Checkbox, Radio, Select & Select Image." msgstr "" -#: ../includes/ot-functions-admin.php:3404 +#: ../includes/ot-functions-admin.php:3508 msgid "Add Choice" msgstr "" -#: ../includes/ot-functions-admin.php:3410 +#: ../includes/ot-functions-admin.php:3514 msgid "" "Settings: This will only affect the List Item option type." msgstr "" -#: ../includes/ot-functions-admin.php:3415 +#: ../includes/ot-functions-admin.php:3519 #: ../includes/ot-functions-settings-page.php:93 msgid "Add Setting" msgstr "" -#: ../includes/ot-functions-admin.php:3421 +#: ../includes/ot-functions-admin.php:3525 msgid "" "Standard: Setting the standard value for your option only " "works for some option types. Read the OptionTree->Documentation " "for more information on which ones." msgstr "" -#: ../includes/ot-functions-admin.php:3429 +#: ../includes/ot-functions-admin.php:3533 msgid "" "Rows: Enter a numeric value for the number of rows in your " "textarea. This will only affect the following option types: CSS, Textarea, & " "Textarea Simple." msgstr "" -#: ../includes/ot-functions-admin.php:3437 +#: ../includes/ot-functions-admin.php:3541 msgid "" "Post Type: Add a comma separated list of post type like " "'post,page'. This will only affect the following option types: Custom Post " "Type Checkbox, & Custom Post Type Select." msgstr "" -#: ../includes/ot-functions-admin.php:3445 +#: ../includes/ot-functions-admin.php:3549 msgid "" "Taxonomy: Add a comma separated list of any registered " "taxonomy like 'category,post_tag'. This will only affect the following " "option types: Taxonomy Checkbox, & Taxonomy Select." msgstr "" -#: ../includes/ot-functions-admin.php:3453 +#: ../includes/ot-functions-admin.php:3557 msgid "" "Min, Max, & Step: Add a comma separated list of options in " "the following format 0,100,1 (slide from 0-100 in " @@ -1035,11 +1142,11 @@ msgid "" "type." msgstr "" -#: ../includes/ot-functions-admin.php:3461 +#: ../includes/ot-functions-admin.php:3565 msgid "CSS Class: Add and optional class to this option type." msgstr "" -#: ../includes/ot-functions-admin.php:3469 +#: ../includes/ot-functions-admin.php:3573 #, php-format msgid "" "Condition: Add a comma separated list (no spaces) of " @@ -1048,59 +1155,116 @@ msgid "" "placeholder for your condition, which can be in the form of %s." msgstr "" -#: ../includes/ot-functions-admin.php:3477 +#: ../includes/ot-functions-admin.php:3581 msgid "" "Operator: Choose the logical operator to compute the result " "of the conditions." msgstr "" -#: ../includes/ot-functions-admin.php:3481 +#: ../includes/ot-functions-admin.php:3585 msgid "or" msgstr "" -#: ../includes/ot-functions-admin.php:3527 +#: ../includes/ot-functions-admin.php:3631 #: ../includes/ot-functions-docs-page.php:29 msgid "Label" msgstr "" -#: ../includes/ot-functions-admin.php:3537 +#: ../includes/ot-functions-admin.php:3641 msgid "Value" msgstr "" -#: ../includes/ot-functions-admin.php:3547 +#: ../includes/ot-functions-admin.php:3651 msgid "Image Source (Radio Image only)" msgstr "" -#: ../includes/ot-functions-admin.php:3593 +#: ../includes/ot-functions-admin.php:3697 msgid "" "Title: Displayed as a contextual help menu item on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3609 +#: ../includes/ot-functions-admin.php:3713 msgid "" "Content: Enter the HTML content about this contextual help " "item displayed on the Theme Option page for end users to read." msgstr "" -#: ../includes/ot-functions-admin.php:3640 +#: ../includes/ot-functions-admin.php:3744 msgid "Layout" msgstr "" -#: ../includes/ot-functions-admin.php:3642 -#: ../includes/ot-functions-admin.php:3643 +#: ../includes/ot-functions-admin.php:3746 +#: ../includes/ot-functions-admin.php:3747 msgid "Activate" msgstr "" -#: ../includes/ot-functions-admin.php:3679 ../includes/ot-meta-box-api.php:202 +#: ../includes/ot-functions-admin.php:3783 ../includes/ot-meta-box-api.php:223 #: ../includes/ot-settings-api.php:595 msgid "Title" msgstr "" -#: ../includes/ot-functions-admin.php:3878 +#: ../includes/ot-functions-admin.php:4104 msgid "New Layout" msgstr "" +#: ../includes/ot-functions-admin.php:4687 +msgid "Link URL" +msgstr "" + +#: ../includes/ot-functions-admin.php:4694 +msgid "Link Title" +msgstr "" + +#: ../includes/ot-functions-admin.php:4724 +msgid "Quote" +msgstr "" + +#: ../includes/ot-functions-admin.php:4733 +msgid "Source Name (ex. author, singer, actor)" +msgstr "" + +#: ../includes/ot-functions-admin.php:4740 +msgid "Source URL" +msgstr "" + +#: ../includes/ot-functions-admin.php:4747 +msgid "Source Title (ex. book, song, movie)" +msgstr "" + +#: ../includes/ot-functions-admin.php:4754 +msgid "Source Date" +msgstr "" + +#: ../includes/ot-functions-admin.php:4784 +msgid "Video" +msgstr "" + +#: ../includes/ot-functions-admin.php:4793 +#, php-format +msgid "" +"Embed video from services like Youtube, Vimeo, or Hulu. You can find a list " +"of supported oEmbed sites in the %1$s. Alternatively, you could use the " +"built-in %2$s shortcode." +msgstr "" + +#: ../includes/ot-functions-admin.php:4793 +#: ../includes/ot-functions-admin.php:4832 +msgid "Wordpress Codex" +msgstr "" + +#: ../includes/ot-functions-admin.php:4823 +msgid "Audio" +msgstr "" + +#: ../includes/ot-functions-admin.php:4832 +#, php-format +msgid "" +"Embed audio from services like SoundCloud and Rdio. You can find a list of " +"supported oEmbed sites in the %1$s. Alternatively, you could use the built-" +"in %2$s shortcode." +msgstr "" + #: ../includes/ot-functions-docs-page.php:30 msgid "" "The Label field should be a short but descriptive block of text 100 " @@ -1281,10 +1445,6 @@ msgid "" "functions.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:248 -msgid "Slider" -msgstr "" - #: ../includes/ot-functions-docs-page.php:249 msgid "" "The Slider option type is technically deprecated. Use the List Item option " @@ -1292,43 +1452,49 @@ msgid "" "creating sliding image content." msgstr "" -#: ../includes/ot-functions-docs-page.php:251 -msgid "Tab" +#: ../includes/ot-functions-docs-page.php:252 +#, php-format +msgid "" +"The Social Links option type utilizes a drag & drop interface to create a " +"list of social links. There are a few filters that make extending this " +"option type easy. You can set the %s filter to %s and turn off loading " +"default values. Use the %s filter to change the default values that are " +"loaded. To filter the settings array use the %s filter." msgstr "" -#: ../includes/ot-functions-docs-page.php:252 +#: ../includes/ot-functions-docs-page.php:255 msgid "" "The Tab option type will break a section or metabox into tabbed content." msgstr "" -#: ../includes/ot-functions-docs-page.php:272 +#: ../includes/ot-functions-docs-page.php:275 msgid "" "Example filters to alter the Textarea option type. Added to functions." "php." msgstr "" -#: ../includes/ot-functions-docs-page.php:274 +#: ../includes/ot-functions-docs-page.php:277 msgid "" "This example keeps WordPress from executing the wpautop filter " "on the line breaks. The default is true which means it wraps " "line breaks with an HTML p tag." msgstr "" -#: ../includes/ot-functions-docs-page.php:287 +#: ../includes/ot-functions-docs-page.php:290 msgid "" "This example keeps WordPress from executing the media_buttons " "filter on the textarea WYSIWYG. The default is true which means " "show the buttons." msgstr "" -#: ../includes/ot-functions-docs-page.php:300 +#: ../includes/ot-functions-docs-page.php:303 msgid "" "This example keeps WordPress from executing the tinymce filter " "on the textarea WYSIWYG. The default is true which means show " "the tinymce." msgstr "" -#: ../includes/ot-functions-docs-page.php:313 +#: ../includes/ot-functions-docs-page.php:316 msgid "" "This example alters the quicktags filter on the textarea " "WYSIWYG. The default is array( 'buttons' => 'strong,em,link,block,del," @@ -1336,7 +1502,7 @@ msgid "" "quicktags. It also means you can filter in your own custom quicktags." msgstr "" -#: ../includes/ot-functions-docs-page.php:331 +#: ../includes/ot-functions-docs-page.php:334 #, php-format msgid "" "This example tells WordPress to execute the %s filter on the line breaks. " @@ -1344,134 +1510,134 @@ msgid "" "tag. Added to %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:353 +#: ../includes/ot-functions-docs-page.php:356 msgid "" "This example would filter ot_recognized_font_families to build " "your own font stack. Added to functions.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:403 +#: ../includes/ot-functions-docs-page.php:406 msgid "" "This function returns a value from the \"option_tree\" array of saved values " "or the default value supplied. The returned value would be mixed. Meaning it " "could be a string, integer, boolean, or array." msgstr "" -#: ../includes/ot-functions-docs-page.php:405 -#: ../includes/ot-functions-docs-page.php:455 +#: ../includes/ot-functions-docs-page.php:408 +#: ../includes/ot-functions-docs-page.php:458 msgid "Usage" msgstr "" -#: ../includes/ot-functions-docs-page.php:409 -#: ../includes/ot-functions-docs-page.php:459 +#: ../includes/ot-functions-docs-page.php:412 +#: ../includes/ot-functions-docs-page.php:462 msgid "Parameters" msgstr "" -#: ../includes/ot-functions-docs-page.php:413 -#: ../includes/ot-functions-docs-page.php:417 -#: ../includes/ot-functions-docs-page.php:463 +#: ../includes/ot-functions-docs-page.php:416 +#: ../includes/ot-functions-docs-page.php:420 +#: ../includes/ot-functions-docs-page.php:466 msgid "string" msgstr "" -#: ../includes/ot-functions-docs-page.php:413 -#: ../includes/ot-functions-docs-page.php:463 +#: ../includes/ot-functions-docs-page.php:416 +#: ../includes/ot-functions-docs-page.php:466 msgid "required" msgstr "" -#: ../includes/ot-functions-docs-page.php:413 +#: ../includes/ot-functions-docs-page.php:416 msgid "Enter the options unique identifier." msgstr "" -#: ../includes/ot-functions-docs-page.php:413 -#: ../includes/ot-functions-docs-page.php:463 +#: ../includes/ot-functions-docs-page.php:416 +#: ../includes/ot-functions-docs-page.php:466 msgid "Default:" msgstr "" -#: ../includes/ot-functions-docs-page.php:413 -#: ../includes/ot-functions-docs-page.php:417 -#: ../includes/ot-functions-docs-page.php:463 -#: ../includes/ot-functions-docs-page.php:467 +#: ../includes/ot-functions-docs-page.php:416 +#: ../includes/ot-functions-docs-page.php:420 +#: ../includes/ot-functions-docs-page.php:466 +#: ../includes/ot-functions-docs-page.php:470 msgid "None" msgstr "" -#: ../includes/ot-functions-docs-page.php:417 -#: ../includes/ot-functions-docs-page.php:467 -#: ../includes/ot-functions-docs-page.php:471 -#: ../includes/ot-functions-docs-page.php:475 -#: ../includes/ot-functions-docs-page.php:479 +#: ../includes/ot-functions-docs-page.php:420 +#: ../includes/ot-functions-docs-page.php:470 +#: ../includes/ot-functions-docs-page.php:474 +#: ../includes/ot-functions-docs-page.php:478 +#: ../includes/ot-functions-docs-page.php:482 msgid "optional" msgstr "" -#: ../includes/ot-functions-docs-page.php:417 +#: ../includes/ot-functions-docs-page.php:420 msgid "" "Enter a default return value. This is just incase the request returns null." msgstr "" -#: ../includes/ot-functions-docs-page.php:417 -#: ../includes/ot-functions-docs-page.php:467 -#: ../includes/ot-functions-docs-page.php:471 -#: ../includes/ot-functions-docs-page.php:475 -#: ../includes/ot-functions-docs-page.php:479 +#: ../includes/ot-functions-docs-page.php:420 +#: ../includes/ot-functions-docs-page.php:470 +#: ../includes/ot-functions-docs-page.php:474 +#: ../includes/ot-functions-docs-page.php:478 +#: ../includes/ot-functions-docs-page.php:482 msgid "Default" msgstr "" -#: ../includes/ot-functions-docs-page.php:447 +#: ../includes/ot-functions-docs-page.php:450 msgid "" "This function has been deprecated. That means it has been replaced by a new " "function or is no longer supported, and may be removed from future versions. " "All code that uses this function should be converted to use its replacement." msgstr "" -#: ../includes/ot-functions-docs-page.php:449 +#: ../includes/ot-functions-docs-page.php:452 msgid "Use" msgstr "" -#: ../includes/ot-functions-docs-page.php:449 +#: ../includes/ot-functions-docs-page.php:452 msgid "instead" msgstr "" -#: ../includes/ot-functions-docs-page.php:453 +#: ../includes/ot-functions-docs-page.php:456 msgid "" "This function returns, or echos if asked, a value from the \"option_tree\" " "array of saved values." msgstr "" -#: ../includes/ot-functions-docs-page.php:463 +#: ../includes/ot-functions-docs-page.php:466 msgid "Enter a unique Option Key to get a returned value or array." msgstr "" -#: ../includes/ot-functions-docs-page.php:467 +#: ../includes/ot-functions-docs-page.php:470 msgid "array" msgstr "" -#: ../includes/ot-functions-docs-page.php:467 +#: ../includes/ot-functions-docs-page.php:470 msgid "Used to cut down on database queries in template files." msgstr "" -#: ../includes/ot-functions-docs-page.php:471 -#: ../includes/ot-functions-docs-page.php:475 +#: ../includes/ot-functions-docs-page.php:474 +#: ../includes/ot-functions-docs-page.php:478 msgid "boolean" msgstr "" -#: ../includes/ot-functions-docs-page.php:471 +#: ../includes/ot-functions-docs-page.php:474 msgid "Echo the output." msgstr "" -#: ../includes/ot-functions-docs-page.php:475 +#: ../includes/ot-functions-docs-page.php:478 msgid "Used to indicate the $item_id is an array of values." msgstr "" -#: ../includes/ot-functions-docs-page.php:479 +#: ../includes/ot-functions-docs-page.php:482 msgid "integer" msgstr "" -#: ../includes/ot-functions-docs-page.php:479 +#: ../includes/ot-functions-docs-page.php:482 msgid "" "Numeric offset key for the $item_id array, -1 will return all values (an " "array starts at 0)." msgstr "" -#: ../includes/ot-functions-docs-page.php:507 +#: ../includes/ot-functions-docs-page.php:510 msgid "" "If you're using the plugin version of OptionTree it is highly recommended to " "include a function_exists check in your code, as described in " @@ -1481,32 +1647,32 @@ msgid "" "ot_get_option() function available." msgstr "" -#: ../includes/ot-functions-docs-page.php:509 +#: ../includes/ot-functions-docs-page.php:512 msgid "String Examples" msgstr "" -#: ../includes/ot-functions-docs-page.php:511 +#: ../includes/ot-functions-docs-page.php:514 msgid "Returns the value of test_input." msgstr "" -#: ../includes/ot-functions-docs-page.php:517 +#: ../includes/ot-functions-docs-page.php:520 msgid "" "Returns the value of test_input, but also has a default value " "if it returns empty." msgstr "" -#: ../includes/ot-functions-docs-page.php:523 +#: ../includes/ot-functions-docs-page.php:526 msgid "Array Examples" msgstr "" -#: ../includes/ot-functions-docs-page.php:525 +#: ../includes/ot-functions-docs-page.php:528 msgid "" "Assigns the value of navigation_ids to the variable $ids. It then echos an unordered list of links (navigation) using " "wp_list_pages()." msgstr "" -#: ../includes/ot-functions-docs-page.php:545 +#: ../includes/ot-functions-docs-page.php:548 msgid "" "The next two examples demonstrate how to use the Measurement option type. The Measurement option type is an array with two key/" @@ -1514,15 +1680,15 @@ msgid "" "unit of measurement." msgstr "" -#: ../includes/ot-functions-docs-page.php:571 +#: ../includes/ot-functions-docs-page.php:574 msgid "This example displays a very basic slider loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:616 +#: ../includes/ot-functions-docs-page.php:619 msgid "It's Super Simple" msgstr "" -#: ../includes/ot-functions-docs-page.php:618 +#: ../includes/ot-functions-docs-page.php:621 msgid "" "Layouts make your theme awesome! With theme options data that you can save/" "import/export you can package themes with different color variations, or " @@ -1530,7 +1696,7 @@ msgid "" "a snapshot of your data as a layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:620 +#: ../includes/ot-functions-docs-page.php:623 msgid "" "Once you have created all your different layouts, or theme variations, you " "can save them to a separate text file for repackaging with your theme. " @@ -1539,117 +1705,117 @@ msgid "" "previous options data." msgstr "" -#: ../includes/ot-functions-docs-page.php:622 +#: ../includes/ot-functions-docs-page.php:625 msgid "" " Adding a layout is ridiculously easy, follow these steps and you'll be on " "your way to having a WordPress super theme." msgstr "" -#: ../includes/ot-functions-docs-page.php:624 +#: ../includes/ot-functions-docs-page.php:627 msgid "For Developers" msgstr "" -#: ../includes/ot-functions-docs-page.php:626 -#: ../includes/ot-functions-docs-page.php:655 +#: ../includes/ot-functions-docs-page.php:629 +#: ../includes/ot-functions-docs-page.php:658 msgid "Creating a Layout" msgstr "" -#: ../includes/ot-functions-docs-page.php:628 -#: ../includes/ot-functions-docs-page.php:635 -#: ../includes/ot-functions-docs-page.php:641 +#: ../includes/ot-functions-docs-page.php:631 +#: ../includes/ot-functions-docs-page.php:638 +#: ../includes/ot-functions-docs-page.php:644 msgid "Go to the OptionTre->Settings->Layouts tab." msgstr "" -#: ../includes/ot-functions-docs-page.php:629 +#: ../includes/ot-functions-docs-page.php:632 msgid "" "Enter a name for your layout in the text field and hit \"Save Layouts\", " "you've created your first layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:630 -#: ../includes/ot-functions-docs-page.php:659 +#: ../includes/ot-functions-docs-page.php:633 +#: ../includes/ot-functions-docs-page.php:662 msgid "Adding a new layout is as easy as repeating the steps above." msgstr "" -#: ../includes/ot-functions-docs-page.php:633 -#: ../includes/ot-functions-docs-page.php:662 +#: ../includes/ot-functions-docs-page.php:636 +#: ../includes/ot-functions-docs-page.php:665 msgid "Activating a Layout" msgstr "" -#: ../includes/ot-functions-docs-page.php:636 +#: ../includes/ot-functions-docs-page.php:639 msgid "Click on the activate layout button in the actions list." msgstr "" -#: ../includes/ot-functions-docs-page.php:639 -#: ../includes/ot-functions-docs-page.php:668 +#: ../includes/ot-functions-docs-page.php:642 +#: ../includes/ot-functions-docs-page.php:671 msgid "Deleting a Layout" msgstr "" -#: ../includes/ot-functions-docs-page.php:642 +#: ../includes/ot-functions-docs-page.php:645 msgid "Click on the delete layout button in the actions list." msgstr "" -#: ../includes/ot-functions-docs-page.php:645 -#: ../includes/ot-functions-docs-page.php:673 +#: ../includes/ot-functions-docs-page.php:648 +#: ../includes/ot-functions-docs-page.php:676 msgid "Edit Layout Data" msgstr "" -#: ../includes/ot-functions-docs-page.php:647 -#: ../includes/ot-functions-docs-page.php:657 -#: ../includes/ot-functions-docs-page.php:664 +#: ../includes/ot-functions-docs-page.php:650 +#: ../includes/ot-functions-docs-page.php:660 +#: ../includes/ot-functions-docs-page.php:667 msgid "Go to the Appearance->Theme Options page." msgstr "" -#: ../includes/ot-functions-docs-page.php:648 -#: ../includes/ot-functions-docs-page.php:676 +#: ../includes/ot-functions-docs-page.php:651 +#: ../includes/ot-functions-docs-page.php:679 msgid "" "Modify and save your theme options and the layout will be updated " "automatically." msgstr "" -#: ../includes/ot-functions-docs-page.php:649 -#: ../includes/ot-functions-docs-page.php:677 +#: ../includes/ot-functions-docs-page.php:652 +#: ../includes/ot-functions-docs-page.php:680 msgid "" "Saving theme options data will update the currently active layout, so before " "you start saving make sure you want to modify the current layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:650 +#: ../includes/ot-functions-docs-page.php:653 msgid "" "If you want to edit a new layout, first create it then save your theme " "options." msgstr "" -#: ../includes/ot-functions-docs-page.php:653 +#: ../includes/ot-functions-docs-page.php:656 msgid "End-Users Mode" msgstr "" -#: ../includes/ot-functions-docs-page.php:658 +#: ../includes/ot-functions-docs-page.php:661 msgid "" "Enter a name for your layout in the text field and hit \"New Layout\", " "you've created your first layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:665 +#: ../includes/ot-functions-docs-page.php:668 msgid "" "Choose a layout from the select list and click the \"Activate Layout\" " "button." msgstr "" -#: ../includes/ot-functions-docs-page.php:670 +#: ../includes/ot-functions-docs-page.php:673 msgid "End-Users mode does not allow deleting layouts." msgstr "" -#: ../includes/ot-functions-docs-page.php:675 +#: ../includes/ot-functions-docs-page.php:678 msgid "Go to the Appearance->Theme Options tab." msgstr "" -#: ../includes/ot-functions-docs-page.php:706 -#: ../includes/ot-functions-docs-page.php:788 +#: ../includes/ot-functions-docs-page.php:709 +#: ../includes/ot-functions-docs-page.php:791 msgid "How-to-guide" msgstr "" -#: ../includes/ot-functions-docs-page.php:708 +#: ../includes/ot-functions-docs-page.php:711 msgid "" "There are a few simple steps you need to take in order to use OptionTree's " "built in Meta Box API. In the code below I'll show you a basic demo of how " @@ -1660,7 +1826,7 @@ msgid "" "can reference." msgstr "" -#: ../includes/ot-functions-docs-page.php:710 +#: ../includes/ot-functions-docs-page.php:713 msgid "" "It's important to note that Meta Boxes do not support WYSIWYG editors at " "this time and if you set one of your options to Textarea it will " @@ -1668,36 +1834,36 @@ msgid "" "WordPress released this statement regarding the wp_editor() function:" msgstr "" -#: ../includes/ot-functions-docs-page.php:712 +#: ../includes/ot-functions-docs-page.php:715 msgid "" "Once instantiated, the WYSIWYG editor cannot be moved around in the DOM. " "What this means in practical terms, is that you cannot put it in meta-boxes " "that can be dragged and placed elsewhere on the page." msgstr "" -#: ../includes/ot-functions-docs-page.php:714 +#: ../includes/ot-functions-docs-page.php:717 msgid "Create and include your custom meta boxes file." msgstr "" -#: ../includes/ot-functions-docs-page.php:716 +#: ../includes/ot-functions-docs-page.php:719 msgid "" "Create a file and name it anything you want, maybe meta-boxes.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:717 +#: ../includes/ot-functions-docs-page.php:720 msgid "" "As well, you'll probably want to create a directory named includes to put your meta-boxes.php into which will help keep you " "file structure nice and tidy." msgstr "" -#: ../includes/ot-functions-docs-page.php:718 -#: ../includes/ot-functions-docs-page.php:818 +#: ../includes/ot-functions-docs-page.php:721 +#: ../includes/ot-functions-docs-page.php:821 msgid "Add the following code to your functions.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:728 +#: ../includes/ot-functions-docs-page.php:731 msgid "" "Add a variation of the following code to your meta-boxes.php. " "You'll obviously need to fill it in with all your custom array values. It's " @@ -1706,7 +1872,7 @@ msgid "" "before OptionTree was loaded the sky would fall on your head." msgstr "" -#: ../includes/ot-functions-docs-page.php:790 +#: ../includes/ot-functions-docs-page.php:793 msgid "" "There are a few simple steps you need to take in order to use OptionTree as " "a theme included module. In the code below I'll show you a basic demo of how " @@ -1717,28 +1883,28 @@ msgid "" "contains a file named demo-theme-options.php you can reference." msgstr "" -#: ../includes/ot-functions-docs-page.php:792 +#: ../includes/ot-functions-docs-page.php:795 msgid "Step 1: Include the plugin & turn on theme mode." msgstr "" -#: ../includes/ot-functions-docs-page.php:794 +#: ../includes/ot-functions-docs-page.php:797 #, php-format msgid "Download the latest version of %s and unarchive the %s directory." msgstr "" -#: ../includes/ot-functions-docs-page.php:795 +#: ../includes/ot-functions-docs-page.php:798 #, php-format msgid "" "Put the %s directory in the root of your theme. For example, the server path " "would be %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:796 +#: ../includes/ot-functions-docs-page.php:799 #, php-format msgid "Add the following code to the beginning of your %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:810 +#: ../includes/ot-functions-docs-page.php:813 #, php-format msgid "" "For a list of all the OptionTree UI display filters refer to the %s file " @@ -1746,38 +1912,38 @@ msgid "" "for developing themes with Theme Mode." msgstr "" -#: ../includes/ot-functions-docs-page.php:812 +#: ../includes/ot-functions-docs-page.php:815 msgid "" "You now have OptionTree built into your theme and anytime an update is " "available replace the old version with the new one." msgstr "" -#: ../includes/ot-functions-docs-page.php:814 +#: ../includes/ot-functions-docs-page.php:817 msgid "Step 2: Create Theme Options without using the UI Builder." msgstr "" -#: ../includes/ot-functions-docs-page.php:816 +#: ../includes/ot-functions-docs-page.php:819 msgid "" "Create a file and name it anything you want, maybe theme-options.php, or use the built in file export to create it for you. Remember, you " "should always check the file for errors before including it in your theme." msgstr "" -#: ../includes/ot-functions-docs-page.php:817 +#: ../includes/ot-functions-docs-page.php:820 msgid "" "As well, you'll probably want to create a directory named includes to put your theme-options.php into which will help keep " "you file structure nice and tidy." msgstr "" -#: ../includes/ot-functions-docs-page.php:828 +#: ../includes/ot-functions-docs-page.php:831 msgid "" "Add a variation of the following code to your theme-options.php. You'll obviously need to fill it in with all your custom array values " "for contextual help (optional), sections (required), and settings (required)." msgstr "" -#: ../includes/ot-functions-docs-page.php:831 +#: ../includes/ot-functions-docs-page.php:834 msgid "" "The code below is a boilerplate to get your started. For a full list of the " "available option types click the \"Option Types\" tab above. Also a quick " @@ -1809,7 +1975,7 @@ msgid "background-size" msgstr "" #: ../includes/ot-functions-option-types.php:227 -#: ../includes/ot-functions-option-types.php:2237 +#: ../includes/ot-functions-option-types.php:2419 msgid "Add Media" msgstr "" @@ -1821,26 +1987,28 @@ msgstr "" #: ../includes/ot-functions-option-types.php:346 #: ../includes/ot-functions-option-types.php:607 #: ../includes/ot-functions-option-types.php:1149 -#: ../includes/ot-functions-option-types.php:1332 -#: ../includes/ot-functions-option-types.php:1695 -#: ../includes/ot-functions-option-types.php:1810 +#: ../includes/ot-functions-option-types.php:1260 +#: ../includes/ot-functions-option-types.php:1863 +#: ../includes/ot-functions-option-types.php:1978 msgid "Choose One" msgstr "" #: ../includes/ot-functions-option-types.php:555 #: ../includes/ot-functions-option-types.php:613 -#: ../includes/ot-functions-option-types.php:1283 -#: ../includes/ot-functions-option-types.php:1338 +#: ../includes/ot-functions-option-types.php:1211 +#: ../includes/ot-functions-option-types.php:1266 msgid "No Posts Found" msgstr "" #: ../includes/ot-functions-option-types.php:874 -#: ../includes/ot-functions-option-types.php:1227 +#: ../includes/ot-functions-option-types.php:1565 +#: ../includes/ot-functions-option-types.php:1730 msgid "Add New" msgstr "" #: ../includes/ot-functions-option-types.php:877 -#: ../includes/ot-functions-option-types.php:1230 +#: ../includes/ot-functions-option-types.php:1568 +#: ../includes/ot-functions-option-types.php:1733 msgid "You can re-order with drag & drop, the order will update after saving." msgstr "" @@ -1857,21 +2025,89 @@ msgstr "" msgid "No Pages Found" msgstr "" -#: ../includes/ot-functions-option-types.php:1557 +#: ../includes/ot-functions-option-types.php:1488 msgid "Choose Sidebar" msgstr "" -#: ../includes/ot-functions-option-types.php:1562 +#: ../includes/ot-functions-option-types.php:1493 msgid "No Sidebars" msgstr "" +#: ../includes/ot-functions-option-types.php:1601 +msgid "Facebook" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1606 +msgid "Twitter" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1611 +msgid "Google+" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1616 +msgid "LinkedIn" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1621 +msgid "Pinterest" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1626 +msgid "Youtube" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1631 +msgid "Dribbble" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1636 +msgid "Github" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1641 +msgid "Forrst" +msgstr "" + #: ../includes/ot-functions-option-types.php:1646 -#: ../includes/ot-functions-option-types.php:1700 +msgid "Digg" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1651 +msgid "Delicious" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1656 +msgid "Tumblr" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1661 +msgid "Skype" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1666 +msgid "SoundCloud" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1671 +msgid "Vimeo" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1676 +msgid "Flickr" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1681 +msgid "VK.com" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1814 +#: ../includes/ot-functions-option-types.php:1868 msgid "No Tags Found" msgstr "" -#: ../includes/ot-functions-option-types.php:1758 -#: ../includes/ot-functions-option-types.php:1815 +#: ../includes/ot-functions-option-types.php:1926 +#: ../includes/ot-functions-option-types.php:1983 msgid "No Taxonomies Found" msgstr "" diff --git a/option-tree/ot-loader.php b/option-tree/ot-loader.php index eb2b7de..4e678ec 100644 --- a/option-tree/ot-loader.php +++ b/option-tree/ot-loader.php @@ -1,14 +1,31 @@

    ' . __( 'OptionTree is installed as a plugin and also embedded in your current theme. Please deactivate the plugin to load the theme dependent version of OptionTree, and remove this warning.', 'option-tree' ) . '

    '; + + } + + add_action( 'admin_notices', 'ot_conflict_notice' ); + +} + /** * This is the OptionTree loader class. * @@ -95,7 +112,7 @@ public function load_textdomain() { } else { - load_theme_textdomain( 'option-tree', DIRECTORY_SEPARATOR . OT_LANG_DIR . 'theme-mode' ); + load_theme_textdomain( 'option-tree', OT_LANG_DIR . 'theme-mode' ); } @@ -142,7 +159,7 @@ private function constants() { /** * Current Version number. */ - define( 'OT_VERSION', '2.3.4' ); + define( 'OT_VERSION', '2.4.0' ); /** * For developers: Theme mode. @@ -258,6 +275,16 @@ private function constants() { * @since 2.0 */ define( 'OT_ALLOW_UNFILTERED_HTML', apply_filters( 'ot_allow_unfiltered_html', false ) ); + + /** + * For developers: Post Formats. + * + * Run a filter and set to true if you want OptionTree + * to load meta boxes for post formats. + * + * @since 2.4.0 + */ + define( 'OT_POST_FORMATS', apply_filters( 'ot_post_formats', false ) ); /** * Check if in theme mode. @@ -325,6 +352,11 @@ private function admin_includes() { $files[] = 'ot-meta-box-api'; } + /* include the post formats api */ + if ( OT_META_BOXES == true && OT_POST_FORMATS == true ) { + $files[] = 'ot-post-formats-api'; + } + /* include the settings & docs pages */ if ( OT_SHOW_PAGES == true ) { $files[] = 'ot-functions-settings-page'; @@ -463,6 +495,9 @@ private function hooks() { /* AJAX call to create a new list item */ add_action( 'wp_ajax_add_list_item', array( $this, 'add_list_item' ) ); + /* AJAX call to create a new social link */ + add_action( 'wp_ajax_add_social_links', array( $this, 'add_social_links' ) ); + // Adds the temporary hacktastic shortcode add_filter( 'media_view_settings', array( $this, 'shortcode' ), 10, 2 ); @@ -603,6 +638,14 @@ public function add_list_item() { die(); } + /** + * AJAX utility function for adding a new social link. + */ + public function add_social_links() { + ot_social_links_view( $_REQUEST['name'], $_REQUEST['count'], array(), $_REQUEST['post_id'], $_REQUEST['get_option'], unserialize( ot_decode( $_REQUEST['settings'] ) ), $_REQUEST['type'] ); + die(); + } + /** * Fake the gallery shortcode * diff --git a/option-tree/readme.txt b/option-tree/readme.txt index 9921652..08e23da 100644 --- a/option-tree/readme.txt +++ b/option-tree/readme.txt @@ -3,8 +3,8 @@ Contributors: valendesigns Donate link: http://bit.ly/NuXI3T Tags: options, theme options, meta boxes Requires at least: 3.5 -Tested up to: 3.8.1 -Stable tag: 2.3.4 +Tested up to: 3.9.1 +Stable tag: 2.4.0 License: GPLv3 Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. @@ -49,6 +49,7 @@ This is a complete list of all the available option types that come shipped with * Select * Sidebar Select * Slider +* Social Links * Tab * Tag Checkbox * Tag Select @@ -74,6 +75,7 @@ This is a complete list of all the available option types that come shipped with 1. Download the latest version of OptionTree and unarchive the `.zip` directory. 1. Put the `option-tree` directory in the root of your theme. For example, the server path would be `/wp-content/themes/theme-name/option-tree/`. +1. You must deactivate and/or delete the plugin version of OptionTree. 1. Add the following code to the beginning of your `functions.php`. `/** @@ -106,6 +108,28 @@ There sure is, and I'm glad you asked. Download and activate the [OptionTree The == Changelog == += 2.4.0 = +* Added filter 'ot_post_formats' which loads meta boxes specifically for post formats. +* Added the Social Links option type. +* Fixed OptionTree being conflicted due to having both the plugin and theme version activated. Contributors via github @valendesigns and @bitcommit. +* Added an admin notice when the UI Builder is being overridden by custom theme options. +* Allow the Upload option type to be stored as an attachment ID by adding `ot-upload-attachment-id` to the elements `class` attribute. Contributors via github @valendesigns and @krisarsov. +* Fixed an issue with the CSS option type not showing the Ace editor in a metabox that is broken into tabbed content. +* Fixed missing option type translation strings. Contributors via github @RistoNiinemets. +* Replaced mysql functions with the wpdb equivalent. Contributors via github @joshlevinson. +* Fixed search order of the `contains` condition string. Contributors via github @designst. +* Added meta box field wrapper class if a custom field class is defined in the settings. Contributors via github @designst. +* Added filter 'ot_type_select_choices' to dynamically change select choices. Contributors via github @maimairel and @valendesigns. +* Fixed a bug that added an unnecessary directory separator to the `load_theme_textdomain()` `$path` variable. Contributors via github @PatrickDelancy and @valendesigns. +* Fixed the state of metabox radio buttons after a Drag & Drop event. Contributors via github @themovation and @valendesigns. +* Fixed conditions not working correctly within list items. +* Fixed the min-height issue when using tabs in metaboxes. +* Added filter `ot_recognized_font_sizes` to dynamically change the font sizes by field ID. +* Added filter `ot_recognized_letter_spacing` to dynamically change the letter spacing by field ID. +* Added filter `ot_recognized_line_heights` to dynamically change the line heights by field ID. +* Fixed a style issue where list item labels in metaboxes were not displaying correctly. +* Fixed an issue where the WooCommerce plugin would alter the style of metabox tabs on product pages. + = 2.3.4 = * Hotfix - Fixed an issue where condition number values were being treated like strings and not returning a correct boolean response. From c2c11a42c3967a0062225fca7dffe20c040b88e8 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Sat, 17 May 2014 07:17:32 +0200 Subject: [PATCH 23/62] Font Awesome 4.1.0 --- fonts/FontAwesome.otf | Bin 62856 -> 75188 bytes fonts/font-awesome.min.css | 4 +- fonts/fontawesome-webfont.eot | Bin 38205 -> 72449 bytes fonts/fontawesome-webfont.svg | 848 ++++++++++++++++++--------------- fonts/fontawesome-webfont.ttf | Bin 80652 -> 141564 bytes fonts/fontawesome-webfont.woff | Bin 44432 -> 83760 bytes 6 files changed, 471 insertions(+), 381 deletions(-) diff --git a/fonts/FontAwesome.otf b/fonts/FontAwesome.otf index 8b0f54e47e1d356dcf1496942a50e228e0f1ee14..3461e3fce6a37f2321ecbe64707f04c0a4f05424 100644 GIT binary patch delta 44573 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 diff --git a/fonts/font-awesome.min.css b/fonts/font-awesome.min.css index 02f4029..f39d134 100644 --- a/fonts/font-awesome.min.css +++ b/fonts/font-awesome.min.css @@ -1,4 +1,4 @@ /*! - * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('fontawesome-webfont.eot?v=4.0.3');src:url('fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'),url('fontawesome-webfont.woff?v=4.0.3') format('woff'),url('fontawesome-webfont.ttf?v=4.0.3') format('truetype'),url('fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857142858em;text-align:center}.fa-ul{padding-left:0;margin-left:2.142857142857143em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;top:.14285714285714285em;text-align:center}.fa-li.fa-lg{left:-1.8571428571428572em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-asc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-desc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"} \ No newline at end of file + */@font-face{font-family:'FontAwesome';src:url('fontawesome-webfont.eot?v=4.1.0');src:url('fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),url('fontawesome-webfont.woff?v=4.1.0') format('woff'),url('fontawesome-webfont.ttf?v=4.1.0') format('truetype'),url('fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-square:before,.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"} \ No newline at end of file diff --git a/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot index 7c79c6a6bc9a128a2a8eaffbe49a4338625fdbc2..6cfd56609567bc9db55186415c694d1d32808fc2 100644 GIT binary patch literal 72449 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
    U~M!&>g0b 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 literal 38205 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 E0QL`y%>V!Z diff --git a/fonts/fontawesome-webfont.svg b/fonts/fontawesome-webfont.svg index 45fdf33..a9f8469 100644 --- a/fonts/fontawesome-webfont.svg +++ b/fonts/fontawesome-webfont.svg @@ -14,10 +14,11 @@ + - + - + @@ -30,385 +31,474 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf index e89738de5eaf8fca33a2f2cdc5cb4929caa62b71..5cd6cff6d6f6cf438a882e366420dbcc5dddd3f1 100644 GIT binary patch literal 141564 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ƓCICn66&u!PHl6pn& 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%0D%8GQ!Ai?6y^fVUY%4hi>cI9O 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 z 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
    V$fDV|Iw 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 Date: Sat, 17 May 2014 07:23:55 +0200 Subject: [PATCH 24/62] 2.1.5 --- changelog.txt | 8 +++++++- style.css | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 1414b47..47df8bd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,13 @@ Theme : Anew -Version : 2.1.4 +Version : 2.1.5 Author : Alexander "Alx" Agnarson - http://alxmedia.se +May 17 2014 - 2.1.5 +=========================================================== +- Updated to OptionTree 2.4.0 +- Updated to Font Awesome 4.1.0 +- Improved alx_wp_title function - @Gummibeer (via GitHub) + April 16 2014 - 2.1.4 =========================================================== - Fixed IE8 blank page issue, downgraded to stable selectivizr.js 1.0.2 instead of 1.0.3b diff --git a/style.css b/style.css index 765e398..0c9ff04 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.1.4 +Version: 2.1.5 Description:
    Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From 1525460934acd46e594f188596c80bfde5e31d8d Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 4 Jun 2014 17:55:40 +0200 Subject: [PATCH 25/62] OptionTree 2.4.2 --- option-tree/assets/css/ot-admin-rtl.css | 2 +- option-tree/assets/css/ot-admin.css | 24 +- option-tree/assets/js/ot-admin.js | 14 +- .../assets/theme-mode/demo-functions.php | 4 +- .../assets/theme-mode/demo-theme-options.php | 2 +- option-tree/includes/ot-functions-admin.php | 90 ++++- .../includes/ot-functions-docs-page.php | 6 +- .../includes/ot-functions-option-types.php | 26 +- option-tree/includes/ot-meta-box-api.php | 2 +- option-tree/languages/option-tree.po | 334 +++++++++--------- option-tree/ot-loader.php | 27 +- option-tree/readme.txt | 37 +- 12 files changed, 349 insertions(+), 219 deletions(-) diff --git a/option-tree/assets/css/ot-admin-rtl.css b/option-tree/assets/css/ot-admin-rtl.css index 60a372e..9ad013b 100644 --- a/option-tree/assets/css/ot-admin-rtl.css +++ b/option-tree/assets/css/ot-admin-rtl.css @@ -290,7 +290,7 @@ div.option-tree-ui-media-wrap { background-image: url(../images/ot-select-hover-rtl.png); } .select-wrapper span { - padding-left: 0; + padding-left: 27px; padding-right: 7px; } .type-measurement .select-wrapper { diff --git a/option-tree/assets/css/ot-admin.css b/option-tree/assets/css/ot-admin.css index de3fa8c..74cfc9f 100644 --- a/option-tree/assets/css/ot-admin.css +++ b/option-tree/assets/css/ot-admin.css @@ -2091,8 +2091,9 @@ li ul .format-setting-label { display: block; float: left; font-size: 12px; - height: 27px; + height: 29px; margin: 0 5px 5px 0; + max-width: 100%; width: auto; -webkit-border-radius: 2px; -moz-border-radius: 2px; @@ -2100,6 +2101,9 @@ li ul .format-setting-label { -webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.05); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } .select-wrapper:hover { background-image: url(../images/ot-select-hover.png); @@ -2111,6 +2115,7 @@ select.option-tree-ui-select { font-size: 14px; height: 29px; margin: 0; + max-width: 100%; -moz-opacity: 0; opacity: 0; padding: 0 !important; @@ -2126,7 +2131,9 @@ select.option-tree-ui-select option { .select-wrapper span { height: 27px; line-height: 27px; + overflow: hidden; padding-left: 7px; + padding-right: 27px; position: absolute; z-index: 2; } @@ -2153,21 +2160,6 @@ select.option-tree-ui-select option { } } -/* Webkit */ -@media screen and (-webkit-min-device-pixel-ratio:0) { - .select-wrapper span { - height: 26px; - line-height: 26px; - } -} - -/* Opera 11 */ -@media not screen and (1) { - .select-wrapper { - height: 26px; - } -} - /* -------------------------------------------------- :: Measurement ---------------------------------------------------*/ diff --git a/option-tree/assets/js/ot-admin.js b/option-tree/assets/js/ot-admin.js index bce6a11..608bcb6 100644 --- a/option-tree/assets/js/ot-admin.js +++ b/option-tree/assets/js/ot-admin.js @@ -150,6 +150,13 @@ $(document).on('keyup', '.option-tree-setting-title', function() { OT_UI.edit_title(this); }); + // Automatically fill option IDs with clean versions of their respective option labels + $(document).on('blur', '.option-tree-setting-title', function() { + var optionId = $(this).parents('.option-tree-setting-body').find('[type="text"][name$="id]"]') + if ( optionId.val() === '' ) { + optionId.val($(this).val().replace(/[^a-z0-9]/gi,'_').toLowerCase()); + } + }); }, init_edit_id: function() { $(document).on('keyup', '.section-id', function(){ @@ -415,12 +422,7 @@ btnContent += '
    '; } btnContent += ''+option_tree.remove_media_text+''; - if ( save_attachment_id ) { - $('#'+field_id).val(attachment_id).attr('disabled','disabled'); - $('#'+field_id).parents('.type-upload').addClass('ot-upload-attachment-id-wrap') - } else { - $('#'+field_id).val(href); - } + $('#'+field_id).val( ( save_attachment_id ? attachment_id : href ) ); $('#'+field_id+'_media').remove(); $('#'+field_id).parent().parent('div').append('
    '); $('#'+field_id+'_media').append(btnContent).slideDown(); diff --git a/option-tree/assets/theme-mode/demo-functions.php b/option-tree/assets/theme-mode/demo-functions.php index 1ed973f..c29a9e1 100644 --- a/option-tree/assets/theme-mode/demo-functions.php +++ b/option-tree/assets/theme-mode/demo-functions.php @@ -57,9 +57,9 @@ /** * OptionTree in Theme Mode */ -# load_template( trailingslashit( get_template_directory() ) . 'option-tree/ot-loader.php' ); +# require( trailingslashit( get_template_directory() ) . 'option-tree/ot-loader.php' ); /** * Theme Options */ -# load_template( trailingslashit( get_template_directory() ) . 'admin/theme-options.php' ); \ No newline at end of file +# require( trailingslashit( get_template_directory() ) . 'admin/theme-options.php' ); \ No newline at end of file diff --git a/option-tree/assets/theme-mode/demo-theme-options.php b/option-tree/assets/theme-mode/demo-theme-options.php index 91bca68..311ef1b 100644 --- a/option-tree/assets/theme-mode/demo-theme-options.php +++ b/option-tree/assets/theme-mode/demo-theme-options.php @@ -503,7 +503,7 @@ function custom_theme_options() { 'label' => __( 'Social Links', 'theme-text-domain' ), 'desc' => '

    ' . sprintf( __( 'The Social Links option type utilizes a drag & drop interface to create a list of social links. There are a few filters that make extending this option type easy. You can set the %s filter to %s and turn off loading default values. Use the %s filter to change the default values that are loaded. To filter the settings array use the %s filter.', 'theme-text-domain' ), 'ot_type_social_links_load_defaults', 'false', 'ot_type_social_links_defaults', 'ot_social_links_settings' ) . '

    ', 'std' => '', - 'type' => 'sidebar-select', + 'type' => 'social-links', 'section' => 'option_types', 'rows' => '', 'post_type' => '', diff --git a/option-tree/includes/ot-functions-admin.php b/option-tree/includes/ot-functions-admin.php index 9a4c11d..27b626a 100644 --- a/option-tree/includes/ot-functions-admin.php +++ b/option-tree/includes/ot-functions-admin.php @@ -3000,6 +3000,7 @@ function ot_insert_css_with_markers( $field_id = '', $insertion = '', $meta = fa $value = ''; $option_id = str_replace( array( '{{', '}}' ), '', $option ); $option_array = explode( '|', $option_id ); + $option_type = ot_get_option_type_by_id( $option_id ); /* get the array value */ if ( $meta ) { @@ -3078,9 +3079,26 @@ function ot_insert_css_with_markers( $field_id = '', $insertion = '', $meta = fa if ( ! empty( $value['background-color'] ) ) $bg[] = $value['background-color']; - if ( ! empty( $value['background-image'] ) ) + if ( ! empty( $value['background-image'] ) ) { + + /* If an attachment ID is stored here fetch its URL and replace the value */ + if ( wp_attachment_is_image( $value['background-image'] ) ) { + + $attachment_data = wp_get_attachment_image_src( $value['background-image'], 'original' ); + + /* check for attachment data */ + if ( $attachment_data ) { + + $value['background-image'] = $attachment_data[0]; + + } + + } + $bg[] = 'url("' . $value['background-image'] . '")'; + } + if ( ! empty( $value['background-repeat'] ) ) $bg[] = $value['background-repeat']; @@ -3106,18 +3124,32 @@ function ot_insert_css_with_markers( $field_id = '', $insertion = '', $meta = fa } } else { - + $value = $value[$option_array[1]]; } } + /* If an attachment ID is stored here fetch its URL and replace the value */ + if ( $option_type == 'upload' && wp_attachment_is_image( $value ) ) { + + $attachment_data = wp_get_attachment_image_src( $value, 'original' ); + + /* check for attachment data */ + if ( $attachment_data ) { + + $value = $attachment_data[0]; + + } + + } + // Filter the CSS - $value = apply_filters( 'ot_insert_css_with_markers_value', $value, $option_id ); + $value = apply_filters( 'ot_insert_css_with_markers_value', $value, $option_id ); /* insert CSS, even if the value is empty */ - $insertion = stripslashes( str_replace( $option, $value, $insertion ) ); + $insertion = stripslashes( str_replace( $option, $value, $insertion ) ); } @@ -3896,7 +3928,7 @@ function ot_list_item_view( $name, $key, $list_item = array(), $post_id = 0, $ge } /* only allow simple textarea inside a list-item due to known DOM issues with wp_editor() */ - if ( $_args['type'] == 'textarea' ) + if ( apply_filters( 'ot_override_forced_textarea_simple', false, $field['id'] ) == false && $_args['type'] == 'textarea' ) $_args['type'] = 'textarea-simple'; /* option body, list-item is not allowed inside another list-item */ @@ -3926,10 +3958,10 @@ function ot_list_item_view( $name, $key, $list_item = array(), $post_id = 0, $ge * @param int $key The array key for the current element. * @param array An array of values for the current list item. * - * @return void + * @return void * - * @access public - * @since 2.4.0 + * @access public + * @since 2.4.0 */ if ( ! function_exists( 'ot_social_links_view' ) ) { @@ -4838,5 +4870,47 @@ function ot_meta_box_post_format_audio( $pages = 'post' ) { } +/** + * Returns the option type by ID. + * + * @param string $option_id The option ID + * @return string $settings_id The settings array ID + * @return string The option type. + * + * @access public + * @since 2.4.2 + */ +if ( ! function_exists( 'ot_get_option_type_by_id' ) ) { + + function ot_get_option_type_by_id( $option_id, $settings_id = '' ) { + + if ( empty( $settings_id ) ) { + + $settings_id = ot_settings_id(); + + } + + $settings = get_option( $settings_id, array() ); + + if ( isset( $settings['settings'] ) ) { + + foreach( $settings['settings'] as $value ) { + + if ( $option_id == $value['id'] && isset( $value['type'] ) ) { + + return $value['type']; + + } + + } + + } + + return false; + + } + +} + /* End of file ot-functions-admin.php */ /* Location: ./includes/ot-functions-admin.php */ \ No newline at end of file diff --git a/option-tree/includes/ot-functions-docs-page.php b/option-tree/includes/ot-functions-docs-page.php index bbcc3f1..ce7872d 100644 --- a/option-tree/includes/ot-functions-docs-page.php +++ b/option-tree/includes/ot-functions-docs-page.php @@ -724,7 +724,7 @@ function ot_type_meta_boxes() { echo '
    /**
      * Meta Boxes
      */
    -load_template( trailingslashit( get_template_directory() ) . \'includes/meta-boxes.php\' );
    +require( trailingslashit( get_template_directory() ) . \'includes/meta-boxes.php\' );
     
    '; echo '
    -
  • 03Theme Options
  • +
  • 03Theme Options + +
  • 04Post Formats
  • 05Customization
  • 06More @@ -240,6 +245,64 @@

    Styling

    + +
    +
    + +

    03.1Shortcodes

    + +

    This theme comes bundled with a few simple shortcodes mainly for content structure. If you want to add additional shortcodes, there are many plugins out there to install.

    +

    Here is how to use them:

    +
      +
    • Divider Line +
      [hr]
      +
    • +
    • Highlight Text +
      [highlight]My highlighted text[/highlight]
      +
    • +
    • Dropcap (large first letter) +
      [dropcap]A[/dropcap]nother dropcap here.
      +
      +

      Note: If you add the dropcap in the beginning of the article, it will disappear from the excerpt. To fix this, when editing the post, click Screen Options top right. Then enable Excerpt and you can write your own custom excerpt in the content box below the main text field.

      +
      +
    • +
    • Pullquote Left +
      [pullquote-left]Pullquote text[/pullquote-left]
      +
    • +
    • Pullquote Right +
      [pullquote-right]Pullquote text[/pullquote-right]
      +
    • +
    • Responsive Columns +
      [column size="one-half"]...[/column]
      +[column size="one-half" last="true"]...[/column]
      +
      +[column size="one-third"]...[/column]
      +[column size="one-third"]...[/column]
      +[column size="one-third" last="true"]...[/column]
      +
      +[column size="two-third"]...[/column]
      +[column size="one-third" last="true"]...[/column]
      +
      +[column size="one-fourth"]...[/column]
      +[column size="one-fourth"]...[/column]
      +[column size="one-fourth"]...[/column]
      +[column size="one-fourth" last="true"]...[/column]
      +
      +[column size="three-fourth"]...[/column]
      +[column size="one-fourth" last="true"]...[/column]
      +
      +[column size="one-fifth"]...[/column]
      +[column size="one-fifth"]...[/column]
      +[column size="one-fifth"]...[/column]
      +[column size="one-fifth"]...[/column]
      +[column size="one-fifth" last="true"]...[/column]
      +
    • +
    +
    +
    + +
    @@ -471,6 +534,27 @@

    Adding CSS to custom.css

    Happy editing!

  • + + + +
    +
    + +

    05.4Change Thumbnail Size

    +

    To modify the custom thumbnail sizes for your theme, you need to copy over the whole function alx_setup() {} to your child theme, using the methods explained above.

    +

    Within this function you will find the thumbnail sizes under where it says:

    +
    // Thumbnail sizes
    + +

    Modify the height and width values as you want, using add_image_size codex as guideline to how it works. After that you've changed size and saved, you need to run the regenerate thumbnails plugin once before you will see any difference.

    + +
    +

    Important: If you have trouble with the way thumbnails are upscaling to fit the desired width or height before being cropped, you need to disable the alx_thumbnail_upscale function. You do so by adding function alx_thumbnail_upscale() {} to your child theme's functions.php, disabling the function completely.

    +
    + +
    +
    + diff --git a/style.css b/style.css index 18efa07..2feaf55 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.1.8 +Version: 2.1.9 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From dffcbb1d81a5e425d2b1acbbaf50c493742d45f2 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 22 Dec 2014 07:48:15 +0100 Subject: [PATCH 40/62] 4.1 title tags support --- functions.php | 24 ------------------------ header.php | 10 +++++----- 2 files changed, 5 insertions(+), 29 deletions(-) diff --git a/functions.php b/functions.php index e6f6bb2..7f812f1 100644 --- a/functions.php +++ b/functions.php @@ -389,30 +389,6 @@ function alx_body_class( $classes ) { add_filter( 'body_class', 'alx_body_class' ); -/* Site title -/* ------------------------------------ */ -if ( ! function_exists( 'alx_wp_title' ) ) { - - function alx_wp_title( $title ) { - // Do not filter for RSS feed / if SEO plugin installed - if ( is_feed() || class_exists('All_in_One_SEO_Pack') || class_exists('HeadSpace_Plugin') || class_exists('Platinum_SEO_Pack') || class_exists('wpSEO') || defined('WPSEO_VERSION') ) - return $title; - if ( is_front_page() ) { - $title = get_bloginfo('name').' - '.get_bloginfo('description'); - } - if ( is_front_page() && get_bloginfo('description') == '' ) { - $title = get_bloginfo('name'); - } - if ( !is_front_page() ) { - $title .= ' - '.get_bloginfo('name'); - } - return $title; - } - -} -add_filter( 'wp_title', 'alx_wp_title' ); - - /* Custom rss feed /* ------------------------------------ */ if ( ! function_exists( 'alx_feed_link' ) ) { diff --git a/header.php b/header.php index 133e492..0c33a74 100644 --- a/header.php +++ b/header.php @@ -4,11 +4,11 @@ - - <?php wp_title(''); ?> - - - + + + + <?php wp_title( '-', true, 'right' ); ?> + From 47ff3634ddc0e17bd33470640f11e3bc4d91a11e Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 22 Dec 2014 07:49:12 +0100 Subject: [PATCH 41/62] fix --- functions.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/functions.php b/functions.php index 7f812f1..8ada9df 100644 --- a/functions.php +++ b/functions.php @@ -62,7 +62,10 @@ function alx_load() { /* ------------------------------------ */ if ( ! function_exists( 'alx_setup' ) ) { - function alx_setup() { + function alx_setup() { + // Enable title tag + add_theme_support( 'title-tag' ); + // Enable automatic feed links add_theme_support( 'automatic-feed-links' ); From 1503e6cae7b835f8129653da01bc4cb1dc237cc2 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 22 Dec 2014 07:58:26 +0100 Subject: [PATCH 42/62] middot title separator --- header.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/header.php b/header.php index 0c33a74..1316f26 100644 --- a/header.php +++ b/header.php @@ -7,7 +7,7 @@ - <?php wp_title( '-', true, 'right' ); ?> + <?php wp_title( '·', true, 'right' ); ?> From 362f73c980baeaae57caf511d8af957cfe39853c Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 22 Dec 2014 09:13:20 +0100 Subject: [PATCH 43/62] fix --- header.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/header.php b/header.php index 1316f26..0c33a74 100644 --- a/header.php +++ b/header.php @@ -7,7 +7,7 @@ - <?php wp_title( '·', true, 'right' ); ?> + <?php wp_title( '-', true, 'right' ); ?> From 7abb73bcfb5c8f1c1c1c8240cd7484c4a896e223 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Sun, 28 Dec 2014 08:13:28 +0100 Subject: [PATCH 44/62] OptionTree 2.4.6 --- option-tree/assets/css/ot-admin.css | 3 +- option-tree/assets/js/ot-admin.js | 82 ++- option-tree/includes/ot-cleanup-api.php | 293 ++++++++++ option-tree/includes/ot-functions-admin.php | 66 ++- .../includes/ot-functions-option-types.php | 2 +- option-tree/includes/ot-settings-api.php | 1 - option-tree/languages/option-tree.po | 519 +++++++++++------- option-tree/ot-loader.php | 16 +- option-tree/readme.txt | 29 +- 9 files changed, 758 insertions(+), 253 deletions(-) create mode 100644 option-tree/includes/ot-cleanup-api.php diff --git a/option-tree/assets/css/ot-admin.css b/option-tree/assets/css/ot-admin.css index 74cfc9f..f7aa5b8 100644 --- a/option-tree/assets/css/ot-admin.css +++ b/option-tree/assets/css/ot-admin.css @@ -1491,7 +1491,8 @@ position: relative; width: 100%; } -.format-setting-wrap { +.format-setting-wrap, +.option-tree-sortable .format-settings { padding: 10px 0 20px 0; } diff --git a/option-tree/assets/js/ot-admin.js b/option-tree/assets/js/ot-admin.js index 608bcb6..f0d82ca 100644 --- a/option-tree/assets/js/ot-admin.js +++ b/option-tree/assets/js/ot-admin.js @@ -14,7 +14,7 @@ this.init_add(); this.init_edit(); this.init_remove(); - this.init_edit_title() + this.init_edit_title(); this.init_edit_id(); this.init_activate_layout(); this.init_conditions(); @@ -24,6 +24,7 @@ this.init_tabs(); this.init_radio_image_select(); this.init_select_wrapper(); + this.bind_select_wrapper(); this.fix_upload_parent(); this.fix_textarea(); this.replicate_ajax(); @@ -56,8 +57,9 @@ $(css).removeClass('active'); } }, - init_sortable: function() { - $('.option-tree-sortable').each( function() { + init_sortable: function(scope) { + scope = scope || document; + $('.option-tree-sortable', scope).each( function() { if ( $(this).children('li').length ) { var elm = $(this); elm.show(); @@ -247,19 +249,18 @@ OT_UI.init_remove_active(); OT_UI.init_hide_body(); } - list.append('
  • ' + data.responseText + '
  • '); + var listItem = $('
  • ' + data.responseText + '
  • '); + list.append(listItem); list.children().last().find('.option-tree-setting-edit').toggleClass('active'); list.children().last().find('.option-tree-setting-body').toggle(); list.children().last().find('.option-tree-setting-title').focus(); if ( type != 'the_contextual_help' ) { OT_UI.update_ids(list); } - setTimeout( function() { - OT_UI.init_sortable(); - OT_UI.init_select_wrapper(); - OT_UI.init_numeric_slider(); - OT_UI.parse_condition(); - }, 500); + OT_UI.init_sortable(listItem); + OT_UI.init_select_wrapper(listItem); + OT_UI.init_numeric_slider(listItem); + OT_UI.parse_condition(); self.processing = false; } }); @@ -393,8 +394,23 @@ }); }, init_conditions: function() { - $('.format-settings[id^="setting_"]').on( 'change.conditionals, keyup.conditionals', OT_UI.condition_objects(), function() { - OT_UI.parse_condition(); + var delay = (function() { + var timer = 0; + return function(callback, ms) { + clearTimeout(timer); + timer = setTimeout(callback, ms); + }; + })(); + + $('.format-settings[id^="setting_"]').on( 'change.conditionals, keyup.conditionals', OT_UI.condition_objects(), function(e) { + if (e.type === 'keyup') { + // handle keyup event only once every 500ms + delay(function() { + OT_UI.parse_condition(); + }, 500); + } else { + OT_UI.parse_condition(); + } }); OT_UI.parse_condition(); }, @@ -501,8 +517,9 @@ $(elm).parent().next('.option-tree-ui-media-wrap').remove(); } }, - init_numeric_slider: function() { - $(".ot-numeric-slider-wrap").each(function() { + init_numeric_slider: function(scope) { + scope = scope || document; + $(".ot-numeric-slider-wrap", scope).each(function() { var hidden = $(".ot-numeric-slider-hidden-input", this), value = hidden.val(), helper = $(".ot-numeric-slider-helper-input", this); @@ -518,8 +535,11 @@ slide: function(event, ui) { hidden.add(helper).val(ui.value); }, + create: function() { + hidden.val($(this).slider('value')); + }, change: function() { - OT_UI.init_conditions(); + OT_UI.parse_condition(); } }); }); @@ -554,16 +574,19 @@ $(this).parent().find('.option-tree-ui-radio').prop('checked', true).trigger('change'); }); }, - init_select_wrapper: function() { - $('.option-tree-ui-select').each(function () { + init_select_wrapper: function(scope) { + scope = scope || document; + $('.option-tree-ui-select', scope).each(function () { if ( ! $(this).parent().hasClass('select-wrapper') ) { $(this).wrap('
    '); $(this).parent('.select-wrapper').prepend('' + $(this).find('option:selected').text() + ''); } }); + }, + bind_select_wrapper: function() { $(document).on('change', '.option-tree-ui-select', function () { $(this).prev('span').replaceWith('' + $(this).find('option:selected').text() + ''); - }) + }); $(document).on($.browser.msie ? 'click' : 'change', '.option-tree-ui-select', function(event) { $(this).prev('span').replaceWith('' + $(this).find('option:selected').text() + ''); }); @@ -706,14 +729,15 @@ , ids: ids }, success: function(res) { - parent.children('.ot-gallery-list').html(res) - if ( input.hasClass('ot-gallery-shortcode') ) - input.val(shortcode) + parent.children('.ot-gallery-list').html(res); + if ( input.hasClass('ot-gallery-shortcode') ) { + input.val(shortcode); + } if ( $(elm).parent().children('.ot-gallery-delete').length <= 0 ) { - $(elm).parent().append('' + option_tree.delete + '') + $(elm).parent().append('' + option_tree.delete + ''); } - $(elm).text(option_tree.edit) - OT_UI.init_conditions() + $(elm).text(option_tree.edit); + OT_UI.parse_condition(); } }) }) @@ -777,11 +801,11 @@ if ( confirm( option_tree.confirm ) ) { - $(elm).parents('.format-setting-inner').children('.ot-gallery-value').attr('value', '') - $(elm).parents('.format-setting-inner').children('.ot-gallery-list').remove() - $(elm).next('.ot-gallery-edit').text( option_tree.create ) - $(elm).remove() - OT_UI.init_conditions() + $(elm).parents('.format-setting-inner').children('.ot-gallery-value').attr('value', ''); + $(elm).parents('.format-setting-inner').children('.ot-gallery-list').remove(); + $(elm).next('.ot-gallery-edit').text( option_tree.create ); + $(elm).remove(); + OT_UI.parse_condition(); } diff --git a/option-tree/includes/ot-cleanup-api.php b/option-tree/includes/ot-cleanup-api.php new file mode 100644 index 0000000..a7e8140 --- /dev/null +++ b/option-tree/includes/ot-cleanup-api.php @@ -0,0 +1,293 @@ + + * @copyright Copyright (c) 2014, Derek Herman + */ +if ( ! class_exists( 'OT_Cleanup' ) ) { + + class OT_Cleanup { + + /** + * PHP5 constructor method. + * + * This method adds other methods of the class to specific hooks within WordPress. + * + * @uses add_action() + * + * @return void + * + * @access public + * @since 2.4.6 + */ + function __construct() { + if ( ! is_admin() ) + return; + + // Maybe Clean up OptionTree + add_action( 'admin_menu', array( $this, 'maybe_cleanup' ), 100 ); + + // Increase timeout if allowed + add_action( 'ot_pre_consolidate_posts', array( $this, 'increase_timeout' ) ); + + } + + /** + * Check if OptionTree needs to be cleaned up from a previous install. + * + * @return void + * + * @access public + * @since 2.4.6 + */ + public function maybe_cleanup() { + global $wpdb, $table_prefix, $ot_maybe_cleanup_posts, $ot_maybe_cleanup_table; + + $posts = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_type = 'option-tree' LIMIT 2" ); + $table = $wpdb->get_results( "SHOW TABLES LIKE '{$table_prefix}option_tree'" ); + + $ot_maybe_cleanup_posts = count( $posts ) > 1; + $ot_maybe_cleanup_table = count( $table ) == 1; + + if ( $ot_maybe_cleanup_posts || $ot_maybe_cleanup_table ) { + + add_action( 'admin_notices', array( $this, 'cleanup_notice' ) ); + + } + + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'hide-page' ) ) { + update_option( 'ot_hide_cleanup', true ); + wp_redirect( 'themes.php?page=' . apply_filters( 'ot_theme_options_menu_slug', 'ot-theme-options' ) ); + exit; + } + + if ( $ot_maybe_cleanup_posts || $ot_maybe_cleanup_table || get_option( 'ot_hide_cleanup', false ) == false ) + add_theme_page( apply_filters( 'ot_cleanup_page_title', __( 'OptionTree Cleanup', 'option-tree' ) ), apply_filters( 'ot_cleanup_menu_title', __( 'OptionTree Cleanup', 'option-tree' ) ), 'edit_theme_options', 'ot-cleanup', array( $this, 'options_page' ) ); + + } + + /** + * Adds an admin nag. + * + * @return string + * + * @access public + * @since 2.4.6 + */ + public function cleanup_notice() { + + if ( get_current_screen()->id != 'appearance_page_ot-cleanup' ) + echo '
    ' . sprintf( __( 'OptionTree has outdated data that should be removed. Please go to %s for more information.', 'option-tree' ), sprintf( '%s', admin_url( 'themes.php?page=ot-cleanup' ), apply_filters( 'ot_cleanup_menu_title', __( 'OptionTree Cleanup', 'option-tree' ) ) ) ) . '
    '; + + } + + /** + * Adds a Tools sub page to clean up the database with. + * + * @return string + * + * @access public + * @since 2.4.6 + */ + public function options_page() { + global $wpdb, $table_prefix, $ot_maybe_cleanup_posts, $ot_maybe_cleanup_table; + + // If we are here this option should not be true. + update_option( 'ot_hide_cleanup', false ); + + // Option ID + $option_id = 'ot_media_post_ID'; + + // Get the media post ID + $post_ID = get_option( $option_id, false ); + + // Zero loop count + $count = 0; + + // Check for safe mode + $safe_mode = ini_get( 'safe_mode' ); + + echo '
    '; + + echo '

    ' . apply_filters( 'ot_cleanup_page_title', __( 'OptionTree Cleanup', 'option-tree' ) ) . '

    '; + + if ( $ot_maybe_cleanup_posts || $ot_maybe_cleanup_table ) { + + if ( $ot_maybe_cleanup_posts ) { + + $posts = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_type = 'option-tree'" ); + + echo '

    ' . __( 'Multiple Media Posts', 'option-tree' ) . '

    '; + + echo '

    ' . sprintf( __( 'There are currently %s OptionTree media posts in your database. At some point in the past, a version of OptionTree added multiple %s media post objects cluttering up your %s table. There is no associated risk or harm that these posts have caused other than to add size to your overall database. Thankfully, there is a way to remove all these orphaned media posts and get your database cleaned up.', 'option-tree' ), '' . number_format( count( $posts ) ) . '', 'option-tree', '' . $wpdb->posts . '' ) . '

    '; + + echo '

    ' . sprintf( __( 'By clicking the button below, OptionTree will delete %s records and consolidate them into one single OptionTree media post for uploading attachments to. Additionally, the attachments will have their parent ID updated to the correct media post.', 'option-tree' ), '' . number_format( count( $posts ) - 1 ) . '' ) . '

    '; + + echo '

    ' . __( 'This could take a while to fully process depending on how many records you have in your database, so please be patient and wait for the script to finish.', 'option-tree' ) . '

    '; + + echo $safe_mode ? '

    ' . sprintf( __( '%s Your server is running in safe mode. Which means this page will automatically reload after deleting %s posts, you can filter this number using %s if your server is having trouble processing that many at one time.', 'option-tree' ), 'Note:', apply_filters( 'ot_consolidate_posts_reload', 500 ), 'ot_consolidate_posts_reload' ) . '

    ' : ''; + + echo '

    ' . __( 'Consolidate Posts', 'option-tree' ) . '

    '; + + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'consolidate-posts' ) ) { + + if ( $post_ID === false || empty( $post_ID ) ) { + $post_ID = isset( $posts[0]->ID ) ? $posts[0]->ID : null; + + // Add to the DB + if ( $post_ID !== null ) + update_option( $option_id, $post_ID ); + + } + + // Do pre consolidation action to increase timeout. + do_action( 'ot_pre_consolidate_posts' ); + + // Loop over posts + foreach( $posts as $post ) { + + // Don't destroy the correct post. + if ( $post_ID == $post->ID ) + continue; + + // Update count + $count++; + + // Reload script in safe mode + if ( $safe_mode && $count > apply_filters( 'ot_consolidate_posts_reload', 500 ) ) { + echo '
    ' . __( 'Reloading...', 'option-tree' ); + echo ' + '; + break; + } + + // Get the attachements + $attachments = get_children( 'post_type=attachment&post_parent=' . $post->ID ); + + // Update the attachments parent ID + if ( ! empty( $attachments ) ) { + + echo 'Updating Attachments parent ID for option-tree post #' . $post->ID . '.
    '; + + foreach( $attachments as $attachment_id => $attachment ) { + wp_update_post( + array( + 'ID' => $attachment_id, + 'post_parent' => $post_ID + ) + ); + } + + } + + // Delete post + echo 'Deleting option-tree post #' . $post->ID . '
    '; + wp_delete_post( $post->ID, true ); + + } + + echo '
    ' . __( 'Clean up script has completed, the page will now reload...', 'option-tree' ); + + echo ' + '; + + } + + } + + if ( $ot_maybe_cleanup_table ) { + + $table_name = $table_prefix . 'option_tree'; + + echo $ot_maybe_cleanup_posts ? '
    ' : ''; + + echo '

    ' . __( 'Outdated Table', 'option-tree' ) . '

    '; + + echo '

    ' . sprintf( __( 'If you have upgraded from an old 1.x version of OptionTree at some point, you have an extra %s table in your database that can be removed. It\'s not hurting anything, but does not need to be there. If you want to remove it. Click the button below.', 'option-tree' ), '' . $table_name . '' ) . '

    '; + + echo '

    ' . __( 'Drop Table', 'option-tree' ) . '

    '; + + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'drop-table' ) ) { + + echo '

    ' . sprintf( __( 'Deleting the outdated and unused %s table...', 'option-tree' ), '' . $table_name . '' ) . '

    '; + + $wpdb->query( "DROP TABLE IF EXISTS $table_name" ); + + if ( count( $wpdb->get_results( "SHOW TABLES LIKE '{$table_prefix}option_tree'" ) ) == 0 ) { + + echo '

    ' . sprintf( __( 'The %s table has been successfully deleted. The page will now reload...', 'option-tree' ), '' . $table_name . '' ) . '

    '; + + echo ' + '; + + } else { + + echo '

    ' . sprintf( __( 'Something went wrong. The %s table was not deleted.', 'option-tree' ), '' . $table_name . '' ) . '

    '; + + } + + } + + } + + } else { + + echo '

    ' . __( 'Congratulations! You have a clean install.', 'option-tree' ) . '

    '; + + echo '

    ' . __( 'Your version of OptionTree does not have any outdated data. If there was outdated data, you would be presented with options to clean it up.', 'option-tree' ) . '

    '; + + echo '

    ' . __( 'Hide This Page', 'option-tree' ) . '

    '; + + } + + echo '
    '; + + } + + /** + * Increase PHP timeout. + * + * This is to prevent bulk operations from timing out + * + * @return void + * + * @access public + * @since 2.4.6 + */ + public function increase_timeout() { + + if ( ! ini_get( 'safe_mode' ) ) { + + @set_time_limit( 0 ); + + } + + } + + } + +} + +new OT_Cleanup(); + +/* End of file ot-cleanup-api.php */ +/* Location: ./includes/ot-cleanup-api.php */ \ No newline at end of file diff --git a/option-tree/includes/ot-functions-admin.php b/option-tree/includes/ot-functions-admin.php index 27b626a..887e58a 100644 --- a/option-tree/includes/ot-functions-admin.php +++ b/option-tree/includes/ot-functions-admin.php @@ -56,7 +56,6 @@ function ot_register_theme_options_page() { 'updated_message' => apply_filters( 'ot_theme_options_updated_message', __( 'Theme Options updated.', 'option-tree' ) ), 'reset_message' => apply_filters( 'ot_theme_options_reset_message', __( 'Theme Options reset.', 'option-tree' ) ), 'button_text' => apply_filters( 'ot_theme_options_button_text', __( 'Save Changes', 'option-tree' ) ), - 'screen_icon' => 'themes', 'contextual_help' => apply_filters( 'ot_theme_options_contextual_help', $contextual_help ), 'sections' => apply_filters( 'ot_theme_options_sections', $sections ), 'settings' => apply_filters( 'ot_theme_options_settings', $settings ) @@ -128,7 +127,6 @@ function ot_has_custom_theme_options() { 'reset_message' => __( 'Theme Options reset.', 'option-tree' ), 'button_text' => __( 'Save Settings', 'option-tree' ), 'show_buttons' => false, - 'screen_icon' => 'themes', 'sections' => array( array( 'id' => 'create_setting', @@ -223,7 +221,6 @@ function ot_has_custom_theme_options() { 'reset_message' => __( 'Theme Options reset.', 'option-tree' ), 'button_text' => __( 'Save Settings', 'option-tree' ), 'show_buttons' => false, - 'screen_icon' => 'themes', 'sections' => array( array( 'id' => 'creating_options', @@ -548,9 +545,13 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { // Loop over array and check for values, plus sanitize the text field foreach( (array) $input as $key => $value ) { - if ( ! empty( $value ) ) { - $has_value = true; - $input[$key] = sanitize_text_field( $value ); + if ( ! empty( $value ) && is_array( $value ) ) { + foreach( (array) $value as $item_key => $item_value ) { + if ( ! empty( $item_value ) ) { + $has_value = true; + $input[$key][$item_key] = sanitize_text_field( $item_value ); + } + } } } @@ -580,7 +581,7 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { if ( ! function_exists( 'ot_admin_styles' ) ) { function ot_admin_styles() { - global $wp_styles; + global $wp_styles, $post; /* execute styles before actions */ do_action( 'ot_admin_styles_before' ); @@ -594,6 +595,10 @@ function ot_admin_styles() { /* load the RTL stylesheet */ $wp_styles->add_data( 'ot-admin-css','rtl', true ); + /* Remove styles added by the Easy Digital Downloads plugin */ + if ( isset( $post->post_type ) && $post->post_type == 'post' ) + wp_dequeue_style( 'jquery-ui-css' ); + /* execute styles after actions */ do_action( 'ot_admin_styles_after' ); @@ -678,7 +683,7 @@ function ot_admin_scripts() { } /** - * Returns the ID of a custom post type by post_name. + * Returns the ID of a custom post type by post_title. * * @uses get_results() * @@ -690,9 +695,27 @@ function ot_admin_scripts() { if ( ! function_exists( 'ot_get_media_post_ID' ) ) { function ot_get_media_post_ID() { - global $wpdb; - return $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE `post_name` = 'media' AND `post_type` = 'option-tree' AND `post_status` = 'private'" ); + // Option ID + $option_id = 'ot_media_post_ID'; + + // Get the media post ID + $post_ID = get_option( $option_id, false ); + + // Add $post_ID to the DB + if ( $post_ID === false || empty( $post_ID ) ) { + global $wpdb; + + // Get the media post ID + $post_ID = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE `post_title` = 'Media' AND `post_type` = 'option-tree' AND `post_status` = 'private'" ); + + // Add to the DB + if ( $post_ID !== null ) + update_option( $option_id, $post_ID ); + + } + + return $post_ID; } @@ -2511,7 +2534,7 @@ function ot_recognized_line_heights( $field_id ) { $range = ot_range( apply_filters( 'ot_line_height_low_range', 0, $field_id ), apply_filters( 'ot_line_height_high_range', 150, $field_id ), - apply_filters( 'ot_line_height_unit_type', 1, $field_id ) + apply_filters( 'ot_line_height_range_interval', 1, $field_id ) ); $unit = apply_filters( 'ot_line_height_unit_type', 'px', $field_id ); @@ -3916,9 +3939,28 @@ function ot_list_item_view( $name, $key, $list_item = array(), $post_id = 0, $ge $conditions.= isset( $field['operator'] ) && in_array( $field['operator'], array( 'and', 'AND', 'or', 'OR' ) ) ? ' data-operator="' . $field['operator'] . '"' : ''; } + + // Build the setting CSS class + if ( ! empty( $_args['field_class'] ) ) { + + $classes = explode( ' ', $_args['field_class'] ); + + foreach( $classes as $_key => $value ) { + + $classes[$_key] = $value . '-wrap'; + + } + + $class = 'format-settings ' . implode( ' ', $classes ); + + } else { + + $class = 'format-settings'; + + } /* option label */ - echo '
    '; + echo '
    '; /* don't show title with textblocks */ if ( $_args['type'] != 'textblock' && ! empty( $field['label'] ) ) { diff --git a/option-tree/includes/ot-functions-option-types.php b/option-tree/includes/ot-functions-option-types.php index e2b6811..e71c17b 100644 --- a/option-tree/includes/ot-functions-option-types.php +++ b/option-tree/includes/ot-functions-option-types.php @@ -235,7 +235,7 @@ function ot_type_background( $args = array() ) { echo '
    '; /* input */ - echo ''; + echo ''; /* add media button */ echo '' . __( 'Add Media', 'option-tree' ) . ''; diff --git a/option-tree/includes/ot-settings-api.php b/option-tree/includes/ot-settings-api.php index 9a3584d..b609e14 100644 --- a/option-tree/includes/ot-settings-api.php +++ b/option-tree/includes/ot-settings-api.php @@ -246,7 +246,6 @@ public function display_page() { echo '
    '; - screen_icon( ( isset( $page['screen_icon'] ) ? $page['screen_icon'] : 'options-general' ) ); echo '

    ' . $page['page_title'] . '

    '; echo ot_alert_message( $page ); diff --git a/option-tree/languages/option-tree.po b/option-tree/languages/option-tree.po index f9bf3c5..54ce170 100644 --- a/option-tree/languages/option-tree.po +++ b/option-tree/languages/option-tree.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: OptionTree\n" -"POT-Creation-Date: 2014-06-04 00:59-0800\n" -"PO-Revision-Date: 2014-06-04 00:59-0800\n" +"POT-Creation-Date: 2014-11-20 23:06-0800\n" +"PO-Revision-Date: 2014-11-20 23:06-0800\n" "Last-Translator: Derek Herman \n" "Language-Team: Valen Designs\n" "Language: English\n" @@ -24,8 +24,8 @@ msgid "" "OptionTree, and remove this warning." msgstr "" -#: ../ot-loader.php:744 ../assets/theme-mode/demo-theme-options.php:639 -#: ../includes/ot-functions-admin.php:652 +#: ../ot-loader.php:752 ../assets/theme-mode/demo-theme-options.php:639 +#: ../includes/ot-functions-admin.php:657 #: ../includes/ot-functions-docs-page.php:374 #: ../includes/ot-functions-settings-page.php:170 msgid "Send to OptionTree" @@ -54,8 +54,8 @@ msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:50 #: ../assets/theme-mode/demo-theme-options.php:208 -#: ../includes/ot-functions-admin.php:2212 -#: ../includes/ot-functions-admin.php:4670 +#: ../includes/ot-functions-admin.php:2235 +#: ../includes/ot-functions-admin.php:4712 #: ../includes/ot-functions-docs-page.php:156 msgid "Gallery" msgstr "" @@ -71,7 +71,7 @@ msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:62 #: ../assets/theme-mode/demo-theme-options.php:548 -#: ../includes/ot-functions-admin.php:2232 +#: ../includes/ot-functions-admin.php:2255 #: ../includes/ot-functions-docs-page.php:269 msgid "Text" msgstr "" @@ -82,7 +82,7 @@ msgstr "" #: ../assets/theme-mode/demo-meta-boxes.php:68 #: ../assets/theme-mode/demo-theme-options.php:563 -#: ../includes/ot-functions-admin.php:2233 +#: ../includes/ot-functions-admin.php:2256 #: ../includes/ot-functions-docs-page.php:272 msgid "Textarea" msgstr "" @@ -93,7 +93,7 @@ msgstr "" #: ../assets/theme-mode/demo-theme-options.php:29 #: ../assets/theme-mode/demo-theme-options.php:38 -#: ../includes/ot-functions-admin.php:234 +#: ../includes/ot-functions-admin.php:231 msgid "Option Types" msgstr "" @@ -106,7 +106,7 @@ msgid "Sidebar content goes here!" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:44 -#: ../includes/ot-functions-admin.php:2202 +#: ../includes/ot-functions-admin.php:2225 #: ../includes/ot-functions-docs-page.php:110 msgid "Background" msgstr "" @@ -125,14 +125,14 @@ msgstr "" #: ../assets/theme-mode/demo-theme-options.php:45 #: ../assets/theme-mode/demo-theme-options.php:624 -#: ../includes/ot-functions-admin.php:3616 +#: ../includes/ot-functions-admin.php:3639 #: ../includes/ot-functions-docs-page.php:111 #: ../includes/ot-functions-docs-page.php:354 msgid "and" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:59 -#: ../includes/ot-functions-admin.php:2203 +#: ../includes/ot-functions-admin.php:2226 #: ../includes/ot-functions-docs-page.php:113 msgid "Category Checkbox" msgstr "" @@ -146,7 +146,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:74 -#: ../includes/ot-functions-admin.php:2204 +#: ../includes/ot-functions-admin.php:2227 #: ../includes/ot-functions-docs-page.php:116 msgid "Category Select" msgstr "" @@ -160,7 +160,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:89 -#: ../includes/ot-functions-admin.php:2205 +#: ../includes/ot-functions-admin.php:2228 #: ../includes/ot-functions-docs-page.php:119 msgid "Checkbox" msgstr "" @@ -198,7 +198,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:131 -#: ../includes/ot-functions-admin.php:2207 +#: ../includes/ot-functions-admin.php:2230 #: ../includes/ot-functions-docs-page.php:125 msgid "CSS" msgstr "" @@ -227,7 +227,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:148 -#: ../includes/ot-functions-admin.php:2208 +#: ../includes/ot-functions-admin.php:2231 #: ../includes/ot-functions-docs-page.php:144 msgid "Custom Post Type Checkbox" msgstr "" @@ -243,7 +243,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:163 -#: ../includes/ot-functions-admin.php:2209 +#: ../includes/ot-functions-admin.php:2232 #: ../includes/ot-functions-docs-page.php:147 msgid "Custom Post Type Select" msgstr "" @@ -259,7 +259,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:178 -#: ../includes/ot-functions-admin.php:2210 +#: ../includes/ot-functions-admin.php:2233 #: ../includes/ot-functions-docs-page.php:150 msgid "Date Picker" msgstr "" @@ -273,7 +273,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:193 -#: ../includes/ot-functions-admin.php:2211 +#: ../includes/ot-functions-admin.php:2234 #: ../includes/ot-functions-docs-page.php:153 msgid "Date Time Picker" msgstr "" @@ -309,7 +309,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:238 -#: ../includes/ot-functions-admin.php:2213 +#: ../includes/ot-functions-admin.php:2236 #: ../includes/ot-functions-docs-page.php:159 msgid "List Item" msgstr "" @@ -327,7 +327,7 @@ msgid "Content" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:269 -#: ../includes/ot-functions-admin.php:2214 +#: ../includes/ot-functions-admin.php:2237 #: ../includes/ot-functions-docs-page.php:162 msgid "Measurement" msgstr "" @@ -343,7 +343,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:284 -#: ../includes/ot-functions-admin.php:2215 +#: ../includes/ot-functions-admin.php:2238 #: ../includes/ot-functions-docs-page.php:193 msgid "Numeric Slider" msgstr "" @@ -356,7 +356,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:299 -#: ../includes/ot-functions-admin.php:2216 +#: ../includes/ot-functions-admin.php:2239 #: ../includes/ot-functions-docs-page.php:196 msgid "On/Off" msgstr "" @@ -370,7 +370,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:314 -#: ../includes/ot-functions-admin.php:2217 +#: ../includes/ot-functions-admin.php:2240 #: ../includes/ot-functions-docs-page.php:199 msgid "Page Checkbox" msgstr "" @@ -383,7 +383,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:329 -#: ../includes/ot-functions-admin.php:2218 +#: ../includes/ot-functions-admin.php:2241 #: ../includes/ot-functions-docs-page.php:202 msgid "Page Select" msgstr "" @@ -396,7 +396,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:344 -#: ../includes/ot-functions-admin.php:2219 +#: ../includes/ot-functions-admin.php:2242 #: ../includes/ot-functions-docs-page.php:205 msgid "Post Checkbox" msgstr "" @@ -409,7 +409,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:359 -#: ../includes/ot-functions-admin.php:2220 +#: ../includes/ot-functions-admin.php:2243 #: ../includes/ot-functions-docs-page.php:208 msgid "Post Select" msgstr "" @@ -422,7 +422,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:374 -#: ../includes/ot-functions-admin.php:2221 +#: ../includes/ot-functions-admin.php:2244 #: ../includes/ot-functions-docs-page.php:211 msgid "Radio" msgstr "" @@ -441,7 +441,7 @@ msgid "Maybe" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:406 -#: ../includes/ot-functions-admin.php:2222 +#: ../includes/ot-functions-admin.php:2245 #: ../includes/ot-functions-docs-page.php:214 msgid "Radio Image" msgstr "" @@ -456,7 +456,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:421 -#: ../includes/ot-functions-admin.php:2223 +#: ../includes/ot-functions-admin.php:2246 #: ../includes/ot-functions-docs-page.php:241 msgid "Select" msgstr "" @@ -473,7 +473,7 @@ msgid "-- Choose One --" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:458 -#: ../includes/ot-functions-admin.php:2224 +#: ../includes/ot-functions-admin.php:2247 #: ../includes/ot-functions-docs-page.php:244 msgid "Sidebar Select" msgstr "" @@ -499,7 +499,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:473 -#: ../includes/ot-functions-admin.php:2228 +#: ../includes/ot-functions-admin.php:2251 #: ../includes/ot-functions-docs-page.php:257 msgid "Tag Checkbox" msgstr "" @@ -513,7 +513,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:488 -#: ../includes/ot-functions-admin.php:2229 +#: ../includes/ot-functions-admin.php:2252 #: ../includes/ot-functions-docs-page.php:260 msgid "Tag Select" msgstr "" @@ -527,7 +527,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:503 -#: ../includes/ot-functions-admin.php:2226 +#: ../includes/ot-functions-admin.php:2249 #: ../includes/ot-functions-docs-page.php:251 msgid "Social Links" msgstr "" @@ -544,7 +544,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:518 -#: ../includes/ot-functions-admin.php:2230 +#: ../includes/ot-functions-admin.php:2253 #: ../includes/ot-functions-docs-page.php:263 msgid "Taxonomy Checkbox" msgstr "" @@ -558,7 +558,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:533 -#: ../includes/ot-functions-admin.php:2231 +#: ../includes/ot-functions-admin.php:2254 #: ../includes/ot-functions-docs-page.php:266 msgid "Taxonomy Select" msgstr "" @@ -588,7 +588,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:578 -#: ../includes/ot-functions-admin.php:2234 +#: ../includes/ot-functions-admin.php:2257 #: ../includes/ot-functions-docs-page.php:331 msgid "Textarea Simple" msgstr "" @@ -601,7 +601,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:593 -#: ../includes/ot-functions-admin.php:2235 +#: ../includes/ot-functions-admin.php:2258 #: ../includes/ot-functions-docs-page.php:347 msgid "Textblock" msgstr "" @@ -617,7 +617,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:608 -#: ../includes/ot-functions-admin.php:2236 +#: ../includes/ot-functions-admin.php:2259 #: ../includes/ot-functions-docs-page.php:350 msgid "Textblock Titled" msgstr "" @@ -633,7 +633,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:623 -#: ../includes/ot-functions-admin.php:2237 +#: ../includes/ot-functions-admin.php:2260 #: ../includes/ot-functions-docs-page.php:353 msgid "Typography" msgstr "" @@ -651,7 +651,7 @@ msgid "" msgstr "" #: ../assets/theme-mode/demo-theme-options.php:638 -#: ../includes/ot-functions-admin.php:2238 +#: ../includes/ot-functions-admin.php:2261 #: ../includes/ot-functions-docs-page.php:373 msgid "Upload" msgstr "" @@ -679,21 +679,130 @@ msgid "" "the class attribute." msgstr "" +#: ../includes/ot-cleanup-api.php:69 ../includes/ot-cleanup-api.php:84 +#: ../includes/ot-cleanup-api.php:116 +msgid "OptionTree Cleanup" +msgstr "" + +#: ../includes/ot-cleanup-api.php:84 +#, php-format +msgid "" +"OptionTree has outdated data that should be removed. Please go to %s for " +"more information." +msgstr "" + +#: ../includes/ot-cleanup-api.php:124 +msgid "Multiple Media Posts" +msgstr "" + +#: ../includes/ot-cleanup-api.php:126 +#, php-format +msgid "" +"There are currently %s OptionTree media posts in your database. At some " +"point in the past, a version of OptionTree added multiple %s media post " +"objects cluttering up your %s table. There is no associated risk or harm " +"that these posts have caused other than to add size to your overall " +"database. Thankfully, there is a way to remove all these orphaned media " +"posts and get your database cleaned up." +msgstr "" + +#: ../includes/ot-cleanup-api.php:128 +#, php-format +msgid "" +"By clicking the button below, OptionTree will delete %s records and " +"consolidate them into one single OptionTree media post for uploading " +"attachments to. Additionally, the attachments will have their parent ID " +"updated to the correct media post." +msgstr "" + +#: ../includes/ot-cleanup-api.php:130 +msgid "" +"This could take a while to fully process depending on how many records you " +"have in your database, so please be patient and wait for the script to " +"finish." +msgstr "" + +#: ../includes/ot-cleanup-api.php:132 +#, php-format +msgid "" +"%s Your server is running in safe mode. Which means this page will " +"automatically reload after deleting %s posts, you can filter this number " +"using %s if your server is having trouble processing that many at one time." +msgstr "" + +#: ../includes/ot-cleanup-api.php:134 +msgid "Consolidate Posts" +msgstr "" + +#: ../includes/ot-cleanup-api.php:162 +msgid "Reloading..." +msgstr "" + +#: ../includes/ot-cleanup-api.php:198 +msgid "Clean up script has completed, the page will now reload..." +msgstr "" + +#: ../includes/ot-cleanup-api.php:218 +msgid "Outdated Table" +msgstr "" + +#: ../includes/ot-cleanup-api.php:220 +#, php-format +msgid "" +"If you have upgraded from an old 1.x version of OptionTree at some point, " +"you have an extra %s table in your database that can be removed. It's not " +"hurting anything, but does not need to be there. If you want to remove it. " +"Click the button below." +msgstr "" + +#: ../includes/ot-cleanup-api.php:222 +msgid "Drop Table" +msgstr "" + +#: ../includes/ot-cleanup-api.php:226 +#, php-format +msgid "Deleting the outdated and unused %s table..." +msgstr "" + +#: ../includes/ot-cleanup-api.php:232 +#, php-format +msgid "The %s table has been successfully deleted. The page will now reload..." +msgstr "" + +#: ../includes/ot-cleanup-api.php:244 +#, php-format +msgid "Something went wrong. The %s table was not deleted." +msgstr "" + +#: ../includes/ot-cleanup-api.php:254 +msgid "Congratulations! You have a clean install." +msgstr "" + +#: ../includes/ot-cleanup-api.php:256 +msgid "" +"Your version of OptionTree does not have any outdated data. If there was " +"outdated data, you would be presented with options to clean it up." +msgstr "" + +#: ../includes/ot-cleanup-api.php:258 +msgid "Hide This Page" +msgstr "" + #: ../includes/ot-functions-admin.php:50 ../includes/ot-functions-admin.php:51 -#: ../includes/ot-functions-admin.php:171 -#: ../includes/ot-functions-admin.php:195 ../includes/ot-functions.php:284 +#: ../includes/ot-functions-admin.php:169 +#: ../includes/ot-functions-admin.php:193 ../includes/ot-functions.php:284 msgid "Theme Options" msgstr "" #: ../includes/ot-functions-admin.php:56 -#: ../includes/ot-functions-admin.php:127 -#: ../includes/ot-functions-admin.php:222 +#: ../includes/ot-functions-admin.php:126 +#: ../includes/ot-functions-admin.php:220 msgid "Theme Options updated." msgstr "" #: ../includes/ot-functions-admin.php:57 -#: ../includes/ot-functions-admin.php:128 -#: ../includes/ot-functions-admin.php:223 +#: ../includes/ot-functions-admin.php:127 +#: ../includes/ot-functions-admin.php:221 msgid "Theme Options reset." msgstr "" @@ -703,449 +812,449 @@ msgstr "" msgid "Save Changes" msgstr "" -#: ../includes/ot-functions-admin.php:98 +#: ../includes/ot-functions-admin.php:97 msgid "" "The Theme Options UI Builder is being overridden by a custom file in your " "theme. Any changes you make via the UI Builder will not be saved." msgstr "" +#: ../includes/ot-functions-admin.php:109 #: ../includes/ot-functions-admin.php:110 -#: ../includes/ot-functions-admin.php:111 #: ../includes/ot-functions-docs-page.php:797 msgid "OptionTree" msgstr "" +#: ../includes/ot-functions-admin.php:120 #: ../includes/ot-functions-admin.php:121 -#: ../includes/ot-functions-admin.php:122 -#: ../includes/ot-functions-admin.php:165 -#: ../includes/ot-functions-admin.php:189 +#: ../includes/ot-functions-admin.php:163 +#: ../includes/ot-functions-admin.php:187 #: ../includes/ot-functions-docs-page.php:49 msgid "Settings" msgstr "" -#: ../includes/ot-functions-admin.php:129 -#: ../includes/ot-functions-admin.php:224 +#: ../includes/ot-functions-admin.php:128 +#: ../includes/ot-functions-admin.php:222 msgid "Save Settings" msgstr "" -#: ../includes/ot-functions-admin.php:135 +#: ../includes/ot-functions-admin.php:133 msgid "Theme Options UI" msgstr "" -#: ../includes/ot-functions-admin.php:139 +#: ../includes/ot-functions-admin.php:137 msgid "Import" msgstr "" -#: ../includes/ot-functions-admin.php:143 +#: ../includes/ot-functions-admin.php:141 msgid "Export" msgstr "" -#: ../includes/ot-functions-admin.php:147 -#: ../includes/ot-functions-admin.php:177 -#: ../includes/ot-functions-admin.php:201 +#: ../includes/ot-functions-admin.php:145 +#: ../includes/ot-functions-admin.php:175 +#: ../includes/ot-functions-admin.php:199 msgid "Layouts" msgstr "" -#: ../includes/ot-functions-admin.php:153 +#: ../includes/ot-functions-admin.php:151 msgid "Theme Options UI Builder" msgstr "" -#: ../includes/ot-functions-admin.php:159 +#: ../includes/ot-functions-admin.php:157 msgid "Settings XML" msgstr "" -#: ../includes/ot-functions-admin.php:183 +#: ../includes/ot-functions-admin.php:181 msgid "Settings PHP File" msgstr "" -#: ../includes/ot-functions-admin.php:207 +#: ../includes/ot-functions-admin.php:205 msgid "Layout Management" msgstr "" -#: ../includes/ot-functions-admin.php:216 -#: ../includes/ot-functions-admin.php:217 +#: ../includes/ot-functions-admin.php:214 +#: ../includes/ot-functions-admin.php:215 msgid "Documentation" msgstr "" -#: ../includes/ot-functions-admin.php:230 +#: ../includes/ot-functions-admin.php:227 msgid "Creating Options" msgstr "" -#: ../includes/ot-functions-admin.php:238 +#: ../includes/ot-functions-admin.php:235 msgid "Function References" msgstr "" -#: ../includes/ot-functions-admin.php:242 -#: ../includes/ot-functions-admin.php:284 +#: ../includes/ot-functions-admin.php:239 +#: ../includes/ot-functions-admin.php:281 #: ../includes/ot-functions-settings-page.php:366 msgid "Theme Mode" msgstr "" -#: ../includes/ot-functions-admin.php:246 -#: ../includes/ot-functions-admin.php:290 +#: ../includes/ot-functions-admin.php:243 +#: ../includes/ot-functions-admin.php:287 msgid "Meta Boxes" msgstr "" -#: ../includes/ot-functions-admin.php:250 +#: ../includes/ot-functions-admin.php:247 msgid "Code Examples" msgstr "" -#: ../includes/ot-functions-admin.php:254 +#: ../includes/ot-functions-admin.php:251 msgid "Layouts Overview" msgstr "" -#: ../includes/ot-functions-admin.php:260 +#: ../includes/ot-functions-admin.php:257 msgid "Overview of available Theme Option fields." msgstr "" -#: ../includes/ot-functions-admin.php:266 +#: ../includes/ot-functions-admin.php:263 msgid "Option types in alphabetical order & hooks to filter them." msgstr "" -#: ../includes/ot-functions-admin.php:272 +#: ../includes/ot-functions-admin.php:269 msgid "Function Reference:ot_get_option()" msgstr "" -#: ../includes/ot-functions-admin.php:278 +#: ../includes/ot-functions-admin.php:275 msgid "Function Reference:get_option_tree()" msgstr "" -#: ../includes/ot-functions-admin.php:296 +#: ../includes/ot-functions-admin.php:293 msgid "Code examples for front-end development." msgstr "" -#: ../includes/ot-functions-admin.php:302 +#: ../includes/ot-functions-admin.php:299 msgid "What's a layout anyhow?" msgstr "" -#: ../includes/ot-functions-admin.php:502 +#: ../includes/ot-functions-admin.php:499 msgid "The Colorpicker only allows valid hexadecimal values." msgstr "" -#: ../includes/ot-functions-admin.php:653 +#: ../includes/ot-functions-admin.php:658 #: ../includes/ot-functions-option-types.php:257 #: ../includes/ot-functions-option-types.php:2453 msgid "Remove Media" msgstr "" -#: ../includes/ot-functions-admin.php:654 +#: ../includes/ot-functions-admin.php:659 msgid "Are you sure you want to reset back to the defaults?" msgstr "" -#: ../includes/ot-functions-admin.php:655 +#: ../includes/ot-functions-admin.php:660 msgid "You can't remove this! But you can edit the values." msgstr "" -#: ../includes/ot-functions-admin.php:656 +#: ../includes/ot-functions-admin.php:661 msgid "Are you sure you want to remove this?" msgstr "" -#: ../includes/ot-functions-admin.php:657 +#: ../includes/ot-functions-admin.php:662 msgid "Are you sure you want to activate this layout?" msgstr "" -#: ../includes/ot-functions-admin.php:658 +#: ../includes/ot-functions-admin.php:663 msgid "Sorry, you can't have settings three levels deep." msgstr "" -#: ../includes/ot-functions-admin.php:659 +#: ../includes/ot-functions-admin.php:664 #: ../includes/ot-functions-option-types.php:812 msgid "Delete Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:660 +#: ../includes/ot-functions-admin.php:665 #: ../includes/ot-functions-option-types.php:813 msgid "Edit Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:661 +#: ../includes/ot-functions-admin.php:666 #: ../includes/ot-functions-option-types.php:820 msgid "Create Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:662 +#: ../includes/ot-functions-admin.php:667 msgid "Are you sure you want to delete this Gallery?" msgstr "" -#: ../includes/ot-functions-admin.php:663 +#: ../includes/ot-functions-admin.php:668 msgid "Today" msgstr "" -#: ../includes/ot-functions-admin.php:664 +#: ../includes/ot-functions-admin.php:669 msgid "Now" msgstr "" -#: ../includes/ot-functions-admin.php:665 +#: ../includes/ot-functions-admin.php:670 msgid "Close" msgstr "" -#: ../includes/ot-functions-admin.php:666 +#: ../includes/ot-functions-admin.php:671 msgid "Featured Image" msgstr "" -#: ../includes/ot-functions-admin.php:667 -#: ../includes/ot-functions-admin.php:2786 -#: ../includes/ot-functions-admin.php:2847 +#: ../includes/ot-functions-admin.php:672 +#: ../includes/ot-functions-admin.php:2809 +#: ../includes/ot-functions-admin.php:2870 msgid "Image" msgstr "" -#: ../includes/ot-functions-admin.php:716 +#: ../includes/ot-functions-admin.php:739 msgid "Option Tree" msgstr "" -#: ../includes/ot-functions-admin.php:853 +#: ../includes/ot-functions-admin.php:876 msgid "General" msgstr "" -#: ../includes/ot-functions-admin.php:859 +#: ../includes/ot-functions-admin.php:882 msgid "Sample Text Field Label" msgstr "" -#: ../includes/ot-functions-admin.php:860 +#: ../includes/ot-functions-admin.php:883 msgid "Description for the sample text field." msgstr "" -#: ../includes/ot-functions-admin.php:2102 +#: ../includes/ot-functions-admin.php:2125 msgid "Settings updated." msgstr "" -#: ../includes/ot-functions-admin.php:2106 +#: ../includes/ot-functions-admin.php:2129 msgid "Settings could not be saved." msgstr "" -#: ../includes/ot-functions-admin.php:2114 +#: ../includes/ot-functions-admin.php:2137 msgid "Settings Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2118 +#: ../includes/ot-functions-admin.php:2141 msgid "Settings could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2125 +#: ../includes/ot-functions-admin.php:2148 msgid "Data Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2129 +#: ../includes/ot-functions-admin.php:2152 msgid "Data could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2137 +#: ../includes/ot-functions-admin.php:2160 msgid "Layouts Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2141 +#: ../includes/ot-functions-admin.php:2164 msgid "Layouts could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2149 +#: ../includes/ot-functions-admin.php:2172 msgid "Layouts Updated." msgstr "" -#: ../includes/ot-functions-admin.php:2153 +#: ../includes/ot-functions-admin.php:2176 msgid "Layouts could not be updated." msgstr "" -#: ../includes/ot-functions-admin.php:2157 +#: ../includes/ot-functions-admin.php:2180 msgid "Layouts have been deleted." msgstr "" -#: ../includes/ot-functions-admin.php:2163 +#: ../includes/ot-functions-admin.php:2186 msgid "Layout activated." msgstr "" -#: ../includes/ot-functions-admin.php:2206 +#: ../includes/ot-functions-admin.php:2229 msgid "Color Picker" msgstr "" -#: ../includes/ot-functions-admin.php:2225 +#: ../includes/ot-functions-admin.php:2248 #: ../includes/ot-functions-docs-page.php:248 msgid "Slider" msgstr "" -#: ../includes/ot-functions-admin.php:2227 +#: ../includes/ot-functions-admin.php:2250 #: ../includes/ot-functions-docs-page.php:254 msgid "Tab" msgstr "" -#: ../includes/ot-functions-admin.php:2731 +#: ../includes/ot-functions-admin.php:2754 msgid "Left Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2736 +#: ../includes/ot-functions-admin.php:2759 msgid "Right Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2741 +#: ../includes/ot-functions-admin.php:2764 msgid "Full Width (no sidebar)" msgstr "" -#: ../includes/ot-functions-admin.php:2746 +#: ../includes/ot-functions-admin.php:2769 msgid "Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2751 +#: ../includes/ot-functions-admin.php:2774 msgid "Left Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2756 +#: ../includes/ot-functions-admin.php:2779 msgid "Right Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2797 -#: ../includes/ot-functions-admin.php:2853 -#: ../includes/ot-functions-admin.php:4710 +#: ../includes/ot-functions-admin.php:2820 +#: ../includes/ot-functions-admin.php:2876 +#: ../includes/ot-functions-admin.php:4752 msgid "Link" msgstr "" -#: ../includes/ot-functions-admin.php:2808 -#: ../includes/ot-functions-admin.php:2859 +#: ../includes/ot-functions-admin.php:2831 +#: ../includes/ot-functions-admin.php:2882 #: ../includes/ot-functions-docs-page.php:43 #: ../includes/ot-functions-docs-page.php:404 #: ../includes/ot-functions-docs-page.php:454 msgid "Description" msgstr "" -#: ../includes/ot-functions-admin.php:2923 +#: ../includes/ot-functions-admin.php:2946 msgid "Name" msgstr "" -#: ../includes/ot-functions-admin.php:2924 +#: ../includes/ot-functions-admin.php:2947 msgid "Enter the name of the social website." msgstr "" -#: ../includes/ot-functions-admin.php:2932 +#: ../includes/ot-functions-admin.php:2955 msgid "Enter the text shown in the title attribute of the link." msgstr "" -#: ../includes/ot-functions-admin.php:2938 +#: ../includes/ot-functions-admin.php:2961 #, php-format msgid "" "Enter a link to the profile or page on the social website. Remember to add " "the %s part to the front of the link." msgstr "" -#: ../includes/ot-functions-admin.php:3421 +#: ../includes/ot-functions-admin.php:3444 msgid "edit" msgstr "" -#: ../includes/ot-functions-admin.php:3422 -#: ../includes/ot-functions-admin.php:3490 -#: ../includes/ot-functions-admin.php:3491 -#: ../includes/ot-functions-admin.php:3653 -#: ../includes/ot-functions-admin.php:3654 -#: ../includes/ot-functions-admin.php:3719 -#: ../includes/ot-functions-admin.php:3720 -#: ../includes/ot-functions-admin.php:3847 -#: ../includes/ot-functions-admin.php:3848 -#: ../includes/ot-functions-admin.php:3981 -#: ../includes/ot-functions-admin.php:3982 +#: ../includes/ot-functions-admin.php:3445 +#: ../includes/ot-functions-admin.php:3513 +#: ../includes/ot-functions-admin.php:3514 +#: ../includes/ot-functions-admin.php:3676 +#: ../includes/ot-functions-admin.php:3677 +#: ../includes/ot-functions-admin.php:3742 +#: ../includes/ot-functions-admin.php:3743 +#: ../includes/ot-functions-admin.php:3870 +#: ../includes/ot-functions-admin.php:3871 +#: ../includes/ot-functions-admin.php:4023 +#: ../includes/ot-functions-admin.php:4024 msgid "Edit" msgstr "" -#: ../includes/ot-functions-admin.php:3424 -#: ../includes/ot-functions-admin.php:3425 -#: ../includes/ot-functions-admin.php:3493 -#: ../includes/ot-functions-admin.php:3494 -#: ../includes/ot-functions-admin.php:3656 -#: ../includes/ot-functions-admin.php:3657 -#: ../includes/ot-functions-admin.php:3722 -#: ../includes/ot-functions-admin.php:3723 -#: ../includes/ot-functions-admin.php:3781 -#: ../includes/ot-functions-admin.php:3782 -#: ../includes/ot-functions-admin.php:3850 -#: ../includes/ot-functions-admin.php:3851 -#: ../includes/ot-functions-admin.php:3984 -#: ../includes/ot-functions-admin.php:3985 +#: ../includes/ot-functions-admin.php:3447 +#: ../includes/ot-functions-admin.php:3448 +#: ../includes/ot-functions-admin.php:3516 +#: ../includes/ot-functions-admin.php:3517 +#: ../includes/ot-functions-admin.php:3679 +#: ../includes/ot-functions-admin.php:3680 +#: ../includes/ot-functions-admin.php:3745 +#: ../includes/ot-functions-admin.php:3746 +#: ../includes/ot-functions-admin.php:3804 +#: ../includes/ot-functions-admin.php:3805 +#: ../includes/ot-functions-admin.php:3873 +#: ../includes/ot-functions-admin.php:3874 +#: ../includes/ot-functions-admin.php:4026 +#: ../includes/ot-functions-admin.php:4027 msgid "Delete" msgstr "" -#: ../includes/ot-functions-admin.php:3431 +#: ../includes/ot-functions-admin.php:3454 msgid "" "Section Title: Displayed as a menu item on the Theme " "Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3439 +#: ../includes/ot-functions-admin.php:3462 msgid "" "Section ID: A unique lower case alphanumeric string, " "underscores allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3500 +#: ../includes/ot-functions-admin.php:3523 msgid "" "Label: Displayed as the label of a form element on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3508 -#: ../includes/ot-functions-admin.php:3737 +#: ../includes/ot-functions-admin.php:3531 +#: ../includes/ot-functions-admin.php:3760 msgid "" "ID: A unique lower case alphanumeric string, underscores " "allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3516 +#: ../includes/ot-functions-admin.php:3539 msgid "" "Type: Choose one of the available option types from the " "dropdown." msgstr "" -#: ../includes/ot-functions-admin.php:3527 +#: ../includes/ot-functions-admin.php:3550 msgid "" "Description: Enter a detailed description for the users to " "read on the Theme Options page, HTML is allowed. This is also where you " "enter content for both the Textblock & Textblock Titled option types." msgstr "" -#: ../includes/ot-functions-admin.php:3535 +#: ../includes/ot-functions-admin.php:3558 msgid "" "Choices: This will only affect the following option types: " "Checkbox, Radio, Select & Select Image." msgstr "" -#: ../includes/ot-functions-admin.php:3540 +#: ../includes/ot-functions-admin.php:3563 msgid "Add Choice" msgstr "" -#: ../includes/ot-functions-admin.php:3546 +#: ../includes/ot-functions-admin.php:3569 msgid "" "Settings: This will only affect the List Item option type." msgstr "" -#: ../includes/ot-functions-admin.php:3551 +#: ../includes/ot-functions-admin.php:3574 #: ../includes/ot-functions-settings-page.php:93 msgid "Add Setting" msgstr "" -#: ../includes/ot-functions-admin.php:3557 +#: ../includes/ot-functions-admin.php:3580 msgid "" "Standard: Setting the standard value for your option only " "works for some option types. Read the OptionTree->Documentation " "for more information on which ones." msgstr "" -#: ../includes/ot-functions-admin.php:3565 +#: ../includes/ot-functions-admin.php:3588 msgid "" "Rows: Enter a numeric value for the number of rows in your " "textarea. This will only affect the following option types: CSS, Textarea, & " "Textarea Simple." msgstr "" -#: ../includes/ot-functions-admin.php:3573 +#: ../includes/ot-functions-admin.php:3596 msgid "" "Post Type: Add a comma separated list of post type like " "'post,page'. This will only affect the following option types: Custom Post " "Type Checkbox, & Custom Post Type Select." msgstr "" -#: ../includes/ot-functions-admin.php:3581 +#: ../includes/ot-functions-admin.php:3604 msgid "" "Taxonomy: Add a comma separated list of any registered " "taxonomy like 'category,post_tag'. This will only affect the following " "option types: Taxonomy Checkbox, & Taxonomy Select." msgstr "" -#: ../includes/ot-functions-admin.php:3589 +#: ../includes/ot-functions-admin.php:3612 msgid "" "Min, Max, & Step: Add a comma separated list of options in " "the following format 0,100,1 (slide from 0-100 in " @@ -1154,11 +1263,11 @@ msgid "" "type." msgstr "" -#: ../includes/ot-functions-admin.php:3597 +#: ../includes/ot-functions-admin.php:3620 msgid "CSS Class: Add and optional class to this option type." msgstr "" -#: ../includes/ot-functions-admin.php:3605 +#: ../includes/ot-functions-admin.php:3628 #, php-format msgid "" "Condition: Add a comma separated list (no spaces) of " @@ -1167,92 +1276,92 @@ msgid "" "placeholder for your condition, which can be in the form of %s." msgstr "" -#: ../includes/ot-functions-admin.php:3613 +#: ../includes/ot-functions-admin.php:3636 msgid "" "Operator: Choose the logical operator to compute the result " "of the conditions." msgstr "" -#: ../includes/ot-functions-admin.php:3617 +#: ../includes/ot-functions-admin.php:3640 msgid "or" msgstr "" -#: ../includes/ot-functions-admin.php:3663 +#: ../includes/ot-functions-admin.php:3686 #: ../includes/ot-functions-docs-page.php:29 msgid "Label" msgstr "" -#: ../includes/ot-functions-admin.php:3673 +#: ../includes/ot-functions-admin.php:3696 msgid "Value" msgstr "" -#: ../includes/ot-functions-admin.php:3683 +#: ../includes/ot-functions-admin.php:3706 msgid "Image Source (Radio Image only)" msgstr "" -#: ../includes/ot-functions-admin.php:3729 +#: ../includes/ot-functions-admin.php:3752 msgid "" "Title: Displayed as a contextual help menu item on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3745 +#: ../includes/ot-functions-admin.php:3768 msgid "" "Content: Enter the HTML content about this contextual help " "item displayed on the Theme Option page for end users to read." msgstr "" -#: ../includes/ot-functions-admin.php:3776 +#: ../includes/ot-functions-admin.php:3799 msgid "Layout" msgstr "" -#: ../includes/ot-functions-admin.php:3778 -#: ../includes/ot-functions-admin.php:3779 +#: ../includes/ot-functions-admin.php:3801 +#: ../includes/ot-functions-admin.php:3802 msgid "Activate" msgstr "" -#: ../includes/ot-functions-admin.php:3815 ../includes/ot-meta-box-api.php:223 -#: ../includes/ot-settings-api.php:595 +#: ../includes/ot-functions-admin.php:3838 ../includes/ot-meta-box-api.php:223 +#: ../includes/ot-settings-api.php:594 msgid "Title" msgstr "" -#: ../includes/ot-functions-admin.php:4136 +#: ../includes/ot-functions-admin.php:4178 msgid "New Layout" msgstr "" -#: ../includes/ot-functions-admin.php:4719 +#: ../includes/ot-functions-admin.php:4761 msgid "Link URL" msgstr "" -#: ../includes/ot-functions-admin.php:4726 +#: ../includes/ot-functions-admin.php:4768 msgid "Link Title" msgstr "" -#: ../includes/ot-functions-admin.php:4756 +#: ../includes/ot-functions-admin.php:4798 msgid "Quote" msgstr "" -#: ../includes/ot-functions-admin.php:4765 +#: ../includes/ot-functions-admin.php:4807 msgid "Source Name (ex. author, singer, actor)" msgstr "" -#: ../includes/ot-functions-admin.php:4772 +#: ../includes/ot-functions-admin.php:4814 msgid "Source URL" msgstr "" -#: ../includes/ot-functions-admin.php:4779 +#: ../includes/ot-functions-admin.php:4821 msgid "Source Title (ex. book, song, movie)" msgstr "" -#: ../includes/ot-functions-admin.php:4786 +#: ../includes/ot-functions-admin.php:4828 msgid "Source Date" msgstr "" -#: ../includes/ot-functions-admin.php:4816 +#: ../includes/ot-functions-admin.php:4858 msgid "Video" msgstr "" -#: ../includes/ot-functions-admin.php:4825 +#: ../includes/ot-functions-admin.php:4867 #, php-format msgid "" "Embed video from services like Youtube, Vimeo, or Hulu. You can find a list " @@ -1260,16 +1369,16 @@ msgid "" "built-in %2$s shortcode." msgstr "" -#: ../includes/ot-functions-admin.php:4825 -#: ../includes/ot-functions-admin.php:4864 +#: ../includes/ot-functions-admin.php:4867 +#: ../includes/ot-functions-admin.php:4906 msgid "Wordpress Codex" msgstr "" -#: ../includes/ot-functions-admin.php:4855 +#: ../includes/ot-functions-admin.php:4897 msgid "Audio" msgstr "" -#: ../includes/ot-functions-admin.php:4864 +#: ../includes/ot-functions-admin.php:4906 #, php-format msgid "" "Embed audio from services like SoundCloud and Rdio. You can find a list of " @@ -1976,6 +2085,10 @@ msgstr "" msgid "background-size" msgstr "" +#: ../includes/ot-functions-option-types.php:238 +msgid "background-image" +msgstr "" + #: ../includes/ot-functions-option-types.php:241 #: ../includes/ot-functions-option-types.php:2437 msgid "Add Media" @@ -2325,6 +2438,6 @@ msgstr "" msgid "Save Layouts" msgstr "" -#: ../includes/ot-settings-api.php:356 +#: ../includes/ot-settings-api.php:355 msgid "Reset Options" msgstr "" diff --git a/option-tree/ot-loader.php b/option-tree/ot-loader.php index 46b9e18..450641c 100644 --- a/option-tree/ot-loader.php +++ b/option-tree/ot-loader.php @@ -3,7 +3,7 @@ * Plugin Name: OptionTree * Plugin URI: https://github.com/valendesigns/option-tree/ * Description: Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. - * Version: 2.4.2 + * Version: 2.4.6 * Author: Derek Herman * Author URI: http://valendesigns.com * License: GPLv3 @@ -178,7 +178,7 @@ private function constants() { /** * Current Version number. */ - define( 'OT_VERSION', '2.4.2' ); + define( 'OT_VERSION', '2.4.6' ); /** * For developers: Theme mode. @@ -382,6 +382,9 @@ private function admin_includes() { $files[] = 'ot-functions-docs-page'; } + /* include the cleanup api */ + $files[] = 'ot-cleanup-api'; + /* require the files */ foreach ( $files as $file ) { $this->load_file( OT_DIR . "includes" . DIRECTORY_SEPARATOR . "{$file}.php" ); @@ -682,8 +685,13 @@ public function add_social_links() { public function shortcode( $settings, $post ) { // Set the OptionTree post ID - if ( ! is_object( $post ) ) - $settings['post']['id'] = ot_get_media_post_ID(); + if ( ! is_object( $post ) ) { + $post_id = isset( $_GET['post'] ) ? $_GET['post'] : ( isset( $_GET['post_ID'] ) ? $_GET['post_ID'] : 0 ); + if ( $post_id == 0 && function_exists( 'ot_get_media_post_ID' ) ) { + $post_id = ot_get_media_post_ID(); + } + $settings['post']['id'] = $post_id; + } // No ID return settings if ( $settings['post']['id'] == 0 ) diff --git a/option-tree/readme.txt b/option-tree/readme.txt index 68b1497..e1c3e86 100644 --- a/option-tree/readme.txt +++ b/option-tree/readme.txt @@ -3,8 +3,8 @@ Contributors: valendesigns Donate link: http://bit.ly/NuXI3T Tags: options, theme options, meta boxes Requires at least: 3.5 -Tested up to: 3.9.1 -Stable tag: 2.4.2 +Tested up to: 4.0 +Stable tag: 2.4.6 License: GPLv3 Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. @@ -118,6 +118,31 @@ The most likely scenario is your theme already has OptionTree installed in Theme == Changelog == += 2.4.6 = +* Hotfix - Added a clean up script to consolidate orphaned media posts and remove the old and unused `wp_option_tree` table. +* Hotfix - Fixed an issue where `ot_get_media_post_ID()` was never able to set the value of the `ot_media_post_ID` option because it was already set to empty. Causing the `ot_create_media_post()` function to create multiple media posts. + += 2.4.5 = +* Hotfix - Fixed an issue where `ot_get_media_post_ID()` was setting the value of the `ot_media_post_ID` option to `null`. Causing the `ot_create_media_post()` function to create multiple media posts. A clean up script will be added to `2.5.0`. + += 2.4.4 = +* Hotfix - Fixed undefined index caused by shorthand conditional. +* Hotfix - Fixed jQuery UI style conflicts created by the Easy Digital Downloads plugin. +* Hotfix - Added placeholder to background-image. Contributors via github @BassemN. + += 2.4.3 = +* Hotfix - WordPress 4.0 compatible. +* Hotfix - Fixed an issue where all media was being attached to the default OptionTree media post. +* Hotfix - Removed the deprecated `screen_icon()` function. +* Hotfix - Fixed the `ot_line_height_range_interval` filter being misnamed as `ot_line_height_unit_type`. Contributors via github @youri--. +* Hotfix - Fixed a conflict with "Frontend Publishing Pro" when using the media uploader on the front-end. +* Hotfix - Increase condition performance. Contributors via github @designst. +* Hotfix - Add custom style classes to list-item settings. Contributors via github @designst. +* Hotfix - Check for `post_title` instead of `post_name` in `ot_get_media_post_ID()`. Contributors via github @clifgriffin. +* Hotfix - Store the return value of `ot_get_media_post_ID()` in the options table as `ot_media_post_ID`. +* Hotfix - Added padding to List Items options to reflect the same UI as individual options. Contributors via github @valendesigns and @designst. +* Hotfix - Fixed a bug that caused the Social Links option type to not properly import. + = 2.4.2 = * Hotfix - Fixed a PHP notice that was created when `background-size` in the Background option type is undefined. * Hotfix - Fixed an issue with the Upload option type, in attachment ID mode, not storing its value. From 23413f75941aa44ebd8d6ee649e55d00a7518a1c Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 31 Dec 2014 09:05:31 +0100 Subject: [PATCH 45/62] 2.2.0 --- changelog.txt | 6 +++++- style.css | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index e6f2a5a..3f90610 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,11 @@ Theme : Anew -Version : 2.1.9 +Version : 2.2.0 Author : Alexander "Alx" Agnarson - http://alxmedia.se +December 31 2014 - 2.2.0 +=========================================================== +- Updated to OptionTree 2.4.6 + October 10 2014 - 2.1.9 =========================================================== - Updated documentation diff --git a/style.css b/style.css index 2feaf55..551b646 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.1.9 +Version: 2.2.0 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From 8188b135ac91ced9707cb101ef3636c3b425b045 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 31 Dec 2014 09:08:19 +0100 Subject: [PATCH 46/62] fix --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 3f90610..805725c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,7 @@ Version : 2.2.0 December 31 2014 - 2.2.0 =========================================================== +- Added WP 4.1 title tag support - Updated to OptionTree 2.4.6 October 10 2014 - 2.1.9 From 404e131da34ac81996bca1c576bfb58d1ba902a6 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Wed, 31 Dec 2014 10:07:24 +0100 Subject: [PATCH 47/62] update TGM Plugin Activation to 2.4.0 --- functions/class-tgm-plugin-activation.php | 4180 +++++++++++---------- 1 file changed, 2145 insertions(+), 2035 deletions(-) diff --git a/functions/class-tgm-plugin-activation.php b/functions/class-tgm-plugin-activation.php index 8412b4b..b98969a 100644 --- a/functions/class-tgm-plugin-activation.php +++ b/functions/class-tgm-plugin-activation.php @@ -3,19 +3,19 @@ * Plugin installation and activation for WordPress themes. * * @package TGM-Plugin-Activation - * @version 2.3.6 - * @author Thomas Griffin - * @author Gary Jones + * @version 2.4.0 + * @author Thomas Griffin + * @author Gary Jones * @copyright Copyright (c) 2012, Thomas Griffin * @license http://opensource.org/licenses/gpl-2.0.php GPL v2 or later * @link https://github.com/thomasgriffin/TGM-Plugin-Activation */ /* - Copyright 2012 Thomas Griffin (email : thomas@thomasgriffinmedia.com) + Copyright 2014 Thomas Griffin (thomasgriffinmedia.com) This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License, version 3, as + it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, @@ -29,948 +29,1028 @@ */ if ( ! class_exists( 'TGM_Plugin_Activation' ) ) { - /** - * Automatic plugin installation and activation library. - * - * Creates a way to automatically install and activate plugins from within themes. - * The plugins can be either pre-packaged, downloaded from the WordPress - * Plugin Repository or downloaded from a private repository. - * - * @since 1.0.0 - * - * @package TGM-Plugin-Activation - * @author Thomas Griffin - * @author Gary Jones - */ - class TGM_Plugin_Activation { - - /** - * Holds a copy of itself, so it can be referenced by the class name. - * - * @since 1.0.0 - * - * @var TGM_Plugin_Activation - */ - static $instance; - - /** - * Holds arrays of plugin details. - * - * @since 1.0.0 - * - * @var array - */ - public $plugins = array(); - - /** - * Parent menu slug for plugins page. - * - * @since 2.2.0 - * - * @var string Parent menu slug. Defaults to 'themes.php'. - */ - public $parent_menu_slug = 'themes.php'; - - /** - * Parent URL slug for URL references. - * - * This is useful if you want to place the custom plugins page as a - * submenu item under a custom parent menu. - * - * @since 2.2.0 - * - * @var string Parent URL slug. Defaults to 'themes.php'. - */ - public $parent_url_slug = 'themes.php'; - - /** - * Name of the querystring argument for the admin page. - * - * @since 1.0.0 - * - * @var string - */ - public $menu = 'install-required-plugins'; - - /** - * Default absolute path to folder containing pre-packaged plugin zip files. - * - * @since 2.0.0 - * - * @var string Absolute path prefix to packaged zip file location. Default is empty string. - */ - public $default_path = ''; - - /** - * Flag to show admin notices or not. - * - * @since 2.1.0 - * - * @var boolean - */ - public $has_notices = true; - - /** - * Flag to set automatic activation of plugins. Off by default. - * - * @since 2.2.0 - * - * @var boolean - */ - public $is_automatic = false; - - /** - * Optional message to display before the plugins table. - * - * @since 2.2.0 - * - * @var string Message filtered by wp_kses_post(). Default is empty string. - */ - public $message = ''; - - /** - * Holds configurable array of strings. - * - * Default values are added in the constructor. - * - * @since 2.0.0 - * - * @var array - */ - public $strings = array(); - - /** - * Adds a reference of this object to $instance, populates default strings, - * does the tgmpa_init action hook, and hooks in the interactions to init. - * - * @since 1.0.0 - * - * @see TGM_Plugin_Activation::init() - */ - public function __construct() { - - self::$instance =& $this; - - $this->strings = array( - 'page_title' => __( 'Install Required Plugins', 'tgmpa' ), - 'menu_title' => __( 'Install Plugins', 'tgmpa' ), - 'installing' => __( 'Installing Plugin: %s', 'tgmpa' ), - 'oops' => __( 'Something went wrong.', 'tgmpa' ), - 'notice_can_install_required' => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.' ), - 'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), - 'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), - 'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), - 'notice_can_activate_recommended' => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), - 'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), - 'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), - 'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), - 'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ), - 'activate_link' => _n_noop( 'Activate installed plugin', 'Activate installed plugins' ), - 'return' => __( 'Return to Required Plugins Installer', 'tgmpa' ), - 'dashboard' => __( 'Return to the dashboard', 'tgmpa' ), - 'plugin_activated' => __( 'Plugin activated successfully.', 'tgmpa' ), - 'activated_successfully' => __( 'The following plugin was activated successfully:', 'tgmpa' ), - 'complete' => __( 'All plugins installed and activated successfully. %1$s', 'tgmpa' ), - 'dismiss' => __( 'Dismiss this notice', 'tgmpa' ), - ); - - /** Announce that the class is ready, and pass the object (for advanced use) */ - do_action_ref_array( 'tgmpa_init', array( &$this ) ); - - /** When the rest of WP has loaded, kick-start the rest of the class */ - add_action( 'init', array( &$this, 'init' ) ); - - } - - /** - * Initialise the interactions between this class and WordPress. - * - * Hooks in three new methods for the class: admin_menu, notices and styles. - * - * @since 2.0.0 - * - * @see TGM_Plugin_Activation::admin_menu() - * @see TGM_Plugin_Activation::notices() - * @see TGM_Plugin_Activation::styles() - */ - public function init() { - - do_action( 'tgmpa_register' ); - /** After this point, the plugins should be registered and the configuration set */ - - /** Proceed only if we have plugins to handle */ - if ( $this->plugins ) { - $sorted = array(); // Prepare variable for sorting - - foreach ( $this->plugins as $plugin ) - $sorted[] = $plugin['name']; - - array_multisort( $sorted, SORT_ASC, $this->plugins ); // Sort plugins alphabetically by name - - add_action( 'admin_menu', array( &$this, 'admin_menu' ) ); - add_action( 'admin_head', array( &$this, 'dismiss' ) ); - add_filter( 'install_plugin_complete_actions', array( &$this, 'actions' ) ); - - /** Load admin bar in the header to remove flash when installing plugins */ - if ( $this->is_tgmpa_page() ) { - remove_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); - remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 ); - add_action( 'wp_head', 'wp_admin_bar_render', 1000 ); - add_action( 'admin_head', 'wp_admin_bar_render', 1000 ); - } - - if ( $this->has_notices ) { - add_action( 'admin_notices', array( &$this, 'notices' ) ); - add_action( 'admin_init', array( &$this, 'admin_init' ), 1 ); - add_action( 'admin_enqueue_scripts', array( &$this, 'thickbox' ) ); - add_action( 'switch_theme', array( &$this, 'update_dismiss' ) ); - } - - /** Setup the force activation hook */ - foreach ( $this->plugins as $plugin ) { - if ( isset( $plugin['force_activation'] ) && true === $plugin['force_activation'] ) { - add_action( 'admin_init', array( &$this, 'force_activation' ) ); - break; - } - } - - /** Setup the force deactivation hook */ - foreach ( $this->plugins as $plugin ) { - if ( isset( $plugin['force_deactivation'] ) && true === $plugin['force_deactivation'] ) { - add_action( 'switch_theme', array( &$this, 'force_deactivation' ) ); - break; - } - } - } - - } - - /** - * Handles calls to show plugin information via links in the notices. - * - * We get the links in the admin notices to point to the TGMPA page, rather - * than the typical plugin-install.php file, so we can prepare everything - * beforehand. - * - * WP doesn't make it easy to show the plugin information in the thickbox - - * here we have to require a file that includes a function that does the - * main work of displaying it, enqueue some styles, set up some globals and - * finally call that function before exiting. - * - * Down right easy once you know how... - * - * @since 2.1.0 - * - * @global string $tab Used as iframe div class names, helps with styling - * @global string $body_id Used as the iframe body ID, helps with styling - * @return null Returns early if not the TGMPA page. - */ - public function admin_init() { - - if ( ! $this->is_tgmpa_page() ) - return; - - if ( isset( $_REQUEST['tab'] ) && 'plugin-information' == $_REQUEST['tab'] ) { - require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // Need for install_plugin_information() - - wp_enqueue_style( 'plugin-install' ); - - global $tab, $body_id; - $body_id = $tab = 'plugin-information'; - - install_plugin_information(); - - exit; - } - - } - - /** - * Enqueues thickbox scripts/styles for plugin info. - * - * Thickbox is not automatically included on all admin pages, so we must - * manually enqueue it for those pages. - * - * Thickbox is only loaded if the user has not dismissed the admin - * notice or if there are any plugins left to install and activate. - * - * @since 2.1.0 - */ - public function thickbox() { - - if ( ! get_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice', true ) ) - add_thickbox(); - - } - - /** - * Adds submenu page under 'Appearance' tab. - * - * This method adds the submenu page letting users know that a required - * plugin needs to be installed. - * - * This page disappears once the plugin has been installed and activated. - * - * @since 1.0.0 - * - * @see TGM_Plugin_Activation::init() - * @see TGM_Plugin_Activation::install_plugins_page() - */ - public function admin_menu() { - - // Make sure privileges are correct to see the page - if ( ! current_user_can( 'install_plugins' ) ) - return; - - $this->populate_file_path(); - - foreach ( $this->plugins as $plugin ) { - if ( ! is_plugin_active( $plugin['file_path'] ) ) { - add_theme_page( - // $this->parent_menu_slug, // Parent menu slug - $this->strings['page_title'], // Page title - $this->strings['menu_title'], // Menu title - 'edit_theme_options', // Capability - $this->menu, // Menu slug - array( &$this, 'install_plugins_page' ) // Callback - ); - break; - } - } - - } - - /** - * Echoes plugin installation form. - * - * This method is the callback for the admin_menu method function. - * This displays the admin page and form area where the user can select to install and activate the plugin. - * - * @since 1.0.0 - * - * @return null Aborts early if we're processing a plugin installation action - */ - public function install_plugins_page() { - - /** Store new instance of plugin table in object */ - $plugin_table = new TGMPA_List_Table; - - /** Return early if processing a plugin installation action */ - if ( isset( $_POST[sanitize_key( 'action' )] ) && 'tgmpa-bulk-install' == $_POST[sanitize_key( 'action' )] && $plugin_table->process_bulk_actions() || $this->do_plugin_install() ) - return; - - ?> -
    - - -

    - prepare_items(); ?> - - message ) ) _e( wp_kses_post( $this->message ), 'tgmpa' ); ?> - -
    - - display(); ?> -
    - -
    - $this->menu, - 'plugin' => $plugin['slug'], - 'plugin_name' => $plugin['name'], - 'plugin_source' => $plugin['source'], - 'tgmpa-install' => 'install-plugin', - ), - admin_url( $this->parent_url_slug ) - ), - 'tgmpa-install' - ); - $method = ''; // Leave blank so WP_Filesystem can populate it as necessary - $fields = array( sanitize_key( 'tgmpa-install' ) ); // Extra fields to pass to WP_Filesystem - - if ( false === ( $creds = request_filesystem_credentials( $url, $method, false, false, $fields ) ) ) - return true; - - if ( ! WP_Filesystem( $creds ) ) { - request_filesystem_credentials( $url, $method, true, false, $fields ); // Setup WP_Filesystem - return true; - } - - require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // Need for plugins_api - require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // Need for upgrade classes - - /** Set plugin source to WordPress API link if available */ - if ( isset( $plugin['source'] ) && 'repo' == $plugin['source'] ) { - $api = plugins_api( 'plugin_information', array( 'slug' => $plugin['slug'], 'fields' => array( 'sections' => false ) ) ); - - if ( is_wp_error( $api ) ) - wp_die( $this->strings['oops'] . var_dump( $api ) ); - - if ( isset( $api->download_link ) ) - $plugin['source'] = $api->download_link; - } - - /** Set type, based on whether the source starts with http:// or https:// */ - $type = preg_match( '|^http(s)?://|', $plugin['source'] ) ? 'web' : 'upload'; - - /** Prep variables for Plugin_Installer_Skin class */ - $title = sprintf( $this->strings['installing'], $plugin['name'] ); - $url = add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $plugin['slug'] ), 'update.php' ); - if ( isset( $_GET['from'] ) ) - $url .= add_query_arg( 'from', urlencode( stripslashes( $_GET['from'] ) ), $url ); - - $nonce = 'install-plugin_' . $plugin['slug']; - - /** Prefix a default path to pre-packaged plugins */ - $source = ( 'upload' == $type ) ? $this->default_path . $plugin['source'] : $plugin['source']; - - /** Create a new instance of Plugin_Upgrader */ - $upgrader = new Plugin_Upgrader( $skin = new Plugin_Installer_Skin( compact( 'type', 'title', 'url', 'nonce', 'plugin', 'api' ) ) ); - - /** Perform the action and install the plugin from the $source urldecode() */ - $upgrader->install( $source ); - - /** Flush plugins cache so we can make sure that the installed plugins list is always up to date */ - wp_cache_flush(); - - /** Only activate plugins if the config option is set to true */ - if ( $this->is_automatic ) { - $plugin_activate = $upgrader->plugin_info(); // Grab the plugin info from the Plugin_Upgrader method - $activate = activate_plugin( $plugin_activate ); // Activate the plugin - $this->populate_file_path(); // Re-populate the file path now that the plugin has been installed and activated - - if ( is_wp_error( $activate ) ) { - echo '

    ' . $activate->get_error_message() . '

    '; - echo '

    ' . $this->strings['return'] . '

    '; - return true; // End it here if there is an error with automatic activation - } - else { - echo '

    ' . $this->strings['plugin_activated'] . '

    '; - } - } - - /** Display message based on if all plugins are now active or not */ - $complete = array(); - foreach ( $this->plugins as $plugin ) { - if ( ! is_plugin_active( $plugin['file_path'] ) ) { - echo '

    ' . $this->strings['return'] . '

    '; - $complete[] = $plugin; - break; - } - /** Nothing to store */ - else { - $complete[] = ''; - } - } - - /** Filter out any empty entries */ - $complete = array_filter( $complete ); - - /** All plugins are active, so we display the complete string and hide the plugin menu */ - if ( empty( $complete ) ) { - echo '

    ' . sprintf( $this->strings['complete'], '' . $this->strings['domain'] . '' ) . '

    '; - echo ''; - } - - return true; - } - /** Checks for actions from hover links to process the activation */ - elseif ( isset( $_GET[sanitize_key( 'plugin' )] ) && ( isset( $_GET[sanitize_key( 'tgmpa-activate' )] ) && 'activate-plugin' == $_GET[sanitize_key( 'tgmpa-activate' )] ) ) { - check_admin_referer( 'tgmpa-activate', 'tgmpa-activate-nonce' ); - - /** Populate $plugin array with necessary information */ - $plugin['name'] = $_GET[sanitize_key( 'plugin_name' )]; - $plugin['slug'] = $_GET[sanitize_key( 'plugin' )]; - $plugin['source'] = $_GET[sanitize_key( 'plugin_source' )]; - - $plugin_data = get_plugins( '/' . $plugin['slug'] ); // Retrieve all plugins - $plugin_file = array_keys( $plugin_data ); // Retrieve all plugin files from installed plugins - $plugin_to_activate = $plugin['slug'] . '/' . $plugin_file[0]; // Match plugin slug with appropriate plugin file - $activate = activate_plugin( $plugin_to_activate ); // Activate the plugin - - if ( is_wp_error( $activate ) ) { - echo '

    ' . $activate->get_error_message() . '

    '; - echo '

    ' . $this->strings['return'] . '

    '; - return true; // End it here if there is an error with activation - } - else { - /** Make sure message doesn't display again if bulk activation is performed immediately after a single activation */ - if ( ! isset( $_POST[sanitize_key( 'action' )] ) ) { - $msg = $this->strings['activated_successfully'] . ' ' . $plugin['name'] . ''; - echo '

    ' . $msg . '

    '; - } - } - } - - return false; - - } - - /** - * Echoes required plugin notice. - * - * Outputs a message telling users that a specific plugin is required for - * their theme. If appropriate, it includes a link to the form page where - * users can install and activate the plugin. - * - * @since 1.0.0 - * - * @global object $current_screen - * @return null Returns early if we're on the Install page - */ - public function notices() { - - global $current_screen; - - /** Remove nag on the install page */ - if ( $this->is_tgmpa_page() ) - return; - - $installed_plugins = get_plugins(); // Retrieve a list of all the plugins - $this->populate_file_path(); - - $message = array(); // Store the messages in an array to be outputted after plugins have looped through - $install_link = false; // Set to false, change to true in loop if conditions exist, used for action link 'install' - $install_link_count = 0; // Used to determine plurality of install action link text - $activate_link = false; // Set to false, change to true in loop if conditions exist, used for action link 'activate' - $activate_link_count = 0; // Used to determine plurality of activate action link text - - foreach ( $this->plugins as $plugin ) { - /** If the plugin is installed and active, check for minimum version argument before moving forward */ - if ( is_plugin_active( $plugin['file_path'] ) ) { - /** A minimum version has been specified */ - if ( isset( $plugin['version'] ) ) { - if ( isset( $installed_plugins[$plugin['file_path']]['Version'] ) ) { - /** If the current version is less than the minimum required version, we display a message */ - if ( version_compare( $installed_plugins[$plugin['file_path']]['Version'], $plugin['version'], '<' ) ) { - if ( current_user_can( 'install_plugins' ) ) - $message['notice_ask_to_update'][] = $plugin['name']; - else - $message['notice_cannot_update'][] = $plugin['name']; - } - } - /** Can't find the plugin, so iterate to the next condition */ - else { - continue; - } - } - /** No minimum version specified, so iterate over the plugin */ - else { - continue; - } - } - - /** Not installed */ - if ( ! isset( $installed_plugins[$plugin['file_path']] ) ) { - $install_link = true; // We need to display the 'install' action link - $install_link_count++; // Increment the install link count - if ( current_user_can( 'install_plugins' ) ) { - if ( $plugin['required'] ) - $message['notice_can_install_required'][] = $plugin['name']; - /** This plugin is only recommended */ - else - $message['notice_can_install_recommended'][] = $plugin['name']; - } - /** Need higher privileges to install the plugin */ - else { - $message['notice_cannot_install'][] = $plugin['name']; - } - } - /** Installed but not active */ - elseif ( is_plugin_inactive( $plugin['file_path'] ) ) { - $activate_link = true; // We need to display the 'activate' action link - $activate_link_count++; // Increment the activate link count - if ( current_user_can( 'activate_plugins' ) ) { - if ( ( isset( $plugin['required'] ) ) && ( $plugin['required'] ) ) - $message['notice_can_activate_required'][] = $plugin['name']; - /** This plugin is only recommended */ - else { - $message['notice_can_activate_recommended'][] = $plugin['name']; - } - } - /** Need higher privileges to activate the plugin */ - else { - $message['notice_cannot_activate'][] = $plugin['name']; - } - } - } - - /** Only process the nag messages if the user has not dismissed them already */ - if ( ! get_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice', true ) ) { - /** If we have notices to display, we move forward */ - if ( ! empty( $message ) ) { - krsort( $message ); // Sort messages - $rendered = ''; // Display all nag messages as strings - - /** Grab all plugin names */ - foreach ( $message as $type => $plugin_groups ) { - $linked_plugin_groups = array(); - - /** Count number of plugins in each message group to calculate singular/plural message */ - $count = count( $plugin_groups ); - - /** Loop through the plugin names to make the ones pulled from the .org repo linked */ - foreach ( $plugin_groups as $plugin_group_single_name ) { - $external_url = $this->_get_plugin_data_from_name( $plugin_group_single_name, 'external_url' ); - $source = $this->_get_plugin_data_from_name( $plugin_group_single_name, 'source' ); - - if ( $external_url && preg_match( '|^http(s)?://|', $external_url ) ) { - $linked_plugin_groups[] = '' . $plugin_group_single_name . ''; - } - elseif ( ! $source || preg_match( '|^http://wordpress.org/extend/plugins/|', $source ) ) { - $url = add_query_arg( - array( - 'tab' => 'plugin-information', - 'plugin' => $this->_get_plugin_data_from_name( $plugin_group_single_name ), - 'TB_iframe' => 'true', - 'width' => '640', - 'height' => '500', - ), - admin_url( 'plugin-install.php' ) - ); - - $linked_plugin_groups[] = '' . $plugin_group_single_name . ''; - } - else { - $linked_plugin_groups[] = $plugin_group_single_name; // No hyperlink - } - - if ( isset( $linked_plugin_groups ) && (array) $linked_plugin_groups ) - $plugin_groups = $linked_plugin_groups; - } - - $last_plugin = array_pop( $plugin_groups ); // Pop off last name to prep for readability - $imploded = empty( $plugin_groups ) ? '' . $last_plugin . '' : '' . ( implode( ', ', $plugin_groups ) . ' and ' . $last_plugin . '' ); - - $rendered .= '

    ' . sprintf( translate_nooped_plural( $this->strings[$type], $count, 'tgmpa' ), $imploded, $count ) . '

    '; // All messages now stored - } - - /** Setup variables to determine if action links are needed */ - $show_install_link = $install_link ? '' . translate_nooped_plural( $this->strings['install_link'], $install_link_count, 'tgmpa' ) . '' : ''; - $show_activate_link = $activate_link ? '' . translate_nooped_plural( $this->strings['activate_link'], $activate_link_count, 'tgmpa' ) . '' : ''; - - /** Define all of the action links */ - $action_links = apply_filters( - 'tgmpa_notice_action_links', - array( - 'install' => ( current_user_can( 'install_plugins' ) ) ? $show_install_link : '', - 'activate' => ( current_user_can( 'activate_plugins' ) ) ? $show_activate_link : '', - 'dismiss' => '' . $this->strings['dismiss'] . '', - ) - ); - - $action_links = array_filter( $action_links ); // Remove any empty array items - if ( $action_links ) - $rendered .= '

    ' . implode( ' | ', $action_links ) . '

    '; - - /** Register the nag messages and prepare them to be processed */ - if ( isset( $this->strings['nag_type'] ) ) - add_settings_error( 'tgmpa', 'tgmpa', $rendered, sanitize_html_class( strtolower( $this->strings['nag_type'] ), 'updated' ) ); - else - add_settings_error( 'tgmpa', 'tgmpa', $rendered, 'updated' ); - } - } - - /** Admin options pages already output settings_errors, so this is to avoid duplication */ - if ( 'options-general' !== $current_screen->parent_base ) - settings_errors( 'tgmpa' ); - - } - - /** - * Add dismissable admin notices. - * - * Appends a link to the admin nag messages. If clicked, the admin notice disappears and no longer is visible to users. - * - * @since 2.1.0 - */ - public function dismiss() { - - if ( isset( $_GET[sanitize_key( 'tgmpa-dismiss' )] ) ) - update_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice', 1 ); - - } - - /** - * Add individual plugin to our collection of plugins. - * - * If the required keys are not set, the plugin is not added. - * - * @since 2.0.0 - * - * @param array $plugin Array of plugin arguments. - */ - public function register( $plugin ) { - - if ( ! isset( $plugin['slug'] ) || ! isset( $plugin['name'] ) ) - return; - - $this->plugins[] = $plugin; - - } - - /** - * Amend default configuration settings. - * - * @since 2.0.0 - * - * @param array $config - */ - public function config( $config ) { - - $keys = array( 'default_path', 'parent_menu_slug', 'parent_url_slug', 'domain', 'has_notices', 'menu', 'is_automatic', 'message', 'strings' ); - - foreach ( $keys as $key ) { - if ( isset( $config[$key] ) ) { - if ( is_array( $config[$key] ) ) { - foreach ( $config[$key] as $subkey => $value ) - $this->{$key}[$subkey] = $value; - } else { - $this->$key = $config[$key]; - } - } - } - - } - - /** - * Amend action link after plugin installation. - * - * @since 2.0.0 - * - * @param array $install_actions Existing array of actions - * @return array Amended array of actions - */ - public function actions( $install_actions ) { - - /** Remove action links on the TGMPA install page */ - if ( $this->is_tgmpa_page() ) - return false; - - return $install_actions; - - } - - /** - * Set file_path key for each installed plugin. - * - * @since 2.1.0 - */ - public function populate_file_path() { - - /** Add file_path key for all plugins */ - foreach ( $this->plugins as $plugin => $values ) - $this->plugins[$plugin]['file_path'] = $this->_get_plugin_basename_from_slug( $values['slug'] ); - - } - - /** - * Helper function to extract the file path of the plugin file from the - * plugin slug, if the plugin is installed. - * - * @since 2.0.0 - * - * @param string $slug Plugin slug (typically folder name) as provided by the developer - * @return string Either file path for plugin if installed, or just the plugin slug - */ - protected function _get_plugin_basename_from_slug( $slug ) { - - $keys = array_keys( get_plugins() ); - - foreach ( $keys as $key ) { - if ( preg_match( '|^' . $slug .'|', $key ) ) - return $key; - } - - return $slug; - - } - - /** - * Retrieve plugin data, given the plugin name. - * - * Loops through the registered plugins looking for $name. If it finds it, - * it returns the $data from that plugin. Otherwise, returns false. - * - * @since 2.1.0 - * - * @param string $name Name of the plugin, as it was registered - * @param string $data Optional. Array key of plugin data to return. Default is slug - * @return string|boolean Plugin slug if found, false otherwise. - */ - protected function _get_plugin_data_from_name( $name, $data = 'slug' ) { - - foreach ( $this->plugins as $plugin => $values ) { - if ( $name == $values['name'] && isset( $values[$data] ) ) - return $values[$data]; - } - - return false; - - } - - /** - * Determine if we're on the TGMPA Install page. - * - * We use $current_screen when it is available, and a slightly less ideal - * conditional when it isn't (like when displaying the plugin information - * thickbox). - * - * @since 2.1.0 - * - * @global object $current_screen - * @return boolean True when on the TGMPA page, false otherwise. - */ - protected function is_tgmpa_page() { - - global $current_screen; - - if ( ! is_null( $current_screen ) && $this->parent_menu_slug == $current_screen->parent_file && isset( $_GET['page'] ) && $this->menu === $_GET['page'] ) - return true; - - if ( isset( $_GET['page'] ) && $this->menu === $_GET['page'] ) - return true; - - return false; - - } - - /** - * Delete dismissable nag option when theme is switched. - * - * This ensures that the user is again reminded via nag of required - * and/or recommended plugins if they re-activate the theme. - * - * @since 2.1.1 - */ - public function update_dismiss() { - - delete_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice' ); - - } - - /** - * Forces plugin activation if the parameter 'force_activation' is - * set to true. - * - * This allows theme authors to specify certain plugins that must be - * active at all times while using the current theme. - * - * Please take special care when using this parameter as it has the - * potential to be harmful if not used correctly. Setting this parameter - * to true will not allow the specified plugin to be deactivated unless - * the user switches themes. - * - * @since 2.2.0 - */ - public function force_activation() { - - /** Set file_path parameter for any installed plugins */ - $this->populate_file_path(); - - $installed_plugins = get_plugins(); - - foreach ( $this->plugins as $plugin ) { - /** Oops, plugin isn't there so iterate to next condition */ - if ( isset( $plugin['force_activation'] ) && $plugin['force_activation'] && ! isset( $installed_plugins[$plugin['file_path']] ) ) - continue; - /** There we go, activate the plugin */ - elseif ( isset( $plugin['force_activation'] ) && $plugin['force_activation'] && is_plugin_inactive( $plugin['file_path'] ) ) - activate_plugin( $plugin['file_path'] ); - } - - } - - /** - * Forces plugin deactivation if the parameter 'force_deactivation' - * is set to true. - * - * This allows theme authors to specify certain plugins that must be - * deactived upon switching from the current theme to another. - * - * Please take special care when using this parameter as it has the - * potential to be harmful if not used correctly. - * - * @since 2.2.0 - */ - public function force_deactivation() { - - /** Set file_path parameter for any installed plugins */ - $this->populate_file_path(); - - foreach ( $this->plugins as $plugin ) { - /** Only proceed forward if the paramter is set to true and plugin is active */ - if ( isset( $plugin['force_deactivation'] ) && $plugin['force_deactivation'] && is_plugin_active( $plugin['file_path'] ) ) - deactivate_plugins( $plugin['file_path'] ); - } - - } - - } -} + /** + * Automatic plugin installation and activation library. + * + * Creates a way to automatically install and activate plugins from within themes. + * The plugins can be either pre-packaged, downloaded from the WordPress + * Plugin Repository or downloaded from a private repository. + * + * @since 1.0.0 + * + * @package TGM-Plugin-Activation + * @author Thomas Griffin + * @author Gary Jones + */ + class TGM_Plugin_Activation { + + /** + * Holds a copy of itself, so it can be referenced by the class name. + * + * @since 1.0.0 + * + * @var TGM_Plugin_Activation + */ + public static $instance; + + /** + * Holds arrays of plugin details. + * + * @since 1.0.0 + * + * @var array + */ + public $plugins = array(); + + /** + * Name of the querystring argument for the admin page. + * + * @since 1.0.0 + * + * @var string + */ + public $menu = 'tgmpa-install-plugins'; + + /** + * Default absolute path to folder containing pre-packaged plugin zip files. + * + * @since 2.0.0 + * + * @var string Absolute path prefix to packaged zip file location. Default is empty string. + */ + public $default_path = ''; + + /** + * Flag to show admin notices or not. + * + * @since 2.1.0 + * + * @var boolean + */ + public $has_notices = true; + + /** + * Flag to determine if the user can dismiss the notice nag. + * + * @since 2.4.0 + * + * @var boolean + */ + public $dismissable = true; + + /** + * Message to be output above nag notice if dismissable is false. + * + * @since 2.4.0 + * + * @var string + */ + public $dismiss_msg = ''; + + /** + * Flag to set automatic activation of plugins. Off by default. + * + * @since 2.2.0 + * + * @var boolean + */ + public $is_automatic = false; + + /** + * Optional message to display before the plugins table. + * + * @since 2.2.0 + * + * @var string Message filtered by wp_kses_post(). Default is empty string. + */ + public $message = ''; + + /** + * Holds configurable array of strings. + * + * Default values are added in the constructor. + * + * @since 2.0.0 + * + * @var array + */ + public $strings = array(); + + /** + * Holds the version of WordPress. + * + * @since 2.4.0 + * + * @var int + */ + public $wp_version; + + /** + * Adds a reference of this object to $instance, populates default strings, + * does the tgmpa_init action hook, and hooks in the interactions to init. + * + * @since 1.0.0 + * + * @see TGM_Plugin_Activation::init() + */ + public function __construct() { + + self::$instance = $this; + + $this->strings = array( + 'page_title' => __( 'Install Required Plugins', 'tgmpa' ), + 'menu_title' => __( 'Install Plugins', 'tgmpa' ), + 'installing' => __( 'Installing Plugin: %s', 'tgmpa' ), + 'oops' => __( 'Something went wrong.', 'tgmpa' ), + 'notice_can_install_required' => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.' ), + 'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), + 'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), + 'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), + 'notice_can_activate_recommended'=> _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), + 'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), + 'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), + 'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), + 'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ), + 'activate_link' => _n_noop( 'Begin activating plugin', 'Begin activating plugins' ), + 'return' => __( 'Return to Required Plugins Installer', 'tgmpa' ), + 'dashboard' => __( 'Return to the dashboard', 'tgmpa' ), + 'plugin_activated' => __( 'Plugin activated successfully.', 'tgmpa' ), + 'activated_successfully' => __( 'The following plugin was activated successfully:', 'tgmpa' ), + 'complete' => __( 'All plugins installed and activated successfully. %1$s', 'tgmpa' ), + 'dismiss' => __( 'Dismiss this notice', 'tgmpa' ), + ); + + // Set the current WordPress version. + global $wp_version; + $this->wp_version = $wp_version; + + // Announce that the class is ready, and pass the object (for advanced use). + do_action_ref_array( 'tgmpa_init', array( $this ) ); + + // When the rest of WP has loaded, kick-start the rest of the class. + add_action( 'init', array( $this, 'init' ) ); + + } + + /** + * Initialise the interactions between this class and WordPress. + * + * Hooks in three new methods for the class: admin_menu, notices and styles. + * + * @since 2.0.0 + * + * @see TGM_Plugin_Activation::admin_menu() + * @see TGM_Plugin_Activation::notices() + * @see TGM_Plugin_Activation::styles() + */ + public function init() { + + do_action( 'tgmpa_register' ); + // After this point, the plugins should be registered and the configuration set. + + // Proceed only if we have plugins to handle. + if ( $this->plugins ) { + $sorted = array(); + + foreach ( $this->plugins as $plugin ) { + $sorted[] = $plugin['name']; + } + + array_multisort( $sorted, SORT_ASC, $this->plugins ); + + add_action( 'admin_menu', array( $this, 'admin_menu' ) ); + add_action( 'admin_head', array( $this, 'dismiss' ) ); + add_filter( 'install_plugin_complete_actions', array( $this, 'actions' ) ); + add_action( 'switch_theme', array( $this, 'flush_plugins_cache' ) ); + + // Load admin bar in the header to remove flash when installing plugins. + if ( $this->is_tgmpa_page() ) { + remove_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); + remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 ); + add_action( 'wp_head', 'wp_admin_bar_render', 1000 ); + add_action( 'admin_head', 'wp_admin_bar_render', 1000 ); + } + + if ( $this->has_notices ) { + add_action( 'admin_notices', array( $this, 'notices' ) ); + add_action( 'admin_init', array( $this, 'admin_init' ), 1 ); + add_action( 'admin_enqueue_scripts', array( $this, 'thickbox' ) ); + add_action( 'switch_theme', array( $this, 'update_dismiss' ) ); + } + + // Setup the force activation hook. + foreach ( $this->plugins as $plugin ) { + if ( isset( $plugin['force_activation'] ) && true === $plugin['force_activation'] ) { + add_action( 'admin_init', array( $this, 'force_activation' ) ); + break; + } + } + + // Setup the force deactivation hook. + foreach ( $this->plugins as $plugin ) { + if ( isset( $plugin['force_deactivation'] ) && true === $plugin['force_deactivation'] ) { + add_action( 'switch_theme', array( $this, 'force_deactivation' ) ); + break; + } + } + } + + } + + /** + * Handles calls to show plugin information via links in the notices. + * + * We get the links in the admin notices to point to the TGMPA page, rather + * than the typical plugin-install.php file, so we can prepare everything + * beforehand. + * + * WP doesn't make it easy to show the plugin information in the thickbox - + * here we have to require a file that includes a function that does the + * main work of displaying it, enqueue some styles, set up some globals and + * finally call that function before exiting. + * + * Down right easy once you know how... + * + * @since 2.1.0 + * + * @global string $tab Used as iframe div class names, helps with styling + * @global string $body_id Used as the iframe body ID, helps with styling + * @return null Returns early if not the TGMPA page. + */ + public function admin_init() { + + if ( ! $this->is_tgmpa_page() ) { + return; + } + + if ( isset( $_REQUEST['tab'] ) && 'plugin-information' == $_REQUEST['tab'] ) { + require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // Need for install_plugin_information(). + + wp_enqueue_style( 'plugin-install' ); + + global $tab, $body_id; + $body_id = $tab = 'plugin-information'; + + install_plugin_information(); + + exit; + } + + } + + /** + * Enqueues thickbox scripts/styles for plugin info. + * + * Thickbox is not automatically included on all admin pages, so we must + * manually enqueue it for those pages. + * + * Thickbox is only loaded if the user has not dismissed the admin + * notice or if there are any plugins left to install and activate. + * + * @since 2.1.0 + */ + public function thickbox() { + + if ( ! get_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice', true ) ) { + add_thickbox(); + } + + } + + /** + * Adds submenu page under 'Appearance' tab. + * + * This method adds the submenu page letting users know that a required + * plugin needs to be installed. + * + * This page disappears once the plugin has been installed and activated. + * + * @since 1.0.0 + * + * @see TGM_Plugin_Activation::init() + * @see TGM_Plugin_Activation::install_plugins_page() + */ + public function admin_menu() { + + // Make sure privileges are correct to see the page + if ( ! current_user_can( 'install_plugins' ) ) { + return; + } + + $this->populate_file_path(); + + foreach ( $this->plugins as $plugin ) { + if ( ! is_plugin_active( $plugin['file_path'] ) ) { + add_theme_page( + $this->strings['page_title'], // Page title. + $this->strings['menu_title'], // Menu title. + 'edit_theme_options', // Capability. + $this->menu, // Menu slug. + array( $this, 'install_plugins_page' ) // Callback. + ); + break; + } + } + + } + + /** + * Echoes plugin installation form. + * + * This method is the callback for the admin_menu method function. + * This displays the admin page and form area where the user can select to install and activate the plugin. + * + * @since 1.0.0 + * + * @return null Aborts early if we're processing a plugin installation action + */ + public function install_plugins_page() { + + // Store new instance of plugin table in object. + $plugin_table = new TGMPA_List_Table; + + // Return early if processing a plugin installation action. + if ( isset( $_POST['action'] ) && 'tgmpa-bulk-install' == $_POST['action'] && $plugin_table->process_bulk_actions() || $this->do_plugin_install() ) { + return; + } + + ?> +
    + + wp_version, '3.8', '<' ) ) { + screen_icon( apply_filters( 'tgmpa_default_screen_icon', 'themes' ) ); + } ?> +

    + prepare_items(); ?> + + message ) ) { + echo wp_kses_post( $this->message ); + } ?> + +
    + + display(); ?> +
    + +
    + $this->menu, + 'plugin' => $plugin['slug'], + 'plugin_name' => $plugin['name'], + 'plugin_source' => $plugin['source'], + 'tgmpa-install' => 'install-plugin', + ), + network_admin_url( 'themes.php' ) + ), + 'tgmpa-install' + ); + $method = ''; // Leave blank so WP_Filesystem can populate it as necessary. + $fields = array( 'tgmpa-install' ); // Extra fields to pass to WP_Filesystem. + + if ( false === ( $creds = request_filesystem_credentials( $url, $method, false, false, $fields ) ) ) { + return true; + } + + if ( ! WP_Filesystem( $creds ) ) { + request_filesystem_credentials( $url, $method, true, false, $fields ); // Setup WP_Filesystem. + return true; + } + + require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // Need for plugins_api. + require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // Need for upgrade classes. + + // Set plugin source to WordPress API link if available. + if ( isset( $plugin['source'] ) && 'repo' == $plugin['source'] ) { + $api = plugins_api( 'plugin_information', array( 'slug' => $plugin['slug'], 'fields' => array( 'sections' => false ) ) ); + + if ( is_wp_error( $api ) ) { + wp_die( $this->strings['oops'] . var_dump( $api ) ); + } + + if ( isset( $api->download_link ) ) { + $plugin['source'] = $api->download_link; + } + } + + // Set type, based on whether the source starts with http:// or https://. + $type = preg_match( '|^http(s)?://|', $plugin['source'] ) ? 'web' : 'upload'; + + // Prep variables for Plugin_Installer_Skin class. + $title = sprintf( $this->strings['installing'], $plugin['name'] ); + $url = add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $plugin['slug'] ), 'update.php' ); + if ( isset( $_GET['from'] ) ) { + $url .= add_query_arg( 'from', urlencode( stripslashes( $_GET['from'] ) ), $url ); + } + + $nonce = 'install-plugin_' . $plugin['slug']; + + // Prefix a default path to pre-packaged plugins. + $source = ( 'upload' == $type ) ? $this->default_path . $plugin['source'] : $plugin['source']; + + // Create a new instance of Plugin_Upgrader. + $upgrader = new Plugin_Upgrader( $skin = new Plugin_Installer_Skin( compact( 'type', 'title', 'url', 'nonce', 'plugin', 'api' ) ) ); + + // Perform the action and install the plugin from the $source urldecode(). + $upgrader->install( $source ); + + // Flush plugins cache so we can make sure that the installed plugins list is always up to date. + wp_cache_flush(); + + // Only activate plugins if the config option is set to true. + if ( $this->is_automatic ) { + $plugin_activate = $upgrader->plugin_info(); // Grab the plugin info from the Plugin_Upgrader method. + $activate = activate_plugin( $plugin_activate ); // Activate the plugin. + $this->populate_file_path(); // Re-populate the file path now that the plugin has been installed and activated. + + if ( is_wp_error( $activate ) ) { + echo '

    ' . $activate->get_error_message() . '

    '; + echo '

    ' . $this->strings['return'] . '

    '; + return true; // End it here if there is an error with automatic activation + } + else { + echo '

    ' . $this->strings['plugin_activated'] . '

    '; + } + } + + // Display message based on if all plugins are now active or not. + $complete = array(); + foreach ( $this->plugins as $plugin ) { + if ( ! is_plugin_active( $plugin['file_path'] ) ) { + echo '

    ' . $this->strings['return'] . '

    '; + $complete[] = $plugin; + break; + } + // Nothing to store. + else { + $complete[] = ''; + } + } + + // Filter out any empty entries. + $complete = array_filter( $complete ); + + // All plugins are active, so we display the complete string and hide the plugin menu. + if ( empty( $complete ) ) { + echo '

    ' . sprintf( $this->strings['complete'], '' . __( 'Return to the Dashboard', 'tgmpa' ) . '' ) . '

    '; + echo ''; + } + + return true; + } + // Checks for actions from hover links to process the activation. + elseif ( isset( $_GET['plugin'] ) && ( isset( $_GET['tgmpa-activate'] ) && 'activate-plugin' == $_GET['tgmpa-activate'] ) ) { + check_admin_referer( 'tgmpa-activate', 'tgmpa-activate-nonce' ); + + // Populate $plugin array with necessary information. + $plugin['name'] = $_GET['plugin_name']; + $plugin['slug'] = $_GET['plugin']; + $plugin['source'] = $_GET['plugin_source']; + + $plugin_data = get_plugins( '/' . $plugin['slug'] ); // Retrieve all plugins. + $plugin_file = array_keys( $plugin_data ); // Retrieve all plugin files from installed plugins. + $plugin_to_activate = $plugin['slug'] . '/' . $plugin_file[0]; // Match plugin slug with appropriate plugin file. + $activate = activate_plugin( $plugin_to_activate ); // Activate the plugin. + + if ( is_wp_error( $activate ) ) { + echo '

    ' . $activate->get_error_message() . '

    '; + echo '

    ' . $this->strings['return'] . '

    '; + return true; // End it here if there is an error with activation. + } + else { + // Make sure message doesn't display again if bulk activation is performed immediately after a single activation. + if ( ! isset( $_POST['action'] ) ) { + $msg = $this->strings['activated_successfully'] . ' ' . $plugin['name'] . ''; + echo '

    ' . $msg . '

    '; + } + } + } + + return false; + + } + + /** + * Echoes required plugin notice. + * + * Outputs a message telling users that a specific plugin is required for + * their theme. If appropriate, it includes a link to the form page where + * users can install and activate the plugin. + * + * @since 1.0.0 + * + * @global object $current_screen + * @return null Returns early if we're on the Install page. + */ + public function notices() { + + global $current_screen; + + // Remove nag on the install page. + if ( $this->is_tgmpa_page() ) { + return; + } + + // Return early if the nag message has been dismissed. + if ( get_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice', true ) ) { + return; + } + + $installed_plugins = get_plugins(); // Retrieve a list of all the plugins + $this->populate_file_path(); + + $message = array(); // Store the messages in an array to be outputted after plugins have looped through. + $install_link = false; // Set to false, change to true in loop if conditions exist, used for action link 'install'. + $install_link_count = 0; // Used to determine plurality of install action link text. + $activate_link = false; // Set to false, change to true in loop if conditions exist, used for action link 'activate'. + $activate_link_count = 0; // Used to determine plurality of activate action link text. + + foreach ( $this->plugins as $plugin ) { + // If the plugin is installed and active, check for minimum version argument before moving forward. + if ( is_plugin_active( $plugin['file_path'] ) ) { + // A minimum version has been specified. + if ( isset( $plugin['version'] ) ) { + if ( isset( $installed_plugins[$plugin['file_path']]['Version'] ) ) { + // If the current version is less than the minimum required version, we display a message. + if ( version_compare( $installed_plugins[$plugin['file_path']]['Version'], $plugin['version'], '<' ) ) { + if ( current_user_can( 'install_plugins' ) ) { + $message['notice_ask_to_update'][] = $plugin['name']; + } else { + $message['notice_cannot_update'][] = $plugin['name']; + } + } + } + // Can't find the plugin, so iterate to the next condition. + else { + continue; + } + } + // No minimum version specified, so iterate over the plugin. + else { + continue; + } + } + + // Not installed. + if ( ! isset( $installed_plugins[$plugin['file_path']] ) ) { + $install_link = true; // We need to display the 'install' action link. + $install_link_count++; // Increment the install link count. + if ( current_user_can( 'install_plugins' ) ) { + if ( $plugin['required'] ) { + $message['notice_can_install_required'][] = $plugin['name']; + } + // This plugin is only recommended. + else { + $message['notice_can_install_recommended'][] = $plugin['name']; + } + } + // Need higher privileges to install the plugin. + else { + $message['notice_cannot_install'][] = $plugin['name']; + } + } + // Installed but not active. + elseif ( is_plugin_inactive( $plugin['file_path'] ) ) { + $activate_link = true; // We need to display the 'activate' action link. + $activate_link_count++; // Increment the activate link count. + if ( current_user_can( 'activate_plugins' ) ) { + if ( isset( $plugin['required'] ) && $plugin['required'] ) { + $message['notice_can_activate_required'][] = $plugin['name']; + } + // This plugin is only recommended. + else { + $message['notice_can_activate_recommended'][] = $plugin['name']; + } + } + // Need higher privileges to activate the plugin. + else { + $message['notice_cannot_activate'][] = $plugin['name']; + } + } + } + + // If we have notices to display, we move forward. + if ( ! empty( $message ) ) { + krsort( $message ); // Sort messages. + $rendered = ''; // Display all nag messages as strings. + + // If dismissable is false and a message is set, output it now. + if ( ! $this->dismissable && ! empty( $this->dismiss_msg ) ) { + $rendered .= '

    ' . wp_kses_post( $this->dismiss_msg ) . '

    '; + } + + // Grab all plugin names. + foreach ( $message as $type => $plugin_groups ) { + $linked_plugin_groups = array(); + + // Count number of plugins in each message group to calculate singular/plural message. + $count = count( $plugin_groups ); + + // Loop through the plugin names to make the ones pulled from the .org repo linked. + foreach ( $plugin_groups as $plugin_group_single_name ) { + $external_url = $this->_get_plugin_data_from_name( $plugin_group_single_name, 'external_url' ); + $source = $this->_get_plugin_data_from_name( $plugin_group_single_name, 'source' ); + + if ( $external_url && preg_match( '|^http(s)?://|', $external_url ) ) { + $linked_plugin_groups[] = '' . $plugin_group_single_name . ''; + } + elseif ( ! $source || preg_match( '|^http://wordpress.org/extend/plugins/|', $source ) ) { + $url = add_query_arg( + array( + 'tab' => 'plugin-information', + 'plugin' => $this->_get_plugin_data_from_name( $plugin_group_single_name ), + 'TB_iframe' => 'true', + 'width' => '640', + 'height' => '500', + ), + network_admin_url( 'plugin-install.php' ) + ); + + $linked_plugin_groups[] = '' . $plugin_group_single_name . ''; + } + else { + $linked_plugin_groups[] = $plugin_group_single_name; // No hyperlink. + } + + if ( isset( $linked_plugin_groups ) && (array) $linked_plugin_groups ) { + $plugin_groups = $linked_plugin_groups; + } + } + + $last_plugin = array_pop( $plugin_groups ); // Pop off last name to prep for readability. + $imploded = empty( $plugin_groups ) ? '' . $last_plugin . '' : '' . ( implode( ', ', $plugin_groups ) . ' and ' . $last_plugin . '' ); + + $rendered .= '

    ' . sprintf( translate_nooped_plural( $this->strings[$type], $count, 'tgmpa' ), $imploded, $count ) . '

    '; + } + + // Setup variables to determine if action links are needed. + $show_install_link = $install_link ? '' . translate_nooped_plural( $this->strings['install_link'], $install_link_count, 'tgmpa' ) . '' : ''; + $show_activate_link = $activate_link ? '' . translate_nooped_plural( $this->strings['activate_link'], $activate_link_count, 'tgmpa' ) . '' : ''; + + // Define all of the action links. + $action_links = apply_filters( + 'tgmpa_notice_action_links', + array( + 'install' => ( current_user_can( 'install_plugins' ) ) ? $show_install_link : '', + 'activate' => ( current_user_can( 'activate_plugins' ) ) ? $show_activate_link : '', + 'dismiss' => $this->dismissable ? '' . $this->strings['dismiss'] . '' : '', + ) + ); + + $action_links = array_filter( $action_links ); // Remove any empty array items. + if ( $action_links ) { + $rendered .= '

    ' . implode( ' | ', $action_links ) . '

    '; + } + + // Register the nag messages and prepare them to be processed. + $nag_class = version_compare( $this->wp_version, '3.8', '<' ) ? 'updated' : 'update-nag'; + if ( ! empty( $this->strings['nag_type'] ) ) { + add_settings_error( 'tgmpa', 'tgmpa', $rendered, sanitize_html_class( strtolower( $this->strings['nag_type'] ) ) ); + } else { + add_settings_error( 'tgmpa', 'tgmpa', $rendered, $nag_class ); + } + } + + // Admin options pages already output settings_errors, so this is to avoid duplication. + if ( 'options-general' !== $current_screen->parent_base ) { + settings_errors( 'tgmpa' ); + } + + } + + /** + * Add dismissable admin notices. + * + * Appends a link to the admin nag messages. If clicked, the admin notice disappears and no longer is visible to users. + * + * @since 2.1.0 + */ + public function dismiss() { + + if ( isset( $_GET['tgmpa-dismiss'] ) ) { + update_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice', 1 ); + } + + } + + /** + * Add individual plugin to our collection of plugins. + * + * If the required keys are not set or the plugin has already + * been registered, the plugin is not added. + * + * @since 2.0.0 + * + * @param array $plugin Array of plugin arguments. + */ + public function register( $plugin ) { + + if ( ! isset( $plugin['slug'] ) || ! isset( $plugin['name'] ) ) { + return; + } + + foreach ( $this->plugins as $registered_plugin ) { + if ( $plugin['slug'] == $registered_plugin['slug'] ) { + return; + } + } + + $this->plugins[] = $plugin; + + } + + /** + * Amend default configuration settings. + * + * @since 2.0.0 + * + * @param array $config Array of config options to pass as class properties. + */ + public function config( $config ) { + + $keys = array( 'default_path', 'has_notices', 'dismissable', 'dismiss_msg', 'menu', 'is_automatic', 'message', 'strings' ); + + foreach ( $keys as $key ) { + if ( isset( $config[$key] ) ) { + if ( is_array( $config[$key] ) ) { + foreach ( $config[$key] as $subkey => $value ) { + $this->{$key}[$subkey] = $value; + } + } else { + $this->$key = $config[$key]; + } + } + } + + } + + /** + * Amend action link after plugin installation. + * + * @since 2.0.0 + * + * @param array $install_actions Existing array of actions. + * @return array Amended array of actions. + */ + public function actions( $install_actions ) { + + // Remove action links on the TGMPA install page. + if ( $this->is_tgmpa_page() ) { + return false; + } + + return $install_actions; + + } + + /** + * Flushes the plugins cache on theme switch to prevent stale entries + * from remaining in the plugin table. + * + * @since 2.4.0 + */ + public function flush_plugins_cache() { + + wp_cache_flush(); + + } + + /** + * Set file_path key for each installed plugin. + * + * @since 2.1.0 + */ + public function populate_file_path() { + + // Add file_path key for all plugins. + foreach ( $this->plugins as $plugin => $values ) { + $this->plugins[$plugin]['file_path'] = $this->_get_plugin_basename_from_slug( $values['slug'] ); + } + + } + + /** + * Helper function to extract the file path of the plugin file from the + * plugin slug, if the plugin is installed. + * + * @since 2.0.0 + * + * @param string $slug Plugin slug (typically folder name) as provided by the developer. + * @return string Either file path for plugin if installed, or just the plugin slug. + */ + protected function _get_plugin_basename_from_slug( $slug ) { + + $keys = array_keys( get_plugins() ); + + foreach ( $keys as $key ) { + if ( preg_match( '|^' . $slug .'/|', $key ) ) { + return $key; + } + } + + return $slug; + + } + + /** + * Retrieve plugin data, given the plugin name. + * + * Loops through the registered plugins looking for $name. If it finds it, + * it returns the $data from that plugin. Otherwise, returns false. + * + * @since 2.1.0 + * + * @param string $name Name of the plugin, as it was registered. + * @param string $data Optional. Array key of plugin data to return. Default is slug. + * @return string|boolean Plugin slug if found, false otherwise. + */ + protected function _get_plugin_data_from_name( $name, $data = 'slug' ) { + + foreach ( $this->plugins as $plugin => $values ) { + if ( $name == $values['name'] && isset( $values[$data] ) ) { + return $values[$data]; + } + } + + return false; + + } + + /** + * Determine if we're on the TGMPA Install page. + * + * @since 2.1.0 + * + * @return boolean True when on the TGMPA page, false otherwise. + */ + protected function is_tgmpa_page() { + + if ( isset( $_GET['page'] ) && $this->menu === $_GET['page'] ) { + return true; + } + + return false; + + } + + /** + * Delete dismissable nag option when theme is switched. + * + * This ensures that the user is again reminded via nag of required + * and/or recommended plugins if they re-activate the theme. + * + * @since 2.1.1 + */ + public function update_dismiss() { + + delete_user_meta( get_current_user_id(), 'tgmpa_dismissed_notice' ); + + } + + /** + * Forces plugin activation if the parameter 'force_activation' is + * set to true. + * + * This allows theme authors to specify certain plugins that must be + * active at all times while using the current theme. + * + * Please take special care when using this parameter as it has the + * potential to be harmful if not used correctly. Setting this parameter + * to true will not allow the specified plugin to be deactivated unless + * the user switches themes. + * + * @since 2.2.0 + */ + public function force_activation() { + + // Set file_path parameter for any installed plugins. + $this->populate_file_path(); + + $installed_plugins = get_plugins(); + + foreach ( $this->plugins as $plugin ) { + // Oops, plugin isn't there so iterate to next condition. + if ( isset( $plugin['force_activation'] ) && $plugin['force_activation'] && ! isset( $installed_plugins[$plugin['file_path']] ) ) { + continue; + } + // There we go, activate the plugin. + elseif ( isset( $plugin['force_activation'] ) && $plugin['force_activation'] && is_plugin_inactive( $plugin['file_path'] ) ) { + activate_plugin( $plugin['file_path'] ); + } + } + + } + + /** + * Forces plugin deactivation if the parameter 'force_deactivation' + * is set to true. + * + * This allows theme authors to specify certain plugins that must be + * deactived upon switching from the current theme to another. + * + * Please take special care when using this parameter as it has the + * potential to be harmful if not used correctly. + * + * @since 2.2.0 + */ + public function force_deactivation() { + + // Set file_path parameter for any installed plugins. + $this->populate_file_path(); + + foreach ( $this->plugins as $plugin ) { + // Only proceed forward if the paramter is set to true and plugin is active. + if ( isset( $plugin['force_deactivation'] ) && $plugin['force_deactivation'] && is_plugin_active( $plugin['file_path'] ) ) { + deactivate_plugins( $plugin['file_path'] ); + } + } + + } + + /** + * Returns the singleton instance of the class. + * + * @since 2.4.0 + * + * @return object The TGM_Plugin_Activation object. + */ + public static function get_instance() { + + if ( ! isset( self::$instance ) && ! ( self::$instance instanceof TGM_Plugin_Activation ) ) { + self::$instance = new TGM_Plugin_Activation(); + } + + return self::$instance; + + } + + } + + // Ensure only one instance of the class is ever invoked. + $tgmpa = TGM_Plugin_Activation::get_instance(); -/** Create a new instance of the class */ -new TGM_Plugin_Activation; +} if ( ! function_exists( 'tgmpa' ) ) { - /** - * Helper function to register a collection of required plugins. - * - * @since 2.0.0 - * @api - * - * @param array $plugins An array of plugin arrays - * @param array $config Optional. An array of configuration values - */ - function tgmpa( $plugins, $config = array() ) { - - foreach ( $plugins as $plugin ) - TGM_Plugin_Activation::$instance->register( $plugin ); - - if ( $config ) - TGM_Plugin_Activation::$instance->config( $config ); - - } + /** + * Helper function to register a collection of required plugins. + * + * @since 2.0.0 + * @api + * + * @param array $plugins An array of plugin arrays. + * @param array $config Optional. An array of configuration values. + */ + function tgmpa( $plugins, $config = array() ) { + + foreach ( $plugins as $plugin ) { + TGM_Plugin_Activation::$instance->register( $plugin ); + } + + if ( $config ) { + TGM_Plugin_Activation::$instance->config( $config ); + } + + } } /** @@ -979,599 +1059,620 @@ function tgmpa( $plugins, $config = array() ) { * * @since 2.2.0 */ -if ( ! class_exists( 'WP_List_Table' ) ) - require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); +if ( ! class_exists( 'WP_List_Table' ) ) { + require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); +} if ( ! class_exists( 'TGMPA_List_Table' ) ) { - /** - * List table class for handling plugins. - * - * Extends the WP_List_Table class to provide a future-compatible - * way of listing out all required/recommended plugins. - * - * Gives users an interface similar to the Plugin Administration - * area with similar (albeit stripped down) capabilities. - * - * This class also allows for the bulk install of plugins. - * - * @since 2.2.0 - * - * @package TGM-Plugin-Activation - * @author Thomas Griffin - * @author Gary Jones - */ - class TGMPA_List_Table extends WP_List_Table { - - /** - * References parent constructor and sets defaults for class. - * - * The constructor also grabs a copy of $instance from the TGMPA class - * and stores it in the global object TGM_Plugin_Activation::$instance. - * - * @since 2.2.0 - * - * @global unknown $status - * @global string $page - */ - public function __construct() { - - global $status, $page; - - parent::__construct( - array( - 'singular' => 'plugin', - 'plural' => 'plugins', - 'ajax' => false, - ) - ); - - } - - /** - * Gathers and renames all of our plugin information to be used by - * WP_List_Table to create our table. - * - * @since 2.2.0 - * - * @return array $table_data Information for use in table - */ - protected function _gather_plugin_data() { - - /** Load thickbox for plugin links */ - TGM_Plugin_Activation::$instance->admin_init(); - TGM_Plugin_Activation::$instance->thickbox(); - - /** Prep variables for use and grab list of all installed plugins */ - $table_data = array(); - $i = 0; - $installed_plugins = get_plugins(); - - foreach ( TGM_Plugin_Activation::$instance->plugins as $plugin ) { - if ( is_plugin_active( $plugin['file_path'] ) ) - continue; // No need to display plugins if they are installed and activated - - $table_data[$i]['sanitized_plugin'] = $plugin['name']; - $table_data[$i]['slug'] = $this->_get_plugin_data_from_name( $plugin['name'] ); - - $external_url = $this->_get_plugin_data_from_name( $plugin['name'], 'external_url' ); - $source = $this->_get_plugin_data_from_name( $plugin['name'], 'source' ); - - if ( $external_url && preg_match( '|^http(s)?://|', $external_url ) ) { - $table_data[$i]['plugin'] = '' . $plugin['name'] . ''; - } - elseif ( ! $source || preg_match( '|^http://wordpress.org/extend/plugins/|', $source ) ) { - $url = add_query_arg( - array( - 'tab' => 'plugin-information', - 'plugin' => $this->_get_plugin_data_from_name( $plugin['name'] ), - 'TB_iframe' => 'true', - 'width' => '640', - 'height' => '500', - ), - admin_url( 'plugin-install.php' ) - ); - - $table_data[$i]['plugin'] = '' . $plugin['name'] . ''; - } - else { - $table_data[$i]['plugin'] = '' . $plugin['name'] . ''; // No hyperlink - } - - if ( isset( $table_data[$i]['plugin'] ) && (array) $table_data[$i]['plugin'] ) - $plugin['name'] = $table_data[$i]['plugin']; - - if ( isset( $plugin['external_url'] ) ) { - /** The plugin is linked to an external source */ - $table_data[$i]['source'] = __( 'External Link', 'tgmpa' ); - } - elseif ( isset( $plugin['source'] ) ) { - /** The plugin must be from a private repository */ - if ( preg_match( '|^http(s)?://|', $plugin['source'] ) ) - $table_data[$i]['source'] = __( 'Private Repository', 'tgmpa' ); - /** The plugin is pre-packaged with the theme */ - else - $table_data[$i]['source'] = __( 'Pre-Packaged', 'tgmpa' ); - } - /** The plugin is from the WordPress repository */ - else { - $table_data[$i]['source'] = __( 'WordPress Repository', 'tgmpa' ); - } - - $table_data[$i]['type'] = $plugin['required'] ? __( 'Required', 'tgmpa' ) : __( 'Recommended', 'tgmpa' ); - - if ( ! isset( $installed_plugins[$plugin['file_path']] ) ) - $table_data[$i]['status'] = sprintf( '%1$s', __( 'Not Installed', 'tgmpa' ) ); - elseif ( is_plugin_inactive( $plugin['file_path'] ) ) - $table_data[$i]['status'] = sprintf( '%1$s', __( 'Installed But Not Activated', 'tgmpa' ) ); - - $table_data[$i]['file_path'] = $plugin['file_path']; - $table_data[$i]['url'] = isset( $plugin['source'] ) ? $plugin['source'] : 'repo'; - - $i++; - } - - /** Sort plugins by Required/Recommended type and by alphabetical listing within each type */ - $resort = array(); - $req = array(); - $rec = array(); - - /** Grab all the plugin types */ - foreach ( $table_data as $plugin ) - $resort[] = $plugin['type']; - - /** Sort each plugin by type */ - foreach ( $resort as $type ) - if ( 'Required' == $type ) - $req[] = $type; - else - $rec[] = $type; - - /** Sort alphabetically each plugin type array, merge them and then sort in reverse (lists Required plugins first) */ - sort( $req ); - sort( $rec ); - array_merge( $resort, $req, $rec ); - array_multisort( $resort, SORT_DESC, $table_data ); - - return $table_data; - - } - - /** - * Retrieve plugin data, given the plugin name. Taken from the - * TGM_Plugin_Activation class. - * - * Loops through the registered plugins looking for $name. If it finds it, - * it returns the $data from that plugin. Otherwise, returns false. - * - * @since 2.2.0 - * - * @param string $name Name of the plugin, as it was registered - * @param string $data Optional. Array key of plugin data to return. Default is slug - * @return string|boolean Plugin slug if found, false otherwise - */ - protected function _get_plugin_data_from_name( $name, $data = 'slug' ) { - - foreach ( TGM_Plugin_Activation::$instance->plugins as $plugin => $values ) { - if ( $name == $values['name'] && isset( $values[$data] ) ) - return $values[$data]; - } - - return false; - - } - - /** - * Create default columns to display important plugin information - * like type, action and status. - * - * @since 2.2.0 - * - * @param array $item - * @param string $column_name - */ - public function column_default( $item, $column_name ) { - - switch ( $column_name ) { - case 'source': - case 'type': - case 'status': - return $item[$column_name]; - } - - } - - /** - * Create default title column along with action links of 'Install' - * and 'Activate'. - * - * @since 2.2.0 - * - * @param array $item - * @return string The action hover links - */ - public function column_plugin( $item ) { - - $installed_plugins = get_plugins(); - - /** No need to display any hover links */ - if ( is_plugin_active( $item['file_path'] ) ) - $actions = array(); - - /** We need to display the 'Install' hover link */ - if ( ! isset( $installed_plugins[$item['file_path']] ) ) { - $actions = array( - 'install' => sprintf( - 'Install', - wp_nonce_url( - add_query_arg( - array( - 'page' => TGM_Plugin_Activation::$instance->menu, - 'plugin' => $item['slug'], - 'plugin_name' => $item['sanitized_plugin'], - 'plugin_source' => $item['url'], - 'tgmpa-install' => 'install-plugin', - ), - admin_url( TGM_Plugin_Activation::$instance->parent_url_slug ) - ), - 'tgmpa-install' - ), - $item['sanitized_plugin'] - ), - ); - } - /** We need to display the 'Activate' hover link */ - elseif ( is_plugin_inactive( $item['file_path'] ) ) { - $actions = array( - 'activate' => sprintf( - 'Activate', - add_query_arg( - array( - 'page' => TGM_Plugin_Activation::$instance->menu, - 'plugin' => $item['slug'], - 'plugin_name' => $item['sanitized_plugin'], - 'plugin_source' => $item['url'], - 'tgmpa-activate' => 'activate-plugin', - 'tgmpa-activate-nonce' => wp_create_nonce( 'tgmpa-activate' ), - ), - admin_url( TGM_Plugin_Activation::$instance->parent_url_slug ) - ), - $item['sanitized_plugin'] - ), - ); - } - - return sprintf( '%1$s %2$s', $item['plugin'], $this->row_actions( $actions ) ); - - } - - /** - * Required for bulk installing. - * - * Adds a checkbox for each plugin. - * - * @since 2.2.0 - * - * @param array $item - * @return string The input checkbox with all necessary info - */ - public function column_cb( $item ) { - - $value = $item['file_path'] . ',' . $item['url'] . ',' . $item['sanitized_plugin']; - return sprintf( '', $this->_args['singular'], $value, $item['sanitized_plugin'] ); - - } - - /** - * Sets default message within the plugins table if no plugins - * are left for interaction. - * - * Hides the menu item to prevent the user from clicking and - * getting a permissions error. - * - * @since 2.2.0 - */ - public function no_items() { - - printf( __( 'No plugins to install or activate. Return to the Dashboard', 'tgmpa' ), admin_url() ); - echo ''; - - } - - /** - * Output all the column information within the table. - * - * @since 2.2.0 - * - * @return array $columns The column names - */ - public function get_columns() { - - $columns = array( - 'cb' => '', - 'plugin' => __( 'Plugin', 'tgmpa' ), - 'source' => __( 'Source', 'tgmpa' ), - 'type' => __( 'Type', 'tgmpa' ), - 'status' => __( 'Status', 'tgmpa' ) - ); - - return $columns; - - } - - /** - * Defines all types of bulk actions for handling - * registered plugins. - * - * @since 2.2.0 - * - * @return array $actions The bulk actions for the plugin install table - */ - public function get_bulk_actions() { - - $actions = array( - 'tgmpa-bulk-install' => __( 'Install', 'tgmpa' ), - 'tgmpa-bulk-activate' => __( 'Activate', 'tgmpa' ), - ); - - return $actions; - - } - - /** - * Processes bulk installation and activation actions. - * - * The bulk installation process looks either for the $_POST - * information or for the plugin info within the $_GET variable if - * a user has to use WP_Filesystem to enter their credentials. - * - * @since 2.2.0 - */ - public function process_bulk_actions() { - - /** Bulk installation process */ - if ( 'tgmpa-bulk-install' === $this->current_action() ) { - check_admin_referer( 'bulk-' . $this->_args['plural'] ); - - /** Prep variables to be populated */ - $plugins_to_install = array(); - $plugin_installs = array(); - $plugin_path = array(); - $plugin_name = array(); - - /** Look first to see if information has been passed via WP_Filesystem */ - if ( isset( $_GET[sanitize_key( 'plugins' )] ) ) - $plugins = explode( ',', stripslashes( $_GET[sanitize_key( 'plugins' )] ) ); - /** Looks like the user can use the direct method, take from $_POST */ - elseif ( isset( $_POST[sanitize_key( 'plugin' )] ) ) - $plugins = (array) $_POST[sanitize_key( 'plugin' )]; - /** Nothing has been submitted */ - else - $plugins = array(); - - $a = 0; // Incremental variable - - /** Grab information from $_POST if available */ - if ( isset( $_POST[sanitize_key( 'plugin' )] ) ) { - foreach ( $plugins as $plugin_data ) - $plugins_to_install[] = explode( ',', $plugin_data ); - - foreach ( $plugins_to_install as $plugin_data ) { - $plugin_installs[] = $plugin_data[0]; - $plugin_path[] = $plugin_data[1]; - $plugin_name[] = $plugin_data[2]; - } - } - /** Information has been passed via $_GET */ - else { - foreach ( $plugins as $key => $value ) { - /** Grab plugin slug for each plugin */ - if ( 0 == $key % 3 || 0 == $key ) { - $plugins_to_install[] = $value; - $plugin_installs[] = $value; - } - $a++; - } - } - - /** Look first to see if information has been passed via WP_Filesystem */ - if ( isset( $_GET[sanitize_key( 'plugin_paths' )] ) ) - $plugin_paths = explode( ',', stripslashes( $_GET[sanitize_key( 'plugin_paths' )] ) ); - /** Looks like the user doesn't need to enter his FTP creds */ - elseif ( isset( $_POST[sanitize_key( 'plugin' )] ) ) - $plugin_paths = (array) $plugin_path; - /** Nothing has been submitted */ - else - $plugin_paths = array(); - - /** Look first to see if information has been passed via WP_Filesystem */ - if ( isset( $_GET[sanitize_key( 'plugin_names' )] ) ) - $plugin_names = explode( ',', stripslashes( $_GET[sanitize_key( 'plugin_names' )] ) ); - /** Looks like the user doesn't need to enter his FTP creds */ - elseif ( isset( $_POST[sanitize_key( 'plugin' )] ) ) - $plugin_names = (array) $plugin_name; - /** Nothing has been submitted */ - else - $plugin_names = array(); - - $b = 0; // Incremental variable - - /** Loop through plugin slugs and remove already installed plugins from the list */ - foreach ( $plugin_installs as $key => $plugin ) { - if ( preg_match( '|.php$|', $plugin ) ) { - unset( $plugin_installs[$key] ); - - /** If the plugin path isn't in the $_GET variable, we can unset the corresponding path */ - if ( ! isset( $_GET[sanitize_key( 'plugin_paths' )] ) ) - unset( $plugin_paths[$b] ); - - /** If the plugin name isn't in the $_GET variable, we can unset the corresponding name */ - if ( ! isset( $_GET[sanitize_key( 'plugin_names' )] ) ) - unset( $plugin_names[$b] ); - } - $b++; - } - - /** No need to proceed further if we have no plugins to install */ - if ( empty( $plugin_installs ) ) - return false; - - /** Reset array indexes in case we removed already installed plugins */ - $plugin_installs = array_values( $plugin_installs ); - $plugin_paths = array_values( $plugin_paths ); - $plugin_names = array_values( $plugin_names ); - - /** If we grabbed our plugin info from $_GET, we need to decode it for use */ - $plugin_installs = array_map( 'urldecode', $plugin_installs ); - $plugin_paths = array_map( 'urldecode', $plugin_paths ); - $plugin_names = array_map( 'urldecode', $plugin_names ); - - /** Pass all necessary information via URL if WP_Filesystem is needed */ - $url = wp_nonce_url( - add_query_arg( - array( - 'page' => TGM_Plugin_Activation::$instance->menu, - 'tgmpa-action' => 'install-selected', - 'plugins' => urlencode( implode( ',', $plugins ) ), - 'plugin_paths' => urlencode( implode( ',', $plugin_paths ) ), - 'plugin_names' => urlencode( implode( ',', $plugin_names ) ), - ), - admin_url( TGM_Plugin_Activation::$instance->parent_url_slug ) - ), - 'bulk-plugins' - ); - $method = ''; // Leave blank so WP_Filesystem can populate it as necessary - $fields = array( sanitize_key( 'action' ), sanitize_key( '_wp_http_referer' ), sanitize_key( '_wpnonce' ) ); // Extra fields to pass to WP_Filesystem - - if ( false === ( $creds = request_filesystem_credentials( $url, $method, false, false, $fields ) ) ) - return true; - - if ( ! WP_Filesystem( $creds ) ) { - request_filesystem_credentials( $url, $method, true, false, $fields ); // Setup WP_Filesystem - return true; - } - - require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // Need for plugins_api - require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // Need for upgrade classes - - /** Store all information in arrays since we are processing a bulk installation */ - $api = array(); - $sources = array(); - $install_path = array(); - - $c = 0; // Incremental variable - - /** Loop through each plugin to install and try to grab information from WordPress API, if not create 'tgmpa-empty' scalar */ - foreach ( $plugin_installs as $plugin ) { - $api[$c] = plugins_api( 'plugin_information', array( 'slug' => $plugin, 'fields' => array( 'sections' => false ) ) ) ? plugins_api( 'plugin_information', array( 'slug' => $plugin, 'fields' => array( 'sections' => false ) ) ) : (object) $api[$c] = 'tgmpa-empty'; - $c++; - } - - if ( is_wp_error( $api ) ) - wp_die( TGM_Plugin_Activation::$instance->strings['oops'] . var_dump( $api ) ); - - $d = 0; // Incremental variable - - /** Capture download links from $api or set install link to pre-packaged/private repo */ - foreach ( $api as $object ) { - $sources[$d] = isset( $object->download_link ) && 'repo' == $plugin_paths[$d] ? $object->download_link : $plugin_paths[$d]; - $d++; - } - - /** Finally, all the data is prepared to be sent to the installer */ - $url = add_query_arg( array( 'page' => TGM_Plugin_Activation::$instance->menu ), admin_url( TGM_Plugin_Activation::$instance->parent_url_slug ) ); - $nonce = 'bulk-plugins'; - $names = $plugin_names; - - /** Create a new instance of TGM_Bulk_Installer */ - $installer = new TGM_Bulk_Installer( $skin = new TGM_Bulk_Installer_Skin( compact( 'url', 'nonce', 'names' ) ) ); - - /** Wrap the install process with the appropriate HTML */ - echo '
    '; - screen_icon( apply_filters( 'tgmpa_default_screen_icon', 'themes' ) ); - echo '

    ' . esc_html( get_admin_page_title() ) . '

    '; - /** Process the bulk installation submissions */ - $installer->bulk_install( $sources ); - echo '
    '; - - return true; - } - - /** Bulk activation process */ - if ( 'tgmpa-bulk-activate' === $this->current_action() ) { - check_admin_referer( 'bulk-' . $this->_args['plural'] ); - - /** Grab plugin data from $_POST */ - $plugins = isset( $_POST[sanitize_key( 'plugin' )] ) ? (array) $_POST[sanitize_key( 'plugin' )] : array(); - $plugins_to_activate = array(); - - /** Split plugin value into array with plugin file path, plugin source and plugin name */ - foreach ( $plugins as $i => $plugin ) - $plugins_to_activate[] = explode( ',', $plugin ); - - foreach ( $plugins_to_activate as $i => $array ) { - if ( ! preg_match( '|.php$|', $array[0] ) ) // Plugins that haven't been installed yet won't have the correct file path - unset( $plugins_to_activate[$i] ); - } - - /** Return early if there are no plugins to activate */ - if ( empty( $plugins_to_activate ) ) - return; - - $plugins = array(); - $plugin_names = array(); - - foreach ( $plugins_to_activate as $plugin_string ) { - $plugins[] = $plugin_string[0]; - $plugin_names[] = $plugin_string[2]; - } - - $count = count( $plugin_names ); // Count so we can use _n function - $last_plugin = array_pop( $plugin_names ); // Pop off last name to prep for readability - $imploded = empty( $plugin_names ) ? '' . $last_plugin . '' : '' . ( implode( ', ', $plugin_names ) . ' and ' . $last_plugin . '.' ); - - /** Now we are good to go - let's start activating plugins */ - $activate = activate_plugins( $plugins ); - - if ( is_wp_error( $activate ) ) - echo '

    ' . $activate->get_error_message() . '

    '; - else - printf( '

    %1$s %2$s

    ', _n( 'The following plugin was activated successfully:', 'The following plugins were activated successfully:', $count, 'tgmpa' ), $imploded ); - - /** Update recently activated plugins option */ - $recent = (array) get_option( 'recently_activated' ); - - foreach ( $plugins as $plugin => $time ) - if ( isset( $recent[$plugin] ) ) - unset( $recent[$plugin] ); - - update_option( 'recently_activated', $recent ); - - unset( $_POST ); // Reset the $_POST variable in case user wants to perform one action after another - } - } - - /** - * Prepares all of our information to be outputted into a usable table. - * - * @since 2.2.0 - */ - public function prepare_items() { - - $per_page = 100; // Set it high so we shouldn't have to worry about pagination - $columns = $this->get_columns(); // Get all necessary column information - $hidden = array(); // No columns to hide, but we must set as an array - $sortable = array(); // No reason to make sortable columns - $this->_column_headers = array( $columns, $hidden, $sortable ); // Get all necessary column headers - - /** Process our bulk actions here */ - $this->process_bulk_actions(); - - /** Store all of our plugin data into $items array so WP_List_Table can use it */ - $this->items = $this->_gather_plugin_data(); - - } - - } + /** + * List table class for handling plugins. + * + * Extends the WP_List_Table class to provide a future-compatible + * way of listing out all required/recommended plugins. + * + * Gives users an interface similar to the Plugin Administration + * area with similar (albeit stripped down) capabilities. + * + * This class also allows for the bulk install of plugins. + * + * @since 2.2.0 + * + * @package TGM-Plugin-Activation + * @author Thomas Griffin + * @author Gary Jones + */ + class TGMPA_List_Table extends WP_List_Table { + + /** + * References parent constructor and sets defaults for class. + * + * The constructor also grabs a copy of $instance from the TGMPA class + * and stores it in the global object TGM_Plugin_Activation::$instance. + * + * @since 2.2.0 + * + * @global unknown $status + * @global string $page + */ + public function __construct() { + + global $status, $page; + + parent::__construct( + array( + 'singular' => 'plugin', + 'plural' => 'plugins', + 'ajax' => false, + ) + ); + + } + + /** + * Gathers and renames all of our plugin information to be used by + * WP_List_Table to create our table. + * + * @since 2.2.0 + * + * @return array $table_data Information for use in table. + */ + protected function _gather_plugin_data() { + + // Load thickbox for plugin links. + TGM_Plugin_Activation::$instance->admin_init(); + TGM_Plugin_Activation::$instance->thickbox(); + + // Prep variables for use and grab list of all installed plugins. + $table_data = array(); + $i = 0; + $installed_plugins = get_plugins(); + + foreach ( TGM_Plugin_Activation::$instance->plugins as $plugin ) { + if ( is_plugin_active( $plugin['file_path'] ) ) { + continue; // No need to display plugins if they are installed and activated. + } + + $table_data[$i]['sanitized_plugin'] = $plugin['name']; + $table_data[$i]['slug'] = $this->_get_plugin_data_from_name( $plugin['name'] ); + + $external_url = $this->_get_plugin_data_from_name( $plugin['name'], 'external_url' ); + $source = $this->_get_plugin_data_from_name( $plugin['name'], 'source' ); + + if ( $external_url && preg_match( '|^http(s)?://|', $external_url ) ) { + $table_data[$i]['plugin'] = '' . $plugin['name'] . ''; + } + elseif ( ! $source || preg_match( '|^http://wordpress.org/extend/plugins/|', $source ) ) { + $url = add_query_arg( + array( + 'tab' => 'plugin-information', + 'plugin' => $this->_get_plugin_data_from_name( $plugin['name'] ), + 'TB_iframe' => 'true', + 'width' => '640', + 'height' => '500', + ), + network_admin_url( 'plugin-install.php' ) + ); + + $table_data[$i]['plugin'] = '' . $plugin['name'] . ''; + } + else { + $table_data[$i]['plugin'] = '' . $plugin['name'] . ''; // No hyperlink. + } + + if ( isset( $table_data[$i]['plugin'] ) && (array) $table_data[$i]['plugin'] ) { + $plugin['name'] = $table_data[$i]['plugin']; + } + + if ( ! empty( $plugin['source'] ) ) { + // The plugin must be from a private repository. + if ( preg_match( '|^http(s)?://|', $plugin['source'] ) ) { + $table_data[$i]['source'] = __( 'Private Repository', 'tgmpa' ); + // The plugin is pre-packaged with the theme. + } else { + $table_data[$i]['source'] = __( 'Pre-Packaged', 'tgmpa' ); + } + } + // The plugin is from the WordPress repository. + else { + $table_data[$i]['source'] = __( 'WordPress Repository', 'tgmpa' ); + } + + $table_data[$i]['type'] = isset( $plugin['required'] ) && $plugin['required'] ? __( 'Required', 'tgmpa' ) : __( 'Recommended', 'tgmpa' ); + + if ( ! isset( $installed_plugins[$plugin['file_path']] ) ) { + $table_data[$i]['status'] = sprintf( '%1$s', __( 'Not Installed', 'tgmpa' ) ); + } elseif ( is_plugin_inactive( $plugin['file_path'] ) ) { + $table_data[$i]['status'] = sprintf( '%1$s', __( 'Installed But Not Activated', 'tgmpa' ) ); + } + + $table_data[$i]['file_path'] = $plugin['file_path']; + $table_data[$i]['url'] = isset( $plugin['source'] ) ? $plugin['source'] : 'repo'; + + $i++; + } + + // Sort plugins by Required/Recommended type and by alphabetical listing within each type. + $resort = array(); + $req = array(); + $rec = array(); + + // Grab all the plugin types. + foreach ( $table_data as $plugin ) { + $resort[] = $plugin['type']; + } + + // Sort each plugin by type. + foreach ( $resort as $type ) { + if ( 'Required' == $type ) { + $req[] = $type; + } else { + $rec[] = $type; + } + } + + // Sort alphabetically each plugin type array, merge them and then sort in reverse (lists Required plugins first). + sort( $req ); + sort( $rec ); + array_merge( $resort, $req, $rec ); + array_multisort( $resort, SORT_DESC, $table_data ); + + return $table_data; + + } + + /** + * Retrieve plugin data, given the plugin name. Taken from the + * TGM_Plugin_Activation class. + * + * Loops through the registered plugins looking for $name. If it finds it, + * it returns the $data from that plugin. Otherwise, returns false. + * + * @since 2.2.0 + * + * @param string $name Name of the plugin, as it was registered. + * @param string $data Optional. Array key of plugin data to return. Default is slug. + * @return string|boolean Plugin slug if found, false otherwise. + */ + protected function _get_plugin_data_from_name( $name, $data = 'slug' ) { + + foreach ( TGM_Plugin_Activation::$instance->plugins as $plugin => $values ) { + if ( $name == $values['name'] && isset( $values[$data] ) ) { + return $values[$data]; + } + } + + return false; + + } + + /** + * Create default columns to display important plugin information + * like type, action and status. + * + * @since 2.2.0 + * + * @param array $item Array of item data. + * @param string $column_name The name of the column. + */ + public function column_default( $item, $column_name ) { + + switch ( $column_name ) { + case 'source': + case 'type': + case 'status': + return $item[$column_name]; + } + + } + + /** + * Create default title column along with action links of 'Install' + * and 'Activate'. + * + * @since 2.2.0 + * + * @param array $item Array of item data. + * @return string The action hover links. + */ + public function column_plugin( $item ) { + + $installed_plugins = get_plugins(); + + // No need to display any hover links. + if ( is_plugin_active( $item['file_path'] ) ) { + $actions = array(); + } + + // We need to display the 'Install' hover link. + if ( ! isset( $installed_plugins[$item['file_path']] ) ) { + $actions = array( + 'install' => sprintf( + '' . __( 'Install', 'tgmpa' ) . '', + wp_nonce_url( + add_query_arg( + array( + 'page' => TGM_Plugin_Activation::$instance->menu, + 'plugin' => $item['slug'], + 'plugin_name' => $item['sanitized_plugin'], + 'plugin_source' => $item['url'], + 'tgmpa-install' => 'install-plugin', + ), + network_admin_url( 'themes.php' ) + ), + 'tgmpa-install' + ), + $item['sanitized_plugin'] + ), + ); + } + // We need to display the 'Activate' hover link. + elseif ( is_plugin_inactive( $item['file_path'] ) ) { + $actions = array( + 'activate' => sprintf( + '' . __( 'Activate', 'tgmpa' ) . '', + add_query_arg( + array( + 'page' => TGM_Plugin_Activation::$instance->menu, + 'plugin' => $item['slug'], + 'plugin_name' => $item['sanitized_plugin'], + 'plugin_source' => $item['url'], + 'tgmpa-activate' => 'activate-plugin', + 'tgmpa-activate-nonce' => wp_create_nonce( 'tgmpa-activate' ), + ), + network_admin_url( 'themes.php' ) + ), + $item['sanitized_plugin'] + ), + ); + } + + return sprintf( '%1$s %2$s', $item['plugin'], $this->row_actions( $actions ) ); + + } + + /** + * Required for bulk installing. + * + * Adds a checkbox for each plugin. + * + * @since 2.2.0 + * + * @param array $item Array of item data. + * @return string The input checkbox with all necessary info. + */ + public function column_cb( $item ) { + + $value = $item['file_path'] . ',' . $item['url'] . ',' . $item['sanitized_plugin']; + return sprintf( '', $this->_args['singular'], $value, $item['sanitized_plugin'] ); + + } + + /** + * Sets default message within the plugins table if no plugins + * are left for interaction. + * + * Hides the menu item to prevent the user from clicking and + * getting a permissions error. + * + * @since 2.2.0 + */ + public function no_items() { + + printf( __( 'No plugins to install or activate. Return to the Dashboard', 'tgmpa' ), network_admin_url() ); + echo ''; + + } + + /** + * Output all the column information within the table. + * + * @since 2.2.0 + * + * @return array $columns The column names. + */ + public function get_columns() { + + $columns = array( + 'cb' => '', + 'plugin' => __( 'Plugin', 'tgmpa' ), + 'source' => __( 'Source', 'tgmpa' ), + 'type' => __( 'Type', 'tgmpa' ), + 'status' => __( 'Status', 'tgmpa' ) + ); + + return $columns; + + } + + /** + * Defines all types of bulk actions for handling + * registered plugins. + * + * @since 2.2.0 + * + * @return array $actions The bulk actions for the plugin install table. + */ + public function get_bulk_actions() { + + $actions = array( + 'tgmpa-bulk-install' => __( 'Install', 'tgmpa' ), + 'tgmpa-bulk-activate' => __( 'Activate', 'tgmpa' ), + ); + + return $actions; + + } + + /** + * Processes bulk installation and activation actions. + * + * The bulk installation process looks either for the $_POST + * information or for the plugin info within the $_GET variable if + * a user has to use WP_Filesystem to enter their credentials. + * + * @since 2.2.0 + */ + public function process_bulk_actions() { + + // Bulk installation process. + if ( 'tgmpa-bulk-install' === $this->current_action() ) { + check_admin_referer( 'bulk-' . $this->_args['plural'] ); + + // Prep variables to be populated. + $plugins_to_install = array(); + $plugin_installs = array(); + $plugin_path = array(); + $plugin_name = array(); + + // Look first to see if information has been passed via WP_Filesystem. + if ( isset( $_GET['plugins'] ) ) { + $plugins = explode( ',', stripslashes( $_GET['plugins'] ) ); + } + // Looks like the user can use the direct method, take from $_POST. + elseif ( isset( $_POST['plugin'] ) ) { + $plugins = (array) $_POST['plugin']; + } + // Nothing has been submitted. + else { + $plugins = array(); + } + + // Grab information from $_POST if available. + if ( isset( $_POST['plugin'] ) ) { + foreach ( $plugins as $plugin_data ) { + $plugins_to_install[] = explode( ',', $plugin_data ); + } + + foreach ( $plugins_to_install as $plugin_data ) { + $plugin_installs[] = $plugin_data[0]; + $plugin_path[] = $plugin_data[1]; + $plugin_name[] = $plugin_data[2]; + } + } + // Information has been passed via $_GET. + else { + foreach ( $plugins as $key => $value ) { + // Grab plugin slug for each plugin. + if ( 0 == $key % 3 || 0 == $key ) { + $plugins_to_install[] = $value; + $plugin_installs[] = $value; + } + } + } + + // Look first to see if information has been passed via WP_Filesystem. + if ( isset( $_GET['plugin_paths'] ) ) { + $plugin_paths = explode( ',', stripslashes( $_GET['plugin_paths'] ) ); + } + // Looks like the user doesn't need to enter his FTP creds. + elseif ( isset( $_POST['plugin'] ) ) { + $plugin_paths = (array) $plugin_path; + } + // Nothing has been submitted. + else { + $plugin_paths = array(); + } + + // Look first to see if information has been passed via WP_Filesystem. + if ( isset( $_GET['plugin_names'] ) ) { + $plugin_names = explode( ',', stripslashes( $_GET['plugin_names'] ) ); + } + // Looks like the user doesn't need to enter his FTP creds. + elseif ( isset( $_POST['plugin'] ) ) { + $plugin_names = (array) $plugin_name; + } + // Nothing has been submitted. + else { + $plugin_names = array(); + } + + // Loop through plugin slugs and remove already installed plugins from the list. + $i = 0; + foreach ( $plugin_installs as $key => $plugin ) { + if ( preg_match( '|.php$|', $plugin ) ) { + unset( $plugin_installs[$key] ); + + // If the plugin path isn't in the $_GET variable, we can unset the corresponding path. + if ( ! isset( $_GET['plugin_paths'] ) ) + unset( $plugin_paths[$i] ); + + // If the plugin name isn't in the $_GET variable, we can unset the corresponding name. + if ( ! isset( $_GET['plugin_names'] ) ) + unset( $plugin_names[$i] ); + } + $i++; + } + + // No need to proceed further if we have no plugins to install. + if ( empty( $plugin_installs ) ) { + return false; + } + + // Reset array indexes in case we removed already installed plugins. + $plugin_installs = array_values( $plugin_installs ); + $plugin_paths = array_values( $plugin_paths ); + $plugin_names = array_values( $plugin_names ); + + // If we grabbed our plugin info from $_GET, we need to decode it for use. + $plugin_installs = array_map( 'urldecode', $plugin_installs ); + $plugin_paths = array_map( 'urldecode', $plugin_paths ); + $plugin_names = array_map( 'urldecode', $plugin_names ); + + // Pass all necessary information via URL if WP_Filesystem is needed. + $url = wp_nonce_url( + add_query_arg( + array( + 'page' => TGM_Plugin_Activation::$instance->menu, + 'tgmpa-action' => 'install-selected', + 'plugins' => urlencode( implode( ',', $plugins ) ), + 'plugin_paths' => urlencode( implode( ',', $plugin_paths ) ), + 'plugin_names' => urlencode( implode( ',', $plugin_names ) ), + ), + network_admin_url( 'themes.php' ) + ), + 'bulk-plugins' + ); + $method = ''; // Leave blank so WP_Filesystem can populate it as necessary. + $fields = array( 'action', '_wp_http_referer', '_wpnonce' ); // Extra fields to pass to WP_Filesystem. + + if ( false === ( $creds = request_filesystem_credentials( $url, $method, false, false, $fields ) ) ) { + return true; + } + + if ( ! WP_Filesystem( $creds ) ) { + request_filesystem_credentials( $url, $method, true, false, $fields ); // Setup WP_Filesystem. + return true; + } + + require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // Need for plugins_api + require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // Need for upgrade classes + + // Store all information in arrays since we are processing a bulk installation. + $api = array(); + $sources = array(); + $install_path = array(); + + // Loop through each plugin to install and try to grab information from WordPress API, if not create 'tgmpa-empty' scalar. + $i = 0; + foreach ( $plugin_installs as $plugin ) { + $api[$i] = plugins_api( 'plugin_information', array( 'slug' => $plugin, 'fields' => array( 'sections' => false ) ) ) ? plugins_api( 'plugin_information', array( 'slug' => $plugin, 'fields' => array( 'sections' => false ) ) ) : (object) $api[$i] = 'tgmpa-empty'; + $i++; + } + + if ( is_wp_error( $api ) ) { + wp_die( TGM_Plugin_Activation::$instance->strings['oops'] . var_dump( $api ) ); + } + + // Capture download links from $api or set install link to pre-packaged/private repo. + $i = 0; + foreach ( $api as $object ) { + $sources[$i] = isset( $object->download_link ) && 'repo' == $plugin_paths[$i] ? $object->download_link : $plugin_paths[$i]; + $i++; + } + + // Finally, all the data is prepared to be sent to the installer. + $url = add_query_arg( array( 'page' => TGM_Plugin_Activation::$instance->menu ), network_admin_url( 'themes.php' ) ); + $nonce = 'bulk-plugins'; + $names = $plugin_names; + + // Create a new instance of TGM_Bulk_Installer. + $installer = new TGM_Bulk_Installer( $skin = new TGM_Bulk_Installer_Skin( compact( 'url', 'nonce', 'names' ) ) ); + + // Wrap the install process with the appropriate HTML. + echo '
    '; + if ( version_compare( TGM_Plugin_Activation::$instance->wp_version, '3.8', '<' ) ) { + screen_icon( apply_filters( 'tgmpa_default_screen_icon', 'themes' ) ); + } + echo '

    ' . esc_html( get_admin_page_title() ) . '

    '; + // Process the bulk installation submissions. + $installer->bulk_install( $sources ); + echo '
    '; + + return true; + } + + // Bulk activation process. + if ( 'tgmpa-bulk-activate' === $this->current_action() ) { + check_admin_referer( 'bulk-' . $this->_args['plural'] ); + + // Grab plugin data from $_POST. + $plugins = isset( $_POST['plugin'] ) ? (array) $_POST['plugin'] : array(); + $plugins_to_activate = array(); + + // Split plugin value into array with plugin file path, plugin source and plugin name. + foreach ( $plugins as $i => $plugin ) { + $plugins_to_activate[] = explode( ',', $plugin ); + } + + foreach ( $plugins_to_activate as $i => $array ) { + if ( ! preg_match( '|.php$|', $array[0] ) ) { + unset( $plugins_to_activate[$i] ); + } + } + + // Return early if there are no plugins to activate. + if ( empty( $plugins_to_activate ) ) { + return; + } + + $plugins = array(); + $plugin_names = array(); + + foreach ( $plugins_to_activate as $plugin_string ) { + $plugins[] = $plugin_string[0]; + $plugin_names[] = $plugin_string[2]; + } + + $count = count( $plugin_names ); // Count so we can use _n function. + $last_plugin = array_pop( $plugin_names ); // Pop off last name to prep for readability. + $imploded = empty( $plugin_names ) ? '' . $last_plugin . '' : '' . ( implode( ', ', $plugin_names ) . ' and ' . $last_plugin . '.' ); + + // Now we are good to go - let's start activating plugins. + $activate = activate_plugins( $plugins ); + + if ( is_wp_error( $activate ) ) { + echo '

    ' . $activate->get_error_message() . '

    '; + } else { + printf( '

    %1$s %2$s

    ', _n( 'The following plugin was activated successfully:', 'The following plugins were activated successfully:', $count, 'tgmpa' ), $imploded ); + } + + // Update recently activated plugins option. + $recent = (array) get_option( 'recently_activated' ); + + foreach ( $plugins as $plugin => $time ) { + if ( isset( $recent[$plugin] ) ) { + unset( $recent[$plugin] ); + } + } + + update_option( 'recently_activated', $recent ); + + unset( $_POST ); // Reset the $_POST variable in case user wants to perform one action after another. + } + } + + /** + * Prepares all of our information to be outputted into a usable table. + * + * @since 2.2.0 + */ + public function prepare_items() { + + $per_page = 100; // Set it high so we shouldn't have to worry about pagination. + $columns = $this->get_columns(); // Get all necessary column information. + $hidden = array(); // No columns to hide, but we must set as an array. + $sortable = array(); // No reason to make sortable columns. + $this->_column_headers = array( $columns, $hidden, $sortable ); // Get all necessary column headers. + + // Process our bulk actions here. + $this->process_bulk_actions(); + + // Store all of our plugin data into $items array so WP_List_Table can use it. + $this->items = $this->_gather_plugin_data(); + + } + + } } /** @@ -1584,503 +1685,512 @@ public function prepare_items() { * * @since 2.2.0 */ -if ( ! class_exists( 'WP_Upgrader' ) && ( isset( $_GET[sanitize_key( 'page' )] ) && TGM_Plugin_Activation::$instance->menu === $_GET[sanitize_key( 'page' )] ) ) { - require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; - - if ( ! class_exists( 'TGM_Bulk_Installer' ) ) { - /** - * Installer class to handle bulk plugin installations. - * - * Extends WP_Upgrader and customizes to suit the installation of multiple - * plugins. - * - * @since 2.2.0 - * - * @package TGM-Plugin-Activation - * @author Thomas Griffin - * @author Gary Jones - */ - class TGM_Bulk_Installer extends WP_Upgrader { - - /** - * Holds result of bulk plugin installation. - * - * @since 2.2.0 - * - * @var string - */ - public $result; - - /** - * Flag to check if bulk installation is occurring or not. - * - * @since 2.2.0 - * - * @var boolean - */ - public $bulk = false; - - /** - * Processes the bulk installation of plugins. - * - * @since 2.2.0 - * - * @param array $packages The plugin sources needed for installation - * @return string|boolean Install confirmation messages on success, false on failure - */ - public function bulk_install( $packages ) { - - /** Pass installer skin object and set bulk property to true */ - $this->init(); - $this->bulk = true; - - /** Set install strings and automatic activation strings (if config option is set to true) */ - $this->install_strings(); - if ( TGM_Plugin_Activation::$instance->is_automatic ) - $this->activate_strings(); - - /** Run the header string to notify user that the process has begun */ - $this->skin->header(); - - /** Connect to the Filesystem */ - $res = $this->fs_connect( array( WP_CONTENT_DIR, WP_PLUGIN_DIR ) ); - if ( ! $res ) { - $this->skin->footer(); - return false; - } - - /** Set the bulk header and prepare results array */ - $this->skin->bulk_header(); - $results = array(); - - /** Get the total number of packages being processed and iterate as each package is successfully installed */ - $this->update_count = count( $packages ); - $this->update_current = 0; - - /** Loop through each plugin and process the installation */ - foreach ( $packages as $plugin ) { - $this->update_current++; // Increment counter - - /** Do the plugin install */ - $result = $this->run( - array( - 'package' => $plugin, // The plugin source - 'destination' => WP_PLUGIN_DIR, // The destination dir - 'clear_destination' => false, // Do we want to clear the destination or not? - 'clear_working' => true, // Remove original install file - 'is_multi' => true, // Are we processing multiple installs? - 'hook_extra' => array( 'plugin' => $plugin, ), // Pass plugin source as extra data - ) - ); - - /** Store installation results in result property */ - $results[$plugin] = $this->result; - - /** Prevent credentials auth screen from displaying multiple times */ - if ( false === $result ) - break; - } - - /** Pass footer skin strings */ - $this->skin->bulk_footer(); - $this->skin->footer(); - - /** Return our results */ - return $results; - - } - - /** - * Performs the actual installation of each plugin. - * - * This method also activates the plugin in the automatic flag has been - * set to true for the TGMPA class. - * - * @since 2.2.0 - * - * @param array $options The installation cofig options - * @return null/array Return early if error, array of installation data on success - */ - public function run( $options ) { - - /** Default config options */ - $defaults = array( - 'package' => '', - 'destination' => '', - 'clear_destination' => false, - 'clear_working' => true, - 'is_multi' => false, - 'hook_extra' => array(), - ); - - /** Parse default options with config options from $this->bulk_upgrade and extract them */ - $options = wp_parse_args( $options, $defaults ); - extract( $options ); - - /** Connect to the Filesystem */ - $res = $this->fs_connect( array( WP_CONTENT_DIR, $destination ) ); - if ( ! $res ) - return false; - - /** Return early if there is an error connecting to the Filesystem */ - if ( is_wp_error( $res ) ) { - $this->skin->error( $res ); - return $res; - } - - /** Call $this->header separately if running multiple times */ - if ( ! $is_multi ) - $this->skin->header(); - - /** Set strings before the package is installed */ - $this->skin->before(); - - /** Download the package (this just returns the filename of the file if the package is a local file) */ - $download = $this->download_package( $package ); - if ( is_wp_error( $download ) ) { - $this->skin->error( $download ); - $this->skin->after(); - return $download; - } - - /** Don't accidentally delete a local file */ - $delete_package = ( $download != $package ); - - /** Unzip file into a temporary working directory */ - $working_dir = $this->unpack_package( $download, $delete_package ); - if ( is_wp_error( $working_dir ) ) { - $this->skin->error( $working_dir ); - $this->skin->after(); - return $working_dir; - } - - /** Install the package into the working directory with all passed config options */ - $result = $this->install_package( - array( - 'source' => $working_dir, - 'destination' => $destination, - 'clear_destination' => $clear_destination, - 'clear_working' => $clear_working, - 'hook_extra' => $hook_extra, - ) - ); - - /** Pass the result of the installation */ - $this->skin->set_result( $result ); - - /** Set correct strings based on results */ - if ( is_wp_error( $result ) ) { - $this->skin->error( $result ); - $this->skin->feedback( 'process_failed' ); - } - /** The plugin install is successful */ - else { - $this->skin->feedback( 'process_success' ); - } - - /** Only process the activation of installed plugins if the automatic flag is set to true */ - if ( TGM_Plugin_Activation::$instance->is_automatic ) { - /** Flush plugins cache so we can make sure that the installed plugins list is always up to date */ - wp_cache_flush(); - - /** Get the installed plugin file and activate it */ - $plugin_info = $this->plugin_info( $package ); - $activate = activate_plugin( $plugin_info ); - - /** Re-populate the file path now that the plugin has been installed and activated */ - TGM_Plugin_Activation::$instance->populate_file_path(); - - /** Set correct strings based on results */ - if ( is_wp_error( $activate ) ) { - $this->skin->error( $activate ); - $this->skin->feedback( 'activation_failed' ); - } - /** The plugin activation is successful */ - else { - $this->skin->feedback( 'activation_success' ); - } - } - - /** Flush plugins cache so we can make sure that the installed plugins list is always up to date */ - wp_cache_flush(); - - /** Set install footer strings */ - $this->skin->after(); - if ( ! $is_multi ) - $this->skin->footer(); - - return $result; - - } - - /** - * Sets the correct install strings for the installer skin to use. - * - * @since 2.2.0 - */ - public function install_strings() { - - $this->strings['no_package'] = __( 'Install package not available.', 'tgmpa' ); - $this->strings['downloading_package'] = __( 'Downloading install package from %s…', 'tgmpa' ); - $this->strings['unpack_package'] = __( 'Unpacking the package…', 'tgmpa' ); - $this->strings['installing_package'] = __( 'Installing the plugin…', 'tgmpa' ); - $this->strings['process_failed'] = __( 'Plugin install failed.', 'tgmpa' ); - $this->strings['process_success'] = __( 'Plugin installed successfully.', 'tgmpa' ); - - } - - /** - * Sets the correct activation strings for the installer skin to use. - * - * @since 2.2.0 - */ - public function activate_strings() { - - $this->strings['activation_failed'] = __( 'Plugin activation failed.', 'tgmpa' ); - $this->strings['activation_success'] = __( 'Plugin activated successfully.', 'tgmpa' ); - - } - - /** - * Grabs the plugin file from an installed plugin. - * - * @since 2.2.0 - * - * @return string|boolean Return plugin file on success, false on failure - */ - public function plugin_info() { - - /** Return false if installation result isn't an array or the destination name isn't set */ - if ( ! is_array( $this->result ) ) - return false; - if ( empty( $this->result['destination_name'] ) ) - return false; - - /** Get the installed plugin file or return false if it isn't set */ - $plugin = get_plugins( '/' . $this->result['destination_name'] ); - if ( empty( $plugin ) ) - return false; - - /** Assume the requested plugin is the first in the list */ - $pluginfiles = array_keys( $plugin ); - - return $this->result['destination_name'] . '/' . $pluginfiles[0]; - - } - - } - } - - if ( ! class_exists( 'TGM_Bulk_Installer_Skin' ) ) { - /** - * Installer skin to set strings for the bulk plugin installations.. - * - * Extends Bulk_Upgrader_Skin and customizes to suit the installation of multiple - * plugins. - * - * @since 2.2.0 - * - * @package TGM-Plugin-Activation - * @author Thomas Griffin - * @author Gary Jones - */ - class TGM_Bulk_Installer_Skin extends Bulk_Upgrader_Skin { - - /** - * Holds plugin info for each individual plugin installation. - * - * @since 2.2.0 - * - * @var array - */ - public $plugin_info = array(); - - /** - * Holds names of plugins that are undergoing bulk installations. - * - * @since 2.2.0 - * - * @var array - */ - public $plugin_names = array(); - - /** - * Integer to use for iteration through each plugin installation. - * - * @since 2.2.0 - * - * @var integer - */ - public $i = 0; - - /** - * Constructor. Parses default args with new ones and extracts them for use. - * - * @since 2.2.0 - * - * @param array $args Arguments to pass for use within the class - */ - public function __construct( $args = array() ) { - - /** Parse default and new args */ - $defaults = array( 'url' => '', 'nonce' => '', 'names' => array() ); - $args = wp_parse_args( $args, $defaults ); - - /** Set plugin names to $this->plugin_names property */ - $this->plugin_names = $args['names']; - - /** Extract the new args */ - parent::__construct( $args ); - - } - - /** - * Sets install skin strings for each individual plugin. - * - * Checks to see if the automatic activation flag is set and uses the - * the proper strings accordingly. - * - * @since 2.2.0 - */ - public function add_strings() { - - /** Automatic activation strings */ - if ( TGM_Plugin_Activation::$instance->is_automatic ) { - $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation and activation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); - $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed and activated successfully.', 'tgmpa' ) . ' ' . __( 'Show Details', 'tgmpa' ) . '.'; - $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations and activations have been completed.', 'tgmpa' ); - $this->upgrader->strings['skin_before_update_header'] = __( 'Installing and Activating Plugin %1$s (%2$d/%3$d)', 'tgmpa' ); - } - /** Default installation strings */ - else { - $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); - $this->upgrader->strings['skin_update_failed_error'] = __( 'An error occurred while installing %1$s: %2$s.', 'tgmpa' ); - $this->upgrader->strings['skin_update_failed'] = __( 'The installation of %1$s failed.', 'tgmpa' ); - $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed successfully.', 'tgmpa' ) . ' ' . __( 'Show Details', 'tgmpa' ) . '.'; - $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations have been completed.', 'tgmpa' ); - $this->upgrader->strings['skin_before_update_header'] = __( 'Installing Plugin %1$s (%2$d/%3$d)', 'tgmpa' ); - } - - } - - /** - * Outputs the header strings and necessary JS before each plugin installation. - * - * @since 2.2.0 - */ - public function before( $title='' ) { - - /** We are currently in the plugin installation loop, so set to true */ - $this->in_loop = true; - - printf( '

    ' . $this->upgrader->strings['skin_before_update_header'] . '

    ', $this->plugin_names[$this->i], $this->upgrader->update_current, $this->upgrader->update_count ); - echo ''; - echo '

    '; - - /** Flush header output buffer */ - $this->before_flush_output(); - - } - - /** - * Outputs the footer strings and necessary JS after each plugin installation. - * - * Checks for any errors and outputs them if they exist, else output - * success strings. - * - * @since 2.2.0 - */ - public function after( $title='' ) { - - /** Close install strings */ - echo '

    '; - - /** Output error strings if an error has occurred */ - if ( $this->error || ! $this->result ) { - if ( $this->error ) - echo '

    ' . sprintf( $this->upgrader->strings['skin_update_failed_error'], $this->plugin_names[$this->i], $this->error ) . '

    '; - else - echo '

    ' . sprintf( $this->upgrader->strings['skin_update_failed'], $this->plugin_names[$this->i] ) . '

    '; - - echo ''; - } - - /** If the result is set and there are no errors, success! */ - if ( ! empty( $this->result ) && ! is_wp_error( $this->result ) ) { - echo '

    ' . sprintf( $this->upgrader->strings['skin_update_successful'], $this->plugin_names[$this->i], 'jQuery(\'#progress-' . esc_js( $this->upgrader->update_current ) . '\').toggle();jQuery(\'span\', this).toggle(); return false;' ) . '

    '; - echo ''; - } - - /** Set in_loop and error to false and flush footer output buffer */ - $this->reset(); - $this->after_flush_output(); - - } - - /** - * Outputs links after bulk plugin installation is complete. - * - * @since 2.2.0 - */ - public function bulk_footer() { - - /** Serve up the string to say installations (and possibly activations) are complete */ - parent::bulk_footer(); - - /** Flush plugins cache so we can make sure that the installed plugins list is always up to date */ - wp_cache_flush(); - - /** Display message based on if all plugins are now active or not */ - $complete = array(); - foreach ( TGM_Plugin_Activation::$instance->plugins as $plugin ) { - if ( ! is_plugin_active( $plugin['file_path'] ) ) { - echo '

    ' . TGM_Plugin_Activation::$instance->strings['return'] . '

    '; - $complete[] = $plugin; - break; - } - /** Nothing to store */ - else { - $complete[] = ''; - } - } - - /** Filter out any empty entries */ - $complete = array_filter( $complete ); - - /** All plugins are active, so we display the complete string and hide the menu to protect users */ - if ( empty( $complete ) ) { - echo '

    ' . sprintf( TGM_Plugin_Activation::$instance->strings['complete'], '' . __( 'Return to the Dashboard', 'tgmpa' ) . '' ) . '

    '; - echo ''; - } - - } - - /** - * Flush header output buffer. - * - * @since 2.2.0 - */ - public function before_flush_output() { - - wp_ob_end_flush_all(); - flush(); - - } - - /** - * Flush footer output buffer and iterate $this->i to make sure the - * installation strings reference the correct plugin. - * - * @since 2.2.0 - */ - public function after_flush_output() { - - wp_ob_end_flush_all(); - flush(); - $this->i++; - - } - - } - } -} +if ( ! class_exists( 'WP_Upgrader' ) && ( isset( $_GET['page'] ) && TGM_Plugin_Activation::$instance->menu === $_GET['page'] ) ) { + require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; + + if ( ! class_exists( 'TGM_Bulk_Installer' ) ) { + /** + * Installer class to handle bulk plugin installations. + * + * Extends WP_Upgrader and customizes to suit the installation of multiple + * plugins. + * + * @since 2.2.0 + * + * @package TGM-Plugin-Activation + * @author Thomas Griffin + * @author Gary Jones + */ + class TGM_Bulk_Installer extends WP_Upgrader { + + /** + * Holds result of bulk plugin installation. + * + * @since 2.2.0 + * + * @var string + */ + public $result; + + /** + * Flag to check if bulk installation is occurring or not. + * + * @since 2.2.0 + * + * @var boolean + */ + public $bulk = false; + + /** + * Processes the bulk installation of plugins. + * + * @since 2.2.0 + * + * @param array $packages The plugin sources needed for installation. + * @return string|boolean Install confirmation messages on success, false on failure. + */ + public function bulk_install( $packages ) { + + // Pass installer skin object and set bulk property to true. + $this->init(); + $this->bulk = true; + + // Set install strings and automatic activation strings (if config option is set to true). + $this->install_strings(); + if ( TGM_Plugin_Activation::$instance->is_automatic ) { + $this->activate_strings(); + } + + // Run the header string to notify user that the process has begun. + $this->skin->header(); + + // Connect to the Filesystem. + $res = $this->fs_connect( array( WP_CONTENT_DIR, WP_PLUGIN_DIR ) ); + if ( ! $res ) { + $this->skin->footer(); + return false; + } + + // Set the bulk header and prepare results array. + $this->skin->bulk_header(); + $results = array(); + + // Get the total number of packages being processed and iterate as each package is successfully installed. + $this->update_count = count( $packages ); + $this->update_current = 0; + + // Loop through each plugin and process the installation. + foreach ( $packages as $plugin ) { + $this->update_current++; // Increment counter. + + // Do the plugin install. + $result = $this->run( + array( + 'package' => $plugin, // The plugin source. + 'destination' => WP_PLUGIN_DIR, // The destination dir. + 'clear_destination' => false, // Do we want to clear the destination or not? + 'clear_working' => true, // Remove original install file. + 'is_multi' => true, // Are we processing multiple installs? + 'hook_extra' => array( 'plugin' => $plugin, ), // Pass plugin source as extra data. + ) + ); + + // Store installation results in result property. + $results[$plugin] = $this->result; + + // Prevent credentials auth screen from displaying multiple times. + if ( false === $result ) { + break; + } + } + + // Pass footer skin strings. + $this->skin->bulk_footer(); + $this->skin->footer(); + + // Return our results. + return $results; + + } + + /** + * Performs the actual installation of each plugin. + * + * This method also activates the plugin in the automatic flag has been + * set to true for the TGMPA class. + * + * @since 2.2.0 + * + * @param array $options The installation cofig options + * @return null/array Return early if error, array of installation data on success + */ + public function run( $options ) { + + // Default config options. + $defaults = array( + 'package' => '', + 'destination' => '', + 'clear_destination' => false, + 'clear_working' => true, + 'is_multi' => false, + 'hook_extra' => array(), + ); + + // Parse default options with config options from $this->bulk_upgrade and extract them. + $options = wp_parse_args( $options, $defaults ); + extract( $options ); + + // Connect to the Filesystem. + $res = $this->fs_connect( array( WP_CONTENT_DIR, $destination ) ); + if ( ! $res ) { + return false; + } + + // Return early if there is an error connecting to the Filesystem. + if ( is_wp_error( $res ) ) { + $this->skin->error( $res ); + return $res; + } + + // Call $this->header separately if running multiple times. + if ( ! $is_multi ) + $this->skin->header(); + + // Set strings before the package is installed. + $this->skin->before(); + + // Download the package (this just returns the filename of the file if the package is a local file). + $download = $this->download_package( $package ); + if ( is_wp_error( $download ) ) { + $this->skin->error( $download ); + $this->skin->after(); + return $download; + } + + // Don't accidentally delete a local file. + $delete_package = ( $download != $package ); + + // Unzip file into a temporary working directory. + $working_dir = $this->unpack_package( $download, $delete_package ); + if ( is_wp_error( $working_dir ) ) { + $this->skin->error( $working_dir ); + $this->skin->after(); + return $working_dir; + } + + // Install the package into the working directory with all passed config options. + $result = $this->install_package( + array( + 'source' => $working_dir, + 'destination' => $destination, + 'clear_destination' => $clear_destination, + 'clear_working' => $clear_working, + 'hook_extra' => $hook_extra, + ) + ); + + // Pass the result of the installation. + $this->skin->set_result( $result ); + + // Set correct strings based on results. + if ( is_wp_error( $result ) ) { + $this->skin->error( $result ); + $this->skin->feedback( 'process_failed' ); + } + // The plugin install is successful. + else { + $this->skin->feedback( 'process_success' ); + } + + // Only process the activation of installed plugins if the automatic flag is set to true. + if ( TGM_Plugin_Activation::$instance->is_automatic ) { + // Flush plugins cache so we can make sure that the installed plugins list is always up to date. + wp_cache_flush(); + + // Get the installed plugin file and activate it. + $plugin_info = $this->plugin_info( $package ); + $activate = activate_plugin( $plugin_info ); + + // Re-populate the file path now that the plugin has been installed and activated. + TGM_Plugin_Activation::$instance->populate_file_path(); + + // Set correct strings based on results. + if ( is_wp_error( $activate ) ) { + $this->skin->error( $activate ); + $this->skin->feedback( 'activation_failed' ); + } + // The plugin activation is successful. + else { + $this->skin->feedback( 'activation_success' ); + } + } + + // Flush plugins cache so we can make sure that the installed plugins list is always up to date. + wp_cache_flush(); + + // Set install footer strings. + $this->skin->after(); + if ( ! $is_multi ) { + $this->skin->footer(); + } + + return $result; + + } + + /** + * Sets the correct install strings for the installer skin to use. + * + * @since 2.2.0 + */ + public function install_strings() { + + $this->strings['no_package'] = __( 'Install package not available.', 'tgmpa' ); + $this->strings['downloading_package'] = __( 'Downloading install package from %s…', 'tgmpa' ); + $this->strings['unpack_package'] = __( 'Unpacking the package…', 'tgmpa' ); + $this->strings['installing_package'] = __( 'Installing the plugin…', 'tgmpa' ); + $this->strings['process_failed'] = __( 'Plugin install failed.', 'tgmpa' ); + $this->strings['process_success'] = __( 'Plugin installed successfully.', 'tgmpa' ); + + } + + /** + * Sets the correct activation strings for the installer skin to use. + * + * @since 2.2.0 + */ + public function activate_strings() { + + $this->strings['activation_failed'] = __( 'Plugin activation failed.', 'tgmpa' ); + $this->strings['activation_success'] = __( 'Plugin activated successfully.', 'tgmpa' ); + + } + + /** + * Grabs the plugin file from an installed plugin. + * + * @since 2.2.0 + * + * @return string|boolean Return plugin file on success, false on failure + */ + public function plugin_info() { + + // Return false if installation result isn't an array or the destination name isn't set. + if ( ! is_array( $this->result ) ) { + return false; + } + + if ( empty( $this->result['destination_name'] ) ) { + return false; + } + + /// Get the installed plugin file or return false if it isn't set. + $plugin = get_plugins( '/' . $this->result['destination_name'] ); + if ( empty( $plugin ) ) { + return false; + } + + // Assume the requested plugin is the first in the list. + $pluginfiles = array_keys( $plugin ); + + return $this->result['destination_name'] . '/' . $pluginfiles[0]; + + } + + } + } + + if ( ! class_exists( 'TGM_Bulk_Installer_Skin' ) ) { + /** + * Installer skin to set strings for the bulk plugin installations.. + * + * Extends Bulk_Upgrader_Skin and customizes to suit the installation of multiple + * plugins. + * + * @since 2.2.0 + * + * @package TGM-Plugin-Activation + * @author Thomas Griffin + * @author Gary Jones + */ + class TGM_Bulk_Installer_Skin extends Bulk_Upgrader_Skin { + + /** + * Holds plugin info for each individual plugin installation. + * + * @since 2.2.0 + * + * @var array + */ + public $plugin_info = array(); + + /** + * Holds names of plugins that are undergoing bulk installations. + * + * @since 2.2.0 + * + * @var array + */ + public $plugin_names = array(); + + /** + * Integer to use for iteration through each plugin installation. + * + * @since 2.2.0 + * + * @var integer + */ + public $i = 0; + + /** + * Constructor. Parses default args with new ones and extracts them for use. + * + * @since 2.2.0 + * + * @param array $args Arguments to pass for use within the class. + */ + public function __construct( $args = array() ) { + + // Parse default and new args. + $defaults = array( 'url' => '', 'nonce' => '', 'names' => array() ); + $args = wp_parse_args( $args, $defaults ); + + // Set plugin names to $this->plugin_names property. + $this->plugin_names = $args['names']; + + // Extract the new args. + parent::__construct( $args ); + + } + + /** + * Sets install skin strings for each individual plugin. + * + * Checks to see if the automatic activation flag is set and uses the + * the proper strings accordingly. + * + * @since 2.2.0 + */ + public function add_strings() { + + // Automatic activation strings. + if ( TGM_Plugin_Activation::$instance->is_automatic ) { + $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation and activation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); + $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed and activated successfully.', 'tgmpa' ) . ' ' . __( 'Show Details', 'tgmpa' ) . '.'; + $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations and activations have been completed.', 'tgmpa' ); + $this->upgrader->strings['skin_before_update_header'] = __( 'Installing and Activating Plugin %1$s (%2$d/%3$d)', 'tgmpa' ); + } + // Default installation strings. + else { + $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); + $this->upgrader->strings['skin_update_failed_error'] = __( 'An error occurred while installing %1$s: %2$s.', 'tgmpa' ); + $this->upgrader->strings['skin_update_failed'] = __( 'The installation of %1$s failed.', 'tgmpa' ); + $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed successfully.', 'tgmpa' ) . ' ' . __( 'Show Details', 'tgmpa' ) . '.'; + $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations have been completed.', 'tgmpa' ); + $this->upgrader->strings['skin_before_update_header'] = __( 'Installing Plugin %1$s (%2$d/%3$d)', 'tgmpa' ); + } + + } + + /** + * Outputs the header strings and necessary JS before each plugin installation. + * + * @since 2.2.0 + */ + public function before( $title = '' ) { + + // We are currently in the plugin installation loop, so set to true. + $this->in_loop = true; + + printf( '

    ' . $this->upgrader->strings['skin_before_update_header'] . '

    ', $this->plugin_names[$this->i], $this->upgrader->update_current, $this->upgrader->update_count ); + echo ''; + echo '

    '; + + // Flush header output buffer. + $this->before_flush_output(); + + } + + /** + * Outputs the footer strings and necessary JS after each plugin installation. + * + * Checks for any errors and outputs them if they exist, else output + * success strings. + * + * @since 2.2.0 + */ + public function after( $title = '' ) { + + // Close install strings. + echo '

    '; + + // Output error strings if an error has occurred. + if ( $this->error || ! $this->result ) { + if ( $this->error ) { + echo '

    ' . sprintf( $this->upgrader->strings['skin_update_failed_error'], $this->plugin_names[$this->i], $this->error ) . '

    '; + } else { + echo '

    ' . sprintf( $this->upgrader->strings['skin_update_failed'], $this->plugin_names[$this->i] ) . '

    '; + } + + echo ''; + } + + // If the result is set and there are no errors, success! + if ( ! empty( $this->result ) && ! is_wp_error( $this->result ) ) { + echo '

    ' . sprintf( $this->upgrader->strings['skin_update_successful'], $this->plugin_names[$this->i], 'jQuery(\'#progress-' . esc_js( $this->upgrader->update_current ) . '\').toggle();jQuery(\'span\', this).toggle(); return false;' ) . '

    '; + echo ''; + } + + // Set in_loop and error to false and flush footer output buffer. + $this->reset(); + $this->after_flush_output(); + + } + + /** + * Outputs links after bulk plugin installation is complete. + * + * @since 2.2.0 + */ + public function bulk_footer() { + + // Serve up the string to say installations (and possibly activations) are complete. + parent::bulk_footer(); + + // Flush plugins cache so we can make sure that the installed plugins list is always up to date. + wp_cache_flush(); + + // Display message based on if all plugins are now active or not. + $complete = array(); + foreach ( TGM_Plugin_Activation::$instance->plugins as $plugin ) { + if ( ! is_plugin_active( $plugin['file_path'] ) ) { + echo '

    ' . TGM_Plugin_Activation::$instance->strings['return'] . '

    '; + $complete[] = $plugin; + break; + } + // Nothing to store. + else { + $complete[] = ''; + } + } + + // Filter out any empty entries. + $complete = array_filter( $complete ); + + // All plugins are active, so we display the complete string and hide the menu to protect users. + if ( empty( $complete ) ) { + echo '

    ' . sprintf( TGM_Plugin_Activation::$instance->strings['complete'], '' . __( 'Return to the Dashboard', 'tgmpa' ) . '' ) . '

    '; + echo ''; + } + + } + + /** + * Flush header output buffer. + * + * @since 2.2.0 + */ + public function before_flush_output() { + + wp_ob_end_flush_all(); + flush(); + + } + + /** + * Flush footer output buffer and iterate $this->i to make sure the + * installation strings reference the correct plugin. + * + * @since 2.2.0 + */ + public function after_flush_output() { + + wp_ob_end_flush_all(); + flush(); + $this->i++; + + } + + } + } +} \ No newline at end of file From ea1aab72208019be498bfdc3ba0ed6fec822aa49 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Thu, 22 Jan 2015 10:32:25 +0100 Subject: [PATCH 48/62] add text domain to style.css --- style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/style.css b/style.css index 551b646..fd980f2 100644 --- a/style.css +++ b/style.css @@ -6,6 +6,7 @@ Description: Anew is a responsive Author: Alexander Agnarson Author URI: http://alxmedia.se Tags: light, one-column, two-columns, right-sidebar, left-sidebar, fluid-layout, fixed-layout, custom-colors, custom-header, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, photoblogging +Text Domain: anew Copyright: (c) 2013 Alexander "Alx" Agnarson License: GNU General Public License v3.0 From 3b9f737d825120a82a438c7bdc94f926f42d78cf Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Thu, 29 Jan 2015 14:45:55 +0100 Subject: [PATCH 49/62] fix double title tag --- header.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/header.php b/header.php index 0c33a74..5bb2a4f 100644 --- a/header.php +++ b/header.php @@ -7,8 +7,6 @@ - <?php wp_title( '-', true, 'right' ); ?> - From 253e1de8003d08c6352ac4c04d9f674c5b570f5f Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Thu, 29 Jan 2015 14:52:55 +0100 Subject: [PATCH 50/62] 2.2.1 --- changelog.txt | 6 +++++- style.css | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 805725c..e96786f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,11 @@ Theme : Anew -Version : 2.2.0 +Version : 2.2.1 Author : Alexander "Alx" Agnarson - http://alxmedia.se +January 29 2015 - 2.2.1 +=========================================================== +- Fixed double title tags + December 31 2014 - 2.2.0 =========================================================== - Added WP 4.1 title tag support diff --git a/style.css b/style.css index fd980f2..aba1c08 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.2.0 +Version: 2.2.1 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From 9ae7c77358c77836f96964eab66a591280aae4a7 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 2 Feb 2015 07:24:13 +0100 Subject: [PATCH 51/62] fixed widgetized typo --- functions.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/functions.php b/functions.php index 8ada9df..64d5e0d 100644 --- a/functions.php +++ b/functions.php @@ -100,10 +100,10 @@ function alx_setup() { function alx_sidebars() { register_sidebar(array( 'name' => 'Primary','id' => 'primary','description' => "Normal full width sidebar", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); - if ( ot_get_option('footer-widgets') >= '1' ) { register_sidebar(array( 'name' => 'Footer 1','id' => 'footer-1', 'description' => "Widetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } - if ( ot_get_option('footer-widgets') >= '2' ) { register_sidebar(array( 'name' => 'Footer 2','id' => 'footer-2', 'description' => "Widetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } - if ( ot_get_option('footer-widgets') >= '3' ) { register_sidebar(array( 'name' => 'Footer 3','id' => 'footer-3', 'description' => "Widetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } - if ( ot_get_option('footer-widgets') >= '4' ) { register_sidebar(array( 'name' => 'Footer 4','id' => 'footer-4', 'description' => "Widetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } + if ( ot_get_option('footer-widgets') >= '1' ) { register_sidebar(array( 'name' => 'Footer 1','id' => 'footer-1', 'description' => "Widgetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } + if ( ot_get_option('footer-widgets') >= '2' ) { register_sidebar(array( 'name' => 'Footer 2','id' => 'footer-2', 'description' => "Widgetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } + if ( ot_get_option('footer-widgets') >= '3' ) { register_sidebar(array( 'name' => 'Footer 3','id' => 'footer-3', 'description' => "Widgetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } + if ( ot_get_option('footer-widgets') >= '4' ) { register_sidebar(array( 'name' => 'Footer 4','id' => 'footer-4', 'description' => "Widgetized footer", 'before_widget' => '
    ','after_widget' => '
    ','before_title' => '

    ','after_title' => '

    ')); } } } From ababd1236d8681dcf0b42f76d335c6c75205ec77 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Mon, 2 Feb 2015 07:38:34 +0100 Subject: [PATCH 52/62] jPlayer 2.9.2 --- js/Jplayer.swf | Bin 14085 -> 0 bytes js/jquery.jplayer.min.js | 110 ++------------------------------------- js/jquery.jplayer.swf | Bin 0 -> 13714 bytes 3 files changed, 3 insertions(+), 107 deletions(-) delete mode 100644 js/Jplayer.swf create mode 100644 js/jquery.jplayer.swf diff --git a/js/Jplayer.swf b/js/Jplayer.swf deleted file mode 100644 index 85c0ba38eede8cabc9b85603c2239082a548f549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14085 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"0"+b:b;a=this.options.timeFormat.padMin&&10>a?"0"+a:a;c=this.options.timeFormat.padSec&&10>c?"0"+c:c;b=""+(this.options.timeFormat.showHour?b+this.options.timeFormat.sepHour:"");b+=this.options.timeFormat.showMin?a+this.options.timeFormat.sepMin:"";return b+=this.options.timeFormat.showSec?c+this.options.timeFormat.sepSec:""}};var m=new l;b.jPlayer.convertTime=function(a){return m.time(a)}; -b.jPlayer.uaBrowser=function(a){a=a.toLowerCase();var b=/(opera)(?:.*version)?[ \/]([\w.]+)/,d=/(msie) ([\w.]+)/,e=/(mozilla)(?:.*? rv:([\w.]+))?/;a=/(webkit)[ \/]([\w.]+)/.exec(a)||b.exec(a)||d.exec(a)||0>a.indexOf("compatible")&&e.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}};b.jPlayer.uaPlatform=function(a){var b=a.toLowerCase(),d=/(android)/,e=/(mobile)/;a=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/.exec(b)||[];b=/(ipad|playbook)/.exec(b)||!e.exec(b)&&d.exec(b)|| -[];a[1]&&(a[1]=a[1].replace(/\s/g,"_"));return{platform:a[1]||"",tablet:b[1]||""}};b.jPlayer.browser={};b.jPlayer.platform={};var j=b.jPlayer.uaBrowser(navigator.userAgent);j.browser&&(b.jPlayer.browser[j.browser]=!0,b.jPlayer.browser.version=j.version);j=b.jPlayer.uaPlatform(navigator.userAgent);j.platform&&(b.jPlayer.platform[j.platform]=!0,b.jPlayer.platform.mobile=!j.tablet,b.jPlayer.platform.tablet=!!j.tablet);b.jPlayer.getDocMode=function(){var a;b.jPlayer.browser.msie&&(document.documentMode? -a=document.documentMode:(a=5,document.compatMode&&"CSS1Compat"===document.compatMode&&(a=7)));return a};b.jPlayer.browser.documentMode=b.jPlayer.getDocMode();b.jPlayer.nativeFeatures={init:function(){var a=document,b=a.createElement("video"),d={w3c:"fullscreenEnabled fullscreenElement requestFullscreen exitFullscreen fullscreenchange fullscreenerror".split(" "),moz:"mozFullScreenEnabled mozFullScreenElement mozRequestFullScreen mozCancelFullScreen mozfullscreenchange mozfullscreenerror".split(" "), -webkit:" webkitCurrentFullScreenElement webkitRequestFullScreen webkitCancelFullScreen webkitfullscreenchange ".split(" "),webkitVideo:"webkitSupportsFullscreen webkitDisplayingFullscreen webkitEnterFullscreen webkitExitFullscreen ".split(" ")},e=["w3c","moz","webkit","webkitVideo"],g,h;this.fullscreen=b={support:{w3c:!!a[d.w3c[0]],moz:!!a[d.moz[0]],webkit:"function"===typeof a[d.webkit[3]],webkitVideo:"function"===typeof b[d.webkitVideo[2]]},used:{}};g=0;for(h=e.length;g','','','',''];c=document.createElement(''); -for(var e=0;e=a&&(b=!0);return b},_validString:function(a){return a&&"string"===typeof a},_limitValue:function(a,b,d){return ad?d:a},_urlNotSetError:function(a){this._error({type:b.jPlayer.error.URL_NOT_SET,context:a,message:b.jPlayer.errorMsg.URL_NOT_SET,hint:b.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(a){var c;c=this.internal.ready?"FLASH_DISABLED":"FLASH";this._error({type:b.jPlayer.error[c],context:this.internal.flash.swf, -message:b.jPlayer.errorMsg[c]+a.message,hint:b.jPlayer.errorHint[c]});this.internal.flash.jq.css({width:"1px",height:"1px"})},_error:function(a){this._trigger(b.jPlayer.event.error,a);this.options.errorAlerts&&this._alert("Error!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+a.context)},_warning:function(a){this._trigger(b.jPlayer.event.warning,f,a);this.options.warningAlerts&&this._alert("Warning!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+ -a.context)},_alert:function(a){alert("jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a)},_emulateHtmlBridge:function(){var a=this;b.each(b.jPlayer.emulateMethods.split(/\s+/g),function(b,d){a.internal.domNode[d]=function(b){a[d](b)}});b.each(b.jPlayer.event,function(c,d){var e=!0;b.each(b.jPlayer.reservedEvent.split(/\s+/g),function(a,b){if(b===c)return e=!1});e&&a.element.bind(d+".jPlayer.jPlayerHtml",function(){a._emulateHtmlUpdate();var b=document.createEvent("Event");b.initEvent(c, -!1,!0);a.internal.domNode.dispatchEvent(b)})})},_emulateHtmlUpdate:function(){var a=this;b.each(b.jPlayer.emulateStatus.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.status[d]});b.each(b.jPlayer.emulateOptions.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.options[d]})},_destroyHtmlBridge:function(){var a=this;this.element.unbind(".jPlayerHtml");b.each((b.jPlayer.emulateMethods+" "+b.jPlayer.emulateStatus+" "+b.jPlayer.emulateOptions).split(/\s+/g),function(b,d){delete a.internal.domNode[d]})}}; -b.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"};b.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.", -NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+b.jPlayer.prototype.version.script+" needs Jplayer.swf version "+b.jPlayer.prototype.version.needFlash+" but found "};b.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.", -NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."};b.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"};b.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ", -CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."};b.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}}); \ No newline at end of file +/*! jPlayer 2.9.2 for jQuery ~ (c) 2009-2014 Happyworm Ltd ~ MIT License */ +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):b("object"==typeof exports?require("jquery"):a.jQuery?a.jQuery:a.Zepto)}(this,function(a,b){a.fn.jPlayer=function(c){var d="jPlayer",e="string"==typeof c,f=Array.prototype.slice.call(arguments,1),g=this;return c=!e&&f.length?a.extend.apply(null,[!0,c].concat(f)):c,e&&"_"===c.charAt(0)?g:(this.each(e?function(){var e=a(this).data(d),h=e&&a.isFunction(e[c])?e[c].apply(e,f):e;return h!==e&&h!==b?(g=h,!1):void 0}:function(){var b=a(this).data(d);b?b.option(c||{}):a(this).data(d,new a.jPlayer(c,this))}),g)},a.jPlayer=function(b,c){if(arguments.length){this.element=a(c),this.options=a.extend(!0,{},this.options,b);var d=this;this.element.bind("remove.jPlayer",function(){d.destroy()}),this._init()}},"function"!=typeof a.fn.stop&&(a.fn.stop=function(){}),a.jPlayer.emulateMethods="load play pause",a.jPlayer.emulateStatus="src readyState networkState currentTime duration paused ended playbackRate",a.jPlayer.emulateOptions="muted volume",a.jPlayer.reservedEvent="ready flashreset resize repeat error warning",a.jPlayer.event={},a.each(["ready","setmedia","flashreset","resize","repeat","click","error","warning","loadstart","progress","suspend","abort","emptied","stalled","play","pause","loadedmetadata","loadeddata","waiting","playing","canplay","canplaythrough","seeking","seeked","timeupdate","ended","ratechange","durationchange","volumechange"],function(){a.jPlayer.event[this]="jPlayer_"+this}),a.jPlayer.htmlEvent=["loadstart","abort","emptied","stalled","loadedmetadata","canplay","canplaythrough"],a.jPlayer.pause=function(){a.jPlayer.prototype.destroyRemoved(),a.each(a.jPlayer.prototype.instances,function(a,b){b.data("jPlayer").status.srcSet&&b.jPlayer("pause")})},a.jPlayer.timeFormat={showHour:!1,showMin:!0,showSec:!0,padHour:!1,padMin:!0,padSec:!0,sepHour:":",sepMin:":",sepSec:""};var c=function(){this.init()};c.prototype={init:function(){this.options={timeFormat:a.jPlayer.timeFormat}},time:function(a){a=a&&"number"==typeof a?a:0;var b=new Date(1e3*a),c=b.getUTCHours(),d=this.options.timeFormat.showHour?b.getUTCMinutes():b.getUTCMinutes()+60*c,e=this.options.timeFormat.showMin?b.getUTCSeconds():b.getUTCSeconds()+60*d,f=this.options.timeFormat.padHour&&10>c?"0"+c:c,g=this.options.timeFormat.padMin&&10>d?"0"+d:d,h=this.options.timeFormat.padSec&&10>e?"0"+e:e,i="";return i+=this.options.timeFormat.showHour?f+this.options.timeFormat.sepHour:"",i+=this.options.timeFormat.showMin?g+this.options.timeFormat.sepMin:"",i+=this.options.timeFormat.showSec?h+this.options.timeFormat.sepSec:""}};var d=new c;a.jPlayer.convertTime=function(a){return d.time(a)},a.jPlayer.uaBrowser=function(a){var b=a.toLowerCase(),c=/(webkit)[ \/]([\w.]+)/,d=/(opera)(?:.*version)?[ \/]([\w.]+)/,e=/(msie) ([\w.]+)/,f=/(mozilla)(?:.*? rv:([\w.]+))?/,g=c.exec(b)||d.exec(b)||e.exec(b)||b.indexOf("compatible")<0&&f.exec(b)||[];return{browser:g[1]||"",version:g[2]||"0"}},a.jPlayer.uaPlatform=function(a){var b=a.toLowerCase(),c=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/,d=/(ipad|playbook)/,e=/(android)/,f=/(mobile)/,g=c.exec(b)||[],h=d.exec(b)||!f.exec(b)&&e.exec(b)||[];return g[1]&&(g[1]=g[1].replace(/\s/g,"_")),{platform:g[1]||"",tablet:h[1]||""}},a.jPlayer.browser={},a.jPlayer.platform={};var e=a.jPlayer.uaBrowser(navigator.userAgent);e.browser&&(a.jPlayer.browser[e.browser]=!0,a.jPlayer.browser.version=e.version);var f=a.jPlayer.uaPlatform(navigator.userAgent);f.platform&&(a.jPlayer.platform[f.platform]=!0,a.jPlayer.platform.mobile=!f.tablet,a.jPlayer.platform.tablet=!!f.tablet),a.jPlayer.getDocMode=function(){var b;return a.jPlayer.browser.msie&&(document.documentMode?b=document.documentMode:(b=5,document.compatMode&&"CSS1Compat"===document.compatMode&&(b=7))),b},a.jPlayer.browser.documentMode=a.jPlayer.getDocMode(),a.jPlayer.nativeFeatures={init:function(){var a,b,c,d=document,e=d.createElement("video"),f={w3c:["fullscreenEnabled","fullscreenElement","requestFullscreen","exitFullscreen","fullscreenchange","fullscreenerror"],moz:["mozFullScreenEnabled","mozFullScreenElement","mozRequestFullScreen","mozCancelFullScreen","mozfullscreenchange","mozfullscreenerror"],webkit:["","webkitCurrentFullScreenElement","webkitRequestFullScreen","webkitCancelFullScreen","webkitfullscreenchange",""],webkitVideo:["webkitSupportsFullscreen","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","",""],ms:["","msFullscreenElement","msRequestFullscreen","msExitFullscreen","MSFullscreenChange","MSFullscreenError"]},g=["w3c","moz","webkit","webkitVideo","ms"];for(this.fullscreen=a={support:{w3c:!!d[f.w3c[0]],moz:!!d[f.moz[0]],webkit:"function"==typeof d[f.webkit[3]],webkitVideo:"function"==typeof e[f.webkitVideo[2]],ms:"function"==typeof e[f.ms[2]]},used:{}},b=0,c=g.length;c>b;b++){var h=g[b];if(a.support[h]){a.spec=h,a.used[h]=!0;break}}if(a.spec){var i=f[a.spec];a.api={fullscreenEnabled:!0,fullscreenElement:function(a){return a=a?a:d,a[i[1]]},requestFullscreen:function(a){return a[i[2]]()},exitFullscreen:function(a){return a=a?a:d,a[i[3]]()}},a.event={fullscreenchange:i[4],fullscreenerror:i[5]}}else a.api={fullscreenEnabled:!1,fullscreenElement:function(){return null},requestFullscreen:function(){},exitFullscreen:function(){}},a.event={}}},a.jPlayer.nativeFeatures.init(),a.jPlayer.focus=null,a.jPlayer.keyIgnoreElementNames="A INPUT TEXTAREA SELECT BUTTON";var g=function(b){var c,d=a.jPlayer.focus;d&&(a.each(a.jPlayer.keyIgnoreElementNames.split(/\s+/g),function(a,d){return b.target.nodeName.toUpperCase()===d.toUpperCase()?(c=!0,!1):void 0}),c||a.each(d.options.keyBindings,function(c,e){return e&&a.isFunction(e.fn)&&("number"==typeof e.key&&b.which===e.key||"string"==typeof e.key&&b.key===e.key)?(b.preventDefault(),e.fn(d),!1):void 0}))};a.jPlayer.keys=function(b){var c="keydown.jPlayer";a(document.documentElement).unbind(c),b&&a(document.documentElement).bind(c,g)},a.jPlayer.keys(!0),a.jPlayer.prototype={count:0,version:{script:"2.9.2",needFlash:"2.9.0",flash:"unknown"},options:{swfPath:"js",solution:"html, flash",supplied:"mp3",auroraFormats:"wav",preload:"metadata",volume:.8,muted:!1,remainingDuration:!1,toggleDuration:!1,captureDuration:!0,playbackRate:1,defaultPlaybackRate:1,minPlaybackRate:.5,maxPlaybackRate:4,wmode:"opaque",backgroundColor:"#000000",cssSelectorAncestor:"#jp_container_1",cssSelector:{videoPlay:".jp-video-play",play:".jp-play",pause:".jp-pause",stop:".jp-stop",seekBar:".jp-seek-bar",playBar:".jp-play-bar",mute:".jp-mute",unmute:".jp-unmute",volumeBar:".jp-volume-bar",volumeBarValue:".jp-volume-bar-value",volumeMax:".jp-volume-max",playbackRateBar:".jp-playback-rate-bar",playbackRateBarValue:".jp-playback-rate-bar-value",currentTime:".jp-current-time",duration:".jp-duration",title:".jp-title",fullScreen:".jp-full-screen",restoreScreen:".jp-restore-screen",repeat:".jp-repeat",repeatOff:".jp-repeat-off",gui:".jp-gui",noSolution:".jp-no-solution"},stateClass:{playing:"jp-state-playing",seeking:"jp-state-seeking",muted:"jp-state-muted",looped:"jp-state-looped",fullScreen:"jp-state-full-screen",noVolume:"jp-state-no-volume"},useStateClassSkin:!1,autoBlur:!0,smoothPlayBar:!1,fullScreen:!1,fullWindow:!1,autohide:{restored:!1,full:!0,fadeIn:200,fadeOut:600,hold:1e3},loop:!1,repeat:function(b){b.jPlayer.options.loop?a(this).unbind(".jPlayerRepeat").bind(a.jPlayer.event.ended+".jPlayer.jPlayerRepeat",function(){a(this).jPlayer("play")}):a(this).unbind(".jPlayerRepeat")},nativeVideoControls:{},noFullWindow:{msie:/msie [0-6]\./,ipad:/ipad.*?os [0-4]\./,iphone:/iphone/,ipod:/ipod/,android_pad:/android [0-3]\.(?!.*?mobile)/,android_phone:/(?=.*android)(?!.*chrome)(?=.*mobile)/,blackberry:/blackberry/,windows_ce:/windows ce/,iemobile:/iemobile/,webos:/webos/},noVolume:{ipad:/ipad/,iphone:/iphone/,ipod:/ipod/,android_pad:/android(?!.*?mobile)/,android_phone:/android.*?mobile/,blackberry:/blackberry/,windows_ce:/windows ce/,iemobile:/iemobile/,webos:/webos/,playbook:/playbook/},timeFormat:{},keyEnabled:!1,audioFullScreen:!1,keyBindings:{play:{key:80,fn:function(a){a.status.paused?a.play():a.pause()}},fullScreen:{key:70,fn:function(a){(a.status.video||a.options.audioFullScreen)&&a._setOption("fullScreen",!a.options.fullScreen)}},muted:{key:77,fn:function(a){a._muted(!a.options.muted)}},volumeUp:{key:190,fn:function(a){a.volume(a.options.volume+.1)}},volumeDown:{key:188,fn:function(a){a.volume(a.options.volume-.1)}},loop:{key:76,fn:function(a){a._loop(!a.options.loop)}}},verticalVolume:!1,verticalPlaybackRate:!1,globalVolume:!1,idPrefix:"jp",noConflict:"jQuery",emulateHtml:!1,consoleAlerts:!0,errorAlerts:!1,warningAlerts:!1},optionsAudio:{size:{width:"0px",height:"0px",cssClass:""},sizeFull:{width:"0px",height:"0px",cssClass:""}},optionsVideo:{size:{width:"480px",height:"270px",cssClass:"jp-video-270p"},sizeFull:{width:"100%",height:"100%",cssClass:"jp-video-full"}},instances:{},status:{src:"",media:{},paused:!0,format:{},formatType:"",waitForPlay:!0,waitForLoad:!0,srcSet:!1,video:!1,seekPercent:0,currentPercentRelative:0,currentPercentAbsolute:0,currentTime:0,duration:0,remaining:0,videoWidth:0,videoHeight:0,readyState:0,networkState:0,playbackRate:1,ended:0},internal:{ready:!1},solution:{html:!0,aurora:!0,flash:!0},format:{mp3:{codec:"audio/mpeg",flashCanPlay:!0,media:"audio"},m4a:{codec:'audio/mp4; codecs="mp4a.40.2"',flashCanPlay:!0,media:"audio"},m3u8a:{codec:'application/vnd.apple.mpegurl; codecs="mp4a.40.2"',flashCanPlay:!1,media:"audio"},m3ua:{codec:"audio/mpegurl",flashCanPlay:!1,media:"audio"},oga:{codec:'audio/ogg; codecs="vorbis, opus"',flashCanPlay:!1,media:"audio"},flac:{codec:"audio/x-flac",flashCanPlay:!1,media:"audio"},wav:{codec:'audio/wav; codecs="1"',flashCanPlay:!1,media:"audio"},webma:{codec:'audio/webm; codecs="vorbis"',flashCanPlay:!1,media:"audio"},fla:{codec:"audio/x-flv",flashCanPlay:!0,media:"audio"},rtmpa:{codec:'audio/rtmp; codecs="rtmp"',flashCanPlay:!0,media:"audio"},m4v:{codec:'video/mp4; codecs="avc1.42E01E, mp4a.40.2"',flashCanPlay:!0,media:"video"},m3u8v:{codec:'application/vnd.apple.mpegurl; codecs="avc1.42E01E, mp4a.40.2"',flashCanPlay:!1,media:"video"},m3uv:{codec:"audio/mpegurl",flashCanPlay:!1,media:"video"},ogv:{codec:'video/ogg; codecs="theora, vorbis"',flashCanPlay:!1,media:"video"},webmv:{codec:'video/webm; codecs="vorbis, vp8"',flashCanPlay:!1,media:"video"},flv:{codec:"video/x-flv",flashCanPlay:!0,media:"video"},rtmpv:{codec:'video/rtmp; codecs="rtmp"',flashCanPlay:!0,media:"video"}},_init:function(){var c=this;if(this.element.empty(),this.status=a.extend({},this.status),this.internal=a.extend({},this.internal),this.options.timeFormat=a.extend({},a.jPlayer.timeFormat,this.options.timeFormat),this.internal.cmdsIgnored=a.jPlayer.platform.ipad||a.jPlayer.platform.iphone||a.jPlayer.platform.ipod,this.internal.domNode=this.element.get(0),this.options.keyEnabled&&!a.jPlayer.focus&&(a.jPlayer.focus=this),this.androidFix={setMedia:!1,play:!1,pause:!1,time:0/0},a.jPlayer.platform.android&&(this.options.preload="auto"!==this.options.preload?"metadata":"auto"),this.formats=[],this.solutions=[],this.require={},this.htmlElement={},this.html={},this.html.audio={},this.html.video={},this.aurora={},this.aurora.formats=[],this.aurora.properties=[],this.flash={},this.css={},this.css.cs={},this.css.jq={},this.ancestorJq=[],this.options.volume=this._limitValue(this.options.volume,0,1),a.each(this.options.supplied.toLowerCase().split(","),function(b,d){var e=d.replace(/^\s+|\s+$/g,"");if(c.format[e]){var f=!1;a.each(c.formats,function(a,b){return e===b?(f=!0,!1):void 0}),f||c.formats.push(e)}}),a.each(this.options.solution.toLowerCase().split(","),function(b,d){var e=d.replace(/^\s+|\s+$/g,"");if(c.solution[e]){var f=!1;a.each(c.solutions,function(a,b){return e===b?(f=!0,!1):void 0}),f||c.solutions.push(e)}}),a.each(this.options.auroraFormats.toLowerCase().split(","),function(b,d){var e=d.replace(/^\s+|\s+$/g,"");if(c.format[e]){var f=!1;a.each(c.aurora.formats,function(a,b){return e===b?(f=!0,!1):void 0}),f||c.aurora.formats.push(e)}}),this.internal.instance="jp_"+this.count,this.instances[this.internal.instance]=this.element,this.element.attr("id")||this.element.attr("id",this.options.idPrefix+"_jplayer_"+this.count),this.internal.self=a.extend({},{id:this.element.attr("id"),jq:this.element}),this.internal.audio=a.extend({},{id:this.options.idPrefix+"_audio_"+this.count,jq:b}),this.internal.video=a.extend({},{id:this.options.idPrefix+"_video_"+this.count,jq:b}),this.internal.flash=a.extend({},{id:this.options.idPrefix+"_flash_"+this.count,jq:b,swf:this.options.swfPath+(".swf"!==this.options.swfPath.toLowerCase().slice(-4)?(this.options.swfPath&&"/"!==this.options.swfPath.slice(-1)?"/":"")+"jquery.jplayer.swf":"")}),this.internal.poster=a.extend({},{id:this.options.idPrefix+"_poster_"+this.count,jq:b}),a.each(a.jPlayer.event,function(a,d){c.options[a]!==b&&(c.element.bind(d+".jPlayer",c.options[a]),c.options[a]=b)}),this.require.audio=!1,this.require.video=!1,a.each(this.formats,function(a,b){c.require[c.format[b].media]=!0}),this.options=this.require.video?a.extend(!0,{},this.optionsVideo,this.options):a.extend(!0,{},this.optionsAudio,this.options),this._setSize(),this.status.nativeVideoControls=this._uaBlocklist(this.options.nativeVideoControls),this.status.noFullWindow=this._uaBlocklist(this.options.noFullWindow),this.status.noVolume=this._uaBlocklist(this.options.noVolume),a.jPlayer.nativeFeatures.fullscreen.api.fullscreenEnabled&&this._fullscreenAddEventListeners(),this._restrictNativeVideoControls(),this.htmlElement.poster=document.createElement("img"),this.htmlElement.poster.id=this.internal.poster.id,this.htmlElement.poster.onload=function(){(!c.status.video||c.status.waitForPlay)&&c.internal.poster.jq.show()},this.element.append(this.htmlElement.poster),this.internal.poster.jq=a("#"+this.internal.poster.id),this.internal.poster.jq.css({width:this.status.width,height:this.status.height}),this.internal.poster.jq.hide(),this.internal.poster.jq.bind("click.jPlayer",function(){c._trigger(a.jPlayer.event.click)}),this.html.audio.available=!1,this.require.audio&&(this.htmlElement.audio=document.createElement("audio"),this.htmlElement.audio.id=this.internal.audio.id,this.html.audio.available=!!this.htmlElement.audio.canPlayType&&this._testCanPlayType(this.htmlElement.audio)),this.html.video.available=!1,this.require.video&&(this.htmlElement.video=document.createElement("video"),this.htmlElement.video.id=this.internal.video.id,this.html.video.available=!!this.htmlElement.video.canPlayType&&this._testCanPlayType(this.htmlElement.video)),this.flash.available=this._checkForFlash(10.1),this.html.canPlay={},this.aurora.canPlay={},this.flash.canPlay={},a.each(this.formats,function(b,d){c.html.canPlay[d]=c.html[c.format[d].media].available&&""!==c.htmlElement[c.format[d].media].canPlayType(c.format[d].codec),c.aurora.canPlay[d]=a.inArray(d,c.aurora.formats)>-1,c.flash.canPlay[d]=c.format[d].flashCanPlay&&c.flash.available}),this.html.desired=!1,this.aurora.desired=!1,this.flash.desired=!1,a.each(this.solutions,function(b,d){if(0===b)c[d].desired=!0;else{var e=!1,f=!1;a.each(c.formats,function(a,b){c[c.solutions[0]].canPlay[b]&&("video"===c.format[b].media?f=!0:e=!0)}),c[d].desired=c.require.audio&&!e||c.require.video&&!f}}),this.html.support={},this.aurora.support={},this.flash.support={},a.each(this.formats,function(a,b){c.html.support[b]=c.html.canPlay[b]&&c.html.desired,c.aurora.support[b]=c.aurora.canPlay[b]&&c.aurora.desired,c.flash.support[b]=c.flash.canPlay[b]&&c.flash.desired}),this.html.used=!1,this.aurora.used=!1,this.flash.used=!1,a.each(this.solutions,function(b,d){a.each(c.formats,function(a,b){return c[d].support[b]?(c[d].used=!0,!1):void 0})}),this._resetActive(),this._resetGate(),this._cssSelectorAncestor(this.options.cssSelectorAncestor),this.html.used||this.aurora.used||this.flash.used?this.css.jq.noSolution.length&&this.css.jq.noSolution.hide():(this._error({type:a.jPlayer.error.NO_SOLUTION,context:"{solution:'"+this.options.solution+"', supplied:'"+this.options.supplied+"'}",message:a.jPlayer.errorMsg.NO_SOLUTION,hint:a.jPlayer.errorHint.NO_SOLUTION}),this.css.jq.noSolution.length&&this.css.jq.noSolution.show()),this.flash.used){var d,e="jQuery="+encodeURI(this.options.noConflict)+"&id="+encodeURI(this.internal.self.id)+"&vol="+this.options.volume+"&muted="+this.options.muted;if(a.jPlayer.browser.msie&&(Number(a.jPlayer.browser.version)<9||a.jPlayer.browser.documentMode<9)){var f='',g=['','','','',''];d=document.createElement(f);for(var h=0;h0&&(d.internal.cmdsIgnored=!1),d._getHtmlStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.progress))},!1),b.addEventListener("loadeddata",function(){c.gate&&(d.androidFix.setMedia=!1,d.androidFix.play&&(d.androidFix.play=!1,d.play(d.androidFix.time)),d.androidFix.pause&&(d.androidFix.pause=!1,d.pause(d.androidFix.time)),d._trigger(a.jPlayer.event.loadeddata))},!1),b.addEventListener("timeupdate",function(){c.gate&&(d._getHtmlStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.timeupdate))},!1),b.addEventListener("durationchange",function(){c.gate&&(d._getHtmlStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.durationchange))},!1),b.addEventListener("play",function(){c.gate&&(d._updateButtons(!0),d._html_checkWaitForPlay(),d._trigger(a.jPlayer.event.play))},!1),b.addEventListener("playing",function(){c.gate&&(d._updateButtons(!0),d._seeked(),d._trigger(a.jPlayer.event.playing))},!1),b.addEventListener("pause",function(){c.gate&&(d._updateButtons(!1),d._trigger(a.jPlayer.event.pause))},!1),b.addEventListener("waiting",function(){c.gate&&(d._seeking(),d._trigger(a.jPlayer.event.waiting))},!1),b.addEventListener("seeking",function(){c.gate&&(d._seeking(),d._trigger(a.jPlayer.event.seeking))},!1),b.addEventListener("seeked",function(){c.gate&&(d._seeked(),d._trigger(a.jPlayer.event.seeked))},!1),b.addEventListener("volumechange",function(){c.gate&&(d.options.volume=b.volume,d.options.muted=b.muted,d._updateMute(),d._updateVolume(),d._trigger(a.jPlayer.event.volumechange))},!1),b.addEventListener("ratechange",function(){c.gate&&(d.options.defaultPlaybackRate=b.defaultPlaybackRate,d.options.playbackRate=b.playbackRate,d._updatePlaybackRate(),d._trigger(a.jPlayer.event.ratechange))},!1),b.addEventListener("suspend",function(){c.gate&&(d._seeked(),d._trigger(a.jPlayer.event.suspend))},!1),b.addEventListener("ended",function(){c.gate&&(a.jPlayer.browser.webkit||(d.htmlElement.media.currentTime=0),d.htmlElement.media.pause(),d._updateButtons(!1),d._getHtmlStatus(b,!0),d._updateInterface(),d._trigger(a.jPlayer.event.ended))},!1),b.addEventListener("error",function(){c.gate&&(d._updateButtons(!1),d._seeked(),d.status.srcSet&&(clearTimeout(d.internal.htmlDlyCmdId),d.status.waitForLoad=!0,d.status.waitForPlay=!0,d.status.video&&!d.status.nativeVideoControls&&d.internal.video.jq.css({width:"0px",height:"0px"}),d._validString(d.status.media.poster)&&!d.status.nativeVideoControls&&d.internal.poster.jq.show(),d.css.jq.videoPlay.length&&d.css.jq.videoPlay.show(),d._error({type:a.jPlayer.error.URL,context:d.status.src,message:a.jPlayer.errorMsg.URL,hint:a.jPlayer.errorHint.URL})))},!1),a.each(a.jPlayer.htmlEvent,function(e,f){b.addEventListener(this,function(){c.gate&&d._trigger(a.jPlayer.event[f])},!1)})},_addAuroraEventListeners:function(b,c){var d=this;b.volume=100*this.options.volume,b.on("progress",function(){c.gate&&(d.internal.cmdsIgnored&&this.readyState>0&&(d.internal.cmdsIgnored=!1),d._getAuroraStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.progress),b.duration>0&&d._trigger(a.jPlayer.event.timeupdate))},!1),b.on("ready",function(){c.gate&&d._trigger(a.jPlayer.event.loadeddata)},!1),b.on("duration",function(){c.gate&&(d._getAuroraStatus(b),d._updateInterface(),d._trigger(a.jPlayer.event.durationchange))},!1),b.on("end",function(){c.gate&&(d._updateButtons(!1),d._getAuroraStatus(b,!0),d._updateInterface(),d._trigger(a.jPlayer.event.ended))},!1),b.on("error",function(){c.gate&&(d._updateButtons(!1),d._seeked(),d.status.srcSet&&(d.status.waitForLoad=!0,d.status.waitForPlay=!0,d.status.video&&!d.status.nativeVideoControls&&d.internal.video.jq.css({width:"0px",height:"0px"}),d._validString(d.status.media.poster)&&!d.status.nativeVideoControls&&d.internal.poster.jq.show(),d.css.jq.videoPlay.length&&d.css.jq.videoPlay.show(),d._error({type:a.jPlayer.error.URL,context:d.status.src,message:a.jPlayer.errorMsg.URL,hint:a.jPlayer.errorHint.URL})))},!1)},_getHtmlStatus:function(a,b){var c=0,d=0,e=0,f=0;isFinite(a.duration)&&(this.status.duration=a.duration),c=a.currentTime,d=this.status.duration>0?100*c/this.status.duration:0,"object"==typeof a.seekable&&a.seekable.length>0?(e=this.status.duration>0?100*a.seekable.end(a.seekable.length-1)/this.status.duration:100,f=this.status.duration>0?100*a.currentTime/a.seekable.end(a.seekable.length-1):0):(e=100,f=d),b&&(c=0,f=0,d=0),this.status.seekPercent=e,this.status.currentPercentRelative=f,this.status.currentPercentAbsolute=d,this.status.currentTime=c,this.status.remaining=this.status.duration-this.status.currentTime,this.status.videoWidth=a.videoWidth,this.status.videoHeight=a.videoHeight,this.status.readyState=a.readyState,this.status.networkState=a.networkState,this.status.playbackRate=a.playbackRate,this.status.ended=a.ended},_getAuroraStatus:function(a,b){var c=0,d=0,e=0,f=0;this.status.duration=a.duration/1e3,c=a.currentTime/1e3,d=this.status.duration>0?100*c/this.status.duration:0,a.buffered>0?(e=this.status.duration>0?a.buffered*this.status.duration/this.status.duration:100,f=this.status.duration>0?c/(a.buffered*this.status.duration):0):(e=100,f=d),b&&(c=0,f=0,d=0),this.status.seekPercent=e,this.status.currentPercentRelative=f,this.status.currentPercentAbsolute=d,this.status.currentTime=c,this.status.remaining=this.status.duration-this.status.currentTime,this.status.readyState=4,this.status.networkState=0,this.status.playbackRate=1,this.status.ended=!1},_resetStatus:function(){this.status=a.extend({},this.status,a.jPlayer.prototype.status)},_trigger:function(b,c,d){var e=a.Event(b);e.jPlayer={},e.jPlayer.version=a.extend({},this.version),e.jPlayer.options=a.extend(!0,{},this.options),e.jPlayer.status=a.extend(!0,{},this.status),e.jPlayer.html=a.extend(!0,{},this.html),e.jPlayer.aurora=a.extend(!0,{},this.aurora),e.jPlayer.flash=a.extend(!0,{},this.flash),c&&(e.jPlayer.error=a.extend({},c)),d&&(e.jPlayer.warning=a.extend({},d)),this.element.trigger(e)},jPlayerFlashEvent:function(b,c){if(b===a.jPlayer.event.ready)if(this.internal.ready){if(this.flash.gate){if(this.status.srcSet){var d=this.status.currentTime,e=this.status.paused;this.setMedia(this.status.media),this.volumeWorker(this.options.volume),d>0&&(e?this.pause(d):this.play(d))}this._trigger(a.jPlayer.event.flashreset)}}else this.internal.ready=!0,this.internal.flash.jq.css({width:"0px",height:"0px"}),this.version.flash=c.version,this.version.needFlash!==this.version.flash&&this._error({type:a.jPlayer.error.VERSION,context:this.version.flash,message:a.jPlayer.errorMsg.VERSION+this.version.flash,hint:a.jPlayer.errorHint.VERSION}),this._trigger(a.jPlayer.event.repeat),this._trigger(b);if(this.flash.gate)switch(b){case a.jPlayer.event.progress:this._getFlashStatus(c),this._updateInterface(),this._trigger(b);break;case a.jPlayer.event.timeupdate:this._getFlashStatus(c),this._updateInterface(),this._trigger(b);break;case a.jPlayer.event.play:this._seeked(),this._updateButtons(!0),this._trigger(b);break;case a.jPlayer.event.pause:this._updateButtons(!1),this._trigger(b);break;case a.jPlayer.event.ended:this._updateButtons(!1),this._trigger(b);break;case a.jPlayer.event.click:this._trigger(b);break;case a.jPlayer.event.error:this.status.waitForLoad=!0,this.status.waitForPlay=!0,this.status.video&&this.internal.flash.jq.css({width:"0px",height:"0px"}),this._validString(this.status.media.poster)&&this.internal.poster.jq.show(),this.css.jq.videoPlay.length&&this.status.video&&this.css.jq.videoPlay.show(),this.status.video?this._flash_setVideo(this.status.media):this._flash_setAudio(this.status.media),this._updateButtons(!1),this._error({type:a.jPlayer.error.URL,context:c.src,message:a.jPlayer.errorMsg.URL,hint:a.jPlayer.errorHint.URL});break;case a.jPlayer.event.seeking:this._seeking(),this._trigger(b);break;case a.jPlayer.event.seeked:this._seeked(),this._trigger(b);break;case a.jPlayer.event.ready:break;default:this._trigger(b)}return!1},_getFlashStatus:function(a){this.status.seekPercent=a.seekPercent,this.status.currentPercentRelative=a.currentPercentRelative,this.status.currentPercentAbsolute=a.currentPercentAbsolute,this.status.currentTime=a.currentTime,this.status.duration=a.duration,this.status.remaining=a.duration-a.currentTime,this.status.videoWidth=a.videoWidth,this.status.videoHeight=a.videoHeight,this.status.readyState=4,this.status.networkState=0,this.status.playbackRate=1,this.status.ended=!1},_updateButtons:function(a){a===b?a=!this.status.paused:this.status.paused=!a,a?this.addStateClass("playing"):this.removeStateClass("playing"),!this.status.noFullWindow&&this.options.fullWindow?this.addStateClass("fullScreen"):this.removeStateClass("fullScreen"),this.options.loop?this.addStateClass("looped"):this.removeStateClass("looped"),this.css.jq.play.length&&this.css.jq.pause.length&&(a?(this.css.jq.play.hide(),this.css.jq.pause.show()):(this.css.jq.play.show(),this.css.jq.pause.hide())),this.css.jq.restoreScreen.length&&this.css.jq.fullScreen.length&&(this.status.noFullWindow?(this.css.jq.fullScreen.hide(),this.css.jq.restoreScreen.hide()):this.options.fullWindow?(this.css.jq.fullScreen.hide(),this.css.jq.restoreScreen.show()):(this.css.jq.fullScreen.show(),this.css.jq.restoreScreen.hide())),this.css.jq.repeat.length&&this.css.jq.repeatOff.length&&(this.options.loop?(this.css.jq.repeat.hide(),this.css.jq.repeatOff.show()):(this.css.jq.repeat.show(),this.css.jq.repeatOff.hide()))},_updateInterface:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.width(this.status.seekPercent+"%"),this.css.jq.playBar.length&&(this.options.smoothPlayBar?this.css.jq.playBar.stop().animate({width:this.status.currentPercentAbsolute+"%"},250,"linear"):this.css.jq.playBar.width(this.status.currentPercentRelative+"%"));var a="";this.css.jq.currentTime.length&&(a=this._convertTime(this.status.currentTime),a!==this.css.jq.currentTime.text()&&this.css.jq.currentTime.text(this._convertTime(this.status.currentTime)));var b="",c=this.status.duration,d=this.status.remaining;this.css.jq.duration.length&&("string"==typeof this.status.media.duration?b=this.status.media.duration:("number"==typeof this.status.media.duration&&(c=this.status.media.duration,d=c-this.status.currentTime),b=this.options.remainingDuration?(d>0?"-":"")+this._convertTime(d):this._convertTime(c)),b!==this.css.jq.duration.text()&&this.css.jq.duration.text(b))},_convertTime:c.prototype.time,_seeking:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.addClass("jp-seeking-bg"),this.addStateClass("seeking")},_seeked:function(){this.css.jq.seekBar.length&&this.css.jq.seekBar.removeClass("jp-seeking-bg"),this.removeStateClass("seeking")},_resetGate:function(){this.html.audio.gate=!1,this.html.video.gate=!1,this.aurora.gate=!1,this.flash.gate=!1},_resetActive:function(){this.html.active=!1,this.aurora.active=!1,this.flash.active=!1},_escapeHtml:function(a){return a.split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""")},_qualifyURL:function(a){var b=document.createElement("div"); +return b.innerHTML='x',b.firstChild.href},_absoluteMediaUrls:function(b){var c=this;return a.each(b,function(a,d){d&&c.format[a]&&"data:"!==d.substr(0,5)&&(b[a]=c._qualifyURL(d))}),b},addStateClass:function(a){this.ancestorJq.length&&this.ancestorJq.addClass(this.options.stateClass[a])},removeStateClass:function(a){this.ancestorJq.length&&this.ancestorJq.removeClass(this.options.stateClass[a])},setMedia:function(b){var c=this,d=!1,e=this.status.media.poster!==b.poster;this._resetMedia(),this._resetGate(),this._resetActive(),this.androidFix.setMedia=!1,this.androidFix.play=!1,this.androidFix.pause=!1,b=this._absoluteMediaUrls(b),a.each(this.formats,function(e,f){var g="video"===c.format[f].media;return a.each(c.solutions,function(e,h){if(c[h].support[f]&&c._validString(b[f])){var i="html"===h,j="aurora"===h;return g?(i?(c.html.video.gate=!0,c._html_setVideo(b),c.html.active=!0):(c.flash.gate=!0,c._flash_setVideo(b),c.flash.active=!0),c.css.jq.videoPlay.length&&c.css.jq.videoPlay.show(),c.status.video=!0):(i?(c.html.audio.gate=!0,c._html_setAudio(b),c.html.active=!0,a.jPlayer.platform.android&&(c.androidFix.setMedia=!0)):j?(c.aurora.gate=!0,c._aurora_setAudio(b),c.aurora.active=!0):(c.flash.gate=!0,c._flash_setAudio(b),c.flash.active=!0),c.css.jq.videoPlay.length&&c.css.jq.videoPlay.hide(),c.status.video=!1),d=!0,!1}}),d?!1:void 0}),d?(this.status.nativeVideoControls&&this.html.video.gate||this._validString(b.poster)&&(e?this.htmlElement.poster.src=b.poster:this.internal.poster.jq.show()),"string"==typeof b.title&&(this.css.jq.title.length&&this.css.jq.title.html(b.title),this.htmlElement.audio&&this.htmlElement.audio.setAttribute("title",b.title),this.htmlElement.video&&this.htmlElement.video.setAttribute("title",b.title)),this.status.srcSet=!0,this.status.media=a.extend({},b),this._updateButtons(!1),this._updateInterface(),this._trigger(a.jPlayer.event.setmedia)):this._error({type:a.jPlayer.error.NO_SUPPORT,context:"{supplied:'"+this.options.supplied+"'}",message:a.jPlayer.errorMsg.NO_SUPPORT,hint:a.jPlayer.errorHint.NO_SUPPORT})},_resetMedia:function(){this._resetStatus(),this._updateButtons(!1),this._updateInterface(),this._seeked(),this.internal.poster.jq.hide(),clearTimeout(this.internal.htmlDlyCmdId),this.html.active?this._html_resetMedia():this.aurora.active?this._aurora_resetMedia():this.flash.active&&this._flash_resetMedia()},clearMedia:function(){this._resetMedia(),this.html.active?this._html_clearMedia():this.aurora.active?this._aurora_clearMedia():this.flash.active&&this._flash_clearMedia(),this._resetGate(),this._resetActive()},load:function(){this.status.srcSet?this.html.active?this._html_load():this.aurora.active?this._aurora_load():this.flash.active&&this._flash_load():this._urlNotSetError("load")},focus:function(){this.options.keyEnabled&&(a.jPlayer.focus=this)},play:function(a){var b="object"==typeof a;b&&this.options.useStateClassSkin&&!this.status.paused?this.pause(a):(a="number"==typeof a?a:0/0,this.status.srcSet?(this.focus(),this.html.active?this._html_play(a):this.aurora.active?this._aurora_play(a):this.flash.active&&this._flash_play(a)):this._urlNotSetError("play"))},videoPlay:function(){this.play()},pause:function(a){a="number"==typeof a?a:0/0,this.status.srcSet?this.html.active?this._html_pause(a):this.aurora.active?this._aurora_pause(a):this.flash.active&&this._flash_pause(a):this._urlNotSetError("pause")},tellOthers:function(b,c){var d=this,e="function"==typeof c,f=Array.prototype.slice.call(arguments);"string"==typeof b&&(e&&f.splice(1,1),a.jPlayer.prototype.destroyRemoved(),a.each(this.instances,function(){d.element!==this&&(!e||c.call(this.data("jPlayer"),d))&&this.jPlayer.apply(this,f)}))},pauseOthers:function(a){this.tellOthers("pause",function(){return this.status.srcSet},a)},stop:function(){this.status.srcSet?this.html.active?this._html_pause(0):this.aurora.active?this._aurora_pause(0):this.flash.active&&this._flash_pause(0):this._urlNotSetError("stop")},playHead:function(a){a=this._limitValue(a,0,100),this.status.srcSet?this.html.active?this._html_playHead(a):this.aurora.active?this._aurora_playHead(a):this.flash.active&&this._flash_playHead(a):this._urlNotSetError("playHead")},_muted:function(a){this.mutedWorker(a),this.options.globalVolume&&this.tellOthers("mutedWorker",function(){return this.options.globalVolume},a)},mutedWorker:function(b){this.options.muted=b,this.html.used&&this._html_setProperty("muted",b),this.aurora.used&&this._aurora_mute(b),this.flash.used&&this._flash_mute(b),this.html.video.gate||this.html.audio.gate||(this._updateMute(b),this._updateVolume(this.options.volume),this._trigger(a.jPlayer.event.volumechange))},mute:function(a){var c="object"==typeof a;c&&this.options.useStateClassSkin&&this.options.muted?this._muted(!1):(a=a===b?!0:!!a,this._muted(a))},unmute:function(a){a=a===b?!0:!!a,this._muted(!a)},_updateMute:function(a){a===b&&(a=this.options.muted),a?this.addStateClass("muted"):this.removeStateClass("muted"),this.css.jq.mute.length&&this.css.jq.unmute.length&&(this.status.noVolume?(this.css.jq.mute.hide(),this.css.jq.unmute.hide()):a?(this.css.jq.mute.hide(),this.css.jq.unmute.show()):(this.css.jq.mute.show(),this.css.jq.unmute.hide()))},volume:function(a){this.volumeWorker(a),this.options.globalVolume&&this.tellOthers("volumeWorker",function(){return this.options.globalVolume},a)},volumeWorker:function(b){b=this._limitValue(b,0,1),this.options.volume=b,this.html.used&&this._html_setProperty("volume",b),this.aurora.used&&this._aurora_volume(b),this.flash.used&&this._flash_volume(b),this.html.video.gate||this.html.audio.gate||(this._updateVolume(b),this._trigger(a.jPlayer.event.volumechange))},volumeBar:function(b){if(this.css.jq.volumeBar.length){var c=a(b.currentTarget),d=c.offset(),e=b.pageX-d.left,f=c.width(),g=c.height()-b.pageY+d.top,h=c.height();this.volume(this.options.verticalVolume?g/h:e/f)}this.options.muted&&this._muted(!1)},_updateVolume:function(a){a===b&&(a=this.options.volume),a=this.options.muted?0:a,this.status.noVolume?(this.addStateClass("noVolume"),this.css.jq.volumeBar.length&&this.css.jq.volumeBar.hide(),this.css.jq.volumeBarValue.length&&this.css.jq.volumeBarValue.hide(),this.css.jq.volumeMax.length&&this.css.jq.volumeMax.hide()):(this.removeStateClass("noVolume"),this.css.jq.volumeBar.length&&this.css.jq.volumeBar.show(),this.css.jq.volumeBarValue.length&&(this.css.jq.volumeBarValue.show(),this.css.jq.volumeBarValue[this.options.verticalVolume?"height":"width"](100*a+"%")),this.css.jq.volumeMax.length&&this.css.jq.volumeMax.show())},volumeMax:function(){this.volume(1),this.options.muted&&this._muted(!1)},_cssSelectorAncestor:function(b){var c=this;this.options.cssSelectorAncestor=b,this._removeUiClass(),this.ancestorJq=b?a(b):[],b&&1!==this.ancestorJq.length&&this._warning({type:a.jPlayer.warning.CSS_SELECTOR_COUNT,context:b,message:a.jPlayer.warningMsg.CSS_SELECTOR_COUNT+this.ancestorJq.length+" found for cssSelectorAncestor.",hint:a.jPlayer.warningHint.CSS_SELECTOR_COUNT}),this._addUiClass(),a.each(this.options.cssSelector,function(a,b){c._cssSelector(a,b)}),this._updateInterface(),this._updateButtons(),this._updateAutohide(),this._updateVolume(),this._updateMute()},_cssSelector:function(b,c){var d=this;if("string"==typeof c)if(a.jPlayer.prototype.options.cssSelector[b]){if(this.css.jq[b]&&this.css.jq[b].length&&this.css.jq[b].unbind(".jPlayer"),this.options.cssSelector[b]=c,this.css.cs[b]=this.options.cssSelectorAncestor+" "+c,this.css.jq[b]=c?a(this.css.cs[b]):[],this.css.jq[b].length&&this[b]){var e=function(c){c.preventDefault(),d[b](c),d.options.autoBlur?a(this).blur():a(this).focus()};this.css.jq[b].bind("click.jPlayer",e)}c&&1!==this.css.jq[b].length&&this._warning({type:a.jPlayer.warning.CSS_SELECTOR_COUNT,context:this.css.cs[b],message:a.jPlayer.warningMsg.CSS_SELECTOR_COUNT+this.css.jq[b].length+" found for "+b+" method.",hint:a.jPlayer.warningHint.CSS_SELECTOR_COUNT})}else this._warning({type:a.jPlayer.warning.CSS_SELECTOR_METHOD,context:b,message:a.jPlayer.warningMsg.CSS_SELECTOR_METHOD,hint:a.jPlayer.warningHint.CSS_SELECTOR_METHOD});else this._warning({type:a.jPlayer.warning.CSS_SELECTOR_STRING,context:c,message:a.jPlayer.warningMsg.CSS_SELECTOR_STRING,hint:a.jPlayer.warningHint.CSS_SELECTOR_STRING})},duration:function(a){this.options.toggleDuration&&(this.options.captureDuration&&a.stopPropagation(),this._setOption("remainingDuration",!this.options.remainingDuration))},seekBar:function(b){if(this.css.jq.seekBar.length){var c=a(b.currentTarget),d=c.offset(),e=b.pageX-d.left,f=c.width(),g=100*e/f;this.playHead(g)}},playbackRate:function(a){this._setOption("playbackRate",a)},playbackRateBar:function(b){if(this.css.jq.playbackRateBar.length){var c,d,e=a(b.currentTarget),f=e.offset(),g=b.pageX-f.left,h=e.width(),i=e.height()-b.pageY+f.top,j=e.height();c=this.options.verticalPlaybackRate?i/j:g/h,d=c*(this.options.maxPlaybackRate-this.options.minPlaybackRate)+this.options.minPlaybackRate,this.playbackRate(d)}},_updatePlaybackRate:function(){var a=this.options.playbackRate,b=(a-this.options.minPlaybackRate)/(this.options.maxPlaybackRate-this.options.minPlaybackRate);this.status.playbackRateEnabled?(this.css.jq.playbackRateBar.length&&this.css.jq.playbackRateBar.show(),this.css.jq.playbackRateBarValue.length&&(this.css.jq.playbackRateBarValue.show(),this.css.jq.playbackRateBarValue[this.options.verticalPlaybackRate?"height":"width"](100*b+"%"))):(this.css.jq.playbackRateBar.length&&this.css.jq.playbackRateBar.hide(),this.css.jq.playbackRateBarValue.length&&this.css.jq.playbackRateBarValue.hide())},repeat:function(a){var b="object"==typeof a;this._loop(b&&this.options.useStateClassSkin&&this.options.loop?!1:!0)},repeatOff:function(){this._loop(!1)},_loop:function(b){this.options.loop!==b&&(this.options.loop=b,this._updateButtons(),this._trigger(a.jPlayer.event.repeat))},option:function(c,d){var e=c;if(0===arguments.length)return a.extend(!0,{},this.options);if("string"==typeof c){var f=c.split(".");if(d===b){for(var g=a.extend(!0,{},this.options),h=0;h0||Math.floor(d)>0):e=!0,a.internal.mouse={x:b.pageX,y:b.pageY},e&&a.css.jq.gui.fadeIn(a.options.autohide.fadeIn,function(){clearTimeout(a.internal.autohideId),a.internal.autohideId=setTimeout(function(){a.css.jq.gui.fadeOut(a.options.autohide.fadeOut)},a.options.autohide.hold)})};this.css.jq.gui.length&&(this.css.jq.gui.stop(!0,!0),clearTimeout(this.internal.autohideId),delete this.internal.mouse,this.element.unbind(c),this.css.jq.gui.unbind(c),this.status.nativeVideoControls?this.css.jq.gui.hide():this.options.fullWindow&&this.options.autohide.full||!this.options.fullWindow&&this.options.autohide.restored?(this.element.bind(d,e),this.css.jq.gui.bind(d,e),this.css.jq.gui.hide()):this.css.jq.gui.show())},fullScreen:function(a){var b="object"==typeof a;b&&this.options.useStateClassSkin&&this.options.fullScreen?this._setOption("fullScreen",!1):this._setOption("fullScreen",!0)},restoreScreen:function(){this._setOption("fullScreen",!1)},_fullscreenAddEventListeners:function(){var b=this,c=a.jPlayer.nativeFeatures.fullscreen;c.api.fullscreenEnabled&&c.event.fullscreenchange&&("function"!=typeof this.internal.fullscreenchangeHandler&&(this.internal.fullscreenchangeHandler=function(){b._fullscreenchange()}),document.addEventListener(c.event.fullscreenchange,this.internal.fullscreenchangeHandler,!1))},_fullscreenRemoveEventListeners:function(){var b=a.jPlayer.nativeFeatures.fullscreen;this.internal.fullscreenchangeHandler&&document.removeEventListener(b.event.fullscreenchange,this.internal.fullscreenchangeHandler,!1)},_fullscreenchange:function(){this.options.fullScreen&&!a.jPlayer.nativeFeatures.fullscreen.api.fullscreenElement()&&this._setOption("fullScreen",!1)},_requestFullscreen:function(){var b=this.ancestorJq.length?this.ancestorJq[0]:this.element[0],c=a.jPlayer.nativeFeatures.fullscreen;c.used.webkitVideo&&(b=this.htmlElement.video),c.api.fullscreenEnabled&&c.api.requestFullscreen(b)},_exitFullscreen:function(){var b,c=a.jPlayer.nativeFeatures.fullscreen;c.used.webkitVideo&&(b=this.htmlElement.video),c.api.fullscreenEnabled&&c.api.exitFullscreen(b)},_html_initMedia:function(b){var c=a(this.htmlElement.media).empty();a.each(b.track||[],function(a,b){var d=document.createElement("track");d.setAttribute("kind",b.kind?b.kind:""),d.setAttribute("src",b.src?b.src:""),d.setAttribute("srclang",b.srclang?b.srclang:""),d.setAttribute("label",b.label?b.label:""),b.def&&d.setAttribute("default",b.def),c.append(d)}),this.htmlElement.media.src=this.status.src,"none"!==this.options.preload&&this._html_load(),this._trigger(a.jPlayer.event.timeupdate)},_html_setFormat:function(b){var c=this;a.each(this.formats,function(a,d){return c.html.support[d]&&b[d]?(c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1):void 0})},_html_setAudio:function(a){this._html_setFormat(a),this.htmlElement.media=this.htmlElement.audio,this._html_initMedia(a)},_html_setVideo:function(a){this._html_setFormat(a),this.status.nativeVideoControls&&(this.htmlElement.video.poster=this._validString(a.poster)?a.poster:""),this.htmlElement.media=this.htmlElement.video,this._html_initMedia(a)},_html_resetMedia:function(){this.htmlElement.media&&(this.htmlElement.media.id!==this.internal.video.id||this.status.nativeVideoControls||this.internal.video.jq.css({width:"0px",height:"0px"}),this.htmlElement.media.pause())},_html_clearMedia:function(){this.htmlElement.media&&(this.htmlElement.media.src="about:blank",this.htmlElement.media.load())},_html_load:function(){this.status.waitForLoad&&(this.status.waitForLoad=!1,this.htmlElement.media.load()),clearTimeout(this.internal.htmlDlyCmdId)},_html_play:function(a){var b=this,c=this.htmlElement.media;if(this.androidFix.pause=!1,this._html_load(),this.androidFix.setMedia)this.androidFix.play=!0,this.androidFix.time=a;else if(isNaN(a))c.play();else{this.internal.cmdsIgnored&&c.play();try{if(c.seekable&&!("object"==typeof c.seekable&&c.seekable.length>0))throw 1;c.currentTime=a,c.play()}catch(d){return void(this.internal.htmlDlyCmdId=setTimeout(function(){b.play(a)},250))}}this._html_checkWaitForPlay()},_html_pause:function(a){var b=this,c=this.htmlElement.media;if(this.androidFix.play=!1,a>0?this._html_load():clearTimeout(this.internal.htmlDlyCmdId),c.pause(),this.androidFix.setMedia)this.androidFix.pause=!0,this.androidFix.time=a;else if(!isNaN(a))try{if(c.seekable&&!("object"==typeof c.seekable&&c.seekable.length>0))throw 1;c.currentTime=a}catch(d){return void(this.internal.htmlDlyCmdId=setTimeout(function(){b.pause(a)},250))}a>0&&this._html_checkWaitForPlay()},_html_playHead:function(a){var b=this,c=this.htmlElement.media;this._html_load();try{if("object"==typeof c.seekable&&c.seekable.length>0)c.currentTime=a*c.seekable.end(c.seekable.length-1)/100;else{if(!(c.duration>0)||isNaN(c.duration))throw"e";c.currentTime=a*c.duration/100}}catch(d){return void(this.internal.htmlDlyCmdId=setTimeout(function(){b.playHead(a)},250))}this.status.waitForLoad||this._html_checkWaitForPlay()},_html_checkWaitForPlay:function(){this.status.waitForPlay&&(this.status.waitForPlay=!1,this.css.jq.videoPlay.length&&this.css.jq.videoPlay.hide(),this.status.video&&(this.internal.poster.jq.hide(),this.internal.video.jq.css({width:this.status.width,height:this.status.height})))},_html_setProperty:function(a,b){this.html.audio.available&&(this.htmlElement.audio[a]=b),this.html.video.available&&(this.htmlElement.video[a]=b)},_aurora_setAudio:function(b){var c=this;a.each(this.formats,function(a,d){return c.aurora.support[d]&&b[d]?(c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1):void 0}),this.aurora.player=new AV.Player.fromURL(this.status.src),this._addAuroraEventListeners(this.aurora.player,this.aurora),"auto"===this.options.preload&&(this._aurora_load(),this.status.waitForLoad=!1)},_aurora_resetMedia:function(){this.aurora.player&&this.aurora.player.stop()},_aurora_clearMedia:function(){},_aurora_load:function(){this.status.waitForLoad&&(this.status.waitForLoad=!1,this.aurora.player.preload())},_aurora_play:function(b){this.status.waitForLoad||isNaN(b)||this.aurora.player.seek(b),this.aurora.player.playing||this.aurora.player.play(),this.status.waitForLoad=!1,this._aurora_checkWaitForPlay(),this._updateButtons(!0),this._trigger(a.jPlayer.event.play)},_aurora_pause:function(b){isNaN(b)||this.aurora.player.seek(1e3*b),this.aurora.player.pause(),b>0&&this._aurora_checkWaitForPlay(),this._updateButtons(!1),this._trigger(a.jPlayer.event.pause)},_aurora_playHead:function(a){this.aurora.player.duration>0&&this.aurora.player.seek(a*this.aurora.player.duration/100),this.status.waitForLoad||this._aurora_checkWaitForPlay()},_aurora_checkWaitForPlay:function(){this.status.waitForPlay&&(this.status.waitForPlay=!1)},_aurora_volume:function(a){this.aurora.player.volume=100*a},_aurora_mute:function(a){a?(this.aurora.properties.lastvolume=this.aurora.player.volume,this.aurora.player.volume=0):this.aurora.player.volume=this.aurora.properties.lastvolume,this.aurora.properties.muted=a},_flash_setAudio:function(b){var c=this;try{a.each(this.formats,function(a,d){if(c.flash.support[d]&&b[d]){switch(d){case"m4a":case"fla":c._getMovie().fl_setAudio_m4a(b[d]);break;case"mp3":c._getMovie().fl_setAudio_mp3(b[d]);break;case"rtmpa":c._getMovie().fl_setAudio_rtmp(b[d])}return c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1}}),"auto"===this.options.preload&&(this._flash_load(),this.status.waitForLoad=!1)}catch(d){this._flashError(d)}},_flash_setVideo:function(b){var c=this;try{a.each(this.formats,function(a,d){if(c.flash.support[d]&&b[d]){switch(d){case"m4v":case"flv":c._getMovie().fl_setVideo_m4v(b[d]);break;case"rtmpv":c._getMovie().fl_setVideo_rtmp(b[d])}return c.status.src=b[d],c.status.format[d]=!0,c.status.formatType=d,!1}}),"auto"===this.options.preload&&(this._flash_load(),this.status.waitForLoad=!1)}catch(d){this._flashError(d)}},_flash_resetMedia:function(){this.internal.flash.jq.css({width:"0px",height:"0px"}),this._flash_pause(0/0)},_flash_clearMedia:function(){try{this._getMovie().fl_clearMedia()}catch(a){this._flashError(a)}},_flash_load:function(){try{this._getMovie().fl_load()}catch(a){this._flashError(a)}this.status.waitForLoad=!1},_flash_play:function(a){try{this._getMovie().fl_play(a)}catch(b){this._flashError(b)}this.status.waitForLoad=!1,this._flash_checkWaitForPlay()},_flash_pause:function(a){try{this._getMovie().fl_pause(a)}catch(b){this._flashError(b)}a>0&&(this.status.waitForLoad=!1,this._flash_checkWaitForPlay())},_flash_playHead:function(a){try{this._getMovie().fl_play_head(a)}catch(b){this._flashError(b)}this.status.waitForLoad||this._flash_checkWaitForPlay()},_flash_checkWaitForPlay:function(){this.status.waitForPlay&&(this.status.waitForPlay=!1,this.css.jq.videoPlay.length&&this.css.jq.videoPlay.hide(),this.status.video&&(this.internal.poster.jq.hide(),this.internal.flash.jq.css({width:this.status.width,height:this.status.height})))},_flash_volume:function(a){try{this._getMovie().fl_volume(a)}catch(b){this._flashError(b)}},_flash_mute:function(a){try{this._getMovie().fl_mute(a)}catch(b){this._flashError(b)}},_getMovie:function(){return document[this.internal.flash.id]},_getFlashPluginVersion:function(){var a,b=0;if(window.ActiveXObject)try{if(a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")){var c=a.GetVariable("$version");c&&(c=c.split(" ")[1].split(","),b=parseInt(c[0],10)+"."+parseInt(c[1],10))}}catch(d){}else navigator.plugins&&navigator.mimeTypes.length>0&&(a=navigator.plugins["Shockwave Flash"],a&&(b=navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/,"$1")));return 1*b},_checkForFlash:function(a){var b=!1;return this._getFlashPluginVersion()>=a&&(b=!0),b},_validString:function(a){return a&&"string"==typeof a},_limitValue:function(a,b,c){return b>a?b:a>c?c:a},_urlNotSetError:function(b){this._error({type:a.jPlayer.error.URL_NOT_SET,context:b,message:a.jPlayer.errorMsg.URL_NOT_SET,hint:a.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(b){var c;c=this.internal.ready?"FLASH_DISABLED":"FLASH",this._error({type:a.jPlayer.error[c],context:this.internal.flash.swf,message:a.jPlayer.errorMsg[c]+b.message,hint:a.jPlayer.errorHint[c]}),this.internal.flash.jq.css({width:"1px",height:"1px"})},_error:function(b){this._trigger(a.jPlayer.event.error,b),this.options.errorAlerts&&this._alert("Error!"+(b.message?"\n"+b.message:"")+(b.hint?"\n"+b.hint:"")+"\nContext: "+b.context)},_warning:function(c){this._trigger(a.jPlayer.event.warning,b,c),this.options.warningAlerts&&this._alert("Warning!"+(c.message?"\n"+c.message:"")+(c.hint?"\n"+c.hint:"")+"\nContext: "+c.context)},_alert:function(a){var b="jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a;this.options.consoleAlerts?window.console&&window.console.log&&window.console.log(b):alert(b)},_emulateHtmlBridge:function(){var b=this;a.each(a.jPlayer.emulateMethods.split(/\s+/g),function(a,c){b.internal.domNode[c]=function(a){b[c](a)}}),a.each(a.jPlayer.event,function(c,d){var e=!0;a.each(a.jPlayer.reservedEvent.split(/\s+/g),function(a,b){return b===c?(e=!1,!1):void 0}),e&&b.element.bind(d+".jPlayer.jPlayerHtml",function(){b._emulateHtmlUpdate();var a=document.createEvent("Event");a.initEvent(c,!1,!0),b.internal.domNode.dispatchEvent(a)})})},_emulateHtmlUpdate:function(){var b=this;a.each(a.jPlayer.emulateStatus.split(/\s+/g),function(a,c){b.internal.domNode[c]=b.status[c]}),a.each(a.jPlayer.emulateOptions.split(/\s+/g),function(a,c){b.internal.domNode[c]=b.options[c]})},_destroyHtmlBridge:function(){var b=this;this.element.unbind(".jPlayerHtml");var c=a.jPlayer.emulateMethods+" "+a.jPlayer.emulateStatus+" "+a.jPlayer.emulateOptions;a.each(c.split(/\s+/g),function(a,c){delete b.internal.domNode[c]})}},a.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"},a.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.",NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+a.jPlayer.prototype.version.script+" needs Jplayer.swf version "+a.jPlayer.prototype.version.needFlash+" but found "},a.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.",NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."},a.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"},a.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ",CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."},a.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}}); \ No newline at end of file diff --git a/js/jquery.jplayer.swf b/js/jquery.jplayer.swf new file mode 100644 index 0000000000000000000000000000000000000000..340f7f98d0d363bafa787e2bcc7422e15fb7f41c GIT binary patch literal 13714 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 Kh=yOW5&svT>H|gq literal 0 HcmV?d00001 From 763d9445b474c5eb141a7e74753d3683dc3a0300 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Fri, 6 Feb 2015 13:58:39 +0100 Subject: [PATCH 53/62] Add missing wp_reset_postdata --- functions/widgets/alx-posts.php | 1 + functions/widgets/alx-tabs.php | 2 ++ 2 files changed, 3 insertions(+) diff --git a/functions/widgets/alx-posts.php b/functions/widgets/alx-posts.php index 53cdd2b..03a3af1 100644 --- a/functions/widgets/alx-posts.php +++ b/functions/widgets/alx-posts.php @@ -75,6 +75,7 @@ public function widget($args, $instance) { + + @@ -159,6 +160,7 @@ public function widget($args, $instance) { + From 0fabaac43bdf452df6f7f6142b42dc83f2b41d4b Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Fri, 6 Feb 2015 15:01:40 +0100 Subject: [PATCH 54/62] optimized search result count, updated lang files --- inc/page-title.php | 10 +++++++-- languages/en_US.mo | Bin 410 -> 410 bytes languages/en_US.po | 50 ++++++++++++++++++++++++--------------------- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/inc/page-title.php b/inc/page-title.php index 83da99f..2f31d50 100644 --- a/inc/page-title.php +++ b/inc/page-title.php @@ -5,8 +5,14 @@

    - have_posts()) : while($search->have_posts()) : $search->the_post(); $search_count++; endwhile; endif; echo $search_count;?> - "" + found_posts; + if ($search_results==1) { + echo $search_results.' '.__('Result','anew'); + } else { + echo $search_results.' '.__('Results','anew'); + } + ?> + ""

    diff --git a/languages/en_US.mo b/languages/en_US.mo index 898d63e5333a088efdcc870e9b90d9932fe93994..a0dcd0b7f8d5f4be36b105d732761f5badbe8b24 100644 GIT binary patch delta 63 zcmbQmJd1fkmZ_<(fsw9(nS!CIm4Sh_fuVr`SAf56P-p^>hUxq_jIm9d$&fuVr`SAf56P- Date: Fri, 6 Feb 2015 15:05:50 +0100 Subject: [PATCH 55/62] iphone menu expand fix --- style.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/style.css b/style.css index aba1c08..3a8864e 100644 --- a/style.css +++ b/style.css @@ -556,6 +556,8 @@ transform: rotate(60deg) translate(-48px, -11px); } -o-transition: height 0.35s ease; transition: height 0.35s ease; } .expand .nav-wrap { height: auto; } + /* iphone fix */ + .safari .nav-wrap.transition { -webkit-transition: none; transition: none; } /* common */ .nav { float: left; width: 100%; } .nav li a { line-height: 20px; display: block; padding: 8px 20px; } From f3239ab75983726f5de346b29da89471ebf22844 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Fri, 6 Feb 2015 15:12:35 +0100 Subject: [PATCH 56/62] Mobile safari toggle sidebar fix, optimized css --- responsive.css | 38 +++----------------------------------- 1 file changed, 3 insertions(+), 35 deletions(-) diff --git a/responsive.css b/responsive.css index 6062011..73de082 100644 --- a/responsive.css +++ b/responsive.css @@ -36,49 +36,17 @@ .col-2cl.s1-expand .s1 { right: 0; -webkit-box-shadow: -3px 0 3px rgba(0,0,0,0.05); box-shadow: -3px 0 3px rgba(0,0,0,0.05); } .col-2cl.s1-expand .sidebar-toggle { float: right; } -} - - -/* ------------------------------------------------------------------------- * - * Tablet (Portrait) : 800px > 720px -/* ------------------------------------------------------------------------- */ -@media only screen and (min-width: 720px) and (max-width: 800px) { - - /* layout */ - .pad, - .pad.post-content, - .pad.format-container { padding: 30px 30px 20px; } - - .grid { margin-right: 2.9%; } - .one-half { width: 48.5%; } - .one-third { width: 31.4%; } - .two-third { width: 65.65%; } - .one-fourth { width: 22.8%; } - .three-fourth { width: 74.1%; } - .one-fifth { width: 17.6%; } - .two-fifth { width: 38.5%; } - .three-fifth { width: 59%; } - .four-fifth { width: 79.5%; } + /* ipad, iphone fix */ + .safari .s1 { min-width: 50px; max-width: 50px; width: auto; } + .safari.s1-expand .s1 { min-width: 340px; max-width: 340px; width: auto; } } - /* ------------------------------------------------------------------------- * * Mobile (Mid Res) : 719px > 0px (480px & 320px) /* ------------------------------------------------------------------------- */ @media only screen and (max-width: 719px) { - /* make collapsed sidebar 40px wide instead of 50px */ - .s1 { width: 40px; } - - /* 2 column, content right */ - .col-2cr .main { background-position: -10px 0!important; padding-left: 40px; } - .col-2cr .s1 { margin-left: -40px; } - - /* 2 column, content left */ - .col-2cl .main { background-image: url(img/sidebar/s-right-collapse-40.png); padding-right: 40px; } - .col-2cl .s1 { margin-right: -40px; } - /* layout */ .grid { width: 100%; margin: 0 0 10px; } From 24a9a72d67dbbd5cab43e11d351189e9653a7675 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Fri, 6 Feb 2015 15:13:01 +0100 Subject: [PATCH 57/62] remove unused image --- img/sidebar/s-right-collapse-40.png | Bin 71 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 img/sidebar/s-right-collapse-40.png diff --git a/img/sidebar/s-right-collapse-40.png b/img/sidebar/s-right-collapse-40.png deleted file mode 100644 index 7361caf34421ec5bb5e93ad3a03b11f6b10d794d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj%0VEjs7ae>Er1(5t978JNk}JGa6rvOv%Guo~ TPR!FP2dVIM^>bP0l+XkK%WMxd From b11a2f4d4248e9e4d3ddb28eff725f84e7bf302e Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Fri, 6 Feb 2015 15:25:24 +0100 Subject: [PATCH 58/62] 2.2.2 --- changelog.txt | 12 +++++++++++- style.css | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index e96786f..aa41b73 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,7 +1,17 @@ Theme : Anew -Version : 2.2.1 +Version : 2.2.2 Author : Alexander "Alx" Agnarson - http://alxmedia.se +February 6 2015 - 2.2.2 +=========================================================== +- Fixed dropdown menus for iPhone +- Fixed toggle sidebars for iPhone and iPad +- Fixed typos in functions.php - @jaylinski (via GitHub) +- Added missing wp_reset_postdata to tabs and posts widgets - @Marco Almeida +- Optimized search results - @Marco Almeida +- Updated language files +- Updated to jPlayer 2.9.2 + January 29 2015 - 2.2.1 =========================================================== - Fixed double title tags diff --git a/style.css b/style.css index 3a8864e..9316471 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ /* Theme Name: Anew Theme URI: http://alxmedia.se/themes/anew/ -Version: 2.2.1 +Version: 2.2.2 Description: Anew is a responsive 100% high resolution theme in classic tumblog style. Each post format is shown in a unique visual way and can be given any color you want. A toggle sidebar gives a great browsing and reading experience on both tablet and mobile. Features include: Unlimited topbar, header, footer and accent colors, unlimited widget areas, 0-1 sidebars to the left or right that can be uniquely specified for each page or post, 280px width sidebar, 0-4 footer widget columns, almost zero layout images, author bio and post nav, 10 post formats, good SEO, 3 flexible custom widgets, localisation support, social links, logo or header image upload and many more useful admin panel features. Author: Alexander Agnarson Author URI: http://alxmedia.se From 53023af3afc67cbe2ab58b526d4215e1911b7ff9 Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Sat, 7 Feb 2015 11:29:43 +0100 Subject: [PATCH 59/62] Responsive Lightbox --- functions.php | 3 +-- functions/plugins/light.zip | Bin 21971 -> 0 bytes 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 functions/plugins/light.zip diff --git a/functions.php b/functions.php index 64d5e0d..03324e2 100644 --- a/functions.php +++ b/functions.php @@ -653,8 +653,7 @@ function alx_plugins() { ), array( 'name' => 'Responsive Lightbox', - 'slug' => 'light', - 'source' => get_template_directory() . '/functions/plugins/light.zip', + 'slug' => 'responsive-lightbox', 'required' => false, 'force_activation' => false, 'force_deactivation'=> false, diff --git a/functions/plugins/light.zip b/functions/plugins/light.zip deleted file mode 100644 index 0613a736f8e039e773ca3a9cf3055a46ff55fd15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21971 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 From e3cccaa34704040902dfff05fd7070d62dc04f8b Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Sun, 8 Feb 2015 11:10:45 +0100 Subject: [PATCH 60/62] update docs --- functions/documentation/documentation.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/documentation/documentation.html b/functions/documentation/documentation.html index aa8eef6..9d02289 100644 --- a/functions/documentation/documentation.html +++ b/functions/documentation/documentation.html @@ -581,7 +581,7 @@

    Useful plugins

  • W3 Total Cache - Cache plugin to speed up your website
  • Easy Add Thumbnail - Auto-set featured images for old as well as new posts
  • Facebook Thumb Fixer - Make sure articles shared on Facebook and Google+ shows the right thumbnail images
  • -
  • Light - Responsive Lightbox - Easily add fancybox2 responsive lightboxes to your website and gallery images
  • +
  • Responsive Lightbox - Easily add responsive lightboxes to your website and gallery images
  • SyntaxHighlighter Evolved - Post code in your articles in a visually pleasing way
  • WooCommerce - Sell stuff
  • From 3c9c5c557c4d5102e37f652767ba379025ed133b Mon Sep 17 00:00:00 2001 From: Alexander Agnarson Date: Tue, 10 Feb 2015 08:05:39 +0100 Subject: [PATCH 61/62] OptionTree 2.5.0 --- option-tree/assets/css/ot-admin-rtl.css | 79 +- option-tree/assets/css/ot-admin.css | 228 +- option-tree/assets/js/ot-admin.js | 98 +- .../assets/theme-mode/demo-functions.php | 5 + .../assets/theme-mode/demo-theme-options.php | 162 +- option-tree/includes/ot-cleanup-api.php | 158 +- option-tree/includes/ot-functions-admin.php | 782 ++++- .../includes/ot-functions-docs-page.php | 35 +- .../includes/ot-functions-option-types.php | 1016 +++++- .../includes/ot-functions-settings-page.php | 2 +- option-tree/includes/ot-functions.php | 87 +- option-tree/includes/ot-settings-api.php | 20 +- option-tree/languages/option-tree-et.mo | Bin 0 -> 82450 bytes option-tree/languages/option-tree-et.po | 3017 +++++++++++++++++ option-tree/languages/option-tree.po | 2121 ++++++------ option-tree/ot-loader.php | 40 +- option-tree/readme.txt | 49 +- 17 files changed, 6580 insertions(+), 1319 deletions(-) create mode 100644 option-tree/languages/option-tree-et.mo create mode 100644 option-tree/languages/option-tree-et.po diff --git a/option-tree/assets/css/ot-admin-rtl.css b/option-tree/assets/css/ot-admin-rtl.css index 9ad013b..77d2e01 100644 --- a/option-tree/assets/css/ot-admin-rtl.css +++ b/option-tree/assets/css/ot-admin-rtl.css @@ -1,3 +1,14 @@ +/* -------------------------------------------------- + :: OptionTree Font + ---------------------------------------------------*/ +.ui-tabs li > a [class^="ot-icon-"], +.ui-tabs li > a [class*=" ot-icon-"] { + display: block; + height: 14px; + float: right; + padding: 2px 0px 0 9px; +} + /* -------------------------------------------------- :: Messages ---------------------------------------------------*/ @@ -275,6 +286,38 @@ div.option-tree-ui-media-wrap { margin: 0 10px 0 0 !important; } +/* -------------------------------------------------- + :: Option Group + ---------------------------------------------------*/ +.ot-option-group { + float: right; + padding-right: 0px; + padding-left: 5px; +} +.ot-option-group--is-last { + padding-left: 0; +} +.ot-option-group--icon { + border-left: 1px solid #ccc; + border-right: 0px; + left: auto; + right: 1px; +} +.ot-option-group--icon + input.option-tree-ui-input { + padding-left: 5px !important; + padding-right: 34px !important; + margin-left: 5px; + margin-right: 0px; +} +.ot-option-group--checkbox { + float: right; + padding-right: 0px; + padding-left: 10px; +} +#post-body .ot-option-group--checkbox p { + float: right; +} + /* -------------------------------------------------- :: Select ---------------------------------------------------*/ @@ -354,12 +397,6 @@ div.option-tree-ui-media-wrap { -moz-box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.05); box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.05); } -.ot-numeric-slider.ui-slider .ui-slider-handle { - background-image: -webkit-gradient(linear,rightt top,right bottom,from(#2a95c5),to(#21759b)); -} -.ot-numeric-slider.ui-slider .ui-slider-handle:hover { - background-image: -webkit-gradient(linear,right top,right bottom,from(#2e9fd2),to(#21759b)); -} /* -------------------------------------------------- :: Colorpicker @@ -367,6 +404,14 @@ div.option-tree-ui-media-wrap { .option-tree-ui-colorpicker-input-wrap { float: right; } +.option-tree-ui-colorpicker-input-wrap .option-tree-ui-colorpicker-label { + margin-left: 10px; + margin-right: 0px; +} +.type-link-color .option-tree-ui-colorpicker-input-wrap { + margin-left: 20px; + margin-right: 0px; +} .option-tree-ui-colorpicker-input-wrap .wp-color-result { margin: 0px 0px 5px 5px; } @@ -374,6 +419,15 @@ div.option-tree-ui-media-wrap { margin: 0px 0px 5px 5px; } +/* -------------------------------------------------- + :: Google Font + ---------------------------------------------------*/ +.js-remove-google-font.option-tree-ui-button.button { + margin-left: 5px; + margin-right: 0; + margin-top: 0; +} + /* -------------------------------------------------- :: OptionTree UI Buttons ---------------------------------------------------*/ @@ -440,6 +494,17 @@ ul.ot-gallery-list li { float: right; } +/* -------------------------------------------------- + :: Google Fonts + ---------------------------------------------------*/ +.option-tree-google-font-family, +.option-tree-google-font-variants, +.option-tree-google-font-subsets, +#option-tree-settings-api p.checkbox-wrap, +#post-body .ot-metabox-panels p.checkbox-wrap { + float: right; +} + /* -------------------------------------------------- :: On/Off Switch ---------------------------------------------------*/ @@ -458,7 +523,7 @@ ul.ot-gallery-list li { } .on-off-switch input:last-of-type:checked ~ .slide-button { left: auto; - right: 50px; + right: 50%; } } diff --git a/option-tree/assets/css/ot-admin.css b/option-tree/assets/css/ot-admin.css index f7aa5b8..76d7a0e 100644 --- a/option-tree/assets/css/ot-admin.css +++ b/option-tree/assets/css/ot-admin.css @@ -25,6 +25,13 @@ -moz-osx-font-smoothing: grayscale; } +.ui-tabs li > a [class^="ot-icon-"], +.ui-tabs li > a [class*=" ot-icon-"] { + padding-right: 5px; + line-height: 18px; + vertical-align: middle; +} + .ot-icon-option-tree:before { content: "\e785"; } @@ -2083,6 +2090,114 @@ li ul .format-setting-label { padding-left: 1px; } +/* -------------------------------------------------- + :: Option Group + ---------------------------------------------------*/ +.ot-option-group { + float: left; + padding-right: 5px; + position: relative; + width: 20%; + box-sizing: border-box; +} +.ot-option-group--three-fourths { + width: 75%; +} +.ot-option-group--two-thirds { + width: 66.6%; +} +.ot-option-group--one-half { + width: 50%; +} +.ot-option-group--one-third { + width: 33.3%; +} +.ot-option-group--one-fourth { + width: 25%; +} +.ot-option-group--one-fifth { + width: 20%; +} +.ot-option-group--one-sixth { + width: 16.6%; +} +.ot-option-group--one-eighth { + width: 12.5%; +} +.ot-option-group--is-last { + padding-right: 0; +} +.ot-option-group--icon { + background: #fafafa; + border-right: 1px solid #ccc; + display: inline-block; + font-size: 14px; + line-height: 14px; + padding: 6px 6px 7px; + position: absolute; + text-align: center; + top: 1px; + left: 1px; + width: 14px; + z-index: 10; +} +.ot-icon-circle.ot-option-group--icon:before { + left: 1px; + position: relative; + -webkit-filter: blur(1px); + -moz-filter: blur(1px); + -ms-filter: blur(1px); + -o-filter: blur(1px); + filter: blur(1px); +} +.ot-option-group--icon + input.option-tree-ui-input { + padding-left: 34px !important; + margin-right: 5px; +} +.ot-option-group--checkbox { + float: left; + padding-top: 2px; + padding-right: 10px; + width: auto; +} +#post-body .ot-option-group--checkbox p { + color: #a9a9a9; + float: left; + margin: 1px 0 0.3em 0 !important; +} +@media screen and ( min-width: 783px ) { + #post-body .ot-option-group--checkbox p input { + margin-top: 0px !important; + } +} +@media screen and ( max-width: 1020px ) { + .ot-option-group--one-fourth, + .ot-option-group--one-fifth, + .ot-option-group--one-sixth, + .ot-option-group--one-eighth { + width: 33.3%; + } + .ot-option-group--checkbox { + width: 100%; + } +} +@media screen and ( max-width: 782px ) { + .ot-option-group { + width: 50%; + } + .ot-option-group--three-fourths, + .ot-option-group--two-thirds, + .ot-option-group--one-half { + width: 100%; + } + .ot-option-group--checkbox { + padding-top: 0.3em; + } +} +.ot-option-group .select-wrapper { + width: 100%; +} + /* -------------------------------------------------- :: Select ---------------------------------------------------*/ @@ -2231,7 +2346,8 @@ select.option-tree-ui-select option { /* -------------------------------------------------- :: Numeric Slider ---------------------------------------------------*/ -.type-numeric-slider .format-setting-inner { +.type-numeric-slider .format-setting-inner, +.type-colorpicker-opacity .format-setting-inner { background: #fcfcfc; border: 1px solid #ccc; min-height: 41px; @@ -2253,6 +2369,12 @@ select.option-tree-ui-select option { top: 5px; width: 90px !important; } +.type-colorpicker-opacity .format-setting-inner { + padding-bottom: 0; +} +.type-colorpicker-opacity .wp-picker-container { + margin-top: 35px; +} .ot-numeric-slider.ui-slider { background: #fff; border: 1px solid #ccc; @@ -2375,10 +2497,20 @@ select.option-tree-ui-select option { .hide-color-picker { display: none; } +.option-tree-ui-colorpicker-input-wrap .option-tree-ui-colorpicker-label { + height: 30px; + line-height: 30px; + margin-right: 10px; + display: block; +} +.type-link-color .option-tree-ui-colorpicker-input-wrap { + margin-right: 20px; +} .option-tree-ui-colorpicker-input-wrap .wp-color-picker, .option-tree-ui-colorpicker-input-wrap .wp-picker-default, .option-tree-ui-colorpicker-input-wrap .wp-picker-clear { border-color: #ccc; + font-size: 12px !important; height: 29px !important; line-height: 27px !important; margin-top: 0px; @@ -2389,6 +2521,9 @@ select.option-tree-ui-select option { -moz-box-shadow: none; box-shadow: none; } +.option-tree-ui-colorpicker-input-wrap .wp-color-picker { + margin: 0 0 5px 0 !important; +} .option-tree-ui-colorpicker-input-wrap .wp-color-result { height: 27px; outline: 0; @@ -2408,6 +2543,44 @@ select.option-tree-ui-select option { -moz-border-radius: 2px; border-radius: 2px; } +@media screen and ( max-width: 782px ) { + .option-tree-ui-colorpicker-input-wrap .wp-color-picker { + padding: 3px 5px !important; + } + .option-tree-ui-colorpicker-input-wrap .wp-picker-clear, + .option-tree-ui-colorpicker-input-wrap .wp-picker-default { + margin-top: 4px; + padding: 0 8px 1px !important; + } + .type-colorpicker-opacity .wp-color-result, + .type-colorpicker-opacity .wp-picker-input-wrap input { + margin-top: 0px !important; + } + .type-colorpicker-opacity .wp-picker-open, + .type-colorpicker-opacity .wp-picker-input-wrap input[type="text"] { + position: relative; + top: -2px !important; + } +} + +/* -------------------------------------------------- + :: Google Font + ---------------------------------------------------*/ +.type-google-font { + +} +.type-google-font-group-clone { + display: none; +} +.type-google-font-group { + float: left; + margin-bottom: 20px; + width: 100%; +} +.js-remove-google-font.option-tree-ui-button.button { + margin-left: 0; + margin-top: 0; +} /* -------------------------------------------------- :: OptionTree UI Buttons @@ -2660,6 +2833,38 @@ ul.ot-gallery-list li img { margin-bottom: 0px; } +/* -------------------------------------------------- + :: Google Fonts + ---------------------------------------------------*/ +.option-tree-google-font-family, +.option-tree-google-font-variants, +.option-tree-google-font-subsets { + float: left; + width: 20%; +} +.option-tree-google-font-family { + width: 100%; +} +#option-tree-settings-api p.checkbox-wrap, +#post-body .ot-metabox-panels p.checkbox-wrap { + display: block; + float: left; + margin: 0.3em 0 !important; + width: 100%; +} +@media screen and ( max-width: 1020px ) { + .option-tree-google-font-variants, + .option-tree-google-font-subsets { + width: 33%; + } +} +@media screen and ( max-width: 782px ) { + .option-tree-google-font-variants, + .option-tree-google-font-subsets { + width: 50%; + } +} + /* -------------------------------------------------- :: On/Off Switch ---------------------------------------------------*/ @@ -2706,7 +2911,7 @@ ul.ot-gallery-list li img { position: relative; text-align: center; vertical-align: middle; - width: 50px; + width: 50%; z-index: 2; } .on-off-switch input:last-of-type + label { @@ -2731,7 +2936,7 @@ ul.ot-gallery-list li img { position: absolute; text-decoration: none; top: -1px; - width: 51px; + width: 51%; z-index: 1; -webkit-border-radius: 2px; -moz-border-radius: 2px; @@ -2747,7 +2952,7 @@ ul.ot-gallery-list li img { background: #b73b27; border-color: #7f291b; color: #fff; - left: 50px; + left: 50%; -webkit-box-shadow: inset 0 1px 0 rgba(229,134,119,0.6), 0 1px 0 rgba(0,0,0,.15); -moz-box-shadow: inset 0 1px 0 rgba(229,134,119,0.6), 0 1px 0 rgba(0,0,0,.15); box-shadow: inset 0 1px 0 rgba(229,134,119,0.6), 0 1px 0 rgba(0,0,0,.15); @@ -2852,7 +3057,9 @@ ul.ot-gallery-list li img { :: CSS Editor ---------------------------------------------------*/ #option-tree-settings-api pre.ot-css-editor, -#poststuff .type-css pre.ot-css-editor { +#poststuff .type-css pre.ot-css-editor, +#option-tree-settings-api pre.ot-javascript-editor, +#poststuff .type-javascript pre.ot-javascript-editor { bottom: 0; height: 280px; left: 0; @@ -2861,7 +3068,8 @@ ul.ot-gallery-list li img { top: 0; } #option-tree-settings-api pre.ace-chrome, -#poststuff .type-css pre.ace-chrome { +#poststuff .type-css pre.ace-chrome, +#poststuff .type-javascript pre.ace-chrome { background-color: #fff !important; border: 1px solid #ccc; -webkit-border-radius: 2px; @@ -2869,14 +3077,16 @@ ul.ot-gallery-list li img { border-radius: 2px; } #option-tree-settings-api pre.ace-chrome:hover, -#poststuff .type-css pre.ace-chrome:hover { +#poststuff .type-css pre.ace-chrome:hover, +#poststuff .type-javascript pre.ace-chrome:hover { border-color: #bbb !important; -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); } #option-tree-settings-api pre.ace-chrome.ace_focus, -#poststuff .type-css pre.ace-chrome.ace_focus { +#poststuff .type-css pre.ace-chrome.ace_focus, +#poststuff .type-javascript pre.ace-chrome.ace_focus { border-color: #999 !important; -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.0980392); @@ -3699,4 +3909,4 @@ a.ui-datepicker-next { .ot-metabox-tabs.ui-tabs .ot-metabox-panel { clear: both; } -} \ No newline at end of file +} diff --git a/option-tree/assets/js/ot-admin.js b/option-tree/assets/js/ot-admin.js index f0d82ca..dc619d0 100644 --- a/option-tree/assets/js/ot-admin.js +++ b/option-tree/assets/js/ot-admin.js @@ -25,11 +25,13 @@ this.init_radio_image_select(); this.init_select_wrapper(); this.bind_select_wrapper(); + this.init_google_fonts(); this.fix_upload_parent(); this.fix_textarea(); this.replicate_ajax(); this.reset_settings(); - this.css_editor_mode(); + this.css_editor_mode(); + this.javascript_editor_mode(); }, init_hide_body: function(elm,type) { var css = '.option-tree-setting-body'; @@ -533,7 +535,7 @@ step: hidden.data("step"), value: value, slide: function(event, ui) { - hidden.add(helper).val(ui.value); + hidden.add(helper).val(ui.value).trigger('change'); }, create: function() { hidden.val($(this).slider('value')); @@ -591,8 +593,78 @@ $(this).prev('span').replaceWith('' + $(this).find('option:selected').text() + ''); }); }, + init_google_fonts: function() { + var update_items = function(input, items, element) { + var itemsUI = input.closest('.type-google-font-group').find(element); + if ( itemsUI.length ) { + itemsUI.empty(); + itemsUI.append($.map(items, function(item) { + var input = document.createElement('input'), + label = document.createElement('label'); + input.type = 'checkbox'; + input.id = ( itemsUI.data('field-id-prefix') || '' ) + item; + input.name = ( itemsUI.data('field-name') || '' ) + '[]'; + input.value = item; + label.innerHTML = item; + $( label ).attr( 'for', input.id ); + return $( document.createElement('p') ).addClass('checkbox-wrap').append([input, label]); + })); + } + }; + $(document).on('change', '.option-tree-google-font-family select', function() { + var input = $(this); + $.ajax({ + url: option_tree.ajax, + type: 'POST', + dataType: 'json', + data: { + action: 'ot_google_font', + family: input.val(), + field_id: input.attr('id') + } + }).done(function(response) { + if ( response.hasOwnProperty('variants') ) { + update_items( input, response.variants, '.option-tree-google-font-variants' ); + } + if ( response.hasOwnProperty('subsets') ) { + update_items( input, response.subsets, '.option-tree-google-font-subsets' ); + } + }); + }); + $('.js-add-google-font').on('click', function (event) { + var $group = $(this).parent('.format-setting-inner').find('.type-google-font-group'), + $clone = $('.type-google-font-group-clone').clone(true), + $count = $group.length ? $group.length : 0; + $clone.attr('class', 'type-google-font-group'); + var replacer = function(index, elm) { + return elm.replace('%key%', $count); + } + $('select', $clone).each( function() { + $(this).attr('id', replacer ).attr('name', replacer ); + }); + $('.option-tree-google-font-variants', $clone).each( function() { + $(this).attr('data-field-id-prefix', replacer ).attr('data-field-name', replacer ); + }); + $('.option-tree-google-font-subsets', $clone).each( function() { + $(this).attr('data-field-id-prefix', replacer ).attr('data-field-name', replacer ); + }); + $('.type-google-font-group-clone').before($clone) + event.preventDefault() + }); + $('.js-remove-google-font').on('click', function (event) { + $(this).parents('.type-google-font-group').remove(); + event.preventDefault(); + }); + }, bind_colorpicker: function(field_id) { - $('#'+field_id).wpColorPicker(); + $('#'+field_id).wpColorPicker({ + change: function() { + OT_UI.parse_condition(); + }, + clear: function() { + OT_UI.parse_condition(); + } + }); }, bind_date_picker: function(field_id, date_format) { $('#'+field_id).datepicker({ @@ -666,6 +738,23 @@ }); }); }, + javascript_editor_mode: function() { + $('.ot-javascript-editor').each(function() { + var editor = ace.edit($(this).attr('id')); + var this_textarea = $('#textarea_' + $(this).attr('id')); + editor.setTheme("ace/theme/chrome"); + editor.getSession().setMode("ace/mode/javascript"); + editor.setShowPrintMargin( false ); + + editor.getSession().setValue(this_textarea.val()); + editor.getSession().on('change', function(){ + this_textarea.val(editor.getSession().getValue()); + }); + this_textarea.on('change', function(){ + editor.getSession().setValue(this_textarea.val()); + }); + }); + }, url_exists: function(url) { var link = document.createElement('a') link.href = url @@ -879,6 +968,7 @@ $(this).find('.ot-metabox-panels').css({ minHeight: minHeight }) } OT_UI.css_editor_mode(); + OT_UI.javascript_editor_mode(); } }) @@ -1132,4 +1222,4 @@ }) }) -}(window.jQuery); \ No newline at end of file +}(window.jQuery); diff --git a/option-tree/assets/theme-mode/demo-functions.php b/option-tree/assets/theme-mode/demo-functions.php index c29a9e1..2afaf69 100644 --- a/option-tree/assets/theme-mode/demo-functions.php +++ b/option-tree/assets/theme-mode/demo-functions.php @@ -54,6 +54,11 @@ */ # add_filter( 'ot_allow_unfiltered_html', '__return_false' ); +/** + * Loads the meta boxes for post formats + */ +# add_filter( 'ot_post_formats', '__return_true' ); + /** * OptionTree in Theme Mode */ diff --git a/option-tree/assets/theme-mode/demo-theme-options.php b/option-tree/assets/theme-mode/demo-theme-options.php index 311ef1b..1421966 100644 --- a/option-tree/assets/theme-mode/demo-theme-options.php +++ b/option-tree/assets/theme-mode/demo-theme-options.php @@ -2,7 +2,7 @@ /** * Initialize the custom Theme Options. */ -add_action( 'admin_init', 'custom_theme_options' ); +add_action( 'init', 'custom_theme_options' ); /** * Build the custom settings & update OptionTree. @@ -11,7 +11,11 @@ * @since 2.0 */ function custom_theme_options() { - + + /* OptionTree is not loaded yet, or this is not an admin request */ + if ( ! function_exists( 'ot_settings_id' ) || ! is_admin() ) + return false; + /** * Get a copy of the saved settings array. */ @@ -54,6 +58,36 @@ function custom_theme_options() { 'condition' => '', 'operator' => 'and' ), + array( + 'id' => 'demo_border', + 'label' => __( 'Border', 'theme-text-domain' ), + 'desc' => __( 'The Border option type is used to set width, unit, style, and color values.', 'theme-text-domain' ), + 'std' => '', + 'type' => 'border', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), + array( + 'id' => 'demo_box_shadow', + 'label' => __( 'Box Shadow', 'theme-text-domain' ), + 'desc' => sprintf( __( 'The Box Shadow option type is used to set %s, %s, %s, %s, %s, and %s values.', 'theme-text-domain' ), 'inset', 'offset-x', 'offset-y', 'blur-radius', 'spread-radius', 'color' ), + 'std' => '', + 'type' => 'box-shadow', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), array( 'id' => 'demo_category_checkbox', 'label' => __( 'Category Checkbox', 'theme-text-domain' ), @@ -126,6 +160,21 @@ function custom_theme_options() { 'condition' => '', 'operator' => 'and' ), + array( + 'id' => 'demo_colorpicker_opacity', + 'label' => __( 'Colorpicker Opacity', 'theme-text-domain' ), + 'desc' => sprintf( __( 'The Colorpicker Opacity option type saves a hexadecimal color code with an opacity value from %s to %s in increments of %s. Though the value is saved as hexadecimal, if used within the CSS option type the color and opacity values will be converted into a valid RGBA CSS value.', 'theme-text-domain' ), '0', '1', '0.01' ), + 'std' => '', + 'type' => 'colorpicker-opacity', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), array( 'id' => 'demo_css', 'label' => __( 'CSS', 'theme-text-domain' ), @@ -203,6 +252,21 @@ function custom_theme_options() { 'condition' => '', 'operator' => 'and' ), + array( + 'id' => 'demo_dimension', + 'label' => __( 'Dimension', 'theme-text-domain' ), + 'desc' => __( 'The Dimension option type is used to set width and height values.', 'theme-text-domain' ), + 'std' => '', + 'type' => 'dimension', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), array( 'id' => 'demo_gallery', 'label' => __( 'Gallery', 'theme-text-domain' ), @@ -233,6 +297,57 @@ function custom_theme_options() { 'condition' => '', 'operator' => 'and' ), + array( + 'id' => 'demo_google_fonts', + 'label' => __( 'Google Fonts', 'theme-text-domain' ), + 'desc' => sprintf( __( 'The Google Fonts option type will dynamically enqueue any number of Google Web Fonts into the document %1$s. As well, once the option has been saved each font family will automatically be inserted into the %2$s array for the Typography option type. You can further modify the font stack by using the %3$s filter, which is passed the %4$s, %5$s, and %6$s parameters. The %6$s parameter is being passed from %7$s, so it will be the ID of a Typography option type. This will allow you to add additional web safe fonts to individual font families on an as-need basis.', 'theme-text-domain' ), 'HEAD', 'font-family', 'ot_google_font_stack', '$font_stack', '$family', '$field_id', 'ot_recognized_font_families' ), + 'std' => array( + array( + 'family' => 'opensans', + 'variants' => array( '300', '300italic', 'regular', 'italic', '600', '600italic' ), + 'subsets' => array( 'latin' ) + ) + ), + 'type' => 'google-fonts', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), + array( + 'id' => 'demo_javascript', + 'label' => __( 'JavaScript', 'theme-text-domain' ), + 'desc' => '

    ' . sprintf( __( 'The JavaScript option type is a textarea that uses the %s code editor to highlight your JavaScript and display errors as you type.', 'theme-text-domain' ), 'ace.js' ) . '

    ', + 'std' => '', + 'type' => 'javascript', + 'section' => 'option_types', + 'rows' => '20', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), + array( + 'id' => 'demo_link_color', + 'label' => __( 'Link Color', 'theme-text-domain' ), + 'desc' => __( 'The Link Color option type is used to set all link color states.', 'theme-text-domain' ), + 'std' => '', + 'type' => 'link-color', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), array( 'id' => 'demo_list_item', 'label' => __( 'List Item', 'theme-text-domain' ), @@ -469,11 +584,11 @@ function custom_theme_options() { 'operator' => 'and' ), array( - 'id' => 'demo_tag_checkbox', - 'label' => __( 'Tag Checkbox', 'theme-text-domain' ), - 'desc' => __( 'The Tag Checkbox option type displays a list of tag IDs. It allows the user to check multiple tag IDs and will return that value as an array for use in a custom function or loop.', 'theme-text-domain' ), + 'id' => 'demo_social_links', + 'label' => __( 'Social Links', 'theme-text-domain' ), + 'desc' => '

    ' . sprintf( __( 'The Social Links option type utilizes a drag & drop interface to create a list of social links. There are a few filters that make extending this option type easy. You can set the %s filter to %s and turn off loading default values. Use the %s filter to change the default values that are loaded. To filter the settings array use the %s filter.', 'theme-text-domain' ), 'ot_type_social_links_load_defaults', 'false', 'ot_type_social_links_defaults', 'ot_social_links_settings' ) . '

    ', 'std' => '', - 'type' => 'tag-checkbox', + 'type' => 'social-links', 'section' => 'option_types', 'rows' => '', 'post_type' => '', @@ -484,11 +599,11 @@ function custom_theme_options() { 'operator' => 'and' ), array( - 'id' => 'demo_tag_select', - 'label' => __( 'Tag Select', 'theme-text-domain' ), - 'desc' => __( 'The Tag Select option type displays a list of tag IDs. It allows the user to select only one tag ID and will return that value for use in a custom function or loop.', 'theme-text-domain' ), + 'id' => 'demo_spacing', + 'label' => __( 'Spacing', 'theme-text-domain' ), + 'desc' => __( 'The Spacing option type is used to set spacing values such as padding or margin in the form of top, right, bottom, and left.', 'theme-text-domain' ), 'std' => '', - 'type' => 'tag-select', + 'type' => 'spacing', 'section' => 'option_types', 'rows' => '', 'post_type' => '', @@ -499,11 +614,26 @@ function custom_theme_options() { 'operator' => 'and' ), array( - 'id' => 'demo_social_links', - 'label' => __( 'Social Links', 'theme-text-domain' ), - 'desc' => '

    ' . sprintf( __( 'The Social Links option type utilizes a drag & drop interface to create a list of social links. There are a few filters that make extending this option type easy. You can set the %s filter to %s and turn off loading default values. Use the %s filter to change the default values that are loaded. To filter the settings array use the %s filter.', 'theme-text-domain' ), 'ot_type_social_links_load_defaults', 'false', 'ot_type_social_links_defaults', 'ot_social_links_settings' ) . '

    ', + 'id' => 'demo_tag_checkbox', + 'label' => __( 'Tag Checkbox', 'theme-text-domain' ), + 'desc' => __( 'The Tag Checkbox option type displays a list of tag IDs. It allows the user to check multiple tag IDs and will return that value as an array for use in a custom function or loop.', 'theme-text-domain' ), 'std' => '', - 'type' => 'social-links', + 'type' => 'tag-checkbox', + 'section' => 'option_types', + 'rows' => '', + 'post_type' => '', + 'taxonomy' => '', + 'min_max_step'=> '', + 'class' => '', + 'condition' => '', + 'operator' => 'and' + ), + array( + 'id' => 'demo_tag_select', + 'label' => __( 'Tag Select', 'theme-text-domain' ), + 'desc' => __( 'The Tag Select option type displays a list of tag IDs. It allows the user to select only one tag ID and will return that value for use in a custom function or loop.', 'theme-text-domain' ), + 'std' => '', + 'type' => 'tag-select', 'section' => 'option_types', 'rows' => '', 'post_type' => '', @@ -674,4 +804,8 @@ function custom_theme_options() { update_option( ot_settings_id(), $custom_settings ); } + /* Lets OptionTree know the UI Builder is being overridden */ + global $ot_has_custom_theme_options; + $ot_has_custom_theme_options = true; + } \ No newline at end of file diff --git a/option-tree/includes/ot-cleanup-api.php b/option-tree/includes/ot-cleanup-api.php index a7e8140..9c4cc15 100644 --- a/option-tree/includes/ot-cleanup-api.php +++ b/option-tree/includes/ot-cleanup-api.php @@ -27,6 +27,9 @@ class OT_Cleanup { function __construct() { if ( ! is_admin() ) return; + + // Load styles + add_action( 'admin_head', array( $this, 'styles' ), 1 ); // Maybe Clean up OptionTree add_action( 'admin_menu', array( $this, 'maybe_cleanup' ), 100 ); @@ -36,6 +39,20 @@ function __construct() { } + /** + * Adds the cleanup styles to the admin head + * + * @return string + * + * @access public + * @since 2.5.0 + */ + function styles() { + + echo ''; + + } + /** * Check if OptionTree needs to be cleaned up from a previous install. * @@ -52,22 +69,22 @@ public function maybe_cleanup() { $ot_maybe_cleanup_posts = count( $posts ) > 1; $ot_maybe_cleanup_table = count( $table ) == 1; + $page = isset( $_GET['page'] ) ? $_GET['page'] : ''; + + if ( ! $ot_maybe_cleanup_posts && ! $ot_maybe_cleanup_table && $page == 'ot-cleanup' ) { + wp_redirect( apply_filters( 'ot_theme_options_parent_slug', 'themes.php' ) . '?page=' . apply_filters( 'ot_theme_options_menu_slug', 'ot-theme-options' ) ); + exit; + } if ( $ot_maybe_cleanup_posts || $ot_maybe_cleanup_table ) { - add_action( 'admin_notices', array( $this, 'cleanup_notice' ) ); + if ( $page != 'ot-cleanup' ) + add_action( 'admin_notices', array( $this, 'cleanup_notice' ) ); + + add_menu_page( apply_filters( 'ot_cleanup_page_title', __( 'OptionTree Cleanup', 'option-tree' ) ), apply_filters( 'ot_cleanup_menu_title', __( 'OptionTree Cleanup', 'option-tree' ) ), 'edit_theme_options', 'ot-cleanup', array( $this, 'options_page' ) ); } - if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'hide-page' ) ) { - update_option( 'ot_hide_cleanup', true ); - wp_redirect( 'themes.php?page=' . apply_filters( 'ot_theme_options_menu_slug', 'ot-theme-options' ) ); - exit; - } - - if ( $ot_maybe_cleanup_posts || $ot_maybe_cleanup_table || get_option( 'ot_hide_cleanup', false ) == false ) - add_theme_page( apply_filters( 'ot_cleanup_page_title', __( 'OptionTree Cleanup', 'option-tree' ) ), apply_filters( 'ot_cleanup_menu_title', __( 'OptionTree Cleanup', 'option-tree' ) ), 'edit_theme_options', 'ot-cleanup', array( $this, 'options_page' ) ); - } /** @@ -84,7 +101,7 @@ public function cleanup_notice() { echo '
    ' . sprintf( __( 'OptionTree has outdated data that should be removed. Please go to %s for more information.', 'option-tree' ), sprintf( '%s', admin_url( 'themes.php?page=ot-cleanup' ), apply_filters( 'ot_cleanup_menu_title', __( 'OptionTree Cleanup', 'option-tree' ) ) ) ) . '
    '; } - + /** * Adds a Tools sub page to clean up the database with. * @@ -95,68 +112,63 @@ public function cleanup_notice() { */ public function options_page() { global $wpdb, $table_prefix, $ot_maybe_cleanup_posts, $ot_maybe_cleanup_table; - - // If we are here this option should not be true. - update_option( 'ot_hide_cleanup', false ); - + // Option ID $option_id = 'ot_media_post_ID'; - + // Get the media post ID $post_ID = get_option( $option_id, false ); - + // Zero loop count $count = 0; - + // Check for safe mode $safe_mode = ini_get( 'safe_mode' ); - + echo '
    '; - + echo '

    ' . apply_filters( 'ot_cleanup_page_title', __( 'OptionTree Cleanup', 'option-tree' ) ) . '

    '; - - if ( $ot_maybe_cleanup_posts || $ot_maybe_cleanup_table ) { - + if ( $ot_maybe_cleanup_posts ) { - + $posts = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_type = 'option-tree'" ); - + echo '

    ' . __( 'Multiple Media Posts', 'option-tree' ) . '

    '; - + echo '

    ' . sprintf( __( 'There are currently %s OptionTree media posts in your database. At some point in the past, a version of OptionTree added multiple %s media post objects cluttering up your %s table. There is no associated risk or harm that these posts have caused other than to add size to your overall database. Thankfully, there is a way to remove all these orphaned media posts and get your database cleaned up.', 'option-tree' ), '' . number_format( count( $posts ) ) . '', 'option-tree', '' . $wpdb->posts . '' ) . '

    '; - + echo '

    ' . sprintf( __( 'By clicking the button below, OptionTree will delete %s records and consolidate them into one single OptionTree media post for uploading attachments to. Additionally, the attachments will have their parent ID updated to the correct media post.', 'option-tree' ), '' . number_format( count( $posts ) - 1 ) . '' ) . '

    '; - + echo '

    ' . __( 'This could take a while to fully process depending on how many records you have in your database, so please be patient and wait for the script to finish.', 'option-tree' ) . '

    '; - + echo $safe_mode ? '

    ' . sprintf( __( '%s Your server is running in safe mode. Which means this page will automatically reload after deleting %s posts, you can filter this number using %s if your server is having trouble processing that many at one time.', 'option-tree' ), 'Note:', apply_filters( 'ot_consolidate_posts_reload', 500 ), 'ot_consolidate_posts_reload' ) . '

    ' : ''; - + echo '

    ' . __( 'Consolidate Posts', 'option-tree' ) . '

    '; - + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'consolidate-posts' ) ) { - + if ( $post_ID === false || empty( $post_ID ) ) { $post_ID = isset( $posts[0]->ID ) ? $posts[0]->ID : null; - + // Add to the DB if ( $post_ID !== null ) update_option( $option_id, $post_ID ); - + } - + // Do pre consolidation action to increase timeout. do_action( 'ot_pre_consolidate_posts' ); // Loop over posts foreach( $posts as $post ) { - + // Don't destroy the correct post. if ( $post_ID == $post->ID ) continue; - + // Update count $count++; - + // Reload script in safe mode if ( $safe_mode && $count > apply_filters( 'ot_consolidate_posts_reload', 500 ) ) { echo '
    ' . __( 'Reloading...', 'option-tree' ); @@ -169,15 +181,15 @@ function ot_script_reload() { '; break; } - + // Get the attachements $attachments = get_children( 'post_type=attachment&post_parent=' . $post->ID ); - + // Update the attachments parent ID if ( ! empty( $attachments ) ) { - + echo 'Updating Attachments parent ID for option-tree post #' . $post->ID . '.
    '; - + foreach( $attachments as $attachment_id => $attachment ) { wp_update_post( array( @@ -186,17 +198,17 @@ function ot_script_reload() { ) ); } - + } - + // Delete post echo 'Deleting option-tree post #' . $post->ID . '
    '; wp_delete_post( $post->ID, true ); - + } - + echo '
    ' . __( 'Clean up script has completed, the page will now reload...', 'option-tree' ); - + echo ' '; - + } - + } - + if ( $ot_maybe_cleanup_table ) { - + $table_name = $table_prefix . 'option_tree'; - + echo $ot_maybe_cleanup_posts ? '
    ' : ''; - + echo '

    ' . __( 'Outdated Table', 'option-tree' ) . '

    '; - + echo '

    ' . sprintf( __( 'If you have upgraded from an old 1.x version of OptionTree at some point, you have an extra %s table in your database that can be removed. It\'s not hurting anything, but does not need to be there. If you want to remove it. Click the button below.', 'option-tree' ), '' . $table_name . '' ) . '

    '; - + echo '

    ' . __( 'Drop Table', 'option-tree' ) . '

    '; - + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'drop-table' ) ) { echo '

    ' . sprintf( __( 'Deleting the outdated and unused %s table...', 'option-tree' ), '' . $table_name . '' ) . '

    '; - + $wpdb->query( "DROP TABLE IF EXISTS $table_name" ); - + if ( count( $wpdb->get_results( "SHOW TABLES LIKE '{$table_prefix}option_tree'" ) ) == 0 ) { - + echo '

    ' . sprintf( __( 'The %s table has been successfully deleted. The page will now reload...', 'option-tree' ), '' . $table_name . '' ) . '

    '; - + echo ' '; - + } else { - + echo '

    ' . sprintf( __( 'Something went wrong. The %s table was not deleted.', 'option-tree' ), '' . $table_name . '' ) . '

    '; - + } - + } - + } - - } else { - - echo '

    ' . __( 'Congratulations! You have a clean install.', 'option-tree' ) . '

    '; - - echo '

    ' . __( 'Your version of OptionTree does not have any outdated data. If there was outdated data, you would be presented with options to clean it up.', 'option-tree' ) . '

    '; - - echo '

    ' . __( 'Hide This Page', 'option-tree' ) . '

    '; - - } - + echo '
    '; - + } - + /** * Increase PHP timeout. * diff --git a/option-tree/includes/ot-functions-admin.php b/option-tree/includes/ot-functions-admin.php index 887e58a..3905c7f 100644 --- a/option-tree/includes/ot-functions-admin.php +++ b/option-tree/includes/ot-functions-admin.php @@ -90,7 +90,7 @@ function ot_register_settings_page() { global $ot_has_custom_theme_options; // Display UI Builder admin notice - if ( OT_SHOW_OPTIONS_UI == true && isset( $_REQUEST['page'] ) && $_REQUEST['page'] == 'ot-settings' && ( $ot_has_custom_theme_options == true || has_action( 'admin_init', 'custom_theme_options' ) ) ) { + if ( OT_SHOW_OPTIONS_UI == true && isset( $_REQUEST['page'] ) && $_REQUEST['page'] == 'ot-settings' && ( $ot_has_custom_theme_options == true || has_action( 'admin_init', 'custom_theme_options' ) || has_action( 'init', 'custom_theme_options' ) ) ) { function ot_has_custom_theme_options() { @@ -488,6 +488,73 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { if ( ! isset( $has_value ) ) { $input = ''; } + + } else if ( 'border' == $type ) { + + // Loop over array and set errors or unset key from array. + foreach( $input as $key => $value ) { + + // Validate width + if ( $key == 'width' && ! empty( $value ) && ! is_numeric( $value ) ) { + + $input[$key] = '0'; + + add_settings_error( 'option-tree', 'invalid_border_width', sprintf( __( 'The %s input field for %s only allows numeric values.', 'option-tree' ), 'width', '' . $field_id . '' ), 'error' ); + + } + + // Validate color + if ( $key == 'color' && ! empty( $value ) && 0 === preg_match( '/^#([a-f0-9]{6}|[a-f0-9]{3})$/i', $value ) ) { + + $input[$key] = ''; + $value = ''; + + add_settings_error( 'option-tree', 'invalid_hex', __( 'The Colorpicker only allows valid hexadecimal values.', 'option-tree' ), 'error' ); + + } + + // Unset keys with empty values. + if ( empty( $value ) ) { + unset( $input[$key] ); + } + + } + + if ( empty( $input ) ) { + $input = ''; + } + + } else if ( 'box-shadow' == $type ) { + + // Validate inset + $input['inset'] = isset( $input['inset'] ) ? 'inset' : ''; + + // Validate offset-x + $input['offset-x'] = ot_validate_setting( $input['offset-x'], 'text', $field_id ); + + // Validate offset-y + $input['offset-y'] = ot_validate_setting( $input['offset-y'], 'text', $field_id ); + + // Validate blur-radius + $input['blur-radius'] = ot_validate_setting( $input['blur-radius'], 'text', $field_id ); + + // Validate spread-radius + $input['spread-radius'] = ot_validate_setting( $input['spread-radius'], 'text', $field_id ); + + // Validate color + $input['color'] = ot_validate_setting( $input['color'], 'colorpicker', $field_id ); + + // Unset keys with empty values. + foreach( $input as $key => $value ) { + if ( empty( $value ) ) { + unset( $input[$key] ); + } + } + + // Set empty array to empty string. + if ( empty( $input ) ) { + $input = ''; + } } else if ( 'colorpicker' == $type ) { @@ -496,18 +563,95 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { $input = ''; - add_settings_error( 'option-tree', 'invalid_hex', __( 'The Colorpicker only allows valid hexadecimal values.', 'option-tree' ), 'error' ); + add_settings_error( 'option-tree', 'invalid_hex', sprintf( __( 'The %s Colorpicker only allows valid hexadecimal values.', 'option-tree' ), '' . $field_id . '' ), 'error' ); + + } + + } else if ( 'colorpicker-opacity' == $type ) { + + // Validate color + $input['color'] = ot_validate_setting( $input['color'], 'colorpicker', $field_id ); + + // Unset keys with empty values. + foreach( $input as $key => $value ) { + if ( empty( $value ) ) { + unset( $input[$key] ); + } + } + // Set empty array to empty string. + if ( empty( $input ) ) { + $input = ''; } - } else if ( in_array( $type, array( 'css', 'text', 'textarea', 'textarea-simple' ) ) ) { + } else if ( in_array( $type, array( 'css', 'javascript', 'text', 'textarea', 'textarea-simple' ) ) ) { if ( ! current_user_can( 'unfiltered_html' ) && OT_ALLOW_UNFILTERED_HTML == false ) { $input = wp_kses_post( $input ); } - + + } else if ( 'dimension' == $type ) { + + // Loop over array and set error keys or unset key from array. + foreach( $input as $key => $value ) { + if ( ! empty( $value ) && ! is_numeric( $value ) && $key !== 'unit' ) { + $errors[] = $key; + } + if ( empty( $value ) ) { + unset( $input[$key] ); + } + } + + /* return 0 & set error */ + if ( isset( $errors ) ) { + + foreach( $errors as $error ) { + + $input[$error] = '0'; + + add_settings_error( 'option-tree', 'invalid_dimension_' . $error, sprintf( __( 'The %s input field for %s only allows numeric values.', 'option-tree' ), '' . $error . '', '' . $field_id . '' ), 'error' ); + + } + + } + + if ( empty( $input ) ) { + $input = ''; + } + + } else if ( 'google-fonts' == $type ) { + + unset($input['%key%']); + + // Loop over array and check for values + if ( is_array( $input ) && ! empty( $input ) ) { + $input = array_values( $input ); + } + + // No value; set to empty + if ( empty( $input ) ) { + $input = ''; + } + + } else if ( 'link-color' == $type ) { + + // Loop over array and check for values + if ( is_array( $input ) && ! empty( $input ) ) { + foreach( $input as $key => $value ) { + if ( ! empty( $value ) ) { + $input[$key] = ot_validate_setting( $input[$key], 'colorpicker', $field_id . '-' . $key ); + $has_value = true; + } + } + } + + // No value; set to empty + if ( ! isset( $has_value ) ) { + $input = ''; + } + } else if ( 'measurement' == $type ) { $input[0] = sanitize_text_field( $input[0] ); @@ -517,6 +661,35 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { $input = ''; } + } else if ( 'spacing' == $type ) { + + // Loop over array and set error keys or unset key from array. + foreach( $input as $key => $value ) { + if ( ! empty( $value ) && ! is_numeric( $value ) && $key !== 'unit' ) { + $errors[] = $key; + } + if ( empty( $value ) ) { + unset( $input[$key] ); + } + } + + /* return 0 & set error */ + if ( isset( $errors ) ) { + + foreach( $errors as $error ) { + + $input[$error] = '0'; + + add_settings_error( 'option-tree', 'invalid_spacing_' . $error, sprintf( __( 'The %s input field for %s only allows numeric values.', 'option-tree' ), '' . $error . '', '' . $field_id . '' ), 'error' ); + + } + + } + + if ( empty( $input ) ) { + $input = ''; + } + } else if ( 'typography' == $type && isset( $input['font-color'] ) ) { $input['font-color'] = ot_validate_setting( $input['font-color'], 'colorpicker', $field_id ); @@ -535,7 +708,7 @@ function ot_validate_setting( $input, $type, $field_id, $wmpl_id = '' ) { } else if ( 'upload' == $type ) { - $input = sanitize_text_field( $input ); + $input = esc_url_raw( $input ); } else if ( 'gallery' == $type ) { @@ -598,6 +771,25 @@ function ot_admin_styles() { /* Remove styles added by the Easy Digital Downloads plugin */ if ( isset( $post->post_type ) && $post->post_type == 'post' ) wp_dequeue_style( 'jquery-ui-css' ); + + /** + * Filter the screen IDs used to dequeue `jquery-ui-css`. + * + * @since 2.5.0 + * + * @param array $screen_ids An array of screen IDs. + */ + $screen_ids = apply_filters( 'ot_dequeue_jquery_ui_css_screen_ids', array( + 'toplevel_page_ot-settings', + 'optiontree_page_ot-documentation', + 'appearance_page_ot-theme-options' + ) ); + + /* Remove styles added by the WP Review plugin and any custom pages added through filtering */ + if ( in_array( get_current_screen()->id, $screen_ids ) ) { + wp_dequeue_style( 'plugin_name-admin-ui-css' ); + wp_dequeue_style( 'jquery-ui-css' ); + } /* execute styles after actions */ do_action( 'ot_admin_styles_after' ); @@ -643,14 +835,14 @@ function ot_admin_scripts() { wp_enqueue_script( 'wp-color-picker' ); /* Load Ace Editor for CSS Editing */ - wp_enqueue_script( 'ace-editor', OT_URL . 'assets/js/vendor/ace/ace.js', null, OT_VERSION ); + wp_enqueue_script( 'ace-editor', 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js', null, '1.1.3' ); /* load jQuery UI timepicker addon */ wp_enqueue_script( 'jquery-ui-timepicker', OT_URL . 'assets/js/vendor/jquery/jquery-ui-timepicker.js', array( 'jquery', 'jquery-ui-slider', 'jquery-ui-datepicker' ), '1.4.3' ); /* load all the required scripts */ wp_enqueue_script( 'ot-admin-js', OT_URL . 'assets/js/ot-admin.js', array( 'jquery', 'jquery-ui-tabs', 'jquery-ui-sortable', 'jquery-ui-slider', 'wp-color-picker', 'ace-editor', 'jquery-ui-datepicker', 'jquery-ui-timepicker' ), OT_VERSION ); - + /* create localized JS array */ $localized_array = array( 'ajax' => admin_url( 'admin-ajax.php' ), @@ -735,7 +927,8 @@ function ot_get_media_post_ID() { function ot_create_media_post() { - register_post_type( 'option-tree', array( + $regsiter_post_type = 'register_' . 'post_type'; + $regsiter_post_type( 'option-tree', array( 'labels' => array( 'name' => __( 'Option Tree', 'option-tree' ) ), 'public' => false, 'show_ui' => false, @@ -821,7 +1014,7 @@ function ot_default_settings() { /* textarea rows */ $rows = ''; - if ( in_array( $settings['settings'][$settings_count]['type'], array( 'css', 'textarea' ) ) ) { + if ( in_array( $settings['settings'][$settings_count]['type'], array( 'css', 'javascript', 'textarea' ) ) ) { if ( (int) $setting->item_options > 0 ) { $rows = (int) $setting->item_options; } else { @@ -1314,7 +1507,7 @@ function ot_import_xml( $file ) { /* textarea rows */ $rows = ''; - if ( in_array( $settings['settings'][$settings_count]['type'], array( 'css', 'textarea' ) ) ) { + if ( in_array( $settings['settings'][$settings_count]['type'], array( 'css', 'javascript', 'textarea' ) ) ) { if ( (int) $value->item_options > 0 ) { $rows = (int) $value->item_options; } else { @@ -1601,15 +1794,15 @@ function ot_I18n_string( $string ) { /** * Initialize the custom theme options. */ -add_action( 'admin_init', 'custom_theme_options' ); +add_action( 'init', 'custom_theme_options' ); /** * Build the custom settings & update OptionTree. */ function custom_theme_options() { - /* OptionTree is not loaded yet */ - if ( ! function_exists( 'ot_settings_id' ) ) + /* OptionTree is not loaded yet, or this is not an admin request */ + if ( ! function_exists( 'ot_settings_id' ) || ! is_admin() ) return false; /** @@ -2223,16 +2416,23 @@ function ot_option_types_array() { return apply_filters( 'ot_option_types_array', array( 'background' => __('Background', 'option-tree'), + 'border' => __('Border', 'option-tree'), + 'box-shadow' => __('Box Shadow', 'option-tree'), 'category-checkbox' => __('Category Checkbox', 'option-tree'), 'category-select' => __('Category Select', 'option-tree'), 'checkbox' => __('Checkbox', 'option-tree'), - 'colorpicker' => __('Color Picker', 'option-tree'), + 'colorpicker' => __('Colorpicker', 'option-tree'), + 'colorpicker-opacity' => __('Colorpicker Opacity', 'option-tree'), 'css' => __('CSS', 'option-tree'), 'custom-post-type-checkbox' => __('Custom Post Type Checkbox', 'option-tree'), 'custom-post-type-select' => __('Custom Post Type Select', 'option-tree'), 'date-picker' => __('Date Picker', 'option-tree'), 'date-time-picker' => __('Date Time Picker', 'option-tree'), + 'dimension' => __('Dimension', 'option-tree'), 'gallery' => __('Gallery', 'option-tree'), + 'google-fonts' => __('Google Fonts', 'option-tree'), + 'javascript' => __('JavaScript', 'option-tree'), + 'link-color' => __('Link Color', 'option-tree'), 'list-item' => __('List Item', 'option-tree'), 'measurement' => __('Measurement', 'option-tree'), 'numeric-slider' => __('Numeric Slider', 'option-tree'), @@ -2247,6 +2447,7 @@ function ot_option_types_array() { 'sidebar-select' => __('Sidebar Select', 'option-tree'), 'slider' => __('Slider', 'option-tree'), 'social-links' => __('Social Links', 'option-tree'), + 'spacing' => __('Spacing', 'option-tree'), 'tab' => __('Tab', 'option-tree'), 'tag-checkbox' => __('Tag Checkbox', 'option-tree'), 'tag-select' => __('Tag Select', 'option-tree'), @@ -2315,6 +2516,38 @@ function ot_map_old_option_types( $type = '' ) { } } +/** + * Filters the typography font-family to add Google fonts dynamically. + * + * @param array $families An array of all recognized font families. + * @param string $field_id ID of the feild being filtered. + * @return array + * + * @access public + * @since 2.5.0 + */ +function ot_google_font_stack( $families, $field_id ) { + + $ot_google_fonts = get_theme_mod( 'ot_google_fonts', array() ); + $ot_set_google_fonts = get_theme_mod( 'ot_set_google_fonts', array() ); + + if ( ! empty( $ot_set_google_fonts ) ) { + foreach( $ot_set_google_fonts as $id => $sets ) { + foreach( $sets as $value ) { + $family = isset( $value['family'] ) ? $value['family'] : ''; + if ( $family && isset( $ot_google_fonts[$family] ) ) { + $spaces = explode(' ', $ot_google_fonts[$family]['family'] ); + $font_stack = count( $spaces ) > 1 ? '"' . $ot_google_fonts[$family]['family'] . '"': $ot_google_fonts[$family]['family']; + $families[$family] = apply_filters( 'ot_google_font_stack', $font_stack, $family, $field_id ); + } + } + } + } + + return $families; +} +add_filter( 'ot_recognized_font_families', 'ot_google_font_stack', 1, 2 ); + /** * Recognized font families * @@ -2334,8 +2567,8 @@ function ot_map_old_option_types( $type = '' ) { if ( ! function_exists( 'ot_recognized_font_families' ) ) { function ot_recognized_font_families( $field_id = '' ) { - - return apply_filters( 'ot_recognized_font_families', array( + + $families = array( 'arial' => 'Arial', 'georgia' => 'Georgia', 'helvetica' => 'Helvetica', @@ -2344,7 +2577,9 @@ function ot_recognized_font_families( $field_id = '' ) { 'times' => '"Times New Roman", sans-serif', 'trebuchet' => 'Trebuchet', 'verdana' => 'Verdana' - ), $field_id ); + ); + + return apply_filters( 'ot_recognized_font_families', $families, $field_id ); } @@ -2701,6 +2936,209 @@ function ot_recognized_background_position( $field_id = '' ) { } +/** + * Border Styles + * + * Returns an array of all available style types. + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_recognized_border_style_types' ) ) { + + function ot_recognized_border_style_types( $field_id = '' ) { + + return apply_filters( 'ot_recognized_border_style_types', array( + 'hidden' => 'Hidden', + 'dashed' => 'Dashed', + 'solid' => 'Solid', + 'double' => 'Double', + 'groove' => 'Groove', + 'ridge' => 'Ridge', + 'inset' => 'Inset', + 'outset' => 'Outset', + ), $field_id ); + + } + +} + +/** + * Border Units + * + * Returns an array of all available unit types. + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_recognized_border_unit_types' ) ) { + + function ot_recognized_border_unit_types( $field_id = '' ) { + + return apply_filters( 'ot_recognized_border_unit_types', array( + 'px' => 'px', + '%' => '%', + 'em' => 'em', + 'pt' => 'pt' + ), $field_id ); + + } + +} + +/** + * Dimension Units + * + * Returns an array of all available unit types. + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_recognized_dimension_unit_types' ) ) { + + function ot_recognized_dimension_unit_types( $field_id = '' ) { + + return apply_filters( 'ot_recognized_dimension_unit_types', array( + 'px' => 'px', + '%' => '%', + 'em' => 'em', + 'pt' => 'pt' + ), $field_id ); + + } + +} + +/** + * Spacing Units + * + * Returns an array of all available unit types. + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_recognized_spacing_unit_types' ) ) { + + function ot_recognized_spacing_unit_types( $field_id = '' ) { + + return apply_filters( 'ot_recognized_spacing_unit_types', array( + 'px' => 'px', + '%' => '%', + 'em' => 'em', + 'pt' => 'pt' + ), $field_id ); + + } + +} + +/** + * Recognized Google font families + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_recognized_google_font_families' ) ) { + + function ot_recognized_google_font_families( $field_id ) { + + $families = array(); + $ot_google_fonts = get_theme_mod( 'ot_google_fonts', array() ); + + foreach( (array) $ot_google_fonts as $key => $item ) { + + if ( isset( $item['family'] ) ) { + + $families[ $key ] = $item['family']; + + } + + } + + return apply_filters( 'ot_recognized_google_font_families', $families, $field_id ); + + } + +} + +/** + * Recognized Google font variants + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_recognized_google_font_variants' ) ) { + + function ot_recognized_google_font_variants( $field_id, $family ) { + + $variants = array(); + $ot_google_fonts = get_theme_mod( 'ot_google_fonts', array() ); + + if ( isset( $ot_google_fonts[ $family ]['variants'] ) ) { + + $variants = $ot_google_fonts[ $family ]['variants']; + + } + + return apply_filters( 'ot_recognized_google_font_variants', $variants, $field_id, $family ); + + } + +} + +/** + * Recognized Google font subsets + * + * @uses apply_filters() + * + * @return array + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_recognized_google_font_subsets' ) ) { + + function ot_recognized_google_font_subsets( $field_id, $family ) { + + $subsets = array(); + $ot_google_fonts = get_theme_mod( 'ot_google_fonts', array() ); + + if ( isset( $ot_google_fonts[ $family ]['subsets'] ) ) { + + $subsets = $ot_google_fonts[ $family ]['subsets']; + + } + + return apply_filters( 'ot_recognized_google_font_subsets', $subsets, $field_id, $family ); + + } + +} + /** * Measurement Units * @@ -2994,19 +3432,32 @@ function ot_insert_css_with_markers( $field_id = '', $insertion = '', $meta = fa /* path to the dynamic.css file */ $filepath = get_stylesheet_directory() . '/dynamic.css'; + if ( is_multisite() ) { + $multisite_filepath = get_stylesheet_directory() . '/dynamic-' . get_current_blog_id() . '.css'; + if ( file_exists( $multisite_filepath ) ) { + $filepath = $multisite_filepath; + } + } /* allow filter on path */ $filepath = apply_filters( 'css_option_file_path', $filepath, $field_id ); - + /* grab a copy of the paths array */ $ot_css_file_paths = get_option( 'ot_css_file_paths', array() ); - + if ( is_multisite() ) { + $ot_css_file_paths = get_blog_option( get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths ); + } + /* set the path for this field */ $ot_css_file_paths[$field_id] = $filepath; - + /* update the paths */ - update_option( 'ot_css_file_paths', $ot_css_file_paths ); - + if ( is_multisite() ) { + update_blog_option( get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths ); + } else { + update_option( 'ot_css_file_paths', $ot_css_file_paths ); + } + /* insert CSS into file */ if ( file_exists( $filepath ) ) { @@ -3052,6 +3503,78 @@ function ot_insert_css_with_markers( $field_id = '', $insertion = '', $meta = fa /* set $value with measurement properties */ $value = $value[0].$value[1]; + + /* Colorpicker Opacity */ + } else if ( isset( $value['color'] ) && isset( $value['opacity'] ) ) { + + /* get the RGB color value */ + $color = ot_hex2RGB( $value['color'] ); + + if ( is_array( $color ) ) { + $value = 'rgba(' . $color['r'] . ', ' . $color['g'] . ', ' . $color['b'] . ', ' . $value['opacity'] . ')'; + } else if ( $color == $value['color'] ) { + $value = $value['color']; + } + + /* Border */ + } else if ( ot_array_keys_exists( $value, array( 'width', 'unit', 'style', 'color' ) ) && ! ot_array_keys_exists( $value, array( 'top', 'right', 'bottom', 'left', 'height', 'inset', 'offset-x', 'offset-y', 'blur-radius', 'spread-radius' ) ) ) { + $border = array(); + + $unit = ! empty( $value['unit'] ) ? $value['unit'] : 'px'; + + if ( ! empty( $value['width'] ) ) + $border[] = $value['width'].$unit; + + if ( ! empty( $value['style'] ) ) + $border[] = $value['style']; + + if ( ! empty( $value['color'] ) ) + $border[] = $value['color']; + + /* set $value with border properties or empty string */ + $value = ! empty( $border ) ? implode( ' ', $border ) : ''; + + /* Box Shadow */ + } else if ( ot_array_keys_exists( $value, array( 'inset', 'offset-x', 'offset-y', 'blur-radius', 'spread-radius', 'color' ) ) && ! ot_array_keys_exists( $value, array( 'width', 'height', 'unit', 'style', 'top', 'right', 'bottom', 'left' ) ) ) { + + /* set $value with box-shadow properties or empty string */ + $value = ! empty( $value ) ? implode( ' ', $value ) : ''; + + /* Dimension */ + } else if ( ot_array_keys_exists( $value, array( 'width', 'height', 'unit' ) ) && ! ot_array_keys_exists( $value, array( 'style', 'color', 'top', 'right', 'bottom', 'left' ) ) ) { + $dimension = array(); + + $unit = ! empty( $value['unit'] ) ? $value['unit'] : 'px'; + + if ( ! empty( $value['width'] ) ) + $dimension[] = $value['width'].$unit; + + if ( ! empty( $value['height'] ) ) + $dimension[] = $value['height'].$unit; + + /* set $value with dimension properties or empty string */ + $value = ! empty( $dimension ) ? implode( ' ', $dimension ) : ''; + + /* Spacing */ + } else if ( ot_array_keys_exists( $value, array( 'top', 'right', 'bottom', 'left', 'unit' ) ) && ! ot_array_keys_exists( $value, array( 'width', 'height', 'style', 'color' ) ) ) { + $spacing = array(); + + $unit = ! empty( $value['unit'] ) ? $value['unit'] : 'px'; + + if ( ! empty( $value['top'] ) ) + $spacing[] = $value['top'].$unit; + + if ( ! empty( $value['right'] ) ) + $spacing[] = $value['right'].$unit; + + if ( ! empty( $value['bottom'] ) ) + $spacing[] = $value['bottom'].$unit; + + if ( ! empty( $value['left'] ) ) + $spacing[] = $value['left'].$unit; + + /* set $value with spacing properties or empty string */ + $value = ! empty( $spacing ) ? implode( ' ', $spacing ) : ''; /* typography */ } else if ( ot_array_keys_exists( $value, array( 'font-color', 'font-family', 'font-size', 'font-style', 'font-variant', 'font-weight', 'letter-spacing', 'line-height', 'text-decoration', 'text-transform' ) ) ) { @@ -3500,7 +4023,7 @@ function ot_settings_view( $name, $key, $setting = array() ) { $std = maybe_serialize( $std ); } - if ( in_array( $type, array( 'textarea', 'textarea-simple', 'css' ) ) ) { + if ( in_array( $type, array( 'css', 'javascript', 'textarea', 'textarea-simple' ) ) ) { $std_form_element = ''; } else { $std_form_element = ''; @@ -4562,6 +5085,177 @@ function ot_filter_std_value( $value = '', $std = '' ) { } +/** + * Helper function to set the Google fonts array. + * + * @param string $id The option ID. + * @param bool $value The option value + * @return void + * + * @access public + * @since 2.5.0 + */ +function ot_set_google_fonts( $id = '', $value = '' ) { + + $ot_set_google_fonts = get_theme_mod( 'ot_set_google_fonts', array() ); + + if ( is_array( $value ) && ! empty( $value ) ) { + $ot_set_google_fonts[$id] = $value; + } else if ( isset( $ot_set_google_fonts[$id] ) ) { + unset( $ot_set_google_fonts[$id] ); + } + + set_theme_mod( 'ot_set_google_fonts', $ot_set_google_fonts ); + +} + +/** + * Helper function to remove unused options from the Google fonts array. + * + * @param array $options The array of saved options. + * @return array + * + * @access public + * @since 2.5.0 + */ +function ot_update_google_fonts_after_save( $options ) { + + $ot_set_google_fonts = get_theme_mod( 'ot_set_google_fonts', array() ); + + foreach( $ot_set_google_fonts as $key => $set ) { + if ( ! isset( $options[$key] ) ) { + unset( $ot_set_google_fonts[$key] ); + } + } + set_theme_mod( 'ot_set_google_fonts', $ot_set_google_fonts ); + +} +add_action( 'ot_after_theme_options_save', 'ot_update_google_fonts_after_save', 1 ); + +/** + * Helper function to fetch the Google fonts array. + * + * @param bool $normalize Whether or not to return a normalized array. + * @return array + * + * @access public + * @since 2.5.0 + */ +function ot_fetch_google_fonts( $normalize = true ) { + + /* Google Fonts cache key */ + $ot_google_fonts_cache_key = apply_filters( 'ot_google_fonts_cache_key', 'ot_google_fonts_cache' ); + + /* get the fonts from cache */ + $ot_google_fonts = apply_filters( 'ot_google_fonts_cache', get_transient( $ot_google_fonts_cache_key ) ); + + if ( ! is_array( $ot_google_fonts ) || empty( $ot_google_fonts ) ) { + + $ot_google_fonts = array(); + + /* API url and key */ + $ot_google_fonts_api_url = apply_filters( 'ot_google_fonts_api_url', 'https://www.googleapis.com/webfonts/v1/webfonts' ); + $ot_google_fonts_api_key = apply_filters( 'ot_google_fonts_api_key', 'AIzaSyB8G-4UtQr9fhDYTiNrDP40Y5GYQQKrNWI' ); + + /* API arguments */ + $ot_google_fonts_fields = apply_filters( 'ot_google_fonts_fields', array( 'family', 'variants', 'subsets' ) ); + $ot_google_fonts_sort = apply_filters( 'ot_google_fonts_sort', 'alpha' ); + + /* Initiate API request */ + $ot_google_fonts_query_args = array( + 'key' => $ot_google_fonts_api_key, + 'fields' => 'items(' . implode( ',', $ot_google_fonts_fields ) . ')', + 'sort' => $ot_google_fonts_sort + ); + + /* Build and make the request */ + $ot_google_fonts_query = add_query_arg( $ot_google_fonts_query_args, $ot_google_fonts_api_url ); + $ot_google_fonts_response = wp_safe_remote_get( $ot_google_fonts_query, array( 'sslverify' => false, 'timeout' => 15 ) ); + + /* continue if we got a valid response */ + if ( 200 == wp_remote_retrieve_response_code( $ot_google_fonts_response ) ) { + + if ( $response_body = wp_remote_retrieve_body( $ot_google_fonts_response ) ) { + + /* JSON decode the response body and cache the result */ + $ot_google_fonts_data = json_decode( trim( $response_body ), true ); + + if ( is_array( $ot_google_fonts_data ) && isset( $ot_google_fonts_data['items'] ) ) { + + $ot_google_fonts = $ot_google_fonts_data['items']; + + // Normalize the array key + $ot_google_fonts_tmp = array(); + foreach( $ot_google_fonts as $key => $value ) { + $id = remove_accents( $value['family'] ); + $id = strtolower( $id ); + $id = preg_replace( '/[^a-z0-9_\-]/', '', $id ); + $ot_google_fonts_tmp[$id] = $value; + } + + $ot_google_fonts = $ot_google_fonts_tmp; + set_theme_mod( 'ot_google_fonts', $ot_google_fonts ); + set_transient( $ot_google_fonts_cache_key, $ot_google_fonts, WEEK_IN_SECONDS ); + + } + + } + + } + + } + + return $normalize ? ot_normalize_google_fonts( $ot_google_fonts ) : $ot_google_fonts; + +} + +/** + * Helper function to normalize the Google fonts array. + * + * @param array $google_fonts An array of fonts to nrmalize. + * @return array + * + * @access public + * @since 2.5.0 + */ +function ot_normalize_google_fonts( $google_fonts ) { + + $ot_normalized_google_fonts = array(); + + if ( is_array( $google_fonts ) && ! empty( $google_fonts ) ) { + + foreach( $google_fonts as $google_font ) { + + if( isset( $google_font['family'] ) ) { + + $id = str_replace( ' ', '+', $google_font['family'] ); + + $ot_normalized_google_fonts[ $id ] = array( + 'family' => $google_font['family'] + ); + + if( isset( $google_font['variants'] ) ) { + + $ot_normalized_google_fonts[ $id ]['variants'] = $google_font['variants']; + + } + + if( isset( $google_font['subsets'] ) ) { + + $ot_normalized_google_fonts[ $id ]['subsets'] = $google_font['subsets']; + + } + + } + + } + + } + + return $ot_normalized_google_fonts; + +} + /** * Helper function to register a WPML string * @@ -4954,5 +5648,45 @@ function ot_get_option_type_by_id( $option_id, $settings_id = '' ) { } +/** + * Converts Hexidecimal values to RGB. + * + * @param string $hex The hexidecimal color value. + * @return mixed Returns an array with RGB values or the original hex color on failure. + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_hex2RGB' ) ) { + + function ot_hex2RGB( $hex ) { + preg_match( "/^#{0,1}([0-9a-f]{1,6})$/i", $hex, $match ); + + if ( ! isset( $match[1] ) ) { + return $hex; + } + + if ( strlen( $match[1] ) == 6 ) { + list($r, $g, $b) = array( $hex[0].$hex[1], $hex[2].$hex[3], $hex[4].$hex[5] ); + } else if( strlen( $match[1] ) == 3 ) { + list($r, $g, $b) = array( $hex[0].$hex[0], $hex[1].$hex[1], $hex[2].$hex[2] ); + } else if ( strlen($match[1]) == 2 ) { + list($r, $g, $b) = array( $hex[0].$hex[1], $hex[0].$hex[1], $hex[0].$hex[1] ); + } else if ( strlen($match[1]) == 1 ) { + list($r, $g, $b) = array( $hex.$hex, $hex.$hex, $hex.$hex ); + } else { + return $hex; + } + + $color = array(); + $color['r'] = hexdec( $r ); + $color['g'] = hexdec( $g ); + $color['b'] = hexdec( $b ); + + return $color; + } + +} + /* End of file ot-functions-admin.php */ -/* Location: ./includes/ot-functions-admin.php */ \ No newline at end of file +/* Location: ./includes/ot-functions-admin.php */ diff --git a/option-tree/includes/ot-functions-docs-page.php b/option-tree/includes/ot-functions-docs-page.php index ce7872d..361b99f 100644 --- a/option-tree/includes/ot-functions-docs-page.php +++ b/option-tree/includes/ot-functions-docs-page.php @@ -110,6 +110,12 @@ function ot_type_option_types() { echo '

    '. __( 'Background', 'option-tree' ) . ':

    '; echo '

    ' . sprintf( __( 'The Background option type is for adding background styles to your theme either dynamically via the CSS option type below or manually with %s. The Background option type has filters that allow you to remove fields or change the defaults. For example, you can filter %s to remove unwanted fields from all Background options or an individual one. You can also filter %s. These filters allow you to fine tune the select lists for your specific needs.', 'option-tree' ), 'ot_get_option()', 'ot_recognized_background_fields', 'ot_recognized_background_repeat, ot_recognized_background_attachment, ot_recognized_background_position, ' . __( 'and', 'option-tree' ) . ' ot_type_background_size_choices' ) . '

    '; + echo '

    '. __( 'Border', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The Border option type is used to set width, unit, style, and color values. The text input excepts a numerical value and the unit select lets you choose the unit of measurement to add to that value. Currently the default units are %s, %s, %s, and %s. However, you can change them with the %s filter. The style select lets you choose the border style. The default styles are %s, %s, %s, %s, %s, %s, %s, and %s. However, you can change them with the %s filter. The colorpicker saves a hexadecimal color code.', 'option-tree' ), 'px', '%', 'em', 'pt', 'ot_recognized_border_unit_types', 'hidden', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset', 'ot_recognized_border_style_types' ) . '

    '; + + echo '

    '. __( 'Box Shadow', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The Box Shadow option type is used to set %s, %s, %s, %s, %s, and %s values.', 'option-tree' ), 'inset', 'offset-x', 'offset-y', 'blur-radius', 'spread-radius', 'color' ) . '

    '; + echo '

    '. __( 'Category Checkbox', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The Category Checkbox option type displays a list of category IDs. It allows the user to check multiple category IDs and will return that value as an array for use in a custom function or loop.', 'option-tree' ) . '

    '; @@ -122,6 +128,9 @@ function ot_type_option_types() { echo '

    '. __( 'Colorpicker', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The Colorpicker option type saves a hexadecimal color code for use in CSS. Use it to modify the color of something in your theme.', 'option-tree' ) . '

    '; + echo '

    '. __( 'Colorpicker Opacity', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The Colorpicker Opacity option type saves a hexadecimal color code with an opacity value from %s to %s in increments of %s. Though the value is saved as hexadecimal, if used within the CSS option type the color and opacity values will be converted into a valid RGBA CSS value.', 'option-tree' ), '0', '1', '0.01' ) . '

    '; + echo '

    '. __( 'CSS', 'option-tree' ) . ':

    '; echo '

    ' . sprintf( __( 'The CSS option type is a textarea that when used properly can add dynamic CSS to your theme from within OptionTree. Unfortunately, due server limitations you will need to create a file named %s at the root level of your theme and change permissions using %s so the server can write to the file. I have had the most success setting this single file to %s but feel free to play around with permissions until everything is working. A good starting point is %s. When the server can save to the file, CSS will automatically be updated when you save your Theme Options.', 'option-tree' ), 'dynamic.css', 'chmod', '0777', '0666' ) . '

    '; @@ -153,8 +162,20 @@ function ot_type_option_types() { echo '

    '. __( 'Date Time Picker', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The Date Time Picker option type is tied to a standard form input field which displays a calendar pop-up that allow the user to pick any date and time when focus is given to the input field. The returned value is a date and time formatted string.', 'option-tree' ) . '

    '; + echo '

    '. __( 'Dimension', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The Dimension option type is used to set width and height values. The text inputs except numerical values and the select lets you choose the unit of measurement to add to that value. Currently the default units are %s, %s, %s, and %s. However, you can change them with the %s filter.', 'option-tree' ), 'px', '%', 'em', 'pt', 'ot_recognized_dimension_unit_types' ) . '

    '; + echo '

    '. __( 'Gallery', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The Gallery option type saves a comma separated list of image attachment IDs. You will need to create a front-end function to display the images in your theme.', 'option-tree' ) . '

    '; + + echo '

    '. __( 'Google Fonts', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The Google Fonts option type will dynamically enqueue any number of Google Web Fonts into the document %1$s. As well, once the option has been saved each font family will automatically be inserted into the %2$s array for the Typography option type. You can further modify the font stack by using the %3$s filter, which is passed the %4$s, %5$s, and %6$s parameters. The %6$s parameter is being passed from %7$s, so it will be the ID of a Typography option type. This will allow you to add additional web safe fonts to individual font families on an as-need basis.', 'option-tree' ), 'HEAD', 'font-family', 'ot_google_font_stack', '$font_stack', '$family', '$field_id', 'ot_recognized_font_families' ) . '

    '; + + echo '

    '. __( 'JavaScript', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The JavaScript option type is a textarea that uses the %s code editor to highlight your JavaScript and display errors as you type.', 'option-tree' ), 'ace.js' ) . '

    '; + + echo '

    '. __( 'Link Color', 'option-tree' ) . ':

    '; + echo '

    ' . __( 'The Link Color option type is used to set all link color states.', 'option-tree' ) . '

    '; echo '

    '. __( 'List Item', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The List Item option type replaced the Slider option type and allows for a great deal of customization. You can add settings to the List Item and those settings will be displayed to the user when they add a new List Item. Typical use is for creating sliding content or blocks of code for custom layouts.', 'option-tree' ) . '

    '; @@ -251,6 +272,9 @@ function ot_type_option_types() { echo '

    '. __( 'Social Links', 'option-tree' ) . ':

    '; echo '

    ' . sprintf( __( 'The Social Links option type utilizes a drag & drop interface to create a list of social links. There are a few filters that make extending this option type easy. You can set the %s filter to %s and turn off loading default values. Use the %s filter to change the default values that are loaded. To filter the settings array use the %s filter.', 'option-tree' ), 'ot_type_social_links_load_defaults', 'false', 'ot_type_social_links_defaults', 'ot_social_links_settings' ) . '

    '; + echo '

    '. __( 'Spacing', 'option-tree' ) . ':

    '; + echo '

    ' . sprintf( __( 'The Spacing option type is used to set spacing values such as padding or margin in the form of top, right, bottom, and left. The text inputs except numerical values and the select lets you choose the unit of measurement to add to that value. Currently the default units are %s, %s, %s, and %s. However, you can change them with the %s filter.', 'option-tree' ), 'px', '%', 'em', 'pt', 'ot_recognized_spacing_unit_types' ) . '

    '; + echo '

    '. __( 'Tab', 'option-tree' ) . ':

    '; echo '

    ' . __( 'The Tab option type will break a section or metabox into tabbed content.', 'option-tree' ) . '

    '; @@ -836,12 +860,17 @@ function ot_type_theme_mode() { echo "
    /**
      * Initialize the options before anything else. 
      */
    -add_action( 'admin_init', 'custom_theme_options', 1 );
    +add_action( 'init', 'custom_theme_options', 1 );
     
     /**
      * Build the custom settings & update OptionTree.
      */
     function custom_theme_options() {
    +
    +  /* OptionTree is not loaded yet, or this is not an admin request */
    +  if ( ! function_exists( 'ot_settings_id' ) || ! is_admin() )
    +    return false;
    +
       /**
        * Get a copy of the saved settings array. 
        */
    @@ -972,6 +1001,10 @@ function custom_theme_options() {
         update_option( 'option_tree_settings', $custom_settings ); 
       }
       
    +  /* Lets OptionTree know the UI Builder is being overridden */
    +  global $ot_has_custom_theme_options;
    +  $ot_has_custom_theme_options = true;
    +  
     }
     
    "; diff --git a/option-tree/includes/ot-functions-option-types.php b/option-tree/includes/ot-functions-option-types.php index e71c17b..aee37a7 100644 --- a/option-tree/includes/ot-functions-option-types.php +++ b/option-tree/includes/ot-functions-option-types.php @@ -270,6 +270,229 @@ function ot_type_background( $args = array() ) { } +/** + * Border Option Type + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array The options arguments + * @return string The markup. + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_type_border' ) ) { + + function ot_type_border( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* allow fields to be filtered */ + $ot_recognized_border_fields = apply_filters( 'ot_recognized_border_fields', array( + 'width', + 'unit', + 'style', + 'color' + ), $field_id ); + + /* build border width */ + if ( in_array( 'width', $ot_recognized_border_fields ) ) { + + $width = isset( $field_value['width'] ) ? esc_attr( $field_value['width'] ) : ''; + + echo '
    '; + + } + + /* build unit dropdown */ + if ( in_array( 'unit', $ot_recognized_border_fields ) ) { + + echo '
    '; + + echo ''; + + echo '
    '; + + } + + /* build style dropdown */ + if ( in_array( 'style', $ot_recognized_border_fields ) ) { + + echo '
    '; + + echo ''; + + echo '
    '; + + } + + /* build color */ + if ( in_array( 'color', $ot_recognized_border_fields ) ) { + + echo '
    '; + + /* colorpicker JS */ + echo ''; + + /* set color */ + $color = isset( $field_value['color'] ) ? esc_attr( $field_value['color'] ) : ''; + + /* input */ + echo ''; + + echo '
    '; + + } + + echo '
    '; + + echo '
    '; + + } + +} + +/** + * Box Shadow Option Type + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array The options arguments + * @return string The markup. + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_type_box_shadow' ) ) { + + function ot_type_box_shadow( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* allow fields to be filtered */ + $ot_recognized_box_shadow_fields = apply_filters( 'ot_recognized_box_shadow_fields', array( + 'inset', + 'offset-x', + 'offset-y', + 'blur-radius', + 'spread-radius', + 'color' + ), $field_id ); + + /* build inset */ + if ( in_array( 'inset', $ot_recognized_box_shadow_fields ) ) { + + echo '

    '; + echo ''; + echo ''; + echo '

    '; + + } + + /* build horizontal offset */ + if ( in_array( 'offset-x', $ot_recognized_box_shadow_fields ) ) { + + $offset_x = isset( $field_value['offset-x'] ) ? esc_attr( $field_value['offset-x'] ) : ''; + + echo '
    '; + + } + + /* build vertical offset */ + if ( in_array( 'offset-y', $ot_recognized_box_shadow_fields ) ) { + + $offset_y = isset( $field_value['offset-y'] ) ? esc_attr( $field_value['offset-y'] ) : ''; + + echo '
    '; + + } + + /* build blur-radius radius */ + if ( in_array( 'blur-radius', $ot_recognized_box_shadow_fields ) ) { + + $blur_radius = isset( $field_value['blur-radius'] ) ? esc_attr( $field_value['blur-radius'] ) : ''; + + echo '
    '; + + } + + /* build spread-radius radius */ + if ( in_array( 'spread-radius', $ot_recognized_box_shadow_fields ) ) { + + $spread_radius = isset( $field_value['spread-radius'] ) ? esc_attr( $field_value['spread-radius'] ) : ''; + + echo '
    '; + + } + + /* build color */ + if ( in_array( 'color', $ot_recognized_box_shadow_fields ) ) { + + echo '
    '; + + /* colorpicker JS */ + echo ''; + + /* set color */ + $color = isset( $field_value['color'] ) ? esc_attr( $field_value['color'] ) : ''; + + /* input */ + echo ''; + + echo '
    '; + + } + + echo '
    '; + + echo '
    '; + + } + +} + /** * Category Checkbox option type. * @@ -480,6 +703,77 @@ function ot_type_colorpicker( $args = array() ) { } +/** + * Colorpicker Opacity option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_type_colorpicker_opacity' ) ) { + + function ot_type_colorpicker_opacity( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* build colorpicker */ + echo '
    '; + + /* colorpicker JS */ + echo ''; + + /* set color */ + $color = isset( $field_value['color'] ) ? esc_attr( $field_value['color'] ) : ''; + + /* set default color */ + $std = isset( $field_std['color'] ) ? 'data-default-color="' . $field_std['color'] . '"' : ''; + + /* input */ + echo ''; + + echo '
    '; + + echo '
    '; + + $min = 0; + $max = 1.01; + $step = 0.01; + + /* set background color */ + $opacity = isset( $field_value['opacity'] ) ? esc_attr( $field_value['opacity'] ) : ''; + + echo ''; + + echo ''; + + echo '
    '; + + echo '
    '; + + echo '
    '; + + echo '
    '; + } + +} + /** * CSS option type. * @@ -664,7 +958,17 @@ function ot_type_date_picker( $args = array() ) { /* filter date format */ $date_format = apply_filters( 'ot_type_date_picker_date_format', 'yy-mm-dd', $field_id ); - + + /** + * Filter the addition of the readonly attribute. + * + * @since 2.5.0 + * + * @param bool $is_readonly Whether to add the 'readonly' attribute. Default 'false'. + * @param string $field_id The field ID. + */ + $is_readonly = apply_filters( 'ot_type_date_picker_readonly', false, $field_id ); + /* format setting outer wrapper */ echo '
    '; @@ -678,18 +982,380 @@ function ot_type_date_picker( $args = array() ) { echo '
    '; /* build date picker */ - echo ''; + echo ''; + + echo '
    '; + + echo '
    '; + + } + +} + +/** + * Date Time Picker option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.3 + */ +if ( ! function_exists( 'ot_type_date_time_picker' ) ) { + + function ot_type_date_time_picker( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* filter date format */ + $date_format = apply_filters( 'ot_type_date_time_picker_date_format', 'yy-mm-dd', $field_id ); + + /** + * Filter the addition of the readonly attribute. + * + * @since 2.5.0 + * + * @param bool $is_readonly Whether to add the 'readonly' attribute. Default 'false'. + * @param string $field_id The field ID. + */ + $is_readonly = apply_filters( 'ot_type_date_time_picker_readonly', false, $field_id ); + + /* format setting outer wrapper */ + echo '
    '; + + /* date time picker JS */ + echo ''; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* build date time picker */ + echo ''; + + echo '
    '; + + echo '
    '; + + } + +} + +/** + * Dimension Option Type + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array The options arguments + * @return string The markup. + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_type_dimension' ) ) { + + function ot_type_dimension( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* allow fields to be filtered */ + $ot_recognized_dimension_fields = apply_filters( 'ot_recognized_dimension_fields', array( + 'width', + 'height', + 'unit' + ), $field_id ); + + /* build width dimension */ + if ( in_array( 'width', $ot_recognized_dimension_fields ) ) { + + $width = isset( $field_value['width'] ) ? esc_attr( $field_value['width'] ) : ''; + + echo '
    '; + + } + + /* build height dimension */ + if ( in_array( 'height', $ot_recognized_dimension_fields ) ) { + + $height = isset( $field_value['height'] ) ? esc_attr( $field_value['height'] ) : ''; + + echo '
    '; + + } + + /* build unit dropdown */ + if ( in_array( 'unit', $ot_recognized_dimension_fields ) ) { + + echo '
    '; + + echo ''; + + echo '
    '; + + } + + echo '
    '; + + echo '
    '; + + } + +} + +/** + * Gallery option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array The options arguments + * @return string The gallery metabox markup. + * + * @access public + * @since 2.2.0 + */ +if ( ! function_exists( 'ot_type_gallery' ) ) { + + function ot_type_gallery( $args = array() ) { + + // Turns arguments array into variables + extract( $args ); + + // Verify a description + $has_desc = $field_desc ? true : false; + + // Format setting outer wrapper + echo ''; + + } + +} + +/** + * Google Fonts option type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_type_google_fonts' ) ) { + + function ot_type_google_fonts( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* allow fields to be filtered */ + $ot_recognized_google_fonts_fields = apply_filters( 'ot_recognized_google_font_fields', array( + 'variants', + 'subsets' + ), $field_id ); + + // Set a default to show at least one item. + if ( ! is_array( $field_value ) || empty( $field_value ) ) { + $field_value = array( array( + 'family' => '', + 'variants' => array(), + 'subsets' => array() + ) ); + } + + foreach( $field_value as $key => $value ) { + + echo '
    '; + + /* build font family */ + $family = isset( $value['family'] ) ? $value['family'] : ''; + echo '
    '; + echo '' . __( 'Remove Google Font', 'option-tree' ) . ''; + echo ''; + echo '
    '; + + /* build font variants */ + if ( in_array( 'variants', $ot_recognized_google_fonts_fields ) ) { + $variants = isset( $value['variants'] ) ? $value['variants'] : array(); + echo '
    '; + foreach ( ot_recognized_google_font_variants( $field_id, $family ) as $variant_key => $variant ) { + echo '

    '; + echo ''; + echo ''; + echo '

    '; + } + echo '
    '; + } + + /* build font subsets */ + if ( in_array( 'subsets', $ot_recognized_google_fonts_fields ) ) { + $subsets = isset( $value['subsets'] ) ? $value['subsets'] : array(); + echo '
    '; + foreach ( ot_recognized_google_font_subsets( $field_id, $family ) as $subset_key => $subset ) { + echo '

    '; + echo ''; + echo ''; + echo '

    '; + } + echo '
    '; + } + + echo '
    '; + + } + + echo '
    '; + + /* build font family */ + echo '
    '; + echo '' . __( 'Remove Google Font', 'option-tree' ) . ''; + echo ''; + echo '
    '; + + /* build font variants */ + if ( in_array( 'variants', $ot_recognized_google_fonts_fields ) ) { + echo '
    '; + echo '
    '; + } + + /* build font subsets */ + if ( in_array( 'subsets', $ot_recognized_google_fonts_fields ) ) { + echo '
    '; + echo '
    '; + } + + echo '
    '; + + echo '' . __( 'Add Google Font', 'option-tree' ) . ''; echo '
    '; - + echo '
    '; } - + } /** - * Date Time Picker option type. + * JavaScript option type. * * See @ot_display_by_type to see the full list of available arguments. * @@ -697,11 +1363,11 @@ function ot_type_date_picker( $args = array() ) { * @return string * * @access public - * @since 2.3 + * @since 2.5.0 */ -if ( ! function_exists( 'ot_type_date_time_picker' ) ) { +if ( ! function_exists( 'ot_type_javascript' ) ) { - function ot_type_date_time_picker( $args = array() ) { + function ot_type_javascript( $args = array() ) { /* turns arguments array into variables */ extract( $args ); @@ -709,26 +1375,23 @@ function ot_type_date_time_picker( $args = array() ) { /* verify a description */ $has_desc = $field_desc ? true : false; - /* filter date format */ - $date_format = apply_filters( 'ot_type_date_time_picker_date_format', 'yy-mm-dd', $field_id ); - /* format setting outer wrapper */ - echo '
    '; - - /* date time picker JS */ - echo ''; + echo '
    '; /* description */ echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; /* format setting inner wrapper */ echo '
    '; - - /* build date time picker */ - echo ''; - echo '
    '; + /* build textarea for CSS */ + echo ''; + /* build pre to convert it into ace editor later */ + echo '
    ' . esc_textarea( $field_value ) . '
    '; + + echo '
    '; + echo '
    '; } @@ -736,96 +1399,75 @@ function ot_type_date_time_picker( $args = array() ) { } /** - * Gallery option type. + * Link Color option type. * * See @ot_display_by_type to see the full list of available arguments. * * @param array The options arguments - * @return string The gallery metabox markup. + * @return string The markup. * * @access public - * @since 2.2.0 + * @since 2.5.0 */ -if ( ! function_exists( 'ot_type_gallery' ) ) { +if ( ! function_exists( 'ot_type_link_color' ) ) { - function ot_type_gallery( $args = array() ) { - - // Turns arguments array into variables + function ot_type_link_color( $args = array() ) { + + /* turns arguments array into variables */ extract( $args ); - - // Verify a description + + /* verify a description */ $has_desc = $field_desc ? true : false; - - // Format setting outer wrapper - echo ''; - + echo '
    '; - + echo '
    '; - + } - + } /** @@ -1758,6 +2446,108 @@ function ot_type_social_links( $args = array() ) { } +/** + * Spacing Option Type. + * + * See @ot_display_by_type to see the full list of available arguments. + * + * @param array An array of arguments. + * @return string + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_type_spacing' ) ) { + + function ot_type_spacing( $args = array() ) { + + /* turns arguments array into variables */ + extract( $args ); + + /* verify a description */ + $has_desc = $field_desc ? true : false; + + /* format setting outer wrapper */ + echo '
    '; + + /* description */ + echo $has_desc ? '
    ' . htmlspecialchars_decode( $field_desc ) . '
    ' : ''; + + /* format setting inner wrapper */ + echo '
    '; + + /* allow fields to be filtered */ + $ot_recognized_spacing_fields = apply_filters( 'ot_recognized_spacing_fields', array( + 'top', + 'right', + 'bottom', + 'left', + 'unit' + ), $field_id ); + + /* build top spacing */ + if ( in_array( 'top', $ot_recognized_spacing_fields ) ) { + + $top = isset( $field_value['top'] ) ? esc_attr( $field_value['top'] ) : ''; + + echo '
    '; + + } + + /* build right spacing */ + if ( in_array( 'right', $ot_recognized_spacing_fields ) ) { + + $right = isset( $field_value['right'] ) ? esc_attr( $field_value['right'] ) : ''; + + echo '
    '; + + } + + /* build bottom spacing */ + if ( in_array( 'bottom', $ot_recognized_spacing_fields ) ) { + + $bottom = isset( $field_value['bottom'] ) ? esc_attr( $field_value['bottom'] ) : ''; + + echo '
    '; + + } + + /* build left spacing */ + if ( in_array( 'left', $ot_recognized_spacing_fields ) ) { + + $left = isset( $field_value['left'] ) ? esc_attr( $field_value['left'] ) : ''; + + echo '
    '; + + } + + /* build unit dropdown */ + if ( in_array( 'unit', $ot_recognized_spacing_fields ) ) { + + echo '
    '; + + echo ''; + + echo '
    '; + + } + + echo '
    '; + + echo '
    '; + + } + +} + /** * Tab option type. * @@ -2465,4 +3255,4 @@ function ot_type_upload( $args = array() ) { } /* End of file ot-functions-option-types.php */ -/* Location: ./includes/ot-functions-option-types.php */ \ No newline at end of file +/* Location: ./includes/ot-functions-option-types.php */ diff --git a/option-tree/includes/ot-functions-settings-page.php b/option-tree/includes/ot-functions-settings-page.php index aed4191..6f768ad 100644 --- a/option-tree/includes/ot-functions-settings-page.php +++ b/option-tree/includes/ot-functions-settings-page.php @@ -33,7 +33,7 @@ function ot_type_theme_options_ui() { echo '
    '; echo '

    '. __( 'Warning!', 'option-tree' ) . '

    '; - echo '

    ' . sprintf( __( 'Go to the %s page if you want to save data, this page is for adding settings.', 'option-tree' ), 'Appearance->Theme Options' ) . '

    '; + echo '

    ' . sprintf( __( 'Go to the %s page if you want to save data, this page is for adding settings.', 'option-tree' ), 'Appearance->Theme Options' ) . '

    '; echo '

    ' . sprintf( __( 'If you\'re unsure or not completely positive that you should be editing these settings, you should read the %s first.', 'option-tree' ), 'OptionTree->Documentation' ) . '

    '; echo '

    '. __( 'Things could break or be improperly displayed to the end-user if you do one of the following:', 'option-tree' ) . '

    '; echo '

    ' . __( 'Give two sections the same ID, give two settings the same ID, give two contextual help content areas the same ID, don\'t create any settings, or have a section at the end of the settings list.', 'option-tree' ) . '

    '; diff --git a/option-tree/includes/ot-functions.php b/option-tree/includes/ot-functions.php index a8031cc..f95496f 100644 --- a/option-tree/includes/ot-functions.php +++ b/option-tree/includes/ot-functions.php @@ -96,7 +96,7 @@ function ot_get_option( $option_id, $default = '' ) { } /** - * Echo Option. (via Github @joshlevinson) + * Echo Option. * * Helper function to echo the option value. * If no value has been saved, it echos $default. @@ -221,10 +221,13 @@ function ot_load_dynamic_css() { /* don't load in the admin */ if ( is_admin() ) return; - + /* grab a copy of the paths */ $ot_css_file_paths = get_option( 'ot_css_file_paths', array() ); - + if ( is_multisite() ) { + $ot_css_file_paths = get_blog_option( get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths ); + } + if ( ! empty( $ot_css_file_paths ) ) { $last_css = ''; @@ -262,9 +265,83 @@ function ot_load_dynamic_css() { } /** - * Registers the Theme Option page link for the admin bar. + * Enqueue the Google Fonts CSS. * - * @uses ot_register_settings() + * @return void + * + * @access public + * @since 2.5.0 + */ +if ( ! function_exists( 'ot_load_google_fonts_css' ) ) { + + function ot_load_google_fonts_css() { + + /* don't load in the admin */ + if ( is_admin() ) + return; + + $ot_google_fonts = get_theme_mod( 'ot_google_fonts', array() ); + $ot_set_google_fonts = get_theme_mod( 'ot_set_google_fonts', array() ); + $families = array(); + $subsets = array(); + $append = ''; + + if ( ! empty( $ot_set_google_fonts ) ) { + + foreach( $ot_set_google_fonts as $id => $fonts ) { + + foreach( $fonts as $font ) { + + // Can't find the font, bail! + if ( ! isset( $ot_google_fonts[$font['family']]['family'] ) ) { + continue; + } + + // Set variants & subsets + if ( ! empty( $font['variants'] ) && is_array( $font['variants'] ) ) { + + // Variants string + $variants = ':' . implode( ',', $font['variants'] ); + + // Add subsets to array + if ( ! empty( $font['subsets'] ) && is_array( $font['subsets'] ) ) { + foreach( $font['subsets'] as $subset ) { + $subsets[] = $subset; + } + } + + } + + // Add family & variants to array + if ( isset( $variants ) ) { + $families[] = str_replace( ' ', '+', $ot_google_fonts[$font['family']]['family'] ) . $variants; + } + + } + + } + + } + + if ( ! empty( $families ) ) { + + // Append all subsets to the path, unless the only subset is latin. + if ( ! empty( $subsets ) ) { + $subsets = implode( ',', array_unique( $subsets ) ); + if ( $subsets != 'latin' ) { + $append = '&subset=' . $subsets; + } + } + + wp_enqueue_style( 'ot-google-fonts', esc_url( '//fonts.googleapis.com/css?family=' . implode( '|', $families ) ) . $append, false, null ); + } + + } + +} + +/** + * Registers the Theme Option page link for the admin bar. * * @return void * diff --git a/option-tree/includes/ot-settings-api.php b/option-tree/includes/ot-settings-api.php index b609e14..ad9a8ff 100644 --- a/option-tree/includes/ot-settings-api.php +++ b/option-tree/includes/ot-settings-api.php @@ -49,9 +49,18 @@ public function __construct( $args ) { * @since 2.0 */ public function hooks() { - + + /** + * Filter the `admin_menu` action hook priority. + * + * @since 2.5.0 + * + * @param int $priority The priority. Default '10'. + */ + $priority = apply_filters( 'ot_admin_menu_priority', 10 ); + /* add pages & menu items */ - add_action( 'admin_menu', array( $this, 'add_page' ) ); + add_action( 'admin_menu', array( $this, 'add_page' ), $priority ); /* register sections */ add_action( 'admin_init', array( $this, 'add_sections' ) ); @@ -474,6 +483,7 @@ public function add_settings() { * @since 2.0 */ public function display_setting( $args = array() ) { + extract( $args ); /* get current saved data */ @@ -511,6 +521,12 @@ public function display_setting( $args = array() ) { 'get_option' => $get_option, ); + // Limit DB queries for Google Fonts. + if ( $type == 'google-fonts' ) { + ot_fetch_google_fonts(); + ot_set_google_fonts( $id, $field_value ); + } + /* get the option HTML */ echo ot_display_by_type( $_args ); } diff --git a/option-tree/languages/option-tree-et.mo b/option-tree/languages/option-tree-et.mo new file mode 100644 index 0000000000000000000000000000000000000000..366ec01009614c4fd3fc638bcbf8a542f65b4cae GIT binary patch literal 82450 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\n" +"Language-Team: Valen Designs\n" +"Language: et_EE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.7.4\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;" +"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" +"X-Poedit-Basepath: .\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-SearchPath-0: ..\n" +"X-Poedit-SearchPathExcluded-0: ../.git\n" +"X-Poedit-SearchPathExcluded-1: ../composer.json\n" +"X-Poedit-SearchPathExcluded-2: ../assets\n" + +#: ../includes/ot-cleanup-api.php:84 ../includes/ot-cleanup-api.php:101 +#: ../includes/ot-cleanup-api.php:130 +msgid "OptionTree Cleanup" +msgstr "OptionTree puhastus" + +#: ../includes/ot-cleanup-api.php:101 +#, php-format +msgid "" +"OptionTree has outdated data that should be removed. Please go to %s for " +"more information." +msgstr "" +"OptionTreel on aegunud andmeid, mis tuleks eemaldada. Lisainformatsiooni " +"saamiseks mine palun %s." + +#: ../includes/ot-cleanup-api.php:136 +msgid "Multiple Media Posts" +msgstr "Mitme meediaga postitused" + +#: ../includes/ot-cleanup-api.php:138 +#, php-format +msgid "" +"There are currently %s OptionTree media posts in your database. At some " +"point in the past, a version of OptionTree added multiple %s media post " +"objects cluttering up your %s table. There is no associated risk or harm " +"that these posts have caused other than to add size to your overall " +"database. Thankfully, there is a way to remove all these orphaned media " +"posts and get your database cleaned up." +msgstr "" +"Sul on hetkel %s OptionTree meedia postitust andmebaasis. Millalgi varem " +"lisas OptionTree mitu %s meedia postitust, risustades %s tabelit. Nende " +"postitustega ei kaasne mingeid riske või kahju peale selle, et andmebaasi " +"maht on suurem. Õnneks on nende orbudeks jäänud postituste eemaldamiseks " +"moodus olemas, nii et saab andmebaasi jälle puhtaks." + +#: ../includes/ot-cleanup-api.php:140 +#, php-format +msgid "" +"By clicking the button below, OptionTree will delete %s records and " +"consolidate them into one single OptionTree media post for uploading " +"attachments to. Additionally, the attachments will have their parent ID " +"updated to the correct media post." +msgstr "" +"Vajutades allolevat nuppu, kustutab OptionTree %s kirjet ning ühendab nad " +"ainsasse OptionTree meedia postitusse, kuhu manuseid üles laaditakse. Lisaks " +"määratakse nende manuste vanema ID-le õige väärtus." + +#: ../includes/ot-cleanup-api.php:142 +msgid "" +"This could take a while to fully process depending on how many records you " +"have in your database, so please be patient and wait for the script to " +"finish." +msgstr "" +"See protsess võtab aega sõltuvalt andmebaasis olevate kirjete arvust, seega " +"palun olge kannatlikud ja laske skriptil oma töö lõpetada." + +#: ../includes/ot-cleanup-api.php:144 +#, php-format +msgid "" +"%s Your server is running in safe mode. Which means this page will " +"automatically reload after deleting %s posts, you can filter this number " +"using %s if your server is having trouble processing that many at one time." +msgstr "" +"%s Sinu server töötab turvarežiimis, mistõttu see lehekülg laetakse peale %s " +"postituse kustutamist uuesti. Kui serveril on nii korraga nii mitme " +"postituse töötlemisega probleeme, siis on seda numbrit võimalik %s filtriga " +"muuta." + +#: ../includes/ot-cleanup-api.php:146 +msgid "Consolidate Posts" +msgstr "Konsolideeri postitused" + +#: ../includes/ot-cleanup-api.php:174 +msgid "Reloading..." +msgstr "Värskendame..." + +#: ../includes/ot-cleanup-api.php:210 +msgid "Clean up script has completed, the page will now reload..." +msgstr "Puhastusskript on töö lõpetanud, leht laeb end kohe uuesti..." + +#: ../includes/ot-cleanup-api.php:230 +msgid "Outdated Table" +msgstr "Aegunud tabel" + +#: ../includes/ot-cleanup-api.php:232 +#, php-format +msgid "" +"If you have upgraded from an old 1.x version of OptionTree at some point, " +"you have an extra %s table in your database that can be removed. It's not " +"hurting anything, but does not need to be there. If you want to remove it. " +"Click the button below." +msgstr "" +"Kui oled millalgi OptionTreed uuendanud vanalt 1.x versioonilt, on sul " +"andmebaasis üleliigne tabel %s, mille saaks eemaldada. See ei tee midagi " +"halba ning ei pea seal olema. Eemaldamiseks vajuta allolevat nuppu." + +#: ../includes/ot-cleanup-api.php:234 +msgid "Drop Table" +msgstr "Eemalda tabel" + +#: ../includes/ot-cleanup-api.php:238 +#, php-format +msgid "Deleting the outdated and unused %s table..." +msgstr "Kustutan aegunud ja kasutamata tabeli %s..." + +#: ../includes/ot-cleanup-api.php:244 +#, php-format +msgid "The %s table has been successfully deleted. The page will now reload..." +msgstr "Tabel %s kustutatu edukalt. Leht laetakse kohe uuesti..." + +#: ../includes/ot-cleanup-api.php:256 +#, php-format +msgid "Something went wrong. The %s table was not deleted." +msgstr "Midagi läks valesti. Tabelit %s ei kustutatud." + +#: ../includes/ot-functions-admin.php:50 ../includes/ot-functions-admin.php:51 +#: ../includes/ot-functions-admin.php:169 +#: ../includes/ot-functions-admin.php:193 ../includes/ot-functions.php:361 +msgid "Theme Options" +msgstr "Teema seaded" + +#: ../includes/ot-functions-admin.php:56 +#: ../includes/ot-functions-admin.php:126 +#: ../includes/ot-functions-admin.php:220 +msgid "Theme Options updated." +msgstr "Teema seaded on uuendatud." + +#: ../includes/ot-functions-admin.php:57 +#: ../includes/ot-functions-admin.php:127 +#: ../includes/ot-functions-admin.php:221 +msgid "Theme Options reset." +msgstr "Teema valikute algseadistamine." + +#: ../includes/ot-functions-admin.php:58 +#: ../includes/ot-functions-settings-page.php:94 +#: ../includes/ot-functions-settings-page.php:133 +msgid "Save Changes" +msgstr "Salvesta muudatused" + +#: ../includes/ot-functions-admin.php:97 +msgid "" +"The Theme Options UI Builder is being overridden by a custom file in your " +"theme. Any changes you make via the UI Builder will not be saved." +msgstr "" +"Teema kaustas on kohandatud fail, mistõttu Teema Valikute ehitaja " +"kasutajaliideses tehtud muudatused ei salvestu." + +#: ../includes/ot-functions-admin.php:109 +#: ../includes/ot-functions-admin.php:110 +#: ../includes/ot-functions-docs-page.php:821 +msgid "OptionTree" +msgstr "OptionTree" + +#: ../includes/ot-functions-admin.php:120 +#: ../includes/ot-functions-admin.php:121 +#: ../includes/ot-functions-admin.php:163 +#: ../includes/ot-functions-admin.php:187 +#: ../includes/ot-functions-docs-page.php:49 +msgid "Settings" +msgstr "Seaded" + +#: ../includes/ot-functions-admin.php:128 +#: ../includes/ot-functions-admin.php:222 +msgid "Save Settings" +msgstr "Salvesta seaded" + +#: ../includes/ot-functions-admin.php:133 +msgid "Theme Options UI" +msgstr "Teema valikute kasutajaliides" + +#: ../includes/ot-functions-admin.php:137 +msgid "Import" +msgstr "Impordi" + +#: ../includes/ot-functions-admin.php:141 +msgid "Export" +msgstr "Ekspordi" + +#: ../includes/ot-functions-admin.php:145 +#: ../includes/ot-functions-admin.php:175 +#: ../includes/ot-functions-admin.php:199 +msgid "Layouts" +msgstr "Paigutused" + +#: ../includes/ot-functions-admin.php:151 +msgid "Theme Options UI Builder" +msgstr "Teema valikute kasutajaliidese ehitaja" + +#: ../includes/ot-functions-admin.php:157 +msgid "Settings XML" +msgstr "Seadete XML" + +#: ../includes/ot-functions-admin.php:181 +msgid "Settings PHP File" +msgstr "Seadete PHP fail" + +#: ../includes/ot-functions-admin.php:205 +msgid "Layout Management" +msgstr "Paigutuste haldus" + +#: ../includes/ot-functions-admin.php:214 +#: ../includes/ot-functions-admin.php:215 +msgid "Documentation" +msgstr "Dokumentatsioon" + +#: ../includes/ot-functions-admin.php:227 +msgid "Creating Options" +msgstr "Seadete loomine" + +#: ../includes/ot-functions-admin.php:231 +msgid "Option Types" +msgstr "Valikute tüübid" + +#: ../includes/ot-functions-admin.php:235 +msgid "Function References" +msgstr "Funktsioonide ülevaade" + +#: ../includes/ot-functions-admin.php:239 +#: ../includes/ot-functions-admin.php:281 +#: ../includes/ot-functions-settings-page.php:366 +msgid "Theme Mode" +msgstr "Teema režiim" + +#: ../includes/ot-functions-admin.php:243 +#: ../includes/ot-functions-admin.php:287 +msgid "Meta Boxes" +msgstr "Meta kastid" + +#: ../includes/ot-functions-admin.php:247 +msgid "Code Examples" +msgstr "Koodinäited" + +#: ../includes/ot-functions-admin.php:251 +msgid "Layouts Overview" +msgstr "Paigutuste ülevaade" + +#: ../includes/ot-functions-admin.php:257 +msgid "Overview of available Theme Option fields." +msgstr "Võimalike teema valikute väljade ülevaade." + +#: ../includes/ot-functions-admin.php:263 +msgid "Option types in alphabetical order & hooks to filter them." +msgstr "" +"Valikutüübid tähestikulises järjekorras ja konksud nende filtreerimiseks." + +#: ../includes/ot-functions-admin.php:269 +msgid "Function Reference:ot_get_option()" +msgstr "Funktsiooni ülevaade:ot_get_option()" + +#: ../includes/ot-functions-admin.php:275 +msgid "Function Reference:get_option_tree()" +msgstr "Funktsiooni ülevaade:get_option_tree()" + +#: ../includes/ot-functions-admin.php:293 +msgid "Code examples for front-end development." +msgstr "Koodinäited veebilehe välise poole arenduseks." + +#: ../includes/ot-functions-admin.php:299 +msgid "What's a layout anyhow?" +msgstr "Mis siis ikkagi on paigutus?" + +#: ../includes/ot-functions-admin.php:502 +#: ../includes/ot-functions-admin.php:614 +#: ../includes/ot-functions-admin.php:683 +#, php-format +msgid "The %s input field for %s only allows numeric values." +msgstr "%s sisendväli %s jaoks lubab vaid numbrilisi väärtusi." + +#: ../includes/ot-functions-admin.php:512 +msgid "The Colorpicker only allows valid hexadecimal values." +msgstr "" +"Värvi valija lubab vaid sobivaid kuueteistkümnendiksüsteemis väärtuseid." + +#: ../includes/ot-functions-admin.php:566 +#, php-format +msgid "The %s Colorpicker only allows valid hexadecimal values." +msgstr "%s värvi valija lubab väärtuseid vaid kuueteistkümnendiksüsteemis." + +#: ../includes/ot-functions-admin.php:849 +#: ../includes/ot-functions-docs-page.php:398 +#: ../includes/ot-functions-settings-page.php:170 ../ot-loader.php:782 +msgid "Send to OptionTree" +msgstr "Saada OptionTree-le" + +#: ../includes/ot-functions-admin.php:850 +#: ../includes/ot-functions-option-types.php:257 +#: ../includes/ot-functions-option-types.php:3243 +msgid "Remove Media" +msgstr "Eemalda meedia" + +#: ../includes/ot-functions-admin.php:851 +msgid "Are you sure you want to reset back to the defaults?" +msgstr "Kas olete kindel, et soovite taastada algseaded?" + +#: ../includes/ot-functions-admin.php:852 +msgid "You can't remove this! But you can edit the values." +msgstr "Te ei saa seda eemaldada! Väärtuste muutmine on lubatud." + +#: ../includes/ot-functions-admin.php:853 +msgid "Are you sure you want to remove this?" +msgstr "Kas olete kindel, et soovite seda eemaldada?" + +#: ../includes/ot-functions-admin.php:854 +msgid "Are you sure you want to activate this layout?" +msgstr "Kas olete kindel, et soovite seda paigutust aktiveerida?" + +#: ../includes/ot-functions-admin.php:855 +msgid "Sorry, you can't have settings three levels deep." +msgstr "Kahjuks ei saa sätteid määrata kolmanda taseme sügavusega." + +#: ../includes/ot-functions-admin.php:856 +#: ../includes/ot-functions-option-types.php:1208 +msgid "Delete Gallery" +msgstr "Kustuta galerii" + +#: ../includes/ot-functions-admin.php:857 +#: ../includes/ot-functions-option-types.php:1209 +msgid "Edit Gallery" +msgstr "Muuda galeriid" + +#: ../includes/ot-functions-admin.php:858 +#: ../includes/ot-functions-option-types.php:1216 +msgid "Create Gallery" +msgstr "Loo galerii" + +#: ../includes/ot-functions-admin.php:859 +msgid "Are you sure you want to delete this Gallery?" +msgstr "Kas olete kindel, et soovite seda galeriid kustutada?" + +#: ../includes/ot-functions-admin.php:860 +msgid "Today" +msgstr "Täna" + +#: ../includes/ot-functions-admin.php:861 +msgid "Now" +msgstr "Praegu" + +#: ../includes/ot-functions-admin.php:862 +msgid "Close" +msgstr "Sulge" + +#: ../includes/ot-functions-admin.php:863 +msgid "Featured Image" +msgstr "Tunuuspilt" + +#: ../includes/ot-functions-admin.php:864 +#: ../includes/ot-functions-admin.php:3247 +#: ../includes/ot-functions-admin.php:3308 +msgid "Image" +msgstr "Pilt" + +#: ../includes/ot-functions-admin.php:932 +msgid "Option Tree" +msgstr "Option Tree" + +#: ../includes/ot-functions-admin.php:1069 +msgid "General" +msgstr "Üldseaded" + +#: ../includes/ot-functions-admin.php:1075 +msgid "Sample Text Field Label" +msgstr "Tekstisisendi nimetuse näide" + +#: ../includes/ot-functions-admin.php:1076 +msgid "Description for the sample text field." +msgstr "Tekstisisendi kirjelduse näide" + +#: ../includes/ot-functions-admin.php:2318 +msgid "Settings updated." +msgstr "Seaded on uuendatud." + +#: ../includes/ot-functions-admin.php:2322 +msgid "Settings could not be saved." +msgstr "Seadeid ei suudetud uuendada." + +#: ../includes/ot-functions-admin.php:2330 +msgid "Settings Imported." +msgstr "Seaded on imporditud." + +#: ../includes/ot-functions-admin.php:2334 +msgid "Settings could not be imported." +msgstr "Seadeid ei suudetud importida." + +#: ../includes/ot-functions-admin.php:2341 +msgid "Data Imported." +msgstr "Andmed on imporditud." + +#: ../includes/ot-functions-admin.php:2345 +msgid "Data could not be imported." +msgstr "Andmeid ei suudetud importida." + +#: ../includes/ot-functions-admin.php:2353 +msgid "Layouts Imported." +msgstr "Paigutused on imporditud." + +#: ../includes/ot-functions-admin.php:2357 +msgid "Layouts could not be imported." +msgstr "Paigutusi ei suudetud importida." + +#: ../includes/ot-functions-admin.php:2365 +msgid "Layouts Updated." +msgstr "Paigutused on uuendatud." + +#: ../includes/ot-functions-admin.php:2369 +msgid "Layouts could not be updated." +msgstr "Paigutusi ei suudetud uuendada." + +#: ../includes/ot-functions-admin.php:2373 +msgid "Layouts have been deleted." +msgstr "Paigutused on kustutatud." + +#: ../includes/ot-functions-admin.php:2379 +msgid "Layout activated." +msgstr "Paigutus on aktiveeritud." + +#: ../includes/ot-functions-admin.php:2418 +#: ../includes/ot-functions-docs-page.php:110 +msgid "Background" +msgstr "Taust" + +#: ../includes/ot-functions-admin.php:2419 +#: ../includes/ot-functions-docs-page.php:113 +msgid "Border" +msgstr "Ääris" + +#: ../includes/ot-functions-admin.php:2420 +#: ../includes/ot-functions-docs-page.php:116 +msgid "Box Shadow" +msgstr "Kasti vari" + +#: ../includes/ot-functions-admin.php:2421 +#: ../includes/ot-functions-docs-page.php:119 +msgid "Category Checkbox" +msgstr "Kategooriate valikkastid" + +#: ../includes/ot-functions-admin.php:2422 +#: ../includes/ot-functions-docs-page.php:122 +msgid "Category Select" +msgstr "Kategooria rippvalik" + +#: ../includes/ot-functions-admin.php:2423 +#: ../includes/ot-functions-docs-page.php:125 +msgid "Checkbox" +msgstr "Valikkastid" + +#: ../includes/ot-functions-admin.php:2424 +#: ../includes/ot-functions-docs-page.php:128 +msgid "Colorpicker" +msgstr "Värvivalik" + +#: ../includes/ot-functions-admin.php:2425 +#: ../includes/ot-functions-docs-page.php:131 +msgid "Colorpicker Opacity" +msgstr "Värvivalija läbipaistmatus" + +#: ../includes/ot-functions-admin.php:2426 +#: ../includes/ot-functions-docs-page.php:134 +msgid "CSS" +msgstr "CSS" + +#: ../includes/ot-functions-admin.php:2427 +#: ../includes/ot-functions-docs-page.php:153 +msgid "Custom Post Type Checkbox" +msgstr "Enda loodud postitüübi valikkastid" + +#: ../includes/ot-functions-admin.php:2428 +#: ../includes/ot-functions-docs-page.php:156 +msgid "Custom Post Type Select" +msgstr "Enda loodud postitüübi rippvalik" + +#: ../includes/ot-functions-admin.php:2429 +#: ../includes/ot-functions-docs-page.php:159 +msgid "Date Picker" +msgstr "Kuupäev valija" + +#: ../includes/ot-functions-admin.php:2430 +#: ../includes/ot-functions-docs-page.php:162 +msgid "Date Time Picker" +msgstr "Kuupäeva ja kellaaja valija" + +#: ../includes/ot-functions-admin.php:2431 +#: ../includes/ot-functions-docs-page.php:165 +msgid "Dimension" +msgstr "Mõõtmed" + +#: ../includes/ot-functions-admin.php:2432 +#: ../includes/ot-functions-admin.php:5406 +#: ../includes/ot-functions-docs-page.php:168 +msgid "Gallery" +msgstr "Galerii" + +#: ../includes/ot-functions-admin.php:2433 +#: ../includes/ot-functions-docs-page.php:171 +msgid "Google Fonts" +msgstr "Google Fondid" + +#: ../includes/ot-functions-admin.php:2434 +#: ../includes/ot-functions-docs-page.php:174 +msgid "JavaScript" +msgstr "JavaScript" + +#: ../includes/ot-functions-admin.php:2435 +#: ../includes/ot-functions-docs-page.php:177 +msgid "Link Color" +msgstr "Lingi värv" + +#: ../includes/ot-functions-admin.php:2436 +#: ../includes/ot-functions-docs-page.php:180 +msgid "List Item" +msgstr "Nimekirja element" + +#: ../includes/ot-functions-admin.php:2437 +#: ../includes/ot-functions-docs-page.php:183 +msgid "Measurement" +msgstr "Mõõt" + +#: ../includes/ot-functions-admin.php:2438 +#: ../includes/ot-functions-docs-page.php:214 +msgid "Numeric Slider" +msgstr "Numbriskaala" + +#: ../includes/ot-functions-admin.php:2439 +#: ../includes/ot-functions-docs-page.php:217 +msgid "On/Off" +msgstr "Sees/väljas" + +#: ../includes/ot-functions-admin.php:2440 +#: ../includes/ot-functions-docs-page.php:220 +msgid "Page Checkbox" +msgstr "Lehekülgede valikkastid" + +#: ../includes/ot-functions-admin.php:2441 +#: ../includes/ot-functions-docs-page.php:223 +msgid "Page Select" +msgstr "Lehekülje rippvalik" + +#: ../includes/ot-functions-admin.php:2442 +#: ../includes/ot-functions-docs-page.php:226 +msgid "Post Checkbox" +msgstr "Postituste valikkastid" + +#: ../includes/ot-functions-admin.php:2443 +#: ../includes/ot-functions-docs-page.php:229 +msgid "Post Select" +msgstr "Postituse rippvalik" + +#: ../includes/ot-functions-admin.php:2444 +#: ../includes/ot-functions-docs-page.php:232 +msgid "Radio" +msgstr "Raadiokastid" + +#: ../includes/ot-functions-admin.php:2445 +#: ../includes/ot-functions-docs-page.php:235 +msgid "Radio Image" +msgstr "Pildiga raadiokastid" + +#: ../includes/ot-functions-admin.php:2446 +#: ../includes/ot-functions-docs-page.php:262 +msgid "Select" +msgstr "Rippvalik" + +#: ../includes/ot-functions-admin.php:2447 +#: ../includes/ot-functions-docs-page.php:265 +msgid "Sidebar Select" +msgstr "Küljeriba rippvalik" + +#: ../includes/ot-functions-admin.php:2448 +#: ../includes/ot-functions-docs-page.php:269 +msgid "Slider" +msgstr "Slaidiesitaja" + +#: ../includes/ot-functions-admin.php:2449 +#: ../includes/ot-functions-docs-page.php:272 +msgid "Social Links" +msgstr "Sotsiaalmeedia" + +#: ../includes/ot-functions-admin.php:2450 +#: ../includes/ot-functions-docs-page.php:275 +msgid "Spacing" +msgstr "Vahed" + +#: ../includes/ot-functions-admin.php:2451 +#: ../includes/ot-functions-docs-page.php:278 +msgid "Tab" +msgstr "Sakk" + +#: ../includes/ot-functions-admin.php:2452 +#: ../includes/ot-functions-docs-page.php:281 +msgid "Tag Checkbox" +msgstr "Sildi valikkastid" + +#: ../includes/ot-functions-admin.php:2453 +#: ../includes/ot-functions-docs-page.php:284 +msgid "Tag Select" +msgstr "Sildi rippvalik" + +#: ../includes/ot-functions-admin.php:2454 +#: ../includes/ot-functions-docs-page.php:287 +msgid "Taxonomy Checkbox" +msgstr "Taksonoomia valikkastid" + +#: ../includes/ot-functions-admin.php:2455 +#: ../includes/ot-functions-docs-page.php:290 +msgid "Taxonomy Select" +msgstr "Taksonoomia rippvalik" + +#: ../includes/ot-functions-admin.php:2456 +#: ../includes/ot-functions-docs-page.php:293 +msgid "Text" +msgstr "Tekstisisend" + +#: ../includes/ot-functions-admin.php:2457 +#: ../includes/ot-functions-docs-page.php:296 +msgid "Textarea" +msgstr "Tekstiväli" + +#: ../includes/ot-functions-admin.php:2458 +#: ../includes/ot-functions-docs-page.php:355 +msgid "Textarea Simple" +msgstr "Lihtne tekstiväli" + +#: ../includes/ot-functions-admin.php:2459 +#: ../includes/ot-functions-docs-page.php:371 +msgid "Textblock" +msgstr "Tekstiblokk" + +#: ../includes/ot-functions-admin.php:2460 +#: ../includes/ot-functions-docs-page.php:374 +msgid "Textblock Titled" +msgstr "Pealkirjaga tekstiblokk" + +#: ../includes/ot-functions-admin.php:2461 +#: ../includes/ot-functions-docs-page.php:377 +msgid "Typography" +msgstr "Tüpograafia" + +#: ../includes/ot-functions-admin.php:2462 +#: ../includes/ot-functions-docs-page.php:397 +msgid "Upload" +msgstr "Lae üles" + +#: ../includes/ot-functions-admin.php:3192 +msgid "Left Sidebar" +msgstr "Vasak küljendusmenüü" + +#: ../includes/ot-functions-admin.php:3197 +msgid "Right Sidebar" +msgstr "Parem küljendusmenüü" + +#: ../includes/ot-functions-admin.php:3202 +msgid "Full Width (no sidebar)" +msgstr "Täies pikkuses (ilma küljendusmenüüta)" + +#: ../includes/ot-functions-admin.php:3207 +msgid "Dual Sidebar" +msgstr "Topelt küljendusmenüü" + +#: ../includes/ot-functions-admin.php:3212 +msgid "Left Dual Sidebar" +msgstr "Kaks küljendusmenüüd vasakul" + +#: ../includes/ot-functions-admin.php:3217 +msgid "Right Dual Sidebar" +msgstr "Kaks küljendusmenüüd paremal" + +#: ../includes/ot-functions-admin.php:3258 +#: ../includes/ot-functions-admin.php:3314 +#: ../includes/ot-functions-admin.php:5446 +msgid "Link" +msgstr "Viide" + +#: ../includes/ot-functions-admin.php:3269 +#: ../includes/ot-functions-admin.php:3320 +#: ../includes/ot-functions-docs-page.php:43 +#: ../includes/ot-functions-docs-page.php:428 +#: ../includes/ot-functions-docs-page.php:478 +msgid "Description" +msgstr "Kirjeldus" + +#: ../includes/ot-functions-admin.php:3384 +msgid "Name" +msgstr "Nimetus" + +#: ../includes/ot-functions-admin.php:3385 +msgid "Enter the name of the social website." +msgstr "Sisesta sotsiaalmeedia veebilehe nimi." + +#: ../includes/ot-functions-admin.php:3393 +msgid "Enter the text shown in the title attribute of the link." +msgstr "Sisesta tekst, mida näidatakse lingi pealkirja atribuudis." + +#: ../includes/ot-functions-admin.php:3399 +#, php-format +msgid "" +"Enter a link to the profile or page on the social website. Remember to add " +"the %s part to the front of the link." +msgstr "" +"Sisesta link profiilile või lehele sellel sotsiaalmeedia veebilehel. Ära " +"unusta lisada lingi ette %s osa." + +#: ../includes/ot-functions-admin.php:3967 +msgid "edit" +msgstr "muuda" + +#: ../includes/ot-functions-admin.php:3968 +#: ../includes/ot-functions-admin.php:4036 +#: ../includes/ot-functions-admin.php:4037 +#: ../includes/ot-functions-admin.php:4199 +#: ../includes/ot-functions-admin.php:4200 +#: ../includes/ot-functions-admin.php:4265 +#: ../includes/ot-functions-admin.php:4266 +#: ../includes/ot-functions-admin.php:4393 +#: ../includes/ot-functions-admin.php:4394 +#: ../includes/ot-functions-admin.php:4546 +#: ../includes/ot-functions-admin.php:4547 +msgid "Edit" +msgstr "Muuda" + +#: ../includes/ot-functions-admin.php:3970 +#: ../includes/ot-functions-admin.php:3971 +#: ../includes/ot-functions-admin.php:4039 +#: ../includes/ot-functions-admin.php:4040 +#: ../includes/ot-functions-admin.php:4202 +#: ../includes/ot-functions-admin.php:4203 +#: ../includes/ot-functions-admin.php:4268 +#: ../includes/ot-functions-admin.php:4269 +#: ../includes/ot-functions-admin.php:4327 +#: ../includes/ot-functions-admin.php:4328 +#: ../includes/ot-functions-admin.php:4396 +#: ../includes/ot-functions-admin.php:4397 +#: ../includes/ot-functions-admin.php:4549 +#: ../includes/ot-functions-admin.php:4550 +msgid "Delete" +msgstr "Kustuta" + +#: ../includes/ot-functions-admin.php:3977 +msgid "" +"Section Title: Displayed as a menu item on the Theme " +"Options page." +msgstr "" +"Sektsiooni pealkiri: Näidatakse menüü elemendina teema " +"valikute lehel." + +#: ../includes/ot-functions-admin.php:3985 +msgid "" +"Section ID: A unique lower case alphanumeric string, " +"underscores allowed." +msgstr "" +"Sektsiooni ID: unikaalne väiketähtedega tähtnumbriline " +"string, alakriipsud lubatud." + +#: ../includes/ot-functions-admin.php:4046 +msgid "" +"Label: Displayed as the label of a form element on the " +"Theme Options page." +msgstr "" +"Nimetus: Näidatakse kui vormi elemendi nimetust teema " +"valikute lehel." + +#: ../includes/ot-functions-admin.php:4054 +#: ../includes/ot-functions-admin.php:4283 +msgid "" +"ID: A unique lower case alphanumeric string, underscores " +"allowed." +msgstr "" +"ID: unikaalne väiketähtedega tähtnumbriline string, " +"alakriipsud lubatud." + +#: ../includes/ot-functions-admin.php:4062 +msgid "" +"Type: Choose one of the available option types from the " +"dropdown." +msgstr "" +"Tüüp: vali rippmenüüst üks pakutavatest valiku tüüpidest." + +#: ../includes/ot-functions-admin.php:4073 +msgid "" +"Description: Enter a detailed description for the users to " +"read on the Theme Options page, HTML is allowed. This is also where you " +"enter content for both the Textblock & Textblock Titled option types." +msgstr "" +"Kirjeldus: sisesta detailne kirjeldus, mida kasutajad " +"saavad lugeda teema valikute lehel. HTML on lubatud. See on ühtlasi ka koht, " +"kuhu sisestada tekstibloki ja pealkirjaga tekstibloki valikutüüpide sisu." + +#: ../includes/ot-functions-admin.php:4081 +msgid "" +"Choices: This will only affect the following option types: " +"Checkbox, Radio, Select & Select Image." +msgstr "" +"Valikud: mõjutab vaid järgnevaid valikutüüpe: valikkastid, " +"raadiokastid, rippvalik ja pildi valik." + +#: ../includes/ot-functions-admin.php:4086 +msgid "Add Choice" +msgstr "Lisa valik" + +#: ../includes/ot-functions-admin.php:4092 +msgid "" +"Settings: This will only affect the List Item option type." +msgstr "Sätted: mõjutab vaid nimekirja elemendi valikutüüpi." + +#: ../includes/ot-functions-admin.php:4097 +#: ../includes/ot-functions-settings-page.php:93 +msgid "Add Setting" +msgstr "Lisa säte" + +#: ../includes/ot-functions-admin.php:4103 +msgid "" +"Standard: Setting the standard value for your option only " +"works for some option types. Read the OptionTree->Documentation " +"for more information on which ones." +msgstr "" +"Standard. standardväärtuse määramine mõjub vaid mõnele " +"valikutüübile. Lisainfot leiad OptionTree->Dokumentatsioon " +"lehelt." + +#: ../includes/ot-functions-admin.php:4111 +msgid "" +"Rows: Enter a numeric value for the number of rows in your " +"textarea. This will only affect the following option types: CSS, Textarea, & " +"Textarea Simple." +msgstr "" +"Ridu: sisesta numbriline väärtus, mis määrab ridade arvu " +"tekstiväljal. Mõjutab vaid järgnevaid valikutüüpe: CSS, tekstiväli ja lihtne " +"tekstiväli." + +#: ../includes/ot-functions-admin.php:4119 +msgid "" +"Post Type: Add a comma separated list of post type like " +"'post,page'. This will only affect the following option types: Custom Post " +"Type Checkbox, & Custom Post Type Select." +msgstr "" +"Postituse tüüp: lisa siia komaga eraldatud loend " +"postitüüpidest - näiteks 'post,page'. See mõjutab vaid järgnevaid " +"valikutüüpe: enda loodud postitüübi valikkastid ja enda loodud postitüübi " +"rippvalik." + +#: ../includes/ot-functions-admin.php:4127 +msgid "" +"Taxonomy: Add a comma separated list of any registered " +"taxonomy like 'category,post_tag'. This will only affect the following " +"option types: Taxonomy Checkbox, & Taxonomy Select." +msgstr "" +"Taksonoomia: lisa komaga eraldatud loend registreeritud " +"taksonoomiatest nagu 'category,post_tag'. See mõjutab vaid järgnevaid " +"valikutüüpe: taksonoomia valikukastid & taksonoomia rippvalik." + +#: ../includes/ot-functions-admin.php:4135 +msgid "" +"Min, Max, & Step: Add a comma separated list of options in " +"the following format 0,100,1 (slide from 0-100 in " +"intervals of 1). The three values represent the minimum, " +"maximum, and step options and will only affect the Numeric Slider option " +"type." +msgstr "" +"min, max & aste: lisa komaga eraldatud loend valikutest " +"järgnevas formaadis: 0,100,1 ( liugle vahemikus 0-100 intervalliga 1 ). Need kolm väärtust näitavad miinimumi, " +"maksimumi ja astme valikuid ning mõjutavad vaid numbriliuguri valikutüüpi." + +#: ../includes/ot-functions-admin.php:4143 +msgid "CSS Class: Add and optional class to this option type." +msgstr "" +"CSS klass: Soovi korral lisa sellele valikutüübile klass." + +#: ../includes/ot-functions-admin.php:4151 +#, php-format +msgid "" +"Condition: Add a comma separated list (no spaces) of " +"conditions in which the field will be visible, leave this setting empty to " +"always show the field. In these examples, value is a " +"placeholder for your condition, which can be in the form of %s." +msgstr "" +"Tingimus: lisa komaga eraldatud loend ( ilma tühikuteta ) " +"tingimustest, mille korral see väli on nähtav. Välja alati näitamiseks jäta " +"tühjaks. Nendes näidetes on value kohahoidja teie tingimustele, " +"mis võivad olla kujul %s." + +#: ../includes/ot-functions-admin.php:4159 +msgid "" +"Operator: Choose the logical operator to compute the result " +"of the conditions." +msgstr "" +"Operaator: vali loogiline operaator, millega arvutada välja " +"tingimuste tulemus." + +#: ../includes/ot-functions-admin.php:4162 +#: ../includes/ot-functions-docs-page.php:111 +#: ../includes/ot-functions-docs-page.php:378 +msgid "and" +msgstr "ja" + +#: ../includes/ot-functions-admin.php:4163 +msgid "or" +msgstr "või" + +#: ../includes/ot-functions-admin.php:4209 +#: ../includes/ot-functions-docs-page.php:29 +msgid "Label" +msgstr "Nimetus" + +#: ../includes/ot-functions-admin.php:4219 +msgid "Value" +msgstr "Väärtus" + +#: ../includes/ot-functions-admin.php:4229 +msgid "Image Source (Radio Image only)" +msgstr "Pildi allikas ( ainult pildiga raadiovaliku jaoks )" + +#: ../includes/ot-functions-admin.php:4275 +msgid "" +"Title: Displayed as a contextual help menu item on the " +"Theme Options page." +msgstr "" +"Pealkiri: kuvatakse kui kontekstipõhine abimenüü element " +"teema valikute lehel." + +#: ../includes/ot-functions-admin.php:4291 +msgid "" +"Content: Enter the HTML content about this contextual help " +"item displayed on the Theme Option page for end users to read." +msgstr "" +"Sisu: sisesta HTML sisu selle kontekstipõhise elemendi " +"kohta. Näidatakse teema valikute lehel lõppkasutajatele." + +#: ../includes/ot-functions-admin.php:4322 +msgid "Layout" +msgstr "Paigutus" + +#: ../includes/ot-functions-admin.php:4324 +#: ../includes/ot-functions-admin.php:4325 +msgid "Activate" +msgstr "Aktiveeri" + +#: ../includes/ot-functions-admin.php:4361 ../includes/ot-meta-box-api.php:223 +#: ../includes/ot-settings-api.php:610 +msgid "Title" +msgstr "Pealkiri" + +#: ../includes/ot-functions-admin.php:4701 +msgid "New Layout" +msgstr "Uus paigutus" + +#: ../includes/ot-functions-admin.php:5455 +msgid "Link URL" +msgstr "Viide" + +#: ../includes/ot-functions-admin.php:5462 +msgid "Link Title" +msgstr "Lingi pealkiri" + +#: ../includes/ot-functions-admin.php:5492 +msgid "Quote" +msgstr "Tsitaat" + +#: ../includes/ot-functions-admin.php:5501 +msgid "Source Name (ex. author, singer, actor)" +msgstr "Allika nimi (nt autor, laulja, näitleja)" + +#: ../includes/ot-functions-admin.php:5508 +msgid "Source URL" +msgstr "Allika URL" + +#: ../includes/ot-functions-admin.php:5515 +msgid "Source Title (ex. book, song, movie)" +msgstr "Allika pealkiri (nt raamat, laul, film)" + +#: ../includes/ot-functions-admin.php:5522 +msgid "Source Date" +msgstr "Allika kuupäev" + +#: ../includes/ot-functions-admin.php:5552 +msgid "Video" +msgstr "Video" + +#: ../includes/ot-functions-admin.php:5561 +#, php-format +msgid "" +"Embed video from services like Youtube, Vimeo, or Hulu. You can find a list " +"of supported oEmbed sites in the %1$s. Alternatively, you could use the " +"built-in %2$s shortcode." +msgstr "" +"Lisa video välisest allikast, nagu näiteks Youtube, Vimeo või Hulu. " +"Nimekirja toetatud oEmbed veebilehtedest leiad %1$s. Teine variant oleks " +"kasutada sisse ehitatud lühikoodi %2$s." + +#: ../includes/ot-functions-admin.php:5561 +#: ../includes/ot-functions-admin.php:5600 +msgid "Wordpress Codex" +msgstr "Wordpress Codex" + +#: ../includes/ot-functions-admin.php:5591 +msgid "Audio" +msgstr "Audio" + +#: ../includes/ot-functions-admin.php:5600 +#, php-format +msgid "" +"Embed audio from services like SoundCloud and Rdio. You can find a list of " +"supported oEmbed sites in the %1$s. Alternatively, you could use the built-" +"in %2$s shortcode." +msgstr "" +"Lisa heli teenustest SoundCloud, Rdio või teistest sarnastest. Nimekirja " +"toetatud oEmbed veebilehtedest leiad %1$s. Teine variant oleks kasutada " +"sisse ehitatud lühikoodi %2$s." + +#: ../includes/ot-functions-docs-page.php:30 +msgid "" +"The Label field should be a short but descriptive block of text 100 " +"characters or less with no HTML." +msgstr "" +"Nimetuse väli peaks olema lühike kuid kirjeldav tekstiblokk, mis on kuni 100 " +"tähemärki pikk ja ei sisalda HTML-i." + +#: ../includes/ot-functions-docs-page.php:32 +msgid "ID" +msgstr "ID" + +#: ../includes/ot-functions-docs-page.php:33 +msgid "" +"The ID field is a unique alphanumeric key used to differentiate each theme " +"option (underscores are acceptable). Also, the plugin will change all text " +"you write in this field to lowercase and replace spaces and special " +"characters with an underscore automatically." +msgstr "" +"ID väli on unikaalne tähtnumbriline võti eristamaks teema valikuid " +"( alakriipsud on lubatud ). Lisaks muudetakse kõik siia välja kirjutatav " +"tekst väiketähtedeks ning erimärgid asendatakse automaatselt alakriipsudega." + +#: ../includes/ot-functions-docs-page.php:35 +msgid "Type" +msgstr "Tüüp" + +#: ../includes/ot-functions-docs-page.php:36 +msgid "" +"You are required to choose one of the supported option types when creating a " +"new option. Here is a list of the available option types. For more " +"information about each type click the Option Types tab to the " +"left." +msgstr "" +"Uue valiku loomisel peate valima mõne toetatud valikutüüpidest. Siin on " +"nimekiri saadaolevatest valikutüüpidest. Lisainfo igaühe kohta neist on " +"saadaval vajutades vasakul olevat Valiku tüüp sakki." + +#: ../includes/ot-functions-docs-page.php:44 +msgid "" +"Enter a detailed description for the users to read on the Theme Options " +"page, HTML is allowed. This is also where you enter content for both the " +"Textblock & Textblock Titled option types." +msgstr "" +"Sisesta detailne kirjeldus, mida kasutajad saavad lugeda teema valikute " +"lehel. HTML on lubatud. See on ka koht sisu sisestamiseks tekstibloki ja " +"pealkirjaga tekstibloki valikutüüpide jaoks." + +#: ../includes/ot-functions-docs-page.php:46 +msgid "Choices" +msgstr "Valikud" + +#: ../includes/ot-functions-docs-page.php:47 +msgid "" +"Click the \"Add Choice\" button to add an item to the choices array. This " +"will only affect the following option types: Checkbox, Radio, Select & " +"Select Image." +msgstr "" +"Elemendi lisamiseks valikute massiivi vajuta \"Lisa valik\" nuppu. See " +"mõjutab järgnevaid valikutüüpe: valikkastid, raadiokastid, rippvalik ja " +"pildivalik." + +#: ../includes/ot-functions-docs-page.php:50 +msgid "" +"Click the \"Add Setting\" button found inside a newly created setting to add " +"an item to the settings array. This will only affect the List Item type." +msgstr "" +"Elemendi lisamiseks sätete massiivi vajuta vastloodud sättes asuvat \"Lisa " +"säte\" nuppu. See mõjutab vaid nimekirja elemendi tüüpi." + +#: ../includes/ot-functions-docs-page.php:52 +msgid "Standard" +msgstr "Standartne" + +#: ../includes/ot-functions-docs-page.php:53 +msgid "" +"Setting the standard value for your option only works for some option types. " +"Those types are one that have a single string value saved to them and not an " +"array of values." +msgstr "" +"Standard väärtuse määramine oma valikule töötab vaid mõnede valikutüüpidega. " +"Need tüübid on sellised, kus hoitakse vaid ühte väärtust stringi kujul, " +"mitte väärtuste massiivi." + +#: ../includes/ot-functions-docs-page.php:55 +msgid "Rows" +msgstr "Ridasid" + +#: ../includes/ot-functions-docs-page.php:56 +msgid "" +"Enter a numeric value for the number of rows in your textarea. This will " +"only affect the following option types: CSS, Textarea, & Textarea Simple." +msgstr "" +"Sisesta numbriline väärtus, mis määrab ridade arvu tekstialas. See mõjutab " +"vaid järgnevaid valikutüüpe: CSS, tekstiala & lihtne tekstiala." + +#: ../includes/ot-functions-docs-page.php:58 +msgid "Post Type" +msgstr "Postitüüp" + +#: ../includes/ot-functions-docs-page.php:59 +msgid "" +"Add a comma separated list of post type like post,page. This " +"will only affect the following option types: Custom Post Type Checkbox, & " +"Custom Post Type Select. Below are the default post types available with " +"WordPress and that are also compatible with OptionTree. You can also add " +"your own custom post_type. At this time any does " +"not seem to return results properly and is something I plan on looking into." +msgstr "" +"Lisa komaga eraldatud loetelu postitüüpidest, näiteks post,page. See mõjutab vaid järgnevaid valikutüüpe: kohandatud postitüübi " +"valikkastid ja kohandatud postitüübi rippmenüü. All on vaikimisi Wordpressis " +"saadaval postitüübid, mis on OptionTreega kokkusobivad. Saad kasutada ka " +"enda loodud post_type. Hetkel any ei tagasta " +"õigeid väärtusi." + +#: ../includes/ot-functions-docs-page.php:67 +msgid "Taxonomy" +msgstr "Taksonoomia" + +#: ../includes/ot-functions-docs-page.php:68 +msgid "" +"Add a comma separated list of any registered taxonomy like category," +"post_tag. This will only affect the following option types: Taxonomy " +"Checkbox, & Taxonomy Select." +msgstr "" +"Lisa komaga eraldatud loend registreeritud taksonoomiatest nagu 'category," +"post_tag'. See mõjutab vaid järgnevaid valikutüüpe: taksonoomia valikukastid " +"& taksonoomia rippvalik." + +#: ../includes/ot-functions-docs-page.php:70 +msgid "Min, Max, & Step" +msgstr "Miinimum, maksimum ning aste" + +#: ../includes/ot-functions-docs-page.php:71 +msgid "" +"Add a comma separated list of options in the following format 0,100,1 (slide from 0-100 in intervals of 1). The " +"three values represent the minimum, maximum, and step options and will only " +"affect the Numeric Slider option type." +msgstr "" +"Lisa komaga eraldatud loend valikutest järgnevas formaadis: 0,100,1 ( liugle vahemikus 0-100 intervalliga 1 ). " +"Need kolm väärtust näitavad miinimumi, maksimumi ja astme valikuid ning " +"mõjutavad vaid numbriliuguri valikutüüpi." + +#: ../includes/ot-functions-docs-page.php:73 +msgid "CSS Class" +msgstr "CSS klass" + +#: ../includes/ot-functions-docs-page.php:74 +msgid "Add and optional class to any option type." +msgstr "Soovi korral lisa klassi-atribuut ükskõik millisele valikutüübile." + +#: ../includes/ot-functions-docs-page.php:76 +msgid "Condition" +msgstr "Tingimus" + +#: ../includes/ot-functions-docs-page.php:77 +#, php-format +msgid "" +"Add a comma separated list (no spaces) of conditions in which the field will " +"be visible, leave this setting empty to always show the field. In these " +"examples, %s is a placeholder for your condition, which can be in the form " +"of %s." +msgstr "" +"Lisa komaga eraldatud loend ( ilma tühikuteta ) tingimustest, mille korral " +"see väli on nähtav. Tühjaks jättes on väli alati nähtav. Nendes näidetes on " +"%s tingimuse kohahoidjaks, mis tohib olla kujul %s." + +#: ../includes/ot-functions-docs-page.php:79 +msgid "Operator" +msgstr "Operaator" + +#: ../includes/ot-functions-docs-page.php:80 +#, php-format +msgid "" +"Choose the logical operator to compute the result of the conditions. Your " +"options are %s and %s." +msgstr "" +"Vali loogiline operaator, millega arvutada tingimuste tulemus. Sinu " +"valikuteks on %s ja %s." + +#: ../includes/ot-functions-docs-page.php:111 +#, php-format +msgid "" +"The Background option type is for adding background styles to your theme " +"either dynamically via the CSS option type below or manually with %s. The " +"Background option type has filters that allow you to remove fields or change " +"the defaults. For example, you can filter %s to remove unwanted fields from " +"all Background options or an individual one. You can also filter %s. These " +"filters allow you to fine tune the select lists for your specific needs." +msgstr "" +"Tausta valikutüüpi kasutatakse teemasse tausta stiilide lisamiseks " +"dünaamiliselt alloleva CSS valikutüübiga või käsitsi kasutades %s. Tausta " +"valikutüübil on filtrid, mis võimaldavad eemaldada välju või muuta " +"vaikeväärtusi. Näiteks saab filtreerida %s eemaldamaks soovimatuid välju " +"kõikidelt tausta valikutelt või ainult ühelt neist. Saab filtreerida ka %s. " +"Need filtrid võimaldavad sul sättida valikute nimekirja täpselt oma " +"vajadustele vastavaks." + +#: ../includes/ot-functions-docs-page.php:114 +#, php-format +msgid "" +"The Border option type is used to set width, unit, style, and color values. " +"The text input excepts a numerical value and the unit select lets you choose " +"the unit of measurement to add to that value. Currently the default units " +"are %s, %s, %s, and %s. However, you can change them with the %s filter. The " +"style select lets you choose the border style. The default styles are %s, " +"%s, %s, %s, %s, %s, %s, and %s. However, you can change them with the %s " +"filter. The colorpicker saves a hexadecimal color code." +msgstr "" +"Äärise valikutüüp kasutatakse laiuse, ühiku, stiili ja värvi määramiseks. " +"Tekstisisendisse saab kirjutada numbrilise väärtuse ning rippmenüü laseb " +"valida talle mõõtühiku. Hetkel on vaikimisi ühikuteks %s, %s, %s ja %s. Neid " +"saab muuta %s filtriga. Stiili rippmenüü laseb valida äärise stiili. " +"Vaikimisi stiilid on %s, %s, %s, %s, %s, %s, %s ja %s. Neid saab muuta %s " +"filtriga. Värvivalija salvestab värvikoodi kuueteistkümnendiksüsteemis." + +#: ../includes/ot-functions-docs-page.php:117 +#, php-format +msgid "" +"The Box Shadow option type is used to set %s, %s, %s, %s, %s, and %s values." +msgstr "" +"Kasti varju valikutüüpi kasutatakse %s, %s, %s, %s, %s ja %s väärtuse " +"määramiseks." + +#: ../includes/ot-functions-docs-page.php:120 +msgid "" +"The Category Checkbox option type displays a list of category IDs. It allows " +"the user to check multiple category IDs and will return that value as an " +"array for use in a custom function or loop." +msgstr "" +"Kategooria valikkastide valikutüüp näitab loendit kategooriate ID-dest. See " +"laseb kasutajal märkida mitu kategooria ID-d ja tagastab selle väärtuse " +"massiivina, enda funktsioonis või tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:123 +msgid "" +"The Category Select option type displays a list of category IDs. It allows " +"the user to select only one category ID and will return that value for use " +"in a custom function or loop." +msgstr "" +"Kategooria rippvaliku valikutüüp näitab loendit kategooriate ID-dest. See " +"laseb kasutajal märkida üks kategooria ID ja tagastab selle väärtuse enda " +"funktsioonis või tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:126 +msgid "" +"The Checkbox option type displays a group of choices. It allows the user to " +"check multiple choices and will return that value as an array for use in a " +"custom function or loop." +msgstr "" +"Valikkastide valikutüüp kuvab valikute grupi. See laseb kasutajal märkida " +"mitu valikut ning tagastab selle väärtuse massiivina enda funktsioonis või " +"tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:129 +msgid "" +"The Colorpicker option type saves a hexadecimal color code for use in CSS. " +"Use it to modify the color of something in your theme." +msgstr "" +"Värvi valija valikutüüp salvestab värvikoodi kuueteistkümnendiksüsteemis, " +"mida saab kasutada CSS-is. Kasuta seda millegi värvi muutmiseks enda teemas." + +#: ../includes/ot-functions-docs-page.php:132 +#, php-format +msgid "" +"The Colorpicker Opacity option type saves a hexadecimal color code with an " +"opacity value from %s to %s in increments of %s. Though the value is saved " +"as hexadecimal, if used within the CSS option type the color and opacity " +"values will be converted into a valid RGBA CSS value." +msgstr "" +"Värvivalija läbipaistmatuse valikutüüp salvestab värvikoodi " +"kuueteistkümnendiksüsteemis läbipaistmatuse väärtusega %s kuni %s sammuga " +"%s. Kuigi väärtus salvestatakse kuueteistkümnendiksüsteemis, kasutades teda " +"koos CSS valikutüübiga teisendatakse ja korrektseks RGBA CSS väärtuseks." + +#: ../includes/ot-functions-docs-page.php:135 +#, php-format +msgid "" +"The CSS option type is a textarea that when used properly can add dynamic " +"CSS to your theme from within OptionTree. Unfortunately, due server " +"limitations you will need to create a file named %s at the root level of " +"your theme and change permissions using %s so the server can write to the " +"file. I have had the most success setting this single file to %s but feel " +"free to play around with permissions until everything is working. A good " +"starting point is %s. When the server can save to the file, CSS will " +"automatically be updated when you save your Theme Options." +msgstr "" +"CSS valikutüüp on tekstiväli, mille õigel kasutamisel saab teemale lisada " +"dünaamiliselt genereeritud CSS-i OptionTree kaudu. Serveri piirangute tõttu " +"peate selleks looma teema juurkausta faili nimega %s ning muutma õiguseid " +"kasutades %s, et server saaks faili kirjutada. Mul on tulnud parimad " +"tulemused siis, kui muutsin selle ainsa faili õiguste väärtuseks %s, kuid " +"katsetage teisi variante, kuni kõik toimib nagu vaja. Hea alguspunkt on %s. " +"Kui server saab edukalt faili salvestada. siis uuendatakse CSS automaatselt " +"teema salvestamisel." + +#: ../includes/ot-functions-docs-page.php:137 +#, php-format +msgid "" +"This example assumes you have an option with the ID of %1$s. Which means " +"this option will automatically insert the value of %1$s into the %2$s when " +"the Theme Options are saved." +msgstr "" +"See näide eeldab, et sul on valik ID-ga %1$s. See tähendab, et teema " +"valikute salvestamisel sisestatakse %1$s väärtus automaatselt %2$s külge." + +#: ../includes/ot-functions-docs-page.php:139 +msgid "Input" +msgstr "Sisend" + +#: ../includes/ot-functions-docs-page.php:145 +msgid "Output" +msgstr "Väljund" + +#: ../includes/ot-functions-docs-page.php:154 +#, php-format +msgid "" +"The Custom Post Type Select option type displays a list of IDs from any " +"available WordPress post type or custom post type. It allows the user to " +"check multiple post IDs for use in a custom function or loop. Requires at " +"least one valid %1$s in the %1$s field." +msgstr "" +"Enda loodud postitüübi rippvaliku valikutüüp kuvab nimekirja kõikidest " +"WordPressi postitüüpide või enda loodud postitüüpide ID-dest. See võimaldab " +"kasutajal märgistada mitu postituse ID-d, mida kasutada enda funktsioonis " +"või tsüklis. Vajab vähemalt ühte sobivat %1$s väljal %1$s." + +#: ../includes/ot-functions-docs-page.php:157 +#, php-format +msgid "" +"The Custom Post Type Select option type displays a list of IDs from any " +"available WordPress post type or custom post type. It will return a single " +"post ID for use in a custom function or loop. Requires at least one valid " +"%1$s in the %1$s field." +msgstr "" +"Enda loodud postitüübi rippvaliku valikutüüp kuvab nimekirja kõikidest " +"WordPressi postitüüpide või enda loodud postitüüpide ID-dest. See tagastab " +"ühe postituse ID, mida kasutada enda funktsioonis või tsüklis. Vajab " +"vähemalt ühte sobivat %1$s väljal %1$s." + +#: ../includes/ot-functions-docs-page.php:160 +msgid "" +"The Date Picker option type is tied to a standard form input field which " +"displays a calendar pop-up that allow the user to pick any date when focus " +"is given to the input field. The returned value is a date formatted string." +msgstr "" +"Kuupäeva valiku valikutüüp on seotud standartse vormi sisendväljaga. Kui " +"sellele antakse fookus, siis kuvatakse kalendri aken, mis laseb kasutajal " +"valida suvalise kuupäeva. Tagastatav väärtus on kuupäeva formaadis string." + +#: ../includes/ot-functions-docs-page.php:163 +msgid "" +"The Date Time Picker option type is tied to a standard form input field " +"which displays a calendar pop-up that allow the user to pick any date and " +"time when focus is given to the input field. The returned value is a date " +"and time formatted string." +msgstr "" +"Kuupäeva ja aja valiku valikutüüp on seotud standartse vormi sisendväljaga. " +"Kui sellele antakse fookus, siis kuvatakse kalendri aken, mis laseb " +"kasutajal valida suvalise kuupäeva ja kellaaja. Tagastatav väärtus on " +"kuupäeva ja kellaaja formaadis string." + +#: ../includes/ot-functions-docs-page.php:166 +#, php-format +msgid "" +"The Dimension option type is used to set width and height values. The text " +"inputs except numerical values and the select lets you choose the unit of " +"measurement to add to that value. Currently the default units are %s, %s, " +"%s, and %s. However, you can change them with the %s filter." +msgstr "" +"Mõõtme valikutüüpi kasutatakse laiuse ja kõrguse väärtuste jaoks. " +"Tekstisisendisse saab kirjutada numbrilise väärtuse ning rippmenüü laseb " +"valida talle mõõtühiku. Hetkel on vaikimisi ühikuteks %s, %s, %s ja %s. Neid " +"saab muuta %s filtriga." + +#: ../includes/ot-functions-docs-page.php:169 +msgid "" +"The Gallery option type saves a comma separated list of image attachment " +"IDs. You will need to create a front-end function to display the images in " +"your theme." +msgstr "" +"Galerii valikutüüp salvestab komaga eraldatud loendi pildi tüüpi manuste ID-" +"dest. Nende piltide teemas näitamiseks tuleb luua kuvatava lehe jaoks " +"funktsioon." + +#: ../includes/ot-functions-docs-page.php:172 +#, php-format +msgid "" +"The Google Fonts option type will dynamically enqueue any number of Google " +"Web Fonts into the document %1$s. As well, once the option has been saved " +"each font family will automatically be inserted into the %2$s array for the " +"Typography option type. You can further modify the font stack by using the " +"%3$s filter, which is passed the %4$s, %5$s, and %6$s parameters. The %6$s " +"parameter is being passed from %7$s, so it will be the ID of a Typography " +"option type. This will allow you to add additional web safe fonts to " +"individual font families on an as-need basis." +msgstr "" +"Google Fontide valikutüüp kaasab dokumendi %1$s dünaamiliselt soovitud hulga " +"Google veebifonte. Lisaks salvestub iga valitud fondi perekond automaatselt " +"%2$s massiivi tüpograafia valikutüübis. Fondi salve saab veel rohkem " +"modifitseerida %3$s filtriga, mis saab kaasa %4$s, %5$s ja %6$s parameetrid. " +"%6$s parameeter antakse %7$s, nii et ta on tüpograafia valikutüübi ID. See " +"võimaldab lisada veebis kasutamiseks sobilikke fonte erinevatele fondi " +"perekondadele vastavalt vajadusele." + +#: ../includes/ot-functions-docs-page.php:175 +#, php-format +msgid "" +"The JavaScript option type is a textarea that uses the %s code editor to " +"highlight your JavaScript and display errors as you type." +msgstr "" +"JavaScript valikutüüp on tekstiväli, mis kasutab %s koodi redaktorit sinu " +"kirjutatava JavaScripti süntaksi esile toomiseks ning vigade näitamiseks " +"kirjutamise ajal." + +#: ../includes/ot-functions-docs-page.php:178 +msgid "The Link Color option type is used to set all link color states." +msgstr "" +"Lingi värvi valikutüüpi kasutatakse kõikide linkide värviolekute määramiseks." + +#: ../includes/ot-functions-docs-page.php:181 +msgid "" +"The List Item option type replaced the Slider option type and allows for a " +"great deal of customization. You can add settings to the List Item and those " +"settings will be displayed to the user when they add a new List Item. " +"Typical use is for creating sliding content or blocks of code for custom " +"layouts." +msgstr "" +"Nimekirja valikutüüp vahetas välja slaidiesitaja valikutüübi ning võimaldab " +"põhjalikku kohandamist. Nimekirja elementidele saab lisada sätteid, mida " +"näidatakse kasutajale uue elemendi lisamisel. Tüüpiline kasutusjuht on " +"liugleva sisu või koodiblokkide loomiseks." + +#: ../includes/ot-functions-docs-page.php:184 +#, php-format +msgid "" +"The Measurement option type is a mix of input and select fields. The text " +"input excepts a value and the select lets you choose the unit of measurement " +"to add to that value. Currently the default units are %s, %s, %s, and %s. " +"However, you can change them with the %s filter." +msgstr "" +"Mõõdu valikutüüp on segu sisendväljast ja valikuväljast. Tekstisisend eeldab " +"väärtust ning rippvalik laseb valida mõõduühiku sellele väärtusele. Hetkel " +"on vaikimisi ühikuteks %s, %s, %s ja %s. Neid saab muuta %s filtriga." + +#: ../includes/ot-functions-docs-page.php:186 +#, php-format +msgid "" +"Example filter to add new units to the Measurement option type. Added to %s." +msgstr "Näidisfilter mõõdu valikutüüpi ühikute lisamiseks. Lisatakse %s faili." + +#: ../includes/ot-functions-docs-page.php:199 +msgid "" +"Example filter to completely change the units in the Measurement option " +"type. Added to functions.php." +msgstr "" +"Näidisfilter, mis muudab mõõdu valikutüübi ühikud täiesti teistsugusteks. " +"Lisatakse functions.php faili." + +#: ../includes/ot-functions-docs-page.php:215 +msgid "" +"The Numeric Slider option type displays a jQuery UI slider. It will return a " +"single numerical value for use in a custom function or loop." +msgstr "" +"Numbriliuguri valikutüüp kuvab jQuery UI liuguri. See tagastab ühe " +"numbrilise väärtuse enda funktsioonis või tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:218 +#, php-format +msgid "" +"The On/Off option type displays a simple switch that can be used to turn " +"things on or off. The saved return value is either %s or %s." +msgstr "" +"Sees/väljas valikutüüp kuvab lihtsa lüliti, millega saab asju sisse või " +"välja lülitada. Salvestatud väärtus on kas %s või %s." + +#: ../includes/ot-functions-docs-page.php:221 +msgid "" +"The Page Checkbox option type displays a list of page IDs. It allows the " +"user to check multiple page IDs for use in a custom function or loop." +msgstr "" +"Lehe valikkastide valikutüüp kuvab nimekirja kõikidest lehtede ID-dest. See " +"võimaldab kasutajal märgistada mitu lehe ID-d, mida kasutada enda " +"funktsioonis või tsüklis." + +#: ../includes/ot-functions-docs-page.php:224 +msgid "" +"The Page Select option type displays a list of page IDs. It will return a " +"single page ID for use in a custom function or loop." +msgstr "" +"Lehe rippvaliku valikutüüp kuvab nimekirja kõikidest lehtede ID-dest. See " +"tagastab ühe lehe ID, mida kasutada enda funktsioonis või tsüklis." + +#: ../includes/ot-functions-docs-page.php:227 +msgid "" +"The Post Checkbox option type displays a list of post IDs. It allows the " +"user to check multiple post IDs for use in a custom function or loop." +msgstr "" +"Postituse valikkastid valikutüüp kuvab nimekirja kõikidest postituste ID-" +"dest. See võimaldab kasutajal märgistada mitu postituse ID-d, mida kasutada " +"enda funktsioonis või tsüklis." + +#: ../includes/ot-functions-docs-page.php:230 +msgid "" +"The Post Select option type displays a list of post IDs. It will return a " +"single post ID for use in a custom function or loop." +msgstr "" +"Postituse rippvaliku valikutüüp kuvab nimekirja kõikidest postituste ID-" +"dest. See tagastab ühe postituse ID, mida kasutada enda funktsioonis või " +"tsüklis." + +#: ../includes/ot-functions-docs-page.php:233 +msgid "" +"The Radio option type displays a group of choices. It allows the user to " +"choose one and will return that value as a string for use in a custom " +"function or loop." +msgstr "" +"Raadiovaliku valikutüüp näitab valikute gruppi. See laseb kasutajal valida " +"neist ühe ning tagastab selle väärtuse string-ina enda funktsioonis või " +"tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:236 +#, php-format +msgid "" +"the Radio Images option type is primarily used for layouts. However, you can " +"filter the image list using %s. As well, you can add your own custom images " +"using the choices array." +msgstr "" +"Piltidega raadiovaliku valikutüüpi kasutatakse peamiselt paigutuste jaoks. " +"Piltide loendit saab filtreerida %s abil. Valikute massiivi saab lisada enda " +"pilte." + +#: ../includes/ot-functions-docs-page.php:238 +msgid "" +"This example executes the ot_radio_images filter on layout " +"images attached to the my_radio_images field. Added to " +"functions.php." +msgstr "" +"See näide käivitab ot_radio_images filtri " +"my_radio_images väljale lisatud paigutuse piltidel. Lisatakse " +"functions.php faili." + +#: ../includes/ot-functions-docs-page.php:263 +msgid "" +"The Select option type is used to list anything you want that would be " +"chosen from a select list." +msgstr "" +"Rippvaliku valikutüüpi saab kasutada ükskõik mille loendamiseks, mida saab " +"valida rippmenüüst." + +#: ../includes/ot-functions-docs-page.php:266 +#, php-format +msgid "" +"This option type makes it possible for users to select a WordPress " +"registered sidebar to use on a specific area. By using the two provided " +"filters, %s, and %s we can be selective about which sidebars are available " +"on a specific content area." +msgstr "" +"See valikutüüp võimaldab kasutajatel valida WordPressis registreeritud " +"küljeriba, kasutamaks seda kindlas kohas. Kahe kaasa antud filtri, %s ja %s " +"abil saab määrata, millist küljeriba millises sisuosas näidata." + +#: ../includes/ot-functions-docs-page.php:267 +#, php-format +msgid "" +"For example, if we create a WordPress theme that provides the ability to " +"change the Blog Sidebar and we don't want to have the footer sidebars " +"available on this area, we can unset those sidebars either manually or by " +"using a regular expression if we have a common name like %s." +msgstr "" +"Näiteks kui luua WordPressi teema, mis võimaldab muuta blogi küljeriba ning " +"me ei soovi siin alas näha jaluse küljeribasid, siis saame need küljeribad " +"ära võtta kas käsitsi või kasutades regulaaravaldist, nagu näiteks %s." + +#: ../includes/ot-functions-docs-page.php:270 +msgid "" +"The Slider option type is technically deprecated. Use the List Item option " +"type instead, as it's infinitely more customizable. Typical use is for " +"creating sliding image content." +msgstr "" +"Tehniliselt on slaidiesitaja valikutüübi kasutamine taunitud. Kasutage parem " +"nimekirja elemendi valikutüüpi, kuna see on lõpmatult kohandatav. Tüüpiline " +"kasutusjuht on libisevate piltidega sisu jaoks." + +#: ../includes/ot-functions-docs-page.php:273 +#, php-format +msgid "" +"The Social Links option type utilizes a drag & drop interface to create a " +"list of social links. There are a few filters that make extending this " +"option type easy. You can set the %s filter to %s and turn off loading " +"default values. Use the %s filter to change the default values that are " +"loaded. To filter the settings array use the %s filter." +msgstr "" +"Sotsiaalmeedia linkide valikutüübis kasutatakse nimekirja loomiseks tiri-ja-" +"pilla liidest. On loodud mõned filtrid, mis teevad selle valikutüübi " +"täiendamise kergeks. Filter %s väärtuseks saab määrata %s, et lülitada välja " +"vaikimisi väärtuste laadimine. %s filtriga saab muuta vaikeväärtuseid. " +"Sätete massiivi filtreerimiseks on %s." + +#: ../includes/ot-functions-docs-page.php:276 +#, php-format +msgid "" +"The Spacing option type is used to set spacing values such as padding or " +"margin in the form of top, right, bottom, and left. The text inputs except " +"numerical values and the select lets you choose the unit of measurement to " +"add to that value. Currently the default units are %s, %s, %s, and %s. " +"However, you can change them with the %s filter." +msgstr "" +"Vahede valikutüüpi kasutatakse \"padding\" ja \"margin\" väärtuste jaoks " +"kujul \"top\", \"right\", \"bottom\", \"left\". Tekstisisendisse saab " +"kirjutada numbrilise väärtuse ning rippmenüü laseb valida talle mõõtühiku. " +"Hetkel on vaikimisi ühikuteks %s, %s, %s ja %s. Neid saab muuta %s filtriga." + +#: ../includes/ot-functions-docs-page.php:279 +msgid "" +"The Tab option type will break a section or metabox into tabbed content." +msgstr "" +"Saki valikutüüp muudab sektsiooni või meta-kasti sakkidega sisuelemendiks." + +#: ../includes/ot-functions-docs-page.php:282 +msgid "" +"The Tag Checkbox option type displays a list of tag IDs. It allows the user " +"to check multiple tag IDs and will return that value as an array for use in " +"a custom function or loop." +msgstr "" +"Sildi valikukasti valikutüüp kuvab loendi siltide ID-dega. See laseb " +"kasutajal märkida mitu sildi ID-d ning tagastab selle väärtuse massiivina " +"enda funktsioonis või tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:285 +msgid "" +"The Tag Select option type displays a list of tag IDs. It allows the user to " +"select only one tag ID and will return that value for use in a custom " +"function or loop." +msgstr "" +"Sildi rippvaliku valikutüüp kuvab loendi siltide ID-dega. See laseb " +"kasutajal märkida ainult ühe sildi ID ning tagastab selle väärtuse enda " +"funktsioonis või tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:288 +msgid "" +"The Taxonomy Checkbox option type displays a list of taxonomy IDs. It allows " +"the user to check multiple taxonomy IDs and will return that value as an " +"array for use in a custom function or loop." +msgstr "" +"Taksonoomia valikukasti valikutüüp kuvab loendi taksonoomiate ID-dega. See " +"laseb kasutajal märkida mitu taksonoomia ID-d ning tagastab selle väärtuse " +"massiivina enda funktsioonis või tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:291 +msgid "" +"The Taxonomy Select option type displays a list of taxonomy IDs. It allows " +"the user to select only one taxonomy ID and will return that value for use " +"in a custom function or loop." +msgstr "" +"Taksonoomia rippvaliku valikutüüp kuvab loendi taksonoomiate ID-dega. See " +"laseb kasutajal märkida ainult ühe taksonoomia ID ning tagastab selle " +"väärtuse enda funktsioonis või tsüklis kasutamiseks." + +#: ../includes/ot-functions-docs-page.php:294 +msgid "" +"The Text option type is used to save string values. For example, any " +"optional or required text that is of reasonably short character length." +msgstr "" +"Teksti valikutüüpi kasutatakse väärtuste salvestamiseks stringi kujul. " +"Näiteks mõni valikuline või nõutud tekst, mis on piisavalt lühike." + +#: ../includes/ot-functions-docs-page.php:297 +#, php-format +msgid "" +"The Textarea option type is a large string value used for custom code or " +"text in the theme and has a WYSIWYG editor that can be filtered to change " +"the how it is displayed. For example, you can filter %s, %s, %s, and %s." +msgstr "" +"Tekstivälja valikutüüp on suur väärtus stringi kujul salvestamiseks, millel " +"on WYSIWYG toimetaja, mida saab filtreerida muutmaks tema kuvamist. Näiteks " +"saab filtreerida %s, %s, %s ja %s." + +#: ../includes/ot-functions-docs-page.php:299 +msgid "" +"Example filters to alter the Textarea option type. Added to functions." +"php." +msgstr "" +"Näidisfiltrid, millega muuta tekstivälja valikutüüpi. Lisatakse " +"functions.php faili." + +#: ../includes/ot-functions-docs-page.php:301 +msgid "" +"This example keeps WordPress from executing the wpautop filter " +"on the line breaks. The default is true which means it wraps " +"line breaks with an HTML p tag." +msgstr "" +"See näide takistab Wordpressil kasutada wpautop filtrit " +"reavahetustel. Vaikeväärtus on true, mis tähendab, et " +"reavahtused mähitakse HTML p elemendiga." + +#: ../includes/ot-functions-docs-page.php:314 +msgid "" +"This example keeps WordPress from executing the media_buttons " +"filter on the textarea WYSIWYG. The default is true which means " +"show the buttons." +msgstr "" +"See näide takistab Wordpressil kasutada media_buttons filtrit " +"tekstivälja WYSIWYG toimetajas. Vaikeväärtus on true, mis " +"tähendab, et nuppe näidatakse." + +#: ../includes/ot-functions-docs-page.php:327 +msgid "" +"This example keeps WordPress from executing the tinymce filter " +"on the textarea WYSIWYG. The default is true which means show " +"the tinymce." +msgstr "" +"See näide takistab Wordpressil kasutada tinymce filtrit " +"tekstivälja WYSIWYG toimetajas. Vaikeväärtus on true, mis " +"tähendab, et tinymce on nähtaval." + +#: ../includes/ot-functions-docs-page.php:340 +msgid "" +"This example alters the quicktags filter on the textarea " +"WYSIWYG. The default is array( 'buttons' => 'strong,em,link,block,del," +"ins,img,ul,ol,li,code,spell,close' ) which means show those " +"quicktags. It also means you can filter in your own custom quicktags." +msgstr "" +"See näide muudab quicktags filtrit tekstivälja WYSIWYG " +"toimetajas. Vaikeväärtus on array('buttons' => 'strong,em,link,block," +"del,ins,img,ul,ol,li,code,spell,close'), mis tähendab, et neid " +"elemente näidatakse. Siitkaudu saad kaasata endale sobivaid elemente." + +#: ../includes/ot-functions-docs-page.php:356 +msgid "" +"The Textarea Simple option type is a large string value used for custom code " +"or text in the theme. The Textarea Simple does not have a WYSIWYG editor." +msgstr "" +"Lihtsa tekstivälja valikutüüp on suur string-tüüpi väärtus teemas oleva " +"kohandatud koodi või teksti jaoks. Lihtsal tekstiväljal ei ole WYSIWYG " +"toimetajat." + +#: ../includes/ot-functions-docs-page.php:358 +#, php-format +msgid "" +"This example tells WordPress to execute the %s filter on the line breaks. " +"The default is %s which means it does not wraps line breaks with an HTML %s " +"tag. Added to %s." +msgstr "" +"See näide ütleb Wordpressile, et reavahetuste korral kasutada %s filtrit. " +"Vaikeväärtus on %s, mis tähendab, et reavahetusi ei mähita HTML %s " +"elemendiga. Lisatakse %s faili." + +#: ../includes/ot-functions-docs-page.php:372 +msgid "" +"The Textblock option type is used only on the Theme Option page. It will " +"allow you to create & display HTML, but has no title above the text block. " +"You can then use the Textblock to add a more detailed set of instruction on " +"how the options are used in your theme. You would never use this in your " +"themes template files as it does not save a value." +msgstr "" +"Tekstibloki valikutüüpi kasutatakse teema valikute lehel. See võimaldab luua " +"ja kuvada HTML-i, kuid tal puudub pealkiri. Sellega saab lisada detailsemaid " +"kirjeldusi teemas kasutatavate valikute jaoks. Seda ei kasutata teema " +"mallifailides, kuna ta ei salvesta mingit väärtust." + +#: ../includes/ot-functions-docs-page.php:375 +msgid "" +"The Textblock Titled option type is used only on the Theme Option page. It " +"will allow you to create & display HTML, and has a title above the text " +"block. You can then use the Textblock Titled to add a more detailed set of " +"instruction on how the options are used in your theme. You would never use " +"this in your themes template files as it does not save a value." +msgstr "" +"Pealkirjaga tekstibloki valikutüüpi kasutatakse teema valikute lehel. See " +"võimaldab luua ja kuvada HTML-i ning tema kohal on pealkiri. Sellega saab " +"lisada detailsemaid kirjeldusi teemas kasutatavate valikute jaoks. Seda ei " +"kasutata teema mallifailides, kuna ta ei salvesta mingit väärtust." + +#: ../includes/ot-functions-docs-page.php:378 +#, php-format +msgid "" +"The Typography option type is for adding typography styles to your theme " +"either dynamically via the CSS option type above or manually with %s. The " +"Typography option type has filters that allow you to remove fields or change " +"the defaults. For example, you can filter %s to remove unwanted fields from " +"all Background options or an individual one. You can also filter %s. These " +"filters allow you to fine tune the select lists for your specific needs." +msgstr "" +"Tüpograafia valikutüübiga saab teemale lisada stiile, kas dünaamiliselt ülal " +"oleva CSS valikutüübiga või käsitsi %s abil. Tüpograafia valikutüübil on " +"filtrid, mis lasevad välju eemaldada või vaikimisi välju muuta. Näiteks saab " +"filtreerida %s, eemaldamaks soovimatuid välju kõikidelt tausta valikutelt " +"või mõnelt neist. Saab filtreerida ka %s. Need filtrid aitavad valikute " +"nimekirja täpselt oma vajaduste järgi häälestada." + +#: ../includes/ot-functions-docs-page.php:380 +msgid "" +"This example would filter ot_recognized_font_families to build " +"your own font stack. Added to functions.php." +msgstr "" +"See näide filtreerib ot_recognized_font_families loomaks enda " +"fondipinu. Lisatakse functions.php faili." + +#: ../includes/ot-functions-docs-page.php:398 +#, php-format +msgid "" +"The Upload option type is used to upload any WordPress supported media. " +"After uploading, users are required to press the \"%s\" button in order to " +"populate the input with the URI of that media. There is one caveat of this " +"feature. If you import the theme options and have uploaded media on one site " +"the old URI will not reflect the URI of your new site. You will have to re-" +"upload or %s any media to your new server and change the URIs if necessary." +msgstr "" +"Üleslaadimise valikutüüp kasutatakse suvalise Wordpressi toetatava meedia " +"üles laadimiseks. Peale üleslaadimist peab kasutaja vajutama \"%s\" nuppu, " +"et täita sisend selle meediaelemendi URI-ga. Selle omadusega kaasneb üks " +"probleem - kui importida teema valikuid teistsuguse aadressiga veebilehelt, " +"siis URI-d automaatselt ei uuene. Meediafailid tuleb kas uuesti üles laadida " +"või %s, vajadusel muutes URI-sid." + +#: ../includes/ot-functions-docs-page.php:430 +msgid "" +"This function returns a value from the \"option_tree\" array of saved values " +"or the default value supplied. The returned value would be mixed. Meaning it " +"could be a string, integer, boolean, or array." +msgstr "" +"See funktsioon tagastab või vajadusel trükib väärtuse \"option_tree\" " +"massiivi salvestatud väärtustest või kaasaantud vaikeväärtuse. Tagastatud " +"väärtus tüüp on segunenud. See tähendab, et ta võib olla string, integer, " +"boolean või massiiv." + +#: ../includes/ot-functions-docs-page.php:432 +#: ../includes/ot-functions-docs-page.php:482 +msgid "Usage" +msgstr "Kasutus" + +#: ../includes/ot-functions-docs-page.php:436 +#: ../includes/ot-functions-docs-page.php:486 +msgid "Parameters" +msgstr "Parameetrid" + +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:490 +msgid "string" +msgstr "string" + +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:490 +msgid "required" +msgstr "nõutud" + +#: ../includes/ot-functions-docs-page.php:440 +msgid "Enter the options unique identifier." +msgstr "Sisesta valikule unikaalne identifikaator." + +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:490 +msgid "Default:" +msgstr "Vaikimisi:" + +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:490 +#: ../includes/ot-functions-docs-page.php:494 +msgid "None" +msgstr "Puudub" + +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:494 +#: ../includes/ot-functions-docs-page.php:498 +#: ../includes/ot-functions-docs-page.php:502 +#: ../includes/ot-functions-docs-page.php:506 +msgid "optional" +msgstr "valikuline" + +#: ../includes/ot-functions-docs-page.php:444 +msgid "" +"Enter a default return value. This is just incase the request returns null." +msgstr "Sisesta vaikeväärtus. See on vajalik juhul, kui päring tagastab nulli." + +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:494 +#: ../includes/ot-functions-docs-page.php:498 +#: ../includes/ot-functions-docs-page.php:502 +#: ../includes/ot-functions-docs-page.php:506 +msgid "Default" +msgstr "Vaikimisi" + +#: ../includes/ot-functions-docs-page.php:474 +msgid "" +"This function has been deprecated. That means it has been replaced by a new " +"function or is no longer supported, and may be removed from future versions. " +"All code that uses this function should be converted to use its replacement." +msgstr "" +"Selle funktsiooni kasutamist taunitakse. See tähendab, et ta on asendatud " +"uue funktsiooniga või teda ei toetata enam ning ta võidakse tulevastest " +"versioonidest välja jätta. Kõik seda funktsiooni kasutav kood tuleks ümber " +"muuta kasutamaks tema asendust." + +#: ../includes/ot-functions-docs-page.php:476 +msgid "Use" +msgstr "Kasuta" + +#: ../includes/ot-functions-docs-page.php:476 +msgid "instead" +msgstr "asemel" + +#: ../includes/ot-functions-docs-page.php:480 +msgid "" +"This function returns, or echos if asked, a value from the \"option_tree\" " +"array of saved values." +msgstr "" +"See funktsioon tagastab või vajadusel trükib väärtuse \"option_tree\" " +"massiivi salvestatud väärtustest." + +#: ../includes/ot-functions-docs-page.php:490 +msgid "Enter a unique Option Key to get a returned value or array." +msgstr "Sisesta unikaalne valiku võti saamaks väärtust või massiivi." + +#: ../includes/ot-functions-docs-page.php:494 +msgid "array" +msgstr "array" + +#: ../includes/ot-functions-docs-page.php:494 +msgid "Used to cut down on database queries in template files." +msgstr "Kasutatakse andmebaasi päringute vähendamiseks mallifailides." + +#: ../includes/ot-functions-docs-page.php:498 +#: ../includes/ot-functions-docs-page.php:502 +msgid "boolean" +msgstr "boolean" + +#: ../includes/ot-functions-docs-page.php:498 +msgid "Echo the output." +msgstr "Trüki väljund." + +#: ../includes/ot-functions-docs-page.php:502 +msgid "Used to indicate the $item_id is an array of values." +msgstr "Kasutatakse märkimaks, et $item_id on väärtuste massiiv." + +#: ../includes/ot-functions-docs-page.php:506 +msgid "integer" +msgstr "integer" + +#: ../includes/ot-functions-docs-page.php:506 +msgid "" +"Numeric offset key for the $item_id array, -1 will return all values (an " +"array starts at 0)." +msgstr "" +"Numbriline nihkevõti $item_id massiivi jaoks, -1 tagastab kõik väärtused " +"( massiiv algab 0-st )." + +#: ../includes/ot-functions-docs-page.php:534 +msgid "" +"If you're using the plugin version of OptionTree it is highly recommended to " +"include a function_exists check in your code, as described in " +"the examples below. If you've integrated OptionTree directly into your " +"themes root directory, you will not need to wrap your code " +"with function_exists, as you're guaranteed to have the " +"ot_get_option() function available." +msgstr "" +"Kui kasutate OptionTree mooduli versiooni, siis on soovitatav oma koodi " +"lisada function_exists kontroll, nagu kirjeldatud allpool " +"toodud näidetes. Kui olete OptionTree otse oma teema juurkataloogi sisse " +"ehitanud, siis teil ei ole vaja mähkida oma koodi " +"function_exists kontrolliga, sest teil on " +"ot_get_option() funktsiooni saadavus garanteeritud." + +#: ../includes/ot-functions-docs-page.php:536 +msgid "String Examples" +msgstr "String-i näited" + +#: ../includes/ot-functions-docs-page.php:538 +msgid "Returns the value of test_input." +msgstr "Tagastab test_input väärtuse." + +#: ../includes/ot-functions-docs-page.php:544 +msgid "" +"Returns the value of test_input, but also has a default value " +"if it returns empty." +msgstr "" +"Tagastab test_input väärtuse või vaikeväärtuse, kui tagastatud " +"väärtus on tühi." + +#: ../includes/ot-functions-docs-page.php:550 +msgid "Array Examples" +msgstr "Array näited" + +#: ../includes/ot-functions-docs-page.php:552 +msgid "" +"Assigns the value of navigation_ids to the variable $ids. It then echos an unordered list of links (navigation) using " +"wp_list_pages()." +msgstr "" +"Omistab navigation_ids väärtuse $ids muutujale. " +"See trükib välja järjestamata loetelu ( navigatsiooni ) linkidest, kasutades " +"wp_list_pages()." + +#: ../includes/ot-functions-docs-page.php:572 +msgid "" +"The next two examples demonstrate how to use the Measurement option type. The Measurement option type is an array with two key/" +"value pairs. The first is the value of measurement and the second is the " +"unit of measurement." +msgstr "" +"Järgnevad kaks näidet demonstreerivad, kuidas kasutada mõõdu valikutüüpi. Mõõdu valikutüüp on massiiv kahe võti-väärtus paariga. " +"Esimene on mõõdu väärtus ning teine on mõõduühik." + +#: ../includes/ot-functions-docs-page.php:598 +msgid "This example displays a very basic slider loop." +msgstr "See näide kuvab väga algelise slaidi esitleja tsükli." + +#: ../includes/ot-functions-docs-page.php:643 +msgid "It's Super Simple" +msgstr "See on imelihtne" + +#: ../includes/ot-functions-docs-page.php:645 +msgid "" +"Layouts make your theme awesome! With theme options data that you can save/" +"import/export you can package themes with different color variations, or " +"make it easy to do A/B testing on text and so much more. Basically, you save " +"a snapshot of your data as a layout." +msgstr "" +"Paigutused teevad su teema aukartust äratavaks! Teema valikute infoga, mida " +"saad salvestada/importida/eksportida, saad pakendada teemasid erinevate " +"värvivariatsioonidega või kergelt teostada A/B testimist tekstiosadel ning " +"palju muud. Põhimõtteliselt on paigutus sinu andmete ülesvõtte salvestus." + +#: ../includes/ot-functions-docs-page.php:647 +msgid "" +"Once you have created all your different layouts, or theme variations, you " +"can save them to a separate text file for repackaging with your theme. " +"Alternatively, you could just make different variations for yourself and " +"change your theme with the click of a button, all without deleting your " +"previous options data." +msgstr "" +"Peale kõikide erinevate paigutuste või teema variatsioonide loomist saab nad " +"salvestada eraldi tekstifaili, mida teemaga kaasa pakendada. Teine " +"kasutusviis oleks teha enda jaoks erinevad variatsioonid ja muuta oma teemat " +"ainsa nupuvajutusega, ilma eelnevate andmete kustutamiseta." + +#: ../includes/ot-functions-docs-page.php:649 +msgid "" +" Adding a layout is ridiculously easy, follow these steps and you'll be on " +"your way to having a WordPress super theme." +msgstr "" +"Paigutuse lisamine on naeruväärselt lihtne. Järgi neid samme ning oled teel " +"WordPressi superteema omamisele." + +#: ../includes/ot-functions-docs-page.php:651 +msgid "For Developers" +msgstr "Arendajatele" + +#: ../includes/ot-functions-docs-page.php:653 +#: ../includes/ot-functions-docs-page.php:682 +msgid "Creating a Layout" +msgstr "Paigutuse loomine" + +#: ../includes/ot-functions-docs-page.php:655 +#: ../includes/ot-functions-docs-page.php:662 +#: ../includes/ot-functions-docs-page.php:668 +msgid "Go to the OptionTre->Settings->Layouts tab." +msgstr "Mine OptionTree->Sätted->Paigutused sakile." + +#: ../includes/ot-functions-docs-page.php:656 +msgid "" +"Enter a name for your layout in the text field and hit \"Save Layouts\", " +"you've created your first layout." +msgstr "" +"Sisesta tekstivälja oma paigutuse nimi ja vajuta \"Salvesta paigutused\" " +"nuppu. Oled loonud oma esimese paigutuse." + +#: ../includes/ot-functions-docs-page.php:657 +#: ../includes/ot-functions-docs-page.php:686 +msgid "Adding a new layout is as easy as repeating the steps above." +msgstr "Uue paigutuse lisamine on lihtne, kui järgid ülaltoodud samme." + +#: ../includes/ot-functions-docs-page.php:660 +#: ../includes/ot-functions-docs-page.php:689 +msgid "Activating a Layout" +msgstr "Paigutuse aktiveerimine" + +#: ../includes/ot-functions-docs-page.php:663 +msgid "Click on the activate layout button in the actions list." +msgstr "Vajuta paigutuse aktiveerimise nupul tegevuste nimekirjas." + +#: ../includes/ot-functions-docs-page.php:666 +#: ../includes/ot-functions-docs-page.php:695 +msgid "Deleting a Layout" +msgstr "Paigutuse kustutamine" + +#: ../includes/ot-functions-docs-page.php:669 +msgid "Click on the delete layout button in the actions list." +msgstr "Vajuta paigutuse kustutamise nupul tegevuste nimekirjas." + +#: ../includes/ot-functions-docs-page.php:672 +#: ../includes/ot-functions-docs-page.php:700 +msgid "Edit Layout Data" +msgstr "Muuda paigutuse andmeid" + +#: ../includes/ot-functions-docs-page.php:674 +#: ../includes/ot-functions-docs-page.php:684 +#: ../includes/ot-functions-docs-page.php:691 +msgid "Go to the Appearance->Theme Options page." +msgstr "Mine Välimus->Teema valikud lehele." + +#: ../includes/ot-functions-docs-page.php:675 +#: ../includes/ot-functions-docs-page.php:703 +msgid "" +"Modify and save your theme options and the layout will be updated " +"automatically." +msgstr "" +"Muuda ja salvesta oma teema valikuid ning paigutust uuendatakse automaatselt." + +#: ../includes/ot-functions-docs-page.php:676 +#: ../includes/ot-functions-docs-page.php:704 +msgid "" +"Saving theme options data will update the currently active layout, so before " +"you start saving make sure you want to modify the current layout." +msgstr "" +"Teema valikute andmete salvestamine uuendab hetkel aktiivset paigutust, " +"seega enne salvestamist veendu, et soovid muuta hetkel kasutuses olevat " +"paigutust." + +#: ../includes/ot-functions-docs-page.php:677 +msgid "" +"If you want to edit a new layout, first create it then save your theme " +"options." +msgstr "" +"Kui soovid muuta uut paigutust, tuleb see kõigepealt luua ja seejärel teema " +"valikud salvestada." + +#: ../includes/ot-functions-docs-page.php:680 +msgid "End-Users Mode" +msgstr "Lõppkasutaja režiim" + +#: ../includes/ot-functions-docs-page.php:685 +msgid "" +"Enter a name for your layout in the text field and hit \"New Layout\", " +"you've created your first layout." +msgstr "" +"Sisesta tekstivälja oma uue paigutuse nimi ja vajuta nuppu \"Uus paigutus\". " +"Oled loonud oma esimese paigutuse." + +#: ../includes/ot-functions-docs-page.php:692 +msgid "" +"Choose a layout from the select list and click the \"Activate Layout\" " +"button." +msgstr "Vali rippmenüüst paigutus ja vajuta \"Aktiveeri paigutus\" nuppu." + +#: ../includes/ot-functions-docs-page.php:697 +msgid "End-Users mode does not allow deleting layouts." +msgstr "Lõppkasutaja režiim ei luba paigutusi kustutada." + +#: ../includes/ot-functions-docs-page.php:702 +msgid "Go to the Appearance->Theme Options tab." +msgstr "Mine Välimus->Teema valikud sakile." + +#: ../includes/ot-functions-docs-page.php:733 +#: ../includes/ot-functions-docs-page.php:815 +msgid "How-to-guide" +msgstr "Õpetus" + +#: ../includes/ot-functions-docs-page.php:735 +msgid "" +"There are a few simple steps you need to take in order to use OptionTree's " +"built in Meta Box API. In the code below I'll show you a basic demo of how " +"to create your very own custom meta box using any number of the option types " +"you have at your disposal. If you would like to see some demo code, there is " +"a directory named theme-mode inside the assets " +"directory that contains a file named demo-meta-boxes.php you " +"can reference." +msgstr "" +"OptionTreele sisse ehitatud Meta Box API kasutamiseks on vaja paari lihtsat " +"toimingut. Allolevas koodis demonstreeritakse meta kasti loomist suvalise " +"hulga saadaolevate valikutüüpidega. Koodinäiteid leiab ka failist demo-" +"meta-boxes.php, mis asub kaustas theme-mode, mis " +"omakorda asub kaustas assets." + +#: ../includes/ot-functions-docs-page.php:737 +msgid "" +"It's important to note that Meta Boxes do not support WYSIWYG editors at " +"this time and if you set one of your options to Textarea it will " +"automatically revert to a Textarea Simple until a valid solution is found. " +"WordPress released this statement regarding the wp_editor() function:" +msgstr "" +"Tähtis märkus: meta kastid ei toeta hetkel WYSIWYG redaktoreid. Kui määrata " +"mõne valiku tüübiks tekstiala, muudetakse see automaatselt lihtsustatud " +"tekstialaks, kuni leitakse töötav lahendus. Wordpress väljastas järgneva " +"teadaande wp_editor() funktsiooni kohta:" + +#: ../includes/ot-functions-docs-page.php:739 +msgid "" +"Once instantiated, the WYSIWYG editor cannot be moved around in the DOM. " +"What this means in practical terms, is that you cannot put it in meta-boxes " +"that can be dragged and placed elsewhere on the page." +msgstr "" +"Korra loodud WYSIWYG toimetajat ei saa DOM-is ringi liigutada. Praktikas " +"tähendab see, et teda ei saa panna meta-kastidesse, mida on võimalik " +"leheküljel ringi liigutada." + +#: ../includes/ot-functions-docs-page.php:741 +msgid "Create and include your custom meta boxes file." +msgstr "Loo ja kaasa oma kohandatud meta kastide fail." + +#: ../includes/ot-functions-docs-page.php:743 +msgid "" +"Create a file and name it anything you want, maybe meta-boxes.php." +msgstr "" +"Loo fail ja anna talle meelepärane nimi, näiteks meta-boxes.php." + +#: ../includes/ot-functions-docs-page.php:744 +msgid "" +"As well, you'll probably want to create a directory named includes to put your meta-boxes.php into which will help keep you " +"file structure nice and tidy." +msgstr "" +"Tõenäoliselt soovid luua kausta nimega includes, kuhu panna oma " +"meta-boxes.php fail, hoidmaks oma failistruktuuri ilusa ja " +"puhtana." + +#: ../includes/ot-functions-docs-page.php:745 +#: ../includes/ot-functions-docs-page.php:845 +msgid "Add the following code to your functions.php." +msgstr "Lisa järgnev kood oma functions.php faili." + +#: ../includes/ot-functions-docs-page.php:755 +msgid "" +"Add a variation of the following code to your meta-boxes.php. " +"You'll obviously need to fill it in with all your custom array values. It's " +"important to note here that we use the admin_init filter " +"because if you were to call the ot_register_meta_box function " +"before OptionTree was loaded the sky would fall on your head." +msgstr "" +"Lisa variatsioon järgnevast koodist oma meta-boxes.php faili. " +"Loomulikult tuleb see täita enda kohandatud massiivi väärtustega. Oluline " +"märkus: kasutame admin_init filtrit, sest kui kutsuda " +"ot_register_meta_box funktsiooni enne OptionTree laadimist, " +"kukuks taevas kaela." + +#: ../includes/ot-functions-docs-page.php:817 +msgid "" +"There are a few simple steps you need to take in order to use OptionTree as " +"a theme included module. In the code below I'll show you a basic demo of how " +"to include the entire plugin as a module, which will allow you to have the " +"most up-to-date version of OptionTree without ever needing to hack the core " +"of the plugin. If you would like to see some demo code, there is a directory " +"named theme-mode inside the assets directory that " +"contains a file named demo-theme-options.php you can reference." +msgstr "" +"Paari lihtsa sammuga saab Optiontreed kasutada teemasse kaasatud moodulina. " +"Allolevas koodis näidatakse lihtsat demonstratsiooni, kuidas kaasata terve " +"moodul moodulina. Sellisel moel on sul kõige uuem versioon OptionTreest, " +"ilma et peaks mooduli tuuma häkkima. Näidiskoodi leiab failist demo-" +"theme-options.php, mis asub kaustas theme-mode, mis " +"omakorda asub kaustas assets." + +#: ../includes/ot-functions-docs-page.php:819 +msgid "Step 1: Include the plugin & turn on theme mode." +msgstr "Samm 1: kaasa moodul ja lülita sisse teemarežiim." + +#: ../includes/ot-functions-docs-page.php:821 +#, php-format +msgid "Download the latest version of %s and unarchive the %s directory." +msgstr "Lae alla viimane %s versioon ja paki ta lahti %s kausta." + +#: ../includes/ot-functions-docs-page.php:822 +#, php-format +msgid "" +"Put the %s directory in the root of your theme. For example, the server path " +"would be %s." +msgstr "Pane %s kaust oma teema juurkausta. Serveri rada oleks näiteks %s." + +#: ../includes/ot-functions-docs-page.php:823 +#, php-format +msgid "Add the following code to the beginning of your %s." +msgstr "Lisa järgnev kood oma %s algusesse." + +#: ../includes/ot-functions-docs-page.php:837 +#, php-format +msgid "" +"For a list of all the OptionTree UI display filters refer to the %s file " +"found in the %s directory of this plugin. This file is the starting point " +"for developing themes with Theme Mode." +msgstr "" +"Täieliku OptionTree UI kuvamise filtrite nimekirja leiad selle plugina %s " +"failist %s kaustast. See fail on teemarežiimis teemade arenduse " +"alguspunktiks." + +#: ../includes/ot-functions-docs-page.php:839 +msgid "" +"You now have OptionTree built into your theme and anytime an update is " +"available replace the old version with the new one." +msgstr "" +"Sul on nüüd OptionTree teemasse sisse ehitatud. Iga kord, kui saadaval on " +"uus versioon, vaheta oma vana versioon uue vastu välja." + +#: ../includes/ot-functions-docs-page.php:841 +msgid "Step 2: Create Theme Options without using the UI Builder." +msgstr "Samm 2: loo teema valikud ilma UI ehitajata." + +#: ../includes/ot-functions-docs-page.php:843 +msgid "" +"Create a file and name it anything you want, maybe theme-options.php, or use the built in file export to create it for you. Remember, you " +"should always check the file for errors before including it in your theme." +msgstr "" +"Loo fail ja anna talle suvaline nimi, näiteks theme-options.php, või kasuta selle loomiseks sisse ehitatud faili eksporti. Enne teemas " +"kasutamist tuleks failile kindlasti vigade kontroll teha." + +#: ../includes/ot-functions-docs-page.php:844 +msgid "" +"As well, you'll probably want to create a directory named includes to put your theme-options.php into which will help keep " +"you file structure nice and tidy." +msgstr "" +"Tõenäoliselt soovid luua ka kausta includes, kuhu oma " +"theme-options.php fail panna. See hoiab failistruktuuri ilusa " +"ja puhtana." + +#: ../includes/ot-functions-docs-page.php:855 +msgid "" +"Add a variation of the following code to your theme-options.php. You'll obviously need to fill it in with all your custom array values " +"for contextual help (optional), sections (required), and settings (required)." +msgstr "" +"Lisa oma theme-options.php faili mingi variatsioon järgnevast " +"koodist. Loomulikult tuleb see täita enda massiiviväärtustega " +"kontekstipõhise abi ( valikuline ), sektsioonide ( nõutud ) ja sätete " +"( nõutud ) jaoks." + +#: ../includes/ot-functions-docs-page.php:858 +msgid "" +"The code below is a boilerplate to get your started. For a full list of the " +"available option types click the \"Option Types\" tab above. Also a quick " +"note, you don't need to put OptionTree in theme mode to manually create " +"options but you will want to hide the docs and settings as each time you " +"load the admin area the settings be written over with the code below if " +"they've changed in any way. However, this ensures your settings do not get " +"tampered with by the end-user." +msgstr "" +"Allolev kood on stereotüüp, millega saad alustada. Saadaolevate " +"valikutüüpide täieliku nimekirja saad ülalolevast \"Valikutüübid\" sakist. " +"Kiire vahemärkus: käsitsi valikute loomiseks ei pea OptionTree olema " +"teemarežiimis, kuid sel juhul tuleks peita ära dokumentatsioon ja sätted, " +"sest iga kord kui haldusliides laaditakse kirjutatakse sätted üle alloleva " +"koodiga. Samas see kindlustab, et lõppkasutaja ei saa sätteid näppida." + +#: ../includes/ot-functions-option-types.php:46 +msgid "Sorry, this function does not exist" +msgstr "Kahjuks sellist funktsiooni pole." + +#: ../includes/ot-functions-option-types.php:134 +msgid "background-repeat" +msgstr "background-repeat" + +#: ../includes/ot-functions-option-types.php:152 +msgid "background-attachment" +msgstr "background-attachment" + +#: ../includes/ot-functions-option-types.php:171 +msgid "background-position" +msgstr "background-position" + +#: ../includes/ot-functions-option-types.php:224 +msgid "background-size" +msgstr "background-size" + +#: ../includes/ot-functions-option-types.php:238 +msgid "background-image" +msgstr "background-image" + +#: ../includes/ot-functions-option-types.php:241 +#: ../includes/ot-functions-option-types.php:3227 +msgid "Add Media" +msgstr "Lisa meediat" + +#: ../includes/ot-functions-option-types.php:316 +#: ../includes/ot-functions-option-types.php:1094 +msgid "width" +msgstr "width" + +#: ../includes/ot-functions-option-types.php:327 +#: ../includes/ot-functions-option-types.php:1114 +#: ../includes/ot-functions-option-types.php:1586 +#: ../includes/ot-functions-option-types.php:2531 +msgid "unit" +msgstr "ühik" + +#: ../includes/ot-functions-option-types.php:346 +msgid "style" +msgstr "style" + +#: ../includes/ot-functions-option-types.php:439 +msgid "offset-x" +msgstr "offset-x" + +#: ../includes/ot-functions-option-types.php:448 +msgid "offset-y" +msgstr "offset-y" + +#: ../includes/ot-functions-option-types.php:457 +msgid "blur-radius" +msgstr "blur-radius" + +#: ../includes/ot-functions-option-types.php:466 +msgid "spread-radius" +msgstr "spread-radius" + +#: ../includes/ot-functions-option-types.php:538 +#: ../includes/ot-functions-option-types.php:592 +msgid "No Categories Found" +msgstr "Kategooriaid ei leitud" + +#: ../includes/ot-functions-option-types.php:587 +#: ../includes/ot-functions-option-types.php:919 +#: ../includes/ot-functions-option-types.php:1855 +#: ../includes/ot-functions-option-types.php:1966 +#: ../includes/ot-functions-option-types.php:2671 +#: ../includes/ot-functions-option-types.php:2786 +msgid "Choose One" +msgstr "Valik üks" + +#: ../includes/ot-functions-option-types.php:867 +#: ../includes/ot-functions-option-types.php:925 +#: ../includes/ot-functions-option-types.php:1917 +#: ../includes/ot-functions-option-types.php:1972 +msgid "No Posts Found" +msgstr "Postitusi ei leitud" + +#: ../includes/ot-functions-option-types.php:1103 +msgid "height" +msgstr "height" + +#: ../includes/ot-functions-option-types.php:1281 +#: ../includes/ot-functions-option-types.php:1324 +msgid "Remove Google Font" +msgstr "Eemalda Google Font" + +#: ../includes/ot-functions-option-types.php:1283 +#: ../includes/ot-functions-option-types.php:1326 +msgid "-- Choose One --" +msgstr "-- Vali üks --" + +#: ../includes/ot-functions-option-types.php:1347 +msgid "Add Google Font" +msgstr "Lisa Google Font" + +#: ../includes/ot-functions-option-types.php:1433 +msgctxt "color picker" +msgid "Standard" +msgstr "Standard" + +#: ../includes/ot-functions-option-types.php:1434 +msgctxt "color picker" +msgid "Hover" +msgstr "Hõljudes" + +#: ../includes/ot-functions-option-types.php:1435 +msgctxt "color picker" +msgid "Active" +msgstr "Aktiivne" + +#: ../includes/ot-functions-option-types.php:1436 +msgctxt "color picker" +msgid "Visited" +msgstr "Külastatud" + +#: ../includes/ot-functions-option-types.php:1437 +msgctxt "color picker" +msgid "Focus" +msgstr "Fookus" + +#: ../includes/ot-functions-option-types.php:1534 +#: ../includes/ot-functions-option-types.php:2271 +#: ../includes/ot-functions-option-types.php:2436 +msgid "Add New" +msgstr "Lisa uus" + +#: ../includes/ot-functions-option-types.php:1537 +#: ../includes/ot-functions-option-types.php:2274 +#: ../includes/ot-functions-option-types.php:2439 +msgid "You can re-order with drag & drop, the order will update after saving." +msgstr "" +"Lohistades saab elemente ümber paigutada. Järjekord uueneb peale " +"salvestamist." + +#: ../includes/ot-functions-option-types.php:1706 +msgid "On" +msgstr "Sees" + +#: ../includes/ot-functions-option-types.php:1728 +msgid "Off" +msgstr "Väljas" + +#: ../includes/ot-functions-option-types.php:1806 +#: ../includes/ot-functions-option-types.php:1861 +msgid "No Pages Found" +msgstr "Lehekülgi ei leitud" + +#: ../includes/ot-functions-option-types.php:2194 +msgid "Choose Sidebar" +msgstr "Vali küljendusmenüü" + +#: ../includes/ot-functions-option-types.php:2199 +msgid "No Sidebars" +msgstr "Küljendusmenüüd puuduvad" + +#: ../includes/ot-functions-option-types.php:2307 +msgid "Facebook" +msgstr "Facebook" + +#: ../includes/ot-functions-option-types.php:2312 +msgid "Twitter" +msgstr "Twitter" + +#: ../includes/ot-functions-option-types.php:2317 +msgid "Google+" +msgstr "Google+" + +#: ../includes/ot-functions-option-types.php:2322 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: ../includes/ot-functions-option-types.php:2327 +msgid "Pinterest" +msgstr "Pinterest" + +#: ../includes/ot-functions-option-types.php:2332 +msgid "Youtube" +msgstr "Youtube" + +#: ../includes/ot-functions-option-types.php:2337 +msgid "Dribbble" +msgstr "Dribbble" + +#: ../includes/ot-functions-option-types.php:2342 +msgid "Github" +msgstr "Github" + +#: ../includes/ot-functions-option-types.php:2347 +msgid "Forrst" +msgstr "Forrst" + +#: ../includes/ot-functions-option-types.php:2352 +msgid "Digg" +msgstr "Digg" + +#: ../includes/ot-functions-option-types.php:2357 +msgid "Delicious" +msgstr "Delicious" + +#: ../includes/ot-functions-option-types.php:2362 +msgid "Tumblr" +msgstr "Tumblr" + +#: ../includes/ot-functions-option-types.php:2367 +msgid "Skype" +msgstr "Skype" + +#: ../includes/ot-functions-option-types.php:2372 +msgid "SoundCloud" +msgstr "SoundCloud" + +#: ../includes/ot-functions-option-types.php:2377 +msgid "Vimeo" +msgstr "Vimeo" + +#: ../includes/ot-functions-option-types.php:2382 +msgid "Flickr" +msgstr "Flickr" + +#: ../includes/ot-functions-option-types.php:2387 +msgid "VK.com" +msgstr "VK.com" + +#: ../includes/ot-functions-option-types.php:2493 +msgid "top" +msgstr "top" + +#: ../includes/ot-functions-option-types.php:2502 +msgid "right" +msgstr "right" + +#: ../includes/ot-functions-option-types.php:2511 +msgid "bottom" +msgstr "bottom" + +#: ../includes/ot-functions-option-types.php:2520 +msgid "left" +msgstr "left" + +#: ../includes/ot-functions-option-types.php:2622 +#: ../includes/ot-functions-option-types.php:2676 +msgid "No Tags Found" +msgstr "Märksõnu ei leitud" + +#: ../includes/ot-functions-option-types.php:2734 +#: ../includes/ot-functions-option-types.php:2791 +msgid "No Taxonomies Found" +msgstr "Taksonoomiaid ei leitud" + +#: ../includes/ot-functions-settings-page.php:35 +msgid "Warning!" +msgstr "Hoiatus!" + +#: ../includes/ot-functions-settings-page.php:36 +#, php-format +msgid "" +"Go to the %s page if you want to save data, this page is for adding settings." +msgstr "Info salvestamiseks on %s leht, see leht siin on sätete lisamiseks." + +#: ../includes/ot-functions-settings-page.php:37 +#, php-format +msgid "" +"If you're unsure or not completely positive that you should be editing these " +"settings, you should read the %s first." +msgstr "Kui kahtled, kas peaksid neid sätteid muutma, loe kõigepealt %s." + +#: ../includes/ot-functions-settings-page.php:38 +msgid "" +"Things could break or be improperly displayed to the end-user if you do one " +"of the following:" +msgstr "" +"Kui teed ühte järgnevatest, võivad asjad katki minna või olla lõpp-" +"kasutajale valesti kuvatud:" + +#: ../includes/ot-functions-settings-page.php:39 +msgid "" +"Give two sections the same ID, give two settings the same ID, give two " +"contextual help content areas the same ID, don't create any settings, or " +"have a section at the end of the settings list." +msgstr "" +"annad kahele sektsioonile sama ID, annad kahele sättele sama ID, annad " +"kahele kontekstipõhise abi alale sama ID, ei loo ühtegi sätet või jätad " +"sektsiooni sätete nimekirja lõppu." + +#: ../includes/ot-functions-settings-page.php:40 +msgid "" +"You can create as many settings as your project requires and use them how " +"you see fit. When you add a setting here, it will be available on the Theme " +"Options page for use in your theme. To separate your settings into sections, " +"click the \"Add Section\" button, fill in the input fields, and a new " +"navigation menu item will be created." +msgstr "" +"Sätteid saab luua nii palju kui vaja ning kasutada oma parema äranägemise " +"järgi. Siia sätte lisamisel tekib see teema valikute lehele oma teemas " +"kasutamiseks. Sätete sektsioonidesse eraldamiseks vajuta \"Lisa sektsioon\" " +"nupule, täida sisendväljad ning uus navigatsioonimenüü element on loodud." + +#: ../includes/ot-functions-settings-page.php:41 +msgid "" +"All of the settings can be sorted and rearranged to your liking with Drag & " +"Drop. Don't worry about the order in which you create your settings, you can " +"always reorder them." +msgstr "" +"Kõiki sätteid saab sorteerida ja ümber paigutada lohistamise abil. Sätete " +"loomise järjekorra üle ei pea muretsema, sest neid saab alati ümber " +"järjestada." + +#: ../includes/ot-functions-settings-page.php:92 +msgid "Add Section" +msgstr "Lisa sektsioon" + +#: ../includes/ot-functions-settings-page.php:99 +msgid "Contextual Help" +msgstr "Konteksti põhine abi" + +#: ../includes/ot-functions-settings-page.php:103 +msgid "Contextual Help Sidebar" +msgstr "Konteksti põhise abi küljeriba" + +#: ../includes/ot-functions-settings-page.php:103 +msgid "" +"If you decide to add contextual help to the Theme Option page, enter the " +"optional \"Sidebar\" HTML here. This would be an extremely useful place to " +"add links to your themes documentation or support forum. Only after you've " +"added some content below will this display to the user." +msgstr "" +"Kui soovida lisada kontekstipõhist abiteksti, sisesta \"Küljeriba\" HTML " +"siia. See oleks väga hea koht, kuhu lisada linke oma teema " +"dokumentatsioonile või kasutajatoe foorumile. Seda näidatakse kasutajale " +"vaid juhul, kui allpool on mingi sisu lisatud." + +#: ../includes/ot-functions-settings-page.php:132 +msgid "Add Contextual Help Content" +msgstr "Lisa konteksti põhine abitekst" + +#: ../includes/ot-functions-settings-page.php:168 +msgid "" +"This import method has been deprecated. That means it has been replaced by a " +"new method and is no longer supported, and may be removed from future " +"versions. All themes that use this import method should be converted to use " +"its replacement below." +msgstr "" +"Impordi meetodit taunitakse. See tähendab, et teda asendab uuem meetod ja " +"enam teda ei toetata. Ta võidakse tulevastes versioonides eemaldada. Kõik " +"teemad, mis seda impordi meetodit kasutavad, tuleks ümber muuta allolevat " +"asendust kasutama." + +#: ../includes/ot-functions-settings-page.php:170 +#, php-format +msgid "" +"If you were given a Theme Options XML file with a premium or free theme, " +"locate it on your hard drive and upload that file by clicking the upload " +"button. A popup window will appear, upload the XML file and click \"%s\". " +"The file URL should be in the upload input, if it is click \"Import XML\"." +msgstr "" +"Kui sulle anti teemaga kaasa valikute XML fail, leia see oma kõvakettalt " +"ning vajuta üleslaadimise nuppu. Avanevas aknas lae üles XML fail ja vajuta " +"\"%s\". Faili URL peaks olema üleslaadimise sisendis. Kui see seal on, " +"vajuta nuppu \"Impordi XML\"." + +#: ../includes/ot-functions-settings-page.php:173 +msgid "Import XML" +msgstr "Impordi XML" + +#: ../includes/ot-functions-settings-page.php:189 +msgid "Add XML" +msgstr "Lisa XML" + +#: ../includes/ot-functions-settings-page.php:226 +msgid "" +"To import your Settings copy and paste what appears to be a random string of " +"alpha numeric characters into this textarea and press the \"Import Settings" +"\" button." +msgstr "" +"Sätete importimiseks kopeeri ja kleebi näiliselt juhuslik string tähtedest " +"ja numbritest siia tekstialasse ning vajuta \"Impordi sätted\" nuppu." + +#: ../includes/ot-functions-settings-page.php:229 +msgid "Import Settings" +msgstr "Impordi seaded" + +#: ../includes/ot-functions-settings-page.php:271 +msgid "" +"Only after you've imported the Settings should you try and update your Theme " +"Options." +msgstr "Enne teema valikute uuendamist impordi sätted." + +#: ../includes/ot-functions-settings-page.php:273 +msgid "" +"To import your Theme Options copy and paste what appears to be a random " +"string of alpha numeric characters into this textarea and press the \"Import " +"Theme Options\" button." +msgstr "" +"Teema valikute importimiseks kopeeri ja kleebi näiliselt juhuslik string " +"tähtedest ja numbritest siia tekstialasse ning vajuta \"Impordi teema valikud" +"\" nuppu." + +#: ../includes/ot-functions-settings-page.php:276 +msgid "Import Theme Options" +msgstr "Impordi teema valikud" + +#: ../includes/ot-functions-settings-page.php:318 +msgid "" +"Only after you've imported the Settings should you try and update your " +"Layouts." +msgstr "Enne paigutuste uuendamist impordi sätted." + +#: ../includes/ot-functions-settings-page.php:320 +msgid "" +"To import your Layouts copy and paste what appears to be a random string of " +"alpha numeric characters into this textarea and press the \"Import Layouts\" " +"button. Keep in mind that when you import your layouts, the active layout's " +"saved data will write over the current data set for your Theme Options." +msgstr "" +"Paigutuste importimiseks kopeeri ja kleebi näiliselt juhuslik string " +"tähtedest ja numbritest siia tekstialasse ning vajuta \"Impordi paigutus\" " +"nuppu. Arvesta, et aktiivse paigutuse salvestatud andmed kirjutavad " +"hetkeandmed üle." + +#: ../includes/ot-functions-settings-page.php:323 +msgid "Import Layouts" +msgstr "Impordi paigutused" + +#: ../includes/ot-functions-settings-page.php:366 +#, php-format +msgid "" +"Export your Settings into a fully functional %s file. If you want to add " +"your own custom %s text domain to the file, enter it into the text field " +"before exporting. For more information on how to use this file read the " +"documentation on %s. Remember, you should always check the file for errors " +"before including it in your theme." +msgstr "" +"Ekspordi oma sätted täisfunktsionaalsesse %s faili. Kui soovid failile " +"lisada enda kohandatud %s tekstidomeeni, sisesta see tekstivälja enne " +"eksportimist. Lisainformatsiooni selle faili kasutamise kohta leiad " +"dokumentatsioonis %s. Pea meeles, et failile tuleks teha vigade kontroll " +"enne teemasse kaasamist." + +#: ../includes/ot-functions-settings-page.php:375 +msgid "Export Settings File" +msgstr "Ekspordi seadete fail" + +#: ../includes/ot-functions-settings-page.php:405 +msgid "" +"Export your Settings by highlighting this text and doing a copy/paste into a " +"blank .txt file. Then save the file for importing into another install of " +"WordPress later. Alternatively, you could just paste it into the " +"OptionTree->Settings->Import Settings textarea " +"on another web site." +msgstr "" +"Ekspordi oma sätted, markeerides see tekst ja kopeerides ta tühja .txt " +"faili. Seejärel salvesta fail hilisemaks importimiseks teise WordPressi " +"installatsiooni. Alternatiivina võib selle kleepida otse teise veebilehe " +"OptionTree->Sätted->Import Sätted tekstialasse." + +#: ../includes/ot-functions-settings-page.php:441 +msgid "" +"Export your Theme Options data by highlighting this text and doing a copy/" +"paste into a blank .txt file. Then save the file for importing into another " +"install of WordPress later. Alternatively, you could just paste it into the " +"OptionTree->Settings->Import Theme Options " +"textarea on another web site." +msgstr "" +"Ekspordi oma teema valikud, markeerides see tekst ja kopeerides ta tühja ." +"txt faili. Seejärel salvesta fail hilisemaks importimiseks teise WordPressi " +"installatsiooni. Alternatiivina võib selle kleepida otse teise veebilehe " +"OptionTree->Sätted->Import Teema valikud " +"tekstialasse." + +#: ../includes/ot-functions-settings-page.php:477 +msgid "" +"Export your Layouts by highlighting this text and doing a copy/paste into a " +"blank .txt file. Then save the file for importing into another install of " +"WordPress later. Alternatively, you could just paste it into the " +"OptionTree->Settings->Import Layouts textarea " +"on another web site." +msgstr "" +"Ekspordi oma paigutused, markeerides see tekst ja kopeerides ta tühja .txt " +"faili. Seejärel salvesta fail hilisemaks importimiseks teise WordPressi " +"installatsiooni. Alternatiivina võib selle kleepida otse teise veebilehe " +"OptionTree->Sätted->Import Paigutused " +"tekstialasse." + +#: ../includes/ot-functions-settings-page.php:519 +msgid "" +"To add a new layout enter a unique lower case alphanumeric string (dashes " +"allowed) in the text field and click \"Save Layouts\"." +msgstr "" +"Uue paigutuse lisamiseks sisestage tekstivälja unikaalne väiketähtedega " +"alfanumbriline string ( sidekriipsud lubatud ) ning vajutage \"Salvesta " +"paigutused\" nupul." + +#: ../includes/ot-functions-settings-page.php:520 +msgid "" +"As well, you can activate, remove, and drag & drop the order; all situations " +"require you to click \"Save Layouts\" for the changes to be applied." +msgstr "" +"Saate ka aktiveerida, eemaldada ning lohistades järjekorda muuta. Muudatused " +"ei mõju enne, kui vajutate \"Salvesta paigutused\" nuppu." + +#: ../includes/ot-functions-settings-page.php:521 +msgid "" +"When you create a new layout it will become active and any changes made to " +"the Theme Options will be applied to it. If you switch back to a different " +"layout immediately after creating a new layout that new layout will have a " +"snapshot of the current Theme Options data attached to it." +msgstr "" +"Uue paigutuse loomisel muudetakse see aktiivseks ning edasised muudatused " +"teema valikutes mõjuvad talle. Kui peale uue paigutuse loomist kohe mõne muu " +"paigutuse peale vahetada, siis uue paigutuse külge jääb teema valikute " +"andmete hetkeseis paigutuse loomisel." + +#: ../includes/ot-functions-settings-page.php:522 +msgid "" +"Visit OptionTree->Documentation->Layouts Overview to see a more " +"in-depth description of what layouts are and how to use them." +msgstr "" +"Lehel OptionTree->Dokumentatsioon->Paigutuste ülevaade leiad " +"põhjalikuma paigutuste kirjelduse ja kasutusjuhendi." + +#: ../includes/ot-functions-settings-page.php:559 +msgid "Save Layouts" +msgstr "Salvesta paigutused" + +#: ../includes/ot-settings-api.php:364 +msgid "Reset Options" +msgstr "Algseadista seaded" + +#: ../ot-loader.php:21 +msgid "" +"OptionTree is installed as a plugin and also embedded in your current theme. " +"Please deactivate the plugin to load the theme dependent version of " +"OptionTree, and remove this warning." +msgstr "" +"OptionTree on paigaldatud nii moodulina kui ka kaasatud aktiivses teemas. " +"Palun lülita moodul välja, et laetaks teemast sõltuv versioon OptionTreest " +"ja see hoiatus kaoks." + +#~ msgid "Congratulations! You have a clean install." +#~ msgstr "Õnnitlused! Sul on puhas paigaldus." + +#~ msgid "" +#~ "Your version of OptionTree does not have any outdated data. If there was " +#~ "outdated data, you would be presented with options to clean it up." +#~ msgstr "" +#~ "Sinu OptionTree versioonis ei ole aegunud andmeid. Kui neid oleks, siis " +#~ "pakutaks võimalust puhastamiseks." + +#~ msgid "Hide This Page" +#~ msgstr "Peida lehekülg" + +#~ msgid "Demo Meta Box" +#~ msgstr "Näidis meta kast" + +#~ msgid "Conditions" +#~ msgstr "Tingimused" + +#~ msgid "Show Gallery" +#~ msgstr "Näita galeriid" + +#~ msgid "Shows the Gallery when set to %s." +#~ msgstr "Näitab galeriid, kui on määratud asendisse %s" + +#~ msgid "Congratulations, you created a gallery!" +#~ msgstr "Õnnitlused, lõite just galerii!" + +#~ msgid "This is a Gallery option type. It displays when %s." +#~ msgstr "See on galerii valikutüüp. Nähtaval, kui ta on %s" + +#~ msgid "More Options" +#~ msgstr "Rohkem seadeid" + +#~ msgid "This is a demo Text field." +#~ msgstr "See on näidis tekstisisend." + +#~ msgid "This is a demo Textarea field." +#~ msgstr "See on näidis tekstiväli." + +#~ msgid "Help content goes here!" +#~ msgstr "Siia lähevad abitekstid!" + +#~ msgid "Sidebar content goes here!" +#~ msgstr "Siia läheb küljeriba sisu!" + +#~ msgid "No" +#~ msgstr "Ei" + +#~ msgid "Yes" +#~ msgstr "Jah" + +#~ msgid "Gallery Shortcode" +#~ msgstr "Galerii lühikood" + +#~ msgid "" +#~ "The Gallery option type can also be saved as a shortcode by adding %s to " +#~ "the class attribute. Using the Gallery option type in this manner will " +#~ "result in a better user experience as you're able to save the link, " +#~ "column, and order settings." +#~ msgstr "" +#~ "Lisades %s klassiatribuudiks saab galerii valikutüübi salvestada ka " +#~ "lühikoodina. Sellisel moel galerii valikutüüpi kasutades on tulemuseks " +#~ "parem kasutajakogemus, kuna saad salvestada lingi, tulba ja järjekorra " +#~ "sätteid." + +#~ msgid "" +#~ "The List Item option type allows for a great deal of customization. You " +#~ "can add settings to the List Item and those settings will be displayed to " +#~ "the user when they add a new List Item. Typical use is for creating " +#~ "sliding content or blocks of code for custom layouts." +#~ msgstr "" +#~ "Nimekirja elemendi valikutüüpi on väga hästi kohandatav. Nimekirja " +#~ "elementidele saab lisada sätteid ning neid näidatakse kasutajale uue " +#~ "elemendi lisamisel. Tüüpiline kasutus on liugleva sisu jaoks või " +#~ "kohandatud paigutuse koodiblokkide tarvis." + +#~ msgid "Content" +#~ msgstr "Sisu" + +#~ msgid "Maybe" +#~ msgstr "Võib-olla" + +#~ msgid "Upload Attachment ID" +#~ msgstr "Üles laetud manuse ID" + +#~ msgid "" +#~ "The Upload option type can also be saved as an attachment ID by adding %s " +#~ "to the class attribute." +#~ msgstr "" +#~ "Üleslaadimise valikutüüpi saab salvestada ka manuse ID-na, lisades %s " +#~ "klassi atribuudile." + +#~ msgid "Color Picker" +#~ msgstr "Värvi valija" diff --git a/option-tree/languages/option-tree.po b/option-tree/languages/option-tree.po index 54ce170..3f9b9fb 100644 --- a/option-tree/languages/option-tree.po +++ b/option-tree/languages/option-tree.po @@ -1,701 +1,42 @@ msgid "" msgstr "" "Project-Id-Version: OptionTree\n" -"POT-Creation-Date: 2014-11-20 23:06-0800\n" -"PO-Revision-Date: 2014-11-20 23:06-0800\n" +"POT-Creation-Date: 2015-02-09 08:02-0800\n" +"PO-Revision-Date: 2015-02-09 08:03-0800\n" "Last-Translator: Derek Herman \n" "Language-Team: Valen Designs\n" -"Language: English\n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.7\n" +"X-Generator: Poedit 1.7.4\n" "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" "_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;" "esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-Basepath: .\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Poedit-SearchPath-0: ..\n" +"X-Poedit-SearchPathExcluded-0: ../.git\n" +"X-Poedit-SearchPathExcluded-1: ../composer.json\n" +"X-Poedit-SearchPathExcluded-2: ../assets\n" -#: ../ot-loader.php:21 -msgid "" -"OptionTree is installed as a plugin and also embedded in your current theme. " -"Please deactivate the plugin to load the theme dependent version of " -"OptionTree, and remove this warning." -msgstr "" - -#: ../ot-loader.php:752 ../assets/theme-mode/demo-theme-options.php:639 -#: ../includes/ot-functions-admin.php:657 -#: ../includes/ot-functions-docs-page.php:374 -#: ../includes/ot-functions-settings-page.php:170 -msgid "Send to OptionTree" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:23 -msgid "Demo Meta Box" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:30 -msgid "Conditions" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:35 -msgid "Show Gallery" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:38 -#, php-format -msgid "Shows the Gallery when set to %s." -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:45 -msgid "Congratulations, you created a gallery!" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:50 -#: ../assets/theme-mode/demo-theme-options.php:208 -#: ../includes/ot-functions-admin.php:2235 -#: ../includes/ot-functions-admin.php:4712 -#: ../includes/ot-functions-docs-page.php:156 -msgid "Gallery" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:53 -#, php-format -msgid "This is a Gallery option type. It displays when %s." -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:57 -msgid "More Options" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:62 -#: ../assets/theme-mode/demo-theme-options.php:548 -#: ../includes/ot-functions-admin.php:2255 -#: ../includes/ot-functions-docs-page.php:269 -msgid "Text" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:65 -msgid "This is a demo Text field." -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:68 -#: ../assets/theme-mode/demo-theme-options.php:563 -#: ../includes/ot-functions-admin.php:2256 -#: ../includes/ot-functions-docs-page.php:272 -msgid "Textarea" -msgstr "" - -#: ../assets/theme-mode/demo-meta-boxes.php:71 -msgid "This is a demo Textarea field." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:29 -#: ../assets/theme-mode/demo-theme-options.php:38 -#: ../includes/ot-functions-admin.php:231 -msgid "Option Types" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:30 -msgid "Help content goes here!" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:33 -msgid "Sidebar content goes here!" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:44 -#: ../includes/ot-functions-admin.php:2225 -#: ../includes/ot-functions-docs-page.php:110 -msgid "Background" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:45 -#: ../includes/ot-functions-docs-page.php:111 -#, php-format -msgid "" -"The Background option type is for adding background styles to your theme " -"either dynamically via the CSS option type below or manually with %s. The " -"Background option type has filters that allow you to remove fields or change " -"the defaults. For example, you can filter %s to remove unwanted fields from " -"all Background options or an individual one. You can also filter %s. These " -"filters allow you to fine tune the select lists for your specific needs." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:45 -#: ../assets/theme-mode/demo-theme-options.php:624 -#: ../includes/ot-functions-admin.php:3639 -#: ../includes/ot-functions-docs-page.php:111 -#: ../includes/ot-functions-docs-page.php:354 -msgid "and" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:59 -#: ../includes/ot-functions-admin.php:2226 -#: ../includes/ot-functions-docs-page.php:113 -msgid "Category Checkbox" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:60 -#: ../includes/ot-functions-docs-page.php:114 -msgid "" -"The Category Checkbox option type displays a list of category IDs. It allows " -"the user to check multiple category IDs and will return that value as an " -"array for use in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:74 -#: ../includes/ot-functions-admin.php:2227 -#: ../includes/ot-functions-docs-page.php:116 -msgid "Category Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:75 -#: ../includes/ot-functions-docs-page.php:117 -msgid "" -"The Category Select option type displays a list of category IDs. It allows " -"the user to select only one category ID and will return that value for use " -"in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:89 -#: ../includes/ot-functions-admin.php:2228 -#: ../includes/ot-functions-docs-page.php:119 -msgid "Checkbox" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:90 -#: ../includes/ot-functions-docs-page.php:120 -msgid "" -"The Checkbox option type displays a group of choices. It allows the user to " -"check multiple choices and will return that value as an array for use in a " -"custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:104 -#: ../assets/theme-mode/demo-theme-options.php:394 -#: ../assets/theme-mode/demo-theme-options.php:446 -msgid "No" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:109 -#: ../assets/theme-mode/demo-theme-options.php:389 -#: ../assets/theme-mode/demo-theme-options.php:441 -msgid "Yes" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:116 -#: ../includes/ot-functions-docs-page.php:122 -msgid "Colorpicker" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:117 -#: ../includes/ot-functions-docs-page.php:123 -msgid "" -"The Colorpicker option type saves a hexadecimal color code for use in CSS. " -"Use it to modify the color of something in your theme." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:131 -#: ../includes/ot-functions-admin.php:2230 -#: ../includes/ot-functions-docs-page.php:125 -msgid "CSS" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:132 -#: ../includes/ot-functions-docs-page.php:126 -#, php-format -msgid "" -"The CSS option type is a textarea that when used properly can add dynamic " -"CSS to your theme from within OptionTree. Unfortunately, due server " -"limitations you will need to create a file named %s at the root level of " -"your theme and change permissions using %s so the server can write to the " -"file. I have had the most success setting this single file to %s but feel " -"free to play around with permissions until everything is working. A good " -"starting point is %s. When the server can save to the file, CSS will " -"automatically be updated when you save your Theme Options." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:132 -#: ../includes/ot-functions-docs-page.php:128 -#, php-format -msgid "" -"This example assumes you have an option with the ID of %1$s. Which means " -"this option will automatically insert the value of %1$s into the %2$s when " -"the Theme Options are saved." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:148 -#: ../includes/ot-functions-admin.php:2231 -#: ../includes/ot-functions-docs-page.php:144 -msgid "Custom Post Type Checkbox" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:149 -#: ../includes/ot-functions-docs-page.php:145 -#, php-format -msgid "" -"The Custom Post Type Select option type displays a list of IDs from any " -"available WordPress post type or custom post type. It allows the user to " -"check multiple post IDs for use in a custom function or loop. Requires at " -"least one valid %1$s in the %1$s field." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:163 -#: ../includes/ot-functions-admin.php:2232 -#: ../includes/ot-functions-docs-page.php:147 -msgid "Custom Post Type Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:164 -#: ../includes/ot-functions-docs-page.php:148 -#, php-format -msgid "" -"The Custom Post Type Select option type displays a list of IDs from any " -"available WordPress post type or custom post type. It will return a single " -"post ID for use in a custom function or loop. Requires at least one valid " -"%1$s in the %1$s field." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:178 -#: ../includes/ot-functions-admin.php:2233 -#: ../includes/ot-functions-docs-page.php:150 -msgid "Date Picker" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:179 -#: ../includes/ot-functions-docs-page.php:151 -msgid "" -"The Date Picker option type is tied to a standard form input field which " -"displays a calendar pop-up that allow the user to pick any date when focus " -"is given to the input field. The returned value is a date formatted string." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:193 -#: ../includes/ot-functions-admin.php:2234 -#: ../includes/ot-functions-docs-page.php:153 -msgid "Date Time Picker" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:194 -#: ../includes/ot-functions-docs-page.php:154 -msgid "" -"The Date Time Picker option type is tied to a standard form input field " -"which displays a calendar pop-up that allow the user to pick any date and " -"time when focus is given to the input field. The returned value is a date " -"and time formatted string." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:209 -#: ../includes/ot-functions-docs-page.php:157 -msgid "" -"The Gallery option type saves a comma separated list of image attachment " -"IDs. You will need to create a front-end function to display the images in " -"your theme." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:223 -msgid "Gallery Shortcode" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:224 -#, php-format -msgid "" -"The Gallery option type can also be saved as a shortcode by adding %s to the " -"class attribute. Using the Gallery option type in this manner will result in " -"a better user experience as you're able to save the link, column, and order " -"settings." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:238 -#: ../includes/ot-functions-admin.php:2236 -#: ../includes/ot-functions-docs-page.php:159 -msgid "List Item" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:239 -msgid "" -"The List Item option type allows for a great deal of customization. You can " -"add settings to the List Item and those settings will be displayed to the " -"user when they add a new List Item. Typical use is for creating sliding " -"content or blocks of code for custom layouts." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:253 -msgid "Content" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:269 -#: ../includes/ot-functions-admin.php:2237 -#: ../includes/ot-functions-docs-page.php:162 -msgid "Measurement" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:270 -#: ../includes/ot-functions-docs-page.php:163 -#, php-format -msgid "" -"The Measurement option type is a mix of input and select fields. The text " -"input excepts a value and the select lets you choose the unit of measurement " -"to add to that value. Currently the default units are %s, %s, %s, and %s. " -"However, you can change them with the %s filter." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:284 -#: ../includes/ot-functions-admin.php:2238 -#: ../includes/ot-functions-docs-page.php:193 -msgid "Numeric Slider" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:285 -#: ../includes/ot-functions-docs-page.php:194 -msgid "" -"The Numeric Slider option type displays a jQuery UI slider. It will return a " -"single numerical value for use in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:299 -#: ../includes/ot-functions-admin.php:2239 -#: ../includes/ot-functions-docs-page.php:196 -msgid "On/Off" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:300 -#: ../includes/ot-functions-docs-page.php:197 -#, php-format -msgid "" -"The On/Off option type displays a simple switch that can be used to turn " -"things on or off. The saved return value is either %s or %s." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:314 -#: ../includes/ot-functions-admin.php:2240 -#: ../includes/ot-functions-docs-page.php:199 -msgid "Page Checkbox" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:315 -#: ../includes/ot-functions-docs-page.php:200 -msgid "" -"The Page Checkbox option type displays a list of page IDs. It allows the " -"user to check multiple page IDs for use in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:329 -#: ../includes/ot-functions-admin.php:2241 -#: ../includes/ot-functions-docs-page.php:202 -msgid "Page Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:330 -#: ../includes/ot-functions-docs-page.php:203 -msgid "" -"The Page Select option type displays a list of page IDs. It will return a " -"single page ID for use in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:344 -#: ../includes/ot-functions-admin.php:2242 -#: ../includes/ot-functions-docs-page.php:205 -msgid "Post Checkbox" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:345 -#: ../includes/ot-functions-docs-page.php:206 -msgid "" -"The Post Checkbox option type displays a list of post IDs. It allows the " -"user to check multiple post IDs for use in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:359 -#: ../includes/ot-functions-admin.php:2243 -#: ../includes/ot-functions-docs-page.php:208 -msgid "Post Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:360 -#: ../includes/ot-functions-docs-page.php:209 -msgid "" -"The Post Select option type displays a list of post IDs. It will return a " -"single post ID for use in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:374 -#: ../includes/ot-functions-admin.php:2244 -#: ../includes/ot-functions-docs-page.php:211 -msgid "Radio" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:375 -#: ../includes/ot-functions-docs-page.php:212 -msgid "" -"The Radio option type displays a group of choices. It allows the user to " -"choose one and will return that value as a string for use in a custom " -"function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:399 -#: ../assets/theme-mode/demo-theme-options.php:451 -msgid "Maybe" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:406 -#: ../includes/ot-functions-admin.php:2245 -#: ../includes/ot-functions-docs-page.php:214 -msgid "Radio Image" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:407 -#: ../includes/ot-functions-docs-page.php:215 -#, php-format -msgid "" -"the Radio Images option type is primarily used for layouts. However, you can " -"filter the image list using %s. As well, you can add your own custom images " -"using the choices array." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:421 -#: ../includes/ot-functions-admin.php:2246 -#: ../includes/ot-functions-docs-page.php:241 -msgid "Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:422 -#: ../includes/ot-functions-docs-page.php:242 -msgid "" -"The Select option type is used to list anything you want that would be " -"chosen from a select list." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:436 -msgid "-- Choose One --" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:458 -#: ../includes/ot-functions-admin.php:2247 -#: ../includes/ot-functions-docs-page.php:244 -msgid "Sidebar Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:459 -#: ../includes/ot-functions-docs-page.php:245 -#, php-format -msgid "" -"This option type makes it possible for users to select a WordPress " -"registered sidebar to use on a specific area. By using the two provided " -"filters, %s, and %s we can be selective about which sidebars are available " -"on a specific content area." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:459 -#: ../includes/ot-functions-docs-page.php:246 -#, php-format -msgid "" -"For example, if we create a WordPress theme that provides the ability to " -"change the Blog Sidebar and we don't want to have the footer sidebars " -"available on this area, we can unset those sidebars either manually or by " -"using a regular expression if we have a common name like %s." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:473 -#: ../includes/ot-functions-admin.php:2251 -#: ../includes/ot-functions-docs-page.php:257 -msgid "Tag Checkbox" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:474 -#: ../includes/ot-functions-docs-page.php:258 -msgid "" -"The Tag Checkbox option type displays a list of tag IDs. It allows the user " -"to check multiple tag IDs and will return that value as an array for use in " -"a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:488 -#: ../includes/ot-functions-admin.php:2252 -#: ../includes/ot-functions-docs-page.php:260 -msgid "Tag Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:489 -#: ../includes/ot-functions-docs-page.php:261 -msgid "" -"The Tag Select option type displays a list of tag IDs. It allows the user to " -"select only one tag ID and will return that value for use in a custom " -"function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:503 -#: ../includes/ot-functions-admin.php:2249 -#: ../includes/ot-functions-docs-page.php:251 -msgid "Social Links" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:504 -#: ../includes/ot-functions-docs-page.php:252 -#, php-format -msgid "" -"The Social Links option type utilizes a drag & drop interface to create a " -"list of social links. There are a few filters that make extending this " -"option type easy. You can set the %s filter to %s and turn off loading " -"default values. Use the %s filter to change the default values that are " -"loaded. To filter the settings array use the %s filter." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:518 -#: ../includes/ot-functions-admin.php:2253 -#: ../includes/ot-functions-docs-page.php:263 -msgid "Taxonomy Checkbox" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:519 -#: ../includes/ot-functions-docs-page.php:264 -msgid "" -"The Taxonomy Checkbox option type displays a list of taxonomy IDs. It allows " -"the user to check multiple taxonomy IDs and will return that value as an " -"array for use in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:533 -#: ../includes/ot-functions-admin.php:2254 -#: ../includes/ot-functions-docs-page.php:266 -msgid "Taxonomy Select" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:534 -#: ../includes/ot-functions-docs-page.php:267 -msgid "" -"The Taxonomy Select option type displays a list of taxonomy IDs. It allows " -"the user to select only one taxonomy ID and will return that value for use " -"in a custom function or loop." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:549 -#: ../includes/ot-functions-docs-page.php:270 -msgid "" -"The Text option type is used to save string values. For example, any " -"optional or required text that is of reasonably short character length." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:564 -#: ../includes/ot-functions-docs-page.php:273 -#, php-format -msgid "" -"The Textarea option type is a large string value used for custom code or " -"text in the theme and has a WYSIWYG editor that can be filtered to change " -"the how it is displayed. For example, you can filter %s, %s, %s, and %s." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:578 -#: ../includes/ot-functions-admin.php:2257 -#: ../includes/ot-functions-docs-page.php:331 -msgid "Textarea Simple" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:579 -#: ../includes/ot-functions-docs-page.php:332 -msgid "" -"The Textarea Simple option type is a large string value used for custom code " -"or text in the theme. The Textarea Simple does not have a WYSIWYG editor." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:593 -#: ../includes/ot-functions-admin.php:2258 -#: ../includes/ot-functions-docs-page.php:347 -msgid "Textblock" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:594 -#: ../includes/ot-functions-docs-page.php:348 -msgid "" -"The Textblock option type is used only on the Theme Option page. It will " -"allow you to create & display HTML, but has no title above the text block. " -"You can then use the Textblock to add a more detailed set of instruction on " -"how the options are used in your theme. You would never use this in your " -"themes template files as it does not save a value." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:608 -#: ../includes/ot-functions-admin.php:2259 -#: ../includes/ot-functions-docs-page.php:350 -msgid "Textblock Titled" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:609 -#: ../includes/ot-functions-docs-page.php:351 -msgid "" -"The Textblock Titled option type is used only on the Theme Option page. It " -"will allow you to create & display HTML, and has a title above the text " -"block. You can then use the Textblock Titled to add a more detailed set of " -"instruction on how the options are used in your theme. You would never use " -"this in your themes template files as it does not save a value." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:623 -#: ../includes/ot-functions-admin.php:2260 -#: ../includes/ot-functions-docs-page.php:353 -msgid "Typography" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:624 -#: ../includes/ot-functions-docs-page.php:354 -#, php-format -msgid "" -"The Typography option type is for adding typography styles to your theme " -"either dynamically via the CSS option type above or manually with %s. The " -"Typography option type has filters that allow you to remove fields or change " -"the defaults. For example, you can filter %s to remove unwanted fields from " -"all Background options or an individual one. You can also filter %s. These " -"filters allow you to fine tune the select lists for your specific needs." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:638 -#: ../includes/ot-functions-admin.php:2261 -#: ../includes/ot-functions-docs-page.php:373 -msgid "Upload" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:639 -#: ../includes/ot-functions-docs-page.php:374 -#, php-format -msgid "" -"The Upload option type is used to upload any WordPress supported media. " -"After uploading, users are required to press the \"%s\" button in order to " -"populate the input with the URI of that media. There is one caveat of this " -"feature. If you import the theme options and have uploaded media on one site " -"the old URI will not reflect the URI of your new site. You will have to re-" -"upload or %s any media to your new server and change the URIs if necessary." -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:653 -msgid "Upload Attachment ID" -msgstr "" - -#: ../assets/theme-mode/demo-theme-options.php:654 -#, php-format -msgid "" -"The Upload option type can also be saved as an attachment ID by adding %s to " -"the class attribute." -msgstr "" - -#: ../includes/ot-cleanup-api.php:69 ../includes/ot-cleanup-api.php:84 -#: ../includes/ot-cleanup-api.php:116 +#: ../includes/ot-cleanup-api.php:84 ../includes/ot-cleanup-api.php:101 +#: ../includes/ot-cleanup-api.php:130 msgid "OptionTree Cleanup" msgstr "" -#: ../includes/ot-cleanup-api.php:84 +#: ../includes/ot-cleanup-api.php:101 #, php-format msgid "" "OptionTree has outdated data that should be removed. Please go to %s for " "more information." msgstr "" -#: ../includes/ot-cleanup-api.php:124 +#: ../includes/ot-cleanup-api.php:136 msgid "Multiple Media Posts" msgstr "" -#: ../includes/ot-cleanup-api.php:126 +#: ../includes/ot-cleanup-api.php:138 #, php-format msgid "" "There are currently %s OptionTree media posts in your database. At some " @@ -706,7 +47,7 @@ msgid "" "posts and get your database cleaned up." msgstr "" -#: ../includes/ot-cleanup-api.php:128 +#: ../includes/ot-cleanup-api.php:140 #, php-format msgid "" "By clicking the button below, OptionTree will delete %s records and " @@ -715,14 +56,14 @@ msgid "" "updated to the correct media post." msgstr "" -#: ../includes/ot-cleanup-api.php:130 +#: ../includes/ot-cleanup-api.php:142 msgid "" "This could take a while to fully process depending on how many records you " "have in your database, so please be patient and wait for the script to " "finish." msgstr "" -#: ../includes/ot-cleanup-api.php:132 +#: ../includes/ot-cleanup-api.php:144 #, php-format msgid "" "%s Your server is running in safe mode. Which means this page will " @@ -730,23 +71,23 @@ msgid "" "using %s if your server is having trouble processing that many at one time." msgstr "" -#: ../includes/ot-cleanup-api.php:134 +#: ../includes/ot-cleanup-api.php:146 msgid "Consolidate Posts" msgstr "" -#: ../includes/ot-cleanup-api.php:162 +#: ../includes/ot-cleanup-api.php:174 msgid "Reloading..." msgstr "" -#: ../includes/ot-cleanup-api.php:198 +#: ../includes/ot-cleanup-api.php:210 msgid "Clean up script has completed, the page will now reload..." msgstr "" -#: ../includes/ot-cleanup-api.php:218 +#: ../includes/ot-cleanup-api.php:230 msgid "Outdated Table" msgstr "" -#: ../includes/ot-cleanup-api.php:220 +#: ../includes/ot-cleanup-api.php:232 #, php-format msgid "" "If you have upgraded from an old 1.x version of OptionTree at some point, " @@ -755,42 +96,28 @@ msgid "" "Click the button below." msgstr "" -#: ../includes/ot-cleanup-api.php:222 +#: ../includes/ot-cleanup-api.php:234 msgid "Drop Table" msgstr "" -#: ../includes/ot-cleanup-api.php:226 +#: ../includes/ot-cleanup-api.php:238 #, php-format msgid "Deleting the outdated and unused %s table..." msgstr "" -#: ../includes/ot-cleanup-api.php:232 +#: ../includes/ot-cleanup-api.php:244 #, php-format msgid "The %s table has been successfully deleted. The page will now reload..." msgstr "" -#: ../includes/ot-cleanup-api.php:244 +#: ../includes/ot-cleanup-api.php:256 #, php-format msgid "Something went wrong. The %s table was not deleted." msgstr "" -#: ../includes/ot-cleanup-api.php:254 -msgid "Congratulations! You have a clean install." -msgstr "" - -#: ../includes/ot-cleanup-api.php:256 -msgid "" -"Your version of OptionTree does not have any outdated data. If there was " -"outdated data, you would be presented with options to clean it up." -msgstr "" - -#: ../includes/ot-cleanup-api.php:258 -msgid "Hide This Page" -msgstr "" - #: ../includes/ot-functions-admin.php:50 ../includes/ot-functions-admin.php:51 #: ../includes/ot-functions-admin.php:169 -#: ../includes/ot-functions-admin.php:193 ../includes/ot-functions.php:284 +#: ../includes/ot-functions-admin.php:193 ../includes/ot-functions.php:361 msgid "Theme Options" msgstr "" @@ -820,7 +147,7 @@ msgstr "" #: ../includes/ot-functions-admin.php:109 #: ../includes/ot-functions-admin.php:110 -#: ../includes/ot-functions-docs-page.php:797 +#: ../includes/ot-functions-docs-page.php:821 msgid "OptionTree" msgstr "" @@ -880,6 +207,10 @@ msgstr "" msgid "Creating Options" msgstr "" +#: ../includes/ot-functions-admin.php:231 +msgid "Option Types" +msgstr "" + #: ../includes/ot-functions-admin.php:235 msgid "Function References" msgstr "" @@ -927,334 +258,564 @@ msgstr "" msgid "What's a layout anyhow?" msgstr "" -#: ../includes/ot-functions-admin.php:499 +#: ../includes/ot-functions-admin.php:502 +#: ../includes/ot-functions-admin.php:614 +#: ../includes/ot-functions-admin.php:683 +#, php-format +msgid "The %s input field for %s only allows numeric values." +msgstr "" + +#: ../includes/ot-functions-admin.php:512 msgid "The Colorpicker only allows valid hexadecimal values." msgstr "" -#: ../includes/ot-functions-admin.php:658 +#: ../includes/ot-functions-admin.php:566 +#, php-format +msgid "The %s Colorpicker only allows valid hexadecimal values." +msgstr "" + +#: ../includes/ot-functions-admin.php:849 +#: ../includes/ot-functions-docs-page.php:398 +#: ../includes/ot-functions-settings-page.php:170 ../ot-loader.php:782 +msgid "Send to OptionTree" +msgstr "" + +#: ../includes/ot-functions-admin.php:850 #: ../includes/ot-functions-option-types.php:257 -#: ../includes/ot-functions-option-types.php:2453 +#: ../includes/ot-functions-option-types.php:3243 msgid "Remove Media" msgstr "" -#: ../includes/ot-functions-admin.php:659 +#: ../includes/ot-functions-admin.php:851 msgid "Are you sure you want to reset back to the defaults?" msgstr "" -#: ../includes/ot-functions-admin.php:660 +#: ../includes/ot-functions-admin.php:852 msgid "You can't remove this! But you can edit the values." msgstr "" -#: ../includes/ot-functions-admin.php:661 +#: ../includes/ot-functions-admin.php:853 msgid "Are you sure you want to remove this?" msgstr "" -#: ../includes/ot-functions-admin.php:662 +#: ../includes/ot-functions-admin.php:854 msgid "Are you sure you want to activate this layout?" msgstr "" -#: ../includes/ot-functions-admin.php:663 +#: ../includes/ot-functions-admin.php:855 msgid "Sorry, you can't have settings three levels deep." msgstr "" -#: ../includes/ot-functions-admin.php:664 -#: ../includes/ot-functions-option-types.php:812 +#: ../includes/ot-functions-admin.php:856 +#: ../includes/ot-functions-option-types.php:1208 msgid "Delete Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:665 -#: ../includes/ot-functions-option-types.php:813 +#: ../includes/ot-functions-admin.php:857 +#: ../includes/ot-functions-option-types.php:1209 msgid "Edit Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:666 -#: ../includes/ot-functions-option-types.php:820 +#: ../includes/ot-functions-admin.php:858 +#: ../includes/ot-functions-option-types.php:1216 msgid "Create Gallery" msgstr "" -#: ../includes/ot-functions-admin.php:667 +#: ../includes/ot-functions-admin.php:859 msgid "Are you sure you want to delete this Gallery?" msgstr "" -#: ../includes/ot-functions-admin.php:668 +#: ../includes/ot-functions-admin.php:860 msgid "Today" msgstr "" -#: ../includes/ot-functions-admin.php:669 +#: ../includes/ot-functions-admin.php:861 msgid "Now" msgstr "" -#: ../includes/ot-functions-admin.php:670 +#: ../includes/ot-functions-admin.php:862 msgid "Close" msgstr "" -#: ../includes/ot-functions-admin.php:671 +#: ../includes/ot-functions-admin.php:863 msgid "Featured Image" msgstr "" -#: ../includes/ot-functions-admin.php:672 -#: ../includes/ot-functions-admin.php:2809 -#: ../includes/ot-functions-admin.php:2870 +#: ../includes/ot-functions-admin.php:864 +#: ../includes/ot-functions-admin.php:3247 +#: ../includes/ot-functions-admin.php:3308 msgid "Image" msgstr "" -#: ../includes/ot-functions-admin.php:739 +#: ../includes/ot-functions-admin.php:932 msgid "Option Tree" msgstr "" -#: ../includes/ot-functions-admin.php:876 +#: ../includes/ot-functions-admin.php:1069 msgid "General" msgstr "" -#: ../includes/ot-functions-admin.php:882 +#: ../includes/ot-functions-admin.php:1075 msgid "Sample Text Field Label" msgstr "" -#: ../includes/ot-functions-admin.php:883 +#: ../includes/ot-functions-admin.php:1076 msgid "Description for the sample text field." msgstr "" -#: ../includes/ot-functions-admin.php:2125 +#: ../includes/ot-functions-admin.php:2318 msgid "Settings updated." msgstr "" -#: ../includes/ot-functions-admin.php:2129 +#: ../includes/ot-functions-admin.php:2322 msgid "Settings could not be saved." msgstr "" -#: ../includes/ot-functions-admin.php:2137 +#: ../includes/ot-functions-admin.php:2330 msgid "Settings Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2141 +#: ../includes/ot-functions-admin.php:2334 msgid "Settings could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2148 +#: ../includes/ot-functions-admin.php:2341 msgid "Data Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2152 +#: ../includes/ot-functions-admin.php:2345 msgid "Data could not be imported." msgstr "" -#: ../includes/ot-functions-admin.php:2160 +#: ../includes/ot-functions-admin.php:2353 msgid "Layouts Imported." msgstr "" -#: ../includes/ot-functions-admin.php:2164 -msgid "Layouts could not be imported." +#: ../includes/ot-functions-admin.php:2357 +msgid "Layouts could not be imported." +msgstr "" + +#: ../includes/ot-functions-admin.php:2365 +msgid "Layouts Updated." +msgstr "" + +#: ../includes/ot-functions-admin.php:2369 +msgid "Layouts could not be updated." +msgstr "" + +#: ../includes/ot-functions-admin.php:2373 +msgid "Layouts have been deleted." +msgstr "" + +#: ../includes/ot-functions-admin.php:2379 +msgid "Layout activated." +msgstr "" + +#: ../includes/ot-functions-admin.php:2418 +#: ../includes/ot-functions-docs-page.php:110 +msgid "Background" +msgstr "" + +#: ../includes/ot-functions-admin.php:2419 +#: ../includes/ot-functions-docs-page.php:113 +msgid "Border" +msgstr "" + +#: ../includes/ot-functions-admin.php:2420 +#: ../includes/ot-functions-docs-page.php:116 +msgid "Box Shadow" +msgstr "" + +#: ../includes/ot-functions-admin.php:2421 +#: ../includes/ot-functions-docs-page.php:119 +msgid "Category Checkbox" +msgstr "" + +#: ../includes/ot-functions-admin.php:2422 +#: ../includes/ot-functions-docs-page.php:122 +msgid "Category Select" +msgstr "" + +#: ../includes/ot-functions-admin.php:2423 +#: ../includes/ot-functions-docs-page.php:125 +msgid "Checkbox" +msgstr "" + +#: ../includes/ot-functions-admin.php:2424 +#: ../includes/ot-functions-docs-page.php:128 +msgid "Colorpicker" +msgstr "" + +#: ../includes/ot-functions-admin.php:2425 +#: ../includes/ot-functions-docs-page.php:131 +msgid "Colorpicker Opacity" +msgstr "" + +#: ../includes/ot-functions-admin.php:2426 +#: ../includes/ot-functions-docs-page.php:134 +msgid "CSS" +msgstr "" + +#: ../includes/ot-functions-admin.php:2427 +#: ../includes/ot-functions-docs-page.php:153 +msgid "Custom Post Type Checkbox" +msgstr "" + +#: ../includes/ot-functions-admin.php:2428 +#: ../includes/ot-functions-docs-page.php:156 +msgid "Custom Post Type Select" +msgstr "" + +#: ../includes/ot-functions-admin.php:2429 +#: ../includes/ot-functions-docs-page.php:159 +msgid "Date Picker" +msgstr "" + +#: ../includes/ot-functions-admin.php:2430 +#: ../includes/ot-functions-docs-page.php:162 +msgid "Date Time Picker" +msgstr "" + +#: ../includes/ot-functions-admin.php:2431 +#: ../includes/ot-functions-docs-page.php:165 +msgid "Dimension" +msgstr "" + +#: ../includes/ot-functions-admin.php:2432 +#: ../includes/ot-functions-admin.php:5406 +#: ../includes/ot-functions-docs-page.php:168 +msgid "Gallery" +msgstr "" + +#: ../includes/ot-functions-admin.php:2433 +#: ../includes/ot-functions-docs-page.php:171 +msgid "Google Fonts" +msgstr "" + +#: ../includes/ot-functions-admin.php:2434 +#: ../includes/ot-functions-docs-page.php:174 +msgid "JavaScript" +msgstr "" + +#: ../includes/ot-functions-admin.php:2435 +#: ../includes/ot-functions-docs-page.php:177 +msgid "Link Color" +msgstr "" + +#: ../includes/ot-functions-admin.php:2436 +#: ../includes/ot-functions-docs-page.php:180 +msgid "List Item" +msgstr "" + +#: ../includes/ot-functions-admin.php:2437 +#: ../includes/ot-functions-docs-page.php:183 +msgid "Measurement" +msgstr "" + +#: ../includes/ot-functions-admin.php:2438 +#: ../includes/ot-functions-docs-page.php:214 +msgid "Numeric Slider" +msgstr "" + +#: ../includes/ot-functions-admin.php:2439 +#: ../includes/ot-functions-docs-page.php:217 +msgid "On/Off" +msgstr "" + +#: ../includes/ot-functions-admin.php:2440 +#: ../includes/ot-functions-docs-page.php:220 +msgid "Page Checkbox" +msgstr "" + +#: ../includes/ot-functions-admin.php:2441 +#: ../includes/ot-functions-docs-page.php:223 +msgid "Page Select" +msgstr "" + +#: ../includes/ot-functions-admin.php:2442 +#: ../includes/ot-functions-docs-page.php:226 +msgid "Post Checkbox" +msgstr "" + +#: ../includes/ot-functions-admin.php:2443 +#: ../includes/ot-functions-docs-page.php:229 +msgid "Post Select" +msgstr "" + +#: ../includes/ot-functions-admin.php:2444 +#: ../includes/ot-functions-docs-page.php:232 +msgid "Radio" +msgstr "" + +#: ../includes/ot-functions-admin.php:2445 +#: ../includes/ot-functions-docs-page.php:235 +msgid "Radio Image" +msgstr "" + +#: ../includes/ot-functions-admin.php:2446 +#: ../includes/ot-functions-docs-page.php:262 +msgid "Select" +msgstr "" + +#: ../includes/ot-functions-admin.php:2447 +#: ../includes/ot-functions-docs-page.php:265 +msgid "Sidebar Select" +msgstr "" + +#: ../includes/ot-functions-admin.php:2448 +#: ../includes/ot-functions-docs-page.php:269 +msgid "Slider" +msgstr "" + +#: ../includes/ot-functions-admin.php:2449 +#: ../includes/ot-functions-docs-page.php:272 +msgid "Social Links" +msgstr "" + +#: ../includes/ot-functions-admin.php:2450 +#: ../includes/ot-functions-docs-page.php:275 +msgid "Spacing" +msgstr "" + +#: ../includes/ot-functions-admin.php:2451 +#: ../includes/ot-functions-docs-page.php:278 +msgid "Tab" +msgstr "" + +#: ../includes/ot-functions-admin.php:2452 +#: ../includes/ot-functions-docs-page.php:281 +msgid "Tag Checkbox" +msgstr "" + +#: ../includes/ot-functions-admin.php:2453 +#: ../includes/ot-functions-docs-page.php:284 +msgid "Tag Select" +msgstr "" + +#: ../includes/ot-functions-admin.php:2454 +#: ../includes/ot-functions-docs-page.php:287 +msgid "Taxonomy Checkbox" +msgstr "" + +#: ../includes/ot-functions-admin.php:2455 +#: ../includes/ot-functions-docs-page.php:290 +msgid "Taxonomy Select" msgstr "" -#: ../includes/ot-functions-admin.php:2172 -msgid "Layouts Updated." +#: ../includes/ot-functions-admin.php:2456 +#: ../includes/ot-functions-docs-page.php:293 +msgid "Text" msgstr "" -#: ../includes/ot-functions-admin.php:2176 -msgid "Layouts could not be updated." +#: ../includes/ot-functions-admin.php:2457 +#: ../includes/ot-functions-docs-page.php:296 +msgid "Textarea" msgstr "" -#: ../includes/ot-functions-admin.php:2180 -msgid "Layouts have been deleted." +#: ../includes/ot-functions-admin.php:2458 +#: ../includes/ot-functions-docs-page.php:355 +msgid "Textarea Simple" msgstr "" -#: ../includes/ot-functions-admin.php:2186 -msgid "Layout activated." +#: ../includes/ot-functions-admin.php:2459 +#: ../includes/ot-functions-docs-page.php:371 +msgid "Textblock" msgstr "" -#: ../includes/ot-functions-admin.php:2229 -msgid "Color Picker" +#: ../includes/ot-functions-admin.php:2460 +#: ../includes/ot-functions-docs-page.php:374 +msgid "Textblock Titled" msgstr "" -#: ../includes/ot-functions-admin.php:2248 -#: ../includes/ot-functions-docs-page.php:248 -msgid "Slider" +#: ../includes/ot-functions-admin.php:2461 +#: ../includes/ot-functions-docs-page.php:377 +msgid "Typography" msgstr "" -#: ../includes/ot-functions-admin.php:2250 -#: ../includes/ot-functions-docs-page.php:254 -msgid "Tab" +#: ../includes/ot-functions-admin.php:2462 +#: ../includes/ot-functions-docs-page.php:397 +msgid "Upload" msgstr "" -#: ../includes/ot-functions-admin.php:2754 +#: ../includes/ot-functions-admin.php:3192 msgid "Left Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2759 +#: ../includes/ot-functions-admin.php:3197 msgid "Right Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2764 +#: ../includes/ot-functions-admin.php:3202 msgid "Full Width (no sidebar)" msgstr "" -#: ../includes/ot-functions-admin.php:2769 +#: ../includes/ot-functions-admin.php:3207 msgid "Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2774 +#: ../includes/ot-functions-admin.php:3212 msgid "Left Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2779 +#: ../includes/ot-functions-admin.php:3217 msgid "Right Dual Sidebar" msgstr "" -#: ../includes/ot-functions-admin.php:2820 -#: ../includes/ot-functions-admin.php:2876 -#: ../includes/ot-functions-admin.php:4752 +#: ../includes/ot-functions-admin.php:3258 +#: ../includes/ot-functions-admin.php:3314 +#: ../includes/ot-functions-admin.php:5446 msgid "Link" msgstr "" -#: ../includes/ot-functions-admin.php:2831 -#: ../includes/ot-functions-admin.php:2882 +#: ../includes/ot-functions-admin.php:3269 +#: ../includes/ot-functions-admin.php:3320 #: ../includes/ot-functions-docs-page.php:43 -#: ../includes/ot-functions-docs-page.php:404 -#: ../includes/ot-functions-docs-page.php:454 +#: ../includes/ot-functions-docs-page.php:428 +#: ../includes/ot-functions-docs-page.php:478 msgid "Description" msgstr "" -#: ../includes/ot-functions-admin.php:2946 +#: ../includes/ot-functions-admin.php:3384 msgid "Name" msgstr "" -#: ../includes/ot-functions-admin.php:2947 +#: ../includes/ot-functions-admin.php:3385 msgid "Enter the name of the social website." msgstr "" -#: ../includes/ot-functions-admin.php:2955 +#: ../includes/ot-functions-admin.php:3393 msgid "Enter the text shown in the title attribute of the link." msgstr "" -#: ../includes/ot-functions-admin.php:2961 +#: ../includes/ot-functions-admin.php:3399 #, php-format msgid "" "Enter a link to the profile or page on the social website. Remember to add " "the %s part to the front of the link." msgstr "" -#: ../includes/ot-functions-admin.php:3444 +#: ../includes/ot-functions-admin.php:3967 msgid "edit" msgstr "" -#: ../includes/ot-functions-admin.php:3445 -#: ../includes/ot-functions-admin.php:3513 -#: ../includes/ot-functions-admin.php:3514 -#: ../includes/ot-functions-admin.php:3676 -#: ../includes/ot-functions-admin.php:3677 -#: ../includes/ot-functions-admin.php:3742 -#: ../includes/ot-functions-admin.php:3743 -#: ../includes/ot-functions-admin.php:3870 -#: ../includes/ot-functions-admin.php:3871 -#: ../includes/ot-functions-admin.php:4023 -#: ../includes/ot-functions-admin.php:4024 +#: ../includes/ot-functions-admin.php:3968 +#: ../includes/ot-functions-admin.php:4036 +#: ../includes/ot-functions-admin.php:4037 +#: ../includes/ot-functions-admin.php:4199 +#: ../includes/ot-functions-admin.php:4200 +#: ../includes/ot-functions-admin.php:4265 +#: ../includes/ot-functions-admin.php:4266 +#: ../includes/ot-functions-admin.php:4393 +#: ../includes/ot-functions-admin.php:4394 +#: ../includes/ot-functions-admin.php:4546 +#: ../includes/ot-functions-admin.php:4547 msgid "Edit" msgstr "" -#: ../includes/ot-functions-admin.php:3447 -#: ../includes/ot-functions-admin.php:3448 -#: ../includes/ot-functions-admin.php:3516 -#: ../includes/ot-functions-admin.php:3517 -#: ../includes/ot-functions-admin.php:3679 -#: ../includes/ot-functions-admin.php:3680 -#: ../includes/ot-functions-admin.php:3745 -#: ../includes/ot-functions-admin.php:3746 -#: ../includes/ot-functions-admin.php:3804 -#: ../includes/ot-functions-admin.php:3805 -#: ../includes/ot-functions-admin.php:3873 -#: ../includes/ot-functions-admin.php:3874 -#: ../includes/ot-functions-admin.php:4026 -#: ../includes/ot-functions-admin.php:4027 +#: ../includes/ot-functions-admin.php:3970 +#: ../includes/ot-functions-admin.php:3971 +#: ../includes/ot-functions-admin.php:4039 +#: ../includes/ot-functions-admin.php:4040 +#: ../includes/ot-functions-admin.php:4202 +#: ../includes/ot-functions-admin.php:4203 +#: ../includes/ot-functions-admin.php:4268 +#: ../includes/ot-functions-admin.php:4269 +#: ../includes/ot-functions-admin.php:4327 +#: ../includes/ot-functions-admin.php:4328 +#: ../includes/ot-functions-admin.php:4396 +#: ../includes/ot-functions-admin.php:4397 +#: ../includes/ot-functions-admin.php:4549 +#: ../includes/ot-functions-admin.php:4550 msgid "Delete" msgstr "" -#: ../includes/ot-functions-admin.php:3454 +#: ../includes/ot-functions-admin.php:3977 msgid "" "Section Title: Displayed as a menu item on the Theme " "Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3462 +#: ../includes/ot-functions-admin.php:3985 msgid "" "Section ID: A unique lower case alphanumeric string, " "underscores allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3523 +#: ../includes/ot-functions-admin.php:4046 msgid "" "Label: Displayed as the label of a form element on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3531 -#: ../includes/ot-functions-admin.php:3760 +#: ../includes/ot-functions-admin.php:4054 +#: ../includes/ot-functions-admin.php:4283 msgid "" "ID: A unique lower case alphanumeric string, underscores " "allowed." msgstr "" -#: ../includes/ot-functions-admin.php:3539 +#: ../includes/ot-functions-admin.php:4062 msgid "" "Type: Choose one of the available option types from the " "dropdown." msgstr "" -#: ../includes/ot-functions-admin.php:3550 +#: ../includes/ot-functions-admin.php:4073 msgid "" "Description: Enter a detailed description for the users to " "read on the Theme Options page, HTML is allowed. This is also where you " "enter content for both the Textblock & Textblock Titled option types." msgstr "" -#: ../includes/ot-functions-admin.php:3558 +#: ../includes/ot-functions-admin.php:4081 msgid "" "Choices: This will only affect the following option types: " "Checkbox, Radio, Select & Select Image." msgstr "" -#: ../includes/ot-functions-admin.php:3563 +#: ../includes/ot-functions-admin.php:4086 msgid "Add Choice" msgstr "" -#: ../includes/ot-functions-admin.php:3569 +#: ../includes/ot-functions-admin.php:4092 msgid "" "Settings: This will only affect the List Item option type." msgstr "" -#: ../includes/ot-functions-admin.php:3574 +#: ../includes/ot-functions-admin.php:4097 #: ../includes/ot-functions-settings-page.php:93 msgid "Add Setting" msgstr "" -#: ../includes/ot-functions-admin.php:3580 +#: ../includes/ot-functions-admin.php:4103 msgid "" "Standard: Setting the standard value for your option only " "works for some option types. Read the OptionTree->Documentation " "for more information on which ones." msgstr "" -#: ../includes/ot-functions-admin.php:3588 +#: ../includes/ot-functions-admin.php:4111 msgid "" "Rows: Enter a numeric value for the number of rows in your " "textarea. This will only affect the following option types: CSS, Textarea, & " "Textarea Simple." msgstr "" -#: ../includes/ot-functions-admin.php:3596 +#: ../includes/ot-functions-admin.php:4119 msgid "" "Post Type: Add a comma separated list of post type like " "'post,page'. This will only affect the following option types: Custom Post " "Type Checkbox, & Custom Post Type Select." msgstr "" -#: ../includes/ot-functions-admin.php:3604 +#: ../includes/ot-functions-admin.php:4127 msgid "" "Taxonomy: Add a comma separated list of any registered " "taxonomy like 'category,post_tag'. This will only affect the following " "option types: Taxonomy Checkbox, & Taxonomy Select." msgstr "" -#: ../includes/ot-functions-admin.php:3612 +#: ../includes/ot-functions-admin.php:4135 msgid "" "Min, Max, & Step: Add a comma separated list of options in " "the following format 0,100,1 (slide from 0-100 in " @@ -1263,11 +824,11 @@ msgid "" "type." msgstr "" -#: ../includes/ot-functions-admin.php:3620 +#: ../includes/ot-functions-admin.php:4143 msgid "CSS Class: Add and optional class to this option type." msgstr "" -#: ../includes/ot-functions-admin.php:3628 +#: ../includes/ot-functions-admin.php:4151 #, php-format msgid "" "Condition: Add a comma separated list (no spaces) of " @@ -1276,92 +837,98 @@ msgid "" "placeholder for your condition, which can be in the form of %s." msgstr "" -#: ../includes/ot-functions-admin.php:3636 +#: ../includes/ot-functions-admin.php:4159 msgid "" "Operator: Choose the logical operator to compute the result " "of the conditions." msgstr "" -#: ../includes/ot-functions-admin.php:3640 +#: ../includes/ot-functions-admin.php:4162 +#: ../includes/ot-functions-docs-page.php:111 +#: ../includes/ot-functions-docs-page.php:378 +msgid "and" +msgstr "" + +#: ../includes/ot-functions-admin.php:4163 msgid "or" msgstr "" -#: ../includes/ot-functions-admin.php:3686 +#: ../includes/ot-functions-admin.php:4209 #: ../includes/ot-functions-docs-page.php:29 msgid "Label" msgstr "" -#: ../includes/ot-functions-admin.php:3696 +#: ../includes/ot-functions-admin.php:4219 msgid "Value" msgstr "" -#: ../includes/ot-functions-admin.php:3706 +#: ../includes/ot-functions-admin.php:4229 msgid "Image Source (Radio Image only)" msgstr "" -#: ../includes/ot-functions-admin.php:3752 +#: ../includes/ot-functions-admin.php:4275 msgid "" "Title: Displayed as a contextual help menu item on the " "Theme Options page." msgstr "" -#: ../includes/ot-functions-admin.php:3768 +#: ../includes/ot-functions-admin.php:4291 msgid "" "Content: Enter the HTML content about this contextual help " "item displayed on the Theme Option page for end users to read." msgstr "" -#: ../includes/ot-functions-admin.php:3799 +#: ../includes/ot-functions-admin.php:4322 msgid "Layout" msgstr "" -#: ../includes/ot-functions-admin.php:3801 -#: ../includes/ot-functions-admin.php:3802 +#: ../includes/ot-functions-admin.php:4324 +#: ../includes/ot-functions-admin.php:4325 msgid "Activate" msgstr "" -#: ../includes/ot-functions-admin.php:3838 ../includes/ot-meta-box-api.php:223 -#: ../includes/ot-settings-api.php:594 +#: ../includes/ot-functions-admin.php:4361 ../includes/ot-meta-box-api.php:223 +#: ../includes/ot-settings-api.php:610 msgid "Title" msgstr "" -#: ../includes/ot-functions-admin.php:4178 +#: ../includes/ot-functions-admin.php:4701 msgid "New Layout" msgstr "" -#: ../includes/ot-functions-admin.php:4761 +#: ../includes/ot-functions-admin.php:5455 msgid "Link URL" msgstr "" -#: ../includes/ot-functions-admin.php:4768 +#: ../includes/ot-functions-admin.php:5462 msgid "Link Title" msgstr "" -#: ../includes/ot-functions-admin.php:4798 +#: ../includes/ot-functions-admin.php:5492 msgid "Quote" msgstr "" -#: ../includes/ot-functions-admin.php:4807 +#: ../includes/ot-functions-admin.php:5501 msgid "Source Name (ex. author, singer, actor)" msgstr "" -#: ../includes/ot-functions-admin.php:4814 +#: ../includes/ot-functions-admin.php:5508 msgid "Source URL" msgstr "" -#: ../includes/ot-functions-admin.php:4821 +#: ../includes/ot-functions-admin.php:5515 msgid "Source Title (ex. book, song, movie)" msgstr "" -#: ../includes/ot-functions-admin.php:4828 +#: ../includes/ot-functions-admin.php:5522 msgid "Source Date" msgstr "" -#: ../includes/ot-functions-admin.php:4858 +#: ../includes/ot-functions-admin.php:5552 msgid "Video" msgstr "" -#: ../includes/ot-functions-admin.php:4867 +#: ../includes/ot-functions-admin.php:5561 #, php-format msgid "" "Embed video from services like Youtube, Vimeo, or Hulu. You can find a list " @@ -1369,16 +936,16 @@ msgid "" "built-in %2$s shortcode." msgstr "" -#: ../includes/ot-functions-admin.php:4867 -#: ../includes/ot-functions-admin.php:4906 +#: ../includes/ot-functions-admin.php:5561 +#: ../includes/ot-functions-admin.php:5600 msgid "Wordpress Codex" msgstr "" -#: ../includes/ot-functions-admin.php:4897 +#: ../includes/ot-functions-admin.php:5591 msgid "Audio" msgstr "" -#: ../includes/ot-functions-admin.php:4906 +#: ../includes/ot-functions-admin.php:5600 #, php-format msgid "" "Embed audio from services like SoundCloud and Rdio. You can find a list of " @@ -1475,137 +1042,443 @@ msgid "" "not seem to return results properly and is something I plan on looking into." msgstr "" -#: ../includes/ot-functions-docs-page.php:67 -msgid "Taxonomy" +#: ../includes/ot-functions-docs-page.php:67 +msgid "Taxonomy" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:68 +msgid "" +"Add a comma separated list of any registered taxonomy like category," +"post_tag. This will only affect the following option types: Taxonomy " +"Checkbox, & Taxonomy Select." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:70 +msgid "Min, Max, & Step" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:71 +msgid "" +"Add a comma separated list of options in the following format 0,100,1 (slide from 0-100 in intervals of 1). The " +"three values represent the minimum, maximum, and step options and will only " +"affect the Numeric Slider option type." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:73 +msgid "CSS Class" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:74 +msgid "Add and optional class to any option type." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:76 +msgid "Condition" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:77 +#, php-format +msgid "" +"Add a comma separated list (no spaces) of conditions in which the field will " +"be visible, leave this setting empty to always show the field. In these " +"examples, %s is a placeholder for your condition, which can be in the form " +"of %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:79 +msgid "Operator" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:80 +#, php-format +msgid "" +"Choose the logical operator to compute the result of the conditions. Your " +"options are %s and %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:111 +#, php-format +msgid "" +"The Background option type is for adding background styles to your theme " +"either dynamically via the CSS option type below or manually with %s. The " +"Background option type has filters that allow you to remove fields or change " +"the defaults. For example, you can filter %s to remove unwanted fields from " +"all Background options or an individual one. You can also filter %s. These " +"filters allow you to fine tune the select lists for your specific needs." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:114 +#, php-format +msgid "" +"The Border option type is used to set width, unit, style, and color values. " +"The text input excepts a numerical value and the unit select lets you choose " +"the unit of measurement to add to that value. Currently the default units " +"are %s, %s, %s, and %s. However, you can change them with the %s filter. The " +"style select lets you choose the border style. The default styles are %s, " +"%s, %s, %s, %s, %s, %s, and %s. However, you can change them with the %s " +"filter. The colorpicker saves a hexadecimal color code." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:117 +#, php-format +msgid "" +"The Box Shadow option type is used to set %s, %s, %s, %s, %s, and %s values." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:120 +msgid "" +"The Category Checkbox option type displays a list of category IDs. It allows " +"the user to check multiple category IDs and will return that value as an " +"array for use in a custom function or loop." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:123 +msgid "" +"The Category Select option type displays a list of category IDs. It allows " +"the user to select only one category ID and will return that value for use " +"in a custom function or loop." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:126 +msgid "" +"The Checkbox option type displays a group of choices. It allows the user to " +"check multiple choices and will return that value as an array for use in a " +"custom function or loop." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:129 +msgid "" +"The Colorpicker option type saves a hexadecimal color code for use in CSS. " +"Use it to modify the color of something in your theme." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:132 +#, php-format +msgid "" +"The Colorpicker Opacity option type saves a hexadecimal color code with an " +"opacity value from %s to %s in increments of %s. Though the value is saved " +"as hexadecimal, if used within the CSS option type the color and opacity " +"values will be converted into a valid RGBA CSS value." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:135 +#, php-format +msgid "" +"The CSS option type is a textarea that when used properly can add dynamic " +"CSS to your theme from within OptionTree. Unfortunately, due server " +"limitations you will need to create a file named %s at the root level of " +"your theme and change permissions using %s so the server can write to the " +"file. I have had the most success setting this single file to %s but feel " +"free to play around with permissions until everything is working. A good " +"starting point is %s. When the server can save to the file, CSS will " +"automatically be updated when you save your Theme Options." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:137 +#, php-format +msgid "" +"This example assumes you have an option with the ID of %1$s. Which means " +"this option will automatically insert the value of %1$s into the %2$s when " +"the Theme Options are saved." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:139 +msgid "Input" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:145 +msgid "Output" +msgstr "" + +#: ../includes/ot-functions-docs-page.php:154 +#, php-format +msgid "" +"The Custom Post Type Select option type displays a list of IDs from any " +"available WordPress post type or custom post type. It allows the user to " +"check multiple post IDs for use in a custom function or loop. Requires at " +"least one valid %1$s in the %1$s field." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:157 +#, php-format +msgid "" +"The Custom Post Type Select option type displays a list of IDs from any " +"available WordPress post type or custom post type. It will return a single " +"post ID for use in a custom function or loop. Requires at least one valid " +"%1$s in the %1$s field." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:160 +msgid "" +"The Date Picker option type is tied to a standard form input field which " +"displays a calendar pop-up that allow the user to pick any date when focus " +"is given to the input field. The returned value is a date formatted string." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:163 +msgid "" +"The Date Time Picker option type is tied to a standard form input field " +"which displays a calendar pop-up that allow the user to pick any date and " +"time when focus is given to the input field. The returned value is a date " +"and time formatted string." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:166 +#, php-format +msgid "" +"The Dimension option type is used to set width and height values. The text " +"inputs except numerical values and the select lets you choose the unit of " +"measurement to add to that value. Currently the default units are %s, %s, " +"%s, and %s. However, you can change them with the %s filter." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:169 +msgid "" +"The Gallery option type saves a comma separated list of image attachment " +"IDs. You will need to create a front-end function to display the images in " +"your theme." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:172 +#, php-format +msgid "" +"The Google Fonts option type will dynamically enqueue any number of Google " +"Web Fonts into the document %1$s. As well, once the option has been saved " +"each font family will automatically be inserted into the %2$s array for the " +"Typography option type. You can further modify the font stack by using the " +"%3$s filter, which is passed the %4$s, %5$s, and %6$s parameters. The %6$s " +"parameter is being passed from %7$s, so it will be the ID of a Typography " +"option type. This will allow you to add additional web safe fonts to " +"individual font families on an as-need basis." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:175 +#, php-format +msgid "" +"The JavaScript option type is a textarea that uses the %s code editor to " +"highlight your JavaScript and display errors as you type." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:178 +msgid "The Link Color option type is used to set all link color states." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:181 +msgid "" +"The List Item option type replaced the Slider option type and allows for a " +"great deal of customization. You can add settings to the List Item and those " +"settings will be displayed to the user when they add a new List Item. " +"Typical use is for creating sliding content or blocks of code for custom " +"layouts." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:184 +#, php-format +msgid "" +"The Measurement option type is a mix of input and select fields. The text " +"input excepts a value and the select lets you choose the unit of measurement " +"to add to that value. Currently the default units are %s, %s, %s, and %s. " +"However, you can change them with the %s filter." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:186 +#, php-format +msgid "" +"Example filter to add new units to the Measurement option type. Added to %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:199 +msgid "" +"Example filter to completely change the units in the Measurement option " +"type. Added to functions.php." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:215 +msgid "" +"The Numeric Slider option type displays a jQuery UI slider. It will return a " +"single numerical value for use in a custom function or loop." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:218 +#, php-format +msgid "" +"The On/Off option type displays a simple switch that can be used to turn " +"things on or off. The saved return value is either %s or %s." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:221 +msgid "" +"The Page Checkbox option type displays a list of page IDs. It allows the " +"user to check multiple page IDs for use in a custom function or loop." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:224 +msgid "" +"The Page Select option type displays a list of page IDs. It will return a " +"single page ID for use in a custom function or loop." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:227 +msgid "" +"The Post Checkbox option type displays a list of post IDs. It allows the " +"user to check multiple post IDs for use in a custom function or loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:68 +#: ../includes/ot-functions-docs-page.php:230 msgid "" -"Add a comma separated list of any registered taxonomy like category," -"post_tag. This will only affect the following option types: Taxonomy " -"Checkbox, & Taxonomy Select." +"The Post Select option type displays a list of post IDs. It will return a " +"single post ID for use in a custom function or loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:70 -msgid "Min, Max, & Step" +#: ../includes/ot-functions-docs-page.php:233 +msgid "" +"The Radio option type displays a group of choices. It allows the user to " +"choose one and will return that value as a string for use in a custom " +"function or loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:71 +#: ../includes/ot-functions-docs-page.php:236 +#, php-format msgid "" -"Add a comma separated list of options in the following format 0,100,1 (slide from 0-100 in intervals of 1). The " -"three values represent the minimum, maximum, and step options and will only " -"affect the Numeric Slider option type." +"the Radio Images option type is primarily used for layouts. However, you can " +"filter the image list using %s. As well, you can add your own custom images " +"using the choices array." msgstr "" -#: ../includes/ot-functions-docs-page.php:73 -msgid "CSS Class" +#: ../includes/ot-functions-docs-page.php:238 +msgid "" +"This example executes the ot_radio_images filter on layout " +"images attached to the my_radio_images field. Added to " +"functions.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:74 -msgid "Add and optional class to any option type." +#: ../includes/ot-functions-docs-page.php:263 +msgid "" +"The Select option type is used to list anything you want that would be " +"chosen from a select list." msgstr "" -#: ../includes/ot-functions-docs-page.php:76 -msgid "Condition" +#: ../includes/ot-functions-docs-page.php:266 +#, php-format +msgid "" +"This option type makes it possible for users to select a WordPress " +"registered sidebar to use on a specific area. By using the two provided " +"filters, %s, and %s we can be selective about which sidebars are available " +"on a specific content area." msgstr "" -#: ../includes/ot-functions-docs-page.php:77 +#: ../includes/ot-functions-docs-page.php:267 #, php-format msgid "" -"Add a comma separated list (no spaces) of conditions in which the field will " -"be visible, leave this setting empty to always show the field. In these " -"examples, %s is a placeholder for your condition, which can be in the form " -"of %s." +"For example, if we create a WordPress theme that provides the ability to " +"change the Blog Sidebar and we don't want to have the footer sidebars " +"available on this area, we can unset those sidebars either manually or by " +"using a regular expression if we have a common name like %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:79 -msgid "Operator" +#: ../includes/ot-functions-docs-page.php:270 +msgid "" +"The Slider option type is technically deprecated. Use the List Item option " +"type instead, as it's infinitely more customizable. Typical use is for " +"creating sliding image content." msgstr "" -#: ../includes/ot-functions-docs-page.php:80 +#: ../includes/ot-functions-docs-page.php:273 #, php-format msgid "" -"Choose the logical operator to compute the result of the conditions. Your " -"options are %s and %s." +"The Social Links option type utilizes a drag & drop interface to create a " +"list of social links. There are a few filters that make extending this " +"option type easy. You can set the %s filter to %s and turn off loading " +"default values. Use the %s filter to change the default values that are " +"loaded. To filter the settings array use the %s filter." msgstr "" -#: ../includes/ot-functions-docs-page.php:130 -msgid "Input" +#: ../includes/ot-functions-docs-page.php:276 +#, php-format +msgid "" +"The Spacing option type is used to set spacing values such as padding or " +"margin in the form of top, right, bottom, and left. The text inputs except " +"numerical values and the select lets you choose the unit of measurement to " +"add to that value. Currently the default units are %s, %s, %s, and %s. " +"However, you can change them with the %s filter." msgstr "" -#: ../includes/ot-functions-docs-page.php:136 -msgid "Output" +#: ../includes/ot-functions-docs-page.php:279 +msgid "" +"The Tab option type will break a section or metabox into tabbed content." msgstr "" -#: ../includes/ot-functions-docs-page.php:160 +#: ../includes/ot-functions-docs-page.php:282 msgid "" -"The List Item option type replaced the Slider option type and allows for a " -"great deal of customization. You can add settings to the List Item and those " -"settings will be displayed to the user when they add a new List Item. " -"Typical use is for creating sliding content or blocks of code for custom " -"layouts." +"The Tag Checkbox option type displays a list of tag IDs. It allows the user " +"to check multiple tag IDs and will return that value as an array for use in " +"a custom function or loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:165 -#, php-format +#: ../includes/ot-functions-docs-page.php:285 msgid "" -"Example filter to add new units to the Measurement option type. Added to %s." +"The Tag Select option type displays a list of tag IDs. It allows the user to " +"select only one tag ID and will return that value for use in a custom " +"function or loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:178 +#: ../includes/ot-functions-docs-page.php:288 msgid "" -"Example filter to completely change the units in the Measurement option " -"type. Added to functions.php." +"The Taxonomy Checkbox option type displays a list of taxonomy IDs. It allows " +"the user to check multiple taxonomy IDs and will return that value as an " +"array for use in a custom function or loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:217 +#: ../includes/ot-functions-docs-page.php:291 msgid "" -"This example executes the ot_radio_images filter on layout " -"images attached to the my_radio_images field. Added to " -"functions.php." +"The Taxonomy Select option type displays a list of taxonomy IDs. It allows " +"the user to select only one taxonomy ID and will return that value for use " +"in a custom function or loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:249 +#: ../includes/ot-functions-docs-page.php:294 msgid "" -"The Slider option type is technically deprecated. Use the List Item option " -"type instead, as it's infinitely more customizable. Typical use is for " -"creating sliding image content." +"The Text option type is used to save string values. For example, any " +"optional or required text that is of reasonably short character length." msgstr "" -#: ../includes/ot-functions-docs-page.php:255 +#: ../includes/ot-functions-docs-page.php:297 +#, php-format msgid "" -"The Tab option type will break a section or metabox into tabbed content." +"The Textarea option type is a large string value used for custom code or " +"text in the theme and has a WYSIWYG editor that can be filtered to change " +"the how it is displayed. For example, you can filter %s, %s, %s, and %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:275 +#: ../includes/ot-functions-docs-page.php:299 msgid "" "Example filters to alter the Textarea option type. Added to functions." "php." msgstr "" -#: ../includes/ot-functions-docs-page.php:277 +#: ../includes/ot-functions-docs-page.php:301 msgid "" "This example keeps WordPress from executing the wpautop filter " "on the line breaks. The default is true which means it wraps " "line breaks with an HTML p tag." msgstr "" -#: ../includes/ot-functions-docs-page.php:290 +#: ../includes/ot-functions-docs-page.php:314 msgid "" "This example keeps WordPress from executing the media_buttons " "filter on the textarea WYSIWYG. The default is true which means " "show the buttons." msgstr "" -#: ../includes/ot-functions-docs-page.php:303 +#: ../includes/ot-functions-docs-page.php:327 msgid "" "This example keeps WordPress from executing the tinymce filter " "on the textarea WYSIWYG. The default is true which means show " "the tinymce." msgstr "" -#: ../includes/ot-functions-docs-page.php:316 +#: ../includes/ot-functions-docs-page.php:340 msgid "" "This example alters the quicktags filter on the textarea " "WYSIWYG. The default is array( 'buttons' => 'strong,em,link,block,del," @@ -1613,7 +1486,13 @@ msgid "" "quicktags. It also means you can filter in your own custom quicktags." msgstr "" -#: ../includes/ot-functions-docs-page.php:334 +#: ../includes/ot-functions-docs-page.php:356 +msgid "" +"The Textarea Simple option type is a large string value used for custom code " +"or text in the theme. The Textarea Simple does not have a WYSIWYG editor." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:358 #, php-format msgid "" "This example tells WordPress to execute the %s filter on the line breaks. " @@ -1621,134 +1500,174 @@ msgid "" "tag. Added to %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:356 +#: ../includes/ot-functions-docs-page.php:372 +msgid "" +"The Textblock option type is used only on the Theme Option page. It will " +"allow you to create & display HTML, but has no title above the text block. " +"You can then use the Textblock to add a more detailed set of instruction on " +"how the options are used in your theme. You would never use this in your " +"themes template files as it does not save a value." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:375 +msgid "" +"The Textblock Titled option type is used only on the Theme Option page. It " +"will allow you to create & display HTML, and has a title above the text " +"block. You can then use the Textblock Titled to add a more detailed set of " +"instruction on how the options are used in your theme. You would never use " +"this in your themes template files as it does not save a value." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:378 +#, php-format +msgid "" +"The Typography option type is for adding typography styles to your theme " +"either dynamically via the CSS option type above or manually with %s. The " +"Typography option type has filters that allow you to remove fields or change " +"the defaults. For example, you can filter %s to remove unwanted fields from " +"all Background options or an individual one. You can also filter %s. These " +"filters allow you to fine tune the select lists for your specific needs." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:380 msgid "" "This example would filter ot_recognized_font_families to build " "your own font stack. Added to functions.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:406 +#: ../includes/ot-functions-docs-page.php:398 +#, php-format +msgid "" +"The Upload option type is used to upload any WordPress supported media. " +"After uploading, users are required to press the \"%s\" button in order to " +"populate the input with the URI of that media. There is one caveat of this " +"feature. If you import the theme options and have uploaded media on one site " +"the old URI will not reflect the URI of your new site. You will have to re-" +"upload or %s any media to your new server and change the URIs if necessary." +msgstr "" + +#: ../includes/ot-functions-docs-page.php:430 msgid "" "This function returns a value from the \"option_tree\" array of saved values " "or the default value supplied. The returned value would be mixed. Meaning it " "could be a string, integer, boolean, or array." msgstr "" -#: ../includes/ot-functions-docs-page.php:408 -#: ../includes/ot-functions-docs-page.php:458 +#: ../includes/ot-functions-docs-page.php:432 +#: ../includes/ot-functions-docs-page.php:482 msgid "Usage" msgstr "" -#: ../includes/ot-functions-docs-page.php:412 -#: ../includes/ot-functions-docs-page.php:462 +#: ../includes/ot-functions-docs-page.php:436 +#: ../includes/ot-functions-docs-page.php:486 msgid "Parameters" msgstr "" -#: ../includes/ot-functions-docs-page.php:416 -#: ../includes/ot-functions-docs-page.php:420 -#: ../includes/ot-functions-docs-page.php:466 +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:490 msgid "string" msgstr "" -#: ../includes/ot-functions-docs-page.php:416 -#: ../includes/ot-functions-docs-page.php:466 +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:490 msgid "required" msgstr "" -#: ../includes/ot-functions-docs-page.php:416 +#: ../includes/ot-functions-docs-page.php:440 msgid "Enter the options unique identifier." msgstr "" -#: ../includes/ot-functions-docs-page.php:416 -#: ../includes/ot-functions-docs-page.php:466 +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:490 msgid "Default:" msgstr "" -#: ../includes/ot-functions-docs-page.php:416 -#: ../includes/ot-functions-docs-page.php:420 -#: ../includes/ot-functions-docs-page.php:466 -#: ../includes/ot-functions-docs-page.php:470 +#: ../includes/ot-functions-docs-page.php:440 +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:490 +#: ../includes/ot-functions-docs-page.php:494 msgid "None" msgstr "" -#: ../includes/ot-functions-docs-page.php:420 -#: ../includes/ot-functions-docs-page.php:470 -#: ../includes/ot-functions-docs-page.php:474 -#: ../includes/ot-functions-docs-page.php:478 -#: ../includes/ot-functions-docs-page.php:482 +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:494 +#: ../includes/ot-functions-docs-page.php:498 +#: ../includes/ot-functions-docs-page.php:502 +#: ../includes/ot-functions-docs-page.php:506 msgid "optional" msgstr "" -#: ../includes/ot-functions-docs-page.php:420 +#: ../includes/ot-functions-docs-page.php:444 msgid "" "Enter a default return value. This is just incase the request returns null." msgstr "" -#: ../includes/ot-functions-docs-page.php:420 -#: ../includes/ot-functions-docs-page.php:470 -#: ../includes/ot-functions-docs-page.php:474 -#: ../includes/ot-functions-docs-page.php:478 -#: ../includes/ot-functions-docs-page.php:482 +#: ../includes/ot-functions-docs-page.php:444 +#: ../includes/ot-functions-docs-page.php:494 +#: ../includes/ot-functions-docs-page.php:498 +#: ../includes/ot-functions-docs-page.php:502 +#: ../includes/ot-functions-docs-page.php:506 msgid "Default" msgstr "" -#: ../includes/ot-functions-docs-page.php:450 +#: ../includes/ot-functions-docs-page.php:474 msgid "" "This function has been deprecated. That means it has been replaced by a new " "function or is no longer supported, and may be removed from future versions. " "All code that uses this function should be converted to use its replacement." msgstr "" -#: ../includes/ot-functions-docs-page.php:452 +#: ../includes/ot-functions-docs-page.php:476 msgid "Use" msgstr "" -#: ../includes/ot-functions-docs-page.php:452 +#: ../includes/ot-functions-docs-page.php:476 msgid "instead" msgstr "" -#: ../includes/ot-functions-docs-page.php:456 +#: ../includes/ot-functions-docs-page.php:480 msgid "" "This function returns, or echos if asked, a value from the \"option_tree\" " "array of saved values." msgstr "" -#: ../includes/ot-functions-docs-page.php:466 +#: ../includes/ot-functions-docs-page.php:490 msgid "Enter a unique Option Key to get a returned value or array." msgstr "" -#: ../includes/ot-functions-docs-page.php:470 +#: ../includes/ot-functions-docs-page.php:494 msgid "array" msgstr "" -#: ../includes/ot-functions-docs-page.php:470 +#: ../includes/ot-functions-docs-page.php:494 msgid "Used to cut down on database queries in template files." msgstr "" -#: ../includes/ot-functions-docs-page.php:474 -#: ../includes/ot-functions-docs-page.php:478 +#: ../includes/ot-functions-docs-page.php:498 +#: ../includes/ot-functions-docs-page.php:502 msgid "boolean" msgstr "" -#: ../includes/ot-functions-docs-page.php:474 +#: ../includes/ot-functions-docs-page.php:498 msgid "Echo the output." msgstr "" -#: ../includes/ot-functions-docs-page.php:478 +#: ../includes/ot-functions-docs-page.php:502 msgid "Used to indicate the $item_id is an array of values." msgstr "" -#: ../includes/ot-functions-docs-page.php:482 +#: ../includes/ot-functions-docs-page.php:506 msgid "integer" msgstr "" -#: ../includes/ot-functions-docs-page.php:482 +#: ../includes/ot-functions-docs-page.php:506 msgid "" "Numeric offset key for the $item_id array, -1 will return all values (an " "array starts at 0)." msgstr "" -#: ../includes/ot-functions-docs-page.php:510 +#: ../includes/ot-functions-docs-page.php:534 msgid "" "If you're using the plugin version of OptionTree it is highly recommended to " "include a function_exists check in your code, as described in " @@ -1758,32 +1677,32 @@ msgid "" "ot_get_option() function available." msgstr "" -#: ../includes/ot-functions-docs-page.php:512 +#: ../includes/ot-functions-docs-page.php:536 msgid "String Examples" msgstr "" -#: ../includes/ot-functions-docs-page.php:514 +#: ../includes/ot-functions-docs-page.php:538 msgid "Returns the value of test_input." msgstr "" -#: ../includes/ot-functions-docs-page.php:520 +#: ../includes/ot-functions-docs-page.php:544 msgid "" "Returns the value of test_input, but also has a default value " "if it returns empty." msgstr "" -#: ../includes/ot-functions-docs-page.php:526 +#: ../includes/ot-functions-docs-page.php:550 msgid "Array Examples" msgstr "" -#: ../includes/ot-functions-docs-page.php:528 +#: ../includes/ot-functions-docs-page.php:552 msgid "" "Assigns the value of navigation_ids to the variable $ids. It then echos an unordered list of links (navigation) using " "wp_list_pages()." msgstr "" -#: ../includes/ot-functions-docs-page.php:548 +#: ../includes/ot-functions-docs-page.php:572 msgid "" "The next two examples demonstrate how to use the Measurement option type. The Measurement option type is an array with two key/" @@ -1791,15 +1710,15 @@ msgid "" "unit of measurement." msgstr "" -#: ../includes/ot-functions-docs-page.php:574 +#: ../includes/ot-functions-docs-page.php:598 msgid "This example displays a very basic slider loop." msgstr "" -#: ../includes/ot-functions-docs-page.php:619 +#: ../includes/ot-functions-docs-page.php:643 msgid "It's Super Simple" msgstr "" -#: ../includes/ot-functions-docs-page.php:621 +#: ../includes/ot-functions-docs-page.php:645 msgid "" "Layouts make your theme awesome! With theme options data that you can save/" "import/export you can package themes with different color variations, or " @@ -1807,7 +1726,7 @@ msgid "" "a snapshot of your data as a layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:623 +#: ../includes/ot-functions-docs-page.php:647 msgid "" "Once you have created all your different layouts, or theme variations, you " "can save them to a separate text file for repackaging with your theme. " @@ -1816,117 +1735,117 @@ msgid "" "previous options data." msgstr "" -#: ../includes/ot-functions-docs-page.php:625 +#: ../includes/ot-functions-docs-page.php:649 msgid "" " Adding a layout is ridiculously easy, follow these steps and you'll be on " "your way to having a WordPress super theme." msgstr "" -#: ../includes/ot-functions-docs-page.php:627 +#: ../includes/ot-functions-docs-page.php:651 msgid "For Developers" msgstr "" -#: ../includes/ot-functions-docs-page.php:629 -#: ../includes/ot-functions-docs-page.php:658 +#: ../includes/ot-functions-docs-page.php:653 +#: ../includes/ot-functions-docs-page.php:682 msgid "Creating a Layout" msgstr "" -#: ../includes/ot-functions-docs-page.php:631 -#: ../includes/ot-functions-docs-page.php:638 -#: ../includes/ot-functions-docs-page.php:644 +#: ../includes/ot-functions-docs-page.php:655 +#: ../includes/ot-functions-docs-page.php:662 +#: ../includes/ot-functions-docs-page.php:668 msgid "Go to the OptionTre->Settings->Layouts tab." msgstr "" -#: ../includes/ot-functions-docs-page.php:632 +#: ../includes/ot-functions-docs-page.php:656 msgid "" "Enter a name for your layout in the text field and hit \"Save Layouts\", " "you've created your first layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:633 -#: ../includes/ot-functions-docs-page.php:662 +#: ../includes/ot-functions-docs-page.php:657 +#: ../includes/ot-functions-docs-page.php:686 msgid "Adding a new layout is as easy as repeating the steps above." msgstr "" -#: ../includes/ot-functions-docs-page.php:636 -#: ../includes/ot-functions-docs-page.php:665 +#: ../includes/ot-functions-docs-page.php:660 +#: ../includes/ot-functions-docs-page.php:689 msgid "Activating a Layout" msgstr "" -#: ../includes/ot-functions-docs-page.php:639 +#: ../includes/ot-functions-docs-page.php:663 msgid "Click on the activate layout button in the actions list." msgstr "" -#: ../includes/ot-functions-docs-page.php:642 -#: ../includes/ot-functions-docs-page.php:671 +#: ../includes/ot-functions-docs-page.php:666 +#: ../includes/ot-functions-docs-page.php:695 msgid "Deleting a Layout" msgstr "" -#: ../includes/ot-functions-docs-page.php:645 +#: ../includes/ot-functions-docs-page.php:669 msgid "Click on the delete layout button in the actions list." msgstr "" -#: ../includes/ot-functions-docs-page.php:648 -#: ../includes/ot-functions-docs-page.php:676 +#: ../includes/ot-functions-docs-page.php:672 +#: ../includes/ot-functions-docs-page.php:700 msgid "Edit Layout Data" msgstr "" -#: ../includes/ot-functions-docs-page.php:650 -#: ../includes/ot-functions-docs-page.php:660 -#: ../includes/ot-functions-docs-page.php:667 +#: ../includes/ot-functions-docs-page.php:674 +#: ../includes/ot-functions-docs-page.php:684 +#: ../includes/ot-functions-docs-page.php:691 msgid "Go to the Appearance->Theme Options page." msgstr "" -#: ../includes/ot-functions-docs-page.php:651 -#: ../includes/ot-functions-docs-page.php:679 +#: ../includes/ot-functions-docs-page.php:675 +#: ../includes/ot-functions-docs-page.php:703 msgid "" "Modify and save your theme options and the layout will be updated " "automatically." msgstr "" -#: ../includes/ot-functions-docs-page.php:652 -#: ../includes/ot-functions-docs-page.php:680 +#: ../includes/ot-functions-docs-page.php:676 +#: ../includes/ot-functions-docs-page.php:704 msgid "" "Saving theme options data will update the currently active layout, so before " "you start saving make sure you want to modify the current layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:653 +#: ../includes/ot-functions-docs-page.php:677 msgid "" "If you want to edit a new layout, first create it then save your theme " "options." msgstr "" -#: ../includes/ot-functions-docs-page.php:656 +#: ../includes/ot-functions-docs-page.php:680 msgid "End-Users Mode" msgstr "" -#: ../includes/ot-functions-docs-page.php:661 +#: ../includes/ot-functions-docs-page.php:685 msgid "" "Enter a name for your layout in the text field and hit \"New Layout\", " "you've created your first layout." msgstr "" -#: ../includes/ot-functions-docs-page.php:668 +#: ../includes/ot-functions-docs-page.php:692 msgid "" "Choose a layout from the select list and click the \"Activate Layout\" " "button." msgstr "" -#: ../includes/ot-functions-docs-page.php:673 +#: ../includes/ot-functions-docs-page.php:697 msgid "End-Users mode does not allow deleting layouts." msgstr "" -#: ../includes/ot-functions-docs-page.php:678 +#: ../includes/ot-functions-docs-page.php:702 msgid "Go to the Appearance->Theme Options tab." msgstr "" -#: ../includes/ot-functions-docs-page.php:709 -#: ../includes/ot-functions-docs-page.php:791 +#: ../includes/ot-functions-docs-page.php:733 +#: ../includes/ot-functions-docs-page.php:815 msgid "How-to-guide" msgstr "" -#: ../includes/ot-functions-docs-page.php:711 +#: ../includes/ot-functions-docs-page.php:735 msgid "" "There are a few simple steps you need to take in order to use OptionTree's " "built in Meta Box API. In the code below I'll show you a basic demo of how " @@ -1937,7 +1856,7 @@ msgid "" "can reference." msgstr "" -#: ../includes/ot-functions-docs-page.php:713 +#: ../includes/ot-functions-docs-page.php:737 msgid "" "It's important to note that Meta Boxes do not support WYSIWYG editors at " "this time and if you set one of your options to Textarea it will " @@ -1945,36 +1864,36 @@ msgid "" "WordPress released this statement regarding the wp_editor() function:" msgstr "" -#: ../includes/ot-functions-docs-page.php:715 +#: ../includes/ot-functions-docs-page.php:739 msgid "" "Once instantiated, the WYSIWYG editor cannot be moved around in the DOM. " "What this means in practical terms, is that you cannot put it in meta-boxes " "that can be dragged and placed elsewhere on the page." msgstr "" -#: ../includes/ot-functions-docs-page.php:717 +#: ../includes/ot-functions-docs-page.php:741 msgid "Create and include your custom meta boxes file." msgstr "" -#: ../includes/ot-functions-docs-page.php:719 +#: ../includes/ot-functions-docs-page.php:743 msgid "" "Create a file and name it anything you want, maybe meta-boxes.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:720 +#: ../includes/ot-functions-docs-page.php:744 msgid "" "As well, you'll probably want to create a directory named includes to put your meta-boxes.php into which will help keep you " "file structure nice and tidy." msgstr "" -#: ../includes/ot-functions-docs-page.php:721 -#: ../includes/ot-functions-docs-page.php:821 +#: ../includes/ot-functions-docs-page.php:745 +#: ../includes/ot-functions-docs-page.php:845 msgid "Add the following code to your functions.php." msgstr "" -#: ../includes/ot-functions-docs-page.php:731 +#: ../includes/ot-functions-docs-page.php:755 msgid "" "Add a variation of the following code to your meta-boxes.php. " "You'll obviously need to fill it in with all your custom array values. It's " @@ -1983,7 +1902,7 @@ msgid "" "before OptionTree was loaded the sky would fall on your head." msgstr "" -#: ../includes/ot-functions-docs-page.php:793 +#: ../includes/ot-functions-docs-page.php:817 msgid "" "There are a few simple steps you need to take in order to use OptionTree as " "a theme included module. In the code below I'll show you a basic demo of how " @@ -1994,28 +1913,28 @@ msgid "" "contains a file named demo-theme-options.php you can reference." msgstr "" -#: ../includes/ot-functions-docs-page.php:795 +#: ../includes/ot-functions-docs-page.php:819 msgid "Step 1: Include the plugin & turn on theme mode." msgstr "" -#: ../includes/ot-functions-docs-page.php:797 +#: ../includes/ot-functions-docs-page.php:821 #, php-format msgid "Download the latest version of %s and unarchive the %s directory." msgstr "" -#: ../includes/ot-functions-docs-page.php:798 +#: ../includes/ot-functions-docs-page.php:822 #, php-format msgid "" "Put the %s directory in the root of your theme. For example, the server path " "would be %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:799 +#: ../includes/ot-functions-docs-page.php:823 #, php-format msgid "Add the following code to the beginning of your %s." msgstr "" -#: ../includes/ot-functions-docs-page.php:813 +#: ../includes/ot-functions-docs-page.php:837 #, php-format msgid "" "For a list of all the OptionTree UI display filters refer to the %s file " @@ -2023,38 +1942,38 @@ msgid "" "for developing themes with Theme Mode." msgstr "" -#: ../includes/ot-functions-docs-page.php:815 +#: ../includes/ot-functions-docs-page.php:839 msgid "" "You now have OptionTree built into your theme and anytime an update is " "available replace the old version with the new one." msgstr "" -#: ../includes/ot-functions-docs-page.php:817 +#: ../includes/ot-functions-docs-page.php:841 msgid "Step 2: Create Theme Options without using the UI Builder." msgstr "" -#: ../includes/ot-functions-docs-page.php:819 +#: ../includes/ot-functions-docs-page.php:843 msgid "" "Create a file and name it anything you want, maybe theme-options.php, or use the built in file export to create it for you. Remember, you " "should always check the file for errors before including it in your theme." msgstr "" -#: ../includes/ot-functions-docs-page.php:820 +#: ../includes/ot-functions-docs-page.php:844 msgid "" "As well, you'll probably want to create a directory named includes to put your theme-options.php into which will help keep " "you file structure nice and tidy." msgstr "" -#: ../includes/ot-functions-docs-page.php:831 +#: ../includes/ot-functions-docs-page.php:855 msgid "" "Add a variation of the following code to your theme-options.php. You'll obviously need to fill it in with all your custom array values " "for contextual help (optional), sections (required), and settings (required)." msgstr "" -#: ../includes/ot-functions-docs-page.php:834 +#: ../includes/ot-functions-docs-page.php:858 msgid "" "The code below is a boilerplate to get your started. For a full list of the " "available option types click the \"Option Types\" tab above. Also a quick " @@ -2090,139 +2009,230 @@ msgid "background-image" msgstr "" #: ../includes/ot-functions-option-types.php:241 -#: ../includes/ot-functions-option-types.php:2437 +#: ../includes/ot-functions-option-types.php:3227 msgid "Add Media" msgstr "" -#: ../includes/ot-functions-option-types.php:315 -#: ../includes/ot-functions-option-types.php:369 +#: ../includes/ot-functions-option-types.php:316 +#: ../includes/ot-functions-option-types.php:1094 +msgid "width" +msgstr "" + +#: ../includes/ot-functions-option-types.php:327 +#: ../includes/ot-functions-option-types.php:1114 +#: ../includes/ot-functions-option-types.php:1586 +#: ../includes/ot-functions-option-types.php:2531 +msgid "unit" +msgstr "" + +#: ../includes/ot-functions-option-types.php:346 +msgid "style" +msgstr "" + +#: ../includes/ot-functions-option-types.php:439 +msgid "offset-x" +msgstr "" + +#: ../includes/ot-functions-option-types.php:448 +msgid "offset-y" +msgstr "" + +#: ../includes/ot-functions-option-types.php:457 +msgid "blur-radius" +msgstr "" + +#: ../includes/ot-functions-option-types.php:466 +msgid "spread-radius" +msgstr "" + +#: ../includes/ot-functions-option-types.php:538 +#: ../includes/ot-functions-option-types.php:592 msgid "No Categories Found" msgstr "" -#: ../includes/ot-functions-option-types.php:364 -#: ../includes/ot-functions-option-types.php:625 -#: ../includes/ot-functions-option-types.php:1167 -#: ../includes/ot-functions-option-types.php:1278 -#: ../includes/ot-functions-option-types.php:1881 -#: ../includes/ot-functions-option-types.php:1996 +#: ../includes/ot-functions-option-types.php:587 +#: ../includes/ot-functions-option-types.php:919 +#: ../includes/ot-functions-option-types.php:1855 +#: ../includes/ot-functions-option-types.php:1966 +#: ../includes/ot-functions-option-types.php:2671 +#: ../includes/ot-functions-option-types.php:2786 msgid "Choose One" msgstr "" -#: ../includes/ot-functions-option-types.php:573 -#: ../includes/ot-functions-option-types.php:631 -#: ../includes/ot-functions-option-types.php:1229 -#: ../includes/ot-functions-option-types.php:1284 +#: ../includes/ot-functions-option-types.php:867 +#: ../includes/ot-functions-option-types.php:925 +#: ../includes/ot-functions-option-types.php:1917 +#: ../includes/ot-functions-option-types.php:1972 msgid "No Posts Found" msgstr "" -#: ../includes/ot-functions-option-types.php:892 -#: ../includes/ot-functions-option-types.php:1583 -#: ../includes/ot-functions-option-types.php:1748 +#: ../includes/ot-functions-option-types.php:1103 +msgid "height" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1281 +#: ../includes/ot-functions-option-types.php:1324 +msgid "Remove Google Font" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1283 +#: ../includes/ot-functions-option-types.php:1326 +msgid "-- Choose One --" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1347 +msgid "Add Google Font" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1433 +msgctxt "color picker" +msgid "Standard" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1434 +msgctxt "color picker" +msgid "Hover" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1435 +msgctxt "color picker" +msgid "Active" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1436 +msgctxt "color picker" +msgid "Visited" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1437 +msgctxt "color picker" +msgid "Focus" +msgstr "" + +#: ../includes/ot-functions-option-types.php:1534 +#: ../includes/ot-functions-option-types.php:2271 +#: ../includes/ot-functions-option-types.php:2436 msgid "Add New" msgstr "" -#: ../includes/ot-functions-option-types.php:895 -#: ../includes/ot-functions-option-types.php:1586 -#: ../includes/ot-functions-option-types.php:1751 +#: ../includes/ot-functions-option-types.php:1537 +#: ../includes/ot-functions-option-types.php:2274 +#: ../includes/ot-functions-option-types.php:2439 msgid "You can re-order with drag & drop, the order will update after saving." msgstr "" -#: ../includes/ot-functions-option-types.php:1046 +#: ../includes/ot-functions-option-types.php:1706 msgid "On" msgstr "" -#: ../includes/ot-functions-option-types.php:1050 +#: ../includes/ot-functions-option-types.php:1728 msgid "Off" msgstr "" -#: ../includes/ot-functions-option-types.php:1118 -#: ../includes/ot-functions-option-types.php:1173 +#: ../includes/ot-functions-option-types.php:1806 +#: ../includes/ot-functions-option-types.php:1861 msgid "No Pages Found" msgstr "" -#: ../includes/ot-functions-option-types.php:1506 +#: ../includes/ot-functions-option-types.php:2194 msgid "Choose Sidebar" msgstr "" -#: ../includes/ot-functions-option-types.php:1511 +#: ../includes/ot-functions-option-types.php:2199 msgid "No Sidebars" msgstr "" -#: ../includes/ot-functions-option-types.php:1619 +#: ../includes/ot-functions-option-types.php:2307 msgid "Facebook" msgstr "" -#: ../includes/ot-functions-option-types.php:1624 +#: ../includes/ot-functions-option-types.php:2312 msgid "Twitter" msgstr "" -#: ../includes/ot-functions-option-types.php:1629 +#: ../includes/ot-functions-option-types.php:2317 msgid "Google+" msgstr "" -#: ../includes/ot-functions-option-types.php:1634 +#: ../includes/ot-functions-option-types.php:2322 msgid "LinkedIn" msgstr "" -#: ../includes/ot-functions-option-types.php:1639 +#: ../includes/ot-functions-option-types.php:2327 msgid "Pinterest" msgstr "" -#: ../includes/ot-functions-option-types.php:1644 +#: ../includes/ot-functions-option-types.php:2332 msgid "Youtube" msgstr "" -#: ../includes/ot-functions-option-types.php:1649 +#: ../includes/ot-functions-option-types.php:2337 msgid "Dribbble" msgstr "" -#: ../includes/ot-functions-option-types.php:1654 +#: ../includes/ot-functions-option-types.php:2342 msgid "Github" msgstr "" -#: ../includes/ot-functions-option-types.php:1659 +#: ../includes/ot-functions-option-types.php:2347 msgid "Forrst" msgstr "" -#: ../includes/ot-functions-option-types.php:1664 +#: ../includes/ot-functions-option-types.php:2352 msgid "Digg" msgstr "" -#: ../includes/ot-functions-option-types.php:1669 +#: ../includes/ot-functions-option-types.php:2357 msgid "Delicious" msgstr "" -#: ../includes/ot-functions-option-types.php:1674 +#: ../includes/ot-functions-option-types.php:2362 msgid "Tumblr" msgstr "" -#: ../includes/ot-functions-option-types.php:1679 +#: ../includes/ot-functions-option-types.php:2367 msgid "Skype" msgstr "" -#: ../includes/ot-functions-option-types.php:1684 +#: ../includes/ot-functions-option-types.php:2372 msgid "SoundCloud" msgstr "" -#: ../includes/ot-functions-option-types.php:1689 +#: ../includes/ot-functions-option-types.php:2377 msgid "Vimeo" msgstr "" -#: ../includes/ot-functions-option-types.php:1694 +#: ../includes/ot-functions-option-types.php:2382 msgid "Flickr" msgstr "" -#: ../includes/ot-functions-option-types.php:1699 +#: ../includes/ot-functions-option-types.php:2387 msgid "VK.com" msgstr "" -#: ../includes/ot-functions-option-types.php:1832 -#: ../includes/ot-functions-option-types.php:1886 +#: ../includes/ot-functions-option-types.php:2493 +msgid "top" +msgstr "" + +#: ../includes/ot-functions-option-types.php:2502 +msgid "right" +msgstr "" + +#: ../includes/ot-functions-option-types.php:2511 +msgid "bottom" +msgstr "" + +#: ../includes/ot-functions-option-types.php:2520 +msgid "left" +msgstr "" + +#: ../includes/ot-functions-option-types.php:2622 +#: ../includes/ot-functions-option-types.php:2676 msgid "No Tags Found" msgstr "" -#: ../includes/ot-functions-option-types.php:1944 -#: ../includes/ot-functions-option-types.php:2001 +#: ../includes/ot-functions-option-types.php:2734 +#: ../includes/ot-functions-option-types.php:2791 msgid "No Taxonomies Found" msgstr "" @@ -2438,6 +2448,13 @@ msgstr "" msgid "Save Layouts" msgstr "" -#: ../includes/ot-settings-api.php:355 +#: ../includes/ot-settings-api.php:364 msgid "Reset Options" msgstr "" + +#: ../ot-loader.php:21 +msgid "" +"OptionTree is installed as a plugin and also embedded in your current theme. " +"Please deactivate the plugin to load the theme dependent version of " +"OptionTree, and remove this warning." +msgstr "" diff --git a/option-tree/ot-loader.php b/option-tree/ot-loader.php index 450641c..74fe6f0 100644 --- a/option-tree/ot-loader.php +++ b/option-tree/ot-loader.php @@ -3,7 +3,7 @@ * Plugin Name: OptionTree * Plugin URI: https://github.com/valendesigns/option-tree/ * Description: Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. - * Version: 2.4.6 + * Version: 2.5.0 * Author: Derek Herman * Author URI: http://valendesigns.com * License: GPLv3 @@ -178,7 +178,7 @@ private function constants() { /** * Current Version number. */ - define( 'OT_VERSION', '2.4.6' ); + define( 'OT_VERSION', '2.5.0' ); /** * For developers: Theme mode. @@ -489,7 +489,10 @@ private function hooks() { /* global CSS */ add_action( 'admin_head', array( $this, 'global_admin_css' ) ); - + + /* Google Fonts front-end CSS */ + add_action( 'wp_enqueue_scripts', 'ot_load_google_fonts_css', 1 ); + /* dynamic front-end CSS */ add_action( 'wp_enqueue_scripts', 'ot_load_dynamic_css', 999 ); @@ -519,6 +522,9 @@ private function hooks() { /* AJAX call to create a new social link */ add_action( 'wp_ajax_add_social_links', array( $this, 'add_social_links' ) ); + + /* AJAX call to retrieve Google Font data */ + add_action( 'wp_ajax_ot_google_font', array( $this, 'retrieve_google_font' ) ); // Adds the temporary hacktastic shortcode add_filter( 'media_view_settings', array( $this, 'shortcode' ), 10, 2 ); @@ -733,6 +739,30 @@ public function ajax_gallery_update() { } } + + /** + * Returns a JSON encoded Google fonts array. + * + * @return array + * + * @access public + * @since 2.5.0 + */ + public function retrieve_google_font() { + + if ( isset( $_POST['field_id'], $_POST['family'] ) ) { + + ot_fetch_google_fonts(); + + echo json_encode( array( + 'variants' => ot_recognized_google_font_variants( $_POST['field_id'], $_POST['family'] ), + 'subsets' => ot_recognized_google_font_subsets( $_POST['field_id'], $_POST['family'] ) + ) ); + exit(); + + } + + } /** * Filters the media uploader button. @@ -745,7 +775,7 @@ public function ajax_gallery_update() { public function change_image_button( $translation, $text, $domain ) { global $pagenow; - if ( $pagenow == 'themes.php' && 'default' == $domain && 'Insert into post' == $text ) { + if ( $pagenow == apply_filters( 'ot_theme_options_parent_slug', 'themes.php' ) && 'default' == $domain && 'Insert into post' == $text ) { // Once is enough. remove_filter( 'gettext', array( $this, 'ot_change_image_button' ) ); @@ -770,4 +800,4 @@ public function change_image_button( $translation, $text, $domain ) { } /* End of file ot-loader.php */ -/* Location: ./ot-loader.php */ \ No newline at end of file +/* Location: ./ot-loader.php */ diff --git a/option-tree/readme.txt b/option-tree/readme.txt index e1c3e86..ae0faf5 100644 --- a/option-tree/readme.txt +++ b/option-tree/readme.txt @@ -2,9 +2,9 @@ Contributors: valendesigns Donate link: http://bit.ly/NuXI3T Tags: options, theme options, meta boxes -Requires at least: 3.5 -Tested up to: 4.0 -Stable tag: 2.4.6 +Requires at least: 3.8 +Tested up to: 4.2-alpha +Stable tag: 2.5.0 License: GPLv3 Theme Options UI Builder for WordPress. A simple way to create & save Theme Options and Meta Boxes for free or premium themes. @@ -32,16 +32,23 @@ OptionTree is a project partly sponsored by = 0; i--) { + hex = '0' + hex; + } + } + + return '#' + hex; + + }; + + } + + $.ot_ParseColorValue = function( val ) { + + var value = val.replace(/\s+/g, ''), + alpha = ( value.indexOf('rgba') !== -1 ) ? parseFloat( value.replace(/^.*,(.+)\)/, '$1') * 100 ) : 100, + rgba = ( alpha < 100 ) ? true : false; + + return { value: value, alpha: alpha, rgba: rgba }; + + }; + + $.fn.ot_wpColorPicker = function() { + + return this.each(function() { + + var $this = $(this); + + // check for rgba enabled/disable + if( $this.data('rgba') !== false ) { + + // parse value + var picker = $.ot_ParseColorValue( $this.val() ); + + // wpColorPicker core + $this.wpColorPicker({ + + // wpColorPicker: change + change: function( event, ui ) { + + // update checkerboard background color + $this.closest('.wp-picker-container').find('.option-tree-opacity-slider-offset').css('background-color', ui.color.toString()); + $this.trigger('keyup'); + + }, + + // wpColorPicker: create + create: function( event, ui ) { + + // set variables for alpha slider + var a8cIris = $this.data('a8cIris'), + $container = $this.closest('.wp-picker-container'), + + // appending alpha wrapper + $alpha_wrap = $('
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ').appendTo( $container.find('.wp-picker-holder') ), + + $alpha_slider = $alpha_wrap.find('.option-tree-opacity-slider'), + $alpha_text = $alpha_wrap.find('.option-tree-opacity-text'), + $alpha_offset = $alpha_wrap.find('.option-tree-opacity-slider-offset'); + + // alpha slider + $alpha_slider.slider({ + + // slider: slide + slide: function( event, ui ) { + + var slide_value = parseFloat( ui.value / 100 ); + + // update iris data alpha && wpColorPicker color option && alpha text + a8cIris._color._alpha = slide_value; + $this.wpColorPicker( 'color', a8cIris._color.toString() ); + $alpha_text.text( ( slide_value < 1 ? slide_value : '' ) ); + + }, + + // slider: create + create: function() { + + var slide_value = parseFloat( picker.alpha / 100 ), + alpha_text_value = slide_value < 1 ? slide_value : ''; + + // update alpha text && checkerboard background color + $alpha_text.text(alpha_text_value); + $alpha_offset.css('background-color', picker.value); + + // wpColorPicker clear button for update iris data alpha && alpha text && slider color option + $container.on('click', '.wp-picker-clear', function() { + + a8cIris._color._alpha = 1; + $alpha_text.text(''); + $alpha_slider.slider('option', 'value', 100).trigger('slide'); + + }); + + // wpColorPicker default button for update iris data alpha && alpha text && slider color option + $container.on('click', '.wp-picker-default', function() { + + var default_picker = $.ot_ParseColorValue( $this.data('default-color') ), + default_value = parseFloat( default_picker.alpha / 100 ), + default_text = default_value < 1 ? default_value : ''; + + a8cIris._color._alpha = default_value; + $alpha_text.text(default_text); + $alpha_slider.slider('option', 'value', default_picker.alpha).trigger('slide'); + + }); + + // show alpha wrapper on click color picker button + $container.on('click', '.wp-color-result', function() { + $alpha_wrap.toggle(); + }); + + // hide alpha wrapper on click body + $('body').on( 'click.wpcolorpicker', function() { + $alpha_wrap.hide(); + }); + + }, + + // slider: options + value: picker.alpha, + step: 1, + min: 1, + max: 100 + + }); + } + + }); + + } else { + + // wpColorPicker default picker + $this.wpColorPicker({ + change: function() { + $this.trigger('keyup'); + } + }); + + } + + }); + + }; + + $(document).ready( function(){ + $('.hide-color-picker.ot-colorpicker-opacity').ot_wpColorPicker(); + }); + +})( jQuery, window, document ); \ No newline at end of file diff --git a/option-tree/assets/js/vendor/ace/ace.js b/option-tree/assets/js/vendor/ace/ace.js deleted file mode 100644 index c97d931..0000000 --- a/option-tree/assets/js/vendor/ace/ace.js +++ /dev/null @@ -1,10 +0,0 @@ -(function(){function o(e){var i=function(e,t){return r("",e,t)},s=t;e&&(t[e]||(t[e]={}),s=t[e]);if(!s.define||!s.define.packaged)n.original=s.define,s.define=n,s.define.packaged=!0;if(!s.require||!s.require.packaged)r.original=s.require,s.require=i,s.require.packaged=!0}var e="ace",t=function(){return this}();if(!e&&typeof requirejs!="undefined")return;var n=function(e,t,r){if(typeof e!="string"){n.original?n.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=t),n.modules||(n.modules={},n.payloads={}),n.payloads[e]=r,n.modules[e]=null},r=function(e,t,n){if(Object.prototype.toString.call(t)==="[object Array]"){var i=[];for(var o=0,u=t.length;o1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;et.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+ta)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var n=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;n&&(o=1),o==1&&(u=e.clientX,a=e.clientY)}r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}),i.isOldIE&&t.addListener(e,"dblclick",function(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)})};var u=null,a=0;t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var s=null;r(e,"keydown",function(e){s=e.keyCode}),r(e,"keypress",function(e){return o(n,e,s)})}else{var a=null;r(e,"keydown",function(e){u[e.keyCode]=!0;var t=o(n,e,e.keyCode);return a=e.defaultPrevented,t}),r(e,"keypress",function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),r(e,"keyup",function(e){u[e.keyCode]=null}),u||(u=Object.create(null),r(window,"focus",function(e){u=Object.create(null)}))}};if(window.postMessage&&!i.isOldIE){var f=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+f;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame,t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(e,t,n){var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}};for(var t in e.FUNCTION_KEYS){var n=e.FUNCTION_KEYS[t].toLowerCase();e[n]=parseInt(t,10)}return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",e}();r.mixin(t,i),t.keyCodeToString=function(e){return(i[e]||String.fromCharCode(e)).toLowerCase()}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/useragent",["require","exports","module"],function(e,t,n){t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!="object")return;var r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=(navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0)&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=window.controllers&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isTouchPad=i.indexOf("TouchPad")>=0}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config"],function(e,t,n){e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new v(o.isMac?"mac":"win",m),this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new l(this),this.$mouseHandler=new a(this),new f(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c("")),g.resetOptions(this),g._emit("editor",this)};(function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on("exec",function(t){this.startOperation(t);var n=t.command;if(n.aceCommandGroup=="fileJump"){var r=this.prevOp;if(!r||r.command.aceCommandGroup!="fileJump")this.lastFileJumpPos=e(this.selections)}else this.lastFileJumpPos=null}.bind(this),!0),this.commands.on("afterExec",function(e){var t=e.command;t.aceCommandGroup=="fileJump"&&this.lastFileJumpPos&&!this.curOp.selectionChanged&&this.selection.fromJSON(this.lastFileJumpPos),this.endOperation(e)}.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop};var t=this.curOp.command;t&&t.scrollIntoView&&this.$blockScrolling++,this.selections.push(this.selection.toJSON())},this.endOperation=function(){if(this.curOp){var e=this.curOp.command;if(e&&e.scrollIntoView){this.$blockScrolling--;switch(e.scrollIntoView){case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var t=this.selection.getRange(),n=this.renderer.layerConfig;(t.start.row>=n.lastRow||t.end.row<=n.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}e.scrollIntoView=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=["backspace","del","insertstring"],r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e){if(!e)this.keyBinding.setKeyboardHandler(null);else if(typeof e=="string"){this.$keybindingId=e;var t=this;g.loadModule(["keybinding",e],function(n){t.$keybindingId==e&&t.keyBinding.setKeyboardHandler(n&&n.handler)})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;if(this.session){var t=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.removeEventListener("changeCursor",this.$onCursorChange),n.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=e,this.$onDocumentChange=this.onDocumentChange.bind(this),e.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:e,oldSession:t})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e){this.renderer.setTheme(e)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session.findMatchingBracket(e.getCursorPosition());if(t)var n=new p(t.row,t.column,t.row,t.column+1);else if(e.session.$mode.getMatching)var n=e.session.$mode.getMatching(e.session);n&&(e.session.$bracketHighlight=e.session.addMarker(n,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=e.data,n=t.range,r;n.start.row==n.end.row&&t.action!="insertLines"&&t.action!="removeLines"?r=n.end.row:r=Infinity,this.renderer.updateLines(n.start.row,r),this._emit("change",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine(),this._emit("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._emit("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._emit("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e){if(this.$readOnly)return;this._emit("paste",e),this.insert(e)},this.execCommand=function(e,t){this.commands.exec(e,this,t)},this.insert=function(e){var t=this.session,n=t.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()){var i=n.transformAction(t.getState(r.row),"insertion",this,t,e);i&&(e!==i.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=i.text)}e==" "&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}else if(this.session.getOverwrite()){var s=new p.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}if(e=="\n"||e=="\r\n"){var o=t.getLine(r.row);if(r.column>o.search(/\S|$/)){var u=o.substr(r.column).search(/\S|$/);t.doc.removeInLine(r.row,r.column,r.column+u)}}this.clearSelection();var a=r.column,f=t.getState(r.row),o=t.getLine(r.row),l=n.checkOutdent(f,o,e),c=t.insert(r,e);i&&i.selection&&(i.selection.length==2?this.selection.setSelectionRange(new p(r.row,a+i.selection[0],r.row,a+i.selection[1])):this.selection.setSelectionRange(new p(r.row+i.selection[0],i.selection[1],r.row+i.selection[2],i.selection[3])));if(t.getDocument().isNewLine(e)){var h=n.getNextLineIndent(f,o.slice(0,r.column),t.getTabString());t.insert({row:r.row+1,column:0},h)}l&&n.autoOutdent(f,t,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;tt.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n=o)s[u].moveBy(i,0),u--}t.fromOrientedRange(t.ranges[0]),t.rangeList.attach(this.session)}},this.$getSelectedRows=function(){var e=this.getSelectionRange().collapseRows();return{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e){var t=this.getCursorPosition(),n=this.session.getBracketRange(t);if(!n){n=this.find({needle:/[{}()\[\]]/g,preventScroll:!0,start:{row:t.row,column:t.column-1}});if(!n)return;var r=n.start;r.row==t.row&&Math.abs(r.column-t.column)<2&&(n=this.session.getBracketRange(r))}r=n&&n.cursor||r,r&&(e?n&&n.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(r.row,r.column):(this.clearSelection(),this.moveCursorTo(r.row,r.column)))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),e=e||1,this.selection.moveCursorBy(-e,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),e=e||1,this.selection.moveCursorBy(e,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._emit("destroy",this)},this.setAutoScrollEditorIntoView=function(e){if(e===!1)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&n.isFocused()){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.topwindow.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e===!0)return;delete this.setAutoScrollEditorIntoView,this.removeEventListener("changeSelection",s),this.renderer.removeEventListener("afterRender",u),this.renderer.removeEventListener("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(e=="smooth"),t.isBlinking=!this.$readOnly&&e!="wide"}}).call(y.prototype),g.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._emit("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this[this.state]&&this[this.state](e)},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines"),this.$clickSelection=n.selection.getLineRange(t.row),this[this.state]&&this[this.state](e)},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getShiftKey()||e.getAccelKey())return;var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/event"],function(e,t,n){function s(e){function f(){u=r.createElement("div"),u.className="ace_gutter-tooltip",u.style.display="none",t.container.appendChild(u)}function l(){u||f();var e=o.getDocumentPosition().row,r=n.$annotations[e];if(!r)return c();var i=t.session.getLength();if(e==i){var s=t.renderer.pixelToScreenCoordinates(0,o.y).row,l=o.$pos;if(s>t.session.documentToScreenRow(l.row,l.column))return c()}if(a==r)return;a=r.text.join("
    "),u.style.display="block",u.innerHTML=a,t.on("mousewheel",c),h(o)}function c(){s&&(s=clearTimeout(s)),a&&(u.style.display="none",a=null,t.removeEventListener("mousewheel",c))}function h(e){var n=t.renderer.$gutter.getBoundingClientRect();u.style.left=e.x+15+"px";if(e.y+3*t.renderer.lineHeight+15a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n._top=n.offsetTop),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return h||(k(),y++),A!==null&&(A=null),p=e.clientX,d=e.clientY,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!h)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor.container;e.draggable=!0,this.editor.renderer.$cursorLayer.setBlinking(!1),this.editor.setStyle("ace_dragging"),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/event_emitter"],function(e,t,n){"no use strict";function f(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/event_emitter").EventEmitter,u=function(){return this}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);a[e]=t},t.all=function(){return r.copyObject(a)},i.implement(t,o),t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=function(){a.packaged=e.packaged||n.packaged||u.define&&define.packaged;if(!u.document)return"";var r={},i="",s=document.getElementsByTagName("script");for(var o=0;o=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._emit("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._emit("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(oe&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;ao){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;re.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.insert({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeLines(e,t);return this.doc.insertLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=[];for(var n=0;n1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n,r=e.data.action,i=e.data.range.start.row,s=e.data.range.end.row,o=e.data.range.start,u=e.data.range.end,a=null;r.indexOf("Lines")!=-1?(r=="insertLines"?s=i+e.data.lines.length:s=i,n=e.data.lines?e.data.lines.length:s-i):n=s-i,this.$updating=!0;if(n!=0)if(r.indexOf("remove")!=-1){this[t?"$wrapData":"$rowLengthCache"].splice(i,n);var f=this.$foldData;a=this.getFoldsInRange(e.data.range),this.removeFolds(a);var l=this.getFoldLine(u.row),c=0;if(l){l.addRemoveChars(u.row,u.column,o.column-u.column),l.shiftRow(-n);var h=this.getFoldLine(i);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c=u.row&&l.shiftRow(-n)}s=i}else{var p;if(t){p=[i,0];for(var d=0;d=i&&l.shiftRow(n)}}else{n=Math.abs(e.data.range.start.column-e.data.range.end.column),r.indexOf("remove")!=-1&&(a=this.getFoldsInRange(e.data.range),this.removeFolds(a),n=-n);var l=this.getFoldLine(i);l&&l.addRemoveChars(i,o.column,n)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(i,s):this.$updateRowLengthCache(i,s),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var n=this.doc.getAllLines(),r=this.getTabSize(),i=this.$wrapData,s=this.$wrapLimit,o,a,f=e;t=Math.min(t,n.length-1);while(f<=t)a=this.getFoldLine(f,a),a?(o=[],a.walk(function(e,t,r,i){var s;if(e!=null){s=this.$getDisplayTokens(e,o.length),s[0]=u;for(var a=1;at){var f=i+t;if(e[f-1]>=d&&e[f]>=d){a(f);continue}if(e[f]==u||e[f]==l){for(f;f!=i-1;f--)if(e[f]==u)break;if(f>i){a(f);continue}f=i+t;for(f;f>2)),i-1);while(f>c&&e[f]c&&e[f]c&&e[f]==p)f--}else while(f>c&&e[f]c){a(++f);continue}f=i+t,a(f)}return n},this.$getDisplayTokens=function(e,r){var i=[],s;r=r||0;for(var o=0;o39&&u<48||u>57&&u<64?i.push(p):u>=4352&&g(u)?i.push(t,n):i.push(t)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i=4352&&g(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}if(this.$useWrapMode){var v=this.$wrapData[r];if(v){var m=Math.floor(e-o);s=v[m],m>0&&v.length&&(i=v[m-1]||v[v.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);if(this.$useWrapMode){var v=this.$wrapData[i],m=0;while(d.length>=v[m])r++,m++;d=d.substring(v[m-1]||0,d.length)}return{row:r,column:this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;ro&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e}}).call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}this.$wrap=e},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},firstLineNumber:{set:function(){this._emit("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._emit("changeTabSize")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._emit("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){t.$isEmpty||t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column==0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(" ").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e.isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/range",["require","exports","module"],function(e,t,n){var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.row2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(ne.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t1?f.onMatch=this.$applyToken:f.onMatch=f.token);c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null),f.__proto__=null}u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){r=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;il){var m=e.substring(l,v-d.length);c.type==h?c.value+=m:(c.type&&f.push(c),c={type:h,value:m})}for(var g=0;gr){while(l1&&n[0]!==i&&n.unshift(i),{tokens:f,state:n.length?n:i}}}).call(i.prototype),t.Tokenizer=i}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,o=e("./anchor").Anchor,u=function(e){this.$lines=[],e.length==0?this.$lines=[""]:Array.isArray(e)?this._insertLines(0,e):this.insert({row:0,column:0},e)};(function(){r.implement(this,i),this.setValue=function(e){var t=this.getLength();this.remove(new s(0,0,t,this.getLine(t-1).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new o(this,e,t)},"aaa".split(/a/).length==0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine}},this.$autoNewLine="\n",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){if(e.start.row==e.end.row)return this.getLine(e.start.row).substring(e.start.column,e.end.column);var t=this.getLines(e.start.row,e.end.row);t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;return e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column)),t.join(this.getNewLineCharacter())},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};if(t.length>65535){var n=this._insertLines(e,t.slice(65535));t=t.slice(0,65535)}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._emit("change",{data:o}),n||i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._emit("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._emit("change",{data:i}),r},this.remove=function(e){!e instanceof s&&(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._emit("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._emit("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._emit("change",{data:o})},this.replace=function(e,t){!e instanceof s&&(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;ithis.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc;while(n.lines[t])t++;var s=t,o=i.getLength(),u=0;n.running=!1;while(t20){n.running=setTimeout(n.$worker,20),n.currentLine=t;return}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._emit("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.range,n=t.start.row,r=t.end.row-n;if(r===0)this.lines[n]=null;else if(e.action=="removeText"||e.action=="removeLines")this.lines.splice(n,r+1,null),this.states.splice(n,r+1,null);else{var i=Array(r+1);i.unshift(n,1),this.lines.splice.apply(this.lines,i),this.states.splice.apply(this.states,i)}this.currentLine=Math.min(n,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i=t){u=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row,i=0),t==null&&(t=e.end.row,n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.removeListener("change",this.$updateFoldWidgets),this._emit("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s){t.children||t.all?this.removeFold(s):this.expandFold(s);return}var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range)){this.removeFold(s);return}}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,o.end.row,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.data,n=t.range,r=n.start.row,i=n.end.row-r;if(i===0)this.foldWidgets[r]=null;else if(t.action=="removeText"||t.action=="removeLines")this.foldWidgets.splice(r,i+1,null);else{var s=Array(i+1);s.unshift(r,1),this.foldWidgets.splice.apply(this.foldWidgets,s)}}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.call(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.rowi)break;c.start.row==i&&c.start.column>=n.column&&(c.start.column!=n.column||!this.$insertRight)&&(c.start.column+=u,c.start.row+=o);if(c.end.row==i&&c.end.column>=n.column){if(c.end.column==n.column&&this.$insertRight)continue;c.end.column==n.column&&u>0&&fc.start.column&&c.end.column==a[f+1].start.column&&(c.end.column-=u),c.end.column+=u,c.end.row+=o}}if(o!=0&&f=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(aw&&o[c].end.row==n.end.row)c--;o=o.slice(m,c+1);for(m=0,c=o.length;m=0;u--)if(o(s[u],t,i))return!0};else var f=function(e,t,i){var s=r.getMatchOffsets(e,n);for(var u=0;u=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../keyboard/hash_handler").HashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var r={editor:t,command:e,args:n},i=this._emit("exec",r);return this._signal("afterExec",r),i===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){function s(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={};if(this.__defineGetter__&&this.__defineSetter__&&typeof console!="undefined"&&console.error){var n=!1,r=function(){n||(n=!0,console.error("commmandKeyBinding has too many m's. use commandKeyBinding"))};this.__defineGetter__("commmandKeyBinding",function(){return r(),this.commandKeyBinding}),this.__defineSetter__("commmandKeyBinding",function(e){return r(),this.commandKeyBinding=e})}else this.commmandKeyBinding=this.commandKeyBinding;this.addCommands(e)}var r=e("../lib/keys"),i=e("../lib/useragent");(function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e){var t=typeof e=="string"?e:e.name;e=this.commands[t],delete this.commands[t];var n=this.commandKeyBinding;for(var r in n)for(var i in n[r])n[r][i]==e&&delete n[r][i]},this.bindKey=function(e,t){if(!e)return;if(typeof t=="function"){this.addCommand({exec:t,bindKey:e,name:t.name||e});return}var n=this.commandKeyBinding;e.split("|").forEach(function(e){var r=this.parseKeys(e,t),i=r.hashId;(n[i]||(n[i]={}))[r.key]=t},this)},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){var t=e.bindKey;if(!t)return;var n=typeof t=="string"?t:t[this.platform];this.bindKey(n,e)},this.parseKeys=function(e){e.indexOf(" ")!=-1&&(e=e.split(/\s+/).pop());var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=this.commandKeyBinding;return r[t]&&r[t][n]},this.handleKeyboard=function(e,t,n,r){return{command:this.findKeyCommand(t,n)}}}).call(s.prototype),t.HashHandler=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config"],function(e,t,n){function s(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config");t.commands=[{name:"showSettingsMenu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:s("Alt-E","Ctrl-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"center",readOnly:!0},{name:"goToPreviousError",bindKey:s("Alt-Shift-E","Ctrl-Shift-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"center",readOnly:!0},{name:"selectall",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:s("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:s("Ctrl-Alt-0","Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},readOnly:!0},{name:"findprevious",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},readOnly:!0},{name:"selectOrFindNext",bindKey:s("ALt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:s("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:s("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",readOnly:!0},{name:"golineup",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selecttoend",bindKey:s("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:s("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:s("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:s("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:s("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"togglerecording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:s("Ctrl-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttomatching",bindKey:s("Ctrl-Shift-P",null),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},multiSelectAction:"forEach"},{name:"removeline",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},multiSelectAction:"forEach"},{name:"sortlines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach"},{name:"modifyNumberUp",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},multiSelectAction:"forEach"},{name:"replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()}},{name:"movelinesup",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()}},{name:"copylinesdown",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()}},{name:"movelinesdown",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()}},{name:"del",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach"},{name:"backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach"},{name:"cut_or_delete",bindKey:s("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach"},{name:"removetolinestart",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach"},{name:"removetolineend",bindKey:s("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach"},{name:"removewordleft",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach"},{name:"removewordright",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach"},{name:"outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach"},{name:"splitline",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach"},{name:"transposeletters",bindKey:s("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)}},{name:"touppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach"},{name:"tolowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach"}]}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,n){var r=function(){this.reset()};(function(){this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(t,e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0}}).call(r.prototype),t.UndoManager=r}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/useragent","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/useragent"),o=e("./config"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./lib/event_emitter").EventEmitter,v=".ace_editor {position: relative;overflow: hidden;font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;font-size: 12px;line-height: normal;color: black;}.ace_editor .ace_line {direction: ltr;unicode-bidi: bidi-override;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: text;min-width: 100%;}.ace_dragging, .ace_dragging * {cursor: move !important;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: '';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;}.ace_text-input.ace_composition {background: #f8f8f8;color: #111;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;/* setting pointer-events: auto; on node under the mouse, which changesduring scroll, will break mouse wheel scrolling in Safari */pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0px;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-moz-transition: opacity 0.18s;-webkit-transition: opacity 0.18s;-o-transition: opacity 0.18s;-ms-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_cursor[style*=\"opacity: 0\"]{-ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");background-repeat: no-repeat, repeat-x;background-position: center center, top left;}.ace_gutter-tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;display: inline-block;max-width: 500px;padding: 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre-line;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");}.ace_fold-widget.ace_closed {background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}/*** Dark version for fold widgets*/.ace_dark .ace_fold-widget {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");}.ace_dark .ace_fold-widget.ace_end {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget.ace_closed {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-moz-transition: opacity 0.4s ease 0.05s;-webkit-transition: opacity 0.4s ease 0.05s;-o-transition: opacity 0.4s ease 0.05s;-ms-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-moz-transition: opacity 0.05s ease 0.05s;-webkit-transition: opacity 0.05s ease 0.05s;-o-transition: opacity 0.05s ease 0.05s;-ms-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}";i.importCssString(v,"ace_editor");var m=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize")}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,d),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session=e,this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(e,t){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$changedLines.lastRow2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0)},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",this.session&&(i|=this.CHANGE_SCROLL));if(n&&(e||s.width!=n)){i=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.content},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.lineHeight;if(t<0||t>e.height-r)return;var i=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");i*=this.session.$getStringScreenWidth(s)[0]+2,r+=2,t-=1}n-=this.scrollLeft,n>this.$size.scrollerWidth-i&&(n=this.$size.scrollerWidth-i),n-=this.scrollBar.width,this.textarea.style.height=r+"px",this.textarea.style.width=i+"px",this.textarea.style.right=Math.max(0,this.$size.scrollerWidth-n-i)+"px",this.textarea.style.bottom=Math.max(0,this.$size.height-t-r)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+e},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){this.scrollBarV.setScrollHeight(this.layerConfig.maxHeight+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL)e|=this.$computeLayerConfig(),n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px";e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.max((this.$minLines||1)*this.lineHeight,Math.min(t,e))+this.scrollMargin.v+(this.$extraHeight||0),r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n}},this.$computeLayerConfig=function(){this.$maxLines&&this.lineHeight>1&&this.$autosize();var e=this.session,t=this.$size.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,i=this.scrollTop%this.lineHeight,s=this.$size.scrollerHeight+this.lineHeight,o=this.$getLongestLine(),u=!t&&(this.$hScrollBarAlwaysVisible||this.$size.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==u;a&&(this.$horizScroll=u,this.scrollBarH.setVisible(u)),!this.$maxLines&&this.$scrollPastEnd&&this.scrollTop>r-this.$size.scrollerHeight&&(r+=Math.min((this.$size.scrollerHeight-this.lineHeight)*this.$scrollPastEnd,this.scrollTop-r+this.$size.scrollerHeight));var f=!t&&(this.$vScrollBarAlwaysVisible||this.$size.scrollerHeight-r<0),l=this.$vScroll!==f;l&&(this.$vScroll=f,this.scrollBarV.setVisible(f)),this.session.setScrollTop(Math.max(-this.scrollMargin.top,Math.min(this.scrollTop,r-this.$size.scrollerHeight+this.scrollMargin.v))),this.session.setScrollLeft(Math.max(-this.scrollMargin.left,Math.min(this.scrollLeft,o+2*this.$padding-this.$size.scrollerWidth+this.scrollMargin.h)));var c=Math.ceil(s/this.lineHeight)-1,h=Math.max(0,Math.round((this.scrollTop-i)/this.lineHeight)),p=h+c,d,v,m=this.lineHeight;h=e.screenToDocumentRow(h,0);var g=e.getFoldLine(h);g&&(h=g.start.row),d=e.documentToScreenRow(h,0),v=e.getRowLength(h)*m,p=Math.min(e.screenToDocumentRow(p,0),e.getLength()-1),s=this.$size.scrollerHeight+e.getRowLength(p)*m+v,i=this.scrollTop-d*m;var y=0;if(a||l)y=this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this._signal("scrollbarVisibilityChanged"),l&&(o=this.$getLongestLine());return this.layerConfig={width:o,padding:this.$padding,firstRow:h,firstRowScreen:d,lastRow:p,lineHeight:m,characterWidth:this.characterWidth,minHeight:s,maxHeight:r,offset:i,height:this.$size.scrollerHeight},y},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(ti?(t&&(i-=t*this.$size.scrollerHeight),i==0?i=-this.scrollMargin.top:i==0&&(i=+this.scrollMargin.bottom),this.session.setScrollTop(i)):s+this.$size.scrollerHeightr?(r=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight-(this.$size.scrollerHeight-this.lineHeight)*this.$scrollPastEnd<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function s(r){if(n.$themeId!=e)return t&&t();if(!r.cssClass)return;i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;o.loadModule(["theme",r],s)}else s(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.content.style.cursor!=e&&(this.content.style.cursor=e)},this.setMouseCursor=function(e){this.content.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(m.prototype),o.defineOptions(m.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=m}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;to&&(v=s.end.row+1,s=i.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>n){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m="ace_gutter-cell ";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=i.getRowLength(v)*e.lineHeight+"px";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=i.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement("span"),p.element.appendChild(p.foldWidget));var m="ace_fold-widget ace_"+y;y=="start"&&v==o&&vn.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var s=r.range.clipRows(e.firstRow,e.lastRow);if(s.isEmpty())continue;s=s.toScreenRange(this.session);if(r.renderer){var o=this.$getTop(s.start.row,e),u=this.$padding+s.start.column*e.characterWidth;r.renderer(t,s,u,o,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,s,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,s,r.clazz,e):s.isMultiLine()?r.type=="text"?this.drawTextMarker(t,s,r.clazz,e):this.drawMultiLineMarker(t,s,r.clazz,e):this.drawSingleLineMarker(t,s,r.clazz+" ace_start",e)}this.element=i.setInnerHtml(this.element,t.join(""))},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,n,i,s){var o=t.start.row,u=new r(o,t.start.column,o,this.session.getScreenLastRowColumn(o));this.drawSingleLineMarker(e,u,n+" ace_start",i,1,s),o=t.end.row,u=new r(o,0,o,t.end.column),this.drawSingleLineMarker(e,u,n,i,0,s);for(o=t.start.row+1;o
    "),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("
    "),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<0)return;u=this.$getTop(t.start.row+1,r),e.push("
    ")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push("
    ")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push("
    ")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push("
    ")}}).call(s.prototype),t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$characterSize={width:0,height:0},this.checkForSizeChanges(),this.$pollSizeChanges()};(function(){r.implement(this,u),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$characterSize.height||0},this.getCharacterWidth=function(){return this.$characterSize.width||0},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){var e=this;this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=o.isIE||o.isOldGecko?function(){var e=1e3;if(!this.$measureNode){var t=this.$measureNode=i.createElement("div"),n=t.style;n.width=n.height="auto",n.left=n.top=-e*40+"px",n.visibility="hidden",n.position="fixed",n.overflow="visible",n.whiteSpace="nowrap",t.innerHTML=s.stringRepeat("Xy",e);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(t);else{var r=this.element.parentNode;while(!i.hasCssClass(r,"ace_editor"))r=r.parentNode;r.appendChild(t)}}if(!this.element.offsetWidth)return null;var n=this.$measureNode.style,o=i.computedStyle(this.element);for(var u in this.$fontStyles)n[u]=o[u];var a={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(e*2)};return a.width==0||a.height==0?null:a}:function(){if(!this.$measureNode){var e=this.$measureNode=i.createElement("div"),t=e.style;t.width=t.height="auto",t.left=t.top="-100px",t.visibility="hidden",t.position="fixed",t.overflow="visible",t.whiteSpace="nowrap",e.innerHTML=s.stringRepeat("X",100);var n=this.element.parentNode;while(n&&!i.hasCssClass(n,"ace_editor"))n=n.parentNode;if(!n)return this.$measureNode=null;n.appendChild(e)}var r=this.$measureNode.getBoundingClientRect(),o={height:r.height,width:r.width/100};return o.width==0||o.height==0?null:o},this.setSession=function(e){this.session=e,this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n"+this.TAB_CHAR+s.stringRepeat(" ",n-1)+""):t.push(s.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide";if(this.showInvisibles){r+=" ace_invisible";var i=s.stringRepeat(this.SPACE_CHAR,this.tabSize),o=this.TAB_CHAR+s.stringRepeat(" ",this.tabSize-1)}else var i=s.stringRepeat(" ",this.tabSize),o=i;this.$tabStrings[" "]=""+i+"",this.$tabStrings[" "]=""+o+""}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),s=Math.min(n,e.lastRow),o=this.element.childNodes,u=0;for(var a=e.firstRow;al&&(a=f.end.row+1,f=this.session.getNextFoldLine(a,f),l=f?f.start.row:Infinity);if(a>s)break;var c=o[u++];if(c){var h=[];this.$renderLine(h,a,!this.$useLineGroups(),a==l?f:!1),c.style.height=e.lineHeight*this.session.getRowLength(a)+"px",i.setInnerHtml(c,h.join(""))}a++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRowt.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else{var l=a.childNodes;while(l.length)r.appendChild(l[0])}s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,s=n,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>r)break;this.$useLineGroups()&&t.push("
    "),this.$renderLine(t,s,!1,s==u?o:!1),this.$useLineGroups()&&t.push("
    "),s++}this.element=i.setInnerHtml(this.element,t.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?""+s.stringRepeat(i.SPACE_CHAR,e.length)+"":s.stringRepeat(" ",e.length);if(e=="&")return"&";if(e=="<")return"<";if(e==" "){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e==" "){var f=i.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,""+l+""}return r?""+i.SPACE_CHAR+"":(t+=1,""+e+"")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]==" "?(e.push(s.stringRepeat(this.$tabStrings[" "],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,s=0,o=n[0],u=0;for(var a=0;a=o)u=this.$renderToken(e,u,f,l.substring(0,o-i)),l=l.substring(o-i),i=o,r||e.push("
    ","
    "),s++,u=0,o=n[s]||Number.MAX_VALUE;l.length!=0&&(i+=l.length,u=this.$renderToken(e,u,f,l))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),n||e.push("
    ")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors")};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,e?r.addCssClass(this.element,"ace_smooth-blinking"):r.removeCssClass(this.element,"ace_smooth-blinking"),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking");for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity="";if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity=0}.bind(this),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity="";t()}.bind(this),this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;ne.height+e.offset||s.top<-e.offset)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px"}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(u.prototype);var a=function(e,t){u.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};r.inherits(a,u),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(a.prototype);var f=function(e,t){u.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(f,u),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey)?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount==0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._emit("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._emit("removeRange",{ranges:e}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=this.session,i=this.selection,o=i.rangeList,u,a=i._eventRegistry;i._eventRegistry={};var f=new s(r);this.inVirtualSelectionMode=!0;for(var l=o.ranges.length;l--;){if(n)while(l>0&&o.ranges[l].start.row==o.ranges[l-1].end.row)l--;f.fromOrientedRange(o.ranges[l]),this.selection=r.selection=f;var c=e.exec(this,t||{});!u==undefined&&(u=c),f.toOrientedRange(o.ranges[l])}f.detach(),this.selection=r.selection=i,this.inVirtualSelectionMode=!1,i._eventRegistry=a,i.mergeOverlappingRanges();var h=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),h&&h.from==h.to&&this.renderer.animateScrolling(h.from),u},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;rn.length||t.length<2||!t[1])return this.commands.exec("insertstring",this,e);for(var r=n.length;r--;){var i=n[r];i.isEmpty()||this.session.remove(i),this.session.insert(i.start,t[r])}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle,this.$search.set(t);var r=this.$search.findAll(this.session);if(!r.length)return 0;this.$blockScrolling+=1;var i=this.multiSelect;n||i.toSingleRange(r[0]);for(var s=r.length;s--;)i.addRange(r[s],!0);return this.$blockScrolling-=1,r.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t){var n=this.session,r=n.multiSelect,i=r.toOrientedRange();i.isEmpty()&&(i=n.getWordRange(i.start.row,i.start.column),i.cursor=e==-1?i.start:i.end,this.multiSelect.addRange(i));var s=n.getTextRange(i),o=h(n,s,e);o&&(o.cursor=e==-1?o.start:o.end,this.$blockScrolling+=1,this.session.unfold(o),this.multiSelect.addRange(o),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(i.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges;if(!n.length){var r=this.selection.getRange(),s=r.start.row,o=r.end.row,u=s==o;if(u){var f=this.session.getLength(),l;do l=this.session.getLine(o);while(/[=:]/.test(l)&&++o0);s<0&&(s=0),o>=f&&(o=f-1)}var c=this.session.doc.removeLines(s,o);c=this.$reAlignText(c,u),this.session.doc.insert({row:s,column:0},c.join("\n")+"\n"),u||(r.start.column=0,r.end.column=c[c.length-1].length),this.selection.setRange(r)}else{var h=-1,p=n.filter(function(e){if(e.cursor.row==h)return!0;h=e.cursor.row});t.$onRemoveRange(p);var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),st[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t.multiSelect||(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.removeEventListener("addRange",this.$onAddRange),n.multiSelect.removeEventListener("removeRange",this.$onRemoveRange),n.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect),n.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)),t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0}})}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event"],function(e,t,n){function i(e,t){return e.row==t.row&&e.column==t.column}function s(e){var t=e.domEvent,n=t.altKey,s=t.shiftKey,o=e.getAccelKey(),u=e.getButton();if(e.editor.inMultiSelectMode&&u==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!o&&!n){u==0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}var a=e.editor,f=a.selection,l=a.inMultiSelectMode,c=e.getDocumentPosition(),h=f.getCursor(),p=e.inSelection()||f.isEmpty()&&i(c,h),d=e.x,v=e.y,m=function(e){d=e.clientX,v=e.clientY},g=function(){var e=a.renderer.pixelToScreenCoordinates(d,v),t=y.screenToDocumentPosition(e.row,e.column);if(i(w,e)&&i(t,f.selectionLead))return;w=e,a.selection.moveCursorToPosition(t),a.selection.clearSelection(),a.renderer.scrollCursorIntoView(),a.removeSelectionMarkers(x),x=f.rectangularRangeBlock(w,b),x.forEach(a.addSelectionMarker,a),a.updateSelectionMarkers()},y=a.session,b=a.renderer.pixelToScreenCoordinates(d,v),w=b;if(o&&!s&&!n&&u==0){if(!l&&p)return;if(!l){var E=f.toOrientedRange();a.addSelectionMarker(E)}var S=f.rangeList.rangeAtPoint(c);a.$blockScrolling++,a.once("mouseup",function(){var e=f.toOrientedRange();S&&e.isEmpty()&&i(S.cursor,e.cursor)?f.substractPoint(e.cursor):(E&&(a.removeSelectionMarker(E),f.addRange(E)),f.addRange(e)),a.$blockScrolling--})}else if(n&&u==0){e.stop(),l&&!o?f.toSingleRange():!l&&o&&f.addRange();var x=[];s?(b=y.documentToScreenPosition(f.lead),g()):(f.moveCursorToPosition(c),f.clearSelection());var T=function(e){clearInterval(C),a.removeSelectionMarkers(x);for(var t=0;t20&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(o.prototype);var u=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,o=Object.create(i),u=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){u.messageBuffer.push(e),r&&setTimeout(a)};var a=function(){var e=u.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&o._emit(e.event,e.data)};o.postMessage=function(e){u.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},s.loadModule(["worker",t],function(e){r=new e[n](o);while(u.messageBuffer.length)a()})};u.prototype=o.prototype,t.UIWorkerClient=u,t.WorkerClient=o}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session,i=this.$pos;this.pos=t.createAnchor(i.row,i.column),this.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new r(t.value.row,t.value.column,t.value.row,t.value.column+e.length),e.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1),n.on("change",function(i){e.removeMarker(n.markerId),n.markerId=e.addMarker(new r(i.value.row,i.value.column,i.value.row,i.value.column+t.length),t.othersClass,null,!1)})})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&n.start.column<=this.pos.column+this.length+1){var s=n.start.column-this.pos.column;this.length+=i;if(!this.session.$fromUndo){if(t.action==="insertText")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var e=0;ef){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length-1?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("ace/line_widgets").LineWidgets,i=e("ace/lib/dom"),s=e("ace/range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.lineWidgets&&n.lineWidgets[o];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];c.pos&&c.column==null&&(s.column=c.pos.sc),s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveCursorToPosition(s),e.selection.clearSelection();var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div")},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
    ");var m={handleKeyboard:function(e,t,n){if(t===0&&n==="esc")return h.destroy(),!0}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e)},i.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.detach=this.detach.bind(this),this.session.on("change",this.updateOnChange)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&(e+=t.rowCount)}),e},this.attach=function(e){e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,this.editor.on("changeSession",this.detach),e.widgetManager=this,e.setOption("enableLineWidgets",!0),e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)},this.detach=function(e){if(e&&e.session==this.session)return;var t=this.editor;if(!t)return;t.off("changeSession",this.detach),this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.data,r=n.range,i=r.start.row,s=r.end.row-i;if(s!==0)if(n.action=="removeText"||n.action=="removeLines"){var o=t.splice(i+1,s);o.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var u=new Array(s);u.unshift(i,0),t.splice.apply(t,u),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){e&&(t=!1,e.row=n)}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength())),this.session.lineWidgets[e.row]=e;var t=this.editor.renderer;return e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight||(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),e},this.removeLineWidget=function(e){e._inDocument=!1,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}this.session.lineWidgets&&(this.session.lineWidgets[e.row]=undefined),this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}); - (function() { - ace.require(["ace/ace"], function(a) { - a && a.config.init(); - if (!window.ace) - window.ace = {}; - for (var key in a) if (a.hasOwnProperty(key)) - ace[key] = a[key]; - }); - })(); \ No newline at end of file diff --git a/option-tree/assets/js/vendor/ace/mode-css.js b/option-tree/assets/js/vendor/ace/mode-css.js deleted file mode 100644 index 1ebc660..0000000 --- a/option-tree/assets/js/vendor/ace/mode-css.js +++ /dev/null @@ -1 +0,0 @@ -ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./css_highlight_rules").CssHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../worker/worker_client").WorkerClient,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=o,this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("csslint",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow",l=t.supportConstantFonts="arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"@.*?{",push:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{token:"comment",regex:"\\/\\*",push:"comment"},{token:"paren.lparen",regex:"\\{",push:"ruleset"},{token:"string",regex:"\\}",next:"pop"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],comment:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}],ruleset:[{token:"paren.rparen",regex:"\\}",next:"pop"},{token:"comment",regex:"\\/\\*",push:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{token:["support.function","string","support.function"],regex:"(url\\()(.*)(\\))"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l==="}"){var d=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!d)return null;var v=this.$getIndent(r.getLine(d.row))}else{if(!p)return;var v=this.$getIndent(u)}var g=v+r.getTabString();return{text:"\n"+g+"\n"+v+p,selection:[1,g.length,1,g.length]}}m.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n),s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++tf)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)}}.call(o.prototype)}) \ No newline at end of file diff --git a/option-tree/assets/js/vendor/ace/theme-chrome.js b/option-tree/assets/js/vendor/ace/theme-chrome.js deleted file mode 100644 index 0c51609..0000000 --- a/option-tree/assets/js/vendor/ace/theme-chrome.js +++ /dev/null @@ -1 +0,0 @@ -ace.define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-chrome",t.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}) \ No newline at end of file diff --git a/option-tree/assets/js/vendor/ace/worker-css.js b/option-tree/assets/js/vendor/ace/worker-css.js deleted file mode 100644 index 32036ed..0000000 --- a/option-tree/assets/js/vendor/ace/worker-css.js +++ /dev/null @@ -1 +0,0 @@ -"no use strict";(function(e){if(typeof e.window!="undefined"&&e.document)return;e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console,e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){console.error("Worker "+i.stack)},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){n||(n=t,t=null);if(!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;var i=n.split("/");if(!e.require.tlns)return console.log("unable to load "+n);i[0]=e.require.tlns[i[0]]||i[0];var s=i.join("/")+".js";return e.require.id=n,importScripts(s),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id),n.length||(n=["require","exports","module"]);if(t.indexOf("text!")===0)return;var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.initBaseUrls=function(e){require.tlns=e},e.initSender=function(){var t=e.require("ace/lib/event_emitter").EventEmitter,n=e.require("ace/lib/oop"),r=function(){};return function(){n.implement(this,t),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(r.prototype),new r},e.main=null,e.sender=null,e.onmessage=function(e){var t=e.data;if(t.command){if(!main[t.command])throw new Error("Unknown command:"+t.command);main[t.command].apply(main,t.args)}else if(t.init){initBaseUrls(t.tlns),require("ace/lib/es5-shim"),sender=initSender();var n=require(t.module)[t.classname];main=new n(sender)}else t.event&&sender&&sender._emit(t.event,t.data)}})(this),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function i(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function s(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function o(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function u(e){var t,n,r;if(o(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(o(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(o(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if(typeof t!="function")throw new TypeError("Function.prototype.bind called on incompatible "+t);var n=c.call(arguments,1),i=function(){if(this instanceof i){var r=t.apply(this,n.concat(c.call(arguments)));return Object(r)===r?r:this}return t.apply(e,n.concat(c.call(arguments)))};return t.prototype&&(r.prototype=t.prototype,i.prototype=new r,r.prototype=null),i});var a=Function.prototype.call,f=Array.prototype,l=Object.prototype,c=f.slice,h=a.bind(l.toString),p=a.bind(l.hasOwnProperty),d,v,m,g,y;if(y=p(l,"__defineGetter__"))d=a.bind(l.__defineGetter__),v=a.bind(l.__defineSetter__),m=a.bind(l.__lookupGetter__),g=a.bind(l.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+tu)for(h=f;h--;)this[a+h]=this[u+h];if(s&&e===l)this.length=l,this.push.apply(this,i);else{this.length=l+s;for(h=0;h>>0;if(h(e)!="[object Function]")throw new TypeError;while(++i>>0,i=Array(r),s=arguments[1];if(h(e)!="[object Function]")throw new TypeError(e+" is not a function");for(var o=0;o>>0,i=[],s,o=arguments[1];if(h(e)!="[object Function]")throw new TypeError(e+" is not a function");for(var u=0;u>>0,i=arguments[1];if(h(e)!="[object Function]")throw new TypeError(e+" is not a function");for(var s=0;s>>0,i=arguments[1];if(h(e)!="[object Function]")throw new TypeError(e+" is not a function");for(var s=0;s>>0;if(h(e)!="[object Function]")throw new TypeError(e+" is not a function");if(!r&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var i=0,s;if(arguments.length>=2)s=arguments[1];else do{if(i in n){s=n[i++];break}if(++i>=r)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;i>>0;if(h(e)!="[object Function]")throw new TypeError(e+" is not a function");if(!r&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var i,s=r-1;if(arguments.length>=2)i=arguments[1];else do{if(s in n){i=n[s--];break}if(--s<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do s in this&&(i=e.call(void 0,i,n[s],s,t));while(s--);return i});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(e){var t=E&&h(this)=="[object String]"?this.split(""):F(this),n=t.length>>>0;if(!n)return-1;var r=0;arguments.length>1&&(r=s(arguments[1])),r=r>=0?r:Math.max(0,n+r);for(;r>>0;if(!n)return-1;var r=n-1;arguments.length>1&&(r=Math.min(r,s(arguments[1]))),r=r>=0?r:n-Math.abs(r);for(;r>=0;r--)if(r in t&&e===t[r])return r;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:l)});if(!Object.getOwnPropertyDescriptor){var S="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError(S+e);if(!p(e,t))return;var n,r,i;n={enumerable:!0,configurable:!0};if(y){var s=e.__proto__;e.__proto__=l;var r=m(e,t),i=g(e,t);e.__proto__=s;if(r||i)return r&&(n.get=r),i&&(n.set=i),n}return n.value=e[t],n}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)});if(!Object.create){var x;Object.prototype.__proto__===null?x=function(){return{__proto__:null}}:x=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var n;if(e===null)n=x();else{if(typeof e!="object")throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var r=function(){};r.prototype=e,n=new r,n.__proto__=e}return t!==void 0&&Object.defineProperties(n,t),n}}if(Object.defineProperty){var T=i({}),N=typeof document=="undefined"||i(document.createElement("div"));if(!T||!N)var C=Object.defineProperty}if(!Object.defineProperty||C){var k="Property description must be an object: ",L="Object.defineProperty called on non-object: ",A="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(e,t,n){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError(L+e);if(typeof n!="object"&&typeof n!="function"||n===null)throw new TypeError(k+n);if(C)try{return C.call(Object,e,t,n)}catch(r){}if(p(n,"value"))if(y&&(m(e,t)||g(e,t))){var i=e.__proto__;e.__proto__=l,delete e[t],e[t]=n.value,e.__proto__=i}else e[t]=n.value;else{if(!y)throw new TypeError(A);p(n,"get")&&d(e,t,n.get),p(n,"set")&&v(e,t,n.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var n in t)p(t,n)&&Object.defineProperty(e,n,t[n]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(O){Object.freeze=function(e){return function(t){return typeof t=="function"?t:e(t)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;var t="";while(p(e,t))t+="?";e[t]=!0;var n=p(e,t);return delete e[t],n});if(!Object.keys){var M=!0,_=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],D=_.length;for(var P in{toString:null})M=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)p(e,t)&&I.push(t);if(M)for(var n=0,r=D;n0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):e.row<0&&(e.row=0),e},this.insert=function(e,t){if(!t||t.length===0)return e;e=this.$clipPosition(e),this.getLength()<=1&&this.$detectNewLine(t);var n=this.$split(t),r=n.splice(0,1)[0],i=n.length==0?null:n.splice(n.length-1,1)[0];return e=this.insertInLine(e,r),i!==null&&(e=this.insertNewLine(e),e=this._insertLines(e.row,n),e=this.insertInLine(e,i||"")),e},this.insertLines=function(e,t){return e>=this.getLength()?this.insert({row:e,column:0},"\n"+t.join("\n")):this._insertLines(Math.max(e,0),t)},this._insertLines=function(e,t){if(t.length==0)return{row:e,column:0};if(t.length>65535){var n=this._insertLines(e,t.slice(65535));t=t.slice(0,65535)}var r=[e,0];r.push.apply(r,t),this.$lines.splice.apply(this.$lines,r);var i=new s(e,0,e+t.length,0),o={action:"insertLines",range:i,lines:t};return this._emit("change",{data:o}),n||i.end},this.insertNewLine=function(e){e=this.$clipPosition(e);var t=this.$lines[e.row]||"";this.$lines[e.row]=t.substring(0,e.column),this.$lines.splice(e.row+1,0,t.substring(e.column,t.length));var n={row:e.row+1,column:0},r={action:"insertText",range:s.fromPoints(e,n),text:this.getNewLineCharacter()};return this._emit("change",{data:r}),n},this.insertInLine=function(e,t){if(t.length==0)return e;var n=this.$lines[e.row]||"";this.$lines[e.row]=n.substring(0,e.column)+t+n.substring(e.column);var r={row:e.row,column:e.column+t.length},i={action:"insertText",range:s.fromPoints(e,r),text:t};return this._emit("change",{data:i}),r},this.remove=function(e){!e instanceof s&&(e=s.fromPoints(e.start,e.end)),e.start=this.$clipPosition(e.start),e.end=this.$clipPosition(e.end);if(e.isEmpty())return e.start;var t=e.start.row,n=e.end.row;if(e.isMultiLine()){var r=e.start.column==0?t:t+1,i=n-1;e.end.column>0&&this.removeInLine(n,0,e.end.column),i>=r&&this._removeLines(r,i),r!=t&&(this.removeInLine(t,e.start.column,this.getLine(t).length),this.removeNewLine(e.start.row))}else this.removeInLine(t,e.start.column,e.end.column);return e.start},this.removeInLine=function(e,t,n){if(t==n)return;var r=new s(e,t,e,n),i=this.getLine(e),o=i.substring(t,n),u=i.substring(0,t)+i.substring(n,i.length);this.$lines.splice(e,1,u);var a={action:"removeText",range:r,text:o};return this._emit("change",{data:a}),r.start},this.removeLines=function(e,t){return e<0||t>=this.getLength()?this.remove(new s(e,0,t+1,0)):this._removeLines(e,t)},this._removeLines=function(e,t){var n=new s(e,0,t+1,0),r=this.$lines.splice(e,t-e+1),i={action:"removeLines",range:n,nl:this.getNewLineCharacter(),lines:r};return this._emit("change",{data:i}),r},this.removeNewLine=function(e){var t=this.getLine(e),n=this.getLine(e+1),r=new s(e,t.length,e+1,0),i=t+n;this.$lines.splice(e,2,i);var o={action:"removeText",range:r,text:this.getNewLineCharacter()};this._emit("change",{data:o})},this.replace=function(e,t){!e instanceof s&&(e=s.fromPoints(e.start,e.end));if(t.length==0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);if(t)var n=this.insert(e.start,t);else n=e.start;return n},this.applyDeltas=function(e){for(var t=0;t=0;t--){var n=e[t],r=s.fromPoints(n.range.start,n.range.end);n.action=="insertLines"?this._removeLines(r.start.row,r.end.row-1):n.action=="insertText"?this.remove(r):n.action=="removeLines"?this._insertLines(r.start.row,n.lines):n.action=="removeText"&&this.insert(r.start,n.text)}},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowthis.row)return;if(n.start.row==this.row&&n.start.column>this.column)return;var r=this.row,i=this.column,s=n.start,o=n.end;if(t.action==="insertText")if(s.row===r&&s.column<=i){if(s.column!==i||!this.$insertRight)s.row===o.row?i+=o.column-s.column:(i-=s.column,r+=o.row-s.row)}else s.row!==o.row&&s.row=i?i=s.column:i=Math.max(0,i-(o.column-s.column)):s.row!==o.row&&s.row=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/mode/css/csslint",["require","exports","module"],function(require,exports,module){function Reporter(e,t){this.messages=[],this.stats=[],this.lines=e,this.ruleset=t}var parserlib={};(function(){function e(){this._listeners={}}function t(e){this._input=e.replace(/\n\r?/g,"\n"),this._line=1,this._col=1,this._cursor=0}function n(e,t,n){this.col=n,this.line=t,this.message=e}function r(e,t,n,r){this.col=n,this.line=t,this.text=e,this.type=r}function i(e,n){this._reader=e?new t(e.toString()):null,this._token=null,this._tokenData=n,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}e.prototype={constructor:e,addListener:function(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)},fire:function(e){typeof e=="string"&&(e={type:e}),typeof e.target!="undefined"&&(e.target=this);if(typeof e.type=="undefined")throw new Error("Event object missing 'type' property.");if(this._listeners[e.type]){var t=this._listeners[e.type].concat();for(var n=0,r=t.length;n=0&&this._ltIndex-1&&!t[u.type].hide&&(u.channel=t[u.type].channel,this._token=u,this._lt.push(u),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),a=t[u.type],a&&(a.hide||a.channel!==undefined&&e!==a.channel)?this.get(e):u.type},LA:function(e){var t=e,n;if(e>0){if(e>5)throw new Error("Too much lookahead.");while(t)n=this.get(),t--;while(tthis._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[e].name},tokenType:function(e){return this._tokenData[e]||-1},unget:function(){if(!this._ltIndexCache.length)throw new Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:t,SyntaxError:n,SyntaxUnit:r,EventTarget:e,TokenStreamBase:i}})(),function(){function Combinator(e,t,n){SyntaxUnit.call(this,e,t,n,Parser.COMBINATOR_TYPE),this.type="unknown",/^\s+$/.test(e)?this.type="descendant":e==">"?this.type="child":e=="+"?this.type="adjacent-sibling":e=="~"&&(this.type="sibling")}function MediaFeature(e,t){SyntaxUnit.call(this,"("+e+(t!==null?":"+t:"")+")",e.startLine,e.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=e,this.value=t}function MediaQuery(e,t,n,r,i){SyntaxUnit.call(this,(e?e+" ":"")+(t?t:"")+(t&&n.length>0?" and ":"")+n.join(" and "),r,i,Parser.MEDIA_QUERY_TYPE),this.modifier=e,this.mediaType=t,this.features=n}function Parser(e){EventTarget.call(this),this.options=e||{},this._tokenStream=null}function PropertyName(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.PROPERTY_NAME_TYPE),this.hack=t}function PropertyValue(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.PROPERTY_VALUE_TYPE),this.parts=e}function PropertyValueIterator(e){this._i=0,this._parts=e.parts,this._marks=[],this.value=e}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":case"ch":case"vh":case"vw":case"vm":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100,this.alpha=+RegExp.$4):/^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^([^\(]+)\(/i.test(text)?(this.type="function",this.name=RegExp.$1,this.value=text):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function Selector(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.SELECTOR_TYPE),this.parts=e,this.specificity=Specificity.calculate(this)}function SelectorPart(e,t,n,r,i){SyntaxUnit.call(this,n,r,i,Parser.SELECTOR_PART_TYPE),this.elementName=e,this.modifiers=t}function SelectorSubPart(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.SELECTOR_SUB_PART_TYPE),this.type=t,this.args=[]}function Specificity(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function isHexDigit(e){return e!==null&&h.test(e)}function isDigit(e){return e!==null&&/\d/.test(e)}function isWhitespace(e){return e!==null&&/\s/.test(e)}function isNewLine(e){return e!==null&&nl.test(e)}function isNameStart(e){return e!==null&&/[a-z_\u0080-\uFFFF\\]/i.test(e)}function isNameChar(e){return e!==null&&(isNameStart(e)||/[0-9\-\\]/.test(e))}function isIdentStart(e){return e!==null&&(isNameStart(e)||/\-\\/.test(e))}function mix(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function TokenStream(e){TokenStreamBase.call(this,e,Tokens)}function ValidationError(e,t,n){this.col=n,this.line=t,this.message=e}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",activeBorder:"Active window border.",activecaption:"Active window caption.",appworkspace:"Background color of multiple document interface.",background:"Desktop background.",buttonface:"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonhighlight:"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonshadow:"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttontext:"Text on push buttons.",captiontext:"Text in caption, size box, and scrollbar arrow box.",graytext:"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",highlight:"Item(s) selected in a control.",highlighttext:"Text of item(s) selected in a control.",inactiveborder:"Inactive window border.",inactivecaption:"Inactive window caption.",inactivecaptiontext:"Color of text in an inactive caption.",infobackground:"Background color for tooltip controls.",infotext:"Text color for tooltip controls.",menu:"Menu background.",menutext:"Text in menus.",scrollbar:"Scroll bar gray area.",threeddarkshadow:"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedface:"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedhighlight:"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedlightshadow:"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedshadow:"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",window:"Window background.",windowframe:"Window frame.",windowtext:"Text in windows."};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var e=new EventTarget,t,n={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var e=this._tokenStream,t=null,n,r,i;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(e.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(e.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();i=e.peek();while(i>Tokens.EOF){try{switch(i){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:e.get();if(!!this.options.strict)throw new SyntaxError("Unknown @ rule.",e.LT(0).startLine,e.LT(0).startCol);this.fire({type:"error",error:null,message:"Unknown @ rule: "+e.LT(0).value+".",line:e.LT(0).startLine,col:e.LT(0).startCol}),n=0;while(e.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE)n++;while(n)e.advance([Tokens.RBRACE]),n--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(i){case Tokens.CHARSET_SYM:throw r=e.LT(1),this._charset(!1),new SyntaxError("@charset not allowed here.",r.startLine,r.startCol);case Tokens.IMPORT_SYM:throw r=e.LT(1),this._import(!1),new SyntaxError("@import not allowed here.",r.startLine,r.startCol);case Tokens.NAMESPACE_SYM:throw r=e.LT(1),this._namespace(!1),new SyntaxError("@namespace not allowed here.",r.startLine,r.startCol);default:e.get(),this._unexpectedToken(e.token())}}}catch(s){if(!(s instanceof SyntaxError&&!this.options.strict))throw s;this.fire({type:"error",error:s,message:s.message,line:s.line,col:s.col})}i=e.peek()}i!=Tokens.EOF&&this._unexpectedToken(e.token()),this.fire("endstylesheet")},_charset:function(e){var t=this._tokenStream,n,r,i,s;t.match(Tokens.CHARSET_SYM)&&(i=t.token().startLine,s=t.token().startCol,this._readWhitespace(),t.mustMatch(Tokens.STRING),r=t.token(),n=r.value,this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),e!==!1&&this.fire({type:"charset",charset:n,line:i,col:s}))},_import:function(e){var t=this._tokenStream,n,r,i,s=[];t.mustMatch(Tokens.IMPORT_SYM),i=t.token(),this._readWhitespace(),t.mustMatch([Tokens.STRING,Tokens.URI]),r=t.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),s=this._media_query_list(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"import",uri:r,media:s,line:i.startLine,col:i.startCol})},_namespace:function(e){var t=this._tokenStream,n,r,i,s;t.mustMatch(Tokens.NAMESPACE_SYM),n=t.token().startLine,r=t.token().startCol,this._readWhitespace(),t.match(Tokens.IDENT)&&(i=t.token().value,this._readWhitespace()),t.mustMatch([Tokens.STRING,Tokens.URI]),s=t.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"namespace",prefix:i,uri:s,line:n,col:r})},_media:function(){var e=this._tokenStream,t,n,r;e.mustMatch(Tokens.MEDIA_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),r=this._media_query_list(),e.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:r,line:t,col:n});for(;;)if(e.peek()==Tokens.PAGE_SYM)this._page();else if(e.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(!this._ruleset())break;e.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:r,line:t,col:n})},_media_query_list:function(){var e=this._tokenStream,t=[];this._readWhitespace(),(e.peek()==Tokens.IDENT||e.peek()==Tokens.LPAREN)&&t.push(this._media_query());while(e.match(Tokens.COMMA))this._readWhitespace(),t.push(this._media_query());return t},_media_query:function(){var e=this._tokenStream,t=null,n=null,r=null,i=[];e.match(Tokens.IDENT)&&(n=e.token().value.toLowerCase(),n!="only"&&n!="not"?(e.unget(),n=null):r=e.token()),this._readWhitespace(),e.peek()==Tokens.IDENT?(t=this._media_type(),r===null&&(r=e.token())):e.peek()==Tokens.LPAREN&&(r===null&&(r=e.LT(1)),i.push(this._media_expression()));if(t===null&&i.length===0)return null;this._readWhitespace();while(e.match(Tokens.IDENT))e.token().value.toLowerCase()!="and"&&this._unexpectedToken(e.token()),this._readWhitespace(),i.push(this._media_expression());return new MediaQuery(n,t,i,r.startLine,r.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var e=this._tokenStream,t=null,n,r=null;return e.mustMatch(Tokens.LPAREN),t=this._media_feature(),this._readWhitespace(),e.match(Tokens.COLON)&&(this._readWhitespace(),n=e.LT(1),r=this._expression()),e.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(t,r?new SyntaxUnit(r,n.startLine,n.startCol):null)},_media_feature:function(){var e=this._tokenStream;return e.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(e.token())},_page:function(){var e=this._tokenStream,t,n,r=null,i=null;e.mustMatch(Tokens.PAGE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),e.match(Tokens.IDENT)&&(r=e.token().value,r.toLowerCase()==="auto"&&this._unexpectedToken(e.token())),e.peek()==Tokens.COLON&&(i=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:r,pseudo:i,line:t,col:n}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:r,pseudo:i,line:t,col:n})},_margin:function(){var e=this._tokenStream,t,n,r=this._margin_sym();return r?(t=e.token().startLine,n=e.token().startCol,this.fire({type:"startpagemargin",margin:r,line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:r,line:t,col:n}),!0):!1},_margin_sym:function(){var e=this._tokenStream;return e.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(e.token()):null},_pseudo_page:function(){var e=this._tokenStream;return e.mustMatch(Tokens.COLON),e.mustMatch(Tokens.IDENT),e.token().value},_font_face:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.FONT_FACE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endfontface",line:t,col:n})},_viewport:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.VIEWPORT_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:"startviewport",line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endviewport",line:t,col:n})},_operator:function(e){var t=this._tokenStream,n=null;if(t.match([Tokens.SLASH,Tokens.COMMA])||e&&t.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))n=t.token(),this._readWhitespace();return n?PropertyValuePart.fromToken(n):null},_combinator:function(){var e=this._tokenStream,t=null,n;return e.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(n=e.token(),t=new Combinator(n.value,n.startLine,n.startCol),this._readWhitespace()),t},_unary_operator:function(){var e=this._tokenStream;return e.match([Tokens.MINUS,Tokens.PLUS])?e.token().value:null},_property:function(){var e=this._tokenStream,t=null,n=null,r,i,s,o;return e.peek()==Tokens.STAR&&this.options.starHack&&(e.get(),i=e.token(),n=i.value,s=i.startLine,o=i.startCol),e.match(Tokens.IDENT)&&(i=e.token(),r=i.value,r.charAt(0)=="_"&&this.options.underscoreHack&&(n="_",r=r.substring(1)),t=new PropertyName(r,n,s||i.startLine,o||i.startCol),this._readWhitespace()),t},_ruleset:function(){var e=this._tokenStream,t,n;try{n=this._selectors_group()}catch(r){if(r instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:r,message:r.message,line:r.line,col:r.col}),t=e.advance([Tokens.RBRACE]);if(t!=Tokens.RBRACE)throw r;return!0}throw r}return n&&(this.fire({type:"startrule",selectors:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:n,line:n[0].line,col:n[0].col})),n},_selectors_group:function(){var e=this._tokenStream,t=[],n;n=this._selector();if(n!==null){t.push(n);while(e.match(Tokens.COMMA))this._readWhitespace(),n=this._selector(),n!==null?t.push(n):this._unexpectedToken(e.LT(1))}return t.length?t:null},_selector:function(){var e=this._tokenStream,t=[],n=null,r=null,i=null;n=this._simple_selector_sequence();if(n===null)return null;t.push(n);do{r=this._combinator();if(r!==null)t.push(r),n=this._simple_selector_sequence(),n===null?this._unexpectedToken(e.LT(1)):t.push(n);else{if(!this._readWhitespace())break;i=new Combinator(e.token().value,e.token().startLine,e.token().startCol),r=this._combinator(),n=this._simple_selector_sequence(),n===null?r!==null&&this._unexpectedToken(e.LT(1)):(r!==null?t.push(r):t.push(i),t.push(n))}}while(!0);return new Selector(t,t[0].line,t[0].col)},_simple_selector_sequence:function(){var e=this._tokenStream,t=null,n=[],r="",i=[function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],s=0,o=i.length,u=null,a=!1,f,l;f=e.LT(1).startLine,l=e.LT(1).startCol,t=this._type_selector(),t||(t=this._universal()),t!==null&&(r+=t);for(;;){if(e.peek()===Tokens.S)break;while(s1&&e.unget()),null)},_class:function(){var e=this._tokenStream,t;return e.match(Tokens.DOT)?(e.mustMatch(Tokens.IDENT),t=e.token(),new SelectorSubPart("."+t.value,"class",t.startLine,t.startCol-1)):null},_element_name:function(){var e=this._tokenStream,t;return e.match(Tokens.IDENT)?(t=e.token(),new SelectorSubPart(t.value,"elementName",t.startLine,t.startCol)):null},_namespace_prefix:function(){var e=this._tokenStream,t="";if(e.LA(1)===Tokens.PIPE||e.LA(2)===Tokens.PIPE)e.match([Tokens.IDENT,Tokens.STAR])&&(t+=e.token().value),e.mustMatch(Tokens.PIPE),t+="|";return t.length?t:null},_universal:function(){var e=this._tokenStream,t="",n;return n=this._namespace_prefix(),n&&(t+=n),e.match(Tokens.STAR)&&(t+="*"),t.length?t:null},_attrib:function(){var e=this._tokenStream,t=null,n,r;return e.match(Tokens.LBRACKET)?(r=e.token(),t=r.value,t+=this._readWhitespace(),n=this._namespace_prefix(),n&&(t+=n),e.mustMatch(Tokens.IDENT),t+=e.token().value,t+=this._readWhitespace(),e.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(t+=e.token().value,t+=this._readWhitespace(),e.mustMatch([Tokens.IDENT,Tokens.STRING]),t+=e.token().value,t+=this._readWhitespace()),e.mustMatch(Tokens.RBRACKET),new SelectorSubPart(t+"]","attribute",r.startLine,r.startCol)):null},_pseudo:function(){var e=this._tokenStream,t=null,n=":",r,i;return e.match(Tokens.COLON)&&(e.match(Tokens.COLON)&&(n+=":"),e.match(Tokens.IDENT)?(t=e.token().value,r=e.token().startLine,i=e.token().startCol-n.length):e.peek()==Tokens.FUNCTION&&(r=e.LT(1).startLine,i=e.LT(1).startCol-n.length,t=this._functional_pseudo()),t&&(t=new SelectorSubPart(n+t,"pseudo",r,i))),t},_functional_pseudo:function(){var e=this._tokenStream,t=null;return e.match(Tokens.FUNCTION)&&(t=e.token().value,t+=this._readWhitespace(),t+=this._expression(),e.mustMatch(Tokens.RPAREN),t+=")"),t},_expression:function(){var e=this._tokenStream,t="";while(e.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]))t+=e.token().value,t+=this._readWhitespace();return t.length?t:null},_negation:function(){var e=this._tokenStream,t,n,r="",i,s=null;return e.match(Tokens.NOT)&&(r=e.token().value,t=e.token().startLine,n=e.token().startCol,r+=this._readWhitespace(),i=this._negation_arg(),r+=i,r+=this._readWhitespace(),e.match(Tokens.RPAREN),r+=e.token().value,s=new SelectorSubPart(r,"not",t,n),s.args.push(i)),s},_negation_arg:function(){var e=this._tokenStream,t=[this._type_selector,this._universal,function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo],n=null,r=0,i=t.length,s,o,u,a;o=e.LT(1).startLine,u=e.LT(1).startCol;while(r0?new PropertyValue(n,n[0].line,n[0].col):null},_term:function(){var e=this._tokenStream,t=null,n=null,r,i,s;return t=this._unary_operator(),t!==null&&(i=e.token().startLine,s=e.token().startCol),e.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(n=this._ie_function(),t===null&&(i=e.token().startLine,s=e.token().startCol)):e.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(n=e.token().value,t===null&&(i=e.token().startLine,s=e.token().startCol),this._readWhitespace()):(r=this._hexcolor(),r===null?(t===null&&(i=e.LT(1).startLine,s=e.LT(1).startCol),n===null&&(e.LA(3)==Tokens.EQUALS&&this.options.ieFilters?n=this._ie_function():n=this._function())):(n=r.value,t===null&&(i=r.startLine,s=r.startCol))),n!==null?new PropertyValuePart(t!==null?t+n:n,i,s):null},_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match(Tokens.FUNCTION)){t=e.token().value,this._readWhitespace(),n=this._expr(!0),t+=n;if(this.options.ieFilters&&e.peek()==Tokens.EQUALS)do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_ie_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){t=e.token().value;do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_hexcolor:function(){var e=this._tokenStream,t=null,n;if(e.match(Tokens.HASH)){t=e.token(),n=t.value;if(!/#[a-f0-9]{3,6}/i.test(n))throw new SyntaxError("Expected a hex color but found '"+n+"' at line "+t.startLine+", col "+t.startCol+".",t.startLine,t.startCol);this._readWhitespace()}return t},_keyframes:function(){var e=this._tokenStream,t,n,r,i="";e.mustMatch(Tokens.KEYFRAMES_SYM),t=e.token(),/^@\-([^\-]+)\-/.test(t.value)&&(i=RegExp.$1),this._readWhitespace(),r=this._keyframe_name(),this._readWhitespace(),e.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),n=e.peek();while(n==Tokens.IDENT||n==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),n=e.peek();this.fire({type:"endkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),e.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var e=this._tokenStream,t;return e.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(e.token())},_keyframe_rule:function(){var e=this._tokenStream,t,n=this._key_list();this.fire({type:"startkeyframerule",keys:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:n,line:n[0].line,col:n[0].col})},_key_list:function(){var e=this._tokenStream,t,n,r=[];r.push(this._key()),this._readWhitespace();while(e.match(Tokens.COMMA))this._readWhitespace(),r.push(this._key()),this._readWhitespace();return r},_key:function(){var e=this._tokenStream,t;if(e.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(e.token());if(e.match(Tokens.IDENT)){t=e.token();if(/from|to/i.test(t.value))return SyntaxUnit.fromToken(t);e.unget()}this._unexpectedToken(e.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(e,t){var n=this._tokenStream,r;this._readWhitespace(),e&&n.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!(n.match(Tokens.SEMICOLON)||t&&this._margin())){if(!this._declaration())break;if(!n.match(Tokens.SEMICOLON))break}this._readWhitespace()}n.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(i){if(!(i instanceof SyntaxError&&!this.options.strict))throw i;this.fire({type:"error",error:i,message:i.message,line:i.line,col:i.col}),r=n.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(r==Tokens.SEMICOLON)this._readDeclarations(!1,t);else if(r!=Tokens.RBRACE)throw i}},_readWhitespace:function(){var e=this._tokenStream,t="";while(e.match(Tokens.S))t+=e.token().value;return t},_unexpectedToken:function(e){throw new SyntaxError("Unexpected token '"+e.value+"' at line "+e.startLine+", col "+e.startCol+".",e.startLine,e.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(e,t){Validation.validate(e,t)},parse:function(e){this._tokenStream=new TokenStream(e,Tokens),this._stylesheet()},parseStyleSheet:function(e){return this.parse(e)},parseMediaQuery:function(e){this._tokenStream=new TokenStream(e,Tokens);var t=this._media_query();return this._verifyEnd(),t},parsePropertyValue:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._expr();return this._readWhitespace(),this._verifyEnd(),t},parseRule:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._ruleset();return this._readWhitespace(),this._verifyEnd(),t},parseSelector:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._selector();return this._readWhitespace(),this._verifyEnd(),t},parseStyleAttribute:function(e){e+="}",this._tokenStream=new TokenStream(e,Tokens),this._readDeclarations()}};for(t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}();var Properties={"alignment-adjust":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | | ","alignment-baseline":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",animation:1,"animation-delay":{multi:"