Version Description
Be sure to deactivate Dynamic Widgets Plugin before installing the new version following steps 1 and 2 in the installation procedure. After the install you can reactivate the plugin.
Download this release
Release Info
Developer | qurl |
Plugin | Dynamic Widgets |
Version | 1.4.0 |
Comparing to | |
See all releases |
Code changes from version 1.3.7 to 1.4.0
- dynamic-widgets.php +117 -28
- dynwid_admin.php +13 -3
- dynwid_admin_edit.php +33 -765
- dynwid_admin_overview.php +33 -13
- dynwid_admin_save.php +52 -66
- dynwid_class.php +48 -5
- dynwid_class_php4.php +49 -5
- dynwid_init_worker.php +34 -3
- dynwid_worker.php +81 -6
- img/checkmark.gif +0 -0
- jquery-ui-smoothness.css → jquery-ui-1.7.3.custom.css +9 -3
- jquery.ui.theme.smoothness.css → jquery-ui-1.8.7.custom.css +157 -2
- jquery.ui.accordion.css +0 -19
- jquery.ui.accordion.min.js +0 -12
- jquery.ui.core.css +0 -41
- jquery.ui.datepicker.css +0 -61
- jquery_datepicker.js +0 -12
- locale/dynamic-widgets-de_DE.mo +0 -0
- locale/dynamic-widgets-de_DE.po +653 -0
- locale/dynamic-widgets-es_ES.mo +0 -0
- locale/dynamic-widgets-es_ES.po +665 -0
- locale/dynamic-widgets-fr_FR.mo +0 -0
- locale/dynamic-widgets-fr_FR.po +437 -222
- locale/dynamic-widgets-nl.mo +0 -0
- locale/dynamic-widgets-nl.po +501 -357
- locale/dynamic-widgets.pot +425 -286
- mods/archive_module.php +31 -0
- mods/attachment_module.php +26 -0
- mods/author_module.php +44 -0
- mods/bp_module.php +108 -0
- mods/category_module.php +45 -0
- mods/custompost_module.php +165 -0
- mods/date_module.php +57 -0
- mods/error_module.php +26 -0
- mods/frontpage_module.php +34 -0
- mods/pages_module.php +130 -0
- mods/role_module.php +56 -0
- mods/search_module.php +27 -0
- mods/single_module.php +148 -0
- mods/useragent_module.php +58 -0
- mods/wpec_module.php +52 -0
- mods/wpml_module.php +55 -0
- plugin/bp.php +69 -0
- plugin/wpml.php +2 -2
- plugin/wpsc.php +24 -10
- readme.txt +47 -7
- ui.accordion.1.7.3.js +477 -0
- ui.accordion.1.8.7.js +599 -0
- ui.datepicker.1.7.3.js +1636 -0
- ui.datepicker.1.8.7.js +1757 -0
dynamic-widgets.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
* Plugin Name: Dynamic Widgets
|
4 |
* Plugin URI: http://www.qurl.nl/dynamic-widgets/
|
5 |
* Description: Dynamic Widgets gives you full control on which pages your widgets will appear. It lets you dynamicly place the widgets on WordPress pages.
|
6 |
-
* Author:
|
7 |
-
* Version: 1.
|
8 |
* Author URI: http://www.qurl.nl/
|
9 |
-
* Tags: widget, widgets, dynamic, sidebar, custom, rules, admin, conditional tags
|
10 |
*
|
11 |
* This program is distributed in the hope that it will be useful,
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
@@ -15,26 +15,36 @@
|
|
15 |
*
|
16 |
* Released under the GPL v.2, http://www.gnu.org/copyleft/gpl.html
|
17 |
*
|
18 |
-
* @version $Id: dynamic-widgets.php
|
|
|
19 |
*/
|
20 |
|
21 |
/*
|
22 |
-
Thanks to Alexis Nomine for the
|
|
|
|
|
23 |
*/
|
24 |
|
25 |
/*
|
26 |
WPML Plugin support via API
|
27 |
-
Using constants ICL_PLUGIN_PATH > dynwid_admin_edit.php, dynwid_init_worker.php, dynwid_worker.php
|
28 |
Using functions wpml_get_default_language() > dynwid_init_worker.php
|
29 |
-
wpml_get_current_language() > dynwid_init_worker.php, dynwid_worker.php, wpml.php
|
30 |
-
wpml_get_content_translation() > wpml.php
|
31 |
-
wpml_get_active_languages() >
|
32 |
*/
|
33 |
|
34 |
/*
|
35 |
WPSC/WPEC Plugin support
|
36 |
-
Using constants WPSC_TABLE_PRODUCT_CATEGORIES >
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
*/
|
39 |
|
40 |
// Constants
|
@@ -44,10 +54,11 @@
|
|
44 |
define('DW_LIST_LIMIT', 20);
|
45 |
define('DW_LIST_STYLE', 'style="overflow:auto;height:240px;"');
|
46 |
define('DW_OLD_METHOD', get_option('dynwid_old_method'));
|
|
|
47 |
define('DW_PLUGIN', dirname(__FILE__) . '/' . 'plugin/');
|
48 |
define('DW_TIME_LIMIT', 86400); // 1 day
|
49 |
define('DW_URL', 'http://www.qurl.nl');
|
50 |
-
define('DW_VERSION', '1.
|
51 |
define('DW_VERSION_URL_CHECK', DW_URL . '/wp-content/uploads/php/dw_version.php?v=' . DW_VERSION . '&n=');
|
52 |
define('DW_WPML_API', '/inc/wpml-api.php'); // WPML Plugin support - API file relative to ICL_PLUGIN_PATH
|
53 |
define('DW_WPML_ICON', 'img/wpml_icon.png'); // WPML Plugin support - WPML icon
|
@@ -112,7 +123,7 @@
|
|
112 |
function dynwid_add_admin_menu() {
|
113 |
$DW = &$GLOBALS['DW'];
|
114 |
|
115 |
-
$screen = add_submenu_page('themes.php', 'Dynamic Widgets', 'Dynamic Widgets', 'switch_themes', 'dynwid-config', 'dynwid_admin_page');
|
116 |
|
117 |
if ( $DW->enabled ) {
|
118 |
add_action('admin_print_styles-' . $screen, 'dynwid_add_admin_styles');
|
@@ -146,11 +157,31 @@
|
|
146 |
*/
|
147 |
function dynwid_add_admin_scripts() {
|
148 |
$DW = &$GLOBALS['DW'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
wp_enqueue_script('jquery');
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
|
155 |
/**
|
156 |
* dynwid_add_admin_styles() Enqueue CSS to admin page
|
@@ -158,10 +189,12 @@
|
|
158 |
*/
|
159 |
function dynwid_add_admin_styles() {
|
160 |
$DW = &$GLOBALS['DW'];
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
|
|
|
|
165 |
}
|
166 |
|
167 |
/**
|
@@ -202,8 +235,8 @@
|
|
202 |
}
|
203 |
}
|
204 |
|
205 |
-
$default = ( $single_condition == '0' ) ? 'Off' : 'On';
|
206 |
-
echo '<input type="checkbox" id="dw_' . $widget['widget_id'] . '" name="dw-single-post[]" value="' . $widget['widget_id'] . '"' . $checked . ' /> <label for="dw_' . $widget['widget_id'] . '">' . $DW->getName($widget['widget_id']) . ' (Default: ' . $default . ')</label><br />';
|
207 |
}
|
208 |
}
|
209 |
|
@@ -329,6 +362,61 @@
|
|
329 |
require_once(dirname(__FILE__) . '/dynwid_admin.php');
|
330 |
}
|
331 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
/**
|
333 |
* dynwid_check_version() Displays changelog with latest version compared to installed version
|
334 |
* @param mixed $plugin_data
|
@@ -564,8 +652,8 @@
|
|
564 |
call_user_func_array($wp_callback, $args);
|
565 |
|
566 |
// Now adding the dynwid text & link
|
567 |
-
echo '<p>Dynamic Widgets: ';
|
568 |
-
echo '<a style="text-decoration:none;" title="Edit Dynamic Widgets Options" href="themes.php?page=dynwid-config&action=edit&id=' . $widget_id . '&returnurl=' . urlencode(trailingslashit(admin_url()) . 'widgets.php') . '">';
|
569 |
echo ( $DW->hasOptions($widget_id) ) ? __('Dynamic', DW_L10N_DOMAIN) : __('Static', DW_L10N_DOMAIN);
|
570 |
echo '</a>';
|
571 |
if ( $DW->hasOptions($widget_id) ) {
|
@@ -573,7 +661,7 @@
|
|
573 |
$opt = $DW->getOptions($widget_id, NULL);
|
574 |
foreach ( $opt as $widget ) {
|
575 |
$type = $widget['maintype'];
|
576 |
-
if ( $type != 'individual' ) {
|
577 |
$single = array('single-author', 'single-category', 'single-tag', 'single-post');
|
578 |
if ( in_array($type, $single) ) {
|
579 |
$type = 'single';
|
@@ -589,8 +677,8 @@
|
|
589 |
$type = $s[$i];
|
590 |
if (! empty($DW->dwoptions[$type]) ) {
|
591 |
$string .= $DW->dwoptions[$type];
|
592 |
-
|
593 |
-
|
594 |
}
|
595 |
$type = $s[$last];
|
596 |
$string .= $DW->dwoptions[$type];
|
@@ -634,6 +722,7 @@
|
|
634 |
|
635 |
// Hooks
|
636 |
add_action('admin_action_dynwid_dump', 'dynwid_admin_dump');
|
|
|
637 |
add_action('admin_action_dynwid_uninstall', 'dynwid_uninstall');
|
638 |
add_action('init', 'dynwid_init');
|
639 |
register_activation_hook(__FILE__, 'dynwid_install');
|
3 |
* Plugin Name: Dynamic Widgets
|
4 |
* Plugin URI: http://www.qurl.nl/dynamic-widgets/
|
5 |
* Description: Dynamic Widgets gives you full control on which pages your widgets will appear. It lets you dynamicly place the widgets on WordPress pages.
|
6 |
+
* Author: Qurl
|
7 |
+
* Version: 1.4.0
|
8 |
* Author URI: http://www.qurl.nl/
|
9 |
+
* Tags: widget, widgets, dynamic, sidebar, custom, rules, admin, conditional tags, wpml, wpec, buddypress
|
10 |
*
|
11 |
* This program is distributed in the hope that it will be useful,
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15 |
*
|
16 |
* Released under the GPL v.2, http://www.gnu.org/copyleft/gpl.html
|
17 |
*
|
18 |
+
* @version $Id: dynamic-widgets.php 349959 2011-02-23 19:15:28Z qurl $
|
19 |
+
* @copyright 2011 Jacco Drabbe
|
20 |
*/
|
21 |
|
22 |
/*
|
23 |
+
Thanks to Alexis Nomine for the contribution of the French (fr_FR) language files, several L10N fixes and change of the edit options UI.
|
24 |
+
Thanks to Daniel Bihler for the contribution of the German (de_DE) language files.
|
25 |
+
Thanks to Eduardo Larequi for the contribution of the Spanish (es_ES) language files and several L10N fixes.
|
26 |
*/
|
27 |
|
28 |
/*
|
29 |
WPML Plugin support via API
|
30 |
+
Using constants ICL_PLUGIN_PATH > dynwid_admin_edit.php, mods/wpml_module.php, dynwid_init_worker.php, dynwid_worker.php
|
31 |
Using functions wpml_get_default_language() > dynwid_init_worker.php
|
32 |
+
wpml_get_current_language() > dynwid_init_worker.php, dynwid_worker.php, plugin/wpml.php
|
33 |
+
wpml_get_content_translation() > plugin/wpml.php
|
34 |
+
wpml_get_active_languages() > mods/wpml_module.php
|
35 |
*/
|
36 |
|
37 |
/*
|
38 |
WPSC/WPEC Plugin support
|
39 |
+
Using constants WPSC_TABLE_PRODUCT_CATEGORIES > dynwid_admin_overview.php, plugin/wpsc.php
|
40 |
+
WPSC_VERSION > mods/wpec_module.php, dynwid_init_worker.php, plugin/wpsc.php
|
41 |
+
Using vars $wpsc_query > dynwid_init_worker.php, plugin/wpsc.php
|
42 |
+
*/
|
43 |
+
|
44 |
+
/*
|
45 |
+
BP Plugin support
|
46 |
+
Using constants BP_VERSION > mods/bp_module, dynwid_init_worker.php
|
47 |
+
User vars $bp > dynwid_init_worker.php, plugin/bp.php
|
48 |
*/
|
49 |
|
50 |
// Constants
|
54 |
define('DW_LIST_LIMIT', 20);
|
55 |
define('DW_LIST_STYLE', 'style="overflow:auto;height:240px;"');
|
56 |
define('DW_OLD_METHOD', get_option('dynwid_old_method'));
|
57 |
+
define('DW_MODULES', dirname(__FILE__) . '/' . 'mods/');
|
58 |
define('DW_PLUGIN', dirname(__FILE__) . '/' . 'plugin/');
|
59 |
define('DW_TIME_LIMIT', 86400); // 1 day
|
60 |
define('DW_URL', 'http://www.qurl.nl');
|
61 |
+
define('DW_VERSION', '1.4.0');
|
62 |
define('DW_VERSION_URL_CHECK', DW_URL . '/wp-content/uploads/php/dw_version.php?v=' . DW_VERSION . '&n=');
|
63 |
define('DW_WPML_API', '/inc/wpml-api.php'); // WPML Plugin support - API file relative to ICL_PLUGIN_PATH
|
64 |
define('DW_WPML_ICON', 'img/wpml_icon.png'); // WPML Plugin support - WPML icon
|
123 |
function dynwid_add_admin_menu() {
|
124 |
$DW = &$GLOBALS['DW'];
|
125 |
|
126 |
+
$screen = add_submenu_page('themes.php', __('Dynamic Widgets', DW_L10N_DOMAIN), __('Dynamic Widgets', DW_L10N_DOMAIN), 'switch_themes', 'dynwid-config', 'dynwid_admin_page');
|
127 |
|
128 |
if ( $DW->enabled ) {
|
129 |
add_action('admin_print_styles-' . $screen, 'dynwid_add_admin_styles');
|
157 |
*/
|
158 |
function dynwid_add_admin_scripts() {
|
159 |
$DW = &$GLOBALS['DW'];
|
160 |
+
|
161 |
+
/*
|
162 |
+
BuddyPress doing an overall JS enqueue (BAD!)
|
163 |
+
Workaround fixing a js error with ui.accordion freezing the screen
|
164 |
+
- dtheme-ajax-js is used in BP default theme
|
165 |
+
- bp-js is used in BP Compatibility Plugin
|
166 |
+
*/
|
167 |
+
if ( wp_script_is('dtheme-ajax-js') ) {
|
168 |
+
wp_deregister_script('dtheme-ajax-js');
|
169 |
+
}
|
170 |
+
if ( wp_script_is('bp-js') ) {
|
171 |
+
wp_deregister_script('bp-js');
|
172 |
+
}
|
173 |
+
|
174 |
wp_enqueue_script('jquery');
|
175 |
+
wp_enqueue_script('jquery-ui-core');
|
176 |
+
if ( version_compare(substr($GLOBALS['wp_version'], 0, 3), '3.1', '>=') ) {
|
177 |
+
wp_enqueue_script('jquery-ui-widget');
|
178 |
+
wp_enqueue_script('jquery-ui-accordion', $DW->plugin_url . 'ui.accordion.1.8.7.js', array('jquery-ui-widget'));
|
179 |
+
wp_enqueue_script('jquery-ui-datepicker', $DW->plugin_url . 'ui.datepicker.1.8.7.js', array('jquery-ui-widget'));
|
180 |
+
} else {
|
181 |
+
wp_enqueue_script('jquery-ui-accordion', $DW->plugin_url . 'ui.accordion.1.7.3.js', array('jquery-ui-core'));
|
182 |
+
wp_enqueue_script('jquery-ui-datepicker', $DW->plugin_url . 'ui.datepicker.1.7.3.js', array('jquery-ui-core'));
|
183 |
+
}
|
184 |
+
}
|
185 |
|
186 |
/**
|
187 |
* dynwid_add_admin_styles() Enqueue CSS to admin page
|
189 |
*/
|
190 |
function dynwid_add_admin_styles() {
|
191 |
$DW = &$GLOBALS['DW'];
|
192 |
+
|
193 |
+
if ( version_compare(substr($GLOBALS['wp_version'], 0, 3), '3.1', '>=') ) {
|
194 |
+
wp_enqueue_style('jquery-ui-custom', $DW->plugin_url . 'jquery-ui-1.8.7.custom.css');
|
195 |
+
} else {
|
196 |
+
wp_enqueue_style('jquery-ui-custom', $DW->plugin_url . 'jquery-ui-1.7.3.custom.css');
|
197 |
+
}
|
198 |
}
|
199 |
|
200 |
/**
|
235 |
}
|
236 |
}
|
237 |
|
238 |
+
$default = ( $single_condition == '0' ) ? __('Off', DW_L10N_DOMAIN) : __('On', DW_L10N_DOMAIN);
|
239 |
+
echo '<input type="checkbox" id="dw_' . $widget['widget_id'] . '" name="dw-single-post[]" value="' . $widget['widget_id'] . '"' . $checked . ' /> <label for="dw_' . $widget['widget_id'] . '">' . $DW->getName($widget['widget_id']) . __(' (Default: ', DW_L10N_DOMAIN) . $default . ')</label><br />';
|
240 |
}
|
241 |
}
|
242 |
|
362 |
require_once(dirname(__FILE__) . '/dynwid_admin.php');
|
363 |
}
|
364 |
|
365 |
+
/**
|
366 |
+
* dynwid_admin_wpec_dump() Dump WPEC rules function for upgrade to 3.8
|
367 |
+
* @since 1.4.0
|
368 |
+
*/
|
369 |
+
function dynwid_admin_wpec_dump() {
|
370 |
+
$DW = &$GLOBALS['DW'];
|
371 |
+
$wpdb = &$GLOBALS['wpdb'];
|
372 |
+
$dump = array();
|
373 |
+
|
374 |
+
$opt = $DW->getOptions('%', 'wpsc');
|
375 |
+
|
376 |
+
$categories = array();
|
377 |
+
$table = WPSC_TABLE_PRODUCT_CATEGORIES;
|
378 |
+
$fields = array('id', 'name');
|
379 |
+
$query = "SELECT " . implode(', ', $fields) . " FROM " . $table . " WHERE active = '1' ORDER BY name";
|
380 |
+
$results = $wpdb->get_results($query);
|
381 |
+
foreach ( $results as $myrow ) {
|
382 |
+
$categories[$myrow->id] = $myrow->name;
|
383 |
+
}
|
384 |
+
|
385 |
+
foreach ( $opt as $widget ) {
|
386 |
+
$id = $widget['widget_id'];
|
387 |
+
if (! array_key_exists($id, $dump) ) {
|
388 |
+
$dump[$id] = array( 'name' => strip_tags($DW->getName($widget['widget_id'])) );
|
389 |
+
}
|
390 |
+
|
391 |
+
if ( $widget['name'] == 'default' ) {
|
392 |
+
$dump[$id]['default'] = ( $widget['value'] == '0' ? 'No' : 'Yes' );
|
393 |
+
} else {
|
394 |
+
$v = $widget['name'];
|
395 |
+
$dump[$id][ ] = $categories[$v];
|
396 |
+
}
|
397 |
+
}
|
398 |
+
|
399 |
+
header('Content-Description: File Transfer');
|
400 |
+
header('Content-Disposition: attachment; filename=dynwid_wpec_dump_' . date('Ymd') . '.txt' );
|
401 |
+
header('Content-Type: text/plain');
|
402 |
+
|
403 |
+
foreach ( $dump as $widget ) {
|
404 |
+
echo 'Widget: ' . $widget['name'] . "\r\n";
|
405 |
+
echo 'Default set to ' . $widget['default'] . "\r\n";
|
406 |
+
if ( count($widget) > 2 ) {
|
407 |
+
echo 'Categories ticked: ' . "\r\n";
|
408 |
+
foreach ( $widget as $k => $v ) {
|
409 |
+
if ( is_int($k) ) {
|
410 |
+
echo "\t" . $v . "\r\n";
|
411 |
+
}
|
412 |
+
}
|
413 |
+
}
|
414 |
+
echo "\r\n";
|
415 |
+
}
|
416 |
+
|
417 |
+
die();
|
418 |
+
}
|
419 |
+
|
420 |
/**
|
421 |
* dynwid_check_version() Displays changelog with latest version compared to installed version
|
422 |
* @param mixed $plugin_data
|
652 |
call_user_func_array($wp_callback, $args);
|
653 |
|
654 |
// Now adding the dynwid text & link
|
655 |
+
echo '<p>' . __('Dynamic Widgets', DW_L10N_DOMAIN) . ': ';
|
656 |
+
echo '<a style="text-decoration:none;" title="' . __('Edit Dynamic Widgets Options', DW_L10N_DOMAIN) . '" href="themes.php?page=dynwid-config&action=edit&id=' . $widget_id . '&returnurl=' . urlencode(trailingslashit(admin_url()) . 'widgets.php') . '">';
|
657 |
echo ( $DW->hasOptions($widget_id) ) ? __('Dynamic', DW_L10N_DOMAIN) : __('Static', DW_L10N_DOMAIN);
|
658 |
echo '</a>';
|
659 |
if ( $DW->hasOptions($widget_id) ) {
|
661 |
$opt = $DW->getOptions($widget_id, NULL);
|
662 |
foreach ( $opt as $widget ) {
|
663 |
$type = $widget['maintype'];
|
664 |
+
if ( $type != 'individual' && substr($type, -6) != 'childs' ) {
|
665 |
$single = array('single-author', 'single-category', 'single-tag', 'single-post');
|
666 |
if ( in_array($type, $single) ) {
|
667 |
$type = 'single';
|
677 |
$type = $s[$i];
|
678 |
if (! empty($DW->dwoptions[$type]) ) {
|
679 |
$string .= $DW->dwoptions[$type];
|
680 |
+
}
|
681 |
+
$string .= ( ($last - 1) == $i ) ? ' ' . __('and', DW_L10N_DOMAIN) . ' ' : ', ';
|
682 |
}
|
683 |
$type = $s[$last];
|
684 |
$string .= $DW->dwoptions[$type];
|
722 |
|
723 |
// Hooks
|
724 |
add_action('admin_action_dynwid_dump', 'dynwid_admin_dump');
|
725 |
+
add_action('admin_action_wpec_dump', 'dynwid_admin_wpec_dump');
|
726 |
add_action('admin_action_dynwid_uninstall', 'dynwid_uninstall');
|
727 |
add_action('init', 'dynwid_init');
|
728 |
register_activation_hook(__FILE__, 'dynwid_install');
|
dynwid_admin.php
CHANGED
@@ -2,13 +2,23 @@
|
|
2 |
/**
|
3 |
* dynwid_admin.php - Startpage for admin
|
4 |
*
|
5 |
-
* @version $Id: dynwid_admin.php
|
|
|
6 |
*/
|
7 |
?>
|
8 |
|
9 |
-
<
|
10 |
-
<
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
<?php
|
13 |
if ( $DW->enabled ) {
|
14 |
if ( dynwid_sql_mode() ) {
|
2 |
/**
|
3 |
* dynwid_admin.php - Startpage for admin
|
4 |
*
|
5 |
+
* @version $Id: dynwid_admin.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
*/
|
8 |
?>
|
9 |
|
10 |
+
<form id="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
|
11 |
+
<input type="hidden" name="cmd" value="_s-xclick">
|
12 |
+
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHLwYJKoZIhvcNAQcEoIIHIDCCBxwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYA8oKawH0wVsnruuavwjiZi+1u1moRDmdIg8kzCLarZA74ZYRhv+TNCynCQCNWHZGPkTTl2SHQb8RhJa1L+EyRiLLQyBJt5S6IuJL0RV/jh+TXnH79qB/C530XRS6gQyMO9Leef2Z8JZw5bEZbI57rTQt9iZnCN0ukC0pk+XPWZJDELMAkGBSsOAwIaBQAwgawGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIpdpTIm0AzteAgYj+SxsNo2z15IpjAKJEJMDFsS0MQMc2fWkmuC6YqRL3EvhdNg38881HiCdmbyh12jKbR5Brblf3x4kcsQxwtUTa1X2wTcnAxnLSqWz7rHVd43M/597X1YnznUFb8rxnKB3Fdk4Wft97H6PDRgQ9MTMDiDh7XdxKXOaSdp2ezT0wVBhriYh7nqyUoIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTAwMTE1MTk1NDA2WjAjBgkqhkiG9w0BCQQxFgQU1NqOsMx96zcBKgH6iRmbgjiJS1MwDQYJKoZIhvcNAQEBBQAEgYCEqGOx+IvEEjWyVOhgDTSTFPqTfR9GxGXHXNz1lBkPZpRJCp3F2GkZpadce8r5IOvQX67kgg7OGyLUaRcGXghaZOuGr5Jd3MhTaXqwyiQRIHAcsJSrgaNtfCE/LHIQ4jEDw15XlEI5/1OgLiZeuIZaiL53WjoH4AMxgEXt8kHk3w==-----END PKCS7-----
|
13 |
+
">
|
14 |
+
</form>
|
15 |
|
16 |
+
<div class="wrap">
|
17 |
+
<div class="icon32" id="icon-themes"><br></div>
|
18 |
+
<h2>
|
19 |
+
<?php _e('Dynamic Widgets', DW_L10N_DOMAIN); ?>
|
20 |
+
<input type="image" style="vertical-align: middle;" title="Donate for this plugin via PayPal" alt="Donate" name="submit" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" onclick="jQuery('#paypal').submit()">
|
21 |
+
</h2>
|
22 |
<?php
|
23 |
if ( $DW->enabled ) {
|
24 |
if ( dynwid_sql_mode() ) {
|
dynwid_admin_edit.php
CHANGED
@@ -2,341 +2,15 @@
|
|
2 |
/**
|
3 |
* dynwid_admin_edit.php - Options settings
|
4 |
*
|
5 |
-
* @version $Id: dynwid_admin_edit.php
|
|
|
6 |
*/
|
7 |
|
8 |
// WPML Plugin support
|
9 |
if ( defined('ICL_PLUGIN_PATH') && file_exists(ICL_PLUGIN_PATH . DW_WPML_API) ) {
|
10 |
$DW->wpml = TRUE;
|
11 |
-
$wpml_icon = '<img src="' . $DW->plugin_url . DW_WPML_ICON . '" alt="WMPL" title="Dynamic Widgets syncs with other languages of these pages via WPML" />';
|
12 |
-
$wpml_api = ICL_PLUGIN_PATH . DW_WPML_API;
|
13 |
-
require_once($wpml_api);
|
14 |
}
|
15 |
-
|
16 |
-
// WPSC/WPEC Plugin support (http://getshopped.org)
|
17 |
-
if ( defined('WPSC_TABLE_PRODUCT_CATEGORIES') ) {
|
18 |
-
$DW->wpsc = TRUE;
|
19 |
-
require_once(DW_PLUGIN . 'wpsc.php');
|
20 |
-
}
|
21 |
-
|
22 |
-
// Roles
|
23 |
-
$wp_roles = $GLOBALS['wp_roles'];
|
24 |
-
$roles = array_merge($wp_roles->role_names, array('anonymous' => __('Anonymous') . '|User role'));
|
25 |
-
$jsroles = array();
|
26 |
-
foreach ( $roles as $rid => $role ) {
|
27 |
-
$roles[esc_attr($rid)] = translate_user_role($role);
|
28 |
-
$jsroles[ ] = '\'role_act_' . esc_attr($rid) . '\''; // Prep for JS Array
|
29 |
-
}
|
30 |
-
if ( count($roles) > DW_LIST_LIMIT ) {
|
31 |
-
$role_condition_select_style = DW_LIST_STYLE;
|
32 |
-
}
|
33 |
-
|
34 |
-
$role_yes_selected = 'checked="checked"';
|
35 |
-
$opt_role = $DW->getOptions($_GET['id'], 'role');
|
36 |
-
if ( count($opt_role) > 0 ) {
|
37 |
-
$role_act = array();
|
38 |
-
foreach ( $opt_role as $role_condition ) {
|
39 |
-
if ( $role_condition['name'] == 'default' || empty($role_condition['name']) ) {
|
40 |
-
$role_default = $role_condition['value'];
|
41 |
-
} else {
|
42 |
-
$role_act[ ] = $role_condition['name'];
|
43 |
-
}
|
44 |
-
}
|
45 |
-
|
46 |
-
if ( $role_default == '0' ) {
|
47 |
-
$role_no_selected = $role_yes_selected;
|
48 |
-
unset($role_yes_selected);
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
// Date
|
53 |
-
$date_yes_selected = 'checked="checked"';
|
54 |
-
$opt_date = $DW->getOptions($_GET['id'], 'date');
|
55 |
-
if ( count($opt_date) > 0 ) {
|
56 |
-
foreach ( $opt_date as $value ) {
|
57 |
-
switch ( $value['name'] ) {
|
58 |
-
case 'date_start':
|
59 |
-
$date_start = $value['value'];
|
60 |
-
break;
|
61 |
-
|
62 |
-
case 'date_end':
|
63 |
-
$date_end = $value['value'];
|
64 |
-
break;
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
$date_no_selected = $date_yes_selected;
|
69 |
-
unset($date_yes_selected);
|
70 |
-
}
|
71 |
-
|
72 |
-
// Front Page
|
73 |
-
if ( get_option('show_on_front') != 'page' ) {
|
74 |
-
$frontpage_yes_selected = 'checked="checked"';
|
75 |
-
$opt_frontpage = $DW->getOptions($_GET['id'], 'front-page');
|
76 |
-
if ( count($opt_frontpage) > 0 ) {
|
77 |
-
$frontpage_condition = $opt_frontpage[0]['value'];
|
78 |
-
if ( $frontpage_condition == '0' ) {
|
79 |
-
$frontpage_no_selected = $frontpage_yes_selected;
|
80 |
-
unset($frontpage_yes_selected);
|
81 |
-
}
|
82 |
-
}
|
83 |
-
}
|
84 |
-
|
85 |
-
// Single Post
|
86 |
-
$single_yes_selected = 'checked="checked"';
|
87 |
-
$single_condition = '1';
|
88 |
-
$opt_single = $DW->getOptions($_GET['id'], 'single');
|
89 |
-
if ( count($opt_single) > 0 ) {
|
90 |
-
foreach ( $opt_single as $widget ) {
|
91 |
-
if ( $widget['maintype'] == 'single' ) {
|
92 |
-
$single_condition = $widget['value'];
|
93 |
-
}
|
94 |
-
}
|
95 |
-
if ( $single_condition == '0' ) {
|
96 |
-
$single_no_selected = $single_yes_selected;
|
97 |
-
unset($single_yes_selected);
|
98 |
-
}
|
99 |
-
}
|
100 |
-
|
101 |
-
// -- Author
|
102 |
-
$js_count = 0;
|
103 |
-
$opt_single_author = $DW->getOptions($_GET['id'], 'single-author');
|
104 |
-
$js_author_array = array();
|
105 |
-
if ( count($opt_single_author) > 0 ) {
|
106 |
-
$js_count = $js_count + count($opt_single_author) - 1;
|
107 |
-
$single_author_act = array();
|
108 |
-
foreach ( $opt_single_author as $single_author_condition ) {
|
109 |
-
$single_author_act[ ] = $single_author_condition['name'];
|
110 |
-
}
|
111 |
-
}
|
112 |
-
|
113 |
-
// -- Category
|
114 |
-
$opt_single_category = $DW->getOptions($_GET['id'], 'single-category');
|
115 |
-
$js_category_array = array();
|
116 |
-
if ( count($opt_single_category) > 0 ) {
|
117 |
-
$js_count = $js_count + count($opt_single_category) - 1;
|
118 |
-
$single_category_act = array();
|
119 |
-
foreach ( $opt_single_category as $single_category_condition ) {
|
120 |
-
$single_category_act[ ] = $single_category_condition['name'];
|
121 |
-
}
|
122 |
-
}
|
123 |
-
|
124 |
-
// -- Individual / Posts / Tags
|
125 |
-
$individual = FALSE;
|
126 |
-
$opt_individual = $DW->getOptions($_GET['id'], 'individual');
|
127 |
-
$single_post_act = array();
|
128 |
-
$single_tag_act = array();
|
129 |
-
|
130 |
-
if ( count($opt_individual) > 0 ) {
|
131 |
-
$individual_condition = $opt_individual[0]['value'];
|
132 |
-
if ( $individual_condition == 1 ) {
|
133 |
-
$individual = TRUE;
|
134 |
-
|
135 |
-
$opt_single_post = $DW->getOptions($_GET['id'], 'single-post');
|
136 |
-
if ( count($opt_single_post) > 0 ) {
|
137 |
-
foreach ( $opt_single_post as $single_post_condition ) {
|
138 |
-
if ( $single_post_condition['name'] != 'default' ) {
|
139 |
-
$single_post_act[ ] = $single_post_condition['name'];
|
140 |
-
}
|
141 |
-
}
|
142 |
-
}
|
143 |
-
|
144 |
-
$opt_single_tag = $DW->getOptions($_GET['id'], 'single-tag');
|
145 |
-
if ( count($opt_single_tag) > 0 ) {
|
146 |
-
foreach ( $opt_single_tag as $single_tag_condition ) {
|
147 |
-
if ( $single_tag_condition['name'] != 'default' ) {
|
148 |
-
$single_tag_act[ ] = $single_tag_condition['name'];
|
149 |
-
}
|
150 |
-
}
|
151 |
-
}
|
152 |
-
|
153 |
-
$count_individual = '(Posts: ' . count($single_post_act) . ', Tags: ' . count($single_tag_act) . ')';
|
154 |
-
}
|
155 |
-
}
|
156 |
-
|
157 |
-
// Pages
|
158 |
-
$page_yes_selected = 'checked="checked"';
|
159 |
-
$opt_page = $DW->getOptions($_GET['id'], 'page');
|
160 |
-
if ( count($opt_page) > 0 ) {
|
161 |
-
$page_act = array();
|
162 |
-
foreach ( $opt_page as $page_condition ) {
|
163 |
-
if ( $page_condition['maintype'] == 'page' ) {
|
164 |
-
if ( $page_condition['name'] == 'default' || empty($page_condition['name']) ) {
|
165 |
-
$page_default = $page_condition['value'];
|
166 |
-
} else {
|
167 |
-
$page_act[ ] = $page_condition['name'];
|
168 |
-
}
|
169 |
-
}
|
170 |
-
}
|
171 |
-
|
172 |
-
if ( $page_default == '0' ) {
|
173 |
-
$page_no_selected = $page_yes_selected;
|
174 |
-
unset($page_yes_selected);
|
175 |
-
}
|
176 |
-
|
177 |
-
// -- Childs
|
178 |
-
$opt_page_childs = $DW->getOptions($_GET['id'], 'page-childs');
|
179 |
-
if ( count($opt_page_childs) > 0 ) {
|
180 |
-
$page_childs_act = array();
|
181 |
-
foreach ( $opt_page_childs as $child_condition ) {
|
182 |
-
if ( $child_condition['name'] != 'default' ) {
|
183 |
-
$page_childs_act[ ] = $child_condition['name'];
|
184 |
-
}
|
185 |
-
}
|
186 |
-
}
|
187 |
-
}
|
188 |
-
|
189 |
-
$pages = get_pages();
|
190 |
-
if ( count($pages) > DW_LIST_LIMIT ) {
|
191 |
-
$page_condition_select_style = DW_LIST_STYLE;
|
192 |
-
}
|
193 |
-
|
194 |
-
$static_page = array();
|
195 |
-
if ( get_option('show_on_front') == 'page' ) {
|
196 |
-
if ( get_option('page_on_front') == get_option('page_for_posts') ) {
|
197 |
-
$id = get_option('page_on_front');
|
198 |
-
$static_page[$id] = 'Front page, Posts page';
|
199 |
-
} else {
|
200 |
-
$id = get_option('page_on_front');
|
201 |
-
$static_page[$id] = 'Front page';
|
202 |
-
$id = get_option('page_for_posts');
|
203 |
-
$static_page[$id] = 'Posts page';
|
204 |
-
}
|
205 |
-
}
|
206 |
-
|
207 |
-
// Author
|
208 |
-
$author_yes_selected = 'checked="checked"';
|
209 |
-
$opt_author = $DW->getOptions($_GET['id'], 'author');
|
210 |
-
if ( count($opt_author) > 0 ) {
|
211 |
-
$author_act = array();
|
212 |
-
foreach ( $opt_author as $author_condition ) {
|
213 |
-
if ( $author_condition['name'] == 'default' || empty($author_condition['name']) ) {
|
214 |
-
$author_default = $author_condition['value'];
|
215 |
-
} else {
|
216 |
-
$author_act[ ] = $author_condition['name'];
|
217 |
-
}
|
218 |
-
}
|
219 |
-
|
220 |
-
if ( $author_default == '0' ) {
|
221 |
-
$author_no_selected = $author_yes_selected;
|
222 |
-
unset($author_yes_selected);
|
223 |
-
}
|
224 |
-
}
|
225 |
-
|
226 |
-
$authors = get_users_of_blog();
|
227 |
-
if ( count($authors) > DW_LIST_LIMIT ) {
|
228 |
-
$author_condition_select_style = DW_LIST_STYLE;
|
229 |
-
}
|
230 |
-
|
231 |
-
// Categories
|
232 |
-
$category_yes_selected = 'checked="checked"';
|
233 |
-
$opt_category = $DW->getOptions($_GET['id'], 'category');
|
234 |
-
if ( count($opt_category) > 0 ) {
|
235 |
-
$category_act = array();
|
236 |
-
foreach ( $opt_category as $category_condition ) {
|
237 |
-
if ( $category_condition['name'] == 'default' || empty($category_condition['name']) ) {
|
238 |
-
$category_default = $category_condition['value'];
|
239 |
-
} else {
|
240 |
-
$category_act[ ] = $category_condition['name'];
|
241 |
-
}
|
242 |
-
}
|
243 |
-
|
244 |
-
if ( $category_default == '0' ) {
|
245 |
-
$category_no_selected = $category_yes_selected;
|
246 |
-
unset($category_yes_selected);
|
247 |
-
}
|
248 |
-
}
|
249 |
-
|
250 |
-
$category = get_categories( array('hide_empty' => FALSE) );
|
251 |
-
if ( count($category) > DW_LIST_LIMIT ) {
|
252 |
-
$category_condition_select_style = DW_LIST_STYLE;
|
253 |
-
}
|
254 |
-
|
255 |
-
// Archives
|
256 |
-
$archive_yes_selected = 'checked="checked"';
|
257 |
-
$opt_archive = $DW->getOptions($_GET['id'], 'archive');
|
258 |
-
if ( count($opt_archive) > 0 ) {
|
259 |
-
$archive_condition = $opt_archive[0]['value'];
|
260 |
-
if ( $archive_condition == '0' ) {
|
261 |
-
$archive_no_selected = $archive_yes_selected;
|
262 |
-
unset($archive_yes_selected);
|
263 |
-
}
|
264 |
-
}
|
265 |
-
|
266 |
-
// Error 404
|
267 |
-
$e404_yes_selected = 'checked="checked"';
|
268 |
-
$opt_e404 = $DW->getOptions($_GET['id'], 'e404');
|
269 |
-
if ( count($opt_e404) > 0 ) {
|
270 |
-
$e404_condition = $opt_e404[0]['value'];
|
271 |
-
if ( $e404_condition == '0' ) {
|
272 |
-
$e404_no_selected = $e404_yes_selected;
|
273 |
-
unset($e404_yes_selected);
|
274 |
-
}
|
275 |
-
}
|
276 |
-
|
277 |
-
// Search
|
278 |
-
$search_yes_selected = 'checked="checked"';
|
279 |
-
$opt_search = $DW->getOptions($_GET['id'], 'search');
|
280 |
-
if ( count($opt_search) > 0 ) {
|
281 |
-
$search_condition = $opt_search[0]['value'];
|
282 |
-
if ( $search_condition == '0' ) {
|
283 |
-
$search_no_selected = $search_yes_selected;
|
284 |
-
unset($search_yes_selected);
|
285 |
-
}
|
286 |
-
}
|
287 |
-
|
288 |
-
// WPML
|
289 |
-
if ( $DW->wpml ) {
|
290 |
-
$wpml_yes_selected = 'checked="checked"';
|
291 |
-
$opt_wpml = $DW->getOptions($_GET['id'], 'wpml');
|
292 |
-
if ( count($opt_wpml) > 0 ) {
|
293 |
-
$wpml_act = array();
|
294 |
-
foreach ( $opt_wpml as $wpml_condition ) {
|
295 |
-
if ( $wpml_condition['name'] == 'default' || empty($wpml_condition['name']) ) {
|
296 |
-
$wpml_default = $wpml_condition['value'];
|
297 |
-
} else {
|
298 |
-
$wpml_act[ ] = $wpml_condition['name'];
|
299 |
-
}
|
300 |
-
}
|
301 |
-
|
302 |
-
if ( $wpml_default == '0' ) {
|
303 |
-
$wpml_no_selected = $wpml_yes_selected;
|
304 |
-
unset($wpml_yes_selected);
|
305 |
-
}
|
306 |
-
}
|
307 |
-
|
308 |
-
$wpml_langs = wpml_get_active_languages();
|
309 |
-
if ( count($wpml_langs) > DW_LIST_LIMIT ) {
|
310 |
-
$wpml_condition_select_style = DW_LIST_STYLE;
|
311 |
-
}
|
312 |
-
}
|
313 |
-
|
314 |
-
// WPSC/WPEC
|
315 |
-
if ( $DW->wpsc ) {
|
316 |
-
// Categories
|
317 |
-
$wpsc_yes_selected = 'checked="checked"';
|
318 |
-
$opt_wpsc = $DW->getOptions($_GET['id'], 'wpsc');
|
319 |
-
if ( count($opt_wpsc) > 0 ) {
|
320 |
-
$wpsc_act = array();
|
321 |
-
foreach ( $opt_wpsc as $wpsc_condition ) {
|
322 |
-
if ( $wpsc_condition['name'] == 'default' || empty($wpsc_condition['name']) ) {
|
323 |
-
$wpsc_default = $wpsc_condition['value'];
|
324 |
-
} else {
|
325 |
-
$wpsc_act[ ] = $wpsc_condition['name'];
|
326 |
-
}
|
327 |
-
}
|
328 |
-
|
329 |
-
if ( $wpsc_default == '0' ) {
|
330 |
-
$wpsc_no_selected = $wpsc_yes_selected;
|
331 |
-
unset($wpsc_yes_selected);
|
332 |
-
}
|
333 |
-
}
|
334 |
-
|
335 |
-
$wpsc = dw_wpsc_get_categories();
|
336 |
-
if ( count($wpsc) > DW_LIST_LIMIT ) {
|
337 |
-
$wpsc_condition_select_style = DW_LIST_STYLE;
|
338 |
-
}
|
339 |
-
}
|
340 |
?>
|
341 |
|
342 |
<style type="text/css">
|
@@ -398,7 +72,7 @@ h4 {
|
|
398 |
|
399 |
<?php } ?>
|
400 |
|
401 |
-
<h3><?php _e('Edit options for', DW_L10N_DOMAIN);
|
402 |
<?php echo ( DW_DEBUG ) ? '<pre>ID = ' . $_GET['id'] . '</pre><br />' : ''; ?>
|
403 |
|
404 |
<form action="<?php echo trailingslashit(admin_url()) . 'themes.php?page=dynwid-config&action=edit&id=' . $_GET['id']; ?>" method="post">
|
@@ -407,443 +81,33 @@ h4 {
|
|
407 |
<input type="hidden" name="widget_id" value="<?php echo $_GET['id']; ?>" />
|
408 |
<input type="hidden" name="returnurl" value="<?php echo ( isset($_GET['returnurl']) ? urldecode($_GET['returnurl']) : '' ); ?>" />
|
409 |
|
410 |
-
<!-- Role //-->
|
411 |
<div id="dynwid">
|
412 |
-
<h4><b><?php _e('Role'); ?></b><?php echo ( count($opt_role) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
413 |
-
<div class="dynwid_conf">
|
414 |
-
<?php _e('Show widget to everybody?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" onclick="divToggle('role');" /><br />
|
415 |
-
<?php $DW->dumpOpt($opt_role); ?>
|
416 |
-
<div>
|
417 |
-
<div id="role" class="infotext">
|
418 |
-
<?php _e('Setting options by role is very powerfull. It can override all other options!<br />
|
419 |
-
Users who are not logged in, get the <em>Anonymous</em> role.', DW_L10N_DOMAIN); ?>
|
420 |
-
</div>
|
421 |
-
</div>
|
422 |
-
<input type="radio" name="role" value="yes" id="role-yes" <?php echo ( isset($role_yes_selected) ? $role_yes_selected : '' ); ?> onclick="swChb(cRole, true);" /> <label for="role-yes"><?php _e('Yes'); ?></label>
|
423 |
-
<input type="radio" name="role" value="no" id="role-no" <?php echo ( isset($role_no_selected) ? $role_no_selected : '' ); ?> onclick="swChb(cRole, false)" /> <label for="role-no"><?php _e('No'); ?>, <?php _e('only to', DW_L10N_DOMAIN); ?>:</label><br />
|
424 |
-
<div id="role-select" class="condition-select" <?php echo ( isset($role_condition_select_style) ? $role_condition_select_style : '' ); ?>>
|
425 |
-
<?php foreach ( $roles as $rid => $role ) { ?>
|
426 |
-
<input type="checkbox" id="role_act_<?php echo $rid; ?>" name="role_act[]" value="<?php echo $rid; ?>" <?php echo ( isset($role_act) && count($role_act) > 0 && in_array($rid, $role_act) ) ? 'checked="checked"' : ''; ?> /> <label for="role_act_<?php echo $rid; ?>"><?php echo $role; ?></label><br />
|
427 |
-
<?php } ?>
|
428 |
-
</div>
|
429 |
-
</div><!-- end dynwid_conf -->
|
430 |
-
|
431 |
-
<!-- Date //-->
|
432 |
-
<h4><b><?php _e('Date'); ?></b><?php echo ( count($opt_date) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
433 |
-
<div class="dynwid_conf">
|
434 |
-
<?php _e('Show widget always?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" onclick="divToggle('date');" /><br />
|
435 |
-
<?php $DW->dumpOpt($opt_date); ?>
|
436 |
-
<div>
|
437 |
-
<div id="date" class="infotext">
|
438 |
-
<?php _e('Next to the above role option, the date option is also very powerfull. You\'ve been warned!', DW_L10N_DOMAIN); ?><br />
|
439 |
-
<?php _e('Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/calendar.gif" alt="Calendar" /><br />
|
440 |
-
<?php _e('Date ranges can be made by entering a From AND a To date<br />
|
441 |
-
When you want the widget to be displayed from a specific date, only fill in the From date<br />
|
442 |
-
When you want the widget to stop displaying on a specific date, only fill in the To date.
|
443 |
-
', DW_L10N_DOMAIN); ?>
|
444 |
-
</div>
|
445 |
-
</div>
|
446 |
-
<input type="radio" name="date" value="yes" id="date-yes" <?php echo ( isset($date_yes_selected) ? $date_yes_selected : '' ); ?> onclick="swTxt(cDate, true);" /> <label for="date-yes"><?php _e('Yes'); ?></label>
|
447 |
-
<input type="radio" name="date" value="no" id="date-no" <?php echo ( isset($date_no_selected) ? $date_no_selected : '' ); ?> onclick="swTxt(cDate, false)" /> <label for="date-no"><?php _e('No'); ?>, <?php _e('only', DW_L10N_DOMAIN); ?>:</label><br />
|
448 |
-
<div id="date-select" class="condition-select">
|
449 |
-
<table border="0" cellspacing="0" cellpadding="0">
|
450 |
-
<tr>
|
451 |
-
<td style="width:45px;"><?php _e('From', DW_L10N_DOMAIN); ?></td>
|
452 |
-
<td><input id="date_start" type="text" name="date_start" value="<?php echo ( isset($date_start) ? $date_start : '' ); ?>" size="10" maxlength="10" /> <img src="<?php echo $DW->plugin_url; ?>img/calendar.gif" alt="Calendar" onclick="showCalendar('date_start')" /></td>
|
453 |
-
</tr>
|
454 |
-
<tr>
|
455 |
-
<td style="width:45px;"><?php _e('To', DW_L10N_DOMAIN); ?></td>
|
456 |
-
<td><input id="date_end" type="text" name="date_end" value="<?php echo ( isset($date_end) ? $date_end : '' ); ?>" size="10" maxlength="10" /> <img src="<?php echo $DW->plugin_url; ?>img/calendar.gif" alt="Calendar" onclick="showCalendar('date_end')" /></td>
|
457 |
-
</tr>
|
458 |
-
</table>
|
459 |
-
</div>
|
460 |
-
</div><!-- end dynwid_conf -->
|
461 |
-
|
462 |
-
<!-- Language (WPML) //-->
|
463 |
-
<?php if ( $DW->wpml ) { /* WPML */ ?>
|
464 |
-
<h4><b><?php _e('Language (WPML)', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_wpml) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
465 |
-
<div class="dynwid_conf">
|
466 |
-
<?php _e('Show widget default on all languages?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" onclick="divToggle('wpml');" /><br /><br />
|
467 |
-
<?php $DW->dumpOpt($opt_wpml); ?>
|
468 |
-
<div>
|
469 |
-
<div id="wpml" class="infotext">
|
470 |
-
<?php _e('Using this option can override all other options.'); ?><br />
|
471 |
-
</div>
|
472 |
-
</div>
|
473 |
-
<input type="radio" name="wpml" value="yes" id="wpml-yes" <?php echo ( isset($wpml_yes_selected) ? $wpml_yes_selected : '' ); ?> /> <label for="wpml-yes"><?php _e('Yes'); ?></label>
|
474 |
-
<input type="radio" name="wpml" value="no" id="wpml-no" <?php echo ( isset($wpml_no_selected) ? $wpml_no_selected : '' ); ?> /> <label for="wpml-no"><?php _e('No'); ?></label><br />
|
475 |
-
<?php _e('Except the languages', DW_L10N_DOMAIN); ?>:<br />
|
476 |
-
<div id="wpml-select" class="condition-select" <?php echo ( isset($wpml_condition_select_style) ? $wpml_condition_select_style : '' ); ?>>
|
477 |
-
<?php foreach ( $wpml_langs as $code => $lang ) { ?>
|
478 |
-
<input type="checkbox" id="wpml_act_<?php echo $lang['code']; ?>" name="wpml_act[]" value="<?php echo $lang['code']; ?>" <?php echo ( count($wpml_act) > 0 && in_array($lang['code'], $wpml_act) ) ? 'checked="checked"' : ''; ?> /> <label for="wpml_act_<?php echo $lang['code']; ?>"><?php echo $lang['display_name']; ?></label><br />
|
479 |
-
<?php } ?>
|
480 |
-
</div>
|
481 |
-
</div><!-- end dynwid_conf -->
|
482 |
-
<?php } ?>
|
483 |
-
|
484 |
-
<!-- Front Page //-->
|
485 |
-
<?php if ( get_option('show_on_front') != 'page' ) { ?>
|
486 |
-
<h4><b><?php _e('Front Page', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_frontpage) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
487 |
-
<div class="dynwid_conf">
|
488 |
-
<?php _e('Show widget on the front page?', DW_L10N_DOMAIN) ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" onclick="divToggle('frontpage');" /><br />
|
489 |
-
<?php $DW->dumpOpt($opt_frontpage); ?>
|
490 |
-
<div>
|
491 |
-
<div id="frontpage" class="infotext">
|
492 |
-
<?php _e('This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />
|
493 |
-
When a static page is set, you can use the options for the static pages below.
|
494 |
-
', DW_L10N_DOMAIN); ?>
|
495 |
-
</div>
|
496 |
-
</div>
|
497 |
-
<input type="radio" name="front-page" value="yes" id="front-page-yes" <?php echo ( isset($frontpage_yes_selected) ? $frontpage_yes_selected : '' ); ?> /> <label for="front-page-yes"><?php _e('Yes'); ?></label>
|
498 |
-
<input type="radio" name="front-page" value="no" id="front-page-no" <?php echo ( isset($frontpage_no_selected) ? $frontpage_no_selected : '' ); ?> /> <label for="front-page-no"><?php _e('No'); ?></label>
|
499 |
-
</div><!-- end dynwid_conf -->
|
500 |
-
<?php } ?>
|
501 |
-
|
502 |
-
<!-- Single Posts //-->
|
503 |
-
<h4><b><?php _e('Single Posts', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_single) > 0 || count($opt_single_author) > 0 || count($opt_single_category) > 0 || count($opt_single_post) > 0 || count($opt_single_tag) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
504 |
-
<div class="dynwid_conf">
|
505 |
-
<?php _e('Show widget default on single posts?', DW_L10N_DOMAIN) ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="Click to toggle info" onclick="divToggle('single')" /><br />
|
506 |
-
<?php $DW->dumpOpt($opt_single); ?>
|
507 |
-
<div>
|
508 |
-
<div id="single" class="infotext">
|
509 |
-
<?php _e('When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won\'t be applied.
|
510 |
-
If you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.
|
511 |
-
', DW_L10N_DOMAIN); ?>
|
512 |
-
</div>
|
513 |
-
</div>
|
514 |
-
<input type="radio" name="single" value="yes" id="single-yes" <?php echo ( isset($single_yes_selected) ? $single_yes_selected : '' ); ?> /> <label for="single-yes"><?php _e('Yes'); ?></label>
|
515 |
-
<input type="radio" name="single" value="no" id="single-no" <?php echo ( isset($single_no_selected) ? $single_no_selected : '' ); ?> /> <label for="single-no"><?php _e('No'); ?></label><br />
|
516 |
-
<?php $DW->dumpOpt($opt_individual); ?>
|
517 |
-
<input type="checkbox" id="individual" name="individual" value="1" <?php echo ( $individual ) ? 'checked="checked"' : ''; ?> onclick="chkInPosts()" />
|
518 |
-
<label for="individual"><?php _e('Make exception rule available to individual posts and tags.', DW_L10N_DOMAIN) ?> <?php echo ( isset($count_individual) ? $count_individual : '' ); ?></label>
|
519 |
-
<img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="Click to toggle info" onclick="divToggle('individual_post_tag')" />
|
520 |
-
<div>
|
521 |
-
<div id="individual_post_tag" class="infotext">
|
522 |
-
<?php _e('When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.
|
523 |
-
You can set the exception rule for tags in the single Edit Tag Panel (go to <a href="edit-tags.php?taxonomy=post_tag">Post Tags</a>,
|
524 |
-
click a tag), For individual posts in the <a href="post-new.php">New</a> or <a href="edit.php">Edit</a> Posts panel.
|
525 |
-
Exception rules for tags and individual posts in any combination work independantly, but will always be counted as one exception.<br />
|
526 |
-
Please note when exception rules are set for Author and/or Category, these will be removed.
|
527 |
-
', DW_L10N_DOMAIN); ?>
|
528 |
-
</div>
|
529 |
-
</div>
|
530 |
-
<?php foreach ( $single_post_act as $singlepost ) { ?>
|
531 |
-
<input type="hidden" name="single_post_act[]" value="<?php echo $singlepost; ?>" />
|
532 |
-
<?php } ?>
|
533 |
-
<?php foreach ( $single_tag_act as $tag ) { ?>
|
534 |
-
<input type="hidden" name="single_tag_act[]" value="<?php echo $tag; ?>" />
|
535 |
-
<?php } ?>
|
536 |
-
<table border="0" cellspacing="0" cellpadding="0">
|
537 |
-
<tr>
|
538 |
-
<td valign="top">
|
539 |
-
<?php _e('Except the posts by author', DW_L10N_DOMAIN); ?>:
|
540 |
-
<?php $DW->dumpOpt($opt_single_author); ?>
|
541 |
-
<div id="single-author-select" class="condition-select" <?php echo ( isset($author_condition_select_style) ? $author_condition_select_style : '' ); ?>>
|
542 |
-
<?php foreach ( $authors as $author ) { ?>
|
543 |
-
<?php $js_author_array[ ] = '\'single_author_act_' . $author->ID . '\''; ?>
|
544 |
-
<input type="checkbox" id="single_author_act_<?php echo $author->ID; ?>" name="single_author_act[]" value="<?php echo $author->ID; ?>" <?php echo ( isset($single_author_act) && count($single_author_act) > 0 && in_array($author->ID,$single_author_act) ) ? 'checked="checked"' : ''; ?> onclick="ci('single_author_act_<?php echo $author->ID; ?>')" /> <label for="single_author_act_<?php echo $author->ID; ?>"><?php echo $author->display_name; ?></label><br />
|
545 |
-
<?php } ?>
|
546 |
-
</div>
|
547 |
-
</td>
|
548 |
-
<td style="width:10px"></td>
|
549 |
-
<td valign="top">
|
550 |
-
<?php _e('Except the posts in category', DW_L10N_DOMAIN); ?>: <?php echo ( $DW->wpml ? $wpml_icon : '' ); ?>
|
551 |
-
<?php $DW->dumpOpt($opt_single_category); ?>
|
552 |
-
<div id="single-category-select" class="condition-select" <?php echo ( isset($category_condition_select_style) ? $category_condition_select_style : '' ); ?>>
|
553 |
-
<?php foreach ( $category as $cat ) { ?>
|
554 |
-
<?php $js_category_array[ ] = '\'single_cat_act_' . $cat->cat_ID . '\''; ?>
|
555 |
-
<input type="checkbox" id="single_cat_act_<?php echo $cat->cat_ID; ?>" name="single_category_act[]" value="<?php echo $cat->cat_ID; ?>" <?php echo ( isset($single_category_act) && count($single_category_act) > 0 && in_array($cat->cat_ID,$single_category_act) ) ? 'checked="checked"' : ''; ?> onclick="ci('single_cat_act_<?php echo $cat->cat_ID; ?>')" /> <label for="single_cat_act_<?php echo $cat->cat_ID; ?>"><?php echo $cat->name; ?></label><br />
|
556 |
-
<?php } ?>
|
557 |
-
</div>
|
558 |
-
</td>
|
559 |
-
</tr>
|
560 |
-
</table>
|
561 |
-
</div><!-- end dynwid_conf -->
|
562 |
-
|
563 |
-
<!-- Pages //-->
|
564 |
-
<h4><b><?php _e('Pages'); ?></b> <?php echo ( count($opt_page) > 0 ? ' <span class="hasoptions">*</span>' : '' ) . ( $DW->wpml ? $wpml_icon : '' ); ?></h4>
|
565 |
-
<div class="dynwid_conf">
|
566 |
-
<?php _e('Show widget default on static pages?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" onclick="divToggle('pages');" /><br />
|
567 |
-
<?php $DW->dumpOpt($opt_page); ?>
|
568 |
-
<div>
|
569 |
-
<div id="pages" class="infotext">
|
570 |
-
<?php
|
571 |
-
$childs_infotext = __('Checking the "All childs" option, makes the exception rule apply
|
572 |
-
to the parent and all items under it in all levels. Also future items
|
573 |
-
under the parent. It\'s not possible to apply an exception rule to
|
574 |
-
"All childs" without the parent.', DW_L10N_DOMAIN);
|
575 |
-
echo $childs_infotext;
|
576 |
-
?>
|
577 |
-
</div>
|
578 |
-
</div>
|
579 |
-
<input type="radio" name="page" value="yes" id="page-yes" <?php echo ( isset($page_yes_selected) ? $page_yes_selected : '' ); ?> /> <label for="page-yes"><?php _e('Yes'); ?></label>
|
580 |
-
<input type="radio" name="page" value="no" id="page-no" <?php echo ( isset($page_no_selected) ? $page_no_selected : '' ); ?> /> <label for="page-no"><?php _e('No'); ?></label><br />
|
581 |
-
<?php _e('Except the page(s)', DW_L10N_DOMAIN); ?>:<br />
|
582 |
-
<div id="page-select" class="condition-select" <?php echo ( isset($page_condition_select_style) ? $page_condition_select_style : '' ); ?>>
|
583 |
-
<div style="position:relative;left:-15px">
|
584 |
<?php
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
594 |
}
|
595 |
-
return $arr;
|
596 |
}
|
597 |
-
$pagemap = getPageChilds(array(), 0, array());
|
598 |
-
|
599 |
-
// Creating childmap
|
600 |
-
function childPageMap($arr, $id) {
|
601 |
-
$pg = get_pages('child_of=' . $id);
|
602 |
-
foreach ($pg as $p ) {
|
603 |
-
$i[ ] = $p->ID;
|
604 |
-
$arr[$p->ID] = array();
|
605 |
-
$a = &$arr[$p->ID];
|
606 |
-
$a = childPageMap($a, $p->ID);
|
607 |
-
}
|
608 |
-
return $arr;
|
609 |
-
}
|
610 |
-
$childmap = childPageMap(array(), 0);
|
611 |
-
|
612 |
-
function prtPgs($pages, $childmap, $page_act, $page_childs_act, $static_page) {
|
613 |
-
foreach ( $pages as $pid => $childs ) {
|
614 |
-
$page = get_page($pid);
|
615 |
-
|
616 |
-
echo '<div style="position:relative;left:15px;">';
|
617 |
-
echo '<input type="checkbox" id="page_act_' . $page->ID . '" name="page_act[]" value="' . $page->ID . '" ' . ( isset($page_act) && count($page_act) > 0 && in_array($page->ID, $page_act) ? 'checked="checked"' : '' ) . ' onchange="chkChild(' . $pid . ')" /> <label for="page_act_' . $page->ID . '">' . $page->post_title . ' ' . ( get_option('show_on_front') == 'page' && isset($static_page[$page->ID]) ? '(' . $static_page[$page->ID] . ')' : '' ) . '</label><br />';
|
618 |
-
|
619 |
-
echo '<div style="position:relative;left:15px;">';
|
620 |
-
echo '<input type="checkbox" id="child_' . $pid . '" name="page_childs_act[]" value="' . $pid . '" ' . ( isset($page_childs_act) && count($page_childs_act) > 0 && in_array($pid, $page_childs_act) ? 'checked="checked"' : '' ) . ' onchange="chkParent(' . $pid . ')" /> <label for="child_' . $pid . '"><em>' . __('All childs', DW_L10N_DOMAIN) . '</em></label><br />';
|
621 |
-
echo '</div>';
|
622 |
-
|
623 |
-
if ( count($childs) > 0 ) {
|
624 |
-
prtPgs($childs, $childmap, $page_act, $page_childs_act, $static_page);
|
625 |
-
}
|
626 |
-
echo '</div>';
|
627 |
-
}
|
628 |
-
}
|
629 |
-
prtPgs($pagemap, $childmap, $page_act, $page_childs_act, $static_page);
|
630 |
-
?>
|
631 |
-
</div>
|
632 |
-
</div>
|
633 |
-
|
634 |
-
</div><!-- end dynwid_conf -->
|
635 |
-
|
636 |
-
<!-- Author Pages //-->
|
637 |
-
<h4><b><?php _e('Author Pages', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_author) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
638 |
-
<div class="dynwid_conf">
|
639 |
-
<?php _e('Show widget default on author pages?', DW_L10N_DOMAIN); ?><br />
|
640 |
-
<?php $DW->dumpOpt($opt_author); ?>
|
641 |
-
<input type="radio" name="author" value="yes" id="author-yes" <?php echo ( isset($author_yes_selected) ? $author_yes_selected : '' ); ?> /> <label for="author-yes"><?php _e('Yes'); ?></label>
|
642 |
-
<input type="radio" name="author" value="no" id="author-no" <?php echo ( isset($author_no_selected) ? $author_no_selected : '' ); ?> /> <label for="author-no"><?php _e('No'); ?></label><br />
|
643 |
-
<?php _e('Except the author(s)', DW_L10N_DOMAIN); ?>:<br />
|
644 |
-
<div id="author-select" class="condition-select" <?php echo ( isset($author_condition_select_style) ? $author_condition_select_style : '' ); ?>>
|
645 |
-
<?php foreach ( $authors as $author ) { ?>
|
646 |
-
<input type="checkbox" id="author_act_<?php echo $author->ID; ?>" name="author_act[]" value="<?php echo $author->ID; ?>" <?php echo ( isset($author_act) && count($author_act) > 0 && in_array($author->ID,$author_act) ) ? 'checked="checked"' : ''; ?> /> <label for="author_act_<?php echo $author->ID; ?>"><?php echo $author->display_name; ?></label><br />
|
647 |
-
<?php } ?></div>
|
648 |
-
</div><!-- end dynwid_conf -->
|
649 |
-
|
650 |
-
<!-- Category Pages //-->
|
651 |
-
<h4><b><?php _e('Category Pages', DW_L10N_DOMAIN); ?></b> <?php echo ( count($opt_category) > 0 ? ' <span class="hasoptions">*</span>' : '' ) . ( $DW->wpml ? $wpml_icon : '' ); ?></h4>
|
652 |
-
<div class="dynwid_conf">
|
653 |
-
<?php _e('Show widget default on category pages?', DW_L10N_DOMAIN); ?><br />
|
654 |
-
<?php $DW->dumpOpt($opt_category); ?>
|
655 |
-
<input type="radio" name="category" value="yes" id="category-yes" <?php echo ( isset($category_yes_selected) ? $category_yes_selected : '' ); ?> /> <label for="category-yes"><?php _e('Yes'); ?></label>
|
656 |
-
<input type="radio" name="category" value="no" id="category-no" <?php echo ( isset($category_no_selected) ? $category_no_selected : '' ); ?> /> <label for="category-no"><?php _e('No'); ?></label><br />
|
657 |
-
<?php _e('Except the categories', DW_L10N_DOMAIN); ?>:<br />
|
658 |
-
<div id="category-select" class="condition-select" <?php echo ( isset($category_condition_select_style) ? $category_condition_select_style : '' ); ?>>
|
659 |
-
<?php foreach ( $category as $cat ) { ?>
|
660 |
-
<input type="checkbox" id="cat_act_<?php echo $cat->cat_ID; ?>" name="category_act[]" value="<?php echo $cat->cat_ID; ?>" <?php echo ( isset($category_act) && count($category_act) > 0 && in_array($cat->cat_ID,$category_act) ) ? 'checked="checked"' : ''; ?> /> <label for="cat_act_<?php echo $cat->cat_ID; ?>"><?php echo $cat->name; ?></label><br />
|
661 |
-
<?php } ?>
|
662 |
-
</div>
|
663 |
-
</div><!-- end dynwid_conf -->
|
664 |
-
|
665 |
-
<!-- Archive Pages //-->
|
666 |
-
<h4><b><?php _e('Archive Pages', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_archive) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
667 |
-
<div class="dynwid_conf">
|
668 |
-
<?php _e('Show widget on archive pages', DW_L10N_DOMAIN); ?>? <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="Click to toggle info" onclick="divToggle('archive')" /><br />
|
669 |
-
<?php $DW->dumpOpt($opt_archive); ?>
|
670 |
-
<div>
|
671 |
-
<div id="archive" class="infotext">
|
672 |
-
<?php _e('This option does not include Author and Category Pages.', DW_L10N_DOMAIN); ?>
|
673 |
-
</div>
|
674 |
-
</div>
|
675 |
-
<input type="radio" name="archive" value="yes" id="archive-yes" <?php echo ( isset($archive_yes_selected) ? $archive_yes_selected : '' ); ?> /> <label for="archive-yes"><?php _e('Yes'); ?></label>
|
676 |
-
<input type="radio" name="archive" value="no" id="archive-no" <?php echo ( isset($archive_no_selected) ? $archive_no_selected : '' ); ?> /> <label for="archive-no"><?php _e('No'); ?></label>
|
677 |
-
|
678 |
-
</div><!-- end dynwid_conf -->
|
679 |
-
|
680 |
-
<!-- Error Page //-->
|
681 |
-
<h4><b><?php _e('Error Page', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_e404) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
682 |
-
<div class="dynwid_conf">
|
683 |
-
<?php _e('Show widget on the error page?', DW_L10N_DOMAIN); ?><br />
|
684 |
-
<?php $DW->dumpOpt($opt_e404); ?>
|
685 |
-
<input type="radio" name="e404" value="yes" id="e404-yes" <?php echo ( isset($e404_yes_selected) ? $e404_yes_selected : '' ); ?> /> <label for="e404-yes"><?php _e('Yes'); ?></label>
|
686 |
-
<input type="radio" name="e404" value="no" id="e404-no" <?php echo ( isset($e404_no_selected) ? $e404_no_selected : '' ); ?> /> <label for="e404-no"><?php _e('No'); ?></label>
|
687 |
-
</div><!-- end dynwid_conf -->
|
688 |
-
|
689 |
-
<!-- Search Page //-->
|
690 |
-
<h4><b><?php _e('Search Page', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_search) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
691 |
-
<div class="dynwid_conf">
|
692 |
-
<?php _e('Show widget on the search page?', DW_L10N_DOMAIN); ?><br />
|
693 |
-
<?php $DW->dumpOpt($opt_search); ?>
|
694 |
-
<input type="radio" name="search" value="yes" id="search-yes" <?php echo ( isset($search_yes_selected) ? $search_yes_selected : '' ); ?> /> <label for="search-yes"><?php _e('Yes'); ?></label>
|
695 |
-
<input type="radio" name="search" value="no" id="search-no" <?php echo ( isset($search_no_selected) ? $search_no_selected : '' ); ?> /> <label for="search-no"><?php _e('No'); ?></label>
|
696 |
-
</div><!-- end dynwid_conf -->
|
697 |
-
|
698 |
-
<!-- Custom Post Type //-->
|
699 |
-
<?php
|
700 |
-
/* WordPress 3.0 and higher: Custom Post Types */
|
701 |
-
if ( version_compare($GLOBALS['wp_version'], '3.0', '>=') ) {
|
702 |
-
function getCPostChilds($type, $arr, $id, $i) {
|
703 |
-
$post = get_posts('post_type=' . $type . '&post_parent=' . $id);
|
704 |
-
foreach ($post as $p ) {
|
705 |
-
if (! in_array($p->ID, $i) ) {
|
706 |
-
$i[ ] = $p->ID;
|
707 |
-
$arr[$p->ID] = array();
|
708 |
-
$a = &$arr[$p->ID];
|
709 |
-
$a = getCPostChilds($type, $a, $p->ID, &$i);
|
710 |
-
}
|
711 |
-
}
|
712 |
-
return $arr;
|
713 |
-
}
|
714 |
-
|
715 |
-
function childCPostMap($type, $arr, $id) {
|
716 |
-
$post = get_posts('post_type=' . $type . '&post_parent=' . $id);
|
717 |
-
foreach ($post as $p ) {
|
718 |
-
$i[ ] = $p->ID;
|
719 |
-
$arr[$p->ID] = array();
|
720 |
-
$a = &$arr[$p->ID];
|
721 |
-
$a = childCPostMap($type, $a, $p->ID);
|
722 |
-
}
|
723 |
-
return $arr;
|
724 |
-
}
|
725 |
-
|
726 |
-
function prtCPost($type, $ctid, $posts, $childmap, $posts_act, $posts_childs_act) {
|
727 |
-
foreach ( $posts as $pid => $childs ) {
|
728 |
-
$post = get_post($pid);
|
729 |
-
|
730 |
-
echo '<div style="position:relative;left:15px;">';
|
731 |
-
echo '<input type="checkbox" id="' . $type . '_act_' . $post->ID . '" name="' . $type . '_act[]" value="' . $post->ID . '" ' . ( isset($posts_act) && count($posts_act) > 0 && in_array($post->ID, $posts_act) ? 'checked="checked"' : '' ) . ' onchange="chkCPChild(\'' . $type . '\',' . $pid . ')" /> <label for="' . $type . '_act_' . $post->ID . '">' . $post->post_title . '</label><br />';
|
732 |
-
|
733 |
-
if ( $ctid->hierarchical ) {
|
734 |
-
echo '<div style="position:relative;left:15px;">';
|
735 |
-
echo '<input type="checkbox" id="' . $type . '_child_' . $pid . '" name="' . $type . '_childs_act[]" value="' . $pid . '" ' . ( isset($posts_childs_act) && count($posts_childs_act) > 0 && in_array($pid, $posts_childs_act) ? 'checked="checked"' : '' ) . ' onchange="chkCPParent(\'' . $type . '\',' . $pid . ')" /> <label for="' . $type . '_child_' . $pid . '"><em>' . __('All childs', DW_L10N_DOMAIN) . '</em></label><br />';
|
736 |
-
echo '</div>';
|
737 |
-
}
|
738 |
-
|
739 |
-
if ( count($childs) > 0 ) {
|
740 |
-
prtCPost($type, $ctid, $childs, $childmap, $posts_act, $posts_childs_act);
|
741 |
-
}
|
742 |
-
echo '</div>';
|
743 |
-
}
|
744 |
-
}
|
745 |
-
|
746 |
-
$args = array(
|
747 |
-
'public' => TRUE,
|
748 |
-
'_builtin' => FALSE
|
749 |
-
);
|
750 |
-
$post_types = get_post_types($args, 'objects', 'and');
|
751 |
-
|
752 |
-
foreach ( $post_types as $type => $ctid ) {
|
753 |
-
// Prepare
|
754 |
-
$custom_yes_selected = 'checked="checked"';
|
755 |
-
$opt_custom = $DW->getOptions($_GET['id'], $type);
|
756 |
-
if ( count($opt_custom) > 0 ) {
|
757 |
-
$custom_act = array();
|
758 |
-
$custom_childs_act = array();
|
759 |
-
|
760 |
-
foreach ( $opt_custom as $custom_condition ) {
|
761 |
-
if ( $custom_condition['maintype'] == $type ) {
|
762 |
-
if ( $custom_condition['name'] == 'default' || empty($custom_condition['name']) ) {
|
763 |
-
$custom_default = $custom_condition['value'];
|
764 |
-
} else {
|
765 |
-
$custom_act[ ] = $custom_condition['name'];
|
766 |
-
}
|
767 |
-
}
|
768 |
-
}
|
769 |
-
|
770 |
-
if ( $custom_default == '0' ) {
|
771 |
-
$custom_no_selected = $custom_yes_selected;
|
772 |
-
unset($custom_yes_selected);
|
773 |
-
}
|
774 |
-
|
775 |
-
// -- Childs
|
776 |
-
if ( $ctid->hierarchical ) {
|
777 |
-
$opt_custom_childs = $DW->getOptions($_GET['id'], $type . '-childs');
|
778 |
-
if ( count($opt_custom_childs) > 0 ) {
|
779 |
-
foreach ( $opt_custom_childs as $child_condition ) {
|
780 |
-
if ( $child_condition['name'] != 'default' ) {
|
781 |
-
$custom_childs_act[ ] = $child_condition['name'];
|
782 |
-
}
|
783 |
-
}
|
784 |
-
}
|
785 |
-
}
|
786 |
-
}
|
787 |
-
|
788 |
-
$loop = new WP_Query( array('post_type' => $type) );
|
789 |
-
if ( $loop->post_count > DW_LIST_LIMIT ) {
|
790 |
-
$custom_condition_select_style = DW_LIST_STYLE;
|
791 |
-
}
|
792 |
-
|
793 |
-
$cpmap = getCPostChilds($type, array(), 0, array());
|
794 |
-
$childmap = childCPostMap($type, array(), 0);
|
795 |
-
|
796 |
-
// Output
|
797 |
-
echo '<h4><b>' . __('Custom Post Type') . ' <em>' . $ctid->label . '</em></b> ' . ( count($opt_custom) > 0 ? ' <span class="hasoptions">*</span>' : '' ) . ( $DW->wpml ? $wpml_icon : '' ) . '</h4>';
|
798 |
-
echo '<div class="dynwid_conf">';
|
799 |
-
echo __('Show widget on', DW_L10N_DOMAIN) . ' ' . $ctid->label . '? ' . ( $ctid->hierarchical ? '<img src="' . $DW->plugin_url . 'img/info.gif" alt="info" onclick="divToggle(\'custom_' . $type . '\');" />' : '' ) . '<br />';
|
800 |
-
echo '<input type="hidden" name="post_types[]" value="' . $type . '" />';
|
801 |
-
$DW->dumpOpt($opt_custom);
|
802 |
-
|
803 |
-
if ( $ctid->hierarchical ) {
|
804 |
-
echo '<div>';
|
805 |
-
echo '<div id="custom_' . $type . '" class="infotext">';
|
806 |
-
echo $childs_infotext;
|
807 |
-
echo '</div>';
|
808 |
-
echo '</div>';
|
809 |
-
}
|
810 |
-
|
811 |
-
echo '<input type="radio" name="' . $type . '" value="yes" id="' . $type . '-yes" ' . ( isset($custom_yes_selected) ? $custom_yes_selected : '' ) . ' /> <label for="' . $type . '-yes">' . __('Yes') . '</label> ';
|
812 |
-
echo '<input type="radio" name="' . $type . '" value="no" id="' . $type . '-no" ' . ( isset($custom_no_selected) ? $custom_no_selected : '' ) . ' /> <label for="' . $type . '-no">' . __('No') . '</label><br />';
|
813 |
-
|
814 |
-
echo __('Except for') . ':<br />';
|
815 |
-
echo '<div id="' . $type . '-select" class="condition-select" ' . ( isset($custom_condition_select_style) ? $custom_condition_select_style : '' ) . '>';
|
816 |
-
|
817 |
-
echo '<div style="position:relative;left:-15px">';
|
818 |
-
prtCPost($type, $ctid, $cpmap, $childmap, $custom_act, $custom_childs_act);
|
819 |
-
echo '</div>';
|
820 |
-
|
821 |
-
echo '</div>';
|
822 |
-
echo '</div><!-- end dynwid_conf -->';
|
823 |
-
}
|
824 |
-
} // end version compare >= WP 3.0
|
825 |
-
?>
|
826 |
-
|
827 |
-
<!-- WPSC Category //-->
|
828 |
-
<?php
|
829 |
-
// WPEC
|
830 |
-
if ( $DW->wpsc ) {
|
831 |
-
?>
|
832 |
-
<h4><b><?php _e('WPSC Category', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_wpsc) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
833 |
-
<div class="dynwid_conf">
|
834 |
-
<?php _e('Show widget default on WPSC categories?', DW_L10N_DOMAIN); ?><br />
|
835 |
-
<?php $DW->dumpOpt($opt_wpsc); ?>
|
836 |
-
<input type="radio" name="wpsc" value="yes" id="wpsc-yes" <?php echo ( isset($wpsc_yes_selected) ? $wpsc_yes_selected : '' ); ?> /> <label for="wpsc-yes"><?php _e('Yes'); ?></label>
|
837 |
-
<input type="radio" name="wpsc" value="no" id="wpsc-no" <?php echo ( isset($wpsc_no_selected) ? $wpsc_no_selected : '' ); ?> /> <label for="wpsc-no"><?php _e('No'); ?></label><br />
|
838 |
-
<?php _e('Except the categories', DW_L10N_DOMAIN); ?>:<br />
|
839 |
-
<div id="wpsc-select" class="condition-select" <?php echo ( isset($wpsc_condition_select_style) ? $wpsc_condition_select_style : '' ); ?>>
|
840 |
-
<?php foreach ( $wpsc as $id => $cat ) { ?>
|
841 |
-
<input type="checkbox" id="wpsc_act_<?php echo $id; ?>" name="wpsc_act[]" value="<?php echo $id; ?>" <?php echo ( count($wpsc_act) > 0 && in_array($id, $wpsc_act) ) ? 'checked="checked"' : ''; ?> /> <label for="wpsc_act_<?php echo $id; ?>"><?php echo $cat; ?></label><br />
|
842 |
-
<?php } ?>
|
843 |
-
</div>
|
844 |
-
</div><!-- end dynwid_conf -->
|
845 |
-
<?php
|
846 |
-
} // end DW->wpsc
|
847 |
?>
|
848 |
|
849 |
</div><!-- end dynwid -->
|
@@ -852,7 +116,7 @@ h4 {
|
|
852 |
<div style="float:left">
|
853 |
<input class="button-primary" type="submit" value="<?php _e('Save'); ?>" />
|
854 |
</div>
|
855 |
-
<?php $url = (! empty($_GET['returnurl'])
|
856 |
<div style="float:left">
|
857 |
<input class="button-secondary" type="button" value="<?php _e('Return', DW_L10N_DOMAIN); ?>" onclick="location.href='<?php echo $url; ?>'" />
|
858 |
</div>
|
@@ -860,6 +124,7 @@ h4 {
|
|
860 |
</form>
|
861 |
|
862 |
<script type="text/javascript">
|
|
|
863 |
function chkInPosts() {
|
864 |
var posts = <?php echo count($single_post_act); ?>;
|
865 |
var tags = <?php echo count($single_tag_act); ?>;
|
@@ -932,7 +197,9 @@ h4 {
|
|
932 |
jQuery(id).datepicker({
|
933 |
dateFormat: 'yy-mm-dd',
|
934 |
minDate: new Date(<?php echo date('Y, n - 1, j'); ?>),
|
935 |
-
onClose: function() {
|
|
|
|
|
936 |
});
|
937 |
jQuery(id).datepicker('show');
|
938 |
});
|
@@ -984,4 +251,5 @@ h4 {
|
|
984 |
autoHeight: false,
|
985 |
});
|
986 |
});
|
|
|
987 |
</script>
|
2 |
/**
|
3 |
* dynwid_admin_edit.php - Options settings
|
4 |
*
|
5 |
+
* @version $Id: dynwid_admin_edit.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
*/
|
8 |
|
9 |
// WPML Plugin support
|
10 |
if ( defined('ICL_PLUGIN_PATH') && file_exists(ICL_PLUGIN_PATH . DW_WPML_API) ) {
|
11 |
$DW->wpml = TRUE;
|
12 |
+
$wpml_icon = '<img src="' . $DW->plugin_url . DW_WPML_ICON . '" alt="WMPL" title="Dynamic Widgets syncs with other languages of these pages via WPML" style="position:relative;top:2px;" />';
|
|
|
|
|
13 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
?>
|
15 |
|
16 |
<style type="text/css">
|
72 |
|
73 |
<?php } ?>
|
74 |
|
75 |
+
<h3><?php _e('Edit options for the widget', DW_L10N_DOMAIN); ?>: <em><?php echo $DW->getName($_GET['id']); ?></em></h3>
|
76 |
<?php echo ( DW_DEBUG ) ? '<pre>ID = ' . $_GET['id'] . '</pre><br />' : ''; ?>
|
77 |
|
78 |
<form action="<?php echo trailingslashit(admin_url()) . 'themes.php?page=dynwid-config&action=edit&id=' . $_GET['id']; ?>" method="post">
|
81 |
<input type="hidden" name="widget_id" value="<?php echo $_GET['id']; ?>" />
|
82 |
<input type="hidden" name="returnurl" value="<?php echo ( isset($_GET['returnurl']) ? urldecode($_GET['returnurl']) : '' ); ?>" />
|
83 |
|
|
|
84 |
<div id="dynwid">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
<?php
|
86 |
+
$modules = array(
|
87 |
+
'role' => 'Role',
|
88 |
+
'date' => 'Date',
|
89 |
+
'wpml' => 'Language (WPML)',
|
90 |
+
'useragent' => 'UserAgent',
|
91 |
+
'frontpage' => 'Front Page',
|
92 |
+
'single' => 'Single Posts',
|
93 |
+
'attachment' => 'Attachment',
|
94 |
+
'pages' => 'Pages',
|
95 |
+
'author' => 'Author Pages',
|
96 |
+
'category' => 'Category Pages',
|
97 |
+
'archive' => 'Archive Pages',
|
98 |
+
'error' => 'Error Page',
|
99 |
+
'search' => 'Search Page',
|
100 |
+
'custompost' => 'Custom Post Types',
|
101 |
+
'wpec' => 'WPSC Category',
|
102 |
+
'bp' => 'BuddyPress'
|
103 |
+
);
|
104 |
+
foreach ( $modules as $key => $mod ) {
|
105 |
+
$modfile = DW_MODULES . $key . '_module.php';
|
106 |
+
echo '<!-- ' . $mod . ' //-->';
|
107 |
+
if ( file_exists($modfile) ) {
|
108 |
+
include($modfile);
|
109 |
}
|
|
|
110 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
?>
|
112 |
|
113 |
</div><!-- end dynwid -->
|
116 |
<div style="float:left">
|
117 |
<input class="button-primary" type="submit" value="<?php _e('Save'); ?>" />
|
118 |
</div>
|
119 |
+
<?php $url = (! empty($_GET['returnurl']) ? urldecode($_GET['returnurl']) : trailingslashit(admin_url()) ) . 'themes.php?page=dynwid-config'; ?>
|
120 |
<div style="float:left">
|
121 |
<input class="button-secondary" type="button" value="<?php _e('Return', DW_L10N_DOMAIN); ?>" onclick="location.href='<?php echo $url; ?>'" />
|
122 |
</div>
|
124 |
</form>
|
125 |
|
126 |
<script type="text/javascript">
|
127 |
+
/* <![CDATA[ */
|
128 |
function chkInPosts() {
|
129 |
var posts = <?php echo count($single_post_act); ?>;
|
130 |
var tags = <?php echo count($single_tag_act); ?>;
|
197 |
jQuery(id).datepicker({
|
198 |
dateFormat: 'yy-mm-dd',
|
199 |
minDate: new Date(<?php echo date('Y, n - 1, j'); ?>),
|
200 |
+
onClose: function() {
|
201 |
+
jQuery(id).datepicker('destroy');
|
202 |
+
}
|
203 |
});
|
204 |
jQuery(id).datepicker('show');
|
205 |
});
|
251 |
autoHeight: false,
|
252 |
});
|
253 |
});
|
254 |
+
/* ]]> */
|
255 |
</script>
|
dynwid_admin_overview.php
CHANGED
@@ -2,7 +2,8 @@
|
|
2 |
/**
|
3 |
* dynwid_admin_overview.php - Overview page
|
4 |
*
|
5 |
-
* @version $Id: dynwid_admin_overview.php
|
|
|
6 |
*/
|
7 |
|
8 |
// Special case: Reset action needs to go back to overview.
|
@@ -85,54 +86,73 @@
|
|
85 |
|
86 |
<div class="clear"><br /><br /></div>
|
87 |
|
88 |
-
<a href="#" onclick="jQuery('#un').slideToggle('fast'); return false;"><?php _e('Advanced'); ?> ></a>
|
89 |
<div id="un" style="display:none">
|
90 |
-
<br />
|
|
|
|
|
|
|
91 |
<?php
|
92 |
$c = $DW->checkWPhead();
|
93 |
switch ( $c ) {
|
94 |
case 0:
|
95 |
-
echo '<span style="color:red">wp_head() is NOT called (at the most obvious place)</span>';
|
96 |
break;
|
97 |
|
98 |
case 1:
|
99 |
-
echo '<span style="color:green">wp_head() is called</span>';
|
100 |
break;
|
101 |
|
102 |
case 2:
|
103 |
-
echo '<span style="color:orange">Unable to determine if wp_head() is called</span>';
|
104 |
break;
|
105 |
}
|
106 |
?>
|
107 |
.<br />
|
108 |
-
|
109 |
<br />
|
|
|
|
|
110 |
<div id="method">
|
111 |
<form id="dynwid_method" action="" method="get">
|
112 |
<input type="hidden" name="page" value="dynwid-config" />
|
113 |
<input type="hidden" name="action" value="dynwid_set_method" />
|
114 |
-
<input type="checkbox" id="oldmethod" name="oldmethod" <?php echo ( get_option('dynwid_old_method') ? 'checked="checked"' : '' ) ?> onchange="document.getElementById('dynwid_method').submit();" /> <label for="oldmethod"
|
115 |
</form>
|
116 |
</div>
|
117 |
|
118 |
-
|
119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
<br /><br />
|
121 |
<div id="dump">
|
122 |
<form action="" method="get">
|
123 |
<input type="hidden" name="action" value="dynwid_dump" />
|
124 |
-
<input class="button-primary" type="submit" value="Create dump" />
|
125 |
</form>
|
126 |
</div>
|
127 |
|
128 |
<br /><br />
|
129 |
|
130 |
-
|
|
|
131 |
<br /><br />
|
132 |
<div id="uninstall">
|
133 |
<form action="" method="get">
|
134 |
<input type="hidden" name="action" value="dynwid_uninstall" />
|
135 |
-
<input class="button-primary" type="submit" value="Uninstall" onclick="if ( confirm('Are you sure you want to uninstall Dynamic Widgets?') ) { return true; } return false;" />
|
136 |
</form>
|
137 |
</div>
|
138 |
</div>
|
2 |
/**
|
3 |
* dynwid_admin_overview.php - Overview page
|
4 |
*
|
5 |
+
* @version $Id: dynwid_admin_overview.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
*/
|
8 |
|
9 |
// Special case: Reset action needs to go back to overview.
|
86 |
|
87 |
<div class="clear"><br /><br /></div>
|
88 |
|
89 |
+
<a href="#" onclick="jQuery('#un').slideToggle('fast'); return false;"><?php _e('Advanced', DW_L10N_DOMAIN); ?> ></a>
|
90 |
<div id="un" style="display:none">
|
91 |
+
<br />
|
92 |
+
|
93 |
+
<!-- wp_head() check //-->
|
94 |
+
<strong><?php _e('wp_head() check:', DW_L10N_DOMAIN); ?> </strong>
|
95 |
<?php
|
96 |
$c = $DW->checkWPhead();
|
97 |
switch ( $c ) {
|
98 |
case 0:
|
99 |
+
echo '<span style="color:red">' . __('wp_head() is NOT called (at the most obvious place)', DW_L10N_DOMAIN) . '</span>';
|
100 |
break;
|
101 |
|
102 |
case 1:
|
103 |
+
echo '<span style="color:green">' . __('wp_head() is called', DW_L10N_DOMAIN) . '</span>';
|
104 |
break;
|
105 |
|
106 |
case 2:
|
107 |
+
echo '<span style="color:orange">' . __('Unable to determine if wp_head() is called', DW_L10N_DOMAIN) . '</span>';
|
108 |
break;
|
109 |
}
|
110 |
?>
|
111 |
.<br />
|
|
|
112 |
<br />
|
113 |
+
|
114 |
+
<!-- method //-->
|
115 |
<div id="method">
|
116 |
<form id="dynwid_method" action="" method="get">
|
117 |
<input type="hidden" name="page" value="dynwid-config" />
|
118 |
<input type="hidden" name="action" value="dynwid_set_method" />
|
119 |
+
<input type="checkbox" id="oldmethod" name="oldmethod" <?php echo ( get_option('dynwid_old_method') ? 'checked="checked"' : '' ) ?> onchange="document.getElementById('dynwid_method').submit();" /> <label for="oldmethod"><?php _e('Use \'OLD\' method', DW_L10N_DOMAIN); ?></label>
|
120 |
</form>
|
121 |
</div>
|
122 |
|
123 |
+
<?php if ( defined('WPSC_TABLE_PRODUCT_CATEGORIES') ) { ?>
|
124 |
+
<!-- WPEC dump //--><br /><br />
|
125 |
+
<?php _e('When upgrading to WPEC 3.8 the Dynamic Widgets rules for WPEC are lost. The WPEC dump gives you an overview of the rules before the update.'); ?><br />
|
126 |
+
<span style="color:red;font-weight:bold;"><?php _e('WARNING'); ?></span> <?php _e('This only works correct when you did not add or change anything in the Dynamic Widgets rules.'); ?>
|
127 |
+
<br /><br />
|
128 |
+
<div id="wpec_dump">
|
129 |
+
<form action="" method="get">
|
130 |
+
<input type="hidden" name="action" value="wpec_dump" />
|
131 |
+
<input class="button-primary" type="submit" value="<?php _e('Create WPEC dump', DW_L10N_DOMAIN); ?>" />
|
132 |
+
</form>
|
133 |
+
</div>
|
134 |
+
<br /><br />
|
135 |
+
<?php } ?>
|
136 |
+
|
137 |
+
<!-- dump //-->
|
138 |
+
<?php _e('For debugging purposes it is possible you\'re asked to create a dump. Click the \'Create dump\' button and save the text file.', DW_L10N_DOMAIN); ?>
|
139 |
<br /><br />
|
140 |
<div id="dump">
|
141 |
<form action="" method="get">
|
142 |
<input type="hidden" name="action" value="dynwid_dump" />
|
143 |
+
<input class="button-primary" type="submit" value="<?php _e('Create dump', DW_L10N_DOMAIN); ?>" />
|
144 |
</form>
|
145 |
</div>
|
146 |
|
147 |
<br /><br />
|
148 |
|
149 |
+
<!-- uninstall //-->
|
150 |
+
<?php _e('When you deceide not to use this plugin anymore (sorry to hear that!). You can cleanup all settings and data related to this plugin by clicking on the \'Uninstall\' button. This process is irreversible! After the cleanup the plugin is deactivated automaticly.', DW_L10N_DOMAIN); ?>
|
151 |
<br /><br />
|
152 |
<div id="uninstall">
|
153 |
<form action="" method="get">
|
154 |
<input type="hidden" name="action" value="dynwid_uninstall" />
|
155 |
+
<input class="button-primary" type="submit" value="<?php _e('Uninstall', DW_L10N_DOMAIN); ?>" onclick="if ( confirm('Are you sure you want to uninstall Dynamic Widgets?') ) { return true; } return false;" />
|
156 |
</form>
|
157 |
</div>
|
158 |
</div>
|
dynwid_admin_save.php
CHANGED
@@ -2,17 +2,29 @@
|
|
2 |
/**
|
3 |
* dynwid_admin_save.php - Saving options to the database
|
4 |
*
|
5 |
-
* @version $Id: dynwid_admin_save.php
|
|
|
6 |
*/
|
7 |
|
8 |
// Security - nonce
|
9 |
check_admin_referer('plugin-name-action_edit_' . $_POST['widget_id']);
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
14 |
die();
|
15 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
// Date check
|
18 |
if ( $_POST['date'] == 'no' ) {
|
@@ -20,7 +32,7 @@
|
|
20 |
$date_end = trim($_POST['date_end']);
|
21 |
|
22 |
if (! preg_match('/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/', $date_start) && ! preg_match('/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/', $date_end) ) {
|
23 |
-
wp_redirect(
|
24 |
die();
|
25 |
}
|
26 |
|
@@ -38,70 +50,13 @@
|
|
38 |
}
|
39 |
|
40 |
if (! empty($date_start) && ! empty($date_end) ) {
|
41 |
-
if ( mktime(0,0,0
|
42 |
-
wp_redirect(
|
43 |
die();
|
44 |
}
|
45 |
}
|
46 |
}
|
47 |
|
48 |
-
$fields = array('front-page', 'single', 'page', 'author', 'category', 'archive', 'e404', 'search');
|
49 |
-
$work = FALSE;
|
50 |
-
foreach ( $fields as $field ) {
|
51 |
-
if ( $_POST[$field] == 'yes' ) {
|
52 |
-
$work = TRUE;
|
53 |
-
break;
|
54 |
-
}
|
55 |
-
}
|
56 |
-
if (! $work ) {
|
57 |
-
$fields = array('single_author_act',
|
58 |
-
'single_category_act',
|
59 |
-
'single_post_act',
|
60 |
-
'single_tag_act',
|
61 |
-
'page_act',
|
62 |
-
'author_act',
|
63 |
-
'category_act'
|
64 |
-
);
|
65 |
-
foreach ( $fields as $field ) {
|
66 |
-
if ( count($_POST[$field]) > 0 ) {
|
67 |
-
$work = TRUE;
|
68 |
-
break;
|
69 |
-
}
|
70 |
-
}
|
71 |
-
}
|
72 |
-
if (! $work) {
|
73 |
-
if ( $_POST['individual'] == '1' ) {
|
74 |
-
$work = TRUE;
|
75 |
-
}
|
76 |
-
}
|
77 |
-
|
78 |
-
// Custom Types (WP >= 3.0)
|
79 |
-
if ( version_compare($GLOBALS['wp_version'], '3.0', '>=') && isset($_POST['post_types']) ) {
|
80 |
-
if (! $work ) {
|
81 |
-
foreach ( $_POST['post_types'] as $type ) {
|
82 |
-
if ( $_POST[$type] == 'yes' ) {
|
83 |
-
$work = TRUE;
|
84 |
-
break;
|
85 |
-
}
|
86 |
-
}
|
87 |
-
}
|
88 |
-
|
89 |
-
if (! $work ) {
|
90 |
-
foreach ( $_POST['post_types'] as $type ) {
|
91 |
-
$field = $type . '_act';
|
92 |
-
if ( count($_POST[$field]) > 0 ) {
|
93 |
-
$work = TRUE;
|
94 |
-
break;
|
95 |
-
}
|
96 |
-
}
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
-
if (! $work ) {
|
101 |
-
wp_redirect( get_option('siteurl') . $_SERVER['REQUEST_URI'] . '&work=none' );
|
102 |
-
die();
|
103 |
-
}
|
104 |
-
|
105 |
// Removing already set options
|
106 |
$DW->resetOptions($_POST['widget_id']);
|
107 |
|
@@ -125,6 +80,13 @@
|
|
125 |
}
|
126 |
}
|
127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
// Front Page
|
129 |
if ( isset($_POST['front-page']) && $_POST['front-page'] == 'no' ) {
|
130 |
$DW->addSingleOption($_POST['widget_id'], 'front-page');
|
@@ -162,6 +124,11 @@
|
|
162 |
}
|
163 |
}
|
164 |
|
|
|
|
|
|
|
|
|
|
|
165 |
// Pages
|
166 |
if ( isset($_POST['page_act']) && count($_POST['page_act']) > 0 ) {
|
167 |
$DW->addMultiOption($_POST['widget_id'], 'page', $_POST['page'], $_POST['page_act']);
|
@@ -177,7 +144,6 @@
|
|
177 |
$childs_act[ ] = $act;
|
178 |
}
|
179 |
}
|
180 |
-
|
181 |
$DW->addMultiOption($_POST['widget_id'], 'page-childs', $_POST['page'], $childs_act);
|
182 |
}
|
183 |
|
@@ -232,6 +198,12 @@
|
|
232 |
$DW->addMultiOption($_POST['widget_id'], $type . '-childs', $_POST[$type], $childs_act);
|
233 |
}
|
234 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
}
|
236 |
|
237 |
// WPML PLugin support
|
@@ -248,6 +220,20 @@
|
|
248 |
$DW->addSingleOption($_POST['widget_id'], 'wpsc');
|
249 |
}
|
250 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
// Redirect to ReturnURL
|
252 |
if (! empty($_POST['returnurl']) ) {
|
253 |
$q = array();
|
@@ -259,7 +245,7 @@
|
|
259 |
$query_string = substr($_POST['returnurl'], ($pos+1));
|
260 |
$args = explode('&', $query_string);
|
261 |
foreach ( $args as $arg ) {
|
262 |
-
@list($name
|
263 |
if ( $name != 'dynwid_save' && $name != 'widget_id' ) {
|
264 |
$q[ ] = $name . '=' . $value;
|
265 |
}
|
2 |
/**
|
3 |
* dynwid_admin_save.php - Saving options to the database
|
4 |
*
|
5 |
+
* @version $Id: dynwid_admin_save.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
*/
|
8 |
|
9 |
// Security - nonce
|
10 |
check_admin_referer('plugin-name-action_edit_' . $_POST['widget_id']);
|
11 |
|
12 |
+
/* Checking basic stuff */
|
13 |
+
// Role
|
14 |
+
if ( $_POST['role'] == 'no' && count($_POST['role_act']) == 0 ) {
|
15 |
+
wp_redirect( $_SERVER['REQUEST_URI'] . '&work=none' );
|
16 |
die();
|
17 |
}
|
18 |
+
// Browser
|
19 |
+
if ( $_POST['browser'] == 'no' && count($_POST['role_act']) == 0 ) {
|
20 |
+
wp_redirect( $_SERVER['REQUEST_URI'] . '&work=none' );
|
21 |
+
die();
|
22 |
+
}
|
23 |
+
// WPML
|
24 |
+
if ( isset($_POST['wpml']) && $_POST['wpml'] == 'no' && count($_POST['wpml_act']) == 0 ) {
|
25 |
+
wp_redirect( $_SERVER['REQUEST_URI'] . '&work=none' );
|
26 |
+
die();
|
27 |
+
}
|
28 |
|
29 |
// Date check
|
30 |
if ( $_POST['date'] == 'no' ) {
|
32 |
$date_end = trim($_POST['date_end']);
|
33 |
|
34 |
if (! preg_match('/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/', $date_start) && ! preg_match('/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/', $date_end) ) {
|
35 |
+
wp_redirect( $_SERVER['REQUEST_URI'] . '&work=none' );
|
36 |
die();
|
37 |
}
|
38 |
|
50 |
}
|
51 |
|
52 |
if (! empty($date_start) && ! empty($date_end) ) {
|
53 |
+
if ( mktime(0, 0, 0, $date_start_month, $date_start_day, $date_start_year) > mktime(0, 0, 0, $date_end_month, $date_end_day, $date_end_year) ) {
|
54 |
+
wp_redirect( $_SERVER['REQUEST_URI'] . '&work=nonedate' );
|
55 |
die();
|
56 |
}
|
57 |
}
|
58 |
}
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
// Removing already set options
|
61 |
$DW->resetOptions($_POST['widget_id']);
|
62 |
|
80 |
}
|
81 |
}
|
82 |
|
83 |
+
// Browser
|
84 |
+
if ( isset($_POST['browser_act']) && count($_POST['browser_act']) > 0 ) {
|
85 |
+
$DW->addMultiOption($_POST['widget_id'], 'browser', $_POST['browser'], $_POST['browser_act']);
|
86 |
+
} else if ( isset($_POST['browser']) && $_POST['browser'] == 'no' ) {
|
87 |
+
$DW->addSingleOption($_POST['widget_id'], 'browser');
|
88 |
+
}
|
89 |
+
|
90 |
// Front Page
|
91 |
if ( isset($_POST['front-page']) && $_POST['front-page'] == 'no' ) {
|
92 |
$DW->addSingleOption($_POST['widget_id'], 'front-page');
|
124 |
}
|
125 |
}
|
126 |
|
127 |
+
// Attachment
|
128 |
+
if ( $_POST['attachment'] == 'no' ) {
|
129 |
+
$DW->addSingleOption($_POST['widget_id'], 'attachment');
|
130 |
+
}
|
131 |
+
|
132 |
// Pages
|
133 |
if ( isset($_POST['page_act']) && count($_POST['page_act']) > 0 ) {
|
134 |
$DW->addMultiOption($_POST['widget_id'], 'page', $_POST['page'], $_POST['page_act']);
|
144 |
$childs_act[ ] = $act;
|
145 |
}
|
146 |
}
|
|
|
147 |
$DW->addMultiOption($_POST['widget_id'], 'page-childs', $_POST['page'], $childs_act);
|
148 |
}
|
149 |
|
198 |
$DW->addMultiOption($_POST['widget_id'], $type . '-childs', $_POST[$type], $childs_act);
|
199 |
}
|
200 |
}
|
201 |
+
|
202 |
+
if ( isset($_POST['cp_archive_act']) && count($_POST['cp_archive_act']) > 0 ) {
|
203 |
+
$DW->addMultiOption($_POST['widget_id'], 'cp_archive', $_POST['cp_archive'], $_POST['cp_archive_act']);
|
204 |
+
} else if ( $_POST['cp_archive'] == 'no' ) {
|
205 |
+
$DW->addSingleOption($_POST['widget_id'], 'cp_archive');
|
206 |
+
}
|
207 |
}
|
208 |
|
209 |
// WPML PLugin support
|
220 |
$DW->addSingleOption($_POST['widget_id'], 'wpsc');
|
221 |
}
|
222 |
|
223 |
+
// BP Plugin support
|
224 |
+
if ( isset($_POST['bp_act']) && count($_POST['bp_act']) > 0 ) {
|
225 |
+
$DW->addMultiOption($_POST['widget_id'], 'bp', $_POST['bp'], $_POST['bp_act']);
|
226 |
+
} else if ( isset($_POST['bp']) && $_POST['bp'] == 'no' ) {
|
227 |
+
$DW->addSingleOption($_POST['widget_id'], 'bp');
|
228 |
+
}
|
229 |
+
|
230 |
+
// BP Plugin support (Groups)
|
231 |
+
if ( isset($_POST['bp_group_act']) && count($_POST['bp_group_act']) > 0 ) {
|
232 |
+
$DW->addMultiOption($_POST['widget_id'], 'bp-group', $_POST['bp-group'], $_POST['bp_group_act']);
|
233 |
+
} else if ( isset($_POST['bp-group']) && $_POST['bp-group'] == 'no' ) {
|
234 |
+
$DW->addSingleOption($_POST['widget_id'], 'bp-group');
|
235 |
+
}
|
236 |
+
|
237 |
// Redirect to ReturnURL
|
238 |
if (! empty($_POST['returnurl']) ) {
|
239 |
$q = array();
|
245 |
$query_string = substr($_POST['returnurl'], ($pos+1));
|
246 |
$args = explode('&', $query_string);
|
247 |
foreach ( $args as $arg ) {
|
248 |
+
@list($name, $value) = explode('=', $arg);
|
249 |
if ( $name != 'dynwid_save' && $name != 'widget_id' ) {
|
250 |
$q[ ] = $name . '=' . $value;
|
251 |
}
|
dynwid_class.php
CHANGED
@@ -2,10 +2,13 @@
|
|
2 |
/**
|
3 |
* dynwid_class.php - Dynamic Widgets Class (PHP5)
|
4 |
*
|
5 |
-
* @version $Id: dynwid_class.php
|
|
|
6 |
*/
|
7 |
|
8 |
class dynWid {
|
|
|
|
|
9 |
public $custom_post_type;
|
10 |
private $dbtable;
|
11 |
public $dwoptions;
|
@@ -20,6 +23,7 @@
|
|
20 |
public $removelist;
|
21 |
public $sidebars;
|
22 |
public $plugin_url;
|
|
|
23 |
public $userrole;
|
24 |
public $whereami;
|
25 |
private $wpdb;
|
@@ -36,20 +40,23 @@
|
|
36 |
$this->custom_post_type = FALSE;
|
37 |
$this->firstmessage = TRUE;
|
38 |
$this->listmade = FALSE;
|
39 |
-
$this->overrule_maintype = array('date', 'role', 'wpml');
|
40 |
$this->registered_sidebars = $GLOBALS['wp_registered_sidebars'];
|
41 |
$this->registered_widget_controls = &$GLOBALS['wp_registered_widget_controls'];
|
42 |
$this->registered_widgets = &$GLOBALS['wp_registered_widgets'];
|
43 |
$this->removelist = array();
|
44 |
$this->sidebars = wp_get_sidebars_widgets();
|
|
|
45 |
$this->plugin_url = WP_PLUGIN_URL . '/' . str_replace( basename(__FILE__), '', plugin_basename(__FILE__) );
|
46 |
|
47 |
$this->dwoptions = array(
|
48 |
'role' => __('Role'),
|
49 |
'date' => __('Date'),
|
|
|
50 |
'wpml' => __('Language', DW_L10N_DOMAIN),
|
51 |
'front-page' => __('Front Page', DW_L10N_DOMAIN),
|
52 |
'single' => __('Single Posts', DW_L10N_DOMAIN),
|
|
|
53 |
'page' => __('Pages'),
|
54 |
'author' => __('Author Pages', DW_L10N_DOMAIN),
|
55 |
'category' => __('Category Pages', DW_L10N_DOMAIN),
|
@@ -83,6 +90,10 @@
|
|
83 |
$this->enabled = TRUE;
|
84 |
}
|
85 |
|
|
|
|
|
|
|
|
|
86 |
// WPML Plugin support
|
87 |
$this->wpml = FALSE;
|
88 |
|
@@ -178,10 +189,12 @@
|
|
178 |
}
|
179 |
|
180 |
public function detectPage() {
|
181 |
-
|
182 |
return 'front-page';
|
183 |
} else if ( is_home() && get_option('show_on_front') == 'page' ) {
|
184 |
return 'home';
|
|
|
|
|
185 |
} else if ( is_single() ) {
|
186 |
return 'single';
|
187 |
} else if ( is_page() ) {
|
@@ -190,6 +203,8 @@
|
|
190 |
return 'author';
|
191 |
} else if ( is_category() ) {
|
192 |
return 'category';
|
|
|
|
|
193 |
} else if ( is_archive() && ! is_category() && ! is_author() ) {
|
194 |
return 'archive';
|
195 |
} else if ( is_404() ) {
|
@@ -248,13 +263,37 @@
|
|
248 |
}
|
249 |
|
250 |
$query = "SELECT DISTINCT widget_id FROM " . $this->dbtable . "
|
251 |
-
WHERE
|
|
|
|
|
|
|
|
|
252 |
$results = $this->wpdb->get_results($query);
|
253 |
foreach ( $results as $myrow ) {
|
254 |
$this->dynwid_list[ ] = $myrow->widget_id;
|
255 |
}
|
256 |
}
|
257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
public function getName($id, $type = 'W') {
|
259 |
switch ( $type ) {
|
260 |
case 'S':
|
@@ -296,7 +335,11 @@
|
|
296 |
}
|
297 |
$query = "SELECT widget_id, maintype, name, value FROM " . $this->dbtable . "
|
298 |
WHERE widget_id LIKE '" . $widget_id . "'
|
299 |
-
AND (maintype LIKE '" . $maintype . "%'
|
|
|
|
|
|
|
|
|
300 |
ORDER BY maintype, name";
|
301 |
}
|
302 |
$results = $this->wpdb->get_results($query);
|
2 |
/**
|
3 |
* dynwid_class.php - Dynamic Widgets Class (PHP5)
|
4 |
*
|
5 |
+
* @version $Id: dynwid_class.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
*/
|
8 |
|
9 |
class dynWid {
|
10 |
+
public $bp; // BuddyPress Plugin support
|
11 |
+
public $bp_groups; // BuddyPress Plugin support (groups)
|
12 |
public $custom_post_type;
|
13 |
private $dbtable;
|
14 |
public $dwoptions;
|
23 |
public $removelist;
|
24 |
public $sidebars;
|
25 |
public $plugin_url;
|
26 |
+
public $useragent;
|
27 |
public $userrole;
|
28 |
public $whereami;
|
29 |
private $wpdb;
|
40 |
$this->custom_post_type = FALSE;
|
41 |
$this->firstmessage = TRUE;
|
42 |
$this->listmade = FALSE;
|
43 |
+
$this->overrule_maintype = array('date', 'role', 'browser', 'wpml');
|
44 |
$this->registered_sidebars = $GLOBALS['wp_registered_sidebars'];
|
45 |
$this->registered_widget_controls = &$GLOBALS['wp_registered_widget_controls'];
|
46 |
$this->registered_widgets = &$GLOBALS['wp_registered_widgets'];
|
47 |
$this->removelist = array();
|
48 |
$this->sidebars = wp_get_sidebars_widgets();
|
49 |
+
$this->useragent = $this->getBrowser();
|
50 |
$this->plugin_url = WP_PLUGIN_URL . '/' . str_replace( basename(__FILE__), '', plugin_basename(__FILE__) );
|
51 |
|
52 |
$this->dwoptions = array(
|
53 |
'role' => __('Role'),
|
54 |
'date' => __('Date'),
|
55 |
+
'browser' => __('Browser', DW_L10N_DOMAIN),
|
56 |
'wpml' => __('Language', DW_L10N_DOMAIN),
|
57 |
'front-page' => __('Front Page', DW_L10N_DOMAIN),
|
58 |
'single' => __('Single Posts', DW_L10N_DOMAIN),
|
59 |
+
'attachment' => __('Attachments', DW_L10N_DOMAIN),
|
60 |
'page' => __('Pages'),
|
61 |
'author' => __('Author Pages', DW_L10N_DOMAIN),
|
62 |
'category' => __('Category Pages', DW_L10N_DOMAIN),
|
90 |
$this->enabled = TRUE;
|
91 |
}
|
92 |
|
93 |
+
// BuddyPress Plugin support
|
94 |
+
$this->bp = FALSE;
|
95 |
+
$this->bp_groups = FALSE;
|
96 |
+
|
97 |
// WPML Plugin support
|
98 |
$this->wpml = FALSE;
|
99 |
|
189 |
}
|
190 |
|
191 |
public function detectPage() {
|
192 |
+
if ( is_front_page() && get_option('show_on_front') == 'posts' ) {
|
193 |
return 'front-page';
|
194 |
} else if ( is_home() && get_option('show_on_front') == 'page' ) {
|
195 |
return 'home';
|
196 |
+
} else if ( is_attachment() ) {
|
197 |
+
return 'attachment'; // must be before is_single(), otherwise detects as 'single'
|
198 |
} else if ( is_single() ) {
|
199 |
return 'single';
|
200 |
} else if ( is_page() ) {
|
203 |
return 'author';
|
204 |
} else if ( is_category() ) {
|
205 |
return 'category';
|
206 |
+
} else if ( function_exists('is_post_type_archive') && is_post_type_archive() ) {
|
207 |
+
return 'cp_archive'; // must be before is_archive(), otherwise detects as 'archive' in WP 3.1.0
|
208 |
} else if ( is_archive() && ! is_category() && ! is_author() ) {
|
209 |
return 'archive';
|
210 |
} else if ( is_404() ) {
|
263 |
}
|
264 |
|
265 |
$query = "SELECT DISTINCT widget_id FROM " . $this->dbtable . "
|
266 |
+
WHERE maintype LIKE '" . $whereami . "%'
|
267 |
+
OR maintype = 'role'
|
268 |
+
OR maintype = 'date'
|
269 |
+
OR maintype = 'browser'
|
270 |
+
OR maintype = 'wpml'";
|
271 |
$results = $this->wpdb->get_results($query);
|
272 |
foreach ( $results as $myrow ) {
|
273 |
$this->dynwid_list[ ] = $myrow->widget_id;
|
274 |
}
|
275 |
}
|
276 |
|
277 |
+
private function getBrowser() {
|
278 |
+
global $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome;
|
279 |
+
|
280 |
+
if ( $is_gecko ) {
|
281 |
+
return 'gecko';
|
282 |
+
} else if ( $is_IE ) {
|
283 |
+
return 'msie';
|
284 |
+
} else if ( $is_opera ) {
|
285 |
+
return 'opera';
|
286 |
+
} else if ( $is_NS4 ) {
|
287 |
+
return 'ns';
|
288 |
+
} else if ( $is_safari ) {
|
289 |
+
return 'safari';
|
290 |
+
} else if ( $is_chrome ) {
|
291 |
+
return 'chrome';
|
292 |
+
} else {
|
293 |
+
return 'undef';
|
294 |
+
}
|
295 |
+
}
|
296 |
+
|
297 |
public function getName($id, $type = 'W') {
|
298 |
switch ( $type ) {
|
299 |
case 'S':
|
335 |
}
|
336 |
$query = "SELECT widget_id, maintype, name, value FROM " . $this->dbtable . "
|
337 |
WHERE widget_id LIKE '" . $widget_id . "'
|
338 |
+
AND (maintype LIKE '" . $maintype . "%'
|
339 |
+
OR maintype = 'role'
|
340 |
+
OR maintype = 'date'
|
341 |
+
OR maintype = 'browser'
|
342 |
+
OR maintype = 'wpml')
|
343 |
ORDER BY maintype, name";
|
344 |
}
|
345 |
$results = $this->wpdb->get_results($query);
|
dynwid_class_php4.php
CHANGED
@@ -3,10 +3,13 @@
|
|
3 |
* dynwid_class_php4.php - Dynamic Widgets Class for PHP4
|
4 |
* Needs at least PHP 4.1.0
|
5 |
*
|
6 |
-
* @version $Id: dynwid_class_php4.php
|
|
|
7 |
*/
|
8 |
|
9 |
class dynWid {
|
|
|
|
|
10 |
var $custom_post_type;
|
11 |
var $dbtable; /* private */
|
12 |
var $enabled;
|
@@ -21,6 +24,7 @@
|
|
21 |
var $removelist;
|
22 |
var $sidebars;
|
23 |
var $plugin_url;
|
|
|
24 |
var $userrole;
|
25 |
var $whereami;
|
26 |
var $wpdb; /* private */
|
@@ -42,20 +46,23 @@
|
|
42 |
$this->custom_post_type = FALSE;
|
43 |
$this->firstmessage = TRUE;
|
44 |
$this->listmade = FALSE;
|
45 |
-
$this->overrule_maintype = array('date', 'role', 'wpml');
|
46 |
$this->registered_sidebars = $GLOBALS['wp_registered_sidebars'];
|
47 |
$this->registered_widget_controls = &$GLOBALS['wp_registered_widget_controls'];
|
48 |
$this->registered_widgets = &$GLOBALS['wp_registered_widgets'];
|
49 |
$this->removelist = array();
|
50 |
$this->sidebars = wp_get_sidebars_widgets();
|
|
|
51 |
$this->plugin_url = WP_PLUGIN_URL . '/' . str_replace( basename(__FILE__), '', plugin_basename(__FILE__) );
|
52 |
|
53 |
$this->dwoptions = array(
|
54 |
'role' => __('Role'),
|
55 |
'date' => __('Date'),
|
|
|
56 |
'wpml' => __('Language', DW_L10N_DOMAIN),
|
57 |
'front-page' => __('Front Page', DW_L10N_DOMAIN),
|
58 |
'single' => __('Single Posts', DW_L10N_DOMAIN),
|
|
|
59 |
'page' => __('Pages'),
|
60 |
'author' => __('Author Pages', DW_L10N_DOMAIN),
|
61 |
'category' => __('Category Pages', DW_L10N_DOMAIN),
|
@@ -89,6 +96,10 @@
|
|
89 |
$this->enabled = TRUE;
|
90 |
}
|
91 |
|
|
|
|
|
|
|
|
|
92 |
// WPML Plugin support
|
93 |
$this->wpml = FALSE;
|
94 |
|
@@ -185,10 +196,12 @@
|
|
185 |
}
|
186 |
|
187 |
function detectPage() {
|
188 |
-
|
189 |
return 'front-page';
|
190 |
} else if ( is_home() && get_option('show_on_front') == 'page' ) {
|
191 |
return 'home';
|
|
|
|
|
192 |
} else if ( is_single() ) {
|
193 |
return 'single';
|
194 |
} else if ( is_page() ) {
|
@@ -197,6 +210,8 @@
|
|
197 |
return 'author';
|
198 |
} else if ( is_category() ) {
|
199 |
return 'category';
|
|
|
|
|
200 |
} else if ( is_archive() && ! is_category() && ! is_author() ) {
|
201 |
return 'archive';
|
202 |
} else if ( is_404() ) {
|
@@ -255,13 +270,38 @@
|
|
255 |
}
|
256 |
|
257 |
$query = "SELECT DISTINCT widget_id FROM " . $this->dbtable . "
|
258 |
-
WHERE
|
|
|
|
|
|
|
|
|
259 |
$results = $this->wpdb->get_results($query);
|
260 |
foreach ( $results as $myrow ) {
|
261 |
$this->dynwid_list[ ] = $myrow->widget_id;
|
262 |
}
|
263 |
}
|
264 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
function getName($id, $type = 'W') {
|
266 |
switch ( $type ) {
|
267 |
case 'S':
|
@@ -303,7 +343,11 @@
|
|
303 |
}
|
304 |
$query = "SELECT widget_id, maintype, name, value FROM " . $this->dbtable . "
|
305 |
WHERE widget_id LIKE '" . $widget_id . "'
|
306 |
-
AND (maintype LIKE '" . $maintype . "%'
|
|
|
|
|
|
|
|
|
307 |
ORDER BY maintype, name";
|
308 |
}
|
309 |
$results = $this->wpdb->get_results($query);
|
3 |
* dynwid_class_php4.php - Dynamic Widgets Class for PHP4
|
4 |
* Needs at least PHP 4.1.0
|
5 |
*
|
6 |
+
* @version $Id: dynwid_class_php4.php 348295 2011-02-20 20:13:21Z qurl $
|
7 |
+
* @copyright 2011 Jacco Drabbe
|
8 |
*/
|
9 |
|
10 |
class dynWid {
|
11 |
+
var $bp; /* BuddyPress Plugin support */
|
12 |
+
var $bp_groups; /* BuddyPress Plugin support (groups) */
|
13 |
var $custom_post_type;
|
14 |
var $dbtable; /* private */
|
15 |
var $enabled;
|
24 |
var $removelist;
|
25 |
var $sidebars;
|
26 |
var $plugin_url;
|
27 |
+
var $useragent;
|
28 |
var $userrole;
|
29 |
var $whereami;
|
30 |
var $wpdb; /* private */
|
46 |
$this->custom_post_type = FALSE;
|
47 |
$this->firstmessage = TRUE;
|
48 |
$this->listmade = FALSE;
|
49 |
+
$this->overrule_maintype = array('date', 'role', 'browser', 'wpml');
|
50 |
$this->registered_sidebars = $GLOBALS['wp_registered_sidebars'];
|
51 |
$this->registered_widget_controls = &$GLOBALS['wp_registered_widget_controls'];
|
52 |
$this->registered_widgets = &$GLOBALS['wp_registered_widgets'];
|
53 |
$this->removelist = array();
|
54 |
$this->sidebars = wp_get_sidebars_widgets();
|
55 |
+
$this->useragent = $this->getBrowser();
|
56 |
$this->plugin_url = WP_PLUGIN_URL . '/' . str_replace( basename(__FILE__), '', plugin_basename(__FILE__) );
|
57 |
|
58 |
$this->dwoptions = array(
|
59 |
'role' => __('Role'),
|
60 |
'date' => __('Date'),
|
61 |
+
'browser' => __('Browser', DW_L10N_DOMAIN),
|
62 |
'wpml' => __('Language', DW_L10N_DOMAIN),
|
63 |
'front-page' => __('Front Page', DW_L10N_DOMAIN),
|
64 |
'single' => __('Single Posts', DW_L10N_DOMAIN),
|
65 |
+
'attachment' => __('Attachments', DW_L10N_DOMAIN),
|
66 |
'page' => __('Pages'),
|
67 |
'author' => __('Author Pages', DW_L10N_DOMAIN),
|
68 |
'category' => __('Category Pages', DW_L10N_DOMAIN),
|
96 |
$this->enabled = TRUE;
|
97 |
}
|
98 |
|
99 |
+
// BuddyPress Plugin support
|
100 |
+
$this->bp = FALSE;
|
101 |
+
$this->bp_groups = FALSE;
|
102 |
+
|
103 |
// WPML Plugin support
|
104 |
$this->wpml = FALSE;
|
105 |
|
196 |
}
|
197 |
|
198 |
function detectPage() {
|
199 |
+
if ( is_front_page() && get_option('show_on_front') == 'posts' ) {
|
200 |
return 'front-page';
|
201 |
} else if ( is_home() && get_option('show_on_front') == 'page' ) {
|
202 |
return 'home';
|
203 |
+
} else if ( is_attachment() ) {
|
204 |
+
return 'attachment'; // must be before is_single(), otherwise detects as 'single'
|
205 |
} else if ( is_single() ) {
|
206 |
return 'single';
|
207 |
} else if ( is_page() ) {
|
210 |
return 'author';
|
211 |
} else if ( is_category() ) {
|
212 |
return 'category';
|
213 |
+
} else if ( function_exists('is_post_type_archive') && is_post_type_archive() ) {
|
214 |
+
return 'cp_archive'; // must be before is_archive(), otherwise detects as 'archive' in WP 3.1.0
|
215 |
} else if ( is_archive() && ! is_category() && ! is_author() ) {
|
216 |
return 'archive';
|
217 |
} else if ( is_404() ) {
|
270 |
}
|
271 |
|
272 |
$query = "SELECT DISTINCT widget_id FROM " . $this->dbtable . "
|
273 |
+
WHERE maintype LIKE '" . $whereami . "%'
|
274 |
+
OR maintype = 'role'
|
275 |
+
OR maintype = 'date'
|
276 |
+
OR maintype = 'browser'
|
277 |
+
OR maintype = 'wpml'";
|
278 |
$results = $this->wpdb->get_results($query);
|
279 |
foreach ( $results as $myrow ) {
|
280 |
$this->dynwid_list[ ] = $myrow->widget_id;
|
281 |
}
|
282 |
}
|
283 |
|
284 |
+
/* private function */
|
285 |
+
function getBrowser() {
|
286 |
+
global $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome;
|
287 |
+
|
288 |
+
if ( $is_gecko ) {
|
289 |
+
return 'gecko';
|
290 |
+
} else if ( $is_IE ) {
|
291 |
+
return 'msie';
|
292 |
+
} else if ( $is_opera ) {
|
293 |
+
return 'opera';
|
294 |
+
} else if ( $is_NS4 ) {
|
295 |
+
return 'ns';
|
296 |
+
} else if ( $is_safari ) {
|
297 |
+
return 'safari';
|
298 |
+
} else if ( $is_chrome ) {
|
299 |
+
return 'chrome';
|
300 |
+
} else {
|
301 |
+
return 'undef';
|
302 |
+
}
|
303 |
+
}
|
304 |
+
|
305 |
function getName($id, $type = 'W') {
|
306 |
switch ( $type ) {
|
307 |
case 'S':
|
343 |
}
|
344 |
$query = "SELECT widget_id, maintype, name, value FROM " . $this->dbtable . "
|
345 |
WHERE widget_id LIKE '" . $widget_id . "'
|
346 |
+
AND (maintype LIKE '" . $maintype . "%'
|
347 |
+
OR maintype = 'role'
|
348 |
+
OR maintype = 'date'
|
349 |
+
OR maintype = 'browser'
|
350 |
+
OR maintype = 'wpml')
|
351 |
ORDER BY maintype, name";
|
352 |
}
|
353 |
$results = $this->wpdb->get_results($query);
|
dynwid_init_worker.php
CHANGED
@@ -3,12 +3,16 @@
|
|
3 |
/**
|
4 |
* dynwid_init_worker.php
|
5 |
*
|
6 |
-
* @version $Id: dynwid_init_worker.php
|
|
|
7 |
*/
|
8 |
|
9 |
$DW->message('Dynamic Widgets INIT');
|
10 |
echo "\n" . '<!-- Dynamic Widgets v' . DW_VERSION . ' //-->' . "\n";
|
11 |
|
|
|
|
|
|
|
12 |
// WPML Plugin Support
|
13 |
if ( defined('ICL_PLUGIN_PATH') ) {
|
14 |
$wpml_api = ICL_PLUGIN_PATH . DW_WPML_API;
|
@@ -53,7 +57,7 @@
|
|
53 |
|
54 |
if ( $DW->whereami == 'page' ) {
|
55 |
// WPSC/WPEC Plugin Support
|
56 |
-
if ( defined('
|
57 |
$wpsc_query = &$GLOBALS['wpsc_query'];
|
58 |
|
59 |
if ( $wpsc_query->category > 0 ) {
|
@@ -63,9 +67,36 @@
|
|
63 |
|
64 |
require_once(DW_PLUGIN . 'wpsc.php');
|
65 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
67 |
}
|
68 |
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
?>
|
3 |
/**
|
4 |
* dynwid_init_worker.php
|
5 |
*
|
6 |
+
* @version $Id: dynwid_init_worker.php 348295 2011-02-20 20:13:21Z qurl $
|
7 |
+
* @copyright 2011 Jacco Drabbe
|
8 |
*/
|
9 |
|
10 |
$DW->message('Dynamic Widgets INIT');
|
11 |
echo "\n" . '<!-- Dynamic Widgets v' . DW_VERSION . ' //-->' . "\n";
|
12 |
|
13 |
+
// UserAgent detection
|
14 |
+
$DW->message('UserAgent: ' . $DW->useragent);
|
15 |
+
|
16 |
// WPML Plugin Support
|
17 |
if ( defined('ICL_PLUGIN_PATH') ) {
|
18 |
$wpml_api = ICL_PLUGIN_PATH . DW_WPML_API;
|
57 |
|
58 |
if ( $DW->whereami == 'page' ) {
|
59 |
// WPSC/WPEC Plugin Support
|
60 |
+
if ( defined('WPSC_VERSION') && version_compare(WPSC_VERSION, '3.8', '<') ) {
|
61 |
$wpsc_query = &$GLOBALS['wpsc_query'];
|
62 |
|
63 |
if ( $wpsc_query->category > 0 ) {
|
67 |
|
68 |
require_once(DW_PLUGIN . 'wpsc.php');
|
69 |
}
|
70 |
+
} else if ( defined('BP_VERSION') ) { // BuddyPress Plugin Support -- else if needed, otherwise WPEC pages are detected as BP
|
71 |
+
$bp = &$GLOBALS['bp'];
|
72 |
+
if (! empty($bp->current_component) ) {
|
73 |
+
if ( $bp->current_component == 'groups' && ! empty($bp->current_item) ) {
|
74 |
+
$DW->bp_groups = TRUE;
|
75 |
+
$DW->whereami = 'bp-group';
|
76 |
+
$DW->message('BP detected, component: ' . $bp->current_component . '; Group: ' . $bp->current_item . ', Page changed to bp-group');
|
77 |
+
} else {
|
78 |
+
$DW->bp = TRUE;
|
79 |
+
$DW->whereami = 'bp';
|
80 |
+
$DW->message('BP detected, component: ' . $bp->current_component . ', Page changed to bp');
|
81 |
+
}
|
82 |
+
}
|
83 |
}
|
84 |
}
|
85 |
|
86 |
+
if ( $DW->whereami == 'archive' ) {
|
87 |
+
// WPSC/WPEC Plugin Support
|
88 |
+
if ( defined('WPSC_VERSION') && version_compare(WPSC_VERSION, '3.8', '>=') ) {
|
89 |
+
$wpsc_query = &$GLOBALS['wpsc_query'];
|
90 |
+
if ( $wpsc_query->query_vars['taxonomy'] == 'wpsc_product_category' ) {
|
91 |
+
$DW->wpsc = TRUE;
|
92 |
+
$DW->whereami = 'wpsc';
|
93 |
+
$term = get_term_by('slug', $wpsc_query->query_vars['term'], 'wpsc_product_category');
|
94 |
+
$DW->message('WPSC detected, page changed to ' . $DW->whereami . ', category: ' . $term->term_id);
|
95 |
|
96 |
+
require_once(DW_PLUGIN . 'wpsc.php');
|
97 |
+
}
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
$DW->dwList($DW->whereami);
|
102 |
?>
|
dynwid_worker.php
CHANGED
@@ -2,7 +2,8 @@
|
|
2 |
/**
|
3 |
* dynwid_worker.php - The worker does the actual work.
|
4 |
*
|
5 |
-
* @version $Id: dynwid_worker.php
|
|
|
6 |
*/
|
7 |
|
8 |
$DW->message('Worker START');
|
@@ -30,6 +31,7 @@
|
|
30 |
$display = TRUE;
|
31 |
$role = TRUE;
|
32 |
$date = TRUE;
|
|
|
33 |
$wpml = TRUE;
|
34 |
|
35 |
foreach ( $opt as $condition ) {
|
@@ -60,13 +62,12 @@
|
|
60 |
} else if ( $condition['maintype'] == 'date' && $condition['name'] == 'default' ) {
|
61 |
$DW->message('Default for ' . $widget_id . ' set to FALSE (rule DT1)');
|
62 |
$date = FALSE;
|
|
|
|
|
|
|
63 |
} else if ( $condition['maintype'] == 'wpml' && $condition['name'] == 'default' ) {
|
64 |
$DW->message('Default for ' . $widget_id . ' set to ' . ( (bool) $condition['value'] ? 'TRUE' : 'FALSE' ) . ' (rule DML1)');
|
65 |
$wpml = (bool) $condition['value'];
|
66 |
-
} else { // Failsave
|
67 |
-
$DW->message('Failsave: Default for ' . $widget_id . ' set to TRUE (rule D4)');
|
68 |
-
$display = TRUE;
|
69 |
-
$other = FALSE;
|
70 |
}
|
71 |
}
|
72 |
|
@@ -134,6 +135,20 @@
|
|
134 |
$wpml = $wpml_tmp;
|
135 |
}
|
136 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
|
138 |
// For debug messages
|
139 |
$e = ( $other ) ? 'TRUE' : 'FALSE';
|
@@ -347,8 +362,37 @@
|
|
347 |
}
|
348 |
break;
|
349 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
case 'wpsc':
|
351 |
if ( count($act) > 0 ) {
|
|
|
|
|
352 |
if ( is_dw_wpsc_category($act) ) {
|
353 |
$display = $other;
|
354 |
$DW->message('Exception triggered for ' . $widget_id . ' sets display to ' . $e . ' (rule ESC1)');
|
@@ -356,11 +400,42 @@
|
|
356 |
}
|
357 |
break;
|
358 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
} // END switch ( $DW->whereami )
|
360 |
} // END if/else ( $DW->custom_post_type )
|
361 |
} /* END if ( count($opt) > 0 ) */
|
362 |
|
363 |
-
if (! $display || ! $role || ! $date || ! $wpml ) {
|
364 |
$DW->message('Removed ' . $widget_id . ' from display, SID = ' . $sidebar_id . ' / WID = ' . $widget_id . ' / KID = ' . $widget_key);
|
365 |
if ( DW_OLD_METHOD ) {
|
366 |
unset($DW->registered_widgets[$widget_id]);
|
2 |
/**
|
3 |
* dynwid_worker.php - The worker does the actual work.
|
4 |
*
|
5 |
+
* @version $Id: dynwid_worker.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
*/
|
8 |
|
9 |
$DW->message('Worker START');
|
31 |
$display = TRUE;
|
32 |
$role = TRUE;
|
33 |
$date = TRUE;
|
34 |
+
$browser = TRUE;
|
35 |
$wpml = TRUE;
|
36 |
|
37 |
foreach ( $opt as $condition ) {
|
62 |
} else if ( $condition['maintype'] == 'date' && $condition['name'] == 'default' ) {
|
63 |
$DW->message('Default for ' . $widget_id . ' set to FALSE (rule DT1)');
|
64 |
$date = FALSE;
|
65 |
+
} else if ( $condition['maintype'] == 'browser' && $condition['name'] == 'default' ) {
|
66 |
+
$DW->message('Default for ' . $widget_id . ' set to ' . ( (bool) $condition['value'] ? 'TRUE' : 'FALSE' ) . ' (rule DB1)');
|
67 |
+
$browser = (bool) $condition['value'];
|
68 |
} else if ( $condition['maintype'] == 'wpml' && $condition['name'] == 'default' ) {
|
69 |
$DW->message('Default for ' . $widget_id . ' set to ' . ( (bool) $condition['value'] ? 'TRUE' : 'FALSE' ) . ' (rule DML1)');
|
70 |
$wpml = (bool) $condition['value'];
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
}
|
73 |
|
135 |
$wpml = $wpml_tmp;
|
136 |
}
|
137 |
}
|
138 |
+
unset($wpml_tmp);
|
139 |
+
|
140 |
+
// Browser
|
141 |
+
foreach ( $opt as $condition ) {
|
142 |
+
if ( $condition['maintype'] == 'browser' && $condition['name'] == $DW->useragent ) {
|
143 |
+
(bool) $browser_tmp = $condition['value'];
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
if ( isset($browser_tmp) && $browser_tmp != $browser ) {
|
148 |
+
$DW->message('Exception triggered for browser, sets display to ' . ( $wpml_tmp ? 'TRUE' : 'FALSE' ) . ' (rule EB1)');
|
149 |
+
$browser = $browser_tmp;
|
150 |
+
}
|
151 |
+
unset($browser_tmp);
|
152 |
|
153 |
// For debug messages
|
154 |
$e = ( $other ) ? 'TRUE' : 'FALSE';
|
362 |
}
|
363 |
break;
|
364 |
|
365 |
+
case 'cp_archive':
|
366 |
+
if ( count($act) > 0 ) {
|
367 |
+
/*
|
368 |
+
is_post_type_archive() is natively supported in WP 3.1
|
369 |
+
WP 3.0.x gets is_post_type_archive() via plugin
|
370 |
+
'Custom Post Type Archive', but does not accept array
|
371 |
+
*/
|
372 |
+
$is_cpa = FALSE;
|
373 |
+
|
374 |
+
if ( version_compare(substr($GLOBALS['wp_version'], 0, 3), '3.1', '>=') ) {
|
375 |
+
if ( is_post_type_archive($act) ) {
|
376 |
+
$is_cpa = TRUE;
|
377 |
+
}
|
378 |
+
} else {
|
379 |
+
$post_type = get_query_var('post_type');
|
380 |
+
if ( in_array($post_type, $act) ) {
|
381 |
+
$is_cpa = TRUE;
|
382 |
+
}
|
383 |
+
}
|
384 |
+
|
385 |
+
if ( $is_cpa ) {
|
386 |
+
$display = $other;
|
387 |
+
$DW->message('Exception triggered for ' . $widget_id . ' sets display to ' . $e . ' (rule ECPA1)');
|
388 |
+
}
|
389 |
+
}
|
390 |
+
break;
|
391 |
+
|
392 |
case 'wpsc':
|
393 |
if ( count($act) > 0 ) {
|
394 |
+
require_once(DW_PLUGIN . 'wpsc.php');
|
395 |
+
|
396 |
if ( is_dw_wpsc_category($act) ) {
|
397 |
$display = $other;
|
398 |
$DW->message('Exception triggered for ' . $widget_id . ' sets display to ' . $e . ' (rule ESC1)');
|
400 |
}
|
401 |
break;
|
402 |
|
403 |
+
case 'bp':
|
404 |
+
// We have to split out the conditions as we don't want the bp-groups to interfere
|
405 |
+
$act = array();
|
406 |
+
foreach ( $opt as $condition ) {
|
407 |
+
if ( $condition['name'] != 'default' && $condition['maintype'] == 'bp' ) {
|
408 |
+
$act[ ] = $condition['name'];
|
409 |
+
}
|
410 |
+
}
|
411 |
+
|
412 |
+
if ( count($act) > 0 ) {
|
413 |
+
require_once(DW_PLUGIN . 'bp.php');
|
414 |
+
|
415 |
+
if ( is_dw_bp_component($act) ) {
|
416 |
+
$display = $other;
|
417 |
+
$DW->message('Exception triggered for ' . $widget_id . ' sets display to ' . $e . ' (rule EBP1)');
|
418 |
+
}
|
419 |
+
}
|
420 |
+
break;
|
421 |
+
|
422 |
+
case 'bp-group':
|
423 |
+
if ( count($act) > 0 ) {
|
424 |
+
require_once(DW_PLUGIN . 'bp.php');
|
425 |
+
|
426 |
+
if ( is_dw_bp_group($act) ) {
|
427 |
+
$display = $other;
|
428 |
+
$DW->message('Exception triggered for ' . $widget_id . ' sets display to ' . $e . ' (rule EBPG1)');
|
429 |
+
}
|
430 |
+
}
|
431 |
+
break;
|
432 |
+
|
433 |
+
|
434 |
} // END switch ( $DW->whereami )
|
435 |
} // END if/else ( $DW->custom_post_type )
|
436 |
} /* END if ( count($opt) > 0 ) */
|
437 |
|
438 |
+
if (! $display || ! $role || ! $date || ! $browser || ! $wpml ) {
|
439 |
$DW->message('Removed ' . $widget_id . ' from display, SID = ' . $sidebar_id . ' / WID = ' . $widget_id . ' / KID = ' . $widget_key);
|
440 |
if ( DW_OLD_METHOD ) {
|
441 |
unset($DW->registered_widgets[$widget_id]);
|
img/checkmark.gif
ADDED
Binary file
|
jquery-ui-smoothness.css → jquery-ui-1.7.3.custom.css
RENAMED
@@ -36,8 +36,6 @@
|
|
36 |
/* Overlays */
|
37 |
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
38 |
|
39 |
-
|
40 |
-
|
41 |
/*
|
42 |
* jQuery UI CSS Framework
|
43 |
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
@@ -280,7 +278,15 @@
|
|
280 |
|
281 |
/* Overlays */
|
282 |
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
283 |
-
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
----------------------------------*/
|
285 |
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
|
286 |
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
36 |
/* Overlays */
|
37 |
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
38 |
|
|
|
|
|
39 |
/*
|
40 |
* jQuery UI CSS Framework
|
41 |
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
278 |
|
279 |
/* Overlays */
|
280 |
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
281 |
+
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }/* Accordion
|
282 |
+
----------------------------------*/
|
283 |
+
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
284 |
+
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
285 |
+
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
286 |
+
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
|
287 |
+
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
288 |
+
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
|
289 |
+
.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
|
290 |
----------------------------------*/
|
291 |
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
|
292 |
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
jquery.ui.theme.smoothness.css → jquery-ui-1.8.7.custom.css
RENAMED
@@ -1,7 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
|
3 |
/*
|
4 |
-
* jQuery UI CSS Framework 1.8.
|
5 |
*
|
6 |
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
7 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
@@ -251,4 +292,118 @@
|
|
251 |
|
252 |
/* Overlays */
|
253 |
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
254 |
-
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI CSS Framework 1.8.7
|
3 |
+
*
|
4 |
+
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Theming/API
|
9 |
+
*/
|
10 |
+
|
11 |
+
/* Layout helpers
|
12 |
+
----------------------------------*/
|
13 |
+
.ui-helper-hidden { display: none; }
|
14 |
+
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
15 |
+
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
16 |
+
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
17 |
+
.ui-helper-clearfix { display: inline-block; }
|
18 |
+
/* required comment for clearfix to work in Opera \*/
|
19 |
+
* html .ui-helper-clearfix { height:1%; }
|
20 |
+
.ui-helper-clearfix { display:block; }
|
21 |
+
/* end clearfix */
|
22 |
+
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
23 |
+
|
24 |
+
|
25 |
+
/* Interaction Cues
|
26 |
+
----------------------------------*/
|
27 |
+
.ui-state-disabled { cursor: default !important; }
|
28 |
+
|
29 |
+
|
30 |
+
/* Icons
|
31 |
+
----------------------------------*/
|
32 |
+
|
33 |
+
/* states and images */
|
34 |
+
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
35 |
+
|
36 |
+
|
37 |
+
/* Misc visuals
|
38 |
+
----------------------------------*/
|
39 |
+
|
40 |
+
/* Overlays */
|
41 |
+
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
42 |
|
43 |
|
44 |
/*
|
45 |
+
* jQuery UI CSS Framework 1.8.7
|
46 |
*
|
47 |
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
48 |
* Dual licensed under the MIT or GPL Version 2 licenses.
|
292 |
|
293 |
/* Overlays */
|
294 |
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
295 |
+
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
|
296 |
+
* jQuery UI Resizable 1.8.7
|
297 |
+
*
|
298 |
+
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
299 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
300 |
+
* http://jquery.org/license
|
301 |
+
*
|
302 |
+
* http://docs.jquery.com/UI/Resizable#theming
|
303 |
+
*/
|
304 |
+
.ui-resizable { position: relative;}
|
305 |
+
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
306 |
+
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
307 |
+
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
308 |
+
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
309 |
+
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
310 |
+
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
311 |
+
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
312 |
+
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
313 |
+
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
314 |
+
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
|
315 |
+
* jQuery UI Selectable 1.8.7
|
316 |
+
*
|
317 |
+
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
318 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
319 |
+
* http://jquery.org/license
|
320 |
+
*
|
321 |
+
* http://docs.jquery.com/UI/Selectable#theming
|
322 |
+
*/
|
323 |
+
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
324 |
+
/*
|
325 |
+
* jQuery UI Accordion 1.8.7
|
326 |
+
*
|
327 |
+
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
328 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
329 |
+
* http://jquery.org/license
|
330 |
+
*
|
331 |
+
* http://docs.jquery.com/UI/Accordion#theming
|
332 |
+
*/
|
333 |
+
/* IE/Win - Fix animation bug - #4615 */
|
334 |
+
.ui-accordion { width: 100%; }
|
335 |
+
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
336 |
+
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
337 |
+
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
338 |
+
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
|
339 |
+
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
340 |
+
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
341 |
+
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
342 |
+
.ui-accordion .ui-accordion-content-active { display: block; }/*
|
343 |
+
* jQuery UI Datepicker 1.8.7
|
344 |
+
*
|
345 |
+
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
346 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
347 |
+
* http://jquery.org/license
|
348 |
+
*
|
349 |
+
* http://docs.jquery.com/UI/Datepicker#theming
|
350 |
+
*/
|
351 |
+
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
352 |
+
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
353 |
+
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
354 |
+
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
355 |
+
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
356 |
+
.ui-datepicker .ui-datepicker-next { right:2px; }
|
357 |
+
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
358 |
+
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
359 |
+
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
360 |
+
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
361 |
+
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
362 |
+
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
363 |
+
.ui-datepicker select.ui-datepicker-month,
|
364 |
+
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
365 |
+
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
366 |
+
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
367 |
+
.ui-datepicker td { border: 0; padding: 1px; }
|
368 |
+
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
369 |
+
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
370 |
+
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
371 |
+
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
372 |
+
|
373 |
+
/* with multiple calendars */
|
374 |
+
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
375 |
+
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
376 |
+
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
377 |
+
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
378 |
+
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
379 |
+
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
380 |
+
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
381 |
+
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
382 |
+
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
383 |
+
.ui-datepicker-row-break { clear:both; width:100%; }
|
384 |
+
|
385 |
+
/* RTL support */
|
386 |
+
.ui-datepicker-rtl { direction: rtl; }
|
387 |
+
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
388 |
+
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
389 |
+
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
390 |
+
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
391 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
392 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
393 |
+
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
394 |
+
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
395 |
+
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
396 |
+
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
397 |
+
|
398 |
+
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
399 |
+
.ui-datepicker-cover {
|
400 |
+
display: none; /*sorry for IE5*/
|
401 |
+
display/**/: block; /*sorry for IE5*/
|
402 |
+
position: absolute; /*must have*/
|
403 |
+
z-index: -1; /*must have*/
|
404 |
+
filter: mask(); /*must have*/
|
405 |
+
top: -4px; /*must have*/
|
406 |
+
left: -4px; /*must have*/
|
407 |
+
width: 200px; /*must have*/
|
408 |
+
height: 200px; /*must have*/
|
409 |
+
}
|
jquery.ui.accordion.css
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery UI Accordion 1.8.6
|
3 |
-
*
|
4 |
-
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
-
* http://jquery.org/license
|
7 |
-
*
|
8 |
-
* http://docs.jquery.com/UI/Accordion#theming
|
9 |
-
*/
|
10 |
-
/* IE/Win - Fix animation bug - #4615 */
|
11 |
-
.ui-accordion { width: 100%; }
|
12 |
-
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
13 |
-
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
14 |
-
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
15 |
-
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
|
16 |
-
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
17 |
-
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
18 |
-
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
19 |
-
.ui-accordion .ui-accordion-content-active { display: block; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jquery.ui.accordion.min.js
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery UI Accordion 1.7.3
|
3 |
-
*
|
4 |
-
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
5 |
-
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6 |
-
* and GPL (GPL-LICENSE.txt) licenses.
|
7 |
-
*
|
8 |
-
* http://docs.jquery.com/UI/Accordion
|
9 |
-
*
|
10 |
-
* Depends:
|
11 |
-
* ui.core.js
|
12 |
-
*/(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("<span/>").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.3",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jquery.ui.core.css
DELETED
@@ -1,41 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery UI CSS Framework 1.8.6
|
3 |
-
*
|
4 |
-
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
-
* http://jquery.org/license
|
7 |
-
*
|
8 |
-
* http://docs.jquery.com/UI/Theming/API
|
9 |
-
*/
|
10 |
-
|
11 |
-
/* Layout helpers
|
12 |
-
----------------------------------*/
|
13 |
-
.ui-helper-hidden { display: none; }
|
14 |
-
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
|
15 |
-
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
16 |
-
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
17 |
-
.ui-helper-clearfix { display: inline-block; }
|
18 |
-
/* required comment for clearfix to work in Opera \*/
|
19 |
-
* html .ui-helper-clearfix { height:1%; }
|
20 |
-
.ui-helper-clearfix { display:block; }
|
21 |
-
/* end clearfix */
|
22 |
-
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
23 |
-
|
24 |
-
|
25 |
-
/* Interaction Cues
|
26 |
-
----------------------------------*/
|
27 |
-
.ui-state-disabled { cursor: default !important; }
|
28 |
-
|
29 |
-
|
30 |
-
/* Icons
|
31 |
-
----------------------------------*/
|
32 |
-
|
33 |
-
/* states and images */
|
34 |
-
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
35 |
-
|
36 |
-
|
37 |
-
/* Misc visuals
|
38 |
-
----------------------------------*/
|
39 |
-
|
40 |
-
/* Overlays */
|
41 |
-
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jquery.ui.datepicker.css
DELETED
@@ -1,61 +0,0 @@
|
|
1 |
-
/* Datepicker----------------------------------*/
|
2 |
-
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
|
3 |
-
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
4 |
-
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
5 |
-
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
6 |
-
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
7 |
-
.ui-datepicker .ui-datepicker-next { right:2px; }
|
8 |
-
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
9 |
-
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
10 |
-
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
11 |
-
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
12 |
-
.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
|
13 |
-
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
14 |
-
.ui-datepicker select.ui-datepicker-month,
|
15 |
-
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
16 |
-
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
|
17 |
-
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
18 |
-
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
19 |
-
.ui-datepicker td { border: 0; padding: 1px; }
|
20 |
-
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
21 |
-
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
22 |
-
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
23 |
-
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
24 |
-
|
25 |
-
/* with multiple calendars */
|
26 |
-
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
27 |
-
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
28 |
-
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
29 |
-
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
30 |
-
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
31 |
-
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
32 |
-
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
33 |
-
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
34 |
-
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
35 |
-
.ui-datepicker-row-break { clear:both; width:100%; }
|
36 |
-
|
37 |
-
/* RTL support */
|
38 |
-
.ui-datepicker-rtl { direction: rtl; }
|
39 |
-
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
40 |
-
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
41 |
-
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
42 |
-
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
43 |
-
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
44 |
-
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
45 |
-
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
46 |
-
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
47 |
-
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
48 |
-
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
49 |
-
|
50 |
-
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
51 |
-
.ui-datepicker-cover {
|
52 |
-
display: none; /*sorry for IE5*/
|
53 |
-
display/**/: block; /*sorry for IE5*/
|
54 |
-
position: absolute; /*must have*/
|
55 |
-
z-index: -1; /*must have*/
|
56 |
-
filter: mask(); /*must have*/
|
57 |
-
top: -4px; /*must have*/
|
58 |
-
left: -4px; /*must have*/
|
59 |
-
width: 200px; /*must have*/
|
60 |
-
height: 200px; /*must have*/
|
61 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jquery_datepicker.js
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
/* jQuery UI Datepicker 1.7.2
|
2 |
-
*
|
3 |
-
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
4 |
-
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
5 |
-
* and GPL (GPL-LICENSE.txt) licenses.
|
6 |
-
*
|
7 |
-
* http://docs.jquery.com/UI/Datepicker
|
8 |
-
*
|
9 |
-
* Depends:
|
10 |
-
* ui.core.js
|
11 |
-
*/
|
12 |
-
(function($){$.extend($.ui,{datepicker:{version:"1.7.2"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$('<span class="'+this._appendClass+'">'+appendText+"</span>");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var inst=this._getInst(target);if(arguments.length==2&&typeof name=="string"){return(name=="defaults"?$.extend({},$.datepicker._defaults):(inst?(name=="all"?$.extend({},inst.settings):this._get(inst,name)):null))}var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}if(inst){if(this._curInst==inst){this._hideDatepicker(null)}var date=this._getDateDatepicker(target);extendRemove(inst.settings,settings);this._setDateDatepicker(target,date);this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():" "):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?" ":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
locale/dynamic-widgets-de_DE.mo
ADDED
Binary file
|
locale/dynamic-widgets-de_DE.po
ADDED
@@ -0,0 +1,653 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Dynamic Widgets NL\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-01-05 19:15+0100\n"
|
6 |
+
"PO-Revision-Date: \n"
|
7 |
+
"Last-Translator: Jacco <jacco@qurl.nl>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-Language: Dutch\n"
|
13 |
+
"X-Poedit-Country: NETHERLANDS\n"
|
14 |
+
|
15 |
+
#: ../dynwid_admin_edit.php:24
|
16 |
+
msgid "Anonymous"
|
17 |
+
msgstr "Anonym"
|
18 |
+
|
19 |
+
#: ../dynwid_admin_edit.php:74
|
20 |
+
msgid "(and other Gecko based)"
|
21 |
+
msgstr "(und andere Gecko-basierte)"
|
22 |
+
|
23 |
+
#: ../dynwid_admin_edit.php:80
|
24 |
+
msgid "Other / Unknown / Not detected"
|
25 |
+
msgstr ""
|
26 |
+
|
27 |
+
#: ../dynwid_admin_edit.php:185
|
28 |
+
msgid "Posts: "
|
29 |
+
msgstr "Beiträge:"
|
30 |
+
|
31 |
+
#: ../dynwid_admin_edit.php:185
|
32 |
+
msgid "Tags: "
|
33 |
+
msgstr "Schlagwörter:"
|
34 |
+
|
35 |
+
#: ../dynwid_admin_edit.php:241
|
36 |
+
#: ../dynwid_admin_edit.php:244
|
37 |
+
#, fuzzy
|
38 |
+
msgid "Front page"
|
39 |
+
msgstr "Startseite"
|
40 |
+
|
41 |
+
#: ../dynwid_admin_edit.php:241
|
42 |
+
#: ../dynwid_admin_edit.php:246
|
43 |
+
msgid "Posts page"
|
44 |
+
msgstr "Artikelseite"
|
45 |
+
|
46 |
+
#: ../dynwid_admin_edit.php:430
|
47 |
+
msgid "Widget options saved."
|
48 |
+
msgstr "Widget Optionen gespeichert."
|
49 |
+
|
50 |
+
#: ../dynwid_admin_edit.php:430
|
51 |
+
#: ../dynwid_admin_edit.php:969
|
52 |
+
msgid "Return"
|
53 |
+
msgstr "Zurück"
|
54 |
+
|
55 |
+
#: ../dynwid_admin_edit.php:430
|
56 |
+
msgid "to Dynamic Widgets overview"
|
57 |
+
msgstr "zu den Dynamic Widgets Optionen"
|
58 |
+
|
59 |
+
#: ../dynwid_admin_edit.php:435
|
60 |
+
msgid "Dynamic does not mean static hiding of a widget."
|
61 |
+
msgstr "Dynamisch houdt niet in het statisch verbergen van een widget."
|
62 |
+
|
63 |
+
#: ../dynwid_admin_edit.php:435
|
64 |
+
msgid "Hint"
|
65 |
+
msgstr "Hinweis"
|
66 |
+
|
67 |
+
#: ../dynwid_admin_edit.php:435
|
68 |
+
msgid "Remove"
|
69 |
+
msgstr "Entfernt"
|
70 |
+
|
71 |
+
#: ../dynwid_admin_edit.php:435
|
72 |
+
msgid "the widget from the sidebar"
|
73 |
+
msgstr "das Widget aus der Sidebar"
|
74 |
+
|
75 |
+
#: ../dynwid_admin_edit.php:439
|
76 |
+
msgid "The From date can't be later than the To date."
|
77 |
+
msgstr "Das Startdatum kann nicht später als das Enddatum sein."
|
78 |
+
|
79 |
+
#: ../dynwid_admin_edit.php:444
|
80 |
+
msgid "Edit options for the widget"
|
81 |
+
msgstr "Option für das Widget bearbeiten"
|
82 |
+
|
83 |
+
#: ../dynwid_admin_edit.php:455
|
84 |
+
#: ../dynwid_class_php4.php:56
|
85 |
+
#: ../dynwid_class.php:50
|
86 |
+
msgid "Role"
|
87 |
+
msgstr "Rolle"
|
88 |
+
|
89 |
+
#: ../dynwid_admin_edit.php:457
|
90 |
+
msgid "Show widget to everybody?"
|
91 |
+
msgstr "Widget für jeden anzeigen?"
|
92 |
+
|
93 |
+
#: ../dynwid_admin_edit.php:457
|
94 |
+
#: ../dynwid_admin_edit.php:477
|
95 |
+
#: ../dynwid_admin_edit.php:509
|
96 |
+
#: ../dynwid_admin_edit.php:530
|
97 |
+
#: ../dynwid_admin_edit.php:568
|
98 |
+
#: ../dynwid_admin_edit.php:582
|
99 |
+
#: ../dynwid_admin_edit.php:638
|
100 |
+
#: ../dynwid_admin_edit.php:740
|
101 |
+
msgid "Click to toggle info"
|
102 |
+
msgstr "Klicken Sie um Info anzuzeigen"
|
103 |
+
|
104 |
+
#: ../dynwid_admin_edit.php:461
|
105 |
+
msgid ""
|
106 |
+
"Setting options by role is very powerfull. It can override all other options!<br />\n"
|
107 |
+
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
108 |
+
msgstr ""
|
109 |
+
"Einstellungen pro Rolle werden bevorzugt behandelt. Sie können alle anderen Optionen überschreiben!<br />\n"
|
110 |
+
"\t\t\t\t\t\tBenutzer die nicht angemeldet sind kommen in die <em>Anonym</em> Rolle."
|
111 |
+
|
112 |
+
#: ../dynwid_admin_edit.php:465
|
113 |
+
#: ../dynwid_admin_edit.php:489
|
114 |
+
#: ../dynwid_admin_edit.php:516
|
115 |
+
#: ../dynwid_admin_edit.php:537
|
116 |
+
#: ../dynwid_admin_edit.php:560
|
117 |
+
#: ../dynwid_admin_edit.php:577
|
118 |
+
#: ../dynwid_admin_edit.php:631
|
119 |
+
#: ../dynwid_admin_edit.php:651
|
120 |
+
#: ../dynwid_admin_edit.php:713
|
121 |
+
#: ../dynwid_admin_edit.php:727
|
122 |
+
#: ../dynwid_admin_edit.php:747
|
123 |
+
#: ../dynwid_admin_edit.php:757
|
124 |
+
#: ../dynwid_admin_edit.php:766
|
125 |
+
#: ../dynwid_admin_edit.php:883
|
126 |
+
#: ../dynwid_admin_edit.php:925
|
127 |
+
#: ../dynwid_admin_edit.php:948
|
128 |
+
msgid "Yes"
|
129 |
+
msgstr "Ja"
|
130 |
+
|
131 |
+
#: ../dynwid_admin_edit.php:466
|
132 |
+
#: ../dynwid_admin_edit.php:490
|
133 |
+
#: ../dynwid_admin_edit.php:517
|
134 |
+
#: ../dynwid_admin_edit.php:538
|
135 |
+
#: ../dynwid_admin_edit.php:561
|
136 |
+
#: ../dynwid_admin_edit.php:578
|
137 |
+
#: ../dynwid_admin_edit.php:632
|
138 |
+
#: ../dynwid_admin_edit.php:652
|
139 |
+
#: ../dynwid_admin_edit.php:714
|
140 |
+
#: ../dynwid_admin_edit.php:728
|
141 |
+
#: ../dynwid_admin_edit.php:748
|
142 |
+
#: ../dynwid_admin_edit.php:758
|
143 |
+
#: ../dynwid_admin_edit.php:767
|
144 |
+
#: ../dynwid_admin_edit.php:884
|
145 |
+
#: ../dynwid_admin_edit.php:926
|
146 |
+
#: ../dynwid_admin_edit.php:949
|
147 |
+
msgid "No"
|
148 |
+
msgstr "Nein"
|
149 |
+
|
150 |
+
#: ../dynwid_admin_edit.php:466
|
151 |
+
msgid "only to"
|
152 |
+
msgstr "nur für"
|
153 |
+
|
154 |
+
#: ../dynwid_admin_edit.php:475
|
155 |
+
#: ../dynwid_class_php4.php:57
|
156 |
+
#: ../dynwid_class.php:51
|
157 |
+
msgid "Date"
|
158 |
+
msgstr "Datum"
|
159 |
+
|
160 |
+
#: ../dynwid_admin_edit.php:477
|
161 |
+
msgid "Show widget always?"
|
162 |
+
msgstr "Widget immer anzeigen?"
|
163 |
+
|
164 |
+
#: ../dynwid_admin_edit.php:481
|
165 |
+
msgid "Next to the above role option, the date option is also very powerfull. You've been warned!"
|
166 |
+
msgstr "Als nächstes nach der obenstehenden Option kommt die Datum-Option. Die Warnung gilt ebenfalls!"
|
167 |
+
|
168 |
+
#: ../dynwid_admin_edit.php:482
|
169 |
+
msgid "Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the"
|
170 |
+
msgstr "Datum bitte im Forma JJJJ-MM-TT eintragen. Oder einfach auf den Kalender klicken "
|
171 |
+
|
172 |
+
#: ../dynwid_admin_edit.php:483
|
173 |
+
msgid ""
|
174 |
+
"Date ranges can be made by entering a From AND a To date<br />\n"
|
175 |
+
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
176 |
+
" \t\t\t\t\tWhen you want the widget to stop displaying on a specific date, only fill in the To date.\n"
|
177 |
+
" \t\t\t\t"
|
178 |
+
msgstr ""
|
179 |
+
"Um einen Zeitraum zu bestimmen einfach \"von\" und \"bis\" eintragen.<br />\n"
|
180 |
+
" \t\t\t\t\tSoll das Widget ab einem bestimmten Datum angezeigt werden muss nur das \"von\" Feld ausgefüllt werden.<br />\n"
|
181 |
+
" \t\t\t\t\tSoll das Widget ab einem bestimmten Datum nicht mehr angezeigt werden muss nur das \"bis\" Feld ausgefüllt werden.\n"
|
182 |
+
" \t\t\t\t"
|
183 |
+
|
184 |
+
#: ../dynwid_admin_edit.php:490
|
185 |
+
msgid "only"
|
186 |
+
msgstr "nur"
|
187 |
+
|
188 |
+
#: ../dynwid_admin_edit.php:494
|
189 |
+
msgid "From"
|
190 |
+
msgstr "von"
|
191 |
+
|
192 |
+
#: ../dynwid_admin_edit.php:498
|
193 |
+
msgid "To"
|
194 |
+
msgstr "bis"
|
195 |
+
|
196 |
+
#: ../dynwid_admin_edit.php:507
|
197 |
+
msgid "Language (WPML)"
|
198 |
+
msgstr "Sprache (WPML)"
|
199 |
+
|
200 |
+
#: ../dynwid_admin_edit.php:509
|
201 |
+
msgid "Show widget default on all languages?"
|
202 |
+
msgstr "Widget standardmäßig bei allen Sprachen anzeigen?"
|
203 |
+
|
204 |
+
#: ../dynwid_admin_edit.php:513
|
205 |
+
msgid "Using this option can override all other options."
|
206 |
+
msgstr "Diese Option kann bei Benutzung alle anderen überschreiben."
|
207 |
+
|
208 |
+
#: ../dynwid_admin_edit.php:518
|
209 |
+
msgid "Except the languages"
|
210 |
+
msgstr "Ausgenommen diese Sprache(n)"
|
211 |
+
|
212 |
+
#: ../dynwid_admin_edit.php:528
|
213 |
+
#: ../dynwid_class_php4.php:58
|
214 |
+
#: ../dynwid_class.php:52
|
215 |
+
msgid "Browser"
|
216 |
+
msgstr "Browser"
|
217 |
+
|
218 |
+
#: ../dynwid_admin_edit.php:530
|
219 |
+
msgid "Show widget with all browsers?"
|
220 |
+
msgstr "Widget für alle Browser anzeigen?"
|
221 |
+
|
222 |
+
#: ../dynwid_admin_edit.php:534
|
223 |
+
msgid "Browser detection is never 100% accurate."
|
224 |
+
msgstr "Browser-Erkennung funktioniert nie zu 100%."
|
225 |
+
|
226 |
+
#: ../dynwid_admin_edit.php:539
|
227 |
+
msgid "Except the browser(s)"
|
228 |
+
msgstr "Ausgenommen diese(r) Browser"
|
229 |
+
|
230 |
+
#: ../dynwid_admin_edit.php:549
|
231 |
+
#: ../dynwid_class_php4.php:60
|
232 |
+
#: ../dynwid_class.php:54
|
233 |
+
msgid "Front Page"
|
234 |
+
msgstr "Startseite"
|
235 |
+
|
236 |
+
#: ../dynwid_admin_edit.php:551
|
237 |
+
msgid "Show widget on the front page?"
|
238 |
+
msgstr "Das Widget auf der Startseite anzeigen?"
|
239 |
+
|
240 |
+
#: ../dynwid_admin_edit.php:555
|
241 |
+
msgid ""
|
242 |
+
"This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />\n"
|
243 |
+
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
244 |
+
"\t\t\t\t\t"
|
245 |
+
msgstr ""
|
246 |
+
"Diese Option greift nur wenn die Startseite die letzten Artikel anzeigt (siehe Einstellungen > Lesen)<br />\n"
|
247 |
+
"\t\t\t\t\t\tWenn eine statische Seite benutzt wird muss die Option für statische Seiten, weiter unten, benutzt werden.\n"
|
248 |
+
"\t\t\t\t\t"
|
249 |
+
|
250 |
+
#: ../dynwid_admin_edit.php:566
|
251 |
+
#: ../dynwid_class_php4.php:61
|
252 |
+
#: ../dynwid_class.php:55
|
253 |
+
msgid "Single Posts"
|
254 |
+
msgstr "Artikel"
|
255 |
+
|
256 |
+
#: ../dynwid_admin_edit.php:568
|
257 |
+
msgid "Show widget default on single posts?"
|
258 |
+
msgstr "Das Widget auf Artikelseiten anzeigen?"
|
259 |
+
|
260 |
+
#: ../dynwid_admin_edit.php:572
|
261 |
+
msgid ""
|
262 |
+
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
263 |
+
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
264 |
+
" \t\t\t\t\t"
|
265 |
+
msgstr ""
|
266 |
+
"Sollen ein Autor <b>UND</b> eine Kategorie als Filter gesetzt werden müssen beide Optionen markiert werden.\n"
|
267 |
+
" \t\t\t\t\tWird als Regel ein logisches <b>ODER</b> gebraucht muss das Widget dubliziert werden und die zweite Regel darauf angewendet werden.\n"
|
268 |
+
" \t\t\t\t\t"
|
269 |
+
|
270 |
+
#: ../dynwid_admin_edit.php:581
|
271 |
+
msgid "Make exception rule available to individual posts and tags."
|
272 |
+
msgstr "Ausnahmeregeln für individuelle Artikel oder nach Schlagwörtern"
|
273 |
+
|
274 |
+
#: ../dynwid_admin_edit.php:585
|
275 |
+
msgid ""
|
276 |
+
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
277 |
+
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
278 |
+
"\t\t\t\t\t\tclick a tag), For individual posts in the <a href=\"post-new.php\">New</a> or <a href=\"edit.php\">Edit</a> Posts panel.\n"
|
279 |
+
"\t\t\t\t\t\tException rules for tags and individual posts in any combination work independantly, but will always be counted as one exception.<br />\n"
|
280 |
+
" \t\t\t\t\tPlease note when exception rules are set for Author and/or Category, these will be removed.\n"
|
281 |
+
" \t\t\t\t"
|
282 |
+
msgstr ""
|
283 |
+
"Wird diese Option aktiviert können einzelne Artikel oder Artikel anhand von Schlagwörtern ausgeschlossen werden.\n"
|
284 |
+
"\t\t\t\t\t\tUm einzelne Schlagwörter zu benutzern müsen diese berarbeitet werden (siehe <a href=\"edit-tags.php?taxonomy=post_tag\">Schlagwörter</a>,\n"
|
285 |
+
"\t\t\t\t\t\tum ein Schlagwört zu bearbeiten). Für einzelne Artikel siehe <a href=\"post-new.php\">neuer Artikel</a> oder <a href=\"edit.php\">Artikel bearbeiten</a>.\n"
|
286 |
+
"\t\t\t\t\t\tAusnahmeregeln für einzelne Artikel oder Schlägwörter in jeglicher Kombination funktionieren unabhängig, werden aber immer als einzelne Regel betrachtet.<br />\n"
|
287 |
+
" \t\t\t\t\tBitte beachten! Sind Ausnahmeregeln für Autor und/oder Kategorie gesetzt, werden diese ignoriert.\n"
|
288 |
+
" \t\t\t\t"
|
289 |
+
|
290 |
+
#: ../dynwid_admin_edit.php:602
|
291 |
+
msgid "Except the posts by author"
|
292 |
+
msgstr "Ausgenommen Artikel von diesem Autor"
|
293 |
+
|
294 |
+
#: ../dynwid_admin_edit.php:613
|
295 |
+
msgid "Except the posts in category"
|
296 |
+
msgstr "Ausgenommen Artikel in dieser Kategorie"
|
297 |
+
|
298 |
+
#: ../dynwid_admin_edit.php:627
|
299 |
+
#: ../dynwid_class_php4.php:62
|
300 |
+
#: ../dynwid_class.php:56
|
301 |
+
msgid "Attachments"
|
302 |
+
msgstr "Anhänge / Medien"
|
303 |
+
|
304 |
+
#: ../dynwid_admin_edit.php:629
|
305 |
+
msgid "Show widget on attachment pages"
|
306 |
+
msgstr "Widget auf Anhang Seiten anzeigen"
|
307 |
+
|
308 |
+
#: ../dynwid_admin_edit.php:636
|
309 |
+
#: ../dynwid_class_php4.php:63
|
310 |
+
#: ../dynwid_class.php:57
|
311 |
+
msgid "Pages"
|
312 |
+
msgstr "Seiten"
|
313 |
+
|
314 |
+
#: ../dynwid_admin_edit.php:638
|
315 |
+
msgid "Show widget default on static pages?"
|
316 |
+
msgstr "Widget auf statischen Seiten anzeigen?"
|
317 |
+
|
318 |
+
#: ../dynwid_admin_edit.php:643
|
319 |
+
msgid ""
|
320 |
+
"Checking the \"All childs\" option, makes the exception rule apply\n"
|
321 |
+
"\t\t\t\tto the parent and all items under it in all levels. Also future items\n"
|
322 |
+
"\t\t\t\tunder the parent. It's not possible to apply an exception rule to\n"
|
323 |
+
"\t\t\t\t\"All childs\" without the parent."
|
324 |
+
msgstr ""
|
325 |
+
"Klick auf \"alle Kinder\" aktiviert die Ausnahmeregel\n"
|
326 |
+
"\t\t\t\tfür das Elternelement und alle Elemente die davon erben. Auch zukünftige Elemente\n"
|
327 |
+
"\t\t\t\tunter diesem Elternelement. Es ist nicht möglich eine Ausnahmeregel für\n"
|
328 |
+
"\t\t\t\t\"alle Kinder\" ohne das Elternelement zu aktivieren."
|
329 |
+
|
330 |
+
#: ../dynwid_admin_edit.php:653
|
331 |
+
msgid "Except the page(s)"
|
332 |
+
msgstr "Alle bis auf diese Seite(n)"
|
333 |
+
|
334 |
+
#: ../dynwid_admin_edit.php:692
|
335 |
+
#: ../dynwid_admin_edit.php:807
|
336 |
+
msgid "All childs"
|
337 |
+
msgstr "alle Kinder"
|
338 |
+
|
339 |
+
#: ../dynwid_admin_edit.php:709
|
340 |
+
#: ../dynwid_class_php4.php:64
|
341 |
+
#: ../dynwid_class.php:58
|
342 |
+
msgid "Author Pages"
|
343 |
+
msgstr "Autoren Seiten"
|
344 |
+
|
345 |
+
#: ../dynwid_admin_edit.php:711
|
346 |
+
msgid "Show widget default on author pages?"
|
347 |
+
msgstr "Widget auf Autoren Seiten anzeigen?"
|
348 |
+
|
349 |
+
#: ../dynwid_admin_edit.php:715
|
350 |
+
msgid "Except the author(s)"
|
351 |
+
msgstr "Ausgenommen diese(r) Autor(en)"
|
352 |
+
|
353 |
+
#: ../dynwid_admin_edit.php:723
|
354 |
+
#: ../dynwid_class_php4.php:65
|
355 |
+
#: ../dynwid_class.php:59
|
356 |
+
msgid "Category Pages"
|
357 |
+
msgstr "Kategorie Seiten"
|
358 |
+
|
359 |
+
#: ../dynwid_admin_edit.php:725
|
360 |
+
msgid "Show widget default on category pages?"
|
361 |
+
msgstr "Widget auf Kategorie Seiten anzeigen?"
|
362 |
+
|
363 |
+
#: ../dynwid_admin_edit.php:729
|
364 |
+
#: ../dynwid_admin_edit.php:950
|
365 |
+
msgid "Except the categories"
|
366 |
+
msgstr "Ausgenommen diese Kategorien"
|
367 |
+
|
368 |
+
#: ../dynwid_admin_edit.php:738
|
369 |
+
#: ../dynwid_class_php4.php:66
|
370 |
+
#: ../dynwid_class.php:60
|
371 |
+
msgid "Archive Pages"
|
372 |
+
msgstr "Archiv Seiten"
|
373 |
+
|
374 |
+
#: ../dynwid_admin_edit.php:740
|
375 |
+
msgid "Show widget on archive pages"
|
376 |
+
msgstr "Widget auf Archiv Seiten anzeigen"
|
377 |
+
|
378 |
+
#: ../dynwid_admin_edit.php:744
|
379 |
+
msgid "This option does not include Author and Category Pages."
|
380 |
+
msgstr "Diese Option beinhaltet nicht Autoren und Kategorie Seiten"
|
381 |
+
|
382 |
+
#: ../dynwid_admin_edit.php:753
|
383 |
+
#: ../dynwid_class_php4.php:67
|
384 |
+
#: ../dynwid_class.php:61
|
385 |
+
msgid "Error Page"
|
386 |
+
msgstr "Fehlerseite"
|
387 |
+
|
388 |
+
#: ../dynwid_admin_edit.php:755
|
389 |
+
msgid "Show widget on the error page?"
|
390 |
+
msgstr "Widget auf der Fehlerseite anzeigen?"
|
391 |
+
|
392 |
+
#: ../dynwid_admin_edit.php:762
|
393 |
+
msgid "Search Page"
|
394 |
+
msgstr "Suchseite"
|
395 |
+
|
396 |
+
#: ../dynwid_admin_edit.php:764
|
397 |
+
msgid "Show widget on the search page?"
|
398 |
+
msgstr "Widget auf der Suchseite anzeigen?"
|
399 |
+
|
400 |
+
#: ../dynwid_admin_edit.php:869
|
401 |
+
msgid "Custom Post Type"
|
402 |
+
msgstr "Individueller Artikel Typ"
|
403 |
+
|
404 |
+
#: ../dynwid_admin_edit.php:871
|
405 |
+
msgid "Show widget on"
|
406 |
+
msgstr "Widget anzeigen auf"
|
407 |
+
|
408 |
+
#: ../dynwid_admin_edit.php:886
|
409 |
+
#: ../dynwid_admin_edit.php:928
|
410 |
+
msgid "Except for"
|
411 |
+
msgstr "Ausgenommen"
|
412 |
+
|
413 |
+
#: ../dynwid_admin_edit.php:920
|
414 |
+
msgid "Custom Post Type Archives"
|
415 |
+
msgstr "Individuelle Artike-Typ-Archive"
|
416 |
+
|
417 |
+
#: ../dynwid_admin_edit.php:922
|
418 |
+
msgid "Show widget on Custom Post Type Archives"
|
419 |
+
msgstr "Widget in individuellen Artikel-Typ-Archiven anzeigen?"
|
420 |
+
|
421 |
+
#: ../dynwid_admin_edit.php:944
|
422 |
+
#: ../dynwid_class_php4.php:69
|
423 |
+
#: ../dynwid_class.php:63
|
424 |
+
msgid "WPSC Category"
|
425 |
+
msgstr "WPSC Kategorie"
|
426 |
+
|
427 |
+
#: ../dynwid_admin_edit.php:946
|
428 |
+
msgid "Show widget default on WPSC categories?"
|
429 |
+
msgstr "Widget standardmäßig auf WPSC Kategorien anzeigen?"
|
430 |
+
|
431 |
+
#: ../dynwid_admin_edit.php:965
|
432 |
+
msgid "Save"
|
433 |
+
msgstr "speichern"
|
434 |
+
|
435 |
+
#: ../dynwid_class_php4.php:59
|
436 |
+
#: ../dynwid_class.php:53
|
437 |
+
msgid "Language"
|
438 |
+
msgstr "Sprache"
|
439 |
+
|
440 |
+
#: ../dynwid_class_php4.php:68
|
441 |
+
#: ../dynwid_class.php:62
|
442 |
+
msgid "Search page"
|
443 |
+
msgstr "Suchseite"
|
444 |
+
|
445 |
+
#: ../dynwid_admin.php:10
|
446 |
+
#: ../dynamic-widgets.php:139
|
447 |
+
#: ../dynamic-widgets.php:218
|
448 |
+
#: ../dynamic-widgets.php:563
|
449 |
+
msgid "Dynamic Widgets"
|
450 |
+
msgstr "Dynamic Widgets"
|
451 |
+
|
452 |
+
#: ../dynwid_admin.php:16
|
453 |
+
msgid "<b>WARNING</b> STRICT sql mode in effect. Dynamic Widgets might not work correctly. Please disable STRICT sql mode."
|
454 |
+
msgstr "<b>Warnung</b> STRICT sql mode ist aktiv. Dynamic Widgets arbeitet möglicherweise nicht korrekt. Bitte STRICT sql mode abschalten."
|
455 |
+
|
456 |
+
#: ../dynwid_admin.php:36
|
457 |
+
msgid "Oops! Something went terrible wrong. Please reinstall Dynamic Widgets."
|
458 |
+
msgstr "Huch! Irgend etwas ist böse schief gegangen. Dynamic Widgets muss neu installiert werden."
|
459 |
+
|
460 |
+
#: ../dynwid_admin.php:44
|
461 |
+
#: ../dynwid_admin_overview.php:28
|
462 |
+
msgid "OLD"
|
463 |
+
msgstr "ALTE"
|
464 |
+
|
465 |
+
#: ../dynwid_admin.php:44
|
466 |
+
#: ../dynwid_admin_overview.php:28
|
467 |
+
msgid "FILTER"
|
468 |
+
msgstr "FILTER"
|
469 |
+
|
470 |
+
#: ../dynwid_admin_overview.php:15
|
471 |
+
msgid "Widget options have been reset to default."
|
472 |
+
msgstr "Widget Optionen wurden zurück gesetzt."
|
473 |
+
|
474 |
+
#: ../dynwid_admin_overview.php:28
|
475 |
+
msgid "Method set to"
|
476 |
+
msgstr "Methode geändert auf"
|
477 |
+
|
478 |
+
#: ../dynwid_admin_overview.php:36
|
479 |
+
msgid "Inactive Widgets"
|
480 |
+
msgstr "Inaktive Widgets"
|
481 |
+
|
482 |
+
#: ../dynwid_admin_overview.php:59
|
483 |
+
#: ../dynwid_admin_overview.php:62
|
484 |
+
msgid "Edit this widget options"
|
485 |
+
msgstr "Diese Widget Optionen bearbeiten"
|
486 |
+
|
487 |
+
#: ../dynwid_admin_overview.php:62
|
488 |
+
msgid "Edit"
|
489 |
+
msgstr "bearbeiten"
|
490 |
+
|
491 |
+
#: ../dynwid_admin_overview.php:67
|
492 |
+
msgid "Reset widget to Static"
|
493 |
+
msgstr "Widget zurück auf \"statisch\" setzen"
|
494 |
+
|
495 |
+
#: ../dynwid_admin_overview.php:67
|
496 |
+
#: ../dynamic-widgets.php:131
|
497 |
+
msgid "Reset"
|
498 |
+
msgstr "zurücksetzen"
|
499 |
+
|
500 |
+
#: ../dynwid_admin_overview.php:73
|
501 |
+
#: ../dynamic-widgets.php:128
|
502 |
+
#: ../dynamic-widgets.php:130
|
503 |
+
#: ../dynamic-widgets.php:565
|
504 |
+
msgid "Dynamic"
|
505 |
+
msgstr "dynamisch"
|
506 |
+
|
507 |
+
#: ../dynwid_admin_overview.php:73
|
508 |
+
#: ../dynamic-widgets.php:128
|
509 |
+
#: ../dynamic-widgets.php:129
|
510 |
+
#: ../dynamic-widgets.php:132
|
511 |
+
#: ../dynamic-widgets.php:565
|
512 |
+
msgid "Static"
|
513 |
+
msgstr "statisch"
|
514 |
+
|
515 |
+
#: ../dynwid_admin_overview.php:88
|
516 |
+
msgid "Advanced"
|
517 |
+
msgstr "Fortgeschrittene"
|
518 |
+
|
519 |
+
#: ../dynwid_admin_overview.php:90
|
520 |
+
msgid "wp_head() check:"
|
521 |
+
msgstr "wp_head() geprüft:"
|
522 |
+
|
523 |
+
#: ../dynwid_admin_overview.php:95
|
524 |
+
msgid "wp_head() is NOT called (at the most obvious place)"
|
525 |
+
msgstr "wp_head() wird nicht aufgerufen (am üblichen Ort)"
|
526 |
+
|
527 |
+
#: ../dynwid_admin_overview.php:99
|
528 |
+
msgid "wp_head() is called"
|
529 |
+
msgstr "wp_head() wird aufgerufen"
|
530 |
+
|
531 |
+
#: ../dynwid_admin_overview.php:103
|
532 |
+
msgid "Unable to determine if wp_head() is called"
|
533 |
+
msgstr "Es kann nicht festegstellt werden, ob wp_head() aufgerufen wird"
|
534 |
+
|
535 |
+
#: ../dynwid_admin_overview.php:114
|
536 |
+
msgid "Use 'OLD' method"
|
537 |
+
msgstr "Benutze \"alte\" Methode"
|
538 |
+
|
539 |
+
#: ../dynwid_admin_overview.php:119
|
540 |
+
msgid "For debugging purposes it is possible you're asked to create a dump. Click the 'Create dump' button and save the text file."
|
541 |
+
msgstr "Zur Fehlerbehandlung kann eventuell nötig sein ein Abbild zu erstellen. Dazu auf \"Abbild erstellen\" klicken und Abbild als Text-Datei speichern. "
|
542 |
+
|
543 |
+
#: ../dynwid_admin_overview.php:124
|
544 |
+
msgid "Create dump"
|
545 |
+
msgstr "Abbild erstellen"
|
546 |
+
|
547 |
+
#: ../dynwid_admin_overview.php:130
|
548 |
+
msgid "When you deceide not to use this plugin anymore (sorry to hear that!). You can cleanup all settings and data related to this plugin by clicking on the 'Uninstall' button. This process is irreversible! After the cleanup the plugin is deactivated automaticly."
|
549 |
+
msgstr "Wenn das Plugin nicht mehr verwendet werden soll (tut uns leid das zu hören!) können alle Einstellungen und Daten in Zusammenhang mit dem Plugin durch Klick auf die \"Zurücksetzen\"-Schaltfläche entfernt werden. Dieser Prozess kann nicht rückgängig gemacht werden! Nach dem Zurücksetzen wird das Plugin automatisch deaktiviert."
|
550 |
+
|
551 |
+
#: ../dynwid_admin_overview.php:135
|
552 |
+
msgid "Uninstall"
|
553 |
+
msgstr "Zurücksetzen"
|
554 |
+
|
555 |
+
#: ../dynamic-widgets.php:124
|
556 |
+
msgid "Widgets are always displayed by default"
|
557 |
+
msgstr "Widgets werden standardmäßig immer angezeigt"
|
558 |
+
|
559 |
+
#: ../dynamic-widgets.php:124
|
560 |
+
msgid "The '<em>Yes</em>' selection"
|
561 |
+
msgstr "Die '<em>Ja</em>' Auswahl"
|
562 |
+
|
563 |
+
#: ../dynamic-widgets.php:125
|
564 |
+
msgid "Click on the"
|
565 |
+
msgstr "Klicken Sie"
|
566 |
+
|
567 |
+
#: ../dynamic-widgets.php:125
|
568 |
+
msgid "next to the options for more info"
|
569 |
+
msgstr "neben die Optionen für weitergehende Informationen"
|
570 |
+
|
571 |
+
#: ../dynamic-widgets.php:126
|
572 |
+
msgid "The"
|
573 |
+
msgstr "Das"
|
574 |
+
|
575 |
+
#: ../dynamic-widgets.php:126
|
576 |
+
msgid "next to a section means it has options set."
|
577 |
+
msgstr "neben einer Sektion bedeutet, dass die Option aktiviert ist."
|
578 |
+
|
579 |
+
#: ../dynamic-widgets.php:129
|
580 |
+
msgid "When a widget is"
|
581 |
+
msgstr "Wenn das Widget"
|
582 |
+
|
583 |
+
#: ../dynamic-widgets.php:129
|
584 |
+
msgid "the widget uses the WordPress default. In other words, it's shown everywhere"
|
585 |
+
msgstr "ist, benutzt das Widget WordPress Standardeinstellungen. Besser gesagt, es wird überall angezeigt. "
|
586 |
+
|
587 |
+
#: ../dynamic-widgets.php:130
|
588 |
+
msgid "A widget is"
|
589 |
+
msgstr "Ein Widget ist"
|
590 |
+
|
591 |
+
#: ../dynamic-widgets.php:130
|
592 |
+
msgid "when there are options set, i.e. not showing on the front page."
|
593 |
+
msgstr "wenn Optionen gesetzt sind, z.B. dass es nicht auf der Startseite angezeigt wird."
|
594 |
+
|
595 |
+
#: ../dynamic-widgets.php:132
|
596 |
+
msgid "Reset makes the widget return to"
|
597 |
+
msgstr "Durch zurücksetzen wird das Widget wieder auf folgenden Status gesetzt"
|
598 |
+
|
599 |
+
#: ../dynamic-widgets.php:171
|
600 |
+
msgid "Settings"
|
601 |
+
msgstr "Einstellungen"
|
602 |
+
|
603 |
+
#: ../dynamic-widgets.php:185
|
604 |
+
msgid "Apply exception rule to widgets:"
|
605 |
+
msgstr "Ausnahmeregel auf Widgets anwenden:"
|
606 |
+
|
607 |
+
#: ../dynamic-widgets.php:201
|
608 |
+
msgid "Off"
|
609 |
+
msgstr "Aus"
|
610 |
+
|
611 |
+
#: ../dynamic-widgets.php:201
|
612 |
+
msgid "On"
|
613 |
+
msgstr "An"
|
614 |
+
|
615 |
+
#: ../dynamic-widgets.php:202
|
616 |
+
msgid " (Default: "
|
617 |
+
msgstr "(Standard:"
|
618 |
+
|
619 |
+
#: ../dynamic-widgets.php:299
|
620 |
+
msgid "Dynamic Widgets Options saved"
|
621 |
+
msgstr "Widget Optionen gespeichert"
|
622 |
+
|
623 |
+
#: ../dynamic-widgets.php:299
|
624 |
+
msgid "for"
|
625 |
+
msgstr "für"
|
626 |
+
|
627 |
+
#: ../dynamic-widgets.php:564
|
628 |
+
msgid "Edit Dynamic Widgets Options"
|
629 |
+
msgstr "Dynamic Widgets Optionen bearbeiten"
|
630 |
+
|
631 |
+
#: ../dynamic-widgets.php:589
|
632 |
+
msgid "and"
|
633 |
+
msgstr "und"
|
634 |
+
|
635 |
+
#: ../dynamic-widgets.php:595
|
636 |
+
msgid "Options set for"
|
637 |
+
msgstr "Optionen wurden gesetzt für"
|
638 |
+
|
639 |
+
#: ../dynamic-widgets.php:595
|
640 |
+
msgid "Option set for"
|
641 |
+
msgstr "Optionen wurde gesetzt für"
|
642 |
+
|
643 |
+
#~ msgid "Dynamic Widgets: "
|
644 |
+
#~ msgstr "Dynamic Widgets:"
|
645 |
+
|
646 |
+
#~ msgid "Widget"
|
647 |
+
#~ msgstr "Widget"
|
648 |
+
|
649 |
+
#~ msgid "selection"
|
650 |
+
#~ msgstr "Auswahl"
|
651 |
+
|
652 |
+
#~ msgid "This widget is"
|
653 |
+
#~ msgstr "Dieses Widget ist"
|
locale/dynamic-widgets-es_ES.mo
ADDED
Binary file
|
locale/dynamic-widgets-es_ES.po
ADDED
@@ -0,0 +1,665 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Dynamic Widgets en español\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-01-05 19:15+0100\n"
|
6 |
+
"PO-Revision-Date: 2011-01-05 19:17+0100\n"
|
7 |
+
"Last-Translator: Jacco <jacco@qurl.nl>\n"
|
8 |
+
"Language-Team: Eduardo Larequi <elarequi@gmail.com>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
15 |
+
"X-Poedit-Language: Spanish\n"
|
16 |
+
"X-Poedit-Country: Spain\n"
|
17 |
+
"X-Poedit-SearchPath-0: ..\n"
|
18 |
+
|
19 |
+
# WordPress MO
|
20 |
+
#: ../dynwid_admin_edit.php:24
|
21 |
+
msgid "Anonymous"
|
22 |
+
msgstr "Anónimo"
|
23 |
+
|
24 |
+
#: ../dynwid_admin_edit.php:74
|
25 |
+
msgid "(and other Gecko based)"
|
26 |
+
msgstr ""
|
27 |
+
|
28 |
+
#: ../dynwid_admin_edit.php:80
|
29 |
+
msgid "Other / Unknown / Not detected"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
#: ../dynwid_admin_edit.php:185
|
33 |
+
msgid "Posts: "
|
34 |
+
msgstr "entradas: "
|
35 |
+
|
36 |
+
#: ../dynwid_admin_edit.php:185
|
37 |
+
msgid "Tags: "
|
38 |
+
msgstr "etiquetas: "
|
39 |
+
|
40 |
+
#: ../dynwid_admin_edit.php:241
|
41 |
+
#: ../dynwid_admin_edit.php:244
|
42 |
+
msgid "Front page"
|
43 |
+
msgstr "Página de inicio"
|
44 |
+
|
45 |
+
#: ../dynwid_admin_edit.php:241
|
46 |
+
#: ../dynwid_admin_edit.php:246
|
47 |
+
msgid "Posts page"
|
48 |
+
msgstr "Página de entradas"
|
49 |
+
|
50 |
+
#: ../dynwid_admin_edit.php:430
|
51 |
+
msgid "Widget options saved."
|
52 |
+
msgstr "Opciones del widget guardadas."
|
53 |
+
|
54 |
+
#: ../dynwid_admin_edit.php:430
|
55 |
+
#: ../dynwid_admin_edit.php:969
|
56 |
+
msgid "Return"
|
57 |
+
msgstr "Volver"
|
58 |
+
|
59 |
+
#: ../dynwid_admin_edit.php:430
|
60 |
+
msgid "to Dynamic Widgets overview"
|
61 |
+
msgstr "a la vista general de Dynamic Widgets"
|
62 |
+
|
63 |
+
#: ../dynwid_admin_edit.php:435
|
64 |
+
msgid "Dynamic does not mean static hiding of a widget."
|
65 |
+
msgstr "Un widget dinámico no permite ocultar estáticamente un widget."
|
66 |
+
|
67 |
+
#: ../dynwid_admin_edit.php:435
|
68 |
+
msgid "Hint"
|
69 |
+
msgstr "Pista"
|
70 |
+
|
71 |
+
#: ../dynwid_admin_edit.php:435
|
72 |
+
msgid "Remove"
|
73 |
+
msgstr "Eliminar"
|
74 |
+
|
75 |
+
#: ../dynwid_admin_edit.php:435
|
76 |
+
msgid "the widget from the sidebar"
|
77 |
+
msgstr "el widget de la barra lateral"
|
78 |
+
|
79 |
+
#: ../dynwid_admin_edit.php:439
|
80 |
+
msgid "The From date can't be later than the To date."
|
81 |
+
msgstr "La fecha del campo Desde no puede ser posterior a la fecha del campo Hasta."
|
82 |
+
|
83 |
+
#: ../dynwid_admin_edit.php:444
|
84 |
+
#, fuzzy
|
85 |
+
msgid "Edit options for the widget"
|
86 |
+
msgstr "Editar las opciones del widget"
|
87 |
+
|
88 |
+
# WordPress MO
|
89 |
+
#: ../dynwid_admin_edit.php:455
|
90 |
+
#: ../dynwid_class_php4.php:56
|
91 |
+
#: ../dynwid_class.php:50
|
92 |
+
msgid "Role"
|
93 |
+
msgstr "Perfil"
|
94 |
+
|
95 |
+
#: ../dynwid_admin_edit.php:457
|
96 |
+
msgid "Show widget to everybody?"
|
97 |
+
msgstr "¿Mostrar el widget a todo el mundo?"
|
98 |
+
|
99 |
+
#: ../dynwid_admin_edit.php:457
|
100 |
+
#: ../dynwid_admin_edit.php:477
|
101 |
+
#: ../dynwid_admin_edit.php:509
|
102 |
+
#: ../dynwid_admin_edit.php:530
|
103 |
+
#: ../dynwid_admin_edit.php:568
|
104 |
+
#: ../dynwid_admin_edit.php:582
|
105 |
+
#: ../dynwid_admin_edit.php:638
|
106 |
+
#: ../dynwid_admin_edit.php:740
|
107 |
+
msgid "Click to toggle info"
|
108 |
+
msgstr "Haz clic para mostrar/ocultar la información"
|
109 |
+
|
110 |
+
#: ../dynwid_admin_edit.php:461
|
111 |
+
msgid ""
|
112 |
+
"Setting options by role is very powerfull. It can override all other options!<br />\n"
|
113 |
+
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
114 |
+
msgstr ""
|
115 |
+
"Establecer las opciones por perfil o rol es una opción muy potente. Ten en cuenta que puede sobreescribir todas las demás opciones.<br />\n"
|
116 |
+
"\t\t\t\t\t\tLos usuarios que no están conectados tienen el perfil o rol de <em>Anónimo</em>."
|
117 |
+
|
118 |
+
# WordPress MO
|
119 |
+
#: ../dynwid_admin_edit.php:465
|
120 |
+
#: ../dynwid_admin_edit.php:489
|
121 |
+
#: ../dynwid_admin_edit.php:516
|
122 |
+
#: ../dynwid_admin_edit.php:537
|
123 |
+
#: ../dynwid_admin_edit.php:560
|
124 |
+
#: ../dynwid_admin_edit.php:577
|
125 |
+
#: ../dynwid_admin_edit.php:631
|
126 |
+
#: ../dynwid_admin_edit.php:651
|
127 |
+
#: ../dynwid_admin_edit.php:713
|
128 |
+
#: ../dynwid_admin_edit.php:727
|
129 |
+
#: ../dynwid_admin_edit.php:747
|
130 |
+
#: ../dynwid_admin_edit.php:757
|
131 |
+
#: ../dynwid_admin_edit.php:766
|
132 |
+
#: ../dynwid_admin_edit.php:883
|
133 |
+
#: ../dynwid_admin_edit.php:925
|
134 |
+
#: ../dynwid_admin_edit.php:948
|
135 |
+
msgid "Yes"
|
136 |
+
msgstr "Sí"
|
137 |
+
|
138 |
+
# WordPress MO
|
139 |
+
#: ../dynwid_admin_edit.php:466
|
140 |
+
#: ../dynwid_admin_edit.php:490
|
141 |
+
#: ../dynwid_admin_edit.php:517
|
142 |
+
#: ../dynwid_admin_edit.php:538
|
143 |
+
#: ../dynwid_admin_edit.php:561
|
144 |
+
#: ../dynwid_admin_edit.php:578
|
145 |
+
#: ../dynwid_admin_edit.php:632
|
146 |
+
#: ../dynwid_admin_edit.php:652
|
147 |
+
#: ../dynwid_admin_edit.php:714
|
148 |
+
#: ../dynwid_admin_edit.php:728
|
149 |
+
#: ../dynwid_admin_edit.php:748
|
150 |
+
#: ../dynwid_admin_edit.php:758
|
151 |
+
#: ../dynwid_admin_edit.php:767
|
152 |
+
#: ../dynwid_admin_edit.php:884
|
153 |
+
#: ../dynwid_admin_edit.php:926
|
154 |
+
#: ../dynwid_admin_edit.php:949
|
155 |
+
msgid "No"
|
156 |
+
msgstr "No"
|
157 |
+
|
158 |
+
#: ../dynwid_admin_edit.php:466
|
159 |
+
msgid "only to"
|
160 |
+
msgstr "sólo a"
|
161 |
+
|
162 |
+
# WordPress MO
|
163 |
+
#: ../dynwid_admin_edit.php:475
|
164 |
+
#: ../dynwid_class_php4.php:57
|
165 |
+
#: ../dynwid_class.php:51
|
166 |
+
msgid "Date"
|
167 |
+
msgstr "Fecha"
|
168 |
+
|
169 |
+
#: ../dynwid_admin_edit.php:477
|
170 |
+
msgid "Show widget always?"
|
171 |
+
msgstr "¿Mostrar el widget siempre?"
|
172 |
+
|
173 |
+
#: ../dynwid_admin_edit.php:481
|
174 |
+
msgid "Next to the above role option, the date option is also very powerfull. You've been warned!"
|
175 |
+
msgstr "Ten en cuenta que, al igual que la opción anterior, la opción de fecha es muy potente."
|
176 |
+
|
177 |
+
#: ../dynwid_admin_edit.php:482
|
178 |
+
msgid "Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the"
|
179 |
+
msgstr "Escribe las fechas en el formato YYYY-MM-DD. Siempre puedes utilizar el calendario y hacer clic en el icono"
|
180 |
+
|
181 |
+
#: ../dynwid_admin_edit.php:483
|
182 |
+
msgid ""
|
183 |
+
"Date ranges can be made by entering a From AND a To date<br />\n"
|
184 |
+
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
185 |
+
" \t\t\t\t\tWhen you want the widget to stop displaying on a specific date, only fill in the To date.\n"
|
186 |
+
" \t\t\t\t"
|
187 |
+
msgstr ""
|
188 |
+
"Los rangos de fecha pueden definirse mediante los parámetros Desde y Hasta.<br />\n"
|
189 |
+
" \t\t\t\t\tCuando quieras que el widget se muestre a partir de una fecha específica, sólo debes llenar el campo Desde.<br />\n"
|
190 |
+
" \t\t\t\t\tCuando quieras que el widget deje de mostrarse a partir de una fecha específica, sólo debes llenar el campo Hasta.\n"
|
191 |
+
" \t\t\t\t"
|
192 |
+
|
193 |
+
#: ../dynwid_admin_edit.php:490
|
194 |
+
msgid "only"
|
195 |
+
msgstr "sólo"
|
196 |
+
|
197 |
+
#: ../dynwid_admin_edit.php:494
|
198 |
+
msgid "From"
|
199 |
+
msgstr "Desde"
|
200 |
+
|
201 |
+
#: ../dynwid_admin_edit.php:498
|
202 |
+
msgid "To"
|
203 |
+
msgstr "Hasta"
|
204 |
+
|
205 |
+
#: ../dynwid_admin_edit.php:507
|
206 |
+
msgid "Language (WPML)"
|
207 |
+
msgstr "Idioma (WPML)"
|
208 |
+
|
209 |
+
#: ../dynwid_admin_edit.php:509
|
210 |
+
msgid "Show widget default on all languages?"
|
211 |
+
msgstr "¿Quieres mostrar el widget por defecto en todos los idiomas?"
|
212 |
+
|
213 |
+
#: ../dynwid_admin_edit.php:513
|
214 |
+
msgid "Using this option can override all other options."
|
215 |
+
msgstr "Al utilizar esta opción se pueden sobreescribir todas las demás opciones."
|
216 |
+
|
217 |
+
#: ../dynwid_admin_edit.php:518
|
218 |
+
msgid "Except the languages"
|
219 |
+
msgstr "Excepto los idiomas"
|
220 |
+
|
221 |
+
#: ../dynwid_admin_edit.php:528
|
222 |
+
#: ../dynwid_class_php4.php:58
|
223 |
+
#: ../dynwid_class.php:52
|
224 |
+
msgid "Browser"
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: ../dynwid_admin_edit.php:530
|
228 |
+
#, fuzzy
|
229 |
+
msgid "Show widget with all browsers?"
|
230 |
+
msgstr "¿Mostrar el widget siempre?"
|
231 |
+
|
232 |
+
#: ../dynwid_admin_edit.php:534
|
233 |
+
msgid "Browser detection is never 100% accurate."
|
234 |
+
msgstr ""
|
235 |
+
|
236 |
+
#: ../dynwid_admin_edit.php:539
|
237 |
+
#, fuzzy
|
238 |
+
msgid "Except the browser(s)"
|
239 |
+
msgstr "Excepto en las páginas del autor o autores"
|
240 |
+
|
241 |
+
#: ../dynwid_admin_edit.php:549
|
242 |
+
#: ../dynwid_class_php4.php:60
|
243 |
+
#: ../dynwid_class.php:54
|
244 |
+
msgid "Front Page"
|
245 |
+
msgstr "Página de inicio"
|
246 |
+
|
247 |
+
#: ../dynwid_admin_edit.php:551
|
248 |
+
msgid "Show widget on the front page?"
|
249 |
+
msgstr "¿Quieres mostrar el widget en la página de inicio?"
|
250 |
+
|
251 |
+
#: ../dynwid_admin_edit.php:555
|
252 |
+
msgid ""
|
253 |
+
"This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />\n"
|
254 |
+
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
255 |
+
"\t\t\t\t\t"
|
256 |
+
msgstr ""
|
257 |
+
"Esta opción sólo se aplica cuando la página de opción está configurada para mostrar tus últimas entradas (ve al menú Ajustes > Lectura).<br />\n"
|
258 |
+
"\t\t\t\t\t\tSi configuras el blog a partir de una página estática, puedes utilizar las opciones para páginas estáticas, que aparecen a continuación.\n"
|
259 |
+
"\t\t\t\t\t"
|
260 |
+
|
261 |
+
#: ../dynwid_admin_edit.php:566
|
262 |
+
#: ../dynwid_class_php4.php:61
|
263 |
+
#: ../dynwid_class.php:55
|
264 |
+
msgid "Single Posts"
|
265 |
+
msgstr "Entradas individuales"
|
266 |
+
|
267 |
+
#: ../dynwid_admin_edit.php:568
|
268 |
+
msgid "Show widget default on single posts?"
|
269 |
+
msgstr "¿Quieres mostrar el widget por defecto en las entradas individuales?"
|
270 |
+
|
271 |
+
#: ../dynwid_admin_edit.php:572
|
272 |
+
msgid ""
|
273 |
+
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
274 |
+
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
275 |
+
" \t\t\t\t\t"
|
276 |
+
msgstr ""
|
277 |
+
"Si defines una excepción para un autor <b>y</b> una categoría (AND), ambas condiciones deben cumplirse. De otro modo, la excepción no se aplicará.\n"
|
278 |
+
" \t\t\t\t\tSi quieres utilizar las dos reglas en una condiciión lógica excluyente (OR), debes añadir el mismo widget otra vez y aplicarle la segunda regla.\n"
|
279 |
+
" \t\t\t\t\t"
|
280 |
+
|
281 |
+
#: ../dynwid_admin_edit.php:581
|
282 |
+
msgid "Make exception rule available to individual posts and tags."
|
283 |
+
msgstr "Definir una excepción para las entradas individuales y las etiquetas"
|
284 |
+
|
285 |
+
#: ../dynwid_admin_edit.php:585
|
286 |
+
msgid ""
|
287 |
+
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
288 |
+
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
289 |
+
"\t\t\t\t\t\tclick a tag), For individual posts in the <a href=\"post-new.php\">New</a> or <a href=\"edit.php\">Edit</a> Posts panel.\n"
|
290 |
+
"\t\t\t\t\t\tException rules for tags and individual posts in any combination work independantly, but will always be counted as one exception.<br />\n"
|
291 |
+
" \t\t\t\t\tPlease note when exception rules are set for Author and/or Category, these will be removed.\n"
|
292 |
+
" \t\t\t\t"
|
293 |
+
msgstr ""
|
294 |
+
"Cuando actives esta opción, tendrás la capacidad de aplicar las excepciones definidas en esta sección tanto a las etiquetas como a las entradas individuales.\n"
|
295 |
+
"\t\t\t\t\t\tPuedes establecer las excepciones para las etiquetas en el panel de edición de etiquetas (para ello, ve al menú <a href=\"edit-tags.php?taxonomy=post_tag\">Etiquetas de las entradas</a>,\n"
|
296 |
+
"\t\t\t\t\t\ty haz clic en una etiqueta). Para las entradas individuales, ve a las opciones <a href=\"post-new.php\">Añadir nueva</a> o <a href=\"edit.php\">Entradas</a>, en la sección Entradas del menú.\n"
|
297 |
+
"\t\t\t\t\t\tLas excepciones para las etiquetas y las entradas individuales funcionan de forma independiente en cualquier combinación, pero siempre se contabilizarán como una única excepción.<br />\n"
|
298 |
+
" \t\t\t\t\tDebes tener en cuenta que si defines excepciones para las páginas de autor o de categoría, las que hayas definido en esta sección se eliminarán.\n"
|
299 |
+
" \t\t\t\t"
|
300 |
+
|
301 |
+
#: ../dynwid_admin_edit.php:602
|
302 |
+
msgid "Except the posts by author"
|
303 |
+
msgstr "Excepto en las entradas del autor"
|
304 |
+
|
305 |
+
#: ../dynwid_admin_edit.php:613
|
306 |
+
msgid "Except the posts in category"
|
307 |
+
msgstr "Excepto en las entradas de la categoría"
|
308 |
+
|
309 |
+
#: ../dynwid_admin_edit.php:627
|
310 |
+
#: ../dynwid_class_php4.php:62
|
311 |
+
#: ../dynwid_class.php:56
|
312 |
+
msgid "Attachments"
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: ../dynwid_admin_edit.php:629
|
316 |
+
#, fuzzy
|
317 |
+
msgid "Show widget on attachment pages"
|
318 |
+
msgstr "¿Quieres mostrar el widget en las páginas de archivo o índice"
|
319 |
+
|
320 |
+
# WordPress MO
|
321 |
+
#: ../dynwid_admin_edit.php:636
|
322 |
+
#: ../dynwid_class_php4.php:63
|
323 |
+
#: ../dynwid_class.php:57
|
324 |
+
msgid "Pages"
|
325 |
+
msgstr "Páginas"
|
326 |
+
|
327 |
+
#: ../dynwid_admin_edit.php:638
|
328 |
+
msgid "Show widget default on static pages?"
|
329 |
+
msgstr "¿Quieres mostrar el widget por defecto en las páginas estáticas?"
|
330 |
+
|
331 |
+
#: ../dynwid_admin_edit.php:643
|
332 |
+
msgid ""
|
333 |
+
"Checking the \"All childs\" option, makes the exception rule apply\n"
|
334 |
+
"\t\t\t\tto the parent and all items under it in all levels. Also future items\n"
|
335 |
+
"\t\t\t\tunder the parent. It's not possible to apply an exception rule to\n"
|
336 |
+
"\t\t\t\t\"All childs\" without the parent."
|
337 |
+
msgstr ""
|
338 |
+
"Si marcas la opción \"Todas las páginas-hijas\", la excepción se aplicará\n"
|
339 |
+
"\t\t\t\ta la página padre y a todas las páginas-hijas que dependan de ella, a todos los niveles, incluyendo las futuras páginas-hijas.\n"
|
340 |
+
"\t\t\t\tNo es posible aplicar una excepción a\n"
|
341 |
+
"\t\t\t\t\"Todas las páginas-hijas\" sin incluir previamente la página-padre."
|
342 |
+
|
343 |
+
#: ../dynwid_admin_edit.php:653
|
344 |
+
msgid "Except the page(s)"
|
345 |
+
msgstr "Excepto en la(s) página(s)"
|
346 |
+
|
347 |
+
#: ../dynwid_admin_edit.php:692
|
348 |
+
#: ../dynwid_admin_edit.php:807
|
349 |
+
msgid "All childs"
|
350 |
+
msgstr "Todas las páginas-hijas"
|
351 |
+
|
352 |
+
#: ../dynwid_admin_edit.php:709
|
353 |
+
#: ../dynwid_class_php4.php:64
|
354 |
+
#: ../dynwid_class.php:58
|
355 |
+
msgid "Author Pages"
|
356 |
+
msgstr "Páginas de autor"
|
357 |
+
|
358 |
+
#: ../dynwid_admin_edit.php:711
|
359 |
+
msgid "Show widget default on author pages?"
|
360 |
+
msgstr "¿Quieres mostrar el widget por defecto en las páginas de autor?"
|
361 |
+
|
362 |
+
#: ../dynwid_admin_edit.php:715
|
363 |
+
msgid "Except the author(s)"
|
364 |
+
msgstr "Excepto en las páginas del autor o autores"
|
365 |
+
|
366 |
+
#: ../dynwid_admin_edit.php:723
|
367 |
+
#: ../dynwid_class_php4.php:65
|
368 |
+
#: ../dynwid_class.php:59
|
369 |
+
msgid "Category Pages"
|
370 |
+
msgstr "Páginas de categoría"
|
371 |
+
|
372 |
+
#: ../dynwid_admin_edit.php:725
|
373 |
+
msgid "Show widget default on category pages?"
|
374 |
+
msgstr "¿Quieres mostrar el widget por defecto en las páginas por categorías?"
|
375 |
+
|
376 |
+
#: ../dynwid_admin_edit.php:729
|
377 |
+
#: ../dynwid_admin_edit.php:950
|
378 |
+
msgid "Except the categories"
|
379 |
+
msgstr "Excepto en las páginas de las categorías"
|
380 |
+
|
381 |
+
#: ../dynwid_admin_edit.php:738
|
382 |
+
#: ../dynwid_class_php4.php:66
|
383 |
+
#: ../dynwid_class.php:60
|
384 |
+
msgid "Archive Pages"
|
385 |
+
msgstr "Páginas de archivo o índice"
|
386 |
+
|
387 |
+
#: ../dynwid_admin_edit.php:740
|
388 |
+
msgid "Show widget on archive pages"
|
389 |
+
msgstr "¿Quieres mostrar el widget en las páginas de archivo o índice"
|
390 |
+
|
391 |
+
#: ../dynwid_admin_edit.php:744
|
392 |
+
msgid "This option does not include Author and Category Pages."
|
393 |
+
msgstr "Esta opción no incluye las páginas de autor y de categorías."
|
394 |
+
|
395 |
+
#: ../dynwid_admin_edit.php:753
|
396 |
+
#: ../dynwid_class_php4.php:67
|
397 |
+
#: ../dynwid_class.php:61
|
398 |
+
msgid "Error Page"
|
399 |
+
msgstr "Página de error"
|
400 |
+
|
401 |
+
#: ../dynwid_admin_edit.php:755
|
402 |
+
msgid "Show widget on the error page?"
|
403 |
+
msgstr "¿Quieres mostrar el widget en la página de error?"
|
404 |
+
|
405 |
+
#: ../dynwid_admin_edit.php:762
|
406 |
+
msgid "Search Page"
|
407 |
+
msgstr "Página de búsqueda"
|
408 |
+
|
409 |
+
#: ../dynwid_admin_edit.php:764
|
410 |
+
msgid "Show widget on the search page?"
|
411 |
+
msgstr "¿Quieres mostrar el widget en la página de búsqueda?"
|
412 |
+
|
413 |
+
#: ../dynwid_admin_edit.php:869
|
414 |
+
msgid "Custom Post Type"
|
415 |
+
msgstr "Tipo de contenido personalizado"
|
416 |
+
|
417 |
+
#: ../dynwid_admin_edit.php:871
|
418 |
+
msgid "Show widget on"
|
419 |
+
msgstr "¿Quieres mostrar el widget en"
|
420 |
+
|
421 |
+
#: ../dynwid_admin_edit.php:886
|
422 |
+
#: ../dynwid_admin_edit.php:928
|
423 |
+
msgid "Except for"
|
424 |
+
msgstr "Excepto para"
|
425 |
+
|
426 |
+
#: ../dynwid_admin_edit.php:920
|
427 |
+
#, fuzzy
|
428 |
+
msgid "Custom Post Type Archives"
|
429 |
+
msgstr "Tipo de contenido personalizado"
|
430 |
+
|
431 |
+
#: ../dynwid_admin_edit.php:922
|
432 |
+
#, fuzzy
|
433 |
+
msgid "Show widget on Custom Post Type Archives"
|
434 |
+
msgstr "¿Quieres mostrar el widget en la página de búsqueda?"
|
435 |
+
|
436 |
+
#: ../dynwid_admin_edit.php:944
|
437 |
+
#: ../dynwid_class_php4.php:69
|
438 |
+
#: ../dynwid_class.php:63
|
439 |
+
msgid "WPSC Category"
|
440 |
+
msgstr "Categoría WPSC (WP Shopping Cart)"
|
441 |
+
|
442 |
+
#: ../dynwid_admin_edit.php:946
|
443 |
+
msgid "Show widget default on WPSC categories?"
|
444 |
+
msgstr "¿Quieres mostrar el widget por defecto en las categorías del plugin WPSC?"
|
445 |
+
|
446 |
+
# WordPress MO
|
447 |
+
#: ../dynwid_admin_edit.php:965
|
448 |
+
msgid "Save"
|
449 |
+
msgstr "Guardar"
|
450 |
+
|
451 |
+
#: ../dynwid_class_php4.php:59
|
452 |
+
#: ../dynwid_class.php:53
|
453 |
+
msgid "Language"
|
454 |
+
msgstr "Idioma"
|
455 |
+
|
456 |
+
#: ../dynwid_class_php4.php:68
|
457 |
+
#: ../dynwid_class.php:62
|
458 |
+
msgid "Search page"
|
459 |
+
msgstr "Página de búsqueda"
|
460 |
+
|
461 |
+
#: ../dynwid_admin.php:10
|
462 |
+
#: ../dynamic-widgets.php:139
|
463 |
+
#: ../dynamic-widgets.php:218
|
464 |
+
#: ../dynamic-widgets.php:563
|
465 |
+
msgid "Dynamic Widgets"
|
466 |
+
msgstr "Widgets dinámicos"
|
467 |
+
|
468 |
+
#: ../dynwid_admin.php:16
|
469 |
+
msgid "<b>WARNING</b> STRICT sql mode in effect. Dynamic Widgets might not work correctly. Please disable STRICT sql mode."
|
470 |
+
msgstr "<b>AVISO</b> El modo SQL STRICT está activado, y por tanto el plugin Dynamic Widgets podría no funcionar correctamente. Por favor, desacitva el modo SQL STRICT."
|
471 |
+
|
472 |
+
#: ../dynwid_admin.php:36
|
473 |
+
msgid "Oops! Something went terrible wrong. Please reinstall Dynamic Widgets."
|
474 |
+
msgstr "Lo sentimos, pero algo ha funcionado mal. Por favor, reinstala el plugin Dynamic Widgets."
|
475 |
+
|
476 |
+
#: ../dynwid_admin.php:44
|
477 |
+
#: ../dynwid_admin_overview.php:28
|
478 |
+
msgid "OLD"
|
479 |
+
msgstr "ANTIGUO"
|
480 |
+
|
481 |
+
#: ../dynwid_admin.php:44
|
482 |
+
#: ../dynwid_admin_overview.php:28
|
483 |
+
msgid "FILTER"
|
484 |
+
msgstr "FILTRO"
|
485 |
+
|
486 |
+
#: ../dynwid_admin_overview.php:15
|
487 |
+
msgid "Widget options have been reset to default."
|
488 |
+
msgstr "Las opciones del widget se han devuelto a su configuración por defecto."
|
489 |
+
|
490 |
+
#: ../dynwid_admin_overview.php:28
|
491 |
+
msgid "Method set to"
|
492 |
+
msgstr "El método ha sido establecido a"
|
493 |
+
|
494 |
+
#: ../dynwid_admin_overview.php:36
|
495 |
+
msgid "Inactive Widgets"
|
496 |
+
msgstr "Widgets inactivos"
|
497 |
+
|
498 |
+
#: ../dynwid_admin_overview.php:59
|
499 |
+
#: ../dynwid_admin_overview.php:62
|
500 |
+
msgid "Edit this widget options"
|
501 |
+
msgstr "Editar las opciones de este widget"
|
502 |
+
|
503 |
+
# WordPress MO
|
504 |
+
#: ../dynwid_admin_overview.php:62
|
505 |
+
msgid "Edit"
|
506 |
+
msgstr "Editar"
|
507 |
+
|
508 |
+
#: ../dynwid_admin_overview.php:67
|
509 |
+
msgid "Reset widget to Static"
|
510 |
+
msgstr "Restablecer el widget y hacerlo estático"
|
511 |
+
|
512 |
+
#: ../dynwid_admin_overview.php:67
|
513 |
+
#: ../dynamic-widgets.php:131
|
514 |
+
msgid "Reset"
|
515 |
+
msgstr "Restablecer"
|
516 |
+
|
517 |
+
#: ../dynwid_admin_overview.php:73
|
518 |
+
#: ../dynamic-widgets.php:128
|
519 |
+
#: ../dynamic-widgets.php:130
|
520 |
+
#: ../dynamic-widgets.php:565
|
521 |
+
msgid "Dynamic"
|
522 |
+
msgstr "Dinámico"
|
523 |
+
|
524 |
+
#: ../dynwid_admin_overview.php:73
|
525 |
+
#: ../dynamic-widgets.php:128
|
526 |
+
#: ../dynamic-widgets.php:129
|
527 |
+
#: ../dynamic-widgets.php:132
|
528 |
+
#: ../dynamic-widgets.php:565
|
529 |
+
msgid "Static"
|
530 |
+
msgstr "Estático"
|
531 |
+
|
532 |
+
#: ../dynwid_admin_overview.php:88
|
533 |
+
msgid "Advanced"
|
534 |
+
msgstr "Avanzado"
|
535 |
+
|
536 |
+
#: ../dynwid_admin_overview.php:90
|
537 |
+
msgid "wp_head() check:"
|
538 |
+
msgstr "Comprobación de wp_head:"
|
539 |
+
|
540 |
+
#: ../dynwid_admin_overview.php:95
|
541 |
+
msgid "wp_head() is NOT called (at the most obvious place)"
|
542 |
+
msgstr "la función wp_head no ha sido invocada (al menos, en su ubicación habitual)"
|
543 |
+
|
544 |
+
#: ../dynwid_admin_overview.php:99
|
545 |
+
msgid "wp_head() is called"
|
546 |
+
msgstr "la función wp_head() ha sido invocada"
|
547 |
+
|
548 |
+
#: ../dynwid_admin_overview.php:103
|
549 |
+
msgid "Unable to determine if wp_head() is called"
|
550 |
+
msgstr "el plugin ha sido incapaz de determinar si se ha invocado la función wp_head()"
|
551 |
+
|
552 |
+
#: ../dynwid_admin_overview.php:114
|
553 |
+
msgid "Use 'OLD' method"
|
554 |
+
msgstr "Utilizar el método 'Antiguo'"
|
555 |
+
|
556 |
+
#: ../dynwid_admin_overview.php:119
|
557 |
+
msgid "For debugging purposes it is possible you're asked to create a dump. Click the 'Create dump' button and save the text file."
|
558 |
+
msgstr "A efectos de depuración, es posible que se te pida crear un volcado. Haz clic en el botón 'Crear volcado' y guarda el fichero de texto."
|
559 |
+
|
560 |
+
#: ../dynwid_admin_overview.php:124
|
561 |
+
msgid "Create dump"
|
562 |
+
msgstr "Crear volcado"
|
563 |
+
|
564 |
+
#: ../dynwid_admin_overview.php:130
|
565 |
+
msgid "When you deceide not to use this plugin anymore (sorry to hear that!). You can cleanup all settings and data related to this plugin by clicking on the 'Uninstall' button. This process is irreversible! After the cleanup the plugin is deactivated automaticly."
|
566 |
+
msgstr "Si decides no utilizar más este plugin, puedes eliminar todos las opciones de configuración y los datos relacionados con él haciendo clic en el botón 'Desinstalar'. Ten en cuenta que este proceso es irreversible. Una vez hecha la limpieza, el plugin se desactivará de forma automática."
|
567 |
+
|
568 |
+
#: ../dynwid_admin_overview.php:135
|
569 |
+
msgid "Uninstall"
|
570 |
+
msgstr "Desinstalar"
|
571 |
+
|
572 |
+
#: ../dynamic-widgets.php:124
|
573 |
+
msgid "Widgets are always displayed by default"
|
574 |
+
msgstr "Los widgets siempre se muestran por defecto"
|
575 |
+
|
576 |
+
#: ../dynamic-widgets.php:124
|
577 |
+
msgid "The '<em>Yes</em>' selection"
|
578 |
+
msgstr "La opción '<em>Sí</em>'"
|
579 |
+
|
580 |
+
#: ../dynamic-widgets.php:125
|
581 |
+
msgid "Click on the"
|
582 |
+
msgstr "Haz clic en el botón"
|
583 |
+
|
584 |
+
#: ../dynamic-widgets.php:125
|
585 |
+
msgid "next to the options for more info"
|
586 |
+
msgstr "siguiente de las opciones para obtener más información"
|
587 |
+
|
588 |
+
#: ../dynamic-widgets.php:126
|
589 |
+
msgid "The"
|
590 |
+
msgstr "El"
|
591 |
+
|
592 |
+
#: ../dynamic-widgets.php:126
|
593 |
+
msgid "next to a section means it has options set."
|
594 |
+
msgstr "junto a una sección significa que se han establecido opciones."
|
595 |
+
|
596 |
+
#: ../dynamic-widgets.php:129
|
597 |
+
msgid "When a widget is"
|
598 |
+
msgstr "Cuando un widget es"
|
599 |
+
|
600 |
+
#: ../dynamic-widgets.php:129
|
601 |
+
msgid "the widget uses the WordPress default. In other words, it's shown everywhere"
|
602 |
+
msgstr "el widget utiliza la configuración por defecto de WordPress. En otras palabras, se muestra en todas partes."
|
603 |
+
|
604 |
+
#: ../dynamic-widgets.php:130
|
605 |
+
msgid "A widget is"
|
606 |
+
msgstr "Un widget es"
|
607 |
+
|
608 |
+
#: ../dynamic-widgets.php:130
|
609 |
+
msgid "when there are options set, i.e. not showing on the front page."
|
610 |
+
msgstr "cuando se han definido opciones para él; por ejemplo, cuando no se muestra en la página de inicio."
|
611 |
+
|
612 |
+
#: ../dynamic-widgets.php:132
|
613 |
+
msgid "Reset makes the widget return to"
|
614 |
+
msgstr "El botón de Restablecer hace que el widget vuelva a"
|
615 |
+
|
616 |
+
# WordPress MO
|
617 |
+
#: ../dynamic-widgets.php:171
|
618 |
+
msgid "Settings"
|
619 |
+
msgstr "Configuración"
|
620 |
+
|
621 |
+
#: ../dynamic-widgets.php:185
|
622 |
+
msgid "Apply exception rule to widgets:"
|
623 |
+
msgstr "Aplicar una excepción a los siguientes widgets:"
|
624 |
+
|
625 |
+
#: ../dynamic-widgets.php:201
|
626 |
+
msgid "Off"
|
627 |
+
msgstr "desactivado"
|
628 |
+
|
629 |
+
#: ../dynamic-widgets.php:201
|
630 |
+
msgid "On"
|
631 |
+
msgstr "activado"
|
632 |
+
|
633 |
+
#: ../dynamic-widgets.php:202
|
634 |
+
msgid " (Default: "
|
635 |
+
msgstr " (Por defecto: "
|
636 |
+
|
637 |
+
#: ../dynamic-widgets.php:299
|
638 |
+
msgid "Dynamic Widgets Options saved"
|
639 |
+
msgstr "Se han guardado las opciones del plugin Dynamic Widgets"
|
640 |
+
|
641 |
+
#: ../dynamic-widgets.php:299
|
642 |
+
msgid "for"
|
643 |
+
msgstr "para"
|
644 |
+
|
645 |
+
#: ../dynamic-widgets.php:564
|
646 |
+
msgid "Edit Dynamic Widgets Options"
|
647 |
+
msgstr "Editar las opciones de los widgets dinámicos"
|
648 |
+
|
649 |
+
#: ../dynamic-widgets.php:589
|
650 |
+
msgid "and"
|
651 |
+
msgstr "y"
|
652 |
+
|
653 |
+
#: ../dynamic-widgets.php:595
|
654 |
+
msgid "Options set for"
|
655 |
+
msgstr "Opciones establecidas para"
|
656 |
+
|
657 |
+
#: ../dynamic-widgets.php:595
|
658 |
+
msgid "Option set for"
|
659 |
+
msgstr "Opción establecida para"
|
660 |
+
|
661 |
+
#~ msgid "Dynamic Widgets: "
|
662 |
+
#~ msgstr "Widgets dinámicos: "
|
663 |
+
|
664 |
+
#~ msgid "Front page, Posts page"
|
665 |
+
#~ msgstr "Página de inicio, Página de entradas"
|
locale/dynamic-widgets-fr_FR.mo
CHANGED
Binary file
|
locale/dynamic-widgets-fr_FR.po
CHANGED
@@ -2,9 +2,9 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Dynamic Widgets\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date:
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator:
|
8 |
"Language-Team: Alexis NOMINE <alexis@nomine.fr>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -17,210 +17,101 @@ msgstr ""
|
|
17 |
"X-Poedit-Country: FRANCE\n"
|
18 |
"X-Poedit-SearchPath-0: ..\n"
|
19 |
|
20 |
-
#: ../dynamic-widgets.php:118
|
21 |
-
msgid "Widgets are always displayed by default"
|
22 |
-
msgstr "Les widgets sont affichés partout par défaut"
|
23 |
-
|
24 |
-
#: ../dynamic-widgets.php:118
|
25 |
-
msgid "The '<em>Yes</em>' selection"
|
26 |
-
msgstr "Case '<em>Oui</em>' cochée"
|
27 |
-
|
28 |
-
#: ../dynamic-widgets.php:119
|
29 |
-
msgid "Click on the"
|
30 |
-
msgstr "Cliquez sur"
|
31 |
-
|
32 |
-
#: ../dynamic-widgets.php:119
|
33 |
-
msgid "next to the options for more info"
|
34 |
-
msgstr "à côté de chaque réglage pour plus d'informations"
|
35 |
-
|
36 |
-
#: ../dynamic-widgets.php:121
|
37 |
-
#: ../dynamic-widgets.php:122
|
38 |
-
#: ../dynamic-widgets.php:125
|
39 |
-
#: ../dynamic-widgets.php:563
|
40 |
-
#: ../dynwid_admin_overview.php:73
|
41 |
-
msgid "Static"
|
42 |
-
msgstr "Statique"
|
43 |
-
|
44 |
-
#: ../dynamic-widgets.php:121
|
45 |
-
#: ../dynamic-widgets.php:123
|
46 |
-
#: ../dynamic-widgets.php:563
|
47 |
-
#: ../dynwid_admin_overview.php:73
|
48 |
-
msgid "Dynamic"
|
49 |
-
msgstr "Dynamique"
|
50 |
-
|
51 |
-
#: ../dynamic-widgets.php:122
|
52 |
-
msgid "When a widget is"
|
53 |
-
msgstr "Quand un widget est"
|
54 |
-
|
55 |
-
#: ../dynamic-widgets.php:122
|
56 |
-
msgid "the widget uses the WordPress default. In other words, it's shown everywhere"
|
57 |
-
msgstr "le widget utilise le paramétrage par défaut de WordPress et est affiché partout"
|
58 |
-
|
59 |
-
#: ../dynamic-widgets.php:123
|
60 |
-
msgid "A widget is"
|
61 |
-
msgstr "Un widget est"
|
62 |
-
|
63 |
-
#: ../dynamic-widgets.php:123
|
64 |
-
msgid "when there are options set, i.e. not showing on the front page."
|
65 |
-
msgstr "quand des réglages s'appliquent (par exemple masquer sur la page d'accueil)."
|
66 |
-
|
67 |
-
#: ../dynamic-widgets.php:124
|
68 |
-
#: ../dynwid_admin_overview.php:67
|
69 |
-
msgid "Reset"
|
70 |
-
msgstr "Réinitialiser"
|
71 |
-
|
72 |
-
#: ../dynamic-widgets.php:125
|
73 |
-
msgid "Reset makes the widget return to"
|
74 |
-
msgstr "La réinirialisation rendra le widget à nouveau"
|
75 |
-
|
76 |
# WordPress MO
|
77 |
-
#: ../
|
78 |
-
msgid "
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: ../
|
82 |
-
msgid "
|
83 |
-
msgstr "Ce widget est"
|
84 |
-
|
85 |
-
# WordPress MO
|
86 |
-
#: ../dynamic-widgets.php:568
|
87 |
-
#: ../dynwid_admin_edit.php:366
|
88 |
-
msgid "Role"
|
89 |
msgstr ""
|
90 |
|
91 |
-
|
92 |
-
|
93 |
-
#: ../dynwid_admin_edit.php:386
|
94 |
-
msgid "Date"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: ../
|
98 |
-
|
99 |
-
msgid "Front Page"
|
100 |
-
msgstr "Page d'accueil"
|
101 |
-
|
102 |
-
#: ../dynamic-widgets.php:571
|
103 |
-
#: ../dynwid_admin_edit.php:433
|
104 |
-
msgid "Single Posts"
|
105 |
-
msgstr "Article"
|
106 |
-
|
107 |
-
# WordPress MO
|
108 |
-
#: ../dynamic-widgets.php:572
|
109 |
-
#: ../dynwid_admin_edit.php:494
|
110 |
-
msgid "Pages"
|
111 |
-
msgstr "Pages statiques"
|
112 |
-
|
113 |
-
#: ../dynamic-widgets.php:573
|
114 |
-
#: ../dynwid_admin_edit.php:509
|
115 |
-
msgid "Author Pages"
|
116 |
-
msgstr "Pages d'auteur"
|
117 |
-
|
118 |
-
#: ../dynamic-widgets.php:574
|
119 |
-
#: ../dynwid_admin_edit.php:523
|
120 |
-
msgid "Category Pages"
|
121 |
-
msgstr "Pages de catégorie"
|
122 |
-
|
123 |
-
#: ../dynamic-widgets.php:575
|
124 |
-
#: ../dynwid_admin_edit.php:538
|
125 |
-
msgid "Archive Pages"
|
126 |
-
msgstr "Pages d'archives"
|
127 |
-
|
128 |
-
#: ../dynamic-widgets.php:576
|
129 |
-
#: ../dynwid_admin_edit.php:552
|
130 |
-
msgid "Error Page"
|
131 |
-
msgstr "Pages d'erreur"
|
132 |
-
|
133 |
-
#: ../dynamic-widgets.php:577
|
134 |
-
msgid "Search page"
|
135 |
-
msgstr "Page de recherche"
|
136 |
-
|
137 |
-
#: ../dynamic-widgets.php:578
|
138 |
-
#: ../dynwid_admin_edit.php:632
|
139 |
-
msgid "WPSC Category"
|
140 |
-
msgstr "Catégorie \"WordPress Shopping Cart\""
|
141 |
-
|
142 |
-
#: ../dynamic-widgets.php:613
|
143 |
-
msgid "and"
|
144 |
-
msgstr "et"
|
145 |
-
|
146 |
-
#: ../dynamic-widgets.php:619
|
147 |
-
msgid "Options set for"
|
148 |
-
msgstr "Réglages pour"
|
149 |
-
|
150 |
-
#: ../dynamic-widgets.php:619
|
151 |
-
msgid "Option set for"
|
152 |
-
msgstr "Réglages pour"
|
153 |
-
|
154 |
-
#: ../dynwid_admin.php:16
|
155 |
-
msgid "<b>WARNING</b> STRICT sql mode in effect. Dynamic Widgets might not work correctly. Please disable STRICT sql mode."
|
156 |
-
msgstr "<b>Attention!</b> Le mode SQL STRICT est activé. Dynamic Widgets pourrait ne pas fonctionner correctement. Merci de désactiver le mode SQL STRICT."
|
157 |
-
|
158 |
-
#: ../dynwid_admin.php:36
|
159 |
-
msgid "Oops! Something went terrible wrong. Please reinstall Dynamic Widgets."
|
160 |
-
msgstr "Oups! Quelque chose à mal tourné. Merci de réinstaller Dynamic Widgets."
|
161 |
-
|
162 |
-
#: ../dynwid_admin.php:44
|
163 |
-
#: ../dynwid_admin_overview.php:28
|
164 |
-
msgid "OLD"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: ../
|
168 |
-
|
169 |
-
msgid "FILTER"
|
170 |
msgstr ""
|
171 |
|
172 |
-
|
173 |
-
#: ../dynwid_admin_edit.php:
|
174 |
-
|
175 |
-
|
|
|
176 |
|
177 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
msgid "Widget options saved."
|
179 |
msgstr "Options du widget sauvegardées."
|
180 |
|
181 |
-
#: ../dynwid_admin_edit.php:
|
182 |
-
#: ../dynwid_admin_edit.php:
|
183 |
msgid "Return"
|
184 |
msgstr "Retour"
|
185 |
|
186 |
-
#: ../dynwid_admin_edit.php:
|
187 |
msgid "to Dynamic Widgets overview"
|
188 |
msgstr "à la vue générale Dynamic Widget"
|
189 |
|
190 |
-
#: ../dynwid_admin_edit.php:
|
191 |
msgid "Dynamic does not mean static hiding of a widget."
|
192 |
msgstr "Dynamic ne permet pas de masquer statiquement un widget"
|
193 |
|
194 |
-
#: ../dynwid_admin_edit.php:
|
195 |
msgid "Hint"
|
196 |
msgstr "Astuce"
|
197 |
|
198 |
-
#: ../dynwid_admin_edit.php:
|
199 |
msgid "Remove"
|
200 |
msgstr "Effacer"
|
201 |
|
202 |
-
#: ../dynwid_admin_edit.php:
|
203 |
msgid "the widget from the sidebar"
|
204 |
msgstr "le widget de la barre latérale"
|
205 |
|
206 |
-
#: ../dynwid_admin_edit.php:
|
207 |
msgid "The From date can't be later than the To date."
|
208 |
msgstr "La date de début doit être inférieure à la date de fin."
|
209 |
|
210 |
-
#: ../dynwid_admin_edit.php:
|
211 |
-
|
|
|
212 |
msgstr "Modifier les réglages de"
|
213 |
|
214 |
# WordPress MO
|
215 |
-
#: ../dynwid_admin_edit.php:
|
216 |
-
|
|
|
|
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: ../dynwid_admin_edit.php:
|
220 |
msgid "Show widget to everybody?"
|
221 |
msgstr "Afficher le widget pour tout le monde?"
|
222 |
|
223 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
msgid ""
|
225 |
"Setting options by role is very powerfull. It can override all other options!<br />\n"
|
226 |
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
@@ -229,54 +120,69 @@ msgstr ""
|
|
229 |
"\t\t\t\t\t\tLe rôle <em>Anonyme</em> correspond aux utilisateurs non connectés."
|
230 |
|
231 |
# WordPress MO
|
232 |
-
#: ../dynwid_admin_edit.php:
|
233 |
-
#: ../dynwid_admin_edit.php:
|
234 |
-
#: ../dynwid_admin_edit.php:
|
235 |
-
#: ../dynwid_admin_edit.php:
|
236 |
-
#: ../dynwid_admin_edit.php:
|
237 |
-
#: ../dynwid_admin_edit.php:
|
238 |
-
#: ../dynwid_admin_edit.php:
|
239 |
-
#: ../dynwid_admin_edit.php:
|
240 |
-
#: ../dynwid_admin_edit.php:
|
241 |
-
#: ../dynwid_admin_edit.php:
|
242 |
-
#: ../dynwid_admin_edit.php:
|
243 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
244 |
msgid "Yes"
|
245 |
msgstr ""
|
246 |
|
247 |
# WordPress MO
|
248 |
-
#: ../dynwid_admin_edit.php:
|
249 |
-
#: ../dynwid_admin_edit.php:
|
250 |
-
#: ../dynwid_admin_edit.php:
|
251 |
-
#: ../dynwid_admin_edit.php:
|
252 |
-
#: ../dynwid_admin_edit.php:
|
253 |
-
#: ../dynwid_admin_edit.php:
|
254 |
-
#: ../dynwid_admin_edit.php:
|
255 |
-
#: ../dynwid_admin_edit.php:
|
256 |
-
#: ../dynwid_admin_edit.php:
|
257 |
-
#: ../dynwid_admin_edit.php:
|
258 |
-
#: ../dynwid_admin_edit.php:
|
259 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
260 |
msgid "No"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: ../dynwid_admin_edit.php:
|
264 |
msgid "only to"
|
265 |
msgstr "seulement à"
|
266 |
|
267 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
msgid "Show widget always?"
|
269 |
msgstr "Toujours afficher le widget?"
|
270 |
|
271 |
-
#: ../dynwid_admin_edit.php:
|
272 |
msgid "Next to the above role option, the date option is also very powerfull. You've been warned!"
|
273 |
msgstr "Les réglages de dates sont relativement puissants et permettent de passer outre tous les autres réglages!"
|
274 |
|
275 |
-
#: ../dynwid_admin_edit.php:
|
276 |
msgid "Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the"
|
277 |
msgstr "Entrer la date au format AAAA-MM-JJ. Vous pouvez aussi utiliser le calendrier en cliquant sur"
|
278 |
|
279 |
-
#: ../dynwid_admin_edit.php:
|
280 |
msgid ""
|
281 |
"Date ranges can be made by entering a From AND a To date<br />\n"
|
282 |
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
@@ -288,23 +194,67 @@ msgstr ""
|
|
288 |
" \t\t\t\t\tSi vous voulez masquer le widget à partir d'une certaine date seulement, remplissez uniquement la date de fin.\n"
|
289 |
" \t\t\t\t"
|
290 |
|
291 |
-
#: ../dynwid_admin_edit.php:
|
292 |
msgid "only"
|
293 |
msgstr "uniquement"
|
294 |
|
295 |
-
#: ../dynwid_admin_edit.php:
|
296 |
msgid "From"
|
297 |
msgstr "Du"
|
298 |
|
299 |
-
#: ../dynwid_admin_edit.php:
|
300 |
msgid "To"
|
301 |
msgstr "Au"
|
302 |
|
303 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
msgid "Show widget on the front page?"
|
305 |
msgstr "Afficher le widget sur la page d'accueil?"
|
306 |
|
307 |
-
#: ../dynwid_admin_edit.php:
|
308 |
msgid ""
|
309 |
"This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />\n"
|
310 |
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
@@ -314,11 +264,17 @@ msgstr ""
|
|
314 |
"\t\t\t\t\t\tSi votre page d'accueil est configurée comme une page statique, vous pouvez utiliser les réglages des pages statiques ci-dessous.\n"
|
315 |
"\t\t\t\t\t"
|
316 |
|
317 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
msgid "Show widget default on single posts?"
|
319 |
msgstr "Afficher le widget sur chaque page d'article?"
|
320 |
|
321 |
-
#: ../dynwid_admin_edit.php:
|
322 |
msgid ""
|
323 |
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
324 |
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
@@ -328,11 +284,11 @@ msgstr ""
|
|
328 |
" \t\t\t\t\tSi vous voulez etiliser une règle <b>OU</b> l'autre, ajoutez un widget identique et appliquez-lui d'autres règles.\n"
|
329 |
" \t\t\t\t\t"
|
330 |
|
331 |
-
#: ../dynwid_admin_edit.php:
|
332 |
msgid "Make exception rule available to individual posts and tags."
|
333 |
msgstr "Permettre le réglage pour chaque article ou mot clé individuellement."
|
334 |
|
335 |
-
#: ../dynwid_admin_edit.php:
|
336 |
msgid ""
|
337 |
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
338 |
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
@@ -348,80 +304,188 @@ msgstr ""
|
|
348 |
" \t\t\t\t\tAttention! Ces règles seront effacées si des règles sont appliquées concernant les auteurs ou catégories. \n"
|
349 |
" \t\t\t\t"
|
350 |
|
351 |
-
#: ../dynwid_admin_edit.php:
|
352 |
msgid "Except the posts by author"
|
353 |
msgstr "Sauf les articles de l'auteur suivant"
|
354 |
|
355 |
-
#: ../dynwid_admin_edit.php:
|
356 |
msgid "Except the posts in category"
|
357 |
msgstr "Sauf les articles appartenant à la catégorie"
|
358 |
|
359 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
msgid "Show widget default on static pages?"
|
361 |
msgstr "Afficher le widget sur les pages statiques?"
|
362 |
|
363 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
msgid "Except the page(s)"
|
365 |
msgstr "Sauf la/les page(s)"
|
366 |
|
367 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
368 |
msgid "Show widget default on author pages?"
|
369 |
msgstr "Afficher le widget sur les pages d'auteur"
|
370 |
|
371 |
-
#: ../dynwid_admin_edit.php:
|
372 |
msgid "Except the author(s)"
|
373 |
msgstr "Sauf le/les auteur(s)"
|
374 |
|
375 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
376 |
msgid "Show widget default on category pages?"
|
377 |
msgstr "Afficher le widget sur les pages de catégorie?"
|
378 |
|
379 |
-
#: ../dynwid_admin_edit.php:
|
380 |
-
#: ../dynwid_admin_edit.php:
|
381 |
msgid "Except the categories"
|
382 |
msgstr "Sauf les catégories"
|
383 |
|
384 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
msgid "Show widget on archive pages"
|
386 |
msgstr "Afficher le widget sur les pages d'archives"
|
387 |
|
388 |
-
#: ../dynwid_admin_edit.php:
|
389 |
msgid "This option does not include Author and Category Pages."
|
390 |
msgstr "Ce réglage ne s'applique ni aux pages d'auteur ni aux pages de catégorie"
|
391 |
|
392 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
393 |
msgid "Show widget on the error page?"
|
394 |
msgstr "Afficher le widget sur les pages d'erreur?"
|
395 |
|
396 |
-
#: ../dynwid_admin_edit.php:
|
397 |
msgid "Search Page"
|
398 |
msgstr "Page de recherche"
|
399 |
|
400 |
-
#: ../dynwid_admin_edit.php:
|
401 |
msgid "Show widget on the search page?"
|
402 |
msgstr "Afficher le widget sur les pages de recherche?"
|
403 |
|
404 |
-
#: ../dynwid_admin_edit.php:
|
405 |
msgid "Custom Post Type"
|
406 |
msgstr "Types de contenu personnalisés"
|
407 |
|
408 |
-
#: ../dynwid_admin_edit.php:
|
409 |
msgid "Show widget on"
|
410 |
msgstr "Afficher le widget pour"
|
411 |
|
412 |
-
#: ../dynwid_admin_edit.php:
|
|
|
413 |
msgid "Except for"
|
414 |
msgstr "Sauf pour"
|
415 |
|
416 |
-
#: ../dynwid_admin_edit.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
417 |
msgid "Show widget default on WPSC categories?"
|
418 |
msgstr "Afficher le widget pour les catégories \"WordPress Shopping Cart\""
|
419 |
|
420 |
# WordPress MO
|
421 |
-
#: ../dynwid_admin_edit.php:
|
422 |
msgid "Save"
|
423 |
msgstr ""
|
424 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
#: ../dynwid_admin_overview.php:15
|
426 |
msgid "Widget options have been reset to default."
|
427 |
msgstr "Les réglages du widget ont été réinitialisées"
|
@@ -430,6 +494,10 @@ msgstr "Les réglages du widget ont été réinitialisées"
|
|
430 |
msgid "Method set to"
|
431 |
msgstr ""
|
432 |
|
|
|
|
|
|
|
|
|
433 |
#: ../dynwid_admin_overview.php:59
|
434 |
#: ../dynwid_admin_overview.php:62
|
435 |
msgid "Edit this widget options"
|
@@ -444,13 +512,160 @@ msgstr ""
|
|
444 |
msgid "Reset widget to Static"
|
445 |
msgstr "Rendre ce widget statique"
|
446 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
447 |
#: ../dynwid_admin_overview.php:88
|
448 |
msgid "Advanced"
|
449 |
msgstr "Avancé"
|
450 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
#, fuzzy
|
452 |
-
|
453 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
|
455 |
#~ msgid "selection"
|
456 |
#~ msgstr "sélection"
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Dynamic Widgets\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-01-05 19:15+0100\n"
|
6 |
+
"PO-Revision-Date: 2011-01-05 19:17+0100\n"
|
7 |
+
"Last-Translator: Jacco <jacco@qurl.nl>\n"
|
8 |
"Language-Team: Alexis NOMINE <alexis@nomine.fr>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
17 |
"X-Poedit-Country: FRANCE\n"
|
18 |
"X-Poedit-SearchPath-0: ..\n"
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
# WordPress MO
|
21 |
+
#: ../dynwid_admin_edit.php:24
|
22 |
+
msgid "Anonymous"
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: ../dynwid_admin_edit.php:74
|
26 |
+
msgid "(and other Gecko based)"
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: ../dynwid_admin_edit.php:80
|
30 |
+
msgid "Other / Unknown / Not detected"
|
|
|
|
|
31 |
msgstr ""
|
32 |
|
33 |
+
#: ../dynwid_admin_edit.php:185
|
34 |
+
msgid "Posts: "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
msgstr ""
|
36 |
|
37 |
+
#: ../dynwid_admin_edit.php:185
|
38 |
+
msgid "Tags: "
|
|
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: ../dynwid_admin_edit.php:241
|
42 |
+
#: ../dynwid_admin_edit.php:244
|
43 |
+
#, fuzzy
|
44 |
+
msgid "Front page"
|
45 |
+
msgstr "Page d'accueil"
|
46 |
|
47 |
+
#: ../dynwid_admin_edit.php:241
|
48 |
+
#: ../dynwid_admin_edit.php:246
|
49 |
+
#, fuzzy
|
50 |
+
msgid "Posts page"
|
51 |
+
msgstr "Page d'accueil"
|
52 |
+
|
53 |
+
#: ../dynwid_admin_edit.php:430
|
54 |
msgid "Widget options saved."
|
55 |
msgstr "Options du widget sauvegardées."
|
56 |
|
57 |
+
#: ../dynwid_admin_edit.php:430
|
58 |
+
#: ../dynwid_admin_edit.php:969
|
59 |
msgid "Return"
|
60 |
msgstr "Retour"
|
61 |
|
62 |
+
#: ../dynwid_admin_edit.php:430
|
63 |
msgid "to Dynamic Widgets overview"
|
64 |
msgstr "à la vue générale Dynamic Widget"
|
65 |
|
66 |
+
#: ../dynwid_admin_edit.php:435
|
67 |
msgid "Dynamic does not mean static hiding of a widget."
|
68 |
msgstr "Dynamic ne permet pas de masquer statiquement un widget"
|
69 |
|
70 |
+
#: ../dynwid_admin_edit.php:435
|
71 |
msgid "Hint"
|
72 |
msgstr "Astuce"
|
73 |
|
74 |
+
#: ../dynwid_admin_edit.php:435
|
75 |
msgid "Remove"
|
76 |
msgstr "Effacer"
|
77 |
|
78 |
+
#: ../dynwid_admin_edit.php:435
|
79 |
msgid "the widget from the sidebar"
|
80 |
msgstr "le widget de la barre latérale"
|
81 |
|
82 |
+
#: ../dynwid_admin_edit.php:439
|
83 |
msgid "The From date can't be later than the To date."
|
84 |
msgstr "La date de début doit être inférieure à la date de fin."
|
85 |
|
86 |
+
#: ../dynwid_admin_edit.php:444
|
87 |
+
#, fuzzy
|
88 |
+
msgid "Edit options for the widget"
|
89 |
msgstr "Modifier les réglages de"
|
90 |
|
91 |
# WordPress MO
|
92 |
+
#: ../dynwid_admin_edit.php:455
|
93 |
+
#: ../dynwid_class_php4.php:56
|
94 |
+
#: ../dynwid_class.php:50
|
95 |
+
msgid "Role"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: ../dynwid_admin_edit.php:457
|
99 |
msgid "Show widget to everybody?"
|
100 |
msgstr "Afficher le widget pour tout le monde?"
|
101 |
|
102 |
+
#: ../dynwid_admin_edit.php:457
|
103 |
+
#: ../dynwid_admin_edit.php:477
|
104 |
+
#: ../dynwid_admin_edit.php:509
|
105 |
+
#: ../dynwid_admin_edit.php:530
|
106 |
+
#: ../dynwid_admin_edit.php:568
|
107 |
+
#: ../dynwid_admin_edit.php:582
|
108 |
+
#: ../dynwid_admin_edit.php:638
|
109 |
+
#: ../dynwid_admin_edit.php:740
|
110 |
+
#, fuzzy
|
111 |
+
msgid "Click to toggle info"
|
112 |
+
msgstr "Cliquez sur"
|
113 |
+
|
114 |
+
#: ../dynwid_admin_edit.php:461
|
115 |
msgid ""
|
116 |
"Setting options by role is very powerfull. It can override all other options!<br />\n"
|
117 |
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
120 |
"\t\t\t\t\t\tLe rôle <em>Anonyme</em> correspond aux utilisateurs non connectés."
|
121 |
|
122 |
# WordPress MO
|
123 |
+
#: ../dynwid_admin_edit.php:465
|
124 |
+
#: ../dynwid_admin_edit.php:489
|
125 |
+
#: ../dynwid_admin_edit.php:516
|
126 |
+
#: ../dynwid_admin_edit.php:537
|
127 |
+
#: ../dynwid_admin_edit.php:560
|
128 |
+
#: ../dynwid_admin_edit.php:577
|
129 |
+
#: ../dynwid_admin_edit.php:631
|
130 |
+
#: ../dynwid_admin_edit.php:651
|
131 |
+
#: ../dynwid_admin_edit.php:713
|
132 |
+
#: ../dynwid_admin_edit.php:727
|
133 |
+
#: ../dynwid_admin_edit.php:747
|
134 |
+
#: ../dynwid_admin_edit.php:757
|
135 |
+
#: ../dynwid_admin_edit.php:766
|
136 |
+
#: ../dynwid_admin_edit.php:883
|
137 |
+
#: ../dynwid_admin_edit.php:925
|
138 |
+
#: ../dynwid_admin_edit.php:948
|
139 |
msgid "Yes"
|
140 |
msgstr ""
|
141 |
|
142 |
# WordPress MO
|
143 |
+
#: ../dynwid_admin_edit.php:466
|
144 |
+
#: ../dynwid_admin_edit.php:490
|
145 |
+
#: ../dynwid_admin_edit.php:517
|
146 |
+
#: ../dynwid_admin_edit.php:538
|
147 |
+
#: ../dynwid_admin_edit.php:561
|
148 |
+
#: ../dynwid_admin_edit.php:578
|
149 |
+
#: ../dynwid_admin_edit.php:632
|
150 |
+
#: ../dynwid_admin_edit.php:652
|
151 |
+
#: ../dynwid_admin_edit.php:714
|
152 |
+
#: ../dynwid_admin_edit.php:728
|
153 |
+
#: ../dynwid_admin_edit.php:748
|
154 |
+
#: ../dynwid_admin_edit.php:758
|
155 |
+
#: ../dynwid_admin_edit.php:767
|
156 |
+
#: ../dynwid_admin_edit.php:884
|
157 |
+
#: ../dynwid_admin_edit.php:926
|
158 |
+
#: ../dynwid_admin_edit.php:949
|
159 |
msgid "No"
|
160 |
msgstr ""
|
161 |
|
162 |
+
#: ../dynwid_admin_edit.php:466
|
163 |
msgid "only to"
|
164 |
msgstr "seulement à"
|
165 |
|
166 |
+
# WordPress MO
|
167 |
+
#: ../dynwid_admin_edit.php:475
|
168 |
+
#: ../dynwid_class_php4.php:57
|
169 |
+
#: ../dynwid_class.php:51
|
170 |
+
msgid "Date"
|
171 |
+
msgstr ""
|
172 |
+
|
173 |
+
#: ../dynwid_admin_edit.php:477
|
174 |
msgid "Show widget always?"
|
175 |
msgstr "Toujours afficher le widget?"
|
176 |
|
177 |
+
#: ../dynwid_admin_edit.php:481
|
178 |
msgid "Next to the above role option, the date option is also very powerfull. You've been warned!"
|
179 |
msgstr "Les réglages de dates sont relativement puissants et permettent de passer outre tous les autres réglages!"
|
180 |
|
181 |
+
#: ../dynwid_admin_edit.php:482
|
182 |
msgid "Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the"
|
183 |
msgstr "Entrer la date au format AAAA-MM-JJ. Vous pouvez aussi utiliser le calendrier en cliquant sur"
|
184 |
|
185 |
+
#: ../dynwid_admin_edit.php:483
|
186 |
msgid ""
|
187 |
"Date ranges can be made by entering a From AND a To date<br />\n"
|
188 |
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
194 |
" \t\t\t\t\tSi vous voulez masquer le widget à partir d'une certaine date seulement, remplissez uniquement la date de fin.\n"
|
195 |
" \t\t\t\t"
|
196 |
|
197 |
+
#: ../dynwid_admin_edit.php:490
|
198 |
msgid "only"
|
199 |
msgstr "uniquement"
|
200 |
|
201 |
+
#: ../dynwid_admin_edit.php:494
|
202 |
msgid "From"
|
203 |
msgstr "Du"
|
204 |
|
205 |
+
#: ../dynwid_admin_edit.php:498
|
206 |
msgid "To"
|
207 |
msgstr "Au"
|
208 |
|
209 |
+
#: ../dynwid_admin_edit.php:507
|
210 |
+
msgid "Language (WPML)"
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: ../dynwid_admin_edit.php:509
|
214 |
+
#, fuzzy
|
215 |
+
msgid "Show widget default on all languages?"
|
216 |
+
msgstr "Afficher le widget sur les pages statiques?"
|
217 |
+
|
218 |
+
#: ../dynwid_admin_edit.php:513
|
219 |
+
msgid "Using this option can override all other options."
|
220 |
+
msgstr ""
|
221 |
+
|
222 |
+
#: ../dynwid_admin_edit.php:518
|
223 |
+
#, fuzzy
|
224 |
+
msgid "Except the languages"
|
225 |
+
msgstr "Sauf la/les page(s)"
|
226 |
+
|
227 |
+
#: ../dynwid_admin_edit.php:528
|
228 |
+
#: ../dynwid_class_php4.php:58
|
229 |
+
#: ../dynwid_class.php:52
|
230 |
+
msgid "Browser"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: ../dynwid_admin_edit.php:530
|
234 |
+
#, fuzzy
|
235 |
+
msgid "Show widget with all browsers?"
|
236 |
+
msgstr "Toujours afficher le widget?"
|
237 |
+
|
238 |
+
#: ../dynwid_admin_edit.php:534
|
239 |
+
msgid "Browser detection is never 100% accurate."
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: ../dynwid_admin_edit.php:539
|
243 |
+
#, fuzzy
|
244 |
+
msgid "Except the browser(s)"
|
245 |
+
msgstr "Sauf le/les auteur(s)"
|
246 |
+
|
247 |
+
#: ../dynwid_admin_edit.php:549
|
248 |
+
#: ../dynwid_class_php4.php:60
|
249 |
+
#: ../dynwid_class.php:54
|
250 |
+
msgid "Front Page"
|
251 |
+
msgstr "Page d'accueil"
|
252 |
+
|
253 |
+
#: ../dynwid_admin_edit.php:551
|
254 |
msgid "Show widget on the front page?"
|
255 |
msgstr "Afficher le widget sur la page d'accueil?"
|
256 |
|
257 |
+
#: ../dynwid_admin_edit.php:555
|
258 |
msgid ""
|
259 |
"This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />\n"
|
260 |
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
264 |
"\t\t\t\t\t\tSi votre page d'accueil est configurée comme une page statique, vous pouvez utiliser les réglages des pages statiques ci-dessous.\n"
|
265 |
"\t\t\t\t\t"
|
266 |
|
267 |
+
#: ../dynwid_admin_edit.php:566
|
268 |
+
#: ../dynwid_class_php4.php:61
|
269 |
+
#: ../dynwid_class.php:55
|
270 |
+
msgid "Single Posts"
|
271 |
+
msgstr "Article"
|
272 |
+
|
273 |
+
#: ../dynwid_admin_edit.php:568
|
274 |
msgid "Show widget default on single posts?"
|
275 |
msgstr "Afficher le widget sur chaque page d'article?"
|
276 |
|
277 |
+
#: ../dynwid_admin_edit.php:572
|
278 |
msgid ""
|
279 |
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
280 |
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
284 |
" \t\t\t\t\tSi vous voulez etiliser une règle <b>OU</b> l'autre, ajoutez un widget identique et appliquez-lui d'autres règles.\n"
|
285 |
" \t\t\t\t\t"
|
286 |
|
287 |
+
#: ../dynwid_admin_edit.php:581
|
288 |
msgid "Make exception rule available to individual posts and tags."
|
289 |
msgstr "Permettre le réglage pour chaque article ou mot clé individuellement."
|
290 |
|
291 |
+
#: ../dynwid_admin_edit.php:585
|
292 |
msgid ""
|
293 |
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
294 |
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
304 |
" \t\t\t\t\tAttention! Ces règles seront effacées si des règles sont appliquées concernant les auteurs ou catégories. \n"
|
305 |
" \t\t\t\t"
|
306 |
|
307 |
+
#: ../dynwid_admin_edit.php:602
|
308 |
msgid "Except the posts by author"
|
309 |
msgstr "Sauf les articles de l'auteur suivant"
|
310 |
|
311 |
+
#: ../dynwid_admin_edit.php:613
|
312 |
msgid "Except the posts in category"
|
313 |
msgstr "Sauf les articles appartenant à la catégorie"
|
314 |
|
315 |
+
#: ../dynwid_admin_edit.php:627
|
316 |
+
#: ../dynwid_class_php4.php:62
|
317 |
+
#: ../dynwid_class.php:56
|
318 |
+
msgid "Attachments"
|
319 |
+
msgstr ""
|
320 |
+
|
321 |
+
#: ../dynwid_admin_edit.php:629
|
322 |
+
#, fuzzy
|
323 |
+
msgid "Show widget on attachment pages"
|
324 |
+
msgstr "Afficher le widget sur les pages d'archives"
|
325 |
+
|
326 |
+
# WordPress MO
|
327 |
+
#: ../dynwid_admin_edit.php:636
|
328 |
+
#: ../dynwid_class_php4.php:63
|
329 |
+
#: ../dynwid_class.php:57
|
330 |
+
msgid "Pages"
|
331 |
+
msgstr "Pages statiques"
|
332 |
+
|
333 |
+
#: ../dynwid_admin_edit.php:638
|
334 |
msgid "Show widget default on static pages?"
|
335 |
msgstr "Afficher le widget sur les pages statiques?"
|
336 |
|
337 |
+
#: ../dynwid_admin_edit.php:643
|
338 |
+
msgid ""
|
339 |
+
"Checking the \"All childs\" option, makes the exception rule apply\n"
|
340 |
+
"\t\t\t\tto the parent and all items under it in all levels. Also future items\n"
|
341 |
+
"\t\t\t\tunder the parent. It's not possible to apply an exception rule to\n"
|
342 |
+
"\t\t\t\t\"All childs\" without the parent."
|
343 |
+
msgstr ""
|
344 |
+
|
345 |
+
#: ../dynwid_admin_edit.php:653
|
346 |
msgid "Except the page(s)"
|
347 |
msgstr "Sauf la/les page(s)"
|
348 |
|
349 |
+
#: ../dynwid_admin_edit.php:692
|
350 |
+
#: ../dynwid_admin_edit.php:807
|
351 |
+
msgid "All childs"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: ../dynwid_admin_edit.php:709
|
355 |
+
#: ../dynwid_class_php4.php:64
|
356 |
+
#: ../dynwid_class.php:58
|
357 |
+
msgid "Author Pages"
|
358 |
+
msgstr "Pages d'auteur"
|
359 |
+
|
360 |
+
#: ../dynwid_admin_edit.php:711
|
361 |
msgid "Show widget default on author pages?"
|
362 |
msgstr "Afficher le widget sur les pages d'auteur"
|
363 |
|
364 |
+
#: ../dynwid_admin_edit.php:715
|
365 |
msgid "Except the author(s)"
|
366 |
msgstr "Sauf le/les auteur(s)"
|
367 |
|
368 |
+
#: ../dynwid_admin_edit.php:723
|
369 |
+
#: ../dynwid_class_php4.php:65
|
370 |
+
#: ../dynwid_class.php:59
|
371 |
+
msgid "Category Pages"
|
372 |
+
msgstr "Pages de catégorie"
|
373 |
+
|
374 |
+
#: ../dynwid_admin_edit.php:725
|
375 |
msgid "Show widget default on category pages?"
|
376 |
msgstr "Afficher le widget sur les pages de catégorie?"
|
377 |
|
378 |
+
#: ../dynwid_admin_edit.php:729
|
379 |
+
#: ../dynwid_admin_edit.php:950
|
380 |
msgid "Except the categories"
|
381 |
msgstr "Sauf les catégories"
|
382 |
|
383 |
+
#: ../dynwid_admin_edit.php:738
|
384 |
+
#: ../dynwid_class_php4.php:66
|
385 |
+
#: ../dynwid_class.php:60
|
386 |
+
msgid "Archive Pages"
|
387 |
+
msgstr "Pages d'archives"
|
388 |
+
|
389 |
+
#: ../dynwid_admin_edit.php:740
|
390 |
msgid "Show widget on archive pages"
|
391 |
msgstr "Afficher le widget sur les pages d'archives"
|
392 |
|
393 |
+
#: ../dynwid_admin_edit.php:744
|
394 |
msgid "This option does not include Author and Category Pages."
|
395 |
msgstr "Ce réglage ne s'applique ni aux pages d'auteur ni aux pages de catégorie"
|
396 |
|
397 |
+
#: ../dynwid_admin_edit.php:753
|
398 |
+
#: ../dynwid_class_php4.php:67
|
399 |
+
#: ../dynwid_class.php:61
|
400 |
+
msgid "Error Page"
|
401 |
+
msgstr "Pages d'erreur"
|
402 |
+
|
403 |
+
#: ../dynwid_admin_edit.php:755
|
404 |
msgid "Show widget on the error page?"
|
405 |
msgstr "Afficher le widget sur les pages d'erreur?"
|
406 |
|
407 |
+
#: ../dynwid_admin_edit.php:762
|
408 |
msgid "Search Page"
|
409 |
msgstr "Page de recherche"
|
410 |
|
411 |
+
#: ../dynwid_admin_edit.php:764
|
412 |
msgid "Show widget on the search page?"
|
413 |
msgstr "Afficher le widget sur les pages de recherche?"
|
414 |
|
415 |
+
#: ../dynwid_admin_edit.php:869
|
416 |
msgid "Custom Post Type"
|
417 |
msgstr "Types de contenu personnalisés"
|
418 |
|
419 |
+
#: ../dynwid_admin_edit.php:871
|
420 |
msgid "Show widget on"
|
421 |
msgstr "Afficher le widget pour"
|
422 |
|
423 |
+
#: ../dynwid_admin_edit.php:886
|
424 |
+
#: ../dynwid_admin_edit.php:928
|
425 |
msgid "Except for"
|
426 |
msgstr "Sauf pour"
|
427 |
|
428 |
+
#: ../dynwid_admin_edit.php:920
|
429 |
+
#, fuzzy
|
430 |
+
msgid "Custom Post Type Archives"
|
431 |
+
msgstr "Types de contenu personnalisés"
|
432 |
+
|
433 |
+
#: ../dynwid_admin_edit.php:922
|
434 |
+
#, fuzzy
|
435 |
+
msgid "Show widget on Custom Post Type Archives"
|
436 |
+
msgstr "Afficher le widget sur les pages de recherche?"
|
437 |
+
|
438 |
+
#: ../dynwid_admin_edit.php:944
|
439 |
+
#: ../dynwid_class_php4.php:69
|
440 |
+
#: ../dynwid_class.php:63
|
441 |
+
msgid "WPSC Category"
|
442 |
+
msgstr "Catégorie \"WordPress Shopping Cart\""
|
443 |
+
|
444 |
+
#: ../dynwid_admin_edit.php:946
|
445 |
msgid "Show widget default on WPSC categories?"
|
446 |
msgstr "Afficher le widget pour les catégories \"WordPress Shopping Cart\""
|
447 |
|
448 |
# WordPress MO
|
449 |
+
#: ../dynwid_admin_edit.php:965
|
450 |
msgid "Save"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: ../dynwid_class_php4.php:59
|
454 |
+
#: ../dynwid_class.php:53
|
455 |
+
msgid "Language"
|
456 |
+
msgstr ""
|
457 |
+
|
458 |
+
#: ../dynwid_class_php4.php:68
|
459 |
+
#: ../dynwid_class.php:62
|
460 |
+
msgid "Search page"
|
461 |
+
msgstr "Page de recherche"
|
462 |
+
|
463 |
+
#: ../dynwid_admin.php:10
|
464 |
+
#: ../dynamic-widgets.php:139
|
465 |
+
#: ../dynamic-widgets.php:218
|
466 |
+
#: ../dynamic-widgets.php:563
|
467 |
+
#, fuzzy
|
468 |
+
msgid "Dynamic Widgets"
|
469 |
+
msgstr "à la vue générale Dynamic Widget"
|
470 |
+
|
471 |
+
#: ../dynwid_admin.php:16
|
472 |
+
msgid "<b>WARNING</b> STRICT sql mode in effect. Dynamic Widgets might not work correctly. Please disable STRICT sql mode."
|
473 |
+
msgstr "<b>Attention!</b> Le mode SQL STRICT est activé. Dynamic Widgets pourrait ne pas fonctionner correctement. Merci de désactiver le mode SQL STRICT."
|
474 |
+
|
475 |
+
#: ../dynwid_admin.php:36
|
476 |
+
msgid "Oops! Something went terrible wrong. Please reinstall Dynamic Widgets."
|
477 |
+
msgstr "Oups! Quelque chose à mal tourné. Merci de réinstaller Dynamic Widgets."
|
478 |
+
|
479 |
+
#: ../dynwid_admin.php:44
|
480 |
+
#: ../dynwid_admin_overview.php:28
|
481 |
+
msgid "OLD"
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: ../dynwid_admin.php:44
|
485 |
+
#: ../dynwid_admin_overview.php:28
|
486 |
+
msgid "FILTER"
|
487 |
+
msgstr ""
|
488 |
+
|
489 |
#: ../dynwid_admin_overview.php:15
|
490 |
msgid "Widget options have been reset to default."
|
491 |
msgstr "Les réglages du widget ont été réinitialisées"
|
494 |
msgid "Method set to"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: ../dynwid_admin_overview.php:36
|
498 |
+
msgid "Inactive Widgets"
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
#: ../dynwid_admin_overview.php:59
|
502 |
#: ../dynwid_admin_overview.php:62
|
503 |
msgid "Edit this widget options"
|
512 |
msgid "Reset widget to Static"
|
513 |
msgstr "Rendre ce widget statique"
|
514 |
|
515 |
+
#: ../dynwid_admin_overview.php:67
|
516 |
+
#: ../dynamic-widgets.php:131
|
517 |
+
msgid "Reset"
|
518 |
+
msgstr "Réinitialiser"
|
519 |
+
|
520 |
+
#: ../dynwid_admin_overview.php:73
|
521 |
+
#: ../dynamic-widgets.php:128
|
522 |
+
#: ../dynamic-widgets.php:130
|
523 |
+
#: ../dynamic-widgets.php:565
|
524 |
+
msgid "Dynamic"
|
525 |
+
msgstr "Dynamique"
|
526 |
+
|
527 |
+
#: ../dynwid_admin_overview.php:73
|
528 |
+
#: ../dynamic-widgets.php:128
|
529 |
+
#: ../dynamic-widgets.php:129
|
530 |
+
#: ../dynamic-widgets.php:132
|
531 |
+
#: ../dynamic-widgets.php:565
|
532 |
+
msgid "Static"
|
533 |
+
msgstr "Statique"
|
534 |
+
|
535 |
#: ../dynwid_admin_overview.php:88
|
536 |
msgid "Advanced"
|
537 |
msgstr "Avancé"
|
538 |
|
539 |
+
#: ../dynwid_admin_overview.php:90
|
540 |
+
msgid "wp_head() check:"
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: ../dynwid_admin_overview.php:95
|
544 |
+
msgid "wp_head() is NOT called (at the most obvious place)"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: ../dynwid_admin_overview.php:99
|
548 |
+
msgid "wp_head() is called"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: ../dynwid_admin_overview.php:103
|
552 |
+
msgid "Unable to determine if wp_head() is called"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: ../dynwid_admin_overview.php:114
|
556 |
+
msgid "Use 'OLD' method"
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: ../dynwid_admin_overview.php:119
|
560 |
+
msgid "For debugging purposes it is possible you're asked to create a dump. Click the 'Create dump' button and save the text file."
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#: ../dynwid_admin_overview.php:124
|
564 |
+
msgid "Create dump"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: ../dynwid_admin_overview.php:130
|
568 |
+
msgid "When you deceide not to use this plugin anymore (sorry to hear that!). You can cleanup all settings and data related to this plugin by clicking on the 'Uninstall' button. This process is irreversible! After the cleanup the plugin is deactivated automaticly."
|
569 |
+
msgstr ""
|
570 |
+
|
571 |
+
#: ../dynwid_admin_overview.php:135
|
572 |
+
msgid "Uninstall"
|
573 |
+
msgstr ""
|
574 |
+
|
575 |
+
#: ../dynamic-widgets.php:124
|
576 |
+
msgid "Widgets are always displayed by default"
|
577 |
+
msgstr "Les widgets sont affichés partout par défaut"
|
578 |
+
|
579 |
+
#: ../dynamic-widgets.php:124
|
580 |
+
msgid "The '<em>Yes</em>' selection"
|
581 |
+
msgstr "Case '<em>Oui</em>' cochée"
|
582 |
+
|
583 |
+
#: ../dynamic-widgets.php:125
|
584 |
+
msgid "Click on the"
|
585 |
+
msgstr "Cliquez sur"
|
586 |
+
|
587 |
+
#: ../dynamic-widgets.php:125
|
588 |
+
msgid "next to the options for more info"
|
589 |
+
msgstr "à côté de chaque réglage pour plus d'informations"
|
590 |
+
|
591 |
+
#: ../dynamic-widgets.php:126
|
592 |
+
#, fuzzy
|
593 |
+
msgid "The"
|
594 |
+
msgstr "Le"
|
595 |
+
|
596 |
+
#: ../dynamic-widgets.php:126
|
597 |
+
msgid "next to a section means it has options set."
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: ../dynamic-widgets.php:129
|
601 |
+
msgid "When a widget is"
|
602 |
+
msgstr "Quand un widget est"
|
603 |
+
|
604 |
+
#: ../dynamic-widgets.php:129
|
605 |
+
msgid "the widget uses the WordPress default. In other words, it's shown everywhere"
|
606 |
+
msgstr "le widget utilise le paramétrage par défaut de WordPress et est affiché partout"
|
607 |
+
|
608 |
+
#: ../dynamic-widgets.php:130
|
609 |
+
msgid "A widget is"
|
610 |
+
msgstr "Un widget est"
|
611 |
+
|
612 |
+
#: ../dynamic-widgets.php:130
|
613 |
+
msgid "when there are options set, i.e. not showing on the front page."
|
614 |
+
msgstr "quand des réglages s'appliquent (par exemple masquer sur la page d'accueil)."
|
615 |
+
|
616 |
+
#: ../dynamic-widgets.php:132
|
617 |
+
msgid "Reset makes the widget return to"
|
618 |
+
msgstr "La réinirialisation rendra le widget à nouveau"
|
619 |
+
|
620 |
+
# WordPress MO
|
621 |
+
#: ../dynamic-widgets.php:171
|
622 |
+
msgid "Settings"
|
623 |
+
msgstr ""
|
624 |
+
|
625 |
+
#: ../dynamic-widgets.php:185
|
626 |
+
msgid "Apply exception rule to widgets:"
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: ../dynamic-widgets.php:201
|
630 |
+
msgid "Off"
|
631 |
+
msgstr ""
|
632 |
+
|
633 |
+
#: ../dynamic-widgets.php:201
|
634 |
+
msgid "On"
|
635 |
+
msgstr ""
|
636 |
+
|
637 |
+
#: ../dynamic-widgets.php:202
|
638 |
+
msgid " (Default: "
|
639 |
+
msgstr ""
|
640 |
+
|
641 |
+
#: ../dynamic-widgets.php:299
|
642 |
#, fuzzy
|
643 |
+
msgid "Dynamic Widgets Options saved"
|
644 |
+
msgstr "Options du widget sauvegardées."
|
645 |
+
|
646 |
+
#: ../dynamic-widgets.php:299
|
647 |
+
msgid "for"
|
648 |
+
msgstr ""
|
649 |
+
|
650 |
+
#: ../dynamic-widgets.php:564
|
651 |
+
#, fuzzy
|
652 |
+
msgid "Edit Dynamic Widgets Options"
|
653 |
+
msgstr "Modifier les réglages de ce widget"
|
654 |
+
|
655 |
+
#: ../dynamic-widgets.php:589
|
656 |
+
msgid "and"
|
657 |
+
msgstr "et"
|
658 |
+
|
659 |
+
#: ../dynamic-widgets.php:595
|
660 |
+
msgid "Options set for"
|
661 |
+
msgstr "Réglages pour"
|
662 |
+
|
663 |
+
#: ../dynamic-widgets.php:595
|
664 |
+
msgid "Option set for"
|
665 |
+
msgstr "Réglages pour"
|
666 |
+
|
667 |
+
#~ msgid "This widget is"
|
668 |
+
#~ msgstr "Ce widget est"
|
669 |
|
670 |
#~ msgid "selection"
|
671 |
#~ msgstr "sélection"
|
locale/dynamic-widgets-nl.mo
CHANGED
Binary file
|
locale/dynamic-widgets-nl.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Dynamic Widgets NL\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date:
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Jacco\n"
|
8 |
"Language-Team: \n"
|
@@ -12,194 +12,393 @@ msgstr ""
|
|
12 |
"X-Poedit-Language: Dutch\n"
|
13 |
"X-Poedit-Country: NETHERLANDS\n"
|
14 |
|
15 |
-
#: ../
|
16 |
-
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
msgid "Widget options saved."
|
21 |
msgstr "Widget opties bewaard"
|
22 |
|
23 |
-
#: ../dynwid_admin_edit.php:
|
24 |
-
#: ../dynwid_admin_edit.php:
|
25 |
msgid "Return"
|
26 |
msgstr "Terug"
|
27 |
|
28 |
-
#: ../dynwid_admin_edit.php:
|
29 |
msgid "to Dynamic Widgets overview"
|
30 |
msgstr "naar Dynamische Widgets overzicht"
|
31 |
|
32 |
-
#: ../dynwid_admin_edit.php:
|
33 |
msgid "Dynamic does not mean static hiding of a widget."
|
34 |
msgstr "Dynamisch houdt niet in het statisch verbergen van een widget."
|
35 |
|
36 |
-
#: ../dynwid_admin_edit.php:
|
37 |
msgid "Hint"
|
38 |
msgstr "Hint"
|
39 |
|
40 |
-
#: ../dynwid_admin_edit.php:
|
41 |
msgid "Remove"
|
42 |
msgstr "Verwijderen"
|
43 |
|
44 |
-
#: ../dynwid_admin_edit.php:
|
45 |
msgid "the widget from the sidebar"
|
46 |
msgstr "de widget in de sidebar"
|
47 |
|
48 |
-
#: ../dynwid_admin_edit.php:
|
49 |
msgid "The From date can't be later than the To date."
|
50 |
msgstr "The 'van' datum kan niet later zijn dan de 'tot' datum."
|
51 |
|
52 |
-
#: ../dynwid_admin_edit.php:
|
53 |
-
msgid "Edit options for"
|
54 |
-
msgstr "Wijzig de opties voor"
|
55 |
|
56 |
-
#: ../dynwid_admin_edit.php:
|
57 |
-
msgid "
|
58 |
-
msgstr "
|
59 |
|
60 |
-
#: ../
|
61 |
-
|
62 |
-
|
63 |
-
msgid "Role"
|
64 |
-
msgstr "Rol"
|
65 |
|
66 |
-
#: ../
|
67 |
-
msgid "
|
68 |
-
msgstr "
|
69 |
|
70 |
-
#: ../
|
71 |
-
msgid ""
|
72 |
-
"
|
73 |
-
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
74 |
-
msgstr ""
|
75 |
-
"De rol opties zijn zeer bijzonder. Ze kunnen alle andere opties overstijgen!<br />\n"
|
76 |
-
"\t\t\t\t\t\tGebruikers die niet ingelogd zijn, krijgen de <em>anonieme</em> rol."
|
77 |
|
78 |
-
#: ../
|
79 |
-
#: ../
|
80 |
-
|
81 |
-
|
82 |
-
#: ../dynwid_admin_edit.php:514
|
83 |
-
#: ../dynwid_admin_edit.php:579
|
84 |
-
#: ../dynwid_admin_edit.php:641
|
85 |
-
#: ../dynwid_admin_edit.php:655
|
86 |
-
#: ../dynwid_admin_edit.php:675
|
87 |
-
#: ../dynwid_admin_edit.php:685
|
88 |
-
#: ../dynwid_admin_edit.php:694
|
89 |
-
#: ../dynwid_admin_edit.php:811
|
90 |
-
#: ../dynwid_admin_edit.php:836
|
91 |
-
msgid "Yes"
|
92 |
-
msgstr "Ja"
|
93 |
|
94 |
-
#: ../
|
95 |
-
|
96 |
-
|
97 |
-
#: ../dynwid_admin_edit.php:498
|
98 |
-
#: ../dynwid_admin_edit.php:515
|
99 |
-
#: ../dynwid_admin_edit.php:580
|
100 |
-
#: ../dynwid_admin_edit.php:642
|
101 |
-
#: ../dynwid_admin_edit.php:656
|
102 |
-
#: ../dynwid_admin_edit.php:676
|
103 |
-
#: ../dynwid_admin_edit.php:686
|
104 |
-
#: ../dynwid_admin_edit.php:695
|
105 |
-
#: ../dynwid_admin_edit.php:812
|
106 |
-
#: ../dynwid_admin_edit.php:837
|
107 |
-
msgid "No"
|
108 |
-
msgstr "Nee"
|
109 |
|
110 |
-
#: ../
|
111 |
-
msgid "
|
112 |
-
msgstr "
|
113 |
|
114 |
-
#: ../
|
115 |
-
|
116 |
-
|
117 |
-
msgid "Date"
|
118 |
-
msgstr "Datum"
|
119 |
|
120 |
-
#: ../
|
121 |
-
msgid "
|
122 |
-
msgstr "
|
123 |
|
124 |
-
#: ../
|
125 |
-
msgid "
|
126 |
-
msgstr "
|
127 |
|
128 |
-
#: ../
|
129 |
-
msgid "
|
130 |
-
msgstr "
|
131 |
|
132 |
-
#: ../
|
133 |
-
msgid ""
|
134 |
-
"
|
135 |
-
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
136 |
-
" \t\t\t\t\tWhen you want the widget to stop displaying on a specific date, only fill in the To date.\n"
|
137 |
-
" \t\t\t\t"
|
138 |
-
msgstr ""
|
139 |
-
"Datum periodes kunnen worden gemaakt door het invoeren van een 'van' en een 'tot' datum<br />\n"
|
140 |
-
" \t\t\t\t\tWanneer u de widget vanaf een bepaalde datum wilt tonen, vul dan alleen de 'van' datum in<br />\n"
|
141 |
-
" \t\t\t\t\tWanneer u de widget vanaf een bepaalde datum niet meer wilt tonen, vul dan alleen de 'tot' datum in.\n"
|
142 |
-
" \t\t\t\t"
|
143 |
|
144 |
-
#: ../
|
145 |
-
msgid "
|
146 |
-
msgstr "
|
147 |
|
148 |
-
#: ../
|
149 |
-
msgid "
|
150 |
-
msgstr "
|
151 |
|
152 |
-
#: ../
|
153 |
-
msgid "
|
154 |
-
msgstr "
|
155 |
|
156 |
-
#: ../
|
157 |
-
msgid "
|
158 |
-
msgstr "
|
159 |
|
160 |
-
#: ../
|
161 |
-
msgid "
|
162 |
-
msgstr "
|
163 |
|
164 |
-
#: ../
|
165 |
-
msgid "
|
166 |
-
msgstr "
|
167 |
|
168 |
-
#: ../
|
169 |
-
msgid "
|
170 |
-
msgstr "
|
171 |
|
172 |
-
#: ../
|
173 |
-
|
174 |
-
|
175 |
-
msgid "Front Page"
|
176 |
-
msgstr "Startpagina"
|
177 |
|
178 |
-
#: ../
|
179 |
-
msgid "
|
180 |
-
msgstr "
|
181 |
|
182 |
-
#: ../
|
183 |
-
msgid ""
|
184 |
-
"
|
185 |
-
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
186 |
-
"\t\t\t\t\t"
|
187 |
-
msgstr ""
|
188 |
-
"Deze optie werkt alleen als de hoofdpagina de laatste posts toont (Zie Instellingen > Lezen).<br />\n"
|
189 |
-
"\t\t\t\t\t\tWanneer deze optie op statische pagina staat, kunt u gebruik maken van de onderstaande pagina opties.\n"
|
190 |
-
"\t\t\t\t\t"
|
191 |
|
192 |
-
#: ../
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
|
198 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
msgid "Show widget default on single posts?"
|
200 |
msgstr "De widget bij de berichten tonen?"
|
201 |
|
202 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
msgid ""
|
204 |
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
205 |
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
@@ -209,11 +408,11 @@ msgstr ""
|
|
209 |
" \t\t\t\t\tAls u de regels in een logische OR wilt gebruiken kunt u de widget opnieuw toevoegen en daarop dan de andere regel toepassen.\n"
|
210 |
" \t\t\t\t\t"
|
211 |
|
212 |
-
#: ../
|
213 |
msgid "Make exception rule available to individual posts and tags."
|
214 |
msgstr "Maak de uitzonderings regel beschikbaar voor individuele berichten en tags"
|
215 |
|
216 |
-
#: ../
|
217 |
msgid ""
|
218 |
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
219 |
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
@@ -229,25 +428,64 @@ msgstr ""
|
|
229 |
" \t\t\t\t\tLet er op dat uitzonderings regels voor auteur en categorie worden verwijderd.\n"
|
230 |
" \t\t\t\t"
|
231 |
|
232 |
-
#: ../
|
233 |
msgid "Except the posts by author"
|
234 |
msgstr "Behalve de berichten van"
|
235 |
|
236 |
-
#: ../
|
237 |
msgid "Except the posts in category"
|
238 |
msgstr "Behalve de berichten in de categorie"
|
239 |
|
240 |
-
#: ../
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
|
246 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
msgid "Show widget default on static pages?"
|
248 |
msgstr "Toon de widget op pagina's?"
|
249 |
|
250 |
-
#: ../
|
251 |
msgid ""
|
252 |
"Checking the \"All childs\" option, makes the exception rule apply\n"
|
253 |
"\t\t\t\tto the parent and all items under it in all levels. Also future items\n"
|
@@ -255,257 +493,163 @@ msgid ""
|
|
255 |
"\t\t\t\t\"All childs\" without the parent."
|
256 |
msgstr "Door gebruik te maken van de \"Alle kinderen\" optie, wordt de uitzonderingsregel toegepast op de ouder en alle daaronder liggende item in alle levels. Ook toekomstige items onder de ouder. Het is niet mogelijk om de uitzonderingsregel toe te passen zonder de ouder."
|
257 |
|
258 |
-
#: ../
|
259 |
msgid "Except the page(s)"
|
260 |
msgstr "Behalve de pagina('s)"
|
261 |
|
262 |
-
#: ../
|
263 |
-
#: ../dynwid_admin_edit.php:735
|
264 |
-
msgid "All childs"
|
265 |
-
msgstr "Alle kinderen"
|
266 |
-
|
267 |
-
#: ../dynwid_admin_edit.php:637
|
268 |
-
#: ../dynwid_class_php4.php:60
|
269 |
-
#: ../dynwid_class.php:54
|
270 |
-
msgid "Author Pages"
|
271 |
-
msgstr "Auteur pagina's"
|
272 |
-
|
273 |
-
#: ../dynwid_admin_edit.php:639
|
274 |
msgid "Show widget default on author pages?"
|
275 |
msgstr "Toon de widget op auteurs pagina's?"
|
276 |
|
277 |
-
#: ../
|
278 |
msgid "Except the author(s)"
|
279 |
msgstr "Behalve van"
|
280 |
|
281 |
-
#: ../
|
282 |
-
|
283 |
-
|
284 |
-
msgid "Category Pages"
|
285 |
-
msgstr "Categorie pagina's"
|
286 |
|
287 |
-
#: ../
|
288 |
-
msgid "Show widget default on
|
289 |
-
msgstr "Toon de widget
|
290 |
|
291 |
-
#: ../
|
292 |
-
|
293 |
-
|
294 |
-
msgstr "Behalve de categoriën"
|
295 |
|
296 |
-
#: ../
|
297 |
-
|
298 |
-
|
299 |
-
msgid "Archive Pages"
|
300 |
-
msgstr "Archief pagina's"
|
301 |
|
302 |
-
#: ../
|
303 |
-
msgid "Show widget on
|
304 |
-
msgstr "Toon de widget op
|
305 |
-
|
306 |
-
#: ../dynwid_admin_edit.php:672
|
307 |
-
msgid "This option does not include Author and Category Pages."
|
308 |
-
msgstr "Deze optie bevat niet auteurs en categorie pagina's"
|
309 |
-
|
310 |
-
#: ../dynwid_admin_edit.php:681
|
311 |
-
#: ../dynwid_class_php4.php:63
|
312 |
-
#: ../dynwid_class.php:57
|
313 |
-
msgid "Error Page"
|
314 |
-
msgstr "Foutmeldings pagina"
|
315 |
-
|
316 |
-
#: ../dynwid_admin_edit.php:683
|
317 |
-
msgid "Show widget on the error page?"
|
318 |
-
msgstr "Toon de widget op de foutmeldings pagina?"
|
319 |
-
|
320 |
-
#: ../dynwid_admin_edit.php:690
|
321 |
-
msgid "Search Page"
|
322 |
-
msgstr "Zoek pagina"
|
323 |
-
|
324 |
-
#: ../dynwid_admin_edit.php:692
|
325 |
-
msgid "Show widget on the search page?"
|
326 |
-
msgstr "Toon de widget op de zoekpagina?"
|
327 |
-
|
328 |
-
#: ../dynwid_admin_edit.php:797
|
329 |
-
msgid "Custom Post Type"
|
330 |
-
msgstr ""
|
331 |
-
|
332 |
-
#: ../dynwid_admin_edit.php:799
|
333 |
-
msgid "Show widget on"
|
334 |
-
msgstr "Toon de widget op"
|
335 |
-
|
336 |
-
#: ../dynwid_admin_edit.php:814
|
337 |
-
msgid "Except for"
|
338 |
-
msgstr "Behalve voor"
|
339 |
-
|
340 |
-
#: ../dynwid_admin_edit.php:832
|
341 |
-
#: ../dynwid_class_php4.php:65
|
342 |
-
#: ../dynwid_class.php:59
|
343 |
-
msgid "WPSC Category"
|
344 |
-
msgstr "WPSC Categorie"
|
345 |
-
|
346 |
-
#: ../dynwid_admin_edit.php:834
|
347 |
-
msgid "Show widget default on WPSC categories?"
|
348 |
-
msgstr "Toon de widget standaard in de WPSC categoriën?"
|
349 |
-
|
350 |
-
#: ../dynwid_admin_edit.php:853
|
351 |
-
msgid "Save"
|
352 |
-
msgstr "Opslaan"
|
353 |
-
|
354 |
-
#: ../dynwid_class_php4.php:56
|
355 |
-
#: ../dynwid_class.php:50
|
356 |
-
msgid "Language"
|
357 |
-
msgstr "Taal"
|
358 |
-
|
359 |
-
#: ../dynwid_class_php4.php:64
|
360 |
-
#: ../dynwid_class.php:58
|
361 |
-
msgid "Search page"
|
362 |
-
msgstr "Zoek pagina"
|
363 |
-
|
364 |
-
#: ../dynwid_admin.php:10
|
365 |
-
#: ../dynamic-widgets.php:138
|
366 |
-
#: ../dynamic-widgets.php:222
|
367 |
-
msgid "Dynamic Widgets"
|
368 |
-
msgstr "Dynamische Widgets"
|
369 |
|
370 |
-
#: ../
|
371 |
-
msgid "
|
372 |
-
msgstr "
|
373 |
|
374 |
-
#: ../
|
375 |
-
msgid "
|
376 |
-
msgstr "
|
377 |
|
378 |
-
#: ../
|
379 |
-
|
380 |
-
|
381 |
-
msgstr "OUD"
|
382 |
|
383 |
-
#: ../
|
384 |
-
|
385 |
-
|
|
|
386 |
msgstr ""
|
|
|
|
|
387 |
|
388 |
-
#: ../
|
389 |
-
msgid "
|
390 |
-
msgstr "
|
391 |
|
392 |
-
#: ../
|
393 |
-
msgid "
|
394 |
-
msgstr "
|
395 |
|
396 |
-
#: ../
|
397 |
-
msgid "
|
398 |
-
msgstr "
|
399 |
|
400 |
-
#: ../
|
401 |
-
|
402 |
-
|
403 |
-
msgstr "Wijzig de widget opties voor"
|
404 |
|
405 |
-
#: ../
|
406 |
-
msgid "
|
407 |
-
msgstr "
|
408 |
|
409 |
-
#: ../
|
410 |
-
msgid "
|
411 |
-
msgstr "
|
412 |
|
413 |
-
#: ../
|
414 |
-
|
415 |
-
|
416 |
-
msgstr "Herstellen"
|
417 |
-
|
418 |
-
#: ../dynwid_admin_overview.php:73
|
419 |
-
#: ../dynamic-widgets.php:127
|
420 |
-
#: ../dynamic-widgets.php:129
|
421 |
-
#: ../dynamic-widgets.php:569
|
422 |
-
msgid "Dynamic"
|
423 |
-
msgstr "Dyamisch"
|
424 |
-
|
425 |
-
#: ../dynwid_admin_overview.php:73
|
426 |
-
#: ../dynamic-widgets.php:127
|
427 |
-
#: ../dynamic-widgets.php:128
|
428 |
-
#: ../dynamic-widgets.php:131
|
429 |
-
#: ../dynamic-widgets.php:569
|
430 |
-
msgid "Static"
|
431 |
-
msgstr "Statisch"
|
432 |
-
|
433 |
-
#: ../dynwid_admin_overview.php:88
|
434 |
-
msgid "Advanced"
|
435 |
-
msgstr "Geavanceerd"
|
436 |
-
|
437 |
-
#: ../dynamic-widgets.php:123
|
438 |
-
msgid "Widgets are always displayed by default"
|
439 |
-
msgstr "Widgets worden standaard altijd getoond"
|
440 |
|
441 |
-
#: ../
|
442 |
-
msgid "
|
443 |
-
msgstr "
|
444 |
|
445 |
-
#: ../
|
446 |
-
|
447 |
-
|
|
|
448 |
|
449 |
-
#: ../
|
450 |
-
msgid "
|
451 |
-
msgstr "
|
452 |
|
453 |
-
#: ../
|
454 |
-
msgid "
|
455 |
-
msgstr "
|
456 |
|
457 |
-
#: ../
|
458 |
-
msgid "
|
459 |
-
msgstr "
|
460 |
-
|
461 |
-
#: ../dynamic-widgets.php:128
|
462 |
-
msgid "When a widget is"
|
463 |
-
msgstr "Wanneer een widget"
|
464 |
|
465 |
-
#: ../
|
466 |
-
msgid "the
|
467 |
-
msgstr "de
|
468 |
|
469 |
-
#: ../
|
470 |
-
msgid "
|
471 |
-
msgstr "
|
472 |
|
473 |
-
#: ../
|
474 |
-
msgid "
|
475 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
476 |
|
477 |
-
#: ../
|
478 |
-
msgid "
|
479 |
-
msgstr "
|
480 |
|
481 |
-
#: ../
|
482 |
-
msgid "
|
483 |
-
msgstr "
|
484 |
|
485 |
-
#: ../
|
486 |
-
msgid "
|
487 |
-
msgstr "
|
488 |
|
489 |
-
#: ../
|
490 |
-
msgid "
|
491 |
-
msgstr "
|
492 |
|
493 |
-
#: ../
|
494 |
-
msgid "
|
495 |
-
msgstr "
|
496 |
|
497 |
-
#: ../
|
498 |
-
msgid "
|
499 |
-
msgstr "
|
500 |
|
501 |
-
#: ../
|
502 |
-
msgid "
|
503 |
-
msgstr "
|
504 |
|
505 |
-
#: ../
|
506 |
-
msgid "
|
507 |
-
msgstr "
|
508 |
|
|
|
|
|
|
|
|
|
509 |
#~ msgid "This widget is"
|
510 |
#~ msgstr "Deze widget is"
|
511 |
#~ msgid "selection"
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Dynamic Widgets NL\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-01-29 23:19+0100\n"
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Jacco\n"
|
8 |
"Language-Team: \n"
|
12 |
"X-Poedit-Language: Dutch\n"
|
13 |
"X-Poedit-Country: NETHERLANDS\n"
|
14 |
|
15 |
+
#: ../dynwid_class_php4.php:58
|
16 |
+
#: ../dynwid_class.php:52
|
17 |
+
msgid "Role"
|
18 |
+
msgstr "Rol"
|
19 |
+
|
20 |
+
#: ../dynwid_class_php4.php:59
|
21 |
+
#: ../dynwid_class.php:53
|
22 |
+
msgid "Date"
|
23 |
+
msgstr "Datum"
|
24 |
+
|
25 |
+
#: ../dynwid_class_php4.php:60
|
26 |
+
#: ../dynwid_class.php:54
|
27 |
+
msgid "Browser"
|
28 |
+
msgstr "Browser"
|
29 |
+
|
30 |
+
#: ../dynwid_class_php4.php:61
|
31 |
+
#: ../dynwid_class.php:55
|
32 |
+
msgid "Language"
|
33 |
+
msgstr "Taal"
|
34 |
+
|
35 |
+
#: ../dynwid_class_php4.php:62
|
36 |
+
#: ../dynwid_class.php:56
|
37 |
+
#: ../mods/frontpage_module.php:20
|
38 |
+
msgid "Front Page"
|
39 |
+
msgstr "Startpagina"
|
40 |
+
|
41 |
+
#: ../dynwid_class_php4.php:63
|
42 |
+
#: ../dynwid_class.php:57
|
43 |
+
#: ../mods/single_module.php:80
|
44 |
+
msgid "Single Posts"
|
45 |
+
msgstr "Berichten"
|
46 |
+
|
47 |
+
#: ../dynwid_class_php4.php:64
|
48 |
+
#: ../dynwid_class.php:58
|
49 |
+
#: ../mods/attachment_module.php:20
|
50 |
+
msgid "Attachments"
|
51 |
+
msgstr "Bijlagen"
|
52 |
+
|
53 |
+
#: ../dynwid_class_php4.php:65
|
54 |
+
#: ../dynwid_class.php:59
|
55 |
+
msgid "Pages"
|
56 |
+
msgstr "Pagina's"
|
57 |
+
|
58 |
+
#: ../dynwid_class_php4.php:66
|
59 |
+
#: ../dynwid_class.php:60
|
60 |
+
msgid "Author Pages"
|
61 |
+
msgstr "Auteur pagina's"
|
62 |
+
|
63 |
+
#: ../dynwid_class_php4.php:67
|
64 |
+
#: ../dynwid_class.php:61
|
65 |
+
#: ../mods/category_module.php:33
|
66 |
+
msgid "Category Pages"
|
67 |
+
msgstr "Categorie pagina's"
|
68 |
+
|
69 |
+
#: ../dynwid_class_php4.php:68
|
70 |
+
#: ../dynwid_class.php:62
|
71 |
+
#: ../mods/archive_module.php:20
|
72 |
+
msgid "Archive Pages"
|
73 |
+
msgstr "Archief pagina's"
|
74 |
+
|
75 |
+
#: ../dynwid_class_php4.php:69
|
76 |
+
#: ../dynwid_class.php:63
|
77 |
+
#: ../mods/error_module.php:20
|
78 |
+
msgid "Error Page"
|
79 |
+
msgstr "Foutmeldings pagina"
|
80 |
+
|
81 |
+
#: ../dynwid_class_php4.php:70
|
82 |
+
#: ../dynwid_class.php:64
|
83 |
+
msgid "Search page"
|
84 |
+
msgstr "Zoek pagina"
|
85 |
+
|
86 |
+
#: ../dynwid_class_php4.php:71
|
87 |
+
#: ../dynwid_class.php:65
|
88 |
+
msgid "WPSC Category"
|
89 |
+
msgstr "WPSC Categorie"
|
90 |
+
|
91 |
+
#: ../dynwid_admin.php:18
|
92 |
+
#: ../dynamic-widgets.php:125
|
93 |
+
#: ../dynamic-widgets.php:148
|
94 |
+
#: ../dynamic-widgets.php:247
|
95 |
+
#: ../dynamic-widgets.php:647
|
96 |
+
msgid "Dynamic Widgets"
|
97 |
+
msgstr "Dynamische Widgets"
|
98 |
+
|
99 |
+
#: ../dynwid_admin.php:25
|
100 |
+
msgid "<b>WARNING</b> STRICT sql mode in effect. Dynamic Widgets might not work correctly. Please disable STRICT sql mode."
|
101 |
+
msgstr "<b>LET OP</b> STRICT sql mode gedecteerd. Dynamische Widgets werkt mogelijk niet correct. U wordt aangeraden STRICT sql mode uit te schakelen."
|
102 |
+
|
103 |
+
#: ../dynwid_admin.php:45
|
104 |
+
msgid "Oops! Something went terrible wrong. Please reinstall Dynamic Widgets."
|
105 |
+
msgstr "Oeps! Er is een onhelstelbare fout opgetreden. U wordt aangeraden om Dynamische Widgets opnieuw te installeren."
|
106 |
+
|
107 |
+
#: ../dynwid_admin.php:53
|
108 |
+
#: ../dynwid_admin_overview.php:28
|
109 |
+
msgid "OLD"
|
110 |
+
msgstr "OUD"
|
111 |
|
112 |
+
#: ../dynwid_admin.php:53
|
113 |
+
#: ../dynwid_admin_overview.php:28
|
114 |
+
msgid "FILTER"
|
115 |
+
msgstr "FILTER"
|
116 |
+
|
117 |
+
#: ../dynamic-widgets.php:133
|
118 |
+
msgid "Widgets are always displayed by default"
|
119 |
+
msgstr "Widgets worden standaard altijd getoond"
|
120 |
+
|
121 |
+
#: ../dynamic-widgets.php:133
|
122 |
+
msgid "The '<em>Yes</em>' selection"
|
123 |
+
msgstr "De '<em>Ja</em>' selectie"
|
124 |
+
|
125 |
+
#: ../dynamic-widgets.php:134
|
126 |
+
msgid "Click on the"
|
127 |
+
msgstr "Klik op de"
|
128 |
+
|
129 |
+
#: ../dynamic-widgets.php:134
|
130 |
+
msgid "next to the options for more info"
|
131 |
+
msgstr "bij de opties voor meer informatie"
|
132 |
+
|
133 |
+
#: ../dynamic-widgets.php:135
|
134 |
+
msgid "The"
|
135 |
+
msgstr "De"
|
136 |
+
|
137 |
+
#: ../dynamic-widgets.php:135
|
138 |
+
msgid "next to a section means it has options set."
|
139 |
+
msgstr "houdt in dat er opties gekozen zijn."
|
140 |
+
|
141 |
+
#: ../dynamic-widgets.php:137
|
142 |
+
#: ../dynamic-widgets.php:138
|
143 |
+
#: ../dynamic-widgets.php:141
|
144 |
+
#: ../dynamic-widgets.php:649
|
145 |
+
#: ../dynwid_admin_overview.php:73
|
146 |
+
msgid "Static"
|
147 |
+
msgstr "Statisch"
|
148 |
+
|
149 |
+
#: ../dynamic-widgets.php:137
|
150 |
+
#: ../dynamic-widgets.php:139
|
151 |
+
#: ../dynamic-widgets.php:649
|
152 |
+
#: ../dynwid_admin_overview.php:73
|
153 |
+
msgid "Dynamic"
|
154 |
+
msgstr "Dyamisch"
|
155 |
+
|
156 |
+
#: ../dynamic-widgets.php:138
|
157 |
+
msgid "When a widget is"
|
158 |
+
msgstr "Wanneer een widget"
|
159 |
+
|
160 |
+
#: ../dynamic-widgets.php:138
|
161 |
+
msgid "the widget uses the WordPress default. In other words, it's shown everywhere"
|
162 |
+
msgstr "de widget staat op de standaard instelling. Met andere woorden, deze wordt overal getoond"
|
163 |
+
|
164 |
+
#: ../dynamic-widgets.php:139
|
165 |
+
msgid "A widget is"
|
166 |
+
msgstr "Een widget is"
|
167 |
+
|
168 |
+
#: ../dynamic-widgets.php:139
|
169 |
+
msgid "when there are options set, i.e. not showing on the front page."
|
170 |
+
msgstr "als er opties gewijzigd zijn, bijvoorbeeld niet tonen op de startpagina."
|
171 |
+
|
172 |
+
#: ../dynamic-widgets.php:140
|
173 |
+
#: ../dynwid_admin_overview.php:67
|
174 |
+
msgid "Reset"
|
175 |
+
msgstr "Herstellen"
|
176 |
+
|
177 |
+
#: ../dynamic-widgets.php:141
|
178 |
+
msgid "Reset makes the widget return to"
|
179 |
+
msgstr "Herstellen zorgt ervoor dat de widget teruggezet wordt naar"
|
180 |
+
|
181 |
+
#: ../dynamic-widgets.php:200
|
182 |
+
msgid "Settings"
|
183 |
+
msgstr "Instellingen"
|
184 |
+
|
185 |
+
#: ../dynamic-widgets.php:214
|
186 |
+
msgid "Apply exception rule to widgets:"
|
187 |
+
msgstr "Maak uitzonderingsregel voor widget:"
|
188 |
+
|
189 |
+
#: ../dynamic-widgets.php:230
|
190 |
+
msgid "Off"
|
191 |
+
msgstr "Uit"
|
192 |
+
|
193 |
+
#: ../dynamic-widgets.php:230
|
194 |
+
msgid "On"
|
195 |
+
msgstr "Aan"
|
196 |
+
|
197 |
+
#: ../dynamic-widgets.php:231
|
198 |
+
msgid " (Default: "
|
199 |
+
msgstr "(Standaard"
|
200 |
+
|
201 |
+
#: ../dynamic-widgets.php:328
|
202 |
+
msgid "Dynamic Widgets Options saved"
|
203 |
+
msgstr "Dynamische Widget opties bewaard"
|
204 |
+
|
205 |
+
#: ../dynamic-widgets.php:328
|
206 |
+
msgid "for"
|
207 |
+
msgstr "voor"
|
208 |
+
|
209 |
+
#: ../dynamic-widgets.php:648
|
210 |
+
msgid "Edit Dynamic Widgets Options"
|
211 |
+
msgstr "Wijzig Dynamische Widget opties"
|
212 |
+
|
213 |
+
#: ../dynamic-widgets.php:673
|
214 |
+
msgid "and"
|
215 |
+
msgstr "en"
|
216 |
+
|
217 |
+
#: ../dynamic-widgets.php:679
|
218 |
+
msgid "Options set for"
|
219 |
+
msgstr "Opties voor"
|
220 |
+
|
221 |
+
#: ../dynamic-widgets.php:679
|
222 |
+
msgid "Option set for"
|
223 |
+
msgstr "Optie voor"
|
224 |
+
|
225 |
+
#: ../dynwid_admin_edit.php:60
|
226 |
msgid "Widget options saved."
|
227 |
msgstr "Widget opties bewaard"
|
228 |
|
229 |
+
#: ../dynwid_admin_edit.php:60
|
230 |
+
#: ../dynwid_admin_edit.php:120
|
231 |
msgid "Return"
|
232 |
msgstr "Terug"
|
233 |
|
234 |
+
#: ../dynwid_admin_edit.php:60
|
235 |
msgid "to Dynamic Widgets overview"
|
236 |
msgstr "naar Dynamische Widgets overzicht"
|
237 |
|
238 |
+
#: ../dynwid_admin_edit.php:65
|
239 |
msgid "Dynamic does not mean static hiding of a widget."
|
240 |
msgstr "Dynamisch houdt niet in het statisch verbergen van een widget."
|
241 |
|
242 |
+
#: ../dynwid_admin_edit.php:65
|
243 |
msgid "Hint"
|
244 |
msgstr "Hint"
|
245 |
|
246 |
+
#: ../dynwid_admin_edit.php:65
|
247 |
msgid "Remove"
|
248 |
msgstr "Verwijderen"
|
249 |
|
250 |
+
#: ../dynwid_admin_edit.php:65
|
251 |
msgid "the widget from the sidebar"
|
252 |
msgstr "de widget in de sidebar"
|
253 |
|
254 |
+
#: ../dynwid_admin_edit.php:69
|
255 |
msgid "The From date can't be later than the To date."
|
256 |
msgstr "The 'van' datum kan niet later zijn dan de 'tot' datum."
|
257 |
|
258 |
+
#: ../dynwid_admin_edit.php:74
|
259 |
+
msgid "Edit options for the widget"
|
260 |
+
msgstr "Wijzig de opties voor de widget"
|
261 |
|
262 |
+
#: ../dynwid_admin_edit.php:116
|
263 |
+
msgid "Save"
|
264 |
+
msgstr "Opslaan"
|
265 |
|
266 |
+
#: ../dynwid_admin_overview.php:15
|
267 |
+
msgid "Widget options have been reset to default."
|
268 |
+
msgstr "De widget opties zijn hersteld naar standaard"
|
|
|
|
|
269 |
|
270 |
+
#: ../dynwid_admin_overview.php:28
|
271 |
+
msgid "Method set to"
|
272 |
+
msgstr "Methode is nu"
|
273 |
|
274 |
+
#: ../dynwid_admin_overview.php:36
|
275 |
+
msgid "Inactive Widgets"
|
276 |
+
msgstr "Inactieve Widgets"
|
|
|
|
|
|
|
|
|
277 |
|
278 |
+
#: ../dynwid_admin_overview.php:59
|
279 |
+
#: ../dynwid_admin_overview.php:62
|
280 |
+
msgid "Edit this widget options"
|
281 |
+
msgstr "Wijzig de widget opties voor"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
|
283 |
+
#: ../dynwid_admin_overview.php:62
|
284 |
+
msgid "Edit"
|
285 |
+
msgstr "Wijzig"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
286 |
|
287 |
+
#: ../dynwid_admin_overview.php:67
|
288 |
+
msgid "Reset widget to Static"
|
289 |
+
msgstr "Zet de widget terug naar statisch"
|
290 |
|
291 |
+
#: ../dynwid_admin_overview.php:88
|
292 |
+
msgid "Advanced"
|
293 |
+
msgstr "Geavanceerd"
|
|
|
|
|
294 |
|
295 |
+
#: ../dynwid_admin_overview.php:93
|
296 |
+
msgid "wp_head() check:"
|
297 |
+
msgstr "wp_head() controle:"
|
298 |
|
299 |
+
#: ../dynwid_admin_overview.php:98
|
300 |
+
msgid "wp_head() is NOT called (at the most obvious place)"
|
301 |
+
msgstr "wp_head() is NIET gevonden (op de meest voor de hand liggende plaats)"
|
302 |
|
303 |
+
#: ../dynwid_admin_overview.php:102
|
304 |
+
msgid "wp_head() is called"
|
305 |
+
msgstr "wp_head() is gevonden"
|
306 |
|
307 |
+
#: ../dynwid_admin_overview.php:106
|
308 |
+
msgid "Unable to determine if wp_head() is called"
|
309 |
+
msgstr "Het is niet mogelijk om te bepalen of wp_head() gevonden kan worden"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
|
311 |
+
#: ../dynwid_admin_overview.php:118
|
312 |
+
msgid "Use 'OLD' method"
|
313 |
+
msgstr "Gebruik 'OUDE' methode"
|
314 |
|
315 |
+
#: ../dynwid_admin_overview.php:124
|
316 |
+
msgid "When upgrading to WPEC 3.8 the Dynamic Widgets rules for WPEC are lost. The WPEC dump gives you an overview of the rules before the update."
|
317 |
+
msgstr "Wanneer u upgrade naar WPEC 3.8 dan zullen de Dynamische Widget regels voor WPEC verloren gaan. De WPEC dump geeft u een overzicht van de regels voor de update."
|
318 |
|
319 |
+
#: ../dynwid_admin_overview.php:125
|
320 |
+
msgid "WARNING"
|
321 |
+
msgstr "WAARSCHUWING"
|
322 |
|
323 |
+
#: ../dynwid_admin_overview.php:125
|
324 |
+
msgid "This only works correct when you did not add or change anything in the Dynamic Widgets rules."
|
325 |
+
msgstr "Dit werkt alleen correct als u geen Dyamische Widget regels toegevoegd of verwijderd heeft."
|
326 |
|
327 |
+
#: ../dynwid_admin_overview.php:130
|
328 |
+
msgid "Create WPEC dump"
|
329 |
+
msgstr "Maak WPEC dump"
|
330 |
|
331 |
+
#: ../dynwid_admin_overview.php:137
|
332 |
+
msgid "For debugging purposes it is possible you're asked to create a dump. Click the 'Create dump' button and save the text file."
|
333 |
+
msgstr "Voor foutopsporing is het mogelijk dat u gevraagd wordt om een dump te maken. Klik de 'Dump maken' knop en sla het tekst bestand op."
|
334 |
|
335 |
+
#: ../dynwid_admin_overview.php:142
|
336 |
+
msgid "Create dump"
|
337 |
+
msgstr "Dump maken"
|
338 |
|
339 |
+
#: ../dynwid_admin_overview.php:149
|
340 |
+
msgid "When you deceide not to use this plugin anymore (sorry to hear that!). You can cleanup all settings and data related to this plugin by clicking on the 'Uninstall' button. This process is irreversible! After the cleanup the plugin is deactivated automaticly."
|
341 |
+
msgstr "Wanneer u besluit om deze plugin niet meer te gebruiken (erg jammer!), kunt u alle instellingen en andere data van deze plugin verwijderen door op de 'Deinstalleer' knop te drukken. Dit proces is onomkeerbaar! Na het verwijderen zal de plugin automatisch uitgeschakeld worden."
|
|
|
|
|
342 |
|
343 |
+
#: ../dynwid_admin_overview.php:154
|
344 |
+
msgid "Uninstall"
|
345 |
+
msgstr "Deinstalleer"
|
346 |
|
347 |
+
#: ../mods/search_module.php:21
|
348 |
+
msgid "Search Page"
|
349 |
+
msgstr "Zoek pagina"
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
|
351 |
+
#: ../mods/search_module.php:23
|
352 |
+
msgid "Show widget on the search page?"
|
353 |
+
msgstr "Toon de widget op de zoekpagina?"
|
354 |
+
|
355 |
+
#: ../mods/search_module.php:25
|
356 |
+
#: ../mods/category_module.php:37
|
357 |
+
#: ../mods/single_module.php:91
|
358 |
+
#: ../mods/attachment_module.php:24
|
359 |
+
#: ../mods/error_module.php:24
|
360 |
+
#: ../mods/frontpage_module.php:31
|
361 |
+
#: ../mods/archive_module.php:29
|
362 |
+
msgid "Yes"
|
363 |
+
msgstr "Ja"
|
364 |
+
|
365 |
+
#: ../mods/search_module.php:26
|
366 |
+
#: ../mods/category_module.php:38
|
367 |
+
#: ../mods/single_module.php:92
|
368 |
+
#: ../mods/attachment_module.php:25
|
369 |
+
#: ../mods/error_module.php:25
|
370 |
+
#: ../mods/frontpage_module.php:32
|
371 |
+
#: ../mods/archive_module.php:30
|
372 |
+
msgid "No"
|
373 |
+
msgstr "Nee"
|
374 |
|
375 |
+
#: ../mods/category_module.php:35
|
376 |
+
msgid "Show widget default on category pages?"
|
377 |
+
msgstr "Toon de widget standaard op de categorie pagina's?"
|
378 |
+
|
379 |
+
#: ../mods/category_module.php:39
|
380 |
+
msgid "Except the categories"
|
381 |
+
msgstr "Behalve de categoriën"
|
382 |
+
|
383 |
+
#: ../mods/single_module.php:75
|
384 |
+
msgid "Posts: "
|
385 |
+
msgstr "Posts:"
|
386 |
+
|
387 |
+
#: ../mods/single_module.php:75
|
388 |
+
msgid "Tags: "
|
389 |
+
msgstr "Tags:"
|
390 |
+
|
391 |
+
#: ../mods/single_module.php:82
|
392 |
msgid "Show widget default on single posts?"
|
393 |
msgstr "De widget bij de berichten tonen?"
|
394 |
|
395 |
+
#: ../mods/single_module.php:82
|
396 |
+
#: ../mods/single_module.php:96
|
397 |
+
#: ../mods/archive_module.php:22
|
398 |
+
msgid "Click to toggle info"
|
399 |
+
msgstr "Klik om info weer te geven of te verbergen"
|
400 |
+
|
401 |
+
#: ../mods/single_module.php:86
|
402 |
msgid ""
|
403 |
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
404 |
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
408 |
" \t\t\t\t\tAls u de regels in een logische OR wilt gebruiken kunt u de widget opnieuw toevoegen en daarop dan de andere regel toepassen.\n"
|
409 |
" \t\t\t\t\t"
|
410 |
|
411 |
+
#: ../mods/single_module.php:95
|
412 |
msgid "Make exception rule available to individual posts and tags."
|
413 |
msgstr "Maak de uitzonderings regel beschikbaar voor individuele berichten en tags"
|
414 |
|
415 |
+
#: ../mods/single_module.php:99
|
416 |
msgid ""
|
417 |
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
418 |
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
428 |
" \t\t\t\t\tLet er op dat uitzonderings regels voor auteur en categorie worden verwijderd.\n"
|
429 |
" \t\t\t\t"
|
430 |
|
431 |
+
#: ../mods/single_module.php:116
|
432 |
msgid "Except the posts by author"
|
433 |
msgstr "Behalve de berichten van"
|
434 |
|
435 |
+
#: ../mods/single_module.php:127
|
436 |
msgid "Except the posts in category"
|
437 |
msgstr "Behalve de berichten in de categorie"
|
438 |
|
439 |
+
#: ../mods/attachment_module.php:22
|
440 |
+
msgid "Show widget on attachment pages"
|
441 |
+
msgstr "Toon de widget op bijlage pagina's"
|
442 |
+
|
443 |
+
#: ../mods/error_module.php:22
|
444 |
+
msgid "Show widget on the error page?"
|
445 |
+
msgstr "Toon de widget op de foutmeldings pagina?"
|
446 |
+
|
447 |
+
#: ../mods/frontpage_module.php:22
|
448 |
+
msgid "Show widget on the front page?"
|
449 |
+
msgstr "De widget op de startpagina tonen?"
|
450 |
+
|
451 |
+
#: ../mods/frontpage_module.php:26
|
452 |
+
msgid ""
|
453 |
+
"This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />\n"
|
454 |
+
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
455 |
+
"\t\t\t\t\t"
|
456 |
+
msgstr ""
|
457 |
+
"Deze optie werkt alleen als de hoofdpagina de laatste posts toont (Zie Instellingen > Lezen).<br />\n"
|
458 |
+
"\t\t\t\t\t\tWanneer deze optie op statische pagina staat, kunt u gebruik maken van de onderstaande pagina opties.\n"
|
459 |
+
"\t\t\t\t\t"
|
460 |
+
|
461 |
+
#: ../mods/archive_module.php:22
|
462 |
+
msgid "Show widget on archive pages"
|
463 |
+
msgstr "Toon de widget op archief pagina's"
|
464 |
|
465 |
+
#: ../mods/archive_module.php:26
|
466 |
+
msgid "This option does not include Author and Category Pages."
|
467 |
+
msgstr "Deze optie bevat niet auteurs en categorie pagina's"
|
468 |
+
|
469 |
+
#: ../mods/pages_module.php:42
|
470 |
+
#: ../mods/custompost_module.php:45
|
471 |
+
msgid "All childs"
|
472 |
+
msgstr "Alle kinderen"
|
473 |
+
|
474 |
+
#: ../mods/pages_module.php:92
|
475 |
+
#: ../mods/pages_module.php:95
|
476 |
+
msgid "Front page"
|
477 |
+
msgstr "Startpagina"
|
478 |
+
|
479 |
+
#: ../mods/pages_module.php:92
|
480 |
+
#: ../mods/pages_module.php:97
|
481 |
+
msgid "Posts page"
|
482 |
+
msgstr "Posts pagina"
|
483 |
+
|
484 |
+
#: ../mods/pages_module.php:107
|
485 |
msgid "Show widget default on static pages?"
|
486 |
msgstr "Toon de widget op pagina's?"
|
487 |
|
488 |
+
#: ../mods/pages_module.php:112
|
489 |
msgid ""
|
490 |
"Checking the \"All childs\" option, makes the exception rule apply\n"
|
491 |
"\t\t\t\tto the parent and all items under it in all levels. Also future items\n"
|
493 |
"\t\t\t\t\"All childs\" without the parent."
|
494 |
msgstr "Door gebruik te maken van de \"Alle kinderen\" optie, wordt de uitzonderingsregel toegepast op de ouder en alle daaronder liggende item in alle levels. Ook toekomstige items onder de ouder. Het is niet mogelijk om de uitzonderingsregel toe te passen zonder de ouder."
|
495 |
|
496 |
+
#: ../mods/pages_module.php:122
|
497 |
msgid "Except the page(s)"
|
498 |
msgstr "Behalve de pagina('s)"
|
499 |
|
500 |
+
#: ../mods/author_module.php:35
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
501 |
msgid "Show widget default on author pages?"
|
502 |
msgstr "Toon de widget op auteurs pagina's?"
|
503 |
|
504 |
+
#: ../mods/author_module.php:39
|
505 |
msgid "Except the author(s)"
|
506 |
msgstr "Behalve van"
|
507 |
|
508 |
+
#: ../mods/bp_module.php:51
|
509 |
+
msgid "BuddyPress"
|
510 |
+
msgstr "BuddyPress"
|
|
|
|
|
511 |
|
512 |
+
#: ../mods/bp_module.php:53
|
513 |
+
msgid "Show widget default on BuddyPress pages?"
|
514 |
+
msgstr "Toon de widget op BuddyPress pagina's?"
|
515 |
|
516 |
+
#: ../mods/bp_module.php:57
|
517 |
+
msgid "Except on the compontents pages"
|
518 |
+
msgstr "Behalve op de componenten pagina's"
|
|
|
519 |
|
520 |
+
#: ../mods/bp_module.php:91
|
521 |
+
msgid "BuddyPress Groups"
|
522 |
+
msgstr "BuddyPress Groepen"
|
|
|
|
|
523 |
|
524 |
+
#: ../mods/bp_module.php:93
|
525 |
+
msgid "Show widget default on BuddyPress Group pages?"
|
526 |
+
msgstr "Toon de widget op BuddyPress Groep pagina's?"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
|
528 |
+
#: ../mods/bp_module.php:97
|
529 |
+
msgid "Except in the groups"
|
530 |
+
msgstr "Behalve in de groepen"
|
531 |
|
532 |
+
#: ../mods/role_module.php:10
|
533 |
+
msgid "Anonymous"
|
534 |
+
msgstr "Anoniem"
|
535 |
|
536 |
+
#: ../mods/role_module.php:41
|
537 |
+
msgid "Show widget to everybody?"
|
538 |
+
msgstr "Toon de widget aan iedereen?"
|
|
|
539 |
|
540 |
+
#: ../mods/role_module.php:45
|
541 |
+
msgid ""
|
542 |
+
"Setting options by role is very powerfull. It can override all other options!<br />\n"
|
543 |
+
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
544 |
msgstr ""
|
545 |
+
"De rol opties zijn zeer bijzonder. Ze kunnen alle andere opties overstijgen!<br />\n"
|
546 |
+
"\t\t\t\t\t\tGebruikers die niet ingelogd zijn, krijgen de <em>anonieme</em> rol."
|
547 |
|
548 |
+
#: ../mods/role_module.php:50
|
549 |
+
msgid "only to"
|
550 |
+
msgstr "alleen aan"
|
551 |
|
552 |
+
#: ../mods/useragent_module.php:10
|
553 |
+
msgid "(and other Gecko based)"
|
554 |
+
msgstr "(en andere op Gecko gebaseerd)"
|
555 |
|
556 |
+
#: ../mods/useragent_module.php:16
|
557 |
+
msgid "Other / Unknown / Not detected"
|
558 |
+
msgstr "Andere / Onbekend / Niet gedetecteerd"
|
559 |
|
560 |
+
#: ../mods/useragent_module.php:43
|
561 |
+
msgid "Show widget with all browsers?"
|
562 |
+
msgstr "De widget tonen met alle browsers?"
|
|
|
563 |
|
564 |
+
#: ../mods/useragent_module.php:47
|
565 |
+
msgid "Browser detection is never 100% accurate."
|
566 |
+
msgstr "Browser detectie is nooit 100% accuraat"
|
567 |
|
568 |
+
#: ../mods/useragent_module.php:52
|
569 |
+
msgid "Except the browser(s)"
|
570 |
+
msgstr "Behalve de browser(s)"
|
571 |
|
572 |
+
#: ../mods/custompost_module.php:107
|
573 |
+
msgid "Custom Post Type"
|
574 |
+
msgstr "Custom Post Type"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
575 |
|
576 |
+
#: ../mods/custompost_module.php:109
|
577 |
+
msgid "Show widget on"
|
578 |
+
msgstr "Toon de widget op"
|
579 |
|
580 |
+
#: ../mods/custompost_module.php:124
|
581 |
+
#: ../mods/custompost_module.php:167
|
582 |
+
msgid "Except for"
|
583 |
+
msgstr "Behalve voor"
|
584 |
|
585 |
+
#: ../mods/custompost_module.php:159
|
586 |
+
msgid "Custom Post Type Archives"
|
587 |
+
msgstr "Custom Post Type Archief"
|
588 |
|
589 |
+
#: ../mods/custompost_module.php:161
|
590 |
+
msgid "Show widget on Custom Post Type Archives"
|
591 |
+
msgstr "Toon de widget op de Custom Post Type archief pagina?"
|
592 |
|
593 |
+
#: ../mods/date_module.php:31
|
594 |
+
msgid "Show widget always?"
|
595 |
+
msgstr "Altijd de widget tonen?"
|
|
|
|
|
|
|
|
|
596 |
|
597 |
+
#: ../mods/date_module.php:35
|
598 |
+
msgid "Next to the above role option, the date option is also very powerfull. You've been warned!"
|
599 |
+
msgstr "Net zoals de bovenstaande opties, is de datum opties zeer bijzonder. U bent gewaarschuwd!"
|
600 |
|
601 |
+
#: ../mods/date_module.php:36
|
602 |
+
msgid "Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the"
|
603 |
+
msgstr "Voer datum in volgens hets JJJJ-MM-DD formaat. U kunt ook de kalander gebruiken door te klikken op"
|
604 |
|
605 |
+
#: ../mods/date_module.php:37
|
606 |
+
msgid ""
|
607 |
+
"Date ranges can be made by entering a From AND a To date<br />\n"
|
608 |
+
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
609 |
+
" \t\t\t\t\tWhen you want the widget to stop displaying on a specific date, only fill in the To date.\n"
|
610 |
+
" \t\t\t\t"
|
611 |
+
msgstr ""
|
612 |
+
"Datum periodes kunnen worden gemaakt door het invoeren van een 'van' en een 'tot' datum<br />\n"
|
613 |
+
" \t\t\t\t\tWanneer u de widget vanaf een bepaalde datum wilt tonen, vul dan alleen de 'van' datum in<br />\n"
|
614 |
+
" \t\t\t\t\tWanneer u de widget vanaf een bepaalde datum niet meer wilt tonen, vul dan alleen de 'tot' datum in.\n"
|
615 |
+
" \t\t\t\t"
|
616 |
|
617 |
+
#: ../mods/date_module.php:44
|
618 |
+
msgid "only"
|
619 |
+
msgstr "alleen"
|
620 |
|
621 |
+
#: ../mods/date_module.php:48
|
622 |
+
msgid "From"
|
623 |
+
msgstr "Van"
|
624 |
|
625 |
+
#: ../mods/date_module.php:52
|
626 |
+
msgid "To"
|
627 |
+
msgstr "Tot"
|
628 |
|
629 |
+
#: ../mods/wpec_module.php:39
|
630 |
+
msgid "Show widget default on WPSC categories?"
|
631 |
+
msgstr "Toon de widget standaard in de WPSC categoriën?"
|
632 |
|
633 |
+
#: ../mods/wpml_module.php:37
|
634 |
+
msgid "Language (WPML)"
|
635 |
+
msgstr "Taal (WPML)"
|
636 |
|
637 |
+
#: ../mods/wpml_module.php:39
|
638 |
+
msgid "Show widget default on all languages?"
|
639 |
+
msgstr "Toon de widget voor alle talen?"
|
640 |
|
641 |
+
#: ../mods/wpml_module.php:43
|
642 |
+
msgid "Using this option can override all other options."
|
643 |
+
msgstr "Door gebruik te maken van deze opties kan deze alle andere opties overstijgen."
|
644 |
|
645 |
+
#: ../mods/wpml_module.php:48
|
646 |
+
msgid "Except the languages"
|
647 |
+
msgstr "Behalve de talen"
|
648 |
|
649 |
+
#~ msgid "Dynamic Widgets: "
|
650 |
+
#~ msgstr "Dynamische Widgets: "
|
651 |
+
#~ msgid "Widget"
|
652 |
+
#~ msgstr "Widget"
|
653 |
#~ msgid "This widget is"
|
654 |
#~ msgstr "Deze widget is"
|
655 |
#~ msgid "selection"
|
locale/dynamic-widgets.pot
CHANGED
@@ -2,8 +2,8 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Dynamic Widgets\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date:
|
6 |
-
"PO-Revision-Date:
|
7 |
"Last-Translator: Jacco\n"
|
8 |
"Language-Team: \n"
|
9 |
"MIME-Version: 1.0\n"
|
@@ -16,488 +16,627 @@ msgstr ""
|
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
|
18 |
# WordPress MO
|
19 |
-
#: ../
|
20 |
-
|
|
|
21 |
msgstr ""
|
22 |
|
23 |
-
|
24 |
-
|
|
|
|
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: ../
|
28 |
-
#: ../
|
29 |
-
msgid "
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: ../
|
33 |
-
|
|
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: ../
|
37 |
-
|
|
|
|
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: ../
|
41 |
-
|
|
|
|
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: ../
|
45 |
-
|
|
|
|
|
46 |
msgstr ""
|
47 |
|
48 |
-
|
49 |
-
|
|
|
|
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: ../
|
53 |
-
|
|
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: ../
|
57 |
-
|
|
|
|
|
58 |
msgstr ""
|
59 |
|
60 |
-
|
61 |
-
#: ../
|
62 |
-
|
|
|
63 |
msgstr ""
|
64 |
|
65 |
-
|
66 |
-
#: ../
|
67 |
-
#: ../
|
68 |
-
|
69 |
-
msgid "Role"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: ../
|
73 |
-
|
|
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: ../
|
77 |
-
|
78 |
-
"
|
79 |
-
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
80 |
msgstr ""
|
81 |
|
82 |
-
|
83 |
-
#: ../
|
84 |
-
#: ../
|
85 |
-
#: ../
|
86 |
-
#: ../
|
87 |
-
|
88 |
-
#: ../dynwid_admin_edit.php:579
|
89 |
-
#: ../dynwid_admin_edit.php:641
|
90 |
-
#: ../dynwid_admin_edit.php:655
|
91 |
-
#: ../dynwid_admin_edit.php:675
|
92 |
-
#: ../dynwid_admin_edit.php:685
|
93 |
-
#: ../dynwid_admin_edit.php:694
|
94 |
-
#: ../dynwid_admin_edit.php:811
|
95 |
-
#: ../dynwid_admin_edit.php:836
|
96 |
-
msgid "Yes"
|
97 |
msgstr ""
|
98 |
|
99 |
-
|
100 |
-
|
101 |
-
#: ../dynwid_admin_edit.php:447
|
102 |
-
#: ../dynwid_admin_edit.php:474
|
103 |
-
#: ../dynwid_admin_edit.php:498
|
104 |
-
#: ../dynwid_admin_edit.php:515
|
105 |
-
#: ../dynwid_admin_edit.php:580
|
106 |
-
#: ../dynwid_admin_edit.php:642
|
107 |
-
#: ../dynwid_admin_edit.php:656
|
108 |
-
#: ../dynwid_admin_edit.php:676
|
109 |
-
#: ../dynwid_admin_edit.php:686
|
110 |
-
#: ../dynwid_admin_edit.php:695
|
111 |
-
#: ../dynwid_admin_edit.php:812
|
112 |
-
#: ../dynwid_admin_edit.php:837
|
113 |
-
msgid "No"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: ../
|
117 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
msgstr ""
|
119 |
|
120 |
# WordPress MO
|
121 |
-
#: ../
|
122 |
-
|
123 |
-
#: ../dynwid_class.php:49
|
124 |
-
msgid "Date"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: ../
|
128 |
-
msgid "
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: ../
|
132 |
-
msgid "
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: ../
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: ../
|
140 |
-
msgid ""
|
141 |
-
"Date ranges can be made by entering a From AND a To date<br />\n"
|
142 |
-
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
143 |
-
" \t\t\t\t\tWhen you want the widget to stop displaying on a specific date, only fill in the To date.\n"
|
144 |
-
" \t\t\t\t"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: ../
|
148 |
-
msgid "
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: ../
|
152 |
-
msgid "
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: ../
|
156 |
-
msgid "
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: ../
|
160 |
-
msgid "
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: ../
|
164 |
-
msgid "
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: ../
|
168 |
-
msgid "
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: ../dynwid_admin_edit.php:
|
172 |
-
msgid "
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: ../dynwid_admin_edit.php:
|
176 |
-
#: ../
|
177 |
-
|
178 |
-
msgid "Front Page"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: ../dynwid_admin_edit.php:
|
182 |
-
msgid "
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: ../dynwid_admin_edit.php:
|
186 |
-
msgid ""
|
187 |
-
"This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />\n"
|
188 |
-
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
189 |
-
"\t\t\t\t\t"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: ../dynwid_admin_edit.php:
|
193 |
-
|
194 |
-
#: ../dynwid_class.php:52
|
195 |
-
msgid "Single Posts"
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: ../dynwid_admin_edit.php:
|
199 |
-
msgid "
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: ../dynwid_admin_edit.php:
|
203 |
-
msgid ""
|
204 |
-
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
205 |
-
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
206 |
-
" \t\t\t\t\t"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: ../dynwid_admin_edit.php:
|
210 |
-
msgid "
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: ../dynwid_admin_edit.php:
|
214 |
-
msgid ""
|
215 |
-
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
216 |
-
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
217 |
-
"\t\t\t\t\t\tclick a tag), For individual posts in the <a href=\"post-new.php\">New</a> or <a href=\"edit.php\">Edit</a> Posts panel.\n"
|
218 |
-
"\t\t\t\t\t\tException rules for tags and individual posts in any combination work independantly, but will always be counted as one exception.<br />\n"
|
219 |
-
" \t\t\t\t\tPlease note when exception rules are set for Author and/or Category, these will be removed.\n"
|
220 |
-
" \t\t\t\t"
|
221 |
msgstr ""
|
222 |
|
223 |
-
|
224 |
-
|
|
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: ../
|
228 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
msgstr ""
|
230 |
|
231 |
# WordPress MO
|
232 |
-
#: ../
|
233 |
-
|
234 |
-
#: ../dynwid_class.php:53
|
235 |
-
msgid "Pages"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: ../
|
239 |
-
msgid "
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: ../
|
243 |
-
msgid ""
|
244 |
-
"Checking the \"All childs\" option, makes the exception rule apply\n"
|
245 |
-
"\t\t\t\tto the parent and all items under it in all levels. Also future items\n"
|
246 |
-
"\t\t\t\tunder the parent. It's not possible to apply an exception rule to\n"
|
247 |
-
"\t\t\t\t\"All childs\" without the parent."
|
248 |
msgstr ""
|
249 |
|
250 |
-
#: ../
|
251 |
-
msgid "
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: ../
|
255 |
-
|
256 |
-
msgid "All childs"
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: ../
|
260 |
-
|
261 |
-
#: ../dynwid_class.php:54
|
262 |
-
msgid "Author Pages"
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: ../
|
266 |
-
msgid "
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: ../
|
270 |
-
msgid "
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: ../
|
274 |
-
|
275 |
-
#: ../dynwid_class.php:55
|
276 |
-
msgid "Category Pages"
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: ../
|
280 |
-
msgid "
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: ../
|
284 |
-
|
285 |
-
msgid "Except the categories"
|
286 |
msgstr ""
|
287 |
|
288 |
-
#: ../
|
289 |
-
|
290 |
-
#: ../dynwid_class.php:56
|
291 |
-
msgid "Archive Pages"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: ../
|
295 |
-
msgid "
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: ../
|
299 |
-
msgid "
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: ../
|
303 |
-
|
304 |
-
#: ../dynwid_class.php:57
|
305 |
-
msgid "Error Page"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: ../
|
309 |
-
msgid "
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: ../
|
313 |
msgid "Search Page"
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: ../
|
317 |
msgid "Show widget on the search page?"
|
318 |
msgstr ""
|
319 |
|
320 |
-
|
321 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
msgstr ""
|
323 |
|
324 |
-
|
325 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: ../
|
329 |
-
msgid "
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: ../
|
333 |
-
|
334 |
-
#: ../dynwid_class.php:59
|
335 |
-
msgid "WPSC Category"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: ../
|
339 |
-
msgid "
|
340 |
msgstr ""
|
341 |
|
342 |
-
|
343 |
-
|
344 |
-
msgid "Save"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: ../
|
348 |
-
|
349 |
-
msgid "Language"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: ../
|
353 |
-
#: ../
|
354 |
-
|
|
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: ../
|
358 |
-
|
359 |
-
|
360 |
-
|
|
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: ../
|
364 |
-
msgid "
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: ../
|
368 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: ../
|
372 |
-
|
373 |
-
msgid "OLD"
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: ../
|
377 |
-
|
378 |
-
msgid "FILTER"
|
379 |
msgstr ""
|
380 |
|
381 |
-
#: ../
|
382 |
-
msgid "
|
383 |
msgstr ""
|
384 |
|
385 |
-
#: ../
|
386 |
-
msgid "
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: ../
|
390 |
-
msgid "
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: ../
|
394 |
-
|
395 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
396 |
msgstr ""
|
397 |
|
398 |
# WordPress MO
|
399 |
-
#: ../
|
400 |
-
msgid "
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: ../
|
404 |
-
msgid "
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: ../
|
408 |
-
|
409 |
-
|
|
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: ../
|
413 |
-
|
414 |
-
#: ../dynamic-widgets.php:129
|
415 |
-
#: ../dynamic-widgets.php:569
|
416 |
-
msgid "Dynamic"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: ../
|
420 |
-
|
421 |
-
#: ../dynamic-widgets.php:128
|
422 |
-
#: ../dynamic-widgets.php:131
|
423 |
-
#: ../dynamic-widgets.php:569
|
424 |
-
msgid "Static"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: ../
|
428 |
-
msgid "
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: ../
|
432 |
-
msgid "
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: ../
|
436 |
-
msgid "
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: ../
|
440 |
-
msgid "
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: ../
|
444 |
-
msgid "
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: ../
|
448 |
-
msgid "
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: ../
|
452 |
-
|
|
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: ../
|
456 |
-
msgid "
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: ../
|
460 |
-
msgid "
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: ../
|
464 |
-
msgid "
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: ../
|
468 |
-
msgid "
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: ../
|
472 |
-
msgid "
|
473 |
msgstr ""
|
474 |
|
475 |
-
|
476 |
-
|
477 |
-
|
|
|
|
|
|
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: ../
|
481 |
-
msgid "
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: ../
|
485 |
-
msgid "
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: ../
|
489 |
-
msgid "
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: ../
|
493 |
-
msgid "
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: ../
|
497 |
-
msgid "
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: ../
|
501 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
502 |
msgstr ""
|
503 |
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Dynamic Widgets\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-01-29 23:19+0100\n"
|
6 |
+
"PO-Revision-Date: 2011-01-29 23:20+0100\n"
|
7 |
"Last-Translator: Jacco\n"
|
8 |
"Language-Team: \n"
|
9 |
"MIME-Version: 1.0\n"
|
16 |
"X-Poedit-SearchPath-0: ..\n"
|
17 |
|
18 |
# WordPress MO
|
19 |
+
#: ../dynwid_class_php4.php:58
|
20 |
+
#: ../dynwid_class.php:52
|
21 |
+
msgid "Role"
|
22 |
msgstr ""
|
23 |
|
24 |
+
# WordPress MO
|
25 |
+
#: ../dynwid_class_php4.php:59
|
26 |
+
#: ../dynwid_class.php:53
|
27 |
+
msgid "Date"
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: ../dynwid_class_php4.php:60
|
31 |
+
#: ../dynwid_class.php:54
|
32 |
+
msgid "Browser"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: ../dynwid_class_php4.php:61
|
36 |
+
#: ../dynwid_class.php:55
|
37 |
+
msgid "Language"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: ../dynwid_class_php4.php:62
|
41 |
+
#: ../dynwid_class.php:56
|
42 |
+
#: ../mods/frontpage_module.php:20
|
43 |
+
msgid "Front Page"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: ../dynwid_class_php4.php:63
|
47 |
+
#: ../dynwid_class.php:57
|
48 |
+
#: ../mods/single_module.php:80
|
49 |
+
msgid "Single Posts"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../dynwid_class_php4.php:64
|
53 |
+
#: ../dynwid_class.php:58
|
54 |
+
#: ../mods/attachment_module.php:20
|
55 |
+
msgid "Attachments"
|
56 |
msgstr ""
|
57 |
|
58 |
+
# WordPress MO
|
59 |
+
#: ../dynwid_class_php4.php:65
|
60 |
+
#: ../dynwid_class.php:59
|
61 |
+
msgid "Pages"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ../dynwid_class_php4.php:66
|
65 |
+
#: ../dynwid_class.php:60
|
66 |
+
msgid "Author Pages"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: ../dynwid_class_php4.php:67
|
70 |
+
#: ../dynwid_class.php:61
|
71 |
+
#: ../mods/category_module.php:33
|
72 |
+
msgid "Category Pages"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: ../dynwid_class_php4.php:68
|
76 |
+
#: ../dynwid_class.php:62
|
77 |
+
#: ../mods/archive_module.php:20
|
78 |
+
msgid "Archive Pages"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: ../dynwid_class_php4.php:69
|
82 |
+
#: ../dynwid_class.php:63
|
83 |
+
#: ../mods/error_module.php:20
|
84 |
+
msgid "Error Page"
|
|
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: ../dynwid_class_php4.php:70
|
88 |
+
#: ../dynwid_class.php:64
|
89 |
+
msgid "Search page"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: ../dynwid_class_php4.php:71
|
93 |
+
#: ../dynwid_class.php:65
|
94 |
+
msgid "WPSC Category"
|
|
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: ../dynwid_admin.php:18
|
98 |
+
#: ../dynamic-widgets.php:125
|
99 |
+
#: ../dynamic-widgets.php:148
|
100 |
+
#: ../dynamic-widgets.php:247
|
101 |
+
#: ../dynamic-widgets.php:647
|
102 |
+
msgid "Dynamic Widgets"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: ../dynwid_admin.php:25
|
106 |
+
msgid "<b>WARNING</b> STRICT sql mode in effect. Dynamic Widgets might not work correctly. Please disable STRICT sql mode."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: ../dynwid_admin.php:45
|
110 |
+
msgid "Oops! Something went terrible wrong. Please reinstall Dynamic Widgets."
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: ../dynwid_admin.php:53
|
114 |
+
#: ../dynwid_admin_overview.php:28
|
115 |
+
msgid "OLD"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: ../dynwid_admin.php:53
|
119 |
+
#: ../dynwid_admin_overview.php:28
|
120 |
+
msgid "FILTER"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: ../dynamic-widgets.php:133
|
124 |
+
msgid "Widgets are always displayed by default"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: ../dynamic-widgets.php:133
|
128 |
+
msgid "The '<em>Yes</em>' selection"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: ../dynamic-widgets.php:134
|
132 |
+
msgid "Click on the"
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: ../dynamic-widgets.php:134
|
136 |
+
msgid "next to the options for more info"
|
137 |
+
msgstr ""
|
138 |
+
|
139 |
+
#: ../dynamic-widgets.php:135
|
140 |
+
msgid "The"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: ../dynamic-widgets.php:135
|
144 |
+
msgid "next to a section means it has options set."
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#: ../dynamic-widgets.php:137
|
148 |
+
#: ../dynamic-widgets.php:138
|
149 |
+
#: ../dynamic-widgets.php:141
|
150 |
+
#: ../dynamic-widgets.php:649
|
151 |
+
#: ../dynwid_admin_overview.php:73
|
152 |
+
msgid "Static"
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: ../dynamic-widgets.php:137
|
156 |
+
#: ../dynamic-widgets.php:139
|
157 |
+
#: ../dynamic-widgets.php:649
|
158 |
+
#: ../dynwid_admin_overview.php:73
|
159 |
+
msgid "Dynamic"
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: ../dynamic-widgets.php:138
|
163 |
+
msgid "When a widget is"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: ../dynamic-widgets.php:138
|
167 |
+
msgid "the widget uses the WordPress default. In other words, it's shown everywhere"
|
168 |
+
msgstr ""
|
169 |
+
|
170 |
+
#: ../dynamic-widgets.php:139
|
171 |
+
msgid "A widget is"
|
172 |
+
msgstr ""
|
173 |
+
|
174 |
+
#: ../dynamic-widgets.php:139
|
175 |
+
msgid "when there are options set, i.e. not showing on the front page."
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: ../dynamic-widgets.php:140
|
179 |
+
#: ../dynwid_admin_overview.php:67
|
180 |
+
msgid "Reset"
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: ../dynamic-widgets.php:141
|
184 |
+
msgid "Reset makes the widget return to"
|
185 |
msgstr ""
|
186 |
|
187 |
# WordPress MO
|
188 |
+
#: ../dynamic-widgets.php:200
|
189 |
+
msgid "Settings"
|
|
|
|
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: ../dynamic-widgets.php:214
|
193 |
+
msgid "Apply exception rule to widgets:"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: ../dynamic-widgets.php:230
|
197 |
+
msgid "Off"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: ../dynamic-widgets.php:230
|
201 |
+
msgid "On"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: ../dynamic-widgets.php:231
|
205 |
+
msgid " (Default: "
|
|
|
|
|
|
|
|
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: ../dynamic-widgets.php:328
|
209 |
+
msgid "Dynamic Widgets Options saved"
|
210 |
msgstr ""
|
211 |
|
212 |
+
#: ../dynamic-widgets.php:328
|
213 |
+
msgid "for"
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: ../dynamic-widgets.php:648
|
217 |
+
msgid "Edit Dynamic Widgets Options"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: ../dynamic-widgets.php:673
|
221 |
+
msgid "and"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: ../dynamic-widgets.php:679
|
225 |
+
msgid "Options set for"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: ../dynamic-widgets.php:679
|
229 |
+
msgid "Option set for"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: ../dynwid_admin_edit.php:60
|
233 |
+
msgid "Widget options saved."
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: ../dynwid_admin_edit.php:60
|
237 |
+
#: ../dynwid_admin_edit.php:120
|
238 |
+
msgid "Return"
|
|
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: ../dynwid_admin_edit.php:60
|
242 |
+
msgid "to Dynamic Widgets overview"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: ../dynwid_admin_edit.php:65
|
246 |
+
msgid "Dynamic does not mean static hiding of a widget."
|
|
|
|
|
|
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: ../dynwid_admin_edit.php:65
|
250 |
+
msgid "Hint"
|
|
|
|
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: ../dynwid_admin_edit.php:65
|
254 |
+
msgid "Remove"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: ../dynwid_admin_edit.php:65
|
258 |
+
msgid "the widget from the sidebar"
|
|
|
|
|
|
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: ../dynwid_admin_edit.php:69
|
262 |
+
msgid "The From date can't be later than the To date."
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: ../dynwid_admin_edit.php:74
|
266 |
+
msgid "Edit options for the widget"
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
msgstr ""
|
268 |
|
269 |
+
# WordPress MO
|
270 |
+
#: ../dynwid_admin_edit.php:116
|
271 |
+
msgid "Save"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: ../dynwid_admin_overview.php:15
|
275 |
+
msgid "Widget options have been reset to default."
|
276 |
+
msgstr ""
|
277 |
+
|
278 |
+
#: ../dynwid_admin_overview.php:28
|
279 |
+
msgid "Method set to"
|
280 |
+
msgstr ""
|
281 |
+
|
282 |
+
#: ../dynwid_admin_overview.php:36
|
283 |
+
msgid "Inactive Widgets"
|
284 |
+
msgstr ""
|
285 |
+
|
286 |
+
#: ../dynwid_admin_overview.php:59
|
287 |
+
#: ../dynwid_admin_overview.php:62
|
288 |
+
msgid "Edit this widget options"
|
289 |
msgstr ""
|
290 |
|
291 |
# WordPress MO
|
292 |
+
#: ../dynwid_admin_overview.php:62
|
293 |
+
msgid "Edit"
|
|
|
|
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: ../dynwid_admin_overview.php:67
|
297 |
+
msgid "Reset widget to Static"
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: ../dynwid_admin_overview.php:88
|
301 |
+
msgid "Advanced"
|
|
|
|
|
|
|
|
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: ../dynwid_admin_overview.php:93
|
305 |
+
msgid "wp_head() check:"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: ../dynwid_admin_overview.php:98
|
309 |
+
msgid "wp_head() is NOT called (at the most obvious place)"
|
|
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: ../dynwid_admin_overview.php:102
|
313 |
+
msgid "wp_head() is called"
|
|
|
|
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: ../dynwid_admin_overview.php:106
|
317 |
+
msgid "Unable to determine if wp_head() is called"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: ../dynwid_admin_overview.php:118
|
321 |
+
msgid "Use 'OLD' method"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: ../dynwid_admin_overview.php:124
|
325 |
+
msgid "When upgrading to WPEC 3.8 the Dynamic Widgets rules for WPEC are lost. The WPEC dump gives you an overview of the rules before the update."
|
|
|
|
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: ../dynwid_admin_overview.php:125
|
329 |
+
msgid "WARNING"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: ../dynwid_admin_overview.php:125
|
333 |
+
msgid "This only works correct when you did not add or change anything in the Dynamic Widgets rules."
|
|
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: ../dynwid_admin_overview.php:130
|
337 |
+
msgid "Create WPEC dump"
|
|
|
|
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: ../dynwid_admin_overview.php:137
|
341 |
+
msgid "For debugging purposes it is possible you're asked to create a dump. Click the 'Create dump' button and save the text file."
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: ../dynwid_admin_overview.php:142
|
345 |
+
msgid "Create dump"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: ../dynwid_admin_overview.php:149
|
349 |
+
msgid "When you deceide not to use this plugin anymore (sorry to hear that!). You can cleanup all settings and data related to this plugin by clicking on the 'Uninstall' button. This process is irreversible! After the cleanup the plugin is deactivated automaticly."
|
|
|
|
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: ../dynwid_admin_overview.php:154
|
353 |
+
msgid "Uninstall"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: ../mods/search_module.php:21
|
357 |
msgid "Search Page"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: ../mods/search_module.php:23
|
361 |
msgid "Show widget on the search page?"
|
362 |
msgstr ""
|
363 |
|
364 |
+
# WordPress MO
|
365 |
+
#: ../mods/search_module.php:25
|
366 |
+
#: ../mods/category_module.php:37
|
367 |
+
#: ../mods/single_module.php:91
|
368 |
+
#: ../mods/attachment_module.php:24
|
369 |
+
#: ../mods/error_module.php:24
|
370 |
+
#: ../mods/frontpage_module.php:31
|
371 |
+
#: ../mods/archive_module.php:29
|
372 |
+
msgid "Yes"
|
373 |
msgstr ""
|
374 |
|
375 |
+
# WordPress MO
|
376 |
+
#: ../mods/search_module.php:26
|
377 |
+
#: ../mods/category_module.php:38
|
378 |
+
#: ../mods/single_module.php:92
|
379 |
+
#: ../mods/attachment_module.php:25
|
380 |
+
#: ../mods/error_module.php:25
|
381 |
+
#: ../mods/frontpage_module.php:32
|
382 |
+
#: ../mods/archive_module.php:30
|
383 |
+
msgid "No"
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: ../mods/category_module.php:35
|
387 |
+
msgid "Show widget default on category pages?"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: ../mods/category_module.php:39
|
391 |
+
msgid "Except the categories"
|
|
|
|
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: ../mods/single_module.php:75
|
395 |
+
msgid "Posts: "
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: ../mods/single_module.php:75
|
399 |
+
msgid "Tags: "
|
|
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: ../mods/single_module.php:82
|
403 |
+
msgid "Show widget default on single posts?"
|
|
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: ../mods/single_module.php:82
|
407 |
+
#: ../mods/single_module.php:96
|
408 |
+
#: ../mods/archive_module.php:22
|
409 |
+
msgid "Click to toggle info"
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: ../mods/single_module.php:86
|
413 |
+
msgid ""
|
414 |
+
"When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won't be applied.\n"
|
415 |
+
" \t\t\t\t\tIf you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.\n"
|
416 |
+
" \t\t\t\t\t"
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: ../mods/single_module.php:95
|
420 |
+
msgid "Make exception rule available to individual posts and tags."
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: ../mods/single_module.php:99
|
424 |
+
msgid ""
|
425 |
+
"When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.\n"
|
426 |
+
"\t\t\t\t\t\tYou can set the exception rule for tags in the single Edit Tag Panel (go to <a href=\"edit-tags.php?taxonomy=post_tag\">Post Tags</a>,\n"
|
427 |
+
"\t\t\t\t\t\tclick a tag), For individual posts in the <a href=\"post-new.php\">New</a> or <a href=\"edit.php\">Edit</a> Posts panel.\n"
|
428 |
+
"\t\t\t\t\t\tException rules for tags and individual posts in any combination work independantly, but will always be counted as one exception.<br />\n"
|
429 |
+
" \t\t\t\t\tPlease note when exception rules are set for Author and/or Category, these will be removed.\n"
|
430 |
+
" \t\t\t\t"
|
431 |
msgstr ""
|
432 |
|
433 |
+
#: ../mods/single_module.php:116
|
434 |
+
msgid "Except the posts by author"
|
|
|
435 |
msgstr ""
|
436 |
|
437 |
+
#: ../mods/single_module.php:127
|
438 |
+
msgid "Except the posts in category"
|
|
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: ../mods/attachment_module.php:22
|
442 |
+
msgid "Show widget on attachment pages"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: ../mods/error_module.php:22
|
446 |
+
msgid "Show widget on the error page?"
|
447 |
msgstr ""
|
448 |
|
449 |
+
#: ../mods/frontpage_module.php:22
|
450 |
+
msgid "Show widget on the front page?"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: ../mods/frontpage_module.php:26
|
454 |
+
msgid ""
|
455 |
+
"This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />\n"
|
456 |
+
"\t\t\t\t\t\tWhen a static page is set, you can use the options for the static pages below.\n"
|
457 |
+
"\t\t\t\t\t"
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: ../mods/archive_module.php:22
|
461 |
+
msgid "Show widget on archive pages"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: ../mods/archive_module.php:26
|
465 |
+
msgid "This option does not include Author and Category Pages."
|
466 |
+
msgstr ""
|
467 |
+
|
468 |
+
#: ../mods/pages_module.php:42
|
469 |
+
#: ../mods/custompost_module.php:45
|
470 |
+
msgid "All childs"
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: ../mods/pages_module.php:92
|
474 |
+
#: ../mods/pages_module.php:95
|
475 |
+
msgid "Front page"
|
476 |
+
msgstr ""
|
477 |
+
|
478 |
+
#: ../mods/pages_module.php:92
|
479 |
+
#: ../mods/pages_module.php:97
|
480 |
+
msgid "Posts page"
|
481 |
+
msgstr ""
|
482 |
+
|
483 |
+
#: ../mods/pages_module.php:107
|
484 |
+
msgid "Show widget default on static pages?"
|
485 |
+
msgstr ""
|
486 |
+
|
487 |
+
#: ../mods/pages_module.php:112
|
488 |
+
msgid ""
|
489 |
+
"Checking the \"All childs\" option, makes the exception rule apply\n"
|
490 |
+
"\t\t\t\tto the parent and all items under it in all levels. Also future items\n"
|
491 |
+
"\t\t\t\tunder the parent. It's not possible to apply an exception rule to\n"
|
492 |
+
"\t\t\t\t\"All childs\" without the parent."
|
493 |
+
msgstr ""
|
494 |
+
|
495 |
+
#: ../mods/pages_module.php:122
|
496 |
+
msgid "Except the page(s)"
|
497 |
+
msgstr ""
|
498 |
+
|
499 |
+
#: ../mods/author_module.php:35
|
500 |
+
msgid "Show widget default on author pages?"
|
501 |
+
msgstr ""
|
502 |
+
|
503 |
+
#: ../mods/author_module.php:39
|
504 |
+
msgid "Except the author(s)"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: ../mods/bp_module.php:51
|
508 |
+
msgid "BuddyPress"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: ../mods/bp_module.php:53
|
512 |
+
msgid "Show widget default on BuddyPress pages?"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: ../mods/bp_module.php:57
|
516 |
+
msgid "Except on the compontents pages"
|
517 |
+
msgstr ""
|
518 |
+
|
519 |
+
#: ../mods/bp_module.php:91
|
520 |
+
msgid "BuddyPress Groups"
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: ../mods/bp_module.php:93
|
524 |
+
msgid "Show widget default on BuddyPress Group pages?"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: ../mods/bp_module.php:97
|
528 |
+
msgid "Except in the groups"
|
529 |
msgstr ""
|
530 |
|
531 |
# WordPress MO
|
532 |
+
#: ../mods/role_module.php:10
|
533 |
+
msgid "Anonymous"
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: ../mods/role_module.php:41
|
537 |
+
msgid "Show widget to everybody?"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: ../mods/role_module.php:45
|
541 |
+
msgid ""
|
542 |
+
"Setting options by role is very powerfull. It can override all other options!<br />\n"
|
543 |
+
"\t\t\t\t\t\tUsers who are not logged in, get the <em>Anonymous</em> role."
|
544 |
msgstr ""
|
545 |
|
546 |
+
#: ../mods/role_module.php:50
|
547 |
+
msgid "only to"
|
|
|
|
|
|
|
548 |
msgstr ""
|
549 |
|
550 |
+
#: ../mods/useragent_module.php:10
|
551 |
+
msgid "(and other Gecko based)"
|
|
|
|
|
|
|
|
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: ../mods/useragent_module.php:16
|
555 |
+
msgid "Other / Unknown / Not detected"
|
556 |
msgstr ""
|
557 |
|
558 |
+
#: ../mods/useragent_module.php:43
|
559 |
+
msgid "Show widget with all browsers?"
|
560 |
msgstr ""
|
561 |
|
562 |
+
#: ../mods/useragent_module.php:47
|
563 |
+
msgid "Browser detection is never 100% accurate."
|
564 |
msgstr ""
|
565 |
|
566 |
+
#: ../mods/useragent_module.php:52
|
567 |
+
msgid "Except the browser(s)"
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: ../mods/custompost_module.php:107
|
571 |
+
msgid "Custom Post Type"
|
572 |
msgstr ""
|
573 |
|
574 |
+
#: ../mods/custompost_module.php:109
|
575 |
+
msgid "Show widget on"
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: ../mods/custompost_module.php:124
|
579 |
+
#: ../mods/custompost_module.php:167
|
580 |
+
msgid "Except for"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: ../mods/custompost_module.php:159
|
584 |
+
msgid "Custom Post Type Archives"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: ../mods/custompost_module.php:161
|
588 |
+
msgid "Show widget on Custom Post Type Archives"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: ../mods/date_module.php:31
|
592 |
+
msgid "Show widget always?"
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: ../mods/date_module.php:35
|
596 |
+
msgid "Next to the above role option, the date option is also very powerfull. You've been warned!"
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: ../mods/date_module.php:36
|
600 |
+
msgid "Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the"
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: ../mods/date_module.php:37
|
604 |
+
msgid ""
|
605 |
+
"Date ranges can be made by entering a From AND a To date<br />\n"
|
606 |
+
" \t\t\t\t\tWhen you want the widget to be displayed from a specific date, only fill in the From date<br />\n"
|
607 |
+
" \t\t\t\t\tWhen you want the widget to stop displaying on a specific date, only fill in the To date.\n"
|
608 |
+
" \t\t\t\t"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: ../mods/date_module.php:44
|
612 |
+
msgid "only"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: ../mods/date_module.php:48
|
616 |
+
msgid "From"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: ../mods/date_module.php:52
|
620 |
+
msgid "To"
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: ../mods/wpec_module.php:39
|
624 |
+
msgid "Show widget default on WPSC categories?"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: ../mods/wpml_module.php:37
|
628 |
+
msgid "Language (WPML)"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: ../mods/wpml_module.php:39
|
632 |
+
msgid "Show widget default on all languages?"
|
633 |
+
msgstr ""
|
634 |
+
|
635 |
+
#: ../mods/wpml_module.php:43
|
636 |
+
msgid "Using this option can override all other options."
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: ../mods/wpml_module.php:48
|
640 |
+
msgid "Except the languages"
|
641 |
msgstr ""
|
642 |
|
mods/archive_module.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Archive Module
|
4 |
+
*
|
5 |
+
* @version $Id: archive_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$archive_yes_selected = 'checked="checked"';
|
10 |
+
$opt_archive = $DW->getOptions($_GET['id'], 'archive');
|
11 |
+
if ( count($opt_archive) > 0 ) {
|
12 |
+
$archive_condition = $opt_archive[0]['value'];
|
13 |
+
if ( $archive_condition == '0' ) {
|
14 |
+
$archive_no_selected = $archive_yes_selected;
|
15 |
+
unset($archive_yes_selected);
|
16 |
+
}
|
17 |
+
}
|
18 |
+
?>
|
19 |
+
|
20 |
+
<h4><b><?php _e('Archive Pages', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_archive) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
21 |
+
<div class="dynwid_conf">
|
22 |
+
<?php _e('Show widget on archive pages', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN); ?>" onclick="divToggle('archive')" /><br />
|
23 |
+
<?php $DW->dumpOpt($opt_archive); ?>
|
24 |
+
<div>
|
25 |
+
<div id="archive" class="infotext">
|
26 |
+
<?php _e('This option does not include Author and Category Pages.', DW_L10N_DOMAIN); ?>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
+
<input type="radio" name="archive" value="yes" id="archive-yes" <?php echo ( isset($archive_yes_selected) ? $archive_yes_selected : '' ); ?> /> <label for="archive-yes"><?php _e('Yes'); ?></label>
|
30 |
+
<input type="radio" name="archive" value="no" id="archive-no" <?php echo ( isset($archive_no_selected) ? $archive_no_selected : '' ); ?> /> <label for="archive-no"><?php _e('No'); ?></label>
|
31 |
+
</div><!-- end dynwid_conf -->
|
mods/attachment_module.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Attachment Module
|
4 |
+
*
|
5 |
+
* @version $Id: attachment_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$attachment_yes_selected = 'checked="checked"';
|
10 |
+
$opt_attachment = $DW->getOptions($_GET['id'], 'attachment');
|
11 |
+
if ( count($opt_attachment) > 0 ) {
|
12 |
+
$attachment_condition = $opt_attachment[0]['value'];
|
13 |
+
if ( $attachment_condition == '0' ) {
|
14 |
+
$attachment_no_selected = $attachment_yes_selected;
|
15 |
+
unset($attachment_yes_selected);
|
16 |
+
}
|
17 |
+
}
|
18 |
+
?>
|
19 |
+
|
20 |
+
<h4><b><?php _e('Attachments', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_attachment) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
21 |
+
<div class="dynwid_conf">
|
22 |
+
<?php _e('Show widget on attachment pages', DW_L10N_DOMAIN); ?>?<br />
|
23 |
+
<?php $DW->dumpOpt($opt_attachment); ?>
|
24 |
+
<input type="radio" name="attachment" value="yes" id="attachment-yes" <?php echo ( isset($attachment_yes_selected) ? $attachment_yes_selected : '' ); ?> /> <label for="attachment-yes"><?php _e('Yes'); ?></label>
|
25 |
+
<input type="radio" name="attachment" value="no" id="attachment-no" <?php echo ( isset($attachment_no_selected) ? $attachment_no_selected : '' ); ?> /> <label for="attachment-no"><?php _e('No'); ?></label>
|
26 |
+
</div><!-- end dynwid_conf -->
|
mods/author_module.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Author Module
|
4 |
+
*
|
5 |
+
* @version $Id: author_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$author_yes_selected = 'checked="checked"';
|
10 |
+
$opt_author = $DW->getOptions($_GET['id'], 'author');
|
11 |
+
if ( count($opt_author) > 0 ) {
|
12 |
+
$author_act = array();
|
13 |
+
foreach ( $opt_author as $author_condition ) {
|
14 |
+
if ( $author_condition['name'] == 'default' || empty($author_condition['name']) ) {
|
15 |
+
$author_default = $author_condition['value'];
|
16 |
+
} else {
|
17 |
+
$author_act[ ] = $author_condition['name'];
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
if ( $author_default == '0' ) {
|
22 |
+
$author_no_selected = $author_yes_selected;
|
23 |
+
unset($author_yes_selected);
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
$authors = get_users_of_blog();
|
28 |
+
if ( count($authors) > DW_LIST_LIMIT ) {
|
29 |
+
$author_condition_select_style = DW_LIST_STYLE;
|
30 |
+
}
|
31 |
+
?>
|
32 |
+
|
33 |
+
<h4><b><?php _e('Author Pages', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_author) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
34 |
+
<div class="dynwid_conf">
|
35 |
+
<?php _e('Show widget default on author pages?', DW_L10N_DOMAIN); ?><br />
|
36 |
+
<?php $DW->dumpOpt($opt_author); ?>
|
37 |
+
<input type="radio" name="author" value="yes" id="author-yes" <?php echo ( isset($author_yes_selected) ? $author_yes_selected : '' ); ?> /> <label for="author-yes"><?php _e('Yes'); ?></label>
|
38 |
+
<input type="radio" name="author" value="no" id="author-no" <?php echo ( isset($author_no_selected) ? $author_no_selected : '' ); ?> /> <label for="author-no"><?php _e('No'); ?></label><br />
|
39 |
+
<?php _e('Except the author(s)', DW_L10N_DOMAIN); ?>:<br />
|
40 |
+
<div id="author-select" class="condition-select" <?php echo ( isset($author_condition_select_style) ? $author_condition_select_style : '' ); ?>>
|
41 |
+
<?php foreach ( $authors as $author ) { ?>
|
42 |
+
<input type="checkbox" id="author_act_<?php echo $author->ID; ?>" name="author_act[]" value="<?php echo $author->ID; ?>" <?php echo ( isset($author_act) && count($author_act) > 0 && in_array($author->ID,$author_act) ) ? 'checked="checked"' : ''; ?> /> <label for="author_act_<?php echo $author->ID; ?>"><?php echo $author->display_name; ?></label><br />
|
43 |
+
<?php } ?></div>
|
44 |
+
</div><!-- end dynwid_conf -->
|
mods/bp_module.php
ADDED
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* BP module
|
4 |
+
* http://buddypress.org/
|
5 |
+
*
|
6 |
+
* @version $Id: bp_module.php 348295 2011-02-20 20:13:21Z qurl $\
|
7 |
+
* @copyright 2011 Jacco Drabbe
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( defined('BP_VERSION') ) {
|
11 |
+
$DW->bp = TRUE;
|
12 |
+
require_once(DW_PLUGIN . 'bp.php');
|
13 |
+
|
14 |
+
$tmp = array();
|
15 |
+
$bp_yes_selected = 'checked="checked"';
|
16 |
+
$opt_bp = $DW->getOptions($_GET['id'], 'bp');
|
17 |
+
if ( count($opt_bp) > 0 ) {
|
18 |
+
$bp_act = array();
|
19 |
+
foreach ( $opt_bp as $key => $bp_condition ) {
|
20 |
+
if ( $bp_condition['maintype'] == 'bp' ) {
|
21 |
+
if ( $bp_condition['name'] == 'default' || empty($bp_condition['name']) ) {
|
22 |
+
$bp_default = $bp_condition['value'];
|
23 |
+
} else {
|
24 |
+
$bp_act[ ] = $bp_condition['name'];
|
25 |
+
}
|
26 |
+
} else {
|
27 |
+
$tmp[ ] = $key;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
if ( $bp_default == '0' ) {
|
32 |
+
$bp_no_selected = $bp_yes_selected;
|
33 |
+
unset($bp_yes_selected);
|
34 |
+
}
|
35 |
+
|
36 |
+
// Removing the bp-group options
|
37 |
+
if ( count($tmp) > 0 ) {
|
38 |
+
foreach ( $tmp as $key ){
|
39 |
+
unset($opt_bp[$key]);
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
$bp_components = dw_get_bp_components();
|
45 |
+
if ( count($bp_components) > DW_LIST_LIMIT ) {
|
46 |
+
$bp_condition_select_style = DW_LIST_STYLE;
|
47 |
+
}
|
48 |
+
unset($tmp);
|
49 |
+
?>
|
50 |
+
|
51 |
+
<h4><b><?php _e('BuddyPress', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_bp) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
52 |
+
<div class="dynwid_conf">
|
53 |
+
<?php _e('Show widget default on BuddyPress pages?', DW_L10N_DOMAIN); ?><br />
|
54 |
+
<?php $DW->dumpOpt($opt_bp); ?>
|
55 |
+
<input type="radio" name="bp" value="yes" id="bp-yes" <?php echo ( isset($bp_yes_selected) ? $bp_yes_selected : '' ); ?> /> <label for="bp-yes"><?php _e('Yes'); ?></label>
|
56 |
+
<input type="radio" name="bp" value="no" id="bp-no" <?php echo ( isset($bp_no_selected) ? $bp_no_selected : '' ); ?> /> <label for="bp-no"><?php _e('No'); ?></label><br />
|
57 |
+
<?php _e('Except on the compontents pages', DW_L10N_DOMAIN); ?>:<br />
|
58 |
+
<div id="bp-select" class="condition-select" <?php echo ( isset($bp_condition_select_style) ? $bp_condition_select_style : '' ); ?>>
|
59 |
+
<?php foreach ( $bp_components as $id => $component ) { ?>
|
60 |
+
<input type="checkbox" id="bp_act_<?php echo $id; ?>" name="bp_act[]" value="<?php echo $id; ?>" <?php echo ( count($bp_act) > 0 && in_array($id, $bp_act) ) ? 'checked="checked"' : ''; ?> /> <label for="bp_act_<?php echo $id; ?>"><?php echo $component; ?></label><br />
|
61 |
+
<?php } ?>
|
62 |
+
</div>
|
63 |
+
</div><!-- end dynwid_conf -->
|
64 |
+
|
65 |
+
<!-- BuddyPress Groups //-->
|
66 |
+
<?php
|
67 |
+
if ( $DW->bp_groups ) {
|
68 |
+
$bp_group_yes_selected = 'checked="checked"';
|
69 |
+
$opt_bp_group = $DW->getOptions($_GET['id'], 'bp-group');
|
70 |
+
if ( count($opt_bp_group) > 0 ) {
|
71 |
+
$bp_group_act = array();
|
72 |
+
foreach ( $opt_bp_group as $bp_group_condition ) {
|
73 |
+
if ( $bp_group_condition['name'] == 'default' || empty($bp_group_condition['name']) ) {
|
74 |
+
$bp_group_default = $bp_group_condition['value'];
|
75 |
+
} else {
|
76 |
+
$bp_group_act[ ] = $bp_group_condition['name'];
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
if ( $bp_group_default == '0' ) {
|
81 |
+
$bp_group_no_selected = $bp_group_yes_selected;
|
82 |
+
unset($bp_group_yes_selected);
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
$bp_groups = dw_get_bp_groups();
|
87 |
+
if ( count($bp_groups) > DW_LIST_LIMIT ) {
|
88 |
+
$bp_group_condition_select_style = DW_LIST_STYLE;
|
89 |
+
}
|
90 |
+
?>
|
91 |
+
<h4><b><?php _e('BuddyPress Groups', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_bp_group) > 0 ? ' <span class="hasoptions">*</span>' : '' ); ?></h4>
|
92 |
+
<div class="dynwid_conf">
|
93 |
+
<?php _e('Show widget default on BuddyPress Group pages?', DW_L10N_DOMAIN); ?><br />
|
94 |
+
<?php $DW->dumpOpt($opt_bp_group); ?>
|
95 |
+
<input type="radio" name="bp-group" value="yes" id="bp-group-yes" <?php echo ( isset($bp_group_yes_selected) ? $bp_group_yes_selected : '' ); ?> /> <label for="bp-group-yes"><?php _e('Yes'); ?></label>
|
96 |
+
<input type="radio" name="bp-group" value="no" id="bp-group-no" <?php echo ( isset($bp_group_no_selected) ? $bp_group_no_selected : '' ); ?> /> <label for="bp-group-no"><?php _e('No'); ?></label><br />
|
97 |
+
<?php _e('Except in the groups', DW_L10N_DOMAIN); ?>:<br />
|
98 |
+
<div id="bp-group-select" class="condition-select" <?php echo ( isset($bp_group_condition_select_style) ? $bp_group_condition_select_style : '' ); ?>>
|
99 |
+
<?php foreach ( $bp_groups as $id => $group ) { ?>
|
100 |
+
<input type="checkbox" id="bp_group_act_<?php echo $id; ?>" name="bp_group_act[]" value="<?php echo $id; ?>" <?php echo ( count($bp_group_act) > 0 && in_array($id, $bp_group_act) ) ? 'checked="checked"' : ''; ?> /> <label for="bp_group_act_<?php echo $id; ?>"><?php echo ucfirst($group); ?></label><br />
|
101 |
+
<?php } ?>
|
102 |
+
</div>
|
103 |
+
</div><!-- end dynwid_conf -->
|
104 |
+
|
105 |
+
<?php
|
106 |
+
} // end $DW->bp_groups
|
107 |
+
} // end $DW->bp;
|
108 |
+
?>
|
mods/category_module.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Category Module
|
4 |
+
*
|
5 |
+
* @version $Id: category_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$category_yes_selected = 'checked="checked"';
|
10 |
+
$opt_category = $DW->getOptions($_GET['id'], 'category');
|
11 |
+
if ( count($opt_category) > 0 ) {
|
12 |
+
$category_act = array();
|
13 |
+
foreach ( $opt_category as $category_condition ) {
|
14 |
+
if ( $category_condition['name'] == 'default' || empty($category_condition['name']) ) {
|
15 |
+
$category_default = $category_condition['value'];
|
16 |
+
} else {
|
17 |
+
$category_act[ ] = $category_condition['name'];
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
if ( $category_default == '0' ) {
|
22 |
+
$category_no_selected = $category_yes_selected;
|
23 |
+
unset($category_yes_selected);
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
$category = get_categories( array('hide_empty' => FALSE) );
|
28 |
+
if ( count($category) > DW_LIST_LIMIT ) {
|
29 |
+
$category_condition_select_style = DW_LIST_STYLE;
|
30 |
+
}
|
31 |
+
?>
|
32 |
+
|
33 |
+
<h4><b><?php _e('Category Pages', DW_L10N_DOMAIN); ?></b> <?php echo ( count($opt_category) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ) . ( $DW->wpml ? $wpml_icon : '' ); ?></h4>
|
34 |
+
<div class="dynwid_conf">
|
35 |
+
<?php _e('Show widget default on category pages?', DW_L10N_DOMAIN); ?><br />
|
36 |
+
<?php $DW->dumpOpt($opt_category); ?>
|
37 |
+
<input type="radio" name="category" value="yes" id="category-yes" <?php echo ( isset($category_yes_selected) ? $category_yes_selected : '' ); ?> /> <label for="category-yes"><?php _e('Yes'); ?></label>
|
38 |
+
<input type="radio" name="category" value="no" id="category-no" <?php echo ( isset($category_no_selected) ? $category_no_selected : '' ); ?> /> <label for="category-no"><?php _e('No'); ?></label><br />
|
39 |
+
<?php _e('Except the categories', DW_L10N_DOMAIN); ?>:<br />
|
40 |
+
<div id="category-select" class="condition-select" <?php echo ( isset($category_condition_select_style) ? $category_condition_select_style : '' ); ?>>
|
41 |
+
<?php foreach ( $category as $cat ) { ?>
|
42 |
+
<input type="checkbox" id="cat_act_<?php echo $cat->cat_ID; ?>" name="category_act[]" value="<?php echo $cat->cat_ID; ?>" <?php echo ( isset($category_act) && count($category_act) > 0 && in_array($cat->cat_ID,$category_act) ) ? 'checked="checked"' : ''; ?> /> <label for="cat_act_<?php echo $cat->cat_ID; ?>"><?php echo $cat->name; ?></label><br />
|
43 |
+
<?php } ?>
|
44 |
+
</div>
|
45 |
+
</div><!-- end dynwid_conf -->
|
mods/custompost_module.php
ADDED
@@ -0,0 +1,165 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Custom Post Type Module
|
5 |
+
*
|
6 |
+
* @version $Id: custompost_module.php 348295 2011-02-20 20:13:21Z qurl $
|
7 |
+
* @copyright 2011 Jacco Drabbe
|
8 |
+
*/
|
9 |
+
|
10 |
+
/* WordPress 3.0 and higher: Custom Post Types */
|
11 |
+
if ( version_compare($GLOBALS['wp_version'], '3.0', '>=') ) {
|
12 |
+
function getCPostChilds($type, $arr, $id, $i) {
|
13 |
+
$post = get_posts('post_type=' . $type . '&post_parent=' . $id);
|
14 |
+
foreach ($post as $p ) {
|
15 |
+
if (! in_array($p->ID, $i) ) {
|
16 |
+
$i[ ] = $p->ID;
|
17 |
+
$arr[$p->ID] = array();
|
18 |
+
$a = &$arr[$p->ID];
|
19 |
+
$a = getCPostChilds($type, $a, $p->ID, &$i);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
return $arr;
|
23 |
+
}
|
24 |
+
|
25 |
+
function prtCPost($type, $ctid, $posts, $posts_act, $posts_childs_act) {
|
26 |
+
foreach ( $posts as $pid => $childs ) {
|
27 |
+
$post = get_post($pid);
|
28 |
+
|
29 |
+
echo '<div style="position:relative;left:15px;">';
|
30 |
+
echo '<input type="checkbox" id="' . $type . '_act_' . $post->ID . '" name="' . $type . '_act[]" value="' . $post->ID . '" ' . ( isset($posts_act) && count($posts_act) > 0 && in_array($post->ID, $posts_act) ? 'checked="checked"' : '' ) . ' onchange="chkCPChild(\'' . $type . '\',' . $pid . ')" /> <label for="' . $type . '_act_' . $post->ID . '">' . $post->post_title . '</label><br />';
|
31 |
+
|
32 |
+
if ( $ctid->hierarchical ) {
|
33 |
+
echo '<div style="position:relative;left:15px;">';
|
34 |
+
echo '<input type="checkbox" id="' . $type . '_child_' . $pid . '" name="' . $type . '_childs_act[]" value="' . $pid . '" ' . ( isset($posts_childs_act) && count($posts_childs_act) > 0 && in_array($pid, $posts_childs_act) ? 'checked="checked"' : '' ) . ' onchange="chkCPParent(\'' . $type . '\',' . $pid . ')" /> <label for="' . $type . '_child_' . $pid . '"><em>' . __('All childs', DW_L10N_DOMAIN) . '</em></label><br />';
|
35 |
+
echo '</div>';
|
36 |
+
}
|
37 |
+
|
38 |
+
if ( count($childs) > 0 ) {
|
39 |
+
prtCPost($type, $ctid, $childs, $posts_act, $posts_childs_act);
|
40 |
+
}
|
41 |
+
echo '</div>';
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
$args = array(
|
46 |
+
'public' => TRUE,
|
47 |
+
'_builtin' => FALSE
|
48 |
+
);
|
49 |
+
$post_types = get_post_types($args, 'objects', 'and');
|
50 |
+
|
51 |
+
foreach ( $post_types as $type => $ctid ) {
|
52 |
+
// Prepare
|
53 |
+
$custom_yes_selected = 'checked="checked"';
|
54 |
+
$opt_custom = $DW->getOptions($_GET['id'], $type);
|
55 |
+
if ( count($opt_custom) > 0 ) {
|
56 |
+
$custom_act = array();
|
57 |
+
$custom_childs_act = array();
|
58 |
+
|
59 |
+
foreach ( $opt_custom as $custom_condition ) {
|
60 |
+
if ( $custom_condition['maintype'] == $type ) {
|
61 |
+
if ( $custom_condition['name'] == 'default' || empty($custom_condition['name']) ) {
|
62 |
+
$custom_default = $custom_condition['value'];
|
63 |
+
} else {
|
64 |
+
$custom_act[ ] = $custom_condition['name'];
|
65 |
+
}
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
if ( $custom_default == '0' ) {
|
70 |
+
$custom_no_selected = $custom_yes_selected;
|
71 |
+
unset($custom_yes_selected);
|
72 |
+
}
|
73 |
+
|
74 |
+
// -- Childs
|
75 |
+
if ( $ctid->hierarchical ) {
|
76 |
+
$opt_custom_childs = $DW->getOptions($_GET['id'], $type . '-childs');
|
77 |
+
if ( count($opt_custom_childs) > 0 ) {
|
78 |
+
foreach ( $opt_custom_childs as $child_condition ) {
|
79 |
+
if ( $child_condition['name'] != 'default' ) {
|
80 |
+
$custom_childs_act[ ] = $child_condition['name'];
|
81 |
+
}
|
82 |
+
}
|
83 |
+
}
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
$loop = new WP_Query( array('post_type' => $type) );
|
88 |
+
if ( $loop->post_count > DW_LIST_LIMIT ) {
|
89 |
+
$custom_condition_select_style = DW_LIST_STYLE;
|
90 |
+
}
|
91 |
+
|
92 |
+
$cpmap = getCPostChilds($type, array(), 0, array());
|
93 |
+
|
94 |
+
// Output
|
95 |
+
echo '<h4><b>' . __('Custom Post Type', DW_L10N_DOMAIN) . ' <em>' . $ctid->label . '</em></b> ' . ( count($opt_custom) > 0 ? ' <span class="hasoptions">*</span>' : '' ) . ( $DW->wpml ? $wpml_icon : '' ) . '</h4>';
|
96 |
+
echo '<div class="dynwid_conf">';
|
97 |
+
echo __('Show widget on', DW_L10N_DOMAIN) . ' ' . $ctid->label . '? ' . ( $ctid->hierarchical ? '<img src="' . $DW->plugin_url . 'img/info.gif" alt="info" onclick="divToggle(\'custom_' . $type . '\');" />' : '' ) . '<br />';
|
98 |
+
echo '<input type="hidden" name="post_types[]" value="' . $type . '" />';
|
99 |
+
$DW->dumpOpt($opt_custom);
|
100 |
+
|
101 |
+
if ( $ctid->hierarchical ) {
|
102 |
+
echo '<div>';
|
103 |
+
echo '<div id="custom_' . $type . '" class="infotext">';
|
104 |
+
echo $childs_infotext;
|
105 |
+
echo '</div>';
|
106 |
+
echo '</div>';
|
107 |
+
}
|
108 |
+
|
109 |
+
echo '<input type="radio" name="' . $type . '" value="yes" id="' . $type . '-yes" ' . ( isset($custom_yes_selected) ? $custom_yes_selected : '' ) . ' /> <label for="' . $type . '-yes">' . __('Yes') . '</label> ';
|
110 |
+
echo '<input type="radio" name="' . $type . '" value="no" id="' . $type . '-no" ' . ( isset($custom_no_selected) ? $custom_no_selected : '' ) . ' /> <label for="' . $type . '-no">' . __('No') . '</label><br />';
|
111 |
+
|
112 |
+
echo __('Except for', DW_L10N_DOMAIN) . ':<br />';
|
113 |
+
echo '<div id="' . $type . '-select" class="condition-select" ' . ( isset($custom_condition_select_style) ? $custom_condition_select_style : '' ) . '>';
|
114 |
+
|
115 |
+
echo '<div style="position:relative;left:-15px">';
|
116 |
+
prtCPost($type, $ctid, $cpmap, $custom_act, $custom_childs_act);
|
117 |
+
echo '</div>';
|
118 |
+
|
119 |
+
echo '</div>';
|
120 |
+
echo '</div><!-- end dynwid_conf -->';
|
121 |
+
}
|
122 |
+
|
123 |
+
// Custom Post Type Archives
|
124 |
+
if ( function_exists('is_post_type_archive') ) {
|
125 |
+
$cp_archive_yes_selected = 'checked="checked"';
|
126 |
+
$opt_cp_archive = $DW->getOptions($_GET['id'], 'cp_archive');
|
127 |
+
if ( count($opt_cp_archive) > 0 ) {
|
128 |
+
$cp_archive_act = array();
|
129 |
+
foreach ( $opt_cp_archive as $cp_archive_condition ) {
|
130 |
+
if ( $cp_archive_condition['name'] == 'default' || empty($cp_archive_condition['name']) ) {
|
131 |
+
$cp_archive_default = $cp_archive_condition['value'];
|
132 |
+
} else {
|
133 |
+
$cp_archive_act[ ] = $cp_archive_condition['name'];
|
134 |
+
}
|
135 |
+
}
|
136 |
+
|
137 |
+
if ( $cp_archive_default == '0' ) {
|
138 |
+
$cp_archive_no_selected = $cp_archive_yes_selected;
|
139 |
+
unset($cp_archive_yes_selected);
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
if ( count($post_types) > DW_LIST_LIMIT ) {
|
144 |
+
$cp_archive_condition_select_style = DW_LIST_STYLE;
|
145 |
+
}
|
146 |
+
|
147 |
+
echo '<h4><b>' . __('Custom Post Type Archives', DW_L10N_DOMAIN) . '</b> ' . ( count($opt_cp_archive) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ) . '</h4>';
|
148 |
+
echo '<div class="dynwid_conf">';
|
149 |
+
echo __('Show widget on Custom Post Type Archives', DW_L10N_DOMAIN) . '?<br />';
|
150 |
+
$DW->dumpOpt($opt_cp_archive);
|
151 |
+
|
152 |
+
echo '<input type="radio" name="cp_archive" value="yes" id="cp_archive-yes" ' . ( isset($cp_archive_yes_selected) ? $cp_archive_yes_selected : '' ) . ' /> <label for="cp_archive-yes">' . __('Yes') . '</label> ';
|
153 |
+
echo '<input type="radio" name="cp_archive" value="no" id="cp_archive-no" ' . ( isset($cp_archive_no_selected) ? $cp_archive_no_selected : '' ) . ' /> <label for="cp_archive-no">' . __('No') . '</label><br />';
|
154 |
+
|
155 |
+
echo __('Except for', DW_L10N_DOMAIN) . ':<br />';
|
156 |
+
echo '<div id="cp_archive-select" class="condition-select" ' . ( isset($cp_archive_condition_select_style) ? $cp_archive_condition_select_style : '' ) . '>';
|
157 |
+
foreach ( $post_types as $type => $ctid ){
|
158 |
+
echo '<input type="checkbox" id="cp_archive_act_' . $type . '" name="cp_archive_act[]" value="' . $type . '"' . ( count($cp_archive_act) > 0 && in_array($type, $cp_archive_act) ? 'checked="checked"' : '') . ' /> <label for="cp_archive_act_' . $type . '">' . $ctid->label . '</label><br />';
|
159 |
+
}
|
160 |
+
echo '</div>';
|
161 |
+
echo '</div><!-- end dynwid_conf -->';
|
162 |
+
}
|
163 |
+
} // end version compare >= WP 3.0
|
164 |
+
?>
|
165 |
+
|
mods/date_module.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Date Module
|
4 |
+
*
|
5 |
+
* @version $Id: date_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$date_yes_selected = 'checked="checked"';
|
10 |
+
$opt_date = $DW->getOptions($_GET['id'], 'date');
|
11 |
+
if ( count($opt_date) > 0 ) {
|
12 |
+
foreach ( $opt_date as $value ) {
|
13 |
+
switch ( $value['name'] ) {
|
14 |
+
case 'date_start':
|
15 |
+
$date_start = $value['value'];
|
16 |
+
break;
|
17 |
+
|
18 |
+
case 'date_end':
|
19 |
+
$date_end = $value['value'];
|
20 |
+
break;
|
21 |
+
}
|
22 |
+
}
|
23 |
+
|
24 |
+
$date_no_selected = $date_yes_selected;
|
25 |
+
unset($date_yes_selected);
|
26 |
+
}
|
27 |
+
?>
|
28 |
+
|
29 |
+
<h4><b><?php _e('Date'); ?></b><?php echo ( count($opt_date) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
30 |
+
<div class="dynwid_conf">
|
31 |
+
<?php _e('Show widget always?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN) ?>" onclick="divToggle('date');" /><br />
|
32 |
+
<?php $DW->dumpOpt($opt_date); ?>
|
33 |
+
<div>
|
34 |
+
<div id="date" class="infotext">
|
35 |
+
<?php _e('Next to the above role option, the date option is also very powerfull. You\'ve been warned!', DW_L10N_DOMAIN); ?><br />
|
36 |
+
<?php _e('Enter dates in the YYYY-MM-DD format. You can also use the calender by clicking on the', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/calendar.gif" alt="Calendar" /><br />
|
37 |
+
<?php _e('Date ranges can be made by entering a From AND a To date<br />
|
38 |
+
When you want the widget to be displayed from a specific date, only fill in the From date<br />
|
39 |
+
When you want the widget to stop displaying on a specific date, only fill in the To date.
|
40 |
+
', DW_L10N_DOMAIN); ?>
|
41 |
+
</div>
|
42 |
+
</div>
|
43 |
+
<input type="radio" name="date" value="yes" id="date-yes" <?php echo ( isset($date_yes_selected) ? $date_yes_selected : '' ); ?> onclick="swTxt(cDate, true);" /> <label for="date-yes"><?php _e('Yes'); ?></label>
|
44 |
+
<input type="radio" name="date" value="no" id="date-no" <?php echo ( isset($date_no_selected) ? $date_no_selected : '' ); ?> onclick="swTxt(cDate, false)" /> <label for="date-no"><?php _e('No'); ?>, <?php _e('only', DW_L10N_DOMAIN); ?>:</label><br />
|
45 |
+
<div id="date-select" class="condition-select">
|
46 |
+
<table border="0" cellspacing="0" cellpadding="0">
|
47 |
+
<tr>
|
48 |
+
<td style="width:45px;"><?php _e('From', DW_L10N_DOMAIN); ?></td>
|
49 |
+
<td><input id="date_start" type="text" name="date_start" value="<?php echo ( isset($date_start) ? $date_start : '' ); ?>" size="10" maxlength="10" /> <img src="<?php echo $DW->plugin_url; ?>img/calendar.gif" alt="Calendar" onclick="showCalendar('date_start')" /></td>
|
50 |
+
</tr>
|
51 |
+
<tr>
|
52 |
+
<td style="width:45px;"><?php _e('To', DW_L10N_DOMAIN); ?></td>
|
53 |
+
<td><input id="date_end" type="text" name="date_end" value="<?php echo ( isset($date_end) ? $date_end : '' ); ?>" size="10" maxlength="10" /> <img src="<?php echo $DW->plugin_url; ?>img/calendar.gif" alt="Calendar" onclick="showCalendar('date_end')" /></td>
|
54 |
+
</tr>
|
55 |
+
</table>
|
56 |
+
</div>
|
57 |
+
</div><!-- end dynwid_conf -->
|
mods/error_module.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Error Module
|
4 |
+
*
|
5 |
+
* @version $Id: error_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$e404_yes_selected = 'checked="checked"';
|
10 |
+
$opt_e404 = $DW->getOptions($_GET['id'], 'e404');
|
11 |
+
if ( count($opt_e404) > 0 ) {
|
12 |
+
$e404_condition = $opt_e404[0]['value'];
|
13 |
+
if ( $e404_condition == '0' ) {
|
14 |
+
$e404_no_selected = $e404_yes_selected;
|
15 |
+
unset($e404_yes_selected);
|
16 |
+
}
|
17 |
+
}
|
18 |
+
?>
|
19 |
+
|
20 |
+
<h4><b><?php _e('Error Page', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_e404) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
21 |
+
<div class="dynwid_conf">
|
22 |
+
<?php _e('Show widget on the error page?', DW_L10N_DOMAIN); ?><br />
|
23 |
+
<?php $DW->dumpOpt($opt_e404); ?>
|
24 |
+
<input type="radio" name="e404" value="yes" id="e404-yes" <?php echo ( isset($e404_yes_selected) ? $e404_yes_selected : '' ); ?> /> <label for="e404-yes"><?php _e('Yes'); ?></label>
|
25 |
+
<input type="radio" name="e404" value="no" id="e404-no" <?php echo ( isset($e404_no_selected) ? $e404_no_selected : '' ); ?> /> <label for="e404-no"><?php _e('No'); ?></label>
|
26 |
+
</div><!-- end dynwid_conf -->
|
mods/frontpage_module.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Front Page Module
|
4 |
+
*
|
5 |
+
* @version $Id: frontpage_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( get_option('show_on_front') != 'page' ) {
|
10 |
+
$frontpage_yes_selected = 'checked="checked"';
|
11 |
+
$opt_frontpage = $DW->getOptions($_GET['id'], 'front-page');
|
12 |
+
if ( count($opt_frontpage) > 0 ) {
|
13 |
+
$frontpage_condition = $opt_frontpage[0]['value'];
|
14 |
+
if ( $frontpage_condition == '0' ) {
|
15 |
+
$frontpage_no_selected = $frontpage_yes_selected;
|
16 |
+
unset($frontpage_yes_selected);
|
17 |
+
}
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
<h4><b><?php _e('Front Page', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_frontpage) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
21 |
+
<div class="dynwid_conf">
|
22 |
+
<?php _e('Show widget on the front page?', DW_L10N_DOMAIN) ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" onclick="divToggle('frontpage');" /><br />
|
23 |
+
<?php $DW->dumpOpt($opt_frontpage); ?>
|
24 |
+
<div>
|
25 |
+
<div id="frontpage" class="infotext">
|
26 |
+
<?php _e('This option only applies when your front page is set to display your latest posts (See Settings > Reading).<br />
|
27 |
+
When a static page is set, you can use the options for the static pages below.
|
28 |
+
', DW_L10N_DOMAIN); ?>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<input type="radio" name="front-page" value="yes" id="front-page-yes" <?php echo ( isset($frontpage_yes_selected) ? $frontpage_yes_selected : '' ); ?> /> <label for="front-page-yes"><?php _e('Yes'); ?></label>
|
32 |
+
<input type="radio" name="front-page" value="no" id="front-page-no" <?php echo ( isset($frontpage_no_selected) ? $frontpage_no_selected : '' ); ?> /> <label for="front-page-no"><?php _e('No'); ?></label>
|
33 |
+
</div><!-- end dynwid_conf -->
|
34 |
+
<?php } ?>
|
mods/pages_module.php
ADDED
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Pages Module
|
4 |
+
*
|
5 |
+
* @version $Id: pages_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
define('DW_PAGE_LIMIT', 500);
|
10 |
+
|
11 |
+
function getPageChilds($arr, $id, $i) {
|
12 |
+
$pg = get_pages('child_of=' . $id);
|
13 |
+
foreach ($pg as $p ) {
|
14 |
+
if (! in_array($p->ID, $i) ) {
|
15 |
+
$i[ ] = $p->ID;
|
16 |
+
$arr[$p->ID] = array();
|
17 |
+
$a = &$arr[$p->ID];
|
18 |
+
$a = getPageChilds($a, $p->ID, &$i);
|
19 |
+
}
|
20 |
+
}
|
21 |
+
return $arr;
|
22 |
+
}
|
23 |
+
|
24 |
+
function prtPgs($pages, $page_act, $page_childs_act, $static_page) {
|
25 |
+
foreach ( $pages as $pid => $childs ) {
|
26 |
+
$page = get_page($pid);
|
27 |
+
|
28 |
+
echo '<div style="position:relative;left:15px;">';
|
29 |
+
echo '<input type="checkbox" id="page_act_' . $page->ID . '" name="page_act[]" value="' . $page->ID . '" ' . ( isset($page_act) && count($page_act) > 0 && in_array($page->ID, $page_act) ? 'checked="checked"' : '' ) . ' onchange="chkChild(' . $pid . ')" /> <label for="page_act_' . $page->ID . '">' . $page->post_title . ' ' . ( get_option('show_on_front') == 'page' && isset($static_page[$page->ID]) ? '(' . $static_page[$page->ID] . ')' : '' ) . '</label><br />';
|
30 |
+
|
31 |
+
echo '<div style="position:relative;left:15px;">';
|
32 |
+
echo '<input type="checkbox" id="child_' . $pid . '" name="page_childs_act[]" value="' . $pid . '" ' . ( isset($page_childs_act) && count($page_childs_act) > 0 && in_array($pid, $page_childs_act) ? 'checked="checked"' : '' ) . ' onchange="chkParent(' . $pid . ')" /> <label for="child_' . $pid . '"><em>' . __('All childs', DW_L10N_DOMAIN) . '</em></label><br />';
|
33 |
+
echo '</div>';
|
34 |
+
|
35 |
+
if ( count($childs) > 0 ) {
|
36 |
+
prtPgs($childs, $page_act, $page_childs_act, $static_page);
|
37 |
+
}
|
38 |
+
echo '</div>';
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
function lsPages($pages, $static_page, $page_act) {
|
43 |
+
foreach ( $pages as $page ) {
|
44 |
+
echo '<input type="checkbox" id="page_act_' . $page->ID . '" name="page_act[]" value="' . $page->ID . '" ' . ( count($page_act) > 0 && in_array($page->ID, $page_act) ? 'checked="checked"' : '' ) . ' /> <label for="page_act_' . $page->ID . '">' . $page->post_title . ' ' . ( get_option('show_on_front') == 'page' && isset($static_page[$page->ID]) ? '(' . $static_page[$page->ID] . ')' : '' ) . '</label><br />';
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
$page_yes_selected = 'checked="checked"';
|
49 |
+
$opt_page = $DW->getOptions($_GET['id'], 'page');
|
50 |
+
if ( count($opt_page) > 0 ) {
|
51 |
+
$page_act = array();
|
52 |
+
foreach ( $opt_page as $page_condition ) {
|
53 |
+
if ( $page_condition['maintype'] == 'page' ) {
|
54 |
+
if ( $page_condition['name'] == 'default' || empty($page_condition['name']) ) {
|
55 |
+
$page_default = $page_condition['value'];
|
56 |
+
} else {
|
57 |
+
$page_act[ ] = $page_condition['name'];
|
58 |
+
}
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
if ( $page_default == '0' ) {
|
63 |
+
$page_no_selected = $page_yes_selected;
|
64 |
+
unset($page_yes_selected);
|
65 |
+
}
|
66 |
+
|
67 |
+
// -- Childs
|
68 |
+
$opt_page_childs = $DW->getOptions($_GET['id'], 'page-childs');
|
69 |
+
if ( count($opt_page_childs) > 0 ) {
|
70 |
+
$page_childs_act = array();
|
71 |
+
foreach ( $opt_page_childs as $child_condition ) {
|
72 |
+
if ( $child_condition['name'] != 'default' ) {
|
73 |
+
$page_childs_act[ ] = $child_condition['name'];
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
$pages = get_pages();
|
80 |
+
$num_pages = count($pages);
|
81 |
+
if ( $num_pages > DW_LIST_LIMIT ) {
|
82 |
+
$page_condition_select_style = DW_LIST_STYLE;
|
83 |
+
}
|
84 |
+
|
85 |
+
$static_page = array();
|
86 |
+
if ( get_option('show_on_front') == 'page' ) {
|
87 |
+
if ( get_option('page_on_front') == get_option('page_for_posts') ) {
|
88 |
+
$id = get_option('page_on_front');
|
89 |
+
$static_page[$id] = __('Front page', DW_L10N_DOMAIN) . ', ' . __('Posts page', DW_L10N_DOMAIN);
|
90 |
+
} else {
|
91 |
+
$id = get_option('page_on_front');
|
92 |
+
$static_page[$id] = __('Front page', DW_L10N_DOMAIN);
|
93 |
+
$id = get_option('page_for_posts');
|
94 |
+
$static_page[$id] = __('Posts page', DW_L10N_DOMAIN);
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
if ( $num_pages < DW_PAGE_LIMIT ) {
|
99 |
+
$pagemap = getPageChilds(array(), 0, array());
|
100 |
+
}
|
101 |
+
?>
|
102 |
+
<h4><b><?php _e('Pages'); ?></b> <?php echo ( count($opt_page) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ) . ( $DW->wpml ? $wpml_icon : '' ); ?></h4>
|
103 |
+
<div class="dynwid_conf">
|
104 |
+
<?php _e('Show widget default on static pages?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN); ?>" onclick="divToggle('pages');" /><br />
|
105 |
+
<?php $DW->dumpOpt($opt_page); ?>
|
106 |
+
<div>
|
107 |
+
<div id="pages" class="infotext">
|
108 |
+
<?php
|
109 |
+
if ( $num_pages < DW_PAGE_LIMIT ) {
|
110 |
+
$childs_infotext = __('Checking the "All childs" option, makes the exception rule apply
|
111 |
+
to the parent and all items under it in all levels. Also future items
|
112 |
+
under the parent. It\'s not possible to apply an exception rule to
|
113 |
+
"All childs" without the parent.', DW_L10N_DOMAIN);
|
114 |
+
} else {
|
115 |
+
$childs_infotext = __('Unfortunately the childs-function has been disabled
|
116 |
+
because you have more than 500 pages.', DW_L10N_DOMAIN);
|
117 |
+
}
|
118 |
+
echo $childs_infotext;
|
119 |
+
?>
|
120 |
+
</div>
|
121 |
+
</div>
|
122 |
+
<input type="radio" name="page" value="yes" id="page-yes" <?php echo ( isset($page_yes_selected) ? $page_yes_selected : '' ); ?> /> <label for="page-yes"><?php _e('Yes'); ?></label>
|
123 |
+
<input type="radio" name="page" value="no" id="page-no" <?php echo ( isset($page_no_selected) ? $page_no_selected : '' ); ?> /> <label for="page-no"><?php _e('No'); ?></label><br />
|
124 |
+
<?php _e('Except the page(s)', DW_L10N_DOMAIN); ?>:<br />
|
125 |
+
<div id="page-select" class="condition-select" <?php echo ( isset($page_condition_select_style) ? $page_condition_select_style : '' ); ?>>
|
126 |
+
<div style="position:relative;left:-15px">
|
127 |
+
<?php ( $num_pages < DW_PAGE_LIMIT ? prtPgs($pagemap, $page_act, $page_childs_act, $static_page) : lsPages($pages, $static_page, $page_act) ); ?>
|
128 |
+
</div>
|
129 |
+
</div>
|
130 |
+
</div><!-- end dynwid_conf -->
|
mods/role_module.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Role Module
|
4 |
+
*
|
5 |
+
* @version $Id: role_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$wp_roles = $GLOBALS['wp_roles'];
|
10 |
+
$roles = array_merge($wp_roles->role_names, array('anonymous' => __('Anonymous') . '|User role'));
|
11 |
+
$jsroles = array();
|
12 |
+
foreach ( $roles as $rid => $role ) {
|
13 |
+
$roles[esc_attr($rid)] = translate_user_role($role);
|
14 |
+
$jsroles[ ] = '\'role_act_' . esc_attr($rid) . '\''; // Prep for JS Array
|
15 |
+
}
|
16 |
+
if ( count($roles) > DW_LIST_LIMIT ) {
|
17 |
+
$role_condition_select_style = DW_LIST_STYLE;
|
18 |
+
}
|
19 |
+
|
20 |
+
$role_yes_selected = 'checked="checked"';
|
21 |
+
$opt_role = $DW->getOptions($_GET['id'], 'role');
|
22 |
+
if ( count($opt_role) > 0 ) {
|
23 |
+
$role_act = array();
|
24 |
+
foreach ( $opt_role as $role_condition ) {
|
25 |
+
if ( $role_condition['name'] == 'default' || empty($role_condition['name']) ) {
|
26 |
+
$role_default = $role_condition['value'];
|
27 |
+
} else {
|
28 |
+
$role_act[ ] = $role_condition['name'];
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
if ( $role_default == '0' ) {
|
33 |
+
$role_no_selected = $role_yes_selected;
|
34 |
+
unset($role_yes_selected);
|
35 |
+
}
|
36 |
+
}
|
37 |
+
?>
|
38 |
+
|
39 |
+
<h4><b><?php _e('Role'); ?></b><?php echo ( count($opt_role) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
40 |
+
<div class="dynwid_conf">
|
41 |
+
<?php _e('Show widget to everybody?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN) ?>" onclick="divToggle('role');" /><br />
|
42 |
+
<?php $DW->dumpOpt($opt_role); ?>
|
43 |
+
<div>
|
44 |
+
<div id="role" class="infotext">
|
45 |
+
<?php _e('Setting options by role is very powerfull. It can override all other options!<br />
|
46 |
+
Users who are not logged in, get the <em>Anonymous</em> role.', DW_L10N_DOMAIN); ?>
|
47 |
+
</div>
|
48 |
+
</div>
|
49 |
+
<input type="radio" name="role" value="yes" id="role-yes" <?php echo ( isset($role_yes_selected) ? $role_yes_selected : '' ); ?> onclick="swChb(cRole, true);" /> <label for="role-yes"><?php _e('Yes'); ?></label>
|
50 |
+
<input type="radio" name="role" value="no" id="role-no" <?php echo ( isset($role_no_selected) ? $role_no_selected : '' ); ?> onclick="swChb(cRole, false)" /> <label for="role-no"><?php _e('No'); ?>, <?php _e('only to', DW_L10N_DOMAIN); ?>:</label><br />
|
51 |
+
<div id="role-select" class="condition-select" <?php echo ( isset($role_condition_select_style) ? $role_condition_select_style : '' ); ?>>
|
52 |
+
<?php foreach ( $roles as $rid => $role ) { ?>
|
53 |
+
<input type="checkbox" id="role_act_<?php echo $rid; ?>" name="role_act[]" value="<?php echo $rid; ?>" <?php echo ( isset($role_act) && count($role_act) > 0 && in_array($rid, $role_act) ) ? 'checked="checked"' : ''; ?> /> <label for="role_act_<?php echo $rid; ?>"><?php echo $role; ?></label><br />
|
54 |
+
<?php } ?>
|
55 |
+
</div>
|
56 |
+
</div><!-- end dynwid_conf -->
|
mods/search_module.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Search Module
|
5 |
+
*
|
6 |
+
* @version $Id: search_module.php 348295 2011-02-20 20:13:21Z qurl $
|
7 |
+
* @copyright 2011 Jacco Drabbe
|
8 |
+
*/
|
9 |
+
|
10 |
+
$search_yes_selected = 'checked="checked"';
|
11 |
+
$opt_search = $DW->getOptions($_GET['id'], 'search');
|
12 |
+
if ( count($opt_search) > 0 ) {
|
13 |
+
$search_condition = $opt_search[0]['value'];
|
14 |
+
if ( $search_condition == '0' ) {
|
15 |
+
$search_no_selected = $search_yes_selected;
|
16 |
+
unset($search_yes_selected);
|
17 |
+
}
|
18 |
+
}
|
19 |
+
?>
|
20 |
+
|
21 |
+
<h4><b><?php _e('Search Page', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_search) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
22 |
+
<div class="dynwid_conf">
|
23 |
+
<?php _e('Show widget on the search page?', DW_L10N_DOMAIN); ?><br />
|
24 |
+
<?php $DW->dumpOpt($opt_search); ?>
|
25 |
+
<input type="radio" name="search" value="yes" id="search-yes" <?php echo ( isset($search_yes_selected) ? $search_yes_selected : '' ); ?> /> <label for="search-yes"><?php _e('Yes'); ?></label>
|
26 |
+
<input type="radio" name="search" value="no" id="search-no" <?php echo ( isset($search_no_selected) ? $search_no_selected : '' ); ?> /> <label for="search-no"><?php _e('No'); ?></label>
|
27 |
+
</div><!-- end dynwid_conf -->
|
mods/single_module.php
ADDED
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Single Post Module
|
4 |
+
*
|
5 |
+
* @version $Id: single_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$single_yes_selected = 'checked="checked"';
|
10 |
+
$single_condition = '1';
|
11 |
+
$opt_single = $DW->getOptions($_GET['id'], 'single');
|
12 |
+
if ( count($opt_single) > 0 ) {
|
13 |
+
foreach ( $opt_single as $widget ) {
|
14 |
+
if ( $widget['maintype'] == 'single' ) {
|
15 |
+
$single_condition = $widget['value'];
|
16 |
+
}
|
17 |
+
}
|
18 |
+
if ( $single_condition == '0' ) {
|
19 |
+
$single_no_selected = $single_yes_selected;
|
20 |
+
unset($single_yes_selected);
|
21 |
+
}
|
22 |
+
}
|
23 |
+
|
24 |
+
// -- Author
|
25 |
+
$authors = get_users_of_blog();
|
26 |
+
if ( count($authors) > DW_LIST_LIMIT ) {
|
27 |
+
$author_condition_select_style = DW_LIST_STYLE;
|
28 |
+
}
|
29 |
+
|
30 |
+
$js_count = 0;
|
31 |
+
$opt_single_author = $DW->getOptions($_GET['id'], 'single-author');
|
32 |
+
$js_author_array = array();
|
33 |
+
if ( count($opt_single_author) > 0 ) {
|
34 |
+
$js_count = $js_count + count($opt_single_author) - 1;
|
35 |
+
$single_author_act = array();
|
36 |
+
foreach ( $opt_single_author as $single_author_condition ) {
|
37 |
+
$single_author_act[ ] = $single_author_condition['name'];
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
// -- Category
|
42 |
+
$category = get_categories( array('hide_empty' => FALSE) );
|
43 |
+
if ( count($category) > DW_LIST_LIMIT ) {
|
44 |
+
$category_condition_select_style = DW_LIST_STYLE;
|
45 |
+
}
|
46 |
+
|
47 |
+
$opt_single_category = $DW->getOptions($_GET['id'], 'single-category');
|
48 |
+
$js_category_array = array();
|
49 |
+
if ( count($opt_single_category) > 0 ) {
|
50 |
+
$js_count = $js_count + count($opt_single_category) - 1;
|
51 |
+
$single_category_act = array();
|
52 |
+
foreach ( $opt_single_category as $single_category_condition ) {
|
53 |
+
$single_category_act[ ] = $single_category_condition['name'];
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
// -- Individual / Posts / Tags
|
58 |
+
$individual = FALSE;
|
59 |
+
$opt_individual = $DW->getOptions($_GET['id'], 'individual');
|
60 |
+
$single_post_act = array();
|
61 |
+
$single_tag_act = array();
|
62 |
+
|
63 |
+
if ( count($opt_individual) > 0 ) {
|
64 |
+
$individual_condition = $opt_individual[0]['value'];
|
65 |
+
if ( $individual_condition == 1 ) {
|
66 |
+
$individual = TRUE;
|
67 |
+
|
68 |
+
$opt_single_post = $DW->getOptions($_GET['id'], 'single-post');
|
69 |
+
if ( count($opt_single_post) > 0 ) {
|
70 |
+
foreach ( $opt_single_post as $single_post_condition ) {
|
71 |
+
if ( $single_post_condition['name'] != 'default' ) {
|
72 |
+
$single_post_act[ ] = $single_post_condition['name'];
|
73 |
+
}
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
$opt_single_tag = $DW->getOptions($_GET['id'], 'single-tag');
|
78 |
+
if ( count($opt_single_tag) > 0 ) {
|
79 |
+
foreach ( $opt_single_tag as $single_tag_condition ) {
|
80 |
+
if ( $single_tag_condition['name'] != 'default' ) {
|
81 |
+
$single_tag_act[ ] = $single_tag_condition['name'];
|
82 |
+
}
|
83 |
+
}
|
84 |
+
}
|
85 |
+
$count_individual = '(' . __('Posts: ', DW_L10N_DOMAIN) . count($single_post_act) . ', ' . __('Tags: ', DW_L10N_DOMAIN) . count($single_tag_act) . ')';
|
86 |
+
}
|
87 |
+
}
|
88 |
+
?>
|
89 |
+
|
90 |
+
<h4><b><?php _e('Single Posts', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_single) > 0 || count($opt_single_author) > 0 || count($opt_single_category) > 0 || count($opt_single_post) > 0 || count($opt_single_tag) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
91 |
+
<div class="dynwid_conf">
|
92 |
+
<?php _e('Show widget default on single posts?', DW_L10N_DOMAIN) ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN) ?>" onclick="divToggle('single')" /><br />
|
93 |
+
<?php $DW->dumpOpt($opt_single); ?>
|
94 |
+
<div>
|
95 |
+
<div id="single" class="infotext">
|
96 |
+
<?php _e('When you use an author <b>AND</b> a category exception, both rules in the condition must be met. Otherwise the exception rule won\'t be applied.
|
97 |
+
If you want to use the rules in a logical OR condition. Add the same widget again and apply the other rule to that.
|
98 |
+
', DW_L10N_DOMAIN); ?>
|
99 |
+
</div>
|
100 |
+
</div>
|
101 |
+
<input type="radio" name="single" value="yes" id="single-yes" <?php echo ( isset($single_yes_selected) ? $single_yes_selected : '' ); ?> /> <label for="single-yes"><?php _e('Yes'); ?></label>
|
102 |
+
<input type="radio" name="single" value="no" id="single-no" <?php echo ( isset($single_no_selected) ? $single_no_selected : '' ); ?> /> <label for="single-no"><?php _e('No'); ?></label><br />
|
103 |
+
<?php $DW->dumpOpt($opt_individual); ?>
|
104 |
+
<input type="checkbox" id="individual" name="individual" value="1" <?php echo ( $individual ) ? 'checked="checked"' : ''; ?> onclick="chkInPosts()" />
|
105 |
+
<label for="individual"><?php _e('Make exception rule available to individual posts and tags.', DW_L10N_DOMAIN) ?> <?php echo ( isset($count_individual) ? $count_individual : '' ); ?></label>
|
106 |
+
<img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN) ?>" onclick="divToggle('individual_post_tag')" />
|
107 |
+
<div>
|
108 |
+
<div id="individual_post_tag" class="infotext">
|
109 |
+
<?php _e('When you enable this option, you have the ability to apply the exception rule for <em>Single Posts</em> to tags and individual posts.
|
110 |
+
You can set the exception rule for tags in the single Edit Tag Panel (go to <a href="edit-tags.php?taxonomy=post_tag">Post Tags</a>,
|
111 |
+
click a tag), For individual posts in the <a href="post-new.php">New</a> or <a href="edit.php">Edit</a> Posts panel.
|
112 |
+
Exception rules for tags and individual posts in any combination work independantly, but will always be counted as one exception.<br />
|
113 |
+
Please note when exception rules are set for Author and/or Category, these will be removed.
|
114 |
+
', DW_L10N_DOMAIN); ?>
|
115 |
+
</div>
|
116 |
+
</div>
|
117 |
+
<?php foreach ( $single_post_act as $singlepost ) { ?>
|
118 |
+
<input type="hidden" name="single_post_act[]" value="<?php echo $singlepost; ?>" />
|
119 |
+
<?php } ?>
|
120 |
+
<?php foreach ( $single_tag_act as $tag ) { ?>
|
121 |
+
<input type="hidden" name="single_tag_act[]" value="<?php echo $tag; ?>" />
|
122 |
+
<?php } ?>
|
123 |
+
<table border="0" cellspacing="0" cellpadding="0">
|
124 |
+
<tr>
|
125 |
+
<td valign="top">
|
126 |
+
<?php _e('Except the posts by author', DW_L10N_DOMAIN); ?>:
|
127 |
+
<?php $DW->dumpOpt($opt_single_author); ?>
|
128 |
+
<div id="single-author-select" class="condition-select" <?php echo ( isset($author_condition_select_style) ? $author_condition_select_style : '' ); ?>>
|
129 |
+
<?php foreach ( $authors as $author ) { ?>
|
130 |
+
<?php $js_author_array[ ] = '\'single_author_act_' . $author->ID . '\''; ?>
|
131 |
+
<input type="checkbox" id="single_author_act_<?php echo $author->ID; ?>" name="single_author_act[]" value="<?php echo $author->ID; ?>" <?php echo ( isset($single_author_act) && count($single_author_act) > 0 && in_array($author->ID,$single_author_act) ) ? 'checked="checked"' : ''; ?> onclick="ci('single_author_act_<?php echo $author->ID; ?>')" /> <label for="single_author_act_<?php echo $author->ID; ?>"><?php echo $author->display_name; ?></label><br />
|
132 |
+
<?php } ?>
|
133 |
+
</div>
|
134 |
+
</td>
|
135 |
+
<td style="width:10px"></td>
|
136 |
+
<td valign="top">
|
137 |
+
<?php _e('Except the posts in category', DW_L10N_DOMAIN); ?>: <?php echo ( $DW->wpml ? $wpml_icon : '' ); ?>
|
138 |
+
<?php $DW->dumpOpt($opt_single_category); ?>
|
139 |
+
<div id="single-category-select" class="condition-select" <?php echo ( isset($category_condition_select_style) ? $category_condition_select_style : '' ); ?>>
|
140 |
+
<?php foreach ( $category as $cat ) { ?>
|
141 |
+
<?php $js_category_array[ ] = '\'single_cat_act_' . $cat->cat_ID . '\''; ?>
|
142 |
+
<input type="checkbox" id="single_cat_act_<?php echo $cat->cat_ID; ?>" name="single_category_act[]" value="<?php echo $cat->cat_ID; ?>" <?php echo ( isset($single_category_act) && count($single_category_act) > 0 && in_array($cat->cat_ID,$single_category_act) ) ? 'checked="checked"' : ''; ?> onclick="ci('single_cat_act_<?php echo $cat->cat_ID; ?>')" /> <label for="single_cat_act_<?php echo $cat->cat_ID; ?>"><?php echo $cat->name; ?></label><br />
|
143 |
+
<?php } ?>
|
144 |
+
</div>
|
145 |
+
</td>
|
146 |
+
</tr>
|
147 |
+
</table>
|
148 |
+
</div><!-- end dynwid_conf -->
|
mods/useragent_module.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* UserAgent Module
|
4 |
+
*
|
5 |
+
* @version $Id: useragent_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
$useragents = array(
|
10 |
+
'gecko' => 'Firefox' . ' ' . __('(and other Gecko based)', DW_L10N_DOMAIN),
|
11 |
+
'msie' => 'Internet Explorer',
|
12 |
+
'opera' => 'Opera',
|
13 |
+
'ns' => 'Netscape 4',
|
14 |
+
'safari' => 'Safari',
|
15 |
+
'chrome' => 'Chrome',
|
16 |
+
'undef' => __('Other / Unknown / Not detected', DW_L10N_DOMAIN)
|
17 |
+
);
|
18 |
+
if ( count($useragents) > DW_LIST_LIMIT ) {
|
19 |
+
$browser_condition_select_style = DW_LIST_STYLE;
|
20 |
+
}
|
21 |
+
|
22 |
+
$browser_yes_selected = 'checked="checked"';
|
23 |
+
$opt_browser = $DW->getOptions($_GET['id'], 'browser');
|
24 |
+
if ( count($opt_browser) > 0 ) {
|
25 |
+
$browser_act = array();
|
26 |
+
foreach ( $opt_browser as $browser_condition ) {
|
27 |
+
if ( $browser_condition['name'] == 'default' || empty($browser_condition['name']) ) {
|
28 |
+
$browser_default = $browser_condition['value'];
|
29 |
+
} else {
|
30 |
+
$browser_act[ ] = $browser_condition['name'];
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
if ( $browser_default == '0' ) {
|
35 |
+
$browser_no_selected = $browser_yes_selected;
|
36 |
+
unset($browser_yes_selected);
|
37 |
+
}
|
38 |
+
}
|
39 |
+
?>
|
40 |
+
|
41 |
+
<h4><b><?php _e('Browser', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_browser) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
42 |
+
<div class="dynwid_conf">
|
43 |
+
<?php _e('Show widget with all browsers?', DW_L10N_DOMAIN) ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN) ?>" onclick="divToggle('browser');" /><br />
|
44 |
+
<?php $DW->dumpOpt($opt_browser); ?>
|
45 |
+
<div>
|
46 |
+
<div id="browser" class="infotext">
|
47 |
+
<?php _e('Browser detection is never 100% accurate.', DW_L10N_DOMAIN); ?>
|
48 |
+
</div>
|
49 |
+
</div>
|
50 |
+
<input type="radio" name="browser" value="yes" id="browser-yes" <?php echo ( isset($browser_yes_selected) ? $browser_yes_selected : '' ); ?> /> <label for="browser-yes"><?php _e('Yes'); ?></label>
|
51 |
+
<input type="radio" name="browser" value="no" id="browser-no" <?php echo ( isset($browser_no_selected) ? $browser_no_selected : '' ); ?> /> <label for="browser-no"><?php _e('No'); ?></label><br />
|
52 |
+
<?php _e('Except the browser(s)', DW_L10N_DOMAIN); ?>:<br />
|
53 |
+
<div id="browser-select" class="condition-select" <?php echo ( isset($browser_condition_select_style) ? $browser_condition_select_style : '' ); ?>>
|
54 |
+
<?php foreach ( $useragents as $code => $agent ) { ?>
|
55 |
+
<input type="checkbox" id="browser_act_<?php echo $code; ?>" name="browser_act[]" value="<?php echo $code; ?>" <?php echo ( count($browser_act) > 0 && in_array($code, $browser_act) ) ? 'checked="checked"' : ''; ?> /> <label for="browser_act_<?php echo $code; ?>"><?php echo $agent; ?></label><br />
|
56 |
+
<?php } ?>
|
57 |
+
</div>
|
58 |
+
</div><!-- end dynwid_conf -->
|
mods/wpec_module.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPEC Module
|
4 |
+
* http://getshopped.org/
|
5 |
+
*
|
6 |
+
* @version $Id: wpec_module.php 348295 2011-02-20 20:13:21Z qurl $
|
7 |
+
* @copyright 2011 Jacco Drabbe
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( defined('WPSC_VERSION') ) {
|
11 |
+
$DW->wpsc = TRUE;
|
12 |
+
require_once(DW_PLUGIN . 'wpsc.php');
|
13 |
+
|
14 |
+
$wpsc_yes_selected = 'checked="checked"';
|
15 |
+
$opt_wpsc = $DW->getOptions($_GET['id'], 'wpsc');
|
16 |
+
if ( count($opt_wpsc) > 0 ) {
|
17 |
+
$wpsc_act = array();
|
18 |
+
foreach ( $opt_wpsc as $wpsc_condition ) {
|
19 |
+
if ( $wpsc_condition['name'] == 'default' || empty($wpsc_condition['name']) ) {
|
20 |
+
$wpsc_default = $wpsc_condition['value'];
|
21 |
+
} else {
|
22 |
+
$wpsc_act[ ] = $wpsc_condition['name'];
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
if ( $wpsc_default == '0' ) {
|
27 |
+
$wpsc_no_selected = $wpsc_yes_selected;
|
28 |
+
unset($wpsc_yes_selected);
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
$wpsc = dw_wpsc_get_categories();
|
33 |
+
if ( count($wpsc) > DW_LIST_LIMIT ) {
|
34 |
+
$wpsc_condition_select_style = DW_LIST_STYLE;
|
35 |
+
}
|
36 |
+
?>
|
37 |
+
<h4><b><?php _e('WPSC Category', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_wpsc) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
38 |
+
<div class="dynwid_conf">
|
39 |
+
<?php _e('Show widget default on WPSC categories?', DW_L10N_DOMAIN); ?><br />
|
40 |
+
<?php $DW->dumpOpt($opt_wpsc); ?>
|
41 |
+
<input type="radio" name="wpsc" value="yes" id="wpsc-yes" <?php echo ( isset($wpsc_yes_selected) ? $wpsc_yes_selected : '' ); ?> /> <label for="wpsc-yes"><?php _e('Yes'); ?></label>
|
42 |
+
<input type="radio" name="wpsc" value="no" id="wpsc-no" <?php echo ( isset($wpsc_no_selected) ? $wpsc_no_selected : '' ); ?> /> <label for="wpsc-no"><?php _e('No'); ?></label><br />
|
43 |
+
<?php _e('Except the categories', DW_L10N_DOMAIN); ?>:<br />
|
44 |
+
<div id="wpsc-select" class="condition-select" <?php echo ( isset($wpsc_condition_select_style) ? $wpsc_condition_select_style : '' ); ?>>
|
45 |
+
<?php foreach ( $wpsc as $id => $cat ) { ?>
|
46 |
+
<input type="checkbox" id="wpsc_act_<?php echo $id; ?>" name="wpsc_act[]" value="<?php echo $id; ?>" <?php echo ( count($wpsc_act) > 0 && in_array($id, $wpsc_act) ) ? 'checked="checked"' : ''; ?> /> <label for="wpsc_act_<?php echo $id; ?>"><?php echo $cat; ?></label><br />
|
47 |
+
<?php } ?>
|
48 |
+
</div>
|
49 |
+
</div><!-- end dynwid_conf -->
|
50 |
+
<?php
|
51 |
+
} // end DW->wpsc
|
52 |
+
?>
|
mods/wpml_module.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPML Module
|
4 |
+
*
|
5 |
+
* @version $Id: wpml_module.php 348295 2011-02-20 20:13:21Z qurl $
|
6 |
+
* @copyright 2011 Jacco Drabbe
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( $DW->wpml ) {
|
10 |
+
$wpml_api = ICL_PLUGIN_PATH . DW_WPML_API;
|
11 |
+
require_once($wpml_api);
|
12 |
+
|
13 |
+
$wpml_yes_selected = 'checked="checked"';
|
14 |
+
$opt_wpml = $DW->getOptions($_GET['id'], 'wpml');
|
15 |
+
if ( count($opt_wpml) > 0 ) {
|
16 |
+
$wpml_act = array();
|
17 |
+
foreach ( $opt_wpml as $wpml_condition ) {
|
18 |
+
if ( $wpml_condition['name'] == 'default' || empty($wpml_condition['name']) ) {
|
19 |
+
$wpml_default = $wpml_condition['value'];
|
20 |
+
} else {
|
21 |
+
$wpml_act[ ] = $wpml_condition['name'];
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
if ( $wpml_default == '0' ) {
|
26 |
+
$wpml_no_selected = $wpml_yes_selected;
|
27 |
+
unset($wpml_yes_selected);
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
$wpml_langs = wpml_get_active_languages();
|
32 |
+
if ( count($wpml_langs) > DW_LIST_LIMIT ) {
|
33 |
+
$wpml_condition_select_style = DW_LIST_STYLE;
|
34 |
+
}
|
35 |
+
?>
|
36 |
+
|
37 |
+
<h4><b><?php _e('Language (WPML)', DW_L10N_DOMAIN); ?></b><?php echo ( count($opt_wpml) > 0 ? ' <img src="' . $DW->plugin_url . 'img/checkmark.gif" alt="Checkmark" />' : '' ); ?></h4>
|
38 |
+
<div class="dynwid_conf">
|
39 |
+
<?php _e('Show widget default on all languages?', DW_L10N_DOMAIN); ?> <img src="<?php echo $DW->plugin_url; ?>img/info.gif" alt="info" title="<?php _e('Click to toggle info', DW_L10N_DOMAIN) ?>" onclick="divToggle('wpml');" /><br /><br />
|
40 |
+
<?php $DW->dumpOpt($opt_wpml); ?>
|
41 |
+
<div>
|
42 |
+
<div id="wpml" class="infotext">
|
43 |
+
<?php _e('Using this option can override all other options.', DW_L10N_DOMAIN); ?><br />
|
44 |
+
</div>
|
45 |
+
</div>
|
46 |
+
<input type="radio" name="wpml" value="yes" id="wpml-yes" <?php echo ( isset($wpml_yes_selected) ? $wpml_yes_selected : '' ); ?> /> <label for="wpml-yes"><?php _e('Yes'); ?></label>
|
47 |
+
<input type="radio" name="wpml" value="no" id="wpml-no" <?php echo ( isset($wpml_no_selected) ? $wpml_no_selected : '' ); ?> /> <label for="wpml-no"><?php _e('No'); ?></label><br />
|
48 |
+
<?php _e('Except the languages', DW_L10N_DOMAIN); ?>:<br />
|
49 |
+
<div id="wpml-select" class="condition-select" <?php echo ( isset($wpml_condition_select_style) ? $wpml_condition_select_style : '' ); ?>>
|
50 |
+
<?php foreach ( $wpml_langs as $code => $lang ) { ?>
|
51 |
+
<input type="checkbox" id="wpml_act_<?php echo $lang['code']; ?>" name="wpml_act[]" value="<?php echo $lang['code']; ?>" <?php echo ( count($wpml_act) > 0 && in_array($lang['code'], $wpml_act) ) ? 'checked="checked"' : ''; ?> /> <label for="wpml_act_<?php echo $lang['code']; ?>"><?php echo $lang['display_name']; ?></label><br />
|
52 |
+
<?php } ?>
|
53 |
+
</div>
|
54 |
+
</div><!-- end dynwid_conf -->
|
55 |
+
<?php } ?>
|
plugin/bp.php
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* BuddyPress Plugin
|
5 |
+
* http://buddypress.org/
|
6 |
+
*
|
7 |
+
* @version $Id: bp.php 348295 2011-02-20 20:13:21Z qurl $
|
8 |
+
* @copyright 2011 Jacco Drabbe
|
9 |
+
*/
|
10 |
+
|
11 |
+
function dw_get_bp_components() {
|
12 |
+
$bp = &$GLOBALS['bp'];
|
13 |
+
$DW = &$GLOBALS['DW'];
|
14 |
+
$components = array();
|
15 |
+
|
16 |
+
if ( in_array('groups', $bp->active_components) ) {
|
17 |
+
$DW->bp_groups = TRUE;
|
18 |
+
}
|
19 |
+
foreach ( $bp->active_components as $c ) {
|
20 |
+
if ( $c == 'groups' ) {
|
21 |
+
$components[$c] = ucfirst($c) . ' (only main page)';
|
22 |
+
} else {
|
23 |
+
$components[$c] = ucfirst($c);
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
asort($components);
|
28 |
+
return $components;
|
29 |
+
}
|
30 |
+
|
31 |
+
function dw_get_bp_groups() {
|
32 |
+
$bp = &$GLOBALS['bp'];
|
33 |
+
$wpdb = &$GLOBALS['wpdb'];
|
34 |
+
|
35 |
+
$groups = array();
|
36 |
+
$table = $bp->groups->table_name;
|
37 |
+
$fields = array('slug', 'name');
|
38 |
+
$query = "SELECT " . implode(', ', $fields) . " FROM " . $table . " ORDER BY name";
|
39 |
+
$results = $wpdb->get_results($query);
|
40 |
+
|
41 |
+
foreach ( $results as $myrow ) {
|
42 |
+
$groups[$myrow->slug] = $myrow->name;
|
43 |
+
}
|
44 |
+
|
45 |
+
return $groups;
|
46 |
+
}
|
47 |
+
|
48 |
+
function is_dw_bp_component($id) {
|
49 |
+
$bp = &$GLOBALS['bp'];
|
50 |
+
|
51 |
+
$component = $bp->current_component;
|
52 |
+
if ( in_array($component, $id) ) {
|
53 |
+
return TRUE;
|
54 |
+
} else {
|
55 |
+
return FALSE;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
function is_dw_bp_group($id) {
|
60 |
+
$bp = &$GLOBALS['bp'];
|
61 |
+
|
62 |
+
$group = $bp->current_item;
|
63 |
+
if ( in_array($group, $id) ) {
|
64 |
+
return TRUE;
|
65 |
+
} else {
|
66 |
+
return FALSE;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
?>
|
plugin/wpml.php
CHANGED
@@ -3,8 +3,8 @@
|
|
3 |
* WordPress MultiLingual Plugin
|
4 |
* http://wpml.org/
|
5 |
*
|
6 |
-
*
|
7 |
-
* @
|
8 |
*/
|
9 |
|
10 |
function dw_wpml_get_id($content_id, $content_type = 'post_page') {
|
3 |
* WordPress MultiLingual Plugin
|
4 |
* http://wpml.org/
|
5 |
*
|
6 |
+
* @version $Id: wpml.php 348295 2011-02-20 20:13:21Z qurl $
|
7 |
+
* @copyright 2010 Jacco Drabbe
|
8 |
*/
|
9 |
|
10 |
function dw_wpml_get_id($content_id, $content_type = 'post_page') {
|
plugin/wpsc.php
CHANGED
@@ -3,20 +3,28 @@
|
|
3 |
* WordPress Shopping Cart / WordPress E-Commerce Plugin
|
4 |
* http://getshopped.org/
|
5 |
*
|
6 |
-
* @version $Id: wpsc.php
|
|
|
7 |
*/
|
8 |
|
9 |
function dw_wpsc_get_categories() {
|
10 |
-
|
|
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
|
22 |
return $categories;
|
@@ -24,12 +32,18 @@
|
|
24 |
|
25 |
function is_dw_wpsc_category($id) {
|
26 |
$wpsc_query = &$GLOBALS['wpsc_query'];
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
if ( is_int($id) ) {
|
29 |
$id = array($id);
|
30 |
}
|
31 |
|
32 |
-
if ( in_array($
|
33 |
return TRUE;
|
34 |
} else {
|
35 |
return FALSE;
|
3 |
* WordPress Shopping Cart / WordPress E-Commerce Plugin
|
4 |
* http://getshopped.org/
|
5 |
*
|
6 |
+
* @version $Id: wpsc.php 348295 2011-02-20 20:13:21Z qurl $
|
7 |
+
* @copyright 2011 Jacco Drabbe
|
8 |
*/
|
9 |
|
10 |
function dw_wpsc_get_categories() {
|
11 |
+
if ( version_compare(WPSC_VERSION, '3.8', '<' ) ) {
|
12 |
+
$wpdb = &$GLOBALS['wpdb'];
|
13 |
|
14 |
+
$categories = array();
|
15 |
+
$table = WPSC_TABLE_PRODUCT_CATEGORIES;
|
16 |
+
$fields = array('id', 'name');
|
17 |
+
$query = "SELECT " . implode(', ', $fields) . " FROM " . $table . " WHERE active = '1' ORDER BY name";
|
18 |
+
$results = $wpdb->get_results($query);
|
19 |
|
20 |
+
foreach ( $results as $myrow ) {
|
21 |
+
$categories[$myrow->id] = $myrow->name;
|
22 |
+
}
|
23 |
+
} else {
|
24 |
+
$category_list = get_terms( 'wpsc_product_category', 'hide_empty=0');
|
25 |
+
foreach ( $category_list as $cat ) {
|
26 |
+
$categories[$cat->term_id] = $cat->name;
|
27 |
+
}
|
28 |
}
|
29 |
|
30 |
return $categories;
|
32 |
|
33 |
function is_dw_wpsc_category($id) {
|
34 |
$wpsc_query = &$GLOBALS['wpsc_query'];
|
35 |
+
if ( version_compare(WPSC_VERSION, '3.8', '<') ) {
|
36 |
+
$category = $wpsc_query->category;
|
37 |
+
} else {
|
38 |
+
$term = get_term_by('slug', $wpsc_query->query_vars['term'], 'wpsc_product_category');
|
39 |
+
$category = $term->term_id;
|
40 |
+
}
|
41 |
|
42 |
if ( is_int($id) ) {
|
43 |
$id = array($id);
|
44 |
}
|
45 |
|
46 |
+
if ( in_array($category, $id) ) {
|
47 |
return TRUE;
|
48 |
} else {
|
49 |
return FALSE;
|
readme.txt
CHANGED
@@ -1,23 +1,25 @@
|
|
1 |
=== Plugin Name ===
|
2 |
Contributors: Qurl
|
3 |
Donate link:
|
4 |
-
Tags: widget, widgets, dynamic, sidebar, custom, rules, admin, condition, conditional tags
|
5 |
Requires at least: 2.9.1
|
6 |
-
Tested up to: 3.
|
7 |
-
Stable tag: 1.
|
8 |
|
9 |
Dynamic Widgets gives you full control on which pages your widgets will appear. It lets you dynamicly place the widgets on WordPress pages.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
-
Dynamic Widgets gives you full control on which pages your widgets will appear. It lets you dynamicly place the widgets on WordPress pages by setting conditional rules with just a few mouse clicks by role, dates, language (WPML), for the homepage, single posts, pages, authors, categories, archives, error page, search page
|
14 |
|
15 |
* Default widget display setting is supported for:
|
16 |
- User roles
|
17 |
- Dates
|
18 |
-
-
|
|
|
19 |
- Front page
|
20 |
- Single post pages
|
|
|
21 |
- Pages
|
22 |
- Author pages
|
23 |
- Category pages
|
@@ -25,25 +27,35 @@ Dynamic Widgets gives you full control on which pages your widgets will appear.
|
|
25 |
- Error Page
|
26 |
- Search Page
|
27 |
- Custom Post Types
|
|
|
28 |
- WP Shopping Cart / WP E-Commerce Categories
|
|
|
|
|
29 |
|
30 |
* Exceptions can be created for:
|
31 |
- User roles on role, including not logged in (anonymous) users
|
32 |
- Dates on from, to or range
|
33 |
-
-
|
|
|
34 |
- Single post pages on Author, Categories, Tags and/or Individual posts
|
35 |
- Pages on Page Title, including inheritance from hierarchical parents
|
36 |
- Author pages on Author
|
37 |
- Category pages on Category name
|
38 |
- Custom Posts Type on Custom post name, including inheritance from hierarchical parents
|
|
|
39 |
- WP Shopping Cart / WP E-Commerce Categories on Category name
|
|
|
|
|
40 |
|
41 |
* Plugin support for:
|
|
|
42 |
- WP MultiLingual (WPML)
|
43 |
- WP Shopping Cart / WP E-Commerce (WPSC / WPEC)
|
44 |
|
45 |
* Language files provided:
|
46 |
- French (fr_FR) by Alexis Nomine
|
|
|
|
|
47 |
|
48 |
== Installation ==
|
49 |
|
@@ -82,11 +94,15 @@ Yes, but only if you activate the plugin on a per site base. Network Activation
|
|
82 |
|
83 |
Did you save the options? If you did, you may try to hit the (i) icon a bit to the right and read the text which appears below.
|
84 |
|
|
|
|
|
|
|
|
|
85 |
= The plugin slows down the loading of a page dramatically. Can you do something about it? =
|
86 |
|
87 |
Try setting the plugin to the 'OLD' method. You can do this by clicking on the 'Advanced >' link at the bottom of the Widgets Overview page and check the box next to 'Use OLD method'. See if that helps. Setting the plugin using the 'OLD' method comes with a downside unfortunately. It may leave you behind with a visible empty sidebar.
|
88 |
|
89 |
-
= I want to check if the
|
90 |
|
91 |
Yes! You can switch between FILTER and OLD method without any loss of widgets configuration or whatsoever.
|
92 |
|
@@ -116,6 +132,26 @@ Please file a [bugreport](http://www.qurl.nl/dynamic-widgets/bugreport/). Please
|
|
116 |
|
117 |
== Changelog ==
|
118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
= Version 1.3.7 =
|
120 |
|
121 |
* Added more l10n text strings.
|
@@ -217,6 +253,10 @@ Please file a [bugreport](http://www.qurl.nl/dynamic-widgets/bugreport/). Please
|
|
217 |
|
218 |
* Added default widget display setting option for 'Not Found' Error (404) Page.
|
219 |
|
|
|
|
|
|
|
|
|
220 |
== Upgrade Notice ==
|
221 |
|
222 |
Be sure to deactivate Dynamic Widgets Plugin before installing the new version following steps 1 and 2 in the installation procedure. After the install you can reactivate the plugin.
|
1 |
=== Plugin Name ===
|
2 |
Contributors: Qurl
|
3 |
Donate link:
|
4 |
+
Tags: widget, widgets, dynamic, sidebar, custom, rules, admin, condition, conditional tags, wpml, wpec, buddypress
|
5 |
Requires at least: 2.9.1
|
6 |
+
Tested up to: 3.1
|
7 |
+
Stable tag: 1.4.0
|
8 |
|
9 |
Dynamic Widgets gives you full control on which pages your widgets will appear. It lets you dynamicly place the widgets on WordPress pages.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
+
Dynamic Widgets gives you full control on which pages your widgets will appear. It lets you dynamicly place the widgets on WordPress pages by setting conditional rules with just a few mouse clicks by role, dates, browser, language (WPML), for the homepage, single posts, attachments, pages, authors, categories, archives, error page, search page, custom post types, custom post type archives, WPEC/WPSC categories, BuddyPress Components and BuddyPress Groups
|
14 |
|
15 |
* Default widget display setting is supported for:
|
16 |
- User roles
|
17 |
- Dates
|
18 |
+
- Browsers
|
19 |
+
- Languages (WPML)
|
20 |
- Front page
|
21 |
- Single post pages
|
22 |
+
- Attachment pages
|
23 |
- Pages
|
24 |
- Author pages
|
25 |
- Category pages
|
27 |
- Error Page
|
28 |
- Search Page
|
29 |
- Custom Post Types
|
30 |
+
- Custom Post Type Archive pages
|
31 |
- WP Shopping Cart / WP E-Commerce Categories
|
32 |
+
- BuddyPress Components pages
|
33 |
+
- BuddyPress Groups
|
34 |
|
35 |
* Exceptions can be created for:
|
36 |
- User roles on role, including not logged in (anonymous) users
|
37 |
- Dates on from, to or range
|
38 |
+
- Browsers on browser name
|
39 |
+
- Languages (WPML) on language
|
40 |
- Single post pages on Author, Categories, Tags and/or Individual posts
|
41 |
- Pages on Page Title, including inheritance from hierarchical parents
|
42 |
- Author pages on Author
|
43 |
- Category pages on Category name
|
44 |
- Custom Posts Type on Custom post name, including inheritance from hierarchical parents
|
45 |
+
- Custom Post Type Archive pages on Custom Post Type
|
46 |
- WP Shopping Cart / WP E-Commerce Categories on Category name
|
47 |
+
- BuddyPress Component pages on Component
|
48 |
+
- BuddyPress Groups on group
|
49 |
|
50 |
* Plugin support for:
|
51 |
+
- BuddyPress
|
52 |
- WP MultiLingual (WPML)
|
53 |
- WP Shopping Cart / WP E-Commerce (WPSC / WPEC)
|
54 |
|
55 |
* Language files provided:
|
56 |
- French (fr_FR) by Alexis Nomine
|
57 |
+
- German (de_DE) by Daniel Bihler
|
58 |
+
- Spanish (es_ES) by Eduardo Larequi
|
59 |
|
60 |
== Installation ==
|
61 |
|
94 |
|
95 |
Did you save the options? If you did, you may try to hit the (i) icon a bit to the right and read the text which appears below.
|
96 |
|
97 |
+
= According to the featurelist I should be able to use a hierarchical structure in static pages, but I don't see it. Where is it? =
|
98 |
+
|
99 |
+
You probably have more than 500 pages. Building a tree with so many pages slows down the performance of the plugin dramatically. To prevent time-out errors, the childs-function has been automatically disabled.
|
100 |
+
|
101 |
= The plugin slows down the loading of a page dramatically. Can you do something about it? =
|
102 |
|
103 |
Try setting the plugin to the 'OLD' method. You can do this by clicking on the 'Advanced >' link at the bottom of the Widgets Overview page and check the box next to 'Use OLD method'. See if that helps. Setting the plugin using the 'OLD' method comes with a downside unfortunately. It may leave you behind with a visible empty sidebar.
|
104 |
|
105 |
+
= I want to check if the 'OLD' method suits me better, is there a way back if it doesn't? =
|
106 |
|
107 |
Yes! You can switch between FILTER and OLD method without any loss of widgets configuration or whatsoever.
|
108 |
|
132 |
|
133 |
== Changelog ==
|
134 |
|
135 |
+
= Version 1.4.0 =
|
136 |
+
|
137 |
+
* Added more l10n text strings
|
138 |
+
* Added support for browser options.
|
139 |
+
* Added support for attachments.
|
140 |
+
* Added support for Custom Post Type Archive pages (native in WordPress 3.1, via plugin in 3.0.x).
|
141 |
+
* Added support for BuddyPress Component pages.
|
142 |
+
* Added support for BuddyPress Group pages.
|
143 |
+
* Added German language files (locale: de_DE) - Vielen dank Daniel!
|
144 |
+
* Added Spanish language files (locale: es_ES) - Muchas gracias Eduardo!
|
145 |
+
* Bugfix for unexpected behavior when subsequent widgets are in opposite config for WPML.
|
146 |
+
* Bugfix for not correct displaying of options string in the widget admin when having options set for childs in Pages or Custom Post Types.
|
147 |
+
* Bugfix for an error 404 (file not found) when an error occurs while saving options.
|
148 |
+
* Bugfix for unnecessary double creation of the hierarchical tree in Static Pages and Custom Post Types.
|
149 |
+
* Modified admin UI for compatibility with WordPress 3.1.
|
150 |
+
* Upgrade for WP Shopping Cart / WP E-Commerce to support version 3.8 *** SEE RELEASE NOTES ***
|
151 |
+
* Workaround in admin UI when using (a child of) the default BuddyPress theme or the BP Template Pack plugin bombing the accordion.
|
152 |
+
* Modularized admin scripts
|
153 |
+
* Standarized the use of JavaScript (jQuery)
|
154 |
+
|
155 |
= Version 1.3.7 =
|
156 |
|
157 |
* Added more l10n text strings.
|
253 |
|
254 |
* Added default widget display setting option for 'Not Found' Error (404) Page.
|
255 |
|
256 |
+
== Release notes ==
|
257 |
+
|
258 |
+
With this version, Dynamic Widgets supports version 3.8 of WPEC. Unfortunately because of the change by WPEC, when you upgrade WPEC you'll have to redo all rules you've created within Dynamic Widgets for WPEC manually. It was nog possible for me to find out how to convert these to the new system used by WPEC. For your convience I've created a WPEC config dump generator to be able to give an overview of all the WPEC rules created in Dynamic Widgets to make recreating the rules easier. Please note the generator only works correctly when the WPEC product categories database table still exists and you did not add or modified any rule in Dynamic Widgets. The generator can be found at the Dynamic Widgets overview page by clicking on the 'Advanced >' link at the bottom of the page.
|
259 |
+
|
260 |
== Upgrade Notice ==
|
261 |
|
262 |
Be sure to deactivate Dynamic Widgets Plugin before installing the new version following steps 1 and 2 in the installation procedure. After the install you can reactivate the plugin.
|
ui.accordion.1.7.3.js
ADDED
@@ -0,0 +1,477 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI Accordion 1.7.3
|
3 |
+
*
|
4 |
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6 |
+
* and GPL (GPL-LICENSE.txt) licenses.
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Accordion
|
9 |
+
*
|
10 |
+
* Depends:
|
11 |
+
* ui.core.js
|
12 |
+
*/
|
13 |
+
(function($) {
|
14 |
+
|
15 |
+
$.widget("ui.accordion", {
|
16 |
+
|
17 |
+
_init: function() {
|
18 |
+
|
19 |
+
var o = this.options, self = this;
|
20 |
+
this.running = 0;
|
21 |
+
|
22 |
+
// if the user set the alwaysOpen option on init
|
23 |
+
// then we need to set the collapsible option
|
24 |
+
// if they set both on init, collapsible will take priority
|
25 |
+
if (o.collapsible == $.ui.accordion.defaults.collapsible &&
|
26 |
+
o.alwaysOpen != $.ui.accordion.defaults.alwaysOpen) {
|
27 |
+
o.collapsible = !o.alwaysOpen;
|
28 |
+
}
|
29 |
+
|
30 |
+
if ( o.navigation ) {
|
31 |
+
var current = this.element.find("a").filter(o.navigationFilter);
|
32 |
+
if ( current.length ) {
|
33 |
+
if ( current.filter(o.header).length ) {
|
34 |
+
this.active = current;
|
35 |
+
} else {
|
36 |
+
this.active = current.parent().parent().prev();
|
37 |
+
current.addClass("ui-accordion-content-active");
|
38 |
+
}
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
this.element.addClass("ui-accordion ui-widget ui-helper-reset");
|
43 |
+
|
44 |
+
// in lack of child-selectors in CSS we need to mark top-LIs in a UL-accordion for some IE-fix
|
45 |
+
if (this.element[0].nodeName == "UL") {
|
46 |
+
this.element.children("li").addClass("ui-accordion-li-fix");
|
47 |
+
}
|
48 |
+
|
49 |
+
this.headers = this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
|
50 |
+
.bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); })
|
51 |
+
.bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); })
|
52 |
+
.bind("focus.accordion", function(){ $(this).addClass('ui-state-focus'); })
|
53 |
+
.bind("blur.accordion", function(){ $(this).removeClass('ui-state-focus'); });
|
54 |
+
|
55 |
+
this.headers
|
56 |
+
.next()
|
57 |
+
.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
|
58 |
+
|
59 |
+
this.active = this._findActive(this.active || o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
|
60 |
+
this.active.next().addClass('ui-accordion-content-active');
|
61 |
+
|
62 |
+
//Append icon elements
|
63 |
+
$("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
|
64 |
+
this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
|
65 |
+
|
66 |
+
// IE7-/Win - Extra vertical space in lists fixed
|
67 |
+
if ($.browser.msie) {
|
68 |
+
this.element.find('a').css('zoom', '1');
|
69 |
+
}
|
70 |
+
|
71 |
+
this.resize();
|
72 |
+
|
73 |
+
//ARIA
|
74 |
+
this.element.attr('role','tablist');
|
75 |
+
|
76 |
+
this.headers
|
77 |
+
.attr('role','tab')
|
78 |
+
.bind('keydown', function(event) { return self._keydown(event); })
|
79 |
+
.next()
|
80 |
+
.attr('role','tabpanel');
|
81 |
+
|
82 |
+
this.headers
|
83 |
+
.not(this.active || "")
|
84 |
+
.attr('aria-expanded','false')
|
85 |
+
.attr("tabIndex", "-1")
|
86 |
+
.next()
|
87 |
+
.hide();
|
88 |
+
|
89 |
+
// make sure at least one header is in the tab order
|
90 |
+
if (!this.active.length) {
|
91 |
+
this.headers.eq(0).attr('tabIndex','0');
|
92 |
+
} else {
|
93 |
+
this.active
|
94 |
+
.attr('aria-expanded','true')
|
95 |
+
.attr('tabIndex', '0');
|
96 |
+
}
|
97 |
+
|
98 |
+
// only need links in taborder for Safari
|
99 |
+
if (!$.browser.safari)
|
100 |
+
this.headers.find('a').attr('tabIndex','-1');
|
101 |
+
|
102 |
+
if (o.event) {
|
103 |
+
this.headers.bind((o.event) + ".accordion", function(event) { return self._clickHandler.call(self, event, this); });
|
104 |
+
}
|
105 |
+
|
106 |
+
},
|
107 |
+
|
108 |
+
destroy: function() {
|
109 |
+
var o = this.options;
|
110 |
+
|
111 |
+
this.element
|
112 |
+
.removeClass("ui-accordion ui-widget ui-helper-reset")
|
113 |
+
.removeAttr("role")
|
114 |
+
.unbind('.accordion')
|
115 |
+
.removeData('accordion');
|
116 |
+
|
117 |
+
this.headers
|
118 |
+
.unbind(".accordion")
|
119 |
+
.removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
|
120 |
+
.removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");
|
121 |
+
|
122 |
+
this.headers.find("a").removeAttr("tabindex");
|
123 |
+
this.headers.children(".ui-icon").remove();
|
124 |
+
var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
|
125 |
+
if (o.autoHeight || o.fillHeight) {
|
126 |
+
contents.css("height", "");
|
127 |
+
}
|
128 |
+
},
|
129 |
+
|
130 |
+
_setData: function(key, value) {
|
131 |
+
if(key == 'alwaysOpen') { key = 'collapsible'; value = !value; }
|
132 |
+
$.widget.prototype._setData.apply(this, arguments);
|
133 |
+
},
|
134 |
+
|
135 |
+
_keydown: function(event) {
|
136 |
+
|
137 |
+
var o = this.options, keyCode = $.ui.keyCode;
|
138 |
+
|
139 |
+
if (o.disabled || event.altKey || event.ctrlKey)
|
140 |
+
return;
|
141 |
+
|
142 |
+
var length = this.headers.length;
|
143 |
+
var currentIndex = this.headers.index(event.target);
|
144 |
+
var toFocus = false;
|
145 |
+
|
146 |
+
switch(event.keyCode) {
|
147 |
+
case keyCode.RIGHT:
|
148 |
+
case keyCode.DOWN:
|
149 |
+
toFocus = this.headers[(currentIndex + 1) % length];
|
150 |
+
break;
|
151 |
+
case keyCode.LEFT:
|
152 |
+
case keyCode.UP:
|
153 |
+
toFocus = this.headers[(currentIndex - 1 + length) % length];
|
154 |
+
break;
|
155 |
+
case keyCode.SPACE:
|
156 |
+
case keyCode.ENTER:
|
157 |
+
return this._clickHandler({ target: event.target }, event.target);
|
158 |
+
}
|
159 |
+
|
160 |
+
if (toFocus) {
|
161 |
+
$(event.target).attr('tabIndex','-1');
|
162 |
+
$(toFocus).attr('tabIndex','0');
|
163 |
+
toFocus.focus();
|
164 |
+
return false;
|
165 |
+
}
|
166 |
+
|
167 |
+
return true;
|
168 |
+
|
169 |
+
},
|
170 |
+
|
171 |
+
resize: function() {
|
172 |
+
|
173 |
+
var o = this.options, maxHeight;
|
174 |
+
|
175 |
+
if (o.fillSpace) {
|
176 |
+
|
177 |
+
if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); }
|
178 |
+
maxHeight = this.element.parent().height();
|
179 |
+
if($.browser.msie) { this.element.parent().css('overflow', defOverflow); }
|
180 |
+
|
181 |
+
this.headers.each(function() {
|
182 |
+
maxHeight -= $(this).outerHeight();
|
183 |
+
});
|
184 |
+
|
185 |
+
var maxPadding = 0;
|
186 |
+
this.headers.next().each(function() {
|
187 |
+
maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
|
188 |
+
}).height(Math.max(0, maxHeight - maxPadding))
|
189 |
+
.css('overflow', 'auto');
|
190 |
+
|
191 |
+
} else if ( o.autoHeight ) {
|
192 |
+
maxHeight = 0;
|
193 |
+
this.headers.next().each(function() {
|
194 |
+
maxHeight = Math.max(maxHeight, $(this).outerHeight());
|
195 |
+
}).height(maxHeight);
|
196 |
+
}
|
197 |
+
|
198 |
+
},
|
199 |
+
|
200 |
+
activate: function(index) {
|
201 |
+
// call clickHandler with custom event
|
202 |
+
var active = this._findActive(index)[0];
|
203 |
+
this._clickHandler({ target: active }, active);
|
204 |
+
},
|
205 |
+
|
206 |
+
_findActive: function(selector) {
|
207 |
+
return selector
|
208 |
+
? typeof selector == "number"
|
209 |
+
? this.headers.filter(":eq(" + selector + ")")
|
210 |
+
: this.headers.not(this.headers.not(selector))
|
211 |
+
: selector === false
|
212 |
+
? $([])
|
213 |
+
: this.headers.filter(":eq(0)");
|
214 |
+
},
|
215 |
+
|
216 |
+
_clickHandler: function(event, target) {
|
217 |
+
|
218 |
+
var o = this.options;
|
219 |
+
if (o.disabled) return false;
|
220 |
+
|
221 |
+
// called only when using activate(false) to close all parts programmatically
|
222 |
+
if (!event.target && o.collapsible) {
|
223 |
+
this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
|
224 |
+
.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
|
225 |
+
this.active.next().addClass('ui-accordion-content-active');
|
226 |
+
var toHide = this.active.next(),
|
227 |
+
data = {
|
228 |
+
options: o,
|
229 |
+
newHeader: $([]),
|
230 |
+
oldHeader: o.active,
|
231 |
+
newContent: $([]),
|
232 |
+
oldContent: toHide
|
233 |
+
},
|
234 |
+
toShow = (this.active = $([]));
|
235 |
+
this._toggle(toShow, toHide, data);
|
236 |
+
return false;
|
237 |
+
}
|
238 |
+
|
239 |
+
// get the click target
|
240 |
+
var clicked = $(event.currentTarget || target);
|
241 |
+
var clickedIsActive = clicked[0] == this.active[0];
|
242 |
+
|
243 |
+
// if animations are still active, or the active header is the target, ignore click
|
244 |
+
if (this.running || (!o.collapsible && clickedIsActive)) {
|
245 |
+
return false;
|
246 |
+
}
|
247 |
+
|
248 |
+
// switch classes
|
249 |
+
this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
|
250 |
+
.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
|
251 |
+
this.active.next().addClass('ui-accordion-content-active');
|
252 |
+
if (!clickedIsActive) {
|
253 |
+
clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
|
254 |
+
.find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
|
255 |
+
clicked.next().addClass('ui-accordion-content-active');
|
256 |
+
}
|
257 |
+
|
258 |
+
// find elements to show and hide
|
259 |
+
var toShow = clicked.next(),
|
260 |
+
toHide = this.active.next(),
|
261 |
+
data = {
|
262 |
+
options: o,
|
263 |
+
newHeader: clickedIsActive && o.collapsible ? $([]) : clicked,
|
264 |
+
oldHeader: this.active,
|
265 |
+
newContent: clickedIsActive && o.collapsible ? $([]) : toShow.find('> *'),
|
266 |
+
oldContent: toHide.find('> *')
|
267 |
+
},
|
268 |
+
down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
|
269 |
+
|
270 |
+
this.active = clickedIsActive ? $([]) : clicked;
|
271 |
+
this._toggle(toShow, toHide, data, clickedIsActive, down);
|
272 |
+
|
273 |
+
return false;
|
274 |
+
|
275 |
+
},
|
276 |
+
|
277 |
+
_toggle: function(toShow, toHide, data, clickedIsActive, down) {
|
278 |
+
|
279 |
+
var o = this.options, self = this;
|
280 |
+
|
281 |
+
this.toShow = toShow;
|
282 |
+
this.toHide = toHide;
|
283 |
+
this.data = data;
|
284 |
+
|
285 |
+
var complete = function() { if(!self) return; return self._completed.apply(self, arguments); };
|
286 |
+
|
287 |
+
// trigger changestart event
|
288 |
+
this._trigger("changestart", null, this.data);
|
289 |
+
|
290 |
+
// count elements to animate
|
291 |
+
this.running = toHide.size() === 0 ? toShow.size() : toHide.size();
|
292 |
+
|
293 |
+
if (o.animated) {
|
294 |
+
|
295 |
+
var animOptions = {};
|
296 |
+
|
297 |
+
if ( o.collapsible && clickedIsActive ) {
|
298 |
+
animOptions = {
|
299 |
+
toShow: $([]),
|
300 |
+
toHide: toHide,
|
301 |
+
complete: complete,
|
302 |
+
down: down,
|
303 |
+
autoHeight: o.autoHeight || o.fillSpace
|
304 |
+
};
|
305 |
+
} else {
|
306 |
+
animOptions = {
|
307 |
+
toShow: toShow,
|
308 |
+
toHide: toHide,
|
309 |
+
complete: complete,
|
310 |
+
down: down,
|
311 |
+
autoHeight: o.autoHeight || o.fillSpace
|
312 |
+
};
|
313 |
+
}
|
314 |
+
|
315 |
+
if (!o.proxied) {
|
316 |
+
o.proxied = o.animated;
|
317 |
+
}
|
318 |
+
|
319 |
+
if (!o.proxiedDuration) {
|
320 |
+
o.proxiedDuration = o.duration;
|
321 |
+
}
|
322 |
+
|
323 |
+
o.animated = $.isFunction(o.proxied) ?
|
324 |
+
o.proxied(animOptions) : o.proxied;
|
325 |
+
|
326 |
+
o.duration = $.isFunction(o.proxiedDuration) ?
|
327 |
+
o.proxiedDuration(animOptions) : o.proxiedDuration;
|
328 |
+
|
329 |
+
var animations = $.ui.accordion.animations,
|
330 |
+
duration = o.duration,
|
331 |
+
easing = o.animated;
|
332 |
+
|
333 |
+
if (!animations[easing]) {
|
334 |
+
animations[easing] = function(options) {
|
335 |
+
this.slide(options, {
|
336 |
+
easing: easing,
|
337 |
+
duration: duration || 700
|
338 |
+
});
|
339 |
+
};
|
340 |
+
}
|
341 |
+
|
342 |
+
animations[easing](animOptions);
|
343 |
+
|
344 |
+
} else {
|
345 |
+
|
346 |
+
if (o.collapsible && clickedIsActive) {
|
347 |
+
toShow.toggle();
|
348 |
+
} else {
|
349 |
+
toHide.hide();
|
350 |
+
toShow.show();
|
351 |
+
}
|
352 |
+
|
353 |
+
complete(true);
|
354 |
+
|
355 |
+
}
|
356 |
+
|
357 |
+
toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur();
|
358 |
+
toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus();
|
359 |
+
|
360 |
+
},
|
361 |
+
|
362 |
+
_completed: function(cancel) {
|
363 |
+
|
364 |
+
var o = this.options;
|
365 |
+
|
366 |
+
this.running = cancel ? 0 : --this.running;
|
367 |
+
if (this.running) return;
|
368 |
+
|
369 |
+
if (o.clearStyle) {
|
370 |
+
this.toShow.add(this.toHide).css({
|
371 |
+
height: "",
|
372 |
+
overflow: ""
|
373 |
+
});
|
374 |
+
}
|
375 |
+
|
376 |
+
this._trigger('change', null, this.data);
|
377 |
+
}
|
378 |
+
|
379 |
+
});
|
380 |
+
|
381 |
+
|
382 |
+
$.extend($.ui.accordion, {
|
383 |
+
version: "1.7.3",
|
384 |
+
defaults: {
|
385 |
+
active: null,
|
386 |
+
alwaysOpen: true, //deprecated, use collapsible
|
387 |
+
animated: 'slide',
|
388 |
+
autoHeight: true,
|
389 |
+
clearStyle: false,
|
390 |
+
collapsible: false,
|
391 |
+
event: "click",
|
392 |
+
fillSpace: false,
|
393 |
+
header: "> li > :first-child,> :not(li):even",
|
394 |
+
icons: {
|
395 |
+
header: "ui-icon-triangle-1-e",
|
396 |
+
headerSelected: "ui-icon-triangle-1-s"
|
397 |
+
},
|
398 |
+
navigation: false,
|
399 |
+
navigationFilter: function() {
|
400 |
+
return this.href.toLowerCase() == location.href.toLowerCase();
|
401 |
+
}
|
402 |
+
},
|
403 |
+
animations: {
|
404 |
+
slide: function(options, additions) {
|
405 |
+
options = $.extend({
|
406 |
+
easing: "swing",
|
407 |
+
duration: 300
|
408 |
+
}, options, additions);
|
409 |
+
if ( !options.toHide.size() ) {
|
410 |
+
options.toShow.animate({height: "show"}, options);
|
411 |
+
return;
|
412 |
+
}
|
413 |
+
if ( !options.toShow.size() ) {
|
414 |
+
options.toHide.animate({height: "hide"}, options);
|
415 |
+
return;
|
416 |
+
}
|
417 |
+
var overflow = options.toShow.css('overflow'),
|
418 |
+
percentDone,
|
419 |
+
showProps = {},
|
420 |
+
hideProps = {},
|
421 |
+
fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
|
422 |
+
originalWidth;
|
423 |
+
// fix width before calculating height of hidden element
|
424 |
+
var s = options.toShow;
|
425 |
+
originalWidth = s[0].style.width;
|
426 |
+
s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) );
|
427 |
+
|
428 |
+
$.each(fxAttrs, function(i, prop) {
|
429 |
+
hideProps[prop] = 'hide';
|
430 |
+
|
431 |
+
var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/);
|
432 |
+
showProps[prop] = {
|
433 |
+
value: parts[1],
|
434 |
+
unit: parts[2] || 'px'
|
435 |
+
};
|
436 |
+
});
|
437 |
+
options.toShow.css({ height: 0, overflow: 'hidden' }).show();
|
438 |
+
options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{
|
439 |
+
step: function(now, settings) {
|
440 |
+
// only calculate the percent when animating height
|
441 |
+
// IE gets very inconsistent results when animating elements
|
442 |
+
// with small values, which is common for padding
|
443 |
+
if (settings.prop == 'height') {
|
444 |
+
percentDone = (settings.now - settings.start) / (settings.end - settings.start);
|
445 |
+
}
|
446 |
+
|
447 |
+
options.toShow[0].style[settings.prop] =
|
448 |
+
(percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit;
|
449 |
+
},
|
450 |
+
duration: options.duration,
|
451 |
+
easing: options.easing,
|
452 |
+
complete: function() {
|
453 |
+
if ( !options.autoHeight ) {
|
454 |
+
options.toShow.css("height", "");
|
455 |
+
}
|
456 |
+
options.toShow.css("width", originalWidth);
|
457 |
+
options.toShow.css({overflow: overflow});
|
458 |
+
options.complete();
|
459 |
+
}
|
460 |
+
});
|
461 |
+
},
|
462 |
+
bounceslide: function(options) {
|
463 |
+
this.slide(options, {
|
464 |
+
easing: options.down ? "easeOutBounce" : "swing",
|
465 |
+
duration: options.down ? 1000 : 200
|
466 |
+
});
|
467 |
+
},
|
468 |
+
easeslide: function(options) {
|
469 |
+
this.slide(options, {
|
470 |
+
easing: "easeinout",
|
471 |
+
duration: 700
|
472 |
+
});
|
473 |
+
}
|
474 |
+
}
|
475 |
+
});
|
476 |
+
|
477 |
+
})(jQuery);
|
ui.accordion.1.8.7.js
ADDED
@@ -0,0 +1,599 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI Accordion 1.8.7
|
3 |
+
*
|
4 |
+
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Accordion
|
9 |
+
*
|
10 |
+
* Depends:
|
11 |
+
* jquery.ui.core.js
|
12 |
+
* jquery.ui.widget.js
|
13 |
+
*/
|
14 |
+
(function( $, undefined ) {
|
15 |
+
|
16 |
+
$.widget( "ui.accordion", {
|
17 |
+
options: {
|
18 |
+
active: 0,
|
19 |
+
animated: "slide",
|
20 |
+
autoHeight: true,
|
21 |
+
clearStyle: false,
|
22 |
+
collapsible: false,
|
23 |
+
event: "click",
|
24 |
+
fillSpace: false,
|
25 |
+
header: "> li > :first-child,> :not(li):even",
|
26 |
+
icons: {
|
27 |
+
header: "ui-icon-triangle-1-e",
|
28 |
+
headerSelected: "ui-icon-triangle-1-s"
|
29 |
+
},
|
30 |
+
navigation: false,
|
31 |
+
navigationFilter: function() {
|
32 |
+
return this.href.toLowerCase() === location.href.toLowerCase();
|
33 |
+
}
|
34 |
+
},
|
35 |
+
|
36 |
+
_create: function() {
|
37 |
+
var self = this,
|
38 |
+
options = self.options;
|
39 |
+
|
40 |
+
self.running = 0;
|
41 |
+
|
42 |
+
self.element
|
43 |
+
.addClass( "ui-accordion ui-widget ui-helper-reset" )
|
44 |
+
// in lack of child-selectors in CSS
|
45 |
+
// we need to mark top-LIs in a UL-accordion for some IE-fix
|
46 |
+
.children( "li" )
|
47 |
+
.addClass( "ui-accordion-li-fix" );
|
48 |
+
|
49 |
+
self.headers = self.element.find( options.header )
|
50 |
+
.addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )
|
51 |
+
.bind( "mouseenter.accordion", function() {
|
52 |
+
if ( options.disabled ) {
|
53 |
+
return;
|
54 |
+
}
|
55 |
+
$( this ).addClass( "ui-state-hover" );
|
56 |
+
})
|
57 |
+
.bind( "mouseleave.accordion", function() {
|
58 |
+
if ( options.disabled ) {
|
59 |
+
return;
|
60 |
+
}
|
61 |
+
$( this ).removeClass( "ui-state-hover" );
|
62 |
+
})
|
63 |
+
.bind( "focus.accordion", function() {
|
64 |
+
if ( options.disabled ) {
|
65 |
+
return;
|
66 |
+
}
|
67 |
+
$( this ).addClass( "ui-state-focus" );
|
68 |
+
})
|
69 |
+
.bind( "blur.accordion", function() {
|
70 |
+
if ( options.disabled ) {
|
71 |
+
return;
|
72 |
+
}
|
73 |
+
$( this ).removeClass( "ui-state-focus" );
|
74 |
+
});
|
75 |
+
|
76 |
+
self.headers.next()
|
77 |
+
.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
|
78 |
+
|
79 |
+
if ( options.navigation ) {
|
80 |
+
var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
|
81 |
+
if ( current.length ) {
|
82 |
+
var header = current.closest( ".ui-accordion-header" );
|
83 |
+
if ( header.length ) {
|
84 |
+
// anchor within header
|
85 |
+
self.active = header;
|
86 |
+
} else {
|
87 |
+
// anchor within content
|
88 |
+
self.active = current.closest( ".ui-accordion-content" ).prev();
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
self.active = self._findActive( self.active || options.active )
|
94 |
+
.addClass( "ui-state-default ui-state-active" )
|
95 |
+
.toggleClass( "ui-corner-all" )
|
96 |
+
.toggleClass( "ui-corner-top" );
|
97 |
+
self.active.next().addClass( "ui-accordion-content-active" );
|
98 |
+
|
99 |
+
self._createIcons();
|
100 |
+
self.resize();
|
101 |
+
|
102 |
+
// ARIA
|
103 |
+
self.element.attr( "role", "tablist" );
|
104 |
+
|
105 |
+
self.headers
|
106 |
+
.attr( "role", "tab" )
|
107 |
+
.bind( "keydown.accordion", function( event ) {
|
108 |
+
return self._keydown( event );
|
109 |
+
})
|
110 |
+
.next()
|
111 |
+
.attr( "role", "tabpanel" );
|
112 |
+
|
113 |
+
self.headers
|
114 |
+
.not( self.active || "" )
|
115 |
+
.attr({
|
116 |
+
"aria-expanded": "false",
|
117 |
+
tabIndex: -1
|
118 |
+
})
|
119 |
+
.next()
|
120 |
+
.hide();
|
121 |
+
|
122 |
+
// make sure at least one header is in the tab order
|
123 |
+
if ( !self.active.length ) {
|
124 |
+
self.headers.eq( 0 ).attr( "tabIndex", 0 );
|
125 |
+
} else {
|
126 |
+
self.active
|
127 |
+
.attr({
|
128 |
+
"aria-expanded": "true",
|
129 |
+
tabIndex: 0
|
130 |
+
});
|
131 |
+
}
|
132 |
+
|
133 |
+
// only need links in tab order for Safari
|
134 |
+
if ( !$.browser.safari ) {
|
135 |
+
self.headers.find( "a" ).attr( "tabIndex", -1 );
|
136 |
+
}
|
137 |
+
|
138 |
+
if ( options.event ) {
|
139 |
+
self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {
|
140 |
+
self._clickHandler.call( self, event, this );
|
141 |
+
event.preventDefault();
|
142 |
+
});
|
143 |
+
}
|
144 |
+
},
|
145 |
+
|
146 |
+
_createIcons: function() {
|
147 |
+
var options = this.options;
|
148 |
+
if ( options.icons ) {
|
149 |
+
$( "<span></span>" )
|
150 |
+
.addClass( "ui-icon " + options.icons.header )
|
151 |
+
.prependTo( this.headers );
|
152 |
+
this.active.children( ".ui-icon" )
|
153 |
+
.toggleClass(options.icons.header)
|
154 |
+
.toggleClass(options.icons.headerSelected);
|
155 |
+
this.element.addClass( "ui-accordion-icons" );
|
156 |
+
}
|
157 |
+
},
|
158 |
+
|
159 |
+
_destroyIcons: function() {
|
160 |
+
this.headers.children( ".ui-icon" ).remove();
|
161 |
+
this.element.removeClass( "ui-accordion-icons" );
|
162 |
+
},
|
163 |
+
|
164 |
+
destroy: function() {
|
165 |
+
var options = this.options;
|
166 |
+
|
167 |
+
this.element
|
168 |
+
.removeClass( "ui-accordion ui-widget ui-helper-reset" )
|
169 |
+
.removeAttr( "role" );
|
170 |
+
|
171 |
+
this.headers
|
172 |
+
.unbind( ".accordion" )
|
173 |
+
.removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
|
174 |
+
.removeAttr( "role" )
|
175 |
+
.removeAttr( "aria-expanded" )
|
176 |
+
.removeAttr( "tabIndex" );
|
177 |
+
|
178 |
+
this.headers.find( "a" ).removeAttr( "tabIndex" );
|
179 |
+
this._destroyIcons();
|
180 |
+
var contents = this.headers.next()
|
181 |
+
.css( "display", "" )
|
182 |
+
.removeAttr( "role" )
|
183 |
+
.removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" );
|
184 |
+
if ( options.autoHeight || options.fillHeight ) {
|
185 |
+
contents.css( "height", "" );
|
186 |
+
}
|
187 |
+
|
188 |
+
return $.Widget.prototype.destroy.call( this );
|
189 |
+
},
|
190 |
+
|
191 |
+
_setOption: function( key, value ) {
|
192 |
+
$.Widget.prototype._setOption.apply( this, arguments );
|
193 |
+
|
194 |
+
if ( key == "active" ) {
|
195 |
+
this.activate( value );
|
196 |
+
}
|
197 |
+
if ( key == "icons" ) {
|
198 |
+
this._destroyIcons();
|
199 |
+
if ( value ) {
|
200 |
+
this._createIcons();
|
201 |
+
}
|
202 |
+
}
|
203 |
+
// #5332 - opacity doesn't cascade to positioned elements in IE
|
204 |
+
// so we need to add the disabled class to the headers and panels
|
205 |
+
if ( key == "disabled" ) {
|
206 |
+
this.headers.add(this.headers.next())
|
207 |
+
[ value ? "addClass" : "removeClass" ](
|
208 |
+
"ui-accordion-disabled ui-state-disabled" );
|
209 |
+
}
|
210 |
+
},
|
211 |
+
|
212 |
+
_keydown: function( event ) {
|
213 |
+
if ( this.options.disabled || event.altKey || event.ctrlKey ) {
|
214 |
+
return;
|
215 |
+
}
|
216 |
+
|
217 |
+
var keyCode = $.ui.keyCode,
|
218 |
+
length = this.headers.length,
|
219 |
+
currentIndex = this.headers.index( event.target ),
|
220 |
+
toFocus = false;
|
221 |
+
|
222 |
+
switch ( event.keyCode ) {
|
223 |
+
case keyCode.RIGHT:
|
224 |
+
case keyCode.DOWN:
|
225 |
+
toFocus = this.headers[ ( currentIndex + 1 ) % length ];
|
226 |
+
break;
|
227 |
+
case keyCode.LEFT:
|
228 |
+
case keyCode.UP:
|
229 |
+
toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
|
230 |
+
break;
|
231 |
+
case keyCode.SPACE:
|
232 |
+
case keyCode.ENTER:
|
233 |
+
this._clickHandler( { target: event.target }, event.target );
|
234 |
+
event.preventDefault();
|
235 |
+
}
|
236 |
+
|
237 |
+
if ( toFocus ) {
|
238 |
+
$( event.target ).attr( "tabIndex", -1 );
|
239 |
+
$( toFocus ).attr( "tabIndex", 0 );
|
240 |
+
toFocus.focus();
|
241 |
+
return false;
|
242 |
+
}
|
243 |
+
|
244 |
+
return true;
|
245 |
+
},
|
246 |
+
|
247 |
+
resize: function() {
|
248 |
+
var options = this.options,
|
249 |
+
maxHeight;
|
250 |
+
|
251 |
+
if ( options.fillSpace ) {
|
252 |
+
if ( $.browser.msie ) {
|
253 |
+
var defOverflow = this.element.parent().css( "overflow" );
|
254 |
+
this.element.parent().css( "overflow", "hidden");
|
255 |
+
}
|
256 |
+
maxHeight = this.element.parent().height();
|
257 |
+
if ($.browser.msie) {
|
258 |
+
this.element.parent().css( "overflow", defOverflow );
|
259 |
+
}
|
260 |
+
|
261 |
+
this.headers.each(function() {
|
262 |
+
maxHeight -= $( this ).outerHeight( true );
|
263 |
+
});
|
264 |
+
|
265 |
+
this.headers.next()
|
266 |
+
.each(function() {
|
267 |
+
$( this ).height( Math.max( 0, maxHeight -
|
268 |
+
$( this ).innerHeight() + $( this ).height() ) );
|
269 |
+
})
|
270 |
+
.css( "overflow", "auto" );
|
271 |
+
} else if ( options.autoHeight ) {
|
272 |
+
maxHeight = 0;
|
273 |
+
this.headers.next()
|
274 |
+
.each(function() {
|
275 |
+
maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
|
276 |
+
})
|
277 |
+
.height( maxHeight );
|
278 |
+
}
|
279 |
+
|
280 |
+
return this;
|
281 |
+
},
|
282 |
+
|
283 |
+
activate: function( index ) {
|
284 |
+
// TODO this gets called on init, changing the option without an explicit call for that
|
285 |
+
this.options.active = index;
|
286 |
+
// call clickHandler with custom event
|
287 |
+
var active = this._findActive( index )[ 0 ];
|
288 |
+
this._clickHandler( { target: active }, active );
|
289 |
+
|
290 |
+
return this;
|
291 |
+
},
|
292 |
+
|
293 |
+
_findActive: function( selector ) {
|
294 |
+
return selector
|
295 |
+
? typeof selector === "number"
|
296 |
+
? this.headers.filter( ":eq(" + selector + ")" )
|
297 |
+
: this.headers.not( this.headers.not( selector ) )
|
298 |
+
: selector === false
|
299 |
+
? $( [] )
|
300 |
+
: this.headers.filter( ":eq(0)" );
|
301 |
+
},
|
302 |
+
|
303 |
+
// TODO isn't event.target enough? why the separate target argument?
|
304 |
+
_clickHandler: function( event, target ) {
|
305 |
+
var options = this.options;
|
306 |
+
if ( options.disabled ) {
|
307 |
+
return;
|
308 |
+
}
|
309 |
+
|
310 |
+
// called only when using activate(false) to close all parts programmatically
|
311 |
+
if ( !event.target ) {
|
312 |
+
if ( !options.collapsible ) {
|
313 |
+
return;
|
314 |
+
}
|
315 |
+
this.active
|
316 |
+
.removeClass( "ui-state-active ui-corner-top" )
|
317 |
+
.addClass( "ui-state-default ui-corner-all" )
|
318 |
+
.children( ".ui-icon" )
|
319 |
+
.removeClass( options.icons.headerSelected )
|
320 |
+
.addClass( options.icons.header );
|
321 |
+
this.active.next().addClass( "ui-accordion-content-active" );
|
322 |
+
var toHide = this.active.next(),
|
323 |
+
data = {
|
324 |
+
options: options,
|
325 |
+
newHeader: $( [] ),
|
326 |
+
oldHeader: options.active,
|
327 |
+
newContent: $( [] ),
|
328 |
+
oldContent: toHide
|
329 |
+
},
|
330 |
+
toShow = ( this.active = $( [] ) );
|
331 |
+
this._toggle( toShow, toHide, data );
|
332 |
+
return;
|
333 |
+
}
|
334 |
+
|
335 |
+
// get the click target
|
336 |
+
var clicked = $( event.currentTarget || target ),
|
337 |
+
clickedIsActive = clicked[0] === this.active[0];
|
338 |
+
|
339 |
+
// TODO the option is changed, is that correct?
|
340 |
+
// TODO if it is correct, shouldn't that happen after determining that the click is valid?
|
341 |
+
options.active = options.collapsible && clickedIsActive ?
|
342 |
+
false :
|
343 |
+
this.headers.index( clicked );
|
344 |
+
|
345 |
+
// if animations are still active, or the active header is the target, ignore click
|
346 |
+
if ( this.running || ( !options.collapsible && clickedIsActive ) ) {
|
347 |
+
return;
|
348 |
+
}
|
349 |
+
|
350 |
+
// switch classes
|
351 |
+
this.active
|
352 |
+
.removeClass( "ui-state-active ui-corner-top" )
|
353 |
+
.addClass( "ui-state-default ui-corner-all" )
|
354 |
+
.children( ".ui-icon" )
|
355 |
+
.removeClass( options.icons.headerSelected )
|
356 |
+
.addClass( options.icons.header );
|
357 |
+
if ( !clickedIsActive ) {
|
358 |
+
clicked
|
359 |
+
.removeClass( "ui-state-default ui-corner-all" )
|
360 |
+
.addClass( "ui-state-active ui-corner-top" )
|
361 |
+
.children( ".ui-icon" )
|
362 |
+
.removeClass( options.icons.header )
|
363 |
+
.addClass( options.icons.headerSelected );
|
364 |
+
clicked
|
365 |
+
.next()
|
366 |
+
.addClass( "ui-accordion-content-active" );
|
367 |
+
}
|
368 |
+
|
369 |
+
// find elements to show and hide
|
370 |
+
var toShow = clicked.next(),
|
371 |
+
toHide = this.active.next(),
|
372 |
+
data = {
|
373 |
+
options: options,
|
374 |
+
newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
|
375 |
+
oldHeader: this.active,
|
376 |
+
newContent: clickedIsActive && options.collapsible ? $([]) : toShow,
|
377 |
+
oldContent: toHide
|
378 |
+
},
|
379 |
+
down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
|
380 |
+
|
381 |
+
this.active = clickedIsActive ? $([]) : clicked;
|
382 |
+
this._toggle( toShow, toHide, data, clickedIsActive, down );
|
383 |
+
|
384 |
+
return;
|
385 |
+
},
|
386 |
+
|
387 |
+
_toggle: function( toShow, toHide, data, clickedIsActive, down ) {
|
388 |
+
var self = this,
|
389 |
+
options = self.options;
|
390 |
+
|
391 |
+
self.toShow = toShow;
|
392 |
+
self.toHide = toHide;
|
393 |
+
self.data = data;
|
394 |
+
|
395 |
+
var complete = function() {
|
396 |
+
if ( !self ) {
|
397 |
+
return;
|
398 |
+
}
|
399 |
+
return self._completed.apply( self, arguments );
|
400 |
+
};
|
401 |
+
|
402 |
+
// trigger changestart event
|
403 |
+
self._trigger( "changestart", null, self.data );
|
404 |
+
|
405 |
+
// count elements to animate
|
406 |
+
self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
|
407 |
+
|
408 |
+
if ( options.animated ) {
|
409 |
+
var animOptions = {};
|
410 |
+
|
411 |
+
if ( options.collapsible && clickedIsActive ) {
|
412 |
+
animOptions = {
|
413 |
+
toShow: $( [] ),
|
414 |
+
toHide: toHide,
|
415 |
+
complete: complete,
|
416 |
+
down: down,
|
417 |
+
autoHeight: options.autoHeight || options.fillSpace
|
418 |
+
};
|
419 |
+
} else {
|
420 |
+
animOptions = {
|
421 |
+
toShow: toShow,
|
422 |
+
toHide: toHide,
|
423 |
+
complete: complete,
|
424 |
+
down: down,
|
425 |
+
autoHeight: options.autoHeight || options.fillSpace
|
426 |
+
};
|
427 |
+
}
|
428 |
+
|
429 |
+
if ( !options.proxied ) {
|
430 |
+
options.proxied = options.animated;
|
431 |
+
}
|
432 |
+
|
433 |
+
if ( !options.proxiedDuration ) {
|
434 |
+
options.proxiedDuration = options.duration;
|
435 |
+
}
|
436 |
+
|
437 |
+
options.animated = $.isFunction( options.proxied ) ?
|
438 |
+
options.proxied( animOptions ) :
|
439 |
+
options.proxied;
|
440 |
+
|
441 |
+
options.duration = $.isFunction( options.proxiedDuration ) ?
|
442 |
+
options.proxiedDuration( animOptions ) :
|
443 |
+
options.proxiedDuration;
|
444 |
+
|
445 |
+
var animations = $.ui.accordion.animations,
|
446 |
+
duration = options.duration,
|
447 |
+
easing = options.animated;
|
448 |
+
|
449 |
+
if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
|
450 |
+
easing = "slide";
|
451 |
+
}
|
452 |
+
if ( !animations[ easing ] ) {
|
453 |
+
animations[ easing ] = function( options ) {
|
454 |
+
this.slide( options, {
|
455 |
+
easing: easing,
|
456 |
+
duration: duration || 700
|
457 |
+
});
|
458 |
+
};
|
459 |
+
}
|
460 |
+
|
461 |
+
animations[ easing ]( animOptions );
|
462 |
+
} else {
|
463 |
+
if ( options.collapsible && clickedIsActive ) {
|
464 |
+
toShow.toggle();
|
465 |
+
} else {
|
466 |
+
toHide.hide();
|
467 |
+
toShow.show();
|
468 |
+
}
|
469 |
+
|
470 |
+
complete( true );
|
471 |
+
}
|
472 |
+
|
473 |
+
// TODO assert that the blur and focus triggers are really necessary, remove otherwise
|
474 |
+
toHide.prev()
|
475 |
+
.attr({
|
476 |
+
"aria-expanded": "false",
|
477 |
+
tabIndex: -1
|
478 |
+
})
|
479 |
+
.blur();
|
480 |
+
toShow.prev()
|
481 |
+
.attr({
|
482 |
+
"aria-expanded": "true",
|
483 |
+
tabIndex: 0
|
484 |
+
})
|
485 |
+
.focus();
|
486 |
+
},
|
487 |
+
|
488 |
+
_completed: function( cancel ) {
|
489 |
+
this.running = cancel ? 0 : --this.running;
|
490 |
+
if ( this.running ) {
|
491 |
+
return;
|
492 |
+
}
|
493 |
+
|
494 |
+
if ( this.options.clearStyle ) {
|
495 |
+
this.toShow.add( this.toHide ).css({
|
496 |
+
height: "",
|
497 |
+
overflow: ""
|
498 |
+
});
|
499 |
+
}
|
500 |
+
|
501 |
+
// other classes are removed before the animation; this one needs to stay until completed
|
502 |
+
this.toHide.removeClass( "ui-accordion-content-active" );
|
503 |
+
|
504 |
+
this._trigger( "change", null, this.data );
|
505 |
+
}
|
506 |
+
});
|
507 |
+
|
508 |
+
$.extend( $.ui.accordion, {
|
509 |
+
version: "1.8.7",
|
510 |
+
animations: {
|
511 |
+
slide: function( options, additions ) {
|
512 |
+
options = $.extend({
|
513 |
+
easing: "swing",
|
514 |
+
duration: 300
|
515 |
+
}, options, additions );
|
516 |
+
if ( !options.toHide.size() ) {
|
517 |
+
options.toShow.animate({
|
518 |
+
height: "show",
|
519 |
+
paddingTop: "show",
|
520 |
+
paddingBottom: "show"
|
521 |
+
}, options );
|
522 |
+
return;
|
523 |
+
}
|
524 |
+
if ( !options.toShow.size() ) {
|
525 |
+
options.toHide.animate({
|
526 |
+
height: "hide",
|
527 |
+
paddingTop: "hide",
|
528 |
+
paddingBottom: "hide"
|
529 |
+
}, options );
|
530 |
+
return;
|
531 |
+
}
|
532 |
+
var overflow = options.toShow.css( "overflow" ),
|
533 |
+
percentDone = 0,
|
534 |
+
showProps = {},
|
535 |
+
hideProps = {},
|
536 |
+
fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
|
537 |
+
originalWidth;
|
538 |
+
// fix width before calculating height of hidden element
|
539 |
+
var s = options.toShow;
|
540 |
+
originalWidth = s[0].style.width;
|
541 |
+
s.width( parseInt( s.parent().width(), 10 )
|
542 |
+
- parseInt( s.css( "paddingLeft" ), 10 )
|
543 |
+
- parseInt( s.css( "paddingRight" ), 10 )
|
544 |
+
- ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )
|
545 |
+
- ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );
|
546 |
+
|
547 |
+
$.each( fxAttrs, function( i, prop ) {
|
548 |
+
hideProps[ prop ] = "hide";
|
549 |
+
|
550 |
+
var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ );
|
551 |
+
showProps[ prop ] = {
|
552 |
+
value: parts[ 1 ],
|
553 |
+
unit: parts[ 2 ] || "px"
|
554 |
+
};
|
555 |
+
});
|
556 |
+
options.toShow.css({ height: 0, overflow: "hidden" }).show();
|
557 |
+
options.toHide
|
558 |
+
.filter( ":hidden" )
|
559 |
+
.each( options.complete )
|
560 |
+
.end()
|
561 |
+
.filter( ":visible" )
|
562 |
+
.animate( hideProps, {
|
563 |
+
step: function( now, settings ) {
|
564 |
+
// only calculate the percent when animating height
|
565 |
+
// IE gets very inconsistent results when animating elements
|
566 |
+
// with small values, which is common for padding
|
567 |
+
if ( settings.prop == "height" ) {
|
568 |
+
percentDone = ( settings.end - settings.start === 0 ) ? 0 :
|
569 |
+
( settings.now - settings.start ) / ( settings.end - settings.start );
|
570 |
+
}
|
571 |
+
|
572 |
+
options.toShow[ 0 ].style[ settings.prop ] =
|
573 |
+
( percentDone * showProps[ settings.prop ].value )
|
574 |
+
+ showProps[ settings.prop ].unit;
|
575 |
+
},
|
576 |
+
duration: options.duration,
|
577 |
+
easing: options.easing,
|
578 |
+
complete: function() {
|
579 |
+
if ( !options.autoHeight ) {
|
580 |
+
options.toShow.css( "height", "" );
|
581 |
+
}
|
582 |
+
options.toShow.css({
|
583 |
+
width: originalWidth,
|
584 |
+
overflow: overflow
|
585 |
+
});
|
586 |
+
options.complete();
|
587 |
+
}
|
588 |
+
});
|
589 |
+
},
|
590 |
+
bounceslide: function( options ) {
|
591 |
+
this.slide( options, {
|
592 |
+
easing: options.down ? "easeOutBounce" : "swing",
|
593 |
+
duration: options.down ? 1000 : 200
|
594 |
+
});
|
595 |
+
}
|
596 |
+
}
|
597 |
+
});
|
598 |
+
|
599 |
+
})( jQuery );
|
ui.datepicker.1.7.3.js
ADDED
@@ -0,0 +1,1636 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI Datepicker 1.7.3
|
3 |
+
*
|
4 |
+
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
6 |
+
* and GPL (GPL-LICENSE.txt) licenses.
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Datepicker
|
9 |
+
*
|
10 |
+
* Depends:
|
11 |
+
* ui.core.js
|
12 |
+
*/
|
13 |
+
|
14 |
+
(function($) { // hide the namespace
|
15 |
+
|
16 |
+
$.extend($.ui, { datepicker: { version: "1.7.3" } });
|
17 |
+
|
18 |
+
var PROP_NAME = 'datepicker';
|
19 |
+
|
20 |
+
/* Date picker manager.
|
21 |
+
Use the singleton instance of this class, $.datepicker, to interact with the date picker.
|
22 |
+
Settings for (groups of) date pickers are maintained in an instance object,
|
23 |
+
allowing multiple different settings on the same page. */
|
24 |
+
|
25 |
+
function Datepicker() {
|
26 |
+
this.debug = false; // Change this to true to start debugging
|
27 |
+
this._curInst = null; // The current instance in use
|
28 |
+
this._keyEvent = false; // If the last event was a key event
|
29 |
+
this._disabledInputs = []; // List of date picker inputs that have been disabled
|
30 |
+
this._datepickerShowing = false; // True if the popup picker is showing , false if not
|
31 |
+
this._inDialog = false; // True if showing within a "dialog", false if not
|
32 |
+
this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
|
33 |
+
this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
|
34 |
+
this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
|
35 |
+
this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
|
36 |
+
this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
|
37 |
+
this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
|
38 |
+
this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
|
39 |
+
this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
|
40 |
+
this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
|
41 |
+
this.regional = []; // Available regional settings, indexed by language code
|
42 |
+
this.regional[''] = { // Default regional settings
|
43 |
+
closeText: 'Done', // Display text for close link
|
44 |
+
prevText: 'Prev', // Display text for previous month link
|
45 |
+
nextText: 'Next', // Display text for next month link
|
46 |
+
currentText: 'Today', // Display text for current month link
|
47 |
+
monthNames: ['January','February','March','April','May','June',
|
48 |
+
'July','August','September','October','November','December'], // Names of months for drop-down and formatting
|
49 |
+
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
|
50 |
+
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
|
51 |
+
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
|
52 |
+
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
|
53 |
+
dateFormat: 'mm/dd/yy', // See format options on parseDate
|
54 |
+
firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
|
55 |
+
isRTL: false // True if right-to-left language, false if left-to-right
|
56 |
+
};
|
57 |
+
this._defaults = { // Global defaults for all the date picker instances
|
58 |
+
showOn: 'focus', // 'focus' for popup on focus,
|
59 |
+
// 'button' for trigger button, or 'both' for either
|
60 |
+
showAnim: 'show', // Name of jQuery animation for popup
|
61 |
+
showOptions: {}, // Options for enhanced animations
|
62 |
+
defaultDate: null, // Used when field is blank: actual date,
|
63 |
+
// +/-number for offset from today, null for today
|
64 |
+
appendText: '', // Display text following the input box, e.g. showing the format
|
65 |
+
buttonText: '...', // Text for trigger button
|
66 |
+
buttonImage: '', // URL for trigger button image
|
67 |
+
buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
|
68 |
+
hideIfNoPrevNext: false, // True to hide next/previous month links
|
69 |
+
// if not applicable, false to just disable them
|
70 |
+
navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
|
71 |
+
gotoCurrent: false, // True if today link goes back to current selection instead
|
72 |
+
changeMonth: false, // True if month can be selected directly, false if only prev/next
|
73 |
+
changeYear: false, // True if year can be selected directly, false if only prev/next
|
74 |
+
showMonthAfterYear: false, // True if the year select precedes month, false for month then year
|
75 |
+
yearRange: '-10:+10', // Range of years to display in drop-down,
|
76 |
+
// either relative to current year (-nn:+nn) or absolute (nnnn:nnnn)
|
77 |
+
showOtherMonths: false, // True to show dates in other months, false to leave blank
|
78 |
+
calculateWeek: this.iso8601Week, // How to calculate the week of the year,
|
79 |
+
// takes a Date and returns the number of the week for it
|
80 |
+
shortYearCutoff: '+10', // Short year values < this are in the current century,
|
81 |
+
// > this are in the previous century,
|
82 |
+
// string value starting with '+' for current year + value
|
83 |
+
minDate: null, // The earliest selectable date, or null for no limit
|
84 |
+
maxDate: null, // The latest selectable date, or null for no limit
|
85 |
+
duration: 'normal', // Duration of display/closure
|
86 |
+
beforeShowDay: null, // Function that takes a date and returns an array with
|
87 |
+
// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
|
88 |
+
// [2] = cell title (optional), e.g. $.datepicker.noWeekends
|
89 |
+
beforeShow: null, // Function that takes an input field and
|
90 |
+
// returns a set of custom settings for the date picker
|
91 |
+
onSelect: null, // Define a callback function when a date is selected
|
92 |
+
onChangeMonthYear: null, // Define a callback function when the month or year is changed
|
93 |
+
onClose: null, // Define a callback function when the datepicker is closed
|
94 |
+
numberOfMonths: 1, // Number of months to show at a time
|
95 |
+
showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
|
96 |
+
stepMonths: 1, // Number of months to step back/forward
|
97 |
+
stepBigMonths: 12, // Number of months to step back/forward for the big links
|
98 |
+
altField: '', // Selector for an alternate field to store selected dates into
|
99 |
+
altFormat: '', // The date format to use for the alternate field
|
100 |
+
constrainInput: true, // The input is constrained by the current date format
|
101 |
+
showButtonPanel: false // True to show button panel, false to not show it
|
102 |
+
};
|
103 |
+
$.extend(this._defaults, this.regional['']);
|
104 |
+
this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>');
|
105 |
+
}
|
106 |
+
|
107 |
+
$.extend(Datepicker.prototype, {
|
108 |
+
/* Class name added to elements to indicate already configured with a date picker. */
|
109 |
+
markerClassName: 'hasDatepicker',
|
110 |
+
|
111 |
+
/* Debug logging (if enabled). */
|
112 |
+
log: function () {
|
113 |
+
if (this.debug)
|
114 |
+
console.log.apply('', arguments);
|
115 |
+
},
|
116 |
+
|
117 |
+
/* Override the default settings for all instances of the date picker.
|
118 |
+
@param settings object - the new settings to use as defaults (anonymous object)
|
119 |
+
@return the manager object */
|
120 |
+
setDefaults: function(settings) {
|
121 |
+
extendRemove(this._defaults, settings || {});
|
122 |
+
return this;
|
123 |
+
},
|
124 |
+
|
125 |
+
/* Attach the date picker to a jQuery selection.
|
126 |
+
@param target element - the target input field or division or span
|
127 |
+
@param settings object - the new settings to use for this date picker instance (anonymous) */
|
128 |
+
_attachDatepicker: function(target, settings) {
|
129 |
+
// check for settings on the control itself - in namespace 'date:'
|
130 |
+
var inlineSettings = null;
|
131 |
+
for (var attrName in this._defaults) {
|
132 |
+
var attrValue = target.getAttribute('date:' + attrName);
|
133 |
+
if (attrValue) {
|
134 |
+
inlineSettings = inlineSettings || {};
|
135 |
+
try {
|
136 |
+
inlineSettings[attrName] = eval(attrValue);
|
137 |
+
} catch (err) {
|
138 |
+
inlineSettings[attrName] = attrValue;
|
139 |
+
}
|
140 |
+
}
|
141 |
+
}
|
142 |
+
var nodeName = target.nodeName.toLowerCase();
|
143 |
+
var inline = (nodeName == 'div' || nodeName == 'span');
|
144 |
+
if (!target.id)
|
145 |
+
target.id = 'dp' + (++this.uuid);
|
146 |
+
var inst = this._newInst($(target), inline);
|
147 |
+
inst.settings = $.extend({}, settings || {}, inlineSettings || {});
|
148 |
+
if (nodeName == 'input') {
|
149 |
+
this._connectDatepicker(target, inst);
|
150 |
+
} else if (inline) {
|
151 |
+
this._inlineDatepicker(target, inst);
|
152 |
+
}
|
153 |
+
},
|
154 |
+
|
155 |
+
/* Create a new instance object. */
|
156 |
+
_newInst: function(target, inline) {
|
157 |
+
var id = target[0].id.replace(/([:\[\]\.])/g, '\\\\$1'); // escape jQuery meta chars
|
158 |
+
return {id: id, input: target, // associated target
|
159 |
+
selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
|
160 |
+
drawMonth: 0, drawYear: 0, // month being drawn
|
161 |
+
inline: inline, // is datepicker inline or not
|
162 |
+
dpDiv: (!inline ? this.dpDiv : // presentation div
|
163 |
+
$('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))};
|
164 |
+
},
|
165 |
+
|
166 |
+
/* Attach the date picker to an input field. */
|
167 |
+
_connectDatepicker: function(target, inst) {
|
168 |
+
var input = $(target);
|
169 |
+
inst.append = $([]);
|
170 |
+
inst.trigger = $([]);
|
171 |
+
if (input.hasClass(this.markerClassName))
|
172 |
+
return;
|
173 |
+
var appendText = this._get(inst, 'appendText');
|
174 |
+
var isRTL = this._get(inst, 'isRTL');
|
175 |
+
if (appendText) {
|
176 |
+
inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
|
177 |
+
input[isRTL ? 'before' : 'after'](inst.append);
|
178 |
+
}
|
179 |
+
var showOn = this._get(inst, 'showOn');
|
180 |
+
if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
|
181 |
+
input.focus(this._showDatepicker);
|
182 |
+
if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
|
183 |
+
var buttonText = this._get(inst, 'buttonText');
|
184 |
+
var buttonImage = this._get(inst, 'buttonImage');
|
185 |
+
inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
|
186 |
+
$('<img/>').addClass(this._triggerClass).
|
187 |
+
attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
|
188 |
+
$('<button type="button"></button>').addClass(this._triggerClass).
|
189 |
+
html(buttonImage == '' ? buttonText : $('<img/>').attr(
|
190 |
+
{ src:buttonImage, alt:buttonText, title:buttonText })));
|
191 |
+
input[isRTL ? 'before' : 'after'](inst.trigger);
|
192 |
+
inst.trigger.click(function() {
|
193 |
+
if ($.datepicker._datepickerShowing && $.datepicker._lastInput == target)
|
194 |
+
$.datepicker._hideDatepicker();
|
195 |
+
else
|
196 |
+
$.datepicker._showDatepicker(target);
|
197 |
+
return false;
|
198 |
+
});
|
199 |
+
}
|
200 |
+
input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).
|
201 |
+
bind("setData.datepicker", function(event, key, value) {
|
202 |
+
inst.settings[key] = value;
|
203 |
+
}).bind("getData.datepicker", function(event, key) {
|
204 |
+
return this._get(inst, key);
|
205 |
+
});
|
206 |
+
$.data(target, PROP_NAME, inst);
|
207 |
+
},
|
208 |
+
|
209 |
+
/* Attach an inline date picker to a div. */
|
210 |
+
_inlineDatepicker: function(target, inst) {
|
211 |
+
var divSpan = $(target);
|
212 |
+
if (divSpan.hasClass(this.markerClassName))
|
213 |
+
return;
|
214 |
+
divSpan.addClass(this.markerClassName).append(inst.dpDiv).
|
215 |
+
bind("setData.datepicker", function(event, key, value){
|
216 |
+
inst.settings[key] = value;
|
217 |
+
}).bind("getData.datepicker", function(event, key){
|
218 |
+
return this._get(inst, key);
|
219 |
+
});
|
220 |
+
$.data(target, PROP_NAME, inst);
|
221 |
+
this._setDate(inst, this._getDefaultDate(inst));
|
222 |
+
this._updateDatepicker(inst);
|
223 |
+
this._updateAlternate(inst);
|
224 |
+
},
|
225 |
+
|
226 |
+
/* Pop-up the date picker in a "dialog" box.
|
227 |
+
@param input element - ignored
|
228 |
+
@param dateText string - the initial date to display (in the current format)
|
229 |
+
@param onSelect function - the function(dateText) to call when a date is selected
|
230 |
+
@param settings object - update the dialog date picker instance's settings (anonymous object)
|
231 |
+
@param pos int[2] - coordinates for the dialog's position within the screen or
|
232 |
+
event - with x/y coordinates or
|
233 |
+
leave empty for default (screen centre)
|
234 |
+
@return the manager object */
|
235 |
+
_dialogDatepicker: function(input, dateText, onSelect, settings, pos) {
|
236 |
+
var inst = this._dialogInst; // internal instance
|
237 |
+
if (!inst) {
|
238 |
+
var id = 'dp' + (++this.uuid);
|
239 |
+
this._dialogInput = $('<input type="text" id="' + id +
|
240 |
+
'" size="1" style="position: absolute; top: -100px;"/>');
|
241 |
+
this._dialogInput.keydown(this._doKeyDown);
|
242 |
+
$('body').append(this._dialogInput);
|
243 |
+
inst = this._dialogInst = this._newInst(this._dialogInput, false);
|
244 |
+
inst.settings = {};
|
245 |
+
$.data(this._dialogInput[0], PROP_NAME, inst);
|
246 |
+
}
|
247 |
+
extendRemove(inst.settings, settings || {});
|
248 |
+
this._dialogInput.val(dateText);
|
249 |
+
|
250 |
+
this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
|
251 |
+
if (!this._pos) {
|
252 |
+
var browserWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
253 |
+
var browserHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
|
254 |
+
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
|
255 |
+
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
|
256 |
+
this._pos = // should use actual width/height below
|
257 |
+
[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
|
258 |
+
}
|
259 |
+
|
260 |
+
// move input on screen for focus, but hidden behind dialog
|
261 |
+
this._dialogInput.css('left', this._pos[0] + 'px').css('top', this._pos[1] + 'px');
|
262 |
+
inst.settings.onSelect = onSelect;
|
263 |
+
this._inDialog = true;
|
264 |
+
this.dpDiv.addClass(this._dialogClass);
|
265 |
+
this._showDatepicker(this._dialogInput[0]);
|
266 |
+
if ($.blockUI)
|
267 |
+
$.blockUI(this.dpDiv);
|
268 |
+
$.data(this._dialogInput[0], PROP_NAME, inst);
|
269 |
+
return this;
|
270 |
+
},
|
271 |
+
|
272 |
+
/* Detach a datepicker from its control.
|
273 |
+
@param target element - the target input field or division or span */
|
274 |
+
_destroyDatepicker: function(target) {
|
275 |
+
var $target = $(target);
|
276 |
+
var inst = $.data(target, PROP_NAME);
|
277 |
+
if (!$target.hasClass(this.markerClassName)) {
|
278 |
+
return;
|
279 |
+
}
|
280 |
+
var nodeName = target.nodeName.toLowerCase();
|
281 |
+
$.removeData(target, PROP_NAME);
|
282 |
+
if (nodeName == 'input') {
|
283 |
+
inst.append.remove();
|
284 |
+
inst.trigger.remove();
|
285 |
+
$target.removeClass(this.markerClassName).
|
286 |
+
unbind('focus', this._showDatepicker).
|
287 |
+
unbind('keydown', this._doKeyDown).
|
288 |
+
unbind('keypress', this._doKeyPress);
|
289 |
+
} else if (nodeName == 'div' || nodeName == 'span')
|
290 |
+
$target.removeClass(this.markerClassName).empty();
|
291 |
+
},
|
292 |
+
|
293 |
+
/* Enable the date picker to a jQuery selection.
|
294 |
+
@param target element - the target input field or division or span */
|
295 |
+
_enableDatepicker: function(target) {
|
296 |
+
var $target = $(target);
|
297 |
+
var inst = $.data(target, PROP_NAME);
|
298 |
+
if (!$target.hasClass(this.markerClassName)) {
|
299 |
+
return;
|
300 |
+
}
|
301 |
+
var nodeName = target.nodeName.toLowerCase();
|
302 |
+
if (nodeName == 'input') {
|
303 |
+
target.disabled = false;
|
304 |
+
inst.trigger.filter('button').
|
305 |
+
each(function() { this.disabled = false; }).end().
|
306 |
+
filter('img').css({opacity: '1.0', cursor: ''});
|
307 |
+
}
|
308 |
+
else if (nodeName == 'div' || nodeName == 'span') {
|
309 |
+
var inline = $target.children('.' + this._inlineClass);
|
310 |
+
inline.children().removeClass('ui-state-disabled');
|
311 |
+
}
|
312 |
+
this._disabledInputs = $.map(this._disabledInputs,
|
313 |
+
function(value) { return (value == target ? null : value); }); // delete entry
|
314 |
+
},
|
315 |
+
|
316 |
+
/* Disable the date picker to a jQuery selection.
|
317 |
+
@param target element - the target input field or division or span */
|
318 |
+
_disableDatepicker: function(target) {
|
319 |
+
var $target = $(target);
|
320 |
+
var inst = $.data(target, PROP_NAME);
|
321 |
+
if (!$target.hasClass(this.markerClassName)) {
|
322 |
+
return;
|
323 |
+
}
|
324 |
+
var nodeName = target.nodeName.toLowerCase();
|
325 |
+
if (nodeName == 'input') {
|
326 |
+
target.disabled = true;
|
327 |
+
inst.trigger.filter('button').
|
328 |
+
each(function() { this.disabled = true; }).end().
|
329 |
+
filter('img').css({opacity: '0.5', cursor: 'default'});
|
330 |
+
}
|
331 |
+
else if (nodeName == 'div' || nodeName == 'span') {
|
332 |
+
var inline = $target.children('.' + this._inlineClass);
|
333 |
+
inline.children().addClass('ui-state-disabled');
|
334 |
+
}
|
335 |
+
this._disabledInputs = $.map(this._disabledInputs,
|
336 |
+
function(value) { return (value == target ? null : value); }); // delete entry
|
337 |
+
this._disabledInputs[this._disabledInputs.length] = target;
|
338 |
+
},
|
339 |
+
|
340 |
+
/* Is the first field in a jQuery collection disabled as a datepicker?
|
341 |
+
@param target element - the target input field or division or span
|
342 |
+
@return boolean - true if disabled, false if enabled */
|
343 |
+
_isDisabledDatepicker: function(target) {
|
344 |
+
if (!target) {
|
345 |
+
return false;
|
346 |
+
}
|
347 |
+
for (var i = 0; i < this._disabledInputs.length; i++) {
|
348 |
+
if (this._disabledInputs[i] == target)
|
349 |
+
return true;
|
350 |
+
}
|
351 |
+
return false;
|
352 |
+
},
|
353 |
+
|
354 |
+
/* Retrieve the instance data for the target control.
|
355 |
+
@param target element - the target input field or division or span
|
356 |
+
@return object - the associated instance data
|
357 |
+
@throws error if a jQuery problem getting data */
|
358 |
+
_getInst: function(target) {
|
359 |
+
try {
|
360 |
+
return $.data(target, PROP_NAME);
|
361 |
+
}
|
362 |
+
catch (err) {
|
363 |
+
throw 'Missing instance data for this datepicker';
|
364 |
+
}
|
365 |
+
},
|
366 |
+
|
367 |
+
/* Update or retrieve the settings for a date picker attached to an input field or division.
|
368 |
+
@param target element - the target input field or division or span
|
369 |
+
@param name object - the new settings to update or
|
370 |
+
string - the name of the setting to change or retrieve,
|
371 |
+
when retrieving also 'all' for all instance settings or
|
372 |
+
'defaults' for all global defaults
|
373 |
+
@param value any - the new value for the setting
|
374 |
+
(omit if above is an object or to retrieve a value) */
|
375 |
+
_optionDatepicker: function(target, name, value) {
|
376 |
+
var inst = this._getInst(target);
|
377 |
+
if (arguments.length == 2 && typeof name == 'string') {
|
378 |
+
return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
|
379 |
+
(inst ? (name == 'all' ? $.extend({}, inst.settings) :
|
380 |
+
this._get(inst, name)) : null));
|
381 |
+
}
|
382 |
+
var settings = name || {};
|
383 |
+
if (typeof name == 'string') {
|
384 |
+
settings = {};
|
385 |
+
settings[name] = value;
|
386 |
+
}
|
387 |
+
if (inst) {
|
388 |
+
if (this._curInst == inst) {
|
389 |
+
this._hideDatepicker(null);
|
390 |
+
}
|
391 |
+
var date = this._getDateDatepicker(target);
|
392 |
+
extendRemove(inst.settings, settings);
|
393 |
+
this._setDateDatepicker(target, date);
|
394 |
+
this._updateDatepicker(inst);
|
395 |
+
}
|
396 |
+
},
|
397 |
+
|
398 |
+
// change method deprecated
|
399 |
+
_changeDatepicker: function(target, name, value) {
|
400 |
+
this._optionDatepicker(target, name, value);
|
401 |
+
},
|
402 |
+
|
403 |
+
/* Redraw the date picker attached to an input field or division.
|
404 |
+
@param target element - the target input field or division or span */
|
405 |
+
_refreshDatepicker: function(target) {
|
406 |
+
var inst = this._getInst(target);
|
407 |
+
if (inst) {
|
408 |
+
this._updateDatepicker(inst);
|
409 |
+
}
|
410 |
+
},
|
411 |
+
|
412 |
+
/* Set the dates for a jQuery selection.
|
413 |
+
@param target element - the target input field or division or span
|
414 |
+
@param date Date - the new date
|
415 |
+
@param endDate Date - the new end date for a range (optional) */
|
416 |
+
_setDateDatepicker: function(target, date, endDate) {
|
417 |
+
var inst = this._getInst(target);
|
418 |
+
if (inst) {
|
419 |
+
this._setDate(inst, date, endDate);
|
420 |
+
this._updateDatepicker(inst);
|
421 |
+
this._updateAlternate(inst);
|
422 |
+
}
|
423 |
+
},
|
424 |
+
|
425 |
+
/* Get the date(s) for the first entry in a jQuery selection.
|
426 |
+
@param target element - the target input field or division or span
|
427 |
+
@return Date - the current date or
|
428 |
+
Date[2] - the current dates for a range */
|
429 |
+
_getDateDatepicker: function(target) {
|
430 |
+
var inst = this._getInst(target);
|
431 |
+
if (inst && !inst.inline)
|
432 |
+
this._setDateFromField(inst);
|
433 |
+
return (inst ? this._getDate(inst) : null);
|
434 |
+
},
|
435 |
+
|
436 |
+
/* Handle keystrokes. */
|
437 |
+
_doKeyDown: function(event) {
|
438 |
+
var inst = $.datepicker._getInst(event.target);
|
439 |
+
var handled = true;
|
440 |
+
var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
|
441 |
+
inst._keyEvent = true;
|
442 |
+
if ($.datepicker._datepickerShowing)
|
443 |
+
switch (event.keyCode) {
|
444 |
+
case 9: $.datepicker._hideDatepicker(null, '');
|
445 |
+
break; // hide on tab out
|
446 |
+
case 13: var sel = $('td.' + $.datepicker._dayOverClass +
|
447 |
+
', td.' + $.datepicker._currentClass, inst.dpDiv);
|
448 |
+
if (sel[0])
|
449 |
+
$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
|
450 |
+
else
|
451 |
+
$.datepicker._hideDatepicker(null, $.datepicker._get(inst, 'duration'));
|
452 |
+
return false; // don't submit the form
|
453 |
+
break; // select the value on enter
|
454 |
+
case 27: $.datepicker._hideDatepicker(null, $.datepicker._get(inst, 'duration'));
|
455 |
+
break; // hide on escape
|
456 |
+
case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
457 |
+
-$.datepicker._get(inst, 'stepBigMonths') :
|
458 |
+
-$.datepicker._get(inst, 'stepMonths')), 'M');
|
459 |
+
break; // previous month/year on page up/+ ctrl
|
460 |
+
case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
461 |
+
+$.datepicker._get(inst, 'stepBigMonths') :
|
462 |
+
+$.datepicker._get(inst, 'stepMonths')), 'M');
|
463 |
+
break; // next month/year on page down/+ ctrl
|
464 |
+
case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
|
465 |
+
handled = event.ctrlKey || event.metaKey;
|
466 |
+
break; // clear on ctrl or command +end
|
467 |
+
case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
|
468 |
+
handled = event.ctrlKey || event.metaKey;
|
469 |
+
break; // current on ctrl or command +home
|
470 |
+
case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
|
471 |
+
handled = event.ctrlKey || event.metaKey;
|
472 |
+
// -1 day on ctrl or command +left
|
473 |
+
if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
474 |
+
-$.datepicker._get(inst, 'stepBigMonths') :
|
475 |
+
-$.datepicker._get(inst, 'stepMonths')), 'M');
|
476 |
+
// next month/year on alt +left on Mac
|
477 |
+
break;
|
478 |
+
case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
|
479 |
+
handled = event.ctrlKey || event.metaKey;
|
480 |
+
break; // -1 week on ctrl or command +up
|
481 |
+
case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
|
482 |
+
handled = event.ctrlKey || event.metaKey;
|
483 |
+
// +1 day on ctrl or command +right
|
484 |
+
if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
485 |
+
+$.datepicker._get(inst, 'stepBigMonths') :
|
486 |
+
+$.datepicker._get(inst, 'stepMonths')), 'M');
|
487 |
+
// next month/year on alt +right
|
488 |
+
break;
|
489 |
+
case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
|
490 |
+
handled = event.ctrlKey || event.metaKey;
|
491 |
+
break; // +1 week on ctrl or command +down
|
492 |
+
default: handled = false;
|
493 |
+
}
|
494 |
+
else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
|
495 |
+
$.datepicker._showDatepicker(this);
|
496 |
+
else {
|
497 |
+
handled = false;
|
498 |
+
}
|
499 |
+
if (handled) {
|
500 |
+
event.preventDefault();
|
501 |
+
event.stopPropagation();
|
502 |
+
}
|
503 |
+
},
|
504 |
+
|
505 |
+
/* Filter entered characters - based on date format. */
|
506 |
+
_doKeyPress: function(event) {
|
507 |
+
var inst = $.datepicker._getInst(event.target);
|
508 |
+
if ($.datepicker._get(inst, 'constrainInput')) {
|
509 |
+
var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
|
510 |
+
var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
|
511 |
+
return event.ctrlKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
|
512 |
+
}
|
513 |
+
},
|
514 |
+
|
515 |
+
/* Pop-up the date picker for a given input field.
|
516 |
+
@param input element - the input field attached to the date picker or
|
517 |
+
event - if triggered by focus */
|
518 |
+
_showDatepicker: function(input) {
|
519 |
+
input = input.target || input;
|
520 |
+
if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
|
521 |
+
input = $('input', input.parentNode)[0];
|
522 |
+
if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
|
523 |
+
return;
|
524 |
+
var inst = $.datepicker._getInst(input);
|
525 |
+
var beforeShow = $.datepicker._get(inst, 'beforeShow');
|
526 |
+
extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
|
527 |
+
$.datepicker._hideDatepicker(null, '');
|
528 |
+
$.datepicker._lastInput = input;
|
529 |
+
$.datepicker._setDateFromField(inst);
|
530 |
+
if ($.datepicker._inDialog) // hide cursor
|
531 |
+
input.value = '';
|
532 |
+
if (!$.datepicker._pos) { // position below input
|
533 |
+
$.datepicker._pos = $.datepicker._findPos(input);
|
534 |
+
$.datepicker._pos[1] += input.offsetHeight; // add the height
|
535 |
+
}
|
536 |
+
var isFixed = false;
|
537 |
+
$(input).parents().each(function() {
|
538 |
+
isFixed |= $(this).css('position') == 'fixed';
|
539 |
+
return !isFixed;
|
540 |
+
});
|
541 |
+
if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
|
542 |
+
$.datepicker._pos[0] -= document.documentElement.scrollLeft;
|
543 |
+
$.datepicker._pos[1] -= document.documentElement.scrollTop;
|
544 |
+
}
|
545 |
+
var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
|
546 |
+
$.datepicker._pos = null;
|
547 |
+
inst.rangeStart = null;
|
548 |
+
// determine sizing offscreen
|
549 |
+
inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
|
550 |
+
$.datepicker._updateDatepicker(inst);
|
551 |
+
// fix width for dynamic number of date pickers
|
552 |
+
// and adjust position before showing
|
553 |
+
offset = $.datepicker._checkOffset(inst, offset, isFixed);
|
554 |
+
inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
|
555 |
+
'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
|
556 |
+
left: offset.left + 'px', top: offset.top + 'px'});
|
557 |
+
if (!inst.inline) {
|
558 |
+
var showAnim = $.datepicker._get(inst, 'showAnim') || 'show';
|
559 |
+
var duration = $.datepicker._get(inst, 'duration');
|
560 |
+
var postProcess = function() {
|
561 |
+
$.datepicker._datepickerShowing = true;
|
562 |
+
if ($.browser.msie && parseInt($.browser.version,10) < 7) // fix IE < 7 select problems
|
563 |
+
$('iframe.ui-datepicker-cover').css({width: inst.dpDiv.width() + 4,
|
564 |
+
height: inst.dpDiv.height() + 4});
|
565 |
+
};
|
566 |
+
if ($.effects && $.effects[showAnim])
|
567 |
+
inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
|
568 |
+
else
|
569 |
+
inst.dpDiv[showAnim](duration, postProcess);
|
570 |
+
if (duration == '')
|
571 |
+
postProcess();
|
572 |
+
if (inst.input[0].type != 'hidden')
|
573 |
+
inst.input[0].focus();
|
574 |
+
$.datepicker._curInst = inst;
|
575 |
+
}
|
576 |
+
},
|
577 |
+
|
578 |
+
/* Generate the date picker content. */
|
579 |
+
_updateDatepicker: function(inst) {
|
580 |
+
var dims = {width: inst.dpDiv.width() + 4,
|
581 |
+
height: inst.dpDiv.height() + 4};
|
582 |
+
var self = this;
|
583 |
+
inst.dpDiv.empty().append(this._generateHTML(inst))
|
584 |
+
.find('iframe.ui-datepicker-cover').
|
585 |
+
css({width: dims.width, height: dims.height})
|
586 |
+
.end()
|
587 |
+
.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
|
588 |
+
.bind('mouseout', function(){
|
589 |
+
$(this).removeClass('ui-state-hover');
|
590 |
+
if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
|
591 |
+
if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
|
592 |
+
})
|
593 |
+
.bind('mouseover', function(){
|
594 |
+
if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) {
|
595 |
+
$(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
|
596 |
+
$(this).addClass('ui-state-hover');
|
597 |
+
if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
|
598 |
+
if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
|
599 |
+
}
|
600 |
+
})
|
601 |
+
.end()
|
602 |
+
.find('.' + this._dayOverClass + ' a')
|
603 |
+
.trigger('mouseover')
|
604 |
+
.end();
|
605 |
+
var numMonths = this._getNumberOfMonths(inst);
|
606 |
+
var cols = numMonths[1];
|
607 |
+
var width = 17;
|
608 |
+
if (cols > 1) {
|
609 |
+
inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
|
610 |
+
} else {
|
611 |
+
inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
|
612 |
+
}
|
613 |
+
inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
|
614 |
+
'Class']('ui-datepicker-multi');
|
615 |
+
inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
|
616 |
+
'Class']('ui-datepicker-rtl');
|
617 |
+
if (inst.input && inst.input[0].type != 'hidden' && inst == $.datepicker._curInst)
|
618 |
+
$(inst.input[0]).focus();
|
619 |
+
},
|
620 |
+
|
621 |
+
/* Check positioning to remain on screen. */
|
622 |
+
_checkOffset: function(inst, offset, isFixed) {
|
623 |
+
var dpWidth = inst.dpDiv.outerWidth();
|
624 |
+
var dpHeight = inst.dpDiv.outerHeight();
|
625 |
+
var inputWidth = inst.input ? inst.input.outerWidth() : 0;
|
626 |
+
var inputHeight = inst.input ? inst.input.outerHeight() : 0;
|
627 |
+
var viewWidth = (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) + $(document).scrollLeft();
|
628 |
+
var viewHeight = (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) + $(document).scrollTop();
|
629 |
+
|
630 |
+
offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
|
631 |
+
offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
|
632 |
+
offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
|
633 |
+
|
634 |
+
// now check if datepicker is showing outside window viewport - move to a better place if so.
|
635 |
+
offset.left -= (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? Math.abs(offset.left + dpWidth - viewWidth) : 0;
|
636 |
+
offset.top -= (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? Math.abs(offset.top + dpHeight + inputHeight*2 - viewHeight) : 0;
|
637 |
+
|
638 |
+
return offset;
|
639 |
+
},
|
640 |
+
|
641 |
+
/* Find an object's position on the screen. */
|
642 |
+
_findPos: function(obj) {
|
643 |
+
while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
|
644 |
+
obj = obj.nextSibling;
|
645 |
+
}
|
646 |
+
var position = $(obj).offset();
|
647 |
+
return [position.left, position.top];
|
648 |
+
},
|
649 |
+
|
650 |
+
/* Hide the date picker from view.
|
651 |
+
@param input element - the input field attached to the date picker
|
652 |
+
@param duration string - the duration over which to close the date picker */
|
653 |
+
_hideDatepicker: function(input, duration) {
|
654 |
+
var inst = this._curInst;
|
655 |
+
if (!inst || (input && inst != $.data(input, PROP_NAME)))
|
656 |
+
return;
|
657 |
+
if (inst.stayOpen)
|
658 |
+
this._selectDate('#' + inst.id, this._formatDate(inst,
|
659 |
+
inst.currentDay, inst.currentMonth, inst.currentYear));
|
660 |
+
inst.stayOpen = false;
|
661 |
+
if (this._datepickerShowing) {
|
662 |
+
duration = (duration != null ? duration : this._get(inst, 'duration'));
|
663 |
+
var showAnim = this._get(inst, 'showAnim');
|
664 |
+
var postProcess = function() {
|
665 |
+
$.datepicker._tidyDialog(inst);
|
666 |
+
};
|
667 |
+
if (duration != '' && $.effects && $.effects[showAnim])
|
668 |
+
inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'),
|
669 |
+
duration, postProcess);
|
670 |
+
else
|
671 |
+
inst.dpDiv[(duration == '' ? 'hide' : (showAnim == 'slideDown' ? 'slideUp' :
|
672 |
+
(showAnim == 'fadeIn' ? 'fadeOut' : 'hide')))](duration, postProcess);
|
673 |
+
if (duration == '')
|
674 |
+
this._tidyDialog(inst);
|
675 |
+
var onClose = this._get(inst, 'onClose');
|
676 |
+
if (onClose)
|
677 |
+
onClose.apply((inst.input ? inst.input[0] : null),
|
678 |
+
[(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback
|
679 |
+
this._datepickerShowing = false;
|
680 |
+
this._lastInput = null;
|
681 |
+
if (this._inDialog) {
|
682 |
+
this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
|
683 |
+
if ($.blockUI) {
|
684 |
+
$.unblockUI();
|
685 |
+
$('body').append(this.dpDiv);
|
686 |
+
}
|
687 |
+
}
|
688 |
+
this._inDialog = false;
|
689 |
+
}
|
690 |
+
this._curInst = null;
|
691 |
+
},
|
692 |
+
|
693 |
+
/* Tidy up after a dialog display. */
|
694 |
+
_tidyDialog: function(inst) {
|
695 |
+
inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
|
696 |
+
},
|
697 |
+
|
698 |
+
/* Close date picker if clicked elsewhere. */
|
699 |
+
_checkExternalClick: function(event) {
|
700 |
+
if (!$.datepicker._curInst)
|
701 |
+
return;
|
702 |
+
var $target = $(event.target);
|
703 |
+
if (($target.parents('#' + $.datepicker._mainDivId).length == 0) &&
|
704 |
+
!$target.hasClass($.datepicker.markerClassName) &&
|
705 |
+
!$target.hasClass($.datepicker._triggerClass) &&
|
706 |
+
$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
|
707 |
+
$.datepicker._hideDatepicker(null, '');
|
708 |
+
},
|
709 |
+
|
710 |
+
/* Adjust one of the date sub-fields. */
|
711 |
+
_adjustDate: function(id, offset, period) {
|
712 |
+
var target = $(id);
|
713 |
+
var inst = this._getInst(target[0]);
|
714 |
+
if (this._isDisabledDatepicker(target[0])) {
|
715 |
+
return;
|
716 |
+
}
|
717 |
+
this._adjustInstDate(inst, offset +
|
718 |
+
(period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
|
719 |
+
period);
|
720 |
+
this._updateDatepicker(inst);
|
721 |
+
},
|
722 |
+
|
723 |
+
/* Action for current link. */
|
724 |
+
_gotoToday: function(id) {
|
725 |
+
var target = $(id);
|
726 |
+
var inst = this._getInst(target[0]);
|
727 |
+
if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
|
728 |
+
inst.selectedDay = inst.currentDay;
|
729 |
+
inst.drawMonth = inst.selectedMonth = inst.currentMonth;
|
730 |
+
inst.drawYear = inst.selectedYear = inst.currentYear;
|
731 |
+
}
|
732 |
+
else {
|
733 |
+
var date = new Date();
|
734 |
+
inst.selectedDay = date.getDate();
|
735 |
+
inst.drawMonth = inst.selectedMonth = date.getMonth();
|
736 |
+
inst.drawYear = inst.selectedYear = date.getFullYear();
|
737 |
+
}
|
738 |
+
this._notifyChange(inst);
|
739 |
+
this._adjustDate(target);
|
740 |
+
},
|
741 |
+
|
742 |
+
/* Action for selecting a new month/year. */
|
743 |
+
_selectMonthYear: function(id, select, period) {
|
744 |
+
var target = $(id);
|
745 |
+
var inst = this._getInst(target[0]);
|
746 |
+
inst._selectingMonthYear = false;
|
747 |
+
inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
|
748 |
+
inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
|
749 |
+
parseInt(select.options[select.selectedIndex].value,10);
|
750 |
+
this._notifyChange(inst);
|
751 |
+
this._adjustDate(target);
|
752 |
+
},
|
753 |
+
|
754 |
+
/* Restore input focus after not changing month/year. */
|
755 |
+
_clickMonthYear: function(id) {
|
756 |
+
var target = $(id);
|
757 |
+
var inst = this._getInst(target[0]);
|
758 |
+
if (inst.input && inst._selectingMonthYear && !$.browser.msie)
|
759 |
+
inst.input[0].focus();
|
760 |
+
inst._selectingMonthYear = !inst._selectingMonthYear;
|
761 |
+
},
|
762 |
+
|
763 |
+
/* Action for selecting a day. */
|
764 |
+
_selectDay: function(id, month, year, td) {
|
765 |
+
var target = $(id);
|
766 |
+
if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
|
767 |
+
return;
|
768 |
+
}
|
769 |
+
var inst = this._getInst(target[0]);
|
770 |
+
inst.selectedDay = inst.currentDay = $('a', td).html();
|
771 |
+
inst.selectedMonth = inst.currentMonth = month;
|
772 |
+
inst.selectedYear = inst.currentYear = year;
|
773 |
+
if (inst.stayOpen) {
|
774 |
+
inst.endDay = inst.endMonth = inst.endYear = null;
|
775 |
+
}
|
776 |
+
this._selectDate(id, this._formatDate(inst,
|
777 |
+
inst.currentDay, inst.currentMonth, inst.currentYear));
|
778 |
+
if (inst.stayOpen) {
|
779 |
+
inst.rangeStart = this._daylightSavingAdjust(
|
780 |
+
new Date(inst.currentYear, inst.currentMonth, inst.currentDay));
|
781 |
+
this._updateDatepicker(inst);
|
782 |
+
}
|
783 |
+
},
|
784 |
+
|
785 |
+
/* Erase the input field and hide the date picker. */
|
786 |
+
_clearDate: function(id) {
|
787 |
+
var target = $(id);
|
788 |
+
var inst = this._getInst(target[0]);
|
789 |
+
inst.stayOpen = false;
|
790 |
+
inst.endDay = inst.endMonth = inst.endYear = inst.rangeStart = null;
|
791 |
+
this._selectDate(target, '');
|
792 |
+
},
|
793 |
+
|
794 |
+
/* Update the input field with the selected date. */
|
795 |
+
_selectDate: function(id, dateStr) {
|
796 |
+
var target = $(id);
|
797 |
+
var inst = this._getInst(target[0]);
|
798 |
+
dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
|
799 |
+
if (inst.input)
|
800 |
+
inst.input.val(dateStr);
|
801 |
+
this._updateAlternate(inst);
|
802 |
+
var onSelect = this._get(inst, 'onSelect');
|
803 |
+
if (onSelect)
|
804 |
+
onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
|
805 |
+
else if (inst.input)
|
806 |
+
inst.input.trigger('change'); // fire the change event
|
807 |
+
if (inst.inline)
|
808 |
+
this._updateDatepicker(inst);
|
809 |
+
else if (!inst.stayOpen) {
|
810 |
+
this._hideDatepicker(null, this._get(inst, 'duration'));
|
811 |
+
this._lastInput = inst.input[0];
|
812 |
+
if (typeof(inst.input[0]) != 'object')
|
813 |
+
inst.input[0].focus(); // restore focus
|
814 |
+
this._lastInput = null;
|
815 |
+
}
|
816 |
+
},
|
817 |
+
|
818 |
+
/* Update any alternate field to synchronise with the main field. */
|
819 |
+
_updateAlternate: function(inst) {
|
820 |
+
var altField = this._get(inst, 'altField');
|
821 |
+
if (altField) { // update alternate field too
|
822 |
+
var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
|
823 |
+
var date = this._getDate(inst);
|
824 |
+
dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
|
825 |
+
$(altField).each(function() { $(this).val(dateStr); });
|
826 |
+
}
|
827 |
+
},
|
828 |
+
|
829 |
+
/* Set as beforeShowDay function to prevent selection of weekends.
|
830 |
+
@param date Date - the date to customise
|
831 |
+
@return [boolean, string] - is this date selectable?, what is its CSS class? */
|
832 |
+
noWeekends: function(date) {
|
833 |
+
var day = date.getDay();
|
834 |
+
return [(day > 0 && day < 6), ''];
|
835 |
+
},
|
836 |
+
|
837 |
+
/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
|
838 |
+
@param date Date - the date to get the week for
|
839 |
+
@return number - the number of the week within the year that contains this date */
|
840 |
+
iso8601Week: function(date) {
|
841 |
+
var checkDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
842 |
+
var firstMon = new Date(checkDate.getFullYear(), 1 - 1, 4); // First week always contains 4 Jan
|
843 |
+
var firstDay = firstMon.getDay() || 7; // Day of week: Mon = 1, ..., Sun = 7
|
844 |
+
firstMon.setDate(firstMon.getDate() + 1 - firstDay); // Preceding Monday
|
845 |
+
if (firstDay < 4 && checkDate < firstMon) { // Adjust first three days in year if necessary
|
846 |
+
checkDate.setDate(checkDate.getDate() - 3); // Generate for previous year
|
847 |
+
return $.datepicker.iso8601Week(checkDate);
|
848 |
+
} else if (checkDate > new Date(checkDate.getFullYear(), 12 - 1, 28)) { // Check last three days in year
|
849 |
+
firstDay = new Date(checkDate.getFullYear() + 1, 1 - 1, 4).getDay() || 7;
|
850 |
+
if (firstDay > 4 && (checkDate.getDay() || 7) < firstDay - 3) { // Adjust if necessary
|
851 |
+
return 1;
|
852 |
+
}
|
853 |
+
}
|
854 |
+
return Math.floor(((checkDate - firstMon) / 86400000) / 7) + 1; // Weeks to given date
|
855 |
+
},
|
856 |
+
|
857 |
+
/* Parse a string value into a date object.
|
858 |
+
See formatDate below for the possible formats.
|
859 |
+
|
860 |
+
@param format string - the expected format of the date
|
861 |
+
@param value string - the date in the above format
|
862 |
+
@param settings Object - attributes include:
|
863 |
+
shortYearCutoff number - the cutoff year for determining the century (optional)
|
864 |
+
dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
|
865 |
+
dayNames string[7] - names of the days from Sunday (optional)
|
866 |
+
monthNamesShort string[12] - abbreviated names of the months (optional)
|
867 |
+
monthNames string[12] - names of the months (optional)
|
868 |
+
@return Date - the extracted date value or null if value is blank */
|
869 |
+
parseDate: function (format, value, settings) {
|
870 |
+
if (format == null || value == null)
|
871 |
+
throw 'Invalid arguments';
|
872 |
+
value = (typeof value == 'object' ? value.toString() : value + '');
|
873 |
+
if (value == '')
|
874 |
+
return null;
|
875 |
+
var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
|
876 |
+
var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
|
877 |
+
var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
|
878 |
+
var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
|
879 |
+
var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
|
880 |
+
var year = -1;
|
881 |
+
var month = -1;
|
882 |
+
var day = -1;
|
883 |
+
var doy = -1;
|
884 |
+
var literal = false;
|
885 |
+
// Check whether a format character is doubled
|
886 |
+
var lookAhead = function(match) {
|
887 |
+
var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
|
888 |
+
if (matches)
|
889 |
+
iFormat++;
|
890 |
+
return matches;
|
891 |
+
};
|
892 |
+
// Extract a number from the string value
|
893 |
+
var getNumber = function(match) {
|
894 |
+
lookAhead(match);
|
895 |
+
var origSize = (match == '@' ? 14 : (match == 'y' ? 4 : (match == 'o' ? 3 : 2)));
|
896 |
+
var size = origSize;
|
897 |
+
var num = 0;
|
898 |
+
while (size > 0 && iValue < value.length &&
|
899 |
+
value.charAt(iValue) >= '0' && value.charAt(iValue) <= '9') {
|
900 |
+
num = num * 10 + parseInt(value.charAt(iValue++),10);
|
901 |
+
size--;
|
902 |
+
}
|
903 |
+
if (size == origSize)
|
904 |
+
throw 'Missing number at position ' + iValue;
|
905 |
+
return num;
|
906 |
+
};
|
907 |
+
// Extract a name from the string value and convert to an index
|
908 |
+
var getName = function(match, shortNames, longNames) {
|
909 |
+
var names = (lookAhead(match) ? longNames : shortNames);
|
910 |
+
var size = 0;
|
911 |
+
for (var j = 0; j < names.length; j++)
|
912 |
+
size = Math.max(size, names[j].length);
|
913 |
+
var name = '';
|
914 |
+
var iInit = iValue;
|
915 |
+
while (size > 0 && iValue < value.length) {
|
916 |
+
name += value.charAt(iValue++);
|
917 |
+
for (var i = 0; i < names.length; i++)
|
918 |
+
if (name == names[i])
|
919 |
+
return i + 1;
|
920 |
+
size--;
|
921 |
+
}
|
922 |
+
throw 'Unknown name at position ' + iInit;
|
923 |
+
};
|
924 |
+
// Confirm that a literal character matches the string value
|
925 |
+
var checkLiteral = function() {
|
926 |
+
if (value.charAt(iValue) != format.charAt(iFormat))
|
927 |
+
throw 'Unexpected literal at position ' + iValue;
|
928 |
+
iValue++;
|
929 |
+
};
|
930 |
+
var iValue = 0;
|
931 |
+
for (var iFormat = 0; iFormat < format.length; iFormat++) {
|
932 |
+
if (literal)
|
933 |
+
if (format.charAt(iFormat) == "'" && !lookAhead("'"))
|
934 |
+
literal = false;
|
935 |
+
else
|
936 |
+
checkLiteral();
|
937 |
+
else
|
938 |
+
switch (format.charAt(iFormat)) {
|
939 |
+
case 'd':
|
940 |
+
day = getNumber('d');
|
941 |
+
break;
|
942 |
+
case 'D':
|
943 |
+
getName('D', dayNamesShort, dayNames);
|
944 |
+
break;
|
945 |
+
case 'o':
|
946 |
+
doy = getNumber('o');
|
947 |
+
break;
|
948 |
+
case 'm':
|
949 |
+
month = getNumber('m');
|
950 |
+
break;
|
951 |
+
case 'M':
|
952 |
+
month = getName('M', monthNamesShort, monthNames);
|
953 |
+
break;
|
954 |
+
case 'y':
|
955 |
+
year = getNumber('y');
|
956 |
+
break;
|
957 |
+
case '@':
|
958 |
+
var date = new Date(getNumber('@'));
|
959 |
+
year = date.getFullYear();
|
960 |
+
month = date.getMonth() + 1;
|
961 |
+
day = date.getDate();
|
962 |
+
break;
|
963 |
+
case "'":
|
964 |
+
if (lookAhead("'"))
|
965 |
+
checkLiteral();
|
966 |
+
else
|
967 |
+
literal = true;
|
968 |
+
break;
|
969 |
+
default:
|
970 |
+
checkLiteral();
|
971 |
+
}
|
972 |
+
}
|
973 |
+
if (year == -1)
|
974 |
+
year = new Date().getFullYear();
|
975 |
+
else if (year < 100)
|
976 |
+
year += new Date().getFullYear() - new Date().getFullYear() % 100 +
|
977 |
+
(year <= shortYearCutoff ? 0 : -100);
|
978 |
+
if (doy > -1) {
|
979 |
+
month = 1;
|
980 |
+
day = doy;
|
981 |
+
do {
|
982 |
+
var dim = this._getDaysInMonth(year, month - 1);
|
983 |
+
if (day <= dim)
|
984 |
+
break;
|
985 |
+
month++;
|
986 |
+
day -= dim;
|
987 |
+
} while (true);
|
988 |
+
}
|
989 |
+
var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
|
990 |
+
if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
|
991 |
+
throw 'Invalid date'; // E.g. 31/02/*
|
992 |
+
return date;
|
993 |
+
},
|
994 |
+
|
995 |
+
/* Standard date formats. */
|
996 |
+
ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
|
997 |
+
COOKIE: 'D, dd M yy',
|
998 |
+
ISO_8601: 'yy-mm-dd',
|
999 |
+
RFC_822: 'D, d M y',
|
1000 |
+
RFC_850: 'DD, dd-M-y',
|
1001 |
+
RFC_1036: 'D, d M y',
|
1002 |
+
RFC_1123: 'D, d M yy',
|
1003 |
+
RFC_2822: 'D, d M yy',
|
1004 |
+
RSS: 'D, d M y', // RFC 822
|
1005 |
+
TIMESTAMP: '@',
|
1006 |
+
W3C: 'yy-mm-dd', // ISO 8601
|
1007 |
+
|
1008 |
+
/* Format a date object into a string value.
|
1009 |
+
The format can be combinations of the following:
|
1010 |
+
d - day of month (no leading zero)
|
1011 |
+
dd - day of month (two digit)
|
1012 |
+
o - day of year (no leading zeros)
|
1013 |
+
oo - day of year (three digit)
|
1014 |
+
D - day name short
|
1015 |
+
DD - day name long
|
1016 |
+
m - month of year (no leading zero)
|
1017 |
+
mm - month of year (two digit)
|
1018 |
+
M - month name short
|
1019 |
+
MM - month name long
|
1020 |
+
y - year (two digit)
|
1021 |
+
yy - year (four digit)
|
1022 |
+
@ - Unix timestamp (ms since 01/01/1970)
|
1023 |
+
'...' - literal text
|
1024 |
+
'' - single quote
|
1025 |
+
|
1026 |
+
@param format string - the desired format of the date
|
1027 |
+
@param date Date - the date value to format
|
1028 |
+
@param settings Object - attributes include:
|
1029 |
+
dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
|
1030 |
+
dayNames string[7] - names of the days from Sunday (optional)
|
1031 |
+
monthNamesShort string[12] - abbreviated names of the months (optional)
|
1032 |
+
monthNames string[12] - names of the months (optional)
|
1033 |
+
@return string - the date in the above format */
|
1034 |
+
formatDate: function (format, date, settings) {
|
1035 |
+
if (!date)
|
1036 |
+
return '';
|
1037 |
+
var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
|
1038 |
+
var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
|
1039 |
+
var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
|
1040 |
+
var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
|
1041 |
+
// Check whether a format character is doubled
|
1042 |
+
var lookAhead = function(match) {
|
1043 |
+
var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
|
1044 |
+
if (matches)
|
1045 |
+
iFormat++;
|
1046 |
+
return matches;
|
1047 |
+
};
|
1048 |
+
// Format a number, with leading zero if necessary
|
1049 |
+
var formatNumber = function(match, value, len) {
|
1050 |
+
var num = '' + value;
|
1051 |
+
if (lookAhead(match))
|
1052 |
+
while (num.length < len)
|
1053 |
+
num = '0' + num;
|
1054 |
+
return num;
|
1055 |
+
};
|
1056 |
+
// Format a name, short or long as requested
|
1057 |
+
var formatName = function(match, value, shortNames, longNames) {
|
1058 |
+
return (lookAhead(match) ? longNames[value] : shortNames[value]);
|
1059 |
+
};
|
1060 |
+
var output = '';
|
1061 |
+
var literal = false;
|
1062 |
+
if (date)
|
1063 |
+
for (var iFormat = 0; iFormat < format.length; iFormat++) {
|
1064 |
+
if (literal)
|
1065 |
+
if (format.charAt(iFormat) == "'" && !lookAhead("'"))
|
1066 |
+
literal = false;
|
1067 |
+
else
|
1068 |
+
output += format.charAt(iFormat);
|
1069 |
+
else
|
1070 |
+
switch (format.charAt(iFormat)) {
|
1071 |
+
case 'd':
|
1072 |
+
output += formatNumber('d', date.getDate(), 2);
|
1073 |
+
break;
|
1074 |
+
case 'D':
|
1075 |
+
output += formatName('D', date.getDay(), dayNamesShort, dayNames);
|
1076 |
+
break;
|
1077 |
+
case 'o':
|
1078 |
+
var doy = date.getDate();
|
1079 |
+
for (var m = date.getMonth() - 1; m >= 0; m--)
|
1080 |
+
doy += this._getDaysInMonth(date.getFullYear(), m);
|
1081 |
+
output += formatNumber('o', doy, 3);
|
1082 |
+
break;
|
1083 |
+
case 'm':
|
1084 |
+
output += formatNumber('m', date.getMonth() + 1, 2);
|
1085 |
+
break;
|
1086 |
+
case 'M':
|
1087 |
+
output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
|
1088 |
+
break;
|
1089 |
+
case 'y':
|
1090 |
+
output += (lookAhead('y') ? date.getFullYear() :
|
1091 |
+
(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
|
1092 |
+
break;
|
1093 |
+
case '@':
|
1094 |
+
output += date.getTime();
|
1095 |
+
break;
|
1096 |
+
case "'":
|
1097 |
+
if (lookAhead("'"))
|
1098 |
+
output += "'";
|
1099 |
+
else
|
1100 |
+
literal = true;
|
1101 |
+
break;
|
1102 |
+
default:
|
1103 |
+
output += format.charAt(iFormat);
|
1104 |
+
}
|
1105 |
+
}
|
1106 |
+
return output;
|
1107 |
+
},
|
1108 |
+
|
1109 |
+
/* Extract all possible characters from the date format. */
|
1110 |
+
_possibleChars: function (format) {
|
1111 |
+
var chars = '';
|
1112 |
+
var literal = false;
|
1113 |
+
for (var iFormat = 0; iFormat < format.length; iFormat++)
|
1114 |
+
if (literal)
|
1115 |
+
if (format.charAt(iFormat) == "'" && !lookAhead("'"))
|
1116 |
+
literal = false;
|
1117 |
+
else
|
1118 |
+
chars += format.charAt(iFormat);
|
1119 |
+
else
|
1120 |
+
switch (format.charAt(iFormat)) {
|
1121 |
+
case 'd': case 'm': case 'y': case '@':
|
1122 |
+
chars += '0123456789';
|
1123 |
+
break;
|
1124 |
+
case 'D': case 'M':
|
1125 |
+
return null; // Accept anything
|
1126 |
+
case "'":
|
1127 |
+
if (lookAhead("'"))
|
1128 |
+
chars += "'";
|
1129 |
+
else
|
1130 |
+
literal = true;
|
1131 |
+
break;
|
1132 |
+
default:
|
1133 |
+
chars += format.charAt(iFormat);
|
1134 |
+
}
|
1135 |
+
return chars;
|
1136 |
+
},
|
1137 |
+
|
1138 |
+
/* Get a setting value, defaulting if necessary. */
|
1139 |
+
_get: function(inst, name) {
|
1140 |
+
return inst.settings[name] !== undefined ?
|
1141 |
+
inst.settings[name] : this._defaults[name];
|
1142 |
+
},
|
1143 |
+
|
1144 |
+
/* Parse existing date and initialise date picker. */
|
1145 |
+
_setDateFromField: function(inst) {
|
1146 |
+
var dateFormat = this._get(inst, 'dateFormat');
|
1147 |
+
var dates = inst.input ? inst.input.val() : null;
|
1148 |
+
inst.endDay = inst.endMonth = inst.endYear = null;
|
1149 |
+
var date = defaultDate = this._getDefaultDate(inst);
|
1150 |
+
var settings = this._getFormatConfig(inst);
|
1151 |
+
try {
|
1152 |
+
date = this.parseDate(dateFormat, dates, settings) || defaultDate;
|
1153 |
+
} catch (event) {
|
1154 |
+
this.log(event);
|
1155 |
+
date = defaultDate;
|
1156 |
+
}
|
1157 |
+
inst.selectedDay = date.getDate();
|
1158 |
+
inst.drawMonth = inst.selectedMonth = date.getMonth();
|
1159 |
+
inst.drawYear = inst.selectedYear = date.getFullYear();
|
1160 |
+
inst.currentDay = (dates ? date.getDate() : 0);
|
1161 |
+
inst.currentMonth = (dates ? date.getMonth() : 0);
|
1162 |
+
inst.currentYear = (dates ? date.getFullYear() : 0);
|
1163 |
+
this._adjustInstDate(inst);
|
1164 |
+
},
|
1165 |
+
|
1166 |
+
/* Retrieve the default date shown on opening. */
|
1167 |
+
_getDefaultDate: function(inst) {
|
1168 |
+
var date = this._determineDate(this._get(inst, 'defaultDate'), new Date());
|
1169 |
+
var minDate = this._getMinMaxDate(inst, 'min', true);
|
1170 |
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
1171 |
+
date = (minDate && date < minDate ? minDate : date);
|
1172 |
+
date = (maxDate && date > maxDate ? maxDate : date);
|
1173 |
+
return date;
|
1174 |
+
},
|
1175 |
+
|
1176 |
+
/* A date may be specified as an exact value or a relative one. */
|
1177 |
+
_determineDate: function(date, defaultDate) {
|
1178 |
+
var offsetNumeric = function(offset) {
|
1179 |
+
var date = new Date();
|
1180 |
+
date.setDate(date.getDate() + offset);
|
1181 |
+
return date;
|
1182 |
+
};
|
1183 |
+
var offsetString = function(offset, getDaysInMonth) {
|
1184 |
+
var date = new Date();
|
1185 |
+
var year = date.getFullYear();
|
1186 |
+
var month = date.getMonth();
|
1187 |
+
var day = date.getDate();
|
1188 |
+
var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
|
1189 |
+
var matches = pattern.exec(offset);
|
1190 |
+
while (matches) {
|
1191 |
+
switch (matches[2] || 'd') {
|
1192 |
+
case 'd' : case 'D' :
|
1193 |
+
day += parseInt(matches[1],10); break;
|
1194 |
+
case 'w' : case 'W' :
|
1195 |
+
day += parseInt(matches[1],10) * 7; break;
|
1196 |
+
case 'm' : case 'M' :
|
1197 |
+
month += parseInt(matches[1],10);
|
1198 |
+
day = Math.min(day, getDaysInMonth(year, month));
|
1199 |
+
break;
|
1200 |
+
case 'y': case 'Y' :
|
1201 |
+
year += parseInt(matches[1],10);
|
1202 |
+
day = Math.min(day, getDaysInMonth(year, month));
|
1203 |
+
break;
|
1204 |
+
}
|
1205 |
+
matches = pattern.exec(offset);
|
1206 |
+
}
|
1207 |
+
return new Date(year, month, day);
|
1208 |
+
};
|
1209 |
+
date = (date == null ? defaultDate :
|
1210 |
+
(typeof date == 'string' ? offsetString(date, this._getDaysInMonth) :
|
1211 |
+
(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : date)));
|
1212 |
+
date = (date && date.toString() == 'Invalid Date' ? defaultDate : date);
|
1213 |
+
if (date) {
|
1214 |
+
date.setHours(0);
|
1215 |
+
date.setMinutes(0);
|
1216 |
+
date.setSeconds(0);
|
1217 |
+
date.setMilliseconds(0);
|
1218 |
+
}
|
1219 |
+
return this._daylightSavingAdjust(date);
|
1220 |
+
},
|
1221 |
+
|
1222 |
+
/* Handle switch to/from daylight saving.
|
1223 |
+
Hours may be non-zero on daylight saving cut-over:
|
1224 |
+
> 12 when midnight changeover, but then cannot generate
|
1225 |
+
midnight datetime, so jump to 1AM, otherwise reset.
|
1226 |
+
@param date (Date) the date to check
|
1227 |
+
@return (Date) the corrected date */
|
1228 |
+
_daylightSavingAdjust: function(date) {
|
1229 |
+
if (!date) return null;
|
1230 |
+
date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
|
1231 |
+
return date;
|
1232 |
+
},
|
1233 |
+
|
1234 |
+
/* Set the date(s) directly. */
|
1235 |
+
_setDate: function(inst, date, endDate) {
|
1236 |
+
var clear = !(date);
|
1237 |
+
var origMonth = inst.selectedMonth;
|
1238 |
+
var origYear = inst.selectedYear;
|
1239 |
+
date = this._determineDate(date, new Date());
|
1240 |
+
inst.selectedDay = inst.currentDay = date.getDate();
|
1241 |
+
inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth();
|
1242 |
+
inst.drawYear = inst.selectedYear = inst.currentYear = date.getFullYear();
|
1243 |
+
if (origMonth != inst.selectedMonth || origYear != inst.selectedYear)
|
1244 |
+
this._notifyChange(inst);
|
1245 |
+
this._adjustInstDate(inst);
|
1246 |
+
if (inst.input) {
|
1247 |
+
inst.input.val(clear ? '' : this._formatDate(inst));
|
1248 |
+
}
|
1249 |
+
},
|
1250 |
+
|
1251 |
+
/* Retrieve the date(s) directly. */
|
1252 |
+
_getDate: function(inst) {
|
1253 |
+
var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
|
1254 |
+
this._daylightSavingAdjust(new Date(
|
1255 |
+
inst.currentYear, inst.currentMonth, inst.currentDay)));
|
1256 |
+
return startDate;
|
1257 |
+
},
|
1258 |
+
|
1259 |
+
/* Generate the HTML for the current state of the date picker. */
|
1260 |
+
_generateHTML: function(inst) {
|
1261 |
+
var today = new Date();
|
1262 |
+
today = this._daylightSavingAdjust(
|
1263 |
+
new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
|
1264 |
+
var isRTL = this._get(inst, 'isRTL');
|
1265 |
+
var showButtonPanel = this._get(inst, 'showButtonPanel');
|
1266 |
+
var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
|
1267 |
+
var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
|
1268 |
+
var numMonths = this._getNumberOfMonths(inst);
|
1269 |
+
var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
|
1270 |
+
var stepMonths = this._get(inst, 'stepMonths');
|
1271 |
+
var stepBigMonths = this._get(inst, 'stepBigMonths');
|
1272 |
+
var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
|
1273 |
+
var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
|
1274 |
+
new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
|
1275 |
+
var minDate = this._getMinMaxDate(inst, 'min', true);
|
1276 |
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
1277 |
+
var drawMonth = inst.drawMonth - showCurrentAtPos;
|
1278 |
+
var drawYear = inst.drawYear;
|
1279 |
+
if (drawMonth < 0) {
|
1280 |
+
drawMonth += 12;
|
1281 |
+
drawYear--;
|
1282 |
+
}
|
1283 |
+
if (maxDate) {
|
1284 |
+
var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
|
1285 |
+
maxDate.getMonth() - numMonths[1] + 1, maxDate.getDate()));
|
1286 |
+
maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
|
1287 |
+
while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
|
1288 |
+
drawMonth--;
|
1289 |
+
if (drawMonth < 0) {
|
1290 |
+
drawMonth = 11;
|
1291 |
+
drawYear--;
|
1292 |
+
}
|
1293 |
+
}
|
1294 |
+
}
|
1295 |
+
inst.drawMonth = drawMonth;
|
1296 |
+
inst.drawYear = drawYear;
|
1297 |
+
var prevText = this._get(inst, 'prevText');
|
1298 |
+
prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
|
1299 |
+
this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
|
1300 |
+
this._getFormatConfig(inst)));
|
1301 |
+
var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
|
1302 |
+
'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
|
1303 |
+
' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
|
1304 |
+
(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
|
1305 |
+
var nextText = this._get(inst, 'nextText');
|
1306 |
+
nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
|
1307 |
+
this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
|
1308 |
+
this._getFormatConfig(inst)));
|
1309 |
+
var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
|
1310 |
+
'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
|
1311 |
+
' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
|
1312 |
+
(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
|
1313 |
+
var currentText = this._get(inst, 'currentText');
|
1314 |
+
var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
|
1315 |
+
currentText = (!navigationAsDateFormat ? currentText :
|
1316 |
+
this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
|
1317 |
+
var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
|
1318 |
+
var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
|
1319 |
+
(this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#' + inst.id + '\');"' +
|
1320 |
+
'>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
|
1321 |
+
var firstDay = parseInt(this._get(inst, 'firstDay'),10);
|
1322 |
+
firstDay = (isNaN(firstDay) ? 0 : firstDay);
|
1323 |
+
var dayNames = this._get(inst, 'dayNames');
|
1324 |
+
var dayNamesShort = this._get(inst, 'dayNamesShort');
|
1325 |
+
var dayNamesMin = this._get(inst, 'dayNamesMin');
|
1326 |
+
var monthNames = this._get(inst, 'monthNames');
|
1327 |
+
var monthNamesShort = this._get(inst, 'monthNamesShort');
|
1328 |
+
var beforeShowDay = this._get(inst, 'beforeShowDay');
|
1329 |
+
var showOtherMonths = this._get(inst, 'showOtherMonths');
|
1330 |
+
var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
|
1331 |
+
var endDate = inst.endDay ? this._daylightSavingAdjust(
|
1332 |
+
new Date(inst.endYear, inst.endMonth, inst.endDay)) : currentDate;
|
1333 |
+
var defaultDate = this._getDefaultDate(inst);
|
1334 |
+
var html = '';
|
1335 |
+
for (var row = 0; row < numMonths[0]; row++) {
|
1336 |
+
var group = '';
|
1337 |
+
for (var col = 0; col < numMonths[1]; col++) {
|
1338 |
+
var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
|
1339 |
+
var cornerClass = ' ui-corner-all';
|
1340 |
+
var calender = '';
|
1341 |
+
if (isMultiMonth) {
|
1342 |
+
calender += '<div class="ui-datepicker-group ui-datepicker-group-';
|
1343 |
+
switch (col) {
|
1344 |
+
case 0: calender += 'first'; cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
|
1345 |
+
case numMonths[1]-1: calender += 'last'; cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
|
1346 |
+
default: calender += 'middle'; cornerClass = ''; break;
|
1347 |
+
}
|
1348 |
+
calender += '">';
|
1349 |
+
}
|
1350 |
+
calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
|
1351 |
+
(/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
|
1352 |
+
(/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
|
1353 |
+
this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
|
1354 |
+
selectedDate, row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
|
1355 |
+
'</div><table class="ui-datepicker-calendar"><thead>' +
|
1356 |
+
'<tr>';
|
1357 |
+
var thead = '';
|
1358 |
+
for (var dow = 0; dow < 7; dow++) { // days of the week
|
1359 |
+
var day = (dow + firstDay) % 7;
|
1360 |
+
thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
|
1361 |
+
'<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
|
1362 |
+
}
|
1363 |
+
calender += thead + '</tr></thead><tbody>';
|
1364 |
+
var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
|
1365 |
+
if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
|
1366 |
+
inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
|
1367 |
+
var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
|
1368 |
+
var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
|
1369 |
+
var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
|
1370 |
+
for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
|
1371 |
+
calender += '<tr>';
|
1372 |
+
var tbody = '';
|
1373 |
+
for (var dow = 0; dow < 7; dow++) { // create date picker days
|
1374 |
+
var daySettings = (beforeShowDay ?
|
1375 |
+
beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
|
1376 |
+
var otherMonth = (printDate.getMonth() != drawMonth);
|
1377 |
+
var unselectable = otherMonth || !daySettings[0] ||
|
1378 |
+
(minDate && printDate < minDate) || (maxDate && printDate > maxDate);
|
1379 |
+
tbody += '<td class="' +
|
1380 |
+
((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
|
1381 |
+
(otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
|
1382 |
+
((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
|
1383 |
+
(defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
|
1384 |
+
// or defaultDate is current printedDate and defaultDate is selectedDate
|
1385 |
+
' ' + this._dayOverClass : '') + // highlight selected day
|
1386 |
+
(unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days
|
1387 |
+
(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
|
1388 |
+
(printDate.getTime() >= currentDate.getTime() && printDate.getTime() <= endDate.getTime() ? // in current range
|
1389 |
+
' ' + this._currentClass : '') + // highlight selected day
|
1390 |
+
(printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
|
1391 |
+
((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
|
1392 |
+
(unselectable ? '' : ' onclick="DP_jQuery.datepicker._selectDay(\'#' +
|
1393 |
+
inst.id + '\',' + drawMonth + ',' + drawYear + ', this);return false;"') + '>' + // actions
|
1394 |
+
(otherMonth ? (showOtherMonths ? printDate.getDate() : ' ') : // display for other months
|
1395 |
+
(unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
|
1396 |
+
(printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
|
1397 |
+
(printDate.getTime() >= currentDate.getTime() && printDate.getTime() <= endDate.getTime() ? // in current range
|
1398 |
+
' ui-state-active' : '') + // highlight selected day
|
1399 |
+
'" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display for this month
|
1400 |
+
printDate.setDate(printDate.getDate() + 1);
|
1401 |
+
printDate = this._daylightSavingAdjust(printDate);
|
1402 |
+
}
|
1403 |
+
calender += tbody + '</tr>';
|
1404 |
+
}
|
1405 |
+
drawMonth++;
|
1406 |
+
if (drawMonth > 11) {
|
1407 |
+
drawMonth = 0;
|
1408 |
+
drawYear++;
|
1409 |
+
}
|
1410 |
+
calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
|
1411 |
+
((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
|
1412 |
+
group += calender;
|
1413 |
+
}
|
1414 |
+
html += group;
|
1415 |
+
}
|
1416 |
+
html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
|
1417 |
+
'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
|
1418 |
+
inst._keyEvent = false;
|
1419 |
+
return html;
|
1420 |
+
},
|
1421 |
+
|
1422 |
+
/* Generate the month and year header. */
|
1423 |
+
_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
|
1424 |
+
selectedDate, secondary, monthNames, monthNamesShort) {
|
1425 |
+
minDate = (inst.rangeStart && minDate && selectedDate < minDate ? selectedDate : minDate);
|
1426 |
+
var changeMonth = this._get(inst, 'changeMonth');
|
1427 |
+
var changeYear = this._get(inst, 'changeYear');
|
1428 |
+
var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
|
1429 |
+
var html = '<div class="ui-datepicker-title">';
|
1430 |
+
var monthHtml = '';
|
1431 |
+
// month selection
|
1432 |
+
if (secondary || !changeMonth)
|
1433 |
+
monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span> ';
|
1434 |
+
else {
|
1435 |
+
var inMinYear = (minDate && minDate.getFullYear() == drawYear);
|
1436 |
+
var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
|
1437 |
+
monthHtml += '<select class="ui-datepicker-month" ' +
|
1438 |
+
'onchange="DP_jQuery.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
|
1439 |
+
'onclick="DP_jQuery.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
|
1440 |
+
'>';
|
1441 |
+
for (var month = 0; month < 12; month++) {
|
1442 |
+
if ((!inMinYear || month >= minDate.getMonth()) &&
|
1443 |
+
(!inMaxYear || month <= maxDate.getMonth()))
|
1444 |
+
monthHtml += '<option value="' + month + '"' +
|
1445 |
+
(month == drawMonth ? ' selected="selected"' : '') +
|
1446 |
+
'>' + monthNamesShort[month] + '</option>';
|
1447 |
+
}
|
1448 |
+
monthHtml += '</select>';
|
1449 |
+
}
|
1450 |
+
if (!showMonthAfterYear)
|
1451 |
+
html += monthHtml + ((secondary || changeMonth || changeYear) && (!(changeMonth && changeYear)) ? ' ' : '');
|
1452 |
+
// year selection
|
1453 |
+
if (secondary || !changeYear)
|
1454 |
+
html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
|
1455 |
+
else {
|
1456 |
+
// determine range of years to display
|
1457 |
+
var years = this._get(inst, 'yearRange').split(':');
|
1458 |
+
var year = 0;
|
1459 |
+
var endYear = 0;
|
1460 |
+
if (years.length != 2) {
|
1461 |
+
year = drawYear - 10;
|
1462 |
+
endYear = drawYear + 10;
|
1463 |
+
} else if (years[0].charAt(0) == '+' || years[0].charAt(0) == '-') {
|
1464 |
+
year = drawYear + parseInt(years[0], 10);
|
1465 |
+
endYear = drawYear + parseInt(years[1], 10);
|
1466 |
+
} else {
|
1467 |
+
year = parseInt(years[0], 10);
|
1468 |
+
endYear = parseInt(years[1], 10);
|
1469 |
+
}
|
1470 |
+
year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
|
1471 |
+
endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
|
1472 |
+
html += '<select class="ui-datepicker-year" ' +
|
1473 |
+
'onchange="DP_jQuery.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
|
1474 |
+
'onclick="DP_jQuery.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
|
1475 |
+
'>';
|
1476 |
+
for (; year <= endYear; year++) {
|
1477 |
+
html += '<option value="' + year + '"' +
|
1478 |
+
(year == drawYear ? ' selected="selected"' : '') +
|
1479 |
+
'>' + year + '</option>';
|
1480 |
+
}
|
1481 |
+
html += '</select>';
|
1482 |
+
}
|
1483 |
+
if (showMonthAfterYear)
|
1484 |
+
html += (secondary || changeMonth || changeYear ? ' ' : '') + monthHtml;
|
1485 |
+
html += '</div>'; // Close datepicker_header
|
1486 |
+
return html;
|
1487 |
+
},
|
1488 |
+
|
1489 |
+
/* Adjust one of the date sub-fields. */
|
1490 |
+
_adjustInstDate: function(inst, offset, period) {
|
1491 |
+
var year = inst.drawYear + (period == 'Y' ? offset : 0);
|
1492 |
+
var month = inst.drawMonth + (period == 'M' ? offset : 0);
|
1493 |
+
var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
|
1494 |
+
(period == 'D' ? offset : 0);
|
1495 |
+
var date = this._daylightSavingAdjust(new Date(year, month, day));
|
1496 |
+
// ensure it is within the bounds set
|
1497 |
+
var minDate = this._getMinMaxDate(inst, 'min', true);
|
1498 |
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
1499 |
+
date = (minDate && date < minDate ? minDate : date);
|
1500 |
+
date = (maxDate && date > maxDate ? maxDate : date);
|
1501 |
+
inst.selectedDay = date.getDate();
|
1502 |
+
inst.drawMonth = inst.selectedMonth = date.getMonth();
|
1503 |
+
inst.drawYear = inst.selectedYear = date.getFullYear();
|
1504 |
+
if (period == 'M' || period == 'Y')
|
1505 |
+
this._notifyChange(inst);
|
1506 |
+
},
|
1507 |
+
|
1508 |
+
/* Notify change of month/year. */
|
1509 |
+
_notifyChange: function(inst) {
|
1510 |
+
var onChange = this._get(inst, 'onChangeMonthYear');
|
1511 |
+
if (onChange)
|
1512 |
+
onChange.apply((inst.input ? inst.input[0] : null),
|
1513 |
+
[inst.selectedYear, inst.selectedMonth + 1, inst]);
|
1514 |
+
},
|
1515 |
+
|
1516 |
+
/* Determine the number of months to show. */
|
1517 |
+
_getNumberOfMonths: function(inst) {
|
1518 |
+
var numMonths = this._get(inst, 'numberOfMonths');
|
1519 |
+
return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
|
1520 |
+
},
|
1521 |
+
|
1522 |
+
/* Determine the current maximum date - ensure no time components are set - may be overridden for a range. */
|
1523 |
+
_getMinMaxDate: function(inst, minMax, checkRange) {
|
1524 |
+
var date = this._determineDate(this._get(inst, minMax + 'Date'), null);
|
1525 |
+
return (!checkRange || !inst.rangeStart ? date :
|
1526 |
+
(!date || inst.rangeStart > date ? inst.rangeStart : date));
|
1527 |
+
},
|
1528 |
+
|
1529 |
+
/* Find the number of days in a given month. */
|
1530 |
+
_getDaysInMonth: function(year, month) {
|
1531 |
+
return 32 - new Date(year, month, 32).getDate();
|
1532 |
+
},
|
1533 |
+
|
1534 |
+
/* Find the day of the week of the first of a month. */
|
1535 |
+
_getFirstDayOfMonth: function(year, month) {
|
1536 |
+
return new Date(year, month, 1).getDay();
|
1537 |
+
},
|
1538 |
+
|
1539 |
+
/* Determines if we should allow a "next/prev" month display change. */
|
1540 |
+
_canAdjustMonth: function(inst, offset, curYear, curMonth) {
|
1541 |
+
var numMonths = this._getNumberOfMonths(inst);
|
1542 |
+
var date = this._daylightSavingAdjust(new Date(
|
1543 |
+
curYear, curMonth + (offset < 0 ? offset : numMonths[1]), 1));
|
1544 |
+
if (offset < 0)
|
1545 |
+
date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
|
1546 |
+
return this._isInRange(inst, date);
|
1547 |
+
},
|
1548 |
+
|
1549 |
+
/* Is the given date in the accepted range? */
|
1550 |
+
_isInRange: function(inst, date) {
|
1551 |
+
// during range selection, use minimum of selected date and range start
|
1552 |
+
var newMinDate = (!inst.rangeStart ? null : this._daylightSavingAdjust(
|
1553 |
+
new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay)));
|
1554 |
+
newMinDate = (newMinDate && inst.rangeStart < newMinDate ? inst.rangeStart : newMinDate);
|
1555 |
+
var minDate = newMinDate || this._getMinMaxDate(inst, 'min');
|
1556 |
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
1557 |
+
return ((!minDate || date >= minDate) && (!maxDate || date <= maxDate));
|
1558 |
+
},
|
1559 |
+
|
1560 |
+
/* Provide the configuration settings for formatting/parsing. */
|
1561 |
+
_getFormatConfig: function(inst) {
|
1562 |
+
var shortYearCutoff = this._get(inst, 'shortYearCutoff');
|
1563 |
+
shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
|
1564 |
+
new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
|
1565 |
+
return {shortYearCutoff: shortYearCutoff,
|
1566 |
+
dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
|
1567 |
+
monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
|
1568 |
+
},
|
1569 |
+
|
1570 |
+
/* Format the given date for display. */
|
1571 |
+
_formatDate: function(inst, day, month, year) {
|
1572 |
+
if (!day) {
|
1573 |
+
inst.currentDay = inst.selectedDay;
|
1574 |
+
inst.currentMonth = inst.selectedMonth;
|
1575 |
+
inst.currentYear = inst.selectedYear;
|
1576 |
+
}
|
1577 |
+
var date = (day ? (typeof day == 'object' ? day :
|
1578 |
+
this._daylightSavingAdjust(new Date(year, month, day))) :
|
1579 |
+
this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
|
1580 |
+
return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
|
1581 |
+
}
|
1582 |
+
});
|
1583 |
+
|
1584 |
+
/* jQuery extend now ignores nulls! */
|
1585 |
+
function extendRemove(target, props) {
|
1586 |
+
$.extend(target, props);
|
1587 |
+
for (var name in props)
|
1588 |
+
if (props[name] == null || props[name] == undefined)
|
1589 |
+
target[name] = props[name];
|
1590 |
+
return target;
|
1591 |
+
};
|
1592 |
+
|
1593 |
+
/* Determine whether an object is an array. */
|
1594 |
+
function isArray(a) {
|
1595 |
+
return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
|
1596 |
+
(a.constructor && a.constructor.toString().match(/\Array\(\)/))));
|
1597 |
+
};
|
1598 |
+
|
1599 |
+
/* Invoke the datepicker functionality.
|
1600 |
+
@param options string - a command, optionally followed by additional parameters or
|
1601 |
+
Object - settings for attaching new datepicker functionality
|
1602 |
+
@return jQuery object */
|
1603 |
+
$.fn.datepicker = function(options){
|
1604 |
+
|
1605 |
+
/* Initialise the date picker. */
|
1606 |
+
if (!$.datepicker.initialized) {
|
1607 |
+
$(document).mousedown($.datepicker._checkExternalClick).
|
1608 |
+
find('body').append($.datepicker.dpDiv);
|
1609 |
+
$.datepicker.initialized = true;
|
1610 |
+
}
|
1611 |
+
|
1612 |
+
var otherArgs = Array.prototype.slice.call(arguments, 1);
|
1613 |
+
if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate'))
|
1614 |
+
return $.datepicker['_' + options + 'Datepicker'].
|
1615 |
+
apply($.datepicker, [this[0]].concat(otherArgs));
|
1616 |
+
if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
|
1617 |
+
return $.datepicker['_' + options + 'Datepicker'].
|
1618 |
+
apply($.datepicker, [this[0]].concat(otherArgs));
|
1619 |
+
return this.each(function() {
|
1620 |
+
typeof options == 'string' ?
|
1621 |
+
$.datepicker['_' + options + 'Datepicker'].
|
1622 |
+
apply($.datepicker, [this].concat(otherArgs)) :
|
1623 |
+
$.datepicker._attachDatepicker(this, options);
|
1624 |
+
});
|
1625 |
+
};
|
1626 |
+
|
1627 |
+
$.datepicker = new Datepicker(); // singleton instance
|
1628 |
+
$.datepicker.initialized = false;
|
1629 |
+
$.datepicker.uuid = new Date().getTime();
|
1630 |
+
$.datepicker.version = "1.7.3";
|
1631 |
+
|
1632 |
+
// Workaround for #4055
|
1633 |
+
// Add another global to avoid noConflict issues with inline event handlers
|
1634 |
+
window.DP_jQuery = $;
|
1635 |
+
|
1636 |
+
})(jQuery);
|
ui.datepicker.1.8.7.js
ADDED
@@ -0,0 +1,1757 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* jQuery UI Datepicker 1.8.7
|
3 |
+
*
|
4 |
+
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
5 |
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6 |
+
* http://jquery.org/license
|
7 |
+
*
|
8 |
+
* http://docs.jquery.com/UI/Datepicker
|
9 |
+
*
|
10 |
+
* Depends:
|
11 |
+
* jquery.ui.core.js
|
12 |
+
*/
|
13 |
+
(function( $, undefined ) {
|
14 |
+
|
15 |
+
$.extend($.ui, { datepicker: { version: "1.8.7" } });
|
16 |
+
|
17 |
+
var PROP_NAME = 'datepicker';
|
18 |
+
var dpuuid = new Date().getTime();
|
19 |
+
|
20 |
+
/* Date picker manager.
|
21 |
+
Use the singleton instance of this class, $.datepicker, to interact with the date picker.
|
22 |
+
Settings for (groups of) date pickers are maintained in an instance object,
|
23 |
+
allowing multiple different settings on the same page. */
|
24 |
+
|
25 |
+
function Datepicker() {
|
26 |
+
this.debug = false; // Change this to true to start debugging
|
27 |
+
this._curInst = null; // The current instance in use
|
28 |
+
this._keyEvent = false; // If the last event was a key event
|
29 |
+
this._disabledInputs = []; // List of date picker inputs that have been disabled
|
30 |
+
this._datepickerShowing = false; // True if the popup picker is showing , false if not
|
31 |
+
this._inDialog = false; // True if showing within a "dialog", false if not
|
32 |
+
this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
|
33 |
+
this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
|
34 |
+
this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
|
35 |
+
this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
|
36 |
+
this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
|
37 |
+
this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
|
38 |
+
this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
|
39 |
+
this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
|
40 |
+
this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
|
41 |
+
this.regional = []; // Available regional settings, indexed by language code
|
42 |
+
this.regional[''] = { // Default regional settings
|
43 |
+
closeText: 'Done', // Display text for close link
|
44 |
+
prevText: 'Prev', // Display text for previous month link
|
45 |
+
nextText: 'Next', // Display text for next month link
|
46 |
+
currentText: 'Today', // Display text for current month link
|
47 |
+
monthNames: ['January','February','March','April','May','June',
|
48 |
+
'July','August','September','October','November','December'], // Names of months for drop-down and formatting
|
49 |
+
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
|
50 |
+
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
|
51 |
+
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
|
52 |
+
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
|
53 |
+
weekHeader: 'Wk', // Column header for week of the year
|
54 |
+
dateFormat: 'mm/dd/yy', // See format options on parseDate
|
55 |
+
firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
|
56 |
+
isRTL: false, // True if right-to-left language, false if left-to-right
|
57 |
+
showMonthAfterYear: false, // True if the year select precedes month, false for month then year
|
58 |
+
yearSuffix: '' // Additional text to append to the year in the month headers
|
59 |
+
};
|
60 |
+
this._defaults = { // Global defaults for all the date picker instances
|
61 |
+
showOn: 'focus', // 'focus' for popup on focus,
|
62 |
+
// 'button' for trigger button, or 'both' for either
|
63 |
+
showAnim: 'fadeIn', // Name of jQuery animation for popup
|
64 |
+
showOptions: {}, // Options for enhanced animations
|
65 |
+
defaultDate: null, // Used when field is blank: actual date,
|
66 |
+
// +/-number for offset from today, null for today
|
67 |
+
appendText: '', // Display text following the input box, e.g. showing the format
|
68 |
+
buttonText: '...', // Text for trigger button
|
69 |
+
buttonImage: '', // URL for trigger button image
|
70 |
+
buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
|
71 |
+
hideIfNoPrevNext: false, // True to hide next/previous month links
|
72 |
+
// if not applicable, false to just disable them
|
73 |
+
navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
|
74 |
+
gotoCurrent: false, // True if today link goes back to current selection instead
|
75 |
+
changeMonth: false, // True if month can be selected directly, false if only prev/next
|
76 |
+
changeYear: false, // True if year can be selected directly, false if only prev/next
|
77 |
+
yearRange: 'c-10:c+10', // Range of years to display in drop-down,
|
78 |
+
// either relative to today's year (-nn:+nn), relative to currently displayed year
|
79 |
+
// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
|
80 |
+
showOtherMonths: false, // True to show dates in other months, false to leave blank
|
81 |
+
selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
|
82 |
+
showWeek: false, // True to show week of the year, false to not show it
|
83 |
+
calculateWeek: this.iso8601Week, // How to calculate the week of the year,
|
84 |
+
// takes a Date and returns the number of the week for it
|
85 |
+
shortYearCutoff: '+10', // Short year values < this are in the current century,
|
86 |
+
// > this are in the previous century,
|
87 |
+
// string value starting with '+' for current year + value
|
88 |
+
minDate: null, // The earliest selectable date, or null for no limit
|
89 |
+
maxDate: null, // The latest selectable date, or null for no limit
|
90 |
+
duration: 'fast', // Duration of display/closure
|
91 |
+
beforeShowDay: null, // Function that takes a date and returns an array with
|
92 |
+
// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
|
93 |
+
// [2] = cell title (optional), e.g. $.datepicker.noWeekends
|
94 |
+
beforeShow: null, // Function that takes an input field and
|
95 |
+
// returns a set of custom settings for the date picker
|
96 |
+
onSelect: null, // Define a callback function when a date is selected
|
97 |
+
onChangeMonthYear: null, // Define a callback function when the month or year is changed
|
98 |
+
onClose: null, // Define a callback function when the datepicker is closed
|
99 |
+
numberOfMonths: 1, // Number of months to show at a time
|
100 |
+
showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
|
101 |
+
stepMonths: 1, // Number of months to step back/forward
|
102 |
+
stepBigMonths: 12, // Number of months to step back/forward for the big links
|
103 |
+
altField: '', // Selector for an alternate field to store selected dates into
|
104 |
+
altFormat: '', // The date format to use for the alternate field
|
105 |
+
constrainInput: true, // The input is constrained by the current date format
|
106 |
+
showButtonPanel: false, // True to show button panel, false to not show it
|
107 |
+
autoSize: false // True to size the input for the date format, false to leave as is
|
108 |
+
};
|
109 |
+
$.extend(this._defaults, this.regional['']);
|
110 |
+
this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>');
|
111 |
+
}
|
112 |
+
|
113 |
+
$.extend(Datepicker.prototype, {
|
114 |
+
/* Class name added to elements to indicate already configured with a date picker. */
|
115 |
+
markerClassName: 'hasDatepicker',
|
116 |
+
|
117 |
+
/* Debug logging (if enabled). */
|
118 |
+
log: function () {
|
119 |
+
if (this.debug)
|
120 |
+
console.log.apply('', arguments);
|
121 |
+
},
|
122 |
+
|
123 |
+
// TODO rename to "widget" when switching to widget factory
|
124 |
+
_widgetDatepicker: function() {
|
125 |
+
return this.dpDiv;
|
126 |
+
},
|
127 |
+
|
128 |
+
/* Override the default settings for all instances of the date picker.
|
129 |
+
@param settings object - the new settings to use as defaults (anonymous object)
|
130 |
+
@return the manager object */
|
131 |
+
setDefaults: function(settings) {
|
132 |
+
extendRemove(this._defaults, settings || {});
|
133 |
+
return this;
|
134 |
+
},
|
135 |
+
|
136 |
+
/* Attach the date picker to a jQuery selection.
|
137 |
+
@param target element - the target input field or division or span
|
138 |
+
@param settings object - the new settings to use for this date picker instance (anonymous) */
|
139 |
+
_attachDatepicker: function(target, settings) {
|
140 |
+
// check for settings on the control itself - in namespace 'date:'
|
141 |
+
var inlineSettings = null;
|
142 |
+
for (var attrName in this._defaults) {
|
143 |
+
var attrValue = target.getAttribute('date:' + attrName);
|
144 |
+
if (attrValue) {
|
145 |
+
inlineSettings = inlineSettings || {};
|
146 |
+
try {
|
147 |
+
inlineSettings[attrName] = eval(attrValue);
|
148 |
+
} catch (err) {
|
149 |
+
inlineSettings[attrName] = attrValue;
|
150 |
+
}
|
151 |
+
}
|
152 |
+
}
|
153 |
+
var nodeName = target.nodeName.toLowerCase();
|
154 |
+
var inline = (nodeName == 'div' || nodeName == 'span');
|
155 |
+
if (!target.id) {
|
156 |
+
this.uuid += 1;
|
157 |
+
target.id = 'dp' + this.uuid;
|
158 |
+
}
|
159 |
+
var inst = this._newInst($(target), inline);
|
160 |
+
inst.settings = $.extend({}, settings || {}, inlineSettings || {});
|
161 |
+
if (nodeName == 'input') {
|
162 |
+
this._connectDatepicker(target, inst);
|
163 |
+
} else if (inline) {
|
164 |
+
this._inlineDatepicker(target, inst);
|
165 |
+
}
|
166 |
+
},
|
167 |
+
|
168 |
+
/* Create a new instance object. */
|
169 |
+
_newInst: function(target, inline) {
|
170 |
+
var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
|
171 |
+
return {id: id, input: target, // associated target
|
172 |
+
selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
|
173 |
+
drawMonth: 0, drawYear: 0, // month being drawn
|
174 |
+
inline: inline, // is datepicker inline or not
|
175 |
+
dpDiv: (!inline ? this.dpDiv : // presentation div
|
176 |
+
$('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))};
|
177 |
+
},
|
178 |
+
|
179 |
+
/* Attach the date picker to an input field. */
|
180 |
+
_connectDatepicker: function(target, inst) {
|
181 |
+
var input = $(target);
|
182 |
+
inst.append = $([]);
|
183 |
+
inst.trigger = $([]);
|
184 |
+
if (input.hasClass(this.markerClassName))
|
185 |
+
return;
|
186 |
+
this._attachments(input, inst);
|
187 |
+
input.addClass(this.markerClassName).keydown(this._doKeyDown).
|
188 |
+
keypress(this._doKeyPress).keyup(this._doKeyUp).
|
189 |
+
bind("setData.datepicker", function(event, key, value) {
|
190 |
+
inst.settings[key] = value;
|
191 |
+
}).bind("getData.datepicker", function(event, key) {
|
192 |
+
return this._get(inst, key);
|
193 |
+
});
|
194 |
+
this._autoSize(inst);
|
195 |
+
$.data(target, PROP_NAME, inst);
|
196 |
+
},
|
197 |
+
|
198 |
+
/* Make attachments based on settings. */
|
199 |
+
_attachments: function(input, inst) {
|
200 |
+
var appendText = this._get(inst, 'appendText');
|
201 |
+
var isRTL = this._get(inst, 'isRTL');
|
202 |
+
if (inst.append)
|
203 |
+
inst.append.remove();
|
204 |
+
if (appendText) {
|
205 |
+
inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
|
206 |
+
input[isRTL ? 'before' : 'after'](inst.append);
|
207 |
+
}
|
208 |
+
input.unbind('focus', this._showDatepicker);
|
209 |
+
if (inst.trigger)
|
210 |
+
inst.trigger.remove();
|
211 |
+
var showOn = this._get(inst, 'showOn');
|
212 |
+
if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
|
213 |
+
input.focus(this._showDatepicker);
|
214 |
+
if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
|
215 |
+
var buttonText = this._get(inst, 'buttonText');
|
216 |
+
var buttonImage = this._get(inst, 'buttonImage');
|
217 |
+
inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
|
218 |
+
$('<img/>').addClass(this._triggerClass).
|
219 |
+
attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
|
220 |
+
$('<button type="button"></button>').addClass(this._triggerClass).
|
221 |
+
html(buttonImage == '' ? buttonText : $('<img/>').attr(
|
222 |
+
{ src:buttonImage, alt:buttonText, title:buttonText })));
|
223 |
+
input[isRTL ? 'before' : 'after'](inst.trigger);
|
224 |
+
inst.trigger.click(function() {
|
225 |
+
if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
|
226 |
+
$.datepicker._hideDatepicker();
|
227 |
+
else
|
228 |
+
$.datepicker._showDatepicker(input[0]);
|
229 |
+
return false;
|
230 |
+
});
|
231 |
+
}
|
232 |
+
},
|
233 |
+
|
234 |
+
/* Apply the maximum length for the date format. */
|
235 |
+
_autoSize: function(inst) {
|
236 |
+
if (this._get(inst, 'autoSize') && !inst.inline) {
|
237 |
+
var date = new Date(2009, 12 - 1, 20); // Ensure double digits
|
238 |
+
var dateFormat = this._get(inst, 'dateFormat');
|
239 |
+
if (dateFormat.match(/[DM]/)) {
|
240 |
+
var findMax = function(names) {
|
241 |
+
var max = 0;
|
242 |
+
var maxI = 0;
|
243 |
+
for (var i = 0; i < names.length; i++) {
|
244 |
+
if (names[i].length > max) {
|
245 |
+
max = names[i].length;
|
246 |
+
maxI = i;
|
247 |
+
}
|
248 |
+
}
|
249 |
+
return maxI;
|
250 |
+
};
|
251 |
+
date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
|
252 |
+
'monthNames' : 'monthNamesShort'))));
|
253 |
+
date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
|
254 |
+
'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
|
255 |
+
}
|
256 |
+
inst.input.attr('size', this._formatDate(inst, date).length);
|
257 |
+
}
|
258 |
+
},
|
259 |
+
|
260 |
+
/* Attach an inline date picker to a div. */
|
261 |
+
_inlineDatepicker: function(target, inst) {
|
262 |
+
var divSpan = $(target);
|
263 |
+
if (divSpan.hasClass(this.markerClassName))
|
264 |
+
return;
|
265 |
+
divSpan.addClass(this.markerClassName).append(inst.dpDiv).
|
266 |
+
bind("setData.datepicker", function(event, key, value){
|
267 |
+
inst.settings[key] = value;
|
268 |
+
}).bind("getData.datepicker", function(event, key){
|
269 |
+
return this._get(inst, key);
|
270 |
+
});
|
271 |
+
$.data(target, PROP_NAME, inst);
|
272 |
+
this._setDate(inst, this._getDefaultDate(inst), true);
|
273 |
+
this._updateDatepicker(inst);
|
274 |
+
this._updateAlternate(inst);
|
275 |
+
inst.dpDiv.show();
|
276 |
+
},
|
277 |
+
|
278 |
+
/* Pop-up the date picker in a "dialog" box.
|
279 |
+
@param input element - ignored
|
280 |
+
@param date string or Date - the initial date to display
|
281 |
+
@param onSelect function - the function to call when a date is selected
|
282 |
+
@param settings object - update the dialog date picker instance's settings (anonymous object)
|
283 |
+
@param pos int[2] - coordinates for the dialog's position within the screen or
|
284 |
+
event - with x/y coordinates or
|
285 |
+
leave empty for default (screen centre)
|
286 |
+
@return the manager object */
|
287 |
+
_dialogDatepicker: function(input, date, onSelect, settings, pos) {
|
288 |
+
var inst = this._dialogInst; // internal instance
|
289 |
+
if (!inst) {
|
290 |
+
this.uuid += 1;
|
291 |
+
var id = 'dp' + this.uuid;
|
292 |
+
this._dialogInput = $('<input type="text" id="' + id +
|
293 |
+
'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
|
294 |
+
this._dialogInput.keydown(this._doKeyDown);
|
295 |
+
$('body').append(this._dialogInput);
|
296 |
+
inst = this._dialogInst = this._newInst(this._dialogInput, false);
|
297 |
+
inst.settings = {};
|
298 |
+
$.data(this._dialogInput[0], PROP_NAME, inst);
|
299 |
+
}
|
300 |
+
extendRemove(inst.settings, settings || {});
|
301 |
+
date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
|
302 |
+
this._dialogInput.val(date);
|
303 |
+
|
304 |
+
this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
|
305 |
+
if (!this._pos) {
|
306 |
+
var browserWidth = document.documentElement.clientWidth;
|
307 |
+
var browserHeight = document.documentElement.clientHeight;
|
308 |
+
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
|
309 |
+
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
|
310 |
+
this._pos = // should use actual width/height below
|
311 |
+
[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
|
312 |
+
}
|
313 |
+
|
314 |
+
// move input on screen for focus, but hidden behind dialog
|
315 |
+
this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
|
316 |
+
inst.settings.onSelect = onSelect;
|
317 |
+
this._inDialog = true;
|
318 |
+
this.dpDiv.addClass(this._dialogClass);
|
319 |
+
this._showDatepicker(this._dialogInput[0]);
|
320 |
+
if ($.blockUI)
|
321 |
+
$.blockUI(this.dpDiv);
|
322 |
+
$.data(this._dialogInput[0], PROP_NAME, inst);
|
323 |
+
return this;
|
324 |
+
},
|
325 |
+
|
326 |
+
/* Detach a datepicker from its control.
|
327 |
+
@param target element - the target input field or division or span */
|
328 |
+
_destroyDatepicker: function(target) {
|
329 |
+
var $target = $(target);
|
330 |
+
var inst = $.data(target, PROP_NAME);
|
331 |
+
if (!$target.hasClass(this.markerClassName)) {
|
332 |
+
return;
|
333 |
+
}
|
334 |
+
var nodeName = target.nodeName.toLowerCase();
|
335 |
+
$.removeData(target, PROP_NAME);
|
336 |
+
if (nodeName == 'input') {
|
337 |
+
inst.append.remove();
|
338 |
+
inst.trigger.remove();
|
339 |
+
$target.removeClass(this.markerClassName).
|
340 |
+
unbind('focus', this._showDatepicker).
|
341 |
+
unbind('keydown', this._doKeyDown).
|
342 |
+
unbind('keypress', this._doKeyPress).
|
343 |
+
unbind('keyup', this._doKeyUp);
|
344 |
+
} else if (nodeName == 'div' || nodeName == 'span')
|
345 |
+
$target.removeClass(this.markerClassName).empty();
|
346 |
+
},
|
347 |
+
|
348 |
+
/* Enable the date picker to a jQuery selection.
|
349 |
+
@param target element - the target input field or division or span */
|
350 |
+
_enableDatepicker: function(target) {
|
351 |
+
var $target = $(target);
|
352 |
+
var inst = $.data(target, PROP_NAME);
|
353 |
+
if (!$target.hasClass(this.markerClassName)) {
|
354 |
+
return;
|
355 |
+
}
|
356 |
+
var nodeName = target.nodeName.toLowerCase();
|
357 |
+
if (nodeName == 'input') {
|
358 |
+
target.disabled = false;
|
359 |
+
inst.trigger.filter('button').
|
360 |
+
each(function() { this.disabled = false; }).end().
|
361 |
+
filter('img').css({opacity: '1.0', cursor: ''});
|
362 |
+
}
|
363 |
+
else if (nodeName == 'div' || nodeName == 'span') {
|
364 |
+
var inline = $target.children('.' + this._inlineClass);
|
365 |
+
inline.children().removeClass('ui-state-disabled');
|
366 |
+
}
|
367 |
+
this._disabledInputs = $.map(this._disabledInputs,
|
368 |
+
function(value) { return (value == target ? null : value); }); // delete entry
|
369 |
+
},
|
370 |
+
|
371 |
+
/* Disable the date picker to a jQuery selection.
|
372 |
+
@param target element - the target input field or division or span */
|
373 |
+
_disableDatepicker: function(target) {
|
374 |
+
var $target = $(target);
|
375 |
+
var inst = $.data(target, PROP_NAME);
|
376 |
+
if (!$target.hasClass(this.markerClassName)) {
|
377 |
+
return;
|
378 |
+
}
|
379 |
+
var nodeName = target.nodeName.toLowerCase();
|
380 |
+
if (nodeName == 'input') {
|
381 |
+
target.disabled = true;
|
382 |
+
inst.trigger.filter('button').
|
383 |
+
each(function() { this.disabled = true; }).end().
|
384 |
+
filter('img').css({opacity: '0.5', cursor: 'default'});
|
385 |
+
}
|
386 |
+
else if (nodeName == 'div' || nodeName == 'span') {
|
387 |
+
var inline = $target.children('.' + this._inlineClass);
|
388 |
+
inline.children().addClass('ui-state-disabled');
|
389 |
+
}
|
390 |
+
this._disabledInputs = $.map(this._disabledInputs,
|
391 |
+
function(value) { return (value == target ? null : value); }); // delete entry
|
392 |
+
this._disabledInputs[this._disabledInputs.length] = target;
|
393 |
+
},
|
394 |
+
|
395 |
+
/* Is the first field in a jQuery collection disabled as a datepicker?
|
396 |
+
@param target element - the target input field or division or span
|
397 |
+
@return boolean - true if disabled, false if enabled */
|
398 |
+
_isDisabledDatepicker: function(target) {
|
399 |
+
if (!target) {
|
400 |
+
return false;
|
401 |
+
}
|
402 |
+
for (var i = 0; i < this._disabledInputs.length; i++) {
|
403 |
+
if (this._disabledInputs[i] == target)
|
404 |
+
return true;
|
405 |
+
}
|
406 |
+
return false;
|
407 |
+
},
|
408 |
+
|
409 |
+
/* Retrieve the instance data for the target control.
|
410 |
+
@param target element - the target input field or division or span
|
411 |
+
@return object - the associated instance data
|
412 |
+
@throws error if a jQuery problem getting data */
|
413 |
+
_getInst: function(target) {
|
414 |
+
try {
|
415 |
+
return $.data(target, PROP_NAME);
|
416 |
+
}
|
417 |
+
catch (err) {
|
418 |
+
throw 'Missing instance data for this datepicker';
|
419 |
+
}
|
420 |
+
},
|
421 |
+
|
422 |
+
/* Update or retrieve the settings for a date picker attached to an input field or division.
|
423 |
+
@param target element - the target input field or division or span
|
424 |
+
@param name object - the new settings to update or
|
425 |
+
string - the name of the setting to change or retrieve,
|
426 |
+
when retrieving also 'all' for all instance settings or
|
427 |
+
'defaults' for all global defaults
|
428 |
+
@param value any - the new value for the setting
|
429 |
+
(omit if above is an object or to retrieve a value) */
|
430 |
+
_optionDatepicker: function(target, name, value) {
|
431 |
+
var inst = this._getInst(target);
|
432 |
+
if (arguments.length == 2 && typeof name == 'string') {
|
433 |
+
return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
|
434 |
+
(inst ? (name == 'all' ? $.extend({}, inst.settings) :
|
435 |
+
this._get(inst, name)) : null));
|
436 |
+
}
|
437 |
+
var settings = name || {};
|
438 |
+
if (typeof name == 'string') {
|
439 |
+
settings = {};
|
440 |
+
settings[name] = value;
|
441 |
+
}
|
442 |
+
if (inst) {
|
443 |
+
if (this._curInst == inst) {
|
444 |
+
this._hideDatepicker();
|
445 |
+
}
|
446 |
+
var date = this._getDateDatepicker(target, true);
|
447 |
+
extendRemove(inst.settings, settings);
|
448 |
+
this._attachments($(target), inst);
|
449 |
+
this._autoSize(inst);
|
450 |
+
this._setDateDatepicker(target, date);
|
451 |
+
this._updateDatepicker(inst);
|
452 |
+
}
|
453 |
+
},
|
454 |
+
|
455 |
+
// change method deprecated
|
456 |
+
_changeDatepicker: function(target, name, value) {
|
457 |
+
this._optionDatepicker(target, name, value);
|
458 |
+
},
|
459 |
+
|
460 |
+
/* Redraw the date picker attached to an input field or division.
|
461 |
+
@param target element - the target input field or division or span */
|
462 |
+
_refreshDatepicker: function(target) {
|
463 |
+
var inst = this._getInst(target);
|
464 |
+
if (inst) {
|
465 |
+
this._updateDatepicker(inst);
|
466 |
+
}
|
467 |
+
},
|
468 |
+
|
469 |
+
/* Set the dates for a jQuery selection.
|
470 |
+
@param target element - the target input field or division or span
|
471 |
+
@param date Date - the new date */
|
472 |
+
_setDateDatepicker: function(target, date) {
|
473 |
+
var inst = this._getInst(target);
|
474 |
+
if (inst) {
|
475 |
+
this._setDate(inst, date);
|
476 |
+
this._updateDatepicker(inst);
|
477 |
+
this._updateAlternate(inst);
|
478 |
+
}
|
479 |
+
},
|
480 |
+
|
481 |
+
/* Get the date(s) for the first entry in a jQuery selection.
|
482 |
+
@param target element - the target input field or division or span
|
483 |
+
@param noDefault boolean - true if no default date is to be used
|
484 |
+
@return Date - the current date */
|
485 |
+
_getDateDatepicker: function(target, noDefault) {
|
486 |
+
var inst = this._getInst(target);
|
487 |
+
if (inst && !inst.inline)
|
488 |
+
this._setDateFromField(inst, noDefault);
|
489 |
+
return (inst ? this._getDate(inst) : null);
|
490 |
+
},
|
491 |
+
|
492 |
+
/* Handle keystrokes. */
|
493 |
+
_doKeyDown: function(event) {
|
494 |
+
var inst = $.datepicker._getInst(event.target);
|
495 |
+
var handled = true;
|
496 |
+
var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
|
497 |
+
inst._keyEvent = true;
|
498 |
+
if ($.datepicker._datepickerShowing)
|
499 |
+
switch (event.keyCode) {
|
500 |
+
case 9: $.datepicker._hideDatepicker();
|
501 |
+
handled = false;
|
502 |
+
break; // hide on tab out
|
503 |
+
case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
|
504 |
+
$.datepicker._currentClass + ')', inst.dpDiv);
|
505 |
+
if (sel[0])
|
506 |
+
$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
|
507 |
+
else
|
508 |
+
$.datepicker._hideDatepicker();
|
509 |
+
return false; // don't submit the form
|
510 |
+
break; // select the value on enter
|
511 |
+
case 27: $.datepicker._hideDatepicker();
|
512 |
+
break; // hide on escape
|
513 |
+
case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
514 |
+
-$.datepicker._get(inst, 'stepBigMonths') :
|
515 |
+
-$.datepicker._get(inst, 'stepMonths')), 'M');
|
516 |
+
break; // previous month/year on page up/+ ctrl
|
517 |
+
case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
518 |
+
+$.datepicker._get(inst, 'stepBigMonths') :
|
519 |
+
+$.datepicker._get(inst, 'stepMonths')), 'M');
|
520 |
+
break; // next month/year on page down/+ ctrl
|
521 |
+
case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
|
522 |
+
handled = event.ctrlKey || event.metaKey;
|
523 |
+
break; // clear on ctrl or command +end
|
524 |
+
case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
|
525 |
+
handled = event.ctrlKey || event.metaKey;
|
526 |
+
break; // current on ctrl or command +home
|
527 |
+
case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
|
528 |
+
handled = event.ctrlKey || event.metaKey;
|
529 |
+
// -1 day on ctrl or command +left
|
530 |
+
if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
531 |
+
-$.datepicker._get(inst, 'stepBigMonths') :
|
532 |
+
-$.datepicker._get(inst, 'stepMonths')), 'M');
|
533 |
+
// next month/year on alt +left on Mac
|
534 |
+
break;
|
535 |
+
case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
|
536 |
+
handled = event.ctrlKey || event.metaKey;
|
537 |
+
break; // -1 week on ctrl or command +up
|
538 |
+
case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
|
539 |
+
handled = event.ctrlKey || event.metaKey;
|
540 |
+
// +1 day on ctrl or command +right
|
541 |
+
if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
|
542 |
+
+$.datepicker._get(inst, 'stepBigMonths') :
|
543 |
+
+$.datepicker._get(inst, 'stepMonths')), 'M');
|
544 |
+
// next month/year on alt +right
|
545 |
+
break;
|
546 |
+
case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
|
547 |
+
handled = event.ctrlKey || event.metaKey;
|
548 |
+
break; // +1 week on ctrl or command +down
|
549 |
+
default: handled = false;
|
550 |
+
}
|
551 |
+
else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
|
552 |
+
$.datepicker._showDatepicker(this);
|
553 |
+
else {
|
554 |
+
handled = false;
|
555 |
+
}
|
556 |
+
if (handled) {
|
557 |
+
event.preventDefault();
|
558 |
+
event.stopPropagation();
|
559 |
+
}
|
560 |
+
},
|
561 |
+
|
562 |
+
/* Filter entered characters - based on date format. */
|
563 |
+
_doKeyPress: function(event) {
|
564 |
+
var inst = $.datepicker._getInst(event.target);
|
565 |
+
if ($.datepicker._get(inst, 'constrainInput')) {
|
566 |
+
var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
|
567 |
+
var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
|
568 |
+
return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
|
569 |
+
}
|
570 |
+
},
|
571 |
+
|
572 |
+
/* Synchronise manual entry and field/alternate field. */
|
573 |
+
_doKeyUp: function(event) {
|
574 |
+
var inst = $.datepicker._getInst(event.target);
|
575 |
+
if (inst.input.val() != inst.lastVal) {
|
576 |
+
try {
|
577 |
+
var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
|
578 |
+
(inst.input ? inst.input.val() : null),
|
579 |
+
$.datepicker._getFormatConfig(inst));
|
580 |
+
if (date) { // only if valid
|
581 |
+
$.datepicker._setDateFromField(inst);
|
582 |
+
$.datepicker._updateAlternate(inst);
|
583 |
+
$.datepicker._updateDatepicker(inst);
|
584 |
+
}
|
585 |
+
}
|
586 |
+
catch (event) {
|
587 |
+
$.datepicker.log(event);
|
588 |
+
}
|
589 |
+
}
|
590 |
+
return true;
|
591 |
+
},
|
592 |
+
|
593 |
+
/* Pop-up the date picker for a given input field.
|
594 |
+
@param input element - the input field attached to the date picker or
|
595 |
+
event - if triggered by focus */
|
596 |
+
_showDatepicker: function(input) {
|
597 |
+
input = input.target || input;
|
598 |
+
if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
|
599 |
+
input = $('input', input.parentNode)[0];
|
600 |
+
if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
|
601 |
+
return;
|
602 |
+
var inst = $.datepicker._getInst(input);
|
603 |
+
if ($.datepicker._curInst && $.datepicker._curInst != inst) {
|
604 |
+
$.datepicker._curInst.dpDiv.stop(true, true);
|
605 |
+
}
|
606 |
+
var beforeShow = $.datepicker._get(inst, 'beforeShow');
|
607 |
+
extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
|
608 |
+
inst.lastVal = null;
|
609 |
+
$.datepicker._lastInput = input;
|
610 |
+
$.datepicker._setDateFromField(inst);
|
611 |
+
if ($.datepicker._inDialog) // hide cursor
|
612 |
+
input.value = '';
|
613 |
+
if (!$.datepicker._pos) { // position below input
|
614 |
+
$.datepicker._pos = $.datepicker._findPos(input);
|
615 |
+
$.datepicker._pos[1] += input.offsetHeight; // add the height
|
616 |
+
}
|
617 |
+
var isFixed = false;
|
618 |
+
$(input).parents().each(function() {
|
619 |
+
isFixed |= $(this).css('position') == 'fixed';
|
620 |
+
return !isFixed;
|
621 |
+
});
|
622 |
+
if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
|
623 |
+
$.datepicker._pos[0] -= document.documentElement.scrollLeft;
|
624 |
+
$.datepicker._pos[1] -= document.documentElement.scrollTop;
|
625 |
+
}
|
626 |
+
var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
|
627 |
+
$.datepicker._pos = null;
|
628 |
+
//to avoid flashes on Firefox
|
629 |
+
inst.dpDiv.empty();
|
630 |
+
// determine sizing offscreen
|
631 |
+
inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
|
632 |
+
$.datepicker._updateDatepicker(inst);
|
633 |
+
// fix width for dynamic number of date pickers
|
634 |
+
// and adjust position before showing
|
635 |
+
offset = $.datepicker._checkOffset(inst, offset, isFixed);
|
636 |
+
inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
|
637 |
+
'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
|
638 |
+
left: offset.left + 'px', top: offset.top + 'px'});
|
639 |
+
if (!inst.inline) {
|
640 |
+
var showAnim = $.datepicker._get(inst, 'showAnim');
|
641 |
+
var duration = $.datepicker._get(inst, 'duration');
|
642 |
+
var postProcess = function() {
|
643 |
+
$.datepicker._datepickerShowing = true;
|
644 |
+
var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
|
645 |
+
if( !! cover.length ){
|
646 |
+
var borders = $.datepicker._getBorders(inst.dpDiv);
|
647 |
+
cover.css({left: -borders[0], top: -borders[1],
|
648 |
+
width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
|
649 |
+
}
|
650 |
+
};
|
651 |
+
inst.dpDiv.zIndex($(input).zIndex()+1);
|
652 |
+
if ($.effects && $.effects[showAnim])
|
653 |
+
inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
|
654 |
+
else
|
655 |
+
inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
|
656 |
+
if (!showAnim || !duration)
|
657 |
+
postProcess();
|
658 |
+
if (inst.input.is(':visible') && !inst.input.is(':disabled'))
|
659 |
+
inst.input.focus();
|
660 |
+
$.datepicker._curInst = inst;
|
661 |
+
}
|
662 |
+
},
|
663 |
+
|
664 |
+
/* Generate the date picker content. */
|
665 |
+
_updateDatepicker: function(inst) {
|
666 |
+
var self = this;
|
667 |
+
var borders = $.datepicker._getBorders(inst.dpDiv);
|
668 |
+
inst.dpDiv.empty().append(this._generateHTML(inst));
|
669 |
+
var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
|
670 |
+
if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
|
671 |
+
cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
|
672 |
+
}
|
673 |
+
inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
|
674 |
+
.bind('mouseout', function(){
|
675 |
+
$(this).removeClass('ui-state-hover');
|
676 |
+
if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
|
677 |
+
if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
|
678 |
+
})
|
679 |
+
.bind('mouseover', function(){
|
680 |
+
if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) {
|
681 |
+
$(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
|
682 |
+
$(this).addClass('ui-state-hover');
|
683 |
+
if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
|
684 |
+
if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
|
685 |
+
}
|
686 |
+
})
|
687 |
+
.end()
|
688 |
+
.find('.' + this._dayOverClass + ' a')
|
689 |
+
.trigger('mouseover')
|
690 |
+
.end();
|
691 |
+
var numMonths = this._getNumberOfMonths(inst);
|
692 |
+
var cols = numMonths[1];
|
693 |
+
var width = 17;
|
694 |
+
if (cols > 1)
|
695 |
+
inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
|
696 |
+
else
|
697 |
+
inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
|
698 |
+
inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
|
699 |
+
'Class']('ui-datepicker-multi');
|
700 |
+
inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
|
701 |
+
'Class']('ui-datepicker-rtl');
|
702 |
+
if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
|
703 |
+
inst.input.is(':visible') && !inst.input.is(':disabled'))
|
704 |
+
inst.input.focus();
|
705 |
+
// deffered render of the years select (to avoid flashes on Firefox)
|
706 |
+
if( inst.yearshtml ){
|
707 |
+
var origyearshtml = inst.yearshtml;
|
708 |
+
setTimeout(function(){
|
709 |
+
//assure that inst.yearshtml didn't change.
|
710 |
+
if( origyearshtml === inst.yearshtml ){
|
711 |
+
inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
|
712 |
+
}
|
713 |
+
origyearshtml = inst.yearshtml = null;
|
714 |
+
}, 0);
|
715 |
+
}
|
716 |
+
},
|
717 |
+
|
718 |
+
/* Retrieve the size of left and top borders for an element.
|
719 |
+
@param elem (jQuery object) the element of interest
|
720 |
+
@return (number[2]) the left and top borders */
|
721 |
+
_getBorders: function(elem) {
|
722 |
+
var convert = function(value) {
|
723 |
+
return {thin: 1, medium: 2, thick: 3}[value] || value;
|
724 |
+
};
|
725 |
+
return [parseFloat(convert(elem.css('border-left-width'))),
|
726 |
+
parseFloat(convert(elem.css('border-top-width')))];
|
727 |
+
},
|
728 |
+
|
729 |
+
/* Check positioning to remain on screen. */
|
730 |
+
_checkOffset: function(inst, offset, isFixed) {
|
731 |
+
var dpWidth = inst.dpDiv.outerWidth();
|
732 |
+
var dpHeight = inst.dpDiv.outerHeight();
|
733 |
+
var inputWidth = inst.input ? inst.input.outerWidth() : 0;
|
734 |
+
var inputHeight = inst.input ? inst.input.outerHeight() : 0;
|
735 |
+
var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
|
736 |
+
var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
|
737 |
+
|
738 |
+
offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
|
739 |
+
offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
|
740 |
+
offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
|
741 |
+
|
742 |
+
// now check if datepicker is showing outside window viewport - move to a better place if so.
|
743 |
+
offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
|
744 |
+
Math.abs(offset.left + dpWidth - viewWidth) : 0);
|
745 |
+
offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
|
746 |
+
Math.abs(dpHeight + inputHeight) : 0);
|
747 |
+
|
748 |
+
return offset;
|
749 |
+
},
|
750 |
+
|
751 |
+
/* Find an object's position on the screen. */
|
752 |
+
_findPos: function(obj) {
|
753 |
+
var inst = this._getInst(obj);
|
754 |
+
var isRTL = this._get(inst, 'isRTL');
|
755 |
+
while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
|
756 |
+
obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
|
757 |
+
}
|
758 |
+
var position = $(obj).offset();
|
759 |
+
return [position.left, position.top];
|
760 |
+
},
|
761 |
+
|
762 |
+
/* Hide the date picker from view.
|
763 |
+
@param input element - the input field attached to the date picker */
|
764 |
+
_hideDatepicker: function(input) {
|
765 |
+
var inst = this._curInst;
|
766 |
+
if (!inst || (input && inst != $.data(input, PROP_NAME)))
|
767 |
+
return;
|
768 |
+
if (this._datepickerShowing) {
|
769 |
+
var showAnim = this._get(inst, 'showAnim');
|
770 |
+
var duration = this._get(inst, 'duration');
|
771 |
+
var postProcess = function() {
|
772 |
+
$.datepicker._tidyDialog(inst);
|
773 |
+
this._curInst = null;
|
774 |
+
};
|
775 |
+
if ($.effects && $.effects[showAnim])
|
776 |
+
inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
|
777 |
+
else
|
778 |
+
inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
|
779 |
+
(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
|
780 |
+
if (!showAnim)
|
781 |
+
postProcess();
|
782 |
+
var onClose = this._get(inst, 'onClose');
|
783 |
+
if (onClose)
|
784 |
+
onClose.apply((inst.input ? inst.input[0] : null),
|
785 |
+
[(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback
|
786 |
+
this._datepickerShowing = false;
|
787 |
+
this._lastInput = null;
|
788 |
+
if (this._inDialog) {
|
789 |
+
this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
|
790 |
+
if ($.blockUI) {
|
791 |
+
$.unblockUI();
|
792 |
+
$('body').append(this.dpDiv);
|
793 |
+
}
|
794 |
+
}
|
795 |
+
this._inDialog = false;
|
796 |
+
}
|
797 |
+
},
|
798 |
+
|
799 |
+
/* Tidy up after a dialog display. */
|
800 |
+
_tidyDialog: function(inst) {
|
801 |
+
inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
|
802 |
+
},
|
803 |
+
|
804 |
+
/* Close date picker if clicked elsewhere. */
|
805 |
+
_checkExternalClick: function(event) {
|
806 |
+
if (!$.datepicker._curInst)
|
807 |
+
return;
|
808 |
+
var $target = $(event.target);
|
809 |
+
if ($target[0].id != $.datepicker._mainDivId &&
|
810 |
+
$target.parents('#' + $.datepicker._mainDivId).length == 0 &&
|
811 |
+
!$target.hasClass($.datepicker.markerClassName) &&
|
812 |
+
!$target.hasClass($.datepicker._triggerClass) &&
|
813 |
+
$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
|
814 |
+
$.datepicker._hideDatepicker();
|
815 |
+
},
|
816 |
+
|
817 |
+
/* Adjust one of the date sub-fields. */
|
818 |
+
_adjustDate: function(id, offset, period) {
|
819 |
+
var target = $(id);
|
820 |
+
var inst = this._getInst(target[0]);
|
821 |
+
if (this._isDisabledDatepicker(target[0])) {
|
822 |
+
return;
|
823 |
+
}
|
824 |
+
this._adjustInstDate(inst, offset +
|
825 |
+
(period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
|
826 |
+
period);
|
827 |
+
this._updateDatepicker(inst);
|
828 |
+
},
|
829 |
+
|
830 |
+
/* Action for current link. */
|
831 |
+
_gotoToday: function(id) {
|
832 |
+
var target = $(id);
|
833 |
+
var inst = this._getInst(target[0]);
|
834 |
+
if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
|
835 |
+
inst.selectedDay = inst.currentDay;
|
836 |
+
inst.drawMonth = inst.selectedMonth = inst.currentMonth;
|
837 |
+
inst.drawYear = inst.selectedYear = inst.currentYear;
|
838 |
+
}
|
839 |
+
else {
|
840 |
+
var date = new Date();
|
841 |
+
inst.selectedDay = date.getDate();
|
842 |
+
inst.drawMonth = inst.selectedMonth = date.getMonth();
|
843 |
+
inst.drawYear = inst.selectedYear = date.getFullYear();
|
844 |
+
}
|
845 |
+
this._notifyChange(inst);
|
846 |
+
this._adjustDate(target);
|
847 |
+
},
|
848 |
+
|
849 |
+
/* Action for selecting a new month/year. */
|
850 |
+
_selectMonthYear: function(id, select, period) {
|
851 |
+
var target = $(id);
|
852 |
+
var inst = this._getInst(target[0]);
|
853 |
+
inst._selectingMonthYear = false;
|
854 |
+
inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
|
855 |
+
inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
|
856 |
+
parseInt(select.options[select.selectedIndex].value,10);
|
857 |
+
this._notifyChange(inst);
|
858 |
+
this._adjustDate(target);
|
859 |
+
},
|
860 |
+
|
861 |
+
/* Restore input focus after not changing month/year. */
|
862 |
+
_clickMonthYear: function(id) {
|
863 |
+
var target = $(id);
|
864 |
+
var inst = this._getInst(target[0]);
|
865 |
+
if (inst.input && inst._selectingMonthYear) {
|
866 |
+
setTimeout(function() {
|
867 |
+
inst.input.focus();
|
868 |
+
}, 0);
|
869 |
+
}
|
870 |
+
inst._selectingMonthYear = !inst._selectingMonthYear;
|
871 |
+
},
|
872 |
+
|
873 |
+
/* Action for selecting a day. */
|
874 |
+
_selectDay: function(id, month, year, td) {
|
875 |
+
var target = $(id);
|
876 |
+
if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
|
877 |
+
return;
|
878 |
+
}
|
879 |
+
var inst = this._getInst(target[0]);
|
880 |
+
inst.selectedDay = inst.currentDay = $('a', td).html();
|
881 |
+
inst.selectedMonth = inst.currentMonth = month;
|
882 |
+
inst.selectedYear = inst.currentYear = year;
|
883 |
+
this._selectDate(id, this._formatDate(inst,
|
884 |
+
inst.currentDay, inst.currentMonth, inst.currentYear));
|
885 |
+
},
|
886 |
+
|
887 |
+
/* Erase the input field and hide the date picker. */
|
888 |
+
_clearDate: function(id) {
|
889 |
+
var target = $(id);
|
890 |
+
var inst = this._getInst(target[0]);
|
891 |
+
this._selectDate(target, '');
|
892 |
+
},
|
893 |
+
|
894 |
+
/* Update the input field with the selected date. */
|
895 |
+
_selectDate: function(id, dateStr) {
|
896 |
+
var target = $(id);
|
897 |
+
var inst = this._getInst(target[0]);
|
898 |
+
dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
|
899 |
+
if (inst.input)
|
900 |
+
inst.input.val(dateStr);
|
901 |
+
this._updateAlternate(inst);
|
902 |
+
var onSelect = this._get(inst, 'onSelect');
|
903 |
+
if (onSelect)
|
904 |
+
onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
|
905 |
+
else if (inst.input)
|
906 |
+
inst.input.trigger('change'); // fire the change event
|
907 |
+
if (inst.inline)
|
908 |
+
this._updateDatepicker(inst);
|
909 |
+
else {
|
910 |
+
this._hideDatepicker();
|
911 |
+
this._lastInput = inst.input[0];
|
912 |
+
if (typeof(inst.input[0]) != 'object')
|
913 |
+
inst.input.focus(); // restore focus
|
914 |
+
this._lastInput = null;
|
915 |
+
}
|
916 |
+
},
|
917 |
+
|
918 |
+
/* Update any alternate field to synchronise with the main field. */
|
919 |
+
_updateAlternate: function(inst) {
|
920 |
+
var altField = this._get(inst, 'altField');
|
921 |
+
if (altField) { // update alternate field too
|
922 |
+
var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
|
923 |
+
var date = this._getDate(inst);
|
924 |
+
var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
|
925 |
+
$(altField).each(function() { $(this).val(dateStr); });
|
926 |
+
}
|
927 |
+
},
|
928 |
+
|
929 |
+
/* Set as beforeShowDay function to prevent selection of weekends.
|
930 |
+
@param date Date - the date to customise
|
931 |
+
@return [boolean, string] - is this date selectable?, what is its CSS class? */
|
932 |
+
noWeekends: function(date) {
|
933 |
+
var day = date.getDay();
|
934 |
+
return [(day > 0 && day < 6), ''];
|
935 |
+
},
|
936 |
+
|
937 |
+
/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
|
938 |
+
@param date Date - the date to get the week for
|
939 |
+
@return number - the number of the week within the year that contains this date */
|
940 |
+
iso8601Week: function(date) {
|
941 |
+
var checkDate = new Date(date.getTime());
|
942 |
+
// Find Thursday of this week starting on Monday
|
943 |
+
checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
|
944 |
+
var time = checkDate.getTime();
|
945 |
+
checkDate.setMonth(0); // Compare with Jan 1
|
946 |
+
checkDate.setDate(1);
|
947 |
+
return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
|
948 |
+
},
|
949 |
+
|
950 |
+
/* Parse a string value into a date object.
|
951 |
+
See formatDate below for the possible formats.
|
952 |
+
|
953 |
+
@param format string - the expected format of the date
|
954 |
+
@param value string - the date in the above format
|
955 |
+
@param settings Object - attributes include:
|
956 |
+
shortYearCutoff number - the cutoff year for determining the century (optional)
|
957 |
+
dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
|
958 |
+
dayNames string[7] - names of the days from Sunday (optional)
|
959 |
+
monthNamesShort string[12] - abbreviated names of the months (optional)
|
960 |
+
monthNames string[12] - names of the months (optional)
|
961 |
+
@return Date - the extracted date value or null if value is blank */
|
962 |
+
parseDate: function (format, value, settings) {
|
963 |
+
if (format == null || value == null)
|
964 |
+
throw 'Invalid arguments';
|
965 |
+
value = (typeof value == 'object' ? value.toString() : value + '');
|
966 |
+
if (value == '')
|
967 |
+
return null;
|
968 |
+
var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
|
969 |
+
var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
|
970 |
+
var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
|
971 |
+
var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
|
972 |
+
var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
|
973 |
+
var year = -1;
|
974 |
+
var month = -1;
|
975 |
+
var day = -1;
|
976 |
+
var doy = -1;
|
977 |
+
var literal = false;
|
978 |
+
// Check whether a format character is doubled
|
979 |
+
var lookAhead = function(match) {
|
980 |
+
var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
|
981 |
+
if (matches)
|
982 |
+
iFormat++;
|
983 |
+
return matches;
|
984 |
+
};
|
985 |
+
// Extract a number from the string value
|
986 |
+
var getNumber = function(match) {
|
987 |
+
var isDoubled = lookAhead(match);
|
988 |
+
var size = (match == '@' ? 14 : (match == '!' ? 20 :
|
989 |
+
(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
|
990 |
+
var digits = new RegExp('^\\d{1,' + size + '}');
|
991 |
+
var num = value.substring(iValue).match(digits);
|
992 |
+
if (!num)
|
993 |
+
throw 'Missing number at position ' + iValue;
|
994 |
+
iValue += num[0].length;
|
995 |
+
return parseInt(num[0], 10);
|
996 |
+
};
|
997 |
+
// Extract a name from the string value and convert to an index
|
998 |
+
var getName = function(match, shortNames, longNames) {
|
999 |
+
var names = (lookAhead(match) ? longNames : shortNames);
|
1000 |
+
for (var i = 0; i < names.length; i++) {
|
1001 |
+
if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) {
|
1002 |
+
iValue += names[i].length;
|
1003 |
+
return i + 1;
|
1004 |
+
}
|
1005 |
+
}
|
1006 |
+
throw 'Unknown name at position ' + iValue;
|
1007 |
+
};
|
1008 |
+
// Confirm that a literal character matches the string value
|
1009 |
+
var checkLiteral = function() {
|
1010 |
+
if (value.charAt(iValue) != format.charAt(iFormat))
|
1011 |
+
throw 'Unexpected literal at position ' + iValue;
|
1012 |
+
iValue++;
|
1013 |
+
};
|
1014 |
+
var iValue = 0;
|
1015 |
+
for (var iFormat = 0; iFormat < format.length; iFormat++) {
|
1016 |
+
if (literal)
|
1017 |
+
if (format.charAt(iFormat) == "'" && !lookAhead("'"))
|
1018 |
+
literal = false;
|
1019 |
+
else
|
1020 |
+
checkLiteral();
|
1021 |
+
else
|
1022 |
+
switch (format.charAt(iFormat)) {
|
1023 |
+
case 'd':
|
1024 |
+
day = getNumber('d');
|
1025 |
+
break;
|
1026 |
+
case 'D':
|
1027 |
+
getName('D', dayNamesShort, dayNames);
|
1028 |
+
break;
|
1029 |
+
case 'o':
|
1030 |
+
doy = getNumber('o');
|
1031 |
+
break;
|
1032 |
+
case 'm':
|
1033 |
+
month = getNumber('m');
|
1034 |
+
break;
|
1035 |
+
case 'M':
|
1036 |
+
month = getName('M', monthNamesShort, monthNames);
|
1037 |
+
break;
|
1038 |
+
case 'y':
|
1039 |
+
year = getNumber('y');
|
1040 |
+
break;
|
1041 |
+
case '@':
|
1042 |
+
var date = new Date(getNumber('@'));
|
1043 |
+
year = date.getFullYear();
|
1044 |
+
month = date.getMonth() + 1;
|
1045 |
+
day = date.getDate();
|
1046 |
+
break;
|
1047 |
+
case '!':
|
1048 |
+
var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
|
1049 |
+
year = date.getFullYear();
|
1050 |
+
month = date.getMonth() + 1;
|
1051 |
+
day = date.getDate();
|
1052 |
+
break;
|
1053 |
+
case "'":
|
1054 |
+
if (lookAhead("'"))
|
1055 |
+
checkLiteral();
|
1056 |
+
else
|
1057 |
+
literal = true;
|
1058 |
+
break;
|
1059 |
+
default:
|
1060 |
+
checkLiteral();
|
1061 |
+
}
|
1062 |
+
}
|
1063 |
+
if (year == -1)
|
1064 |
+
year = new Date().getFullYear();
|
1065 |
+
else if (year < 100)
|
1066 |
+
year += new Date().getFullYear() - new Date().getFullYear() % 100 +
|
1067 |
+
(year <= shortYearCutoff ? 0 : -100);
|
1068 |
+
if (doy > -1) {
|
1069 |
+
month = 1;
|
1070 |
+
day = doy;
|
1071 |
+
do {
|
1072 |
+
var dim = this._getDaysInMonth(year, month - 1);
|
1073 |
+
if (day <= dim)
|
1074 |
+
break;
|
1075 |
+
month++;
|
1076 |
+
day -= dim;
|
1077 |
+
} while (true);
|
1078 |
+
}
|
1079 |
+
var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
|
1080 |
+
if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
|
1081 |
+
throw 'Invalid date'; // E.g. 31/02/*
|
1082 |
+
return date;
|
1083 |
+
},
|
1084 |
+
|
1085 |
+
/* Standard date formats. */
|
1086 |
+
ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
|
1087 |
+
COOKIE: 'D, dd M yy',
|
1088 |
+
ISO_8601: 'yy-mm-dd',
|
1089 |
+
RFC_822: 'D, d M y',
|
1090 |
+
RFC_850: 'DD, dd-M-y',
|
1091 |
+
RFC_1036: 'D, d M y',
|
1092 |
+
RFC_1123: 'D, d M yy',
|
1093 |
+
RFC_2822: 'D, d M yy',
|
1094 |
+
RSS: 'D, d M y', // RFC 822
|
1095 |
+
TICKS: '!',
|
1096 |
+
TIMESTAMP: '@',
|
1097 |
+
W3C: 'yy-mm-dd', // ISO 8601
|
1098 |
+
|
1099 |
+
_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
|
1100 |
+
Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
|
1101 |
+
|
1102 |
+
/* Format a date object into a string value.
|
1103 |
+
The format can be combinations of the following:
|
1104 |
+
d - day of month (no leading zero)
|
1105 |
+
dd - day of month (two digit)
|
1106 |
+
o - day of year (no leading zeros)
|
1107 |
+
oo - day of year (three digit)
|
1108 |
+
D - day name short
|
1109 |
+
DD - day name long
|
1110 |
+
m - month of year (no leading zero)
|
1111 |
+
mm - month of year (two digit)
|
1112 |
+
M - month name short
|
1113 |
+
MM - month name long
|
1114 |
+
y - year (two digit)
|
1115 |
+
yy - year (four digit)
|
1116 |
+
@ - Unix timestamp (ms since 01/01/1970)
|
1117 |
+
! - Windows ticks (100ns since 01/01/0001)
|
1118 |
+
'...' - literal text
|
1119 |
+
'' - single quote
|
1120 |
+
|
1121 |
+
@param format string - the desired format of the date
|
1122 |
+
@param date Date - the date value to format
|
1123 |
+
@param settings Object - attributes include:
|
1124 |
+
dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
|
1125 |
+
dayNames string[7] - names of the days from Sunday (optional)
|
1126 |
+
monthNamesShort string[12] - abbreviated names of the months (optional)
|
1127 |
+
monthNames string[12] - names of the months (optional)
|
1128 |
+
@return string - the date in the above format */
|
1129 |
+
formatDate: function (format, date, settings) {
|
1130 |
+
if (!date)
|
1131 |
+
return '';
|
1132 |
+
var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
|
1133 |
+
var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
|
1134 |
+
var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
|
1135 |
+
var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
|
1136 |
+
// Check whether a format character is doubled
|
1137 |
+
var lookAhead = function(match) {
|
1138 |
+
var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
|
1139 |
+
if (matches)
|
1140 |
+
iFormat++;
|
1141 |
+
return matches;
|
1142 |
+
};
|
1143 |
+
// Format a number, with leading zero if necessary
|
1144 |
+
var formatNumber = function(match, value, len) {
|
1145 |
+
var num = '' + value;
|
1146 |
+
if (lookAhead(match))
|
1147 |
+
while (num.length < len)
|
1148 |
+
num = '0' + num;
|
1149 |
+
return num;
|
1150 |
+
};
|
1151 |
+
// Format a name, short or long as requested
|
1152 |
+
var formatName = function(match, value, shortNames, longNames) {
|
1153 |
+
return (lookAhead(match) ? longNames[value] : shortNames[value]);
|
1154 |
+
};
|
1155 |
+
var output = '';
|
1156 |
+
var literal = false;
|
1157 |
+
if (date)
|
1158 |
+
for (var iFormat = 0; iFormat < format.length; iFormat++) {
|
1159 |
+
if (literal)
|
1160 |
+
if (format.charAt(iFormat) == "'" && !lookAhead("'"))
|
1161 |
+
literal = false;
|
1162 |
+
else
|
1163 |
+
output += format.charAt(iFormat);
|
1164 |
+
else
|
1165 |
+
switch (format.charAt(iFormat)) {
|
1166 |
+
case 'd':
|
1167 |
+
output += formatNumber('d', date.getDate(), 2);
|
1168 |
+
break;
|
1169 |
+
case 'D':
|
1170 |
+
output += formatName('D', date.getDay(), dayNamesShort, dayNames);
|
1171 |
+
break;
|
1172 |
+
case 'o':
|
1173 |
+
output += formatNumber('o',
|
1174 |
+
(date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3);
|
1175 |
+
break;
|
1176 |
+
case 'm':
|
1177 |
+
output += formatNumber('m', date.getMonth() + 1, 2);
|
1178 |
+
break;
|
1179 |
+
case 'M':
|
1180 |
+
output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
|
1181 |
+
break;
|
1182 |
+
case 'y':
|
1183 |
+
output += (lookAhead('y') ? date.getFullYear() :
|
1184 |
+
(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
|
1185 |
+
break;
|
1186 |
+
case '@':
|
1187 |
+
output += date.getTime();
|
1188 |
+
break;
|
1189 |
+
case '!':
|
1190 |
+
output += date.getTime() * 10000 + this._ticksTo1970;
|
1191 |
+
break;
|
1192 |
+
case "'":
|
1193 |
+
if (lookAhead("'"))
|
1194 |
+
output += "'";
|
1195 |
+
else
|
1196 |
+
literal = true;
|
1197 |
+
break;
|
1198 |
+
default:
|
1199 |
+
output += format.charAt(iFormat);
|
1200 |
+
}
|
1201 |
+
}
|
1202 |
+
return output;
|
1203 |
+
},
|
1204 |
+
|
1205 |
+
/* Extract all possible characters from the date format. */
|
1206 |
+
_possibleChars: function (format) {
|
1207 |
+
var chars = '';
|
1208 |
+
var literal = false;
|
1209 |
+
// Check whether a format character is doubled
|
1210 |
+
var lookAhead = function(match) {
|
1211 |
+
var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
|
1212 |
+
if (matches)
|
1213 |
+
iFormat++;
|
1214 |
+
return matches;
|
1215 |
+
};
|
1216 |
+
for (var iFormat = 0; iFormat < format.length; iFormat++)
|
1217 |
+
if (literal)
|
1218 |
+
if (format.charAt(iFormat) == "'" && !lookAhead("'"))
|
1219 |
+
literal = false;
|
1220 |
+
else
|
1221 |
+
chars += format.charAt(iFormat);
|
1222 |
+
else
|
1223 |
+
switch (format.charAt(iFormat)) {
|
1224 |
+
case 'd': case 'm': case 'y': case '@':
|
1225 |
+
chars += '0123456789';
|
1226 |
+
break;
|
1227 |
+
case 'D': case 'M':
|
1228 |
+
return null; // Accept anything
|
1229 |
+
case "'":
|
1230 |
+
if (lookAhead("'"))
|
1231 |
+
chars += "'";
|
1232 |
+
else
|
1233 |
+
literal = true;
|
1234 |
+
break;
|
1235 |
+
default:
|
1236 |
+
chars += format.charAt(iFormat);
|
1237 |
+
}
|
1238 |
+
return chars;
|
1239 |
+
},
|
1240 |
+
|
1241 |
+
/* Get a setting value, defaulting if necessary. */
|
1242 |
+
_get: function(inst, name) {
|
1243 |
+
return inst.settings[name] !== undefined ?
|
1244 |
+
inst.settings[name] : this._defaults[name];
|
1245 |
+
},
|
1246 |
+
|
1247 |
+
/* Parse existing date and initialise date picker. */
|
1248 |
+
_setDateFromField: function(inst, noDefault) {
|
1249 |
+
if (inst.input.val() == inst.lastVal) {
|
1250 |
+
return;
|
1251 |
+
}
|
1252 |
+
var dateFormat = this._get(inst, 'dateFormat');
|
1253 |
+
var dates = inst.lastVal = inst.input ? inst.input.val() : null;
|
1254 |
+
var date, defaultDate;
|
1255 |
+
date = defaultDate = this._getDefaultDate(inst);
|
1256 |
+
var settings = this._getFormatConfig(inst);
|
1257 |
+
try {
|
1258 |
+
date = this.parseDate(dateFormat, dates, settings) || defaultDate;
|
1259 |
+
} catch (event) {
|
1260 |
+
this.log(event);
|
1261 |
+
dates = (noDefault ? '' : dates);
|
1262 |
+
}
|
1263 |
+
inst.selectedDay = date.getDate();
|
1264 |
+
inst.drawMonth = inst.selectedMonth = date.getMonth();
|
1265 |
+
inst.drawYear = inst.selectedYear = date.getFullYear();
|
1266 |
+
inst.currentDay = (dates ? date.getDate() : 0);
|
1267 |
+
inst.currentMonth = (dates ? date.getMonth() : 0);
|
1268 |
+
inst.currentYear = (dates ? date.getFullYear() : 0);
|
1269 |
+
this._adjustInstDate(inst);
|
1270 |
+
},
|
1271 |
+
|
1272 |
+
/* Retrieve the default date shown on opening. */
|
1273 |
+
_getDefaultDate: function(inst) {
|
1274 |
+
return this._restrictMinMax(inst,
|
1275 |
+
this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
|
1276 |
+
},
|
1277 |
+
|
1278 |
+
/* A date may be specified as an exact value or a relative one. */
|
1279 |
+
_determineDate: function(inst, date, defaultDate) {
|
1280 |
+
var offsetNumeric = function(offset) {
|
1281 |
+
var date = new Date();
|
1282 |
+
date.setDate(date.getDate() + offset);
|
1283 |
+
return date;
|
1284 |
+
};
|
1285 |
+
var offsetString = function(offset) {
|
1286 |
+
try {
|
1287 |
+
return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
|
1288 |
+
offset, $.datepicker._getFormatConfig(inst));
|
1289 |
+
}
|
1290 |
+
catch (e) {
|
1291 |
+
// Ignore
|
1292 |
+
}
|
1293 |
+
var date = (offset.toLowerCase().match(/^c/) ?
|
1294 |
+
$.datepicker._getDate(inst) : null) || new Date();
|
1295 |
+
var year = date.getFullYear();
|
1296 |
+
var month = date.getMonth();
|
1297 |
+
var day = date.getDate();
|
1298 |
+
var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
|
1299 |
+
var matches = pattern.exec(offset);
|
1300 |
+
while (matches) {
|
1301 |
+
switch (matches[2] || 'd') {
|
1302 |
+
case 'd' : case 'D' :
|
1303 |
+
day += parseInt(matches[1],10); break;
|
1304 |
+
case 'w' : case 'W' :
|
1305 |
+
day += parseInt(matches[1],10) * 7; break;
|
1306 |
+
case 'm' : case 'M' :
|
1307 |
+
month += parseInt(matches[1],10);
|
1308 |
+
day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
|
1309 |
+
break;
|
1310 |
+
case 'y': case 'Y' :
|
1311 |
+
year += parseInt(matches[1],10);
|
1312 |
+
day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
|
1313 |
+
break;
|
1314 |
+
}
|
1315 |
+
matches = pattern.exec(offset);
|
1316 |
+
}
|
1317 |
+
return new Date(year, month, day);
|
1318 |
+
};
|
1319 |
+
var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
|
1320 |
+
(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
|
1321 |
+
newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
|
1322 |
+
if (newDate) {
|
1323 |
+
newDate.setHours(0);
|
1324 |
+
newDate.setMinutes(0);
|
1325 |
+
newDate.setSeconds(0);
|
1326 |
+
newDate.setMilliseconds(0);
|
1327 |
+
}
|
1328 |
+
return this._daylightSavingAdjust(newDate);
|
1329 |
+
},
|
1330 |
+
|
1331 |
+
/* Handle switch to/from daylight saving.
|
1332 |
+
Hours may be non-zero on daylight saving cut-over:
|
1333 |
+
> 12 when midnight changeover, but then cannot generate
|
1334 |
+
midnight datetime, so jump to 1AM, otherwise reset.
|
1335 |
+
@param date (Date) the date to check
|
1336 |
+
@return (Date) the corrected date */
|
1337 |
+
_daylightSavingAdjust: function(date) {
|
1338 |
+
if (!date) return null;
|
1339 |
+
date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
|
1340 |
+
return date;
|
1341 |
+
},
|
1342 |
+
|
1343 |
+
/* Set the date(s) directly. */
|
1344 |
+
_setDate: function(inst, date, noChange) {
|
1345 |
+
var clear = !date;
|
1346 |
+
var origMonth = inst.selectedMonth;
|
1347 |
+
var origYear = inst.selectedYear;
|
1348 |
+
var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
|
1349 |
+
inst.selectedDay = inst.currentDay = newDate.getDate();
|
1350 |
+
inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
|
1351 |
+
inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
|
1352 |
+
if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
|
1353 |
+
this._notifyChange(inst);
|
1354 |
+
this._adjustInstDate(inst);
|
1355 |
+
if (inst.input) {
|
1356 |
+
inst.input.val(clear ? '' : this._formatDate(inst));
|
1357 |
+
}
|
1358 |
+
},
|
1359 |
+
|
1360 |
+
/* Retrieve the date(s) directly. */
|
1361 |
+
_getDate: function(inst) {
|
1362 |
+
var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
|
1363 |
+
this._daylightSavingAdjust(new Date(
|
1364 |
+
inst.currentYear, inst.currentMonth, inst.currentDay)));
|
1365 |
+
return startDate;
|
1366 |
+
},
|
1367 |
+
|
1368 |
+
/* Generate the HTML for the current state of the date picker. */
|
1369 |
+
_generateHTML: function(inst) {
|
1370 |
+
var today = new Date();
|
1371 |
+
today = this._daylightSavingAdjust(
|
1372 |
+
new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
|
1373 |
+
var isRTL = this._get(inst, 'isRTL');
|
1374 |
+
var showButtonPanel = this._get(inst, 'showButtonPanel');
|
1375 |
+
var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
|
1376 |
+
var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
|
1377 |
+
var numMonths = this._getNumberOfMonths(inst);
|
1378 |
+
var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
|
1379 |
+
var stepMonths = this._get(inst, 'stepMonths');
|
1380 |
+
var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
|
1381 |
+
var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
|
1382 |
+
new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
|
1383 |
+
var minDate = this._getMinMaxDate(inst, 'min');
|
1384 |
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
1385 |
+
var drawMonth = inst.drawMonth - showCurrentAtPos;
|
1386 |
+
var drawYear = inst.drawYear;
|
1387 |
+
if (drawMonth < 0) {
|
1388 |
+
drawMonth += 12;
|
1389 |
+
drawYear--;
|
1390 |
+
}
|
1391 |
+
if (maxDate) {
|
1392 |
+
var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
|
1393 |
+
maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
|
1394 |
+
maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
|
1395 |
+
while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
|
1396 |
+
drawMonth--;
|
1397 |
+
if (drawMonth < 0) {
|
1398 |
+
drawMonth = 11;
|
1399 |
+
drawYear--;
|
1400 |
+
}
|
1401 |
+
}
|
1402 |
+
}
|
1403 |
+
inst.drawMonth = drawMonth;
|
1404 |
+
inst.drawYear = drawYear;
|
1405 |
+
var prevText = this._get(inst, 'prevText');
|
1406 |
+
prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
|
1407 |
+
this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
|
1408 |
+
this._getFormatConfig(inst)));
|
1409 |
+
var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
|
1410 |
+
'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
|
1411 |
+
'.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
|
1412 |
+
' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
|
1413 |
+
(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
|
1414 |
+
var nextText = this._get(inst, 'nextText');
|
1415 |
+
nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
|
1416 |
+
this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
|
1417 |
+
this._getFormatConfig(inst)));
|
1418 |
+
var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
|
1419 |
+
'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
|
1420 |
+
'.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
|
1421 |
+
' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
|
1422 |
+
(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
|
1423 |
+
var currentText = this._get(inst, 'currentText');
|
1424 |
+
var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
|
1425 |
+
currentText = (!navigationAsDateFormat ? currentText :
|
1426 |
+
this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
|
1427 |
+
var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
|
1428 |
+
'.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
|
1429 |
+
var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
|
1430 |
+
(this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
|
1431 |
+
'.datepicker._gotoToday(\'#' + inst.id + '\');"' +
|
1432 |
+
'>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
|
1433 |
+
var firstDay = parseInt(this._get(inst, 'firstDay'),10);
|
1434 |
+
firstDay = (isNaN(firstDay) ? 0 : firstDay);
|
1435 |
+
var showWeek = this._get(inst, 'showWeek');
|
1436 |
+
var dayNames = this._get(inst, 'dayNames');
|
1437 |
+
var dayNamesShort = this._get(inst, 'dayNamesShort');
|
1438 |
+
var dayNamesMin = this._get(inst, 'dayNamesMin');
|
1439 |
+
var monthNames = this._get(inst, 'monthNames');
|
1440 |
+
var monthNamesShort = this._get(inst, 'monthNamesShort');
|
1441 |
+
var beforeShowDay = this._get(inst, 'beforeShowDay');
|
1442 |
+
var showOtherMonths = this._get(inst, 'showOtherMonths');
|
1443 |
+
var selectOtherMonths = this._get(inst, 'selectOtherMonths');
|
1444 |
+
var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
|
1445 |
+
var defaultDate = this._getDefaultDate(inst);
|
1446 |
+
var html = '';
|
1447 |
+
for (var row = 0; row < numMonths[0]; row++) {
|
1448 |
+
var group = '';
|
1449 |
+
for (var col = 0; col < numMonths[1]; col++) {
|
1450 |
+
var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
|
1451 |
+
var cornerClass = ' ui-corner-all';
|
1452 |
+
var calender = '';
|
1453 |
+
if (isMultiMonth) {
|
1454 |
+
calender += '<div class="ui-datepicker-group';
|
1455 |
+
if (numMonths[1] > 1)
|
1456 |
+
switch (col) {
|
1457 |
+
case 0: calender += ' ui-datepicker-group-first';
|
1458 |
+
cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
|
1459 |
+
case numMonths[1]-1: calender += ' ui-datepicker-group-last';
|
1460 |
+
cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
|
1461 |
+
default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
|
1462 |
+
}
|
1463 |
+
calender += '">';
|
1464 |
+
}
|
1465 |
+
calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
|
1466 |
+
(/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
|
1467 |
+
(/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
|
1468 |
+
this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
|
1469 |
+
row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
|
1470 |
+
'</div><table class="ui-datepicker-calendar"><thead>' +
|
1471 |
+
'<tr>';
|
1472 |
+
var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
|
1473 |
+
for (var dow = 0; dow < 7; dow++) { // days of the week
|
1474 |
+
var day = (dow + firstDay) % 7;
|
1475 |
+
thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
|
1476 |
+
'<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
|
1477 |
+
}
|
1478 |
+
calender += thead + '</tr></thead><tbody>';
|
1479 |
+
var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
|
1480 |
+
if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
|
1481 |
+
inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
|
1482 |
+
var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
|
1483 |
+
var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
|
1484 |
+
var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
|
1485 |
+
for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
|
1486 |
+
calender += '<tr>';
|
1487 |
+
var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
|
1488 |
+
this._get(inst, 'calculateWeek')(printDate) + '</td>');
|
1489 |
+
for (var dow = 0; dow < 7; dow++) { // create date picker days
|
1490 |
+
var daySettings = (beforeShowDay ?
|
1491 |
+
beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
|
1492 |
+
var otherMonth = (printDate.getMonth() != drawMonth);
|
1493 |
+
var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
|
1494 |
+
(minDate && printDate < minDate) || (maxDate && printDate > maxDate);
|
1495 |
+
tbody += '<td class="' +
|
1496 |
+
((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
|
1497 |
+
(otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
|
1498 |
+
((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
|
1499 |
+
(defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
|
1500 |
+
// or defaultDate is current printedDate and defaultDate is selectedDate
|
1501 |
+
' ' + this._dayOverClass : '') + // highlight selected day
|
1502 |
+
(unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days
|
1503 |
+
(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
|
1504 |
+
(printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
|
1505 |
+
(printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
|
1506 |
+
((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
|
1507 |
+
(unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
|
1508 |
+
inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
|
1509 |
+
(otherMonth && !showOtherMonths ? ' ' : // display for other months
|
1510 |
+
(unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
|
1511 |
+
(printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
|
1512 |
+
(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
|
1513 |
+
(otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
|
1514 |
+
'" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
|
1515 |
+
printDate.setDate(printDate.getDate() + 1);
|
1516 |
+
printDate = this._daylightSavingAdjust(printDate);
|
1517 |
+
}
|
1518 |
+
calender += tbody + '</tr>';
|
1519 |
+
}
|
1520 |
+
drawMonth++;
|
1521 |
+
if (drawMonth > 11) {
|
1522 |
+
drawMonth = 0;
|
1523 |
+
drawYear++;
|
1524 |
+
}
|
1525 |
+
calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
|
1526 |
+
((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
|
1527 |
+
group += calender;
|
1528 |
+
}
|
1529 |
+
html += group;
|
1530 |
+
}
|
1531 |
+
html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
|
1532 |
+
'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
|
1533 |
+
inst._keyEvent = false;
|
1534 |
+
return html;
|
1535 |
+
},
|
1536 |
+
|
1537 |
+
/* Generate the month and year header. */
|
1538 |
+
_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
|
1539 |
+
secondary, monthNames, monthNamesShort) {
|
1540 |
+
var changeMonth = this._get(inst, 'changeMonth');
|
1541 |
+
var changeYear = this._get(inst, 'changeYear');
|
1542 |
+
var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
|
1543 |
+
var html = '<div class="ui-datepicker-title">';
|
1544 |
+
var monthHtml = '';
|
1545 |
+
// month selection
|
1546 |
+
if (secondary || !changeMonth)
|
1547 |
+
monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
|
1548 |
+
else {
|
1549 |
+
var inMinYear = (minDate && minDate.getFullYear() == drawYear);
|
1550 |
+
var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
|
1551 |
+
monthHtml += '<select class="ui-datepicker-month" ' +
|
1552 |
+
'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
|
1553 |
+
'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
|
1554 |
+
'>';
|
1555 |
+
for (var month = 0; month < 12; month++) {
|
1556 |
+
if ((!inMinYear || month >= minDate.getMonth()) &&
|
1557 |
+
(!inMaxYear || month <= maxDate.getMonth()))
|
1558 |
+
monthHtml += '<option value="' + month + '"' +
|
1559 |
+
(month == drawMonth ? ' selected="selected"' : '') +
|
1560 |
+
'>' + monthNamesShort[month] + '</option>';
|
1561 |
+
}
|
1562 |
+
monthHtml += '</select>';
|
1563 |
+
}
|
1564 |
+
if (!showMonthAfterYear)
|
1565 |
+
html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : '');
|
1566 |
+
// year selection
|
1567 |
+
inst.yearshtml = '';
|
1568 |
+
if (secondary || !changeYear)
|
1569 |
+
html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
|
1570 |
+
else {
|
1571 |
+
// determine range of years to display
|
1572 |
+
var years = this._get(inst, 'yearRange').split(':');
|
1573 |
+
var thisYear = new Date().getFullYear();
|
1574 |
+
var determineYear = function(value) {
|
1575 |
+
var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
|
1576 |
+
(value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
|
1577 |
+
parseInt(value, 10)));
|
1578 |
+
return (isNaN(year) ? thisYear : year);
|
1579 |
+
};
|
1580 |
+
var year = determineYear(years[0]);
|
1581 |
+
var endYear = Math.max(year, determineYear(years[1] || ''));
|
1582 |
+
year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
|
1583 |
+
endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
|
1584 |
+
inst.yearshtml += '<select class="ui-datepicker-year" ' +
|
1585 |
+
'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
|
1586 |
+
'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
|
1587 |
+
'>';
|
1588 |
+
for (; year <= endYear; year++) {
|
1589 |
+
inst.yearshtml += '<option value="' + year + '"' +
|
1590 |
+
(year == drawYear ? ' selected="selected"' : '') +
|
1591 |
+
'>' + year + '</option>';
|
1592 |
+
}
|
1593 |
+
inst.yearshtml += '</select>';
|
1594 |
+
//when showing there is no need for later update
|
1595 |
+
if( ! $.browser.mozilla ){
|
1596 |
+
html += inst.yearshtml;
|
1597 |
+
inst.yearshtml = null;
|
1598 |
+
} else {
|
1599 |
+
// will be replaced later with inst.yearshtml
|
1600 |
+
html += '<select class="ui-datepicker-year"><option value="' + drawYear + '" selected="selected">' + drawYear + '</option></select>';
|
1601 |
+
}
|
1602 |
+
}
|
1603 |
+
html += this._get(inst, 'yearSuffix');
|
1604 |
+
if (showMonthAfterYear)
|
1605 |
+
html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml;
|
1606 |
+
html += '</div>'; // Close datepicker_header
|
1607 |
+
return html;
|
1608 |
+
},
|
1609 |
+
|
1610 |
+
/* Adjust one of the date sub-fields. */
|
1611 |
+
_adjustInstDate: function(inst, offset, period) {
|
1612 |
+
var year = inst.drawYear + (period == 'Y' ? offset : 0);
|
1613 |
+
var month = inst.drawMonth + (period == 'M' ? offset : 0);
|
1614 |
+
var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
|
1615 |
+
(period == 'D' ? offset : 0);
|
1616 |
+
var date = this._restrictMinMax(inst,
|
1617 |
+
this._daylightSavingAdjust(new Date(year, month, day)));
|
1618 |
+
inst.selectedDay = date.getDate();
|
1619 |
+
inst.drawMonth = inst.selectedMonth = date.getMonth();
|
1620 |
+
inst.drawYear = inst.selectedYear = date.getFullYear();
|
1621 |
+
if (period == 'M' || period == 'Y')
|
1622 |
+
this._notifyChange(inst);
|
1623 |
+
},
|
1624 |
+
|
1625 |
+
/* Ensure a date is within any min/max bounds. */
|
1626 |
+
_restrictMinMax: function(inst, date) {
|
1627 |
+
var minDate = this._getMinMaxDate(inst, 'min');
|
1628 |
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
1629 |
+
var newDate = (minDate && date < minDate ? minDate : date);
|
1630 |
+
newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
|
1631 |
+
return newDate;
|
1632 |
+
},
|
1633 |
+
|
1634 |
+
/* Notify change of month/year. */
|
1635 |
+
_notifyChange: function(inst) {
|
1636 |
+
var onChange = this._get(inst, 'onChangeMonthYear');
|
1637 |
+
if (onChange)
|
1638 |
+
onChange.apply((inst.input ? inst.input[0] : null),
|
1639 |
+
[inst.selectedYear, inst.selectedMonth + 1, inst]);
|
1640 |
+
},
|
1641 |
+
|
1642 |
+
/* Determine the number of months to show. */
|
1643 |
+
_getNumberOfMonths: function(inst) {
|
1644 |
+
var numMonths = this._get(inst, 'numberOfMonths');
|
1645 |
+
return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
|
1646 |
+
},
|
1647 |
+
|
1648 |
+
/* Determine the current maximum date - ensure no time components are set. */
|
1649 |
+
_getMinMaxDate: function(inst, minMax) {
|
1650 |
+
return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
|
1651 |
+
},
|
1652 |
+
|
1653 |
+
/* Find the number of days in a given month. */
|
1654 |
+
_getDaysInMonth: function(year, month) {
|
1655 |
+
return 32 - new Date(year, month, 32).getDate();
|
1656 |
+
},
|
1657 |
+
|
1658 |
+
/* Find the day of the week of the first of a month. */
|
1659 |
+
_getFirstDayOfMonth: function(year, month) {
|
1660 |
+
return new Date(year, month, 1).getDay();
|
1661 |
+
},
|
1662 |
+
|
1663 |
+
/* Determines if we should allow a "next/prev" month display change. */
|
1664 |
+
_canAdjustMonth: function(inst, offset, curYear, curMonth) {
|
1665 |
+
var numMonths = this._getNumberOfMonths(inst);
|
1666 |
+
var date = this._daylightSavingAdjust(new Date(curYear,
|
1667 |
+
curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
|
1668 |
+
if (offset < 0)
|
1669 |
+
date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
|
1670 |
+
return this._isInRange(inst, date);
|
1671 |
+
},
|
1672 |
+
|
1673 |
+
/* Is the given date in the accepted range? */
|
1674 |
+
_isInRange: function(inst, date) {
|
1675 |
+
var minDate = this._getMinMaxDate(inst, 'min');
|
1676 |
+
var maxDate = this._getMinMaxDate(inst, 'max');
|
1677 |
+
return ((!minDate || date.getTime() >= minDate.getTime()) &&
|
1678 |
+
(!maxDate || date.getTime() <= maxDate.getTime()));
|
1679 |
+
},
|
1680 |
+
|
1681 |
+
/* Provide the configuration settings for formatting/parsing. */
|
1682 |
+
_getFormatConfig: function(inst) {
|
1683 |
+
var shortYearCutoff = this._get(inst, 'shortYearCutoff');
|
1684 |
+
shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
|
1685 |
+
new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
|
1686 |
+
return {shortYearCutoff: shortYearCutoff,
|
1687 |
+
dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
|
1688 |
+
monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
|
1689 |
+
},
|
1690 |
+
|
1691 |
+
/* Format the given date for display. */
|
1692 |
+
_formatDate: function(inst, day, month, year) {
|
1693 |
+
if (!day) {
|
1694 |
+
inst.currentDay = inst.selectedDay;
|
1695 |
+
inst.currentMonth = inst.selectedMonth;
|
1696 |
+
inst.currentYear = inst.selectedYear;
|
1697 |
+
}
|
1698 |
+
var date = (day ? (typeof day == 'object' ? day :
|
1699 |
+
this._daylightSavingAdjust(new Date(year, month, day))) :
|
1700 |
+
this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
|
1701 |
+
return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
|
1702 |
+
}
|
1703 |
+
});
|
1704 |
+
|
1705 |
+
/* jQuery extend now ignores nulls! */
|
1706 |
+
function extendRemove(target, props) {
|
1707 |
+
$.extend(target, props);
|
1708 |
+
for (var name in props)
|
1709 |
+
if (props[name] == null || props[name] == undefined)
|
1710 |
+
target[name] = props[name];
|
1711 |
+
return target;
|
1712 |
+
};
|
1713 |
+
|
1714 |
+
/* Determine whether an object is an array. */
|
1715 |
+
function isArray(a) {
|
1716 |
+
return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
|
1717 |
+
(a.constructor && a.constructor.toString().match(/\Array\(\)/))));
|
1718 |
+
};
|
1719 |
+
|
1720 |
+
/* Invoke the datepicker functionality.
|
1721 |
+
@param options string - a command, optionally followed by additional parameters or
|
1722 |
+
Object - settings for attaching new datepicker functionality
|
1723 |
+
@return jQuery object */
|
1724 |
+
$.fn.datepicker = function(options){
|
1725 |
+
|
1726 |
+
/* Initialise the date picker. */
|
1727 |
+
if (!$.datepicker.initialized) {
|
1728 |
+
$(document).mousedown($.datepicker._checkExternalClick).
|
1729 |
+
find('body').append($.datepicker.dpDiv);
|
1730 |
+
$.datepicker.initialized = true;
|
1731 |
+
}
|
1732 |
+
|
1733 |
+
var otherArgs = Array.prototype.slice.call(arguments, 1);
|
1734 |
+
if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
|
1735 |
+
return $.datepicker['_' + options + 'Datepicker'].
|
1736 |
+
apply($.datepicker, [this[0]].concat(otherArgs));
|
1737 |
+
if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
|
1738 |
+
return $.datepicker['_' + options + 'Datepicker'].
|
1739 |
+
apply($.datepicker, [this[0]].concat(otherArgs));
|
1740 |
+
return this.each(function() {
|
1741 |
+
typeof options == 'string' ?
|
1742 |
+
$.datepicker['_' + options + 'Datepicker'].
|
1743 |
+
apply($.datepicker, [this].concat(otherArgs)) :
|
1744 |
+
$.datepicker._attachDatepicker(this, options);
|
1745 |
+
});
|
1746 |
+
};
|
1747 |
+
|
1748 |
+
$.datepicker = new Datepicker(); // singleton instance
|
1749 |
+
$.datepicker.initialized = false;
|
1750 |
+
$.datepicker.uuid = new Date().getTime();
|
1751 |
+
$.datepicker.version = "1.8.7";
|
1752 |
+
|
1753 |
+
// Workaround for #4055
|
1754 |
+
// Add another global to avoid noConflict issues with inline event handlers
|
1755 |
+
window['DP_jQuery_' + dpuuid] = $;
|
1756 |
+
|
1757 |
+
})(jQuery);
|