Version Description
- 2016-02-05 =
What's in it for you?
- Completely admin rewrite (Credits to Niko Strijbol. See details on https://bitbucket.org/wpgetready/nextcellent/pull-requests/62/rewrite-admin-section)
- Several fixes (Credits to Niko Strijbol)
- Bios4 provided also German translation (Late credits (included in previous version))
- Etard the Live Caster found a XSS vulnerability (Late credits (included in previous version))
- Thomas Bloomberg Hansen: Dashicon in TinyMCE
VERY IMPORTANT: Read ON!
NextCellent Gallery provides backward compatibility for older NextGEN until version 1.9.13 .
this plugin will gracefully deactivate if detects NextGEN is working (any version) to avoid compatibility issues.
Please remember to READ THE FAQ!!! Issues for failing to read the FAQ will be IGNORED!!!
If you like it, please spread the word and rate it accordingly. I guess a lot of annoyed users can take advantage of NextCellent. Thank you!
WE APPRECIATE YOUR FEEDBACK. Be our voice and comment it!!!!
Download this release
Release Info
Developer | WPReady |
Plugin | NextCellent Gallery – NextGEN Legacy |
Version | 1.9.30 |
Comparing to | |
See all releases |
Code changes from version 1.9.27 to 1.9.30
- admin/about.php +0 -59
- admin/addgallery.php +0 -520
- admin/admin.php +0 -617
- admin/ajax.php +95 -24
- admin/album.php +0 -592
- admin/class-ngg-adder.php +579 -0
- admin/class-ngg-admin-launcher.php +664 -0
- admin/class-ngg-album-manager.php +614 -0
- admin/class-ngg-installer.php +288 -0
- admin/{settings.php → class-ngg-options.php} +238 -243
- admin/{overview.php → class-ngg-overview.php} +7 -7
- admin/class-ngg-post-admin-page.php +34 -0
- admin/class-ngg-roles.php +146 -0
- admin/class-ngg-setup.php +107 -0
- admin/{style.php → class-ngg-style.php} +22 -27
- admin/class-ngg-tag-manager.php +298 -0
- admin/css/menu.css +0 -3
- admin/css/nggColorPicker.css +0 -14
- admin/css/ngg_social_media.css +0 -34
- admin/css/nggadmin.css +318 -253
- admin/css/tags-admin.css +0 -10
- admin/edit-thumbnail.php +0 -166
- admin/functions.php +112 -82
- admin/images/facebook.png +0 -0
- admin/images/googleplus.png +0 -0
- admin/images/icon-paypal.gif +0 -0
- admin/images/icon-rating.png +0 -0
- admin/images/icon-translate.png +0 -0
- admin/images/twitter.png +0 -0
- admin/install.php +0 -277
- admin/interface-ngg-displayable.php +12 -0
- admin/js/Jcrop/css/Jcrop.gif +0 -0
- admin/js/Jcrop/css/jquery.Jcrop.css +0 -35
- admin/js/Jcrop/js/jquery.Jcrop.js +0 -1197
- admin/js/colorpicker/css/colorpicker.css +0 -161
- admin/js/colorpicker/images/blank.gif +0 -0
- admin/js/colorpicker/images/colorpicker_background.png +0 -0
- admin/js/colorpicker/images/colorpicker_hex.png +0 -0
- admin/js/colorpicker/images/colorpicker_hsb_b.png +0 -0
- admin/js/colorpicker/images/colorpicker_hsb_h.png +0 -0
- admin/js/colorpicker/images/colorpicker_hsb_s.png +0 -0
- admin/js/colorpicker/images/colorpicker_indic.gif +0 -0
- admin/js/colorpicker/images/colorpicker_overlay.png +0 -0
- admin/js/colorpicker/images/colorpicker_rgb_b.png +0 -0
- admin/js/colorpicker/images/colorpicker_rgb_g.png +0 -0
- admin/js/colorpicker/images/colorpicker_rgb_r.png +0 -0
- admin/js/colorpicker/images/colorpicker_select.gif +0 -0
- admin/js/colorpicker/images/colorpicker_submit.png +0 -0
- admin/js/colorpicker/images/custom_background.png +0 -0
- admin/js/colorpicker/images/custom_hex.png +0 -0
- admin/js/colorpicker/images/custom_hsb_b.png +0 -0
- admin/js/colorpicker/images/custom_hsb_h.png +0 -0
- admin/js/colorpicker/images/custom_hsb_s.png +0 -0
- admin/js/colorpicker/images/custom_indic.gif +0 -0
- admin/js/colorpicker/images/custom_rgb_b.png +0 -0
- admin/js/colorpicker/images/custom_rgb_g.png +0 -0
- admin/js/colorpicker/images/custom_rgb_r.png +0 -0
- admin/js/colorpicker/images/custom_submit.png +0 -0
- admin/js/colorpicker/images/select.png +0 -0
- admin/js/colorpicker/images/select2.png +0 -0
- admin/js/colorpicker/images/slider.png +0 -0
- admin/js/colorpicker/js/colorpicker.js +0 -484
- admin/js/cropper/cropper.css +247 -0
- admin/js/cropper/cropper.js +2091 -0
- admin/js/cropper/cropper.min.css +9 -0
- admin/js/cropper/cropper.min.js +10 -0
- admin/js/jquery.ui.autocomplete.js +0 -612
- admin/js/jquery.ui.autocomplete.min.js +0 -32
- admin/js/ngg.ajax.js +120 -108
- admin/js/ngg_social_media.js +0 -8
- admin/js/plupload.handler.js +68 -79
- admin/manage-galleries.php +0 -433
- admin/manage-images.php +0 -759
- admin/manage-sort.php +0 -118
- admin/manage.php +0 -666
- admin/manage/actions.php +446 -0
- admin/manage/class-ngg-abstract-image-manager.php +157 -0
- admin/manage/class-ngg-gallery-list-table.php +218 -0
- admin/manage/class-ngg-gallery-manager.php +124 -0
- admin/manage/class-ngg-image-list-table.php +316 -0
- admin/manage/class-ngg-image-manager.php +361 -0
- admin/manage/class-ngg-manager.php +491 -0
- admin/manage/class-ngg-search-manager.php +109 -0
- admin/manage/class-ngg-sort-manager.php +210 -0
- admin/publish.php +0 -64
- admin/roles.php +0 -138
- admin/rotate.php +0 -93
- admin/setup.php +0 -58
- admin/showmeta.php +0 -123
- admin/tags.php +0 -289
- admin/templates/facebook_like_button.php +0 -2
- admin/templates/social_media_buttons.php +0 -6
- admin/templates/twitter_follow_link.php +0 -8
- admin/tinymce/editor_plugin.js +1 -1
- admin/tinymce/tinymce.js +140 -135
- admin/upgrade.php +3 -3
- changelog.txt +0 -5
- css/ngg_shadow2.css +1 -1
- lang/nggallery-nl_NL.mo +0 -0
- lang/nggallery-nl_NL.po +3117 -2752
- lang/nggallery.pot +1205 -1572
admin/about.php
DELETED
@@ -1,59 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
3 |
-
|
4 |
-
function nggallery_admin_about() {
|
5 |
-
|
6 |
-
?>
|
7 |
-
<div class="wrap">
|
8 |
-
<?php screen_icon( 'nextgen-gallery' ); ?>
|
9 |
-
<h2><?php _e('About', 'nggallery') ;?></h2>
|
10 |
-
<div id="poststuff">
|
11 |
-
<div class="postbox">
|
12 |
-
<h3 class="hndle"><span><?php _e('Contributors', 'nggallery'); ?></span></h3>
|
13 |
-
<div class="inside">
|
14 |
-
<p><?php _e('This plugin is made possible by the great work of a lot of people. A special thanks the following people:', 'nggallery') ;?></p>
|
15 |
-
<ul class="ngg-list">
|
16 |
-
<li><a href="http://wordpress.org" target="_blank">The WordPress Team</a> <?php _e('for their great documented code', 'nggallery') ;?></li>
|
17 |
-
<li><a href="http://jquery.com" target="_blank">The jQuery Team</a> <?php _e('for jQuery, which is the best Web2.0 framework', 'nggallery') ;?></li>
|
18 |
-
<li><a href="http://www.gen-x-design.com" target="_blank">Ian Selby</a> <?php _e('for the fantastic PHP Thumbnail Class', 'nggallery') ;?></li>
|
19 |
-
<li><a href="http://www.lesterchan.net/" target="_blank">GaMerZ</a> <?php _e('for a lot of very useful plugins and ideas', 'nggallery') ;?></li>
|
20 |
-
<li><a href="http://www.laptoptips.ca/" target="_blank">Andrew Ozz</a> <?php _e('for Shutter Reloaded, a real lightweight image effect', 'nggallery') ;?></li>
|
21 |
-
<li><a href="http://www.jeroenwijering.com/" target="_blank">Jeroen Wijering</a> <?php _e('for the best Media Flash Scripts on earth', 'nggallery') ;?></li>
|
22 |
-
<li><a href="http://field2.com" target="_blank">Ben Dunkle</a> <?php _e('for the Gallery Icon', 'nggallery') ;?></li>
|
23 |
-
<li><a href="http://watermark.malcherek.com/" target="_blank">Marek Malcherek</a> <?php _e('for the Watermark plugin', 'nggallery') ;?></li>
|
24 |
-
<li><a href="http://wpgetready.com/" target="_blank">WPGetReady</a> <?php _e('for maintaining this fork of NextGen Gallery', 'nggallery') ;?></li>
|
25 |
-
<li><?php _e('The original translators for NextGen Gallery, who made the translations', 'nggallery') ;?></li>
|
26 |
-
</ul>
|
27 |
-
<div>Icons made by <a href="http://www.freepik.com" alt="Freepik.com" title="Freepik.com">Freepik</a> from i.a. <a href="http://www.flaticon.com/packs/layout-icons" title="Flaticon">www.flaticon.com</a></div>
|
28 |
-
</div>
|
29 |
-
</div>
|
30 |
-
<div class="postbox">
|
31 |
-
<h3 class="hndle"><span><?php _e('NextCellent', 'nggallery'); ?></span></h3>
|
32 |
-
<div class="inside">
|
33 |
-
<p><?php _e('NextCellent Gallery is based on the 1.9.13 version of the NextGen Gallery by Photocrati Media, which is the succesor to the work by Alex Rabe.', 'nggallery') ;?></p>
|
34 |
-
<h4><?php _e('What do you get with NextCellent Gallery?', 'nggallery') ;?></h4>
|
35 |
-
<ul class="ngg-list">
|
36 |
-
<li><?php _e('Backward compatibility with NextGEN plugin version (1.9.13)', 'nggallery') ;?></li>
|
37 |
-
<li><?php _e('Slow evolving code path, made only by NextGEN user\'s suggestions. Yep, you read it right: slow in counterpart as fast. Older code is good enough to keep a community and it worked (and works) for most people.', 'nggallery') ;?></li>
|
38 |
-
<li><?php _e('A reliable way to work with already installed NextGEN galleries.', 'nggallery') ;?></li>
|
39 |
-
<li><?php _e('A place for updating the plugin without using FTP manual updates, but WordPress plugin repository.', 'nggallery') ;?></li>
|
40 |
-
<li><?php _e('Alternative path preserving backward compatibility (while possible).', 'nggallery') ;?></li>
|
41 |
-
</li>
|
42 |
-
</ul>
|
43 |
-
</div>
|
44 |
-
</div>
|
45 |
-
<div class="postbox">
|
46 |
-
<h3 class="hndle"><span><?php _e('How to support us?', 'nggallery'); ?></span></h3>
|
47 |
-
<div class="inside">
|
48 |
-
<p><?php _e('There are several ways to contribute:', 'nggallery') ;?></p>
|
49 |
-
<ul class="ngg-list">
|
50 |
-
<li><strong><?php _e('Send us bugfixes / code changes', 'nggallery') ;?></strong><br /><?php _e('The most motivated support for this plugin are your ideas and brain work.', 'nggallery') ;?></li>
|
51 |
-
<li><strong><?php _e('Translate the plugin', 'nggallery') ;?></strong><br /><?php _e('To help people to work with this plugin, we would like to have it in all available languages.', 'nggallery') ;?></li>
|
52 |
-
<li><strong><?php _e('Place a link to the plugin in your blog/webpage', 'nggallery') ;?></strong><br /><?php _e('Yes, sharing and linking are also supportive and helpful.', 'nggallery') ;?></li>
|
53 |
-
</ul>
|
54 |
-
</div>
|
55 |
-
</div>
|
56 |
-
|
57 |
-
</div>
|
58 |
-
</div>
|
59 |
-
<?php } ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/addgallery.php
DELETED
@@ -1,520 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
3 |
-
|
4 |
-
class nggAddGallery {
|
5 |
-
|
6 |
-
/**
|
7 |
-
* nggAddGallery::__construct()
|
8 |
-
*
|
9 |
-
* @return void
|
10 |
-
*/
|
11 |
-
function __construct() {
|
12 |
-
|
13 |
-
// same as $_SERVER['REQUEST_URI'], but should work under IIS 6.0
|
14 |
-
$this->filepath = admin_url() . 'admin.php?page=' . $_GET['page'];
|
15 |
-
|
16 |
-
//Look for POST updates
|
17 |
-
if ( !empty($_POST) )
|
18 |
-
$this->processor();
|
19 |
-
}
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Perform the upload and add a new hook for plugins
|
23 |
-
*
|
24 |
-
* @return void
|
25 |
-
*/
|
26 |
-
function processor() {
|
27 |
-
global $wpdb, $ngg, $nggdb;
|
28 |
-
|
29 |
-
$defaultpath = $ngg->options['gallerypath'];
|
30 |
-
|
31 |
-
if ( isset($_POST['addgallery']) ){
|
32 |
-
check_admin_referer('ngg_addgallery');
|
33 |
-
|
34 |
-
if ( !nggGallery::current_user_can( 'NextGEN Add new gallery' ))
|
35 |
-
wp_die(__('Cheatin’ uh?'));
|
36 |
-
|
37 |
-
$newgallery = esc_attr( $_POST['galleryname']);
|
38 |
-
$description = esc_attr( $_POST['gallerydesc']);
|
39 |
-
if ( !empty($newgallery) )
|
40 |
-
nggAdmin::create_gallery($newgallery, $defaultpath, true, $description);
|
41 |
-
}
|
42 |
-
|
43 |
-
if ( isset($_POST['zipupload']) ){
|
44 |
-
check_admin_referer('ngg_addgallery');
|
45 |
-
|
46 |
-
if ( !nggGallery::current_user_can( 'NextGEN Upload a zip' ))
|
47 |
-
wp_die(__('Cheatin’ uh?'));
|
48 |
-
|
49 |
-
if ($_FILES['zipfile']['error'] == 0 || (!empty($_POST['zipurl'])))
|
50 |
-
nggAdmin::import_zipfile( intval( $_POST['zipgalselect'] ) );
|
51 |
-
else
|
52 |
-
nggGallery::show_error( __('Upload failed!','nggallery') );
|
53 |
-
}
|
54 |
-
|
55 |
-
if ( isset($_POST['importfolder']) ){
|
56 |
-
check_admin_referer('ngg_addgallery');
|
57 |
-
|
58 |
-
if ( !nggGallery::current_user_can( 'NextGEN Import image folder' ))
|
59 |
-
wp_die(__('Cheatin’ uh?'));
|
60 |
-
|
61 |
-
$galleryfolder = $_POST['galleryfolder'];
|
62 |
-
if ( ( !empty($galleryfolder) ) AND ($defaultpath != $galleryfolder) )
|
63 |
-
nggAdmin::import_gallery($galleryfolder);
|
64 |
-
}
|
65 |
-
|
66 |
-
if ( isset($_POST['uploadimage']) ){
|
67 |
-
check_admin_referer('ngg_addgallery');
|
68 |
-
|
69 |
-
if ( !nggGallery::current_user_can( 'NextGEN Upload in all galleries' ))
|
70 |
-
wp_die(__('Cheatin’ uh?'));
|
71 |
-
|
72 |
-
if ( $_FILES['imagefiles']['error'][0] == 0 )
|
73 |
-
nggAdmin::upload_images();
|
74 |
-
else
|
75 |
-
nggGallery::show_error( __('Upload failed! ' . nggAdmin::decode_upload_error( $_FILES['imagefiles']['error'][0]),'nggallery') );
|
76 |
-
}
|
77 |
-
|
78 |
-
if ( isset($_POST['swf_callback']) ){
|
79 |
-
if ($_POST['galleryselect'] == '0' )
|
80 |
-
nggGallery::show_error(__('You didn\'t select a gallery!','nggallery'));
|
81 |
-
else {
|
82 |
-
if ($_POST['swf_callback'] == '-1' )
|
83 |
-
nggGallery::show_error( __('Upload failed!','nggallery') );
|
84 |
-
else {
|
85 |
-
$gallery = $nggdb->find_gallery( (int) $_POST['galleryselect'] );
|
86 |
-
nggAdmin::import_gallery( $gallery->path );
|
87 |
-
}
|
88 |
-
}
|
89 |
-
}
|
90 |
-
|
91 |
-
if ( isset($_POST['disable_flash']) ){
|
92 |
-
check_admin_referer('ngg_addgallery');
|
93 |
-
$ngg->options['swfUpload'] = false;
|
94 |
-
update_option('ngg_options', $ngg->options);
|
95 |
-
}
|
96 |
-
|
97 |
-
if ( isset($_POST['enable_flash']) ){
|
98 |
-
check_admin_referer('ngg_addgallery');
|
99 |
-
$ngg->options['swfUpload'] = true;
|
100 |
-
update_option('ngg_options', $ngg->options);
|
101 |
-
}
|
102 |
-
|
103 |
-
do_action( 'ngg_update_addgallery_page' );
|
104 |
-
|
105 |
-
}
|
106 |
-
|
107 |
-
/**
|
108 |
-
* Render the page content
|
109 |
-
*
|
110 |
-
* @return void
|
111 |
-
*/
|
112 |
-
function controller() {
|
113 |
-
global $ngg, $nggdb;
|
114 |
-
|
115 |
-
// check for the max image size
|
116 |
-
$this->maxsize = nggGallery::check_memory_limit();
|
117 |
-
|
118 |
-
//get all galleries (after we added new ones)
|
119 |
-
$this->gallerylist = $nggdb->find_all_galleries('gid', 'DESC');
|
120 |
-
|
121 |
-
$this->defaultpath = $ngg->options['gallerypath'];
|
122 |
-
|
123 |
-
// link for the flash file
|
124 |
-
$swf_upload_link = admin_url('/?nggupload');
|
125 |
-
|
126 |
-
// get list of tabs
|
127 |
-
$tabs = $this->tabs_order();
|
128 |
-
|
129 |
-
// with this filter you can add custom file types
|
130 |
-
$file_types = apply_filters( 'ngg_swf_file_types', '*.jpg;*.jpeg;*.gif;*.png;*.JPG;*.JPEG;*.GIF;*.PNG' );
|
131 |
-
|
132 |
-
// Set the post params, which plupload will post back with the file, and pass them through a filter.
|
133 |
-
$post_params = array(
|
134 |
-
"auth_cookie" => (is_ssl() ? $_COOKIE[SECURE_AUTH_COOKIE] : $_COOKIE[AUTH_COOKIE]),
|
135 |
-
"logged_in_cookie" => $_COOKIE[LOGGED_IN_COOKIE],
|
136 |
-
"_wpnonce" => wp_create_nonce('ngg_swfupload'),
|
137 |
-
"galleryselect" => "0",
|
138 |
-
);
|
139 |
-
$p = array();
|
140 |
-
|
141 |
-
foreach ( $post_params as $param => $val ) {
|
142 |
-
$val = esc_js( $val );
|
143 |
-
$p[] = "'$param' : '$val'";
|
144 |
-
}
|
145 |
-
|
146 |
-
$post_params_str = implode( ',', $p ). "\n";
|
147 |
-
?>
|
148 |
-
<div class="wrap">
|
149 |
-
<h2><?php _e('Add Gallery / Images', 'nggallery') ?></h2>
|
150 |
-
</div>
|
151 |
-
<?php if( !empty ($this->gallerylist) ) { ?>
|
152 |
-
<?php if( $ngg->options['swfUpload'] ) { ?>
|
153 |
-
<!-- plupload script -->
|
154 |
-
<script type="text/javascript">
|
155 |
-
//<![CDATA[
|
156 |
-
|
157 |
-
jQuery(document).ready(function($) {
|
158 |
-
window.uploader = new plupload.Uploader({
|
159 |
-
runtimes: '<?php echo apply_filters('plupload_runtimes', 'html5,flash,silverlight,html4,'); ?>',
|
160 |
-
browse_button: 'plupload-browse-button',
|
161 |
-
container: 'plupload-upload-ui',
|
162 |
-
drop_element: 'uploadimage',
|
163 |
-
file_data_name: 'Filedata',
|
164 |
-
url: '<?php echo esc_js( $swf_upload_link ); ?>',
|
165 |
-
flash_swf_url: '<?php echo esc_js( includes_url('js/plupload/plupload.flash.swf') ); ?>',
|
166 |
-
silverlight_xap_url: '<?php echo esc_js( includes_url('js/plupload/plupload.silverlight.xap') ); ?>',
|
167 |
-
filters: {
|
168 |
-
mime_types : [
|
169 |
-
{title: '<?php echo esc_js( __('Image Files', 'nggallery') ); ?>', extensions: '<?php echo esc_js( str_replace( array('*.', ';'), array('', ','), $file_types) ); ?>'}
|
170 |
-
],
|
171 |
-
max_file_size: '<?php echo round( (int) wp_max_upload_size() / 1024 ); ?>kb'
|
172 |
-
},
|
173 |
-
multipart: true,
|
174 |
-
urlstream_upload: true,
|
175 |
-
multipart_params : {
|
176 |
-
<?php echo $post_params_str; ?>
|
177 |
-
},
|
178 |
-
<?php if ($ngg->options['imgAutoResize'] == 1) { ?>
|
179 |
-
resize: {
|
180 |
-
width: <?php echo esc_js( $ngg->options['imgWidth'] ); ?>,
|
181 |
-
height: <?php echo esc_js( $ngg->options['imgHeight'] ); ?>,
|
182 |
-
quality: <?php echo esc_js( $ngg->options['imgQuality'] ); ?>
|
183 |
-
},
|
184 |
-
<?php } ?>
|
185 |
-
debug: false,
|
186 |
-
preinit : {
|
187 |
-
Init: function(up, info) {
|
188 |
-
debug('[Init]', 'Info :', info, 'Features :', up.features);
|
189 |
-
if (navigator.appVersion.indexOf("MSIE 10") > -1) {
|
190 |
-
up.features.triggerDialog = true;
|
191 |
-
}
|
192 |
-
initUploader();
|
193 |
-
}
|
194 |
-
},
|
195 |
-
i18n : {
|
196 |
-
'remove' : '<?php _e('remove', 'nggallery') ;?>',
|
197 |
-
'browse' : '<?php _e('Browse...', 'nggallery') ;?>',
|
198 |
-
'upload' : '<?php _e('Upload images', 'nggallery') ;?>'
|
199 |
-
}
|
200 |
-
});
|
201 |
-
|
202 |
-
uploader.bind('FilesAdded', function(up, files) {
|
203 |
-
$.each(files, function(i, file) {
|
204 |
-
fileQueued(file);
|
205 |
-
});
|
206 |
-
|
207 |
-
up.refresh();
|
208 |
-
});
|
209 |
-
|
210 |
-
uploader.bind('BeforeUpload', function(up, file) {
|
211 |
-
uploadStart(file);
|
212 |
-
});
|
213 |
-
|
214 |
-
uploader.bind('UploadProgress', function(up, file) {
|
215 |
-
uploadProgress(file, file.loaded, file.size);
|
216 |
-
});
|
217 |
-
|
218 |
-
uploader.bind('Error', function(up, err) {
|
219 |
-
uploadError(err.file, err.code, err.message);
|
220 |
-
|
221 |
-
up.refresh();
|
222 |
-
});
|
223 |
-
|
224 |
-
uploader.bind('FileUploaded', function(up, file, response) {
|
225 |
-
uploadSuccess(file, response);
|
226 |
-
});
|
227 |
-
|
228 |
-
uploader.bind('UploadComplete', function(up, file) {
|
229 |
-
uploadComplete(file);
|
230 |
-
});
|
231 |
-
|
232 |
-
// on load change the upload to plupload
|
233 |
-
uploader.init();
|
234 |
-
|
235 |
-
nggAjaxOptions = {
|
236 |
-
header: "<?php _e('Upload images', 'nggallery') ;?>",
|
237 |
-
maxStep: 100
|
238 |
-
};
|
239 |
-
|
240 |
-
});
|
241 |
-
//]]>
|
242 |
-
</script>
|
243 |
-
<?php } else { ?>
|
244 |
-
<!-- Browser upload script -->
|
245 |
-
<script type="text/javascript">
|
246 |
-
/* <![CDATA[ */
|
247 |
-
var selDiv = "";
|
248 |
-
|
249 |
-
document.addEventListener("DOMContentLoaded", init, false);
|
250 |
-
|
251 |
-
function init() {
|
252 |
-
document.querySelector('#imagefiles').addEventListener('change', handleFileSelect, false);
|
253 |
-
selDiv = document.querySelector("#uploadQueue");
|
254 |
-
}
|
255 |
-
|
256 |
-
function handleFileSelect(e) {
|
257 |
-
if(!e.target.files) return;
|
258 |
-
selDiv.innerHTML = "";
|
259 |
-
var files = e.target.files;
|
260 |
-
for(var i=0; i<files.length; i++) {
|
261 |
-
var f = files[i];
|
262 |
-
selDiv.innerHTML += f.name + "<br/>";
|
263 |
-
}
|
264 |
-
}
|
265 |
-
/* ]]> */
|
266 |
-
</script>
|
267 |
-
<?php } } ?>
|
268 |
-
<!-- jQuery Tabs script -->
|
269 |
-
<script type="text/javascript">
|
270 |
-
/* <![CDATA[ */
|
271 |
-
jQuery(document).ready(function(){
|
272 |
-
jQuery('html,body').scrollTop(0);
|
273 |
-
jQuery('#slider').tabs({ fxFade: true, fxSpeed: 'fast' }).css({ 'display': 'block' });
|
274 |
-
});
|
275 |
-
|
276 |
-
// File Tree implementation
|
277 |
-
jQuery(function() {
|
278 |
-
jQuery("span.browsefiles").show().click(function(){
|
279 |
-
jQuery("#file_browser").fileTree({
|
280 |
-
script: "admin-ajax.php?action=ngg_file_browser&nonce=<?php echo wp_create_nonce( 'ngg-ajax' ) ;?>",
|
281 |
-
root: jQuery("#galleryfolder").val()
|
282 |
-
}, function(folder) {
|
283 |
-
jQuery("#galleryfolder").val( folder );
|
284 |
-
});
|
285 |
-
jQuery("#file_browser").show('slide');
|
286 |
-
});
|
287 |
-
});
|
288 |
-
|
289 |
-
//Check for a selected gallery on basic uploader and zip upload
|
290 |
-
function checkForm(buttonID) {
|
291 |
-
var e = document.getElementById(buttonID);
|
292 |
-
var strUser = e.options[e.selectedIndex].value;
|
293 |
-
if (strUser == "0") {
|
294 |
-
alert("<?php _e('You didn\'t select a gallery!','nggallery')?>");
|
295 |
-
event.preventDefault();
|
296 |
-
}
|
297 |
-
}
|
298 |
-
|
299 |
-
//Check if the user has selected a zip file
|
300 |
-
function checkZipFile() {
|
301 |
-
if( !(document.getElementById('zipfile').value || document.getElementById("zipurl").value) ) {
|
302 |
-
alert("<?php _e('You didn\'t select a file!','nggallery')?>");
|
303 |
-
event.preventDefault();
|
304 |
-
}
|
305 |
-
}
|
306 |
-
|
307 |
-
//Check if the user has selected an image file
|
308 |
-
function checkImgFile() {
|
309 |
-
if( !document.getElementById('imagefiles').value ) {
|
310 |
-
alert("<?php _e('You didn\'t select a file!','nggallery')?>");
|
311 |
-
event.preventDefault();
|
312 |
-
}
|
313 |
-
}
|
314 |
-
/* ]]> */
|
315 |
-
</script>
|
316 |
-
<div id="slider" class="wrap" style="display: none;">
|
317 |
-
<ul id="tabs">
|
318 |
-
<?php
|
319 |
-
foreach($tabs as $tab_key => $tab_name) {
|
320 |
-
echo "\n\t\t<li><a class='nav-tab' href='#$tab_key'>$tab_name</a></li>";
|
321 |
-
}
|
322 |
-
?>
|
323 |
-
</ul>
|
324 |
-
<?php
|
325 |
-
foreach($tabs as $tab_key => $tab_name) {
|
326 |
-
echo "\n\t<div id='$tab_key'>\n";
|
327 |
-
// Looks for the internal class function, otherwise enable a hook for plugins
|
328 |
-
if ( method_exists( $this, "tab_$tab_key" ))
|
329 |
-
call_user_func( array( &$this , "tab_$tab_key") );
|
330 |
-
else
|
331 |
-
do_action( 'ngg_tab_content_' . $tab_key );
|
332 |
-
echo "\n\t</div>";
|
333 |
-
}
|
334 |
-
?>
|
335 |
-
</div>
|
336 |
-
<?php
|
337 |
-
|
338 |
-
}
|
339 |
-
|
340 |
-
/**
|
341 |
-
* Create array for tabs and add a filter for other plugins to inject more tabs
|
342 |
-
*
|
343 |
-
* @return array $tabs
|
344 |
-
*/
|
345 |
-
function tabs_order() {
|
346 |
-
|
347 |
-
$tabs = array();
|
348 |
-
|
349 |
-
if ( nggGallery::current_user_can( 'NextGEN Add new gallery' ))
|
350 |
-
$tabs['addgallery'] = __('New gallery', 'nggallery');
|
351 |
-
|
352 |
-
if ( !empty ($this->gallerylist) )
|
353 |
-
$tabs['uploadimage'] = __( 'Images', 'nggallery' );
|
354 |
-
|
355 |
-
if ( wpmu_enable_function('wpmuZipUpload') && nggGallery::current_user_can( 'NextGEN Upload a zip' ) )
|
356 |
-
$tabs['zipupload'] = __('ZIP file', 'nggallery');
|
357 |
-
|
358 |
-
if ( wpmu_enable_function('wpmuImportFolder') && nggGallery::current_user_can( 'NextGEN Import image folder' ) )
|
359 |
-
$tabs['importfolder'] = __('Import folder', 'nggallery');
|
360 |
-
|
361 |
-
$tabs = apply_filters('ngg_addgallery_tabs', $tabs);
|
362 |
-
|
363 |
-
return $tabs;
|
364 |
-
|
365 |
-
}
|
366 |
-
|
367 |
-
function tab_addgallery() {
|
368 |
-
?>
|
369 |
-
<!-- create gallery -->
|
370 |
-
<h3><?php _e('Add a new gallery', 'nggallery') ;?></h3>
|
371 |
-
<form name="addgallery" id="addgallery_form" method="POST" action="<?php echo $this->filepath; ?>" accept-charset="utf-8" >
|
372 |
-
<?php wp_nonce_field('ngg_addgallery') ?>
|
373 |
-
<table class="form-table">
|
374 |
-
<tr valign="top">
|
375 |
-
<th scope="row"><?php _e('Name', 'nggallery') ;?>:</th>
|
376 |
-
<td><input type="text" size="35" name="galleryname" value="" /><br />
|
377 |
-
<?php if(!is_multisite()) { ?>
|
378 |
-
<?php _e('Create a new, empty gallery in the folder', 'nggallery') ;?> <strong><?php echo $this->defaultpath ?></strong>
|
379 |
-
<?php } ?>
|
380 |
-
<p class="description"><?php _e('Allowed characters for file and folder names are', 'nggallery') ;?>: a-z, A-Z, 0-9, -, _</p></td>
|
381 |
-
</tr>
|
382 |
-
<tr>
|
383 |
-
<th scope="row"><?php _e('Description', 'nggallery') ;?>:</th>
|
384 |
-
<td><textarea name="gallerydesc" id="gallerydesc" cols="50" rows="3"></textarea>
|
385 |
-
<p class="description"><?php _e('Add a description. This is optional and can be changed later.', 'nggallery') ;?></p></td>
|
386 |
-
</tr>
|
387 |
-
<?php do_action('ngg_add_new_gallery_form'); ?>
|
388 |
-
</table>
|
389 |
-
<div class="submit"><input class="button-primary" type="submit" name= "addgallery" value="<?php _e('Add gallery', 'nggallery') ;?>"/></div>
|
390 |
-
</form>
|
391 |
-
<?php
|
392 |
-
}
|
393 |
-
|
394 |
-
function tab_zipupload() {
|
395 |
-
?>
|
396 |
-
<!-- zip-file operation -->
|
397 |
-
<h3><?php _e('Upload a ZIP File', 'nggallery') ;?></h3>
|
398 |
-
<form name="zipupload" id="zipupload_form" method="POST" enctype="multipart/form-data" action="<?php echo $this->filepath.'#zipupload'; ?>" accept-charset="utf-8" >
|
399 |
-
<?php wp_nonce_field('ngg_addgallery') ?>
|
400 |
-
<table class="form-table">
|
401 |
-
<tr valign="top">
|
402 |
-
<th scope="row"><?php _e('Select ZIP file', 'nggallery') ;?>:</th>
|
403 |
-
<td><input type="file" name="zipfile" id="zipfile" size="35" class="uploadform"/><p class="description">
|
404 |
-
<?php _e('Upload a ZIP file with images', 'nggallery') ;?></p></td>
|
405 |
-
</tr>
|
406 |
-
<?php if (function_exists('curl_init')) : ?>
|
407 |
-
<tr valign="top">
|
408 |
-
<th scope="row"><?php _e('or enter URL', 'nggallery') ;?>:</th>
|
409 |
-
<td><input type="text" name="zipurl" id="zipurl" size="35" class="uploadform"/>
|
410 |
-
<p class="description"><?php _e('Import a ZIP file from a URL', 'nggallery') ;?></p></td>
|
411 |
-
</tr>
|
412 |
-
<?php endif; ?>
|
413 |
-
<tr valign="top">
|
414 |
-
<th scope="row"><?php _e('in to', 'nggallery') ;?></th>
|
415 |
-
<td><select name="zipgalselect" id="zipgalselect">
|
416 |
-
<option value="0" ><?php _e('a new gallery', 'nggallery') ?></option>
|
417 |
-
<?php
|
418 |
-
foreach($this->gallerylist as $gallery) {
|
419 |
-
if ( !nggAdmin::can_manage_this_gallery($gallery->author) )
|
420 |
-
continue;
|
421 |
-
$name = ( empty($gallery->title) ) ? $gallery->name : $gallery->title;
|
422 |
-
echo '<option value="' . $gallery->gid . '" >' . $gallery->gid . ' - ' . esc_attr( $name ). '</option>' . "\n";
|
423 |
-
}
|
424 |
-
?>
|
425 |
-
</select>
|
426 |
-
<br /><?php echo $this->maxsize; ?>
|
427 |
-
<p class="description"><?php echo _e('Note: the upload limit on your server is ','nggallery') . "<strong>" . ini_get('upload_max_filesize') . "B</strong>\n"; ?></p>
|
428 |
-
<br /><?php if ( (is_multisite()) && wpmu_enable_function('wpmuQuotaCheck') ) display_space_usage(); ?></td>
|
429 |
-
</tr>
|
430 |
-
</table>
|
431 |
-
<div class="submit"><input class="button-primary" onclick="checkZipFile()" type="submit" name= "zipupload" value="<?php _e('Start upload', 'nggallery') ;?>"/></div>
|
432 |
-
</form>
|
433 |
-
<?php
|
434 |
-
}
|
435 |
-
|
436 |
-
function tab_importfolder() {
|
437 |
-
?>
|
438 |
-
<!-- import folder -->
|
439 |
-
<h3><?php _e('Import an image folder', 'nggallery') ;?></h3>
|
440 |
-
<form name="importfolder" id="importfolder_form" method="POST" action="<?php echo $this->filepath.'#importfolder'; ?>" accept-charset="utf-8" >
|
441 |
-
<?php wp_nonce_field('ngg_addgallery') ?>
|
442 |
-
<table class="form-table">
|
443 |
-
<tr valign="top">
|
444 |
-
<th scope="row"><?php _e('Import from server:', 'nggallery') ;?></th>
|
445 |
-
<td><input type="text" size="35" id="galleryfolder" name="galleryfolder" value="<?php echo $this->defaultpath; ?>" /><span class="browsefiles button" style="display:none"><?php _e('Browse...', 'nggallery'); ?></span><br />
|
446 |
-
<div id="file_browser"></div>
|
447 |
-
<p class="description"><?php _e('Note: you can change the default path in the gallery settings', 'nggallery') ;?></p>
|
448 |
-
<br /><?php echo $this->maxsize; ?>
|
449 |
-
<?php if (SAFE_MODE) {?><p class="description"><?php _e('Please note: If safe-mode is ON, you need to add the subfolder with thumbs manually', 'nggallery') ;?></p><?php }; ?></td>
|
450 |
-
</tr>
|
451 |
-
</table>
|
452 |
-
<div class="submit"><input onclick="return confirm('<?php _e("This will change folder and file names (e.g. remove spaces, special characters, ...)","nggallery")?>\n\n<?php _e("You will need to update your URLs if you link directly to the images.","nggallery")?>\n\n<?php _e("Press OK to proceed, and Cancel to stop.","nggallery")?>')" class="button-primary" type="submit" name= "importfolder" value="<?php _e('Import folder', 'nggallery') ;?>"/></div>
|
453 |
-
</form>
|
454 |
-
<?php
|
455 |
-
}
|
456 |
-
|
457 |
-
function tab_uploadimage() {
|
458 |
-
global $ngg;
|
459 |
-
// check the cookie for the current setting
|
460 |
-
//$checked = get_user_setting('ngg_upload_resize') ? ' checked="true"' : '';
|
461 |
-
?>
|
462 |
-
<!-- upload images -->
|
463 |
-
<h3><?php _e('Upload images', 'nggallery') ;?></h3>
|
464 |
-
<form name="uploadimage" id="uploadimage_form" method="POST" enctype="multipart/form-data" action="<?php echo $this->filepath.'#uploadimage'; ?>" accept-charset="utf-8" >
|
465 |
-
<?php wp_nonce_field('ngg_addgallery') ?>
|
466 |
-
<table class="form-table">
|
467 |
-
<tr valign="top">
|
468 |
-
<td scope="row" style="padding: 0;" colspan="2"><?php _e('in to', 'nggallery') ;?><select style="margin-left:10px;" name="galleryselect" id="galleryselect">
|
469 |
-
<option value="0" ><?php _e('Choose gallery', 'nggallery') ?></option>
|
470 |
-
<?php
|
471 |
-
foreach($this->gallerylist as $gallery) {
|
472 |
-
//special case : we check if a user has this cap, then we override the second cap check
|
473 |
-
if ( !current_user_can( 'NextGEN Upload in all galleries' ) )
|
474 |
-
if ( !nggAdmin::can_manage_this_gallery($gallery->author) )
|
475 |
-
continue;
|
476 |
-
|
477 |
-
$name = ( empty($gallery->title) ) ? $gallery->name : $gallery->title;
|
478 |
-
echo '<option value="' . $gallery->gid . '" >' . $gallery->gid . ' - ' . esc_attr( $name ) . '</option>' . "\n";
|
479 |
-
} ?>
|
480 |
-
</select>
|
481 |
-
<br /><?php echo $this->maxsize; ?>
|
482 |
-
<br /><?php if ((is_multisite()) && wpmu_enable_function('wpmuQuotaCheck')) display_space_usage(); ?></td>
|
483 |
-
</tr>
|
484 |
-
<tr valign="top">
|
485 |
-
<?php if ($ngg->options['swfUpload'] ) { ?>
|
486 |
-
<td colspan="2" style="padding: 0;">
|
487 |
-
<div id="plupload-upload-ui">
|
488 |
-
<div id="drag-drop-area" style="border: 4px dashed #bbb;height: 150px; padding:20px;">
|
489 |
-
<div class="drag-drop-inside" style="margin:auto; text-align:center; width: 250px;">
|
490 |
-
<p class="ngg-dragdrop-info drag-drop-info" style="font-size:20px;" >
|
491 |
-
<?php _e('Drop your files in this window', 'nggallery'); ?><br/><span style="font-size:14px;"><?php _e('Or', 'nggallery'); ?></p>
|
492 |
-
<input style="margin:auto; text-align:center;" id="plupload-browse-button" type="button" value="<?php esc_attr_e('Select Files', 'nggallery'); ?>" class="button" />
|
493 |
-
</div>
|
494 |
-
</div>
|
495 |
-
</div>
|
496 |
-
</td>
|
497 |
-
<?php } else { ?>
|
498 |
-
<td><span id='spanButtonPlaceholder'></span>
|
499 |
-
<input type="file" name="imagefiles[]" id="imagefiles" size="35" class="imagefiles" multiple/></td>
|
500 |
-
<?php } ?>
|
501 |
-
</tr>
|
502 |
-
<tr><td><div id='uploadQueue' style="margin-top: 10px;"><td></div>
|
503 |
-
</tr>
|
504 |
-
</table>
|
505 |
-
<div class="submit">
|
506 |
-
<?php if ($ngg->options['swfUpload']) { ?>
|
507 |
-
<input class="button action" type="submit" name="disable_flash" id="disable_flash" title="<?php _e('Click here to use the browser upload instead','nggallery') ?>" value="<?php _e('Use basic uploader', 'nggallery') ;?>" />
|
508 |
-
<?php } else { ?>
|
509 |
-
<input class="button action" type="submit" name="enable_flash" id="enable_flash" title="<?php _e('Advanced uploading','nggallery') ?>" value="<?php _e('Use advanced uploader', 'nggallery') ;?>" />
|
510 |
-
<?php } ?>
|
511 |
-
<input <?php if ( !($ngg->options['swfUpload']) ) { ?> onclick="checkForm('galleryselect'); checkImgFile()" <?php } ?> class="button-primary" type="submit" name="uploadimage" id="uploadimage_btn" value="<?php _e('Upload images', 'nggallery') ;?>" />
|
512 |
-
<?php if ($ngg->options['imgAutoResize'] == 1) { ?>
|
513 |
-
<span class="description" style="margin-left: 10px;"><?php printf( __( 'Your images will be rescaled to max width %1$dpx or max height %2$dpx.', 'nggallery' ), (int) $ngg->options['imgWidth' ], (int) $ngg->options[ 'imgHeight' ] ); ?></span>
|
514 |
-
<?php } ?>
|
515 |
-
</div>
|
516 |
-
</form>
|
517 |
-
<?php
|
518 |
-
}
|
519 |
-
}
|
520 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/admin.php
DELETED
@@ -1,617 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* nggAdminPanel - Admin Section for NextGEN Gallery
|
5 |
-
*
|
6 |
-
* @package NextGEN Gallery
|
7 |
-
* @author Alex Rabe
|
8 |
-
*
|
9 |
-
* @since 1.0.0
|
10 |
-
*/
|
11 |
-
class nggAdminPanel {
|
12 |
-
|
13 |
-
// constructor
|
14 |
-
function __construct() {
|
15 |
-
|
16 |
-
// Add the admin menu
|
17 |
-
add_action( 'admin_menu', array( &$this, 'add_menu' ) );
|
18 |
-
add_action( 'network_admin_menu', array( &$this, 'add_network_admin_menu' ) );
|
19 |
-
|
20 |
-
// Add the script and style files
|
21 |
-
add_action( 'admin_enqueue_scripts', array( &$this, 'load_scripts' ) );
|
22 |
-
add_action( 'admin_enqueue_scripts', array( &$this, 'load_styles' ) );
|
23 |
-
|
24 |
-
// Try to detect plugins that embed their own jQuery and jQuery UI
|
25 |
-
// libraries and load them in NGG's admin pages
|
26 |
-
add_action( 'admin_enqueue_scripts', array( &$this, 'buffer_scripts' ), 0 );
|
27 |
-
add_action( 'admin_enqueue_scripts', array( &$this, 'output_scripts' ), PHP_INT_MAX );
|
28 |
-
|
29 |
-
add_filter( 'current_screen', array( &$this, 'edit_current_screen' ) );
|
30 |
-
|
31 |
-
// Add WPML hook to register description / alt text for translation
|
32 |
-
add_action( 'ngg_image_updated', array( 'nggGallery', 'RegisterString' ) );
|
33 |
-
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* If a NGG page is being requested, we buffer any rendering of <script>
|
38 |
-
* tags to detect conflicts and remove them if need be
|
39 |
-
*/
|
40 |
-
function buffer_scripts() {
|
41 |
-
// Is this a NGG admin page?
|
42 |
-
if ( isset( $_REQUEST['page'] ) && strpos( $_REQUEST['page'], 'nggallery' ) !== false ) {
|
43 |
-
ob_start();
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
function output_scripts() {
|
48 |
-
// Is this a NGG admin page?
|
49 |
-
if ( isset( $_REQUEST['page'] ) && strpos( $_REQUEST['page'], 'nggallery' ) !== false ) {
|
50 |
-
$plugin_folder = NGGFOLDER;
|
51 |
-
$skipjs_count = 0;
|
52 |
-
$html = ob_get_contents();
|
53 |
-
ob_end_clean();
|
54 |
-
|
55 |
-
if ( ! defined( 'NGG_JQUERY_CONFLICT_DETECTION' ) ) {
|
56 |
-
define( 'NGG_JQUERY_CONFLICT_DETECTION', true );
|
57 |
-
}
|
58 |
-
|
59 |
-
if ( NGG_JQUERY_CONFLICT_DETECTION ) {
|
60 |
-
// Detect custom jQuery script
|
61 |
-
if ( preg_match_all( "/<script.*wp-content.*jquery[-_\.](min\.)?js.*<\script>/", $html, $matches, PREG_SET_ORDER ) ) {
|
62 |
-
foreach ( $matches as $match ) {
|
63 |
-
$old_script = array_shift( $match );
|
64 |
-
if ( strpos( $old_script, NGGFOLDER ) === false ) {
|
65 |
-
$html = str_replace( $old_script, '', $html );
|
66 |
-
}
|
67 |
-
}
|
68 |
-
}
|
69 |
-
|
70 |
-
// Detect custom jQuery UI script and remove
|
71 |
-
if ( preg_match_all( "/<script.*wp-content.*jquery[-_\.]ui.*<\/script>/", $html, $matches, PREG_SET_ORDER ) ) {
|
72 |
-
$detected_jquery_ui = true;
|
73 |
-
foreach ( $matches as $match ) {
|
74 |
-
$old_script = array_shift( $match );
|
75 |
-
if ( strpos( $old_script, NGGFOLDER ) === false ) {
|
76 |
-
$html = str_replace( $old_script, '', $html );
|
77 |
-
}
|
78 |
-
}
|
79 |
-
}
|
80 |
-
|
81 |
-
if ( isset( $_REQUEST['skipjs'] ) ) {
|
82 |
-
foreach ( $_REQUEST['skipjs'] as $js ) {
|
83 |
-
$js = preg_quote( $js );
|
84 |
-
if ( preg_match_all( "#<script.*{$js}.*</script>#", $html, $matches, PREG_SET_ORDER ) ) {
|
85 |
-
foreach ( $matches as $match ) {
|
86 |
-
$old_script = array_shift( $match );
|
87 |
-
if ( strpos( $old_script, NGGFOLDER ) === false ) {
|
88 |
-
$html = str_replace( $old_script, '', $html );
|
89 |
-
}
|
90 |
-
}
|
91 |
-
}
|
92 |
-
}
|
93 |
-
$skipjs_count = count( $_REQUEST['skipjs'] );
|
94 |
-
}
|
95 |
-
|
96 |
-
|
97 |
-
// Use WordPress built-in version of jQuery
|
98 |
-
$jquery_url = includes_url( 'js/jquery/jquery.js' );
|
99 |
-
$html = implode( '', array(
|
100 |
-
"<script type='text/javascript' src='{$jquery_url}'></script>\n",
|
101 |
-
"<script type='text/javascript'>
|
102 |
-
window.onerror = function(msg, url, line){
|
103 |
-
if (url.match(/\.js$|\.js\?/)) {
|
104 |
-
if (window.location.search.length > 0) {
|
105 |
-
if (window.location.search.indexOf(url) == -1)
|
106 |
-
window.location.search += '&skipjs[{$skipjs_count}]='+url;
|
107 |
-
}
|
108 |
-
else {
|
109 |
-
window.location.search = '?skipjs[{$skipjs_count}]='+url;
|
110 |
-
}
|
111 |
-
}
|
112 |
-
return true;
|
113 |
-
};</script>\n",
|
114 |
-
$html
|
115 |
-
) );
|
116 |
-
}
|
117 |
-
|
118 |
-
echo $html;
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Enable dash icons for WP latest versions. See https://developer.wordpress.org/resource/dashicons/#format-gallery
|
126 |
-
* @param $wp_version defaults to current WP version
|
127 |
-
* @return string
|
128 |
-
*/
|
129 |
-
|
130 |
-
function get_icon_gallery($wp_version='') {
|
131 |
-
if (empty($wp_version)) {
|
132 |
-
$wp_version= get_bloginfo( 'version' ) ; //get WP Version
|
133 |
-
}
|
134 |
-
if ( $wp_version >= 3.8 ) {
|
135 |
-
return 'dashicons-format-gallery'; //new style
|
136 |
-
}
|
137 |
-
//older style
|
138 |
-
return path_join( NGGALLERY_URLPATH, 'admin/images/nextgen_16_color.png' );
|
139 |
-
}
|
140 |
-
/**
|
141 |
-
* Integrate the menu
|
142 |
-
*
|
143 |
-
*/
|
144 |
-
function add_menu() {
|
145 |
-
add_menu_page( __( 'Galleries', 'nggallery' ), __( 'Galleries', 'nggallery' ),
|
146 |
-
'NextGEN Gallery overview', NGGFOLDER, array(&$this,'show_menu'), $this->get_icon_gallery());
|
147 |
-
|
148 |
-
add_submenu_page( NGGFOLDER, __( 'Overview', 'nggallery' ), __( 'Overview', 'nggallery' ), 'NextGEN Gallery overview',
|
149 |
-
NGGFOLDER, array(&$this,'show_menu' ) );
|
150 |
-
|
151 |
-
add_submenu_page( NGGFOLDER, __( 'Add Gallery / Images', 'nggallery' ), __( 'Add Gallery / Images', 'nggallery' ), 'NextGEN Upload images' , 'nggallery-add-gallery',
|
152 |
-
array( &$this, 'show_menu' ) );
|
153 |
-
|
154 |
-
add_submenu_page( NGGFOLDER, __( 'Galleries', 'nggallery' ) , __( 'Galleries', 'nggallery' ) , 'NextGEN Manage gallery', 'nggallery-manage-gallery',
|
155 |
-
array( &$this, 'show_menu' ) );
|
156 |
-
|
157 |
-
add_submenu_page( NGGFOLDER, __( 'Albums', 'nggallery' ) , __( 'Albums', 'nggallery' ) , 'NextGEN Edit album' , 'nggallery-manage-album',
|
158 |
-
array( &$this, 'show_menu' ) );
|
159 |
-
|
160 |
-
add_submenu_page( NGGFOLDER, __( 'Tags', 'nggallery' ) , __( 'Tags', 'nggallery' ) , 'NextGEN Manage tags' , 'nggallery-tags',
|
161 |
-
array( &$this, 'show_menu' ) );
|
162 |
-
|
163 |
-
add_submenu_page( NGGFOLDER, __( 'Settings', 'nggallery' ) , __( 'Settings', 'nggallery' ) , 'NextGEN Change options', 'nggallery-options',
|
164 |
-
array( &$this, 'show_menu' ) );
|
165 |
-
|
166 |
-
if ( wpmu_enable_function( 'wpmuStyle' ) ) {
|
167 |
-
add_submenu_page( NGGFOLDER, __( 'Style', 'nggallery' ), __( 'Style', 'nggallery' ), 'NextGEN Change style', 'nggallery-style',
|
168 |
-
array( &$this, 'show_menu' ) );
|
169 |
-
}
|
170 |
-
if ( wpmu_enable_function( 'wpmuRoles' ) || is_super_admin() ) {
|
171 |
-
add_submenu_page( NGGFOLDER, __( 'Roles', 'nggallery' ), __( 'Roles', 'nggallery' ), 'activate_plugins', 'nggallery-roles',
|
172 |
-
array( &$this, 'show_menu' ) );
|
173 |
-
}
|
174 |
-
|
175 |
-
if ( ! is_multisite() || is_super_admin() ) {
|
176 |
-
add_submenu_page( NGGFOLDER, __( 'Reset / Uninstall', 'nggallery' ), __( 'Reset / Uninstall', 'nggallery' ), 'activate_plugins', 'nggallery-setup',
|
177 |
-
array( &$this, 'show_menu' ) );
|
178 |
-
}
|
179 |
-
|
180 |
-
//register the column fields
|
181 |
-
$this->register_columns();
|
182 |
-
}
|
183 |
-
|
184 |
-
// integrate the network menu
|
185 |
-
function add_network_admin_menu() {
|
186 |
-
add_menu_page( __( 'Galleries', 'nggallery' ), __( 'Galleries', 'nggallery' ), 'nggallery-wpmu',
|
187 |
-
NGGFOLDER, array(&$this,'show_network_settings'), $this->get_icon_gallery() );
|
188 |
-
|
189 |
-
add_submenu_page( NGGFOLDER, __( 'Network settings', 'nggallery' ), __( 'Network settings', 'nggallery' ), 'nggallery-wpmu',
|
190 |
-
NGGFOLDER, array(&$this, 'show_network_settings' ) );
|
191 |
-
|
192 |
-
add_submenu_page( NGGFOLDER, __( 'Reset / Uninstall', 'nggallery' ), __( 'Reset / Uninstall', 'nggallery' ), 'activate_plugins',
|
193 |
-
'nggallery-setup', array(&$this, 'show_menu') );
|
194 |
-
}
|
195 |
-
|
196 |
-
/**
|
197 |
-
* Maybe show an upgrade page.
|
198 |
-
*/
|
199 |
-
private function show_upgrade_page() {
|
200 |
-
|
201 |
-
global $ngg;
|
202 |
-
|
203 |
-
// check for upgrade and show upgrade screen
|
204 |
-
if ( get_option( 'ngg_db_version' ) != NGG_DBVERSION ) {
|
205 |
-
include_once( dirname( __FILE__ ) . '/functions.php' );
|
206 |
-
include_once( dirname( __FILE__ ) . '/upgrade.php' );
|
207 |
-
nggallery_upgrade_page();
|
208 |
-
|
209 |
-
exit;
|
210 |
-
}
|
211 |
-
}
|
212 |
-
|
213 |
-
// show the network page
|
214 |
-
function show_network_settings() {
|
215 |
-
$this->show_upgrade_page();
|
216 |
-
include_once( dirname( __FILE__ ) . '/style.php' );
|
217 |
-
include_once( dirname( __FILE__ ) . '/wpmu.php' );
|
218 |
-
nggallery_wpmu_setup();
|
219 |
-
}
|
220 |
-
|
221 |
-
// load the script for the defined page and load only this code
|
222 |
-
//20140515: removed donation code (not in use)
|
223 |
-
function show_menu() {
|
224 |
-
|
225 |
-
global $ngg;
|
226 |
-
|
227 |
-
$this->show_upgrade_page();
|
228 |
-
|
229 |
-
// Set installation date
|
230 |
-
if ( empty( $ngg->options['installDate'] ) ) {
|
231 |
-
$ngg->options['installDate'] = time();
|
232 |
-
update_option( 'ngg_options', $ngg->options );
|
233 |
-
}
|
234 |
-
|
235 |
-
switch ( $_GET['page'] ) {
|
236 |
-
case "nggallery-add-gallery" :
|
237 |
-
include_once( dirname( __FILE__ ) . '/functions.php' ); // admin functions
|
238 |
-
include_once( dirname( __FILE__ ) . '/addgallery.php' ); // nggallery_admin_add_gallery
|
239 |
-
$ngg->addgallery_page = new nggAddGallery ();
|
240 |
-
$ngg->addgallery_page->controller();
|
241 |
-
break;
|
242 |
-
case "nggallery-manage-gallery" :
|
243 |
-
include_once( dirname( __FILE__ ) . '/functions.php' ); // admin functions
|
244 |
-
include_once( dirname( __FILE__ ) . '/manage.php' ); // nggallery_admin_manage_gallery
|
245 |
-
// Initate the Manage Gallery page
|
246 |
-
$ngg->manage_page = new nggManageGallery ();
|
247 |
-
// Render the output now, because you cannot access a object during the constructor is not finished
|
248 |
-
$ngg->manage_page->controller();
|
249 |
-
break;
|
250 |
-
case "nggallery-manage-album" :
|
251 |
-
include_once( dirname( __FILE__ ) . '/album.php' ); // nggallery_admin_manage_album
|
252 |
-
$ngg->manage_album = new nggManageAlbum ();
|
253 |
-
$ngg->manage_album->controller();
|
254 |
-
break;
|
255 |
-
case "nggallery-options" :
|
256 |
-
include_once( dirname( __FILE__ ) . '/settings.php' ); // nggallery_admin_options
|
257 |
-
$ngg->option_page = new nggOptions ();
|
258 |
-
$ngg->option_page->show_page();
|
259 |
-
break;
|
260 |
-
case "nggallery-tags" :
|
261 |
-
include_once( dirname( __FILE__ ) . '/tags.php' ); // nggallery_admin_tags
|
262 |
-
break;
|
263 |
-
case "nggallery-style" :
|
264 |
-
include_once( dirname( __FILE__ ) . '/style.php' ); // nggallery_admin_style
|
265 |
-
$ngg->nggallery_style = new NGG_Style ();
|
266 |
-
$ngg->nggallery_style->controller();
|
267 |
-
break;
|
268 |
-
case "nggallery-setup" :
|
269 |
-
include_once( dirname( __FILE__ ) . '/setup.php' ); // nggallery_admin_setup
|
270 |
-
nggallery_admin_setup();
|
271 |
-
break;
|
272 |
-
case "nggallery-roles" :
|
273 |
-
include_once( dirname( __FILE__ ) . '/roles.php' ); // nggallery_admin_roles
|
274 |
-
nggallery_admin_roles();
|
275 |
-
break;
|
276 |
-
case "nggallery-import" :
|
277 |
-
include_once( dirname( __FILE__ ) . '/myimport.php' ); // nggallery_admin_import
|
278 |
-
nggallery_admin_import();
|
279 |
-
break;
|
280 |
-
case "nggallery" :
|
281 |
-
default :
|
282 |
-
include_once( dirname( __FILE__ ) . '/overview.php' ); // nggallery_admin_overview
|
283 |
-
$output = new Overview_Display();
|
284 |
-
$output->display();
|
285 |
-
break;
|
286 |
-
}
|
287 |
-
}
|
288 |
-
|
289 |
-
function load_scripts() {
|
290 |
-
global $wp_version;
|
291 |
-
|
292 |
-
// no need to go on if it's not a plugin page
|
293 |
-
if ( ! isset( $_GET['page'] ) ) {
|
294 |
-
return;
|
295 |
-
}
|
296 |
-
|
297 |
-
wp_register_script( 'ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array( 'jquery' ), '1.4.1' );
|
298 |
-
wp_localize_script( 'ngg-ajax', 'nggAjaxSetup', array(
|
299 |
-
'url' => admin_url( 'admin-ajax.php' ),
|
300 |
-
'action' => 'ngg_ajax_operation',
|
301 |
-
'operation' => '',
|
302 |
-
'nonce' => wp_create_nonce( 'ngg-ajax' ),
|
303 |
-
'ids' => '',
|
304 |
-
'permission' => __( 'You do not have the correct permission', 'nggallery' ),
|
305 |
-
'error' => __( 'Unexpected Error', 'nggallery' ),
|
306 |
-
'failure' => __( 'A failure occurred', 'nggallery' )
|
307 |
-
) );
|
308 |
-
wp_register_script( 'ngg-plupload-handler', NGGALLERY_URLPATH . 'admin/js/plupload.handler.js', array( 'plupload-all' ), '0.0.1' );
|
309 |
-
wp_localize_script( 'ngg-plupload-handler', 'pluploadL10n', array(
|
310 |
-
'queue_limit_exceeded' => __( 'You have attempted to queue too many files.' ),
|
311 |
-
'file_exceeds_size_limit' => __( 'This file exceeds the maximum upload size for this site.' ),
|
312 |
-
'zero_byte_file' => __( 'This file is empty. Please try another.' ),
|
313 |
-
'invalid_filetype' => __( 'This file type is not allowed. Please try another.' ),
|
314 |
-
'not_an_image' => __( 'This file is not an image. Please try another.' ),
|
315 |
-
'image_memory_exceeded' => __( 'Memory exceeded. Please try another smaller file.' ),
|
316 |
-
'image_dimensions_exceeded' => __( 'This is larger than the maximum size. Please try another.' ),
|
317 |
-
'default_error' => __( 'An error occurred in the upload. Please try again later.' ),
|
318 |
-
'missing_upload_url' => __( 'There was a configuration error. Please contact the server administrator.' ),
|
319 |
-
'upload_limit_exceeded' => __( 'You may only upload 1 file.' ),
|
320 |
-
'http_error' => __( 'HTTP error.' ),
|
321 |
-
'upload_failed' => __( 'Upload failed.' ),
|
322 |
-
'io_error' => __( 'IO error.' ),
|
323 |
-
'security_error' => __( 'Security error.' ),
|
324 |
-
'file_cancelled' => __( 'File canceled.' ),
|
325 |
-
'upload_stopped' => __( 'Upload stopped.' ),
|
326 |
-
'dismiss' => __( 'Dismiss' ),
|
327 |
-
'crunching' => __( 'Crunching…' ),
|
328 |
-
'deleted' => __( 'moved to the trash.' ),
|
329 |
-
'error_uploading' => __( '“%s” has failed to upload due to an error' ),
|
330 |
-
'no_gallery' => __( 'You didn\'t select a gallery!', 'nggallery' )
|
331 |
-
) );
|
332 |
-
wp_register_script( 'ngg-progressbar', NGGALLERY_URLPATH . 'admin/js/ngg.progressbar.js', array( 'jquery' ), '2.0.1' );
|
333 |
-
wp_register_script( 'ngg-autocomplete', NGGALLERY_URLPATH . 'admin/js/ngg.autocomplete.js', array( 'jquery-ui-autocomplete' ), '1.1' );
|
334 |
-
|
335 |
-
switch ( $_GET['page'] ) {
|
336 |
-
case NGGFOLDER :
|
337 |
-
add_thickbox();
|
338 |
-
wp_enqueue_script( 'postbox' );
|
339 |
-
break;
|
340 |
-
case "nggallery-manage-gallery" :
|
341 |
-
wp_enqueue_script( 'postbox' );
|
342 |
-
wp_enqueue_script( 'ngg-ajax' );
|
343 |
-
wp_enqueue_script( 'ngg-progressbar' );
|
344 |
-
wp_enqueue_script( 'jquery-ui-dialog' );
|
345 |
-
wp_enqueue_script( 'jquery-ui-sortable' );
|
346 |
-
wp_enqueue_script( 'jquery-ui-datepicker' );
|
347 |
-
wp_register_script( 'shutter', NGGALLERY_URLPATH . 'shutter/shutter-reloaded.js', false, '1.3.2' );
|
348 |
-
wp_localize_script( 'shutter', 'shutterSettings', array(
|
349 |
-
'msgLoading' => __( 'L O A D I N G', 'nggallery' ),
|
350 |
-
'msgClose' => __( 'Click to Close', 'nggallery' ),
|
351 |
-
'imageCount' => '1'
|
352 |
-
) );
|
353 |
-
wp_enqueue_script( 'shutter' );
|
354 |
-
break;
|
355 |
-
case "nggallery-manage-album" :
|
356 |
-
wp_enqueue_script( 'jquery-ui-dialog' );
|
357 |
-
wp_enqueue_script( 'jquery-ui-sortable' );
|
358 |
-
wp_enqueue_script( 'ngg-autocomplete' );
|
359 |
-
break;
|
360 |
-
case "nggallery-options" :
|
361 |
-
wp_enqueue_script( 'jquery-ui-tabs' );
|
362 |
-
wp_enqueue_script( 'wp-color-picker' );
|
363 |
-
wp_enqueue_script( 'ngg-autocomplete');
|
364 |
-
break;
|
365 |
-
case "nggallery-add-gallery" :
|
366 |
-
wp_enqueue_script( 'jquery-ui-tabs' );
|
367 |
-
wp_enqueue_script( 'ngg-plupload-handler' );
|
368 |
-
wp_enqueue_script( 'ngg-ajax' );
|
369 |
-
wp_enqueue_script( 'ngg-progressbar' );
|
370 |
-
wp_enqueue_script( 'jquery-ui-dialog' );
|
371 |
-
wp_enqueue_script( 'jqueryFileTree', NGGALLERY_URLPATH . 'admin/js/jqueryFileTree/jqueryFileTree.js', array( 'jquery' ), '1.0.1' );
|
372 |
-
break;
|
373 |
-
case "nggallery-style" :
|
374 |
-
wp_enqueue_script( 'codepress' );
|
375 |
-
break;
|
376 |
-
|
377 |
-
}
|
378 |
-
}
|
379 |
-
|
380 |
-
/**
|
381 |
-
* Load the icon for the navigation menu
|
382 |
-
*/
|
383 |
-
function load_styles() {
|
384 |
-
wp_register_style( 'nggadmin' , NGGALLERY_URLPATH . 'admin/css/nggadmin.css', false, '2.8.1', 'screen' );
|
385 |
-
wp_register_style( 'ngg-jqueryui', NGGALLERY_URLPATH . 'admin/css/jquery.ui.css', false, '1.8.5', 'screen' );
|
386 |
-
|
387 |
-
// no need to go on if it's not a plugin page
|
388 |
-
if ( ! isset( $_GET['page'] ) ) {
|
389 |
-
return;
|
390 |
-
}
|
391 |
-
|
392 |
-
switch ( $_GET['page'] ) {
|
393 |
-
case NGGFOLDER :
|
394 |
-
wp_enqueue_style( 'nggadmin' );
|
395 |
-
wp_enqueue_style( 'thickbox' );
|
396 |
-
break;
|
397 |
-
case "nggallery-add-gallery" :
|
398 |
-
wp_enqueue_style( 'ngg-jqueryui' );
|
399 |
-
wp_enqueue_style( 'jqueryFileTree', NGGALLERY_URLPATH . 'admin/js/jqueryFileTree/jqueryFileTree.css', false, '1.0.1', 'screen' );
|
400 |
-
case "nggallery-options" :
|
401 |
-
wp_enqueue_style( 'nggtabs', NGGALLERY_URLPATH . 'admin/css/jquery.ui.tabs.css', false, '2.5.0', 'screen' );
|
402 |
-
wp_enqueue_style( 'nggadmin' );
|
403 |
-
wp_enqueue_style( 'wp-color-picker' );
|
404 |
-
wp_enqueue_style( 'ngg-jqueryui' );
|
405 |
-
break;
|
406 |
-
case "nggallery-manage-gallery" :
|
407 |
-
wp_enqueue_style( 'shutter', NGGALLERY_URLPATH . 'shutter/shutter-reloaded.css', false, '1.3.2', 'screen' );
|
408 |
-
wp_enqueue_style( 'datepicker', NGGALLERY_URLPATH . 'admin/css/jquery.ui.datepicker.css', false, '1.8.2', 'screen' );
|
409 |
-
case "nggallery-roles" :
|
410 |
-
case "nggallery-manage-album" :
|
411 |
-
wp_enqueue_style( 'ngg-jqueryui' );
|
412 |
-
wp_enqueue_style( 'nggadmin' );
|
413 |
-
break;
|
414 |
-
case "nggallery-tags" :
|
415 |
-
wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH . 'admin/css/tags-admin.css', false, '2.6.1', 'screen' );
|
416 |
-
break;
|
417 |
-
case "nggallery-style" :
|
418 |
-
break;
|
419 |
-
}
|
420 |
-
}
|
421 |
-
|
422 |
-
/**
|
423 |
-
* Add help and options to the correct screens
|
424 |
-
*
|
425 |
-
* @since 1.9.24
|
426 |
-
*
|
427 |
-
* @param object $screen The current screen.
|
428 |
-
*
|
429 |
-
* @return object $screen The current screen.
|
430 |
-
*/
|
431 |
-
function edit_current_screen( $screen ) {
|
432 |
-
|
433 |
-
// menu title is localized, so we need to change the toplevel name
|
434 |
-
$i18n = strtolower( __( 'Galleries', 'nggallery' ) );
|
435 |
-
|
436 |
-
switch ( $screen->id ) {
|
437 |
-
case 'toplevel_page_' . NGGFOLDER :
|
438 |
-
//The tab content
|
439 |
-
$help = '<p>' . __( 'Welcome to your NextCellent Dashboard! This screen gives you all kinds of information about NextCellent at glance. You can get help for any screen by clicking the Help tab in the upper corner.' ) . '</p>';
|
440 |
-
//Add the tab
|
441 |
-
$screen->add_help_tab( array(
|
442 |
-
'id' => $screen->id . '-welcome',
|
443 |
-
'title' => 'Overview',
|
444 |
-
'content' => $help
|
445 |
-
) );
|
446 |
-
|
447 |
-
//The tab content
|
448 |
-
$help = '<p>' . __( 'The boxes on your overview screen are:', 'nggallery' ) . '</p>';
|
449 |
-
$help .= '<p><strong>' . __( 'At a Glance', 'nggallery' ) . '</strong> - ' . __( 'Shows some general information about your site, such as the number of pictures, albums and galleries.', 'nggallery' ) . '</p>';
|
450 |
-
$help .= '<p><strong>' . __( 'Latest News', 'nggallery' ) . '</strong> - ' . __( 'The latest NextCellent news.', 'nggallery' ) . '</p>';
|
451 |
-
if ( ! is_multisite() || is_super_admin() ) {
|
452 |
-
$help .= '<p><strong>' . __( 'Related plugins', 'nggallery' ) . '</strong> - ' . __( 'Shows plugins that extend NextCellent.', 'nggallery' ) . ' <strong>' . __( 'Pay attention', 'nggallery' ) . '</strong>: ' . __( 'third parties plugins that are compatible with NGG may not be 100% compatible with NextCellent Gallery!', 'nggallery' ) . '</p>';
|
453 |
-
}
|
454 |
-
$help .= '<p><strong>' . __( 'Help me help YOU!', 'nggallery' ) . '</strong> - ' . __( 'Shows general information about he plugin and some links.', 'nggallery' ) . '</p>';
|
455 |
-
if ( ! ( get_locale() == 'en_US' ) ) {
|
456 |
-
$help .= '<p><strong>' . __( 'Translation', 'nggallery' ) . '</strong> - ' . __( 'View information about the current translation.' ) . '</p>';
|
457 |
-
}
|
458 |
-
if ( ! is_multisite() || is_super_admin() ) {
|
459 |
-
$help .= '<p><strong>' . __( 'Server Settings', 'nggallery' ) . '</strong> - ' . __( 'Show all the server settings!.', 'nggallery' ) . '</p>';
|
460 |
-
$help .= '<p><strong>' . __( 'Plugin Check', 'nggallery' ) . '</strong> - ' . __( 'Check if there are known errors in your installation.', 'nggallery' ) . '</p>';
|
461 |
-
}
|
462 |
-
//Add the tab
|
463 |
-
$screen->add_help_tab( array(
|
464 |
-
'id' => $screen->id . '-content',
|
465 |
-
'title' => 'Content',
|
466 |
-
'content' => $help
|
467 |
-
) );
|
468 |
-
break;
|
469 |
-
case "{$i18n}_page_nggallery-add-gallery" :
|
470 |
-
|
471 |
-
global $nggdb;
|
472 |
-
$gallerylist = $nggdb->find_all_galleries( 'gid', 'DESC' ); //look for galleries
|
473 |
-
|
474 |
-
$help = '<p>' . __( 'On this page you can add galleries and pictures to those galleries.', 'nggallery' ) . '</p>';
|
475 |
-
if ( nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) {
|
476 |
-
$help .= '<p><strong>' . __( 'New gallery', 'nggallery' ) . '</strong> - ' . __( 'Add new galleries to NextCellent.', 'nggallery' ) . '</p>';
|
477 |
-
}
|
478 |
-
if ( empty ( $gallerylist ) ) {
|
479 |
-
$help .= '<p><strong>' . __( 'You must add a gallery before adding images!', 'nggallery' ) . '</strong>';
|
480 |
-
} else {
|
481 |
-
$help .= '<p><strong>' . __( 'Images', 'nggallery' ) . '</strong> - ' . __( 'Add new images to a gallery.', 'nggallery' ) . '</p>';
|
482 |
-
}
|
483 |
-
if ( wpmu_enable_function( 'wpmuZipUpload' ) && nggGallery::current_user_can( 'NextGEN Upload a zip' ) && ! empty ( $gallerylist ) ) {
|
484 |
-
$help .= '<p><strong>' . __( 'ZIP file', 'nggallery' ) . '</strong> - ' . __( 'Add images from a ZIP file.', 'nggallery' ) . '</p>';
|
485 |
-
}
|
486 |
-
if ( wpmu_enable_function( 'wpmuImportFolder' ) && nggGallery::current_user_can( 'NextGEN Import image folder' ) ) {
|
487 |
-
$help .= '<p><strong>' . __( 'Import folder', 'nggallery' ) . '</strong> - ' . __( 'Import a folder from the server as a new gallery.', 'nggallery' ) . '</p>';
|
488 |
-
}
|
489 |
-
|
490 |
-
$screen->add_help_tab( array(
|
491 |
-
'id' => $screen->id . '-general',
|
492 |
-
'title' => 'Add things',
|
493 |
-
'content' => $help
|
494 |
-
) );
|
495 |
-
break;
|
496 |
-
case "{$i18n}_page_nggallery-manage-gallery" :
|
497 |
-
// we would like to have screen option only at the manage images / gallery page
|
498 |
-
if ( ( isset( $_GET['mode'] ) && $_GET['mode'] == 'edit' ) || isset ( $_POST['backToGallery'] ) ) {
|
499 |
-
$screen->base = $screen->id = 'nggallery-manage-images';
|
500 |
-
} else {
|
501 |
-
$screen->base = $screen->id = 'nggallery-manage-gallery';
|
502 |
-
}
|
503 |
-
|
504 |
-
$help = '<p>' . __( 'Manage your images and galleries.', 'nggallery' ) . '</p>';
|
505 |
-
|
506 |
-
$screen->add_help_tab( array(
|
507 |
-
'id' => $screen->id . '-general',
|
508 |
-
'title' => 'Manage everything',
|
509 |
-
'content' => $help
|
510 |
-
) );
|
511 |
-
break;
|
512 |
-
case "{$i18n}_page_nggallery-manage-album" :
|
513 |
-
$help = '<p>' . __( 'Organize your galleries into albums.', 'nggallery' ) . '</p><p>' . __( 'First select an album from the dropdown and then drag the galleries you want to add or remove from the selected album.', 'nggallery' ) . '</p>';
|
514 |
-
|
515 |
-
$screen->add_help_tab( array(
|
516 |
-
'id' => $screen->id . '-general',
|
517 |
-
'title' => 'Organize everything',
|
518 |
-
'content' => $help
|
519 |
-
) );
|
520 |
-
break;
|
521 |
-
case "{$i18n}_page_nggallery-tags" :
|
522 |
-
$help = '<p>' . __( 'Organize your pictures with tags.', 'nggallery' ) . '</p><p>' . __( 'Rename, delete and edit tags. Use the rename function to merge tags.', 'nggallery' ) . '</p>';
|
523 |
-
|
524 |
-
$screen->add_help_tab( array(
|
525 |
-
'id' => $screen->id . '-general',
|
526 |
-
'title' => 'Organize pictures',
|
527 |
-
'content' => $help
|
528 |
-
) );
|
529 |
-
break;
|
530 |
-
case "{$i18n}_page_nggallery-options" :
|
531 |
-
$help = '<p>' . __( 'Edit all of NextCellent\'s options. The options are sorted in multiple categories.', 'nggallery' ) . '</p>';
|
532 |
-
$help .= '<p><strong>' . __( 'General', 'nggallery' ) . '</strong> - ' . __( 'General NextCellent options. Contains options for permalinks and related images.', 'nggallery' ) . '</p>';
|
533 |
-
$help .= '<p><strong>' . __( 'Images', 'nggallery' ) . '</strong> - ' . __( 'All image-related options. Also contains options for thumbnails.', 'nggallery' ) . '</p>';
|
534 |
-
$help .= '<p><strong>' . __( 'Gallery', 'nggallery' ) . '</strong> - ' . __( 'Everything about galleries. From sorting options to the number of images, it\'s all in here.', 'nggallery' ) . '</p>';
|
535 |
-
$help .= '<p><strong>' . __( 'Effects', 'nggallery' ) . '</strong> - ' . __( 'Make your gallery look beautiful.', 'nggallery' ) . '</p>';
|
536 |
-
$help .= '<p><strong>' . __( 'Watermark', 'nggallery' ) . '</strong> - ' . __( 'Who doesn\'t want theft-proof images?', 'nggallery' ) . '</p>';
|
537 |
-
$help .= '<p><strong>' . __( 'Slideshow', 'nggallery' ) . '</strong> - ' . __( 'Edit options for the slideshow.', 'nggallery' ) . '</p>';
|
538 |
-
$help .= '<p>' . __( 'Don\'t forget to press save!', 'nggallery' ) . '</p>';
|
539 |
-
|
540 |
-
$screen->add_help_tab( array(
|
541 |
-
'id' => $screen->id . '-general',
|
542 |
-
'title' => 'Edit options',
|
543 |
-
'content' => $help
|
544 |
-
) );
|
545 |
-
break;
|
546 |
-
case "{$i18n}_page_nggallery-style" :
|
547 |
-
$help = '<p>' . __( 'You can edit the css file to adjust how your gallery looks.', 'nggallery' ) . '</p>';
|
548 |
-
$help .= '<p>' . __( 'When you save an edited file, NextCellent automatically saves it as a copy in the folder ngg_styles. This protects your changes from upgrades.', 'nggallery' ) . '</p>';
|
549 |
-
|
550 |
-
$screen->add_help_tab( array(
|
551 |
-
'id' => $screen->id . '-general',
|
552 |
-
'title' => 'Style your gallery',
|
553 |
-
'content' => $help
|
554 |
-
) );
|
555 |
-
break;
|
556 |
-
case "{$i18n}_page_nggallery-roles" :
|
557 |
-
$help = '<p>' . __( 'You can assign the lowest user role that has access to a certain feature. Needless to say, all greater user roles will also have access to that feature.', 'nggallery' ) . '</p>';
|
558 |
-
$help .= '<p>' . __( 'NextCellent also works with various plugins that extend the default roles capabilities.', 'nggallery' ) . '</p>';
|
559 |
-
|
560 |
-
$screen->add_help_tab( array(
|
561 |
-
'id' => $screen->id . '-general',
|
562 |
-
'title' => 'Grant permissions',
|
563 |
-
'content' => $help
|
564 |
-
) );
|
565 |
-
break;
|
566 |
-
case "{$i18n}_page_nggallery-setup" :
|
567 |
-
$help = '<p>' . __( 'If \'someone\' messed with your settings (yeah, definitely not you), you can reset them here.', 'nggallery' ) . '</p>';
|
568 |
-
$help .= '<p><b>' . __( 'Attention!', 'nggallery' ) . '</b> ' . __( 'You should not use the Uninstall Plugin button, unless you know what you\'re doing! It should never be necessary to press it.', 'nggallery' ) . '</p>';
|
569 |
-
|
570 |
-
$screen->add_help_tab( array(
|
571 |
-
'id' => $screen->id . '-general',
|
572 |
-
'title' => 'Reset',
|
573 |
-
'content' => $help
|
574 |
-
) );
|
575 |
-
break;
|
576 |
-
}
|
577 |
-
|
578 |
-
//Set the sidebar (same on all pages)
|
579 |
-
$screen->set_help_sidebar(
|
580 |
-
'<p><strong>' . __( 'For more information:', 'nggallery' ) . '</strong></p>' .
|
581 |
-
'<p><a href="http://codex.wordpress.org/Plugins_Editor_Screen" target="_blank">' . __( 'Support Forums', 'nggallery' ) . '</a></p>' .
|
582 |
-
'<p><a href="https://bitbucket.org/wpgetready/nextcellent" target="_blank">' . __( 'Source Code', 'nggallery' ) . '</a></p>'
|
583 |
-
);
|
584 |
-
|
585 |
-
return $screen;
|
586 |
-
}
|
587 |
-
|
588 |
-
/**
|
589 |
-
* We need to register the columns at a very early point
|
590 |
-
*
|
591 |
-
* @return void
|
592 |
-
*/
|
593 |
-
function register_columns() {
|
594 |
-
include_once( dirname( __FILE__ ) . '/manage-images.php' );
|
595 |
-
|
596 |
-
$wp_list_table = new _NGG_Images_List_Table( 'nggallery-manage-images' );
|
597 |
-
|
598 |
-
include_once( dirname( __FILE__ ) . '/manage-galleries.php' );
|
599 |
-
|
600 |
-
$wp_list_table = new _NGG_Galleries_List_Table( 'nggallery-manage-gallery' );
|
601 |
-
}
|
602 |
-
}
|
603 |
-
|
604 |
-
function wpmu_enable_function( $value ) {
|
605 |
-
if ( is_multisite() ) {
|
606 |
-
$ngg_options = get_site_option( 'ngg_options' );
|
607 |
-
|
608 |
-
if(isset($ngg_options[ $value ])) {
|
609 |
-
return $ngg_options[ $value ];
|
610 |
-
} else {
|
611 |
-
return false;
|
612 |
-
}
|
613 |
-
}
|
614 |
-
|
615 |
-
// if this is not WPMU, enable it !
|
616 |
-
return true;
|
617 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/ajax.php
CHANGED
@@ -5,7 +5,7 @@ add_action('wp_ajax_ngg_ajax_operation', 'ngg_ajax_operation' );
|
|
5 |
* Image edit functions via AJAX
|
6 |
*
|
7 |
* @author Alex Rabe
|
8 |
-
*
|
9 |
*
|
10 |
* @return void
|
11 |
*/
|
@@ -28,42 +28,55 @@ function ngg_ajax_operation() {
|
|
28 |
include_once (dirname (__FILE__) . '/functions.php');
|
29 |
|
30 |
// Get the image id
|
31 |
-
if ( isset($_POST['image'])) {
|
32 |
$id = (int) $_POST['image'];
|
33 |
// let's get the image data
|
34 |
$picture = nggdb::find_image( $id );
|
35 |
// what do you want to do ?
|
36 |
switch ( $_POST['operation'] ) {
|
37 |
case 'create_thumbnail' :
|
38 |
-
$
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
case 'resize_image' :
|
41 |
-
$
|
42 |
-
|
|
|
|
|
|
|
|
|
43 |
case 'rotate_cw' :
|
44 |
-
$result = nggAdmin::rotate_image($picture, 'CW');
|
45 |
-
nggAdmin::create_thumbnail($picture);
|
46 |
-
|
47 |
case 'rotate_ccw' :
|
48 |
-
$result = nggAdmin::rotate_image($picture, 'CCW');
|
49 |
-
nggAdmin::create_thumbnail($picture);
|
50 |
-
|
51 |
case 'set_watermark' :
|
52 |
-
$result = nggAdmin::set_watermark($picture);
|
53 |
-
|
54 |
case 'recover_image' :
|
55 |
-
$result = nggAdmin::recover_image($picture);
|
56 |
-
|
57 |
case 'import_metadata' :
|
58 |
$result = nggAdmin::import_MetaData( $id );
|
59 |
-
|
60 |
case 'get_image_ids' :
|
61 |
$result = nggAdmin::get_image_ids( $id );
|
62 |
-
|
63 |
default :
|
64 |
do_action( 'ngg_ajax_' . $_POST['operation'] );
|
65 |
-
die('-1');
|
66 |
-
|
67 |
}
|
68 |
// A success should return a '1'
|
69 |
die ($result);
|
@@ -75,6 +88,64 @@ function ngg_ajax_operation() {
|
|
75 |
|
76 |
add_action('wp_ajax_createNewThumb', 'createNewThumb');
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
function createNewThumb() {
|
79 |
|
80 |
global $ngg;
|
@@ -195,8 +266,8 @@ add_action('wp_ajax_ngg_dashboard', 'ngg_ajax_dashboard');
|
|
195 |
|
196 |
function ngg_ajax_dashboard() {
|
197 |
|
198 |
-
require_once( dirname( dirname(__FILE__) ) . '/admin/admin.php');
|
199 |
-
require_once( dirname( dirname(__FILE__) ) . '/admin/overview.php');
|
200 |
|
201 |
if ( !current_user_can('NextGEN Gallery overview') )
|
202 |
die('-1');
|
@@ -207,11 +278,11 @@ function ngg_ajax_dashboard() {
|
|
207 |
switch ( $_GET['jax'] ) {
|
208 |
|
209 |
case 'dashboard_primary' :
|
210 |
-
|
211 |
break;
|
212 |
|
213 |
case 'dashboard_plugins' :
|
214 |
-
|
215 |
break;
|
216 |
|
217 |
}
|
5 |
* Image edit functions via AJAX
|
6 |
*
|
7 |
* @author Alex Rabe
|
8 |
+
* @todo Maybe we need to split this in multiple ajax operations?
|
9 |
*
|
10 |
* @return void
|
11 |
*/
|
28 |
include_once (dirname (__FILE__) . '/functions.php');
|
29 |
|
30 |
// Get the image id
|
31 |
+
if ( isset( $_POST['image'] ) ) {
|
32 |
$id = (int) $_POST['image'];
|
33 |
// let's get the image data
|
34 |
$picture = nggdb::find_image( $id );
|
35 |
// what do you want to do ?
|
36 |
switch ( $_POST['operation'] ) {
|
37 |
case 'create_thumbnail' :
|
38 |
+
if ( isset( $_POST['width'] ) && isset( $_POST['height'] ) ) {
|
39 |
+
if ( isset( $_POST['fix'] ) ) {
|
40 |
+
$fix = filter_var( $_POST['fix'], FILTER_VALIDATE_BOOLEAN );
|
41 |
+
} else {
|
42 |
+
$fix = null;
|
43 |
+
}
|
44 |
+
$result = nggAdmin::create_thumbnail( $picture, (int) $_POST['width'], $_POST['height'], $fix );
|
45 |
+
} else {
|
46 |
+
$result = nggAdmin::create_thumbnail( $picture );
|
47 |
+
}
|
48 |
+
break;
|
49 |
case 'resize_image' :
|
50 |
+
if ( isset( $_POST['width'] ) && isset( $_POST['height'] ) ) {
|
51 |
+
$result = nggAdmin::resize_image( $picture, (int) $_POST['width'], $_POST['height'] );
|
52 |
+
} else {
|
53 |
+
$result = nggAdmin::resize_image( $picture );
|
54 |
+
}
|
55 |
+
break;
|
56 |
case 'rotate_cw' :
|
57 |
+
$result = nggAdmin::rotate_image( $picture, 'CW' );
|
58 |
+
nggAdmin::create_thumbnail( $picture );
|
59 |
+
break;
|
60 |
case 'rotate_ccw' :
|
61 |
+
$result = nggAdmin::rotate_image( $picture, 'CCW' );
|
62 |
+
nggAdmin::create_thumbnail( $picture );
|
63 |
+
break;
|
64 |
case 'set_watermark' :
|
65 |
+
$result = nggAdmin::set_watermark( $picture );
|
66 |
+
break;
|
67 |
case 'recover_image' :
|
68 |
+
$result = nggAdmin::recover_image( $picture );
|
69 |
+
break;
|
70 |
case 'import_metadata' :
|
71 |
$result = nggAdmin::import_MetaData( $id );
|
72 |
+
break;
|
73 |
case 'get_image_ids' :
|
74 |
$result = nggAdmin::get_image_ids( $id );
|
75 |
+
break;
|
76 |
default :
|
77 |
do_action( 'ngg_ajax_' . $_POST['operation'] );
|
78 |
+
die( '-1' );
|
79 |
+
break;
|
80 |
}
|
81 |
// A success should return a '1'
|
82 |
die ($result);
|
88 |
|
89 |
add_action('wp_ajax_createNewThumb', 'createNewThumb');
|
90 |
|
91 |
+
/**
|
92 |
+
* Create a new thumbnail.
|
93 |
+
*
|
94 |
+
* @todo When we have a better image manipulation framework, enable rotating with more angles.
|
95 |
+
*/
|
96 |
+
function new_thumbnail() {
|
97 |
+
|
98 |
+
global $ngg;
|
99 |
+
|
100 |
+
// check for correct capability
|
101 |
+
if ( !(is_user_logged_in() && current_user_can('NextGEN Manage gallery')) ) {
|
102 |
+
wp_die('-1');
|
103 |
+
}
|
104 |
+
|
105 |
+
include_once( nggGallery::graphic_library() );
|
106 |
+
|
107 |
+
$id = (int) $_POST['id'];
|
108 |
+
$picture = nggdb::find_image( $id );
|
109 |
+
|
110 |
+
$data = $_POST['newData'];
|
111 |
+
|
112 |
+
$x = (int) $data['x'];
|
113 |
+
$y = (int) $data['y'];
|
114 |
+
$w = (int) $data['width'];
|
115 |
+
$h = (int) $data['height'];
|
116 |
+
|
117 |
+
$thumb = new ngg_Thumbnail($picture->imagePath, TRUE);
|
118 |
+
|
119 |
+
if($data['rotate'] == '90') {
|
120 |
+
$thumb->rotateImage('CW');
|
121 |
+
} elseif ($data['rotate'] == '-90'){
|
122 |
+
$thumb->rotateImage('CCW');
|
123 |
+
}
|
124 |
+
|
125 |
+
$thumb->crop($x, $y, $w, $h);
|
126 |
+
|
127 |
+
if ( $thumb->save($picture->thumbPath, 100)) {
|
128 |
+
|
129 |
+
//read the new sizes
|
130 |
+
$new_size = @getimagesize ( $picture->thumbPath );
|
131 |
+
$size['width'] = $new_size[0];
|
132 |
+
$size['height'] = $new_size[1];
|
133 |
+
|
134 |
+
// add them to the database
|
135 |
+
nggdb::update_image_meta($picture->pid, array( 'thumbnail' => $size) );
|
136 |
+
|
137 |
+
echo "OK";
|
138 |
+
} else {
|
139 |
+
header('HTTP/1.1 500 Internal Server Error');
|
140 |
+
echo "KO";
|
141 |
+
}
|
142 |
+
|
143 |
+
exit();
|
144 |
+
}
|
145 |
+
|
146 |
+
add_action('wp_ajax_new_thumbnail', 'new_thumbnail');
|
147 |
+
|
148 |
+
|
149 |
function createNewThumb() {
|
150 |
|
151 |
global $ngg;
|
266 |
|
267 |
function ngg_ajax_dashboard() {
|
268 |
|
269 |
+
require_once( dirname( dirname(__FILE__) ) . '/admin/class-ngg-admin-launcher.php');
|
270 |
+
require_once( dirname( dirname(__FILE__) ) . '/admin/class-ngg-overview.php');
|
271 |
|
272 |
if ( !current_user_can('NextGEN Gallery overview') )
|
273 |
die('-1');
|
278 |
switch ( $_GET['jax'] ) {
|
279 |
|
280 |
case 'dashboard_primary' :
|
281 |
+
NGG_Overview::ngg_overview_news();
|
282 |
break;
|
283 |
|
284 |
case 'dashboard_plugins' :
|
285 |
+
NGG_Overview::ngg_related_plugins();
|
286 |
break;
|
287 |
|
288 |
}
|
admin/album.php
DELETED
@@ -1,592 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
4 |
-
|
5 |
-
class nggManageAlbum {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* The selected album ID
|
9 |
-
*
|
10 |
-
* @since 1.3.0
|
11 |
-
* @access privat
|
12 |
-
* @var int
|
13 |
-
*/
|
14 |
-
var $currentID = 0;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* The array for the galleries
|
18 |
-
*
|
19 |
-
* @since 1.3.0
|
20 |
-
* @access privat
|
21 |
-
* @var array
|
22 |
-
*/
|
23 |
-
var $galleries = false;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* The array for the albums
|
27 |
-
*
|
28 |
-
* @since 1.3.0
|
29 |
-
* @access privat
|
30 |
-
* @var array
|
31 |
-
*/
|
32 |
-
var $albums = false;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* The amount of all galleries
|
36 |
-
*
|
37 |
-
* @since 1.4.0
|
38 |
-
* @access privat
|
39 |
-
* @var int
|
40 |
-
*/
|
41 |
-
var $num_galleries = false;
|
42 |
-
|
43 |
-
/**
|
44 |
-
* The amount of all albums
|
45 |
-
*
|
46 |
-
* @since 1.4.0
|
47 |
-
* @access privat
|
48 |
-
* @var int
|
49 |
-
*/
|
50 |
-
var $num_albums = false;
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Init the album output
|
54 |
-
*
|
55 |
-
*/
|
56 |
-
function __construct() {
|
57 |
-
return true;
|
58 |
-
}
|
59 |
-
|
60 |
-
/**
|
61 |
-
* FZSM: small tweak to pas current Album Id to output.
|
62 |
-
*/
|
63 |
-
function controller() {
|
64 |
-
global $nggdb;
|
65 |
-
|
66 |
-
$this->currentID = isset($_REQUEST['act_album']) ? (int) $_REQUEST['act_album'] : 0 ;
|
67 |
-
|
68 |
-
if (isset ($_POST['update']) || isset( $_POST['delete'] ) || isset( $_POST['add'] ) )
|
69 |
-
$this->processor();
|
70 |
-
|
71 |
-
if (isset ($_POST['update_album']) )
|
72 |
-
$this->update_album();
|
73 |
-
|
74 |
-
// get first all galleries & albums
|
75 |
-
$this->albums = $nggdb->find_all_album();
|
76 |
-
$this->galleries = $nggdb->find_all_galleries();
|
77 |
-
$this->num_albums = count( $this->albums );
|
78 |
-
$this->num_galleries = count( $this->galleries );
|
79 |
-
$this->output($this->currentID);
|
80 |
-
|
81 |
-
}
|
82 |
-
|
83 |
-
function processor() {
|
84 |
-
global $wpdb;
|
85 |
-
|
86 |
-
check_admin_referer('ngg_album');
|
87 |
-
|
88 |
-
if ( isset($_POST['add']) && isset ($_POST['newalbum']) ) {
|
89 |
-
|
90 |
-
if (!nggGallery::current_user_can( 'NextGEN Add/Delete album' ))
|
91 |
-
wp_die(__('Cheatin’ uh?'));
|
92 |
-
|
93 |
-
$result = nggdb::add_album( $_POST['newalbum'] );
|
94 |
-
$this->currentID = ($result) ? $result : 0 ;
|
95 |
-
|
96 |
-
//hook for other plugins
|
97 |
-
do_action('ngg_add_album', $this->currentID);
|
98 |
-
|
99 |
-
if ($result)
|
100 |
-
nggGallery::show_message(__('Updated successfully','nggallery'));
|
101 |
-
}
|
102 |
-
|
103 |
-
if ( isset($_POST['update']) && ($this->currentID > 0) ) {
|
104 |
-
|
105 |
-
$gid = '';
|
106 |
-
|
107 |
-
// get variable galleryContainer
|
108 |
-
parse_str($_POST['sortorder']);
|
109 |
-
if ( is_array($gid) ){
|
110 |
-
$serial_sort = serialize($gid);
|
111 |
-
$wpdb->query("UPDATE $wpdb->nggalbum SET sortorder = '$serial_sort' WHERE id = $this->currentID ");
|
112 |
-
} else {
|
113 |
-
$wpdb->query("UPDATE $wpdb->nggalbum SET sortorder = '0' WHERE id = $this->currentID ");
|
114 |
-
}
|
115 |
-
|
116 |
-
//hook for other plugins
|
117 |
-
do_action('ngg_update_album_sortorder', $this->currentID);
|
118 |
-
|
119 |
-
nggGallery::show_message(__('Updated successfully','nggallery'));
|
120 |
-
|
121 |
-
}
|
122 |
-
|
123 |
-
if ( isset($_POST['delete']) ) {
|
124 |
-
|
125 |
-
if (!nggGallery::current_user_can( 'NextGEN Add/Delete album' ))
|
126 |
-
wp_die(__('Cheatin’ uh?'));
|
127 |
-
|
128 |
-
$result = nggdb::delete_album( $this->currentID );
|
129 |
-
|
130 |
-
//hook for other plugins
|
131 |
-
do_action('ngg_delete_album', $this->currentID);
|
132 |
-
|
133 |
-
// jump back to main selection
|
134 |
-
$this->currentID = 0;
|
135 |
-
|
136 |
-
if ($result)
|
137 |
-
nggGallery::show_message(__('Album deleted','nggallery'));
|
138 |
-
}
|
139 |
-
|
140 |
-
}
|
141 |
-
|
142 |
-
function update_album() {
|
143 |
-
global $wpdb, $nggdb;
|
144 |
-
|
145 |
-
check_admin_referer('ngg_thickbox_form');
|
146 |
-
|
147 |
-
if (!nggGallery::current_user_can( 'NextGEN Edit album settings' ))
|
148 |
-
wp_die(__('Cheatin’ uh?'));
|
149 |
-
|
150 |
-
$name = $_POST['album_name'];
|
151 |
-
$desc = $_POST['album_desc'];
|
152 |
-
$prev = (int) $_POST['previewpic'];
|
153 |
-
$link = (int) $_POST['pageid'];
|
154 |
-
|
155 |
-
// slug must be unique, we use the title for that
|
156 |
-
$slug = nggdb::get_unique_slug( sanitize_title( $name ), 'album', $this->currentID );
|
157 |
-
|
158 |
-
$result = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggalbum SET slug= '%s', name= '%s', albumdesc= '%s', previewpic= %d, pageid= %d WHERE id = '%d'" , $slug, $name, $desc, $prev, $link, $this->currentID ) );
|
159 |
-
|
160 |
-
//hook for other plugin to update the fields
|
161 |
-
do_action('ngg_update_album', $this->currentID, $_POST);
|
162 |
-
|
163 |
-
if ($result)
|
164 |
-
nggGallery::show_message(__('Updated successfully','nggallery'));
|
165 |
-
}
|
166 |
-
|
167 |
-
/**
|
168 |
-
* FZSM: Added Album to autocomplete
|
169 |
-
* @param $currentAlbum
|
170 |
-
*/
|
171 |
-
function output($currentAlbum) {
|
172 |
-
|
173 |
-
global $wpdb, $nggdb;
|
174 |
-
|
175 |
-
//TODO:Code MUST be optimized, how to flag a used gallery better ?
|
176 |
-
$used_list = $this->get_used_galleries();
|
177 |
-
|
178 |
-
?>
|
179 |
-
|
180 |
-
<script type="text/javascript">
|
181 |
-
|
182 |
-
jQuery(document).ready(
|
183 |
-
function()
|
184 |
-
{
|
185 |
-
jQuery("#previewpic").nggAutocomplete( {
|
186 |
-
type: 'image',domain: "<?php echo home_url('index.php', is_ssl() ? 'https' : 'http'); ?>",width: "95%", term: <?php echo $currentAlbum; ?>
|
187 |
-
});
|
188 |
-
|
189 |
-
jQuery('#selectContainer').sortable( {
|
190 |
-
items: '.groupItem',
|
191 |
-
placeholder: 'sort_placeholder',
|
192 |
-
opacity: 0.7,
|
193 |
-
tolerance: 'intersect',
|
194 |
-
distance: 2,
|
195 |
-
forcePlaceholderSize: true ,
|
196 |
-
connectWith: ['#galleryContainer']
|
197 |
-
} );
|
198 |
-
|
199 |
-
jQuery('#galleryContainer').sortable( {
|
200 |
-
items: '.groupItem',
|
201 |
-
placeholder: 'sort_placeholder',
|
202 |
-
opacity: 0.7,
|
203 |
-
tolerance: 'intersect',
|
204 |
-
distance: 2,
|
205 |
-
forcePlaceholderSize: true ,
|
206 |
-
connectWith: ['#selectContainer', '#albumContainer']
|
207 |
-
} );
|
208 |
-
|
209 |
-
jQuery('#albumContainer').sortable( {
|
210 |
-
items: '.groupItem',
|
211 |
-
placeholder: 'sort_placeholder',
|
212 |
-
opacity: 0.7,
|
213 |
-
tolerance: 'intersect',
|
214 |
-
distance: 2,
|
215 |
-
forcePlaceholderSize: true ,
|
216 |
-
connectWith: ['#galleryContainer']
|
217 |
-
} );
|
218 |
-
|
219 |
-
jQuery('a.min').bind('click', toggleContent);
|
220 |
-
|
221 |
-
// Hide used galleries
|
222 |
-
jQuery('a#toggle_used').click(function()
|
223 |
-
{
|
224 |
-
jQuery('#selectContainer div.inUse').toggle();
|
225 |
-
return false;
|
226 |
-
}
|
227 |
-
);
|
228 |
-
|
229 |
-
// Maximize All Portlets (whole site, no differentiation)
|
230 |
-
jQuery('a#all_max').click(function()
|
231 |
-
{
|
232 |
-
jQuery('div.itemContent:hidden').show();
|
233 |
-
return false;
|
234 |
-
}
|
235 |
-
);
|
236 |
-
|
237 |
-
// Minimize All Portlets (whole site, no differentiation)
|
238 |
-
jQuery('a#all_min').click(function()
|
239 |
-
{
|
240 |
-
jQuery('div.itemContent:visible').hide();
|
241 |
-
return false;
|
242 |
-
}
|
243 |
-
);
|
244 |
-
// Auto Minimize if more than 4 (whole site, no differentiation)
|
245 |
-
if(jQuery('a.min').length > 4)
|
246 |
-
{
|
247 |
-
jQuery('a.min').html('╋');
|
248 |
-
jQuery('div.itemContent:visible').hide();
|
249 |
-
jQuery('#selectContainer div.inUse').toggle();
|
250 |
-
};
|
251 |
-
}
|
252 |
-
);
|
253 |
-
|
254 |
-
var toggleContent = function(e)
|
255 |
-
{
|
256 |
-
var targetContent = jQuery('div.itemContent', this.parentNode.parentNode);
|
257 |
-
if (targetContent.css('display') == 'none') {
|
258 |
-
targetContent.slideDown(300);
|
259 |
-
jQuery(this).html('━');
|
260 |
-
} else {
|
261 |
-
targetContent.slideUp(300);
|
262 |
-
jQuery(this).html('╋');
|
263 |
-
}
|
264 |
-
return false;
|
265 |
-
}
|
266 |
-
|
267 |
-
function ngg_serialize(s)
|
268 |
-
{
|
269 |
-
//serial = jQuery.SortSerialize(s);
|
270 |
-
serial = jQuery('#galleryContainer').sortable('serialize');
|
271 |
-
jQuery('input[name=sortorder]').val(serial);
|
272 |
-
}
|
273 |
-
|
274 |
-
function showDialog() {
|
275 |
-
jQuery( "#editalbum").dialog({
|
276 |
-
width: 640,
|
277 |
-
resizable : false,
|
278 |
-
modal: true,
|
279 |
-
title: '<?php echo esc_js( __('Edit Album', 'nggallery') ); ?>'
|
280 |
-
});
|
281 |
-
jQuery('#editalbum .dialog-cancel').click(function() { jQuery( "#editalbum" ).dialog("close"); });
|
282 |
-
}
|
283 |
-
|
284 |
-
</script>
|
285 |
-
<div class="wrap album" id="wrap" >
|
286 |
-
<h2><?php _e('Albums', 'nggallery') ?></h2>
|
287 |
-
<form id="selectalbum" method="POST" onsubmit="ngg_serialize()" accept-charset="utf-8">
|
288 |
-
<?php wp_nonce_field('ngg_album') ?>
|
289 |
-
<input name="sortorder" type="hidden" />
|
290 |
-
<div class="albumnav tablenav">
|
291 |
-
<div class="alignleft actions">
|
292 |
-
<?php esc_html_e('Select album', 'nggallery') ?>
|
293 |
-
<select id="act_album" name="act_album" onchange="this.form.submit();">
|
294 |
-
<option value="0" ><?php esc_html_e('No album selected', 'nggallery') ?></option>
|
295 |
-
<?php
|
296 |
-
if( is_array($this->albums) ) {
|
297 |
-
foreach($this->albums as $album) {
|
298 |
-
$selected = ($this->currentID == $album->id) ? 'selected="selected" ' : '';
|
299 |
-
echo '<option value="' . $album->id . '" ' . $selected . '>' . $album->id . ' - ' . esc_attr( $album->name ) . '</option>'."\n";
|
300 |
-
}
|
301 |
-
}
|
302 |
-
?>
|
303 |
-
</select>
|
304 |
-
<?php if ($this->currentID > 0){ ?>
|
305 |
-
<input class="button-primary" type="submit" name="update" value="<?php esc_attr_e('Update', 'nggallery'); ?>"/>
|
306 |
-
<?php if(nggGallery::current_user_can( 'NextGEN Edit album settings' )) { ?>
|
307 |
-
<input class="button-secondary" type="submit" name="showThickbox" value="<?php esc_attr_e( 'Edit album', 'nggallery'); ?>" onclick="showDialog(); return false;" />
|
308 |
-
<?php } ?>
|
309 |
-
<?php if(nggGallery::current_user_can( 'NextGEN Add/Delete album' )) { ?>
|
310 |
-
<input class="button-secondary action "type="submit" name="delete" value="<?php esc_attr_e('Delete', 'nggallery'); ?>" onclick="javascript:check=confirm('<?php echo esc_js('Delete album?','nggallery'); ?>');if(check==false) return false;"/>
|
311 |
-
<?php } ?>
|
312 |
-
<?php } else { ?>
|
313 |
-
<?php if(nggGallery::current_user_can( 'NextGEN Add/Delete album' )) { ?>
|
314 |
-
<span><?php esc_html_e('Add new album', 'nggallery'); ?> </span>
|
315 |
-
<input class="search-input" id="newalbum" name="newalbum" type="text" value="" />
|
316 |
-
<input class="button-secondary action" type="submit" name="add" value="<?php esc_attr_e('Add', 'nggallery'); ?>"/>
|
317 |
-
<?php } ?>
|
318 |
-
<?php } ?>
|
319 |
-
</div>
|
320 |
-
</div>
|
321 |
-
</form>
|
322 |
-
|
323 |
-
<br class="clear"/>
|
324 |
-
|
325 |
-
<div>
|
326 |
-
<div style="float:right;">
|
327 |
-
<a href="#" title="<?php esc_attr_e('Show / hide used galleries','nggallery'); ?>" id="toggle_used"><?php esc_html_e('[Show all]', 'nggallery'); ?></a>
|
328 |
-
| <a href="#" title="<?php esc_attr_e('Maximize the widget content','nggallery'); ?>" id="all_max"><?php esc_html_e('[Maximize]', 'nggallery'); ?></a>
|
329 |
-
| <a href="#" title="<?php esc_attr_e('Minimize the widget content','nggallery'); ?>" id="all_min"><?php esc_html_e('[Minimize]', 'nggallery'); ?></a>
|
330 |
-
</div>
|
331 |
-
<?php esc_html_e('After you create and select a album, you can drag and drop a gallery or another album into your new album below','nggallery'); ?>
|
332 |
-
</div>
|
333 |
-
|
334 |
-
<br class="clear" />
|
335 |
-
|
336 |
-
<div class="container">
|
337 |
-
|
338 |
-
<!-- /#album container -->
|
339 |
-
<div class="widget widget-right">
|
340 |
-
<div class="widget-top">
|
341 |
-
<h3><?php esc_html_e('Select album', 'nggallery'); ?></h3>
|
342 |
-
</div>
|
343 |
-
<div id="albumContainer" class="widget-holder">
|
344 |
-
<?php
|
345 |
-
if( is_array( $this->albums ) ) {
|
346 |
-
foreach($this->albums as $album) {
|
347 |
-
$this->get_container('a' . $album->id);
|
348 |
-
}
|
349 |
-
}
|
350 |
-
?>
|
351 |
-
</div>
|
352 |
-
</div>
|
353 |
-
|
354 |
-
<!-- /#select container -->
|
355 |
-
<div class="widget widget-right">
|
356 |
-
<div class="widget-top">
|
357 |
-
<h3><?php esc_html_e('Select gallery', 'nggallery'); ?></h3>
|
358 |
-
</div>
|
359 |
-
<div id="selectContainer" class="widget-holder">
|
360 |
-
<?php
|
361 |
-
|
362 |
-
if( is_array( $this->galleries ) ) {
|
363 |
-
//get the array of galleries
|
364 |
-
$sort_array = $this->currentID > 0 ? (array) $this->albums[$this->currentID]->galleries : array() ;
|
365 |
-
foreach($this->galleries as $gallery) {
|
366 |
-
if (!in_array($gallery->gid, $sort_array)) {
|
367 |
-
if (in_array($gallery->gid,$used_list))
|
368 |
-
$this->get_container($gallery->gid,true);
|
369 |
-
else
|
370 |
-
$this->get_container($gallery->gid,false);
|
371 |
-
}
|
372 |
-
}
|
373 |
-
}
|
374 |
-
?>
|
375 |
-
</div>
|
376 |
-
</div>
|
377 |
-
|
378 |
-
<!-- /#target-album -->
|
379 |
-
<div class="widget target-album widget-left">
|
380 |
-
|
381 |
-
<?php
|
382 |
-
if ($this->currentID > 0){
|
383 |
-
$album = $this->albums[$this->currentID];
|
384 |
-
?>
|
385 |
-
<div class="widget-top">
|
386 |
-
<h3><?php esc_html_e('Album ID', 'nggallery'); ?> <?php echo $album->id . ': ' . esc_html( $album->name ); ?> </h3>
|
387 |
-
</div>
|
388 |
-
<div id="galleryContainer" class="widget-holder target">
|
389 |
-
<?php
|
390 |
-
$sort_array = (array) $this->albums[$this->currentID]->galleries;
|
391 |
-
foreach($sort_array as $galleryid) {
|
392 |
-
$this->get_container($galleryid, false);
|
393 |
-
}
|
394 |
-
}
|
395 |
-
else
|
396 |
-
{
|
397 |
-
?>
|
398 |
-
<div class="widget-top">
|
399 |
-
<h3><?php esc_html_e('No album selected!', 'nggallery'); ?></h3>
|
400 |
-
</div>
|
401 |
-
<div class="widget-holder target">
|
402 |
-
<?php
|
403 |
-
}
|
404 |
-
?>
|
405 |
-
</div>
|
406 |
-
</div><!-- /#target-album -->
|
407 |
-
|
408 |
-
</div><!-- /#container -->
|
409 |
-
</div><!-- /#wrap -->
|
410 |
-
|
411 |
-
<?php if ($this->currentID > 0) : ?>
|
412 |
-
<!-- #editalbum -->
|
413 |
-
<div id="editalbum" style="display: none;" >
|
414 |
-
<form id="form-edit-album" method="POST" accept-charset="utf-8">
|
415 |
-
<?php wp_nonce_field('ngg_thickbox_form') ?>
|
416 |
-
<input type="hidden" id="current_album" name="act_album" value="<?php echo $this->currentID; ?>" />
|
417 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
418 |
-
<tr>
|
419 |
-
<th>
|
420 |
-
<?php esc_html_e('Album name:', 'nggallery'); ?><br />
|
421 |
-
<input class="search-input" id="album_name" name="album_name" type="text" value="<?php echo esc_attr( $album->name ); ?>" style="width:95%" />
|
422 |
-
</th>
|
423 |
-
</tr>
|
424 |
-
<tr>
|
425 |
-
<th>
|
426 |
-
<?php esc_html_e('Album description:', 'nggallery'); ?><br />
|
427 |
-
<textarea class="search-input" id="album_desc" name="album_desc" cols="50" rows="2" style="width:95%" ><?php echo esc_attr( $album->albumdesc ); ?></textarea>
|
428 |
-
</th>
|
429 |
-
</tr>
|
430 |
-
<tr>
|
431 |
-
<th>
|
432 |
-
<?php esc_html_e('Select a preview image:', 'nggallery'); ?><br />
|
433 |
-
<select id="previewpic" name="previewpic" style="width:95%" >
|
434 |
-
<?php if ($album->previewpic == 0) ?>
|
435 |
-
<option value="0"><?php esc_html_e('No picture', 'nggallery'); ?></option>
|
436 |
-
<?php
|
437 |
-
if ($album->previewpic == 0)
|
438 |
-
echo '<option value="0" selected="selected">' . __('No picture', 'nggallery') . '</option>';
|
439 |
-
else {
|
440 |
-
$picture = nggdb::find_image($album->previewpic);
|
441 |
-
echo '<option value="' . $picture->pid . '" selected="selected" >'. $picture->pid . ' - ' . ( empty($picture->alltext) ? esc_attr( $picture->filename ) : esc_attr( $picture->alltext ) ) .' </option>'."\n";
|
442 |
-
}
|
443 |
-
?>
|
444 |
-
</select>
|
445 |
-
</th>
|
446 |
-
</tr>
|
447 |
-
<tr>
|
448 |
-
<th>
|
449 |
-
<?php esc_html_e('Page Link to', 'nggallery')?><br />
|
450 |
-
<select name="pageid" style="width:95%">
|
451 |
-
<option value="0" ><?php esc_html_e('Not linked', 'nggallery') ?></option>
|
452 |
-
<?php
|
453 |
-
if (!isset($album->pageid))
|
454 |
-
$album->pageid = 0;
|
455 |
-
parent_dropdown($album->pageid); ?>
|
456 |
-
</select>
|
457 |
-
</th>
|
458 |
-
</tr>
|
459 |
-
|
460 |
-
<?php do_action('ngg_edit_album_settings', $this->currentID); ?>
|
461 |
-
|
462 |
-
<tr align="right">
|
463 |
-
<td class="submit">
|
464 |
-
<input type="submit" class="button-primary" name="update_album" value="<?php esc_attr_e('OK', 'nggallery'); ?>" />
|
465 |
-
|
466 |
-
<input class="button-secondary dialog-cancel" type="reset" value="<?php esc_attr_e('Cancel', 'nggallery'); ?>"/>
|
467 |
-
</td>
|
468 |
-
</tr>
|
469 |
-
</table>
|
470 |
-
</form>
|
471 |
-
</div>
|
472 |
-
<!-- /#editalbum -->
|
473 |
-
<?php endif; ?>
|
474 |
-
|
475 |
-
<?php
|
476 |
-
|
477 |
-
}
|
478 |
-
|
479 |
-
/**
|
480 |
-
* Create the album or gallery container
|
481 |
-
*
|
482 |
-
* @param integer $id (the prefix 'a' indidcates that you look for a album
|
483 |
-
* @param bool $used (object will be hidden)
|
484 |
-
* @return $output
|
485 |
-
*/
|
486 |
-
function get_container($id = 0, $used = false) {
|
487 |
-
global $wpdb, $nggdb;
|
488 |
-
|
489 |
-
$obj = array();
|
490 |
-
$preview_image = '';
|
491 |
-
$class = '';
|
492 |
-
|
493 |
-
// if the id started with a 'a', then it's a sub album
|
494 |
-
if (substr( $id, 0, 1) == 'a') {
|
495 |
-
|
496 |
-
if ( !$album = $this->albums[ substr( $id, 1) ] )
|
497 |
-
return;
|
498 |
-
|
499 |
-
$obj['id'] = $album->id;
|
500 |
-
$obj['name'] = $obj['title'] = $album->name;
|
501 |
-
$obj['type'] = 'album';
|
502 |
-
$class = 'album_obj';
|
503 |
-
|
504 |
-
// get the post name
|
505 |
-
$post = get_post($album->pageid);
|
506 |
-
$obj['pagenname'] = ($post == null) ? '---' : $post->post_title;
|
507 |
-
|
508 |
-
// for speed reason we limit it to 50
|
509 |
-
if ( $this->num_albums < 50 ) {
|
510 |
-
if ($album->previewpic != 0) {
|
511 |
-
$image = $nggdb->find_image( $album->previewpic );
|
512 |
-
$preview_image = ( !is_null($image->thumbURL) ) ? '<div class="inlinepicture"><img src="' . esc_url( $image->thumbURL ). '" /></div>' : '';
|
513 |
-
}
|
514 |
-
}
|
515 |
-
|
516 |
-
// this indicates that we have a album container
|
517 |
-
$prefix = 'a';
|
518 |
-
|
519 |
-
} else {
|
520 |
-
if ( !$gallery = $nggdb->find_gallery( $id ) )
|
521 |
-
return;
|
522 |
-
|
523 |
-
$obj['id'] = $gallery->gid;
|
524 |
-
$obj['name'] = $gallery->name;
|
525 |
-
$obj['title'] = $gallery->title;
|
526 |
-
$obj['type'] = 'gallery';
|
527 |
-
|
528 |
-
// get the post name
|
529 |
-
$post = get_post($gallery->pageid);
|
530 |
-
$obj['pagenname'] = ($post == null) ? '---' : $post->post_title;
|
531 |
-
|
532 |
-
// for spped reason we limit it to 50
|
533 |
-
if ( $this->num_galleries < 50 ) {
|
534 |
-
// set image url
|
535 |
-
$image = $nggdb->find_image( $gallery->previewpic );
|
536 |
-
$preview_image = isset($image->thumbURL) ? '<div class="inlinepicture"><img src="' . esc_url( $image->thumbURL ) . '" /></div>' : '';
|
537 |
-
}
|
538 |
-
|
539 |
-
$prefix = '';
|
540 |
-
}
|
541 |
-
|
542 |
-
// add class if it's in use in other albums
|
543 |
-
$used = $used ? ' inUse' : '';
|
544 |
-
|
545 |
-
echo '<div id="gid-' . $prefix . $obj['id'] . '" class="groupItem' . $used . '">
|
546 |
-
<div class="innerhandle">
|
547 |
-
<div class="item_top ' . $class . '">
|
548 |
-
<a href="#" class="min" title="close">━</a>
|
549 |
-
ID: ' . $obj['id'] . ' | ' . wp_html_excerpt( esc_html ( nggGallery::i18n( $obj['title'] ) ) , 25) . '
|
550 |
-
</div>
|
551 |
-
<div class="itemContent">
|
552 |
-
' . $preview_image . '
|
553 |
-
<p><strong>' . __('Name', 'nggallery') . ': </strong>' . esc_html ( nggGallery::i18n( $obj['name'] ) ). '</p>
|
554 |
-
<p><strong>' . __('Title', 'nggallery') . ': </strong>' . esc_html ( nggGallery::i18n( $obj['title'] ) ) . '</p>
|
555 |
-
<p><strong>' . __('Page', 'nggallery'). ': </strong>' . esc_html ( nggGallery::i18n( $obj['pagenname'] ) ) . '</p>
|
556 |
-
' . apply_filters('ngg_display_album_item_content', '', $obj) . '
|
557 |
-
</div>
|
558 |
-
</div>
|
559 |
-
</div>';
|
560 |
-
}
|
561 |
-
|
562 |
-
/**
|
563 |
-
* get all used galleries from all albums
|
564 |
-
*
|
565 |
-
* @return array $used_galleries_ids
|
566 |
-
*/
|
567 |
-
function get_used_galleries() {
|
568 |
-
|
569 |
-
$used = array();
|
570 |
-
|
571 |
-
if ($this->albums) {
|
572 |
-
foreach($this->albums as $key => $value) {
|
573 |
-
$sort_array = $this->albums[$key]->galleries;
|
574 |
-
foreach($sort_array as $galleryid) {
|
575 |
-
if (!in_array($galleryid, $used))
|
576 |
-
$used[] = $galleryid;
|
577 |
-
}
|
578 |
-
}
|
579 |
-
}
|
580 |
-
|
581 |
-
return $used;
|
582 |
-
}
|
583 |
-
|
584 |
-
/**
|
585 |
-
* PHP5 style destructor
|
586 |
-
*
|
587 |
-
* @return bool Always true
|
588 |
-
*/
|
589 |
-
function __destruct() {
|
590 |
-
return true;
|
591 |
-
}
|
592 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/class-ngg-adder.php
ADDED
@@ -0,0 +1,579 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('class-ngg-post-admin-page.php');
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class NGG_Adder
|
7 |
+
*
|
8 |
+
* Add new stuff to NextCellent.
|
9 |
+
*
|
10 |
+
* @todo The whole system with the plupload needs a rework.
|
11 |
+
*/
|
12 |
+
class NGG_Adder extends NGG_Post_Admin_Page {
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Perform the upload and add a new hook for plugins
|
16 |
+
*
|
17 |
+
* @return void
|
18 |
+
*/
|
19 |
+
protected function processor() {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @global nggdb $nggdb
|
23 |
+
*/
|
24 |
+
global $nggdb;
|
25 |
+
|
26 |
+
$options = get_option( 'ngg_options' );
|
27 |
+
|
28 |
+
$default_path = $options['gallerypath'];
|
29 |
+
|
30 |
+
if ( isset( $_POST['addgallery'] ) ) {
|
31 |
+
check_admin_referer( 'ngg_addgallery' );
|
32 |
+
|
33 |
+
if ( ! nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) {
|
34 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
35 |
+
}
|
36 |
+
|
37 |
+
$new_gallery = esc_attr( $_POST['galleryname'] );
|
38 |
+
$description = esc_attr( $_POST['gallerydesc'] );
|
39 |
+
if ( ! empty( $new_gallery ) ) {
|
40 |
+
nggAdmin::create_gallery( $new_gallery, $default_path, true, $description );
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
if ( isset( $_POST['zipupload'] ) ) {
|
45 |
+
check_admin_referer( 'ngg_addgallery' );
|
46 |
+
|
47 |
+
if ( ! nggGallery::current_user_can( 'NextGEN Upload a zip' ) ) {
|
48 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
49 |
+
}
|
50 |
+
|
51 |
+
if ( $_FILES['zipfile']['error'] == 0 || ( ! empty( $_POST['zipurl'] ) ) ) {
|
52 |
+
nggAdmin::import_zipfile( intval( $_POST['zipgalselect'] ) );
|
53 |
+
} else {
|
54 |
+
nggGallery::show_error( __( 'Upload failed!', 'nggallery' ) );
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
if ( isset( $_POST['importfolder'] ) ) {
|
59 |
+
check_admin_referer( 'ngg_addgallery' );
|
60 |
+
|
61 |
+
if ( ! nggGallery::current_user_can( 'NextGEN Import image folder' ) ) {
|
62 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
63 |
+
}
|
64 |
+
|
65 |
+
$galleryfolder = $_POST['galleryfolder'];
|
66 |
+
if ( ( ! empty( $galleryfolder ) ) AND ( $default_path != $galleryfolder ) ) {
|
67 |
+
nggAdmin::import_gallery( $galleryfolder );
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
if ( isset( $_POST['uploadimage'] ) ) {
|
72 |
+
check_admin_referer( 'ngg_addgallery' );
|
73 |
+
|
74 |
+
if ( ! nggGallery::current_user_can( 'NextGEN Upload in all galleries' ) ) {
|
75 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
76 |
+
}
|
77 |
+
|
78 |
+
if ( $_FILES['imagefiles']['error'][0] == 0 ) {
|
79 |
+
nggAdmin::upload_images();
|
80 |
+
} else {
|
81 |
+
nggGallery::show_error( __( 'Upload failed! ' . nggAdmin::decode_upload_error( $_FILES['imagefiles']['error'][0] ),
|
82 |
+
'nggallery' ) );
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
if ( isset( $_POST['swf_callback'] ) ) {
|
87 |
+
if ( $_POST['galleryselect'] == '0' ) {
|
88 |
+
nggGallery::show_error( __( 'You didn\'t select a gallery!', 'nggallery' ) );
|
89 |
+
} else {
|
90 |
+
if ( $_POST['swf_callback'] == '-1' ) {
|
91 |
+
nggGallery::show_error( __( 'Upload failed!', 'nggallery' ) );
|
92 |
+
} else {
|
93 |
+
$gallery = $nggdb->find_gallery( (int) $_POST['galleryselect'] );
|
94 |
+
nggAdmin::import_gallery( $gallery->path );
|
95 |
+
}
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
if ( isset( $_POST['use_simple'] ) ) {
|
100 |
+
check_admin_referer( 'ngg_addgallery' );
|
101 |
+
$options['swfUpload'] = false;
|
102 |
+
update_option( 'ngg_options', $options );
|
103 |
+
}
|
104 |
+
|
105 |
+
if ( isset( $_POST['use_advanced'] ) ) {
|
106 |
+
check_admin_referer( 'ngg_addgallery' );
|
107 |
+
$options['swfUpload'] = true;
|
108 |
+
update_option( 'ngg_options', $options );
|
109 |
+
}
|
110 |
+
|
111 |
+
do_action( 'ngg_update_addgallery_page' );
|
112 |
+
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Render the page content
|
117 |
+
*
|
118 |
+
* @return void
|
119 |
+
*/
|
120 |
+
public function display() {
|
121 |
+
|
122 |
+
parent::display();
|
123 |
+
|
124 |
+
/**
|
125 |
+
* @global nggdb $nggdb
|
126 |
+
*/
|
127 |
+
global $nggdb;
|
128 |
+
|
129 |
+
$args = array(
|
130 |
+
'max_size' => nggGallery::check_memory_limit(),
|
131 |
+
'galleries' => $nggdb->find_all_galleries('gid', 'DESC'),
|
132 |
+
'options' => get_option('ngg_options')
|
133 |
+
|
134 |
+
);
|
135 |
+
|
136 |
+
// link for the flash file
|
137 |
+
$swf_upload_link = admin_url('/?nggupload');
|
138 |
+
|
139 |
+
// get list of tabs
|
140 |
+
$tabs = $this->tabs_order($args);
|
141 |
+
|
142 |
+
// with this filter you can add custom file types
|
143 |
+
$file_types = apply_filters( 'ngg_swf_file_types', '*.jpg;*.jpeg;*.gif;*.png;*.JPG;*.JPEG;*.GIF;*.PNG' );
|
144 |
+
|
145 |
+
// Set the post params, which plupload will post back with the file, and pass them through a filter.
|
146 |
+
$post_params = array(
|
147 |
+
"auth_cookie" => (is_ssl() ? $_COOKIE[SECURE_AUTH_COOKIE] : $_COOKIE[AUTH_COOKIE]),
|
148 |
+
"logged_in_cookie" => $_COOKIE[LOGGED_IN_COOKIE],
|
149 |
+
"_wpnonce" => wp_create_nonce('ngg_swfupload'),
|
150 |
+
"galleryselect" => "0",
|
151 |
+
);
|
152 |
+
$p = array();
|
153 |
+
|
154 |
+
foreach ( $post_params as $param => $val ) {
|
155 |
+
$val = esc_js( $val );
|
156 |
+
$p[] = "'$param' : '$val'";
|
157 |
+
}
|
158 |
+
|
159 |
+
$post_params_str = json_encode($post_params);
|
160 |
+
?>
|
161 |
+
<div class="wrap">
|
162 |
+
<h2><?php _e('Add Gallery / Images', 'nggallery') ?></h2>
|
163 |
+
<div id="slider" style="display: none;">
|
164 |
+
<ul id="tabs">
|
165 |
+
<?php
|
166 |
+
foreach($tabs as $tab_key => $tab_name) {
|
167 |
+
echo "<li><a class='nav-tab' href='#$tab_key'>$tab_name</a></li>";
|
168 |
+
}
|
169 |
+
?>
|
170 |
+
</ul>
|
171 |
+
<?php
|
172 |
+
foreach($tabs as $tab_key => $tab_name) {
|
173 |
+
echo "<div id='$tab_key'>";
|
174 |
+
// Looks for the internal class function, otherwise enable a hook for plugins
|
175 |
+
if ( method_exists( $this, "tab_$tab_key" ))
|
176 |
+
call_user_func( array( &$this , "tab_$tab_key"), $args );
|
177 |
+
else
|
178 |
+
do_action( 'ngg_tab_content_' . $tab_key );
|
179 |
+
echo "</div>";
|
180 |
+
}
|
181 |
+
?>
|
182 |
+
</div>
|
183 |
+
</div>
|
184 |
+
<script type="text/javascript">
|
185 |
+
<?php if( !empty ($args['galleries']) ) { ?>
|
186 |
+
<?php if( $args['options']['swfUpload'] ) { ?>
|
187 |
+
// plupload script
|
188 |
+
jQuery(document).ready(function($) {
|
189 |
+
window.uploader = new plupload.Uploader({
|
190 |
+
browse_button: 'plupload-browse-button',
|
191 |
+
container: 'plupload-upload-ui',
|
192 |
+
drop_element: 'uploadimage',
|
193 |
+
file_data_name: 'Filedata',
|
194 |
+
url: '<?php echo esc_js( $swf_upload_link ); ?>',
|
195 |
+
flash_swf_url: '<?php echo esc_js( includes_url('js/plupload/plupload.flash.swf') ); ?>',
|
196 |
+
silverlight_xap_url: '<?php echo esc_js( includes_url('js/plupload/plupload.silverlight.xap') ); ?>',
|
197 |
+
filters: {
|
198 |
+
mime_types : [
|
199 |
+
{title: '<?php echo esc_js( __('Image Files', 'nggallery') ); ?>', extensions: '<?php echo esc_js( str_replace( array('*.', ';'), array('', ','), $file_types) ); ?>'}
|
200 |
+
],
|
201 |
+
max_file_size: '<?php echo round( (int) wp_max_upload_size() / 1024 ); ?>kb'
|
202 |
+
},
|
203 |
+
multipart: true,
|
204 |
+
urlstream_upload: true,
|
205 |
+
multipart_params : <?php echo $post_params_str; ?>,
|
206 |
+
<?php if ($args['options']['imgAutoResize'] == true) { ?>
|
207 |
+
resize: {
|
208 |
+
width: <?php echo esc_js( $args['options']['imgWidth'] ); ?>,
|
209 |
+
height: <?php echo esc_js( $args['options']['imgHeight'] ); ?>,
|
210 |
+
quality: <?php echo esc_js( $args['options']['imgQuality'] ); ?>
|
211 |
+
},
|
212 |
+
<?php } ?>
|
213 |
+
debug: false,
|
214 |
+
preinit : {
|
215 |
+
Init: function(up, info) {
|
216 |
+
debug('[Init]', 'Info :', info, 'Features :', up.features);
|
217 |
+
if (navigator.appVersion.indexOf("MSIE 10") > -1) {
|
218 |
+
up.features.triggerDialog = true;
|
219 |
+
}
|
220 |
+
initUploader();
|
221 |
+
}
|
222 |
+
},
|
223 |
+
i18n : {
|
224 |
+
'remove' : '<?php _e('remove', 'nggallery') ;?>',
|
225 |
+
'browse' : '<?php _e('Browse...', 'nggallery') ;?>',
|
226 |
+
'upload' : '<?php _e('Upload images', 'nggallery') ;?>'
|
227 |
+
}
|
228 |
+
});
|
229 |
+
|
230 |
+
uploader.bind('FilesAdded', function(up, files) {
|
231 |
+
$.each(files, function(i, file) {
|
232 |
+
fileQueued(file);
|
233 |
+
});
|
234 |
+
|
235 |
+
up.refresh();
|
236 |
+
});
|
237 |
+
|
238 |
+
uploader.bind('BeforeUpload', function(up, file) {
|
239 |
+
uploadStart(file);
|
240 |
+
});
|
241 |
+
|
242 |
+
uploader.bind('UploadProgress', function(up, file) {
|
243 |
+
uploadProgress(file, file.loaded, file.size);
|
244 |
+
});
|
245 |
+
|
246 |
+
uploader.bind('Error', function(up, err) {
|
247 |
+
uploadError(err.file, err.code, err.message);
|
248 |
+
|
249 |
+
up.refresh();
|
250 |
+
});
|
251 |
+
|
252 |
+
uploader.bind('FileUploaded', function(up, file, response) {
|
253 |
+
uploadSuccess(file, response);
|
254 |
+
});
|
255 |
+
|
256 |
+
uploader.bind('UploadComplete', function(up, file) {
|
257 |
+
uploadComplete(file);
|
258 |
+
});
|
259 |
+
|
260 |
+
// on load change the upload to plupload
|
261 |
+
uploader.init();
|
262 |
+
|
263 |
+
nggAjaxOptions = {
|
264 |
+
header: "<?php _e('Upload images', 'nggallery') ;?>",
|
265 |
+
maxStep: 100
|
266 |
+
};
|
267 |
+
|
268 |
+
});
|
269 |
+
<?php } else { ?>
|
270 |
+
// Browser upload script
|
271 |
+
var selDiv = "";
|
272 |
+
|
273 |
+
document.addEventListener("DOMContentLoaded", init, false);
|
274 |
+
|
275 |
+
function init() {
|
276 |
+
document.querySelector('#imagefiles').addEventListener('change', handleFileSelect, false);
|
277 |
+
selDiv = document.querySelector("#uploadQueue");
|
278 |
+
}
|
279 |
+
|
280 |
+
function handleFileSelect(e) {
|
281 |
+
if(!e.target.files) return;
|
282 |
+
selDiv.innerHTML = "";
|
283 |
+
var files = e.target.files;
|
284 |
+
for(var i=0; i<files.length; i++) {
|
285 |
+
var f = files[i];
|
286 |
+
selDiv.innerHTML += f.name + "<br/>";
|
287 |
+
}
|
288 |
+
}
|
289 |
+
|
290 |
+
jQuery("#uploadimage_btn").click(function() {
|
291 |
+
checkForm('galleryselect');
|
292 |
+
checkImgFile();
|
293 |
+
});
|
294 |
+
<?php }
|
295 |
+
} ?>
|
296 |
+
//jQuery Tabs script
|
297 |
+
jQuery(document).ready(function(){
|
298 |
+
jQuery('html,body').scrollTop(0);
|
299 |
+
jQuery('#slider').tabs({ fxFade: true, fxSpeed: 'fast' }).css({ 'display': 'block' });
|
300 |
+
|
301 |
+
jQuery("#zip-upload").click(function() {
|
302 |
+
checkZipFile();
|
303 |
+
});
|
304 |
+
|
305 |
+
jQuery("#import-folder").click(function() {
|
306 |
+
return confirm(
|
307 |
+
'<?php echo esc_js(__("This will change folder and file names (e.g. remove spaces, special characters, ...)","nggallery") )?>' +
|
308 |
+
'\n\n' +
|
309 |
+
'<?php echo esc_js( __("You will need to update your URLs if you link directly to the images.","nggallery") )?>' +
|
310 |
+
'\n\n' +
|
311 |
+
'<?php echo esc_js( __("Press OK to proceed, and Cancel to stop.","nggallery") )?>'
|
312 |
+
);
|
313 |
+
});
|
314 |
+
});
|
315 |
+
|
316 |
+
// File Tree implementation
|
317 |
+
jQuery(function() {
|
318 |
+
jQuery("span.browsefiles").show().click(function(){
|
319 |
+
var browser = jQuery("#file_browser");
|
320 |
+
browser.fileTree({
|
321 |
+
script: "admin-ajax.php?action=ngg_file_browser&nonce=<?php echo wp_create_nonce( 'ngg-ajax' ) ;?>",
|
322 |
+
root: jQuery("#galleryfolder").val()
|
323 |
+
}, function(folder) {
|
324 |
+
jQuery("#galleryfolder").val( folder );
|
325 |
+
});
|
326 |
+
browser.show('slide');
|
327 |
+
});
|
328 |
+
});
|
329 |
+
|
330 |
+
//Check for a selected gallery on basic uploader and zip upload
|
331 |
+
function checkForm(buttonID) {
|
332 |
+
var e = document.getElementById(buttonID);
|
333 |
+
var strUser = e.options[e.selectedIndex].value;
|
334 |
+
if (strUser == "0") {
|
335 |
+
alert("<?php _e('You didn\'t select a gallery!','nggallery')?>");
|
336 |
+
event.preventDefault();
|
337 |
+
}
|
338 |
+
}
|
339 |
+
|
340 |
+
//Check if the user has selected a zip file
|
341 |
+
function checkZipFile() {
|
342 |
+
if( !(document.getElementById('zipfile').value || document.getElementById("zipurl").value) ) {
|
343 |
+
alert("<?php _e('You didn\'t select a file!','nggallery')?>");
|
344 |
+
event.preventDefault();
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
//Check if the user has selected an image file
|
349 |
+
function checkImgFile() {
|
350 |
+
if( !document.getElementById('imagefiles').value ) {
|
351 |
+
alert("<?php _e('You didn\'t select a file!','nggallery')?>");
|
352 |
+
event.preventDefault();
|
353 |
+
}
|
354 |
+
}
|
355 |
+
</script>
|
356 |
+
<?php
|
357 |
+
|
358 |
+
}
|
359 |
+
|
360 |
+
/**
|
361 |
+
* Create array for tabs and add a filter for other plugins to inject more tabs
|
362 |
+
*
|
363 |
+
* @return array $tabs
|
364 |
+
*/
|
365 |
+
private function tabs_order($args) {
|
366 |
+
|
367 |
+
$tabs = array();
|
368 |
+
|
369 |
+
if ( nggGallery::current_user_can( 'NextGEN Add new gallery' ))
|
370 |
+
$tabs['addgallery'] = __('New gallery', 'nggallery');
|
371 |
+
|
372 |
+
if ( !empty ($args['galleries']) )
|
373 |
+
$tabs['uploadimage'] = __( 'Images', 'nggallery' );
|
374 |
+
|
375 |
+
if ( wpmu_enable_function('wpmuZipUpload') && nggGallery::current_user_can( 'NextGEN Upload a zip' ) )
|
376 |
+
$tabs['zipupload'] = __('ZIP file', 'nggallery');
|
377 |
+
|
378 |
+
if ( wpmu_enable_function('wpmuImportFolder') && nggGallery::current_user_can( 'NextGEN Import image folder' ) )
|
379 |
+
$tabs['importfolder'] = __('Import folder', 'nggallery');
|
380 |
+
|
381 |
+
$tabs = apply_filters('ngg_addgallery_tabs', $tabs);
|
382 |
+
|
383 |
+
return $tabs;
|
384 |
+
|
385 |
+
}
|
386 |
+
|
387 |
+
private function tab_addgallery($args) {
|
388 |
+
?>
|
389 |
+
<!-- create gallery -->
|
390 |
+
<h3><?php _e('Add a new gallery', 'nggallery') ;?></h3>
|
391 |
+
<form name="addgallery" id="addgallery_form" method="POST" action="<?php echo $this->page; ?>" accept-charset="utf-8" >
|
392 |
+
<?php wp_nonce_field('ngg_addgallery') ?>
|
393 |
+
<table class="form-table">
|
394 |
+
<tr>
|
395 |
+
<th><label for="gallery-name"><?php _e('Name', 'nggallery') ;?>:</label></th>
|
396 |
+
<td>
|
397 |
+
<input type="text" class="regular-text" name="galleryname" id="gallery-name" value="">
|
398 |
+
<br>
|
399 |
+
<p>
|
400 |
+
<?php printf( __('Create a new, empty gallery in the folder <strong>%s</strong>', 'nggallery'), $args['options']['gallerypath'] ); ?>
|
401 |
+
</p>
|
402 |
+
<p class="description">
|
403 |
+
<?php printf( __('Allowed characters for file and folder names are "%s".', 'nggallery'), 'a-z, A-Z, 0-9, -, _' ) ?>
|
404 |
+
</p>
|
405 |
+
</td>
|
406 |
+
</tr>
|
407 |
+
<tr>
|
408 |
+
<th><label for="gallerydesc"><?php _e('Description', 'nggallery') ;?>:</label></th>
|
409 |
+
<td>
|
410 |
+
<textarea name="gallerydesc" id="gallerydesc" cols="50" rows="3"></textarea>
|
411 |
+
<p class="description">
|
412 |
+
<?php _e('Add a description. This is optional and can be changed later.', 'nggallery') ;?>
|
413 |
+
</p>
|
414 |
+
</td>
|
415 |
+
</tr>
|
416 |
+
<?php do_action('ngg_add_new_gallery_form'); ?>
|
417 |
+
</table>
|
418 |
+
<div class="submit">
|
419 |
+
<input class="button-primary" type="submit" name= "addgallery" value="<?php _e('Add gallery', 'nggallery') ;?>">
|
420 |
+
</div>
|
421 |
+
</form>
|
422 |
+
<?php
|
423 |
+
}
|
424 |
+
|
425 |
+
private function tab_zipupload($args) {
|
426 |
+
?>
|
427 |
+
<!-- zip-file operation -->
|
428 |
+
<h3><?php _e('Upload a ZIP File', 'nggallery') ;?></h3>
|
429 |
+
<form name="zipupload" id="zipupload_form" method="POST" enctype="multipart/form-data" action="<?php echo $this->page.'#zipupload'; ?>" accept-charset="utf-8" >
|
430 |
+
<?php wp_nonce_field('ngg_addgallery') ?>
|
431 |
+
<table class="form-table">
|
432 |
+
<tr>
|
433 |
+
<th><?php _e('Select ZIP file', 'nggallery') ;?>:</th>
|
434 |
+
<td>
|
435 |
+
<input type="file" name="zipfile" id="zipfile" class="uploadform">
|
436 |
+
<p class="description">
|
437 |
+
<?php _e('Upload a ZIP file with images', 'nggallery') ;?>
|
438 |
+
</p>
|
439 |
+
</td>
|
440 |
+
</tr>
|
441 |
+
<?php if (function_exists('curl_init')) : ?>
|
442 |
+
<tr>
|
443 |
+
<th><?php _e('or enter URL', 'nggallery') ;?>:</th>
|
444 |
+
<td>
|
445 |
+
<input type="text" name="zipurl" id="zipurl" class="regular-text code uploadform">
|
446 |
+
<p class="description">
|
447 |
+
<?php _e('Import a ZIP file from a URL', 'nggallery') ;?>
|
448 |
+
</p>
|
449 |
+
</td>
|
450 |
+
</tr>
|
451 |
+
<?php endif; ?>
|
452 |
+
<tr>
|
453 |
+
<th><?php _e('in to', 'nggallery') ;?></th>
|
454 |
+
<td>
|
455 |
+
<select name="zipgalselect" id="zipgalselect">
|
456 |
+
<option value="0" ><?php _e('a new gallery', 'nggallery') ?></option>
|
457 |
+
<?php $this->print_galleries($args['galleries']); ?>
|
458 |
+
</select>
|
459 |
+
<br><?php echo $args['max_size']; ?>
|
460 |
+
<p class="description">
|
461 |
+
<?php printf( __('Note: the upload limit on your server is <strong>%s MB</strong>.', 'nggallery'), wp_max_upload_size() / (1024 * 1024)); ?>
|
462 |
+
</p>
|
463 |
+
<br>
|
464 |
+
<?php if ( is_multisite() && wpmu_enable_function('wpmuQuotaCheck') ) {
|
465 |
+
display_space_usage();
|
466 |
+
} ?>
|
467 |
+
</td>
|
468 |
+
</tr>
|
469 |
+
</table>
|
470 |
+
<div class="submit">
|
471 |
+
<input class="button-primary" type="submit" name="zipupload" id="zip-upload" value="<?php _e('Start upload', 'nggallery') ;?>">
|
472 |
+
</div>
|
473 |
+
</form>
|
474 |
+
<?php
|
475 |
+
}
|
476 |
+
|
477 |
+
private function tab_importfolder($args) {
|
478 |
+
?>
|
479 |
+
<!-- import folder -->
|
480 |
+
<h3><?php _e('Import an image folder', 'nggallery') ;?></h3>
|
481 |
+
<form name="importfolder" id="importfolder_form" method="POST" action="<?php echo $this->page.'#importfolder'; ?>" accept-charset="utf-8" >
|
482 |
+
<?php wp_nonce_field('ngg_addgallery') ?>
|
483 |
+
<table class="form-table">
|
484 |
+
<tr>
|
485 |
+
<th><?php _e('Import from server:', 'nggallery') ;?></th>
|
486 |
+
<td>
|
487 |
+
<input type="text" id="galleryfolder" class="regular-text code" name="galleryfolder" value="<?php echo $args['options']['gallerypath']; ?>">
|
488 |
+
<span class="browsefiles button" style="display:none"><?php _e('Browse...', 'nggallery'); ?></span>
|
489 |
+
<br>
|
490 |
+
<div id="file_browser"></div>
|
491 |
+
<p class="description"><?php _e('Note: you can change the default path in the gallery settings', 'nggallery') ;?></p>
|
492 |
+
<br><?php echo $args['max_size']; ?>
|
493 |
+
</td>
|
494 |
+
</tr>
|
495 |
+
</table>
|
496 |
+
<div class="submit">
|
497 |
+
<input class="button-primary" type="submit" name= "importfolder" id="import-folder" value="<?php _e('Import folder', 'nggallery') ;?>">
|
498 |
+
</div>
|
499 |
+
</form>
|
500 |
+
<?php
|
501 |
+
}
|
502 |
+
|
503 |
+
private function tab_uploadimage($args) {
|
504 |
+
?>
|
505 |
+
<!-- upload images -->
|
506 |
+
<h3><?php _e('Upload images', 'nggallery') ;?></h3>
|
507 |
+
<form name="uploadimage" id="uploadimage_form" method="POST" enctype="multipart/form-data" action="<?php echo $this->page.'#uploadimage'; ?>" accept-charset="utf-8" >
|
508 |
+
<?php wp_nonce_field('ngg_addgallery') ?>
|
509 |
+
<table class="form-table">
|
510 |
+
<tr>
|
511 |
+
<td class="gallery-selector">
|
512 |
+
<?php _e('in to', 'nggallery') ;?>
|
513 |
+
<select name="galleryselect" id="galleryselect">
|
514 |
+
<option value="0" ><?php _e('Choose gallery', 'nggallery') ?></option>
|
515 |
+
<?php $this->print_galleries($args['galleries']); ?>
|
516 |
+
</select>
|
517 |
+
<br>
|
518 |
+
<?php echo $args['max_size']; ?>
|
519 |
+
<br>
|
520 |
+
<?php if ((is_multisite()) && wpmu_enable_function('wpmuQuotaCheck')) display_space_usage(); ?>
|
521 |
+
</td>
|
522 |
+
</tr>
|
523 |
+
<tr>
|
524 |
+
<?php if ($args['options']['swfUpload'] ) { ?>
|
525 |
+
<td colspan="2">
|
526 |
+
<div id="plupload-upload-ui">
|
527 |
+
<div id="drag-drop-area">
|
528 |
+
<div class="drag-drop-inside">
|
529 |
+
<p class="ngg-dragdrop-info drag-drop-info" >
|
530 |
+
<?php _e('Drop your files in this window', 'nggallery'); ?>
|
531 |
+
</p>
|
532 |
+
<p><?php _e('Or', 'nggallery'); ?></p>
|
533 |
+
<p class="drag-drop-buttons">
|
534 |
+
<input id="plupload-browse-button" type="button" value="<?php esc_attr_e('Select Files', 'nggallery'); ?>" class="button">
|
535 |
+
</p>
|
536 |
+
</div>
|
537 |
+
</div>
|
538 |
+
</div>
|
539 |
+
</td>
|
540 |
+
<?php } else { ?>
|
541 |
+
<td><span id='spanButtonPlaceholder'></span>
|
542 |
+
<input type="file" name="imagefiles[]" id="imagefiles" class="imagefiles" multiple></td>
|
543 |
+
<?php } ?>
|
544 |
+
</tr>
|
545 |
+
<tr>
|
546 |
+
<td>
|
547 |
+
<div id='uploadQueue'></div>
|
548 |
+
</td>
|
549 |
+
</tr>
|
550 |
+
</table>
|
551 |
+
<div class="submit">
|
552 |
+
<?php if ($args['options']['swfUpload']) { ?>
|
553 |
+
<input class="button action" type="submit" name="use_simple" id="use-simple" title="<?php _e('Click here to use the browser upload instead','nggallery') ?>" value="<?php _e('Use basic uploader', 'nggallery') ;?>">
|
554 |
+
<?php } else { ?>
|
555 |
+
<input class="button action" type="submit" name="use_advanced" id="use-advanced" title="<?php _e('Advanced uploading','nggallery') ?>" value="<?php _e('Use advanced uploader', 'nggallery') ;?>">
|
556 |
+
<?php } ?>
|
557 |
+
<input class="button-primary" type="submit" name="uploadimage" id="uploadimage_btn" value="<?php _e('Upload images', 'nggallery') ;?>">
|
558 |
+
<?php if ($args['options']['imgAutoResize'] == true) { ?>
|
559 |
+
<span class="description">
|
560 |
+
<?php printf( __( 'Your images will be rescaled to max width %1$dpx or max height %2$dpx.', 'nggallery' ), (int) $args['options']['imgWidth' ], (int) $args['options']['imgHeight'] ); ?>
|
561 |
+
</span>
|
562 |
+
<?php } ?>
|
563 |
+
</div>
|
564 |
+
</form>
|
565 |
+
<?php
|
566 |
+
}
|
567 |
+
|
568 |
+
/**
|
569 |
+
* @param array $galleries
|
570 |
+
*/
|
571 |
+
private function print_galleries($galleries) {
|
572 |
+
foreach($galleries as $gallery) {
|
573 |
+
if ( current_user_can( 'NextGEN Upload in all galleries' ) || nggAdmin::can_manage_this_gallery($gallery->author) ) {
|
574 |
+
$name = ( empty( $gallery->title ) ) ? $gallery->name : $gallery->title;
|
575 |
+
echo '<option value="' . $gallery->gid . '" >' . $gallery->gid . ' - ' . esc_attr( $name ) . '</option>';
|
576 |
+
}
|
577 |
+
}
|
578 |
+
}
|
579 |
+
}
|
admin/class-ngg-admin-launcher.php
ADDED
@@ -0,0 +1,664 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* NGG_Admin_Launcher - Admin Section for NextGEN Gallery
|
5 |
+
*
|
6 |
+
* @since 1.0.0
|
7 |
+
*/
|
8 |
+
class NGG_Admin_Launcher {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* The admin launcher isn't more than a bunch of functions that run when certain actions/filters are executed.
|
12 |
+
*/
|
13 |
+
public function __construct() {
|
14 |
+
|
15 |
+
// Add the admin menu
|
16 |
+
add_action( 'admin_menu', array( $this, 'add_menu' ) );
|
17 |
+
//Add the network menu
|
18 |
+
add_action( 'network_admin_menu', array( $this, 'add_network_admin_menu' ) );
|
19 |
+
|
20 |
+
// Add the script and style files
|
21 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'load_scripts' ) );
|
22 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'load_styles' ) );
|
23 |
+
|
24 |
+
add_filter( 'current_screen', array( $this, 'edit_current_screen' ) );
|
25 |
+
|
26 |
+
// Add WPML hook to register description / alt text for translation
|
27 |
+
add_action( 'ngg_image_updated', array( 'nggGallery', 'RegisterString' ) );
|
28 |
+
|
29 |
+
add_filter( 'set-screen-option', array( $this, 'save_options' ), 10, 3 );
|
30 |
+
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Enable dash icons for WP latest versions.
|
35 |
+
* @see https://developer.wordpress.org/resource/dashicons/#format-gallery
|
36 |
+
*
|
37 |
+
* @param string $wp_version The WordPress version. Defaults to the current one.
|
38 |
+
*
|
39 |
+
* @return string The icon string.
|
40 |
+
*/
|
41 |
+
|
42 |
+
private function get_icon_gallery( $wp_version = '' ) {
|
43 |
+
if ( empty( $wp_version ) ) {
|
44 |
+
$wp_version = get_bloginfo( 'version' ); //get WP Version
|
45 |
+
}
|
46 |
+
if ( $wp_version >= 3.8 ) {
|
47 |
+
return 'dashicons-format-gallery'; //new style
|
48 |
+
}
|
49 |
+
|
50 |
+
//older style
|
51 |
+
return path_join( NGGALLERY_URLPATH, 'admin/images/nextgen_16_color.png' );
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Add all menu pages to the WordPress menu.
|
56 |
+
*/
|
57 |
+
public function add_menu() {
|
58 |
+
add_menu_page( __( 'Galleries', 'nggallery' ), __( 'Galleries', 'nggallery' ),
|
59 |
+
'NextGEN Gallery overview', NGGFOLDER, array( $this, 'show_menu' ), $this->get_icon_gallery() );
|
60 |
+
|
61 |
+
add_submenu_page( NGGFOLDER, __( 'Overview', 'nggallery' ), __( 'Overview', 'nggallery' ),
|
62 |
+
'NextGEN Gallery overview',
|
63 |
+
NGGFOLDER, array( $this, 'show_menu' ) );
|
64 |
+
|
65 |
+
add_submenu_page( NGGFOLDER, __( 'Add Gallery / Images', 'nggallery' ),
|
66 |
+
__( 'Add Gallery / Images', 'nggallery' ), 'NextGEN Upload images', 'nggallery-add-gallery',
|
67 |
+
array( $this, 'show_menu' ) );
|
68 |
+
|
69 |
+
add_submenu_page( NGGFOLDER, __( 'Galleries', 'nggallery' ), __( 'Galleries', 'nggallery' ),
|
70 |
+
'NextGEN Manage gallery', 'nggallery-manage',
|
71 |
+
array( $this, 'show_menu' ) );
|
72 |
+
|
73 |
+
add_submenu_page( NGGFOLDER, __( 'Albums', 'nggallery' ), __( 'Albums', 'nggallery' ), 'NextGEN Edit album',
|
74 |
+
'nggallery-manage-album',
|
75 |
+
array( $this, 'show_menu' ) );
|
76 |
+
|
77 |
+
add_submenu_page( NGGFOLDER, __( 'Tags', 'nggallery' ), __( 'Tags', 'nggallery' ), 'NextGEN Manage tags',
|
78 |
+
'nggallery-tags',
|
79 |
+
array( $this, 'show_menu' ) );
|
80 |
+
|
81 |
+
add_submenu_page( NGGFOLDER, __( 'Settings', 'nggallery' ), __( 'Settings', 'nggallery' ),
|
82 |
+
'NextGEN Change options', 'nggallery-options',
|
83 |
+
array( $this, 'show_menu' ) );
|
84 |
+
|
85 |
+
if ( wpmu_enable_function( 'wpmuStyle' ) ) {
|
86 |
+
add_submenu_page( NGGFOLDER, __( 'Style', 'nggallery' ), __( 'Style', 'nggallery' ), 'NextGEN Change style',
|
87 |
+
'nggallery-style',
|
88 |
+
array( $this, 'show_menu' ) );
|
89 |
+
}
|
90 |
+
if ( wpmu_enable_function( 'wpmuRoles' ) || is_super_admin() ) {
|
91 |
+
add_submenu_page( NGGFOLDER, __( 'Roles', 'nggallery' ), __( 'Roles', 'nggallery' ), 'activate_plugins',
|
92 |
+
'nggallery-roles',
|
93 |
+
array( $this, 'show_menu' ) );
|
94 |
+
}
|
95 |
+
|
96 |
+
if ( ! is_multisite() || is_super_admin() ) {
|
97 |
+
add_submenu_page( NGGFOLDER, __( 'Reset / Uninstall', 'nggallery' ), __( 'Reset / Uninstall', 'nggallery' ),
|
98 |
+
'activate_plugins', 'nggallery-setup',
|
99 |
+
array( $this, 'show_menu' ) );
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Add the network pages to the network menu.
|
105 |
+
*/
|
106 |
+
public function add_network_admin_menu() {
|
107 |
+
add_menu_page( __( 'Galleries', 'nggallery' ), __( 'Galleries', 'nggallery' ), 'nggallery-wpmu',
|
108 |
+
NGGFOLDER, array( $this, 'show_network_settings' ), $this->get_icon_gallery() );
|
109 |
+
|
110 |
+
add_submenu_page( NGGFOLDER, __( 'Network settings', 'nggallery' ), __( 'Network settings', 'nggallery' ),
|
111 |
+
'nggallery-wpmu',
|
112 |
+
NGGFOLDER, array( $this, 'show_network_settings' ) );
|
113 |
+
|
114 |
+
add_submenu_page( NGGFOLDER, __( 'Reset / Uninstall', 'nggallery' ), __( 'Reset / Uninstall', 'nggallery' ),
|
115 |
+
'activate_plugins',
|
116 |
+
'nggallery-setup', array( $this, 'show_menu' ) );
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Maybe show an upgrade page.
|
121 |
+
*/
|
122 |
+
private function show_upgrade_page() {
|
123 |
+
|
124 |
+
// check for upgrade and show upgrade screen
|
125 |
+
if ( get_option( 'ngg_db_version' ) != NGG_DBVERSION ) {
|
126 |
+
include_once( dirname( __FILE__ ) . '/functions.php' );
|
127 |
+
include_once( dirname( __FILE__ ) . '/upgrade.php' );
|
128 |
+
nggallery_upgrade_page();
|
129 |
+
exit;
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* Show the network pages.
|
135 |
+
*/
|
136 |
+
public function show_network_settings() {
|
137 |
+
$this->show_upgrade_page();
|
138 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-style.php' );
|
139 |
+
include_once( dirname( __FILE__ ) . '/wpmu.php' );
|
140 |
+
nggallery_wpmu_setup();
|
141 |
+
}
|
142 |
+
|
143 |
+
// load the script for the defined page and load only this code
|
144 |
+
//20140515: removed donation code (not in use)
|
145 |
+
public function show_menu() {
|
146 |
+
|
147 |
+
//Show the upgrade page if needed.
|
148 |
+
$this->show_upgrade_page();
|
149 |
+
|
150 |
+
$options = get_option( 'ngg_options' );
|
151 |
+
|
152 |
+
// Set installation date
|
153 |
+
if ( empty( $options['installDate'] ) ) {
|
154 |
+
$options['installDate'] = time();
|
155 |
+
update_option( 'ngg_options', $options );
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* @var NGG_Displayable $page
|
160 |
+
*/
|
161 |
+
$page = null;
|
162 |
+
|
163 |
+
switch ( $_GET['page'] ) {
|
164 |
+
case "nggallery-add-gallery" :
|
165 |
+
include_once( dirname( __FILE__ ) . '/functions.php' );
|
166 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-adder.php' );
|
167 |
+
$page = new NGG_Adder();
|
168 |
+
break;
|
169 |
+
case "nggallery-manage":
|
170 |
+
include_once( dirname( __FILE__ ) . '/functions.php' );
|
171 |
+
$page = $this->get_manager();
|
172 |
+
break;
|
173 |
+
case "nggallery-manage-album" :
|
174 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-album-manager.php' );
|
175 |
+
$page = new NGG_Album_Manager ();
|
176 |
+
break;
|
177 |
+
case "nggallery-options" :
|
178 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-options.php' );
|
179 |
+
$page = new NGG_Options();
|
180 |
+
break;
|
181 |
+
case "nggallery-tags" :
|
182 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-tag-manager.php' );
|
183 |
+
$page = new NGG_Tag_Manager();
|
184 |
+
break;
|
185 |
+
case "nggallery-style" :
|
186 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-style.php' );
|
187 |
+
$page = new NGG_Style();
|
188 |
+
break;
|
189 |
+
case "nggallery-setup" :
|
190 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-setup.php' );
|
191 |
+
$page = new NGG_Setup();
|
192 |
+
break;
|
193 |
+
case "nggallery-roles" :
|
194 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-roles.php' );
|
195 |
+
$page = new NGG_Roles();
|
196 |
+
break;
|
197 |
+
case "nggallery":
|
198 |
+
default:
|
199 |
+
//Display the overview
|
200 |
+
include_once( dirname( __FILE__ ) . '/class-ngg-overview.php' );
|
201 |
+
$page = new NGG_Overview();
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* Display the page.
|
206 |
+
*/
|
207 |
+
if ( $page != null ) {
|
208 |
+
$page->display();
|
209 |
+
}
|
210 |
+
|
211 |
+
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* Switch between the different management modes:
|
215 |
+
* - a list of all galleries,
|
216 |
+
* - a list of all images in a gallery,
|
217 |
+
* - sort mode of a gallery,
|
218 |
+
* - search mode.
|
219 |
+
*
|
220 |
+
* @return NGG_Displayable The correct managing page or null if the page could not be found.
|
221 |
+
*/
|
222 |
+
private function get_manager() {
|
223 |
+
|
224 |
+
if ( ! isset( $_GET['mode'] ) || $_GET['mode'] === 'gallery' ) {
|
225 |
+
|
226 |
+
//Display the normal page.
|
227 |
+
include_once( 'manage/class-ngg-gallery-manager.php' );
|
228 |
+
|
229 |
+
return new NGG_Gallery_Manager();
|
230 |
+
|
231 |
+
} elseif ( $_GET['mode'] == 'image' ) {
|
232 |
+
|
233 |
+
//Display overview of a gallery.
|
234 |
+
include_once( 'manage/class-ngg-image-manager.php' );
|
235 |
+
|
236 |
+
return new NGG_Image_Manager();
|
237 |
+
|
238 |
+
} elseif ( $_GET['mode'] == 'sort' ) {
|
239 |
+
|
240 |
+
//Display sort page.
|
241 |
+
include_once( 'manage/class-ngg-sort-manager.php' );
|
242 |
+
|
243 |
+
return new NGG_Sort_Manager();
|
244 |
+
|
245 |
+
} elseif ( $_GET['mode'] == 'search' ) {
|
246 |
+
|
247 |
+
//Display search results.
|
248 |
+
include_once( 'manage/class-ngg-search-manager.php' );
|
249 |
+
|
250 |
+
return new NGG_Search_Manager();
|
251 |
+
} else {
|
252 |
+
return null;
|
253 |
+
}
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Load the scripts on the admin pages.
|
258 |
+
*/
|
259 |
+
public function load_scripts() {
|
260 |
+
// no need to go on if it's not a plugin page
|
261 |
+
if ( ! isset( $_GET['page'] ) ) {
|
262 |
+
return;
|
263 |
+
}
|
264 |
+
|
265 |
+
wp_register_script( 'ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array( 'jquery' ), '1.4.1' );
|
266 |
+
wp_localize_script( 'ngg-ajax', 'nggAjaxSetup', array(
|
267 |
+
'url' => admin_url( 'admin-ajax.php' ),
|
268 |
+
'action' => 'ngg_ajax_operation',
|
269 |
+
'nonce' => wp_create_nonce( 'ngg-ajax' ),
|
270 |
+
'permission' => __( 'You do not have the correct permission', 'nggallery' ),
|
271 |
+
'error' => __( 'Unexpected Error', 'nggallery' ),
|
272 |
+
'failure' => __( 'A failure occurred', 'nggallery' )
|
273 |
+
) );
|
274 |
+
wp_register_script( 'ngg-plupload-handler', NGGALLERY_URLPATH . 'admin/js/plupload.handler.js',
|
275 |
+
array( 'plupload-all' ), '0.0.1' );
|
276 |
+
wp_localize_script( 'ngg-plupload-handler', 'pluploadL10n', array(
|
277 |
+
'queue_limit_exceeded' => __( 'You have attempted to queue too many files.' ),
|
278 |
+
'file_exceeds_size_limit' => __( 'This file exceeds the maximum upload size for this site.' ),
|
279 |
+
'zero_byte_file' => __( 'This file is empty. Please try another.' ),
|
280 |
+
'invalid_filetype' => __( 'This file type is not allowed. Please try another.' ),
|
281 |
+
'not_an_image' => __( 'This file is not an image. Please try another.' ),
|
282 |
+
'image_memory_exceeded' => __( 'Memory exceeded. Please try another smaller file.' ),
|
283 |
+
'image_dimensions_exceeded' => __( 'This is larger than the maximum size. Please try another.' ),
|
284 |
+
'default_error' => __( 'An error occurred in the upload. Please try again later.' ),
|
285 |
+
'missing_upload_url' => __( 'There was a configuration error. Please contact the server administrator.' ),
|
286 |
+
'upload_limit_exceeded' => __( 'You may only upload 1 file.' ),
|
287 |
+
'http_error' => __( 'HTTP error.' ),
|
288 |
+
'upload_failed' => __( 'Upload failed.' ),
|
289 |
+
'io_error' => __( 'IO error.' ),
|
290 |
+
'security_error' => __( 'Security error.' ),
|
291 |
+
'file_cancelled' => __( 'File canceled.' ),
|
292 |
+
'upload_stopped' => __( 'Upload stopped.' ),
|
293 |
+
'dismiss' => __( 'Dismiss' ),
|
294 |
+
'crunching' => __( 'Crunching…' ),
|
295 |
+
'deleted' => __( 'moved to the trash.' ),
|
296 |
+
'error_uploading' => __( '“%s” has failed to upload due to an error' ),
|
297 |
+
'no_gallery' => __( 'You didn\'t select a gallery!', 'nggallery' )
|
298 |
+
) );
|
299 |
+
wp_register_script( 'ngg-progressbar', NGGALLERY_URLPATH . 'admin/js/ngg.progressbar.js', array( 'jquery' ),
|
300 |
+
'2.0.1' );
|
301 |
+
wp_register_script( 'ngg-autocomplete', NGGALLERY_URLPATH . 'admin/js/ngg.autocomplete.js',
|
302 |
+
array( 'jquery-ui-autocomplete' ), '1.1' );
|
303 |
+
|
304 |
+
switch ( $_GET['page'] ) {
|
305 |
+
case NGGFOLDER :
|
306 |
+
add_thickbox();
|
307 |
+
wp_enqueue_script( 'postbox' );
|
308 |
+
break;
|
309 |
+
case "nggallery-manage":
|
310 |
+
wp_enqueue_script( 'postbox' );
|
311 |
+
wp_enqueue_script( 'ngg-ajax' );
|
312 |
+
wp_enqueue_script( 'ngg-progressbar' );
|
313 |
+
wp_enqueue_script( 'jquery-ui-dialog' );
|
314 |
+
wp_enqueue_script( 'jquery-ui-sortable' );
|
315 |
+
wp_enqueue_script( 'jquery-ui-datepicker' );
|
316 |
+
wp_enqueue_script( 'ngg-autocomplete' );
|
317 |
+
wp_enqueue_script( 'ngg-cropper', NGGALLERY_URLPATH . 'admin/js/cropper/cropper.js', '0.10.0' );
|
318 |
+
wp_register_script( 'shutter', NGGALLERY_URLPATH . 'shutter/shutter-reloaded.js', false, '1.3.2' );
|
319 |
+
wp_localize_script( 'shutter', 'shutterSettings', array(
|
320 |
+
'msgLoading' => __( 'L O A D I N G', 'nggallery' ),
|
321 |
+
'msgClose' => __( 'Click to Close', 'nggallery' ),
|
322 |
+
'imageCount' => '1'
|
323 |
+
) );
|
324 |
+
wp_enqueue_script( 'shutter' );
|
325 |
+
break;
|
326 |
+
case "nggallery-manage-album" :
|
327 |
+
wp_enqueue_script( 'jquery-ui-dialog' );
|
328 |
+
wp_enqueue_script( 'jquery-ui-sortable' );
|
329 |
+
wp_enqueue_script( 'ngg-autocomplete' );
|
330 |
+
break;
|
331 |
+
case "nggallery-options" :
|
332 |
+
wp_enqueue_script( 'jquery-ui-tabs' );
|
333 |
+
wp_enqueue_script( 'wp-color-picker' );
|
334 |
+
wp_enqueue_script( 'ngg-autocomplete' );
|
335 |
+
break;
|
336 |
+
case "nggallery-add-gallery" :
|
337 |
+
wp_enqueue_script( 'jquery-ui-tabs' );
|
338 |
+
wp_enqueue_script( 'ngg-plupload-handler' );
|
339 |
+
wp_enqueue_script( 'ngg-ajax' );
|
340 |
+
wp_enqueue_script( 'ngg-progressbar' );
|
341 |
+
wp_enqueue_script( 'jquery-ui-dialog' );
|
342 |
+
wp_enqueue_script( 'jqueryFileTree', NGGALLERY_URLPATH . 'admin/js/jqueryFileTree/jqueryFileTree.js',
|
343 |
+
array( 'jquery' ), '1.0.1' );
|
344 |
+
break;
|
345 |
+
case "nggallery-style" :
|
346 |
+
wp_enqueue_script( 'codepress' );
|
347 |
+
break;
|
348 |
+
|
349 |
+
}
|
350 |
+
}
|
351 |
+
|
352 |
+
/**
|
353 |
+
* Load the CSS files.
|
354 |
+
*/
|
355 |
+
public function load_styles() {
|
356 |
+
wp_register_style( 'nggadmin', NGGALLERY_URLPATH . 'admin/css/nggadmin.css', false, '2.8.1', 'screen' );
|
357 |
+
wp_register_style( 'ngg-jqueryui', NGGALLERY_URLPATH . 'admin/css/jquery.ui.css', false, '1.8.5', 'screen' );
|
358 |
+
|
359 |
+
// no need to go on if it's not a plugin page
|
360 |
+
if ( ! isset( $_GET['page'] ) ) {
|
361 |
+
return;
|
362 |
+
}
|
363 |
+
|
364 |
+
switch ( $_GET['page'] ) {
|
365 |
+
case NGGFOLDER :
|
366 |
+
wp_enqueue_style( 'nggadmin' );
|
367 |
+
wp_enqueue_style( 'thickbox' );
|
368 |
+
break;
|
369 |
+
case "nggallery-add-gallery" :
|
370 |
+
wp_enqueue_style( 'ngg-jqueryui' );
|
371 |
+
wp_enqueue_style( 'jqueryFileTree', NGGALLERY_URLPATH . 'admin/js/jqueryFileTree/jqueryFileTree.css',
|
372 |
+
false, '1.0.1', 'screen' );
|
373 |
+
case "nggallery-options" :
|
374 |
+
wp_enqueue_style( 'nggtabs', NGGALLERY_URLPATH . 'admin/css/jquery.ui.tabs.css', false, '2.5.0',
|
375 |
+
'screen' );
|
376 |
+
wp_enqueue_style( 'nggadmin' );
|
377 |
+
wp_enqueue_style( 'wp-color-picker' );
|
378 |
+
wp_enqueue_style( 'ngg-jqueryui' );
|
379 |
+
break;
|
380 |
+
case "nggallery-manage":
|
381 |
+
wp_enqueue_style( 'ngg-cropper', NGGALLERY_URLPATH . 'admin/js/cropper/cropper.min.css', '0.10.0' );
|
382 |
+
wp_enqueue_style( 'shutter', NGGALLERY_URLPATH . 'shutter/shutter-reloaded.css', false, '1.3.2',
|
383 |
+
'screen' );
|
384 |
+
wp_enqueue_style( 'datepicker', NGGALLERY_URLPATH . 'admin/css/jquery.ui.datepicker.css', false,
|
385 |
+
'1.8.2', 'screen' );
|
386 |
+
case "nggallery-roles" :
|
387 |
+
case "nggallery-manage-album" :
|
388 |
+
wp_enqueue_style( 'ngg-jqueryui' );
|
389 |
+
wp_enqueue_style( 'nggadmin' );
|
390 |
+
break;
|
391 |
+
case "nggallery-tags" :
|
392 |
+
wp_enqueue_style( 'nggadmin' );
|
393 |
+
break;
|
394 |
+
case "nggallery-style" :
|
395 |
+
break;
|
396 |
+
}
|
397 |
+
}
|
398 |
+
|
399 |
+
/**
|
400 |
+
* Save the screen options.
|
401 |
+
*/
|
402 |
+
public static function save_options( $status, $option, $value ) {
|
403 |
+
return $value;
|
404 |
+
}
|
405 |
+
|
406 |
+
/**
|
407 |
+
* Add help and options to the correct screens
|
408 |
+
*
|
409 |
+
* @since 1.9.24
|
410 |
+
*
|
411 |
+
* @param WP_Screen $screen The current screen.
|
412 |
+
*
|
413 |
+
* @return WP_Screen $screen The current screen.
|
414 |
+
*/
|
415 |
+
public function edit_current_screen( $screen ) {
|
416 |
+
|
417 |
+
// menu title is localized, so we need to change the toplevel name
|
418 |
+
$i18n = strtolower( __( 'Galleries', 'nggallery' ) );
|
419 |
+
|
420 |
+
switch ( $screen->id ) {
|
421 |
+
case 'toplevel_page_' . NGGFOLDER :
|
422 |
+
//The tab content
|
423 |
+
$help = '<p>' . __( 'Welcome to your NextCellent Dashboard! This screen gives you all kinds of information about NextCellent at glance. You can get help for any screen by clicking the Help tab in the upper corner.' ) . '</p>';
|
424 |
+
//Add the tab
|
425 |
+
$screen->add_help_tab( array(
|
426 |
+
'id' => $screen->id . '-welcome',
|
427 |
+
'title' => 'Overview',
|
428 |
+
'content' => $help
|
429 |
+
) );
|
430 |
+
|
431 |
+
//The tab content
|
432 |
+
$help = '<p>' . __( 'The boxes on your overview screen are:', 'nggallery' ) . '</p>';
|
433 |
+
$help .= '<p><strong>' . __( 'At a Glance',
|
434 |
+
'nggallery' ) . '</strong> - ' . __( 'Shows some general information about your site, such as the number of pictures, albums and galleries.',
|
435 |
+
'nggallery' ) . '</p>';
|
436 |
+
$help .= '<p><strong>' . __( 'Latest News',
|
437 |
+
'nggallery' ) . '</strong> - ' . __( 'The latest NextCellent news.', 'nggallery' ) . '</p>';
|
438 |
+
if ( ! is_multisite() || is_super_admin() ) {
|
439 |
+
$help .= '<p><strong>' . __( 'Related plugins',
|
440 |
+
'nggallery' ) . '</strong> - ' . __( 'Shows plugins that extend NextCellent.',
|
441 |
+
'nggallery' ) . ' <strong>' . __( 'Pay attention',
|
442 |
+
'nggallery' ) . '</strong>: ' . __( 'third parties plugins that are compatible with NGG may not be 100% compatible with NextCellent Gallery!',
|
443 |
+
'nggallery' ) . '</p>';
|
444 |
+
}
|
445 |
+
$help .= '<p><strong>' . __( 'Help me help YOU!',
|
446 |
+
'nggallery' ) . '</strong> - ' . __( 'Shows general information about he plugin and some links.',
|
447 |
+
'nggallery' ) . '</p>';
|
448 |
+
if ( ! ( get_locale() == 'en_US' ) ) {
|
449 |
+
$help .= '<p><strong>' . __( 'Translation',
|
450 |
+
'nggallery' ) . '</strong> - ' . __( 'View information about the current translation.' ) . '</p>';
|
451 |
+
}
|
452 |
+
if ( ! is_multisite() || is_super_admin() ) {
|
453 |
+
$help .= '<p><strong>' . __( 'Server Settings',
|
454 |
+
'nggallery' ) . '</strong> - ' . __( 'Show all the server settings!.',
|
455 |
+
'nggallery' ) . '</p>';
|
456 |
+
$help .= '<p><strong>' . __( 'Plugin Check',
|
457 |
+
'nggallery' ) . '</strong> - ' . __( 'Check if there are known errors in your installation.',
|
458 |
+
'nggallery' ) . '</p>';
|
459 |
+
}
|
460 |
+
//Add the tab
|
461 |
+
$screen->add_help_tab( array(
|
462 |
+
'id' => $screen->id . '-content',
|
463 |
+
'title' => 'Content',
|
464 |
+
'content' => $help
|
465 |
+
) );
|
466 |
+
break;
|
467 |
+
case "{$i18n}_page_nggallery-add-gallery" :
|
468 |
+
|
469 |
+
/**
|
470 |
+
* @global nggdb $nggdb
|
471 |
+
*/
|
472 |
+
global $nggdb;
|
473 |
+
$gallerylist = $nggdb->find_all_galleries( 'gid', 'DESC' ); //look for galleries
|
474 |
+
|
475 |
+
$help = '<p>' . __( 'On this page you can add galleries and pictures to those galleries.',
|
476 |
+
'nggallery' ) . '</p>';
|
477 |
+
if ( nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) {
|
478 |
+
$help .= '<p><strong>' . __( 'New gallery',
|
479 |
+
'nggallery' ) . '</strong> - ' . __( 'Add new galleries to NextCellent.',
|
480 |
+
'nggallery' ) . '</p>';
|
481 |
+
}
|
482 |
+
if ( empty ( $gallerylist ) ) {
|
483 |
+
$help .= '<p><strong>' . __( 'You must add a gallery before adding images!',
|
484 |
+
'nggallery' ) . '</strong>';
|
485 |
+
} else {
|
486 |
+
$help .= '<p><strong>' . __( 'Images',
|
487 |
+
'nggallery' ) . '</strong> - ' . __( 'Add new images to a gallery.', 'nggallery' ) . '</p>';
|
488 |
+
}
|
489 |
+
if ( wpmu_enable_function( 'wpmuZipUpload' ) && nggGallery::current_user_can( 'NextGEN Upload a zip' ) && ! empty ( $gallerylist ) ) {
|
490 |
+
$help .= '<p><strong>' . __( 'ZIP file',
|
491 |
+
'nggallery' ) . '</strong> - ' . __( 'Add images from a ZIP file.', 'nggallery' ) . '</p>';
|
492 |
+
}
|
493 |
+
if ( wpmu_enable_function( 'wpmuImportFolder' ) && nggGallery::current_user_can( 'NextGEN Import image folder' ) ) {
|
494 |
+
$help .= '<p><strong>' . __( 'Import folder',
|
495 |
+
'nggallery' ) . '</strong> - ' . __( 'Import a folder from the server as a new gallery.',
|
496 |
+
'nggallery' ) . '</p>';
|
497 |
+
}
|
498 |
+
|
499 |
+
$screen->add_help_tab( array(
|
500 |
+
'id' => $screen->id . '-general',
|
501 |
+
'title' => 'Add things',
|
502 |
+
'content' => $help
|
503 |
+
) );
|
504 |
+
break;
|
505 |
+
case "{$i18n}_page_nggallery-manage" :
|
506 |
+
|
507 |
+
$option = 'per_page';
|
508 |
+
|
509 |
+
if ( ! isset( $_GET['mode'] ) || $_GET['mode'] === 'gallery' ) {
|
510 |
+
include_once( 'manage/class-ngg-gallery-list-table.php' );
|
511 |
+
add_filter( 'manage_' . $screen->id . '_columns',
|
512 |
+
array( 'NGG_Gallery_List_Table', 'get_columns_static' ), 0 );
|
513 |
+
$args = array(
|
514 |
+
'label' => __( 'Galleries', 'nggallery' ),
|
515 |
+
'default' => 25,
|
516 |
+
'option' => 'ngg_galleries_per_page'
|
517 |
+
);
|
518 |
+
} else {
|
519 |
+
include_once( 'manage/class-ngg-image-list-table.php' );
|
520 |
+
add_filter( 'manage_' . $screen->id . '_columns',
|
521 |
+
array( 'NGG_Image_List_Table', 'get_columns_static' ), 0 );
|
522 |
+
$args = array(
|
523 |
+
'label' => __( 'Images', 'nggallery' ),
|
524 |
+
'default' => 50,
|
525 |
+
'option' => 'ngg_images_per_page'
|
526 |
+
);
|
527 |
+
}
|
528 |
+
|
529 |
+
$screen->add_option( $option, $args );
|
530 |
+
|
531 |
+
|
532 |
+
$help = '<p>' . __( 'Manage your images and galleries.', 'nggallery' ) . '</p>';
|
533 |
+
|
534 |
+
$screen->add_help_tab( array(
|
535 |
+
'id' => $screen->id . '-general',
|
536 |
+
'title' => 'Manage everything',
|
537 |
+
'content' => $help
|
538 |
+
) );
|
539 |
+
break;
|
540 |
+
case "{$i18n}_page_nggallery-manage-album" :
|
541 |
+
$help = '<p>' . __( 'Organize your galleries into albums.',
|
542 |
+
'nggallery' ) . '</p><p>' . __( 'First select an album from the dropdown and then drag the galleries you want to add or remove from the selected album.',
|
543 |
+
'nggallery' ) . '</p>';
|
544 |
+
|
545 |
+
$screen->add_help_tab( array(
|
546 |
+
'id' => $screen->id . '-general',
|
547 |
+
'title' => 'Organize everything',
|
548 |
+
'content' => $help
|
549 |
+
) );
|
550 |
+
break;
|
551 |
+
case "{$i18n}_page_nggallery-tags" :
|
552 |
+
$help = '<p>' . __( 'Organize your pictures with tags.',
|
553 |
+
'nggallery' ) . '</p><p>' . __( 'Rename, delete and edit tags. Use the rename function to merge tags.',
|
554 |
+
'nggallery' ) . '</p>';
|
555 |
+
|
556 |
+
$screen->add_help_tab( array(
|
557 |
+
'id' => $screen->id . '-general',
|
558 |
+
'title' => 'Organize pictures',
|
559 |
+
'content' => $help
|
560 |
+
) );
|
561 |
+
break;
|
562 |
+
case "{$i18n}_page_nggallery-options" :
|
563 |
+
$help = '<p>' . __( 'Edit all of NextCellent\'s options. The options are sorted in multiple categories.',
|
564 |
+
'nggallery' ) . '</p>';
|
565 |
+
$help .= '<p><strong>' . __( 'General',
|
566 |
+
'nggallery' ) . '</strong> - ' . __( 'General NextCellent options. Contains options for permalinks and related images.',
|
567 |
+
'nggallery' ) . '</p>';
|
568 |
+
$help .= '<p><strong>' . __( 'Images',
|
569 |
+
'nggallery' ) . '</strong> - ' . __( 'All image-related options. Also contains options for thumbnails.',
|
570 |
+
'nggallery' ) . '</p>';
|
571 |
+
$help .= '<p><strong>' . __( 'Gallery',
|
572 |
+
'nggallery' ) . '</strong> - ' . __( 'Everything about galleries. From sorting options to the number of images, it\'s all in here.',
|
573 |
+
'nggallery' ) . '</p>';
|
574 |
+
$help .= '<p><strong>' . __( 'Effects',
|
575 |
+
'nggallery' ) . '</strong> - ' . __( 'Make your gallery look beautiful.',
|
576 |
+
'nggallery' ) . '</p>';
|
577 |
+
$help .= '<p><strong>' . __( 'Watermark',
|
578 |
+
'nggallery' ) . '</strong> - ' . __( 'Who doesn\'t want theft-proof images?',
|
579 |
+
'nggallery' ) . '</p>';
|
580 |
+
$help .= '<p><strong>' . __( 'Slideshow',
|
581 |
+
'nggallery' ) . '</strong> - ' . __( 'Edit options for the slideshow.', 'nggallery' ) . '</p>';
|
582 |
+
$help .= '<p>' . __( 'Don\'t forget to press save!', 'nggallery' ) . '</p>';
|
583 |
+
|
584 |
+
$screen->add_help_tab( array(
|
585 |
+
'id' => $screen->id . '-general',
|
586 |
+
'title' => 'Edit options',
|
587 |
+
'content' => $help
|
588 |
+
) );
|
589 |
+
break;
|
590 |
+
case "{$i18n}_page_nggallery-style" :
|
591 |
+
$help = '<p>' . __( 'You can edit the css file to adjust how your gallery looks.',
|
592 |
+
'nggallery' ) . '</p>';
|
593 |
+
$help .= '<p>' . __( 'When you save an edited file, NextCellent automatically saves it as a copy in the folder ngg_styles. This protects your changes from upgrades.',
|
594 |
+
'nggallery' ) . '</p>';
|
595 |
+
|
596 |
+
$screen->add_help_tab( array(
|
597 |
+
'id' => $screen->id . '-general',
|
598 |
+
'title' => 'Style your gallery',
|
599 |
+
'content' => $help
|
600 |
+
) );
|
601 |
+
break;
|
602 |
+
case "{$i18n}_page_nggallery-roles" :
|
603 |
+
$help = '<p>' . __( 'You can assign the lowest user role that has access to a certain feature. Needless to say, all greater user roles will also have access to that feature.',
|
604 |
+
'nggallery' ) . '</p>';
|
605 |
+
$help .= '<p>' . __( 'NextCellent also works with various plugins that extend the default roles capabilities.',
|
606 |
+
'nggallery' ) . '</p>';
|
607 |
+
|
608 |
+
$screen->add_help_tab( array(
|
609 |
+
'id' => $screen->id . '-general',
|
610 |
+
'title' => 'Grant permissions',
|
611 |
+
'content' => $help
|
612 |
+
) );
|
613 |
+
break;
|
614 |
+
case "{$i18n}_page_nggallery-setup" :
|
615 |
+
$help = '<p>' . __( 'If \'someone\' messed with your settings (yeah, definitely not you), you can reset them here.',
|
616 |
+
'nggallery' ) . '</p>';
|
617 |
+
$help .= '<p><b>' . __( 'Attention!',
|
618 |
+
'nggallery' ) . '</b> ' . __( 'You should not use the Uninstall Plugin button, unless you know what you\'re doing! It should never be necessary to press it.',
|
619 |
+
'nggallery' ) . '</p>';
|
620 |
+
|
621 |
+
$screen->add_help_tab( array(
|
622 |
+
'id' => $screen->id . '-general',
|
623 |
+
'title' => 'Reset',
|
624 |
+
'content' => $help
|
625 |
+
) );
|
626 |
+
break;
|
627 |
+
}
|
628 |
+
|
629 |
+
//Set the sidebar (same on all pages)
|
630 |
+
$screen->set_help_sidebar(
|
631 |
+
'<p><strong>' . __( 'For more information:', 'nggallery' ) . '</strong></p>' .
|
632 |
+
'<p><a href="http://codex.wordpress.org/Plugins_Editor_Screen" target="_blank">' . __( 'Support Forums',
|
633 |
+
'nggallery' ) . '</a></p>' .
|
634 |
+
'<p><a href="https://bitbucket.org/wpgetready/nextcellent" target="_blank">' . __( 'Source Code',
|
635 |
+
'nggallery' ) . '</a></p>'
|
636 |
+
);
|
637 |
+
|
638 |
+
return $screen;
|
639 |
+
}
|
640 |
+
}
|
641 |
+
|
642 |
+
/**
|
643 |
+
* Check if a function is enabled on multisite.
|
644 |
+
*
|
645 |
+
* @param string $value
|
646 |
+
*
|
647 |
+
* @todo Move from here
|
648 |
+
*
|
649 |
+
* @return bool If it's enabled or not.
|
650 |
+
*/
|
651 |
+
function wpmu_enable_function( $value ) {
|
652 |
+
if ( is_multisite() ) {
|
653 |
+
$ngg_options = get_site_option( 'ngg_options' );
|
654 |
+
|
655 |
+
if(isset($ngg_options[ $value ])) {
|
656 |
+
return $ngg_options[ $value ];
|
657 |
+
} else {
|
658 |
+
return false;
|
659 |
+
}
|
660 |
+
}
|
661 |
+
|
662 |
+
// if this is not WPMU, enable it !
|
663 |
+
return true;
|
664 |
+
}
|
admin/class-ngg-album-manager.php
ADDED
@@ -0,0 +1,614 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once( 'interface-ngg-displayable.php' );
|
4 |
+
|
5 |
+
class NGG_Album_Manager implements NGG_Displayable {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* The selected album ID.
|
9 |
+
*
|
10 |
+
* @var int
|
11 |
+
*/
|
12 |
+
private $currentID = 0;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* The array for the galleries.
|
16 |
+
*
|
17 |
+
* @var array|bool
|
18 |
+
*/
|
19 |
+
private $galleries = false;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* The array for the albums.
|
23 |
+
*
|
24 |
+
* @var array|bool
|
25 |
+
*/
|
26 |
+
private $albums = false;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* The amount of all galleries.
|
30 |
+
*
|
31 |
+
* @var int|boolean
|
32 |
+
*/
|
33 |
+
private $num_galleries = false;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* The amount of all albums
|
37 |
+
*
|
38 |
+
* @var int|boolean
|
39 |
+
*/
|
40 |
+
var $num_albums = false;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* FZSM: small tweak to pas current Album Id to output.
|
44 |
+
*/
|
45 |
+
public function display() {
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @global nggdb $nggdb
|
49 |
+
*/
|
50 |
+
global $nggdb;
|
51 |
+
|
52 |
+
$this->currentID = isset( $_REQUEST['act_album'] ) ? (int) $_REQUEST['act_album'] : 0;
|
53 |
+
|
54 |
+
if ( isset ( $_POST['update'] ) || isset( $_POST['delete'] ) || isset( $_POST['add'] ) ) {
|
55 |
+
$this->processor();
|
56 |
+
}
|
57 |
+
|
58 |
+
if ( isset ( $_POST['update_album'] ) ) {
|
59 |
+
$this->update_album();
|
60 |
+
}
|
61 |
+
|
62 |
+
// get first all galleries & albums
|
63 |
+
$this->albums = $nggdb->find_all_album();
|
64 |
+
$this->galleries = $nggdb->find_all_galleries();
|
65 |
+
$this->num_albums = count( $this->albums );
|
66 |
+
$this->num_galleries = count( $this->galleries );
|
67 |
+
$this->output( $this->currentID );
|
68 |
+
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Handle the updates.
|
73 |
+
*/
|
74 |
+
private function processor() {
|
75 |
+
global $wpdb;
|
76 |
+
|
77 |
+
check_admin_referer( 'ngg_album' );
|
78 |
+
|
79 |
+
if ( isset( $_POST['add'] ) && isset ( $_POST['newalbum'] ) ) {
|
80 |
+
|
81 |
+
if ( ! nggGallery::current_user_can( 'NextGEN Add/Delete album' ) ) {
|
82 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
83 |
+
}
|
84 |
+
|
85 |
+
$result = nggdb::add_album( $_POST['newalbum'] );
|
86 |
+
$this->currentID = ( $result ) ? $result : 0;
|
87 |
+
|
88 |
+
//hook for other plugins
|
89 |
+
do_action( 'ngg_add_album', $this->currentID );
|
90 |
+
|
91 |
+
if ( $result ) {
|
92 |
+
nggGallery::show_message( __( 'Updated successfully', 'nggallery' ) );
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
if ( isset( $_POST['update'] ) && ( $this->currentID > 0 ) ) {
|
97 |
+
|
98 |
+
$gid = '';
|
99 |
+
|
100 |
+
// get variable galleryContainer
|
101 |
+
parse_str( $_POST['sortorder'] );
|
102 |
+
if ( is_array( $gid ) ) {
|
103 |
+
$serial_sort = serialize( $gid );
|
104 |
+
$wpdb->query( "UPDATE $wpdb->nggalbum SET sortorder = '$serial_sort' WHERE id = $this->currentID " );
|
105 |
+
} else {
|
106 |
+
$wpdb->query( "UPDATE $wpdb->nggalbum SET sortorder = '0' WHERE id = $this->currentID " );
|
107 |
+
}
|
108 |
+
|
109 |
+
//hook for other plugins
|
110 |
+
do_action( 'ngg_update_album_sortorder', $this->currentID );
|
111 |
+
|
112 |
+
nggGallery::show_message( __( 'Updated successfully', 'nggallery' ) );
|
113 |
+
|
114 |
+
}
|
115 |
+
|
116 |
+
if ( isset( $_POST['delete'] ) ) {
|
117 |
+
|
118 |
+
if ( ! nggGallery::current_user_can( 'NextGEN Add/Delete album' ) ) {
|
119 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
120 |
+
}
|
121 |
+
|
122 |
+
$result = nggdb::delete_album( $this->currentID );
|
123 |
+
|
124 |
+
//hook for other plugins
|
125 |
+
do_action( 'ngg_delete_album', $this->currentID );
|
126 |
+
|
127 |
+
// jump back to main selection
|
128 |
+
$this->currentID = 0;
|
129 |
+
|
130 |
+
if ( $result ) {
|
131 |
+
nggGallery::show_message( __( 'Album deleted', 'nggallery' ) );
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
}
|
136 |
+
|
137 |
+
private function update_album() {
|
138 |
+
global $wpdb;
|
139 |
+
|
140 |
+
check_admin_referer( 'ngg_thickbox_form' );
|
141 |
+
|
142 |
+
if ( ! nggGallery::current_user_can( 'NextGEN Edit album settings' ) ) {
|
143 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
144 |
+
}
|
145 |
+
|
146 |
+
$name = $_POST['album_name'];
|
147 |
+
$desc = $_POST['album_desc'];
|
148 |
+
$prev = (int) $_POST['previewpic'];
|
149 |
+
$link = (int) $_POST['pageid'];
|
150 |
+
|
151 |
+
// slug must be unique, we use the title for that
|
152 |
+
$slug = nggdb::get_unique_slug( sanitize_title( $name ), 'album', $this->currentID );
|
153 |
+
|
154 |
+
$result = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggalbum SET slug= '%s', name= '%s', albumdesc= '%s', previewpic= %d, pageid= %d WHERE id = '%d'",
|
155 |
+
$slug, $name, $desc, $prev, $link, $this->currentID ) );
|
156 |
+
|
157 |
+
//hook for other plugin to update the fields
|
158 |
+
do_action( 'ngg_update_album', $this->currentID, $_POST );
|
159 |
+
|
160 |
+
if ( $result ) {
|
161 |
+
nggGallery::show_message( __( 'Updated successfully', 'nggallery' ) );
|
162 |
+
}
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* FZSM: Added Album to autocomplete
|
167 |
+
*
|
168 |
+
* @param $currentAlbum
|
169 |
+
*/
|
170 |
+
private function output( $currentAlbum ) {
|
171 |
+
|
172 |
+
//TODO:Code MUST be optimized, how to flag a used gallery better?
|
173 |
+
$used_list = $this->get_used_galleries();
|
174 |
+
|
175 |
+
?>
|
176 |
+
|
177 |
+
<script type="text/javascript">
|
178 |
+
|
179 |
+
jQuery(document).ready(
|
180 |
+
function() {
|
181 |
+
jQuery("#previewpic").nggAutocomplete({
|
182 |
+
type: 'image',
|
183 |
+
domain: "<?php echo home_url('index.php', is_ssl() ? 'https' : 'http'); ?>",
|
184 |
+
width: "95%",
|
185 |
+
term: <?php echo $currentAlbum; ?>
|
186 |
+
});
|
187 |
+
|
188 |
+
var selectContainer = jQuery('#selectContainer');
|
189 |
+
|
190 |
+
selectContainer.sortable({
|
191 |
+
items: '.groupItem',
|
192 |
+
placeholder: 'sort_placeholder',
|
193 |
+
opacity: 0.7,
|
194 |
+
tolerance: 'intersect',
|
195 |
+
distance: 2,
|
196 |
+
forcePlaceholderSize: true,
|
197 |
+
connectWith: ['#galleryContainer']
|
198 |
+
});
|
199 |
+
|
200 |
+
jQuery('#galleryContainer').sortable({
|
201 |
+
items: '.groupItem',
|
202 |
+
placeholder: 'sort_placeholder',
|
203 |
+
opacity: 0.7,
|
204 |
+
tolerance: 'intersect',
|
205 |
+
distance: 2,
|
206 |
+
forcePlaceholderSize: true,
|
207 |
+
connectWith: ['#selectContainer', '#albumContainer']
|
208 |
+
});
|
209 |
+
|
210 |
+
jQuery('#albumContainer').sortable({
|
211 |
+
items: '.groupItem',
|
212 |
+
placeholder: 'sort_placeholder',
|
213 |
+
opacity: 0.7,
|
214 |
+
tolerance: 'intersect',
|
215 |
+
distance: 2,
|
216 |
+
forcePlaceholderSize: true,
|
217 |
+
connectWith: ['#galleryContainer']
|
218 |
+
});
|
219 |
+
|
220 |
+
var min = jQuery('a.min');
|
221 |
+
|
222 |
+
min.bind('click', toggleContent);
|
223 |
+
|
224 |
+
// Hide used galleries
|
225 |
+
jQuery('a#toggle_used').click(function() {
|
226 |
+
selectContainer.find('div.inUse').toggle();
|
227 |
+
return false;
|
228 |
+
}
|
229 |
+
);
|
230 |
+
|
231 |
+
// Maximize All Portlets (whole site, no differentiation)
|
232 |
+
jQuery('a#all_max').click(function() {
|
233 |
+
jQuery('div.itemContent:hidden').show();
|
234 |
+
return false;
|
235 |
+
}
|
236 |
+
);
|
237 |
+
|
238 |
+
// Minimize All Portlets (whole site, no differentiation)
|
239 |
+
jQuery('a#all_min').click(function() {
|
240 |
+
jQuery('div.itemContent:visible').hide();
|
241 |
+
return false;
|
242 |
+
}
|
243 |
+
);
|
244 |
+
// Auto Minimize if more than 4 (whole site, no differentiation)
|
245 |
+
if (min.length > 4) {
|
246 |
+
min.html('╋');
|
247 |
+
jQuery('div.itemContent:visible').hide();
|
248 |
+
selectContainer.find('div.inUse').toggle();
|
249 |
+
}
|
250 |
+
}
|
251 |
+
);
|
252 |
+
|
253 |
+
var toggleContent = function() {
|
254 |
+
var targetContent = jQuery('div.itemContent', this.parentNode.parentNode);
|
255 |
+
if (targetContent.css('display') == 'none') {
|
256 |
+
targetContent.slideDown(300);
|
257 |
+
jQuery(this).html('━');
|
258 |
+
} else {
|
259 |
+
targetContent.slideUp(300);
|
260 |
+
jQuery(this).html('╋');
|
261 |
+
}
|
262 |
+
return false;
|
263 |
+
};
|
264 |
+
|
265 |
+
function ngg_serialize() {
|
266 |
+
//serial = jQuery.SortSerialize(s);
|
267 |
+
var serial = jQuery('#galleryContainer').sortable('serialize');
|
268 |
+
jQuery('input[name=sortorder]').val(serial);
|
269 |
+
}
|
270 |
+
|
271 |
+
function showDialog() {
|
272 |
+
var edit = jQuery("#editalbum");
|
273 |
+
edit.dialog({
|
274 |
+
width: 640,
|
275 |
+
resizable: false,
|
276 |
+
modal: true,
|
277 |
+
title: '<?php echo esc_js( __('Edit Album', 'nggallery') ); ?>'
|
278 |
+
});
|
279 |
+
edit.find('.dialog-cancel').click(function() {
|
280 |
+
jQuery("#editalbum").dialog("close");
|
281 |
+
});
|
282 |
+
}
|
283 |
+
|
284 |
+
</script>
|
285 |
+
<div class="wrap album" id="wrap">
|
286 |
+
<h2><?php _e( 'Albums', 'nggallery' ) ?></h2>
|
287 |
+
|
288 |
+
<form id="selectalbum" method="POST" onsubmit="ngg_serialize()" accept-charset="utf-8">
|
289 |
+
<?php wp_nonce_field( 'ngg_album' ) ?>
|
290 |
+
<input name="sortorder" type="hidden"/>
|
291 |
+
|
292 |
+
<div class="albumnav tablenav">
|
293 |
+
<div class="alignleft actions">
|
294 |
+
<?php esc_html_e( 'Select album', 'nggallery' ) ?>
|
295 |
+
<select id="act_album" name="act_album" onchange="this.form.submit();">
|
296 |
+
<option value="0"><?php esc_html_e( 'No album selected', 'nggallery' ) ?></option>
|
297 |
+
<?php
|
298 |
+
if ( is_array( $this->albums ) ) {
|
299 |
+
foreach ( $this->albums as $album ) {
|
300 |
+
$selected = ( $this->currentID == $album->id ) ? 'selected="selected" ' : '';
|
301 |
+
echo '<option value="' . $album->id . '" ' . $selected . '>' . $album->id . ' - ' . esc_attr( $album->name ) . '</option>' . "\n";
|
302 |
+
}
|
303 |
+
}
|
304 |
+
?>
|
305 |
+
</select>
|
306 |
+
<?php if ( $this->currentID > 0 ) { ?>
|
307 |
+
<input class="button-primary" type="submit" name="update" value="<?php esc_attr_e( 'Update',
|
308 |
+
'nggallery' ); ?>"/>
|
309 |
+
<?php if ( nggGallery::current_user_can( 'NextGEN Edit album settings' ) ) { ?>
|
310 |
+
<input class="button-secondary" type="submit" name="showThickbox" value="<?php esc_attr_e( 'Edit album',
|
311 |
+
'nggallery' ); ?>" onclick="showDialog(); return false;"/>
|
312 |
+
<?php } ?>
|
313 |
+
<?php if ( nggGallery::current_user_can( 'NextGEN Add/Delete album' ) ) { ?>
|
314 |
+
<input class="button-secondary action " type="submit" name="delete" value="<?php esc_attr_e( 'Delete',
|
315 |
+
'nggallery' ); ?>" onclick="javascript:check=confirm('<?php echo esc_js( 'Delete album?',
|
316 |
+
'nggallery' ); ?>');if(check==false) return false;"/>
|
317 |
+
<?php } ?>
|
318 |
+
<?php } else { ?>
|
319 |
+
<?php if ( nggGallery::current_user_can( 'NextGEN Add/Delete album' ) ) { ?>
|
320 |
+
<span><?php esc_html_e( 'Add new album', 'nggallery' ); ?> </span>
|
321 |
+
<input class="search-input" id="newalbum" name="newalbum" type="text" value=""/>
|
322 |
+
<input class="button-secondary action" type="submit" name="add" value="<?php esc_attr_e( 'Add',
|
323 |
+
'nggallery' ); ?>"/>
|
324 |
+
<?php } ?>
|
325 |
+
<?php } ?>
|
326 |
+
</div>
|
327 |
+
</div>
|
328 |
+
</form>
|
329 |
+
|
330 |
+
<br class="clear"/>
|
331 |
+
|
332 |
+
<div>
|
333 |
+
<div style="float:right;">
|
334 |
+
<a href="#" title="<?php esc_attr_e( 'Show / hide used galleries',
|
335 |
+
'nggallery' ); ?>" id="toggle_used"><?php esc_html_e( '[Show all]', 'nggallery' ); ?></a>
|
336 |
+
| <a href="#" title="<?php esc_attr_e( 'Maximize the widget content',
|
337 |
+
'nggallery' ); ?>" id="all_max"><?php esc_html_e( '[Maximize]', 'nggallery' ); ?></a>
|
338 |
+
| <a href="#" title="<?php esc_attr_e( 'Minimize the widget content',
|
339 |
+
'nggallery' ); ?>" id="all_min"><?php esc_html_e( '[Minimize]', 'nggallery' ); ?></a>
|
340 |
+
</div>
|
341 |
+
<?php esc_html_e( 'After you create and select a album, you can drag and drop a gallery or another album into your new album below',
|
342 |
+
'nggallery' ); ?>
|
343 |
+
</div>
|
344 |
+
|
345 |
+
<br class="clear">
|
346 |
+
|
347 |
+
<div class="container">
|
348 |
+
|
349 |
+
<!-- /#album container -->
|
350 |
+
<div class="widget widget-right">
|
351 |
+
<div class="widget-top">
|
352 |
+
<h3><?php esc_html_e( 'Select album', 'nggallery' ); ?></h3>
|
353 |
+
</div>
|
354 |
+
<div id="albumContainer" class="widget-holder">
|
355 |
+
<?php
|
356 |
+
if ( is_array( $this->albums ) ) {
|
357 |
+
foreach ( $this->albums as $album ) {
|
358 |
+
$this->get_container( 'a' . $album->id );
|
359 |
+
}
|
360 |
+
}
|
361 |
+
?>
|
362 |
+
</div>
|
363 |
+
</div>
|
364 |
+
|
365 |
+
<!-- /#select container -->
|
366 |
+
<div class="widget widget-right">
|
367 |
+
<div class="widget-top">
|
368 |
+
<h3><?php esc_html_e( 'Select gallery', 'nggallery' ); ?></h3>
|
369 |
+
</div>
|
370 |
+
<div id="selectContainer" class="widget-holder">
|
371 |
+
<?php
|
372 |
+
|
373 |
+
if ( is_array( $this->galleries ) ) {
|
374 |
+
//get the array of galleries
|
375 |
+
$sort_array = $this->currentID > 0 ? (array) $this->albums[ $this->currentID ]->galleries : array();
|
376 |
+
foreach ( $this->galleries as $gallery ) {
|
377 |
+
if ( ! in_array( $gallery->gid, $sort_array ) ) {
|
378 |
+
if ( in_array( $gallery->gid, $used_list ) ) {
|
379 |
+
$this->get_container( $gallery->gid, true );
|
380 |
+
} else {
|
381 |
+
$this->get_container( $gallery->gid, false );
|
382 |
+
}
|
383 |
+
}
|
384 |
+
}
|
385 |
+
}
|
386 |
+
?>
|
387 |
+
</div>
|
388 |
+
</div>
|
389 |
+
|
390 |
+
<!-- /#target-album -->
|
391 |
+
<div class="widget target-album widget-left">
|
392 |
+
|
393 |
+
<?php
|
394 |
+
if ( $this->currentID > 0 ){
|
395 |
+
$album = $this->albums[ $this->currentID ];
|
396 |
+
?>
|
397 |
+
<div class="widget-top">
|
398 |
+
<h3><?php esc_html_e( 'Album ID',
|
399 |
+
'nggallery' ); ?><?php echo $album->id . ': ' . esc_html( $album->name ); ?> </h3>
|
400 |
+
</div>
|
401 |
+
<div id="galleryContainer" class="widget-holder target">
|
402 |
+
<?php
|
403 |
+
$sort_array = (array) $this->albums[ $this->currentID ]->galleries;
|
404 |
+
foreach ( $sort_array as $galleryid ) {
|
405 |
+
$this->get_container( $galleryid, false );
|
406 |
+
}
|
407 |
+
}
|
408 |
+
else
|
409 |
+
{
|
410 |
+
?>
|
411 |
+
<div class="widget-top">
|
412 |
+
<h3><?php esc_html_e( 'No album selected!', 'nggallery' ); ?></h3>
|
413 |
+
</div>
|
414 |
+
<div class="widget-holder target">
|
415 |
+
<?php
|
416 |
+
}
|
417 |
+
?>
|
418 |
+
</div>
|
419 |
+
</div>
|
420 |
+
<!-- /#target-album -->
|
421 |
+
|
422 |
+
</div>
|
423 |
+
<!-- /#container -->
|
424 |
+
</div>
|
425 |
+
<!-- /#wrap -->
|
426 |
+
|
427 |
+
<?php if ( $this->currentID > 0 ) : ?>
|
428 |
+
<!-- #editalbum -->
|
429 |
+
<div id="editalbum" style="display: none;">
|
430 |
+
<form id="form-edit-album" method="POST" accept-charset="utf-8">
|
431 |
+
<?php wp_nonce_field( 'ngg_thickbox_form' ) ?>
|
432 |
+
<input type="hidden" id="current_album" name="act_album" value="<?php echo $this->currentID; ?>"/>
|
433 |
+
<table width="100%">
|
434 |
+
<tr>
|
435 |
+
<th>
|
436 |
+
<?php esc_html_e( 'Album name:', 'nggallery' ); ?><br/>
|
437 |
+
<input class="search-input" id="album_name" name="album_name" type="text" value="<?php echo esc_attr( $album->name ); ?>" style="width:95%"/>
|
438 |
+
</th>
|
439 |
+
</tr>
|
440 |
+
<tr>
|
441 |
+
<th>
|
442 |
+
<?php esc_html_e( 'Album description:', 'nggallery' ); ?><br/>
|
443 |
+
<textarea class="search-input" id="album_desc" name="album_desc" cols="50" rows="2" style="width:95%"><?php echo esc_attr( $album->albumdesc ); ?></textarea>
|
444 |
+
</th>
|
445 |
+
</tr>
|
446 |
+
<tr>
|
447 |
+
<th>
|
448 |
+
<?php esc_html_e( 'Select a preview image:', 'nggallery' ); ?><br/>
|
449 |
+
<select id="previewpic" name="previewpic" style="width:95%">
|
450 |
+
<?php if ( $album->previewpic == 0 ) ?>
|
451 |
+
<option value="0"><?php esc_html_e( 'No picture', 'nggallery' ); ?></option>
|
452 |
+
<?php
|
453 |
+
if ( $album->previewpic == 0 ) {
|
454 |
+
echo '<option value="0" selected="selected">' . __( 'No picture',
|
455 |
+
'nggallery' ) . '</option>';
|
456 |
+
} else {
|
457 |
+
$picture = nggdb::find_image( $album->previewpic );
|
458 |
+
echo '<option value="' . $picture->pid . '" selected="selected" >' . $picture->pid . ' - ' . ( empty( $picture->alltext ) ? esc_attr( $picture->filename ) : esc_attr( $picture->alltext ) ) . ' </option>' . "\n";
|
459 |
+
}
|
460 |
+
?>
|
461 |
+
</select>
|
462 |
+
</th>
|
463 |
+
</tr>
|
464 |
+
<tr>
|
465 |
+
<th>
|
466 |
+
<?php esc_html_e( 'Page Link to', 'nggallery' ) ?><br/>
|
467 |
+
<select name="pageid" style="width:95%">
|
468 |
+
<option value="0"><?php esc_html_e( 'Not linked', 'nggallery' ) ?></option>
|
469 |
+
<?php
|
470 |
+
if ( ! isset( $album->pageid ) ) {
|
471 |
+
$album->pageid = 0;
|
472 |
+
}
|
473 |
+
parent_dropdown( $album->pageid ); ?>
|
474 |
+
</select>
|
475 |
+
</th>
|
476 |
+
</tr>
|
477 |
+
|
478 |
+
<?php do_action( 'ngg_edit_album_settings', $this->currentID ); ?>
|
479 |
+
|
480 |
+
<tr>
|
481 |
+
<td class="submit">
|
482 |
+
<input type="submit" class="button-primary" name="update_album" value="<?php esc_attr_e( 'OK',
|
483 |
+
'nggallery' ); ?>"/>
|
484 |
+
|
485 |
+
<input class="button-secondary dialog-cancel" type="reset" value="<?php esc_attr_e( 'Cancel',
|
486 |
+
'nggallery' ); ?>"/>
|
487 |
+
</td>
|
488 |
+
</tr>
|
489 |
+
</table>
|
490 |
+
</form>
|
491 |
+
</div>
|
492 |
+
<!-- /#editalbum -->
|
493 |
+
<?php endif; ?>
|
494 |
+
|
495 |
+
<?php
|
496 |
+
|
497 |
+
}
|
498 |
+
|
499 |
+
/**
|
500 |
+
* Create the album or gallery container
|
501 |
+
*
|
502 |
+
* @param integer $id (the prefix 'a' indidcates that you look for a album
|
503 |
+
* @param bool $used (object will be hidden)
|
504 |
+
*
|
505 |
+
*/
|
506 |
+
private function get_container( $id = 0, $used = false ) {
|
507 |
+
|
508 |
+
/**
|
509 |
+
* @global nggdb $nggdb
|
510 |
+
*/
|
511 |
+
global $nggdb;
|
512 |
+
|
513 |
+
$obj = array();
|
514 |
+
$preview_image = '';
|
515 |
+
$class = '';
|
516 |
+
|
517 |
+
// if the id started with a 'a', then it's a sub album
|
518 |
+
if ( substr( $id, 0, 1 ) == 'a' ) {
|
519 |
+
|
520 |
+
if ( ! $album = $this->albums[ substr( $id, 1 ) ] ) {
|
521 |
+
return;
|
522 |
+
}
|
523 |
+
|
524 |
+
$obj['id'] = $album->id;
|
525 |
+
$obj['name'] = $obj['title'] = $album->name;
|
526 |
+
$obj['type'] = 'album';
|
527 |
+
$class = 'album_obj';
|
528 |
+
|
529 |
+
// get the post name
|
530 |
+
$post = get_post( $album->pageid );
|
531 |
+
$obj['pagenname'] = ( $post == null ) ? '---' : $post->post_title;
|
532 |
+
|
533 |
+
// for speed reason we limit it to 50
|
534 |
+
if ( $this->num_albums < 50 ) {
|
535 |
+
if ( $album->previewpic != 0 ) {
|
536 |
+
$image = $nggdb->find_image( $album->previewpic );
|
537 |
+
$preview_image = ( ! is_null( $image->thumbURL ) ) ? '<div class="inlinepicture"><img src="' . esc_url( $image->thumbURL ) . '" /></div>' : '';
|
538 |
+
}
|
539 |
+
}
|
540 |
+
|
541 |
+
// this indicates that we have a album container
|
542 |
+
$prefix = 'a';
|
543 |
+
|
544 |
+
} else {
|
545 |
+
if ( ! $gallery = $nggdb->find_gallery( $id ) ) {
|
546 |
+
return;
|
547 |
+
}
|
548 |
+
|
549 |
+
$obj['id'] = $gallery->gid;
|
550 |
+
$obj['name'] = $gallery->name;
|
551 |
+
$obj['title'] = $gallery->title;
|
552 |
+
$obj['type'] = 'gallery';
|
553 |
+
|
554 |
+
// get the post name
|
555 |
+
$post = get_post( $gallery->pageid );
|
556 |
+
$obj['pagenname'] = ( $post == null ) ? '---' : $post->post_title;
|
557 |
+
|
558 |
+
// for spped reason we limit it to 50
|
559 |
+
if ( $this->num_galleries < 50 ) {
|
560 |
+
// set image url
|
561 |
+
$image = $nggdb->find_image( $gallery->previewpic );
|
562 |
+
$preview_image = isset( $image->thumbURL ) ? '<div class="inlinepicture"><img src="' . esc_url( $image->thumbURL ) . '" /></div>' : '';
|
563 |
+
}
|
564 |
+
|
565 |
+
$prefix = '';
|
566 |
+
}
|
567 |
+
|
568 |
+
// add class if it's in use in other albums
|
569 |
+
$used = $used ? ' inUse' : '';
|
570 |
+
|
571 |
+
echo '<div id="gid-' . $prefix . $obj['id'] . '" class="groupItem' . $used . '">
|
572 |
+
<div class="innerhandle">
|
573 |
+
<div class="item_top ' . $class . '">
|
574 |
+
<a href="#" class="min" title="close">━</a>
|
575 |
+
ID: ' . $obj['id'] . ' | ' . wp_html_excerpt( esc_html( nggGallery::i18n( $obj['title'] ) ),
|
576 |
+
25 ) . '
|
577 |
+
</div>
|
578 |
+
<div class="itemContent">
|
579 |
+
' . $preview_image . '
|
580 |
+
<p><strong>' . __( 'Name',
|
581 |
+
'nggallery' ) . ': </strong>' . esc_html( nggGallery::i18n( $obj['name'] ) ) . '</p>
|
582 |
+
<p><strong>' . __( 'Title',
|
583 |
+
'nggallery' ) . ': </strong>' . esc_html( nggGallery::i18n( $obj['title'] ) ) . '</p>
|
584 |
+
<p><strong>' . __( 'Page',
|
585 |
+
'nggallery' ) . ': </strong>' . esc_html( nggGallery::i18n( $obj['pagenname'] ) ) . '</p>
|
586 |
+
' . apply_filters( 'ngg_display_album_item_content', '', $obj ) . '
|
587 |
+
</div>
|
588 |
+
</div>
|
589 |
+
</div>';
|
590 |
+
}
|
591 |
+
|
592 |
+
/**
|
593 |
+
* get all used galleries from all albums
|
594 |
+
*
|
595 |
+
* @return array $used_galleries_ids
|
596 |
+
*/
|
597 |
+
private function get_used_galleries() {
|
598 |
+
|
599 |
+
$used = array();
|
600 |
+
|
601 |
+
if ( $this->albums ) {
|
602 |
+
foreach ( $this->albums as $key => $value ) {
|
603 |
+
$sort_array = $this->albums[ $key ]->galleries;
|
604 |
+
foreach ( $sort_array as $galleryid ) {
|
605 |
+
if ( ! in_array( $galleryid, $used ) ) {
|
606 |
+
$used[] = $galleryid;
|
607 |
+
}
|
608 |
+
}
|
609 |
+
}
|
610 |
+
}
|
611 |
+
|
612 |
+
return $used;
|
613 |
+
}
|
614 |
+
}
|
admin/class-ngg-installer.php
ADDED
@@ -0,0 +1,288 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class NGG_Installer
|
5 |
+
*
|
6 |
+
* Installs and removes the NextCellent database tables and options.
|
7 |
+
*/
|
8 |
+
class NGG_Installer {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Create all tables and options.
|
12 |
+
*
|
13 |
+
* This function is called during the activation hook.
|
14 |
+
*/
|
15 |
+
public static function install() {
|
16 |
+
|
17 |
+
global $wpdb;
|
18 |
+
|
19 |
+
// Check for capability
|
20 |
+
if ( ! current_user_can( 'activate_plugins' ) ) {
|
21 |
+
return;
|
22 |
+
}
|
23 |
+
|
24 |
+
// Set the capabilities for the administrator
|
25 |
+
$role = get_role( 'administrator' );
|
26 |
+
// We need this role, no other chance
|
27 |
+
if ( empty( $role ) ) {
|
28 |
+
update_option( "ngg_init_check",
|
29 |
+
__( 'Sorry, NextCellent Gallery works only with a role called administrator', "nggallery" ) );
|
30 |
+
|
31 |
+
return;
|
32 |
+
}
|
33 |
+
|
34 |
+
$role->add_cap( 'NextGEN Gallery overview' );
|
35 |
+
$role->add_cap( 'NextGEN Use TinyMCE' );
|
36 |
+
$role->add_cap( 'NextGEN Upload images' );
|
37 |
+
$role->add_cap( 'NextGEN Manage gallery' );
|
38 |
+
$role->add_cap( 'NextGEN Manage tags' );
|
39 |
+
$role->add_cap( 'NextGEN Manage others gallery' );
|
40 |
+
$role->add_cap( 'NextGEN Edit album' );
|
41 |
+
$role->add_cap( 'NextGEN Change style' );
|
42 |
+
$role->add_cap( 'NextGEN Change options' );
|
43 |
+
|
44 |
+
// upgrade function changed in WordPress 2.3
|
45 |
+
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
46 |
+
|
47 |
+
// add charset & collate like wp core
|
48 |
+
$charset_collate = '';
|
49 |
+
|
50 |
+
if ( version_compare( $wpdb->get_var( "SELECT VERSION() AS `mysql_version`" ), '4.1.0', '>=' ) ) {
|
51 |
+
if ( ! empty( $wpdb->charset ) ) {
|
52 |
+
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
|
53 |
+
}
|
54 |
+
if ( ! empty( $wpdb->collate ) ) {
|
55 |
+
$charset_collate .= " COLLATE $wpdb->collate";
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
$nggpictures = $wpdb->prefix . 'ngg_pictures';
|
60 |
+
$nggallery = $wpdb->prefix . 'ngg_gallery';
|
61 |
+
$nggalbum = $wpdb->prefix . 'ngg_album';
|
62 |
+
|
63 |
+
// Create pictures table
|
64 |
+
$sql = "CREATE TABLE " . $nggpictures . " (
|
65 |
+
pid BIGINT(20) NOT NULL AUTO_INCREMENT ,
|
66 |
+
image_slug VARCHAR(255) NOT NULL ,
|
67 |
+
post_id BIGINT(20) DEFAULT '0' NOT NULL ,
|
68 |
+
galleryid BIGINT(20) DEFAULT '0' NOT NULL ,
|
69 |
+
filename VARCHAR(255) NOT NULL ,
|
70 |
+
description MEDIUMTEXT NULL ,
|
71 |
+
alttext MEDIUMTEXT NULL ,
|
72 |
+
imagedate DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
|
73 |
+
exclude TINYINT NULL DEFAULT '0' ,
|
74 |
+
sortorder BIGINT(20) DEFAULT '0' NOT NULL ,
|
75 |
+
meta_data LONGTEXT,
|
76 |
+
PRIMARY KEY (pid),
|
77 |
+
KEY post_id (post_id)
|
78 |
+
) $charset_collate;";
|
79 |
+
dbDelta( $sql );
|
80 |
+
|
81 |
+
// Create gallery table
|
82 |
+
$sql = "CREATE TABLE " . $nggallery . " (
|
83 |
+
gid BIGINT(20) NOT NULL AUTO_INCREMENT ,
|
84 |
+
name VARCHAR(255) NOT NULL ,
|
85 |
+
slug VARCHAR(255) NOT NULL ,
|
86 |
+
path MEDIUMTEXT NULL ,
|
87 |
+
title MEDIUMTEXT NULL ,
|
88 |
+
galdesc MEDIUMTEXT NULL ,
|
89 |
+
pageid BIGINT(20) DEFAULT '0' NOT NULL ,
|
90 |
+
previewpic BIGINT(20) DEFAULT '0' NOT NULL ,
|
91 |
+
author BIGINT(20) DEFAULT '0' NOT NULL ,
|
92 |
+
PRIMARY KEY (gid)
|
93 |
+
) $charset_collate;";
|
94 |
+
dbDelta( $sql );
|
95 |
+
|
96 |
+
// Create albums table
|
97 |
+
$sql = "CREATE TABLE " . $nggalbum . " (
|
98 |
+
id BIGINT(20) NOT NULL AUTO_INCREMENT ,
|
99 |
+
name VARCHAR(255) NOT NULL ,
|
100 |
+
slug VARCHAR(255) NOT NULL ,
|
101 |
+
previewpic BIGINT(20) DEFAULT '0' NOT NULL ,
|
102 |
+
albumdesc MEDIUMTEXT NULL ,
|
103 |
+
sortorder LONGTEXT NOT NULL,
|
104 |
+
pageid BIGINT(20) DEFAULT '0' NOT NULL,
|
105 |
+
PRIMARY KEY (id)
|
106 |
+
) $charset_collate;";
|
107 |
+
dbDelta( $sql );
|
108 |
+
|
109 |
+
// check one table again, to be sure
|
110 |
+
if ( ! $wpdb->get_var( "SHOW TABLES LIKE '$nggpictures'" ) ) {
|
111 |
+
update_option( "ngg_init_check",
|
112 |
+
__( 'NextCellent Gallery : Tables could not created, please check your database settings',
|
113 |
+
"nggallery" ) );
|
114 |
+
|
115 |
+
return;
|
116 |
+
}
|
117 |
+
|
118 |
+
$options = get_option( 'ngg_options' );
|
119 |
+
// set the default settings, if we didn't upgrade
|
120 |
+
if ( empty( $options ) ) {
|
121 |
+
NGG_Installer::set_default_options();
|
122 |
+
}
|
123 |
+
|
124 |
+
// if all is passed , save the DBVERSION
|
125 |
+
add_option( "ngg_db_version", NGG_DBVERSION );
|
126 |
+
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Setup the default option array for NextCellent.
|
131 |
+
* When adding new options, an upgrade should be made for existing users as well.
|
132 |
+
* @see NGG_Upgrader
|
133 |
+
*/
|
134 |
+
public static function set_default_options() {
|
135 |
+
|
136 |
+
global $blog_id;
|
137 |
+
|
138 |
+
$ngg_options['gallerypath'] = 'wp-content/gallery/'; // set default path to the gallery
|
139 |
+
$ngg_options['deleteImg'] = true; // delete Images
|
140 |
+
$ngg_options['swfUpload'] = true; // activate the batch upload
|
141 |
+
$ngg_options['usePermalinks'] = false; // use permalinks for parameters
|
142 |
+
$ngg_options['permalinkSlug'] = 'nggallery'; // the default slug for permalinks
|
143 |
+
$ngg_options['graphicLibrary'] = 'gd'; // default graphic library
|
144 |
+
$ngg_options['imageMagickDir'] = '/usr/local/bin/'; // default path to ImageMagick
|
145 |
+
$ngg_options['useMediaRSS'] = false; // activate the global Media RSS file
|
146 |
+
$ngg_options['usePicLens'] = false; // activate the PicLens Link for galleries
|
147 |
+
$ngg_options['silentUpdate'] = false; //If the database should be updated silently.
|
148 |
+
|
149 |
+
// Tags / categories
|
150 |
+
$ngg_options['activateTags'] = false; // append related images
|
151 |
+
$ngg_options['appendType'] = 'tags'; // look for category or tags
|
152 |
+
$ngg_options['maxImages'] = 7; // number of images toshow
|
153 |
+
|
154 |
+
// Thumbnail Settings
|
155 |
+
$ngg_options['thumbwidth'] = 100; // Thumb Width
|
156 |
+
$ngg_options['thumbheight'] = 75; // Thumb height
|
157 |
+
$ngg_options['thumbfix'] = true; // Fix the dimension
|
158 |
+
$ngg_options['thumbquality'] = 100; // Thumb Quality
|
159 |
+
|
160 |
+
// Image Settings
|
161 |
+
$ngg_options['imgWidth'] = 800; // Image Width
|
162 |
+
$ngg_options['imgHeight'] = 600; // Image height
|
163 |
+
$ngg_options['imgQuality'] = 85; // Image Quality
|
164 |
+
$ngg_options['imgBackup'] = true; // Create a backup
|
165 |
+
$ngg_options['imgAutoResize'] = false; // Resize after upload
|
166 |
+
|
167 |
+
// Gallery Settings
|
168 |
+
$ngg_options['galImages'] = 20; // Number of images per page
|
169 |
+
$ngg_options['galPagedGalleries'] = 0; // Number of galleries per page (in a album)
|
170 |
+
$ngg_options['galColumns'] = 0; // Number of columns for the gallery
|
171 |
+
$ngg_options['galShowSlide'] = true; // Show slideshow
|
172 |
+
$ngg_options['galTextSlide'] = __( '[Show as slideshow]', 'nggallery' ); // Text for slideshow
|
173 |
+
$ngg_options['galTextGallery'] = __( '[Show picture list]', 'nggallery' ); // Text for gallery
|
174 |
+
$ngg_options['galShowOrder'] = 'gallery'; // Show order
|
175 |
+
$ngg_options['galSort'] = 'sortorder'; // Sort order
|
176 |
+
$ngg_options['galSortDir'] = 'ASC'; // Sort direction
|
177 |
+
$ngg_options['galNoPages'] = true; // use no subpages for gallery
|
178 |
+
$ngg_options['galImgBrowser'] = false; // Show ImageBrowser, instead effect
|
179 |
+
$ngg_options['galHiddenImg'] = false; // For paged galleries we can hide image
|
180 |
+
$ngg_options['galAjaxNav'] = false; // AJAX Navigation for Shutter effect
|
181 |
+
|
182 |
+
// Thumbnail Effect
|
183 |
+
$ngg_options['thumbEffect'] = 'shutter'; // select effect
|
184 |
+
$ngg_options['thumbCode'] = 'class="shutterset_%GALLERY_NAME%"';
|
185 |
+
|
186 |
+
// Watermark settings
|
187 |
+
$ngg_options['wmPos'] = 'botRight'; // Postion
|
188 |
+
$ngg_options['wmXpos'] = 5; // X Pos
|
189 |
+
$ngg_options['wmYpos'] = 5; // Y Pos
|
190 |
+
$ngg_options['wmType'] = 'text'; // Type : 'image' / 'text'
|
191 |
+
$ngg_options['wmPath'] = ''; // Path to image
|
192 |
+
$ngg_options['wmFont'] = 'arial.ttf'; // Font type
|
193 |
+
$ngg_options['wmSize'] = 10; // Font Size
|
194 |
+
$ngg_options['wmText'] = get_option( 'blogname' ); // Text
|
195 |
+
$ngg_options['wmColor'] = '000000'; // Font Color
|
196 |
+
$ngg_options['wmOpaque'] = '100'; // Font Opaque
|
197 |
+
|
198 |
+
// Slideshow settings
|
199 |
+
$ngg_options['slideFx'] = 'fadeIn'; //The effect
|
200 |
+
$ngg_options['irWidth'] = 320; //Width (in px)
|
201 |
+
$ngg_options['irHeight'] = 240; //Height (in px)
|
202 |
+
$ngg_options['irAutoDim'] = true; //Automatically set the dimensions.
|
203 |
+
$ngg_options['irRotatetime'] = 3; //Duration (in seconds)
|
204 |
+
$ngg_options['irLoop'] = true; //Loop or not
|
205 |
+
$ngg_options['irDrag'] = true; //Enable drag or not
|
206 |
+
$ngg_options['irNavigation'] = false; //Show navigation
|
207 |
+
$ngg_options['irNavigationDots'] = false; //Show navigation dots
|
208 |
+
$ngg_options['irAutoplay'] = true; //Autoplay
|
209 |
+
$ngg_options['irAutoplayHover'] = true; //Pause on hover
|
210 |
+
$ngg_options['irNumber'] = 20; //Number of images when random or latest
|
211 |
+
$ngg_options['irClick'] = true; //Go to next on click.
|
212 |
+
|
213 |
+
// CSS Style
|
214 |
+
$ngg_options['activateCSS'] = true; // activate the CSS file
|
215 |
+
$ngg_options['CSSfile'] = NGGALLERY_ABSPATH . 'css/nggallery.css'; // set default css filename
|
216 |
+
|
217 |
+
// special overrides for WPMU
|
218 |
+
if ( is_multisite() ) {
|
219 |
+
// get the site options
|
220 |
+
$ngg_wpmu_options = get_site_option( 'ngg_options' );
|
221 |
+
|
222 |
+
// get the default value during first installation
|
223 |
+
if ( ! is_array( $ngg_wpmu_options ) ) {
|
224 |
+
$ngg_wpmu_options['gallerypath'] = 'wp-content/blogs.dir/%BLOG_ID%/files/';
|
225 |
+
$ngg_wpmu_options['wpmuCSSfile'] = 'nggallery.css';
|
226 |
+
$ngg_wpmu_options['silentUpdate'] = false;
|
227 |
+
update_site_option( 'ngg_options', $ngg_wpmu_options );
|
228 |
+
}
|
229 |
+
|
230 |
+
$ngg_options['gallerypath'] = str_replace( "%BLOG_ID%", $blog_id, $ngg_wpmu_options['gallerypath'] );
|
231 |
+
$ngg_options['CSSfile'] = $ngg_wpmu_options['wpmuCSSfile'];
|
232 |
+
}
|
233 |
+
|
234 |
+
update_option( 'ngg_options', $ngg_options );
|
235 |
+
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* Deregister a capability from all classic roles
|
240 |
+
*
|
241 |
+
* @access internal
|
242 |
+
*
|
243 |
+
* @param string $capability name of the capability which should be deregister
|
244 |
+
*
|
245 |
+
* @return void
|
246 |
+
*/
|
247 |
+
private static function ngg_remove_capability( $capability ) {
|
248 |
+
// this function remove the $capability only from the classic roles
|
249 |
+
$check_order = array( "subscriber", "contributor", "author", "editor", "administrator" );
|
250 |
+
|
251 |
+
foreach ( $check_order as $role ) {
|
252 |
+
|
253 |
+
$role = get_role( $role );
|
254 |
+
$role->remove_cap( $capability );
|
255 |
+
}
|
256 |
+
|
257 |
+
}
|
258 |
+
|
259 |
+
/**
|
260 |
+
* Uninstall all tables, settings and capabilities.
|
261 |
+
*
|
262 |
+
* This function is called during the uninstall hook and from the setup page.
|
263 |
+
*/
|
264 |
+
public static function uninstall() {
|
265 |
+
global $wpdb;
|
266 |
+
|
267 |
+
//First remove all tables.
|
268 |
+
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}ngg_pictures" );
|
269 |
+
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}ngg_gallery" );
|
270 |
+
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}ngg_album" );
|
271 |
+
|
272 |
+
//Then remove all options.
|
273 |
+
delete_option( 'ngg_options' );
|
274 |
+
delete_option( 'ngg_db_version' );
|
275 |
+
delete_option( 'ngg_update_exists' );
|
276 |
+
delete_option( 'ngg_next_update' );
|
277 |
+
|
278 |
+
//As last item, we remove all capabilities.
|
279 |
+
NGG_Installer::ngg_remove_capability( "NextGEN Gallery overview" );
|
280 |
+
NGG_Installer::ngg_remove_capability( "NextGEN Use TinyMCE" );
|
281 |
+
NGG_Installer::ngg_remove_capability( "NextGEN Upload images" );
|
282 |
+
NGG_Installer::ngg_remove_capability( "NextGEN Manage gallery" );
|
283 |
+
NGG_Installer::ngg_remove_capability( "NextGEN Edit album" );
|
284 |
+
NGG_Installer::ngg_remove_capability( "NextGEN Change style" );
|
285 |
+
NGG_Installer::ngg_remove_capability( "NextGEN Change options" );
|
286 |
+
}
|
287 |
+
|
288 |
+
}
|
admin/{settings.php → class-ngg-options.php}
RENAMED
@@ -1,136 +1,37 @@
|
|
1 |
<?php
|
2 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
3 |
|
4 |
-
|
5 |
-
* Rebuild slugs for albums, galleries and images via AJAX request
|
6 |
-
* 20150124 FZSM: A class only for one method (and is not the constructor) needs to be improved.
|
7 |
-
* 20150124 FZSM: suggested rule: One file, one class...
|
8 |
-
* 20150124: function called statically when is not...
|
9 |
-
* @sine 1.7.0
|
10 |
-
* @access internal
|
11 |
-
*/
|
12 |
-
class ngg_rebuild_unique_slugs {
|
13 |
-
|
14 |
-
function start_rebuild() {
|
15 |
-
global $wpdb;
|
16 |
-
|
17 |
-
$total = array();
|
18 |
-
// get the total number of images
|
19 |
-
$total['images'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures") );
|
20 |
-
$total['gallery'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggallery") );
|
21 |
-
$total['album'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggalbum") );
|
22 |
-
|
23 |
-
$messages = array(
|
24 |
-
'images' => __( 'Rebuild image structure : %s / %s images', 'nggallery' ),
|
25 |
-
'gallery' => __( 'Rebuild gallery structure : %s / %s galleries', 'nggallery' ),
|
26 |
-
'album' => __( 'Rebuild album structure : %s / %s albums', 'nggallery' ),
|
27 |
-
);
|
28 |
-
|
29 |
-
foreach ( array_keys( $messages ) as $key ) {
|
30 |
-
|
31 |
-
$message = sprintf( $messages[ $key ] ,
|
32 |
-
"<span class='ngg-count-current'>0</span>",
|
33 |
-
"<span class='ngg-count-total'>" . $total[ $key ] . "</span>"
|
34 |
-
);
|
35 |
-
|
36 |
-
echo "<div class='$key updated'><p class='ngg'>$message</p></div>";
|
37 |
-
}
|
38 |
|
39 |
-
$ajax_url = add_query_arg( 'action', 'ngg_rebuild_unique_slugs', admin_url( 'admin-ajax.php' ) );
|
40 |
-
?>
|
41 |
-
<script type="text/javascript">
|
42 |
-
jQuery(document).ready(function($) {
|
43 |
-
var ajax_url = '<?php echo $ajax_url; ?>',
|
44 |
-
_action = 'images',
|
45 |
-
images = <?php echo $total['images']; ?>,
|
46 |
-
gallery = <?php echo $total['gallery']; ?>,
|
47 |
-
album = <?php echo $total['album']; ?>,
|
48 |
-
total = 0,
|
49 |
-
offset = 0,
|
50 |
-
count = 50;
|
51 |
-
|
52 |
-
var $display = $('.ngg-count-current');
|
53 |
-
$('.finished, .gallery, .album').hide();
|
54 |
-
total = images;
|
55 |
-
|
56 |
-
function call_again() {
|
57 |
-
if ( offset > total ) {
|
58 |
-
offset = 0;
|
59 |
-
// 1st run finished
|
60 |
-
if (_action == 'images') {
|
61 |
-
_action = 'gallery';
|
62 |
-
total = gallery;
|
63 |
-
$('.images, .gallery').toggle();
|
64 |
-
$display.html(offset);
|
65 |
-
call_again();
|
66 |
-
return;
|
67 |
-
}
|
68 |
-
// 2nd run finished
|
69 |
-
if (_action == 'gallery') {
|
70 |
-
_action = 'album';
|
71 |
-
total = album;
|
72 |
-
$('.gallery, .album').toggle();
|
73 |
-
$display.html(offset);
|
74 |
-
call_again();
|
75 |
-
return;
|
76 |
-
}
|
77 |
-
// 3rd run finished, exit now
|
78 |
-
if (_action == 'album') {
|
79 |
-
$('.ngg')
|
80 |
-
.html('<?php esc_html_e( 'Done.', 'nggallery' ); ?>')
|
81 |
-
.parent('div').hide();
|
82 |
-
$('.finished').show();
|
83 |
-
return;
|
84 |
-
}
|
85 |
-
}
|
86 |
-
|
87 |
-
$.post(ajax_url, {'_action': _action, 'offset': offset}, function(response) {
|
88 |
-
$display.html(offset);
|
89 |
-
|
90 |
-
offset += count;
|
91 |
-
call_again();
|
92 |
-
});
|
93 |
-
}
|
94 |
-
|
95 |
-
call_again();
|
96 |
-
});
|
97 |
-
</script>
|
98 |
-
<?php
|
99 |
-
}
|
100 |
-
}
|
101 |
-
|
102 |
-
//20150124 FZSM: Suggested rule: no class should call a spaghuetti code directly...
|
103 |
/**
|
104 |
-
* Class
|
|
|
|
|
|
|
|
|
|
|
105 |
*/
|
106 |
-
class
|
107 |
-
|
108 |
-
public function __construct() {
|
109 |
-
|
110 |
-
// same as $_SERVER['REQUEST_URI'], but should work under IIS 6.0
|
111 |
-
$this->filepath = admin_url() . 'admin.php?page=' . $_GET['page'];
|
112 |
-
|
113 |
-
//Look for POST updates
|
114 |
-
if ( !empty($_POST) ) {
|
115 |
-
$this->processor();
|
116 |
-
}
|
117 |
-
}
|
118 |
|
119 |
/**
|
120 |
* Save/Load options and add a new hook for plugins
|
121 |
*/
|
122 |
-
|
|
|
|
|
123 |
|
124 |
-
|
125 |
|
126 |
-
$old_state = $
|
127 |
-
$old_slug = $
|
128 |
|
129 |
if ( isset($_POST['updateoption']) ) {
|
130 |
check_admin_referer('ngg_settings');
|
131 |
// get the hidden option fields, taken from WP core
|
132 |
-
if ( $_POST['page_options'] )
|
133 |
-
$options = explode(',', stripslashes($_POST['page_options']));
|
|
|
|
|
|
|
134 |
|
135 |
if ($options) {
|
136 |
foreach ($options as $option) {
|
@@ -147,25 +48,25 @@ class nggOptions {
|
|
147 |
}
|
148 |
}
|
149 |
|
150 |
-
$
|
151 |
}
|
152 |
|
153 |
// do not allow a empty string
|
154 |
-
if ( empty ( $
|
155 |
-
$
|
156 |
|
157 |
// the path should always end with a slash
|
158 |
-
$
|
159 |
-
$
|
160 |
|
161 |
// the custom sortorder must be ascending
|
162 |
-
$
|
163 |
}
|
164 |
// Save options
|
165 |
-
update_option('ngg_options', $
|
166 |
|
167 |
// Flush Rewrite rules
|
168 |
-
if ( $old_state != $
|
169 |
$nggRewrite->flush();
|
170 |
|
171 |
nggGallery::show_message(__('Settings updated successfully','nggallery'));
|
@@ -174,7 +75,7 @@ class nggOptions {
|
|
174 |
if ( isset($_POST['clearcache']) ) {
|
175 |
check_admin_referer('ngg_settings');
|
176 |
|
177 |
-
$path = WINABSPATH . $
|
178 |
|
179 |
if (is_dir($path))
|
180 |
if ($handle = opendir($path)) {
|
@@ -191,7 +92,7 @@ class nggOptions {
|
|
191 |
|
192 |
if ( isset($_POST['createslugs']) ) {
|
193 |
check_admin_referer('ngg_settings');
|
194 |
-
|
195 |
}
|
196 |
|
197 |
do_action( 'ngg_update_options_page' );
|
@@ -202,10 +103,13 @@ class nggOptions {
|
|
202 |
* Render the page content
|
203 |
* 20150124:FZSM: there should be a cleaner way to handle this, instead making dynamic functions and actions.
|
204 |
*/
|
205 |
-
public function
|
|
|
|
|
206 |
|
207 |
// get list of tabs
|
208 |
$tabs = $this->get_tabs();
|
|
|
209 |
|
210 |
?>
|
211 |
<div class="wrap">
|
@@ -223,7 +127,7 @@ class nggOptions {
|
|
223 |
echo "\n\t<div id='$tab_key'>\n";
|
224 |
// Looks for the internal class function, otherwise enable a hook for plugins
|
225 |
if ( method_exists( $this, "tab_$tab_key" ))
|
226 |
-
call_user_func( array( $this , "tab_$tab_key") );
|
227 |
else
|
228 |
do_action( 'ngg_tab_content_' . $tab_key );
|
229 |
echo "\n\t</div>";
|
@@ -232,11 +136,14 @@ class nggOptions {
|
|
232 |
</div>
|
233 |
</div>
|
234 |
<?php
|
235 |
-
$this->
|
236 |
|
237 |
}
|
238 |
|
239 |
-
|
|
|
|
|
|
|
240 |
?>
|
241 |
<script type="text/javascript">
|
242 |
function insertcode(value) {
|
@@ -315,32 +222,31 @@ class nggOptions {
|
|
315 |
/**
|
316 |
* Show the general options.
|
317 |
*/
|
318 |
-
private function tab_general() {
|
319 |
-
global $ngg;
|
320 |
?>
|
321 |
<h3><?php _e( 'General settings', 'nggallery' ); ?></h3>
|
322 |
-
<form name="generaloptions" method="post" action="<?php echo $this->
|
323 |
<?php wp_nonce_field('ngg_settings') ?>
|
324 |
<input type="hidden" name="page_options" value="gallerypath,silentUpgrade,deleteImg,useMediaRSS,usePicLens,usePermalinks,permalinkSlug,graphicLibrary,imageMagickDir,activateTags,appendType,maxImages" />
|
325 |
<table class="form-table ngg-options">
|
326 |
<tr>
|
327 |
<th><label for="gallerypath"><?php _e('Gallery path','nggallery'); ?></label></th>
|
328 |
<td>
|
329 |
-
<input <?php $this->readonly(is_multisite()); ?> type="text" class="regular-text code" name="gallerypath" id="gallerypath" value="<?php echo $
|
330 |
<p class="description"><?php esc_html_e('This is the default path for all galleries','nggallery') ?></p>
|
331 |
</td>
|
332 |
</tr>
|
333 |
<tr>
|
334 |
<th><?php _e('Silent database upgrade','nggallery'); ?></th>
|
335 |
<td>
|
336 |
-
<input <?php disabled(is_multisite()); ?> type="checkbox" name="silentUpgrade" id="silentUpgrade" value="true" <?php checked( $
|
337 |
<label for="silentUpgrade"><?php _e('Update the database without notice.','nggallery') ?></label>
|
338 |
</td>
|
339 |
</tr>
|
340 |
<tr>
|
341 |
<th><?php _e('Image files','nggallery'); ?></th>
|
342 |
<td>
|
343 |
-
<input <?php disabled(is_multisite()); ?> type="checkbox" name="deleteImg" id="deleteImg" value="true" <?php checked( $
|
344 |
<label for="deleteImg">
|
345 |
<?php _e("Delete files when removing a gallery from the database",'nggallery'); ?>
|
346 |
</label>
|
@@ -351,31 +257,31 @@ class nggOptions {
|
|
351 |
<td>
|
352 |
<fieldset>
|
353 |
<label>
|
354 |
-
<input name="graphicLibrary" type="radio" value="gd" <?php checked('gd', $
|
355 |
<?php _e('GD Library', 'nggallery');?>
|
356 |
</label><br>
|
357 |
<label>
|
358 |
-
<input name="graphicLibrary" type="radio" value="im" <?php checked('im', $
|
359 |
<?php _e('ImageMagick (Experimental)', 'nggallery'); ?>
|
360 |
</label>
|
361 |
</fieldset>
|
362 |
<label>
|
363 |
<?php _e('Path to the ImageMagick library:', 'nggallery'); ?>
|
364 |
-
<input <?php $this->readonly(is_multisite()); ?> type="text" class="regular-text code" name="imageMagickDir" value="<?php echo $
|
365 |
</label>
|
366 |
</td>
|
367 |
</tr>
|
368 |
<tr>
|
369 |
<th><?php _e('Media RSS feed','nggallery'); ?></th>
|
370 |
<td>
|
371 |
-
<input type="checkbox" name="useMediaRSS" id="useMediaRSS" value="true" <?php checked( $
|
372 |
<label for="useMediaRSS"><?php esc_html_e('Add a RSS feed to you blog header. Useful for CoolIris/PicLens','nggallery') ?></label>
|
373 |
</td>
|
374 |
</tr>
|
375 |
<tr>
|
376 |
<th><?php _e('PicLens/CoolIris','nggallery'); ?> (<a href="http://www.cooliris.com">CoolIris</a>)</th>
|
377 |
<td>
|
378 |
-
<input type="checkbox" id="usePicLens" name="usePicLens" value="true" <?php checked( $
|
379 |
<label for="usePicLens"><?php _e('Include support for PicLens and CoolIris','nggallery'); ?></label>
|
380 |
<p class="description"><?php _e('When activated, JavaScript is added to your site footer. Make sure that wp_footer is called in your theme.','nggallery') ?></p>
|
381 |
</td>
|
@@ -386,14 +292,16 @@ class nggOptions {
|
|
386 |
<tr>
|
387 |
<th><?php _e('Use permalinks','nggallery'); ?></th>
|
388 |
<td>
|
389 |
-
<input type="checkbox" name="usePermalinks" id="usePermalinks" value="true" <?php checked( $
|
390 |
<label for="usePermalinks"><?php _e('Adds a static link to all images','nggallery'); ?></label>
|
391 |
<p class="description"><?php _e('When activating this option, you need to update your permalink structure once','nggallery'); ?></p>
|
392 |
</td>
|
393 |
</tr>
|
394 |
<tr>
|
395 |
<th><label for="permalinkSlug"><?php _e('Gallery slug:','nggallery'); ?></label></th>
|
396 |
-
<td
|
|
|
|
|
397 |
</tr>
|
398 |
<tr>
|
399 |
<th><label for="createslugs"><?php _e('Recreate URLs','nggallery'); ?></label></th>
|
@@ -408,7 +316,7 @@ class nggOptions {
|
|
408 |
<tr>
|
409 |
<th><?php _e('Add related images','nggallery'); ?></th>
|
410 |
<td>
|
411 |
-
<input name="activateTags" id="activateTags" type="checkbox" value="true" <?php checked( $
|
412 |
<label for="activateTags"><?php _e('This will add related images to every post','nggallery'); ?></label>
|
413 |
</td>
|
414 |
</tr>
|
@@ -417,12 +325,12 @@ class nggOptions {
|
|
417 |
<td>
|
418 |
<fieldset>
|
419 |
<label>
|
420 |
-
<input name="appendType" type="radio" value="category" <?php checked('category', $
|
421 |
<?php _e('Categories', 'nggallery') ;?>
|
422 |
</label>
|
423 |
<br>
|
424 |
<label>
|
425 |
-
<input name="appendType" type="radio" value="tags" <?php checked('tags', $
|
426 |
<?php _e('Tags', 'nggallery') ;?>
|
427 |
</label>
|
428 |
</fieldset>
|
@@ -431,7 +339,7 @@ class nggOptions {
|
|
431 |
<tr>
|
432 |
<th><label for="maxImages"><?php _e('Max. number of images','nggallery'); ?></label></th>
|
433 |
<td>
|
434 |
-
<input name="maxImages" id="maxImages" type="number" step="1" min="1" value="<?php echo $
|
435 |
<p class="description"><?php _e('0 will show all images','nggallery'); ?></p>
|
436 |
</td>
|
437 |
</tr>
|
@@ -444,11 +352,10 @@ class nggOptions {
|
|
444 |
/**
|
445 |
* Show the image and thumbnail related options.
|
446 |
*/
|
447 |
-
private function tab_images() {
|
448 |
-
global $ngg;
|
449 |
?>
|
450 |
<h3><?php _e('Image settings','nggallery'); ?></h3>
|
451 |
-
<form name="imagesettings" method="POST" action="<?php echo $this->
|
452 |
<?php wp_nonce_field('ngg_settings') ?>
|
453 |
<input type="hidden" name="page_options" value="imgResize,imgWidth,imgHeight,imgQuality,imgBackup,imgAutoResize,thumbwidth,thumbheight,thumbfix,thumbquality">
|
454 |
<table class="form-table ngg-options">
|
@@ -456,21 +363,21 @@ class nggOptions {
|
|
456 |
<th><?php _e('Resize images','nggallery') ?></th>
|
457 |
<td>
|
458 |
<label for="imgWidth"><?php _e('Width','nggallery') ?></label>
|
459 |
-
<input type="number" step="1" min="0" class="small-text" name="imgWidth" id="imgWidth" value="<?php echo $
|
460 |
<label for="imgHeight"><?php _e('Height','nggallery') ?></label>
|
461 |
-
<input type="number" step="1" min="0" class="small-text" name="imgHeight" id="imgHeight" value="<?php echo $
|
462 |
<p class="description"><?php _e('Width and height (in pixels). NextCellent Gallery will keep the ratio size.','nggallery') ?></p>
|
463 |
</td>
|
464 |
</tr>
|
465 |
<tr>
|
466 |
<th><label for="imgQuality"><?php _e('Image quality','nggallery'); ?></label></th>
|
467 |
-
<td><input type="number" step="1" min="0" max="100" class="small-text" name="imgQuality" id="imgQuality" value="<?php echo $
|
468 |
</tr>
|
469 |
<tr>
|
470 |
<th><?php _e('Backup original','nggallery'); ?></th>
|
471 |
<td>
|
472 |
<label>
|
473 |
-
<input type="checkbox" name="imgBackup" value="true" <?php checked( $
|
474 |
<?php _e('Create a backup for the resized images','nggallery'); ?>
|
475 |
</label>
|
476 |
</td>
|
@@ -479,7 +386,7 @@ class nggOptions {
|
|
479 |
<th><?php _e('Automatically resize','nggallery'); ?></th>
|
480 |
<td>
|
481 |
<label>
|
482 |
-
<input type="checkbox" name="imgAutoResize" value="1" <?php checked( $
|
483 |
<?php _e('Automatically resize images on upload.','nggallery') ?>
|
484 |
</label>
|
485 |
</td>
|
@@ -492,22 +399,22 @@ class nggOptions {
|
|
492 |
<th><?php _e('Thumbnail size','nggallery'); ?></th>
|
493 |
<td>
|
494 |
<label for="thumbwidth"><?php _e('Width','nggallery') ?></label>
|
495 |
-
<input type="number" step="1" min="0" class="small-text" name="thumbwidth" id="thumbwidth" value="<?php echo $
|
496 |
<label for="thumbheight"><?php _e('Height','nggallery') ?></label>
|
497 |
-
<input type="number" step="1" min="0" class="small-text" name="thumbheight" id="thumbheight" value="<?php echo $
|
498 |
<p class="description"><?php _e('These values are maximum values.','nggallery'); ?></p>
|
499 |
</td>
|
500 |
</tr>
|
501 |
<tr>
|
502 |
<th><?php _e('Fixed size','nggallery'); ?></th>
|
503 |
<td>
|
504 |
-
<input type="checkbox" name="thumbfix" id="thumbfix" value="true" <?php checked( $
|
505 |
<label for="thumbfix"><?php _e('Ignore the aspect ratio, so no portrait thumbnails.','nggallery') ?></label>
|
506 |
</td>
|
507 |
</tr>
|
508 |
<tr>
|
509 |
<th><label for="thumbquality"><?php _e('Thumbnail quality','nggallery'); ?></label></th>
|
510 |
-
<td><input type="number" step="1" min="0" max="100" class="small-text" name="thumbquality" id="thumbquality" value="<?php echo $
|
511 |
</tr>
|
512 |
</table>
|
513 |
<h3><?php _e('Single picture','nggallery') ?></h3>
|
@@ -526,25 +433,24 @@ class nggOptions {
|
|
526 |
/**
|
527 |
* Show gallery related settings
|
528 |
*/
|
529 |
-
private function tab_gallery() {
|
530 |
-
global $ngg;
|
531 |
?>
|
532 |
<h3><?php _e('Gallery settings','nggallery'); ?></h3>
|
533 |
-
<form name="galleryform" method="POST" action="<?php echo $this->
|
534 |
<?php wp_nonce_field('ngg_settings') ?>
|
535 |
<input type="hidden" name="page_options" value="galNoPages,galImages,galColumns,galShowSlide,galTextSlide,galTextGallery,galShowOrder,galImgBrowser,galSort,galSortDir,galHiddenImg,galAjaxNav">
|
536 |
<table class="form-table ngg-options">
|
537 |
<tr>
|
538 |
<th><?php _e('Inline gallery','nggallery') ?></th>
|
539 |
<td>
|
540 |
-
<input name="galNoPages" id="galNoPages" type="checkbox" value="true" <?php checked( $
|
541 |
<label for="galNoPages"><?php _e('Galleries will not be shown on a subpage, but on the same page.','nggallery') ?></label>
|
542 |
</td>
|
543 |
</tr>
|
544 |
<tr>
|
545 |
<th><label for="galImages"><?php _e('Images per page','nggallery'); ?></label></th>
|
546 |
<td>
|
547 |
-
<input type="number" step="1" min="0" class="small-text" name="galImages" id="galImages" value="<?php echo $
|
548 |
<?php _e( 'images', 'nggallery'); ?>
|
549 |
<p class="description"><?php _e('0 will disable pagination and show all images on one page.','nggallery') ?></p>
|
550 |
</td>
|
@@ -552,7 +458,7 @@ class nggOptions {
|
|
552 |
<tr>
|
553 |
<th><label for="galColumns"><?php esc_html_e('Columns','nggallery'); ?></label></th>
|
554 |
<td>
|
555 |
-
<input type="number" step="1" min="0" class="small-text" name="galColumns" id="galColumns" value="<?php echo $
|
556 |
<?php _e( 'columns per page', 'nggallery'); ?>
|
557 |
<p class="description"><?php _e('0 will display as much columns as possible. This is normally only required for captions below the images.','nggallery') ?></p>
|
558 |
</td>
|
@@ -561,15 +467,15 @@ class nggOptions {
|
|
561 |
<th><?php _e('Slideshow','nggallery'); ?></th>
|
562 |
<td>
|
563 |
<label>
|
564 |
-
<input name="galShowSlide" type="checkbox" value="true" <?php checked( $
|
565 |
<?php _e('Enable slideshow','nggallery'); ?>
|
566 |
</label>
|
567 |
<br>
|
568 |
<label>
|
569 |
<?php _e('Text to show:','nggallery'); ?>
|
570 |
-
<input type="text" class="regular-text" name="galTextSlide" value="<?php echo $
|
571 |
</label>
|
572 |
-
<input type="text" name="galTextGallery" value="<?php echo $
|
573 |
<p class="description"> <?php _e('This is the text the visitors will have to click to switch between display modes.','nggallery'); ?></p>
|
574 |
</td>
|
575 |
</tr>
|
@@ -578,12 +484,12 @@ class nggOptions {
|
|
578 |
<td>
|
579 |
<fieldset>
|
580 |
<label>
|
581 |
-
<input name="galShowOrder" type="radio" value="gallery" <?php checked('gallery', $
|
582 |
<?php _e('Thumbnails', 'nggallery') ;?>
|
583 |
</label>
|
584 |
<br>
|
585 |
<label>
|
586 |
-
<input name="galShowOrder" type="radio" value="slide" <?php checked('slide', $
|
587 |
<?php _e('Slideshow', 'nggallery') ;?>
|
588 |
</label>
|
589 |
</fieldset>
|
@@ -594,7 +500,7 @@ class nggOptions {
|
|
594 |
<th><?php _e('ImageBrowser','nggallery'); ?></th>
|
595 |
<td>
|
596 |
<label>
|
597 |
-
<input name="galImgBrowser" type="checkbox" value="true" <?php checked( $
|
598 |
<?php _e('Use ImageBrowser instead of another effect.', 'nggallery'); ?>
|
599 |
</label>
|
600 |
</td>
|
@@ -603,7 +509,7 @@ class nggOptions {
|
|
603 |
<th><?php _e('Hidden images','nggallery'); ?></th>
|
604 |
<td>
|
605 |
<label>
|
606 |
-
<input name="galHiddenImg" type="checkbox" value="true" <?php checked( $
|
607 |
<?php _e('Loads all images for the modal window, when pagination is used (like Thickbox, Lightbox etc.).','nggallery'); ?>
|
608 |
</label>
|
609 |
<p class="description"> <?php _e('Note: this increases the page load (possibly a lot)', 'nggallery'); ?>
|
@@ -613,7 +519,7 @@ class nggOptions {
|
|
613 |
<th><?php _e('AJAX pagination','nggallery'); ?></th>
|
614 |
<td>
|
615 |
<label>
|
616 |
-
<input name="galAjaxNav" type="checkbox" value="true" <?php checked( $
|
617 |
<?php _e('Use AJAX pagination to browse images without reloading the page.','nggallery'); ?>
|
618 |
</label>
|
619 |
<p class="description"><?php esc_html_e('Note: works only in combination with the Shutter effect.', 'nggallery'); ?></p>
|
@@ -627,23 +533,23 @@ class nggOptions {
|
|
627 |
<td>
|
628 |
<fieldset>
|
629 |
<label>
|
630 |
-
<input name="galSort" type="radio" value="sortorder" <?php checked('sortorder', $
|
631 |
<?php _e('Custom order', 'nggallery'); ?>
|
632 |
</label><br>
|
633 |
<label>
|
634 |
-
<input name="galSort" type="radio" value="pid" <?php checked('pid', $
|
635 |
<?php _e('Image ID', 'nggallery'); ?>
|
636 |
</label><br>
|
637 |
<label>
|
638 |
-
<input name="galSort" type="radio" value="filename" <?php checked('filename', $
|
639 |
<?php _e('File name', 'nggallery') ;?>
|
640 |
</label><br>
|
641 |
<label>
|
642 |
-
<input name="galSort" type="radio" value="alttext" <?php checked('alttext', $
|
643 |
<?php _e('Alt / Title text', 'nggallery') ;?>
|
644 |
</label><br>
|
645 |
<label>
|
646 |
-
<input name="galSort" type="radio" value="imagedate" <?php checked('imagedate', $
|
647 |
<?php _e('Date / Time', 'nggallery') ;?>
|
648 |
</label>
|
649 |
</fieldset>
|
@@ -654,11 +560,11 @@ class nggOptions {
|
|
654 |
<th><?php _e('Sort direction','nggallery') ?></th>
|
655 |
<td>
|
656 |
<label>
|
657 |
-
<input name="galSortDir" type="radio" value="ASC" <?php checked('ASC', $
|
658 |
<?php _e('Ascending', 'nggallery') ;?>
|
659 |
</label><br>
|
660 |
<label>
|
661 |
-
<input name="galSortDir" type="radio" value="DESC" <?php checked('DESC', $
|
662 |
<?php _e('Descending', 'nggallery') ;?>
|
663 |
</label>
|
664 |
</td>
|
@@ -672,8 +578,7 @@ class nggOptions {
|
|
672 |
/**
|
673 |
* Show the effect related settings.
|
674 |
*/
|
675 |
-
private function tab_effects() {
|
676 |
-
global $ngg;
|
677 |
?>
|
678 |
<h3><?php _e('Effects','nggallery'); ?></h3>
|
679 |
<p>
|
@@ -685,7 +590,7 @@ class nggOptions {
|
|
685 |
<li><strong>%IMG_WIDTH%</strong> - <?php _e('The width of the image.', 'nggallery'); ?></li>
|
686 |
<li><strong>%IMG_HEIGHT%</strong> - <?php _e('The height of the image.', 'nggallery'); ?></li>
|
687 |
</ul>
|
688 |
-
<form name="effectsform" method="POST" action="<?php echo $this->filepath.'#effects'; ?>">
|
689 |
<?php wp_nonce_field('ngg_settings') ?>
|
690 |
<input type="hidden" name="page_options" value="thumbEffect,thumbCode">
|
691 |
<table class="form-table ngg-options">
|
@@ -693,19 +598,23 @@ class nggOptions {
|
|
693 |
<th><label for="thumbEffect"><?php _e('JavaScript Thumbnail effect','nggallery') ?></label></th>
|
694 |
<td>
|
695 |
<select size="1" id="thumbEffect" name="thumbEffect" onchange="insertcode(this.value)">
|
696 |
-
<option value="none" <?php selected('none', $
|
697 |
-
<option value="thickbox" <?php selected('thickbox', $
|
698 |
-
<option value="lightbox" <?php selected('lightbox', $
|
699 |
-
<option value="highslide" <?php selected('highslide', $
|
700 |
-
<option value="shutter" <?php selected('shutter', $
|
701 |
-
<option value="photoSwipe" <?php selected('photoSwipe', $
|
702 |
-
<option value="custom" <?php selected('custom', $
|
703 |
</select>
|
704 |
</td>
|
705 |
</tr>
|
706 |
<tr>
|
707 |
<th><label for="thumbCode"><?php _e('Link Code line','nggallery'); ?></label></th>
|
708 |
-
<td
|
|
|
|
|
|
|
|
|
709 |
</tr>
|
710 |
</table>
|
711 |
<?php submit_button( __('Save Changes'), 'primary', 'updateoption' ) ?>
|
@@ -717,9 +626,7 @@ class nggOptions {
|
|
717 |
/**
|
718 |
* Show watermark related settings.
|
719 |
*/
|
720 |
-
private function tab_watermark() {
|
721 |
-
|
722 |
-
global $ngg;
|
723 |
|
724 |
// take the first image as sample
|
725 |
$image_array = nggdb::find_last_images(0, 1);
|
@@ -729,7 +636,7 @@ class nggOptions {
|
|
729 |
?>
|
730 |
<h3><?php _e('Watermark','nggallery'); ?></h3>
|
731 |
<p><?php _e('Please note : you can only activate the watermark under -> Manage Galleries. This action cannot be undone.', 'nggallery') ?></p>
|
732 |
-
<form name="watermarkform" method="POST" action="<?php echo $this->
|
733 |
<?php wp_nonce_field('ngg_settings') ?>
|
734 |
<input type="hidden" name="page_options" value="wmPos,wmXpos,wmYpos,wmType,wmPath,wmFont,wmSize,wmColor,wmText,wmOpaque" />
|
735 |
<div id="wm-preview">
|
@@ -750,19 +657,19 @@ class nggOptions {
|
|
750 |
<strong><?php _e('Position','nggallery') ?></strong>
|
751 |
<table>
|
752 |
<tr>
|
753 |
-
<td><input type="radio" name="wmPos" value="topLeft" <?php checked('topLeft', $
|
754 |
-
<td><input type="radio" name="wmPos" value="topCenter" <?php checked('topCenter', $
|
755 |
-
<td><input type="radio" name="wmPos" value="topRight" <?php checked('topRight', $
|
756 |
</tr>
|
757 |
<tr>
|
758 |
-
<td><input type="radio" name="wmPos" value="midLeft" <?php checked('midLeft', $
|
759 |
-
<td><input type="radio" name="wmPos" value="midCenter" <?php checked('midCenter', $
|
760 |
-
<td><input type="radio" name="wmPos" value="midRight" <?php checked('midRight', $
|
761 |
</tr>
|
762 |
<tr>
|
763 |
-
<td><input type="radio" name="wmPos" value="botLeft" <?php checked('botLeft', $
|
764 |
-
<td><input type="radio" name="wmPos" value="botCenter" <?php checked('botCenter', $
|
765 |
-
<td><input type="radio" name="wmPos" value="botRight" <?php checked('botRight', $
|
766 |
</tr>
|
767 |
</table>
|
768 |
</td>
|
@@ -771,25 +678,25 @@ class nggOptions {
|
|
771 |
<table border="0">
|
772 |
<tr>
|
773 |
<td><label for="wmXpos">x:</label></td>
|
774 |
-
<td><input type="number" step="1" min="0" class="small-text" name="wmXpos" id="wmXpos" value="<?php echo $
|
775 |
</tr>
|
776 |
<tr>
|
777 |
<td><label for="wmYpos">y:</label></td>
|
778 |
-
<td><input type="number" step="1" min="0" class="small-text" name="wmYpos" id="wmYpos" value="<?php echo $
|
779 |
</tr>
|
780 |
</table>
|
781 |
</td>
|
782 |
</tr>
|
783 |
</table>
|
784 |
</div>
|
785 |
-
<h3><label><input type="radio" name="wmType" value="image" <?php checked('image', $
|
786 |
<table class="wm-table form-table">
|
787 |
<tr>
|
788 |
<th><label for="wmPath"><?php _e('URL to file','nggallery'); ?></label></th>
|
789 |
-
<td><input type="text" class="regular-text code" name="wmPath" id="wmPath" value="<?php echo $
|
790 |
</tr>
|
791 |
</table>
|
792 |
-
<h3><label><input type="radio" name="wmType" value="text" <?php checked('text', $
|
793 |
<table class="wm-table form-table">
|
794 |
<tr>
|
795 |
<th><?php _e('Font','nggallery') ?></th>
|
@@ -798,7 +705,7 @@ class nggOptions {
|
|
798 |
<?php
|
799 |
$fontlist = $this->get_fonts();
|
800 |
foreach ( $fontlist as $fontfile ) {
|
801 |
-
echo "\n".'<option value="'.$fontfile.'" '. selected($fontfile, $
|
802 |
}
|
803 |
?>
|
804 |
</select><br>
|
@@ -813,19 +720,19 @@ class nggOptions {
|
|
813 |
</tr>
|
814 |
<tr>
|
815 |
<th><label for="wmSize"><?php _e('Size','nggallery'); ?></label></th>
|
816 |
-
<td><input type="number" step="1" min="0" class="small-text" name="wmSize" id="wmSize" value="<?php echo $
|
817 |
</tr>
|
818 |
<tr>
|
819 |
<th><label for="wmColor"><?php _e('Color','nggallery'); ?></label></th>
|
820 |
-
<td><input class="picker" type="text" id="wmColor" name="wmColor" value="<?php echo $
|
821 |
</tr>
|
822 |
<tr>
|
823 |
<th><label for="wmText"><?php _e('Text','nggallery'); ?></label></th>
|
824 |
-
<td><textarea name="wmText" id="wmText" cols="50" rows="5" class="normal-text"><?php echo $
|
825 |
</tr>
|
826 |
<tr>
|
827 |
<th><label for="wmOpaque"><?php _e('Opaque','nggallery'); ?></label></th>
|
828 |
-
<td><input type="number" step="1" min="0" max="100" class="small-text" name="wmOpaque" id="wmOpaque" value="<?php echo $
|
829 |
</tr>
|
830 |
</table>
|
831 |
<div class="clear"></div>
|
@@ -874,11 +781,9 @@ class nggOptions {
|
|
874 |
/**
|
875 |
* Show slideshow related settings
|
876 |
*/
|
877 |
-
private function tab_slideshow() {
|
878 |
-
|
879 |
-
global $ngg;
|
880 |
?>
|
881 |
-
<form name="player_options" method="POST" action="<?php echo $this->
|
882 |
<?php wp_nonce_field('ngg_settings'); ?>
|
883 |
<input type="hidden" name="page_options" value="irAutoDim,slideFx,irWidth,irHeight,irRotatetime,irLoop,irDrag,irNavigation,irNavigationDots,irAutoplay,irAutoplayTimeout,irAutoplayHover,irNumber,irClick" />
|
884 |
<h3><?php _e('Slideshow','nggallery'); ?></h3>
|
@@ -886,7 +791,7 @@ class nggOptions {
|
|
886 |
<tr>
|
887 |
<th><?php _e('Fit to space','nggallery'); ?></th>
|
888 |
<td>
|
889 |
-
<input type="checkbox" name="irAutoDim" id="irAutoDim" value="true" <?php checked( $
|
890 |
<label for="irAutoDim"><?php _e( "Let the slideshow fit in the available space.", 'nggallery'); ?></label>
|
891 |
</td>
|
892 |
</tr>
|
@@ -894,9 +799,9 @@ class nggOptions {
|
|
894 |
<th><?php _e('Default size','nggallery'); ?></th>
|
895 |
<td>
|
896 |
<label for="irWidth"><?php _e('Width','nggallery'); ?></label>
|
897 |
-
<input <?php $this->readonly($
|
898 |
<label for="irHeight"><?php _e('Height','nggallery'); ?></label>
|
899 |
-
<input <?php $this->readonly($
|
900 |
</td>
|
901 |
</tr>
|
902 |
<tr>
|
@@ -918,7 +823,7 @@ class nggOptions {
|
|
918 |
);
|
919 |
|
920 |
foreach( $options as $option => $val ) {
|
921 |
-
echo $this->convert_fx_to_optgroup( $val, $option );
|
922 |
}
|
923 |
?>
|
924 |
</select>
|
@@ -929,62 +834,62 @@ class nggOptions {
|
|
929 |
<tr>
|
930 |
<th><?php _e('Loop','nggallery') ?></th>
|
931 |
<td>
|
932 |
-
<input type="checkbox" name="irLoop" id="irLoop" value="true" <?php checked( $
|
933 |
<label for="irLoop"><?php _e( "Infinity loop. Duplicate last and first items to get loop illusion.", 'nggallery'); ?></label>
|
934 |
</td>
|
935 |
</tr>
|
936 |
<tr>
|
937 |
<th><?php _e('Mouse/touch drag','nggallery') ?></th>
|
938 |
<td>
|
939 |
-
<input type="checkbox" name="irDrag" id="irDrag" value="true" <?php checked( $
|
940 |
<label for="irDrag"><?php _e( "Enable dragging with the mouse (or touch).", 'nggallery'); ?></label>
|
941 |
</td>
|
942 |
</tr>
|
943 |
<tr>
|
944 |
<th><?php _e('Previous / Next','nggallery') ?></th>
|
945 |
<td>
|
946 |
-
<input type="checkbox" name="irNavigation" id="irNavigation" value="true" <?php checked( $
|
947 |
<label for="irNavigation"><?php _e( "Show next/previous buttons.", 'nggallery'); ?></label>
|
948 |
</td>
|
949 |
</tr>
|
950 |
<tr>
|
951 |
<th><?php _e('Show dots','nggallery') ?></th>
|
952 |
<td>
|
953 |
-
<input type="checkbox" name="irNavigationDots" id="irNavigationDots" value="true" <?php checked( $
|
954 |
<label for="irNavigationDots"><?php _e( "Show dots for each image.", 'nggallery'); ?></label>
|
955 |
</td>
|
956 |
</tr>
|
957 |
<tr>
|
958 |
<th><?php _e('Autoplay','nggallery') ?></th>
|
959 |
<td>
|
960 |
-
<input type="checkbox" name="irAutoplay" id="irAutoplay" value="true" <?php checked( $
|
961 |
<label for="irAutoplay"><?php _e( "Automatically play the images.", 'nggallery'); ?></label>
|
962 |
</td>
|
963 |
</tr>
|
964 |
<tr>
|
965 |
<th><label for="irRotatetime"><?php _e('Duration','nggallery') ?></label></th>
|
966 |
<td>
|
967 |
-
<input <?php $this->readonly( false, $
|
968 |
<?php _e('sec.', 'nggallery') ;?>
|
969 |
</td>
|
970 |
</tr>
|
971 |
<tr>
|
972 |
<th><?php _e('Pause on hover','nggallery') ?></th>
|
973 |
<td>
|
974 |
-
<input <?php disabled(false, $
|
975 |
<label for="irAutoplayHover"><?php _e( "Pause when hovering over the slideshow.", 'nggallery'); ?></label>
|
976 |
</td>
|
977 |
</tr>
|
978 |
<tr>
|
979 |
<th><?php _e('Click for next','nggallery') ?></th>
|
980 |
<td>
|
981 |
-
<input type="checkbox" name="irClick" id="irClick" value="true" <?php checked( $
|
982 |
<label for="irClick"><?php _e( "Click to go to the next image.", 'nggallery'); ?></label></td>
|
983 |
</tr>
|
984 |
<tr>
|
985 |
<th><?php _e('Number of images','nggallery') ?></th>
|
986 |
<td>
|
987 |
-
<input type="number" step="1" min="1" class="small-text" name="irNumber" id="irNumber" value="<?php echo $
|
988 |
<label for="irNumber"><?php _e('images', 'nggallery') ;?></label>
|
989 |
<p class="description"><?php _e( "Number of images to display when using random or latest.", 'nggallery'); ?></p>
|
990 |
</td>
|
@@ -998,26 +903,26 @@ class nggOptions {
|
|
998 |
/**
|
999 |
* Convert an array of slideshow styles to a html dropdown group.
|
1000 |
*
|
1001 |
-
* @param $data
|
1002 |
-
* @param $title
|
|
|
1003 |
*
|
1004 |
* @return string The output.
|
1005 |
*/
|
1006 |
-
private function convert_fx_to_optgroup( $data, $title = null ) {
|
1007 |
-
|
1008 |
-
global $ngg;
|
1009 |
|
1010 |
-
if ( is_null($title) ) {
|
1011 |
$out = null;
|
1012 |
} else {
|
1013 |
$out = '<optgroup label="' . $title . '">';
|
1014 |
}
|
1015 |
|
1016 |
-
foreach( $data as $option) {
|
1017 |
-
$out .= '<option value="' . $option . '" ' . selected( $option,
|
|
|
1018 |
}
|
1019 |
|
1020 |
-
if ( !is_null( $title ) ) {
|
1021 |
$out .= '</optgroup>';
|
1022 |
}
|
1023 |
|
@@ -1028,11 +933,101 @@ class nggOptions {
|
|
1028 |
* Compare two values and echo readonly if they are.
|
1029 |
*
|
1030 |
* @param mixed $current The current value.
|
1031 |
-
* @param mixed $other
|
1032 |
*/
|
1033 |
private function readonly($current, $other = true) {
|
1034 |
if ( $current == $other ) {
|
1035 |
echo 'readonly="readonly"';
|
1036 |
}
|
1037 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1038 |
}
|
1 |
<?php
|
|
|
2 |
|
3 |
+
include_once('class-ngg-post-admin-page.php');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
/**
|
6 |
+
* Class NGG_Options
|
7 |
+
*
|
8 |
+
* The settings page.
|
9 |
+
*
|
10 |
+
* @todo This page needs to be rewritten using better code and more of the WordPress Settings API.
|
11 |
+
* @todo 20150124 FZSM: Suggested rule: no class should call a spaghuetti code directly...
|
12 |
*/
|
13 |
+
class NGG_Options extends NGG_Post_Admin_Page {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
/**
|
16 |
* Save/Load options and add a new hook for plugins
|
17 |
*/
|
18 |
+
protected function processor() {
|
19 |
+
|
20 |
+
global $nggRewrite;
|
21 |
|
22 |
+
$ngg_options = get_option('ngg_options');
|
23 |
|
24 |
+
$old_state = $ngg_options['usePermalinks'];
|
25 |
+
$old_slug = $ngg_options['permalinkSlug'];
|
26 |
|
27 |
if ( isset($_POST['updateoption']) ) {
|
28 |
check_admin_referer('ngg_settings');
|
29 |
// get the hidden option fields, taken from WP core
|
30 |
+
if ( $_POST['page_options'] ) {
|
31 |
+
$options = explode( ',', stripslashes( $_POST['page_options'] ) );
|
32 |
+
} else {
|
33 |
+
$options = false;
|
34 |
+
}
|
35 |
|
36 |
if ($options) {
|
37 |
foreach ($options as $option) {
|
48 |
}
|
49 |
}
|
50 |
|
51 |
+
$ngg_options[$option] = $value;
|
52 |
}
|
53 |
|
54 |
// do not allow a empty string
|
55 |
+
if ( empty ( $ngg_options['permalinkSlug'] ) )
|
56 |
+
$ngg_options['permalinkSlug'] = 'nggallery';
|
57 |
|
58 |
// the path should always end with a slash
|
59 |
+
$ngg_options['gallerypath'] = trailingslashit($ngg_options['gallerypath']);
|
60 |
+
$ngg_options['imageMagickDir'] = trailingslashit($ngg_options['imageMagickDir']);
|
61 |
|
62 |
// the custom sortorder must be ascending
|
63 |
+
$ngg_options['galSortDir'] = ($ngg_options['galSort'] == 'sortorder') ? 'ASC' : $ngg_options['galSortDir'];
|
64 |
}
|
65 |
// Save options
|
66 |
+
update_option('ngg_options', $ngg_options);
|
67 |
|
68 |
// Flush Rewrite rules
|
69 |
+
if ( $old_state != $ngg_options['usePermalinks'] || $old_slug != $ngg_options['permalinkSlug'] )
|
70 |
$nggRewrite->flush();
|
71 |
|
72 |
nggGallery::show_message(__('Settings updated successfully','nggallery'));
|
75 |
if ( isset($_POST['clearcache']) ) {
|
76 |
check_admin_referer('ngg_settings');
|
77 |
|
78 |
+
$path = WINABSPATH . $ngg_options['gallerypath'] . 'cache/';
|
79 |
|
80 |
if (is_dir($path))
|
81 |
if ($handle = opendir($path)) {
|
92 |
|
93 |
if ( isset($_POST['createslugs']) ) {
|
94 |
check_admin_referer('ngg_settings');
|
95 |
+
$this->rebuild_slugs();
|
96 |
}
|
97 |
|
98 |
do_action( 'ngg_update_options_page' );
|
103 |
* Render the page content
|
104 |
* 20150124:FZSM: there should be a cleaner way to handle this, instead making dynamic functions and actions.
|
105 |
*/
|
106 |
+
public function display() {
|
107 |
+
|
108 |
+
parent::display();
|
109 |
|
110 |
// get list of tabs
|
111 |
$tabs = $this->get_tabs();
|
112 |
+
$options = get_option('ngg_options');
|
113 |
|
114 |
?>
|
115 |
<div class="wrap">
|
127 |
echo "\n\t<div id='$tab_key'>\n";
|
128 |
// Looks for the internal class function, otherwise enable a hook for plugins
|
129 |
if ( method_exists( $this, "tab_$tab_key" ))
|
130 |
+
call_user_func( array( $this , "tab_$tab_key"), $options );
|
131 |
else
|
132 |
do_action( 'ngg_tab_content_' . $tab_key );
|
133 |
echo "\n\t</div>";
|
136 |
</div>
|
137 |
</div>
|
138 |
<?php
|
139 |
+
$this->print_scripts();
|
140 |
|
141 |
}
|
142 |
|
143 |
+
/**
|
144 |
+
* Print the JavaScript.
|
145 |
+
*/
|
146 |
+
private function print_scripts() {
|
147 |
?>
|
148 |
<script type="text/javascript">
|
149 |
function insertcode(value) {
|
222 |
/**
|
223 |
* Show the general options.
|
224 |
*/
|
225 |
+
private function tab_general($options) {
|
|
|
226 |
?>
|
227 |
<h3><?php _e( 'General settings', 'nggallery' ); ?></h3>
|
228 |
+
<form name="generaloptions" method="post" action="<?php echo $this->page; ?>">
|
229 |
<?php wp_nonce_field('ngg_settings') ?>
|
230 |
<input type="hidden" name="page_options" value="gallerypath,silentUpgrade,deleteImg,useMediaRSS,usePicLens,usePermalinks,permalinkSlug,graphicLibrary,imageMagickDir,activateTags,appendType,maxImages" />
|
231 |
<table class="form-table ngg-options">
|
232 |
<tr>
|
233 |
<th><label for="gallerypath"><?php _e('Gallery path','nggallery'); ?></label></th>
|
234 |
<td>
|
235 |
+
<input <?php $this->readonly(is_multisite()); ?> type="text" class="regular-text code" name="gallerypath" id="gallerypath" value="<?php echo $options['gallerypath']; ?>" />
|
236 |
<p class="description"><?php esc_html_e('This is the default path for all galleries','nggallery') ?></p>
|
237 |
</td>
|
238 |
</tr>
|
239 |
<tr>
|
240 |
<th><?php _e('Silent database upgrade','nggallery'); ?></th>
|
241 |
<td>
|
242 |
+
<input <?php disabled(is_multisite()); ?> type="checkbox" name="silentUpgrade" id="silentUpgrade" value="true" <?php checked( $options['silentUpgrade']); ?> />
|
243 |
<label for="silentUpgrade"><?php _e('Update the database without notice.','nggallery') ?></label>
|
244 |
</td>
|
245 |
</tr>
|
246 |
<tr>
|
247 |
<th><?php _e('Image files','nggallery'); ?></th>
|
248 |
<td>
|
249 |
+
<input <?php disabled(is_multisite()); ?> type="checkbox" name="deleteImg" id="deleteImg" value="true" <?php checked( $options['deleteImg']); ?>>
|
250 |
<label for="deleteImg">
|
251 |
<?php _e("Delete files when removing a gallery from the database",'nggallery'); ?>
|
252 |
</label>
|
257 |
<td>
|
258 |
<fieldset>
|
259 |
<label>
|
260 |
+
<input name="graphicLibrary" type="radio" value="gd" <?php checked('gd', $options['graphicLibrary']); ?>>
|
261 |
<?php _e('GD Library', 'nggallery');?>
|
262 |
</label><br>
|
263 |
<label>
|
264 |
+
<input name="graphicLibrary" type="radio" value="im" <?php checked('im', $options['graphicLibrary']); ?>>
|
265 |
<?php _e('ImageMagick (Experimental)', 'nggallery'); ?>
|
266 |
</label>
|
267 |
</fieldset>
|
268 |
<label>
|
269 |
<?php _e('Path to the ImageMagick library:', 'nggallery'); ?>
|
270 |
+
<input <?php $this->readonly(is_multisite()); ?> type="text" class="regular-text code" name="imageMagickDir" value="<?php echo $options['imageMagickDir']; ?>">
|
271 |
</label>
|
272 |
</td>
|
273 |
</tr>
|
274 |
<tr>
|
275 |
<th><?php _e('Media RSS feed','nggallery'); ?></th>
|
276 |
<td>
|
277 |
+
<input type="checkbox" name="useMediaRSS" id="useMediaRSS" value="true" <?php checked( $options['useMediaRSS']); ?>>
|
278 |
<label for="useMediaRSS"><?php esc_html_e('Add a RSS feed to you blog header. Useful for CoolIris/PicLens','nggallery') ?></label>
|
279 |
</td>
|
280 |
</tr>
|
281 |
<tr>
|
282 |
<th><?php _e('PicLens/CoolIris','nggallery'); ?> (<a href="http://www.cooliris.com">CoolIris</a>)</th>
|
283 |
<td>
|
284 |
+
<input type="checkbox" id="usePicLens" name="usePicLens" value="true" <?php checked( $options['usePicLens']); ?>>
|
285 |
<label for="usePicLens"><?php _e('Include support for PicLens and CoolIris','nggallery'); ?></label>
|
286 |
<p class="description"><?php _e('When activated, JavaScript is added to your site footer. Make sure that wp_footer is called in your theme.','nggallery') ?></p>
|
287 |
</td>
|
292 |
<tr>
|
293 |
<th><?php _e('Use permalinks','nggallery'); ?></th>
|
294 |
<td>
|
295 |
+
<input type="checkbox" name="usePermalinks" id="usePermalinks" value="true" <?php checked( $options['usePermalinks']); ?>>
|
296 |
<label for="usePermalinks"><?php _e('Adds a static link to all images','nggallery'); ?></label>
|
297 |
<p class="description"><?php _e('When activating this option, you need to update your permalink structure once','nggallery'); ?></p>
|
298 |
</td>
|
299 |
</tr>
|
300 |
<tr>
|
301 |
<th><label for="permalinkSlug"><?php _e('Gallery slug:','nggallery'); ?></label></th>
|
302 |
+
<td>
|
303 |
+
<input type="text" class="regular-text code" name="permalinkSlug" id="permalinkSlug" value="<?php echo $options['permalinkSlug']; ?>">
|
304 |
+
</td>
|
305 |
</tr>
|
306 |
<tr>
|
307 |
<th><label for="createslugs"><?php _e('Recreate URLs','nggallery'); ?></label></th>
|
316 |
<tr>
|
317 |
<th><?php _e('Add related images','nggallery'); ?></th>
|
318 |
<td>
|
319 |
+
<input name="activateTags" id="activateTags" type="checkbox" value="true" <?php checked( $options['activateTags']); ?>>
|
320 |
<label for="activateTags"><?php _e('This will add related images to every post','nggallery'); ?></label>
|
321 |
</td>
|
322 |
</tr>
|
325 |
<td>
|
326 |
<fieldset>
|
327 |
<label>
|
328 |
+
<input name="appendType" type="radio" value="category" <?php checked('category', $options['appendType']); ?>>
|
329 |
<?php _e('Categories', 'nggallery') ;?>
|
330 |
</label>
|
331 |
<br>
|
332 |
<label>
|
333 |
+
<input name="appendType" type="radio" value="tags" <?php checked('tags', $options['appendType']); ?>>
|
334 |
<?php _e('Tags', 'nggallery') ;?>
|
335 |
</label>
|
336 |
</fieldset>
|
339 |
<tr>
|
340 |
<th><label for="maxImages"><?php _e('Max. number of images','nggallery'); ?></label></th>
|
341 |
<td>
|
342 |
+
<input name="maxImages" id="maxImages" type="number" step="1" min="1" value="<?php echo $options['maxImages']; ?>" class="small-text">
|
343 |
<p class="description"><?php _e('0 will show all images','nggallery'); ?></p>
|
344 |
</td>
|
345 |
</tr>
|
352 |
/**
|
353 |
* Show the image and thumbnail related options.
|
354 |
*/
|
355 |
+
private function tab_images($options) {
|
|
|
356 |
?>
|
357 |
<h3><?php _e('Image settings','nggallery'); ?></h3>
|
358 |
+
<form name="imagesettings" method="POST" action="<?php echo $this->page.'#images'; ?>">
|
359 |
<?php wp_nonce_field('ngg_settings') ?>
|
360 |
<input type="hidden" name="page_options" value="imgResize,imgWidth,imgHeight,imgQuality,imgBackup,imgAutoResize,thumbwidth,thumbheight,thumbfix,thumbquality">
|
361 |
<table class="form-table ngg-options">
|
363 |
<th><?php _e('Resize images','nggallery') ?></th>
|
364 |
<td>
|
365 |
<label for="imgWidth"><?php _e('Width','nggallery') ?></label>
|
366 |
+
<input type="number" step="1" min="0" class="small-text" name="imgWidth" id="imgWidth" value="<?php echo $options['imgWidth']; ?>">
|
367 |
<label for="imgHeight"><?php _e('Height','nggallery') ?></label>
|
368 |
+
<input type="number" step="1" min="0" class="small-text" name="imgHeight" id="imgHeight" value="<?php echo $options['imgHeight']; ?>">
|
369 |
<p class="description"><?php _e('Width and height (in pixels). NextCellent Gallery will keep the ratio size.','nggallery') ?></p>
|
370 |
</td>
|
371 |
</tr>
|
372 |
<tr>
|
373 |
<th><label for="imgQuality"><?php _e('Image quality','nggallery'); ?></label></th>
|
374 |
+
<td><input type="number" step="1" min="0" max="100" class="small-text" name="imgQuality" id="imgQuality" value="<?php echo $options['imgQuality']; ?>">%</td>
|
375 |
</tr>
|
376 |
<tr>
|
377 |
<th><?php _e('Backup original','nggallery'); ?></th>
|
378 |
<td>
|
379 |
<label>
|
380 |
+
<input type="checkbox" name="imgBackup" value="true" <?php checked( $options['imgBackup']); ?>>
|
381 |
<?php _e('Create a backup for the resized images','nggallery'); ?>
|
382 |
</label>
|
383 |
</td>
|
386 |
<th><?php _e('Automatically resize','nggallery'); ?></th>
|
387 |
<td>
|
388 |
<label>
|
389 |
+
<input type="checkbox" name="imgAutoResize" value="1" <?php checked( $options['imgAutoResize']); ?>>
|
390 |
<?php _e('Automatically resize images on upload.','nggallery') ?>
|
391 |
</label>
|
392 |
</td>
|
399 |
<th><?php _e('Thumbnail size','nggallery'); ?></th>
|
400 |
<td>
|
401 |
<label for="thumbwidth"><?php _e('Width','nggallery') ?></label>
|
402 |
+
<input type="number" step="1" min="0" class="small-text" name="thumbwidth" id="thumbwidth" value="<?php echo $options['thumbwidth']; ?>">
|
403 |
<label for="thumbheight"><?php _e('Height','nggallery') ?></label>
|
404 |
+
<input type="number" step="1" min="0" class="small-text" name="thumbheight" id="thumbheight" value="<?php echo $options['thumbheight']; ?>">
|
405 |
<p class="description"><?php _e('These values are maximum values.','nggallery'); ?></p>
|
406 |
</td>
|
407 |
</tr>
|
408 |
<tr>
|
409 |
<th><?php _e('Fixed size','nggallery'); ?></th>
|
410 |
<td>
|
411 |
+
<input type="checkbox" name="thumbfix" id="thumbfix" value="true" <?php checked( $options['thumbfix']); ?>>
|
412 |
<label for="thumbfix"><?php _e('Ignore the aspect ratio, so no portrait thumbnails.','nggallery') ?></label>
|
413 |
</td>
|
414 |
</tr>
|
415 |
<tr>
|
416 |
<th><label for="thumbquality"><?php _e('Thumbnail quality','nggallery'); ?></label></th>
|
417 |
+
<td><input type="number" step="1" min="0" max="100" class="small-text" name="thumbquality" id="thumbquality" value="<?php echo $options['thumbquality']; ?>">%</td>
|
418 |
</tr>
|
419 |
</table>
|
420 |
<h3><?php _e('Single picture','nggallery') ?></h3>
|
433 |
/**
|
434 |
* Show gallery related settings
|
435 |
*/
|
436 |
+
private function tab_gallery($options) {
|
|
|
437 |
?>
|
438 |
<h3><?php _e('Gallery settings','nggallery'); ?></h3>
|
439 |
+
<form name="galleryform" method="POST" action="<?php echo $this->page . '#gallery'; ?>">
|
440 |
<?php wp_nonce_field('ngg_settings') ?>
|
441 |
<input type="hidden" name="page_options" value="galNoPages,galImages,galColumns,galShowSlide,galTextSlide,galTextGallery,galShowOrder,galImgBrowser,galSort,galSortDir,galHiddenImg,galAjaxNav">
|
442 |
<table class="form-table ngg-options">
|
443 |
<tr>
|
444 |
<th><?php _e('Inline gallery','nggallery') ?></th>
|
445 |
<td>
|
446 |
+
<input name="galNoPages" id="galNoPages" type="checkbox" value="true" <?php checked( $options['galNoPages']); ?>>
|
447 |
<label for="galNoPages"><?php _e('Galleries will not be shown on a subpage, but on the same page.','nggallery') ?></label>
|
448 |
</td>
|
449 |
</tr>
|
450 |
<tr>
|
451 |
<th><label for="galImages"><?php _e('Images per page','nggallery'); ?></label></th>
|
452 |
<td>
|
453 |
+
<input type="number" step="1" min="0" class="small-text" name="galImages" id="galImages" value="<?php echo $options['galImages']; ?>">
|
454 |
<?php _e( 'images', 'nggallery'); ?>
|
455 |
<p class="description"><?php _e('0 will disable pagination and show all images on one page.','nggallery') ?></p>
|
456 |
</td>
|
458 |
<tr>
|
459 |
<th><label for="galColumns"><?php esc_html_e('Columns','nggallery'); ?></label></th>
|
460 |
<td>
|
461 |
+
<input type="number" step="1" min="0" class="small-text" name="galColumns" id="galColumns" value="<?php echo $options['galColumns']; ?>">
|
462 |
<?php _e( 'columns per page', 'nggallery'); ?>
|
463 |
<p class="description"><?php _e('0 will display as much columns as possible. This is normally only required for captions below the images.','nggallery') ?></p>
|
464 |
</td>
|
467 |
<th><?php _e('Slideshow','nggallery'); ?></th>
|
468 |
<td>
|
469 |
<label>
|
470 |
+
<input name="galShowSlide" type="checkbox" value="true" <?php checked( $options['galShowSlide']); ?>>
|
471 |
<?php _e('Enable slideshow','nggallery'); ?>
|
472 |
</label>
|
473 |
<br>
|
474 |
<label>
|
475 |
<?php _e('Text to show:','nggallery'); ?>
|
476 |
+
<input type="text" class="regular-text" name="galTextSlide" value="<?php echo $options['galTextSlide'] ?>">
|
477 |
</label>
|
478 |
+
<input type="text" name="galTextGallery" value="<?php echo $options['galTextGallery'] ?>" class="regular-text">
|
479 |
<p class="description"> <?php _e('This is the text the visitors will have to click to switch between display modes.','nggallery'); ?></p>
|
480 |
</td>
|
481 |
</tr>
|
484 |
<td>
|
485 |
<fieldset>
|
486 |
<label>
|
487 |
+
<input name="galShowOrder" type="radio" value="gallery" <?php checked('gallery', $options['galShowOrder']); ?>>
|
488 |
<?php _e('Thumbnails', 'nggallery') ;?>
|
489 |
</label>
|
490 |
<br>
|
491 |
<label>
|
492 |
+
<input name="galShowOrder" type="radio" value="slide" <?php checked('slide', $options['galShowOrder']); ?>>
|
493 |
<?php _e('Slideshow', 'nggallery') ;?>
|
494 |
</label>
|
495 |
</fieldset>
|
500 |
<th><?php _e('ImageBrowser','nggallery'); ?></th>
|
501 |
<td>
|
502 |
<label>
|
503 |
+
<input name="galImgBrowser" type="checkbox" value="true" <?php checked( $options['galImgBrowser']); ?>>
|
504 |
<?php _e('Use ImageBrowser instead of another effect.', 'nggallery'); ?>
|
505 |
</label>
|
506 |
</td>
|
509 |
<th><?php _e('Hidden images','nggallery'); ?></th>
|
510 |
<td>
|
511 |
<label>
|
512 |
+
<input name="galHiddenImg" type="checkbox" value="true" <?php checked( $options['galHiddenImg']); ?>>
|
513 |
<?php _e('Loads all images for the modal window, when pagination is used (like Thickbox, Lightbox etc.).','nggallery'); ?>
|
514 |
</label>
|
515 |
<p class="description"> <?php _e('Note: this increases the page load (possibly a lot)', 'nggallery'); ?>
|
519 |
<th><?php _e('AJAX pagination','nggallery'); ?></th>
|
520 |
<td>
|
521 |
<label>
|
522 |
+
<input name="galAjaxNav" type="checkbox" value="true" <?php checked( $options['galAjaxNav']); ?>>
|
523 |
<?php _e('Use AJAX pagination to browse images without reloading the page.','nggallery'); ?>
|
524 |
</label>
|
525 |
<p class="description"><?php esc_html_e('Note: works only in combination with the Shutter effect.', 'nggallery'); ?></p>
|
533 |
<td>
|
534 |
<fieldset>
|
535 |
<label>
|
536 |
+
<input name="galSort" type="radio" value="sortorder" <?php checked('sortorder', $options['galSort']); ?>>
|
537 |
<?php _e('Custom order', 'nggallery'); ?>
|
538 |
</label><br>
|
539 |
<label>
|
540 |
+
<input name="galSort" type="radio" value="pid" <?php checked('pid', $options['galSort']); ?>>
|
541 |
<?php _e('Image ID', 'nggallery'); ?>
|
542 |
</label><br>
|
543 |
<label>
|
544 |
+
<input name="galSort" type="radio" value="filename" <?php checked('filename', $options['galSort']); ?>>
|
545 |
<?php _e('File name', 'nggallery') ;?>
|
546 |
</label><br>
|
547 |
<label>
|
548 |
+
<input name="galSort" type="radio" value="alttext" <?php checked('alttext', $options['galSort']); ?>>
|
549 |
<?php _e('Alt / Title text', 'nggallery') ;?>
|
550 |
</label><br>
|
551 |
<label>
|
552 |
+
<input name="galSort" type="radio" value="imagedate" <?php checked('imagedate', $options['galSort']); ?>>
|
553 |
<?php _e('Date / Time', 'nggallery') ;?>
|
554 |
</label>
|
555 |
</fieldset>
|
560 |
<th><?php _e('Sort direction','nggallery') ?></th>
|
561 |
<td>
|
562 |
<label>
|
563 |
+
<input name="galSortDir" type="radio" value="ASC" <?php checked('ASC', $options['galSortDir']); ?>>
|
564 |
<?php _e('Ascending', 'nggallery') ;?>
|
565 |
</label><br>
|
566 |
<label>
|
567 |
+
<input name="galSortDir" type="radio" value="DESC" <?php checked('DESC', $options['galSortDir']); ?>>
|
568 |
<?php _e('Descending', 'nggallery') ;?>
|
569 |
</label>
|
570 |
</td>
|
578 |
/**
|
579 |
* Show the effect related settings.
|
580 |
*/
|
581 |
+
private function tab_effects($options) {
|
|
|
582 |
?>
|
583 |
<h3><?php _e('Effects','nggallery'); ?></h3>
|
584 |
<p>
|
590 |
<li><strong>%IMG_WIDTH%</strong> - <?php _e('The width of the image.', 'nggallery'); ?></li>
|
591 |
<li><strong>%IMG_HEIGHT%</strong> - <?php _e('The height of the image.', 'nggallery'); ?></li>
|
592 |
</ul>
|
593 |
+
<form name="effectsform" method="POST" action="<?php echo $this->filepath . '#effects'; ?>">
|
594 |
<?php wp_nonce_field('ngg_settings') ?>
|
595 |
<input type="hidden" name="page_options" value="thumbEffect,thumbCode">
|
596 |
<table class="form-table ngg-options">
|
598 |
<th><label for="thumbEffect"><?php _e('JavaScript Thumbnail effect','nggallery') ?></label></th>
|
599 |
<td>
|
600 |
<select size="1" id="thumbEffect" name="thumbEffect" onchange="insertcode(this.value)">
|
601 |
+
<option value="none" <?php selected('none', $options['thumbEffect']); ?>><?php _e('None', 'nggallery') ;?></option>
|
602 |
+
<option value="thickbox" <?php selected('thickbox', $options['thumbEffect']); ?>><?php _e('Thickbox', 'nggallery') ;?></option>
|
603 |
+
<option value="lightbox" <?php selected('lightbox', $options['thumbEffect']); ?>><?php _e('Lightbox', 'nggallery') ;?></option>
|
604 |
+
<option value="highslide" <?php selected('highslide', $options['thumbEffect']); ?>><?php _e('Highslide', 'nggallery') ;?></option>
|
605 |
+
<option value="shutter" <?php selected('shutter', $options['thumbEffect']); ?>><?php _e('Shutter', 'nggallery') ;?></option>
|
606 |
+
<option value="photoSwipe" <?php selected('photoSwipe', $options['thumbEffect']); ?>><?php _e('PhotoSwipe', 'nggallery') ;?></option>
|
607 |
+
<option value="custom" <?php selected('custom', $options['thumbEffect']); ?>><?php _e('Custom', 'nggallery') ;?></option>
|
608 |
</select>
|
609 |
</td>
|
610 |
</tr>
|
611 |
<tr>
|
612 |
<th><label for="thumbCode"><?php _e('Link Code line','nggallery'); ?></label></th>
|
613 |
+
<td>
|
614 |
+
<textarea class="normal-text code" id="thumbCode" name="thumbCode" cols="50" rows="5">
|
615 |
+
<?php echo htmlspecialchars(stripslashes($options['thumbCode'])); ?>
|
616 |
+
</textarea>
|
617 |
+
</td>
|
618 |
</tr>
|
619 |
</table>
|
620 |
<?php submit_button( __('Save Changes'), 'primary', 'updateoption' ) ?>
|
626 |
/**
|
627 |
* Show watermark related settings.
|
628 |
*/
|
629 |
+
private function tab_watermark($options) {
|
|
|
|
|
630 |
|
631 |
// take the first image as sample
|
632 |
$image_array = nggdb::find_last_images(0, 1);
|
636 |
?>
|
637 |
<h3><?php _e('Watermark','nggallery'); ?></h3>
|
638 |
<p><?php _e('Please note : you can only activate the watermark under -> Manage Galleries. This action cannot be undone.', 'nggallery') ?></p>
|
639 |
+
<form name="watermarkform" method="POST" action="<?php echo $this->page . '#watermark'; ?>">
|
640 |
<?php wp_nonce_field('ngg_settings') ?>
|
641 |
<input type="hidden" name="page_options" value="wmPos,wmXpos,wmYpos,wmType,wmPath,wmFont,wmSize,wmColor,wmText,wmOpaque" />
|
642 |
<div id="wm-preview">
|
657 |
<strong><?php _e('Position','nggallery') ?></strong>
|
658 |
<table>
|
659 |
<tr>
|
660 |
+
<td><input type="radio" name="wmPos" value="topLeft" <?php checked('topLeft', $options['wmPos']); ?> /></td>
|
661 |
+
<td><input type="radio" name="wmPos" value="topCenter" <?php checked('topCenter', $options['wmPos']); ?> /></td>
|
662 |
+
<td><input type="radio" name="wmPos" value="topRight" <?php checked('topRight', $options['wmPos']); ?> /></td>
|
663 |
</tr>
|
664 |
<tr>
|
665 |
+
<td><input type="radio" name="wmPos" value="midLeft" <?php checked('midLeft', $options['wmPos']); ?> /></td>
|
666 |
+
<td><input type="radio" name="wmPos" value="midCenter" <?php checked('midCenter', $options['wmPos']); ?> /></td>
|
667 |
+
<td><input type="radio" name="wmPos" value="midRight" <?php checked('midRight', $options['wmPos']); ?> /></td>
|
668 |
</tr>
|
669 |
<tr>
|
670 |
+
<td><input type="radio" name="wmPos" value="botLeft" <?php checked('botLeft', $options['wmPos']); ?> /></td>
|
671 |
+
<td><input type="radio" name="wmPos" value="botCenter" <?php checked('botCenter', $options['wmPos']); ?> /></td>
|
672 |
+
<td><input type="radio" name="wmPos" value="botRight" <?php checked('botRight', $options['wmPos']); ?> /></td>
|
673 |
</tr>
|
674 |
</table>
|
675 |
</td>
|
678 |
<table border="0">
|
679 |
<tr>
|
680 |
<td><label for="wmXpos">x:</label></td>
|
681 |
+
<td><input type="number" step="1" min="0" class="small-text" name="wmXpos" id="wmXpos" value="<?php echo $options['wmXpos'] ?>">px</td>
|
682 |
</tr>
|
683 |
<tr>
|
684 |
<td><label for="wmYpos">y:</label></td>
|
685 |
+
<td><input type="number" step="1" min="0" class="small-text" name="wmYpos" id="wmYpos" value="<?php echo $options['wmYpos'] ?>" />px</td>
|
686 |
</tr>
|
687 |
</table>
|
688 |
</td>
|
689 |
</tr>
|
690 |
</table>
|
691 |
</div>
|
692 |
+
<h3><label><input type="radio" name="wmType" value="image" <?php checked('image', $options['wmType']); ?>><?php _e('Use image as watermark','nggallery') ?></label></h3>
|
693 |
<table class="wm-table form-table">
|
694 |
<tr>
|
695 |
<th><label for="wmPath"><?php _e('URL to file','nggallery'); ?></label></th>
|
696 |
+
<td><input type="text" class="regular-text code" name="wmPath" id="wmPath" value="<?php echo $options['wmPath']; ?>"><br>
|
697 |
</tr>
|
698 |
</table>
|
699 |
+
<h3><label><input type="radio" name="wmType" value="text" <?php checked('text', $options['wmType']); ?>><?php _e('Use text as watermark','nggallery') ?></label></h3>
|
700 |
<table class="wm-table form-table">
|
701 |
<tr>
|
702 |
<th><?php _e('Font','nggallery') ?></th>
|
705 |
<?php
|
706 |
$fontlist = $this->get_fonts();
|
707 |
foreach ( $fontlist as $fontfile ) {
|
708 |
+
echo "\n".'<option value="'.$fontfile.'" '. selected($fontfile, $options['wmFont']).' >'.$fontfile.'</option>';
|
709 |
}
|
710 |
?>
|
711 |
</select><br>
|
720 |
</tr>
|
721 |
<tr>
|
722 |
<th><label for="wmSize"><?php _e('Size','nggallery'); ?></label></th>
|
723 |
+
<td><input type="number" step="1" min="0" class="small-text" name="wmSize" id="wmSize" value="<?php echo $options['wmSize']; ?>">px</td>
|
724 |
</tr>
|
725 |
<tr>
|
726 |
<th><label for="wmColor"><?php _e('Color','nggallery'); ?></label></th>
|
727 |
+
<td><input class="picker" type="text" id="wmColor" name="wmColor" value="<?php echo $options['wmColor'] ?>">
|
728 |
</tr>
|
729 |
<tr>
|
730 |
<th><label for="wmText"><?php _e('Text','nggallery'); ?></label></th>
|
731 |
+
<td><textarea name="wmText" id="wmText" cols="50" rows="5" class="normal-text"><?php echo $options['wmText'] ?></textarea></td>
|
732 |
</tr>
|
733 |
<tr>
|
734 |
<th><label for="wmOpaque"><?php _e('Opaque','nggallery'); ?></label></th>
|
735 |
+
<td><input type="number" step="1" min="0" max="100" class="small-text" name="wmOpaque" id="wmOpaque" value="<?php echo $options['wmOpaque'] ?>">%</td>
|
736 |
</tr>
|
737 |
</table>
|
738 |
<div class="clear"></div>
|
781 |
/**
|
782 |
* Show slideshow related settings
|
783 |
*/
|
784 |
+
private function tab_slideshow($ngg_options) {
|
|
|
|
|
785 |
?>
|
786 |
+
<form name="player_options" method="POST" action="<?php echo $this->page.'#slideshow'; ?>">
|
787 |
<?php wp_nonce_field('ngg_settings'); ?>
|
788 |
<input type="hidden" name="page_options" value="irAutoDim,slideFx,irWidth,irHeight,irRotatetime,irLoop,irDrag,irNavigation,irNavigationDots,irAutoplay,irAutoplayTimeout,irAutoplayHover,irNumber,irClick" />
|
789 |
<h3><?php _e('Slideshow','nggallery'); ?></h3>
|
791 |
<tr>
|
792 |
<th><?php _e('Fit to space','nggallery'); ?></th>
|
793 |
<td>
|
794 |
+
<input type="checkbox" name="irAutoDim" id="irAutoDim" value="true" <?php checked( $ngg_options['irAutoDim']); ?>">
|
795 |
<label for="irAutoDim"><?php _e( "Let the slideshow fit in the available space.", 'nggallery'); ?></label>
|
796 |
</td>
|
797 |
</tr>
|
799 |
<th><?php _e('Default size','nggallery'); ?></th>
|
800 |
<td>
|
801 |
<label for="irWidth"><?php _e('Width','nggallery'); ?></label>
|
802 |
+
<input <?php $this->readonly($ngg_options['irAutoDim']); ?> type="number" min="0" class="small-text" name="irWidth" id="irWidth" value="<?php echo $ngg_options['irWidth']; ?>">
|
803 |
<label for="irHeight"><?php _e('Height','nggallery'); ?></label>
|
804 |
+
<input <?php $this->readonly($ngg_options['irAutoDim']); ?> type="number" min="0" class="small-text" name="irHeight" id="irHeight" value="<?php echo $ngg_options['irHeight']; ?>">
|
805 |
</td>
|
806 |
</tr>
|
807 |
<tr>
|
823 |
);
|
824 |
|
825 |
foreach( $options as $option => $val ) {
|
826 |
+
echo $this->convert_fx_to_optgroup( $val, $option, $ngg_options );
|
827 |
}
|
828 |
?>
|
829 |
</select>
|
834 |
<tr>
|
835 |
<th><?php _e('Loop','nggallery') ?></th>
|
836 |
<td>
|
837 |
+
<input type="checkbox" name="irLoop" id="irLoop" value="true" <?php checked( $ngg_options['irLoop']); ?>">
|
838 |
<label for="irLoop"><?php _e( "Infinity loop. Duplicate last and first items to get loop illusion.", 'nggallery'); ?></label>
|
839 |
</td>
|
840 |
</tr>
|
841 |
<tr>
|
842 |
<th><?php _e('Mouse/touch drag','nggallery') ?></th>
|
843 |
<td>
|
844 |
+
<input type="checkbox" name="irDrag" id="irDrag" value="true" <?php checked( $ngg_options['irDrag'] ); ?>">
|
845 |
<label for="irDrag"><?php _e( "Enable dragging with the mouse (or touch).", 'nggallery'); ?></label>
|
846 |
</td>
|
847 |
</tr>
|
848 |
<tr>
|
849 |
<th><?php _e('Previous / Next','nggallery') ?></th>
|
850 |
<td>
|
851 |
+
<input type="checkbox" name="irNavigation" id="irNavigation" value="true" <?php checked( $ngg_options['irNavigation'] ); ?>>
|
852 |
<label for="irNavigation"><?php _e( "Show next/previous buttons.", 'nggallery'); ?></label>
|
853 |
</td>
|
854 |
</tr>
|
855 |
<tr>
|
856 |
<th><?php _e('Show dots','nggallery') ?></th>
|
857 |
<td>
|
858 |
+
<input type="checkbox" name="irNavigationDots" id="irNavigationDots" value="true" <?php checked( $ngg_options['irNavigationDots'] ); ?>>
|
859 |
<label for="irNavigationDots"><?php _e( "Show dots for each image.", 'nggallery'); ?></label>
|
860 |
</td>
|
861 |
</tr>
|
862 |
<tr>
|
863 |
<th><?php _e('Autoplay','nggallery') ?></th>
|
864 |
<td>
|
865 |
+
<input type="checkbox" name="irAutoplay" id="irAutoplay" value="true" <?php checked( $ngg_options['irAutoplay'] ); ?>>
|
866 |
<label for="irAutoplay"><?php _e( "Automatically play the images.", 'nggallery'); ?></label>
|
867 |
</td>
|
868 |
</tr>
|
869 |
<tr>
|
870 |
<th><label for="irRotatetime"><?php _e('Duration','nggallery') ?></label></th>
|
871 |
<td>
|
872 |
+
<input <?php $this->readonly( false, $ngg_options['irAutoplay'] ); ?> type="number" step="1" min="0" class="small-text" name="irRotatetime" id="irRotatetime" value="<?php echo $ngg_options['irRotatetime'] ?>">
|
873 |
<?php _e('sec.', 'nggallery') ;?>
|
874 |
</td>
|
875 |
</tr>
|
876 |
<tr>
|
877 |
<th><?php _e('Pause on hover','nggallery') ?></th>
|
878 |
<td>
|
879 |
+
<input <?php disabled(false, $ngg_options['irAutoplay']); ?> type="checkbox" name="irAutoplayHover" id="irAutoplayHover" value="true" <?php checked( $ngg_options['irAutoplayHover']); ?>>
|
880 |
<label for="irAutoplayHover"><?php _e( "Pause when hovering over the slideshow.", 'nggallery'); ?></label>
|
881 |
</td>
|
882 |
</tr>
|
883 |
<tr>
|
884 |
<th><?php _e('Click for next','nggallery') ?></th>
|
885 |
<td>
|
886 |
+
<input type="checkbox" name="irClick" id="irClick" value="true" <?php checked( $ngg_options['irClick']); ?>>
|
887 |
<label for="irClick"><?php _e( "Click to go to the next image.", 'nggallery'); ?></label></td>
|
888 |
</tr>
|
889 |
<tr>
|
890 |
<th><?php _e('Number of images','nggallery') ?></th>
|
891 |
<td>
|
892 |
+
<input type="number" step="1" min="1" class="small-text" name="irNumber" id="irNumber" value="<?php echo $ngg_options['irNumber'] ?>">
|
893 |
<label for="irNumber"><?php _e('images', 'nggallery') ;?></label>
|
894 |
<p class="description"><?php _e( "Number of images to display when using random or latest.", 'nggallery'); ?></p>
|
895 |
</td>
|
903 |
/**
|
904 |
* Convert an array of slideshow styles to a html dropdown group.
|
905 |
*
|
906 |
+
* @param array $data The option values (and display).
|
907 |
+
* @param string $title The label of the optgroup.
|
908 |
+
* @param array $ngg_options The options.
|
909 |
*
|
910 |
* @return string The output.
|
911 |
*/
|
912 |
+
private function convert_fx_to_optgroup( $data, $title = null, $ngg_options ) {
|
|
|
|
|
913 |
|
914 |
+
if ( is_null( $title ) ) {
|
915 |
$out = null;
|
916 |
} else {
|
917 |
$out = '<optgroup label="' . $title . '">';
|
918 |
}
|
919 |
|
920 |
+
foreach ( $data as $option ) {
|
921 |
+
$out .= '<option value="' . $option . '" ' . selected( $option,
|
922 |
+
$ngg_options['slideFx'] ) . '>' . $option . '</option>';
|
923 |
}
|
924 |
|
925 |
+
if ( ! is_null( $title ) ) {
|
926 |
$out .= '</optgroup>';
|
927 |
}
|
928 |
|
933 |
* Compare two values and echo readonly if they are.
|
934 |
*
|
935 |
* @param mixed $current The current value.
|
936 |
+
* @param mixed $other The other value.
|
937 |
*/
|
938 |
private function readonly($current, $other = true) {
|
939 |
if ( $current == $other ) {
|
940 |
echo 'readonly="readonly"';
|
941 |
}
|
942 |
}
|
943 |
+
|
944 |
+
/**
|
945 |
+
* Rebuild the slugs with an AJAX-request.
|
946 |
+
*/
|
947 |
+
private function rebuild_slugs() {
|
948 |
+
global $wpdb;
|
949 |
+
|
950 |
+
$total = array();
|
951 |
+
// get the total number of images
|
952 |
+
$total['images'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures") );
|
953 |
+
$total['gallery'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggallery") );
|
954 |
+
$total['album'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggalbum") );
|
955 |
+
|
956 |
+
$messages = array(
|
957 |
+
'images' => __( 'Rebuild image structure : %s / %s images', 'nggallery' ),
|
958 |
+
'gallery' => __( 'Rebuild gallery structure : %s / %s galleries', 'nggallery' ),
|
959 |
+
'album' => __( 'Rebuild album structure : %s / %s albums', 'nggallery' ),
|
960 |
+
);
|
961 |
+
|
962 |
+
foreach ( array_keys( $messages ) as $key ) {
|
963 |
+
|
964 |
+
$message = sprintf( $messages[ $key ] ,
|
965 |
+
"<span class='ngg-count-current'>0</span>",
|
966 |
+
"<span class='ngg-count-total'>" . $total[ $key ] . "</span>"
|
967 |
+
);
|
968 |
+
|
969 |
+
echo "<div class='$key updated'><p class='ngg'>$message</p></div>";
|
970 |
+
}
|
971 |
+
|
972 |
+
$ajax_url = add_query_arg( 'action', 'ngg_rebuild_unique_slugs', admin_url( 'admin-ajax.php' ) );
|
973 |
+
?>
|
974 |
+
<script type="text/javascript">
|
975 |
+
jQuery(document).ready(function($) {
|
976 |
+
var ajax_url = '<?php echo $ajax_url; ?>',
|
977 |
+
_action = 'images',
|
978 |
+
images = <?php echo $total['images']; ?>,
|
979 |
+
gallery = <?php echo $total['gallery']; ?>,
|
980 |
+
album = <?php echo $total['album']; ?>,
|
981 |
+
total = 0,
|
982 |
+
offset = 0,
|
983 |
+
count = 50;
|
984 |
+
|
985 |
+
var $display = $('.ngg-count-current');
|
986 |
+
$('.finished, .gallery, .album').hide();
|
987 |
+
total = images;
|
988 |
+
|
989 |
+
function call_again() {
|
990 |
+
if ( offset > total ) {
|
991 |
+
offset = 0;
|
992 |
+
// 1st run finished
|
993 |
+
if (_action == 'images') {
|
994 |
+
_action = 'gallery';
|
995 |
+
total = gallery;
|
996 |
+
$('.images, .gallery').toggle();
|
997 |
+
$display.html(offset);
|
998 |
+
call_again();
|
999 |
+
return;
|
1000 |
+
}
|
1001 |
+
// 2nd run finished
|
1002 |
+
if (_action == 'gallery') {
|
1003 |
+
_action = 'album';
|
1004 |
+
total = album;
|
1005 |
+
$('.gallery, .album').toggle();
|
1006 |
+
$display.html(offset);
|
1007 |
+
call_again();
|
1008 |
+
return;
|
1009 |
+
}
|
1010 |
+
// 3rd run finished, exit now
|
1011 |
+
if (_action == 'album') {
|
1012 |
+
$('.ngg')
|
1013 |
+
.html('<?php esc_html_e( 'Done.', 'nggallery' ); ?>')
|
1014 |
+
.parent('div').hide();
|
1015 |
+
$('.finished').show();
|
1016 |
+
return;
|
1017 |
+
}
|
1018 |
+
}
|
1019 |
+
|
1020 |
+
$.post(ajax_url, {'_action': _action, 'offset': offset}, function(response) {
|
1021 |
+
$display.html(offset);
|
1022 |
+
|
1023 |
+
offset += count;
|
1024 |
+
call_again();
|
1025 |
+
});
|
1026 |
+
}
|
1027 |
+
|
1028 |
+
call_again();
|
1029 |
+
});
|
1030 |
+
</script>
|
1031 |
+
<?php
|
1032 |
+
}
|
1033 |
}
|
admin/{overview.php → class-ngg-overview.php}
RENAMED
@@ -1,15 +1,15 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
}
|
5 |
|
6 |
/**
|
7 |
* Class to display the overview.
|
8 |
* @since 1.9.24
|
9 |
*/
|
10 |
-
class
|
11 |
|
12 |
public function __construct() {
|
|
|
13 |
add_meta_box( 'overview', __( 'At a Glance', 'nggallery' ), array(
|
14 |
$this,
|
15 |
'stats'
|
@@ -55,7 +55,7 @@ class Overview_Display {
|
|
55 |
<li class="image-count"><a href="admin.php?page=nggallery-add-gallery">
|
56 |
<?php echo $images . ' ' . _n( 'Image', 'Images', $images, 'nggallery' ); ?></a>
|
57 |
</li>
|
58 |
-
<li class="gallery-count"><a href="admin.php?page=nggallery-manage
|
59 |
<?php echo $galleries . ' ' . _n( 'Gallery', 'Galleries', $galleries, 'nggallery' ); ?></a>
|
60 |
</li>
|
61 |
<li class="album-count"><a href="admin.php?page=nggallery-manage-album">
|
@@ -105,11 +105,11 @@ class Overview_Display {
|
|
105 |
<table>
|
106 |
<tr>
|
107 |
<td><?php _e( 'Allowed' ); ?></td>
|
108 |
-
<td><?php printf( __( '<a href="%1$s" title="Manage Uploads">%2$s MB</a>' ), esc_url( admin_url( 'admin.php?page=nggallery-manage
|
109 |
</tr>
|
110 |
<tr>
|
111 |
<td class="<?php echo $used_color; ?>"><?php _e( 'Used' ); ?></td>
|
112 |
-
<td><?php printf( __( '<a href="%1$s" title="Manage Uploads">%2$s MB (%3$s%%)</a>' ), esc_url( admin_url( 'admin.php?page=nggallery-manage
|
113 |
</tr>
|
114 |
</table>
|
115 |
<?php
|
1 |
<?php
|
2 |
+
|
3 |
+
include_once('interface-ngg-displayable.php');
|
|
|
4 |
|
5 |
/**
|
6 |
* Class to display the overview.
|
7 |
* @since 1.9.24
|
8 |
*/
|
9 |
+
class NGG_Overview implements NGG_Displayable {
|
10 |
|
11 |
public function __construct() {
|
12 |
+
|
13 |
add_meta_box( 'overview', __( 'At a Glance', 'nggallery' ), array(
|
14 |
$this,
|
15 |
'stats'
|
55 |
<li class="image-count"><a href="admin.php?page=nggallery-add-gallery">
|
56 |
<?php echo $images . ' ' . _n( 'Image', 'Images', $images, 'nggallery' ); ?></a>
|
57 |
</li>
|
58 |
+
<li class="gallery-count"><a href="admin.php?page=nggallery-manage">
|
59 |
<?php echo $galleries . ' ' . _n( 'Gallery', 'Galleries', $galleries, 'nggallery' ); ?></a>
|
60 |
</li>
|
61 |
<li class="album-count"><a href="admin.php?page=nggallery-manage-album">
|
105 |
<table>
|
106 |
<tr>
|
107 |
<td><?php _e( 'Allowed' ); ?></td>
|
108 |
+
<td><?php printf( __( '<a href="%1$s" title="Manage Uploads">%2$s MB</a>' ), esc_url( admin_url( 'admin.php?page=nggallery-manage' ) ), $quota ); ?></td>
|
109 |
</tr>
|
110 |
<tr>
|
111 |
<td class="<?php echo $used_color; ?>"><?php _e( 'Used' ); ?></td>
|
112 |
+
<td><?php printf( __( '<a href="%1$s" title="Manage Uploads">%2$s MB (%3$s%%)</a>' ), esc_url( admin_url( 'admin.php?page=nggallery-manage' ) ), $used, $percent_used ); ?></td>
|
113 |
</tr>
|
114 |
</table>
|
115 |
<?php
|
admin/class-ngg-post-admin-page.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once( 'interface-ngg-displayable.php' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class NGG_Post_Admin_Page
|
7 |
+
*
|
8 |
+
* Represents a simple admin page.
|
9 |
+
*/
|
10 |
+
abstract class NGG_Post_Admin_Page implements NGG_Displayable {
|
11 |
+
|
12 |
+
protected $page;
|
13 |
+
|
14 |
+
public function __construct() {
|
15 |
+
|
16 |
+
$this->page = admin_url() . 'admin.php?page=' . $_GET['page'];
|
17 |
+
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Display the page. Child classes should override this method.
|
22 |
+
*/
|
23 |
+
public function display() {
|
24 |
+
//Handle the post updates.
|
25 |
+
if ( isset( $_POST ) && !empty($_POST) ) {
|
26 |
+
$this->processor();
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Handle the POST updates. This functions is called by the display() function, if used properly.
|
32 |
+
*/
|
33 |
+
protected abstract function processor();
|
34 |
+
}
|
admin/class-ngg-roles.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('class-ngg-post-admin-page.php');
|
4 |
+
|
5 |
+
|
6 |
+
/**
|
7 |
+
* The roles admin screen
|
8 |
+
*/
|
9 |
+
class NGG_Roles extends NGG_Post_Admin_Page {
|
10 |
+
|
11 |
+
public function display() {
|
12 |
+
parent::display();
|
13 |
+
|
14 |
+
?>
|
15 |
+
<div class="wrap">
|
16 |
+
<h2><?php _e('Roles / capabilities', 'nggallery') ;?></h2>
|
17 |
+
<p><?php _e('Select the lowest role which should be able to access the following capabilities. NextCellent Gallery supports the standard roles from WordPress.', 'nggallery') ?> <br />
|
18 |
+
<?php _e('For a more flexible user management you can use the', 'nggallery') ?> <a href="http://wordpress.org/extend/plugins/capsman/" target="_blank">Capability Manager</a>.</p>
|
19 |
+
<form name="addroles" id="addroles" method="POST" accept-charset="utf-8" >
|
20 |
+
<?php wp_nonce_field('ngg_addroles') ?>
|
21 |
+
<table class="form-table">
|
22 |
+
<tr valign="top">
|
23 |
+
<th scope="row"><label for="general"><?php _e('NextCellent Gallery overview', 'nggallery') ;?></label></th>
|
24 |
+
<td><select name="general" id="general"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Gallery overview') ); ?></select></td>
|
25 |
+
</tr>
|
26 |
+
<tr valign="top">
|
27 |
+
<th scope="row"><label for="tinymce"><?php _e('Use TinyMCE Button / Add Media', 'nggallery') ;?></label></th>
|
28 |
+
<td><select name="tinymce" id="tinymce"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Use TinyMCE') ); ?></select></td>
|
29 |
+
</tr>
|
30 |
+
<tr valign="top">
|
31 |
+
<th scope="row"><label for="add_gallery"><?php _e('Add gallery / Upload images', 'nggallery') ;?></label></th>
|
32 |
+
<td><select name="add_gallery" id="add_gallery"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Upload images') ); ?></select></td>
|
33 |
+
</tr>
|
34 |
+
<tr valign="top">
|
35 |
+
<th scope="row"><label for="manage_gallery"><?php _e('Manage gallery', 'nggallery') ;?></label></th>
|
36 |
+
<td><select name="manage_gallery" id="manage_gallery"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Manage gallery') ); ?></select></td>
|
37 |
+
</tr>
|
38 |
+
<tr valign="top">
|
39 |
+
<th scope="row"><label for="manage_others"><?php _e('Manage others gallery', 'nggallery') ;?></label></th>
|
40 |
+
<td><select name="manage_others" id="manage_others"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Manage others gallery') ); ?></select></td>
|
41 |
+
</tr>
|
42 |
+
<tr valign="top">
|
43 |
+
<th scope="row"><label for="manage_tags"><?php _e('Manage tags', 'nggallery') ;?></label></th>
|
44 |
+
<td><select name="manage_tags" id="manage_tags"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Manage tags') ); ?></select></td>
|
45 |
+
</tr>
|
46 |
+
<tr valign="top">
|
47 |
+
<th scope="row"><label for="edit_album"><?php _e('Edit Album', 'nggallery') ;?></label></th>
|
48 |
+
<td><select name="edit_album" id="edit_album"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Edit album') ); ?></select></td>
|
49 |
+
</tr>
|
50 |
+
<tr valign="top">
|
51 |
+
<th scope="row"><label for="change_style"><?php _e('Change style', 'nggallery') ;?></label></th>
|
52 |
+
<td><select name="change_style" id="change_style"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Change style') ); ?></select></td>
|
53 |
+
</tr>
|
54 |
+
<tr valign="top">
|
55 |
+
<th scope="row"><label for="change_options"><?php _e('Change options', 'nggallery') ;?></label></th>
|
56 |
+
<td><select name="change_options" id="change_options"><?php wp_dropdown_roles( $this->ngg_get_role('NextGEN Change options') ); ?></select></td>
|
57 |
+
</tr>
|
58 |
+
</table>
|
59 |
+
<div class="submit"><input type="submit" class="button-primary" name= "update_cap" value="<?php _e('Update capabilities', 'nggallery') ;?>"/></div>
|
60 |
+
</form>
|
61 |
+
</div>
|
62 |
+
<?php
|
63 |
+
}
|
64 |
+
|
65 |
+
|
66 |
+
protected function processor() {
|
67 |
+
if ( isset($_POST['update_cap']) ) {
|
68 |
+
|
69 |
+
check_admin_referer('ngg_addroles');
|
70 |
+
|
71 |
+
// now set or remove the capability
|
72 |
+
$this->ngg_set_capability($_POST['general'],"NextGEN Gallery overview");
|
73 |
+
$this->ngg_set_capability($_POST['tinymce'],"NextGEN Use TinyMCE");
|
74 |
+
$this->ngg_set_capability($_POST['add_gallery'],"NextGEN Upload images");
|
75 |
+
$this->ngg_set_capability($_POST['manage_gallery'],"NextGEN Manage gallery");
|
76 |
+
$this->ngg_set_capability($_POST['manage_others'],"NextGEN Manage others gallery");
|
77 |
+
$this->ngg_set_capability($_POST['manage_tags'],"NextGEN Manage tags");
|
78 |
+
$this->ngg_set_capability($_POST['edit_album'],"NextGEN Edit album");
|
79 |
+
$this->ngg_set_capability($_POST['change_style'],"NextGEN Change style");
|
80 |
+
$this->ngg_set_capability($_POST['change_options'],"NextGEN Change options");
|
81 |
+
|
82 |
+
nggGallery::show_message(__('Updated capabilities',"nggallery"));
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
private function ngg_get_sorted_roles() {
|
87 |
+
// This function returns all roles, sorted by user level (lowest to highest)
|
88 |
+
global $wp_roles;
|
89 |
+
$roles = $wp_roles->role_objects;
|
90 |
+
$sorted = array();
|
91 |
+
|
92 |
+
if( class_exists('RoleManager') ) {
|
93 |
+
foreach( $roles as $role_key => $role_name ) {
|
94 |
+
$role = get_role($role_key);
|
95 |
+
if( empty($role) ) continue;
|
96 |
+
$role_user_level = array_reduce(array_keys($role->capabilities), array('WP_User', 'level_reduction'), 0);
|
97 |
+
$sorted[$role_user_level] = $role;
|
98 |
+
}
|
99 |
+
$sorted = array_values($sorted);
|
100 |
+
} else {
|
101 |
+
$role_order = array("subscriber", "contributor", "author", "editor", "administrator");
|
102 |
+
foreach($role_order as $role_key) {
|
103 |
+
$sorted[$role_key] = get_role($role_key);
|
104 |
+
}
|
105 |
+
}
|
106 |
+
return $sorted;
|
107 |
+
}
|
108 |
+
|
109 |
+
private function ngg_get_role($capability){
|
110 |
+
// This function return the lowest roles which has the capabilities
|
111 |
+
$check_order = $this->ngg_get_sorted_roles();
|
112 |
+
|
113 |
+
$args = array_slice(func_get_args(), 1);
|
114 |
+
$args = array_merge(array($capability), $args);
|
115 |
+
|
116 |
+
foreach ($check_order as $check_role) {
|
117 |
+
if ( empty($check_role) )
|
118 |
+
return false;
|
119 |
+
|
120 |
+
if (call_user_func_array(array(&$check_role, 'has_cap'), $args))
|
121 |
+
return $check_role->name;
|
122 |
+
}
|
123 |
+
return false;
|
124 |
+
}
|
125 |
+
|
126 |
+
private function ngg_set_capability($lowest_role, $capability){
|
127 |
+
// This function set or remove the $capability
|
128 |
+
$check_order = $this->ngg_get_sorted_roles();
|
129 |
+
|
130 |
+
$add_capability = false;
|
131 |
+
|
132 |
+
foreach ($check_order as $the_role) {
|
133 |
+
$role = $the_role->name;
|
134 |
+
|
135 |
+
if ( $lowest_role == $role )
|
136 |
+
$add_capability = true;
|
137 |
+
|
138 |
+
// If you rename the roles, then please use a role manager plugin
|
139 |
+
|
140 |
+
if ( empty($the_role) )
|
141 |
+
continue;
|
142 |
+
|
143 |
+
$add_capability ? $the_role->add_cap($capability) : $the_role->remove_cap($capability) ;
|
144 |
+
}
|
145 |
+
}
|
146 |
+
}
|
admin/class-ngg-setup.php
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once('class-ngg-post-admin-page.php');
|
4 |
+
|
5 |
+
class NGG_Setup extends NGG_Post_Admin_Page {
|
6 |
+
|
7 |
+
public function display() {
|
8 |
+
parent::display();
|
9 |
+
|
10 |
+
global $wpdb;
|
11 |
+
|
12 |
+
?>
|
13 |
+
<div class="wrap">
|
14 |
+
<h2><?php _e('Reset options', 'nggallery') ;?></h2>
|
15 |
+
<form name="resetsettings" method="post">
|
16 |
+
<?php wp_nonce_field('ngg_uninstall') ?>
|
17 |
+
<p><?php _e('Reset all options/settings to the default installation.', 'nggallery') ;?></p>
|
18 |
+
<div align="center">
|
19 |
+
<input type="submit" class="button" id="reset-to-default" name="resetdefault" value="<?php _e('Reset settings', 'nggallery') ;?>">
|
20 |
+
</div>
|
21 |
+
</form>
|
22 |
+
</div>
|
23 |
+
<?php if ( !is_multisite() || is_super_admin() ) : ?>
|
24 |
+
<div class="wrap">
|
25 |
+
<h2><?php _e('Uninstall plugin tables', 'nggallery') ;?></h2>
|
26 |
+
|
27 |
+
<form name="resetsettings" method="post">
|
28 |
+
<div>
|
29 |
+
<?php wp_nonce_field('ngg_uninstall') ?>
|
30 |
+
<p><?php _e('You don\'t like NextCellent Gallery?', 'nggallery') ;?></p>
|
31 |
+
<p><?php _e('With this button you can clear all database tables. This should also happen if you uninstall the normal way, but it can be useful for manually uninstalling NextCellent completely.', 'nggallery') ;?>
|
32 |
+
</div>
|
33 |
+
<p style="color: red">
|
34 |
+
<strong><?php _e('WARNING:', 'nggallery') ;?></strong>
|
35 |
+
<br>
|
36 |
+
<?php _e('Once uninstalled, this cannot be undone. You should use a Database Backup plugin of WordPress to backup all the tables first. NextCellent gallery is stored in the tables', 'nggallery') ;?> <strong><?php echo $wpdb->nggpictures; ?></strong>, <strong><?php echo $wpdb->nggalbum; ?></strong> <?php _e('and', 'nggallery') ;?> <strong><?php echo $wpdb->nggalbum; ?></strong>.
|
37 |
+
</p>
|
38 |
+
<div align="center">
|
39 |
+
<input type="button" name="show_button" id="show-button" class="button" value="<?php _e('Show uninstall button', 'nggallery') ?>">
|
40 |
+
<input style="display: none; color: red" id="delete-button" type="submit" name="uninstall" class="button delete" value="<?php _e('Uninstall plugin', 'nggallery') ?>">
|
41 |
+
</div>
|
42 |
+
</form>
|
43 |
+
</div>
|
44 |
+
<?php endif; ?>
|
45 |
+
|
46 |
+
<script type="text/javascript">
|
47 |
+
document.getElementById('reset-to-default').addEventListener('click', function(event) {
|
48 |
+
var check = confirm(
|
49 |
+
'<?php echo esc_js( __( 'Reset all options to default settings?', 'nggallery' ) ) ?>' +
|
50 |
+
'\n\n' +
|
51 |
+
'<?php echo esc_js( __( 'Choose [Cancel] to Stop, [OK] to proceed.', 'ngallery') ) ?>'
|
52 |
+
);
|
53 |
+
if(!check) {
|
54 |
+
event.preventDefault();
|
55 |
+
}
|
56 |
+
}, false);
|
57 |
+
|
58 |
+
document.getElementById('show-button').addEventListener('click', function() {
|
59 |
+
document.getElementById('delete-button').style.display = "block";
|
60 |
+
}, false);
|
61 |
+
|
62 |
+
document.getElementById('delete-button').addEventListener('click', function() {
|
63 |
+
var check = confirm(
|
64 |
+
'<?php echo esc_js( __( 'You are about to uninstall this plugin from WordPress. This action is not reversible.', 'nggallery' ) ) ?>' +
|
65 |
+
'\n\n' +
|
66 |
+
'<?php echo esc_js( __( 'Choose [Cancel] to Stop, [OK] to proceed.', 'ngallery') ) ?>'
|
67 |
+
);
|
68 |
+
if(!check) {
|
69 |
+
event.preventDefault();
|
70 |
+
}
|
71 |
+
}, false);
|
72 |
+
|
73 |
+
|
74 |
+
|
75 |
+
</script>
|
76 |
+
|
77 |
+
<?php
|
78 |
+
|
79 |
+
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Handle the POST updates. This functions is called by the display() function, if used properly.
|
84 |
+
*/
|
85 |
+
protected function processor() {
|
86 |
+
global $ngg;
|
87 |
+
|
88 |
+
check_admin_referer('ngg_uninstall');
|
89 |
+
|
90 |
+
include_once ( dirname (__FILE__). '/class-ngg-installer.php');
|
91 |
+
|
92 |
+
if (isset($_POST['resetdefault'])) {
|
93 |
+
|
94 |
+
NGG_Installer::set_default_options();
|
95 |
+
$ngg->load_options();
|
96 |
+
|
97 |
+
nggGallery::show_message(__('Reset all settings to the default parameters.','nggallery'));
|
98 |
+
}
|
99 |
+
|
100 |
+
if (isset($_POST['uninstall'])) {
|
101 |
+
|
102 |
+
NGG_Installer::uninstall();
|
103 |
+
|
104 |
+
nggGallery::show_message(__('Uninstall successful! Now delete the plugin and enjoy your life!','nggallery'));
|
105 |
+
}
|
106 |
+
}
|
107 |
+
}
|
admin/{style.php → class-ngg-style.php}
RENAMED
@@ -1,17 +1,8 @@
|
|
1 |
<?php
|
2 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
3 |
|
4 |
-
class
|
5 |
|
6 |
-
|
7 |
-
|
8 |
-
// same as $_SERVER['REQUEST_URI'], but should work under IIS 6.0
|
9 |
-
$this->filepath = admin_url() . 'admin.php?page=' . $_GET['page'];
|
10 |
-
|
11 |
-
//Look for POST updates
|
12 |
-
if ( !empty($_POST) )
|
13 |
-
$this->processor();
|
14 |
-
}
|
15 |
|
16 |
/**
|
17 |
* Find stylesheets.
|
@@ -19,7 +10,8 @@ class NGG_Style {
|
|
19 |
* @since 1.9.22
|
20 |
*
|
21 |
* @param array $directions Absolute paths to the folders that contain stylesheets.
|
22 |
-
*
|
|
|
23 |
*/
|
24 |
static function ngg_get_cssfiles( $directions ) {
|
25 |
|
@@ -30,20 +22,20 @@ class NGG_Style {
|
|
30 |
if ($plugins_dir) {
|
31 |
while (($file = $plugins_dir->read()) !== false) {
|
32 |
if (preg_match('|^\.+$|', $file))
|
33 |
-
continue;
|
34 |
if (is_dir($direction.'/'.$file)) {
|
35 |
$plugins_subdir = dir($direction.'/'.$file);
|
36 |
if ($plugins_subdir) {
|
37 |
while (($subfile = $plugins_subdir->read()) !== false) {
|
38 |
if (preg_match('|^\.+$|', $subfile))
|
39 |
-
continue;
|
40 |
if (preg_match('|\.css$|', $subfile))
|
41 |
-
$plugin_files[] = "$direction/$file/$subfile";
|
42 |
}
|
43 |
}
|
44 |
} else {
|
45 |
if (preg_match('|\.css$|', $file))
|
46 |
-
$plugin_files[] = $direction . '/' . $file;
|
47 |
}
|
48 |
}
|
49 |
}
|
@@ -58,7 +50,8 @@ class NGG_Style {
|
|
58 |
* @since 1.9.22
|
59 |
*
|
60 |
* @param string $plugin_file Absolute path to the stylesheet.
|
61 |
-
*
|
|
|
62 |
*/
|
63 |
static function ngg_get_cssfiles_data($plugin_file) {
|
64 |
|
@@ -70,9 +63,9 @@ class NGG_Style {
|
|
70 |
preg_match("|Author:(.*)|i", $css_data, $author_name);
|
71 |
|
72 |
if (preg_match("|Version:(.*)|i", $css_data, $version))
|
73 |
-
$version = trim($version[1]);
|
74 |
else
|
75 |
-
$version = '';
|
76 |
|
77 |
$description = wptexturize(trim($description[1]));
|
78 |
|
@@ -107,7 +100,7 @@ class NGG_Style {
|
|
107 |
* @since 1.9.22
|
108 |
*
|
109 |
*/
|
110 |
-
function processor() {
|
111 |
global $ngg;
|
112 |
$i = 0;
|
113 |
|
@@ -133,7 +126,7 @@ class NGG_Style {
|
|
133 |
check_admin_referer('ngg_style');
|
134 |
|
135 |
if ( !current_user_can('edit_themes') )
|
136 |
-
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
|
137 |
|
138 |
$newcontent = stripslashes($_POST['newcontent']);
|
139 |
$old_path = $_POST['file'];
|
@@ -173,7 +166,7 @@ class NGG_Style {
|
|
173 |
if (isset($_POST['movecss'])) {
|
174 |
|
175 |
if ( !current_user_can('edit_themes') )
|
176 |
-
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
|
177 |
|
178 |
$old_path = $_POST['oldpath'];
|
179 |
$new_path = NGG_CONTENT_DIR . "/ngg_styles/nggallery.css";
|
@@ -202,7 +195,10 @@ class NGG_Style {
|
|
202 |
* @since 1.9.22
|
203 |
*
|
204 |
*/
|
205 |
-
function
|
|
|
|
|
|
|
206 |
global $ngg;
|
207 |
|
208 |
//the directions containing the css files
|
@@ -274,7 +270,7 @@ class NGG_Style {
|
|
274 |
$title .= sprintf(__('Browsing %s','nggallery'), $act_css_name);
|
275 |
}
|
276 |
if ( $theme_css_exists )
|
277 |
-
$title .= ' ' . __('(from the theme folder)','nggallery');
|
278 |
$title .= '</h3>';
|
279 |
echo $title
|
280 |
?>
|
@@ -324,6 +320,5 @@ class NGG_Style {
|
|
324 |
</div> <!-- wrap-->
|
325 |
<?php
|
326 |
} //end if ( !is_multisite() || is_super_admin() )
|
327 |
-
}
|
328 |
-
}
|
329 |
-
?>
|
1 |
<?php
|
|
|
2 |
|
3 |
+
include_once('class-ngg-post-admin-page.php');
|
4 |
|
5 |
+
class NGG_Style extends NGG_Post_Admin_Page {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
/**
|
8 |
* Find stylesheets.
|
10 |
* @since 1.9.22
|
11 |
*
|
12 |
* @param array $directions Absolute paths to the folders that contain stylesheets.
|
13 |
+
*
|
14 |
+
*@return array Absolute paths to the stylesheets.
|
15 |
*/
|
16 |
static function ngg_get_cssfiles( $directions ) {
|
17 |
|
22 |
if ($plugins_dir) {
|
23 |
while (($file = $plugins_dir->read()) !== false) {
|
24 |
if (preg_match('|^\.+$|', $file))
|
25 |
+
{continue;}
|
26 |
if (is_dir($direction.'/'.$file)) {
|
27 |
$plugins_subdir = dir($direction.'/'.$file);
|
28 |
if ($plugins_subdir) {
|
29 |
while (($subfile = $plugins_subdir->read()) !== false) {
|
30 |
if (preg_match('|^\.+$|', $subfile))
|
31 |
+
{continue;}
|
32 |
if (preg_match('|\.css$|', $subfile))
|
33 |
+
{$plugin_files[] = "$direction/$file/$subfile";}
|
34 |
}
|
35 |
}
|
36 |
} else {
|
37 |
if (preg_match('|\.css$|', $file))
|
38 |
+
{$plugin_files[] = $direction . '/' . $file;}
|
39 |
}
|
40 |
}
|
41 |
}
|
50 |
* @since 1.9.22
|
51 |
*
|
52 |
* @param string $plugin_file Absolute path to the stylesheet.
|
53 |
+
*
|
54 |
+
*@return array The information about the stylesheet.
|
55 |
*/
|
56 |
static function ngg_get_cssfiles_data($plugin_file) {
|
57 |
|
63 |
preg_match("|Author:(.*)|i", $css_data, $author_name);
|
64 |
|
65 |
if (preg_match("|Version:(.*)|i", $css_data, $version))
|
66 |
+
{$version = trim($version[1]);}
|
67 |
else
|
68 |
+
{$version = '';}
|
69 |
|
70 |
$description = wptexturize(trim($description[1]));
|
71 |
|
100 |
* @since 1.9.22
|
101 |
*
|
102 |
*/
|
103 |
+
protected function processor() {
|
104 |
global $ngg;
|
105 |
$i = 0;
|
106 |
|
126 |
check_admin_referer('ngg_style');
|
127 |
|
128 |
if ( !current_user_can('edit_themes') )
|
129 |
+
{wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');}
|
130 |
|
131 |
$newcontent = stripslashes($_POST['newcontent']);
|
132 |
$old_path = $_POST['file'];
|
166 |
if (isset($_POST['movecss'])) {
|
167 |
|
168 |
if ( !current_user_can('edit_themes') )
|
169 |
+
{wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');}
|
170 |
|
171 |
$old_path = $_POST['oldpath'];
|
172 |
$new_path = NGG_CONTENT_DIR . "/ngg_styles/nggallery.css";
|
195 |
* @since 1.9.22
|
196 |
*
|
197 |
*/
|
198 |
+
public function display() {
|
199 |
+
|
200 |
+
parent::display();
|
201 |
+
|
202 |
global $ngg;
|
203 |
|
204 |
//the directions containing the css files
|
270 |
$title .= sprintf(__('Browsing %s','nggallery'), $act_css_name);
|
271 |
}
|
272 |
if ( $theme_css_exists )
|
273 |
+
{$title .= ' ' . __('(from the theme folder)','nggallery');}
|
274 |
$title .= '</h3>';
|
275 |
echo $title
|
276 |
?>
|
320 |
</div> <!-- wrap-->
|
321 |
<?php
|
322 |
} //end if ( !is_multisite() || is_super_admin() )
|
323 |
+
}
|
324 |
+
}
|
|
admin/class-ngg-tag-manager.php
ADDED
@@ -0,0 +1,298 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once("interface-ngg-displayable.php");
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Tag management page. Inspired from the Simple Tags plugin by Amaury Balmer.
|
7 |
+
* http://code.google.com/p/simple-tags/
|
8 |
+
*
|
9 |
+
* @todo Rewrite this into a decent class
|
10 |
+
*/
|
11 |
+
class NGG_Tag_Manager implements NGG_Displayable {
|
12 |
+
|
13 |
+
public function display() {
|
14 |
+
$action_status = array('message' => '', 'status' => 'ok');
|
15 |
+
|
16 |
+
if ( isset($_POST['tag_action']) ) {
|
17 |
+
|
18 |
+
check_admin_referer('nggallery_admin_tags');
|
19 |
+
|
20 |
+
if ( $_POST['tag_action'] == 'renametag' ) {
|
21 |
+
$oldtag = (isset($_POST['renametag_old'])) ? $_POST['renametag_old'] : '';
|
22 |
+
$newtag = (isset($_POST['renametag_new'])) ? $_POST['renametag_new'] : '';
|
23 |
+
$action_status = nggTags::rename_tags( $oldtag, $newtag );
|
24 |
+
} elseif ( $_POST['tag_action'] == 'deletetag' ) {
|
25 |
+
$todelete = (isset($_POST['deletetag_name'])) ? $_POST['deletetag_name'] : '';
|
26 |
+
$action_status = nggTags::delete_tags( $todelete );
|
27 |
+
} elseif ( $_POST['tag_action'] == 'editslug' ) {
|
28 |
+
$matchtag = (isset($_POST['tagname_match'])) ? $_POST['tagname_match'] : '';
|
29 |
+
$newslug = (isset($_POST['tagslug_new'])) ? $_POST['tagslug_new'] : '';
|
30 |
+
$action_status = nggTags::edit_tag_slug( $matchtag, $newslug );
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
// Some useful variables
|
35 |
+
$admin_base_url = admin_url() . 'admin.php?page=nggallery-tags';
|
36 |
+
$nb_tags = 50; // Number of tags to show on a single page
|
37 |
+
|
38 |
+
// Manage URL
|
39 |
+
$sort_order = ( isset($_GET['tag_sortorder']) ) ? esc_attr( stripslashes($_GET['tag_sortorder']) ) : 'desc';
|
40 |
+
$search_url = ( isset($_GET['search']) ) ? '&search=' . esc_attr ( stripslashes($_GET['search']) ) : '';
|
41 |
+
$action_url = $admin_base_url . '&tag_sortorder=' . $sort_order. $search_url;
|
42 |
+
|
43 |
+
// Tags Filters
|
44 |
+
$order_array = array(
|
45 |
+
'desc' => __('Most popular', 'nggallery'),
|
46 |
+
'asc' => __('Least used', 'nggallery'),
|
47 |
+
'natural' => __('Alphabetical', 'nggallery'));
|
48 |
+
|
49 |
+
// Build Tags Param
|
50 |
+
$param = 'hide_empty=false';
|
51 |
+
switch ($sort_order) {
|
52 |
+
case 'natural' :
|
53 |
+
$param .= '&number='.$nb_tags.'&orderby=name&order=asc';
|
54 |
+
break;
|
55 |
+
case 'asc' :
|
56 |
+
$param .= '&number='.$nb_tags.'&orderby=count&order=asc';
|
57 |
+
break;
|
58 |
+
default :
|
59 |
+
$param .= '&number='.$nb_tags.'&orderby=count&order=desc';
|
60 |
+
break;
|
61 |
+
}
|
62 |
+
|
63 |
+
|
64 |
+
// Search
|
65 |
+
if ( !empty($_GET['search']) ) {
|
66 |
+
$search = stripslashes($_GET['search']);
|
67 |
+
$param .= '&name__like=' . $search;
|
68 |
+
}
|
69 |
+
|
70 |
+
// Offset
|
71 |
+
if ( !empty($_GET['offset']) ) {
|
72 |
+
$param .= '&offset=' . intval( $_GET['offset'] );
|
73 |
+
}
|
74 |
+
|
75 |
+
// Navigation urls
|
76 |
+
if ( empty($_GET['offset']) ) {
|
77 |
+
$offset = 0;
|
78 |
+
} else {
|
79 |
+
$offset = intval( $_GET['offset'] );
|
80 |
+
}
|
81 |
+
|
82 |
+
$tag_count = (int)wp_count_terms('ngg_tag', 'ignore_empty=true');
|
83 |
+
|
84 |
+
if ($offset + $nb_tags < $tag_count) {
|
85 |
+
$next_offset = '' . min($offset + $nb_tags, $tag_count - $nb_tags);
|
86 |
+
} else {
|
87 |
+
$next_offset = '';
|
88 |
+
}
|
89 |
+
|
90 |
+
if ($nb_tags < $tag_count && $offset>0) {
|
91 |
+
$prev_offset = '' . max($offset - $nb_tags, 0);
|
92 |
+
} else {
|
93 |
+
$prev_offset = '';
|
94 |
+
}
|
95 |
+
|
96 |
+
?>
|
97 |
+
<style>
|
98 |
+
.disabled, .disabled:hover { border-color: #E5E5E5; color: #999999; cursor: default; }
|
99 |
+
</style>
|
100 |
+
|
101 |
+
<div class="wrap ngg-tag-wrap">
|
102 |
+
<h2><?php _e('Tags', 'nggallery'); ?></h2>
|
103 |
+
|
104 |
+
<?php if ($action_status['message']!='') : ?>
|
105 |
+
<div id="message" class="<?php echo ($action_status['status']=='ok' ? 'updated' : $action_status['status']); ?> fade">
|
106 |
+
<p><strong><?php echo $action_status['message']; ?></strong></p>
|
107 |
+
</div>
|
108 |
+
<?php endif; ?>
|
109 |
+
|
110 |
+
<table>
|
111 |
+
<tr>
|
112 |
+
<td class="list_tags">
|
113 |
+
<fieldset class="options" id="taglist">
|
114 |
+
<h3><?php _e('Existing Tags', 'nggallery'); ?></h3>
|
115 |
+
|
116 |
+
<form method="get">
|
117 |
+
<p>
|
118 |
+
<label for="search"><?php _e('Search tags', 'nggallery'); ?></label><br />
|
119 |
+
<input type="hidden" name="page" value="<?php echo esc_attr( stripslashes($_GET['page']) ); ?>" />
|
120 |
+
<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
|
121 |
+
<input type="text" name="search" id="search" size="10" value="<?php if (isset($_GET['search'])) echo esc_attr( stripslashes($_GET['search']) ); ?>" />
|
122 |
+
<input class="button" type="submit" value="<?php _e('Go', 'nggallery'); ?>" />
|
123 |
+
</p>
|
124 |
+
</form>
|
125 |
+
|
126 |
+
<div class="sort_order">
|
127 |
+
<h3><?php _e('Sort Order:', 'nggallery'); ?></h3>
|
128 |
+
<?php
|
129 |
+
$output = array();
|
130 |
+
foreach( $order_array as $sort => $title ) {
|
131 |
+
$output[] = ($sort == $sort_order) ? '<span style="color: red;">'.$title.'</span>' : '<a href="'. $admin_base_url . '&tag_sortorder=' . $sort . $search_url .'">'.$title.'</a>';
|
132 |
+
}
|
133 |
+
echo implode('<br />', $output);
|
134 |
+
$output = array();
|
135 |
+
unset($output);
|
136 |
+
?>
|
137 |
+
</div>
|
138 |
+
|
139 |
+
<div id="ajax_area_tagslist">
|
140 |
+
<ul>
|
141 |
+
<?php
|
142 |
+
$tags = (array) nggTags::find_tags($param, true);
|
143 |
+
foreach( $tags as $tag ) {
|
144 |
+
//TODO:Tag link should be call a list of images in manage gallery
|
145 |
+
//echo '<li><span>' . $tag->name . '</span> <a href="'.(ngg_get_tag_link( $tag->term_id )).'" title="'.sprintf(__('View all images tagged with %s', 'nggallery'), $tag->name).'">('.$tag->count.')</a></li>'."\n";
|
146 |
+
echo '<li><span>' . esc_html( $tag->name ). '</span> '.'('. esc_html( $tag->count ).')</li>'."\n";
|
147 |
+
|
148 |
+
}
|
149 |
+
unset($tags);
|
150 |
+
?>
|
151 |
+
</ul>
|
152 |
+
|
153 |
+
<?php if ( $prev_offset!='' || $next_offset!='' ) : ?>
|
154 |
+
<div class="navigation">
|
155 |
+
|
156 |
+
<?php if ($prev_offset!='') { ?>
|
157 |
+
<form method="get" style="display: inline;">
|
158 |
+
<span>
|
159 |
+
<input type="hidden" name="page" value="<?php echo esc_attr( stripslashes($_GET['page']) ); ?>" />
|
160 |
+
<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
|
161 |
+
<input type="hidden" name="offset" value="<?php echo $prev_offset; ?>" />
|
162 |
+
<input class="button" type="submit" value="« <?php _e('Previous tags', 'nggallery'); ?>" />
|
163 |
+
</span>
|
164 |
+
</form>
|
165 |
+
<?php } else { ?>
|
166 |
+
<span><span class="button disabled">« <?php _e('Previous tags', 'nggallery'); ?></span></span>
|
167 |
+
<?php } ?>
|
168 |
+
|
169 |
+
<?php if ($next_offset!='') { ?>
|
170 |
+
<form method="get" style="display: inline;">
|
171 |
+
<span>
|
172 |
+
<input type="hidden" name="page" value="<?php echo esc_attr( stripslashes($_GET['page']) ); ?>" />
|
173 |
+
<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
|
174 |
+
<input type="hidden" name="offset" value="<?php echo $next_offset; ?>" />
|
175 |
+
<input class="button" type="submit" value="<?php _e('Next tags', 'nggallery'); ?> »" />
|
176 |
+
</span>
|
177 |
+
</form>
|
178 |
+
<?php } else { ?>
|
179 |
+
<span><span class="button disabled"><?php _e('Previous tags', 'nggallery'); ?> »</span></span>
|
180 |
+
<?php } ?>
|
181 |
+
</div>
|
182 |
+
<?php endif; ?>
|
183 |
+
</div>
|
184 |
+
</fieldset>
|
185 |
+
</td>
|
186 |
+
<td class="forms_manage">
|
187 |
+
<h3><?php _e('Rename Tag', 'nggallery'); ?></h3>
|
188 |
+
<form action="<?php echo $action_url; ?>" method="post">
|
189 |
+
<input type="hidden" name="tag_action" value="renametag" />
|
190 |
+
<?php wp_nonce_field('nggallery_admin_tags'); ?>
|
191 |
+
|
192 |
+
<table class="form-table">
|
193 |
+
<tr valign="top">
|
194 |
+
<td colspan="2">
|
195 |
+
<p><?php _e('Enter the tag to rename and its new value. You can use this feature to merge tags too. Click "Rename" and all posts which use this tag will be updated.', 'nggallery'); ?></p>
|
196 |
+
<p><?php _e('You can specify multiple tags to rename by separating them with commas.', 'nggallery'); ?></p>
|
197 |
+
</td>
|
198 |
+
</tr>
|
199 |
+
<tr valign="top">
|
200 |
+
<th scope="row"><label for="renametag_old"><?php _e('Tag(s) to rename:', 'nggallery'); ?></label></th>
|
201 |
+
<td><input type="text" id="renametag_old" name="renametag_old" value="" size="40" /></td>
|
202 |
+
</tr>
|
203 |
+
<tr valign="top">
|
204 |
+
<th scope="row"><label for="renametag_new"><?php _e('New tag name(s):', 'nggallery'); ?></label></th>
|
205 |
+
<td>
|
206 |
+
<input type="text" id="renametag_new" name="renametag_new" value="" size="40" />
|
207 |
+
<input class="button" type="submit" name="rename" value="<?php _e('Rename', 'nggallery'); ?>" />
|
208 |
+
</td>
|
209 |
+
</tr>
|
210 |
+
</table>
|
211 |
+
</form>
|
212 |
+
|
213 |
+
<h3><?php _e('Delete Tag', 'nggallery'); ?></h3>
|
214 |
+
<form action="<?php echo $action_url; ?>" method="post">
|
215 |
+
<input type="hidden" name="tag_action" value="deletetag" />
|
216 |
+
<?php wp_nonce_field('nggallery_admin_tags'); ?>
|
217 |
+
|
218 |
+
<table class="form-table">
|
219 |
+
<tr valign="top">
|
220 |
+
<td colspan="2">
|
221 |
+
<p><?php _e('Enter the name of the tag to delete. This tag will be removed from all posts.', 'nggallery'); ?></p>
|
222 |
+
<p><?php _e('You can specify multiple tags to delete by separating them with commas', 'nggallery'); ?>.</p>
|
223 |
+
</td>
|
224 |
+
</tr>
|
225 |
+
<tr valign="top">
|
226 |
+
<th scope="row"><label for="deletetag_name"><?php _e('Tag(s) to delete:', 'nggallery'); ?></label></th>
|
227 |
+
<td>
|
228 |
+
<input type="text" id="deletetag_name" name="deletetag_name" value="" size="40" />
|
229 |
+
<input class="button" type="submit" name="delete" value="<?php _e('Delete', 'nggallery'); ?>" />
|
230 |
+
</td>
|
231 |
+
</tr>
|
232 |
+
</table>
|
233 |
+
</form>
|
234 |
+
|
235 |
+
<h3><?php _e('Edit Tag Slug', 'nggallery'); ?></h3>
|
236 |
+
<form action="<?php echo $action_url; ?>" method="post">
|
237 |
+
<input type="hidden" name="tag_action" value="editslug" />
|
238 |
+
<?php wp_nonce_field('nggallery_admin_tags'); ?>
|
239 |
+
|
240 |
+
<table class="form-table">
|
241 |
+
<tr valign="top">
|
242 |
+
<td colspan="2">
|
243 |
+
<p><?php _e('Enter the tag name to edit and its new slug. <a href="http://codex.wordpress.org/Glossary#Slug">Slug definition</a>', 'nggallery'); ?></p>
|
244 |
+
<p><?php _e('You can specify multiple tags to rename by separating them with commas.', 'nggallery'); ?></p>
|
245 |
+
</td>
|
246 |
+
</tr>
|
247 |
+
<tr valign="top">
|
248 |
+
<th scope="row"><label for="tagname_match"><?php _e('Tag(s) to match:', 'nggallery'); ?></label></th>
|
249 |
+
<td><input type="text" id="tagname_match" name="tagname_match" value="" size="40" /></td>
|
250 |
+
</tr>
|
251 |
+
<tr valign="top">
|
252 |
+
<th scope="row"><label for="tagslug_new"><?php _e('Slug(s) to set:', 'nggallery'); ?></label></th>
|
253 |
+
<td>
|
254 |
+
<input type="text" id="tagslug_new" name="tagslug_new" value="" size="40" />
|
255 |
+
<input class="button" type="submit" name="edit" value="<?php _e('Edit', 'nggallery'); ?>" />
|
256 |
+
</td>
|
257 |
+
</tr>
|
258 |
+
</table>
|
259 |
+
</form>
|
260 |
+
</td>
|
261 |
+
</tr>
|
262 |
+
</table>
|
263 |
+
<script type="text/javascript">
|
264 |
+
// <![CDATA[
|
265 |
+
// Register onclick event
|
266 |
+
function registerClick() {
|
267 |
+
jQuery('#taglist').find('ul li span').bind("click", function(){
|
268 |
+
addTag(this.innerHTML, "renametag_old");
|
269 |
+
addTag(this.innerHTML, "deletetag_name");
|
270 |
+
addTag(this.innerHTML, "tagname_match");
|
271 |
+
});
|
272 |
+
}
|
273 |
+
|
274 |
+
// Register initial event
|
275 |
+
jQuery(document).ready(function() {
|
276 |
+
registerClick();
|
277 |
+
});
|
278 |
+
|
279 |
+
// Add tag into input
|
280 |
+
function addTag( tag, name_element ) {
|
281 |
+
var input_element = document.getElementById( name_element );
|
282 |
+
|
283 |
+
if ( input_element.value.length > 0 && !input_element.value.match(/,\s*$/) )
|
284 |
+
input_element.value += ", ";
|
285 |
+
|
286 |
+
var re = new RegExp(tag + ",");
|
287 |
+
if ( !input_element.value.match(re) )
|
288 |
+
input_element.value += tag + ", ";
|
289 |
+
|
290 |
+
return true;
|
291 |
+
}
|
292 |
+
// ]]>
|
293 |
+
</script>
|
294 |
+
</div>
|
295 |
+
|
296 |
+
<?php
|
297 |
+
}
|
298 |
+
}
|
admin/css/menu.css
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
#icon-nextgen-gallery {
|
2 |
-
background:url("../images/nextgen_32_grey.png") no-repeat scroll 1px 1px transparent;
|
3 |
-
}
|
|
|
|
|
|
admin/css/nggColorPicker.css
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
#colorSelector{
|
2 |
-
background:transparent url(../images/select.png) repeat scroll 0 0;
|
3 |
-
height:36px;
|
4 |
-
position:relative;
|
5 |
-
width:36px;
|
6 |
-
}
|
7 |
-
#colorSelector div{
|
8 |
-
background:transparent url(../images/select.png) repeat scroll center center;
|
9 |
-
height:30px;
|
10 |
-
left:3px;
|
11 |
-
position:absolute;
|
12 |
-
top:3px;
|
13 |
-
width:30px;
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/css/ngg_social_media.css
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
/** Disabled for now
|
2 |
-
#ngg_social_media {
|
3 |
-
margin-top: -2px;
|
4 |
-
width: 85%;
|
5 |
-
position: relative;
|
6 |
-
overflow: hidden;
|
7 |
-
height: 20px;
|
8 |
-
}
|
9 |
-
|
10 |
-
.gallery_page_nggallery-manage-gallery #ngg_social_media,
|
11 |
-
.gallery_page_nggallery-manage-album #ngg_social_media,
|
12 |
-
.gallery_page_nggallery-tags #ngg_social_media,
|
13 |
-
.gallery_page_nggallery-roles #ngg_social_media,
|
14 |
-
.gallery_page_nggallery-about #ngg_social_media,
|
15 |
-
.toplevel_page_nextgen-gallery #ngg_social_media {
|
16 |
-
float: right;
|
17 |
-
width: 55%;
|
18 |
-
}
|
19 |
-
|
20 |
-
#ngg_facebook_like {
|
21 |
-
position: absolute;
|
22 |
-
right: 0px;
|
23 |
-
width: 81px;
|
24 |
-
overflow: hidden;
|
25 |
-
}
|
26 |
-
|
27 |
-
#ngg_social_media .twitter-follow-button {
|
28 |
-
position: absolute;
|
29 |
-
right: 85px;
|
30 |
-
}
|
31 |
-
|
32 |
-
#slider {
|
33 |
-
margin-top: 5px !important;
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/css/nggadmin.css
CHANGED
@@ -3,156 +3,177 @@
|
|
3 |
/* SETTINGS FOR Overview Gallery */
|
4 |
|
5 |
#newversion {
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
}
|
11 |
|
12 |
.ngg-dashboard-widget ul.settings span {
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
}
|
17 |
|
18 |
#overview_right_now ul {
|
19 |
-
|
20 |
}
|
21 |
|
22 |
#overview_right_now li {
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
}
|
27 |
|
28 |
#overview_right_now li a {
|
29 |
-
|
30 |
}
|
31 |
|
32 |
#overview_right_now .image-count a:before {
|
33 |
-
|
34 |
}
|
35 |
|
36 |
#overview_right_now .album-count a:before {
|
37 |
-
|
38 |
}
|
39 |
|
40 |
#overview_right_now .gallery-count a:before {
|
41 |
-
|
42 |
}
|
43 |
|
44 |
#overview_right_now li a:before {
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
}
|
57 |
|
58 |
.ngg-list {
|
59 |
-
|
60 |
-
|
61 |
}
|
62 |
|
63 |
.plugin-card .desc, .plugin-card .name {
|
64 |
-
|
65 |
}
|
66 |
|
67 |
/* Thickbox settings for Overview */
|
68 |
#TB_title {
|
69 |
-
|
70 |
-
|
71 |
}
|
72 |
|
73 |
#TB_ajaxWindowTitle {
|
74 |
-
|
75 |
}
|
76 |
|
77 |
.tb-close-icon {
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
}
|
84 |
|
85 |
.tb-close-icon:before {
|
86 |
-
|
87 |
-
|
88 |
}
|
89 |
|
90 |
.tb-close-icon:hover {
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
}
|
96 |
|
97 |
.ngg-overview .postbox .handlediv {
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
}
|
102 |
|
103 |
.warning {
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
}
|
110 |
|
111 |
#plugin_check img {
|
112 |
-
|
113 |
}
|
114 |
|
115 |
#plugin_check p.message {
|
116 |
-
|
117 |
-
|
118 |
}
|
119 |
|
120 |
/* SETTING FOR FLASH UPLOAD BUTTON */
|
121 |
.swfupload {
|
122 |
-
|
123 |
-
|
124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
}
|
126 |
|
127 |
/* SETTINGS FOR THE OPTIONS TABLE */
|
128 |
.ngg-options th {
|
129 |
-
|
130 |
}
|
131 |
|
132 |
a.switch-expert {
|
133 |
-
|
134 |
}
|
135 |
|
136 |
/* WATERMARK */
|
137 |
#wm-preview {
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
}
|
148 |
|
149 |
#wm-preview h3 {
|
150 |
-
|
151 |
}
|
152 |
|
153 |
#wm-position {
|
154 |
-
|
155 |
-
|
156 |
}
|
157 |
|
158 |
#wm-preview-container {
|
@@ -168,360 +189,404 @@ a.switch-expert {
|
|
168 |
}
|
169 |
|
170 |
.wm-table {
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
}
|
176 |
|
177 |
.wm-table td {
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
}
|
182 |
|
183 |
.wm-table th {
|
184 |
-
|
185 |
-
|
186 |
}
|
187 |
|
188 |
/* SETTINGS FOR MANAGE TABLE */
|
189 |
|
190 |
p#ngg-inlinebutton {
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
}
|
196 |
|
197 |
.fixed .column-thumbnail {
|
198 |
-
|
199 |
}
|
200 |
|
201 |
.fixed .column-thumbnail img {
|
202 |
-
|
203 |
-
|
204 |
}
|
205 |
|
206 |
.fixed .column-id, .fixed .column-quantity {
|
207 |
-
|
|
|
|
|
|
|
|
|
208 |
}
|
209 |
|
210 |
.fixed .column-title {
|
211 |
-
|
212 |
}
|
213 |
|
214 |
.fixed .column-description {
|
215 |
-
|
216 |
}
|
217 |
|
218 |
.fixed .column-exclude, .fixed .column-action, .fixed .column-delete {
|
219 |
-
|
220 |
}
|
221 |
|
222 |
.fixed .column-page_id {
|
223 |
-
|
|
|
|
|
|
|
|
|
224 |
}
|
225 |
|
226 |
.images-grey-bubble {
|
227 |
-
|
228 |
-
|
229 |
}
|
230 |
|
231 |
.images-grey-bubble:before {
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
}
|
243 |
|
244 |
@media screen and (max-width: 782px) {
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
}
|
257 |
|
258 |
/* SETTINGS FOR GALLERY PROPERTIES */
|
259 |
#gallery-properties {
|
260 |
-
|
261 |
}
|
262 |
|
263 |
#gallery-properties td {
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
}
|
269 |
|
270 |
#gallery-properties #author {
|
271 |
-
|
272 |
}
|
273 |
|
274 |
/* SETTINGS FOR ADD NEW */
|
275 |
.add-new-form {
|
276 |
-
|
277 |
}
|
278 |
|
279 |
.add-new-form .add-new-h2 {
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
}
|
294 |
|
295 |
/* SETTINGS FOR PROGRESS BAR */
|
296 |
|
297 |
div .progressborder {
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
}
|
309 |
|
310 |
div .progressbar {
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
}
|
320 |
|
321 |
div .progressbar span {
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
}
|
328 |
|
329 |
.show_details {
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
}
|
337 |
|
338 |
.show_details span {
|
339 |
-
|
340 |
-
|
341 |
}
|
342 |
|
343 |
.show_details:hover {
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
}
|
348 |
|
349 |
/* SETTINGS FOR ALBUM PAGE */
|
350 |
|
351 |
.albumnav select[name="act_album"] {
|
352 |
-
|
353 |
}
|
354 |
|
355 |
.albumnav span {
|
356 |
-
|
357 |
}
|
358 |
|
359 |
div .groupItem {
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
}
|
365 |
|
366 |
div .innerhandle {
|
367 |
-
|
368 |
}
|
369 |
|
370 |
.groupItem .item_top {
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
}
|
382 |
|
383 |
.groupItem .album_obj {
|
384 |
-
|
385 |
}
|
386 |
|
387 |
.groupItem .item_top a {
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
}
|
392 |
|
393 |
.groupItem .item_top a:hover {
|
394 |
-
|
395 |
}
|
396 |
|
397 |
.itemContent {
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
}
|
402 |
|
403 |
.itemContent p {
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
}
|
410 |
|
411 |
.inlinepicture {
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
}
|
417 |
|
418 |
.inlinepicture img {
|
419 |
-
|
420 |
-
|
421 |
}
|
422 |
|
423 |
.sort_placeholder {
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
}
|
428 |
|
429 |
.container {
|
430 |
-
|
431 |
}
|
432 |
|
433 |
.target-album {
|
434 |
-
|
435 |
}
|
436 |
|
437 |
.widget-right {
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
}
|
442 |
|
443 |
.widget-holder {
|
444 |
-
|
445 |
-
|
446 |
}
|
447 |
|
448 |
.target {
|
449 |
-
|
450 |
}
|
451 |
|
452 |
div.widget-top h3 {
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
}
|
459 |
|
460 |
div.widget-top {
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
}
|
465 |
|
466 |
.ui-autocomplete-start {
|
467 |
-
|
468 |
}
|
469 |
|
470 |
/* SETTINGS FOR SORT GALLERY */
|
471 |
|
472 |
#sortGallery {
|
473 |
-
|
474 |
}
|
475 |
|
476 |
p#sortButton {
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
}
|
482 |
|
|
|
483 |
.imageBox, .imageBoxHighlighted {
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
490 |
}
|
491 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
.imageBox_theImage {
|
493 |
-
|
494 |
-
|
495 |
|
496 |
-
|
497 |
-
|
498 |
}
|
499 |
|
|
|
500 |
.imageBox_label {
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
}
|
508 |
|
509 |
/* UPGRADE PAGE */
|
510 |
|
511 |
.error_inline {
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
}
|
517 |
|
518 |
/*Image Date Select*/
|
519 |
.datepicker {
|
520 |
-
|
521 |
}
|
522 |
|
523 |
.change {
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
/* SETTINGS FOR Overview Gallery */
|
4 |
|
5 |
#newversion {
|
6 |
+
border: 1px solid #cccccc;
|
7 |
+
margin-right: 7px;
|
8 |
+
margin-top: 10px;
|
9 |
+
padding: 2px;
|
10 |
}
|
11 |
|
12 |
.ngg-dashboard-widget ul.settings span {
|
13 |
+
padding-left: 10px;
|
14 |
+
color: #2583ad;
|
15 |
+
font-weight: bold;
|
16 |
}
|
17 |
|
18 |
#overview_right_now ul {
|
19 |
+
overflow: hidden;
|
20 |
}
|
21 |
|
22 |
#overview_right_now li {
|
23 |
+
width: 50%;
|
24 |
+
float: left;
|
25 |
+
margin-bottom: 10px;
|
26 |
}
|
27 |
|
28 |
#overview_right_now li a {
|
29 |
+
text-decoration: none;
|
30 |
}
|
31 |
|
32 |
#overview_right_now .image-count a:before {
|
33 |
+
content: "\f128";
|
34 |
}
|
35 |
|
36 |
#overview_right_now .album-count a:before {
|
37 |
+
content: "\f233";
|
38 |
}
|
39 |
|
40 |
#overview_right_now .gallery-count a:before {
|
41 |
+
content: "\f161";
|
42 |
}
|
43 |
|
44 |
#overview_right_now li a:before {
|
45 |
+
font: 400 20px/1 dashicons;
|
46 |
+
display: block;
|
47 |
+
float: left;
|
48 |
+
margin: 0 5px 0 0;
|
49 |
+
padding: 0;
|
50 |
+
text-indent: 0;
|
51 |
+
text-align: center;
|
52 |
+
position: relative;
|
53 |
+
-webkit-font-smoothing: antialiased;
|
54 |
+
text-decoration: none !important;
|
55 |
+
color: #888;
|
56 |
}
|
57 |
|
58 |
.ngg-list {
|
59 |
+
margin-left: 30px;
|
60 |
+
list-style: disc outside;
|
61 |
}
|
62 |
|
63 |
.plugin-card .desc, .plugin-card .name {
|
64 |
+
margin-left: initial;
|
65 |
}
|
66 |
|
67 |
/* Thickbox settings for Overview */
|
68 |
#TB_title {
|
69 |
+
float: left;
|
70 |
+
height: 1px;
|
71 |
}
|
72 |
|
73 |
#TB_ajaxWindowTitle {
|
74 |
+
display: none;
|
75 |
}
|
76 |
|
77 |
.tb-close-icon {
|
78 |
+
left: auto;
|
79 |
+
right: -30px;
|
80 |
+
color: #eee;
|
81 |
+
-webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
|
82 |
+
transition: color .1s ease-in-out, background .1s ease-in-out;
|
83 |
}
|
84 |
|
85 |
.tb-close-icon:before {
|
86 |
+
content: "\f335";
|
87 |
+
font-size: 32px;
|
88 |
}
|
89 |
|
90 |
.tb-close-icon:hover {
|
91 |
+
color: #2ea2cc;
|
92 |
+
outline: 0;
|
93 |
+
-webkit-box-shadow: none;
|
94 |
+
box-shadow: none;
|
95 |
}
|
96 |
|
97 |
.ngg-overview .postbox .handlediv {
|
98 |
+
float: right;
|
99 |
+
height: 24px;
|
100 |
+
width: 24px;
|
101 |
}
|
102 |
|
103 |
.warning {
|
104 |
+
color: #9f6000;
|
105 |
+
background-color: #feefb3;
|
106 |
+
border: 1px solid;
|
107 |
+
margin: 5px 0;
|
108 |
+
padding: 5px;
|
109 |
}
|
110 |
|
111 |
#plugin_check img {
|
112 |
+
float: right;
|
113 |
}
|
114 |
|
115 |
#plugin_check p.message {
|
116 |
+
font-size: 90%;
|
117 |
+
color: #666;
|
118 |
}
|
119 |
|
120 |
/* SETTING FOR FLASH UPLOAD BUTTON */
|
121 |
.swfupload {
|
122 |
+
position: absolute;
|
123 |
+
z-index: 1;
|
124 |
+
vertical-align: top;
|
125 |
+
}
|
126 |
+
|
127 |
+
#drag-drop-area {
|
128 |
+
border: 4px dashed #bbb;
|
129 |
+
height: 150px;
|
130 |
+
padding:20px
|
131 |
+
}
|
132 |
+
|
133 |
+
.drag-drop-inside {
|
134 |
+
margin:auto;
|
135 |
+
text-align:center;
|
136 |
+
width: 250px;
|
137 |
+
display: inline;
|
138 |
+
}
|
139 |
+
|
140 |
+
.drag-drop-inside p {
|
141 |
+
display: block;
|
142 |
+
}
|
143 |
+
|
144 |
+
.form-table td.gallery-selector {
|
145 |
+
padding: 0;
|
146 |
}
|
147 |
|
148 |
/* SETTINGS FOR THE OPTIONS TABLE */
|
149 |
.ngg-options th {
|
150 |
+
width: 22%;
|
151 |
}
|
152 |
|
153 |
a.switch-expert {
|
154 |
+
text-decoration: none;
|
155 |
}
|
156 |
|
157 |
/* WATERMARK */
|
158 |
#wm-preview {
|
159 |
+
float: right;
|
160 |
+
font-size: 90%;
|
161 |
+
width: 35%;
|
162 |
+
border: 1px solid #cccccc;
|
163 |
+
padding: 1em;
|
164 |
+
margin-bottom: 10px;
|
165 |
+
margin-left: 10px;
|
166 |
+
margin-right: 8px;
|
167 |
+
background: white;
|
168 |
}
|
169 |
|
170 |
#wm-preview h3 {
|
171 |
+
margin: 0;
|
172 |
}
|
173 |
|
174 |
#wm-position {
|
175 |
+
width: 100%;
|
176 |
+
margin-left: 40px;
|
177 |
}
|
178 |
|
179 |
#wm-preview-container {
|
189 |
}
|
190 |
|
191 |
.wm-table {
|
192 |
+
border-collapse: collapse;
|
193 |
+
margin-top: 1em;
|
194 |
+
width: 60%;
|
195 |
+
clear: none;
|
196 |
}
|
197 |
|
198 |
.wm-table td {
|
199 |
+
line-height: 20px;
|
200 |
+
margin-bottom: 9px;
|
201 |
+
padding: 10px;
|
202 |
}
|
203 |
|
204 |
.wm-table th {
|
205 |
+
padding: 10px;
|
206 |
+
text-align: left;
|
207 |
}
|
208 |
|
209 |
/* SETTINGS FOR MANAGE TABLE */
|
210 |
|
211 |
p#ngg-inlinebutton {
|
212 |
+
float: right;
|
213 |
+
margin: 0;
|
214 |
+
position: relative;
|
215 |
+
top: -25pt;
|
216 |
}
|
217 |
|
218 |
.fixed .column-thumbnail {
|
219 |
+
width: 85px;
|
220 |
}
|
221 |
|
222 |
.fixed .column-thumbnail img {
|
223 |
+
max-height: 80px;
|
224 |
+
max-width: 80px;
|
225 |
}
|
226 |
|
227 |
.fixed .column-id, .fixed .column-quantity {
|
228 |
+
width: 3.5em;
|
229 |
+
}
|
230 |
+
|
231 |
+
.fixed .column-gid {
|
232 |
+
width: 3.5em;
|
233 |
}
|
234 |
|
235 |
.fixed .column-title {
|
236 |
+
width: 35%;
|
237 |
}
|
238 |
|
239 |
.fixed .column-description {
|
240 |
+
width: 40%;
|
241 |
}
|
242 |
|
243 |
.fixed .column-exclude, .fixed .column-action, .fixed .column-delete {
|
244 |
+
width: 10%;
|
245 |
}
|
246 |
|
247 |
.fixed .column-page_id {
|
248 |
+
width: 10%;
|
249 |
+
}
|
250 |
+
|
251 |
+
.manager-save {
|
252 |
+
margin: 1px 8px 0 0 !important;
|
253 |
}
|
254 |
|
255 |
.images-grey-bubble {
|
256 |
+
height: 16px;
|
257 |
+
width: 16px;
|
258 |
}
|
259 |
|
260 |
.images-grey-bubble:before {
|
261 |
+
content: '\f233';
|
262 |
+
font: 400 20px/.5 dashicons;
|
263 |
+
display: inline-block;
|
264 |
+
padding: 0;
|
265 |
+
top: 4px;
|
266 |
+
left: -4px;
|
267 |
+
position: relative;
|
268 |
+
vertical-align: top;
|
269 |
+
-webkit-font-smoothing: antialiased;
|
270 |
+
text-decoration: none !important;
|
271 |
}
|
272 |
|
273 |
@media screen and (max-width: 782px) {
|
274 |
+
.fixed .column-page_id, .fixed .column-id, .fixed .column-description {
|
275 |
+
display: none;
|
276 |
+
}
|
277 |
|
278 |
+
.fixed .column-quantity {
|
279 |
+
width: 35px;
|
280 |
+
}
|
281 |
|
282 |
+
.fixed .column-title {
|
283 |
+
width: initial;
|
284 |
+
}
|
285 |
}
|
286 |
|
287 |
/* SETTINGS FOR GALLERY PROPERTIES */
|
288 |
#gallery-properties {
|
289 |
+
font-size: inherit;
|
290 |
}
|
291 |
|
292 |
#gallery-properties td {
|
293 |
+
margin-bottom: 0;
|
294 |
+
padding: 0;
|
295 |
+
vertical-align: top;
|
296 |
+
text-align: left;
|
297 |
}
|
298 |
|
299 |
#gallery-properties #author {
|
300 |
+
width: 95%;
|
301 |
}
|
302 |
|
303 |
/* SETTINGS FOR ADD NEW */
|
304 |
.add-new-form {
|
305 |
+
display: inline;
|
306 |
}
|
307 |
|
308 |
.add-new-form .add-new-h2 {
|
309 |
+
display: inline;
|
310 |
+
color: #0074a2;
|
311 |
+
-webkit-transition-property: border, background, color;
|
312 |
+
-moz-transition-property: border, background, color;
|
313 |
+
transition-property: border, background, color;
|
314 |
+
-webkit-transition-duration: .05s;
|
315 |
+
-moz-transition-duration: .05s;
|
316 |
+
transition-duration: .05s;
|
317 |
+
-webkit-transition-timing-function: ease-in-out;
|
318 |
+
-moz-transition-timing-function: ease-in-out;
|
319 |
+
transition-timing-function: ease-in-out;
|
320 |
+
cursor: pointer;
|
321 |
+
line-height: initial;
|
322 |
}
|
323 |
|
324 |
/* SETTINGS FOR PROGRESS BAR */
|
325 |
|
326 |
div .progressborder {
|
327 |
+
border: 1px solid #dddddd;
|
328 |
+
display: block;
|
329 |
+
height: 30px;
|
330 |
+
background-color: #464646;
|
331 |
+
width: 100%;
|
332 |
+
margin-top: 15px;
|
333 |
+
margin-bottom: 15px;
|
334 |
+
-moz-border-radius: 5px;
|
335 |
+
-webkit-border-radius: 5px;
|
336 |
+
border-radius: 5px;
|
337 |
}
|
338 |
|
339 |
div .progressbar {
|
340 |
+
border: medium none;
|
341 |
+
display: block;
|
342 |
+
height: 30px;
|
343 |
+
background-color: #d54e21;
|
344 |
+
width: 0;
|
345 |
+
-moz-border-radius: 5px;
|
346 |
+
-webkit-border-radius: 5px;
|
347 |
+
border-radius: 5px;
|
348 |
}
|
349 |
|
350 |
div .progressbar span {
|
351 |
+
display: inline;
|
352 |
+
position: absolute;
|
353 |
+
color: white;
|
354 |
+
font-weight: bold;
|
355 |
+
padding: 5px 0 0 5px;
|
356 |
}
|
357 |
|
358 |
.show_details {
|
359 |
+
height: 16px;
|
360 |
+
line-height: 20px;
|
361 |
+
overflow: hidden;
|
362 |
+
min-width: 8em;
|
363 |
+
padding: 3px;
|
364 |
+
cursor: pointer;
|
365 |
}
|
366 |
|
367 |
.show_details span {
|
368 |
+
border-bottom: 1px solid #999;
|
369 |
+
white-space: pre;
|
370 |
}
|
371 |
|
372 |
.show_details:hover {
|
373 |
+
height: auto;
|
374 |
+
overflow: visible;
|
375 |
+
border: 1px solid #999;
|
376 |
}
|
377 |
|
378 |
/* SETTINGS FOR ALBUM PAGE */
|
379 |
|
380 |
.albumnav select[name="act_album"] {
|
381 |
+
width: 150px;
|
382 |
}
|
383 |
|
384 |
.albumnav span {
|
385 |
+
padding-left: 50px;
|
386 |
}
|
387 |
|
388 |
div .groupItem {
|
389 |
+
cursor: move;
|
390 |
+
width: 295px;
|
391 |
+
padding: 5px;
|
392 |
+
line-height: 1.5;
|
393 |
}
|
394 |
|
395 |
div .innerhandle {
|
396 |
+
background-color: #fbfbfb;
|
397 |
}
|
398 |
|
399 |
.groupItem .item_top {
|
400 |
+
background-color: #2683ae;
|
401 |
+
color: #ffffff;
|
402 |
+
font-weight: bold;
|
403 |
+
line-height: 28px;
|
404 |
+
height: 28px;
|
405 |
+
padding: 0 5px;
|
406 |
+
-moz-border-radius: 3px;
|
407 |
+
-khtml-border-radius: 3px;
|
408 |
+
-webkit-border-radius: 3px;
|
409 |
+
border-radius: 3px;
|
410 |
}
|
411 |
|
412 |
.groupItem .album_obj {
|
413 |
+
background-color: #d54e21;
|
414 |
}
|
415 |
|
416 |
.groupItem .item_top a {
|
417 |
+
color: #ffffff;
|
418 |
+
float: right;
|
419 |
+
text-decoration: none;
|
420 |
}
|
421 |
|
422 |
.groupItem .item_top a:hover {
|
423 |
+
color: #ffffff;
|
424 |
}
|
425 |
|
426 |
.itemContent {
|
427 |
+
border: 1px solid #dfdfdf;
|
428 |
+
border-top: 0 none;
|
429 |
+
padding: 10px;
|
430 |
}
|
431 |
|
432 |
.itemContent p {
|
433 |
+
border: 0;
|
434 |
+
margin: 0;
|
435 |
+
padding: 0;
|
436 |
+
overflow-x: hidden;
|
437 |
+
text-overflow: ellipsis;
|
438 |
}
|
439 |
|
440 |
.inlinepicture {
|
441 |
+
float: left;
|
442 |
+
display: inline;
|
443 |
+
margin: 0;
|
444 |
+
padding: 0 3px 1px;
|
445 |
}
|
446 |
|
447 |
.inlinepicture img {
|
448 |
+
margin: 3px;
|
449 |
+
max-height: 60px;
|
450 |
}
|
451 |
|
452 |
.sort_placeholder {
|
453 |
+
border: 1px dashed #bba !important;
|
454 |
+
margin: 5px;
|
455 |
+
background: #f9f9f9;
|
456 |
}
|
457 |
|
458 |
.container {
|
459 |
+
margin-top: 10px;
|
460 |
}
|
461 |
|
462 |
.target-album {
|
463 |
+
margin: 10px 685px 10px 10px;
|
464 |
}
|
465 |
|
466 |
.widget-right {
|
467 |
+
float: right;
|
468 |
+
margin: 0 10px;
|
469 |
+
width: 315px;
|
470 |
}
|
471 |
|
472 |
.widget-holder {
|
473 |
+
min-height: 400px;
|
474 |
+
padding-top: 1px;
|
475 |
}
|
476 |
|
477 |
.target {
|
478 |
+
background-color: #f1f1f1;
|
479 |
}
|
480 |
|
481 |
div.widget-top h3 {
|
482 |
+
text-align: center;
|
483 |
+
line-height: 25px;
|
484 |
+
margin: 0;
|
485 |
+
padding: 5px 12px;
|
486 |
+
font-size: 13px;
|
487 |
}
|
488 |
|
489 |
div.widget-top {
|
490 |
+
text-shadow: 0 1px 0 #ffffff;
|
491 |
+
background: repeat-x 0 0;
|
492 |
+
font-size: 13px;
|
493 |
}
|
494 |
|
495 |
.ui-autocomplete-start {
|
496 |
+
background-position: 99% center;
|
497 |
}
|
498 |
|
499 |
/* SETTINGS FOR SORT GALLERY */
|
500 |
|
501 |
#sortGallery {
|
502 |
+
position: relative;
|
503 |
}
|
504 |
|
505 |
p#sortButton {
|
506 |
+
margin: 0;
|
507 |
+
position: absolute;
|
508 |
+
right: 0;
|
509 |
+
top: 0;
|
510 |
}
|
511 |
|
512 |
+
/*DELETE*/
|
513 |
.imageBox, .imageBoxHighlighted {
|
514 |
+
width: 130px; /* Total width of each image box */
|
515 |
+
height: 160px; /* Total height of each image box */
|
516 |
+
float: left;
|
517 |
+
overflow: hidden;
|
518 |
+
text-overflow: ellipsis;
|
519 |
+
padding: 5px;
|
520 |
+
}
|
521 |
+
|
522 |
+
.image-box {
|
523 |
+
width: 130px; /* Total width of each image box */
|
524 |
+
height: 160px; /* Total height of each image box */
|
525 |
+
float: left;
|
526 |
+
padding: 5px;
|
527 |
+
text-align: center;
|
528 |
}
|
529 |
|
530 |
+
.image-box img {
|
531 |
+
width: auto;
|
532 |
+
height: auto;
|
533 |
+
max-width: 100%;
|
534 |
+
max-height: 100px
|
535 |
+
}
|
536 |
+
|
537 |
+
.image-box p {
|
538 |
+
overflow: hidden;
|
539 |
+
text-overflow: ellipsis;
|
540 |
+
font-size: 11px;
|
541 |
+
}
|
542 |
+
|
543 |
+
/*DELETE*/
|
544 |
.imageBox_theImage {
|
545 |
+
width: 110px; /* Width of image */
|
546 |
+
height: 125px; /* Height of image */
|
547 |
|
548 |
+
background: no-repeat center;
|
549 |
+
margin: 0 auto 2px;
|
550 |
}
|
551 |
|
552 |
+
/*DELETE*/
|
553 |
.imageBox_label {
|
554 |
+
/* Title of images - both selected and not selected */
|
555 |
+
text-align: center;
|
556 |
+
font-family: arial, serif;
|
557 |
+
font-size: 11px;
|
558 |
+
padding-top: 2px;
|
559 |
+
margin: 0 auto;
|
560 |
}
|
561 |
|
562 |
/* UPGRADE PAGE */
|
563 |
|
564 |
.error_inline {
|
565 |
+
background: #ffebe8 none repeat scroll 0;
|
566 |
+
border: 1px solid #cc0000;
|
567 |
+
margin: 5px auto;
|
568 |
+
padding: 10px;
|
569 |
}
|
570 |
|
571 |
/*Image Date Select*/
|
572 |
.datepicker {
|
573 |
+
display: none;
|
574 |
}
|
575 |
|
576 |
.change {
|
577 |
+
font-size: 9px;
|
578 |
+
cursor: pointer;
|
579 |
+
margin-left: 15px;
|
580 |
+
}
|
581 |
+
|
582 |
+
/* Settings for the tag page */
|
583 |
+
.ngg-tag-wrap .auto_list{width:98%;margin:3px 0;padding:3px 5px;}
|
584 |
+
.ngg-tag-wrap .list_tags {width:240px;vertical-align:top;}
|
585 |
+
.ngg-tag-wrap .forms_manage {vertical-align:top;}
|
586 |
+
.ngg-tag-wrap .forms_manage h3 {margin-bottom:5px;}
|
587 |
+
.ngg-tag-wrap .forms_manage .form-table {margin-top:0;}
|
588 |
+
.ngg-tag-wrap .sort_order h3 {margin:0;}
|
589 |
+
.ngg-tag-wrap #ajax_area_tagslist {}
|
590 |
+
.ngg-tag-wrap #ajax_area_tagslist ul{list-style:square;margin:10px 0 10px 20px;padding:0;}
|
591 |
+
.ngg-tag-wrap #ajax_area_tagslist ul li{margin:0;padding:0;line-height:1.4;}
|
592 |
+
.ngg-tag-wrap #ajax_area_tagslist ul li span{cursor:pointer;}
|
admin/css/tags-admin.css
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
.ngg_wrap .auto_list{width:98%;margin:3px 0;padding:3px 5px;}
|
2 |
-
.ngg_wrap .list_tags {width:240px;vertical-align:top;}
|
3 |
-
.ngg_wrap .forms_manage {vertical-align:top;}
|
4 |
-
.ngg_wrap .forms_manage h3 {margin-bottom:5px;}
|
5 |
-
.ngg_wrap .forms_manage .form-table {margin-top:0;}
|
6 |
-
.ngg_wrap .sort_order h3 {margin:0;}
|
7 |
-
.ngg_wrap #ajax_area_tagslist {}
|
8 |
-
.ngg_wrap #ajax_area_tagslist ul{list-style:square;margin:10px 0 10px 20px;padding:0;}
|
9 |
-
.ngg_wrap #ajax_area_tagslist ul li{margin:0;padding:0;line-height:1.4;}
|
10 |
-
.ngg_wrap #ajax_area_tagslist ul li span{cursor:pointer;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/edit-thumbnail.php
DELETED
@@ -1,166 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
|
5 |
-
Custom thumbnail for NGG
|
6 |
-
Author : Simone Fumagalli | simone@iliveinperego.com
|
7 |
-
More info and update : http://www.iliveinperego.com/custom_thumbnail_for_ngg/
|
8 |
-
|
9 |
-
Credits:
|
10 |
-
NextGen Gallery : Alex Rabe | http://alexrabe.boelinger.com/wordpress-plugins/nextgen-gallery/
|
11 |
-
jCrop : Kelly Hallman <khallman@wrack.org> | http://deepliquid.com/content/Jcrop.html
|
12 |
-
|
13 |
-
**/
|
14 |
-
|
15 |
-
require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
|
16 |
-
require_once( NGGALLERY_ABSPATH . '/lib/image.php' );
|
17 |
-
|
18 |
-
if ( !is_user_logged_in() )
|
19 |
-
die(__('Cheatin’ uh?'));
|
20 |
-
|
21 |
-
if ( !current_user_can('NextGEN Manage gallery') )
|
22 |
-
die(__('Cheatin’ uh?'));
|
23 |
-
|
24 |
-
global $wpdb;
|
25 |
-
|
26 |
-
$id = (int) $_GET['id'];
|
27 |
-
|
28 |
-
// let's get the image data
|
29 |
-
$picture = nggdb::find_image($id);
|
30 |
-
|
31 |
-
include_once( nggGallery::graphic_library() );
|
32 |
-
$ngg_options=get_option('ngg_options');
|
33 |
-
|
34 |
-
$thumb = new ngg_Thumbnail($picture->imagePath, TRUE);
|
35 |
-
$thumb->resize(350,350);
|
36 |
-
// we need the new dimension
|
37 |
-
$resizedPreviewInfo = $thumb->newDimensions;
|
38 |
-
$thumb->destruct();
|
39 |
-
|
40 |
-
$preview_image = NGGALLERY_URLPATH . 'nggshow.php?pid=' . $picture->pid . '&width=350&height=350';
|
41 |
-
$imageInfo = @getimagesize($picture->imagePath);
|
42 |
-
$rr = round($imageInfo[0] / $resizedPreviewInfo['newWidth'], 2);
|
43 |
-
|
44 |
-
if ( ($ngg_options['thumbfix'] == 1) ) {
|
45 |
-
|
46 |
-
$WidthHtmlPrev = $ngg_options['thumbwidth'];
|
47 |
-
$HeightHtmlPrev = $ngg_options['thumbheight'];
|
48 |
-
|
49 |
-
} else {
|
50 |
-
// H > W
|
51 |
-
if ($imageInfo[1] > $imageInfo[0]) {
|
52 |
-
|
53 |
-
$HeightHtmlPrev = $ngg_options['thumbheight'];
|
54 |
-
$WidthHtmlPrev = round($imageInfo[0] / ($imageInfo[1] / $ngg_options['thumbheight']),0);
|
55 |
-
|
56 |
-
} else {
|
57 |
-
|
58 |
-
$WidthHtmlPrev = $ngg_options['thumbwidth'];
|
59 |
-
$HeightHtmlPrev = round($imageInfo[1] / ($imageInfo[0] / $ngg_options['thumbwidth']),0);
|
60 |
-
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
?>
|
65 |
-
<script src="<?php echo NGGALLERY_URLPATH; ?>/admin/js/Jcrop/js/jquery.Jcrop.js"></script>
|
66 |
-
<link rel="stylesheet" href="<?php echo NGGALLERY_URLPATH; ?>/admin/js/Jcrop/css/jquery.Jcrop.css" type="text/css" />
|
67 |
-
|
68 |
-
<script type="text/javascript">
|
69 |
-
//<![CDATA[
|
70 |
-
var status = 'start';
|
71 |
-
var xT, yT, wT, hT, selectedCoords;
|
72 |
-
var selectedImage = "thumb<?php echo $id ?>";
|
73 |
-
|
74 |
-
function showPreview(coords)
|
75 |
-
{
|
76 |
-
|
77 |
-
if (status != 'edit') {
|
78 |
-
jQuery('#actualThumb').hide();
|
79 |
-
jQuery('#previewNewThumb').show();
|
80 |
-
status = 'edit';
|
81 |
-
}
|
82 |
-
|
83 |
-
var rx = <?php echo $WidthHtmlPrev; ?> / coords.w;
|
84 |
-
var ry = <?php echo $HeightHtmlPrev; ?> / coords.h;
|
85 |
-
|
86 |
-
jQuery('#imageToEditPreview').css({
|
87 |
-
width: Math.round(rx * <?php echo $resizedPreviewInfo['newWidth']; ?>) + 'px',
|
88 |
-
height: Math.round(ry * <?php echo $resizedPreviewInfo['newHeight']; ?>) + 'px',
|
89 |
-
marginLeft: '-' + Math.round(rx * coords.x) + 'px',
|
90 |
-
marginTop: '-' + Math.round(ry * coords.y) + 'px'
|
91 |
-
});
|
92 |
-
|
93 |
-
xT = coords.x;
|
94 |
-
yT = coords.y;
|
95 |
-
wT = coords.w;
|
96 |
-
hT = coords.h;
|
97 |
-
|
98 |
-
jQuery("#sizeThumb").html(xT+" "+yT+" "+wT+" "+hT);
|
99 |
-
|
100 |
-
};
|
101 |
-
|
102 |
-
function updateThumb() {
|
103 |
-
|
104 |
-
if ( (wT == 0) || (hT == 0) || (wT == undefined) || (hT == undefined) ) {
|
105 |
-
alert("<?php _e('Select with the mouse the area for the new thumbnail', 'nggallery'); ?>");
|
106 |
-
return false;
|
107 |
-
}
|
108 |
-
|
109 |
-
jQuery.ajax({
|
110 |
-
url: ajaxurl,
|
111 |
-
type : "POST",
|
112 |
-
data: {x: xT, y: yT, w: wT, h: hT, action: 'createNewThumb', id: <?php echo $id; ?>, rr: <?php echo str_replace(',','.',$rr); ?>},
|
113 |
-
cache: false,
|
114 |
-
success: function(data){
|
115 |
-
var d = new Date();
|
116 |
-
newUrl = jQuery("#"+selectedImage).attr("src") + "?" + d.getTime();
|
117 |
-
jQuery("#"+selectedImage).attr("src" , newUrl);
|
118 |
-
|
119 |
-
jQuery('#thumbMsg').html("<?php _e('Thumbnail updated', 'nggallery') ?>");
|
120 |
-
jQuery('#thumbMsg').css({'display':'block'});
|
121 |
-
setTimeout(function(){ jQuery('#thumbMsg').fadeOut('slow'); }, 1500);
|
122 |
-
},
|
123 |
-
error: function() {
|
124 |
-
jQuery('#thumbMsg').html("<?php _e('Error updating thumbnail', 'nggallery') ?>");
|
125 |
-
jQuery('#thumbMsg').css({'display':'block'});
|
126 |
-
setTimeout(function(){ jQuery('#thumbMsg').fadeOut('slow'); }, 1500);
|
127 |
-
}
|
128 |
-
});
|
129 |
-
|
130 |
-
};
|
131 |
-
//]]>
|
132 |
-
</script>
|
133 |
-
<p><?php _e('Select the area for the thumbnail from the picture on the left.', 'nggallery'); ?></p>
|
134 |
-
<table width="98%" align="center">
|
135 |
-
<tr>
|
136 |
-
<td valign="middle" align="center" width="350">
|
137 |
-
<img src="<?php echo esc_url( $preview_image ); ?>" alt="" id="imageToEdit" />
|
138 |
-
</td>
|
139 |
-
<td align="center" width="300" height="319">
|
140 |
-
<div id="previewNewThumb" style="display:none;width:<?php echo $WidthHtmlPrev; ?>px;height:<?php echo $HeightHtmlPrev; ?>px;overflow:hidden; margin-left:5px;">
|
141 |
-
<img src="<?php echo esc_url( $preview_image ); ?>" id="imageToEditPreview" />
|
142 |
-
</div>
|
143 |
-
<div id="actualThumb">
|
144 |
-
<img src="<?php echo esc_url( $picture->thumbURL ); ?>?<?php echo time()?>" />
|
145 |
-
</div>
|
146 |
-
</td>
|
147 |
-
</tr>
|
148 |
-
<tr>
|
149 |
-
<td colspan="2">
|
150 |
-
<input type="button" name="update" value="<?php esc_attr_e('Update', 'nggallery'); ?>" onclick="updateThumb()" class="button-primary" style="float:right; margin-top:0.5em;"/>
|
151 |
-
<div id="thumbMsg" style="display : none; float:right; width:60%; height:2em; line-height:2em;"></div>
|
152 |
-
</td>
|
153 |
-
</tr>
|
154 |
-
</table>
|
155 |
-
|
156 |
-
<script type="text/javascript">
|
157 |
-
//<![CDATA[
|
158 |
-
jQuery(document).ready(function(){
|
159 |
-
jQuery('#imageToEdit').Jcrop({
|
160 |
-
onChange: showPreview,
|
161 |
-
onSelect: showPreview,
|
162 |
-
aspectRatio: <?php echo str_replace(',', '.', round($WidthHtmlPrev/$HeightHtmlPrev, 3)); ?>
|
163 |
-
});
|
164 |
-
});
|
165 |
-
//]]>
|
166 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/functions.php
CHANGED
@@ -119,7 +119,7 @@ class nggAdmin{
|
|
119 |
if ($galleryID != false) {
|
120 |
$message = __('Gallery ID %1$s successfully created. You can show this gallery in your post or page with the shortcode %2$s.<br/>','nggallery');
|
121 |
$message = sprintf($message, $galleryID, '<strong>[nggallery id=' . $galleryID . ']</strong>');
|
122 |
-
$message .= '<a href="' . admin_url() . 'admin.php?page=nggallery-manage
|
123 |
$message .= __('Edit gallery','nggallery');
|
124 |
$message .= '</a>';
|
125 |
|
@@ -139,7 +139,6 @@ class nggAdmin{
|
|
139 |
*/
|
140 |
|
141 |
static function import_gallery($galleryfolder) {
|
142 |
-
|
143 |
/**
|
144 |
* @global nggdb $nggdb
|
145 |
*/
|
@@ -306,7 +305,7 @@ class nggAdmin{
|
|
306 |
if ( count($image_ids) > 0 )
|
307 |
$message .= count($image_ids) .__(' picture(s) successfully added','nggallery') . '<br />';
|
308 |
if ($created_msg) {
|
309 |
-
$message .= ' [<a href="' . admin_url() . 'admin.php?page=nggallery-manage
|
310 |
$message .= __('Edit gallery','nggallery');
|
311 |
$message .= '</a>]';
|
312 |
}
|
@@ -409,7 +408,7 @@ class nggAdmin{
|
|
409 |
|
410 |
//TODO:Message will not shown, because AJAX routine require more time, message should be passed to AJAX
|
411 |
$message = $created_msg . count($image_ids) .__(' picture(s) successfully added','nggallery');
|
412 |
-
$message .= ' [<a href="' . admin_url() . 'admin.php?page=nggallery-manage
|
413 |
$message .= __('Edit gallery','nggallery');
|
414 |
$message .= '</a>]';
|
415 |
|
@@ -442,85 +441,109 @@ class nggAdmin{
|
|
442 |
}
|
443 |
sort( $files );
|
444 |
return ( $files );
|
445 |
-
}
|
446 |
-
|
447 |
/**
|
448 |
* nggAdmin::createThumbnail() - function to create or recreate a thumbnail
|
449 |
-
*
|
450 |
-
* @
|
451 |
-
* @param
|
|
|
|
|
|
|
452 |
* @return string result code
|
453 |
* @since v1.0.0
|
|
|
454 |
*/
|
455 |
-
static function create_thumbnail($image) {
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
require_once( nggGallery::graphic_library() );
|
461 |
-
|
462 |
-
|
|
|
463 |
$image = nggdb::find_image( $image );
|
|
|
464 |
|
465 |
-
if ( !is_object($image) )
|
466 |
-
return __('Object didn\'t contain correct data','nggallery');
|
|
|
467 |
|
468 |
// before we start we import the meta data to database (required for uploads before V1.4.0)
|
469 |
nggAdmin::maybe_import_meta( $image->pid );
|
470 |
-
|
471 |
// check for existing thumbnail
|
472 |
-
if (file_exists($image->thumbPath))
|
473 |
-
if (!is_writable($image->thumbPath))
|
474 |
-
return esc_html( $image->filename ) . __(' is not writeable ','nggallery');
|
|
|
|
|
475 |
|
476 |
-
$thumb = new ngg_Thumbnail($image->imagePath,
|
477 |
|
478 |
// skip if file is not there
|
479 |
-
if (
|
480 |
-
if ($
|
481 |
|
482 |
// calculate correct ratio
|
483 |
-
$wratio = $
|
484 |
-
$hratio = $
|
485 |
-
|
486 |
-
if ($wratio > $hratio) {
|
487 |
// first resize to the wanted width
|
488 |
-
$thumb->resize($
|
489 |
// get optimal y startpos
|
490 |
-
$ypos = ($thumb->currentDimensions['height'] - $
|
491 |
-
$thumb->crop(0, $ypos, $
|
492 |
} else {
|
493 |
// first resize to the wanted height
|
494 |
-
$thumb->resize(0, $
|
495 |
// get optimal x startpos
|
496 |
-
$xpos = ($thumb->currentDimensions['width'] - $
|
497 |
-
$thumb->crop($xpos, 0, $
|
498 |
}
|
499 |
-
|
500 |
} else {
|
501 |
-
$thumb->resize($
|
502 |
}
|
503 |
-
|
504 |
// save the new thumbnail
|
505 |
-
$thumb->save($image->thumbPath, $
|
506 |
-
nggAdmin::chmod
|
507 |
-
|
508 |
//read the new sizes
|
509 |
-
$new_size
|
510 |
-
$size['width']
|
511 |
-
$size['height'] = $new_size[1];
|
512 |
-
|
513 |
// add them to the database
|
514 |
-
nggdb::update_image_meta($image->pid, array( 'thumbnail' => $size) );
|
515 |
-
}
|
516 |
-
|
517 |
$thumb->destruct();
|
518 |
-
|
519 |
-
if ( !empty($thumb->errmsg) )
|
520 |
-
return ' <strong>' . esc_html( $image->filename ) . ' (Error : '
|
521 |
-
|
|
|
522 |
// success
|
523 |
-
return '1';
|
524 |
}
|
525 |
|
526 |
/**
|
@@ -1429,7 +1452,7 @@ class nggAdmin{
|
|
1429 |
if ( $errors != '' )
|
1430 |
nggGallery::show_error($errors);
|
1431 |
|
1432 |
-
$link = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage
|
1433 |
$messages = sprintf(__('Moved %1$s picture(s) to gallery : %2$s .','nggallery'), $count, $link);
|
1434 |
nggGallery::show_message($messages);
|
1435 |
|
@@ -1526,7 +1549,7 @@ class nggAdmin{
|
|
1526 |
|
1527 |
// Finish by showing errors or success
|
1528 |
if ( $errors == '' ) {
|
1529 |
-
$link = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage
|
1530 |
$messages .= '<hr />' . sprintf(__('Copied %1$s picture(s) to gallery: %2$s .','nggallery'), count($images), $link);
|
1531 |
}
|
1532 |
|
@@ -1538,43 +1561,50 @@ class nggAdmin{
|
|
1538 |
|
1539 |
return;
|
1540 |
}
|
1541 |
-
|
1542 |
/**
|
1543 |
-
*
|
1544 |
-
*
|
1545 |
-
*
|
1546 |
-
*
|
1547 |
-
*
|
1548 |
-
* @param string $
|
1549 |
-
* @
|
|
|
|
|
|
|
1550 |
*/
|
1551 |
-
static function do_ajax_operation( $operation, $image_array, $title = '' ) {
|
1552 |
-
|
1553 |
-
if ( !is_array($image_array) || empty($image_array) )
|
1554 |
return;
|
|
|
1555 |
|
1556 |
-
$js_array
|
1557 |
-
|
1558 |
-
|
|
|
1559 |
?>
|
1560 |
<script type="text/javascript">
|
1561 |
|
1562 |
-
|
1563 |
|
1564 |
nggAjaxOptions = {
|
1565 |
-
operation: "<?php echo $operation
|
1566 |
-
ids:
|
1567 |
-
|
1568 |
-
|
|
|
|
|
1569 |
};
|
1570 |
-
|
1571 |
-
jQuery(document).ready(
|
1572 |
-
nggProgressBar.init(
|
1573 |
-
nggAjax.init(
|
1574 |
-
}
|
1575 |
</script>
|
1576 |
-
|
1577 |
-
<?php
|
1578 |
}
|
1579 |
|
1580 |
/**
|
@@ -1617,7 +1647,7 @@ class nggAdmin{
|
|
1617 |
$gallery = nggdb::get_ids_from_gallery($galleryID, 'pid', 'ASC', false);
|
1618 |
|
1619 |
header('Content-Type: text/plain; charset=' . get_option('blog_charset'), true);
|
1620 |
-
$output = json_encode($gallery);
|
1621 |
|
1622 |
return $output;
|
1623 |
}
|
119 |
if ($galleryID != false) {
|
120 |
$message = __('Gallery ID %1$s successfully created. You can show this gallery in your post or page with the shortcode %2$s.<br/>','nggallery');
|
121 |
$message = sprintf($message, $galleryID, '<strong>[nggallery id=' . $galleryID . ']</strong>');
|
122 |
+
$message .= '<a href="' . admin_url() . 'admin.php?page=nggallery-manage&mode=image&gid=' . $galleryID . '" >';
|
123 |
$message .= __('Edit gallery','nggallery');
|
124 |
$message .= '</a>';
|
125 |
|
139 |
*/
|
140 |
|
141 |
static function import_gallery($galleryfolder) {
|
|
|
142 |
/**
|
143 |
* @global nggdb $nggdb
|
144 |
*/
|
305 |
if ( count($image_ids) > 0 )
|
306 |
$message .= count($image_ids) .__(' picture(s) successfully added','nggallery') . '<br />';
|
307 |
if ($created_msg) {
|
308 |
+
$message .= ' [<a href="' . admin_url() . 'admin.php?page=nggallery-manage&mode=image&gid=' . $gallery_id . '" >';
|
309 |
$message .= __('Edit gallery','nggallery');
|
310 |
$message .= '</a>]';
|
311 |
}
|
408 |
|
409 |
//TODO:Message will not shown, because AJAX routine require more time, message should be passed to AJAX
|
410 |
$message = $created_msg . count($image_ids) .__(' picture(s) successfully added','nggallery');
|
411 |
+
$message .= ' [<a href="' . admin_url() . 'admin.php?page=nggallery-manage&mode=image&gid=' . $gallery_id . '" >';
|
412 |
$message .= __('Edit gallery','nggallery');
|
413 |
$message .= '</a>]';
|
414 |
|
441 |
}
|
442 |
sort( $files );
|
443 |
return ( $files );
|
444 |
+
}
|
445 |
+
|
446 |
/**
|
447 |
* nggAdmin::createThumbnail() - function to create or recreate a thumbnail
|
448 |
+
*
|
449 |
+
* @param nggImage|int $image The image or its id.
|
450 |
+
* @param int $width The width of the new thumbnail.
|
451 |
+
* @param int $height The height of the new thumbnail.
|
452 |
+
* @param null|bool $fix If the ratio should be respected or not.
|
453 |
+
*
|
454 |
* @return string result code
|
455 |
* @since v1.0.0
|
456 |
+
* @since 1.9.27 The options for the dimensions are new, but backwards compatible.
|
457 |
*/
|
458 |
+
static function create_thumbnail( $image, $width = 0, $height = 0, $fix = null ) {
|
459 |
+
|
460 |
+
$options = get_option( 'ngg_options' );
|
461 |
+
|
462 |
+
/**
|
463 |
+
* Set the default variables.
|
464 |
+
*/
|
465 |
+
if ( $width == 0 ) {
|
466 |
+
$width = $options['thumbwidth'];
|
467 |
+
}
|
468 |
+
if ( $height == 0 ) {
|
469 |
+
$height = $options['thumbheight'];
|
470 |
+
}
|
471 |
+
if ( $fix === null ) {
|
472 |
+
$fix = $options['thumbfix'];
|
473 |
+
}
|
474 |
+
|
475 |
+
|
476 |
+
if ( ! class_exists( 'ngg_Thumbnail' ) ) {
|
477 |
require_once( nggGallery::graphic_library() );
|
478 |
+
}
|
479 |
+
|
480 |
+
if ( is_numeric( $image ) ) {
|
481 |
$image = nggdb::find_image( $image );
|
482 |
+
}
|
483 |
|
484 |
+
if ( ! is_object( $image ) ) {
|
485 |
+
return __( 'Object didn\'t contain correct data', 'nggallery' );
|
486 |
+
}
|
487 |
|
488 |
// before we start we import the meta data to database (required for uploads before V1.4.0)
|
489 |
nggAdmin::maybe_import_meta( $image->pid );
|
490 |
+
|
491 |
// check for existing thumbnail
|
492 |
+
if ( file_exists( $image->thumbPath ) ) {
|
493 |
+
if ( ! is_writable( $image->thumbPath ) ) {
|
494 |
+
return esc_html( $image->filename ) . __( ' is not writeable ', 'nggallery' );
|
495 |
+
}
|
496 |
+
}
|
497 |
|
498 |
+
$thumb = new ngg_Thumbnail( $image->imagePath, true );
|
499 |
|
500 |
// skip if file is not there
|
501 |
+
if ( ! $thumb->error ) {
|
502 |
+
if ( $fix ) {
|
503 |
|
504 |
// calculate correct ratio
|
505 |
+
$wratio = $width / $thumb->currentDimensions['width'];
|
506 |
+
$hratio = $height / $thumb->currentDimensions['height'];
|
507 |
+
|
508 |
+
if ( $wratio > $hratio ) {
|
509 |
// first resize to the wanted width
|
510 |
+
$thumb->resize( $width, 0 );
|
511 |
// get optimal y startpos
|
512 |
+
$ypos = ( $thumb->currentDimensions['height'] - $height ) / 2;
|
513 |
+
$thumb->crop( 0, $ypos, $width, $height );
|
514 |
} else {
|
515 |
// first resize to the wanted height
|
516 |
+
$thumb->resize( 0, $height );
|
517 |
// get optimal x startpos
|
518 |
+
$xpos = ( $thumb->currentDimensions['width'] - $width ) / 2;
|
519 |
+
$thumb->crop( $xpos, 0, $width, $height );
|
520 |
}
|
521 |
+
//this create a thumbnail but keep ratio settings
|
522 |
} else {
|
523 |
+
$thumb->resize( $width, $height );
|
524 |
}
|
525 |
+
|
526 |
// save the new thumbnail
|
527 |
+
$thumb->save( $image->thumbPath, $options['thumbquality'] );
|
528 |
+
nggAdmin::chmod( $image->thumbPath );
|
529 |
+
|
530 |
//read the new sizes
|
531 |
+
$new_size = @getimagesize( $image->thumbPath );
|
532 |
+
$size['width'] = $new_size[0];
|
533 |
+
$size['height'] = $new_size[1];
|
534 |
+
|
535 |
// add them to the database
|
536 |
+
nggdb::update_image_meta( $image->pid, array( 'thumbnail' => $size ) );
|
537 |
+
}
|
538 |
+
|
539 |
$thumb->destruct();
|
540 |
+
|
541 |
+
if ( ! empty( $thumb->errmsg ) ) {
|
542 |
+
return ' <strong>' . esc_html( $image->filename ) . ' (Error : ' . $thumb->errmsg . ')</strong>';
|
543 |
+
}
|
544 |
+
|
545 |
// success
|
546 |
+
return '1';
|
547 |
}
|
548 |
|
549 |
/**
|
1452 |
if ( $errors != '' )
|
1453 |
nggGallery::show_error($errors);
|
1454 |
|
1455 |
+
$link = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage&mode=image&gid=' . $destination->gid . '" >' . esc_html( $destination->title ) . '</a>';
|
1456 |
$messages = sprintf(__('Moved %1$s picture(s) to gallery : %2$s .','nggallery'), $count, $link);
|
1457 |
nggGallery::show_message($messages);
|
1458 |
|
1549 |
|
1550 |
// Finish by showing errors or success
|
1551 |
if ( $errors == '' ) {
|
1552 |
+
$link = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage&mode=image&gid=' . $destination->gid . '" >' . esc_html($destination->title) . '</a>';
|
1553 |
$messages .= '<hr />' . sprintf(__('Copied %1$s picture(s) to gallery: %2$s .','nggallery'), count($images), $link);
|
1554 |
}
|
1555 |
|
1561 |
|
1562 |
return;
|
1563 |
}
|
1564 |
+
|
1565 |
/**
|
1566 |
+
* Initiate an AJAX operation.
|
1567 |
+
*
|
1568 |
+
* Note: when operating on galleries instead of images, the ID's of the gallery should be used instead of the
|
1569 |
+
* images. The mode should be 'gallery' then.
|
1570 |
+
*
|
1571 |
+
* @param string $operation Name of the function that should be executed.
|
1572 |
+
* @param array $image_array ID's of the images or the gallery.
|
1573 |
+
* @param string $title The title that should be displayed on the modal window.
|
1574 |
+
* @param string $mode Which mode to run in.
|
1575 |
+
* @param array $data Data to be passed as GET parameters.
|
1576 |
*/
|
1577 |
+
static function do_ajax_operation( $operation, $image_array, $title = '', $mode = 'image', $data = array() ) {
|
1578 |
+
|
1579 |
+
if ( ! is_array( $image_array ) || empty( $image_array ) ) {
|
1580 |
return;
|
1581 |
+
}
|
1582 |
|
1583 |
+
$js_array = implode( ',', $image_array );
|
1584 |
+
$data = json_encode($data);
|
1585 |
+
|
1586 |
+
//This initiates the AJAX operations.
|
1587 |
?>
|
1588 |
<script type="text/javascript">
|
1589 |
|
1590 |
+
images = [<?php echo esc_js($js_array); ?>];
|
1591 |
|
1592 |
nggAjaxOptions = {
|
1593 |
+
operation: "<?php echo esc_js($operation) ?>",
|
1594 |
+
ids: images,
|
1595 |
+
header: "<?php echo esc_js($title) ?>",
|
1596 |
+
maxStep: images.length,
|
1597 |
+
mode: "<?php echo esc_js($mode) ?>",
|
1598 |
+
data: <?php echo $data; ?>
|
1599 |
};
|
1600 |
+
|
1601 |
+
jQuery(document).ready(function() {
|
1602 |
+
nggProgressBar.init(nggAjaxOptions);
|
1603 |
+
nggAjax.init(nggAjaxOptions);
|
1604 |
+
});
|
1605 |
</script>
|
1606 |
+
|
1607 |
+
<?php
|
1608 |
}
|
1609 |
|
1610 |
/**
|
1647 |
$gallery = nggdb::get_ids_from_gallery($galleryID, 'pid', 'ASC', false);
|
1648 |
|
1649 |
header('Content-Type: text/plain; charset=' . get_option('blog_charset'), true);
|
1650 |
+
$output = json_encode(array_map('intval', $gallery));
|
1651 |
|
1652 |
return $output;
|
1653 |
}
|
admin/images/facebook.png
DELETED
Binary file
|
admin/images/googleplus.png
DELETED
Binary file
|
admin/images/icon-paypal.gif
DELETED
Binary file
|
admin/images/icon-rating.png
DELETED
Binary file
|
admin/images/icon-translate.png
DELETED
Binary file
|
admin/images/twitter.png
DELETED
Binary file
|
admin/install.php
DELETED
@@ -1,277 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
3 |
-
|
4 |
-
/**
|
5 |
-
* creates all tables for the gallery
|
6 |
-
* called during register_activation hook
|
7 |
-
*
|
8 |
-
* @access internal
|
9 |
-
* @return void
|
10 |
-
*/
|
11 |
-
function nggallery_install () {
|
12 |
-
|
13 |
-
global $wpdb;
|
14 |
-
|
15 |
-
// Check for capability
|
16 |
-
if ( !current_user_can('activate_plugins') )
|
17 |
-
return;
|
18 |
-
|
19 |
-
// Set the capabilities for the administrator
|
20 |
-
$role = get_role('administrator');
|
21 |
-
// We need this role, no other chance
|
22 |
-
if ( empty($role) ) {
|
23 |
-
update_option( "ngg_init_check", __('Sorry, NextCellent Gallery works only with a role called administrator',"nggallery") );
|
24 |
-
return;
|
25 |
-
}
|
26 |
-
|
27 |
-
$role->add_cap('NextGEN Gallery overview');
|
28 |
-
$role->add_cap('NextGEN Use TinyMCE');
|
29 |
-
$role->add_cap('NextGEN Upload images');
|
30 |
-
$role->add_cap('NextGEN Manage gallery');
|
31 |
-
$role->add_cap('NextGEN Manage tags');
|
32 |
-
$role->add_cap('NextGEN Manage others gallery');
|
33 |
-
$role->add_cap('NextGEN Edit album');
|
34 |
-
$role->add_cap('NextGEN Change style');
|
35 |
-
$role->add_cap('NextGEN Change options');
|
36 |
-
|
37 |
-
// upgrade function changed in WordPress 2.3
|
38 |
-
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
39 |
-
|
40 |
-
// add charset & collate like wp core
|
41 |
-
$charset_collate = '';
|
42 |
-
|
43 |
-
if ( version_compare($wpdb->get_var("SELECT VERSION() AS `mysql_version`"), '4.1.0', '>=') ) {
|
44 |
-
if ( ! empty($wpdb->charset) )
|
45 |
-
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
|
46 |
-
if ( ! empty($wpdb->collate) )
|
47 |
-
$charset_collate .= " COLLATE $wpdb->collate";
|
48 |
-
}
|
49 |
-
|
50 |
-
$nggpictures = $wpdb->prefix . 'ngg_pictures';
|
51 |
-
$nggallery = $wpdb->prefix . 'ngg_gallery';
|
52 |
-
$nggalbum = $wpdb->prefix . 'ngg_album';
|
53 |
-
|
54 |
-
// Create pictures table
|
55 |
-
$sql = "CREATE TABLE " . $nggpictures . " (
|
56 |
-
pid BIGINT(20) NOT NULL AUTO_INCREMENT ,
|
57 |
-
image_slug VARCHAR(255) NOT NULL ,
|
58 |
-
post_id BIGINT(20) DEFAULT '0' NOT NULL ,
|
59 |
-
galleryid BIGINT(20) DEFAULT '0' NOT NULL ,
|
60 |
-
filename VARCHAR(255) NOT NULL ,
|
61 |
-
description MEDIUMTEXT NULL ,
|
62 |
-
alttext MEDIUMTEXT NULL ,
|
63 |
-
imagedate DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
|
64 |
-
exclude TINYINT NULL DEFAULT '0' ,
|
65 |
-
sortorder BIGINT(20) DEFAULT '0' NOT NULL ,
|
66 |
-
meta_data LONGTEXT,
|
67 |
-
PRIMARY KEY (pid),
|
68 |
-
KEY post_id (post_id)
|
69 |
-
) $charset_collate;";
|
70 |
-
dbDelta($sql);
|
71 |
-
|
72 |
-
// Create gallery table
|
73 |
-
$sql = "CREATE TABLE " . $nggallery . " (
|
74 |
-
gid BIGINT(20) NOT NULL AUTO_INCREMENT ,
|
75 |
-
name VARCHAR(255) NOT NULL ,
|
76 |
-
slug VARCHAR(255) NOT NULL ,
|
77 |
-
path MEDIUMTEXT NULL ,
|
78 |
-
title MEDIUMTEXT NULL ,
|
79 |
-
galdesc MEDIUMTEXT NULL ,
|
80 |
-
pageid BIGINT(20) DEFAULT '0' NOT NULL ,
|
81 |
-
previewpic BIGINT(20) DEFAULT '0' NOT NULL ,
|
82 |
-
author BIGINT(20) DEFAULT '0' NOT NULL ,
|
83 |
-
PRIMARY KEY (gid)
|
84 |
-
) $charset_collate;";
|
85 |
-
dbDelta($sql);
|
86 |
-
|
87 |
-
// Create albums table
|
88 |
-
$sql = "CREATE TABLE " . $nggalbum . " (
|
89 |
-
id BIGINT(20) NOT NULL AUTO_INCREMENT ,
|
90 |
-
name VARCHAR(255) NOT NULL ,
|
91 |
-
slug VARCHAR(255) NOT NULL ,
|
92 |
-
previewpic BIGINT(20) DEFAULT '0' NOT NULL ,
|
93 |
-
albumdesc MEDIUMTEXT NULL ,
|
94 |
-
sortorder LONGTEXT NOT NULL,
|
95 |
-
pageid BIGINT(20) DEFAULT '0' NOT NULL,
|
96 |
-
PRIMARY KEY (id)
|
97 |
-
) $charset_collate;";
|
98 |
-
dbDelta($sql);
|
99 |
-
|
100 |
-
// check one table again, to be sure
|
101 |
-
if( !$wpdb->get_var( "SHOW TABLES LIKE '$nggpictures'" ) ) {
|
102 |
-
update_option( "ngg_init_check", __('NextCellent Gallery : Tables could not created, please check your database settings',"nggallery") );
|
103 |
-
return;
|
104 |
-
}
|
105 |
-
|
106 |
-
$options = get_option('ngg_options');
|
107 |
-
// set the default settings, if we didn't upgrade
|
108 |
-
if ( empty( $options ) )
|
109 |
-
ngg_default_options();
|
110 |
-
|
111 |
-
// if all is passed , save the DBVERSION
|
112 |
-
add_option("ngg_db_version", NGG_DBVERSION);
|
113 |
-
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* Setup the default option array for the gallery
|
118 |
-
*
|
119 |
-
* @access internal
|
120 |
-
* @since version 0.33
|
121 |
-
* @return void
|
122 |
-
*/
|
123 |
-
function ngg_default_options() {
|
124 |
-
|
125 |
-
global $blog_id, $ngg;
|
126 |
-
|
127 |
-
$ngg_options['gallerypath'] = 'wp-content/gallery/'; // set default path to the gallery
|
128 |
-
$ngg_options['deleteImg'] = true; // delete Images
|
129 |
-
$ngg_options['swfUpload'] = true; // activate the batch upload
|
130 |
-
$ngg_options['usePermalinks'] = false; // use permalinks for parameters
|
131 |
-
$ngg_options['permalinkSlug'] = 'nggallery'; // the default slug for permalinks
|
132 |
-
$ngg_options['graphicLibrary'] = 'gd'; // default graphic library
|
133 |
-
$ngg_options['imageMagickDir'] = '/usr/local/bin/'; // default path to ImageMagick
|
134 |
-
$ngg_options['useMediaRSS'] = false; // activate the global Media RSS file
|
135 |
-
$ngg_options['usePicLens'] = false; // activate the PicLens Link for galleries
|
136 |
-
$ngg_options['silentUpdate'] = false; //If the database should be updated silently.
|
137 |
-
|
138 |
-
// Tags / categories
|
139 |
-
$ngg_options['activateTags'] = false; // append related images
|
140 |
-
$ngg_options['appendType'] = 'tags'; // look for category or tags
|
141 |
-
$ngg_options['maxImages'] = 7; // number of images toshow
|
142 |
-
|
143 |
-
// Thumbnail Settings
|
144 |
-
$ngg_options['thumbwidth'] = 100; // Thumb Width
|
145 |
-
$ngg_options['thumbheight'] = 75; // Thumb height
|
146 |
-
$ngg_options['thumbfix'] = true; // Fix the dimension
|
147 |
-
$ngg_options['thumbquality'] = 100; // Thumb Quality
|
148 |
-
|
149 |
-
// Image Settings
|
150 |
-
$ngg_options['imgWidth'] = 800; // Image Width
|
151 |
-
$ngg_options['imgHeight'] = 600; // Image height
|
152 |
-
$ngg_options['imgQuality'] = 85; // Image Quality
|
153 |
-
$ngg_options['imgBackup'] = true; // Create a backup
|
154 |
-
$ngg_options['imgAutoResize'] = false; // Resize after upload
|
155 |
-
|
156 |
-
// Gallery Settings
|
157 |
-
$ngg_options['galImages'] = 20; // Number of images per page
|
158 |
-
$ngg_options['galPagedGalleries'] = 0; // Number of galleries per page (in a album)
|
159 |
-
$ngg_options['galColumns'] = 0; // Number of columns for the gallery
|
160 |
-
$ngg_options['galShowSlide'] = true; // Show slideshow
|
161 |
-
$ngg_options['galTextSlide'] = __('[Show as slideshow]','nggallery'); // Text for slideshow
|
162 |
-
$ngg_options['galTextGallery'] = __('[Show picture list]','nggallery'); // Text for gallery
|
163 |
-
$ngg_options['galShowOrder'] = 'gallery'; // Show order
|
164 |
-
$ngg_options['galSort'] = 'sortorder'; // Sort order
|
165 |
-
$ngg_options['galSortDir'] = 'ASC'; // Sort direction
|
166 |
-
$ngg_options['galNoPages'] = true; // use no subpages for gallery
|
167 |
-
$ngg_options['galImgBrowser'] = false; // Show ImageBrowser, instead effect
|
168 |
-
$ngg_options['galHiddenImg'] = false; // For paged galleries we can hide image
|
169 |
-
$ngg_options['galAjaxNav'] = false; // AJAX Navigation for Shutter effect
|
170 |
-
|
171 |
-
// Thumbnail Effect
|
172 |
-
$ngg_options['thumbEffect'] = 'shutter'; // select effect
|
173 |
-
$ngg_options['thumbCode'] = 'class="shutterset_%GALLERY_NAME%"';
|
174 |
-
|
175 |
-
// Watermark settings
|
176 |
-
$ngg_options['wmPos'] = 'botRight'; // Postion
|
177 |
-
$ngg_options['wmXpos'] = 5; // X Pos
|
178 |
-
$ngg_options['wmYpos'] = 5; // Y Pos
|
179 |
-
$ngg_options['wmType'] = 'text'; // Type : 'image' / 'text'
|
180 |
-
$ngg_options['wmPath'] = ''; // Path to image
|
181 |
-
$ngg_options['wmFont'] = 'arial.ttf'; // Font type
|
182 |
-
$ngg_options['wmSize'] = 10; // Font Size
|
183 |
-
$ngg_options['wmText'] = get_option('blogname'); // Text
|
184 |
-
$ngg_options['wmColor'] = '000000'; // Font Color
|
185 |
-
$ngg_options['wmOpaque'] = '100'; // Font Opaque
|
186 |
-
|
187 |
-
// Slideshow settings
|
188 |
-
$ngg_options['slideFx'] = 'fadeIn'; //The effect
|
189 |
-
$ngg_options['irWidth'] = 320; //Width (in px)
|
190 |
-
$ngg_options['irHeight'] = 240; //Height (in px)
|
191 |
-
$ngg_options['irAutoDim'] = true; //Automatically set the dimensions.
|
192 |
-
$ngg_options['irRotatetime'] = 3; //Duration (in seconds)
|
193 |
-
$ngg_options['irLoop'] = true; //Loop or not
|
194 |
-
$ngg_options['irDrag'] = true; //Enable drag or not
|
195 |
-
$ngg_options['irNavigation'] = false; //Show navigation
|
196 |
-
$ngg_options['irNavigationDots'] = false; //Show navigation dots
|
197 |
-
$ngg_options['irAutoplay'] = true; //Autoplay
|
198 |
-
$ngg_options['irAutoplayHover'] = true; //Pause on hover
|
199 |
-
$ngg_options['irNumber'] = 20; //Number of images when random or latest
|
200 |
-
$ngg_options['irClick'] = true; //Go to next on click.
|
201 |
-
|
202 |
-
// CSS Style
|
203 |
-
$ngg_options['activateCSS'] = true; // activate the CSS file
|
204 |
-
$ngg_options['CSSfile'] = NGGALLERY_ABSPATH . 'css/nggallery.css'; // set default css filename
|
205 |
-
|
206 |
-
// special overrides for WPMU
|
207 |
-
if (is_multisite()) {
|
208 |
-
// get the site options
|
209 |
-
$ngg_wpmu_options = get_site_option('ngg_options');
|
210 |
-
|
211 |
-
// get the default value during first installation
|
212 |
-
if (!is_array($ngg_wpmu_options)) {
|
213 |
-
$ngg_wpmu_options['gallerypath'] = 'wp-content/blogs.dir/%BLOG_ID%/files/';
|
214 |
-
$ngg_wpmu_options['wpmuCSSfile'] = 'nggallery.css';
|
215 |
-
$ngg_wpmu_options['silentUpdate'] = false;
|
216 |
-
update_site_option('ngg_options', $ngg_wpmu_options);
|
217 |
-
}
|
218 |
-
|
219 |
-
$ngg_options['gallerypath'] = str_replace("%BLOG_ID%", $blog_id , $ngg_wpmu_options['gallerypath']);
|
220 |
-
$ngg_options['CSSfile'] = $ngg_wpmu_options['wpmuCSSfile'];
|
221 |
-
}
|
222 |
-
|
223 |
-
update_option('ngg_options', $ngg_options);
|
224 |
-
|
225 |
-
}
|
226 |
-
|
227 |
-
/**
|
228 |
-
* Deregister a capability from all classic roles
|
229 |
-
*
|
230 |
-
* @access internal
|
231 |
-
* @param string $capability name of the capability which should be deregister
|
232 |
-
* @return void
|
233 |
-
*/
|
234 |
-
function ngg_remove_capability($capability){
|
235 |
-
// this function remove the $capability only from the classic roles
|
236 |
-
$check_order = array("subscriber", "contributor", "author", "editor", "administrator");
|
237 |
-
|
238 |
-
foreach ($check_order as $role) {
|
239 |
-
|
240 |
-
$role = get_role($role);
|
241 |
-
$role->remove_cap($capability) ;
|
242 |
-
}
|
243 |
-
|
244 |
-
}
|
245 |
-
|
246 |
-
/**
|
247 |
-
* Uninstall all settings and tables
|
248 |
-
* Called via Setup and register_unstall hook
|
249 |
-
*
|
250 |
-
* @access internal
|
251 |
-
* @return void
|
252 |
-
*/
|
253 |
-
function nggallery_uninstall() {
|
254 |
-
global $wpdb;
|
255 |
-
|
256 |
-
// first remove all tables
|
257 |
-
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}ngg_pictures");
|
258 |
-
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}ngg_gallery");
|
259 |
-
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}ngg_album");
|
260 |
-
|
261 |
-
// then remove all options
|
262 |
-
delete_option( 'ngg_options' );
|
263 |
-
delete_option( 'ngg_db_version' );
|
264 |
-
delete_option( 'ngg_update_exists' );
|
265 |
-
delete_option( 'ngg_next_update' );
|
266 |
-
|
267 |
-
// now remove the capability
|
268 |
-
ngg_remove_capability("NextGEN Gallery overview");
|
269 |
-
ngg_remove_capability("NextGEN Use TinyMCE");
|
270 |
-
ngg_remove_capability("NextGEN Upload images");
|
271 |
-
ngg_remove_capability("NextGEN Manage gallery");
|
272 |
-
ngg_remove_capability("NextGEN Edit album");
|
273 |
-
ngg_remove_capability("NextGEN Change style");
|
274 |
-
ngg_remove_capability("NextGEN Change options");
|
275 |
-
}
|
276 |
-
|
277 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/interface-ngg-displayable.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Interface NGG_Displayable
|
5 |
+
*
|
6 |
+
* An interface that is displayable. The display option should display the page.
|
7 |
+
* NextCellent uses this is new admin pages.
|
8 |
+
*/
|
9 |
+
interface NGG_Displayable {
|
10 |
+
|
11 |
+
function display();
|
12 |
+
}
|
admin/js/Jcrop/css/Jcrop.gif
DELETED
Binary file
|
admin/js/Jcrop/css/jquery.Jcrop.css
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
/* Fixes issue here http://code.google.com/p/jcrop/issues/detail?id=1 */
|
2 |
-
.jcrop-holder { text-align: left; }
|
3 |
-
|
4 |
-
.jcrop-vline, .jcrop-hline
|
5 |
-
{
|
6 |
-
font-size: 0;
|
7 |
-
position: absolute;
|
8 |
-
background: white url('Jcrop.gif') top left repeat;
|
9 |
-
}
|
10 |
-
.jcrop-vline { height: 100%; width: 1px !important; }
|
11 |
-
.jcrop-hline { width: 100%; height: 1px !important; }
|
12 |
-
.jcrop-handle {
|
13 |
-
font-size: 1px;
|
14 |
-
width: 7px !important;
|
15 |
-
height: 7px !important;
|
16 |
-
border: 1px #eee solid;
|
17 |
-
background-color: #333;
|
18 |
-
*width: 9px;
|
19 |
-
*height: 9px;
|
20 |
-
}
|
21 |
-
|
22 |
-
.jcrop-tracker { width: 100%; height: 100%; }
|
23 |
-
|
24 |
-
.custom .jcrop-vline,
|
25 |
-
.custom .jcrop-hline
|
26 |
-
{
|
27 |
-
background: yellow;
|
28 |
-
}
|
29 |
-
.custom .jcrop-handle
|
30 |
-
{
|
31 |
-
border-color: black;
|
32 |
-
background-color: #C7BB00;
|
33 |
-
-moz-border-radius: 3px;
|
34 |
-
-webkit-border-radius: 3px;
|
35 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/Jcrop/js/jquery.Jcrop.js
DELETED
@@ -1,1197 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* jquery.Jcrop.js v0.9.8
|
3 |
-
* jQuery Image Cropping Plugin
|
4 |
-
* @author Kelly Hallman <khallman@gmail.com>
|
5 |
-
* Copyright (c) 2008-2009 Kelly Hallman - released under MIT License {{{
|
6 |
-
*
|
7 |
-
* Permission is hereby granted, free of charge, to any person
|
8 |
-
* obtaining a copy of this software and associated documentation
|
9 |
-
* files (the "Software"), to deal in the Software without
|
10 |
-
* restriction, including without limitation the rights to use,
|
11 |
-
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
12 |
-
* copies of the Software, and to permit persons to whom the
|
13 |
-
* Software is furnished to do so, subject to the following
|
14 |
-
* conditions:
|
15 |
-
|
16 |
-
* The above copyright notice and this permission notice shall be
|
17 |
-
* included in all copies or substantial portions of the Software.
|
18 |
-
|
19 |
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
20 |
-
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
21 |
-
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
22 |
-
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
23 |
-
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
24 |
-
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
25 |
-
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
26 |
-
* OTHER DEALINGS IN THE SOFTWARE.
|
27 |
-
|
28 |
-
* }}}
|
29 |
-
*/
|
30 |
-
|
31 |
-
(function($) {
|
32 |
-
|
33 |
-
$.Jcrop = function(obj,opt)
|
34 |
-
{
|
35 |
-
// Initialization {{{
|
36 |
-
|
37 |
-
// Sanitize some options {{{
|
38 |
-
var obj = obj, opt = opt;
|
39 |
-
|
40 |
-
if (typeof(obj) !== 'object') obj = $(obj)[0];
|
41 |
-
if (typeof(opt) !== 'object') opt = { };
|
42 |
-
|
43 |
-
// Some on-the-fly fixes for MSIE...sigh
|
44 |
-
if (!('trackDocument' in opt))
|
45 |
-
{
|
46 |
-
opt.trackDocument = $.browser.msie ? false : true;
|
47 |
-
if ($.browser.msie && $.browser.version.split('.')[0] == '8')
|
48 |
-
opt.trackDocument = true;
|
49 |
-
}
|
50 |
-
|
51 |
-
if (!('keySupport' in opt))
|
52 |
-
opt.keySupport = $.browser.msie ? false : true;
|
53 |
-
|
54 |
-
// }}}
|
55 |
-
// Extend the default options {{{
|
56 |
-
var defaults = {
|
57 |
-
|
58 |
-
// Basic Settings
|
59 |
-
trackDocument: false,
|
60 |
-
baseClass: 'jcrop',
|
61 |
-
addClass: null,
|
62 |
-
|
63 |
-
// Styling Options
|
64 |
-
bgColor: 'black',
|
65 |
-
bgOpacity: .6,
|
66 |
-
borderOpacity: .4,
|
67 |
-
handleOpacity: .5,
|
68 |
-
|
69 |
-
handlePad: 5,
|
70 |
-
handleSize: 9,
|
71 |
-
handleOffset: 5,
|
72 |
-
edgeMargin: 14,
|
73 |
-
|
74 |
-
aspectRatio: 0,
|
75 |
-
keySupport: true,
|
76 |
-
cornerHandles: true,
|
77 |
-
sideHandles: true,
|
78 |
-
drawBorders: true,
|
79 |
-
dragEdges: true,
|
80 |
-
|
81 |
-
boxWidth: 0,
|
82 |
-
boxHeight: 0,
|
83 |
-
|
84 |
-
boundary: 8,
|
85 |
-
animationDelay: 20,
|
86 |
-
swingSpeed: 3,
|
87 |
-
|
88 |
-
allowSelect: true,
|
89 |
-
allowMove: true,
|
90 |
-
allowResize: true,
|
91 |
-
|
92 |
-
minSelect: [ 0, 0 ],
|
93 |
-
maxSize: [ 0, 0 ],
|
94 |
-
minSize: [ 0, 0 ],
|
95 |
-
|
96 |
-
// Callbacks / Event Handlers
|
97 |
-
onChange: function() { },
|
98 |
-
onSelect: function() { }
|
99 |
-
|
100 |
-
};
|
101 |
-
var options = defaults;
|
102 |
-
setOptions(opt);
|
103 |
-
|
104 |
-
// }}}
|
105 |
-
// Initialize some jQuery objects {{{
|
106 |
-
|
107 |
-
var $origimg = $(obj);
|
108 |
-
var $img = $origimg.clone().removeAttr('id').css({ position: 'absolute' });
|
109 |
-
|
110 |
-
$img.width($origimg.width());
|
111 |
-
$img.height($origimg.height());
|
112 |
-
$origimg.after($img).hide();
|
113 |
-
|
114 |
-
presize($img,options.boxWidth,options.boxHeight);
|
115 |
-
|
116 |
-
var boundx = $img.width(),
|
117 |
-
boundy = $img.height(),
|
118 |
-
|
119 |
-
$div = $('<div />')
|
120 |
-
.width(boundx).height(boundy)
|
121 |
-
.addClass(cssClass('holder'))
|
122 |
-
.css({
|
123 |
-
position: 'relative',
|
124 |
-
backgroundColor: options.bgColor
|
125 |
-
}).insertAfter($origimg).append($img);
|
126 |
-
;
|
127 |
-
|
128 |
-
if (options.addClass) $div.addClass(options.addClass);
|
129 |
-
//$img.wrap($div);
|
130 |
-
|
131 |
-
var $img2 = $('<img />')/*{{{*/
|
132 |
-
.attr('src',$img.attr('src'))
|
133 |
-
.css('position','absolute')
|
134 |
-
.width(boundx).height(boundy)
|
135 |
-
;/*}}}*/
|
136 |
-
var $img_holder = $('<div />')/*{{{*/
|
137 |
-
.width(pct(100)).height(pct(100))
|
138 |
-
.css({
|
139 |
-
zIndex: 310,
|
140 |
-
position: 'absolute',
|
141 |
-
overflow: 'hidden'
|
142 |
-
})
|
143 |
-
.append($img2)
|
144 |
-
;/*}}}*/
|
145 |
-
var $hdl_holder = $('<div />')/*{{{*/
|
146 |
-
.width(pct(100)).height(pct(100))
|
147 |
-
.css('zIndex',320);
|
148 |
-
/*}}}*/
|
149 |
-
var $sel = $('<div />')/*{{{*/
|
150 |
-
.css({
|
151 |
-
position: 'absolute',
|
152 |
-
zIndex: 300
|
153 |
-
})
|
154 |
-
.insertBefore($img)
|
155 |
-
.append($img_holder,$hdl_holder)
|
156 |
-
;/*}}}*/
|
157 |
-
|
158 |
-
var bound = options.boundary;
|
159 |
-
var $trk = newTracker().width(boundx+(bound*2)).height(boundy+(bound*2))
|
160 |
-
.css({ position: 'absolute', top: px(-bound), left: px(-bound), zIndex: 290 })
|
161 |
-
.mousedown(newSelection);
|
162 |
-
|
163 |
-
/* }}} */
|
164 |
-
// Set more variables {{{
|
165 |
-
|
166 |
-
var xlimit, ylimit, xmin, ymin;
|
167 |
-
var xscale, yscale, enabled = true;
|
168 |
-
var docOffset = getPos($img),
|
169 |
-
// Internal states
|
170 |
-
btndown, lastcurs, dimmed, animating,
|
171 |
-
shift_down;
|
172 |
-
|
173 |
-
// }}}
|
174 |
-
|
175 |
-
|
176 |
-
// }}}
|
177 |
-
// Internal Modules {{{
|
178 |
-
|
179 |
-
var Coords = function()/*{{{*/
|
180 |
-
{
|
181 |
-
var x1 = 0, y1 = 0, x2 = 0, y2 = 0, ox, oy;
|
182 |
-
|
183 |
-
function setPressed(pos)/*{{{*/
|
184 |
-
{
|
185 |
-
var pos = rebound(pos);
|
186 |
-
x2 = x1 = pos[0];
|
187 |
-
y2 = y1 = pos[1];
|
188 |
-
};
|
189 |
-
/*}}}*/
|
190 |
-
function setCurrent(pos)/*{{{*/
|
191 |
-
{
|
192 |
-
var pos = rebound(pos);
|
193 |
-
ox = pos[0] - x2;
|
194 |
-
oy = pos[1] - y2;
|
195 |
-
x2 = pos[0];
|
196 |
-
y2 = pos[1];
|
197 |
-
};
|
198 |
-
/*}}}*/
|
199 |
-
function getOffset()/*{{{*/
|
200 |
-
{
|
201 |
-
return [ ox, oy ];
|
202 |
-
};
|
203 |
-
/*}}}*/
|
204 |
-
function moveOffset(offset)/*{{{*/
|
205 |
-
{
|
206 |
-
var ox = offset[0], oy = offset[1];
|
207 |
-
|
208 |
-
if (0 > x1 + ox) ox -= ox + x1;
|
209 |
-
if (0 > y1 + oy) oy -= oy + y1;
|
210 |
-
|
211 |
-
if (boundy < y2 + oy) oy += boundy - (y2 + oy);
|
212 |
-
if (boundx < x2 + ox) ox += boundx - (x2 + ox);
|
213 |
-
|
214 |
-
x1 += ox;
|
215 |
-
x2 += ox;
|
216 |
-
y1 += oy;
|
217 |
-
y2 += oy;
|
218 |
-
};
|
219 |
-
/*}}}*/
|
220 |
-
function getCorner(ord)/*{{{*/
|
221 |
-
{
|
222 |
-
var c = getFixed();
|
223 |
-
switch(ord)
|
224 |
-
{
|
225 |
-
case 'ne': return [ c.x2, c.y ];
|
226 |
-
case 'nw': return [ c.x, c.y ];
|
227 |
-
case 'se': return [ c.x2, c.y2 ];
|
228 |
-
case 'sw': return [ c.x, c.y2 ];
|
229 |
-
}
|
230 |
-
};
|
231 |
-
/*}}}*/
|
232 |
-
function getFixed()/*{{{*/
|
233 |
-
{
|
234 |
-
if (!options.aspectRatio) return getRect();
|
235 |
-
// This function could use some optimization I think...
|
236 |
-
var aspect = options.aspectRatio,
|
237 |
-
min_x = options.minSize[0]/xscale,
|
238 |
-
min_y = options.minSize[1]/yscale,
|
239 |
-
max_x = options.maxSize[0]/xscale,
|
240 |
-
max_y = options.maxSize[1]/yscale,
|
241 |
-
rw = x2 - x1,
|
242 |
-
rh = y2 - y1,
|
243 |
-
rwa = Math.abs(rw),
|
244 |
-
rha = Math.abs(rh),
|
245 |
-
real_ratio = rwa / rha,
|
246 |
-
xx, yy
|
247 |
-
;
|
248 |
-
if (max_x == 0) { max_x = boundx * 10 }
|
249 |
-
if (max_y == 0) { max_y = boundy * 10 }
|
250 |
-
if (real_ratio < aspect)
|
251 |
-
{
|
252 |
-
yy = y2;
|
253 |
-
w = rha * aspect;
|
254 |
-
xx = rw < 0 ? x1 - w : w + x1;
|
255 |
-
|
256 |
-
if (xx < 0)
|
257 |
-
{
|
258 |
-
xx = 0;
|
259 |
-
h = Math.abs((xx - x1) / aspect);
|
260 |
-
yy = rh < 0 ? y1 - h: h + y1;
|
261 |
-
}
|
262 |
-
else if (xx > boundx)
|
263 |
-
{
|
264 |
-
xx = boundx;
|
265 |
-
h = Math.abs((xx - x1) / aspect);
|
266 |
-
yy = rh < 0 ? y1 - h : h + y1;
|
267 |
-
}
|
268 |
-
}
|
269 |
-
else
|
270 |
-
{
|
271 |
-
xx = x2;
|
272 |
-
h = rwa / aspect;
|
273 |
-
yy = rh < 0 ? y1 - h : y1 + h;
|
274 |
-
if (yy < 0)
|
275 |
-
{
|
276 |
-
yy = 0;
|
277 |
-
w = Math.abs((yy - y1) * aspect);
|
278 |
-
xx = rw < 0 ? x1 - w : w + x1;
|
279 |
-
}
|
280 |
-
else if (yy > boundy)
|
281 |
-
{
|
282 |
-
yy = boundy;
|
283 |
-
w = Math.abs(yy - y1) * aspect;
|
284 |
-
xx = rw < 0 ? x1 - w : w + x1;
|
285 |
-
}
|
286 |
-
}
|
287 |
-
|
288 |
-
// Magic %-)
|
289 |
-
if(xx > x1) { // right side
|
290 |
-
if(xx - x1 < min_x) {
|
291 |
-
xx = x1 + min_x;
|
292 |
-
} else if (xx - x1 > max_x) {
|
293 |
-
xx = x1 + max_x;
|
294 |
-
}
|
295 |
-
if(yy > y1) {
|
296 |
-
yy = y1 + (xx - x1)/aspect;
|
297 |
-
} else {
|
298 |
-
yy = y1 - (xx - x1)/aspect;
|
299 |
-
}
|
300 |
-
} else if (xx < x1) { // left side
|
301 |
-
if(x1 - xx < min_x) {
|
302 |
-
xx = x1 - min_x
|
303 |
-
} else if (x1 - xx > max_x) {
|
304 |
-
xx = x1 - max_x;
|
305 |
-
}
|
306 |
-
if(yy > y1) {
|
307 |
-
yy = y1 + (x1 - xx)/aspect;
|
308 |
-
} else {
|
309 |
-
yy = y1 - (x1 - xx)/aspect;
|
310 |
-
}
|
311 |
-
}
|
312 |
-
|
313 |
-
if(xx < 0) {
|
314 |
-
x1 -= xx;
|
315 |
-
xx = 0;
|
316 |
-
} else if (xx > boundx) {
|
317 |
-
x1 -= xx - boundx;
|
318 |
-
xx = boundx;
|
319 |
-
}
|
320 |
-
|
321 |
-
if(yy < 0) {
|
322 |
-
y1 -= yy;
|
323 |
-
yy = 0;
|
324 |
-
} else if (yy > boundy) {
|
325 |
-
y1 -= yy - boundy;
|
326 |
-
yy = boundy;
|
327 |
-
}
|
328 |
-
|
329 |
-
return last = makeObj(flipCoords(x1,y1,xx,yy));
|
330 |
-
};
|
331 |
-
/*}}}*/
|
332 |
-
function rebound(p)/*{{{*/
|
333 |
-
{
|
334 |
-
if (p[0] < 0) p[0] = 0;
|
335 |
-
if (p[1] < 0) p[1] = 0;
|
336 |
-
|
337 |
-
if (p[0] > boundx) p[0] = boundx;
|
338 |
-
if (p[1] > boundy) p[1] = boundy;
|
339 |
-
|
340 |
-
return [ p[0], p[1] ];
|
341 |
-
};
|
342 |
-
/*}}}*/
|
343 |
-
function flipCoords(x1,y1,x2,y2)/*{{{*/
|
344 |
-
{
|
345 |
-
var xa = x1, xb = x2, ya = y1, yb = y2;
|
346 |
-
if (x2 < x1)
|
347 |
-
{
|
348 |
-
xa = x2;
|
349 |
-
xb = x1;
|
350 |
-
}
|
351 |
-
if (y2 < y1)
|
352 |
-
{
|
353 |
-
ya = y2;
|
354 |
-
yb = y1;
|
355 |
-
}
|
356 |
-
return [ Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb) ];
|
357 |
-
};
|
358 |
-
/*}}}*/
|
359 |
-
function getRect()/*{{{*/
|
360 |
-
{
|
361 |
-
var xsize = x2 - x1;
|
362 |
-
var ysize = y2 - y1;
|
363 |
-
|
364 |
-
if (xlimit && (Math.abs(xsize) > xlimit))
|
365 |
-
x2 = (xsize > 0) ? (x1 + xlimit) : (x1 - xlimit);
|
366 |
-
if (ylimit && (Math.abs(ysize) > ylimit))
|
367 |
-
y2 = (ysize > 0) ? (y1 + ylimit) : (y1 - ylimit);
|
368 |
-
|
369 |
-
if (ymin && (Math.abs(ysize) < ymin))
|
370 |
-
y2 = (ysize > 0) ? (y1 + ymin) : (y1 - ymin);
|
371 |
-
if (xmin && (Math.abs(xsize) < xmin))
|
372 |
-
x2 = (xsize > 0) ? (x1 + xmin) : (x1 - xmin);
|
373 |
-
|
374 |
-
if (x1 < 0) { x2 -= x1; x1 -= x1; }
|
375 |
-
if (y1 < 0) { y2 -= y1; y1 -= y1; }
|
376 |
-
if (x2 < 0) { x1 -= x2; x2 -= x2; }
|
377 |
-
if (y2 < 0) { y1 -= y2; y2 -= y2; }
|
378 |
-
if (x2 > boundx) { var delta = x2 - boundx; x1 -= delta; x2 -= delta; }
|
379 |
-
if (y2 > boundy) { var delta = y2 - boundy; y1 -= delta; y2 -= delta; }
|
380 |
-
if (x1 > boundx) { var delta = x1 - boundy; y2 -= delta; y1 -= delta; }
|
381 |
-
if (y1 > boundy) { var delta = y1 - boundy; y2 -= delta; y1 -= delta; }
|
382 |
-
|
383 |
-
return makeObj(flipCoords(x1,y1,x2,y2));
|
384 |
-
};
|
385 |
-
/*}}}*/
|
386 |
-
function makeObj(a)/*{{{*/
|
387 |
-
{
|
388 |
-
return { x: a[0], y: a[1], x2: a[2], y2: a[3],
|
389 |
-
w: a[2] - a[0], h: a[3] - a[1] };
|
390 |
-
};
|
391 |
-
/*}}}*/
|
392 |
-
|
393 |
-
return {
|
394 |
-
flipCoords: flipCoords,
|
395 |
-
setPressed: setPressed,
|
396 |
-
setCurrent: setCurrent,
|
397 |
-
getOffset: getOffset,
|
398 |
-
moveOffset: moveOffset,
|
399 |
-
getCorner: getCorner,
|
400 |
-
getFixed: getFixed
|
401 |
-
};
|
402 |
-
}();
|
403 |
-
|
404 |
-
/*}}}*/
|
405 |
-
var Selection = function()/*{{{*/
|
406 |
-
{
|
407 |
-
var start, end, dragmode, awake, hdep = 370;
|
408 |
-
var borders = { };
|
409 |
-
var handle = { };
|
410 |
-
var seehandles = false;
|
411 |
-
var hhs = options.handleOffset;
|
412 |
-
|
413 |
-
/* Insert draggable elements {{{*/
|
414 |
-
|
415 |
-
// Insert border divs for outline
|
416 |
-
if (options.drawBorders) {
|
417 |
-
borders = {
|
418 |
-
top: insertBorder('hline')
|
419 |
-
.css('top',$.browser.msie?px(-1):px(0)),
|
420 |
-
bottom: insertBorder('hline'),
|
421 |
-
left: insertBorder('vline'),
|
422 |
-
right: insertBorder('vline')
|
423 |
-
};
|
424 |
-
}
|
425 |
-
|
426 |
-
// Insert handles on edges
|
427 |
-
if (options.dragEdges) {
|
428 |
-
handle.t = insertDragbar('n');
|
429 |
-
handle.b = insertDragbar('s');
|
430 |
-
handle.r = insertDragbar('e');
|
431 |
-
handle.l = insertDragbar('w');
|
432 |
-
}
|
433 |
-
|
434 |
-
// Insert side handles
|
435 |
-
options.sideHandles &&
|
436 |
-
createHandles(['n','s','e','w']);
|
437 |
-
|
438 |
-
// Insert corner handles
|
439 |
-
options.cornerHandles &&
|
440 |
-
createHandles(['sw','nw','ne','se']);
|
441 |
-
|
442 |
-
/*}}}*/
|
443 |
-
// Private Methods
|
444 |
-
function insertBorder(type)/*{{{*/
|
445 |
-
{
|
446 |
-
var jq = $('<div />')
|
447 |
-
.css({position: 'absolute', opacity: options.borderOpacity })
|
448 |
-
.addClass(cssClass(type));
|
449 |
-
$img_holder.append(jq);
|
450 |
-
return jq;
|
451 |
-
};
|
452 |
-
/*}}}*/
|
453 |
-
function dragDiv(ord,zi)/*{{{*/
|
454 |
-
{
|
455 |
-
var jq = $('<div />')
|
456 |
-
.mousedown(createDragger(ord))
|
457 |
-
.css({
|
458 |
-
cursor: ord+'-resize',
|
459 |
-
position: 'absolute',
|
460 |
-
zIndex: zi
|
461 |
-
})
|
462 |
-
;
|
463 |
-
$hdl_holder.append(jq);
|
464 |
-
return jq;
|
465 |
-
};
|
466 |
-
/*}}}*/
|
467 |
-
function insertHandle(ord)/*{{{*/
|
468 |
-
{
|
469 |
-
return dragDiv(ord,hdep++)
|
470 |
-
.css({ top: px(-hhs+1), left: px(-hhs+1), opacity: options.handleOpacity })
|
471 |
-
.addClass(cssClass('handle'));
|
472 |
-
};
|
473 |
-
/*}}}*/
|
474 |
-
function insertDragbar(ord)/*{{{*/
|
475 |
-
{
|
476 |
-
var s = options.handleSize,
|
477 |
-
o = hhs,
|
478 |
-
h = s, w = s,
|
479 |
-
t = o, l = o;
|
480 |
-
|
481 |
-
switch(ord)
|
482 |
-
{
|
483 |
-
case 'n': case 's': w = pct(100); break;
|
484 |
-
case 'e': case 'w': h = pct(100); break;
|
485 |
-
}
|
486 |
-
|
487 |
-
return dragDiv(ord,hdep++).width(w).height(h)
|
488 |
-
.css({ top: px(-t+1), left: px(-l+1)});
|
489 |
-
};
|
490 |
-
/*}}}*/
|
491 |
-
function createHandles(li)/*{{{*/
|
492 |
-
{
|
493 |
-
for(i in li) handle[li[i]] = insertHandle(li[i]);
|
494 |
-
};
|
495 |
-
/*}}}*/
|
496 |
-
function moveHandles(c)/*{{{*/
|
497 |
-
{
|
498 |
-
var midvert = Math.round((c.h / 2) - hhs),
|
499 |
-
midhoriz = Math.round((c.w / 2) - hhs),
|
500 |
-
north = west = -hhs+1,
|
501 |
-
east = c.w - hhs,
|
502 |
-
south = c.h - hhs,
|
503 |
-
x, y;
|
504 |
-
|
505 |
-
'e' in handle &&
|
506 |
-
handle.e.css({ top: px(midvert), left: px(east) }) &&
|
507 |
-
handle.w.css({ top: px(midvert) }) &&
|
508 |
-
handle.s.css({ top: px(south), left: px(midhoriz) }) &&
|
509 |
-
handle.n.css({ left: px(midhoriz) });
|
510 |
-
|
511 |
-
'ne' in handle &&
|
512 |
-
handle.ne.css({ left: px(east) }) &&
|
513 |
-
handle.se.css({ top: px(south), left: px(east) }) &&
|
514 |
-
handle.sw.css({ top: px(south) });
|
515 |
-
|
516 |
-
'b' in handle &&
|
517 |
-
handle.b.css({ top: px(south) }) &&
|
518 |
-
handle.r.css({ left: px(east) });
|
519 |
-
};
|
520 |
-
/*}}}*/
|
521 |
-
function moveto(x,y)/*{{{*/
|
522 |
-
{
|
523 |
-
$img2.css({ top: px(-y), left: px(-x) });
|
524 |
-
$sel.css({ top: px(y), left: px(x) });
|
525 |
-
};
|
526 |
-
/*}}}*/
|
527 |
-
function resize(w,h)/*{{{*/
|
528 |
-
{
|
529 |
-
$sel.width(w).height(h);
|
530 |
-
};
|
531 |
-
/*}}}*/
|
532 |
-
function refresh()/*{{{*/
|
533 |
-
{
|
534 |
-
var c = Coords.getFixed();
|
535 |
-
|
536 |
-
Coords.setPressed([c.x,c.y]);
|
537 |
-
Coords.setCurrent([c.x2,c.y2]);
|
538 |
-
|
539 |
-
updateVisible();
|
540 |
-
};
|
541 |
-
/*}}}*/
|
542 |
-
|
543 |
-
// Internal Methods
|
544 |
-
function updateVisible()/*{{{*/
|
545 |
-
{ if (awake) return update(); };
|
546 |
-
/*}}}*/
|
547 |
-
function update()/*{{{*/
|
548 |
-
{
|
549 |
-
var c = Coords.getFixed();
|
550 |
-
|
551 |
-
resize(c.w,c.h);
|
552 |
-
moveto(c.x,c.y);
|
553 |
-
|
554 |
-
options.drawBorders &&
|
555 |
-
borders['right'].css({ left: px(c.w-1) }) &&
|
556 |
-
borders['bottom'].css({ top: px(c.h-1) });
|
557 |
-
|
558 |
-
seehandles && moveHandles(c);
|
559 |
-
awake || show();
|
560 |
-
|
561 |
-
options.onChange(unscale(c));
|
562 |
-
};
|
563 |
-
/*}}}*/
|
564 |
-
function show()/*{{{*/
|
565 |
-
{
|
566 |
-
$sel.show();
|
567 |
-
$img.css('opacity',options.bgOpacity);
|
568 |
-
awake = true;
|
569 |
-
};
|
570 |
-
/*}}}*/
|
571 |
-
function release()/*{{{*/
|
572 |
-
{
|
573 |
-
disableHandles();
|
574 |
-
$sel.hide();
|
575 |
-
$img.css('opacity',1);
|
576 |
-
awake = false;
|
577 |
-
};
|
578 |
-
/*}}}*/
|
579 |
-
function showHandles()//{{{
|
580 |
-
{
|
581 |
-
if (seehandles)
|
582 |
-
{
|
583 |
-
moveHandles(Coords.getFixed());
|
584 |
-
$hdl_holder.show();
|
585 |
-
}
|
586 |
-
};
|
587 |
-
//}}}
|
588 |
-
function enableHandles()/*{{{*/
|
589 |
-
{
|
590 |
-
seehandles = true;
|
591 |
-
if (options.allowResize)
|
592 |
-
{
|
593 |
-
moveHandles(Coords.getFixed());
|
594 |
-
$hdl_holder.show();
|
595 |
-
return true;
|
596 |
-
}
|
597 |
-
};
|
598 |
-
/*}}}*/
|
599 |
-
function disableHandles()/*{{{*/
|
600 |
-
{
|
601 |
-
seehandles = false;
|
602 |
-
$hdl_holder.hide();
|
603 |
-
};
|
604 |
-
/*}}}*/
|
605 |
-
function animMode(v)/*{{{*/
|
606 |
-
{
|
607 |
-
(animating = v) ? disableHandles(): enableHandles();
|
608 |
-
};
|
609 |
-
/*}}}*/
|
610 |
-
function done()/*{{{*/
|
611 |
-
{
|
612 |
-
animMode(false);
|
613 |
-
refresh();
|
614 |
-
};
|
615 |
-
/*}}}*/
|
616 |
-
|
617 |
-
var $track = newTracker().mousedown(createDragger('move'))
|
618 |
-
.css({ cursor: 'move', position: 'absolute', zIndex: 360 })
|
619 |
-
|
620 |
-
$img_holder.append($track);
|
621 |
-
disableHandles();
|
622 |
-
|
623 |
-
return {
|
624 |
-
updateVisible: updateVisible,
|
625 |
-
update: update,
|
626 |
-
release: release,
|
627 |
-
refresh: refresh,
|
628 |
-
setCursor: function (cursor) { $track.css('cursor',cursor); },
|
629 |
-
enableHandles: enableHandles,
|
630 |
-
enableOnly: function() { seehandles = true; },
|
631 |
-
showHandles: showHandles,
|
632 |
-
disableHandles: disableHandles,
|
633 |
-
animMode: animMode,
|
634 |
-
done: done
|
635 |
-
};
|
636 |
-
}();
|
637 |
-
/*}}}*/
|
638 |
-
var Tracker = function()/*{{{*/
|
639 |
-
{
|
640 |
-
var onMove = function() { },
|
641 |
-
onDone = function() { },
|
642 |
-
trackDoc = options.trackDocument;
|
643 |
-
|
644 |
-
if (!trackDoc)
|
645 |
-
{
|
646 |
-
$trk
|
647 |
-
.mousemove(trackMove)
|
648 |
-
.mouseup(trackUp)
|
649 |
-
.mouseout(trackUp)
|
650 |
-
;
|
651 |
-
}
|
652 |
-
|
653 |
-
function toFront()/*{{{*/
|
654 |
-
{
|
655 |
-
$trk.css({zIndex:450});
|
656 |
-
if (trackDoc)
|
657 |
-
{
|
658 |
-
$(document)
|
659 |
-
.mousemove(trackMove)
|
660 |
-
.mouseup(trackUp)
|
661 |
-
;
|
662 |
-
}
|
663 |
-
}
|
664 |
-
/*}}}*/
|
665 |
-
function toBack()/*{{{*/
|
666 |
-
{
|
667 |
-
$trk.css({zIndex:290});
|
668 |
-
if (trackDoc)
|
669 |
-
{
|
670 |
-
$(document)
|
671 |
-
.unbind('mousemove',trackMove)
|
672 |
-
.unbind('mouseup',trackUp)
|
673 |
-
;
|
674 |
-
}
|
675 |
-
}
|
676 |
-
/*}}}*/
|
677 |
-
function trackMove(e)/*{{{*/
|
678 |
-
{
|
679 |
-
onMove(mouseAbs(e));
|
680 |
-
};
|
681 |
-
/*}}}*/
|
682 |
-
function trackUp(e)/*{{{*/
|
683 |
-
{
|
684 |
-
e.preventDefault();
|
685 |
-
e.stopPropagation();
|
686 |
-
|
687 |
-
if (btndown)
|
688 |
-
{
|
689 |
-
btndown = false;
|
690 |
-
|
691 |
-
onDone(mouseAbs(e));
|
692 |
-
options.onSelect(unscale(Coords.getFixed()));
|
693 |
-
toBack();
|
694 |
-
onMove = function() { };
|
695 |
-
onDone = function() { };
|
696 |
-
}
|
697 |
-
|
698 |
-
return false;
|
699 |
-
};
|
700 |
-
/*}}}*/
|
701 |
-
|
702 |
-
function activateHandlers(move,done)/* {{{ */
|
703 |
-
{
|
704 |
-
btndown = true;
|
705 |
-
onMove = move;
|
706 |
-
onDone = done;
|
707 |
-
toFront();
|
708 |
-
return false;
|
709 |
-
};
|
710 |
-
/* }}} */
|
711 |
-
|
712 |
-
function setCursor(t) { $trk.css('cursor',t); };
|
713 |
-
|
714 |
-
$img.before($trk);
|
715 |
-
return {
|
716 |
-
activateHandlers: activateHandlers,
|
717 |
-
setCursor: setCursor
|
718 |
-
};
|
719 |
-
}();
|
720 |
-
/*}}}*/
|
721 |
-
var KeyManager = function()/*{{{*/
|
722 |
-
{
|
723 |
-
var $keymgr = $('<input type="radio" />')
|
724 |
-
.css({ position: 'absolute', left: '-30px' })
|
725 |
-
.keypress(parseKey)
|
726 |
-
.blur(onBlur),
|
727 |
-
|
728 |
-
$keywrap = $('<div />')
|
729 |
-
.css({
|
730 |
-
position: 'absolute',
|
731 |
-
overflow: 'hidden'
|
732 |
-
})
|
733 |
-
.append($keymgr)
|
734 |
-
;
|
735 |
-
|
736 |
-
function watchKeys()/*{{{*/
|
737 |
-
{
|
738 |
-
if (options.keySupport)
|
739 |
-
{
|
740 |
-
$keymgr.show();
|
741 |
-
$keymgr.focus();
|
742 |
-
}
|
743 |
-
};
|
744 |
-
/*}}}*/
|
745 |
-
function onBlur(e)/*{{{*/
|
746 |
-
{
|
747 |
-
$keymgr.hide();
|
748 |
-
};
|
749 |
-
/*}}}*/
|
750 |
-
function doNudge(e,x,y)/*{{{*/
|
751 |
-
{
|
752 |
-
if (options.allowMove) {
|
753 |
-
Coords.moveOffset([x,y]);
|
754 |
-
Selection.updateVisible();
|
755 |
-
};
|
756 |
-
e.preventDefault();
|
757 |
-
e.stopPropagation();
|
758 |
-
};
|
759 |
-
/*}}}*/
|
760 |
-
function parseKey(e)/*{{{*/
|
761 |
-
{
|
762 |
-
if (e.ctrlKey) return true;
|
763 |
-
shift_down = e.shiftKey ? true : false;
|
764 |
-
var nudge = shift_down ? 10 : 1;
|
765 |
-
switch(e.keyCode)
|
766 |
-
{
|
767 |
-
case 37: doNudge(e,-nudge,0); break;
|
768 |
-
case 39: doNudge(e,nudge,0); break;
|
769 |
-
case 38: doNudge(e,0,-nudge); break;
|
770 |
-
case 40: doNudge(e,0,nudge); break;
|
771 |
-
|
772 |
-
case 27: Selection.release(); break;
|
773 |
-
|
774 |
-
case 9: return true;
|
775 |
-
}
|
776 |
-
|
777 |
-
return nothing(e);
|
778 |
-
};
|
779 |
-
/*}}}*/
|
780 |
-
|
781 |
-
if (options.keySupport) $keywrap.insertBefore($img);
|
782 |
-
return {
|
783 |
-
watchKeys: watchKeys
|
784 |
-
};
|
785 |
-
}();
|
786 |
-
/*}}}*/
|
787 |
-
|
788 |
-
// }}}
|
789 |
-
// Internal Methods {{{
|
790 |
-
|
791 |
-
function px(n) { return '' + parseInt(n) + 'px'; };
|
792 |
-
function pct(n) { return '' + parseInt(n) + '%'; };
|
793 |
-
function cssClass(cl) { return options.baseClass + '-' + cl; };
|
794 |
-
function getPos(obj)/*{{{*/
|
795 |
-
{
|
796 |
-
// Updated in v0.9.4 to use built-in dimensions plugin
|
797 |
-
var pos = $(obj).offset();
|
798 |
-
return [ pos.left, pos.top ];
|
799 |
-
};
|
800 |
-
/*}}}*/
|
801 |
-
function mouseAbs(e)/*{{{*/
|
802 |
-
{
|
803 |
-
return [ (e.pageX - docOffset[0]), (e.pageY - docOffset[1]) ];
|
804 |
-
};
|
805 |
-
/*}}}*/
|
806 |
-
function myCursor(type)/*{{{*/
|
807 |
-
{
|
808 |
-
if (type != lastcurs)
|
809 |
-
{
|
810 |
-
Tracker.setCursor(type);
|
811 |
-
//Handles.xsetCursor(type);
|
812 |
-
lastcurs = type;
|
813 |
-
}
|
814 |
-
};
|
815 |
-
/*}}}*/
|
816 |
-
function startDragMode(mode,pos)/*{{{*/
|
817 |
-
{
|
818 |
-
docOffset = getPos($img);
|
819 |
-
Tracker.setCursor(mode=='move'?mode:mode+'-resize');
|
820 |
-
|
821 |
-
if (mode == 'move')
|
822 |
-
return Tracker.activateHandlers(createMover(pos), doneSelect);
|
823 |
-
|
824 |
-
var fc = Coords.getFixed();
|
825 |
-
var opp = oppLockCorner(mode);
|
826 |
-
var opc = Coords.getCorner(oppLockCorner(opp));
|
827 |
-
|
828 |
-
Coords.setPressed(Coords.getCorner(opp));
|
829 |
-
Coords.setCurrent(opc);
|
830 |
-
|
831 |
-
Tracker.activateHandlers(dragmodeHandler(mode,fc),doneSelect);
|
832 |
-
};
|
833 |
-
/*}}}*/
|
834 |
-
function dragmodeHandler(mode,f)/*{{{*/
|
835 |
-
{
|
836 |
-
return function(pos) {
|
837 |
-
if (!options.aspectRatio) switch(mode)
|
838 |
-
{
|
839 |
-
case 'e': pos[1] = f.y2; break;
|
840 |
-
case 'w': pos[1] = f.y2; break;
|
841 |
-
case 'n': pos[0] = f.x2; break;
|
842 |
-
case 's': pos[0] = f.x2; break;
|
843 |
-
}
|
844 |
-
else switch(mode)
|
845 |
-
{
|
846 |
-
case 'e': pos[1] = f.y+1; break;
|
847 |
-
case 'w': pos[1] = f.y+1; break;
|
848 |
-
case 'n': pos[0] = f.x+1; break;
|
849 |
-
case 's': pos[0] = f.x+1; break;
|
850 |
-
}
|
851 |
-
Coords.setCurrent(pos);
|
852 |
-
Selection.update();
|
853 |
-
};
|
854 |
-
};
|
855 |
-
/*}}}*/
|
856 |
-
function createMover(pos)/*{{{*/
|
857 |
-
{
|
858 |
-
var lloc = pos;
|
859 |
-
KeyManager.watchKeys();
|
860 |
-
|
861 |
-
return function(pos)
|
862 |
-
{
|
863 |
-
Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]);
|
864 |
-
lloc = pos;
|
865 |
-
|
866 |
-
Selection.update();
|
867 |
-
};
|
868 |
-
};
|
869 |
-
/*}}}*/
|
870 |
-
function oppLockCorner(ord)/*{{{*/
|
871 |
-
{
|
872 |
-
switch(ord)
|
873 |
-
{
|
874 |
-
case 'n': return 'sw';
|
875 |
-
case 's': return 'nw';
|
876 |
-
case 'e': return 'nw';
|
877 |
-
case 'w': return 'ne';
|
878 |
-
case 'ne': return 'sw';
|
879 |
-
case 'nw': return 'se';
|
880 |
-
case 'se': return 'nw';
|
881 |
-
case 'sw': return 'ne';
|
882 |
-
};
|
883 |
-
};
|
884 |
-
/*}}}*/
|
885 |
-
function createDragger(ord)/*{{{*/
|
886 |
-
{
|
887 |
-
return function(e) {
|
888 |
-
if (options.disabled) return false;
|
889 |
-
if ((ord == 'move') && !options.allowMove) return false;
|
890 |
-
btndown = true;
|
891 |
-
startDragMode(ord,mouseAbs(e));
|
892 |
-
e.stopPropagation();
|
893 |
-
e.preventDefault();
|
894 |
-
return false;
|
895 |
-
};
|
896 |
-
};
|
897 |
-
/*}}}*/
|
898 |
-
function presize($obj,w,h)/*{{{*/
|
899 |
-
{
|
900 |
-
var nw = $obj.width(), nh = $obj.height();
|
901 |
-
if ((nw > w) && w > 0)
|
902 |
-
{
|
903 |
-
nw = w;
|
904 |
-
nh = (w/$obj.width()) * $obj.height();
|
905 |
-
}
|
906 |
-
if ((nh > h) && h > 0)
|
907 |
-
{
|
908 |
-
nh = h;
|
909 |
-
nw = (h/$obj.height()) * $obj.width();
|
910 |
-
}
|
911 |
-
xscale = $obj.width() / nw;
|
912 |
-
yscale = $obj.height() / nh;
|
913 |
-
$obj.width(nw).height(nh);
|
914 |
-
};
|
915 |
-
/*}}}*/
|
916 |
-
function unscale(c)/*{{{*/
|
917 |
-
{
|
918 |
-
return {
|
919 |
-
x: parseInt(c.x * xscale), y: parseInt(c.y * yscale),
|
920 |
-
x2: parseInt(c.x2 * xscale), y2: parseInt(c.y2 * yscale),
|
921 |
-
w: parseInt(c.w * xscale), h: parseInt(c.h * yscale)
|
922 |
-
};
|
923 |
-
};
|
924 |
-
/*}}}*/
|
925 |
-
function doneSelect(pos)/*{{{*/
|
926 |
-
{
|
927 |
-
var c = Coords.getFixed();
|
928 |
-
if (c.w > options.minSelect[0] && c.h > options.minSelect[1])
|
929 |
-
{
|
930 |
-
Selection.enableHandles();
|
931 |
-
Selection.done();
|
932 |
-
}
|
933 |
-
else
|
934 |
-
{
|
935 |
-
Selection.release();
|
936 |
-
}
|
937 |
-
Tracker.setCursor( options.allowSelect?'crosshair':'default' );
|
938 |
-
};
|
939 |
-
/*}}}*/
|
940 |
-
function newSelection(e)/*{{{*/
|
941 |
-
{
|
942 |
-
if (options.disabled) return false;
|
943 |
-
if (!options.allowSelect) return false;
|
944 |
-
btndown = true;
|
945 |
-
docOffset = getPos($img);
|
946 |
-
Selection.disableHandles();
|
947 |
-
myCursor('crosshair');
|
948 |
-
var pos = mouseAbs(e);
|
949 |
-
Coords.setPressed(pos);
|
950 |
-
Tracker.activateHandlers(selectDrag,doneSelect);
|
951 |
-
KeyManager.watchKeys();
|
952 |
-
Selection.update();
|
953 |
-
|
954 |
-
e.stopPropagation();
|
955 |
-
e.preventDefault();
|
956 |
-
return false;
|
957 |
-
};
|
958 |
-
/*}}}*/
|
959 |
-
function selectDrag(pos)/*{{{*/
|
960 |
-
{
|
961 |
-
Coords.setCurrent(pos);
|
962 |
-
Selection.update();
|
963 |
-
};
|
964 |
-
/*}}}*/
|
965 |
-
function newTracker()
|
966 |
-
{
|
967 |
-
var trk = $('<div></div>').addClass(cssClass('tracker'));
|
968 |
-
$.browser.msie && trk.css({ opacity: 0, backgroundColor: 'white' });
|
969 |
-
return trk;
|
970 |
-
};
|
971 |
-
|
972 |
-
// }}}
|
973 |
-
// API methods {{{
|
974 |
-
|
975 |
-
function animateTo(a)/*{{{*/
|
976 |
-
{
|
977 |
-
var x1 = a[0] / xscale,
|
978 |
-
y1 = a[1] / yscale,
|
979 |
-
x2 = a[2] / xscale,
|
980 |
-
y2 = a[3] / yscale;
|
981 |
-
|
982 |
-
if (animating) return;
|
983 |
-
|
984 |
-
var animto = Coords.flipCoords(x1,y1,x2,y2);
|
985 |
-
var c = Coords.getFixed();
|
986 |
-
var animat = initcr = [ c.x, c.y, c.x2, c.y2 ];
|
987 |
-
var interv = options.animationDelay;
|
988 |
-
|
989 |
-
var x = animat[0];
|
990 |
-
var y = animat[1];
|
991 |
-
var x2 = animat[2];
|
992 |
-
var y2 = animat[3];
|
993 |
-
var ix1 = animto[0] - initcr[0];
|
994 |
-
var iy1 = animto[1] - initcr[1];
|
995 |
-
var ix2 = animto[2] - initcr[2];
|
996 |
-
var iy2 = animto[3] - initcr[3];
|
997 |
-
var pcent = 0;
|
998 |
-
var velocity = options.swingSpeed;
|
999 |
-
|
1000 |
-
Selection.animMode(true);
|
1001 |
-
|
1002 |
-
var animator = function()
|
1003 |
-
{
|
1004 |
-
return function()
|
1005 |
-
{
|
1006 |
-
pcent += (100 - pcent) / velocity;
|
1007 |
-
|
1008 |
-
animat[0] = x + ((pcent / 100) * ix1);
|
1009 |
-
animat[1] = y + ((pcent / 100) * iy1);
|
1010 |
-
animat[2] = x2 + ((pcent / 100) * ix2);
|
1011 |
-
animat[3] = y2 + ((pcent / 100) * iy2);
|
1012 |
-
|
1013 |
-
if (pcent < 100) animateStart();
|
1014 |
-
else Selection.done();
|
1015 |
-
|
1016 |
-
if (pcent >= 99.8) pcent = 100;
|
1017 |
-
|
1018 |
-
setSelectRaw(animat);
|
1019 |
-
};
|
1020 |
-
}();
|
1021 |
-
|
1022 |
-
function animateStart()
|
1023 |
-
{ window.setTimeout(animator,interv); };
|
1024 |
-
|
1025 |
-
animateStart();
|
1026 |
-
};
|
1027 |
-
/*}}}*/
|
1028 |
-
function setSelect(rect)//{{{
|
1029 |
-
{
|
1030 |
-
setSelectRaw([rect[0]/xscale,rect[1]/yscale,rect[2]/xscale,rect[3]/yscale]);
|
1031 |
-
};
|
1032 |
-
//}}}
|
1033 |
-
function setSelectRaw(l) /*{{{*/
|
1034 |
-
{
|
1035 |
-
Coords.setPressed([l[0],l[1]]);
|
1036 |
-
Coords.setCurrent([l[2],l[3]]);
|
1037 |
-
Selection.update();
|
1038 |
-
};
|
1039 |
-
/*}}}*/
|
1040 |
-
function setOptions(opt)/*{{{*/
|
1041 |
-
{
|
1042 |
-
if (typeof(opt) != 'object') opt = { };
|
1043 |
-
options = $.extend(options,opt);
|
1044 |
-
|
1045 |
-
if (typeof(options.onChange)!=='function')
|
1046 |
-
options.onChange = function() { };
|
1047 |
-
|
1048 |
-
if (typeof(options.onSelect)!=='function')
|
1049 |
-
options.onSelect = function() { };
|
1050 |
-
|
1051 |
-
};
|
1052 |
-
/*}}}*/
|
1053 |
-
function tellSelect()/*{{{*/
|
1054 |
-
{
|
1055 |
-
return unscale(Coords.getFixed());
|
1056 |
-
};
|
1057 |
-
/*}}}*/
|
1058 |
-
function tellScaled()/*{{{*/
|
1059 |
-
{
|
1060 |
-
return Coords.getFixed();
|
1061 |
-
};
|
1062 |
-
/*}}}*/
|
1063 |
-
function setOptionsNew(opt)/*{{{*/
|
1064 |
-
{
|
1065 |
-
setOptions(opt);
|
1066 |
-
interfaceUpdate();
|
1067 |
-
};
|
1068 |
-
/*}}}*/
|
1069 |
-
function disableCrop()//{{{
|
1070 |
-
{
|
1071 |
-
options.disabled = true;
|
1072 |
-
Selection.disableHandles();
|
1073 |
-
Selection.setCursor('default');
|
1074 |
-
Tracker.setCursor('default');
|
1075 |
-
};
|
1076 |
-
//}}}
|
1077 |
-
function enableCrop()//{{{
|
1078 |
-
{
|
1079 |
-
options.disabled = false;
|
1080 |
-
interfaceUpdate();
|
1081 |
-
};
|
1082 |
-
//}}}
|
1083 |
-
function cancelCrop()//{{{
|
1084 |
-
{
|
1085 |
-
Selection.done();
|
1086 |
-
Tracker.activateHandlers(null,null);
|
1087 |
-
};
|
1088 |
-
//}}}
|
1089 |
-
function destroy()//{{{
|
1090 |
-
{
|
1091 |
-
$div.remove();
|
1092 |
-
$origimg.show();
|
1093 |
-
};
|
1094 |
-
//}}}
|
1095 |
-
|
1096 |
-
function interfaceUpdate(alt)//{{{
|
1097 |
-
// This method tweaks the interface based on options object.
|
1098 |
-
// Called when options are changed and at end of initialization.
|
1099 |
-
{
|
1100 |
-
options.allowResize ?
|
1101 |
-
alt?Selection.enableOnly():Selection.enableHandles():
|
1102 |
-
Selection.disableHandles();
|
1103 |
-
|
1104 |
-
Tracker.setCursor( options.allowSelect? 'crosshair': 'default' );
|
1105 |
-
Selection.setCursor( options.allowMove? 'move': 'default' );
|
1106 |
-
|
1107 |
-
$div.css('backgroundColor',options.bgColor);
|
1108 |
-
|
1109 |
-
if ('setSelect' in options) {
|
1110 |
-
setSelect(opt.setSelect);
|
1111 |
-
Selection.done();
|
1112 |
-
delete(options.setSelect);
|
1113 |
-
}
|
1114 |
-
|
1115 |
-
if ('trueSize' in options) {
|
1116 |
-
xscale = options.trueSize[0] / boundx;
|
1117 |
-
yscale = options.trueSize[1] / boundy;
|
1118 |
-
}
|
1119 |
-
|
1120 |
-
xlimit = options.maxSize[0] || 0;
|
1121 |
-
ylimit = options.maxSize[1] || 0;
|
1122 |
-
xmin = options.minSize[0] || 0;
|
1123 |
-
ymin = options.minSize[1] || 0;
|
1124 |
-
|
1125 |
-
if ('outerImage' in options)
|
1126 |
-
{
|
1127 |
-
$img.attr('src',options.outerImage);
|
1128 |
-
delete(options.outerImage);
|
1129 |
-
}
|
1130 |
-
|
1131 |
-
Selection.refresh();
|
1132 |
-
};
|
1133 |
-
//}}}
|
1134 |
-
|
1135 |
-
// }}}
|
1136 |
-
|
1137 |
-
$hdl_holder.hide();
|
1138 |
-
interfaceUpdate(true);
|
1139 |
-
|
1140 |
-
var api = {
|
1141 |
-
animateTo: animateTo,
|
1142 |
-
setSelect: setSelect,
|
1143 |
-
setOptions: setOptionsNew,
|
1144 |
-
tellSelect: tellSelect,
|
1145 |
-
tellScaled: tellScaled,
|
1146 |
-
|
1147 |
-
disable: disableCrop,
|
1148 |
-
enable: enableCrop,
|
1149 |
-
cancel: cancelCrop,
|
1150 |
-
|
1151 |
-
focus: KeyManager.watchKeys,
|
1152 |
-
|
1153 |
-
getBounds: function() { return [ boundx * xscale, boundy * yscale ]; },
|
1154 |
-
getWidgetSize: function() { return [ boundx, boundy ]; },
|
1155 |
-
|
1156 |
-
release: Selection.release,
|
1157 |
-
destroy: destroy
|
1158 |
-
|
1159 |
-
};
|
1160 |
-
|
1161 |
-
$origimg.data('Jcrop',api);
|
1162 |
-
return api;
|
1163 |
-
};
|
1164 |
-
|
1165 |
-
$.fn.Jcrop = function(options)/*{{{*/
|
1166 |
-
{
|
1167 |
-
function attachWhenDone(from)/*{{{*/
|
1168 |
-
{
|
1169 |
-
var loadsrc = options.useImg || from.src;
|
1170 |
-
var img = new Image();
|
1171 |
-
img.onload = function() { $.Jcrop(from,options); };
|
1172 |
-
img.src = loadsrc;
|
1173 |
-
};
|
1174 |
-
/*}}}*/
|
1175 |
-
if (typeof(options) !== 'object') options = { };
|
1176 |
-
|
1177 |
-
// Iterate over each object, attach Jcrop
|
1178 |
-
this.each(function()
|
1179 |
-
{
|
1180 |
-
// If we've already attached to this object
|
1181 |
-
if ($(this).data('Jcrop'))
|
1182 |
-
{
|
1183 |
-
// The API can be requested this way (undocumented)
|
1184 |
-
if (options == 'api') return $(this).data('Jcrop');
|
1185 |
-
// Otherwise, we just reset the options...
|
1186 |
-
else $(this).data('Jcrop').setOptions(options);
|
1187 |
-
}
|
1188 |
-
// If we haven't been attached, preload and attach
|
1189 |
-
else attachWhenDone(this);
|
1190 |
-
});
|
1191 |
-
|
1192 |
-
// Return "this" so we're chainable a la jQuery plugin-style!
|
1193 |
-
return this;
|
1194 |
-
};
|
1195 |
-
/*}}}*/
|
1196 |
-
|
1197 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/colorpicker/css/colorpicker.css
DELETED
@@ -1,161 +0,0 @@
|
|
1 |
-
.colorpicker {
|
2 |
-
width: 356px;
|
3 |
-
height: 176px;
|
4 |
-
overflow: hidden;
|
5 |
-
position: absolute;
|
6 |
-
background: url(../images/colorpicker_background.png);
|
7 |
-
font-family: Arial, Helvetica, sans-serif;
|
8 |
-
display: none;
|
9 |
-
}
|
10 |
-
.colorpicker_color {
|
11 |
-
width: 150px;
|
12 |
-
height: 150px;
|
13 |
-
left: 14px;
|
14 |
-
top: 13px;
|
15 |
-
position: absolute;
|
16 |
-
background: #f00;
|
17 |
-
overflow: hidden;
|
18 |
-
cursor: crosshair;
|
19 |
-
}
|
20 |
-
.colorpicker_color div {
|
21 |
-
position: absolute;
|
22 |
-
top: 0;
|
23 |
-
left: 0;
|
24 |
-
width: 150px;
|
25 |
-
height: 150px;
|
26 |
-
background: url(../images/colorpicker_overlay.png);
|
27 |
-
}
|
28 |
-
.colorpicker_color div div {
|
29 |
-
position: absolute;
|
30 |
-
top: 0;
|
31 |
-
left: 0;
|
32 |
-
width: 11px;
|
33 |
-
height: 11px;
|
34 |
-
overflow: hidden;
|
35 |
-
background: url(../images/colorpicker_select.gif);
|
36 |
-
margin: -5px 0 0 -5px;
|
37 |
-
}
|
38 |
-
.colorpicker_hue {
|
39 |
-
position: absolute;
|
40 |
-
top: 13px;
|
41 |
-
left: 171px;
|
42 |
-
width: 35px;
|
43 |
-
height: 150px;
|
44 |
-
cursor: n-resize;
|
45 |
-
}
|
46 |
-
.colorpicker_hue div {
|
47 |
-
position: absolute;
|
48 |
-
width: 35px;
|
49 |
-
height: 9px;
|
50 |
-
overflow: hidden;
|
51 |
-
background: url(../images/colorpicker_indic.gif) left top;
|
52 |
-
margin: -4px 0 0 0;
|
53 |
-
left: 0px;
|
54 |
-
}
|
55 |
-
.colorpicker_new_color {
|
56 |
-
position: absolute;
|
57 |
-
width: 60px;
|
58 |
-
height: 30px;
|
59 |
-
left: 213px;
|
60 |
-
top: 13px;
|
61 |
-
background: #f00;
|
62 |
-
}
|
63 |
-
.colorpicker_current_color {
|
64 |
-
position: absolute;
|
65 |
-
width: 60px;
|
66 |
-
height: 30px;
|
67 |
-
left: 283px;
|
68 |
-
top: 13px;
|
69 |
-
background: #f00;
|
70 |
-
}
|
71 |
-
.colorpicker input {
|
72 |
-
background-color: transparent;
|
73 |
-
border: 1px solid transparent;
|
74 |
-
position: absolute;
|
75 |
-
font-size: 10px;
|
76 |
-
font-family: Arial, Helvetica, sans-serif;
|
77 |
-
color: #898989;
|
78 |
-
top: 4px;
|
79 |
-
right: 11px;
|
80 |
-
text-align: right;
|
81 |
-
margin: 0;
|
82 |
-
padding: 0;
|
83 |
-
height: 13px;
|
84 |
-
}
|
85 |
-
.colorpicker_hex {
|
86 |
-
position: absolute;
|
87 |
-
width: 72px;
|
88 |
-
height: 22px;
|
89 |
-
background: url(../images/colorpicker_hex.png) top;
|
90 |
-
left: 212px;
|
91 |
-
top: 142px;
|
92 |
-
}
|
93 |
-
.colorpicker_hex input {
|
94 |
-
right: 6px;
|
95 |
-
}
|
96 |
-
.colorpicker_field {
|
97 |
-
height: 22px;
|
98 |
-
width: 62px;
|
99 |
-
background-position: top;
|
100 |
-
position: absolute;
|
101 |
-
}
|
102 |
-
.colorpicker_field span {
|
103 |
-
position: absolute;
|
104 |
-
width: 12px;
|
105 |
-
height: 22px;
|
106 |
-
overflow: hidden;
|
107 |
-
top: 0;
|
108 |
-
right: 0;
|
109 |
-
cursor: n-resize;
|
110 |
-
}
|
111 |
-
.colorpicker_rgb_r {
|
112 |
-
background-image: url(../images/colorpicker_rgb_r.png);
|
113 |
-
top: 52px;
|
114 |
-
left: 212px;
|
115 |
-
}
|
116 |
-
.colorpicker_rgb_g {
|
117 |
-
background-image: url(../images/colorpicker_rgb_g.png);
|
118 |
-
top: 82px;
|
119 |
-
left: 212px;
|
120 |
-
}
|
121 |
-
.colorpicker_rgb_b {
|
122 |
-
background-image: url(../images/colorpicker_rgb_b.png);
|
123 |
-
top: 112px;
|
124 |
-
left: 212px;
|
125 |
-
}
|
126 |
-
.colorpicker_hsb_h {
|
127 |
-
background-image: url(../images/colorpicker_hsb_h.png);
|
128 |
-
top: 52px;
|
129 |
-
left: 282px;
|
130 |
-
}
|
131 |
-
.colorpicker_hsb_s {
|
132 |
-
background-image: url(../images/colorpicker_hsb_s.png);
|
133 |
-
top: 82px;
|
134 |
-
left: 282px;
|
135 |
-
}
|
136 |
-
.colorpicker_hsb_b {
|
137 |
-
background-image: url(../images/colorpicker_hsb_b.png);
|
138 |
-
top: 112px;
|
139 |
-
left: 282px;
|
140 |
-
}
|
141 |
-
.colorpicker_submit {
|
142 |
-
position: absolute;
|
143 |
-
width: 22px;
|
144 |
-
height: 22px;
|
145 |
-
background: url(../images/colorpicker_submit.png) top;
|
146 |
-
left: 322px;
|
147 |
-
top: 142px;
|
148 |
-
overflow: hidden;
|
149 |
-
}
|
150 |
-
.colorpicker_focus {
|
151 |
-
background-position: center;
|
152 |
-
}
|
153 |
-
.colorpicker_hex.colorpicker_focus {
|
154 |
-
background-position: bottom;
|
155 |
-
}
|
156 |
-
.colorpicker_submit.colorpicker_focus {
|
157 |
-
background-position: bottom;
|
158 |
-
}
|
159 |
-
.colorpicker_slider {
|
160 |
-
background-position: bottom;
|
161 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/colorpicker/images/blank.gif
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_background.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_hex.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_hsb_b.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_hsb_h.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_hsb_s.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_indic.gif
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_overlay.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_rgb_b.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_rgb_g.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_rgb_r.png
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_select.gif
DELETED
Binary file
|
admin/js/colorpicker/images/colorpicker_submit.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_background.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_hex.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_hsb_b.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_hsb_h.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_hsb_s.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_indic.gif
DELETED
Binary file
|
admin/js/colorpicker/images/custom_rgb_b.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_rgb_g.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_rgb_r.png
DELETED
Binary file
|
admin/js/colorpicker/images/custom_submit.png
DELETED
Binary file
|
admin/js/colorpicker/images/select.png
DELETED
Binary file
|
admin/js/colorpicker/images/select2.png
DELETED
Binary file
|
admin/js/colorpicker/images/slider.png
DELETED
Binary file
|
admin/js/colorpicker/js/colorpicker.js
DELETED
@@ -1,484 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
*
|
3 |
-
* Color picker
|
4 |
-
* Author: Stefan Petre www.eyecon.ro
|
5 |
-
*
|
6 |
-
* Dual licensed under the MIT and GPL licenses
|
7 |
-
*
|
8 |
-
*/
|
9 |
-
(function ($) {
|
10 |
-
var ColorPicker = function () {
|
11 |
-
var
|
12 |
-
ids = {},
|
13 |
-
inAction,
|
14 |
-
charMin = 65,
|
15 |
-
visible,
|
16 |
-
tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
|
17 |
-
defaults = {
|
18 |
-
eventName: 'click',
|
19 |
-
onShow: function () {},
|
20 |
-
onBeforeShow: function(){},
|
21 |
-
onHide: function () {},
|
22 |
-
onChange: function () {},
|
23 |
-
onSubmit: function () {},
|
24 |
-
color: 'ff0000',
|
25 |
-
livePreview: true,
|
26 |
-
flat: false
|
27 |
-
},
|
28 |
-
fillRGBFields = function (hsb, cal) {
|
29 |
-
var rgb = HSBToRGB(hsb);
|
30 |
-
$(cal).data('colorpicker').fields
|
31 |
-
.eq(1).val(rgb.r).end()
|
32 |
-
.eq(2).val(rgb.g).end()
|
33 |
-
.eq(3).val(rgb.b).end();
|
34 |
-
},
|
35 |
-
fillHSBFields = function (hsb, cal) {
|
36 |
-
$(cal).data('colorpicker').fields
|
37 |
-
.eq(4).val(hsb.h).end()
|
38 |
-
.eq(5).val(hsb.s).end()
|
39 |
-
.eq(6).val(hsb.b).end();
|
40 |
-
},
|
41 |
-
fillHexFields = function (hsb, cal) {
|
42 |
-
$(cal).data('colorpicker').fields
|
43 |
-
.eq(0).val(HSBToHex(hsb)).end();
|
44 |
-
},
|
45 |
-
setSelector = function (hsb, cal) {
|
46 |
-
$(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
|
47 |
-
$(cal).data('colorpicker').selectorIndic.css({
|
48 |
-
left: parseInt(150 * hsb.s/100, 10),
|
49 |
-
top: parseInt(150 * (100-hsb.b)/100, 10)
|
50 |
-
});
|
51 |
-
},
|
52 |
-
setHue = function (hsb, cal) {
|
53 |
-
$(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
|
54 |
-
},
|
55 |
-
setCurrentColor = function (hsb, cal) {
|
56 |
-
$(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
|
57 |
-
},
|
58 |
-
setNewColor = function (hsb, cal) {
|
59 |
-
$(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
|
60 |
-
},
|
61 |
-
keyDown = function (ev) {
|
62 |
-
var pressedKey = ev.charCode || ev.keyCode || -1;
|
63 |
-
if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
|
64 |
-
return false;
|
65 |
-
}
|
66 |
-
var cal = $(this).parent().parent();
|
67 |
-
if (cal.data('colorpicker').livePreview === true) {
|
68 |
-
change.apply(this);
|
69 |
-
}
|
70 |
-
},
|
71 |
-
change = function (ev) {
|
72 |
-
var cal = $(this).parent().parent(), col;
|
73 |
-
if (this.parentNode.className.indexOf('_hex') > 0) {
|
74 |
-
cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
|
75 |
-
} else if (this.parentNode.className.indexOf('_hsb') > 0) {
|
76 |
-
cal.data('colorpicker').color = col = fixHSB({
|
77 |
-
h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
|
78 |
-
s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
|
79 |
-
b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
|
80 |
-
});
|
81 |
-
} else {
|
82 |
-
cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
|
83 |
-
r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
|
84 |
-
g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
|
85 |
-
b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
|
86 |
-
}));
|
87 |
-
}
|
88 |
-
if (ev) {
|
89 |
-
fillRGBFields(col, cal.get(0));
|
90 |
-
fillHexFields(col, cal.get(0));
|
91 |
-
fillHSBFields(col, cal.get(0));
|
92 |
-
}
|
93 |
-
setSelector(col, cal.get(0));
|
94 |
-
setHue(col, cal.get(0));
|
95 |
-
setNewColor(col, cal.get(0));
|
96 |
-
cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
|
97 |
-
},
|
98 |
-
blur = function (ev) {
|
99 |
-
var cal = $(this).parent().parent();
|
100 |
-
cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
|
101 |
-
},
|
102 |
-
focus = function () {
|
103 |
-
charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
|
104 |
-
$(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
|
105 |
-
$(this).parent().addClass('colorpicker_focus');
|
106 |
-
},
|
107 |
-
downIncrement = function (ev) {
|
108 |
-
var field = $(this).parent().find('input').focus();
|
109 |
-
var current = {
|
110 |
-
el: $(this).parent().addClass('colorpicker_slider'),
|
111 |
-
max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
|
112 |
-
y: ev.pageY,
|
113 |
-
field: field,
|
114 |
-
val: parseInt(field.val(), 10),
|
115 |
-
preview: $(this).parent().parent().data('colorpicker').livePreview
|
116 |
-
};
|
117 |
-
$(document).bind('mouseup', current, upIncrement);
|
118 |
-
$(document).bind('mousemove', current, moveIncrement);
|
119 |
-
},
|
120 |
-
moveIncrement = function (ev) {
|
121 |
-
ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
|
122 |
-
if (ev.data.preview) {
|
123 |
-
change.apply(ev.data.field.get(0), [true]);
|
124 |
-
}
|
125 |
-
return false;
|
126 |
-
},
|
127 |
-
upIncrement = function (ev) {
|
128 |
-
change.apply(ev.data.field.get(0), [true]);
|
129 |
-
ev.data.el.removeClass('colorpicker_slider').find('input').focus();
|
130 |
-
$(document).unbind('mouseup', upIncrement);
|
131 |
-
$(document).unbind('mousemove', moveIncrement);
|
132 |
-
return false;
|
133 |
-
},
|
134 |
-
downHue = function (ev) {
|
135 |
-
var current = {
|
136 |
-
cal: $(this).parent(),
|
137 |
-
y: $(this).offset().top
|
138 |
-
};
|
139 |
-
current.preview = current.cal.data('colorpicker').livePreview;
|
140 |
-
$(document).bind('mouseup', current, upHue);
|
141 |
-
$(document).bind('mousemove', current, moveHue);
|
142 |
-
},
|
143 |
-
moveHue = function (ev) {
|
144 |
-
change.apply(
|
145 |
-
ev.data.cal.data('colorpicker')
|
146 |
-
.fields
|
147 |
-
.eq(4)
|
148 |
-
.val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
|
149 |
-
.get(0),
|
150 |
-
[ev.data.preview]
|
151 |
-
);
|
152 |
-
return false;
|
153 |
-
},
|
154 |
-
upHue = function (ev) {
|
155 |
-
fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
156 |
-
fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
157 |
-
$(document).unbind('mouseup', upHue);
|
158 |
-
$(document).unbind('mousemove', moveHue);
|
159 |
-
return false;
|
160 |
-
},
|
161 |
-
downSelector = function (ev) {
|
162 |
-
var current = {
|
163 |
-
cal: $(this).parent(),
|
164 |
-
pos: $(this).offset()
|
165 |
-
};
|
166 |
-
current.preview = current.cal.data('colorpicker').livePreview;
|
167 |
-
$(document).bind('mouseup', current, upSelector);
|
168 |
-
$(document).bind('mousemove', current, moveSelector);
|
169 |
-
},
|
170 |
-
moveSelector = function (ev) {
|
171 |
-
change.apply(
|
172 |
-
ev.data.cal.data('colorpicker')
|
173 |
-
.fields
|
174 |
-
.eq(6)
|
175 |
-
.val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
|
176 |
-
.end()
|
177 |
-
.eq(5)
|
178 |
-
.val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
|
179 |
-
.get(0),
|
180 |
-
[ev.data.preview]
|
181 |
-
);
|
182 |
-
return false;
|
183 |
-
},
|
184 |
-
upSelector = function (ev) {
|
185 |
-
fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
186 |
-
fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
|
187 |
-
$(document).unbind('mouseup', upSelector);
|
188 |
-
$(document).unbind('mousemove', moveSelector);
|
189 |
-
return false;
|
190 |
-
},
|
191 |
-
enterSubmit = function (ev) {
|
192 |
-
$(this).addClass('colorpicker_focus');
|
193 |
-
},
|
194 |
-
leaveSubmit = function (ev) {
|
195 |
-
$(this).removeClass('colorpicker_focus');
|
196 |
-
},
|
197 |
-
clickSubmit = function (ev) {
|
198 |
-
var cal = $(this).parent();
|
199 |
-
var col = cal.data('colorpicker').color;
|
200 |
-
cal.data('colorpicker').origColor = col;
|
201 |
-
setCurrentColor(col, cal.get(0));
|
202 |
-
cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
|
203 |
-
},
|
204 |
-
show = function (ev) {
|
205 |
-
var cal = $('#' + $(this).data('colorpickerId'));
|
206 |
-
cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
|
207 |
-
var pos = $(this).offset();
|
208 |
-
var viewPort = getViewport();
|
209 |
-
var top = pos.top + this.offsetHeight;
|
210 |
-
var left = pos.left;
|
211 |
-
if (top + 176 > viewPort.t + viewPort.h) {
|
212 |
-
top -= this.offsetHeight + 176;
|
213 |
-
}
|
214 |
-
if (left + 356 > viewPort.l + viewPort.w) {
|
215 |
-
left -= 356;
|
216 |
-
}
|
217 |
-
cal.css({left: left + 'px', top: top + 'px'});
|
218 |
-
if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
|
219 |
-
cal.show();
|
220 |
-
}
|
221 |
-
$(document).bind('mousedown', {cal: cal}, hide);
|
222 |
-
return false;
|
223 |
-
},
|
224 |
-
hide = function (ev) {
|
225 |
-
if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
|
226 |
-
if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
|
227 |
-
ev.data.cal.hide();
|
228 |
-
}
|
229 |
-
$(document).unbind('mousedown', hide);
|
230 |
-
}
|
231 |
-
},
|
232 |
-
isChildOf = function(parentEl, el, container) {
|
233 |
-
if (parentEl == el) {
|
234 |
-
return true;
|
235 |
-
}
|
236 |
-
if (parentEl.contains) {
|
237 |
-
return parentEl.contains(el);
|
238 |
-
}
|
239 |
-
if ( parentEl.compareDocumentPosition ) {
|
240 |
-
return !!(parentEl.compareDocumentPosition(el) & 16);
|
241 |
-
}
|
242 |
-
var prEl = el.parentNode;
|
243 |
-
while(prEl && prEl != container) {
|
244 |
-
if (prEl == parentEl)
|
245 |
-
return true;
|
246 |
-
prEl = prEl.parentNode;
|
247 |
-
}
|
248 |
-
return false;
|
249 |
-
},
|
250 |
-
getViewport = function () {
|
251 |
-
var m = document.compatMode == 'CSS1Compat';
|
252 |
-
return {
|
253 |
-
l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
|
254 |
-
t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
|
255 |
-
w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
|
256 |
-
h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
|
257 |
-
};
|
258 |
-
},
|
259 |
-
fixHSB = function (hsb) {
|
260 |
-
return {
|
261 |
-
h: Math.min(360, Math.max(0, hsb.h)),
|
262 |
-
s: Math.min(100, Math.max(0, hsb.s)),
|
263 |
-
b: Math.min(100, Math.max(0, hsb.b))
|
264 |
-
};
|
265 |
-
},
|
266 |
-
fixRGB = function (rgb) {
|
267 |
-
return {
|
268 |
-
r: Math.min(255, Math.max(0, rgb.r)),
|
269 |
-
g: Math.min(255, Math.max(0, rgb.g)),
|
270 |
-
b: Math.min(255, Math.max(0, rgb.b))
|
271 |
-
};
|
272 |
-
},
|
273 |
-
fixHex = function (hex) {
|
274 |
-
var len = 6 - hex.length;
|
275 |
-
if (len > 0) {
|
276 |
-
var o = [];
|
277 |
-
for (var i=0; i<len; i++) {
|
278 |
-
o.push('0');
|
279 |
-
}
|
280 |
-
o.push(hex);
|
281 |
-
hex = o.join('');
|
282 |
-
}
|
283 |
-
return hex;
|
284 |
-
},
|
285 |
-
HexToRGB = function (hex) {
|
286 |
-
var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
|
287 |
-
return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
|
288 |
-
},
|
289 |
-
HexToHSB = function (hex) {
|
290 |
-
return RGBToHSB(HexToRGB(hex));
|
291 |
-
},
|
292 |
-
RGBToHSB = function (rgb) {
|
293 |
-
var hsb = {
|
294 |
-
h: 0,
|
295 |
-
s: 0,
|
296 |
-
b: 0
|
297 |
-
};
|
298 |
-
var min = Math.min(rgb.r, rgb.g, rgb.b);
|
299 |
-
var max = Math.max(rgb.r, rgb.g, rgb.b);
|
300 |
-
var delta = max - min;
|
301 |
-
hsb.b = max;
|
302 |
-
if (max != 0) {
|
303 |
-
|
304 |
-
}
|
305 |
-
hsb.s = max != 0 ? 255 * delta / max : 0;
|
306 |
-
if (hsb.s != 0) {
|
307 |
-
if (rgb.r == max) {
|
308 |
-
hsb.h = (rgb.g - rgb.b) / delta;
|
309 |
-
} else if (rgb.g == max) {
|
310 |
-
hsb.h = 2 + (rgb.b - rgb.r) / delta;
|
311 |
-
} else {
|
312 |
-
hsb.h = 4 + (rgb.r - rgb.g) / delta;
|
313 |
-
}
|
314 |
-
} else {
|
315 |
-
hsb.h = -1;
|
316 |
-
}
|
317 |
-
hsb.h *= 60;
|
318 |
-
if (hsb.h < 0) {
|
319 |
-
hsb.h += 360;
|
320 |
-
}
|
321 |
-
hsb.s *= 100/255;
|
322 |
-
hsb.b *= 100/255;
|
323 |
-
return hsb;
|
324 |
-
},
|
325 |
-
HSBToRGB = function (hsb) {
|
326 |
-
var rgb = {};
|
327 |
-
var h = Math.round(hsb.h);
|
328 |
-
var s = Math.round(hsb.s*255/100);
|
329 |
-
var v = Math.round(hsb.b*255/100);
|
330 |
-
if(s == 0) {
|
331 |
-
rgb.r = rgb.g = rgb.b = v;
|
332 |
-
} else {
|
333 |
-
var t1 = v;
|
334 |
-
var t2 = (255-s)*v/255;
|
335 |
-
var t3 = (t1-t2)*(h%60)/60;
|
336 |
-
if(h==360) h = 0;
|
337 |
-
if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3}
|
338 |
-
else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3}
|
339 |
-
else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3}
|
340 |
-
else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3}
|
341 |
-
else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3}
|
342 |
-
else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3}
|
343 |
-
else {rgb.r=0; rgb.g=0; rgb.b=0}
|
344 |
-
}
|
345 |
-
return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
|
346 |
-
},
|
347 |
-
RGBToHex = function (rgb) {
|
348 |
-
var hex = [
|
349 |
-
rgb.r.toString(16),
|
350 |
-
rgb.g.toString(16),
|
351 |
-
rgb.b.toString(16)
|
352 |
-
];
|
353 |
-
$.each(hex, function (nr, val) {
|
354 |
-
if (val.length == 1) {
|
355 |
-
hex[nr] = '0' + val;
|
356 |
-
}
|
357 |
-
});
|
358 |
-
return hex.join('');
|
359 |
-
},
|
360 |
-
HSBToHex = function (hsb) {
|
361 |
-
return RGBToHex(HSBToRGB(hsb));
|
362 |
-
},
|
363 |
-
restoreOriginal = function () {
|
364 |
-
var cal = $(this).parent();
|
365 |
-
var col = cal.data('colorpicker').origColor;
|
366 |
-
cal.data('colorpicker').color = col;
|
367 |
-
fillRGBFields(col, cal.get(0));
|
368 |
-
fillHexFields(col, cal.get(0));
|
369 |
-
fillHSBFields(col, cal.get(0));
|
370 |
-
setSelector(col, cal.get(0));
|
371 |
-
setHue(col, cal.get(0));
|
372 |
-
setNewColor(col, cal.get(0));
|
373 |
-
};
|
374 |
-
return {
|
375 |
-
init: function (opt) {
|
376 |
-
opt = $.extend({}, defaults, opt||{});
|
377 |
-
if (typeof opt.color == 'string') {
|
378 |
-
opt.color = HexToHSB(opt.color);
|
379 |
-
} else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
|
380 |
-
opt.color = RGBToHSB(opt.color);
|
381 |
-
} else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
|
382 |
-
opt.color = fixHSB(opt.color);
|
383 |
-
} else {
|
384 |
-
return this;
|
385 |
-
}
|
386 |
-
return this.each(function () {
|
387 |
-
if (!$(this).data('colorpickerId')) {
|
388 |
-
var options = $.extend({}, opt);
|
389 |
-
options.origColor = opt.color;
|
390 |
-
var id = 'collorpicker_' + parseInt(Math.random() * 1000);
|
391 |
-
$(this).data('colorpickerId', id);
|
392 |
-
var cal = $(tpl).attr('id', id);
|
393 |
-
if (options.flat) {
|
394 |
-
cal.appendTo(this).show();
|
395 |
-
} else {
|
396 |
-
cal.appendTo(document.body);
|
397 |
-
}
|
398 |
-
options.fields = cal
|
399 |
-
.find('input')
|
400 |
-
.bind('keyup', keyDown)
|
401 |
-
.bind('change', change)
|
402 |
-
.bind('blur', blur)
|
403 |
-
.bind('focus', focus);
|
404 |
-
cal
|
405 |
-
.find('span').bind('mousedown', downIncrement).end()
|
406 |
-
.find('>div.colorpicker_current_color').bind('click', restoreOriginal);
|
407 |
-
options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
|
408 |
-
options.selectorIndic = options.selector.find('div div');
|
409 |
-
options.el = this;
|
410 |
-
options.hue = cal.find('div.colorpicker_hue div');
|
411 |
-
cal.find('div.colorpicker_hue').bind('mousedown', downHue);
|
412 |
-
options.newColor = cal.find('div.colorpicker_new_color');
|
413 |
-
options.currentColor = cal.find('div.colorpicker_current_color');
|
414 |
-
cal.data('colorpicker', options);
|
415 |
-
cal.find('div.colorpicker_submit')
|
416 |
-
.bind('mouseenter', enterSubmit)
|
417 |
-
.bind('mouseleave', leaveSubmit)
|
418 |
-
.bind('click', clickSubmit);
|
419 |
-
fillRGBFields(options.color, cal.get(0));
|
420 |
-
fillHSBFields(options.color, cal.get(0));
|
421 |
-
fillHexFields(options.color, cal.get(0));
|
422 |
-
setHue(options.color, cal.get(0));
|
423 |
-
setSelector(options.color, cal.get(0));
|
424 |
-
setCurrentColor(options.color, cal.get(0));
|
425 |
-
setNewColor(options.color, cal.get(0));
|
426 |
-
if (options.flat) {
|
427 |
-
cal.css({
|
428 |
-
position: 'relative',
|
429 |
-
display: 'block'
|
430 |
-
});
|
431 |
-
} else {
|
432 |
-
$(this).bind(options.eventName, show);
|
433 |
-
}
|
434 |
-
}
|
435 |
-
});
|
436 |
-
},
|
437 |
-
showPicker: function() {
|
438 |
-
return this.each( function () {
|
439 |
-
if ($(this).data('colorpickerId')) {
|
440 |
-
show.apply(this);
|
441 |
-
}
|
442 |
-
});
|
443 |
-
},
|
444 |
-
hidePicker: function() {
|
445 |
-
return this.each( function () {
|
446 |
-
if ($(this).data('colorpickerId')) {
|
447 |
-
$('#' + $(this).data('colorpickerId')).hide();
|
448 |
-
}
|
449 |
-
});
|
450 |
-
},
|
451 |
-
setColor: function(col) {
|
452 |
-
if (typeof col == 'string') {
|
453 |
-
col = HexToHSB(col);
|
454 |
-
} else if (col.r != undefined && col.g != undefined && col.b != undefined) {
|
455 |
-
col = RGBToHSB(col);
|
456 |
-
} else if (col.h != undefined && col.s != undefined && col.b != undefined) {
|
457 |
-
col = fixHSB(col);
|
458 |
-
} else {
|
459 |
-
return this;
|
460 |
-
}
|
461 |
-
return this.each(function(){
|
462 |
-
if ($(this).data('colorpickerId')) {
|
463 |
-
var cal = $('#' + $(this).data('colorpickerId'));
|
464 |
-
cal.data('colorpicker').color = col;
|
465 |
-
cal.data('colorpicker').origColor = col;
|
466 |
-
fillRGBFields(col, cal.get(0));
|
467 |
-
fillHSBFields(col, cal.get(0));
|
468 |
-
fillHexFields(col, cal.get(0));
|
469 |
-
setHue(col, cal.get(0));
|
470 |
-
setSelector(col, cal.get(0));
|
471 |
-
setCurrentColor(col, cal.get(0));
|
472 |
-
setNewColor(col, cal.get(0));
|
473 |
-
}
|
474 |
-
});
|
475 |
-
}
|
476 |
-
};
|
477 |
-
}();
|
478 |
-
$.fn.extend({
|
479 |
-
ColorPicker: ColorPicker.init,
|
480 |
-
ColorPickerHide: ColorPicker.hidePicker,
|
481 |
-
ColorPickerShow: ColorPicker.showPicker,
|
482 |
-
ColorPickerSetColor: ColorPicker.setColor
|
483 |
-
});
|
484 |
-
})(jQuery)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/cropper/cropper.css
ADDED
@@ -0,0 +1,247 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Cropper v0.10.0
|
3 |
+
* https://github.com/fengyuanchen/cropper
|
4 |
+
*
|
5 |
+
* Copyright (c) 2014-2015 Fengyuan Chen and other contributors
|
6 |
+
* Released under the MIT license
|
7 |
+
*
|
8 |
+
* Date: 2015-06-08T14:57:26.353Z
|
9 |
+
*/
|
10 |
+
.cropper-container {
|
11 |
+
position: relative;
|
12 |
+
overflow: hidden;
|
13 |
+
-webkit-user-select: none;
|
14 |
+
-moz-user-select: none;
|
15 |
+
-ms-user-select: none;
|
16 |
+
user-select: none;
|
17 |
+
|
18 |
+
-webkit-tap-highlight-color: transparent;
|
19 |
+
-webkit-touch-callout: none;
|
20 |
+
}
|
21 |
+
.cropper-container img {
|
22 |
+
display: block;
|
23 |
+
width: 100%;
|
24 |
+
min-width: 0 !important;
|
25 |
+
max-width: none !important;
|
26 |
+
height: 100%;
|
27 |
+
min-height: 0 !important;
|
28 |
+
max-height: none !important;
|
29 |
+
|
30 |
+
image-orientation: 0deg !important;
|
31 |
+
}
|
32 |
+
.cropper-canvas,
|
33 |
+
.cropper-drag-box,
|
34 |
+
.cropper-crop-box,
|
35 |
+
.cropper-modal {
|
36 |
+
position: absolute;
|
37 |
+
top: 0;
|
38 |
+
right: 0;
|
39 |
+
bottom: 0;
|
40 |
+
left: 0;
|
41 |
+
}
|
42 |
+
.cropper-drag-box {
|
43 |
+
background-color: #fff;
|
44 |
+
filter: alpha(opacity=0);
|
45 |
+
opacity: 0;
|
46 |
+
}
|
47 |
+
.cropper-modal {
|
48 |
+
background-color: #000;
|
49 |
+
filter: alpha(opacity=50);
|
50 |
+
opacity: .5;
|
51 |
+
}
|
52 |
+
.cropper-view-box {
|
53 |
+
display: block;
|
54 |
+
width: 100%;
|
55 |
+
height: 100%;
|
56 |
+
overflow: hidden;
|
57 |
+
outline: 1px solid #69f;
|
58 |
+
outline-color: rgba(102, 153, 255, .75);
|
59 |
+
}
|
60 |
+
.cropper-dashed {
|
61 |
+
position: absolute;
|
62 |
+
display: block;
|
63 |
+
filter: alpha(opacity=50);
|
64 |
+
border: 0 dashed #fff;
|
65 |
+
opacity: .5;
|
66 |
+
}
|
67 |
+
.cropper-dashed.dashed-h {
|
68 |
+
top: 33.33333333%;
|
69 |
+
left: 0;
|
70 |
+
width: 100%;
|
71 |
+
height: 33.33333333%;
|
72 |
+
border-top-width: 1px;
|
73 |
+
border-bottom-width: 1px;
|
74 |
+
}
|
75 |
+
.cropper-dashed.dashed-v {
|
76 |
+
top: 0;
|
77 |
+
left: 33.33333333%;
|
78 |
+
width: 33.33333333%;
|
79 |
+
height: 100%;
|
80 |
+
border-right-width: 1px;
|
81 |
+
border-left-width: 1px;
|
82 |
+
}
|
83 |
+
.cropper-face,
|
84 |
+
.cropper-line,
|
85 |
+
.cropper-point {
|
86 |
+
position: absolute;
|
87 |
+
display: block;
|
88 |
+
width: 100%;
|
89 |
+
height: 100%;
|
90 |
+
filter: alpha(opacity=10);
|
91 |
+
opacity: .1;
|
92 |
+
}
|
93 |
+
.cropper-face {
|
94 |
+
top: 0;
|
95 |
+
left: 0;
|
96 |
+
background-color: #fff;
|
97 |
+
}
|
98 |
+
.cropper-line {
|
99 |
+
background-color: #69f;
|
100 |
+
}
|
101 |
+
.cropper-line.line-e {
|
102 |
+
top: 0;
|
103 |
+
right: -3px;
|
104 |
+
width: 5px;
|
105 |
+
cursor: e-resize;
|
106 |
+
}
|
107 |
+
.cropper-line.line-n {
|
108 |
+
top: -3px;
|
109 |
+
left: 0;
|
110 |
+
height: 5px;
|
111 |
+
cursor: n-resize;
|
112 |
+
}
|
113 |
+
.cropper-line.line-w {
|
114 |
+
top: 0;
|
115 |
+
left: -3px;
|
116 |
+
width: 5px;
|
117 |
+
cursor: w-resize;
|
118 |
+
}
|
119 |
+
.cropper-line.line-s {
|
120 |
+
bottom: -3px;
|
121 |
+
left: 0;
|
122 |
+
height: 5px;
|
123 |
+
cursor: s-resize;
|
124 |
+
}
|
125 |
+
.cropper-point {
|
126 |
+
width: 5px;
|
127 |
+
height: 5px;
|
128 |
+
background-color: #69f;
|
129 |
+
filter: alpha(opacity=75);
|
130 |
+
opacity: .75;
|
131 |
+
}
|
132 |
+
.cropper-point.point-e {
|
133 |
+
top: 50%;
|
134 |
+
right: -3px;
|
135 |
+
margin-top: -3px;
|
136 |
+
cursor: e-resize;
|
137 |
+
}
|
138 |
+
.cropper-point.point-n {
|
139 |
+
top: -3px;
|
140 |
+
left: 50%;
|
141 |
+
margin-left: -3px;
|
142 |
+
cursor: n-resize;
|
143 |
+
}
|
144 |
+
.cropper-point.point-w {
|
145 |
+
top: 50%;
|
146 |
+
left: -3px;
|
147 |
+
margin-top: -3px;
|
148 |
+
cursor: w-resize;
|
149 |
+
}
|
150 |
+
.cropper-point.point-s {
|
151 |
+
bottom: -3px;
|
152 |
+
left: 50%;
|
153 |
+
margin-left: -3px;
|
154 |
+
cursor: s-resize;
|
155 |
+
}
|
156 |
+
.cropper-point.point-ne {
|
157 |
+
top: -3px;
|
158 |
+
right: -3px;
|
159 |
+
cursor: ne-resize;
|
160 |
+
}
|
161 |
+
.cropper-point.point-nw {
|
162 |
+
top: -3px;
|
163 |
+
left: -3px;
|
164 |
+
cursor: nw-resize;
|
165 |
+
}
|
166 |
+
.cropper-point.point-sw {
|
167 |
+
bottom: -3px;
|
168 |
+
left: -3px;
|
169 |
+
cursor: sw-resize;
|
170 |
+
}
|
171 |
+
.cropper-point.point-se {
|
172 |
+
right: -3px;
|
173 |
+
bottom: -3px;
|
174 |
+
width: 20px;
|
175 |
+
height: 20px;
|
176 |
+
cursor: se-resize;
|
177 |
+
filter: alpha(opacity=100);
|
178 |
+
opacity: 1;
|
179 |
+
}
|
180 |
+
.cropper-point.point-se:before {
|
181 |
+
position: absolute;
|
182 |
+
right: -50%;
|
183 |
+
bottom: -50%;
|
184 |
+
display: block;
|
185 |
+
width: 200%;
|
186 |
+
height: 200%;
|
187 |
+
content: " ";
|
188 |
+
background-color: #69f;
|
189 |
+
filter: alpha(opacity=0);
|
190 |
+
opacity: 0;
|
191 |
+
}
|
192 |
+
@media (min-width: 768px) {
|
193 |
+
.cropper-point.point-se {
|
194 |
+
width: 15px;
|
195 |
+
height: 15px;
|
196 |
+
}
|
197 |
+
}
|
198 |
+
@media (min-width: 992px) {
|
199 |
+
.cropper-point.point-se {
|
200 |
+
width: 10px;
|
201 |
+
height: 10px;
|
202 |
+
}
|
203 |
+
}
|
204 |
+
@media (min-width: 1200px) {
|
205 |
+
.cropper-point.point-se {
|
206 |
+
width: 5px;
|
207 |
+
height: 5px;
|
208 |
+
filter: alpha(opacity=75);
|
209 |
+
opacity: .75;
|
210 |
+
}
|
211 |
+
}
|
212 |
+
.cropper-bg {
|
213 |
+
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC");
|
214 |
+
}
|
215 |
+
.cropper-invisible {
|
216 |
+
filter: alpha(opacity=0);
|
217 |
+
opacity: 0;
|
218 |
+
}
|
219 |
+
.cropper-hide {
|
220 |
+
position: fixed;
|
221 |
+
top: 0;
|
222 |
+
left: 0;
|
223 |
+
z-index: -1;
|
224 |
+
width: auto!important;
|
225 |
+
min-width: 0!important;
|
226 |
+
max-width: none!important;
|
227 |
+
height: auto!important;
|
228 |
+
min-height: 0!important;
|
229 |
+
max-height: none!important;
|
230 |
+
filter: alpha(opacity=0);
|
231 |
+
opacity: 0;
|
232 |
+
}
|
233 |
+
.cropper-hidden {
|
234 |
+
display: none !important;
|
235 |
+
}
|
236 |
+
.cropper-move {
|
237 |
+
cursor: move;
|
238 |
+
}
|
239 |
+
.cropper-crop {
|
240 |
+
cursor: crosshair;
|
241 |
+
}
|
242 |
+
.cropper-disabled .cropper-drag-box,
|
243 |
+
.cropper-disabled .cropper-face,
|
244 |
+
.cropper-disabled .cropper-line,
|
245 |
+
.cropper-disabled .cropper-point {
|
246 |
+
cursor: not-allowed;
|
247 |
+
}
|
admin/js/cropper/cropper.js
ADDED
@@ -0,0 +1,2091 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Cropper v0.10.0
|
3 |
+
* https://github.com/fengyuanchen/cropper
|
4 |
+
*
|
5 |
+
* Copyright (c) 2014-2015 Fengyuan Chen and other contributors
|
6 |
+
* Released under the MIT license
|
7 |
+
*
|
8 |
+
* Date: 2015-06-08T14:57:26.353Z
|
9 |
+
*/
|
10 |
+
|
11 |
+
(function (factory) {
|
12 |
+
if (typeof define === 'function' && define.amd) {
|
13 |
+
// AMD. Register as anonymous module.
|
14 |
+
define(['jquery'], factory);
|
15 |
+
} else if (typeof exports === 'object') {
|
16 |
+
// Node / CommonJS
|
17 |
+
factory(require('jquery'));
|
18 |
+
} else {
|
19 |
+
// Browser globals.
|
20 |
+
factory(jQuery);
|
21 |
+
}
|
22 |
+
})(function ($) {
|
23 |
+
|
24 |
+
'use strict';
|
25 |
+
|
26 |
+
var $window = $(window),
|
27 |
+
$document = $(document),
|
28 |
+
location = window.location,
|
29 |
+
|
30 |
+
// Constants
|
31 |
+
CROPPER_NAMESPACE = '.cropper',
|
32 |
+
CROPPER_PREVIEW = 'preview' + CROPPER_NAMESPACE,
|
33 |
+
|
34 |
+
// RegExps
|
35 |
+
REGEXP_DRAG_TYPES = /^(e|n|w|s|ne|nw|sw|se|all|crop|move|zoom)$/,
|
36 |
+
|
37 |
+
// Classes
|
38 |
+
CLASS_MODAL = 'cropper-modal',
|
39 |
+
CLASS_HIDE = 'cropper-hide',
|
40 |
+
CLASS_HIDDEN = 'cropper-hidden',
|
41 |
+
CLASS_INVISIBLE = 'cropper-invisible',
|
42 |
+
CLASS_MOVE = 'cropper-move',
|
43 |
+
CLASS_CROP = 'cropper-crop',
|
44 |
+
CLASS_DISABLED = 'cropper-disabled',
|
45 |
+
CLASS_BG = 'cropper-bg',
|
46 |
+
|
47 |
+
// Events
|
48 |
+
EVENT_MOUSE_DOWN = 'mousedown touchstart',
|
49 |
+
EVENT_MOUSE_MOVE = 'mousemove touchmove',
|
50 |
+
EVENT_MOUSE_UP = 'mouseup mouseleave touchend touchleave touchcancel',
|
51 |
+
EVENT_WHEEL = 'wheel mousewheel DOMMouseScroll',
|
52 |
+
EVENT_DBLCLICK = 'dblclick',
|
53 |
+
EVENT_RESIZE = 'resize' + CROPPER_NAMESPACE, // Bind to window with namespace
|
54 |
+
EVENT_BUILD = 'build' + CROPPER_NAMESPACE,
|
55 |
+
EVENT_BUILT = 'built' + CROPPER_NAMESPACE,
|
56 |
+
EVENT_DRAG_START = 'dragstart' + CROPPER_NAMESPACE,
|
57 |
+
EVENT_DRAG_MOVE = 'dragmove' + CROPPER_NAMESPACE,
|
58 |
+
EVENT_DRAG_END = 'dragend' + CROPPER_NAMESPACE,
|
59 |
+
EVENT_ZOOM_IN = 'zoomin' + CROPPER_NAMESPACE,
|
60 |
+
EVENT_ZOOM_OUT = 'zoomout' + CROPPER_NAMESPACE,
|
61 |
+
EVENT_CHANGE = 'change' + CROPPER_NAMESPACE,
|
62 |
+
|
63 |
+
// Supports
|
64 |
+
SUPPORT_CANVAS = $.isFunction($('<canvas>')[0].getContext),
|
65 |
+
|
66 |
+
// Others
|
67 |
+
sqrt = Math.sqrt,
|
68 |
+
min = Math.min,
|
69 |
+
max = Math.max,
|
70 |
+
abs = Math.abs,
|
71 |
+
sin = Math.sin,
|
72 |
+
cos = Math.cos,
|
73 |
+
num = parseFloat,
|
74 |
+
|
75 |
+
// Prototype
|
76 |
+
prototype = {};
|
77 |
+
|
78 |
+
function isNumber(n) {
|
79 |
+
return typeof n === 'number' && !isNaN(n);
|
80 |
+
}
|
81 |
+
|
82 |
+
function isUndefined(n) {
|
83 |
+
return typeof n === 'undefined';
|
84 |
+
}
|
85 |
+
|
86 |
+
function toArray(obj, offset) {
|
87 |
+
var args = [];
|
88 |
+
|
89 |
+
if (isNumber(offset)) { // It's necessary for IE8
|
90 |
+
args.push(offset);
|
91 |
+
}
|
92 |
+
|
93 |
+
return args.slice.apply(obj, args);
|
94 |
+
}
|
95 |
+
|
96 |
+
// Custom proxy to avoid jQuery's guid
|
97 |
+
function proxy(fn, context) {
|
98 |
+
var args = toArray(arguments, 2);
|
99 |
+
|
100 |
+
return function () {
|
101 |
+
return fn.apply(context, args.concat(toArray(arguments)));
|
102 |
+
};
|
103 |
+
}
|
104 |
+
|
105 |
+
function isCrossOriginURL(url) {
|
106 |
+
var parts = url.match(/^(https?:)\/\/([^\:\/\?#]+):?(\d*)/i);
|
107 |
+
|
108 |
+
return parts && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);
|
109 |
+
}
|
110 |
+
|
111 |
+
function addTimestamp(url) {
|
112 |
+
var timestamp = 'timestamp=' + (new Date()).getTime();
|
113 |
+
|
114 |
+
return (url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp);
|
115 |
+
}
|
116 |
+
|
117 |
+
function getRotateValue(degree) {
|
118 |
+
return degree ? 'rotate(' + degree + 'deg)' : 'none';
|
119 |
+
}
|
120 |
+
|
121 |
+
function getRotatedSizes(data, reverse) {
|
122 |
+
var deg = abs(data.degree) % 180,
|
123 |
+
arc = (deg > 90 ? (180 - deg) : deg) * Math.PI / 180,
|
124 |
+
sinArc = sin(arc),
|
125 |
+
cosArc = cos(arc),
|
126 |
+
width = data.width,
|
127 |
+
height = data.height,
|
128 |
+
aspectRatio = data.aspectRatio,
|
129 |
+
newWidth,
|
130 |
+
newHeight;
|
131 |
+
|
132 |
+
if (!reverse) {
|
133 |
+
newWidth = width * cosArc + height * sinArc;
|
134 |
+
newHeight = width * sinArc + height * cosArc;
|
135 |
+
} else {
|
136 |
+
newWidth = width / (cosArc + sinArc / aspectRatio);
|
137 |
+
newHeight = newWidth / aspectRatio;
|
138 |
+
}
|
139 |
+
|
140 |
+
return {
|
141 |
+
width: newWidth,
|
142 |
+
height: newHeight
|
143 |
+
};
|
144 |
+
}
|
145 |
+
|
146 |
+
function getSourceCanvas(image, data) {
|
147 |
+
var canvas = $('<canvas>')[0],
|
148 |
+
context = canvas.getContext('2d'),
|
149 |
+
width = data.naturalWidth,
|
150 |
+
height = data.naturalHeight,
|
151 |
+
rotate = data.rotate,
|
152 |
+
rotated = getRotatedSizes({
|
153 |
+
width: width,
|
154 |
+
height: height,
|
155 |
+
degree: rotate
|
156 |
+
});
|
157 |
+
|
158 |
+
if (rotate) {
|
159 |
+
canvas.width = rotated.width;
|
160 |
+
canvas.height = rotated.height;
|
161 |
+
context.save();
|
162 |
+
context.translate(rotated.width / 2, rotated.height / 2);
|
163 |
+
context.rotate(rotate * Math.PI / 180);
|
164 |
+
context.drawImage(image, -width / 2, -height / 2, width, height);
|
165 |
+
context.restore();
|
166 |
+
} else {
|
167 |
+
canvas.width = width;
|
168 |
+
canvas.height = height;
|
169 |
+
context.drawImage(image, 0, 0, width, height);
|
170 |
+
}
|
171 |
+
|
172 |
+
return canvas;
|
173 |
+
}
|
174 |
+
|
175 |
+
function Cropper(element, options) {
|
176 |
+
this.$element = $(element);
|
177 |
+
this.options = $.extend({}, Cropper.DEFAULTS, $.isPlainObject(options) && options);
|
178 |
+
|
179 |
+
this.ready = false;
|
180 |
+
this.built = false;
|
181 |
+
this.rotated = false;
|
182 |
+
this.cropped = false;
|
183 |
+
this.disabled = false;
|
184 |
+
this.canvas = null;
|
185 |
+
this.cropBox = null;
|
186 |
+
|
187 |
+
this.load();
|
188 |
+
}
|
189 |
+
|
190 |
+
prototype.load = function (url) {
|
191 |
+
var options = this.options,
|
192 |
+
$this = this.$element,
|
193 |
+
crossOrigin,
|
194 |
+
bustCacheUrl,
|
195 |
+
buildEvent,
|
196 |
+
$clone;
|
197 |
+
|
198 |
+
if (!url) {
|
199 |
+
if ($this.is('img')) {
|
200 |
+
if (!$this.attr('src')) {
|
201 |
+
return;
|
202 |
+
}
|
203 |
+
|
204 |
+
url = $this.prop('src');
|
205 |
+
} else if ($this.is('canvas') && SUPPORT_CANVAS) {
|
206 |
+
url = $this[0].toDataURL();
|
207 |
+
}
|
208 |
+
}
|
209 |
+
|
210 |
+
if (!url) {
|
211 |
+
return;
|
212 |
+
}
|
213 |
+
|
214 |
+
buildEvent = $.Event(EVENT_BUILD);
|
215 |
+
$this.one(EVENT_BUILD, options.build).trigger(buildEvent); // Only trigger once
|
216 |
+
|
217 |
+
if (buildEvent.isDefaultPrevented()) {
|
218 |
+
return;
|
219 |
+
}
|
220 |
+
|
221 |
+
if (options.checkImageOrigin && isCrossOriginURL(url)) {
|
222 |
+
crossOrigin = ' crossOrigin="anonymous"';
|
223 |
+
|
224 |
+
if (!$this.prop('crossOrigin')) { // Only when there was not a "crossOrigin" property
|
225 |
+
bustCacheUrl = addTimestamp(url); // Bust cache (#148)
|
226 |
+
}
|
227 |
+
}
|
228 |
+
|
229 |
+
// IE8 compatibility: Don't use "$().attr()" to set "src"
|
230 |
+
this.$clone = $clone = $('<img' + (crossOrigin || '') + ' src="' + (bustCacheUrl || url) + '">');
|
231 |
+
|
232 |
+
$clone.one('load', $.proxy(function () {
|
233 |
+
var image = $clone[0],
|
234 |
+
naturalWidth = image.naturalWidth || image.width,
|
235 |
+
naturalHeight = image.naturalHeight || image.height; // $clone.width() and $clone.height() will return 0 in IE8 (#319)
|
236 |
+
|
237 |
+
this.image = {
|
238 |
+
naturalWidth: naturalWidth,
|
239 |
+
naturalHeight: naturalHeight,
|
240 |
+
aspectRatio: naturalWidth / naturalHeight,
|
241 |
+
rotate: 0
|
242 |
+
};
|
243 |
+
|
244 |
+
this.url = url;
|
245 |
+
this.ready = true;
|
246 |
+
this.build();
|
247 |
+
}, this)).one('error', function () {
|
248 |
+
$clone.remove();
|
249 |
+
});
|
250 |
+
|
251 |
+
// Hide and insert into the document
|
252 |
+
$clone.addClass(CLASS_HIDE).insertAfter($this);
|
253 |
+
};
|
254 |
+
|
255 |
+
prototype.build = function () {
|
256 |
+
var $this = this.$element,
|
257 |
+
$clone = this.$clone,
|
258 |
+
options = this.options,
|
259 |
+
$cropper,
|
260 |
+
$cropBox,
|
261 |
+
$face;
|
262 |
+
|
263 |
+
if (!this.ready) {
|
264 |
+
return;
|
265 |
+
}
|
266 |
+
|
267 |
+
if (this.built) {
|
268 |
+
this.unbuild();
|
269 |
+
}
|
270 |
+
|
271 |
+
// Create cropper elements
|
272 |
+
this.$cropper = $cropper = $(Cropper.TEMPLATE);
|
273 |
+
|
274 |
+
// Hide the original image
|
275 |
+
$this.addClass(CLASS_HIDDEN);
|
276 |
+
|
277 |
+
// Show the clone iamge
|
278 |
+
$clone.removeClass(CLASS_HIDE);
|
279 |
+
|
280 |
+
this.$container = $this.parent().append($cropper);
|
281 |
+
this.$canvas = $cropper.find('.cropper-canvas').append($clone);
|
282 |
+
this.$dragBox = $cropper.find('.cropper-drag-box');
|
283 |
+
this.$cropBox = $cropBox = $cropper.find('.cropper-crop-box');
|
284 |
+
this.$viewBox = $cropper.find('.cropper-view-box');
|
285 |
+
this.$face = $face = $cropBox.find('.cropper-face');
|
286 |
+
|
287 |
+
this.addListeners();
|
288 |
+
this.initPreview();
|
289 |
+
|
290 |
+
// Format aspect ratio
|
291 |
+
options.aspectRatio = num(options.aspectRatio) || NaN; // 0 -> NaN
|
292 |
+
|
293 |
+
if (options.autoCrop) {
|
294 |
+
this.cropped = true;
|
295 |
+
|
296 |
+
if (options.modal) {
|
297 |
+
this.$dragBox.addClass(CLASS_MODAL);
|
298 |
+
}
|
299 |
+
} else {
|
300 |
+
$cropBox.addClass(CLASS_HIDDEN);
|
301 |
+
}
|
302 |
+
|
303 |
+
if (options.background) {
|
304 |
+
$cropper.addClass(CLASS_BG);
|
305 |
+
}
|
306 |
+
|
307 |
+
if (!options.highlight) {
|
308 |
+
$face.addClass(CLASS_INVISIBLE);
|
309 |
+
}
|
310 |
+
|
311 |
+
if (!options.guides) {
|
312 |
+
$cropBox.find('.cropper-dashed').addClass(CLASS_HIDDEN);
|
313 |
+
}
|
314 |
+
|
315 |
+
if (options.cropBoxMovable) {
|
316 |
+
$face.addClass(CLASS_MOVE).data('drag', 'all');
|
317 |
+
}
|
318 |
+
|
319 |
+
if (!options.cropBoxResizable) {
|
320 |
+
$cropBox.find('.cropper-line, .cropper-point').addClass(CLASS_HIDDEN);
|
321 |
+
}
|
322 |
+
|
323 |
+
this.setDragMode(options.dragCrop ? 'crop' : options.movable ? 'move' : 'none');
|
324 |
+
|
325 |
+
this.built = true;
|
326 |
+
this.render();
|
327 |
+
this.setData(options.data);
|
328 |
+
$this.one(EVENT_BUILT, options.built).trigger(EVENT_BUILT); // Only trigger once
|
329 |
+
};
|
330 |
+
|
331 |
+
prototype.unbuild = function () {
|
332 |
+
if (!this.built) {
|
333 |
+
return;
|
334 |
+
}
|
335 |
+
|
336 |
+
this.built = false;
|
337 |
+
this.initialImage = null;
|
338 |
+
this.initialCanvas = null; // This is necessary when replace
|
339 |
+
this.initialCropBox = null;
|
340 |
+
this.container = null;
|
341 |
+
this.canvas = null;
|
342 |
+
this.cropBox = null; // This is necessary when replace
|
343 |
+
this.removeListeners();
|
344 |
+
|
345 |
+
this.resetPreview();
|
346 |
+
this.$preview = null;
|
347 |
+
|
348 |
+
this.$viewBox = null;
|
349 |
+
this.$cropBox = null;
|
350 |
+
this.$dragBox = null;
|
351 |
+
this.$canvas = null;
|
352 |
+
this.$container = null;
|
353 |
+
|
354 |
+
this.$cropper.remove();
|
355 |
+
this.$cropper = null;
|
356 |
+
};
|
357 |
+
|
358 |
+
$.extend(prototype, {
|
359 |
+
render: function () {
|
360 |
+
this.initContainer();
|
361 |
+
this.initCanvas();
|
362 |
+
this.initCropBox();
|
363 |
+
|
364 |
+
this.renderCanvas();
|
365 |
+
|
366 |
+
if (this.cropped) {
|
367 |
+
this.renderCropBox();
|
368 |
+
}
|
369 |
+
},
|
370 |
+
|
371 |
+
initContainer: function () {
|
372 |
+
var $this = this.$element,
|
373 |
+
$container = this.$container,
|
374 |
+
$cropper = this.$cropper,
|
375 |
+
options = this.options;
|
376 |
+
|
377 |
+
$cropper.addClass(CLASS_HIDDEN);
|
378 |
+
$this.removeClass(CLASS_HIDDEN);
|
379 |
+
|
380 |
+
$cropper.css((this.container = {
|
381 |
+
width: max($container.width(), num(options.minContainerWidth) || 200),
|
382 |
+
height: max($container.height(), num(options.minContainerHeight) || 100)
|
383 |
+
}));
|
384 |
+
|
385 |
+
$this.addClass(CLASS_HIDDEN);
|
386 |
+
$cropper.removeClass(CLASS_HIDDEN);
|
387 |
+
},
|
388 |
+
|
389 |
+
// image box (wrapper)
|
390 |
+
initCanvas: function () {
|
391 |
+
var container = this.container,
|
392 |
+
containerWidth = container.width,
|
393 |
+
containerHeight = container.height,
|
394 |
+
image = this.image,
|
395 |
+
aspectRatio = image.aspectRatio,
|
396 |
+
canvas = {
|
397 |
+
aspectRatio: aspectRatio,
|
398 |
+
width: containerWidth,
|
399 |
+
height: containerHeight
|
400 |
+
};
|
401 |
+
|
402 |
+
if (containerHeight * aspectRatio > containerWidth) {
|
403 |
+
canvas.height = containerWidth / aspectRatio;
|
404 |
+
} else {
|
405 |
+
canvas.width = containerHeight * aspectRatio;
|
406 |
+
}
|
407 |
+
|
408 |
+
canvas.oldLeft = canvas.left = (containerWidth - canvas.width) / 2;
|
409 |
+
canvas.oldTop = canvas.top = (containerHeight - canvas.height) / 2;
|
410 |
+
|
411 |
+
this.canvas = canvas;
|
412 |
+
this.limitCanvas(true, true);
|
413 |
+
this.initialImage = $.extend({}, image);
|
414 |
+
this.initialCanvas = $.extend({}, canvas);
|
415 |
+
},
|
416 |
+
|
417 |
+
limitCanvas: function (size, position) {
|
418 |
+
var options = this.options,
|
419 |
+
strict = options.strict,
|
420 |
+
container = this.container,
|
421 |
+
containerWidth = container.width,
|
422 |
+
containerHeight = container.height,
|
423 |
+
canvas = this.canvas,
|
424 |
+
aspectRatio = canvas.aspectRatio,
|
425 |
+
cropBox = this.cropBox,
|
426 |
+
cropped = this.cropped && cropBox,
|
427 |
+
initialCanvas = this.initialCanvas || canvas,
|
428 |
+
initialCanvasWidth = initialCanvas.width,
|
429 |
+
initialCanvasHeight = initialCanvas.height,
|
430 |
+
minCanvasWidth,
|
431 |
+
minCanvasHeight;
|
432 |
+
|
433 |
+
if (size) {
|
434 |
+
minCanvasWidth = num(options.minCanvasWidth) || 0;
|
435 |
+
minCanvasHeight = num(options.minCanvasHeight) || 0;
|
436 |
+
|
437 |
+
if (minCanvasWidth) {
|
438 |
+
if (strict) {
|
439 |
+
minCanvasWidth = max(cropped ? cropBox.width : initialCanvasWidth, minCanvasWidth);
|
440 |
+
}
|
441 |
+
|
442 |
+
minCanvasHeight = minCanvasWidth / aspectRatio;
|
443 |
+
} else if (minCanvasHeight) {
|
444 |
+
if (strict) {
|
445 |
+
minCanvasHeight = max(cropped ? cropBox.height : initialCanvasHeight, minCanvasHeight);
|
446 |
+
}
|
447 |
+
|
448 |
+
minCanvasWidth = minCanvasHeight * aspectRatio;
|
449 |
+
} else if (strict) {
|
450 |
+
if (cropped) {
|
451 |
+
minCanvasWidth = cropBox.width;
|
452 |
+
minCanvasHeight = cropBox.height;
|
453 |
+
|
454 |
+
if (minCanvasHeight * aspectRatio > minCanvasWidth) {
|
455 |
+
minCanvasWidth = minCanvasHeight * aspectRatio;
|
456 |
+
} else {
|
457 |
+
minCanvasHeight = minCanvasWidth / aspectRatio;
|
458 |
+
}
|
459 |
+
} else {
|
460 |
+
minCanvasWidth = initialCanvasWidth;
|
461 |
+
minCanvasHeight = initialCanvasHeight;
|
462 |
+
}
|
463 |
+
}
|
464 |
+
|
465 |
+
$.extend(canvas, {
|
466 |
+
minWidth: minCanvasWidth,
|
467 |
+
minHeight: minCanvasHeight,
|
468 |
+
maxWidth: Infinity,
|
469 |
+
maxHeight: Infinity
|
470 |
+
});
|
471 |
+
}
|
472 |
+
|
473 |
+
if (position) {
|
474 |
+
if (strict) {
|
475 |
+
if (cropped) {
|
476 |
+
canvas.minLeft = min(cropBox.left, (cropBox.left + cropBox.width) - canvas.width);
|
477 |
+
canvas.minTop = min(cropBox.top, (cropBox.top + cropBox.height) - canvas.height);
|
478 |
+
canvas.maxLeft = cropBox.left;
|
479 |
+
canvas.maxTop = cropBox.top;
|
480 |
+
} else {
|
481 |
+
canvas.minLeft = min(0, containerWidth - canvas.width);
|
482 |
+
canvas.minTop = min(0, containerHeight - canvas.height);
|
483 |
+
canvas.maxLeft = max(0, containerWidth - canvas.width);
|
484 |
+
canvas.maxTop = max(0, containerHeight - canvas.height);
|
485 |
+
}
|
486 |
+
} else {
|
487 |
+
canvas.minLeft = -canvas.width;
|
488 |
+
canvas.minTop = -canvas.height;
|
489 |
+
canvas.maxLeft = containerWidth;
|
490 |
+
canvas.maxTop = containerHeight;
|
491 |
+
}
|
492 |
+
}
|
493 |
+
},
|
494 |
+
|
495 |
+
renderCanvas: function (changed) {
|
496 |
+
var options = this.options,
|
497 |
+
canvas = this.canvas,
|
498 |
+
image = this.image,
|
499 |
+
aspectRatio,
|
500 |
+
rotated;
|
501 |
+
|
502 |
+
if (this.rotated) {
|
503 |
+
this.rotated = false;
|
504 |
+
|
505 |
+
// Computes rotatation sizes with image sizes
|
506 |
+
rotated = getRotatedSizes({
|
507 |
+
width: image.width,
|
508 |
+
height: image.height,
|
509 |
+
degree: image.rotate
|
510 |
+
});
|
511 |
+
|
512 |
+
aspectRatio = rotated.width / rotated.height;
|
513 |
+
|
514 |
+
if (aspectRatio !== canvas.aspectRatio) {
|
515 |
+
canvas.left -= (rotated.width - canvas.width) / 2;
|
516 |
+
canvas.top -= (rotated.height - canvas.height) / 2;
|
517 |
+
canvas.width = rotated.width;
|
518 |
+
canvas.height = rotated.height;
|
519 |
+
canvas.aspectRatio = aspectRatio;
|
520 |
+
this.limitCanvas(true, false);
|
521 |
+
}
|
522 |
+
}
|
523 |
+
|
524 |
+
if (canvas.width > canvas.maxWidth || canvas.width < canvas.minWidth) {
|
525 |
+
canvas.left = canvas.oldLeft;
|
526 |
+
}
|
527 |
+
|
528 |
+
if (canvas.height > canvas.maxHeight || canvas.height < canvas.minHeight) {
|
529 |
+
canvas.top = canvas.oldTop;
|
530 |
+
}
|
531 |
+
|
532 |
+
canvas.width = min(max(canvas.width, canvas.minWidth), canvas.maxWidth);
|
533 |
+
canvas.height = min(max(canvas.height, canvas.minHeight), canvas.maxHeight);
|
534 |
+
|
535 |
+
this.limitCanvas(false, true);
|
536 |
+
|
537 |
+
canvas.oldLeft = canvas.left = min(max(canvas.left, canvas.minLeft), canvas.maxLeft);
|
538 |
+
canvas.oldTop = canvas.top = min(max(canvas.top, canvas.minTop), canvas.maxTop);
|
539 |
+
|
540 |
+
this.$canvas.css({
|
541 |
+
width: canvas.width,
|
542 |
+
height: canvas.height,
|
543 |
+
left: canvas.left,
|
544 |
+
top: canvas.top
|
545 |
+
});
|
546 |
+
|
547 |
+
this.renderImage();
|
548 |
+
|
549 |
+
if (this.cropped && options.strict) {
|
550 |
+
this.limitCropBox(true, true);
|
551 |
+
}
|
552 |
+
|
553 |
+
if (changed) {
|
554 |
+
this.output();
|
555 |
+
}
|
556 |
+
},
|
557 |
+
|
558 |
+
renderImage: function () {
|
559 |
+
var canvas = this.canvas,
|
560 |
+
image = this.image,
|
561 |
+
reversed;
|
562 |
+
|
563 |
+
if (image.rotate) {
|
564 |
+
reversed = getRotatedSizes({
|
565 |
+
width: canvas.width,
|
566 |
+
height: canvas.height,
|
567 |
+
degree: image.rotate,
|
568 |
+
aspectRatio: image.aspectRatio
|
569 |
+
}, true);
|
570 |
+
}
|
571 |
+
|
572 |
+
$.extend(image, reversed ? {
|
573 |
+
width: reversed.width,
|
574 |
+
height: reversed.height,
|
575 |
+
left: (canvas.width - reversed.width) / 2,
|
576 |
+
top: (canvas.height - reversed.height) / 2
|
577 |
+
} : {
|
578 |
+
width: canvas.width,
|
579 |
+
height: canvas.height,
|
580 |
+
left: 0,
|
581 |
+
top: 0
|
582 |
+
});
|
583 |
+
|
584 |
+
this.$clone.css({
|
585 |
+
width: image.width,
|
586 |
+
height: image.height,
|
587 |
+
marginLeft: image.left,
|
588 |
+
marginTop: image.top,
|
589 |
+
transform: getRotateValue(image.rotate)
|
590 |
+
});
|
591 |
+
},
|
592 |
+
|
593 |
+
initCropBox: function () {
|
594 |
+
var options = this.options,
|
595 |
+
canvas = this.canvas,
|
596 |
+
aspectRatio = options.aspectRatio,
|
597 |
+
autoCropArea = num(options.autoCropArea) || 0.8,
|
598 |
+
cropBox = {
|
599 |
+
width: canvas.width,
|
600 |
+
height: canvas.height
|
601 |
+
};
|
602 |
+
|
603 |
+
if (aspectRatio) {
|
604 |
+
if (canvas.height * aspectRatio > canvas.width) {
|
605 |
+
cropBox.height = cropBox.width / aspectRatio;
|
606 |
+
} else {
|
607 |
+
cropBox.width = cropBox.height * aspectRatio;
|
608 |
+
}
|
609 |
+
}
|
610 |
+
|
611 |
+
this.cropBox = cropBox;
|
612 |
+
this.limitCropBox(true, true);
|
613 |
+
|
614 |
+
// Initialize auto crop area
|
615 |
+
cropBox.width = min(max(cropBox.width, cropBox.minWidth), cropBox.maxWidth);
|
616 |
+
cropBox.height = min(max(cropBox.height, cropBox.minHeight), cropBox.maxHeight);
|
617 |
+
|
618 |
+
// The width of auto crop area must large than "minWidth", and the height too. (#164)
|
619 |
+
cropBox.width = max(cropBox.minWidth, cropBox.width * autoCropArea);
|
620 |
+
cropBox.height = max(cropBox.minHeight, cropBox.height * autoCropArea);
|
621 |
+
cropBox.oldLeft = cropBox.left = canvas.left + (canvas.width - cropBox.width) / 2;
|
622 |
+
cropBox.oldTop = cropBox.top = canvas.top + (canvas.height - cropBox.height) / 2;
|
623 |
+
|
624 |
+
this.initialCropBox = $.extend({}, cropBox);
|
625 |
+
},
|
626 |
+
|
627 |
+
limitCropBox: function (size, position) {
|
628 |
+
var options = this.options,
|
629 |
+
strict = options.strict,
|
630 |
+
container = this.container,
|
631 |
+
containerWidth = container.width,
|
632 |
+
containerHeight = container.height,
|
633 |
+
canvas = this.canvas,
|
634 |
+
cropBox = this.cropBox,
|
635 |
+
aspectRatio = options.aspectRatio,
|
636 |
+
minCropBoxWidth,
|
637 |
+
minCropBoxHeight;
|
638 |
+
|
639 |
+
if (size) {
|
640 |
+
minCropBoxWidth = num(options.minCropBoxWidth) || 0;
|
641 |
+
minCropBoxHeight = num(options.minCropBoxHeight) || 0;
|
642 |
+
|
643 |
+
// min/maxCropBoxWidth/Height must less than conatiner width/height
|
644 |
+
cropBox.minWidth = min(containerWidth, minCropBoxWidth);
|
645 |
+
cropBox.minHeight = min(containerHeight, minCropBoxHeight);
|
646 |
+
cropBox.maxWidth = min(containerWidth, strict ? canvas.width : containerWidth);
|
647 |
+
cropBox.maxHeight = min(containerHeight, strict ? canvas.height : containerHeight);
|
648 |
+
|
649 |
+
if (aspectRatio) {
|
650 |
+
// compare crop box size with container first
|
651 |
+
if (cropBox.maxHeight * aspectRatio > cropBox.maxWidth) {
|
652 |
+
cropBox.minHeight = cropBox.minWidth / aspectRatio;
|
653 |
+
cropBox.maxHeight = cropBox.maxWidth / aspectRatio;
|
654 |
+
} else {
|
655 |
+
cropBox.minWidth = cropBox.minHeight * aspectRatio;
|
656 |
+
cropBox.maxWidth = cropBox.maxHeight * aspectRatio;
|
657 |
+
}
|
658 |
+
}
|
659 |
+
|
660 |
+
// The "minWidth" must be less than "maxWidth", and the "minHeight" too.
|
661 |
+
cropBox.minWidth = min(cropBox.maxWidth, cropBox.minWidth);
|
662 |
+
cropBox.minHeight = min(cropBox.maxHeight, cropBox.minHeight);
|
663 |
+
}
|
664 |
+
|
665 |
+
if (position) {
|
666 |
+
if (strict) {
|
667 |
+
cropBox.minLeft = max(0, canvas.left);
|
668 |
+
cropBox.minTop = max(0, canvas.top);
|
669 |
+
cropBox.maxLeft = min(containerWidth, canvas.left + canvas.width) - cropBox.width;
|
670 |
+
cropBox.maxTop = min(containerHeight, canvas.top + canvas.height) - cropBox.height;
|
671 |
+
} else {
|
672 |
+
cropBox.minLeft = 0;
|
673 |
+
cropBox.minTop = 0;
|
674 |
+
cropBox.maxLeft = containerWidth - cropBox.width;
|
675 |
+
cropBox.maxTop = containerHeight - cropBox.height;
|
676 |
+
}
|
677 |
+
}
|
678 |
+
},
|
679 |
+
|
680 |
+
renderCropBox: function () {
|
681 |
+
var options = this.options,
|
682 |
+
container = this.container,
|
683 |
+
containerWidth = container.width,
|
684 |
+
containerHeight = container.height,
|
685 |
+
cropBox = this.cropBox;
|
686 |
+
|
687 |
+
if (cropBox.width > cropBox.maxWidth || cropBox.width < cropBox.minWidth) {
|
688 |
+
cropBox.left = cropBox.oldLeft;
|
689 |
+
}
|
690 |
+
|
691 |
+
if (cropBox.height > cropBox.maxHeight || cropBox.height < cropBox.minHeight) {
|
692 |
+
cropBox.top = cropBox.oldTop;
|
693 |
+
}
|
694 |
+
|
695 |
+
cropBox.width = min(max(cropBox.width, cropBox.minWidth), cropBox.maxWidth);
|
696 |
+
cropBox.height = min(max(cropBox.height, cropBox.minHeight), cropBox.maxHeight);
|
697 |
+
|
698 |
+
this.limitCropBox(false, true);
|
699 |
+
|
700 |
+
cropBox.oldLeft = cropBox.left = min(max(cropBox.left, cropBox.minLeft), cropBox.maxLeft);
|
701 |
+
cropBox.oldTop = cropBox.top = min(max(cropBox.top, cropBox.minTop), cropBox.maxTop);
|
702 |
+
|
703 |
+
if (options.movable && options.cropBoxMovable) {
|
704 |
+
// Turn to move the canvas when the crop box is equal to the container
|
705 |
+
this.$face.data('drag', (cropBox.width === containerWidth && cropBox.height === containerHeight) ? 'move' : 'all');
|
706 |
+
}
|
707 |
+
|
708 |
+
this.$cropBox.css({
|
709 |
+
width: cropBox.width,
|
710 |
+
height: cropBox.height,
|
711 |
+
left: cropBox.left,
|
712 |
+
top: cropBox.top
|
713 |
+
});
|
714 |
+
|
715 |
+
if (this.cropped && options.strict) {
|
716 |
+
this.limitCanvas(true, true);
|
717 |
+
}
|
718 |
+
|
719 |
+
if (!this.disabled) {
|
720 |
+
this.output();
|
721 |
+
}
|
722 |
+
},
|
723 |
+
|
724 |
+
output: function () {
|
725 |
+
var options = this.options,
|
726 |
+
$this = this.$element;
|
727 |
+
|
728 |
+
this.preview();
|
729 |
+
|
730 |
+
if (options.crop) {
|
731 |
+
options.crop.call($this, this.getData());
|
732 |
+
}
|
733 |
+
|
734 |
+
$this.trigger(EVENT_CHANGE);
|
735 |
+
}
|
736 |
+
});
|
737 |
+
|
738 |
+
prototype.initPreview = function () {
|
739 |
+
var url = this.url;
|
740 |
+
|
741 |
+
this.$preview = $(this.options.preview);
|
742 |
+
this.$viewBox.html('<img src="' + url + '">');
|
743 |
+
|
744 |
+
// Override img element styles
|
745 |
+
// Add `display:block` to avoid margin top issue (Occur only when margin-top <= -height)
|
746 |
+
this.$preview.each(function () {
|
747 |
+
var $this = $(this);
|
748 |
+
|
749 |
+
$this.data(CROPPER_PREVIEW, {
|
750 |
+
width: $this.width(),
|
751 |
+
height: $this.height(),
|
752 |
+
original: $this.html()
|
753 |
+
}).html('<img src="' + url + '" style="display:block;width:100%;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation: 0deg!important">');
|
754 |
+
});
|
755 |
+
};
|
756 |
+
|
757 |
+
prototype.resetPreview = function () {
|
758 |
+
this.$preview.each(function () {
|
759 |
+
var $this = $(this);
|
760 |
+
|
761 |
+
$this.html($this.data(CROPPER_PREVIEW).original).removeData(CROPPER_PREVIEW);
|
762 |
+
});
|
763 |
+
};
|
764 |
+
|
765 |
+
prototype.preview = function () {
|
766 |
+
var image = this.image,
|
767 |
+
canvas = this.canvas,
|
768 |
+
cropBox = this.cropBox,
|
769 |
+
width = image.width,
|
770 |
+
height = image.height,
|
771 |
+
left = cropBox.left - canvas.left - image.left,
|
772 |
+
top = cropBox.top - canvas.top - image.top,
|
773 |
+
rotate = image.rotate;
|
774 |
+
|
775 |
+
if (!this.cropped || this.disabled) {
|
776 |
+
return;
|
777 |
+
}
|
778 |
+
|
779 |
+
this.$viewBox.find('img').css({
|
780 |
+
width: width,
|
781 |
+
height: height,
|
782 |
+
marginLeft: -left,
|
783 |
+
marginTop: -top,
|
784 |
+
transform: getRotateValue(rotate)
|
785 |
+
});
|
786 |
+
|
787 |
+
this.$preview.each(function () {
|
788 |
+
var $this = $(this),
|
789 |
+
data = $this.data(CROPPER_PREVIEW),
|
790 |
+
ratio = data.width / cropBox.width,
|
791 |
+
newWidth = data.width,
|
792 |
+
newHeight = cropBox.height * ratio;
|
793 |
+
|
794 |
+
if (newHeight > data.height) {
|
795 |
+
ratio = data.height / cropBox.height;
|
796 |
+
newWidth = cropBox.width * ratio;
|
797 |
+
newHeight = data.height;
|
798 |
+
}
|
799 |
+
|
800 |
+
$this.width(newWidth).height(newHeight).find('img').css({
|
801 |
+
width: width * ratio,
|
802 |
+
height: height * ratio,
|
803 |
+
marginLeft: -left * ratio,
|
804 |
+
marginTop: -top * ratio,
|
805 |
+
transform: getRotateValue(rotate)
|
806 |
+
});
|
807 |
+
});
|
808 |
+
};
|
809 |
+
|
810 |
+
prototype.addListeners = function () {
|
811 |
+
var options = this.options,
|
812 |
+
$this = this.$element,
|
813 |
+
$cropper = this.$cropper;
|
814 |
+
|
815 |
+
if ($.isFunction(options.dragstart)) {
|
816 |
+
$this.on(EVENT_DRAG_START, options.dragstart);
|
817 |
+
}
|
818 |
+
|
819 |
+
if ($.isFunction(options.dragmove)) {
|
820 |
+
$this.on(EVENT_DRAG_MOVE, options.dragmove);
|
821 |
+
}
|
822 |
+
|
823 |
+
if ($.isFunction(options.dragend)) {
|
824 |
+
$this.on(EVENT_DRAG_END, options.dragend);
|
825 |
+
}
|
826 |
+
|
827 |
+
if ($.isFunction(options.zoomin)) {
|
828 |
+
$this.on(EVENT_ZOOM_IN, options.zoomin);
|
829 |
+
}
|
830 |
+
|
831 |
+
if ($.isFunction(options.zoomout)) {
|
832 |
+
$this.on(EVENT_ZOOM_OUT, options.zoomout);
|
833 |
+
}
|
834 |
+
|
835 |
+
if ($.isFunction(options.change)) {
|
836 |
+
$this.on(EVENT_CHANGE, options.change);
|
837 |
+
}
|
838 |
+
|
839 |
+
$cropper.on(EVENT_MOUSE_DOWN, $.proxy(this.dragstart, this));
|
840 |
+
|
841 |
+
if (options.zoomable && options.mouseWheelZoom) {
|
842 |
+
$cropper.on(EVENT_WHEEL, $.proxy(this.wheel, this));
|
843 |
+
}
|
844 |
+
|
845 |
+
if (options.doubleClickToggle) {
|
846 |
+
$cropper.on(EVENT_DBLCLICK, $.proxy(this.dblclick, this));
|
847 |
+
}
|
848 |
+
|
849 |
+
$document.on(EVENT_MOUSE_MOVE, (this._dragmove = proxy(this.dragmove, this))).on(EVENT_MOUSE_UP, (this._dragend = proxy(this.dragend, this)));
|
850 |
+
|
851 |
+
if (options.responsive) {
|
852 |
+
$window.on(EVENT_RESIZE, (this._resize = proxy(this.resize, this)));
|
853 |
+
}
|
854 |
+
};
|
855 |
+
|
856 |
+
prototype.removeListeners = function () {
|
857 |
+
var options = this.options,
|
858 |
+
$this = this.$element,
|
859 |
+
$cropper = this.$cropper;
|
860 |
+
|
861 |
+
if ($.isFunction(options.dragstart)) {
|
862 |
+
$this.off(EVENT_DRAG_START, options.dragstart);
|
863 |
+
}
|
864 |
+
|
865 |
+
if ($.isFunction(options.dragmove)) {
|
866 |
+
$this.off(EVENT_DRAG_MOVE, options.dragmove);
|
867 |
+
}
|
868 |
+
|
869 |
+
if ($.isFunction(options.dragend)) {
|
870 |
+
$this.off(EVENT_DRAG_END, options.dragend);
|
871 |
+
}
|
872 |
+
|
873 |
+
if ($.isFunction(options.zoomin)) {
|
874 |
+
$this.off(EVENT_ZOOM_IN, options.zoomin);
|
875 |
+
}
|
876 |
+
|
877 |
+
if ($.isFunction(options.zoomout)) {
|
878 |
+
$this.off(EVENT_ZOOM_OUT, options.zoomout);
|
879 |
+
}
|
880 |
+
|
881 |
+
if ($.isFunction(options.change)) {
|
882 |
+
$this.off(EVENT_CHANGE, options.change);
|
883 |
+
}
|
884 |
+
|
885 |
+
$cropper.off(EVENT_MOUSE_DOWN, this.dragstart);
|
886 |
+
|
887 |
+
if (options.zoomable && options.mouseWheelZoom) {
|
888 |
+
$cropper.off(EVENT_WHEEL, this.wheel);
|
889 |
+
}
|
890 |
+
|
891 |
+
if (options.doubleClickToggle) {
|
892 |
+
$cropper.off(EVENT_DBLCLICK, this.dblclick);
|
893 |
+
}
|
894 |
+
|
895 |
+
$document.off(EVENT_MOUSE_MOVE, this._dragmove).off(EVENT_MOUSE_UP, this._dragend);
|
896 |
+
|
897 |
+
if (options.responsive) {
|
898 |
+
$window.off(EVENT_RESIZE, this._resize);
|
899 |
+
}
|
900 |
+
};
|
901 |
+
|
902 |
+
$.extend(prototype, {
|
903 |
+
resize: function () {
|
904 |
+
var $container = this.$container,
|
905 |
+
container = this.container,
|
906 |
+
canvasData,
|
907 |
+
cropBoxData,
|
908 |
+
ratio;
|
909 |
+
|
910 |
+
if (this.disabled || !container) { // Check "container" for IE8
|
911 |
+
return;
|
912 |
+
}
|
913 |
+
|
914 |
+
ratio = $container.width() / container.width;
|
915 |
+
|
916 |
+
if (ratio !== 1 || $container.height() !== container.height) {
|
917 |
+
canvasData = this.getCanvasData();
|
918 |
+
cropBoxData = this.getCropBoxData();
|
919 |
+
|
920 |
+
this.render();
|
921 |
+
this.setCanvasData($.each(canvasData, function (i, n) {
|
922 |
+
canvasData[i] = n * ratio;
|
923 |
+
}));
|
924 |
+
this.setCropBoxData($.each(cropBoxData, function (i, n) {
|
925 |
+
cropBoxData[i] = n * ratio;
|
926 |
+
}));
|
927 |
+
}
|
928 |
+
},
|
929 |
+
|
930 |
+
dblclick: function () {
|
931 |
+
if (this.disabled) {
|
932 |
+
return;
|
933 |
+
}
|
934 |
+
|
935 |
+
if (this.$dragBox.hasClass(CLASS_CROP)) {
|
936 |
+
this.setDragMode('move');
|
937 |
+
} else {
|
938 |
+
this.setDragMode('crop');
|
939 |
+
}
|
940 |
+
},
|
941 |
+
|
942 |
+
wheel: function (event) {
|
943 |
+
var e = event.originalEvent,
|
944 |
+
delta = 1;
|
945 |
+
|
946 |
+
if (this.disabled) {
|
947 |
+
return;
|
948 |
+
}
|
949 |
+
|
950 |
+
event.preventDefault();
|
951 |
+
|
952 |
+
if (e.deltaY) {
|
953 |
+
delta = e.deltaY > 0 ? 1 : -1;
|
954 |
+
} else if (e.wheelDelta) {
|
955 |
+
delta = -e.wheelDelta / 120;
|
956 |
+
} else if (e.detail) {
|
957 |
+
delta = e.detail > 0 ? 1 : -1;
|
958 |
+
}
|
959 |
+
|
960 |
+
this.zoom(-delta * 0.1);
|
961 |
+
},
|
962 |
+
|
963 |
+
dragstart: function (event) {
|
964 |
+
var options = this.options,
|
965 |
+
originalEvent = event.originalEvent,
|
966 |
+
touches = originalEvent && originalEvent.touches,
|
967 |
+
e = event,
|
968 |
+
dragType,
|
969 |
+
dragStartEvent,
|
970 |
+
touchesLength;
|
971 |
+
|
972 |
+
if (this.disabled) {
|
973 |
+
return;
|
974 |
+
}
|
975 |
+
|
976 |
+
if (touches) {
|
977 |
+
touchesLength = touches.length;
|
978 |
+
|
979 |
+
if (touchesLength > 1) {
|
980 |
+
if (options.zoomable && options.touchDragZoom && touchesLength === 2) {
|
981 |
+
e = touches[1];
|
982 |
+
this.startX2 = e.pageX;
|
983 |
+
this.startY2 = e.pageY;
|
984 |
+
dragType = 'zoom';
|
985 |
+
} else {
|
986 |
+
return;
|
987 |
+
}
|
988 |
+
}
|
989 |
+
|
990 |
+
e = touches[0];
|
991 |
+
}
|
992 |
+
|
993 |
+
dragType = dragType || $(e.target).data('drag');
|
994 |
+
|
995 |
+
if (REGEXP_DRAG_TYPES.test(dragType)) {
|
996 |
+
event.preventDefault();
|
997 |
+
|
998 |
+
dragStartEvent = $.Event(EVENT_DRAG_START, {
|
999 |
+
originalEvent: originalEvent,
|
1000 |
+
dragType: dragType
|
1001 |
+
});
|
1002 |
+
|
1003 |
+
this.$element.trigger(dragStartEvent);
|
1004 |
+
|
1005 |
+
if (dragStartEvent.isDefaultPrevented()) {
|
1006 |
+
return;
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
this.dragType = dragType;
|
1010 |
+
this.cropping = false;
|
1011 |
+
this.startX = e.pageX;
|
1012 |
+
this.startY = e.pageY;
|
1013 |
+
|
1014 |
+
if (dragType === 'crop') {
|
1015 |
+
this.cropping = true;
|
1016 |
+
this.$dragBox.addClass(CLASS_MODAL);
|
1017 |
+
}
|
1018 |
+
}
|
1019 |
+
},
|
1020 |
+
|
1021 |
+
dragmove: function (event) {
|
1022 |
+
var options = this.options,
|
1023 |
+
originalEvent = event.originalEvent,
|
1024 |
+
touches = originalEvent && originalEvent.touches,
|
1025 |
+
e = event,
|
1026 |
+
dragType = this.dragType,
|
1027 |
+
dragMoveEvent,
|
1028 |
+
touchesLength;
|
1029 |
+
|
1030 |
+
if (this.disabled) {
|
1031 |
+
return;
|
1032 |
+
}
|
1033 |
+
|
1034 |
+
if (touches) {
|
1035 |
+
touchesLength = touches.length;
|
1036 |
+
|
1037 |
+
if (touchesLength > 1) {
|
1038 |
+
if (options.zoomable && options.touchDragZoom && touchesLength === 2) {
|
1039 |
+
e = touches[1];
|
1040 |
+
this.endX2 = e.pageX;
|
1041 |
+
this.endY2 = e.pageY;
|
1042 |
+
} else {
|
1043 |
+
return;
|
1044 |
+
}
|
1045 |
+
}
|
1046 |
+
|
1047 |
+
e = touches[0];
|
1048 |
+
}
|
1049 |
+
|
1050 |
+
if (dragType) {
|
1051 |
+
event.preventDefault();
|
1052 |
+
|
1053 |
+
dragMoveEvent = $.Event(EVENT_DRAG_MOVE, {
|
1054 |
+
originalEvent: originalEvent,
|
1055 |
+
dragType: dragType
|
1056 |
+
});
|
1057 |
+
|
1058 |
+
this.$element.trigger(dragMoveEvent);
|
1059 |
+
|
1060 |
+
if (dragMoveEvent.isDefaultPrevented()) {
|
1061 |
+
return;
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
this.endX = e.pageX;
|
1065 |
+
this.endY = e.pageY;
|
1066 |
+
|
1067 |
+
this.change(e.shiftKey);
|
1068 |
+
}
|
1069 |
+
},
|
1070 |
+
|
1071 |
+
dragend: function (event) {
|
1072 |
+
var dragType = this.dragType,
|
1073 |
+
dragEndEvent;
|
1074 |
+
|
1075 |
+
if (this.disabled) {
|
1076 |
+
return;
|
1077 |
+
}
|
1078 |
+
|
1079 |
+
if (dragType) {
|
1080 |
+
event.preventDefault();
|
1081 |
+
|
1082 |
+
dragEndEvent = $.Event(EVENT_DRAG_END, {
|
1083 |
+
originalEvent: event.originalEvent,
|
1084 |
+
dragType: dragType
|
1085 |
+
});
|
1086 |
+
|
1087 |
+
this.$element.trigger(dragEndEvent);
|
1088 |
+
|
1089 |
+
if (dragEndEvent.isDefaultPrevented()) {
|
1090 |
+
return;
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
if (this.cropping) {
|
1094 |
+
this.cropping = false;
|
1095 |
+
this.$dragBox.toggleClass(CLASS_MODAL, this.cropped && this.options.modal);
|
1096 |
+
}
|
1097 |
+
|
1098 |
+
this.dragType = '';
|
1099 |
+
}
|
1100 |
+
}
|
1101 |
+
});
|
1102 |
+
|
1103 |
+
$.extend(prototype, {
|
1104 |
+
crop: function () {
|
1105 |
+
if (!this.built || this.disabled) {
|
1106 |
+
return;
|
1107 |
+
}
|
1108 |
+
|
1109 |
+
if (!this.cropped) {
|
1110 |
+
this.cropped = true;
|
1111 |
+
this.limitCropBox(true, true);
|
1112 |
+
|
1113 |
+
if (this.options.modal) {
|
1114 |
+
this.$dragBox.addClass(CLASS_MODAL);
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
this.$cropBox.removeClass(CLASS_HIDDEN);
|
1118 |
+
}
|
1119 |
+
|
1120 |
+
this.setCropBoxData(this.initialCropBox);
|
1121 |
+
},
|
1122 |
+
|
1123 |
+
reset: function () {
|
1124 |
+
if (!this.built || this.disabled) {
|
1125 |
+
return;
|
1126 |
+
}
|
1127 |
+
|
1128 |
+
this.image = $.extend({}, this.initialImage);
|
1129 |
+
this.canvas = $.extend({}, this.initialCanvas);
|
1130 |
+
this.cropBox = $.extend({}, this.initialCropBox); // required for strict mode
|
1131 |
+
|
1132 |
+
this.renderCanvas();
|
1133 |
+
|
1134 |
+
if (this.cropped) {
|
1135 |
+
this.renderCropBox();
|
1136 |
+
}
|
1137 |
+
},
|
1138 |
+
|
1139 |
+
clear: function () {
|
1140 |
+
if (!this.cropped || this.disabled) {
|
1141 |
+
return;
|
1142 |
+
}
|
1143 |
+
|
1144 |
+
$.extend(this.cropBox, {
|
1145 |
+
left: 0,
|
1146 |
+
top: 0,
|
1147 |
+
width: 0,
|
1148 |
+
height: 0
|
1149 |
+
});
|
1150 |
+
|
1151 |
+
this.cropped = false;
|
1152 |
+
this.renderCropBox();
|
1153 |
+
|
1154 |
+
this.limitCanvas();
|
1155 |
+
this.renderCanvas(); // Render canvas after render crop box
|
1156 |
+
|
1157 |
+
this.$dragBox.removeClass(CLASS_MODAL);
|
1158 |
+
this.$cropBox.addClass(CLASS_HIDDEN);
|
1159 |
+
},
|
1160 |
+
|
1161 |
+
destroy: function () {
|
1162 |
+
var $this = this.$element;
|
1163 |
+
|
1164 |
+
if (this.ready) {
|
1165 |
+
this.unbuild();
|
1166 |
+
$this.removeClass(CLASS_HIDDEN);
|
1167 |
+
} else if (this.$clone) {
|
1168 |
+
this.$clone.remove();
|
1169 |
+
}
|
1170 |
+
|
1171 |
+
$this.removeData('cropper');
|
1172 |
+
},
|
1173 |
+
|
1174 |
+
replace: function (url) {
|
1175 |
+
if (!this.disabled && url) {
|
1176 |
+
this.options.data = null; // Remove previous data
|
1177 |
+
this.load(url);
|
1178 |
+
}
|
1179 |
+
},
|
1180 |
+
|
1181 |
+
enable: function () {
|
1182 |
+
if (this.built) {
|
1183 |
+
this.disabled = false;
|
1184 |
+
this.$cropper.removeClass(CLASS_DISABLED);
|
1185 |
+
}
|
1186 |
+
},
|
1187 |
+
|
1188 |
+
disable: function () {
|
1189 |
+
if (this.built) {
|
1190 |
+
this.disabled = true;
|
1191 |
+
this.$cropper.addClass(CLASS_DISABLED);
|
1192 |
+
}
|
1193 |
+
},
|
1194 |
+
|
1195 |
+
move: function (offsetX, offsetY) {
|
1196 |
+
var canvas = this.canvas;
|
1197 |
+
|
1198 |
+
if (this.built && !this.disabled && this.options.movable && isNumber(offsetX) && isNumber(offsetY)) {
|
1199 |
+
canvas.left += offsetX;
|
1200 |
+
canvas.top += offsetY;
|
1201 |
+
this.renderCanvas(true);
|
1202 |
+
}
|
1203 |
+
},
|
1204 |
+
|
1205 |
+
zoom: function (delta) {
|
1206 |
+
var canvas = this.canvas,
|
1207 |
+
zoomEvent,
|
1208 |
+
width,
|
1209 |
+
height;
|
1210 |
+
|
1211 |
+
delta = num(delta);
|
1212 |
+
|
1213 |
+
if (delta && this.built && !this.disabled && this.options.zoomable) {
|
1214 |
+
zoomEvent = delta > 0 ? $.Event(EVENT_ZOOM_IN) : $.Event(EVENT_ZOOM_OUT);
|
1215 |
+
this.$element.trigger(zoomEvent);
|
1216 |
+
|
1217 |
+
if (zoomEvent.isDefaultPrevented()) {
|
1218 |
+
return;
|
1219 |
+
}
|
1220 |
+
|
1221 |
+
delta = delta <= -1 ? 1 / (1 - delta) : delta <= 1 ? (1 + delta) : delta;
|
1222 |
+
width = canvas.width * delta;
|
1223 |
+
height = canvas.height * delta;
|
1224 |
+
canvas.left -= (width - canvas.width) / 2;
|
1225 |
+
canvas.top -= (height - canvas.height) / 2;
|
1226 |
+
canvas.width = width;
|
1227 |
+
canvas.height = height;
|
1228 |
+
this.renderCanvas(true);
|
1229 |
+
this.setDragMode('move');
|
1230 |
+
}
|
1231 |
+
},
|
1232 |
+
|
1233 |
+
rotate: function (degree) {
|
1234 |
+
var image = this.image;
|
1235 |
+
|
1236 |
+
degree = num(degree);
|
1237 |
+
|
1238 |
+
if (degree && this.built && !this.disabled && this.options.rotatable) {
|
1239 |
+
image.rotate = (image.rotate + degree) % 360;
|
1240 |
+
this.rotated = true;
|
1241 |
+
this.renderCanvas(true);
|
1242 |
+
}
|
1243 |
+
},
|
1244 |
+
|
1245 |
+
getData: function (rounded) {
|
1246 |
+
var cropBox = this.cropBox,
|
1247 |
+
canvas = this.canvas,
|
1248 |
+
image = this.image,
|
1249 |
+
ratio,
|
1250 |
+
data;
|
1251 |
+
|
1252 |
+
if (this.built && this.cropped) {
|
1253 |
+
data = {
|
1254 |
+
x: cropBox.left - canvas.left,
|
1255 |
+
y: cropBox.top - canvas.top,
|
1256 |
+
width: cropBox.width,
|
1257 |
+
height: cropBox.height
|
1258 |
+
};
|
1259 |
+
|
1260 |
+
ratio = image.width / image.naturalWidth;
|
1261 |
+
|
1262 |
+
$.each(data, function (i, n) {
|
1263 |
+
n = n / ratio;
|
1264 |
+
data[i] = rounded ? Math.round(n) : n;
|
1265 |
+
});
|
1266 |
+
|
1267 |
+
} else {
|
1268 |
+
data = {
|
1269 |
+
x: 0,
|
1270 |
+
y: 0,
|
1271 |
+
width: 0,
|
1272 |
+
height: 0
|
1273 |
+
};
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
data.rotate = this.ready ? image.rotate : 0;
|
1277 |
+
|
1278 |
+
return data;
|
1279 |
+
},
|
1280 |
+
|
1281 |
+
setData: function (data) {
|
1282 |
+
var image = this.image,
|
1283 |
+
canvas = this.canvas,
|
1284 |
+
cropBoxData = {},
|
1285 |
+
ratio;
|
1286 |
+
|
1287 |
+
if (this.built && !this.disabled && $.isPlainObject(data)) {
|
1288 |
+
if (isNumber(data.rotate) && data.rotate !== image.rotate && this.options.rotatable) {
|
1289 |
+
image.rotate = data.rotate;
|
1290 |
+
this.rotated = true;
|
1291 |
+
this.renderCanvas(true);
|
1292 |
+
}
|
1293 |
+
|
1294 |
+
ratio = image.width / image.naturalWidth;
|
1295 |
+
|
1296 |
+
if (isNumber(data.x)) {
|
1297 |
+
cropBoxData.left = data.x * ratio + canvas.left;
|
1298 |
+
}
|
1299 |
+
|
1300 |
+
if (isNumber(data.y)) {
|
1301 |
+
cropBoxData.top = data.y * ratio + canvas.top;
|
1302 |
+
}
|
1303 |
+
|
1304 |
+
if (isNumber(data.width)) {
|
1305 |
+
cropBoxData.width = data.width * ratio;
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
if (isNumber(data.height)) {
|
1309 |
+
cropBoxData.height = data.height * ratio;
|
1310 |
+
}
|
1311 |
+
|
1312 |
+
this.setCropBoxData(cropBoxData);
|
1313 |
+
}
|
1314 |
+
},
|
1315 |
+
|
1316 |
+
getContainerData: function () {
|
1317 |
+
return this.built ? this.container : {};
|
1318 |
+
},
|
1319 |
+
|
1320 |
+
getImageData: function () {
|
1321 |
+
return this.ready ? this.image : {};
|
1322 |
+
},
|
1323 |
+
|
1324 |
+
getCanvasData: function () {
|
1325 |
+
var canvas = this.canvas,
|
1326 |
+
data;
|
1327 |
+
|
1328 |
+
if (this.built) {
|
1329 |
+
data = {
|
1330 |
+
left: canvas.left,
|
1331 |
+
top: canvas.top,
|
1332 |
+
width: canvas.width,
|
1333 |
+
height: canvas.height
|
1334 |
+
};
|
1335 |
+
}
|
1336 |
+
|
1337 |
+
return data || {};
|
1338 |
+
},
|
1339 |
+
|
1340 |
+
setCanvasData: function (data) {
|
1341 |
+
var canvas = this.canvas,
|
1342 |
+
aspectRatio = canvas.aspectRatio;
|
1343 |
+
|
1344 |
+
if (this.built && !this.disabled && $.isPlainObject(data)) {
|
1345 |
+
if (isNumber(data.left)) {
|
1346 |
+
canvas.left = data.left;
|
1347 |
+
}
|
1348 |
+
|
1349 |
+
if (isNumber(data.top)) {
|
1350 |
+
canvas.top = data.top;
|
1351 |
+
}
|
1352 |
+
|
1353 |
+
if (isNumber(data.width)) {
|
1354 |
+
canvas.width = data.width;
|
1355 |
+
canvas.height = data.width / aspectRatio;
|
1356 |
+
} else if (isNumber(data.height)) {
|
1357 |
+
canvas.height = data.height;
|
1358 |
+
canvas.width = data.height * aspectRatio;
|
1359 |
+
}
|
1360 |
+
|
1361 |
+
this.renderCanvas(true);
|
1362 |
+
}
|
1363 |
+
},
|
1364 |
+
|
1365 |
+
getCropBoxData: function () {
|
1366 |
+
var cropBox = this.cropBox,
|
1367 |
+
data;
|
1368 |
+
|
1369 |
+
if (this.built && this.cropped) {
|
1370 |
+
data = {
|
1371 |
+
left: cropBox.left,
|
1372 |
+
top: cropBox.top,
|
1373 |
+
width: cropBox.width,
|
1374 |
+
height: cropBox.height
|
1375 |
+
};
|
1376 |
+
}
|
1377 |
+
|
1378 |
+
return data || {};
|
1379 |
+
},
|
1380 |
+
|
1381 |
+
setCropBoxData: function (data) {
|
1382 |
+
var cropBox = this.cropBox,
|
1383 |
+
aspectRatio = this.options.aspectRatio;
|
1384 |
+
|
1385 |
+
if (this.built && this.cropped && !this.disabled && $.isPlainObject(data)) {
|
1386 |
+
|
1387 |
+
if (isNumber(data.left)) {
|
1388 |
+
cropBox.left = data.left;
|
1389 |
+
}
|
1390 |
+
|
1391 |
+
if (isNumber(data.top)) {
|
1392 |
+
cropBox.top = data.top;
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
if (isNumber(data.width)) {
|
1396 |
+
cropBox.width = data.width;
|
1397 |
+
}
|
1398 |
+
|
1399 |
+
if (isNumber(data.height)) {
|
1400 |
+
cropBox.height = data.height;
|
1401 |
+
}
|
1402 |
+
|
1403 |
+
if (aspectRatio) {
|
1404 |
+
if (isNumber(data.width)) {
|
1405 |
+
cropBox.height = cropBox.width / aspectRatio;
|
1406 |
+
} else if (isNumber(data.height)) {
|
1407 |
+
cropBox.width = cropBox.height * aspectRatio;
|
1408 |
+
}
|
1409 |
+
}
|
1410 |
+
|
1411 |
+
this.renderCropBox();
|
1412 |
+
}
|
1413 |
+
},
|
1414 |
+
|
1415 |
+
getCroppedCanvas: function (options) {
|
1416 |
+
var originalWidth,
|
1417 |
+
originalHeight,
|
1418 |
+
canvasWidth,
|
1419 |
+
canvasHeight,
|
1420 |
+
scaledWidth,
|
1421 |
+
scaledHeight,
|
1422 |
+
scaledRatio,
|
1423 |
+
aspectRatio,
|
1424 |
+
canvas,
|
1425 |
+
context,
|
1426 |
+
data;
|
1427 |
+
|
1428 |
+
if (!this.built || !this.cropped || !SUPPORT_CANVAS) {
|
1429 |
+
return;
|
1430 |
+
}
|
1431 |
+
|
1432 |
+
if (!$.isPlainObject(options)) {
|
1433 |
+
options = {};
|
1434 |
+
}
|
1435 |
+
|
1436 |
+
data = this.getData();
|
1437 |
+
originalWidth = data.width;
|
1438 |
+
originalHeight = data.height;
|
1439 |
+
aspectRatio = originalWidth / originalHeight;
|
1440 |
+
|
1441 |
+
if ($.isPlainObject(options)) {
|
1442 |
+
scaledWidth = options.width;
|
1443 |
+
scaledHeight = options.height;
|
1444 |
+
|
1445 |
+
if (scaledWidth) {
|
1446 |
+
scaledHeight = scaledWidth / aspectRatio;
|
1447 |
+
scaledRatio = scaledWidth / originalWidth;
|
1448 |
+
} else if (scaledHeight) {
|
1449 |
+
scaledWidth = scaledHeight * aspectRatio;
|
1450 |
+
scaledRatio = scaledHeight / originalHeight;
|
1451 |
+
}
|
1452 |
+
}
|
1453 |
+
|
1454 |
+
canvasWidth = scaledWidth || originalWidth;
|
1455 |
+
canvasHeight = scaledHeight || originalHeight;
|
1456 |
+
|
1457 |
+
canvas = $('<canvas>')[0];
|
1458 |
+
canvas.width = canvasWidth;
|
1459 |
+
canvas.height = canvasHeight;
|
1460 |
+
context = canvas.getContext('2d');
|
1461 |
+
|
1462 |
+
if (options.fillColor) {
|
1463 |
+
context.fillStyle = options.fillColor;
|
1464 |
+
context.fillRect(0, 0, canvasWidth, canvasHeight);
|
1465 |
+
}
|
1466 |
+
|
1467 |
+
// https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage
|
1468 |
+
context.drawImage.apply(context, (function () {
|
1469 |
+
var source = getSourceCanvas(this.$clone[0], this.image),
|
1470 |
+
sourceWidth = source.width,
|
1471 |
+
sourceHeight = source.height,
|
1472 |
+
args = [source],
|
1473 |
+
srcX = data.x, // source canvas
|
1474 |
+
srcY = data.y,
|
1475 |
+
srcWidth,
|
1476 |
+
srcHeight,
|
1477 |
+
dstX, // destination canvas
|
1478 |
+
dstY,
|
1479 |
+
dstWidth,
|
1480 |
+
dstHeight;
|
1481 |
+
|
1482 |
+
if (srcX <= -originalWidth || srcX > sourceWidth) {
|
1483 |
+
srcX = srcWidth = dstX = dstWidth = 0;
|
1484 |
+
} else if (srcX <= 0) {
|
1485 |
+
dstX = -srcX;
|
1486 |
+
srcX = 0;
|
1487 |
+
srcWidth = dstWidth = min(sourceWidth, originalWidth + srcX);
|
1488 |
+
} else if (srcX <= sourceWidth) {
|
1489 |
+
dstX = 0;
|
1490 |
+
srcWidth = dstWidth = min(originalWidth, sourceWidth - srcX);
|
1491 |
+
}
|
1492 |
+
|
1493 |
+
if (srcWidth <= 0 || srcY <= -originalHeight || srcY > sourceHeight) {
|
1494 |
+
srcY = srcHeight = dstY = dstHeight = 0;
|
1495 |
+
} else if (srcY <= 0) {
|
1496 |
+
dstY = -srcY;
|
1497 |
+
srcY = 0;
|
1498 |
+
srcHeight = dstHeight = min(sourceHeight, originalHeight + srcY);
|
1499 |
+
} else if (srcY <= sourceHeight) {
|
1500 |
+
dstY = 0;
|
1501 |
+
srcHeight = dstHeight = min(originalHeight, sourceHeight - srcY);
|
1502 |
+
}
|
1503 |
+
|
1504 |
+
args.push(srcX, srcY, srcWidth, srcHeight);
|
1505 |
+
|
1506 |
+
// Scale destination sizes
|
1507 |
+
if (scaledRatio) {
|
1508 |
+
dstX *= scaledRatio;
|
1509 |
+
dstY *= scaledRatio;
|
1510 |
+
dstWidth *= scaledRatio;
|
1511 |
+
dstHeight *= scaledRatio;
|
1512 |
+
}
|
1513 |
+
|
1514 |
+
// Avoid "IndexSizeError" in IE and Firefox
|
1515 |
+
if (dstWidth > 0 && dstHeight > 0) {
|
1516 |
+
args.push(dstX, dstY, dstWidth, dstHeight);
|
1517 |
+
}
|
1518 |
+
|
1519 |
+
return args;
|
1520 |
+
}).call(this));
|
1521 |
+
|
1522 |
+
return canvas;
|
1523 |
+
},
|
1524 |
+
|
1525 |
+
setAspectRatio: function (aspectRatio) {
|
1526 |
+
var options = this.options;
|
1527 |
+
|
1528 |
+
if (!this.disabled && !isUndefined(aspectRatio)) {
|
1529 |
+
options.aspectRatio = num(aspectRatio) || NaN; // 0 -> NaN
|
1530 |
+
|
1531 |
+
if (this.built) {
|
1532 |
+
this.initCropBox();
|
1533 |
+
|
1534 |
+
if (this.cropped) {
|
1535 |
+
this.renderCropBox();
|
1536 |
+
}
|
1537 |
+
}
|
1538 |
+
}
|
1539 |
+
},
|
1540 |
+
|
1541 |
+
setDragMode: function (mode) {
|
1542 |
+
var options = this.options,
|
1543 |
+
croppable,
|
1544 |
+
movable;
|
1545 |
+
|
1546 |
+
if (this.ready && !this.disabled) {
|
1547 |
+
croppable = options.dragCrop && mode === 'crop';
|
1548 |
+
movable = options.movable && mode === 'move';
|
1549 |
+
mode = (croppable || movable) ? mode : 'none';
|
1550 |
+
|
1551 |
+
this.$dragBox.data('drag', mode).toggleClass(CLASS_CROP, croppable).toggleClass(CLASS_MOVE, movable);
|
1552 |
+
|
1553 |
+
if (!options.cropBoxMovable) {
|
1554 |
+
// Sync drag mode to crop box when it is not movable(#300)
|
1555 |
+
this.$face.data('drag', mode).toggleClass(CLASS_CROP, croppable).toggleClass(CLASS_MOVE, movable);
|
1556 |
+
}
|
1557 |
+
}
|
1558 |
+
}
|
1559 |
+
});
|
1560 |
+
|
1561 |
+
prototype.change = function (shiftKey) {
|
1562 |
+
var dragType = this.dragType,
|
1563 |
+
options = this.options,
|
1564 |
+
canvas = this.canvas,
|
1565 |
+
container = this.container,
|
1566 |
+
cropBox = this.cropBox,
|
1567 |
+
width = cropBox.width,
|
1568 |
+
height = cropBox.height,
|
1569 |
+
left = cropBox.left,
|
1570 |
+
top = cropBox.top,
|
1571 |
+
right = left + width,
|
1572 |
+
bottom = top + height,
|
1573 |
+
minLeft = 0,
|
1574 |
+
minTop = 0,
|
1575 |
+
maxWidth = container.width,
|
1576 |
+
maxHeight = container.height,
|
1577 |
+
renderable = true,
|
1578 |
+
aspectRatio = options.aspectRatio,
|
1579 |
+
range = {
|
1580 |
+
x: this.endX - this.startX,
|
1581 |
+
y: this.endY - this.startY
|
1582 |
+
},
|
1583 |
+
offset;
|
1584 |
+
|
1585 |
+
// Locking aspect ratio in "free mode" by holding shift key (#259)
|
1586 |
+
if (!aspectRatio && shiftKey) {
|
1587 |
+
aspectRatio = width && height ? width / height : 1;
|
1588 |
+
}
|
1589 |
+
|
1590 |
+
if (options.strict) {
|
1591 |
+
minLeft = cropBox.minLeft;
|
1592 |
+
minTop = cropBox.minTop;
|
1593 |
+
maxWidth = minLeft + min(container.width, canvas.width);
|
1594 |
+
maxHeight = minTop + min(container.height, canvas.height);
|
1595 |
+
}
|
1596 |
+
|
1597 |
+
if (aspectRatio) {
|
1598 |
+
range.X = range.y * aspectRatio;
|
1599 |
+
range.Y = range.x / aspectRatio;
|
1600 |
+
}
|
1601 |
+
|
1602 |
+
switch (dragType) {
|
1603 |
+
// Move cropBox
|
1604 |
+
case 'all':
|
1605 |
+
left += range.x;
|
1606 |
+
top += range.y;
|
1607 |
+
break;
|
1608 |
+
|
1609 |
+
// Resize cropBox
|
1610 |
+
case 'e':
|
1611 |
+
if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {
|
1612 |
+
renderable = false;
|
1613 |
+
break;
|
1614 |
+
}
|
1615 |
+
|
1616 |
+
width += range.x;
|
1617 |
+
|
1618 |
+
if (aspectRatio) {
|
1619 |
+
height = width / aspectRatio;
|
1620 |
+
top -= range.Y / 2;
|
1621 |
+
}
|
1622 |
+
|
1623 |
+
if (width < 0) {
|
1624 |
+
dragType = 'w';
|
1625 |
+
width = 0;
|
1626 |
+
}
|
1627 |
+
|
1628 |
+
break;
|
1629 |
+
|
1630 |
+
case 'n':
|
1631 |
+
if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {
|
1632 |
+
renderable = false;
|
1633 |
+
break;
|
1634 |
+
}
|
1635 |
+
|
1636 |
+
height -= range.y;
|
1637 |
+
top += range.y;
|
1638 |
+
|
1639 |
+
if (aspectRatio) {
|
1640 |
+
width = height * aspectRatio;
|
1641 |
+
left += range.X / 2;
|
1642 |
+
}
|
1643 |
+
|
1644 |
+
if (height < 0) {
|
1645 |
+
dragType = 's';
|
1646 |
+
height = 0;
|
1647 |
+
}
|
1648 |
+
|
1649 |
+
break;
|
1650 |
+
|
1651 |
+
case 'w':
|
1652 |
+
if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {
|
1653 |
+
renderable = false;
|
1654 |
+
break;
|
1655 |
+
}
|
1656 |
+
|
1657 |
+
width -= range.x;
|
1658 |
+
left += range.x;
|
1659 |
+
|
1660 |
+
if (aspectRatio) {
|
1661 |
+
height = width / aspectRatio;
|
1662 |
+
top += range.Y / 2;
|
1663 |
+
}
|
1664 |
+
|
1665 |
+
if (width < 0) {
|
1666 |
+
dragType = 'e';
|
1667 |
+
width = 0;
|
1668 |
+
}
|
1669 |
+
|
1670 |
+
break;
|
1671 |
+
|
1672 |
+
case 's':
|
1673 |
+
if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {
|
1674 |
+
renderable = false;
|
1675 |
+
break;
|
1676 |
+
}
|
1677 |
+
|
1678 |
+
height += range.y;
|
1679 |
+
|
1680 |
+
if (aspectRatio) {
|
1681 |
+
width = height * aspectRatio;
|
1682 |
+
left -= range.X / 2;
|
1683 |
+
}
|
1684 |
+
|
1685 |
+
if (height < 0) {
|
1686 |
+
dragType = 'n';
|
1687 |
+
height = 0;
|
1688 |
+
}
|
1689 |
+
|
1690 |
+
break;
|
1691 |
+
|
1692 |
+
case 'ne':
|
1693 |
+
if (aspectRatio) {
|
1694 |
+
if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {
|
1695 |
+
renderable = false;
|
1696 |
+
break;
|
1697 |
+
}
|
1698 |
+
|
1699 |
+
height -= range.y;
|
1700 |
+
top += range.y;
|
1701 |
+
width = height * aspectRatio;
|
1702 |
+
} else {
|
1703 |
+
if (range.x >= 0) {
|
1704 |
+
if (right < maxWidth) {
|
1705 |
+
width += range.x;
|
1706 |
+
} else if (range.y <= 0 && top <= minTop) {
|
1707 |
+
renderable = false;
|
1708 |
+
}
|
1709 |
+
} else {
|
1710 |
+
width += range.x;
|
1711 |
+
}
|
1712 |
+
|
1713 |
+
if (range.y <= 0) {
|
1714 |
+
if (top > minTop) {
|
1715 |
+
height -= range.y;
|
1716 |
+
top += range.y;
|
1717 |
+
}
|
1718 |
+
} else {
|
1719 |
+
height -= range.y;
|
1720 |
+
top += range.y;
|
1721 |
+
}
|
1722 |
+
}
|
1723 |
+
|
1724 |
+
if (width < 0 && height < 0) {
|
1725 |
+
dragType = 'sw';
|
1726 |
+
height = 0;
|
1727 |
+
width = 0;
|
1728 |
+
} else if (width < 0) {
|
1729 |
+
dragType = 'nw';
|
1730 |
+
width = 0;
|
1731 |
+
} else if (height < 0) {
|
1732 |
+
dragType = 'se';
|
1733 |
+
height = 0;
|
1734 |
+
}
|
1735 |
+
|
1736 |
+
break;
|
1737 |
+
|
1738 |
+
case 'nw':
|
1739 |
+
if (aspectRatio) {
|
1740 |
+
if (range.y <= 0 && (top <= minTop || left <= minLeft)) {
|
1741 |
+
renderable = false;
|
1742 |
+
break;
|
1743 |
+
}
|
1744 |
+
|
1745 |
+
height -= range.y;
|
1746 |
+
top += range.y;
|
1747 |
+
width = height * aspectRatio;
|
1748 |
+
left += range.X;
|
1749 |
+
} else {
|
1750 |
+
if (range.x <= 0) {
|
1751 |
+
if (left > minLeft) {
|
1752 |
+
width -= range.x;
|
1753 |
+
left += range.x;
|
1754 |
+
} else if (range.y <= 0 && top <= minTop) {
|
1755 |
+
renderable = false;
|
1756 |
+
}
|
1757 |
+
} else {
|
1758 |
+
width -= range.x;
|
1759 |
+
left += range.x;
|
1760 |
+
}
|
1761 |
+
|
1762 |
+
if (range.y <= 0) {
|
1763 |
+
if (top > minTop) {
|
1764 |
+
height -= range.y;
|
1765 |
+
top += range.y;
|
1766 |
+
}
|
1767 |
+
} else {
|
1768 |
+
height -= range.y;
|
1769 |
+
top += range.y;
|
1770 |
+
}
|
1771 |
+
}
|
1772 |
+
|
1773 |
+
if (width < 0 && height < 0) {
|
1774 |
+
dragType = 'se';
|
1775 |
+
height = 0;
|
1776 |
+
width = 0;
|
1777 |
+
} else if (width < 0) {
|
1778 |
+
dragType = 'ne';
|
1779 |
+
width = 0;
|
1780 |
+
} else if (height < 0) {
|
1781 |
+
dragType = 'sw';
|
1782 |
+
height = 0;
|
1783 |
+
}
|
1784 |
+
|
1785 |
+
break;
|
1786 |
+
|
1787 |
+
case 'sw':
|
1788 |
+
if (aspectRatio) {
|
1789 |
+
if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {
|
1790 |
+
renderable = false;
|
1791 |
+
break;
|
1792 |
+
}
|
1793 |
+
|
1794 |
+
width -= range.x;
|
1795 |
+
left += range.x;
|
1796 |
+
height = width / aspectRatio;
|
1797 |
+
} else {
|
1798 |
+
if (range.x <= 0) {
|
1799 |
+
if (left > minLeft) {
|
1800 |
+
width -= range.x;
|
1801 |
+
left += range.x;
|
1802 |
+
} else if (range.y >= 0 && bottom >= maxHeight) {
|
1803 |
+
renderable = false;
|
1804 |
+
}
|
1805 |
+
} else {
|
1806 |
+
width -= range.x;
|
1807 |
+
left += range.x;
|
1808 |
+
}
|
1809 |
+
|
1810 |
+
if (range.y >= 0) {
|
1811 |
+
if (bottom < maxHeight) {
|
1812 |
+
height += range.y;
|
1813 |
+
}
|
1814 |
+
} else {
|
1815 |
+
height += range.y;
|
1816 |
+
}
|
1817 |
+
}
|
1818 |
+
|
1819 |
+
if (width < 0 && height < 0) {
|
1820 |
+
dragType = 'ne';
|
1821 |
+
height = 0;
|
1822 |
+
width = 0;
|
1823 |
+
} else if (width < 0) {
|
1824 |
+
dragType = 'se';
|
1825 |
+
width = 0;
|
1826 |
+
} else if (height < 0) {
|
1827 |
+
dragType = 'nw';
|
1828 |
+
height = 0;
|
1829 |
+
}
|
1830 |
+
|
1831 |
+
break;
|
1832 |
+
|
1833 |
+
case 'se':
|
1834 |
+
if (aspectRatio) {
|
1835 |
+
if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {
|
1836 |
+
renderable = false;
|
1837 |
+
break;
|
1838 |
+
}
|
1839 |
+
|
1840 |
+
width += range.x;
|
1841 |
+
height = width / aspectRatio;
|
1842 |
+
} else {
|
1843 |
+
if (range.x >= 0) {
|
1844 |
+
if (right < maxWidth) {
|
1845 |
+
width += range.x;
|
1846 |
+
} else if (range.y >= 0 && bottom >= maxHeight) {
|
1847 |
+
renderable = false;
|
1848 |
+
}
|
1849 |
+
} else {
|
1850 |
+
width += range.x;
|
1851 |
+
}
|
1852 |
+
|
1853 |
+
if (range.y >= 0) {
|
1854 |
+
if (bottom < maxHeight) {
|
1855 |
+
height += range.y;
|
1856 |
+
}
|
1857 |
+
} else {
|
1858 |
+
height += range.y;
|
1859 |
+
}
|
1860 |
+
}
|
1861 |
+
|
1862 |
+
if (width < 0 && height < 0) {
|
1863 |
+
dragType = 'nw';
|
1864 |
+
height = 0;
|
1865 |
+
width = 0;
|
1866 |
+
} else if (width < 0) {
|
1867 |
+
dragType = 'sw';
|
1868 |
+
width = 0;
|
1869 |
+
} else if (height < 0) {
|
1870 |
+
dragType = 'ne';
|
1871 |
+
height = 0;
|
1872 |
+
}
|
1873 |
+
|
1874 |
+
break;
|
1875 |
+
|
1876 |
+
// Move image
|
1877 |
+
case 'move':
|
1878 |
+
canvas.left += range.x;
|
1879 |
+
canvas.top += range.y;
|
1880 |
+
this.renderCanvas(true);
|
1881 |
+
renderable = false;
|
1882 |
+
break;
|
1883 |
+
|
1884 |
+
// Scale image
|
1885 |
+
case 'zoom':
|
1886 |
+
this.zoom(function (x1, y1, x2, y2) {
|
1887 |
+
var z1 = sqrt(x1 * x1 + y1 * y1),
|
1888 |
+
z2 = sqrt(x2 * x2 + y2 * y2);
|
1889 |
+
|
1890 |
+
return (z2 - z1) / z1;
|
1891 |
+
}(
|
1892 |
+
abs(this.startX - this.startX2),
|
1893 |
+
abs(this.startY - this.startY2),
|
1894 |
+
abs(this.endX - this.endX2),
|
1895 |
+
abs(this.endY - this.endY2)
|
1896 |
+
));
|
1897 |
+
|
1898 |
+
this.startX2 = this.endX2;
|
1899 |
+
this.startY2 = this.endY2;
|
1900 |
+
renderable = false;
|
1901 |
+
break;
|
1902 |
+
|
1903 |
+
// Crop image
|
1904 |
+
case 'crop':
|
1905 |
+
if (range.x && range.y) {
|
1906 |
+
offset = this.$cropper.offset();
|
1907 |
+
left = this.startX - offset.left;
|
1908 |
+
top = this.startY - offset.top;
|
1909 |
+
width = cropBox.minWidth;
|
1910 |
+
height = cropBox.minHeight;
|
1911 |
+
|
1912 |
+
if (range.x > 0) {
|
1913 |
+
if (range.y > 0) {
|
1914 |
+
dragType = 'se';
|
1915 |
+
} else {
|
1916 |
+
dragType = 'ne';
|
1917 |
+
top -= height;
|
1918 |
+
}
|
1919 |
+
} else {
|
1920 |
+
if (range.y > 0) {
|
1921 |
+
dragType = 'sw';
|
1922 |
+
left -= width;
|
1923 |
+
} else {
|
1924 |
+
dragType = 'nw';
|
1925 |
+
left -= width;
|
1926 |
+
top -= height;
|
1927 |
+
}
|
1928 |
+
}
|
1929 |
+
|
1930 |
+
// Show the cropBox if is hidden
|
1931 |
+
if (!this.cropped) {
|
1932 |
+
this.cropped = true;
|
1933 |
+
this.$cropBox.removeClass(CLASS_HIDDEN);
|
1934 |
+
}
|
1935 |
+
}
|
1936 |
+
|
1937 |
+
break;
|
1938 |
+
|
1939 |
+
// No default
|
1940 |
+
}
|
1941 |
+
|
1942 |
+
if (renderable) {
|
1943 |
+
cropBox.width = width;
|
1944 |
+
cropBox.height = height;
|
1945 |
+
cropBox.left = left;
|
1946 |
+
cropBox.top = top;
|
1947 |
+
this.dragType = dragType;
|
1948 |
+
|
1949 |
+
this.renderCropBox();
|
1950 |
+
}
|
1951 |
+
|
1952 |
+
// Override
|
1953 |
+
this.startX = this.endX;
|
1954 |
+
this.startY = this.endY;
|
1955 |
+
};
|
1956 |
+
|
1957 |
+
$.extend(Cropper.prototype, prototype);
|
1958 |
+
|
1959 |
+
Cropper.DEFAULTS = {
|
1960 |
+
// Defines the aspect ratio of the crop box
|
1961 |
+
// Type: Number
|
1962 |
+
aspectRatio: NaN,
|
1963 |
+
|
1964 |
+
// Defines the percentage of automatic cropping area when initializes
|
1965 |
+
// Type: Number (Must large than 0 and less than 1)
|
1966 |
+
autoCropArea: 0.8, // 80%
|
1967 |
+
|
1968 |
+
// Outputs the cropping results.
|
1969 |
+
// Type: Function
|
1970 |
+
crop: null,
|
1971 |
+
|
1972 |
+
// Previous/latest crop data
|
1973 |
+
// Type: Object
|
1974 |
+
data: null,
|
1975 |
+
|
1976 |
+
// Add extra containers for previewing
|
1977 |
+
// Type: String (jQuery selector)
|
1978 |
+
preview: '',
|
1979 |
+
|
1980 |
+
// Toggles
|
1981 |
+
strict: true, // strict mode, the image cannot zoom out less than the container
|
1982 |
+
responsive: true, // Rebuild when resize the window
|
1983 |
+
checkImageOrigin: true, // Check if the target image is cross origin
|
1984 |
+
|
1985 |
+
modal: true, // Show the black modal
|
1986 |
+
guides: true, // Show the dashed lines for guiding
|
1987 |
+
highlight: true, // Show the white modal to highlight the crop box
|
1988 |
+
background: true, // Show the grid background
|
1989 |
+
|
1990 |
+
autoCrop: true, // Enable to crop the image automatically when initialize
|
1991 |
+
dragCrop: true, // Enable to create new crop box by dragging over the image
|
1992 |
+
movable: true, // Enable to move the image
|
1993 |
+
rotatable: true, // Enable to rotate the image
|
1994 |
+
zoomable: true, // Enable to zoom the image
|
1995 |
+
touchDragZoom: true, // Enable to zoom the image by wheeling mouse
|
1996 |
+
mouseWheelZoom: true, // Enable to zoom the image by dragging touch
|
1997 |
+
cropBoxMovable: true, // Enable to move the crop box
|
1998 |
+
cropBoxResizable: true, // Enable to resize the crop box
|
1999 |
+
doubleClickToggle: true, // Toggle drag mode between "crop" and "move" when double click on the cropper
|
2000 |
+
|
2001 |
+
// Dimensions
|
2002 |
+
minCanvasWidth: 0,
|
2003 |
+
minCanvasHeight: 0,
|
2004 |
+
minCropBoxWidth: 0,
|
2005 |
+
minCropBoxHeight: 0,
|
2006 |
+
minContainerWidth: 200,
|
2007 |
+
minContainerHeight: 100,
|
2008 |
+
|
2009 |
+
// Events
|
2010 |
+
build: null, // Function
|
2011 |
+
built: null, // Function
|
2012 |
+
dragstart: null, // Function
|
2013 |
+
dragmove: null, // Function
|
2014 |
+
dragend: null, // Function
|
2015 |
+
zoomin: null, // Function
|
2016 |
+
zoomout: null, // Function
|
2017 |
+
change: null // Function
|
2018 |
+
};
|
2019 |
+
|
2020 |
+
Cropper.setDefaults = function (options) {
|
2021 |
+
$.extend(Cropper.DEFAULTS, options);
|
2022 |
+
};
|
2023 |
+
|
2024 |
+
// Use the string compressor: Strmin (https://github.com/fengyuanchen/strmin)
|
2025 |
+
Cropper.TEMPLATE = (function (source, words) {
|
2026 |
+
words = words.split(',');
|
2027 |
+
return source.replace(/\d+/g, function (i) {
|
2028 |
+
return words[i];
|
2029 |
+
});
|
2030 |
+
})('<0 6="5-container"><0 6="5-canvas"></0><0 6="5-2-9"></0><0 6="5-crop-9"><1 6="5-view-9"></1><1 6="5-8 8-h"></1><1 6="5-8 8-v"></1><1 6="5-face"></1><1 6="5-7 7-e" 3-2="e"></1><1 6="5-7 7-n" 3-2="n"></1><1 6="5-7 7-w" 3-2="w"></1><1 6="5-7 7-s" 3-2="s"></1><1 6="5-4 4-e" 3-2="e"></1><1 6="5-4 4-n" 3-2="n"></1><1 6="5-4 4-w" 3-2="w"></1><1 6="5-4 4-s" 3-2="s"></1><1 6="5-4 4-ne" 3-2="ne"></1><1 6="5-4 4-nw" 3-2="nw"></1><1 6="5-4 4-sw" 3-2="sw"></1><1 6="5-4 4-se" 3-2="se"></1></0></0>', 'div,span,drag,data,point,cropper,class,line,dashed,box');
|
2031 |
+
|
2032 |
+
/* Template source:
|
2033 |
+
<div class="cropper-container">
|
2034 |
+
<div class="cropper-canvas"></div>
|
2035 |
+
<div class="cropper-drag-box"></div>
|
2036 |
+
<div class="cropper-crop-box">
|
2037 |
+
<span class="cropper-view-box"></span>
|
2038 |
+
<span class="cropper-dashed dashed-h"></span>
|
2039 |
+
<span class="cropper-dashed dashed-v"></span>
|
2040 |
+
<span class="cropper-face"></span>
|
2041 |
+
<span class="cropper-line line-e" data-drag="e"></span>
|
2042 |
+
<span class="cropper-line line-n" data-drag="n"></span>
|
2043 |
+
<span class="cropper-line line-w" data-drag="w"></span>
|
2044 |
+
<span class="cropper-line line-s" data-drag="s"></span>
|
2045 |
+
<span class="cropper-point point-e" data-drag="e"></span>
|
2046 |
+
<span class="cropper-point point-n" data-drag="n"></span>
|
2047 |
+
<span class="cropper-point point-w" data-drag="w"></span>
|
2048 |
+
<span class="cropper-point point-s" data-drag="s"></span>
|
2049 |
+
<span class="cropper-point point-ne" data-drag="ne"></span>
|
2050 |
+
<span class="cropper-point point-nw" data-drag="nw"></span>
|
2051 |
+
<span class="cropper-point point-sw" data-drag="sw"></span>
|
2052 |
+
<span class="cropper-point point-se" data-drag="se"></span>
|
2053 |
+
</div>
|
2054 |
+
</div>
|
2055 |
+
*/
|
2056 |
+
|
2057 |
+
// Save the other cropper
|
2058 |
+
Cropper.other = $.fn.cropper;
|
2059 |
+
|
2060 |
+
// Register as jQuery plugin
|
2061 |
+
$.fn.cropper = function (options) {
|
2062 |
+
var args = toArray(arguments, 1),
|
2063 |
+
result;
|
2064 |
+
|
2065 |
+
this.each(function () {
|
2066 |
+
var $this = $(this),
|
2067 |
+
data = $this.data('cropper'),
|
2068 |
+
fn;
|
2069 |
+
|
2070 |
+
if (!data) {
|
2071 |
+
$this.data('cropper', (data = new Cropper(this, options)));
|
2072 |
+
}
|
2073 |
+
|
2074 |
+
if (typeof options === 'string' && $.isFunction((fn = data[options]))) {
|
2075 |
+
result = fn.apply(data, args);
|
2076 |
+
}
|
2077 |
+
});
|
2078 |
+
|
2079 |
+
return isUndefined(result) ? this : result;
|
2080 |
+
};
|
2081 |
+
|
2082 |
+
$.fn.cropper.Constructor = Cropper;
|
2083 |
+
$.fn.cropper.setDefaults = Cropper.setDefaults;
|
2084 |
+
|
2085 |
+
// No conflict
|
2086 |
+
$.fn.cropper.noConflict = function () {
|
2087 |
+
$.fn.cropper = Cropper.other;
|
2088 |
+
return this;
|
2089 |
+
};
|
2090 |
+
|
2091 |
+
});
|
admin/js/cropper/cropper.min.css
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Cropper v0.10.0
|
3 |
+
* https://github.com/fengyuanchen/cropper
|
4 |
+
*
|
5 |
+
* Copyright (c) 2014-2015 Fengyuan Chen and other contributors
|
6 |
+
* Released under the MIT license
|
7 |
+
*
|
8 |
+
* Date: 2015-06-08T14:57:26.353Z
|
9 |
+
*/.cropper-container{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.cropper-container img{display:block;width:100%;min-width:0!important;max-width:none!important;height:100%;min-height:0!important;max-height:none!important;image-orientation:0deg!important}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-drag-box{background-color:#fff;filter:alpha(opacity=0);opacity:0}.cropper-modal{background-color:#000;filter:alpha(opacity=50);opacity:.5}.cropper-view-box{display:block;width:100%;height:100%;overflow:hidden;outline:1px solid #69f;outline-color:rgba(102,153,255,.75)}.cropper-dashed{position:absolute;display:block;filter:alpha(opacity=50);border:0 dashed #fff;opacity:.5}.cropper-dashed.dashed-h{top:33.33333333%;left:0;width:100%;height:33.33333333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.33333333%;width:33.33333333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;width:100%;height:100%;filter:alpha(opacity=10);opacity:.1}.cropper-face{top:0;left:0;background-color:#fff}.cropper-line{background-color:#69f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{width:5px;height:5px;background-color:#69f;filter:alpha(opacity=75);opacity:.75}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;width:20px;height:20px;cursor:se-resize;filter:alpha(opacity=100);opacity:1}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;width:200%;height:200%;content:" ";background-color:#69f;filter:alpha(opacity=0);opacity:0}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{width:5px;height:5px;filter:alpha(opacity=75);opacity:.75}}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-invisible{filter:alpha(opacity=0);opacity:0}.cropper-hide{position:fixed;top:0;left:0;z-index:-1;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;filter:alpha(opacity=0);opacity:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}
|
admin/js/cropper/cropper.min.js
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Cropper v0.10.0
|
3 |
+
* https://github.com/fengyuanchen/cropper
|
4 |
+
*
|
5 |
+
* Copyright (c) 2014-2015 Fengyuan Chen and other contributors
|
6 |
+
* Released under the MIT license
|
7 |
+
*
|
8 |
+
* Date: 2015-06-08T14:57:26.353Z
|
9 |
+
*/
|
10 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){"use strict";function b(a){return"number"==typeof a&&!isNaN(a)}function c(a){return"undefined"==typeof a}function d(a,c){var d=[];return b(c)&&d.push(c),d.slice.apply(a,d)}function e(a,b){var c=d(arguments,2);return function(){return a.apply(b,c.concat(d(arguments)))}}function f(a){var b=a.match(/^(https?:)\/\/([^\:\/\?#]+):?(\d*)/i);return b&&(b[1]!==n.protocol||b[2]!==n.hostname||b[3]!==n.port)}function g(a){var b="timestamp="+(new Date).getTime();return a+(-1===a.indexOf("?")?"?":"&")+b}function h(a){return a?"rotate("+a+"deg)":"none"}function i(a,b){var c,d,e=R(a.degree)%180,f=(e>90?180-e:e)*Math.PI/180,g=S(f),h=T(f),i=a.width,j=a.height,k=a.aspectRatio;return b?(c=i/(h+g/k),d=c/k):(c=i*h+j*g,d=i*g+j*h),{width:c,height:d}}function j(b,c){var d=a("<canvas>")[0],e=d.getContext("2d"),f=c.naturalWidth,g=c.naturalHeight,h=c.rotate,j=i({width:f,height:g,degree:h});return h?(d.width=j.width,d.height=j.height,e.save(),e.translate(j.width/2,j.height/2),e.rotate(h*Math.PI/180),e.drawImage(b,-f/2,-g/2,f,g),e.restore()):(d.width=f,d.height=g,e.drawImage(b,0,0,f,g)),d}function k(b,c){this.$element=a(b),this.options=a.extend({},k.DEFAULTS,a.isPlainObject(c)&&c),this.ready=!1,this.built=!1,this.rotated=!1,this.cropped=!1,this.disabled=!1,this.canvas=null,this.cropBox=null,this.load()}var l=a(window),m=a(document),n=window.location,o=".cropper",p="preview"+o,q=/^(e|n|w|s|ne|nw|sw|se|all|crop|move|zoom)$/,r="cropper-modal",s="cropper-hide",t="cropper-hidden",u="cropper-invisible",v="cropper-move",w="cropper-crop",x="cropper-disabled",y="cropper-bg",z="mousedown touchstart",A="mousemove touchmove",B="mouseup mouseleave touchend touchleave touchcancel",C="wheel mousewheel DOMMouseScroll",D="dblclick",E="resize"+o,F="build"+o,G="built"+o,H="dragstart"+o,I="dragmove"+o,J="dragend"+o,K="zoomin"+o,L="zoomout"+o,M="change"+o,N=a.isFunction(a("<canvas>")[0].getContext),O=Math.sqrt,P=Math.min,Q=Math.max,R=Math.abs,S=Math.sin,T=Math.cos,U=parseFloat,V={};V.load=function(b){var c,d,e,h,i=this.options,j=this.$element;if(!b)if(j.is("img")){if(!j.attr("src"))return;b=j.prop("src")}else j.is("canvas")&&N&&(b=j[0].toDataURL());b&&(e=a.Event(F),j.one(F,i.build).trigger(e),e.isDefaultPrevented()||(i.checkImageOrigin&&f(b)&&(c=' crossOrigin="anonymous"',j.prop("crossOrigin")||(d=g(b))),this.$clone=h=a("<img"+(c||"")+' src="'+(d||b)+'">'),h.one("load",a.proxy(function(){var a=h[0],c=a.naturalWidth||a.width,d=a.naturalHeight||a.height;this.image={naturalWidth:c,naturalHeight:d,aspectRatio:c/d,rotate:0},this.url=b,this.ready=!0,this.build()},this)).one("error",function(){h.remove()}),h.addClass(s).insertAfter(j)))},V.build=function(){var b,c,d,e=this.$element,f=this.$clone,g=this.options;this.ready&&(this.built&&this.unbuild(),this.$cropper=b=a(k.TEMPLATE),e.addClass(t),f.removeClass(s),this.$container=e.parent().append(b),this.$canvas=b.find(".cropper-canvas").append(f),this.$dragBox=b.find(".cropper-drag-box"),this.$cropBox=c=b.find(".cropper-crop-box"),this.$viewBox=b.find(".cropper-view-box"),this.$face=d=c.find(".cropper-face"),this.addListeners(),this.initPreview(),g.aspectRatio=U(g.aspectRatio)||NaN,g.autoCrop?(this.cropped=!0,g.modal&&this.$dragBox.addClass(r)):c.addClass(t),g.background&&b.addClass(y),g.highlight||d.addClass(u),g.guides||c.find(".cropper-dashed").addClass(t),g.cropBoxMovable&&d.addClass(v).data("drag","all"),g.cropBoxResizable||c.find(".cropper-line, .cropper-point").addClass(t),this.setDragMode(g.dragCrop?"crop":g.movable?"move":"none"),this.built=!0,this.render(),this.setData(g.data),e.one(G,g.built).trigger(G))},V.unbuild=function(){this.built&&(this.built=!1,this.initialImage=null,this.initialCanvas=null,this.initialCropBox=null,this.container=null,this.canvas=null,this.cropBox=null,this.removeListeners(),this.resetPreview(),this.$preview=null,this.$viewBox=null,this.$cropBox=null,this.$dragBox=null,this.$canvas=null,this.$container=null,this.$cropper.remove(),this.$cropper=null)},a.extend(V,{render:function(){this.initContainer(),this.initCanvas(),this.initCropBox(),this.renderCanvas(),this.cropped&&this.renderCropBox()},initContainer:function(){var a=this.$element,b=this.$container,c=this.$cropper,d=this.options;c.addClass(t),a.removeClass(t),c.css(this.container={width:Q(b.width(),U(d.minContainerWidth)||200),height:Q(b.height(),U(d.minContainerHeight)||100)}),a.addClass(t),c.removeClass(t)},initCanvas:function(){var b=this.container,c=b.width,d=b.height,e=this.image,f=e.aspectRatio,g={aspectRatio:f,width:c,height:d};d*f>c?g.height=c/f:g.width=d*f,g.oldLeft=g.left=(c-g.width)/2,g.oldTop=g.top=(d-g.height)/2,this.canvas=g,this.limitCanvas(!0,!0),this.initialImage=a.extend({},e),this.initialCanvas=a.extend({},g)},limitCanvas:function(b,c){var d,e,f=this.options,g=f.strict,h=this.container,i=h.width,j=h.height,k=this.canvas,l=k.aspectRatio,m=this.cropBox,n=this.cropped&&m,o=this.initialCanvas||k,p=o.width,q=o.height;b&&(d=U(f.minCanvasWidth)||0,e=U(f.minCanvasHeight)||0,d?(g&&(d=Q(n?m.width:p,d)),e=d/l):e?(g&&(e=Q(n?m.height:q,e)),d=e*l):g&&(n?(d=m.width,e=m.height,e*l>d?d=e*l:e=d/l):(d=p,e=q)),a.extend(k,{minWidth:d,minHeight:e,maxWidth:1/0,maxHeight:1/0})),c&&(g?n?(k.minLeft=P(m.left,m.left+m.width-k.width),k.minTop=P(m.top,m.top+m.height-k.height),k.maxLeft=m.left,k.maxTop=m.top):(k.minLeft=P(0,i-k.width),k.minTop=P(0,j-k.height),k.maxLeft=Q(0,i-k.width),k.maxTop=Q(0,j-k.height)):(k.minLeft=-k.width,k.minTop=-k.height,k.maxLeft=i,k.maxTop=j))},renderCanvas:function(a){var b,c,d=this.options,e=this.canvas,f=this.image;this.rotated&&(this.rotated=!1,c=i({width:f.width,height:f.height,degree:f.rotate}),b=c.width/c.height,b!==e.aspectRatio&&(e.left-=(c.width-e.width)/2,e.top-=(c.height-e.height)/2,e.width=c.width,e.height=c.height,e.aspectRatio=b,this.limitCanvas(!0,!1))),(e.width>e.maxWidth||e.width<e.minWidth)&&(e.left=e.oldLeft),(e.height>e.maxHeight||e.height<e.minHeight)&&(e.top=e.oldTop),e.width=P(Q(e.width,e.minWidth),e.maxWidth),e.height=P(Q(e.height,e.minHeight),e.maxHeight),this.limitCanvas(!1,!0),e.oldLeft=e.left=P(Q(e.left,e.minLeft),e.maxLeft),e.oldTop=e.top=P(Q(e.top,e.minTop),e.maxTop),this.$canvas.css({width:e.width,height:e.height,left:e.left,top:e.top}),this.renderImage(),this.cropped&&d.strict&&this.limitCropBox(!0,!0),a&&this.output()},renderImage:function(){var b,c=this.canvas,d=this.image;d.rotate&&(b=i({width:c.width,height:c.height,degree:d.rotate,aspectRatio:d.aspectRatio},!0)),a.extend(d,b?{width:b.width,height:b.height,left:(c.width-b.width)/2,top:(c.height-b.height)/2}:{width:c.width,height:c.height,left:0,top:0}),this.$clone.css({width:d.width,height:d.height,marginLeft:d.left,marginTop:d.top,transform:h(d.rotate)})},initCropBox:function(){var b=this.options,c=this.canvas,d=b.aspectRatio,e=U(b.autoCropArea)||.8,f={width:c.width,height:c.height};d&&(c.height*d>c.width?f.height=f.width/d:f.width=f.height*d),this.cropBox=f,this.limitCropBox(!0,!0),f.width=P(Q(f.width,f.minWidth),f.maxWidth),f.height=P(Q(f.height,f.minHeight),f.maxHeight),f.width=Q(f.minWidth,f.width*e),f.height=Q(f.minHeight,f.height*e),f.oldLeft=f.left=c.left+(c.width-f.width)/2,f.oldTop=f.top=c.top+(c.height-f.height)/2,this.initialCropBox=a.extend({},f)},limitCropBox:function(a,b){var c,d,e=this.options,f=e.strict,g=this.container,h=g.width,i=g.height,j=this.canvas,k=this.cropBox,l=e.aspectRatio;a&&(c=U(e.minCropBoxWidth)||0,d=U(e.minCropBoxHeight)||0,k.minWidth=P(h,c),k.minHeight=P(i,d),k.maxWidth=P(h,f?j.width:h),k.maxHeight=P(i,f?j.height:i),l&&(k.maxHeight*l>k.maxWidth?(k.minHeight=k.minWidth/l,k.maxHeight=k.maxWidth/l):(k.minWidth=k.minHeight*l,k.maxWidth=k.maxHeight*l)),k.minWidth=P(k.maxWidth,k.minWidth),k.minHeight=P(k.maxHeight,k.minHeight)),b&&(f?(k.minLeft=Q(0,j.left),k.minTop=Q(0,j.top),k.maxLeft=P(h,j.left+j.width)-k.width,k.maxTop=P(i,j.top+j.height)-k.height):(k.minLeft=0,k.minTop=0,k.maxLeft=h-k.width,k.maxTop=i-k.height))},renderCropBox:function(){var a=this.options,b=this.container,c=b.width,d=b.height,e=this.cropBox;(e.width>e.maxWidth||e.width<e.minWidth)&&(e.left=e.oldLeft),(e.height>e.maxHeight||e.height<e.minHeight)&&(e.top=e.oldTop),e.width=P(Q(e.width,e.minWidth),e.maxWidth),e.height=P(Q(e.height,e.minHeight),e.maxHeight),this.limitCropBox(!1,!0),e.oldLeft=e.left=P(Q(e.left,e.minLeft),e.maxLeft),e.oldTop=e.top=P(Q(e.top,e.minTop),e.maxTop),a.movable&&a.cropBoxMovable&&this.$face.data("drag",e.width===c&&e.height===d?"move":"all"),this.$cropBox.css({width:e.width,height:e.height,left:e.left,top:e.top}),this.cropped&&a.strict&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){var a=this.options,b=this.$element;this.preview(),a.crop&&a.crop.call(b,this.getData()),b.trigger(M)}}),V.initPreview=function(){var b=this.url;this.$preview=a(this.options.preview),this.$viewBox.html('<img src="'+b+'">'),this.$preview.each(function(){var c=a(this);c.data(p,{width:c.width(),height:c.height(),original:c.html()}).html('<img src="'+b+'" style="display:block;width:100%;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation: 0deg!important">')})},V.resetPreview=function(){this.$preview.each(function(){var b=a(this);b.html(b.data(p).original).removeData(p)})},V.preview=function(){var b=this.image,c=this.canvas,d=this.cropBox,e=b.width,f=b.height,g=d.left-c.left-b.left,i=d.top-c.top-b.top,j=b.rotate;this.cropped&&!this.disabled&&(this.$viewBox.find("img").css({width:e,height:f,marginLeft:-g,marginTop:-i,transform:h(j)}),this.$preview.each(function(){var b=a(this),c=b.data(p),k=c.width/d.width,l=c.width,m=d.height*k;m>c.height&&(k=c.height/d.height,l=d.width*k,m=c.height),b.width(l).height(m).find("img").css({width:e*k,height:f*k,marginLeft:-g*k,marginTop:-i*k,transform:h(j)})}))},V.addListeners=function(){var b=this.options,c=this.$element,d=this.$cropper;a.isFunction(b.dragstart)&&c.on(H,b.dragstart),a.isFunction(b.dragmove)&&c.on(I,b.dragmove),a.isFunction(b.dragend)&&c.on(J,b.dragend),a.isFunction(b.zoomin)&&c.on(K,b.zoomin),a.isFunction(b.zoomout)&&c.on(L,b.zoomout),a.isFunction(b.change)&&c.on(M,b.change),d.on(z,a.proxy(this.dragstart,this)),b.zoomable&&b.mouseWheelZoom&&d.on(C,a.proxy(this.wheel,this)),b.doubleClickToggle&&d.on(D,a.proxy(this.dblclick,this)),m.on(A,this._dragmove=e(this.dragmove,this)).on(B,this._dragend=e(this.dragend,this)),b.responsive&&l.on(E,this._resize=e(this.resize,this))},V.removeListeners=function(){var b=this.options,c=this.$element,d=this.$cropper;a.isFunction(b.dragstart)&&c.off(H,b.dragstart),a.isFunction(b.dragmove)&&c.off(I,b.dragmove),a.isFunction(b.dragend)&&c.off(J,b.dragend),a.isFunction(b.zoomin)&&c.off(K,b.zoomin),a.isFunction(b.zoomout)&&c.off(L,b.zoomout),a.isFunction(b.change)&&c.off(M,b.change),d.off(z,this.dragstart),b.zoomable&&b.mouseWheelZoom&&d.off(C,this.wheel),b.doubleClickToggle&&d.off(D,this.dblclick),m.off(A,this._dragmove).off(B,this._dragend),b.responsive&&l.off(E,this._resize)},a.extend(V,{resize:function(){var b,c,d,e=this.$container,f=this.container;!this.disabled&&f&&(d=e.width()/f.width,(1!==d||e.height()!==f.height)&&(b=this.getCanvasData(),c=this.getCropBoxData(),this.render(),this.setCanvasData(a.each(b,function(a,c){b[a]=c*d})),this.setCropBoxData(a.each(c,function(a,b){c[a]=b*d}))))},dblclick:function(){this.disabled||this.setDragMode(this.$dragBox.hasClass(w)?"move":"crop")},wheel:function(a){var b=a.originalEvent,c=1;this.disabled||(a.preventDefault(),b.deltaY?c=b.deltaY>0?1:-1:b.wheelDelta?c=-b.wheelDelta/120:b.detail&&(c=b.detail>0?1:-1),this.zoom(.1*-c))},dragstart:function(b){var c,d,e,f=this.options,g=b.originalEvent,h=g&&g.touches,i=b;if(!this.disabled){if(h){if(e=h.length,e>1){if(!f.zoomable||!f.touchDragZoom||2!==e)return;i=h[1],this.startX2=i.pageX,this.startY2=i.pageY,c="zoom"}i=h[0]}if(c=c||a(i.target).data("drag"),q.test(c)){if(b.preventDefault(),d=a.Event(H,{originalEvent:g,dragType:c}),this.$element.trigger(d),d.isDefaultPrevented())return;this.dragType=c,this.cropping=!1,this.startX=i.pageX,this.startY=i.pageY,"crop"===c&&(this.cropping=!0,this.$dragBox.addClass(r))}}},dragmove:function(b){var c,d,e=this.options,f=b.originalEvent,g=f&&f.touches,h=b,i=this.dragType;if(!this.disabled){if(g){if(d=g.length,d>1){if(!e.zoomable||!e.touchDragZoom||2!==d)return;h=g[1],this.endX2=h.pageX,this.endY2=h.pageY}h=g[0]}if(i){if(b.preventDefault(),c=a.Event(I,{originalEvent:f,dragType:i}),this.$element.trigger(c),c.isDefaultPrevented())return;this.endX=h.pageX,this.endY=h.pageY,this.change(h.shiftKey)}}},dragend:function(b){var c,d=this.dragType;if(!this.disabled&&d){if(b.preventDefault(),c=a.Event(J,{originalEvent:b.originalEvent,dragType:d}),this.$element.trigger(c),c.isDefaultPrevented())return;this.cropping&&(this.cropping=!1,this.$dragBox.toggleClass(r,this.cropped&&this.options.modal)),this.dragType=""}}}),a.extend(V,{crop:function(){this.built&&!this.disabled&&(this.cropped||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&this.$dragBox.addClass(r),this.$cropBox.removeClass(t)),this.setCropBoxData(this.initialCropBox))},reset:function(){this.built&&!this.disabled&&(this.image=a.extend({},this.initialImage),this.canvas=a.extend({},this.initialCanvas),this.cropBox=a.extend({},this.initialCropBox),this.renderCanvas(),this.cropped&&this.renderCropBox())},clear:function(){this.cropped&&!this.disabled&&(a.extend(this.cropBox,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(),this.renderCanvas(),this.$dragBox.removeClass(r),this.$cropBox.addClass(t))},destroy:function(){var a=this.$element;this.ready?(this.unbuild(),a.removeClass(t)):this.$clone&&this.$clone.remove(),a.removeData("cropper")},replace:function(a){!this.disabled&&a&&(this.options.data=null,this.load(a))},enable:function(){this.built&&(this.disabled=!1,this.$cropper.removeClass(x))},disable:function(){this.built&&(this.disabled=!0,this.$cropper.addClass(x))},move:function(a,c){var d=this.canvas;this.built&&!this.disabled&&this.options.movable&&b(a)&&b(c)&&(d.left+=a,d.top+=c,this.renderCanvas(!0))},zoom:function(b){var c,d,e,f=this.canvas;if(b=U(b),b&&this.built&&!this.disabled&&this.options.zoomable){if(c=a.Event(b>0?K:L),this.$element.trigger(c),c.isDefaultPrevented())return;b=-1>=b?1/(1-b):1>=b?1+b:b,d=f.width*b,e=f.height*b,f.left-=(d-f.width)/2,f.top-=(e-f.height)/2,f.width=d,f.height=e,this.renderCanvas(!0),this.setDragMode("move")}},rotate:function(a){var b=this.image;a=U(a),a&&this.built&&!this.disabled&&this.options.rotatable&&(b.rotate=(b.rotate+a)%360,this.rotated=!0,this.renderCanvas(!0))},getData:function(b){var c,d,e=this.cropBox,f=this.canvas,g=this.image;return this.built&&this.cropped?(d={x:e.left-f.left,y:e.top-f.top,width:e.width,height:e.height},c=g.width/g.naturalWidth,a.each(d,function(a,e){e/=c,d[a]=b?Math.round(e):e})):d={x:0,y:0,width:0,height:0},d.rotate=this.ready?g.rotate:0,d},setData:function(c){var d,e=this.image,f=this.canvas,g={};this.built&&!this.disabled&&a.isPlainObject(c)&&(b(c.rotate)&&c.rotate!==e.rotate&&this.options.rotatable&&(e.rotate=c.rotate,this.rotated=!0,this.renderCanvas(!0)),d=e.width/e.naturalWidth,b(c.x)&&(g.left=c.x*d+f.left),b(c.y)&&(g.top=c.y*d+f.top),b(c.width)&&(g.width=c.width*d),b(c.height)&&(g.height=c.height*d),this.setCropBoxData(g))},getContainerData:function(){return this.built?this.container:{}},getImageData:function(){return this.ready?this.image:{}},getCanvasData:function(){var a,b=this.canvas;return this.built&&(a={left:b.left,top:b.top,width:b.width,height:b.height}),a||{}},setCanvasData:function(c){var d=this.canvas,e=d.aspectRatio;this.built&&!this.disabled&&a.isPlainObject(c)&&(b(c.left)&&(d.left=c.left),b(c.top)&&(d.top=c.top),b(c.width)?(d.width=c.width,d.height=c.width/e):b(c.height)&&(d.height=c.height,d.width=c.height*e),this.renderCanvas(!0))},getCropBoxData:function(){var a,b=this.cropBox;return this.built&&this.cropped&&(a={left:b.left,top:b.top,width:b.width,height:b.height}),a||{}},setCropBoxData:function(c){var d=this.cropBox,e=this.options.aspectRatio;this.built&&this.cropped&&!this.disabled&&a.isPlainObject(c)&&(b(c.left)&&(d.left=c.left),b(c.top)&&(d.top=c.top),b(c.width)&&(d.width=c.width),b(c.height)&&(d.height=c.height),e&&(b(c.width)?d.height=d.width/e:b(c.height)&&(d.width=d.height*e)),this.renderCropBox())},getCroppedCanvas:function(b){var c,d,e,f,g,h,i,k,l,m,n;if(this.built&&this.cropped&&N)return a.isPlainObject(b)||(b={}),n=this.getData(),c=n.width,d=n.height,k=c/d,a.isPlainObject(b)&&(g=b.width,h=b.height,g?(h=g/k,i=g/c):h&&(g=h*k,i=h/d)),e=g||c,f=h||d,l=a("<canvas>")[0],l.width=e,l.height=f,m=l.getContext("2d"),b.fillColor&&(m.fillStyle=b.fillColor,m.fillRect(0,0,e,f)),m.drawImage.apply(m,function(){var a,b,e,f,g,h,k=j(this.$clone[0],this.image),l=k.width,m=k.height,o=[k],p=n.x,q=n.y;return-c>=p||p>l?p=a=e=g=0:0>=p?(e=-p,p=0,a=g=P(l,c+p)):l>=p&&(e=0,a=g=P(c,l-p)),0>=a||-d>=q||q>m?q=b=f=h=0:0>=q?(f=-q,q=0,b=h=P(m,d+q)):m>=q&&(f=0,b=h=P(d,m-q)),o.push(p,q,a,b),i&&(e*=i,f*=i,g*=i,h*=i),g>0&&h>0&&o.push(e,f,g,h),o}.call(this)),l},setAspectRatio:function(a){var b=this.options;this.disabled||c(a)||(b.aspectRatio=U(a)||NaN,this.built&&(this.initCropBox(),this.cropped&&this.renderCropBox()))},setDragMode:function(a){var b,c,d=this.options;this.ready&&!this.disabled&&(b=d.dragCrop&&"crop"===a,c=d.movable&&"move"===a,a=b||c?a:"none",this.$dragBox.data("drag",a).toggleClass(w,b).toggleClass(v,c),d.cropBoxMovable||this.$face.data("drag",a).toggleClass(w,b).toggleClass(v,c))}}),V.change=function(a){var b,c=this.dragType,d=this.options,e=this.canvas,f=this.container,g=this.cropBox,h=g.width,i=g.height,j=g.left,k=g.top,l=j+h,m=k+i,n=0,o=0,p=f.width,q=f.height,r=!0,s=d.aspectRatio,u={x:this.endX-this.startX,y:this.endY-this.startY};switch(!s&&a&&(s=h&&i?h/i:1),d.strict&&(n=g.minLeft,o=g.minTop,p=n+P(f.width,e.width),q=o+P(f.height,e.height)),s&&(u.X=u.y*s,u.Y=u.x/s),c){case"all":j+=u.x,k+=u.y;break;case"e":if(u.x>=0&&(l>=p||s&&(o>=k||m>=q))){r=!1;break}h+=u.x,s&&(i=h/s,k-=u.Y/2),0>h&&(c="w",h=0);break;case"n":if(u.y<=0&&(o>=k||s&&(n>=j||l>=p))){r=!1;break}i-=u.y,k+=u.y,s&&(h=i*s,j+=u.X/2),0>i&&(c="s",i=0);break;case"w":if(u.x<=0&&(n>=j||s&&(o>=k||m>=q))){r=!1;break}h-=u.x,j+=u.x,s&&(i=h/s,k+=u.Y/2),0>h&&(c="e",h=0);break;case"s":if(u.y>=0&&(m>=q||s&&(n>=j||l>=p))){r=!1;break}i+=u.y,s&&(h=i*s,j-=u.X/2),0>i&&(c="n",i=0);break;case"ne":if(s){if(u.y<=0&&(o>=k||l>=p)){r=!1;break}i-=u.y,k+=u.y,h=i*s}else u.x>=0?p>l?h+=u.x:u.y<=0&&o>=k&&(r=!1):h+=u.x,u.y<=0?k>o&&(i-=u.y,k+=u.y):(i-=u.y,k+=u.y);0>h&&0>i?(c="sw",i=0,h=0):0>h?(c="nw",h=0):0>i&&(c="se",i=0);break;case"nw":if(s){if(u.y<=0&&(o>=k||n>=j)){r=!1;break}i-=u.y,k+=u.y,h=i*s,j+=u.X}else u.x<=0?j>n?(h-=u.x,j+=u.x):u.y<=0&&o>=k&&(r=!1):(h-=u.x,j+=u.x),u.y<=0?k>o&&(i-=u.y,k+=u.y):(i-=u.y,k+=u.y);0>h&&0>i?(c="se",i=0,h=0):0>h?(c="ne",h=0):0>i&&(c="sw",i=0);break;case"sw":if(s){if(u.x<=0&&(n>=j||m>=q)){r=!1;break}h-=u.x,j+=u.x,i=h/s}else u.x<=0?j>n?(h-=u.x,j+=u.x):u.y>=0&&m>=q&&(r=!1):(h-=u.x,j+=u.x),u.y>=0?q>m&&(i+=u.y):i+=u.y;0>h&&0>i?(c="ne",i=0,h=0):0>h?(c="se",h=0):0>i&&(c="nw",i=0);break;case"se":if(s){if(u.x>=0&&(l>=p||m>=q)){r=!1;break}h+=u.x,i=h/s}else u.x>=0?p>l?h+=u.x:u.y>=0&&m>=q&&(r=!1):h+=u.x,u.y>=0?q>m&&(i+=u.y):i+=u.y;0>h&&0>i?(c="nw",i=0,h=0):0>h?(c="sw",h=0):0>i&&(c="ne",i=0);break;case"move":e.left+=u.x,e.top+=u.y,this.renderCanvas(!0),r=!1;break;case"zoom":this.zoom(function(a,b,c,d){var e=O(a*a+b*b),f=O(c*c+d*d);return(f-e)/e}(R(this.startX-this.startX2),R(this.startY-this.startY2),R(this.endX-this.endX2),R(this.endY-this.endY2))),this.startX2=this.endX2,this.startY2=this.endY2,r=!1;break;case"crop":u.x&&u.y&&(b=this.$cropper.offset(),j=this.startX-b.left,k=this.startY-b.top,h=g.minWidth,i=g.minHeight,u.x>0?u.y>0?c="se":(c="ne",k-=i):u.y>0?(c="sw",j-=h):(c="nw",j-=h,k-=i),this.cropped||(this.cropped=!0,this.$cropBox.removeClass(t)))}r&&(g.width=h,g.height=i,g.left=j,g.top=k,this.dragType=c,this.renderCropBox()),this.startX=this.endX,this.startY=this.endY},a.extend(k.prototype,V),k.DEFAULTS={aspectRatio:NaN,autoCropArea:.8,crop:null,data:null,preview:"",strict:!0,responsive:!0,checkImageOrigin:!0,modal:!0,guides:!0,highlight:!0,background:!0,autoCrop:!0,dragCrop:!0,movable:!0,rotatable:!0,zoomable:!0,touchDragZoom:!0,mouseWheelZoom:!0,cropBoxMovable:!0,cropBoxResizable:!0,doubleClickToggle:!0,minCanvasWidth:0,minCanvasHeight:0,minCropBoxWidth:0,minCropBoxHeight:0,minContainerWidth:200,minContainerHeight:100,build:null,built:null,dragstart:null,dragmove:null,dragend:null,zoomin:null,zoomout:null,change:null},k.setDefaults=function(b){a.extend(k.DEFAULTS,b)},k.TEMPLATE=function(a,b){return b=b.split(","),a.replace(/\d+/g,function(a){return b[a]})}('<0 6="5-container"><0 6="5-canvas"></0><0 6="5-2-9"></0><0 6="5-crop-9"><1 6="5-view-9"></1><1 6="5-8 8-h"></1><1 6="5-8 8-v"></1><1 6="5-face"></1><1 6="5-7 7-e" 3-2="e"></1><1 6="5-7 7-n" 3-2="n"></1><1 6="5-7 7-w" 3-2="w"></1><1 6="5-7 7-s" 3-2="s"></1><1 6="5-4 4-e" 3-2="e"></1><1 6="5-4 4-n" 3-2="n"></1><1 6="5-4 4-w" 3-2="w"></1><1 6="5-4 4-s" 3-2="s"></1><1 6="5-4 4-ne" 3-2="ne"></1><1 6="5-4 4-nw" 3-2="nw"></1><1 6="5-4 4-sw" 3-2="sw"></1><1 6="5-4 4-se" 3-2="se"></1></0></0>',"div,span,drag,data,point,cropper,class,line,dashed,box"),k.other=a.fn.cropper,a.fn.cropper=function(b){var e,f=d(arguments,1);return this.each(function(){var c,d=a(this),g=d.data("cropper");g||d.data("cropper",g=new k(this,b)),"string"==typeof b&&a.isFunction(c=g[b])&&(e=c.apply(g,f))}),c(e)?this:e},a.fn.cropper.Constructor=k,a.fn.cropper.setDefaults=k.setDefaults,a.fn.cropper.noConflict=function(){return a.fn.cropper=k.other,this}});
|
admin/js/jquery.ui.autocomplete.js
DELETED
@@ -1,612 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery UI Autocomplete 1.8.15
|
3 |
-
*
|
4 |
-
* Copyright 2011, 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/Autocomplete
|
9 |
-
*
|
10 |
-
* Depends:
|
11 |
-
* jquery.ui.core.js
|
12 |
-
* jquery.ui.widget.js
|
13 |
-
* jquery.ui.position.js
|
14 |
-
*/
|
15 |
-
(function( $, undefined ) {
|
16 |
-
|
17 |
-
// used to prevent race conditions with remote data sources
|
18 |
-
var requestIndex = 0;
|
19 |
-
|
20 |
-
$.widget( "ui.autocomplete", {
|
21 |
-
options: {
|
22 |
-
appendTo: "body",
|
23 |
-
autoFocus: false,
|
24 |
-
delay: 300,
|
25 |
-
minLength: 1,
|
26 |
-
position: {
|
27 |
-
my: "left top",
|
28 |
-
at: "left bottom",
|
29 |
-
collision: "none"
|
30 |
-
},
|
31 |
-
source: null
|
32 |
-
},
|
33 |
-
|
34 |
-
pending: 0,
|
35 |
-
|
36 |
-
_create: function() {
|
37 |
-
var self = this,
|
38 |
-
doc = this.element[ 0 ].ownerDocument,
|
39 |
-
suppressKeyPress;
|
40 |
-
|
41 |
-
this.element
|
42 |
-
.addClass( "ui-autocomplete-input" )
|
43 |
-
.attr( "autocomplete", "off" )
|
44 |
-
// TODO verify these actually work as intended
|
45 |
-
.attr({
|
46 |
-
role: "textbox",
|
47 |
-
"aria-autocomplete": "list",
|
48 |
-
"aria-haspopup": "true"
|
49 |
-
})
|
50 |
-
.bind( "keydown.autocomplete", function( event ) {
|
51 |
-
if ( self.options.disabled || self.element.propAttr( "readOnly" ) ) {
|
52 |
-
return;
|
53 |
-
}
|
54 |
-
|
55 |
-
suppressKeyPress = false;
|
56 |
-
var keyCode = $.ui.keyCode;
|
57 |
-
switch( event.keyCode ) {
|
58 |
-
case keyCode.PAGE_UP:
|
59 |
-
self._move( "previousPage", event );
|
60 |
-
break;
|
61 |
-
case keyCode.PAGE_DOWN:
|
62 |
-
self._move( "nextPage", event );
|
63 |
-
break;
|
64 |
-
case keyCode.UP:
|
65 |
-
self._move( "previous", event );
|
66 |
-
// prevent moving cursor to beginning of text field in some browsers
|
67 |
-
event.preventDefault();
|
68 |
-
break;
|
69 |
-
case keyCode.DOWN:
|
70 |
-
self._move( "next", event );
|
71 |
-
// prevent moving cursor to end of text field in some browsers
|
72 |
-
event.preventDefault();
|
73 |
-
break;
|
74 |
-
case keyCode.ENTER:
|
75 |
-
case keyCode.NUMPAD_ENTER:
|
76 |
-
// when menu is open and has focus
|
77 |
-
if ( self.menu.active ) {
|
78 |
-
// #6055 - Opera still allows the keypress to occur
|
79 |
-
// which causes forms to submit
|
80 |
-
suppressKeyPress = true;
|
81 |
-
event.preventDefault();
|
82 |
-
}
|
83 |
-
//passthrough - ENTER and TAB both select the current element
|
84 |
-
case keyCode.TAB:
|
85 |
-
if ( !self.menu.active ) {
|
86 |
-
return;
|
87 |
-
}
|
88 |
-
self.menu.select( event );
|
89 |
-
break;
|
90 |
-
case keyCode.ESCAPE:
|
91 |
-
self.element.val( self.term );
|
92 |
-
self.close( event );
|
93 |
-
break;
|
94 |
-
default:
|
95 |
-
// keypress is triggered before the input value is changed
|
96 |
-
clearTimeout( self.searching );
|
97 |
-
self.searching = setTimeout(function() {
|
98 |
-
// only search if the value has changed
|
99 |
-
if ( self.term != self.element.val() ) {
|
100 |
-
self.selectedItem = null;
|
101 |
-
self.search( null, event );
|
102 |
-
}
|
103 |
-
}, self.options.delay );
|
104 |
-
break;
|
105 |
-
}
|
106 |
-
})
|
107 |
-
.bind( "keypress.autocomplete", function( event ) {
|
108 |
-
if ( suppressKeyPress ) {
|
109 |
-
suppressKeyPress = false;
|
110 |
-
event.preventDefault();
|
111 |
-
}
|
112 |
-
})
|
113 |
-
.bind( "focus.autocomplete", function() {
|
114 |
-
if ( self.options.disabled ) {
|
115 |
-
return;
|
116 |
-
}
|
117 |
-
|
118 |
-
self.selectedItem = null;
|
119 |
-
self.previous = self.element.val();
|
120 |
-
})
|
121 |
-
.bind( "blur.autocomplete", function( event ) {
|
122 |
-
if ( self.options.disabled ) {
|
123 |
-
return;
|
124 |
-
}
|
125 |
-
|
126 |
-
clearTimeout( self.searching );
|
127 |
-
// clicks on the menu (or a button to trigger a search) will cause a blur event
|
128 |
-
self.closing = setTimeout(function() {
|
129 |
-
self.close( event );
|
130 |
-
self._change( event );
|
131 |
-
}, 150 );
|
132 |
-
});
|
133 |
-
this._initSource();
|
134 |
-
this.response = function() {
|
135 |
-
return self._response.apply( self, arguments );
|
136 |
-
};
|
137 |
-
this.menu = $( "<ul></ul>" )
|
138 |
-
.addClass( "ui-autocomplete" )
|
139 |
-
.appendTo( $( this.options.appendTo || "body", doc )[0] )
|
140 |
-
// prevent the close-on-blur in case of a "slow" click on the menu (long mousedown)
|
141 |
-
.mousedown(function( event ) {
|
142 |
-
// clicking on the scrollbar causes focus to shift to the body
|
143 |
-
// but we can't detect a mouseup or a click immediately afterward
|
144 |
-
// so we have to track the next mousedown and close the menu if
|
145 |
-
// the user clicks somewhere outside of the autocomplete
|
146 |
-
var menuElement = self.menu.element[ 0 ];
|
147 |
-
if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
|
148 |
-
setTimeout(function() {
|
149 |
-
$( document ).one( 'mousedown', function( event ) {
|
150 |
-
if ( event.target !== self.element[ 0 ] &&
|
151 |
-
event.target !== menuElement &&
|
152 |
-
!$.ui.contains( menuElement, event.target ) ) {
|
153 |
-
self.close();
|
154 |
-
}
|
155 |
-
});
|
156 |
-
}, 1 );
|
157 |
-
}
|
158 |
-
|
159 |
-
// use another timeout to make sure the blur-event-handler on the input was already triggered
|
160 |
-
setTimeout(function() {
|
161 |
-
clearTimeout( self.closing );
|
162 |
-
}, 13);
|
163 |
-
})
|
164 |
-
.menu({
|
165 |
-
focus: function( event, ui ) {
|
166 |
-
var item = ui.item.data( "item.autocomplete" );
|
167 |
-
if ( false !== self._trigger( "focus", event, { item: item } ) ) {
|
168 |
-
// use value to match what will end up in the input, if it was a key event
|
169 |
-
if ( /^key/.test(event.originalEvent.type) ) {
|
170 |
-
self.element.val( item.value );
|
171 |
-
}
|
172 |
-
}
|
173 |
-
},
|
174 |
-
selected: function( event, ui ) {
|
175 |
-
var item = ui.item.data( "item.autocomplete" ),
|
176 |
-
previous = self.previous;
|
177 |
-
|
178 |
-
// only trigger when focus was lost (click on menu)
|
179 |
-
if ( self.element[0] !== doc.activeElement ) {
|
180 |
-
self.element.focus();
|
181 |
-
self.previous = previous;
|
182 |
-
// #6109 - IE triggers two focus events and the second
|
183 |
-
// is asynchronous, so we need to reset the previous
|
184 |
-
// term synchronously and asynchronously :-(
|
185 |
-
setTimeout(function() {
|
186 |
-
self.previous = previous;
|
187 |
-
self.selectedItem = item;
|
188 |
-
}, 1);
|
189 |
-
}
|
190 |
-
|
191 |
-
if ( false !== self._trigger( "select", event, { item: item } ) ) {
|
192 |
-
self.element.val( item.value );
|
193 |
-
}
|
194 |
-
// reset the term after the select event
|
195 |
-
// this allows custom select handling to work properly
|
196 |
-
self.term = self.element.val();
|
197 |
-
|
198 |
-
self.close( event );
|
199 |
-
self.selectedItem = item;
|
200 |
-
},
|
201 |
-
blur: function( event, ui ) {
|
202 |
-
// don't set the value of the text field if it's already correct
|
203 |
-
// this prevents moving the cursor unnecessarily
|
204 |
-
if ( self.menu.element.is(":visible") &&
|
205 |
-
( self.element.val() !== self.term ) ) {
|
206 |
-
self.element.val( self.term );
|
207 |
-
}
|
208 |
-
}
|
209 |
-
})
|
210 |
-
.zIndex( this.element.zIndex() + 1 )
|
211 |
-
// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
|
212 |
-
.css({ top: 0, left: 0 })
|
213 |
-
.hide()
|
214 |
-
.data( "menu" );
|
215 |
-
if ( $.fn.bgiframe ) {
|
216 |
-
this.menu.element.bgiframe();
|
217 |
-
}
|
218 |
-
},
|
219 |
-
|
220 |
-
destroy: function() {
|
221 |
-
this.element
|
222 |
-
.removeClass( "ui-autocomplete-input" )
|
223 |
-
.removeAttr( "autocomplete" )
|
224 |
-
.removeAttr( "role" )
|
225 |
-
.removeAttr( "aria-autocomplete" )
|
226 |
-
.removeAttr( "aria-haspopup" );
|
227 |
-
this.menu.element.remove();
|
228 |
-
$.Widget.prototype.destroy.call( this );
|
229 |
-
},
|
230 |
-
|
231 |
-
_setOption: function( key, value ) {
|
232 |
-
$.Widget.prototype._setOption.apply( this, arguments );
|
233 |
-
if ( key === "source" ) {
|
234 |
-
this._initSource();
|
235 |
-
}
|
236 |
-
if ( key === "appendTo" ) {
|
237 |
-
this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )
|
238 |
-
}
|
239 |
-
if ( key === "disabled" && value && this.xhr ) {
|
240 |
-
this.xhr.abort();
|
241 |
-
}
|
242 |
-
},
|
243 |
-
|
244 |
-
_initSource: function() {
|
245 |
-
var self = this,
|
246 |
-
array,
|
247 |
-
url;
|
248 |
-
if ( $.isArray(this.options.source) ) {
|
249 |
-
array = this.options.source;
|
250 |
-
this.source = function( request, response ) {
|
251 |
-
response( $.ui.autocomplete.filter(array, request.term) );
|
252 |
-
};
|
253 |
-
} else if ( typeof this.options.source === "string" ) {
|
254 |
-
url = this.options.source;
|
255 |
-
this.source = function( request, response ) {
|
256 |
-
if ( self.xhr ) {
|
257 |
-
self.xhr.abort();
|
258 |
-
}
|
259 |
-
self.xhr = $.ajax({
|
260 |
-
url: url,
|
261 |
-
data: request,
|
262 |
-
dataType: "json",
|
263 |
-
autocompleteRequest: ++requestIndex,
|
264 |
-
success: function( data, status ) {
|
265 |
-
if ( this.autocompleteRequest === requestIndex ) {
|
266 |
-
response( data );
|
267 |
-
}
|
268 |
-
},
|
269 |
-
error: function() {
|
270 |
-
if ( this.autocompleteRequest === requestIndex ) {
|
271 |
-
response( [] );
|
272 |
-
}
|
273 |
-
}
|
274 |
-
});
|
275 |
-
};
|
276 |
-
} else {
|
277 |
-
this.source = this.options.source;
|
278 |
-
}
|
279 |
-
},
|
280 |
-
|
281 |
-
search: function( value, event ) {
|
282 |
-
value = value != null ? value : this.element.val();
|
283 |
-
|
284 |
-
// always save the actual value, not the one passed as an argument
|
285 |
-
this.term = this.element.val();
|
286 |
-
|
287 |
-
if ( value.length < this.options.minLength ) {
|
288 |
-
return this.close( event );
|
289 |
-
}
|
290 |
-
|
291 |
-
clearTimeout( this.closing );
|
292 |
-
if ( this._trigger( "search", event ) === false ) {
|
293 |
-
return;
|
294 |
-
}
|
295 |
-
|
296 |
-
return this._search( value );
|
297 |
-
},
|
298 |
-
|
299 |
-
_search: function( value ) {
|
300 |
-
this.pending++;
|
301 |
-
this.element.addClass( "ui-autocomplete-loading" );
|
302 |
-
|
303 |
-
this.source( { term: value }, this.response );
|
304 |
-
},
|
305 |
-
|
306 |
-
_response: function( content ) {
|
307 |
-
if ( !this.options.disabled && content && content.length ) {
|
308 |
-
content = this._normalize( content );
|
309 |
-
this._suggest( content );
|
310 |
-
this._trigger( "open" );
|
311 |
-
} else {
|
312 |
-
this.close();
|
313 |
-
}
|
314 |
-
this.pending--;
|
315 |
-
if ( !this.pending ) {
|
316 |
-
this.element.removeClass( "ui-autocomplete-loading" );
|
317 |
-
}
|
318 |
-
},
|
319 |
-
|
320 |
-
close: function( event ) {
|
321 |
-
clearTimeout( this.closing );
|
322 |
-
if ( this.menu.element.is(":visible") ) {
|
323 |
-
this.menu.element.hide();
|
324 |
-
this.menu.deactivate();
|
325 |
-
this._trigger( "close", event );
|
326 |
-
}
|
327 |
-
},
|
328 |
-
|
329 |
-
_change: function( event ) {
|
330 |
-
if ( this.previous !== this.element.val() ) {
|
331 |
-
this._trigger( "change", event, { item: this.selectedItem } );
|
332 |
-
}
|
333 |
-
},
|
334 |
-
|
335 |
-
_normalize: function( items ) {
|
336 |
-
// assume all items have the right format when the first item is complete
|
337 |
-
if ( items.length && items[0].label && items[0].value ) {
|
338 |
-
return items;
|
339 |
-
}
|
340 |
-
return $.map( items, function(item) {
|
341 |
-
if ( typeof item === "string" ) {
|
342 |
-
return {
|
343 |
-
label: item,
|
344 |
-
value: item
|
345 |
-
};
|
346 |
-
}
|
347 |
-
return $.extend({
|
348 |
-
label: item.label || item.value,
|
349 |
-
value: item.value || item.label
|
350 |
-
}, item );
|
351 |
-
});
|
352 |
-
},
|
353 |
-
|
354 |
-
_suggest: function( items ) {
|
355 |
-
var ul = this.menu.element
|
356 |
-
.empty()
|
357 |
-
.zIndex( this.element.zIndex() + 1 );
|
358 |
-
this._renderMenu( ul, items );
|
359 |
-
// TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate
|
360 |
-
this.menu.deactivate();
|
361 |
-
this.menu.refresh();
|
362 |
-
|
363 |
-
// size and position menu
|
364 |
-
ul.show();
|
365 |
-
this._resizeMenu();
|
366 |
-
ul.position( $.extend({
|
367 |
-
of: this.element
|
368 |
-
}, this.options.position ));
|
369 |
-
|
370 |
-
if ( this.options.autoFocus ) {
|
371 |
-
this.menu.next( new $.Event("mouseover") );
|
372 |
-
}
|
373 |
-
},
|
374 |
-
|
375 |
-
_resizeMenu: function() {
|
376 |
-
var ul = this.menu.element;
|
377 |
-
ul.outerWidth( Math.max(
|
378 |
-
ul.width( "" ).outerWidth(),
|
379 |
-
this.element.outerWidth()
|
380 |
-
) );
|
381 |
-
},
|
382 |
-
|
383 |
-
_renderMenu: function( ul, items ) {
|
384 |
-
var self = this;
|
385 |
-
$.each( items, function( index, item ) {
|
386 |
-
self._renderItem( ul, item );
|
387 |
-
});
|
388 |
-
},
|
389 |
-
|
390 |
-
_renderItem: function( ul, item) {
|
391 |
-
return $( "<li></li>" )
|
392 |
-
.data( "item.autocomplete", item )
|
393 |
-
.append( $( "<a></a>" ).text( item.label ) )
|
394 |
-
.appendTo( ul );
|
395 |
-
},
|
396 |
-
|
397 |
-
_move: function( direction, event ) {
|
398 |
-
if ( !this.menu.element.is(":visible") ) {
|
399 |
-
this.search( null, event );
|
400 |
-
return;
|
401 |
-
}
|
402 |
-
if ( this.menu.first() && /^previous/.test(direction) ||
|
403 |
-
this.menu.last() && /^next/.test(direction) ) {
|
404 |
-
this.element.val( this.term );
|
405 |
-
this.menu.deactivate();
|
406 |
-
return;
|
407 |
-
}
|
408 |
-
this.menu[ direction ]( event );
|
409 |
-
},
|
410 |
-
|
411 |
-
widget: function() {
|
412 |
-
return this.menu.element;
|
413 |
-
}
|
414 |
-
});
|
415 |
-
|
416 |
-
$.extend( $.ui.autocomplete, {
|
417 |
-
escapeRegex: function( value ) {
|
418 |
-
return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
|
419 |
-
},
|
420 |
-
filter: function(array, term) {
|
421 |
-
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
|
422 |
-
return $.grep( array, function(value) {
|
423 |
-
return matcher.test( value.label || value.value || value );
|
424 |
-
});
|
425 |
-
}
|
426 |
-
});
|
427 |
-
|
428 |
-
}( jQuery ));
|
429 |
-
|
430 |
-
/*
|
431 |
-
* jQuery UI Menu (not officially released)
|
432 |
-
*
|
433 |
-
* This widget isn't yet finished and the API is subject to change. We plan to finish
|
434 |
-
* it for the next release. You're welcome to give it a try anyway and give us feedback,
|
435 |
-
* as long as you're okay with migrating your code later on. We can help with that, too.
|
436 |
-
*
|
437 |
-
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
438 |
-
* Dual licensed under the MIT or GPL Version 2 licenses.
|
439 |
-
* http://jquery.org/license
|
440 |
-
*
|
441 |
-
* http://docs.jquery.com/UI/Menu
|
442 |
-
*
|
443 |
-
* Depends:
|
444 |
-
* jquery.ui.core.js
|
445 |
-
* jquery.ui.widget.js
|
446 |
-
*/
|
447 |
-
(function($) {
|
448 |
-
|
449 |
-
$.widget("ui.menu", {
|
450 |
-
_create: function() {
|
451 |
-
var self = this;
|
452 |
-
this.element
|
453 |
-
.addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
|
454 |
-
.attr({
|
455 |
-
role: "listbox",
|
456 |
-
"aria-activedescendant": "ui-active-menuitem"
|
457 |
-
})
|
458 |
-
.click(function( event ) {
|
459 |
-
if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
|
460 |
-
return;
|
461 |
-
}
|
462 |
-
// temporary
|
463 |
-
event.preventDefault();
|
464 |
-
self.select( event );
|
465 |
-
});
|
466 |
-
this.refresh();
|
467 |
-
},
|
468 |
-
|
469 |
-
refresh: function() {
|
470 |
-
var self = this;
|
471 |
-
|
472 |
-
// don't refresh list items that are already adapted
|
473 |
-
var items = this.element.children("li:not(.ui-menu-item):has(a)")
|
474 |
-
.addClass("ui-menu-item")
|
475 |
-
.attr("role", "menuitem");
|
476 |
-
|
477 |
-
items.children("a")
|
478 |
-
.addClass("ui-corner-all")
|
479 |
-
.attr("tabindex", -1)
|
480 |
-
// mouseenter doesn't work with event delegation
|
481 |
-
.mouseenter(function( event ) {
|
482 |
-
self.activate( event, $(this).parent() );
|
483 |
-
})
|
484 |
-
.mouseleave(function() {
|
485 |
-
self.deactivate();
|
486 |
-
});
|
487 |
-
},
|
488 |
-
|
489 |
-
activate: function( event, item ) {
|
490 |
-
this.deactivate();
|
491 |
-
if (this.hasScroll()) {
|
492 |
-
var offset = item.offset().top - this.element.offset().top,
|
493 |
-
scroll = this.element.scrollTop(),
|
494 |
-
elementHeight = this.element.height();
|
495 |
-
if (offset < 0) {
|
496 |
-
this.element.scrollTop( scroll + offset);
|
497 |
-
} else if (offset >= elementHeight) {
|
498 |
-
this.element.scrollTop( scroll + offset - elementHeight + item.height());
|
499 |
-
}
|
500 |
-
}
|
501 |
-
this.active = item.eq(0)
|
502 |
-
.children("a")
|
503 |
-
.addClass("ui-state-hover")
|
504 |
-
.attr("id", "ui-active-menuitem")
|
505 |
-
.end();
|
506 |
-
this._trigger("focus", event, { item: item });
|
507 |
-
},
|
508 |
-
|
509 |
-
deactivate: function() {
|
510 |
-
if (!this.active) { return; }
|
511 |
-
|
512 |
-
this.active.children("a")
|
513 |
-
.removeClass("ui-state-hover")
|
514 |
-
.removeAttr("id");
|
515 |
-
this._trigger("blur");
|
516 |
-
this.active = null;
|
517 |
-
},
|
518 |
-
|
519 |
-
next: function(event) {
|
520 |
-
this.move("next", ".ui-menu-item:first", event);
|
521 |
-
},
|
522 |
-
|
523 |
-
previous: function(event) {
|
524 |
-
this.move("prev", ".ui-menu-item:last", event);
|
525 |
-
},
|
526 |
-
|
527 |
-
first: function() {
|
528 |
-
return this.active && !this.active.prevAll(".ui-menu-item").length;
|
529 |
-
},
|
530 |
-
|
531 |
-
last: function() {
|
532 |
-
return this.active && !this.active.nextAll(".ui-menu-item").length;
|
533 |
-
},
|
534 |
-
|
535 |
-
move: function(direction, edge, event) {
|
536 |
-
if (!this.active) {
|
537 |
-
this.activate(event, this.element.children(edge));
|
538 |
-
return;
|
539 |
-
}
|
540 |
-
var next = this.active[direction + "All"](".ui-menu-item").eq(0);
|
541 |
-
if (next.length) {
|
542 |
-
this.activate(event, next);
|
543 |
-
} else {
|
544 |
-
this.activate(event, this.element.children(edge));
|
545 |
-
}
|
546 |
-
},
|
547 |
-
|
548 |
-
// TODO merge with previousPage
|
549 |
-
nextPage: function(event) {
|
550 |
-
if (this.hasScroll()) {
|
551 |
-
// TODO merge with no-scroll-else
|
552 |
-
if (!this.active || this.last()) {
|
553 |
-
this.activate(event, this.element.children(".ui-menu-item:first"));
|
554 |
-
return;
|
555 |
-
}
|
556 |
-
var base = this.active.offset().top,
|
557 |
-
height = this.element.height(),
|
558 |
-
result = this.element.children(".ui-menu-item").filter(function() {
|
559 |
-
var close = $(this).offset().top - base - height + $(this).height();
|
560 |
-
// TODO improve approximation
|
561 |
-
return close < 10 && close > -10;
|
562 |
-
});
|
563 |
-
|
564 |
-
// TODO try to catch this earlier when scrollTop indicates the last page anyway
|
565 |
-
if (!result.length) {
|
566 |
-
result = this.element.children(".ui-menu-item:last");
|
567 |
-
}
|
568 |
-
this.activate(event, result);
|
569 |
-
} else {
|
570 |
-
this.activate(event, this.element.children(".ui-menu-item")
|
571 |
-
.filter(!this.active || this.last() ? ":first" : ":last"));
|
572 |
-
}
|
573 |
-
},
|
574 |
-
|
575 |
-
// TODO merge with nextPage
|
576 |
-
previousPage: function(event) {
|
577 |
-
if (this.hasScroll()) {
|
578 |
-
// TODO merge with no-scroll-else
|
579 |
-
if (!this.active || this.first()) {
|
580 |
-
this.activate(event, this.element.children(".ui-menu-item:last"));
|
581 |
-
return;
|
582 |
-
}
|
583 |
-
|
584 |
-
var base = this.active.offset().top,
|
585 |
-
height = this.element.height();
|
586 |
-
result = this.element.children(".ui-menu-item").filter(function() {
|
587 |
-
var close = $(this).offset().top - base + height - $(this).height();
|
588 |
-
// TODO improve approximation
|
589 |
-
return close < 10 && close > -10;
|
590 |
-
});
|
591 |
-
|
592 |
-
// TODO try to catch this earlier when scrollTop indicates the last page anyway
|
593 |
-
if (!result.length) {
|
594 |
-
result = this.element.children(".ui-menu-item:first");
|
595 |
-
}
|
596 |
-
this.activate(event, result);
|
597 |
-
} else {
|
598 |
-
this.activate(event, this.element.children(".ui-menu-item")
|
599 |
-
.filter(!this.active || this.first() ? ":last" : ":first"));
|
600 |
-
}
|
601 |
-
},
|
602 |
-
|
603 |
-
hasScroll: function() {
|
604 |
-
return this.element.height() < this.element[ $.fn.prop ? "prop" : "attr" ]("scrollHeight");
|
605 |
-
},
|
606 |
-
|
607 |
-
select: function( event ) {
|
608 |
-
this._trigger("selected", event, { item: this.active });
|
609 |
-
}
|
610 |
-
});
|
611 |
-
|
612 |
-
}(jQuery));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/jquery.ui.autocomplete.min.js
DELETED
@@ -1,32 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* jQuery UI Autocomplete 1.8.15
|
3 |
-
*
|
4 |
-
* Copyright 2011, 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/Autocomplete
|
9 |
-
*
|
10 |
-
* Depends:
|
11 |
-
* jquery.ui.core.js
|
12 |
-
* jquery.ui.widget.js
|
13 |
-
* jquery.ui.position.js
|
14 |
-
*/
|
15 |
-
(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.propAttr("readOnly"))){g=
|
16 |
-
false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=
|
17 |
-
a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};
|
18 |
-
this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&
|
19 |
-
a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");
|
20 |
-
d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&
|
21 |
-
b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=
|
22 |
-
this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();
|
23 |
-
this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||
|
24 |
-
b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;
|
25 |
-
d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
|
26 |
-
"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
|
27 |
-
(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
|
28 |
-
-1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
|
29 |
-
this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,
|
30 |
-
this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
|
31 |
-
this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||
|
32 |
-
this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[d.fn.prop?"prop":"attr"]("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/ngg.ajax.js
CHANGED
@@ -3,116 +3,128 @@
|
|
3 |
* Version: 1.4.1
|
4 |
* Author : Alex Rabe
|
5 |
*
|
6 |
-
*/
|
|
|
|
|
|
|
7 |
(function($) {
|
8 |
-
nggAjax = {
|
9 |
-
settings: {
|
10 |
-
url: nggAjaxSetup.url,
|
11 |
-
type: "POST",
|
12 |
-
action: nggAjaxSetup.action,
|
13 |
-
operation : nggAjaxSetup.operation,
|
14 |
-
nonce: nggAjaxSetup.nonce,
|
15 |
-
ids: nggAjaxSetup.ids,
|
16 |
-
permission: nggAjaxSetup.permission,
|
17 |
-
error: nggAjaxSetup.error,
|
18 |
-
failure: nggAjaxSetup.failure,
|
19 |
-
timeout: 10000
|
20 |
-
},
|
21 |
-
|
22 |
-
run: function( index ) {
|
23 |
-
s = this.settings;
|
24 |
-
var req = $.ajax({
|
25 |
-
type: "POST",
|
26 |
-
url: s.url,
|
27 |
-
data:"action=" + s.action + "&operation=" + s.operation + "&_wpnonce=" + s.nonce + "&image=" + s.ids[index],
|
28 |
-
cache: false,
|
29 |
-
timeout: 10000,
|
30 |
-
success: function(msg){
|
31 |
-
switch ( parseInt(msg) ) {
|
32 |
-
case -1:
|
33 |
-
nggProgressBar.addNote( nggAjax.settings.permission );
|
34 |
-
break;
|
35 |
-
case 0:
|
36 |
-
nggProgressBar.addNote( nggAjax.settings.error );
|
37 |
-
break;
|
38 |
-
case 1:
|
39 |
-
// show nothing, its better
|
40 |
-
break;
|
41 |
-
default:
|
42 |
-
// Return the message
|
43 |
-
nggProgressBar.addNote( "<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg );
|
44 |
-
break;
|
45 |
-
}
|
46 |
|
47 |
-
|
48 |
-
error: function (msg) {
|
49 |
-
nggProgressBar.addNote( "<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg.responseText );
|
50 |
-
},
|
51 |
-
complete: function () {
|
52 |
-
index++;
|
53 |
-
nggProgressBar.increase( index );
|
54 |
-
// parse the whole array
|
55 |
-
if (index < nggAjax.settings.ids.length)
|
56 |
-
nggAjax.run( index );
|
57 |
-
else
|
58 |
-
nggProgressBar.finished();
|
59 |
-
}
|
60 |
-
});
|
61 |
-
},
|
62 |
|
63 |
-
|
64 |
-
|
65 |
-
var req = $.ajax({
|
66 |
-
type: "POST",
|
67 |
-
url: s.url,
|
68 |
-
data:"action=" + s.action + "&operation=" + s.operation + "&_wpnonce=" + s.nonce + "&image=" + s.ids[index],
|
69 |
-
dataType: "json",
|
70 |
-
cache: false,
|
71 |
-
timeout: 10000,
|
72 |
-
success: function(msg){
|
73 |
-
// join the array
|
74 |
-
imageIDS = imageIDS.concat(msg);
|
75 |
-
},
|
76 |
-
error: function (msg) {
|
77 |
-
nggProgressBar.addNote( "<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg.responseText );
|
78 |
-
},
|
79 |
-
complete: function () {
|
80 |
-
index++;
|
81 |
-
nggProgressBar.increase( index );
|
82 |
-
// parse the whole array
|
83 |
-
if (index < nggAjax.settings.ids.length)
|
84 |
-
nggAjax.readIDs( index );
|
85 |
-
else {
|
86 |
-
// and now run the image operation
|
87 |
-
index = 0;
|
88 |
-
nggAjax.settings.ids = imageIDS;
|
89 |
-
nggAjax.settings.operation = nextOperation;
|
90 |
-
nggAjax.settings.maxStep = imageIDS.length;
|
91 |
-
nggProgressBar.init( nggAjax.settings );
|
92 |
-
nggAjax.run( index );
|
93 |
-
}
|
94 |
-
}
|
95 |
-
});
|
96 |
-
},
|
97 |
-
|
98 |
-
init: function( s ) {
|
99 |
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
}(jQuery));
|
3 |
* Version: 1.4.1
|
4 |
* Author : Alex Rabe
|
5 |
*
|
6 |
+
*/
|
7 |
+
/**
|
8 |
+
* The NextCellent AJAX plugin.
|
9 |
+
*/
|
10 |
(function($) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
+
nggAjax = {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
+
run: function(index) {
|
15 |
+
s = this.settings;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
+
var req = $.ajax({
|
18 |
+
type: "POST",
|
19 |
+
url: s.url,
|
20 |
+
data: "action=" + s.action + "&operation=" + s.operation + "&_wpnonce=" + s.nonce + "&image=" + s.ids[index],
|
21 |
+
cache: false,
|
22 |
+
timeout: 10000,
|
23 |
+
success: function(msg) {
|
24 |
+
switch (parseInt(msg)) {
|
25 |
+
case -1:
|
26 |
+
nggProgressBar.addNote(nggAjax.settings.permission);
|
27 |
+
break;
|
28 |
+
case 0:
|
29 |
+
nggProgressBar.addNote(nggAjax.settings.error);
|
30 |
+
break;
|
31 |
+
case 1:
|
32 |
+
// show nothing, its better
|
33 |
+
break;
|
34 |
+
default:
|
35 |
+
// Return the message
|
36 |
+
nggProgressBar.addNote("<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg);
|
37 |
+
break;
|
38 |
+
}
|
39 |
+
|
40 |
+
},
|
41 |
+
error: function(msg) {
|
42 |
+
nggProgressBar.addNote("<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg.responseText);
|
43 |
+
},
|
44 |
+
complete: function() {
|
45 |
+
index++;
|
46 |
+
nggProgressBar.increase(index);
|
47 |
+
// parse the whole array
|
48 |
+
if (index < nggAjax.settings.ids.length)
|
49 |
+
nggAjax.run(index);
|
50 |
+
else
|
51 |
+
nggProgressBar.finished();
|
52 |
+
}
|
53 |
+
});
|
54 |
+
},
|
55 |
+
|
56 |
+
readIDs: function(index, operation, next) {
|
57 |
+
s = this.settings;
|
58 |
+
var req = $.ajax({
|
59 |
+
type: "POST",
|
60 |
+
url: s.url,
|
61 |
+
data: "action=" + s.action + "&operation=" + operation + "&_wpnonce=" + s.nonce + "&image=" + s.ids[index],
|
62 |
+
dataType: "json",
|
63 |
+
cache: false,
|
64 |
+
timeout: 10000,
|
65 |
+
success: function(msg) {
|
66 |
+
// join the array
|
67 |
+
imageIDS = imageIDS.concat(msg);
|
68 |
+
},
|
69 |
+
error: function(msg) {
|
70 |
+
nggProgressBar.addNote("<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg.responseText);
|
71 |
+
},
|
72 |
+
complete: function() {
|
73 |
+
index++;
|
74 |
+
nggProgressBar.increase(index);
|
75 |
+
// parse the whole array
|
76 |
+
if (index < nggAjax.settings.ids.length)
|
77 |
+
nggAjax.readIDs(index);
|
78 |
+
else {
|
79 |
+
// and now run the image operation
|
80 |
+
index = 0;
|
81 |
+
nggAjax.settings.ids = imageIDS;
|
82 |
+
nggAjax.settings.operation = next;
|
83 |
+
nggAjax.settings.maxStep = imageIDS.length;
|
84 |
+
nggProgressBar.init(nggAjax.settings);
|
85 |
+
nggAjax.run(index);
|
86 |
+
}
|
87 |
+
}
|
88 |
+
});
|
89 |
+
},
|
90 |
+
|
91 |
+
init: function(s) {
|
92 |
+
|
93 |
+
var index = 0;
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Get the settings. Some of the settings are loaded with wp_localize_script(), in admin.php.
|
97 |
+
*/
|
98 |
+
this.settings = $.extend({
|
99 |
+
url: nggAjaxSetup.url,
|
100 |
+
type: "POST",
|
101 |
+
action: nggAjaxSetup.action,
|
102 |
+
operation: "",
|
103 |
+
nonce: nggAjaxSetup.nonce,
|
104 |
+
ids: [],
|
105 |
+
permission: nggAjaxSetup.permission,
|
106 |
+
error: nggAjaxSetup.error,
|
107 |
+
failure: nggAjaxSetup.failure,
|
108 |
+
timeout: 10000,
|
109 |
+
mode: "image"
|
110 |
+
}, this.settings, s);
|
111 |
+
|
112 |
+
/**
|
113 |
+
* If the mode is gallery, we must first get the image ID's from the galleries.
|
114 |
+
*
|
115 |
+
* The option with 'gallery_' is deprecated. Please use the 'mode' setting.
|
116 |
+
*/
|
117 |
+
if (this.settings.operation.substring(0, 8) === 'gallery_') {
|
118 |
+
//first run, get all the ids
|
119 |
+
imageIDS = [];
|
120 |
+
this.readIDs(index, 'get_image_ids', this.settings.operation.substring(8));
|
121 |
+
} else if(this.settings.mode === "gallery") {
|
122 |
+
//first run, get all the ids
|
123 |
+
imageIDS = [];
|
124 |
+
this.readIDs(index, 'get_image_ids', this.settings.operation);
|
125 |
+
} else {
|
126 |
+
this.run(index);
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
}(jQuery));
|
admin/js/ngg_social_media.js
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
|
2 |
-
(function(d, s, id) {
|
3 |
-
var js, fjs = d.getElementsByTagName(s)[0];
|
4 |
-
if (d.getElementById(id)) return;
|
5 |
-
js = d.createElement(s); js.id = id;
|
6 |
-
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
|
7 |
-
fjs.parentNode.insertBefore(js, fjs);
|
8 |
-
}(document, 'script', 'facebook-jssdk'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/js/plupload.handler.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/**
|
2 |
-
* NextGEN Gallery - plupload Handlers
|
3 |
*
|
4 |
* Built on top of the plupload library
|
5 |
* http://www.plupload.com version 1.4.2
|
@@ -11,92 +11,82 @@
|
|
11 |
function initUploader() {
|
12 |
|
13 |
jQuery(document).ready(function($){
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
});
|
24 |
-
}*/
|
25 |
-
|
26 |
-
if ( uploader.features.dragdrop )
|
27 |
-
jQuery('.ngg-dragdrop-info').show();
|
28 |
-
|
29 |
-
jQuery("#uploadimage_btn").after("<input class='button-primary' type='button' name='uploadimage' id='plupload_btn' value='" + uploader.settings.i18n.upload + "' />")
|
30 |
-
.remove();
|
31 |
-
jQuery("#plupload_btn").click( function() {
|
32 |
//check if a gallery is selected
|
33 |
-
if (
|
34 |
-
uploader.start();
|
35 |
} else {
|
36 |
event.preventDefault();
|
37 |
alert( pluploadL10n.no_gallery );
|
38 |
}
|
39 |
});
|
40 |
-
});
|
41 |
}
|
42 |
|
43 |
// called when a file is added
|
44 |
function fileQueued( fileObj ) {
|
45 |
-
|
46 |
-
|
47 |
filesize = " (" + plupload.formatSize(fileObj.size) + ") ";
|
48 |
jQuery("#txtFileName").val(fileObj.name);
|
49 |
jQuery("#uploadQueue")
|
50 |
.append("<div id='" + fileObj.id + "' class='nggUploadItem'> [<a href=''>" + uploader.settings.i18n.remove + "</a>] " + fileObj.name + filesize + "</div>")
|
51 |
.children("div:last").slideDown("slow")
|
52 |
.end();
|
53 |
-
|
54 |
-
|
55 |
uploader.removeFile(fileObj);
|
56 |
e.preventDefault();
|
57 |
-
});
|
58 |
}
|
59 |
|
60 |
// called before the uploads start
|
61 |
function uploadStart(fileObj) {
|
62 |
-
|
63 |
-
|
64 |
debug('[gallery selected]');
|
65 |
-
// update the selected gallery in the post_params
|
66 |
-
uploader.settings.multipart_params.galleryselect = jQuery('#galleryselect').val();
|
67 |
return false;
|
68 |
}
|
69 |
|
70 |
// called during the upload progress
|
71 |
function uploadProgress(fileObj, bytesDone, bytesTotal) {
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
jQuery("#progressbar
|
76 |
}
|
77 |
|
78 |
// called when all files are uploaded
|
79 |
function uploadComplete(fileObj) {
|
80 |
-
|
81 |
|
82 |
// Upload the next file until queue is empty
|
83 |
if ( uploader.total.queued == 0) {
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
}
|
89 |
}
|
90 |
|
91 |
// called when the file is uploaded
|
92 |
function uploadSuccess(fileObj, serverData) {
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
jQuery("#" + fileObj.id).hide("slow");
|
99 |
-
jQuery("#" + fileObj.id).remove();
|
100 |
}
|
101 |
|
102 |
function cancelUpload() {
|
@@ -108,7 +98,7 @@ function cancelUpload() {
|
|
108 |
}
|
109 |
|
110 |
function uploadError(fileObj, errorCode, message) {
|
111 |
-
|
112 |
error_name = fileObj.name + ': ';
|
113 |
switch (errorCode) {
|
114 |
case plupload.FAILED:
|
@@ -139,7 +129,7 @@ function uploadError(fileObj, errorCode, message) {
|
|
139 |
message = pluploadL10n.http_error;
|
140 |
break;
|
141 |
case plupload.INIT_ERROR:
|
142 |
-
|
143 |
//switchUploader(0);
|
144 |
//jQuery('.upload-html-bypass').hide();
|
145 |
break;
|
@@ -154,37 +144,36 @@ function uploadError(fileObj, errorCode, message) {
|
|
154 |
}
|
155 |
//nggProgressBar.addNote("<strong>ERROR " + error_name + " </strong>: " + message);
|
156 |
jQuery('#plupload-upload-ui').prepend('<div id="file-' + fileObj.id + '" class="error"><p style="margin: auto;">' + error_name + message + '</p></div>');
|
157 |
-
jQuery("#" + fileObj.id).hide("slow");
|
158 |
-
jQuery("#" + fileObj.id).remove();
|
159 |
}
|
160 |
|
161 |
function debug() {
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
};
|
189 |
|
190 |
function debugConsole(message) {
|
@@ -215,4 +204,4 @@ function debugConsole(message) {
|
|
215 |
} catch (ex) {
|
216 |
alert("Exception: " + ex.name + " Message: " + ex.message);
|
217 |
}
|
218 |
-
};
|
1 |
/**
|
2 |
+
* NextGEN Gallery - plupload Handlers
|
3 |
*
|
4 |
* Built on top of the plupload library
|
5 |
* http://www.plupload.com version 1.4.2
|
11 |
function initUploader() {
|
12 |
|
13 |
jQuery(document).ready(function($){
|
14 |
+
|
15 |
+
if ( uploader.features.dragdrop ) {
|
16 |
+
$('.ngg-dragdrop-info').show();
|
17 |
+
}
|
18 |
+
|
19 |
+
$("#uploadimage_btn")
|
20 |
+
.after("<input class='button-primary' type='button' name='uploadimage' id='plupload_btn' value='" + uploader.settings.i18n.upload + "' />")
|
21 |
+
.remove();
|
22 |
+
$("#plupload_btn").click( function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
//check if a gallery is selected
|
24 |
+
if ($('#galleryselect').val() > "0") {
|
25 |
+
uploader.start();
|
26 |
} else {
|
27 |
event.preventDefault();
|
28 |
alert( pluploadL10n.no_gallery );
|
29 |
}
|
30 |
});
|
31 |
+
});
|
32 |
}
|
33 |
|
34 |
// called when a file is added
|
35 |
function fileQueued( fileObj ) {
|
36 |
+
debug('[FilesAdded]', fileObj);
|
37 |
+
|
38 |
filesize = " (" + plupload.formatSize(fileObj.size) + ") ";
|
39 |
jQuery("#txtFileName").val(fileObj.name);
|
40 |
jQuery("#uploadQueue")
|
41 |
.append("<div id='" + fileObj.id + "' class='nggUploadItem'> [<a href=''>" + uploader.settings.i18n.remove + "</a>] " + fileObj.name + filesize + "</div>")
|
42 |
.children("div:last").slideDown("slow")
|
43 |
.end();
|
44 |
+
jQuery('#' + fileObj.id + ' a').click(function(e) {
|
45 |
+
jQuery('#' + fileObj.id).remove();
|
46 |
uploader.removeFile(fileObj);
|
47 |
e.preventDefault();
|
48 |
+
});
|
49 |
}
|
50 |
|
51 |
// called before the uploads start
|
52 |
function uploadStart(fileObj) {
|
53 |
+
debug('[uploadStart]');
|
54 |
+
nggProgressBar.init(nggAjaxOptions);
|
55 |
debug('[gallery selected]');
|
56 |
+
// update the selected gallery in the post_params
|
57 |
+
uploader.settings.multipart_params.galleryselect = jQuery('#galleryselect').val();
|
58 |
return false;
|
59 |
}
|
60 |
|
61 |
// called during the upload progress
|
62 |
function uploadProgress(fileObj, bytesDone, bytesTotal) {
|
63 |
+
var percent = Math.ceil((bytesDone / bytesTotal) * 100);
|
64 |
+
debug('[uploadProgress]', fileObj.name + ' : ' + percent + "%");
|
65 |
+
nggProgressBar.increase( percent );
|
66 |
+
jQuery("#progressbar").find("span").text(percent + "% - " + fileObj.name);
|
67 |
}
|
68 |
|
69 |
// called when all files are uploaded
|
70 |
function uploadComplete(fileObj) {
|
71 |
+
debug('[uploadComplete]');
|
72 |
|
73 |
// Upload the next file until queue is empty
|
74 |
if ( uploader.total.queued == 0) {
|
75 |
+
var form = jQuery('#uploadimage_form');
|
76 |
+
form.prepend("<input type=\"hidden\" name=\"swf_callback\" value=\"0\">");
|
77 |
+
nggProgressBar.finished();
|
78 |
+
form.submit();
|
79 |
+
}
|
80 |
}
|
81 |
|
82 |
// called when the file is uploaded
|
83 |
function uploadSuccess(fileObj, serverData) {
|
84 |
+
debug('[uploadSuccess]', serverData);
|
85 |
+
|
86 |
+
if (serverData.response != 0)
|
87 |
+
nggProgressBar.addNote("<strong>ERROR</strong>: " + fileObj.name + " : " + serverData.response);
|
88 |
+
|
89 |
+
jQuery("#" + fileObj.id).hide("slow").remove();
|
|
|
90 |
}
|
91 |
|
92 |
function cancelUpload() {
|
98 |
}
|
99 |
|
100 |
function uploadError(fileObj, errorCode, message) {
|
101 |
+
debug('[uploadError]', errorCode, message);
|
102 |
error_name = fileObj.name + ': ';
|
103 |
switch (errorCode) {
|
104 |
case plupload.FAILED:
|
129 |
message = pluploadL10n.http_error;
|
130 |
break;
|
131 |
case plupload.INIT_ERROR:
|
132 |
+
/* what should we do in this case ? */
|
133 |
//switchUploader(0);
|
134 |
//jQuery('.upload-html-bypass').hide();
|
135 |
break;
|
144 |
}
|
145 |
//nggProgressBar.addNote("<strong>ERROR " + error_name + " </strong>: " + message);
|
146 |
jQuery('#plupload-upload-ui').prepend('<div id="file-' + fileObj.id + '" class="error"><p style="margin: auto;">' + error_name + message + '</p></div>');
|
147 |
+
jQuery("#" + fileObj.id).hide("slow").remove();
|
|
|
148 |
}
|
149 |
|
150 |
function debug() {
|
151 |
+
if ( uploader.settings.debug ) {
|
152 |
+
plupload.each(arguments, function(message) {
|
153 |
+
var exceptionMessage, exceptionValues = [];
|
154 |
+
|
155 |
+
// Check for an exception object and print it nicely
|
156 |
+
if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") {
|
157 |
+
for (var key in message) {
|
158 |
+
if (message.hasOwnProperty(key)) {
|
159 |
+
exceptionValues.push(key + ": " + message[key]);
|
160 |
+
}
|
161 |
+
}
|
162 |
+
exceptionMessage = exceptionValues.join("\n") || "";
|
163 |
+
exceptionValues = exceptionMessage.split("\n");
|
164 |
+
exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: ");
|
165 |
+
if (window.console)
|
166 |
+
console.log(exceptionMessage);
|
167 |
+
else
|
168 |
+
debugConsole(exceptionMessage);
|
169 |
+
} else {
|
170 |
+
if (window.console)
|
171 |
+
console.log(message);
|
172 |
+
else
|
173 |
+
debugConsole(message);
|
174 |
+
}
|
175 |
+
});
|
176 |
+
}
|
177 |
};
|
178 |
|
179 |
function debugConsole(message) {
|
204 |
} catch (ex) {
|
205 |
alert("Exception: " + ex.name + " Message: " + ex.message);
|
206 |
}
|
207 |
+
};
|
admin/manage-galleries.php
DELETED
@@ -1,433 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
4 |
-
|
5 |
-
// *** show main gallery list
|
6 |
-
function nggallery_manage_gallery_main() {
|
7 |
-
|
8 |
-
global $ngg, $nggdb, $wp_query;
|
9 |
-
|
10 |
-
//Build the pagination for more than 25 galleries
|
11 |
-
$_GET['paged'] = isset($_GET['paged']) && ($_GET['paged'] > 0) ? absint($_GET['paged']) : 1;
|
12 |
-
|
13 |
-
$items_per_page = 25;
|
14 |
-
|
15 |
-
$start = ( $_GET['paged'] - 1 ) * $items_per_page;
|
16 |
-
|
17 |
-
$order = ( isset ( $_GET['order'] ) && $_GET['order'] == 'desc' ) ? 'DESC' : 'ASC';
|
18 |
-
$orderby = ( isset ( $_GET['orderby'] ) && ( in_array( $_GET['orderby'], array('gid', 'title', 'author') )) ) ? $_GET['orderby'] : 'gid';
|
19 |
-
|
20 |
-
$gallerylist = $nggdb->find_all_galleries( $orderby, $order , TRUE, $items_per_page, $start, false);
|
21 |
-
$wp_list_table = new _NGG_Galleries_List_Table('nggallery-manage-gallery');
|
22 |
-
|
23 |
-
?>
|
24 |
-
<script type="text/javascript">
|
25 |
-
<!--
|
26 |
-
function checkAll(form)
|
27 |
-
{
|
28 |
-
for (i = 0, n = form.elements.length; i < n; i++) {
|
29 |
-
if(form.elements[i].type == "checkbox") {
|
30 |
-
if(form.elements[i].name == "doaction[]") {
|
31 |
-
if(form.elements[i].checked == true)
|
32 |
-
form.elements[i].checked = false;
|
33 |
-
else
|
34 |
-
form.elements[i].checked = true;
|
35 |
-
}
|
36 |
-
}
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
function getNumChecked(form)
|
41 |
-
{
|
42 |
-
var num = 0;
|
43 |
-
for (i = 0, n = form.elements.length; i < n; i++) {
|
44 |
-
if(form.elements[i].type == "checkbox") {
|
45 |
-
if(form.elements[i].name == "doaction[]")
|
46 |
-
if(form.elements[i].checked == true)
|
47 |
-
num++;
|
48 |
-
}
|
49 |
-
}
|
50 |
-
return num;
|
51 |
-
}
|
52 |
-
|
53 |
-
// this function check for a the number of selected images, sumbmit false when no one selected
|
54 |
-
function checkSelected() {
|
55 |
-
|
56 |
-
if (typeof document.activeElement == "undefined" && document.addEventListener) {
|
57 |
-
document.addEventListener("focus", function (e) {
|
58 |
-
document.activeElement = e.target;
|
59 |
-
}, true);
|
60 |
-
}
|
61 |
-
|
62 |
-
if ( document.activeElement.name == 'post_paged' )
|
63 |
-
return true;
|
64 |
-
|
65 |
-
var numchecked = getNumChecked(document.getElementById('editgalleries'));
|
66 |
-
|
67 |
-
if(numchecked < 1) {
|
68 |
-
alert('<?php echo esc_js(__('No images selected', 'nggallery')); ?>');
|
69 |
-
return false;
|
70 |
-
}
|
71 |
-
|
72 |
-
actionId = jQuery('#bulkaction').val();
|
73 |
-
|
74 |
-
switch (actionId) {
|
75 |
-
case "resize_images":
|
76 |
-
showDialog('resize_images', '<?php echo esc_js(__('Resize images','nggallery')); ?>');
|
77 |
-
return false;
|
78 |
-
break;
|
79 |
-
case "new_thumbnail":
|
80 |
-
showDialog('new_thumbnail', '<?php echo esc_js(__('Create new thumbnails','nggallery')); ?>');
|
81 |
-
return false;
|
82 |
-
break;
|
83 |
-
}
|
84 |
-
|
85 |
-
return confirm('<?php echo sprintf(esc_js(__("You are about to start the bulk edit for %s galleries \n \n 'Cancel' to stop, 'OK' to proceed.",'nggallery')), "' + numchecked + '") ; ?>');
|
86 |
-
}
|
87 |
-
|
88 |
-
function showDialog( windowId, title ) {
|
89 |
-
var form = document.getElementById('editgalleries');
|
90 |
-
var elementlist = "";
|
91 |
-
for (i = 0, n = form.elements.length; i < n; i++) {
|
92 |
-
if(form.elements[i].type == "checkbox") {
|
93 |
-
if(form.elements[i].name == "doaction[]")
|
94 |
-
if(form.elements[i].checked == true)
|
95 |
-
if (elementlist == "")
|
96 |
-
elementlist = form.elements[i].value
|
97 |
-
else
|
98 |
-
elementlist += "," + form.elements[i].value ;
|
99 |
-
}
|
100 |
-
}
|
101 |
-
jQuery("#" + windowId + "_bulkaction").val(jQuery("#bulkaction").val());
|
102 |
-
jQuery("#" + windowId + "_imagelist").val(elementlist);
|
103 |
-
// now show the dialog
|
104 |
-
jQuery( "#" + windowId ).dialog({
|
105 |
-
width: 640,
|
106 |
-
resizable : false,
|
107 |
-
modal: true,
|
108 |
-
title: title
|
109 |
-
});
|
110 |
-
jQuery("#" + windowId + ' .dialog-cancel').click(function() { jQuery( "#" + windowId ).dialog("close"); });
|
111 |
-
}
|
112 |
-
|
113 |
-
function showAddGallery() {
|
114 |
-
jQuery( "#addGallery").dialog({
|
115 |
-
width: '70%',
|
116 |
-
resizable : false,
|
117 |
-
modal: true,
|
118 |
-
title: '<?php echo esc_js(__('Add new gallery','nggallery')); ?>'
|
119 |
-
});
|
120 |
-
jQuery("#addGallery .dialog-cancel").click(function() { jQuery( "#addGallery" ).dialog("close"); });
|
121 |
-
}
|
122 |
-
//-->
|
123 |
-
</script>
|
124 |
-
<div class="wrap">
|
125 |
-
<h2><?php _e( 'Galleries', 'nggallery');?>
|
126 |
-
<form id="addgalleries" class="nggform add-new-form" method="POST" action="<?php echo $ngg->manage_page->base_page . '&paged=' . $_GET['paged']; ?>" accept-charset="utf-8"><?php if ( current_user_can('NextGEN Upload images') && nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) : ?>
|
127 |
-
<input name="doaction" class="add-new-h2" type="submit" onclick="showAddGallery(); return false;" value="<?php _e('Add new gallery', 'nggallery') ?>"/>
|
128 |
-
<?php endif; ?></form></h2>
|
129 |
-
<form class="search-form" action="" method="get">
|
130 |
-
<p class="search-box">
|
131 |
-
<label class="hidden" for="media-search-input"><?php _e( 'Search Images', 'nggallery' ); ?>:</label>
|
132 |
-
<input type="hidden" id="page-name" name="page" value="nggallery-manage-gallery" />
|
133 |
-
<input type="text" id="media-search-input" name="s" value="<?php the_search_query(); ?>" />
|
134 |
-
<input type="submit" value="<?php _e( 'Search Images', 'nggallery' ); ?>" class="button" />
|
135 |
-
</p>
|
136 |
-
</form>
|
137 |
-
<form id="editgalleries" class="nggform" method="POST" action="<?php echo $ngg->manage_page->base_page . '&paged=' . $_GET['paged']; ?>" accept-charset="utf-8">
|
138 |
-
<?php wp_nonce_field('ngg_bulkgallery') ?>
|
139 |
-
<input type="hidden" name="page" value="manage-galleries" />
|
140 |
-
|
141 |
-
<div class="tablenav top">
|
142 |
-
|
143 |
-
<div class="alignleft actions">
|
144 |
-
<?php if ( function_exists('json_encode') ) : ?>
|
145 |
-
<select name="bulkaction" id="bulkaction">
|
146 |
-
<option value="no_action" ><?php _e("Actions",'nggallery'); ?></option>
|
147 |
-
<option value="delete_gallery" ><?php _e("Delete",'nggallery'); ?></option>
|
148 |
-
<option value="set_watermark" ><?php _e("Set watermark",'nggallery'); ?></option>
|
149 |
-
<option value="new_thumbnail" ><?php _e("Create new thumbnails",'nggallery'); ?></option>
|
150 |
-
<option value="resize_images" ><?php _e("Resize images",'nggallery'); ?></option>
|
151 |
-
<option value="import_meta" ><?php _e("Import metadata",'nggallery'); ?></option>
|
152 |
-
<option value="recover_images" ><?php _e("Recover from backup",'nggallery'); ?></option>
|
153 |
-
</select>
|
154 |
-
<input name="showThickbox" class="button-secondary" type="submit" value="<?php _e('Apply','nggallery'); ?>" onclick="if ( !checkSelected() ) return false;" />
|
155 |
-
<?php endif; ?>
|
156 |
-
</div>
|
157 |
-
|
158 |
-
|
159 |
-
<?php $ngg->manage_page->pagination( 'top', $_GET['paged'], $nggdb->paged['total_objects'], $nggdb->paged['objects_per_page'] ); ?>
|
160 |
-
|
161 |
-
</div>
|
162 |
-
<table class="wp-list-table widefat fixed" cellspacing="0">
|
163 |
-
<thead>
|
164 |
-
<tr>
|
165 |
-
<?php $wp_list_table->print_column_headers(true); ?>
|
166 |
-
</tr>
|
167 |
-
</thead>
|
168 |
-
<tfoot>
|
169 |
-
<tr>
|
170 |
-
<?php $wp_list_table->print_column_headers(false); ?>
|
171 |
-
</tr>
|
172 |
-
</tfoot>
|
173 |
-
<tbody id="the-list">
|
174 |
-
<?php
|
175 |
-
|
176 |
-
if($gallerylist) {
|
177 |
-
//get the columns
|
178 |
-
$gallery_columns = $wp_list_table->get_columns();
|
179 |
-
$hidden_columns = get_hidden_columns('nggallery-manage-gallery');
|
180 |
-
$num_columns = count($gallery_columns) - count($hidden_columns);
|
181 |
-
|
182 |
-
foreach($gallerylist as $gallery) {
|
183 |
-
$alternate = ( !isset($alternate) || $alternate == 'class="alternate"' ) ? '' : 'class="alternate"';
|
184 |
-
$gid = $gallery->gid;
|
185 |
-
$name = (empty($gallery->title) ) ? $gallery->name : $gallery->title;
|
186 |
-
$author_user = get_userdata( (int) $gallery->author );
|
187 |
-
?>
|
188 |
-
<tr id="gallery-<?php echo $gid ?>" <?php echo $alternate; ?> >
|
189 |
-
<?php
|
190 |
-
foreach($gallery_columns as $gallery_column_key => $column_display_name) {
|
191 |
-
$class = "class=\"$gallery_column_key column-$gallery_column_key\"";
|
192 |
-
|
193 |
-
$style = '';
|
194 |
-
if ( in_array($gallery_column_key, $hidden_columns) )
|
195 |
-
$style = ' style="display:none;"';
|
196 |
-
|
197 |
-
$attributes = "$class$style";
|
198 |
-
|
199 |
-
switch ($gallery_column_key) {
|
200 |
-
case 'cb' :
|
201 |
-
?>
|
202 |
-
<th scope="row" class="column-cb check-column">
|
203 |
-
<?php if (nggAdmin::can_manage_this_gallery($gallery->author)) { ?>
|
204 |
-
<input name="doaction[]" type="checkbox" value="<?php echo $gid ?>" />
|
205 |
-
<?php } ?>
|
206 |
-
</th>
|
207 |
-
<?php
|
208 |
-
break;
|
209 |
-
case 'id' :
|
210 |
-
?>
|
211 |
-
<td <?php echo $attributes ?>><?php echo $gid; ?></td>
|
212 |
-
<?php
|
213 |
-
break;
|
214 |
-
case 'title' :
|
215 |
-
?>
|
216 |
-
<td class="title column-title">
|
217 |
-
<?php if (nggAdmin::can_manage_this_gallery($gallery->author)) { ?>
|
218 |
-
<a href="<?php echo wp_nonce_url( $ngg->manage_page->base_page . '&mode=edit&gid=' . $gid, 'ngg_editgallery')?>" class='edit' title="<?php _e('Edit'); ?>" >
|
219 |
-
<?php echo esc_html( nggGallery::i18n($name) ); ?>
|
220 |
-
</a>
|
221 |
-
<?php } else { ?>
|
222 |
-
<?php echo esc_html( nggGallery::i18n($gallery->title) ); ?>
|
223 |
-
<?php } ?>
|
224 |
-
<div class="row-actions"></div>
|
225 |
-
</td>
|
226 |
-
<?php
|
227 |
-
break;
|
228 |
-
case 'description' :
|
229 |
-
?>
|
230 |
-
<td <?php echo $attributes ?>><?php echo esc_html( nggGallery::i18n($gallery->galdesc) ); ?> </td>
|
231 |
-
<?php
|
232 |
-
break;
|
233 |
-
case 'author' :
|
234 |
-
?>
|
235 |
-
<td <?php echo $attributes ?>><?php echo esc_html( $author_user->display_name ); ?></td>
|
236 |
-
<?php
|
237 |
-
break;
|
238 |
-
case 'page_id' :
|
239 |
-
?>
|
240 |
-
<td <?php echo $attributes ?>><?php echo $gallery->pageid; ?></td>
|
241 |
-
<?php
|
242 |
-
break;
|
243 |
-
case 'quantity' :
|
244 |
-
?>
|
245 |
-
<td <?php echo $attributes ?>><?php echo $gallery->counter; ?></td>
|
246 |
-
<?php
|
247 |
-
break;
|
248 |
-
default :
|
249 |
-
?>
|
250 |
-
<td <?php echo $attributes ?>><?php do_action('ngg_manage_gallery_custom_column', $gallery_column_key, $gid); ?></td>
|
251 |
-
<?php
|
252 |
-
break;
|
253 |
-
}
|
254 |
-
} ?>
|
255 |
-
</tr>
|
256 |
-
<?php
|
257 |
-
}
|
258 |
-
} else {
|
259 |
-
echo '<tr><td colspan="7" align="center"><strong>' . __('No entries found', 'nggallery') . '</strong></td></tr>';
|
260 |
-
}
|
261 |
-
?>
|
262 |
-
</tbody>
|
263 |
-
</table>
|
264 |
-
<div class="tablenav bottom">
|
265 |
-
<?php $ngg->manage_page->pagination( 'bottom', $_GET['paged'], $nggdb->paged['total_objects'], $nggdb->paged['objects_per_page'] ); ?>
|
266 |
-
</div>
|
267 |
-
</form>
|
268 |
-
</div>
|
269 |
-
<!-- #addGallery -->
|
270 |
-
<div id="addGallery" style="display: none; background: white;" >
|
271 |
-
<form id="form-tags" method="POST" accept-charset="utf-8">
|
272 |
-
<?php wp_nonce_field('ngg_addgallery'); ?>
|
273 |
-
<input type="hidden" name="page" value="manage-galleries" />
|
274 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
275 |
-
<tr>
|
276 |
-
<td>
|
277 |
-
<strong><?php _e('New Gallery', 'nggallery') ;?>:</strong> <input type="text" size="35" name="galleryname" value="" /><br />
|
278 |
-
<?php if(!is_multisite()) { ?>
|
279 |
-
<?php _e('Create a new , empty gallery below the folder', 'nggallery') ;?> <strong><?php echo $ngg->options['gallerypath']; ?></strong><br />
|
280 |
-
<?php } ?>
|
281 |
-
<i>(<?php _e('Allowed characters for file and folder names are', 'nggallery') ;?>: a-z, A-Z, 0-9, -, _)</i>
|
282 |
-
</td>
|
283 |
-
</tr>
|
284 |
-
<?php do_action('ngg_add_new_gallery_form'); ?>
|
285 |
-
<tr align="right">
|
286 |
-
<td class="submit">
|
287 |
-
<input class="button-primary" type="submit" name="addgallery" value="<?php _e('OK','nggallery'); ?>" />
|
288 |
-
|
289 |
-
<input class="button-secondary dialog-cancel" type="reset" value=" <?php _e('Cancel', 'nggallery'); ?> " />
|
290 |
-
</td>
|
291 |
-
</tr>
|
292 |
-
</table>
|
293 |
-
</form>
|
294 |
-
</div>
|
295 |
-
<!-- /#addGallery -->
|
296 |
-
|
297 |
-
<!-- #resize_images -->
|
298 |
-
<div id="resize_images" style="display: none;" >
|
299 |
-
<form id="form-resize-images" method="POST" accept-charset="utf-8">
|
300 |
-
<?php wp_nonce_field('ngg_thickbox_form') ?>
|
301 |
-
<input type="hidden" id="resize_images_imagelist" name="TB_imagelist" value="" />
|
302 |
-
<input type="hidden" id="resize_images_bulkaction" name="TB_bulkaction" value="" />
|
303 |
-
<input type="hidden" name="page" value="manage-galleries" />
|
304 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
305 |
-
<tr valign="top">
|
306 |
-
<td>
|
307 |
-
<strong><?php _e('Resize Images to', 'nggallery'); ?>:</strong>
|
308 |
-
</td>
|
309 |
-
<td>
|
310 |
-
<label for="imgWidth"><?php _e('Width','nggallery') ?></label>
|
311 |
-
<input type="number" step="1" min="0" class="small-text" name="imgWidth" class="small-text" value="<?php echo $ngg->options['imgWidth']; ?>" />
|
312 |
-
<label for="imgHeight"><?php _e('Height','nggallery') ?></label>
|
313 |
-
<input type="number" step="1" min="0" type="text" size="5" name="imgHeight" class="small-text" value="<?php echo $ngg->options['imgHeight']; ?>">
|
314 |
-
<p class="description"><?php _e('Width and height (in pixels). NextCellent Gallery will keep the ratio size.','nggallery') ?></p>
|
315 |
-
</td>
|
316 |
-
</tr>
|
317 |
-
<tr align="right">
|
318 |
-
<td colspan="2" class="submit">
|
319 |
-
<input class="button-primary" type="submit" name="TB_ResizeImages" value="<?php _e('OK', 'nggallery'); ?>" />
|
320 |
-
|
321 |
-
<input class="button-secondary dialog-cancel" type="reset" value=" <?php _e('Cancel', 'nggallery'); ?> " />
|
322 |
-
</td>
|
323 |
-
</tr>
|
324 |
-
</table>
|
325 |
-
</form>
|
326 |
-
</div>
|
327 |
-
<!-- /#resize_images -->
|
328 |
-
|
329 |
-
<!-- #new_thumbnail -->
|
330 |
-
<div id="new_thumbnail" style="display: none;" >
|
331 |
-
<form id="form-new-thumbnail" method="POST" accept-charset="utf-8">
|
332 |
-
<?php wp_nonce_field('ngg_thickbox_form') ?>
|
333 |
-
<input type="hidden" id="new_thumbnail_imagelist" name="TB_imagelist" value="" />
|
334 |
-
<input type="hidden" id="new_thumbnail_bulkaction" name="TB_bulkaction" value="" />
|
335 |
-
<input type="hidden" name="page" value="manage-galleries" />
|
336 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
337 |
-
<tr valign="top">
|
338 |
-
<th align="left"><?php _e('Size','nggallery') ?></th>
|
339 |
-
<td><label for="thumbwidth"><?php _e('Width','nggallery') ?> </label><input class="small-text" type="number" step="1" min="0" name="thumbwidth" value="<?php echo $ngg->options['thumbwidth']; ?>" /> <label for="thumbheight"><?php _e('Height','nggallery') ?> </label><input class="small-text" type="number" step="1" min="0" name="thumbheight" value="<?php echo $ngg->options['thumbheight']; ?>" />
|
340 |
-
<p class="description"><?php _e('These values are maximum values ','nggallery') ?></p></td>
|
341 |
-
</tr>
|
342 |
-
<tr valign="top">
|
343 |
-
<th align="left"><?php _e('Fixed size','nggallery'); ?></th>
|
344 |
-
<td><input type="checkbox" name="thumbfix" value="1" <?php checked('1', $ngg->options['thumbfix']); ?> />
|
345 |
-
<?php _e('This will ignore the aspect ratio, so no portrait thumbnails','nggallery') ?></td>
|
346 |
-
</tr>
|
347 |
-
<tr align="right">
|
348 |
-
<td colspan="2" class="submit">
|
349 |
-
<input class="button-primary" type="submit" name="TB_NewThumbnail" value="<?php _e('OK', 'nggallery');?>" />
|
350 |
-
|
351 |
-
<input class="button-secondary dialog-cancel" type="reset" value=" <?php _e('Cancel', 'nggallery'); ?> " />
|
352 |
-
</td>
|
353 |
-
</tr>
|
354 |
-
</table>
|
355 |
-
</form>
|
356 |
-
</div>
|
357 |
-
<!-- /#new_thumbnail -->
|
358 |
-
|
359 |
-
<?php
|
360 |
-
}
|
361 |
-
|
362 |
-
/**
|
363 |
-
* Constructor class to create the table layout
|
364 |
-
*
|
365 |
-
* @package WordPress
|
366 |
-
* @subpackage List_Table
|
367 |
-
* @since 1.8.0
|
368 |
-
* @access private
|
369 |
-
* 20150907: changes on WP_List_Table for WP 4.3.0 breaks code for List Tables. Fixed.
|
370 |
-
*/
|
371 |
-
class _NGG_Galleries_List_Table extends WP_List_Table {
|
372 |
-
var $screen;
|
373 |
-
var $_columns;
|
374 |
-
|
375 |
-
function _NGG_Galleries_List_Table( $screen ) {
|
376 |
-
if ( is_string( $screen ) )
|
377 |
-
$screen = convert_to_screen( $screen );
|
378 |
-
|
379 |
-
$this->screen = $screen;
|
380 |
-
$this->_columns = array() ;
|
381 |
-
|
382 |
-
add_filter( 'manage_' . $screen->id . '_columns', array( &$this, 'get_columns' ), 0 );
|
383 |
-
}
|
384 |
-
|
385 |
-
function get_column_info() {
|
386 |
-
$columns = get_column_headers( $this->screen );
|
387 |
-
$hidden = get_hidden_columns( $this->screen );
|
388 |
-
$_sortable = $this->get_sortable_columns();
|
389 |
-
|
390 |
-
foreach ( $_sortable as $id => $data ) {
|
391 |
-
if ( empty( $data ) )
|
392 |
-
continue;
|
393 |
-
|
394 |
-
$data = (array) $data;
|
395 |
-
if ( !isset( $data[1] ) )
|
396 |
-
$data[1] = false;
|
397 |
-
|
398 |
-
$sortable[$id] = $data;
|
399 |
-
}
|
400 |
-
|
401 |
-
if (method_exists($this,"get_primary_column_name")){ //works for WP 4.3.0 and up
|
402 |
-
return array( $columns, $hidden, $sortable, $this->get_primary_column_name() );
|
403 |
-
}
|
404 |
-
return array( $columns, $hidden, $sortable );
|
405 |
-
|
406 |
-
}
|
407 |
-
|
408 |
-
// define the columns to display, the syntax is 'internal name' => 'display name'
|
409 |
-
function get_columns() {
|
410 |
-
$columns = array();
|
411 |
-
|
412 |
-
$columns['cb'] = '<input name="checkall" type="checkbox" onclick="checkAll(document.getElementById(\'editgalleries\'));" />';
|
413 |
-
$columns['id'] = __('ID');
|
414 |
-
$columns['title'] = __( 'Title', 'nggallery');
|
415 |
-
$columns['description'] = __('Description', 'nggallery');
|
416 |
-
$columns['author'] = __('Author', 'nggallery');
|
417 |
-
$columns['page_id'] = __('Page ID', 'nggallery');
|
418 |
-
$columns['quantity'] = __( 'Images', 'nggallery' );
|
419 |
-
|
420 |
-
$columns = apply_filters('ngg_manage_gallery_columns', $columns);
|
421 |
-
|
422 |
-
return $columns;
|
423 |
-
}
|
424 |
-
|
425 |
-
function get_sortable_columns() {
|
426 |
-
return array(
|
427 |
-
'id' => array( 'gid', true ),
|
428 |
-
'title' => 'title',
|
429 |
-
'author' => 'author'
|
430 |
-
);
|
431 |
-
}
|
432 |
-
}
|
433 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/manage-images.php
DELETED
@@ -1,759 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.');}
|
4 |
-
|
5 |
-
function nggallery_picturelist() {
|
6 |
-
// *** show picture list
|
7 |
-
global $wpdb, $nggdb, $user_ID, $ngg;
|
8 |
-
|
9 |
-
// Look if its a search result
|
10 |
-
$is_search = isset ($_GET['s']) ? true : false;
|
11 |
-
$counter = 0;
|
12 |
-
|
13 |
-
$wp_list_table = new _NGG_Images_List_Table('nggallery-manage-images');
|
14 |
-
|
15 |
-
if ($is_search) {
|
16 |
-
|
17 |
-
// fetch the imagelist
|
18 |
-
$picturelist = $ngg->manage_page->search_result;
|
19 |
-
|
20 |
-
// we didn't set a gallery or a pagination
|
21 |
-
$act_gid = 0;
|
22 |
-
$_GET['paged'] = 1;
|
23 |
-
$page_links = false;
|
24 |
-
|
25 |
-
} else {
|
26 |
-
|
27 |
-
// GET variables
|
28 |
-
$act_gid = $ngg->manage_page->gid;
|
29 |
-
|
30 |
-
// Load the gallery metadata
|
31 |
-
$gallery = $nggdb->find_gallery($act_gid);
|
32 |
-
|
33 |
-
if (!$gallery) {
|
34 |
-
nggGallery::show_error(__('Gallery not found.', 'nggallery'));
|
35 |
-
return;
|
36 |
-
}
|
37 |
-
|
38 |
-
// Check if you have the correct capability
|
39 |
-
if (!nggAdmin::can_manage_this_gallery($gallery->author)) {
|
40 |
-
nggGallery::show_error(__('Sorry, you have no access here', 'nggallery'));
|
41 |
-
return;
|
42 |
-
}
|
43 |
-
|
44 |
-
// look for pagination
|
45 |
-
$_GET['paged'] = isset($_GET['paged']) && ($_GET['paged'] > 0) ? absint($_GET['paged']) : 1;
|
46 |
-
|
47 |
-
$start = ( $_GET['paged'] - 1 ) * 50;
|
48 |
-
|
49 |
-
// get picture values
|
50 |
-
$picturelist = $nggdb->get_gallery($act_gid, $ngg->options['galSort'], $ngg->options['galSortDir'], false, 50, $start );
|
51 |
-
|
52 |
-
// get the current author
|
53 |
-
$act_author_user = get_userdata( (int) $gallery->author );
|
54 |
-
|
55 |
-
}
|
56 |
-
|
57 |
-
// list all galleries
|
58 |
-
$gallerylist = $nggdb->find_all_galleries();
|
59 |
-
|
60 |
-
//get the columns
|
61 |
-
$image_columns = $wp_list_table->get_columns();
|
62 |
-
$hidden_columns = get_hidden_columns('nggallery-manage-images');
|
63 |
-
$num_columns = count($image_columns) - count($hidden_columns);
|
64 |
-
|
65 |
-
$attr = (nggGallery::current_user_can( 'NextGEN Edit gallery options' )) ? '' : 'disabled="disabled"';
|
66 |
-
|
67 |
-
?>
|
68 |
-
<script type="text/javascript">
|
69 |
-
<!--
|
70 |
-
function showDialog( windowId, title ) {
|
71 |
-
var form = document.getElementById('updategallery');
|
72 |
-
var elementlist = "";
|
73 |
-
for (i = 0, n = form.elements.length; i < n; i++) {
|
74 |
-
if(form.elements[i].type == "checkbox") {
|
75 |
-
if(form.elements[i].name == "doaction[]")
|
76 |
-
if(form.elements[i].checked == true)
|
77 |
-
if (elementlist == "")
|
78 |
-
elementlist = form.elements[i].value
|
79 |
-
else
|
80 |
-
elementlist += "," + form.elements[i].value ;
|
81 |
-
}
|
82 |
-
}
|
83 |
-
jQuery("#" + windowId + "_bulkaction").val(jQuery("#bulkaction").val());
|
84 |
-
jQuery("#" + windowId + "_imagelist").val(elementlist);
|
85 |
-
// now show the dialog
|
86 |
-
jQuery( "#" + windowId ).dialog({
|
87 |
-
width: 640,
|
88 |
-
resizable : false,
|
89 |
-
modal: true,
|
90 |
-
title: title
|
91 |
-
});
|
92 |
-
jQuery("#" + windowId + ' .dialog-cancel').click(function() { jQuery( "#" + windowId ).dialog("close"); });
|
93 |
-
}
|
94 |
-
|
95 |
-
jQuery(function (){
|
96 |
-
|
97 |
-
//Format for mysql: yy-mm-dd 00:00:00
|
98 |
-
//Load up the datepicker
|
99 |
-
jQuery(".datepicker").datepicker({
|
100 |
-
dateFormat:"MM dd, yy",
|
101 |
-
showOn:"focus",
|
102 |
-
onSelect: function(date) {
|
103 |
-
//Turn date into mysql and move things around
|
104 |
-
var mydate = jQuery.datepicker.formatDate("yy-mm-dd 00:00:00", new Date(date));
|
105 |
-
jQuery(this).siblings('.rawdate').attr('value',mydate);
|
106 |
-
jQuery(this).siblings(".date").html(date);
|
107 |
-
jQuery(this).siblings(".date").toggle();
|
108 |
-
jQuery(this).toggle();
|
109 |
-
jQuery(".change").toggle();
|
110 |
-
jQuery(this).datepicker("hide"); //Hide the datepicker in case user pressed enter
|
111 |
-
}
|
112 |
-
});
|
113 |
-
|
114 |
-
//When the user clicks change
|
115 |
-
jQuery(".change").click(function() { //Show the input and hide the span
|
116 |
-
jQuery(this).siblings(".date").toggle();
|
117 |
-
jQuery(this).siblings(".datepicker").toggle();
|
118 |
-
//jQuery(this).toggle();
|
119 |
-
jQuery(".change").toggle(); //All buttons disabled
|
120 |
-
});
|
121 |
-
|
122 |
-
// load a content via ajax
|
123 |
-
jQuery('a.ngg-dialog').click(function() {
|
124 |
-
if ( jQuery( "#spinner" ).length == 0)
|
125 |
-
jQuery("body").append('<div id="spinner"></div>');
|
126 |
-
var $this = jQuery(this);
|
127 |
-
jQuery('#spinner').fadeIn();
|
128 |
-
var dialog = jQuery('<div style="display:hidden"></div>').appendTo('body');
|
129 |
-
// load the remote content
|
130 |
-
dialog.load(
|
131 |
-
this.href,
|
132 |
-
{},
|
133 |
-
function () {
|
134 |
-
jQuery('#spinner').hide();
|
135 |
-
dialog.dialog({
|
136 |
-
title: ($this.attr('title')) ? $this.attr('title') : '',
|
137 |
-
width: 'auto',
|
138 |
-
height: 'auto',
|
139 |
-
modal: true,
|
140 |
-
resizable: true,
|
141 |
-
position: { my: "center", at: "center", of: window },
|
142 |
-
close: function() { dialog.remove(); }
|
143 |
-
});
|
144 |
-
}
|
145 |
-
);
|
146 |
-
//prevent the browser to follow the link
|
147 |
-
return false;
|
148 |
-
});
|
149 |
-
|
150 |
-
|
151 |
-
});
|
152 |
-
|
153 |
-
function checkAll(form)
|
154 |
-
{
|
155 |
-
for (i = 0, n = form.elements.length; i < n; i++) {
|
156 |
-
if(form.elements[i].type == "checkbox") {
|
157 |
-
if(form.elements[i].name == "doaction[]") {
|
158 |
-
if(form.elements[i].checked == true)
|
159 |
-
form.elements[i].checked = false;
|
160 |
-
else
|
161 |
-
form.elements[i].checked = true;
|
162 |
-
}
|
163 |
-
}
|
164 |
-
}
|
165 |
-
}
|
166 |
-
|
167 |
-
function getNumChecked(form)
|
168 |
-
{
|
169 |
-
var num = 0;
|
170 |
-
for (i = 0, n = form.elements.length; i < n; i++) {
|
171 |
-
if(form.elements[i].type == "checkbox") {
|
172 |
-
if(form.elements[i].name == "doaction[]")
|
173 |
-
if(form.elements[i].checked == true)
|
174 |
-
num++;
|
175 |
-
}
|
176 |
-
}
|
177 |
-
return num;
|
178 |
-
}
|
179 |
-
|
180 |
-
// this function check for a the number of selected images, sumbmit false when no one selected
|
181 |
-
function checkSelected() {
|
182 |
-
|
183 |
-
var numchecked = getNumChecked(document.getElementById('updategallery'));
|
184 |
-
|
185 |
-
if (typeof document.activeElement == "undefined" && document.addEventListener) {
|
186 |
-
document.addEventListener("focus", function (e) {
|
187 |
-
document.activeElement = e.target;
|
188 |
-
}, true);
|
189 |
-
}
|
190 |
-
|
191 |
-
if ( document.activeElement.name == 'post_paged' )
|
192 |
-
return true;
|
193 |
-
|
194 |
-
if(numchecked < 1) {
|
195 |
-
alert('<?php echo esc_js(__('No images selected', 'nggallery')); ?>');
|
196 |
-
return false;
|
197 |
-
}
|
198 |
-
|
199 |
-
actionId = jQuery('#bulkaction').val();
|
200 |
-
|
201 |
-
switch (actionId) {
|
202 |
-
case "copy_to":
|
203 |
-
showDialog('selectgallery', '<?php echo esc_js(__('Copy image to...','nggallery')); ?>');
|
204 |
-
return false;
|
205 |
-
break;
|
206 |
-
case "move_to":
|
207 |
-
showDialog('selectgallery', '<?php echo esc_js(__('Move image to...','nggallery')); ?>');
|
208 |
-
return false;
|
209 |
-
break;
|
210 |
-
case "add_tags":
|
211 |
-
showDialog('entertags', '<?php echo esc_js(__('Add new tags','nggallery')); ?>');
|
212 |
-
return false;
|
213 |
-
break;
|
214 |
-
case "delete_tags":
|
215 |
-
showDialog('entertags', '<?php echo esc_js(__('Delete tags','nggallery')); ?>');
|
216 |
-
return false;
|
217 |
-
break;
|
218 |
-
case "overwrite_tags":
|
219 |
-
showDialog('entertags', '<?php echo esc_js(__('Overwrite','nggallery')); ?>');
|
220 |
-
return false;
|
221 |
-
break;
|
222 |
-
case "resize_images":
|
223 |
-
showDialog('resize_images', '<?php echo esc_js(__('Resize images','nggallery')); ?>');
|
224 |
-
return false;
|
225 |
-
break;
|
226 |
-
case "new_thumbnail":
|
227 |
-
showDialog('new_thumbnail', '<?php echo esc_js(__('Create new thumbnails','nggallery')); ?>');
|
228 |
-
return false;
|
229 |
-
break;
|
230 |
-
}
|
231 |
-
|
232 |
-
return confirm('<?php echo sprintf(esc_js(__("You are about to start the bulk edit for %s images \n \n 'Cancel' to stop, 'OK' to proceed.",'nggallery')), "' + numchecked + '") ; ?>');
|
233 |
-
}
|
234 |
-
|
235 |
-
jQuery(document).ready( function() {
|
236 |
-
// close postboxes that should be closed
|
237 |
-
jQuery('.if-js-closed').removeClass('if-js-closed').addClass('closed');
|
238 |
-
postboxes.add_postbox_toggles('ngg-manage-gallery');
|
239 |
-
});
|
240 |
-
|
241 |
-
//-->
|
242 |
-
</script>
|
243 |
-
<div class="wrap">
|
244 |
-
<?php if ($is_search) :?>
|
245 |
-
<h2><?php printf( __('Search results for “%s”', 'nggallery'), esc_html( get_search_query() ) ); ?></h2>
|
246 |
-
<form class="search-form" action="" method="get">
|
247 |
-
<p class="search-box">
|
248 |
-
<label class="hidden" for="media-search-input"><?php _e( 'Search Images', 'nggallery' ); ?>:</label>
|
249 |
-
<input type="hidden" id="page-name" name="page" value="nggallery-manage-gallery" />
|
250 |
-
<input type="text" id="media-search-input" name="s" value="<?php the_search_query(); ?>" />
|
251 |
-
<input type="submit" value="<?php _e( 'Search Images', 'nggallery' ); ?>" class="button" />
|
252 |
-
</p>
|
253 |
-
</form>
|
254 |
-
|
255 |
-
<br style="clear: both;" />
|
256 |
-
|
257 |
-
<form id="updategallery" class="nggform" method="POST" action="<?php echo $ngg->manage_page->base_page . '&mode=edit&s=' . get_search_query(); ?>" accept-charset="utf-8">
|
258 |
-
<?php wp_nonce_field('ngg_updategallery') ?>
|
259 |
-
<input type="hidden" name="page" value="manage-images" />
|
260 |
-
|
261 |
-
<?php else :?>
|
262 |
-
<h2><?php echo _e( 'Gallery', 'nggallery' ); ?> <?php echo esc_html ( nggGallery::i18n($gallery->title) ); ?></h2>
|
263 |
-
|
264 |
-
<br style="clear: both;" />
|
265 |
-
|
266 |
-
<form id="updategallery" class="nggform" method="POST" action="<?php echo $ngg->manage_page->base_page . '&mode=edit&gid=' . $act_gid . '&paged=' . $_GET['paged']; ?>" accept-charset="utf-8">
|
267 |
-
<?php wp_nonce_field('ngg_updategallery') ?>
|
268 |
-
<input type="hidden" name="page" value="manage-images" />
|
269 |
-
|
270 |
-
<?php if ( nggGallery::current_user_can( 'NextGEN Edit gallery options' )) : ?>
|
271 |
-
<div id="poststuff">
|
272 |
-
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
|
273 |
-
<div id="gallerydiv" class="postbox <?php echo postbox_classes('gallerydiv', 'ngg-manage-gallery'); ?>" >
|
274 |
-
<h3 class="hndle"><?php _e('Gallery settings', 'nggallery') ?><small> (<?php _e('Click here for more settings', 'nggallery') ?>)</small></h3>
|
275 |
-
<div class="inside">
|
276 |
-
<table class="form-table" id="gallery-properties">
|
277 |
-
<tr>
|
278 |
-
<td align="left"><label for="title"><?php _e('Title') ?>:</label></td>
|
279 |
-
<td align="left"><input <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery title' ); ?> type="text" size="50" id="title" name="title" value="<?php echo $gallery->title; ?>" /></td>
|
280 |
-
<td align="right"><label for="pageid"><?php _e('Page Link to', 'nggallery') ?>:</label></td>
|
281 |
-
<td align="left">
|
282 |
-
<select <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery page id' ); ?> id="pageid" name="pageid" style="width:95%">
|
283 |
-
<option value="0" ><?php _e('Not linked', 'nggallery') ?></option>
|
284 |
-
<?php $err = error_reporting(0); ?>
|
285 |
-
<?php parent_dropdown(intval($gallery->pageid)); ?>
|
286 |
-
<?php error_reporting($err); ?>
|
287 |
-
</select>
|
288 |
-
</td>
|
289 |
-
</tr>
|
290 |
-
<tr>
|
291 |
-
<td align="left"><label for="gallerydesc"><?php _e('Description') ?>:</label></td>
|
292 |
-
<td align="left"><textarea <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery description' ); ?> name="gallerydesc" id="gallerydesc" cols="50" rows="3" style="width: 95%" ><?php echo $gallery->galdesc; ?></textarea></td>
|
293 |
-
<td align="right"><label for="previewpic"><?php _e('Preview image', 'nggallery') ?>:</label></td>
|
294 |
-
<td align="left">
|
295 |
-
<select <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery preview pic' ); ?> name="previewpic" id="previewpic" style="width:95%" >
|
296 |
-
<option value="0" ><?php _e('No Picture', 'nggallery') ?></option>
|
297 |
-
<?php
|
298 |
-
// ensure that a preview pic from a other page is still shown here
|
299 |
-
if ( intval($gallery->previewpic) != 0) {
|
300 |
-
if ( !array_key_exists ($gallery->previewpic, $picturelist )){
|
301 |
-
$previewpic = $nggdb->find_image($gallery->previewpic);
|
302 |
-
if ($previewpic)
|
303 |
-
echo '<option value="'.$previewpic->pid.'" selected="selected" >'.$previewpic->pid.' - ' . esc_attr( $previewpic->filename ) . '</option>'."\n";
|
304 |
-
}
|
305 |
-
}
|
306 |
-
if(is_array($picturelist)) {
|
307 |
-
foreach($picturelist as $picture) {
|
308 |
-
if ($picture->exclude) continue;
|
309 |
-
$selected = ($picture->pid == $gallery->previewpic) ? 'selected="selected" ' : '';
|
310 |
-
echo '<option value="'.$picture->pid.'" '.$selected.'>'.$picture->pid.' - ' . esc_attr( $picture->filename ) . '</option>'."\n";
|
311 |
-
}
|
312 |
-
}
|
313 |
-
?>
|
314 |
-
</select>
|
315 |
-
</td>
|
316 |
-
</tr>
|
317 |
-
<tr>
|
318 |
-
<td align="left"><label for="path"><?php _e('Path', 'nggallery') ?>:</label></td>
|
319 |
-
<td align="left"><input <?php if ( is_multisite() ) echo 'readonly = "readonly"'; ?> <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery path' ); ?> type="text" size="50" name="path" id="path" value="<?php echo $gallery->path; ?>" /></td>
|
320 |
-
<td align="right"><label for="author"><?php _e('Author', 'nggallery'); ?>:</label></td>
|
321 |
-
<td align="left">
|
322 |
-
<?php
|
323 |
-
$editable_ids = $ngg->manage_page->get_editable_user_ids( $user_ID );
|
324 |
-
if ( $editable_ids && count( $editable_ids ) > 1 && nggGallery::current_user_can( 'NextGEN Edit gallery author') )
|
325 |
-
wp_dropdown_users( array('include' => $editable_ids, 'name' => 'author', 'id' => 'author', 'selected' => empty( $gallery->author ) ? 0 : $gallery->author ) );
|
326 |
-
else
|
327 |
-
echo $act_author_user->display_name;
|
328 |
-
?>
|
329 |
-
</td>
|
330 |
-
</tr>
|
331 |
-
<?php if(current_user_can( 'publish_pages' )) : ?>
|
332 |
-
<tr>
|
333 |
-
<td align="left"><?php _e('Gallery ID', 'nggallery') ?>:</td>
|
334 |
-
<td align="right"><?php echo $gallery->gid; ?></td>
|
335 |
-
<td align="right"><label for="parent_id"><?php _e('Create new page', 'nggallery') ?>:</label></td>
|
336 |
-
<td align="left">
|
337 |
-
<select name="parent_id" id="parent_id" style="width:95%">
|
338 |
-
<option value="0"><?php _e ('Main page (No parent)', 'nggallery'); ?></option>
|
339 |
-
<?php if (get_post()): ?>
|
340 |
-
<?php parent_dropdown (); ?>
|
341 |
-
<?php endif ?>
|
342 |
-
</select>
|
343 |
-
<input class="button-secondary action" type="submit" name="addnewpage" value="<?php _e ('Add page', 'nggallery'); ?>" id="group"/>
|
344 |
-
</td>
|
345 |
-
</tr>
|
346 |
-
<?php endif; ?>
|
347 |
-
<?php do_action('ngg_manage_gallery_settings', $act_gid); ?>
|
348 |
-
|
349 |
-
</table>
|
350 |
-
|
351 |
-
<div class="submit">
|
352 |
-
<!-- To remove in future versions -->
|
353 |
-
<input type="submit" onclick="return confirm('<?php _e("This will change folder and file names (e.g. remove spaces, special characters, ...)","nggallery")?>\n\n<?php _e("You will need to update your URLs if you link directly to the images.","nggallery")?>\n\n<?php _e("Press OK to proceed, and Cancel to stop.","nggallery")?>')" class="button-secondary" name="scanfolder" value="<?php _e("Scan folder for new images",'nggallery'); ?> " />
|
354 |
-
<input type="submit" class="button-secondary" name="oldscanfolder" value="<?php _e("Old scanning",'nggallery'); ?> " />
|
355 |
-
<input type="submit" class="button-primary action" name="updatepictures" value="<?php _e("Save Changes",'nggallery'); ?>" />
|
356 |
-
</div>
|
357 |
-
|
358 |
-
</div>
|
359 |
-
</div>
|
360 |
-
</div> <!-- poststuff -->
|
361 |
-
<?php endif; ?>
|
362 |
-
|
363 |
-
<?php endif; ?>
|
364 |
-
|
365 |
-
<div class="tablenav top ngg-tablenav">
|
366 |
-
<?php $ngg->manage_page->pagination( 'top', $_GET['paged'], $nggdb->paged['total_objects'], $nggdb->paged['objects_per_page'] ); ?>
|
367 |
-
<div class="alignleft actions">
|
368 |
-
<select id="bulkaction" name="bulkaction">
|
369 |
-
<option value="no_action" ><?php _e("Actions",'nggallery'); ?></option>
|
370 |
-
<option value="set_watermark" ><?php _e("Set watermark",'nggallery'); ?></option>
|
371 |
-
<option value="new_thumbnail" ><?php _e("Create new thumbnails",'nggallery'); ?></option>
|
372 |
-
<option value="resize_images" ><?php _e("Resize images",'nggallery'); ?></option>
|
373 |
-
<option value="recover_images" ><?php _e("Recover from backup",'nggallery'); ?></option>
|
374 |
-
<option value="delete_images" ><?php _e("Delete images",'nggallery'); ?></option>
|
375 |
-
<option value="import_meta" ><?php _e("Import metadata",'nggallery'); ?></option>
|
376 |
-
<option value="rotate_cw" ><?php _e("Rotate images clockwise",'nggallery'); ?></option>
|
377 |
-
<option value="rotate_ccw" ><?php _e("Rotate images counter-clockwise",'nggallery'); ?></option>
|
378 |
-
<option value="copy_to" ><?php _e("Copy to...",'nggallery'); ?></option>
|
379 |
-
<option value="move_to"><?php _e("Move to...",'nggallery'); ?></option>
|
380 |
-
<option value="add_tags" ><?php _e("Add tags",'nggallery'); ?></option>
|
381 |
-
<option value="delete_tags" ><?php _e("Delete tags",'nggallery'); ?></option>
|
382 |
-
<option value="overwrite_tags" ><?php _e("Overwrite tags",'nggallery'); ?></option>
|
383 |
-
</select>
|
384 |
-
<input class="button-secondary" type="submit" name="showThickbox" value="<?php _e('Apply', 'nggallery'); ?>" onclick="if ( !checkSelected() ) return false;" />
|
385 |
-
|
386 |
-
<?php
|
387 |
-
if ((!$is_search)) {
|
388 |
-
$disabled =""; $title="";
|
389 |
-
|
390 |
-
if ($ngg->options['galSort'] != "sortorder") {
|
391 |
-
//Disable sort button and provide feedback why is disabled
|
392 |
-
$disabled ="disabled";
|
393 |
-
$title = "title='" . __('To enable manual Sort set Custom Order Sort.See Settings->Gallery Settings->Sort Options', 'nggallery') . "'";
|
394 |
-
}
|
395 |
-
$button="<input class='button-secondary' type='submit' $disabled $title name='sortGallery' value='" . __('Sort gallery', 'nggallery') ."' />";
|
396 |
-
echo $button;
|
397 |
-
}
|
398 |
-
?>
|
399 |
-
|
400 |
-
<input type="submit" name="updatepictures" class="button-primary action" value="<?php _e('Save Changes', 'nggallery');?>" />
|
401 |
-
</div>
|
402 |
-
</div>
|
403 |
-
|
404 |
-
<table id="ngg-listimages" class="widefat fixed" cellspacing="0" >
|
405 |
-
|
406 |
-
<thead>
|
407 |
-
<tr>
|
408 |
-
<?php $wp_list_table->print_column_headers(true); ?>
|
409 |
-
</tr>
|
410 |
-
</thead>
|
411 |
-
<tfoot>
|
412 |
-
<tr>
|
413 |
-
<?php $wp_list_table->print_column_headers(false); ?>
|
414 |
-
</tr>
|
415 |
-
</tfoot>
|
416 |
-
<tbody id="the-list">
|
417 |
-
<?php
|
418 |
-
if($picturelist) {
|
419 |
-
|
420 |
-
$thumbsize = '';
|
421 |
-
|
422 |
-
if ($ngg->options['thumbfix'])
|
423 |
-
$thumbsize = 'width="' . $ngg->options['thumbwidth'] . '" height="' . $ngg->options['thumbheight'] . '"';
|
424 |
-
|
425 |
-
foreach($picturelist as $picture) {
|
426 |
-
|
427 |
-
//for search result we need to check the capatibiliy
|
428 |
-
if ( !nggAdmin::can_manage_this_gallery($picture->author) && $is_search )
|
429 |
-
continue;
|
430 |
-
|
431 |
-
$counter++;
|
432 |
-
$pid = (int) $picture->pid;
|
433 |
-
$alternate = ( !isset($alternate) || $alternate == 'alternate' ) ? '' : 'alternate';
|
434 |
-
$exclude = ( $picture->exclude ) ? 'checked="checked"' : '';
|
435 |
-
$date = mysql2date(get_option('date_format'), $picture->imagedate);
|
436 |
-
$rawdate = $picture->imagedate;
|
437 |
-
$time = mysql2date(get_option('time_format'), $picture->imagedate);
|
438 |
-
|
439 |
-
?>
|
440 |
-
<tr id="picture-<?php echo $pid ?>" class="<?php echo $alternate ?> iedit" valign="top">
|
441 |
-
<?php
|
442 |
-
foreach($image_columns as $image_column_key => $column_display_name) {
|
443 |
-
$class = "class='$image_column_key column-$image_column_key'";
|
444 |
-
|
445 |
-
$style = '';
|
446 |
-
if ( in_array($image_column_key, $hidden_columns) )
|
447 |
-
$style = ' style="display:none;"';
|
448 |
-
|
449 |
-
$attributes = $class . $style;
|
450 |
-
|
451 |
-
switch ($image_column_key) {
|
452 |
-
case 'cb' :
|
453 |
-
$attributes = 'class="column-cb check-column"' . $style;
|
454 |
-
?>
|
455 |
-
<th <?php echo $attributes ?> scope="row"><input name="doaction[]" type="checkbox" value="<?php echo $pid ?>" /></th>
|
456 |
-
<?php
|
457 |
-
break;
|
458 |
-
case 'id' :
|
459 |
-
?>
|
460 |
-
<td <?php echo $attributes ?> style=""><?php echo $pid; ?>
|
461 |
-
<input type="hidden" name="pid[]" value="<?php echo $pid ?>" />
|
462 |
-
</td>
|
463 |
-
<?php
|
464 |
-
break;
|
465 |
-
case 'filename' :
|
466 |
-
$attributes = 'class="title column-filename column-title"' . $style;
|
467 |
-
?>
|
468 |
-
<td <?php echo $attributes ?>>
|
469 |
-
<strong><a href="<?php echo esc_url( $picture->imageURL ); ?>" class="thickbox" title="<?php echo esc_attr ($picture->filename); ?>">
|
470 |
-
<?php echo ( empty($picture->alttext) ) ? esc_html( $picture->filename ) : esc_html( stripslashes(nggGallery::i18n($picture->alttext)) ); ?>
|
471 |
-
</a></strong>
|
472 |
-
<br /><?php echo '<span class="date">'.$date.'</span>'; ?><input type="text" class="datepicker" value="<?php echo $date?>"/><span class="change"> <?php _e('Change Date', 'nggallery'); ?></span>
|
473 |
-
<input type="hidden" class="rawdate" name="date[<?php echo $pid ?>]" value="<?php echo $rawdate; ?>" />
|
474 |
-
|
475 |
-
<?php if ( !empty($picture->meta_data) ): ?>
|
476 |
-
<br /><?php echo $picture->meta_data['width']; ?> x <?php echo $picture->meta_data['height']; ?> <?php _e('pixel', 'nggallery'); ?>
|
477 |
-
|
478 |
-
<?php endif; ?>
|
479 |
-
<p>
|
480 |
-
<?php
|
481 |
-
$actions = array();
|
482 |
-
$actions['view'] = '<a class="shutter" href="' . esc_url( $picture->imageURL ) . '" title="' . esc_attr( sprintf(__('View "%s"'), sanitize_title ($picture->filename) )) . '">' . __('View', 'nggallery') . '</a>';
|
483 |
-
$actions['meta'] = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/showmeta.php?id=' . $pid . '" title="' . __('Show Meta data','nggallery') . '">' . __('Meta', 'nggallery') . '</a>';
|
484 |
-
$actions['custom_thumb'] = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/edit-thumbnail.php?id=' . $pid . '" title="' . __('Customize thumbnail','nggallery') . '">' . __('Edit thumb', 'nggallery') . '</a>';
|
485 |
-
$actions['rotate'] = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/rotate.php?id=' . $pid . '" title="' . __('Rotate','nggallery') . '">' . __('Rotate', 'nggallery') . '</a>';
|
486 |
-
if ( current_user_can( 'publish_posts' ) )
|
487 |
-
$actions['publish'] = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/publish.php?id=' . $pid . '&h=230" title="' . __('Publish this image','nggallery') . '">' . __('Publish', 'nggallery') . '</a>';
|
488 |
-
if ( file_exists( $picture->imagePath . '_backup' ) )
|
489 |
-
$actions['recover'] = '<a class="confirmrecover" href="' .wp_nonce_url("admin.php?page=nggallery-manage-gallery&mode=recoverpic&gid=" . $act_gid . "&pid=" . $pid, 'ngg_recoverpicture'). '" title="' . __('Recover','nggallery') . '" onclick="javascript:check=confirm( \'' . esc_attr(sprintf(__('Recover "%s" ?' , 'nggallery'), $picture->filename)). '\');if(check==false) return false;">' . __('Recover', 'nggallery') . '</a>';
|
490 |
-
$actions['delete'] = '<a class="submitdelete" href="' . wp_nonce_url("admin.php?page=nggallery-manage-gallery&mode=delpic&gid=" . $act_gid . "&pid=" . $pid, 'ngg_delpicture'). '" class="delete column-delete" onclick="javascript:check=confirm( \'' . esc_attr(sprintf(__('Delete "%s" ?' , 'nggallery'), $picture->filename)). '\');if(check==false) return false;">' . __('Delete') . '</a>';
|
491 |
-
$action_count = count($actions);
|
492 |
-
$i = 0;
|
493 |
-
echo '<div class="row-actions">';
|
494 |
-
foreach ( $actions as $action => $link ) {
|
495 |
-
++$i;
|
496 |
-
( $i == $action_count ) ? $sep = '' : $sep = ' | ';
|
497 |
-
echo "<span class='$action'>$link$sep</span>";
|
498 |
-
}
|
499 |
-
echo '</div>';
|
500 |
-
?></p>
|
501 |
-
</td>
|
502 |
-
<?php
|
503 |
-
break;
|
504 |
-
case 'thumbnail' :
|
505 |
-
$attributes = 'class="id column-thumbnail media-icon"' . $style;
|
506 |
-
?>
|
507 |
-
<td <?php echo $attributes ?>><a href="<?php echo esc_url ( add_query_arg('i', mt_rand(), $picture->imageURL) ); ?>" class="shutter" title="<?php echo $picture->filename ?>">
|
508 |
-
<img class="thumb" src="<?php echo esc_url ( add_query_arg('i', mt_rand(), $picture->thumbURL) ); ?>" id="thumb<?php echo $pid ?>" />
|
509 |
-
</a>
|
510 |
-
</td>
|
511 |
-
<?php
|
512 |
-
break;
|
513 |
-
case 'alt_title_desc' :
|
514 |
-
$img_alt_text = nggGallery::suppress_injection($picture->alttext);
|
515 |
-
$img_description = nggGallery::suppress_injection($picture->description)
|
516 |
-
?>
|
517 |
-
<td <?php echo $attributes ?>>
|
518 |
-
<input placeholder="<?php _e("Alt & title text",'nggallery'); ?>" name="alttext[<?php echo $pid ?>]" type="text" style="width:95%; margin-bottom: 2px;" value="<?php echo $img_alt_text; ?>" /><br/>
|
519 |
-
<textarea placeholder="<?php _e("Description",'nggallery'); ?>" name="description[<?php echo $pid ?>]" style="width:95%; margin: 1px;" rows="2" ><?php echo $img_description; ?></textarea>
|
520 |
-
</td>
|
521 |
-
<?php
|
522 |
-
break;
|
523 |
-
case 'exclude' :
|
524 |
-
?>
|
525 |
-
<td <?php echo $attributes ?>><input name="exclude[<?php echo $pid ?>]" type="checkbox" value="1" <?php echo $exclude ?> /></td>
|
526 |
-
<?php
|
527 |
-
break;
|
528 |
-
case 'tags' :
|
529 |
-
$picture->tags = wp_get_object_terms($pid, 'ngg_tag', 'fields=names');
|
530 |
-
if (is_array ($picture->tags) ) $picture->tags = implode(', ', $picture->tags);
|
531 |
-
?>
|
532 |
-
<td <?php echo $attributes ?>><textarea placeholder="<?php _e("Separated by commas",'nggallery'); ?>"name="tags[<?php echo $pid ?>]" style="width:95%;" rows="2"><?php echo $picture->tags ?></textarea></td>
|
533 |
-
<?php
|
534 |
-
break;
|
535 |
-
default :
|
536 |
-
?>
|
537 |
-
<td <?php echo $attributes ?>><?php do_action('ngg_manage_image_custom_column', $image_column_key, $pid); ?></td>
|
538 |
-
<?php
|
539 |
-
break;
|
540 |
-
}
|
541 |
-
?>
|
542 |
-
<?php } ?>
|
543 |
-
</tr>
|
544 |
-
<?php
|
545 |
-
}
|
546 |
-
}
|
547 |
-
|
548 |
-
// In the case you have no capaptibility to see the search result
|
549 |
-
if ( $counter == 0 )
|
550 |
-
echo '<tr><td colspan="' . $num_columns . '" align="center"><strong>'.__('No entries found','nggallery').'</strong></td></tr>';
|
551 |
-
|
552 |
-
?>
|
553 |
-
|
554 |
-
</tbody>
|
555 |
-
</table>
|
556 |
-
<div class="tablenav bottom">
|
557 |
-
<input type="submit" class="button-primary action" name="updatepictures" value="<?php _e('Save Changes', 'nggallery'); ?>" />
|
558 |
-
<?php $ngg->manage_page->pagination( 'bottom', $_GET['paged'], $nggdb->paged['total_objects'], $nggdb->paged['objects_per_page'] ); ?>
|
559 |
-
</div>
|
560 |
-
</form>
|
561 |
-
<br class="clear"/>
|
562 |
-
</div><!-- /#wrap -->
|
563 |
-
|
564 |
-
<!-- #entertags -->
|
565 |
-
<div id="entertags" style="display: none;" >
|
566 |
-
<form id="form-tags" method="POST" accept-charset="utf-8">
|
567 |
-
<?php wp_nonce_field('ngg_thickbox_form') ?>
|
568 |
-
<input type="hidden" id="entertags_imagelist" name="TB_imagelist" value="" />
|
569 |
-
<input type="hidden" id="entertags_bulkaction" name="TB_bulkaction" value="" />
|
570 |
-
<input type="hidden" name="page" value="manage-images" />
|
571 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
572 |
-
<tr>
|
573 |
-
<th><?php _e("Enter the tags",'nggallery'); ?>: <input name="taglist" type="text" style="width:90%" value="" /></th>
|
574 |
-
</tr>
|
575 |
-
<tr align="right">
|
576 |
-
<td class="submit">
|
577 |
-
<input class="button-primary" type="submit" name="TB_EditTags" value="<?php _e("OK",'nggallery'); ?>" />
|
578 |
-
<input class="button-secondary dialog-cancel" type="reset" value=" <?php _e("Cancel",'nggallery'); ?> " />
|
579 |
-
</td>
|
580 |
-
</tr>
|
581 |
-
</table>
|
582 |
-
</form>
|
583 |
-
</div>
|
584 |
-
<!-- /#entertags -->
|
585 |
-
|
586 |
-
<!-- #selectgallery -->
|
587 |
-
<div id="selectgallery" style="display: none;" >
|
588 |
-
<form id="form-select-gallery" method="POST" accept-charset="utf-8">
|
589 |
-
<?php wp_nonce_field('ngg_thickbox_form') ?>
|
590 |
-
<input type="hidden" id="selectgallery_imagelist" name="TB_imagelist" value="" />
|
591 |
-
<input type="hidden" id="selectgallery_bulkaction" name="TB_bulkaction" value="" />
|
592 |
-
<input type="hidden" name="page" value="manage-images" />
|
593 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
594 |
-
<tr>
|
595 |
-
<th>
|
596 |
-
<?php _e('Select the destination gallery:', 'nggallery'); ?>
|
597 |
-
<select name="dest_gid" style="width:90%" >
|
598 |
-
<?php
|
599 |
-
foreach ($gallerylist as $gallery) {
|
600 |
-
if ($gallery->gid != $act_gid) {
|
601 |
-
?>
|
602 |
-
<option value="<?php echo $gallery->gid; ?>" ><?php echo $gallery->gid; ?> - <?php echo esc_attr( stripslashes($gallery->title) ); ?></option>
|
603 |
-
<?php
|
604 |
-
}
|
605 |
-
}
|
606 |
-
?>
|
607 |
-
</select>
|
608 |
-
</th>
|
609 |
-
</tr>
|
610 |
-
<tr align="right">
|
611 |
-
<td class="submit">
|
612 |
-
<input type="submit" class="button-primary" name="TB_SelectGallery" value="<?php _e("OK",'nggallery'); ?>" />
|
613 |
-
<input class="button-secondary dialog-cancel" type="reset" value="<?php _e("Cancel",'nggallery'); ?>" />
|
614 |
-
</td>
|
615 |
-
</tr>
|
616 |
-
</table>
|
617 |
-
</form>
|
618 |
-
</div>
|
619 |
-
<!-- /#selectgallery -->
|
620 |
-
|
621 |
-
<!-- #resize_images -->
|
622 |
-
<div id="resize_images" style="display: none;" >
|
623 |
-
<form id="form-resize-images" method="POST" accept-charset="utf-8">
|
624 |
-
<?php wp_nonce_field('ngg_thickbox_form') ?>
|
625 |
-
<input type="hidden" id="resize_images_imagelist" name="TB_imagelist" value="" />
|
626 |
-
<input type="hidden" id="resize_images_bulkaction" name="TB_bulkaction" value="" />
|
627 |
-
<input type="hidden" name="page" value="manage-images" />
|
628 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
629 |
-
<tr valign="top">
|
630 |
-
<td>
|
631 |
-
<strong><?php _e('Resize Images to', 'nggallery'); ?>:</strong>
|
632 |
-
</td>
|
633 |
-
<td>
|
634 |
-
<label for="imgWidth"><?php _e('Width','nggallery') ?></label>
|
635 |
-
<input type="number" step="1" min="0" class="small-text" name="imgWidth" id="imgWidth" class="small-text" value="<?php echo $ngg->options['imgWidth']; ?>" />
|
636 |
-
<label for="imgHeight"><?php _e('Height','nggallery') ?></label>
|
637 |
-
<input type="number" step="1" min="0" type="text" size="5" name="imgHeight" id="imgHeight" class="small-text" value="<?php echo $ngg->options['imgHeight']; ?>">
|
638 |
-
<p class="description"><?php _e('Width and height (in pixels). NextCellent Gallery will keep the ratio size.','nggallery') ?></p>
|
639 |
-
</td>
|
640 |
-
</tr>
|
641 |
-
<tr align="right">
|
642 |
-
<td colspan="2" class="submit">
|
643 |
-
<input class="button-primary" type="submit" name="TB_ResizeImages" value="<?php _e('OK', 'nggallery'); ?>" />
|
644 |
-
<input class="button-secondary dialog-cancel" type="reset" value=" <?php _e('Cancel', 'nggallery'); ?> " />
|
645 |
-
</td>
|
646 |
-
</tr>
|
647 |
-
</table>
|
648 |
-
</form>
|
649 |
-
</div>
|
650 |
-
<!-- /#resize_images -->
|
651 |
-
|
652 |
-
<!-- #new_thumbnail -->
|
653 |
-
<div id="new_thumbnail" style="display: none;" >
|
654 |
-
<form id="form-new-thumbnail" method="POST" accept-charset="utf-8">
|
655 |
-
<?php wp_nonce_field('ngg_thickbox_form') ?>
|
656 |
-
<input type="hidden" id="new_thumbnail_imagelist" name="TB_imagelist" value="" />
|
657 |
-
<input type="hidden" id="new_thumbnail_bulkaction" name="TB_bulkaction" value="" />
|
658 |
-
<input type="hidden" name="page" value="manage-images" />
|
659 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
660 |
-
<tr valign="top">
|
661 |
-
<th align="left"><?php _e('Size','nggallery') ?></th>
|
662 |
-
<td><label for="thumbwidth"><?php _e('Width','nggallery') ?> </label><input class="small-text" type="number" step="1" min="0" name="thumbwidth" id="thumbwidth" value="<?php echo $ngg->options['thumbwidth']; ?>" />
|
663 |
-
<label for="thumbheight"><?php _e('Height','nggallery') ?> </label><input class="small-text" type="number" step="1" min="0" name="thumbheight" id="thumbheight" value="<?php echo $ngg->options['thumbheight']; ?>" />
|
664 |
-
<p class="description"><?php _e('These values are maximum values ','nggallery') ?></p></td>
|
665 |
-
</tr>
|
666 |
-
<tr valign="top">
|
667 |
-
<th align="left"><?php _e('Fixed size','nggallery'); ?></th>
|
668 |
-
<td><input type="checkbox" name="thumbfix" id="thumbfix" value="1" <?php checked('1', $ngg->options['thumbfix']); ?> />
|
669 |
-
<label for="thumbfix"><?php _e('This will ignore the aspect ratio, so no portrait thumbnails','nggallery') ?></label></td>
|
670 |
-
</tr>
|
671 |
-
<tr align="right">
|
672 |
-
<td colspan="2" class="submit">
|
673 |
-
<input class="button-primary" type="submit" name="TB_NewThumbnail" value="<?php _e('OK', 'nggallery');?>" />
|
674 |
-
<input class="button-secondary dialog-cancel" type="reset" value=" <?php _e('Cancel', 'nggallery'); ?> " />
|
675 |
-
</td>
|
676 |
-
</tr>
|
677 |
-
</table>
|
678 |
-
</form>
|
679 |
-
</div>
|
680 |
-
<!-- /#new_thumbnail -->
|
681 |
-
|
682 |
-
<script type="text/javascript">
|
683 |
-
/* <![CDATA[ */
|
684 |
-
jQuery(document).ready(function(){columns.init('nggallery-manage-images');});
|
685 |
-
/* ]]> */
|
686 |
-
</script>
|
687 |
-
<?php
|
688 |
-
}
|
689 |
-
|
690 |
-
/**
|
691 |
-
* Constructor class to create the table layout
|
692 |
-
*
|
693 |
-
* @package WordPress
|
694 |
-
* @subpackage List_Table
|
695 |
-
* @since 1.8.0
|
696 |
-
* @access private
|
697 |
-
* 20150907: changes on WP_List_Table for WP 4.3.0 breaks code for List Tables. Fixed.
|
698 |
-
*/
|
699 |
-
class _NGG_Images_List_Table extends WP_List_Table {
|
700 |
-
var $screen;
|
701 |
-
var $_columns;
|
702 |
-
|
703 |
-
function _NGG_Images_List_Table( $screen ) {
|
704 |
-
if ( is_string( $screen ) )
|
705 |
-
$screen = convert_to_screen( $screen );
|
706 |
-
|
707 |
-
$this->screen = $screen;
|
708 |
-
$this->_columns = array() ;
|
709 |
-
|
710 |
-
add_filter( 'manage_' . $screen->id . '_columns', array( &$this, 'get_columns' ), 0 );
|
711 |
-
}
|
712 |
-
|
713 |
-
function get_column_info() {
|
714 |
-
|
715 |
-
$columns = get_column_headers( $this->screen );
|
716 |
-
$hidden = get_hidden_columns( $this->screen );
|
717 |
-
$_sortable = $this->get_sortable_columns();
|
718 |
-
$sortable = array();
|
719 |
-
|
720 |
-
foreach ( $_sortable as $id => $data ) {
|
721 |
-
if ( empty( $data ) )
|
722 |
-
continue;
|
723 |
-
|
724 |
-
$data = (array) $data;
|
725 |
-
if ( !isset( $data[1] ) )
|
726 |
-
$data[1] = false;
|
727 |
-
|
728 |
-
$sortable[$id] = $data;
|
729 |
-
}
|
730 |
-
|
731 |
-
if (method_exists($this,"get_primary_column_name")){ //works for WP 4.3.0 and up
|
732 |
-
return array( $columns, $hidden, $sortable, $this->get_primary_column_name() );
|
733 |
-
}
|
734 |
-
return array( $columns, $hidden, $sortable );
|
735 |
-
}
|
736 |
-
|
737 |
-
// define the columns to display, the syntax is 'internal name' => 'display name'
|
738 |
-
function get_columns() {
|
739 |
-
$columns = array();
|
740 |
-
|
741 |
-
$columns['cb'] = '<input name="checkall" type="checkbox" onclick="checkAll(document.getElementById(\'updategallery\'));" />';
|
742 |
-
$columns['id'] = __('ID');
|
743 |
-
$columns['thumbnail'] = __('Thumbnail', 'nggallery');
|
744 |
-
$columns['filename'] = __('Filename', 'nggallery');
|
745 |
-
$columns['alt_title_desc'] = __('Alt & Title Text', 'nggallery') . ' / ' . __('Description', 'nggallery');
|
746 |
-
$columns['tags'] = __('Tags', 'nggallery');
|
747 |
-
$columns['exclude'] = __('Exclude', 'nggallery');
|
748 |
-
|
749 |
-
$columns = apply_filters('ngg_manage_images_columns', $columns);
|
750 |
-
|
751 |
-
return $columns;
|
752 |
-
}
|
753 |
-
|
754 |
-
function get_sortable_columns() {
|
755 |
-
return array();
|
756 |
-
}
|
757 |
-
}
|
758 |
-
|
759 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/manage-sort.php
DELETED
@@ -1,118 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* @author Alex Rabe
|
5 |
-
*
|
6 |
-
*/
|
7 |
-
|
8 |
-
function nggallery_sortorder($galleryID = 0){
|
9 |
-
global $wpdb, $ngg, $nggdb;
|
10 |
-
|
11 |
-
if ($galleryID == 0) return;
|
12 |
-
|
13 |
-
$galleryID = (int) $galleryID;
|
14 |
-
|
15 |
-
if (isset ($_POST['updateSortorder'])) {
|
16 |
-
check_admin_referer('ngg_updatesortorder');
|
17 |
-
|
18 |
-
// get variable new sortorder
|
19 |
-
$sortArray = explode(",", $_POST['sortorder']);
|
20 |
-
if (is_array($sortArray)){
|
21 |
-
$neworder = array();
|
22 |
-
|
23 |
-
foreach($sortArray as $pid) {
|
24 |
-
$pid = substr($pid, 4); // get id from "pid-x"
|
25 |
-
$neworder[] = (int) $pid;
|
26 |
-
}
|
27 |
-
$sortindex = 1;
|
28 |
-
foreach($neworder as $pic_id) {
|
29 |
-
$wpdb->query("UPDATE $wpdb->nggpictures SET sortorder = '$sortindex' WHERE pid = $pic_id");
|
30 |
-
$sortindex++;
|
31 |
-
}
|
32 |
-
|
33 |
-
do_action('ngg_gallery_sort', $galleryID);
|
34 |
-
|
35 |
-
nggGallery::show_message(__('Sort order changed','nggallery'));
|
36 |
-
}
|
37 |
-
}
|
38 |
-
|
39 |
-
// look for presort args
|
40 |
-
$presort = isset($_GET['presort']) ? $_GET['presort'] : false;
|
41 |
-
$dir = ( isset($_GET['dir']) && $_GET['dir'] == 'DESC' ) ? 'DESC' : 'ASC';
|
42 |
-
$sortitems = array('pid', 'filename', 'alttext', 'imagedate');
|
43 |
-
// ensure that nobody added some evil sorting :-)
|
44 |
-
if (in_array( $presort, $sortitems) )
|
45 |
-
$picturelist = $nggdb->get_gallery($galleryID, $presort, $dir, false);
|
46 |
-
else
|
47 |
-
$picturelist = $nggdb->get_gallery($galleryID, 'sortorder', $dir, false);
|
48 |
-
|
49 |
-
//this is the url without any presort variable
|
50 |
-
$clean_url = 'admin.php?page=nggallery-manage-gallery&mode=sort&gid=' . $galleryID;
|
51 |
-
//if we go back , then the mode should be edit
|
52 |
-
$back_url = 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $galleryID;
|
53 |
-
|
54 |
-
// In the case somebody presort, then we take this url
|
55 |
-
if ( isset($_GET['dir']) || isset($_GET['presort']) )
|
56 |
-
$base_url = $_SERVER['REQUEST_URI'];
|
57 |
-
else
|
58 |
-
$base_url = $clean_url;
|
59 |
-
|
60 |
-
?>
|
61 |
-
<script type="text/javascript">
|
62 |
-
// seralize the ImageOrder
|
63 |
-
function saveImageOrder() {
|
64 |
-
var objects = document.getElementsByClassName('imageBox');
|
65 |
-
var serial = objects[0].id;
|
66 |
-
for( var no=1; no < objects.length; no++) {
|
67 |
-
serial += "," + objects[no].id;
|
68 |
-
}
|
69 |
-
jQuery('input[name=sortorder]').val(serial);
|
70 |
-
}
|
71 |
-
jQuery(document).ready(function($) {
|
72 |
-
$(".jqui-sortable").sortable({items: 'div.imageBox'});
|
73 |
-
});
|
74 |
-
</script>
|
75 |
-
<div class="wrap">
|
76 |
-
<form id="sortGallery" method="POST" action="<?php echo $clean_url ?>" onsubmit="saveImageOrder()" accept-charset="utf-8">
|
77 |
-
<h2><?php _e('Sort Gallery', 'nggallery') ?></h2>
|
78 |
-
<div class="tablenav">
|
79 |
-
<div class="alignleft actions">
|
80 |
-
<?php wp_nonce_field('ngg_updatesortorder') ?>
|
81 |
-
<input class="button-primary action" type="submit" name="updateSortorder" onclick="saveImageOrder()" value="<?php _e('Update Sort Order', 'nggallery') ?>" />
|
82 |
-
</div>
|
83 |
-
<div class="alignright actions">
|
84 |
-
<a href="<?php echo esc_url( $back_url ); ?>" class="button"><?php _e('Back to gallery', 'nggallery'); ?></a>
|
85 |
-
</div>
|
86 |
-
</div>
|
87 |
-
<input name="sortorder" type="hidden" />
|
88 |
-
<ul class="subsubsub">
|
89 |
-
<li><?php _e('Presort', 'nggallery') ?> :</li>
|
90 |
-
<li><a href="<?php echo esc_attr(remove_query_arg('presort', $base_url)); ?>" <?php if ($presort == '') echo 'class="current"'; ?>><?php _e('Unsorted', 'nggallery') ?></a> |</li>
|
91 |
-
<li><a href="<?php echo esc_attr(add_query_arg('presort', 'pid', $base_url)); ?>" <?php if ($presort == 'pid') echo 'class="current"'; ?>><?php _e('Image ID', 'nggallery') ?></a> |</li>
|
92 |
-
<li><a href="<?php echo esc_attr(add_query_arg('presort', 'filename', $base_url)); ?>" <?php if ($presort == 'filename') echo 'class="current"'; ?>><?php _e('Filename', 'nggallery') ?></a> |</li>
|
93 |
-
<li><a href="<?php echo esc_attr(add_query_arg('presort', 'alttext', $base_url)); ?>" <?php if ($presort == 'alttext') echo 'class="current"'; ?>><?php _e('Alt/Title text', 'nggallery') ?></a> |</li>
|
94 |
-
<li><a href="<?php echo esc_attr(add_query_arg('presort', 'imagedate', $base_url)); ?>" <?php if ($presort == 'imagedate') echo 'class="current"'; ?>><?php _e('Date/Time', 'nggallery') ?></a> |</li>
|
95 |
-
<li><a href="<?php echo esc_attr(add_query_arg('dir', 'ASC', $base_url)); ?>" <?php if ($dir == 'ASC') echo 'class="current"'; ?>><?php _e('Ascending', 'nggallery') ?></a> |</li>
|
96 |
-
<li><a href="<?php echo esc_attr(add_query_arg('dir', 'DESC', $base_url)); ?>" <?php if ($dir == 'DESC') echo 'class="current"'; ?>><?php _e('Descending', 'nggallery') ?></a></li>
|
97 |
-
</ul>
|
98 |
-
</form>
|
99 |
-
<div id="debug" style="clear:both"></div>
|
100 |
-
<div class='jqui-sortable'>
|
101 |
-
<?php
|
102 |
-
if($picturelist) {
|
103 |
-
foreach($picturelist as $picture) {
|
104 |
-
?>
|
105 |
-
<div class="imageBox" id="pid-<?php echo $picture->pid ?>">
|
106 |
-
<div class="imageBox_theImage" style="background-image:url('<?php echo esc_url( $picture->thumbURL ); ?>')"></div>
|
107 |
-
<div class="imageBox_label"><span><?php echo esc_html( stripslashes($picture->alttext) ); ?></span></div>
|
108 |
-
</div>
|
109 |
-
<?php
|
110 |
-
}
|
111 |
-
}
|
112 |
-
?>
|
113 |
-
</div>
|
114 |
-
</div>
|
115 |
-
|
116 |
-
<?php
|
117 |
-
}
|
118 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/manage.php
DELETED
@@ -1,666 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
4 |
-
|
5 |
-
class nggManageGallery {
|
6 |
-
|
7 |
-
var $mode = 'main';
|
8 |
-
var $gid = false;
|
9 |
-
var $pid = false;
|
10 |
-
var $base_page = 'admin.php?page=nggallery-manage-gallery';
|
11 |
-
var $search_result = false;
|
12 |
-
|
13 |
-
// initiate the manage page
|
14 |
-
function nggManageGallery() {
|
15 |
-
|
16 |
-
// GET variables
|
17 |
-
if( isset($_GET['gid']) )
|
18 |
-
$this->gid = (int) $_GET['gid'];
|
19 |
-
if( isset($_GET['pid']) )
|
20 |
-
$this->pid = (int) $_GET['pid'];
|
21 |
-
if( isset($_GET['mode']) )
|
22 |
-
$this->mode = trim ($_GET['mode']);
|
23 |
-
// Check for pagination request, avoid post process of other submit button, exclude search results
|
24 |
-
if ( isset($_POST['post_paged']) && !isset($_GET['s'] ) ) {
|
25 |
-
if ( $_GET['paged'] != $_POST['post_paged'] ) {
|
26 |
-
$_GET['paged'] = absint( $_POST['post_paged'] );
|
27 |
-
return;
|
28 |
-
}
|
29 |
-
}
|
30 |
-
// Should be only called via manage galleries overview
|
31 |
-
if ( isset($_POST['page']) && $_POST['page'] == 'manage-galleries' )
|
32 |
-
$this->post_processor_galleries();
|
33 |
-
// Should be only called via a edit single gallery page
|
34 |
-
if ( isset($_POST['page']) && $_POST['page'] == 'manage-images' )
|
35 |
-
$this->post_processor_images();
|
36 |
-
// Should be called via a publish dialog
|
37 |
-
if ( isset($_POST['page']) && $_POST['page'] == 'publish-post' )
|
38 |
-
$this->publish_post();
|
39 |
-
//Look for other POST process
|
40 |
-
if ( !empty($_POST) || !empty($_GET) )
|
41 |
-
$this->processor();
|
42 |
-
|
43 |
-
}
|
44 |
-
|
45 |
-
function controller() {
|
46 |
-
|
47 |
-
switch($this->mode) {
|
48 |
-
case 'sort':
|
49 |
-
include_once (dirname (__FILE__) . '/manage-sort.php');
|
50 |
-
nggallery_sortorder($this->gid);
|
51 |
-
break;
|
52 |
-
case 'edit':
|
53 |
-
include_once (dirname (__FILE__) . '/manage-images.php');
|
54 |
-
nggallery_picturelist();
|
55 |
-
break;
|
56 |
-
case 'main':
|
57 |
-
default:
|
58 |
-
include_once (dirname (__FILE__) . '/manage-galleries.php');
|
59 |
-
nggallery_manage_gallery_main();
|
60 |
-
break;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
|
64 |
-
function processor() {
|
65 |
-
|
66 |
-
global $wpdb, $ngg, $nggdb;
|
67 |
-
|
68 |
-
// Delete a picture
|
69 |
-
if ($this->mode == 'delpic') {
|
70 |
-
|
71 |
-
//TODO:Remove also Tag reference
|
72 |
-
check_admin_referer('ngg_delpicture');
|
73 |
-
$image = $nggdb->find_image( $this->pid );
|
74 |
-
if ($image) {
|
75 |
-
if ($ngg->options['deleteImg']) {
|
76 |
-
@unlink($image->imagePath);
|
77 |
-
@unlink($image->thumbPath);
|
78 |
-
@unlink($image->imagePath . '_backup' );
|
79 |
-
}
|
80 |
-
do_action('ngg_delete_picture', $this->pid);
|
81 |
-
$result = nggdb::delete_image ( $this->pid );
|
82 |
-
}
|
83 |
-
|
84 |
-
if ($result)
|
85 |
-
nggGallery::show_message( __('Picture','nggallery').' \''.$this->pid.'\' '.__('deleted successfully','nggallery') );
|
86 |
-
|
87 |
-
$this->mode = 'edit'; // show pictures
|
88 |
-
|
89 |
-
}
|
90 |
-
|
91 |
-
// Recover picture from backup
|
92 |
-
if ($this->mode == 'recoverpic') {
|
93 |
-
|
94 |
-
check_admin_referer('ngg_recoverpicture');
|
95 |
-
$image = $nggdb->find_image( $this->pid );
|
96 |
-
// bring back the old image
|
97 |
-
nggAdmin::recover_image($image);
|
98 |
-
nggAdmin::create_thumbnail($image);
|
99 |
-
|
100 |
-
nggGallery::show_message(__('Operation successful. Please clear your browser cache.',"nggallery"));
|
101 |
-
|
102 |
-
$this->mode = 'edit'; // show pictures
|
103 |
-
|
104 |
-
}
|
105 |
-
|
106 |
-
// will be called after a ajax operation
|
107 |
-
if (isset ($_POST['ajax_callback'])) {
|
108 |
-
if ($_POST['ajax_callback'] == 1)
|
109 |
-
nggGallery::show_message(__('Operation successful. Please clear your browser cache.',"nggallery"));
|
110 |
-
}
|
111 |
-
|
112 |
-
// show sort order
|
113 |
-
if ( isset ($_POST['sortGallery']) )
|
114 |
-
$this->mode = 'sort';
|
115 |
-
|
116 |
-
if ( isset ($_GET['s']) )
|
117 |
-
$this->search_images();
|
118 |
-
|
119 |
-
}
|
120 |
-
|
121 |
-
function post_processor_galleries() {
|
122 |
-
global $wpdb, $ngg, $nggdb;
|
123 |
-
|
124 |
-
// bulk update in a single gallery
|
125 |
-
if (isset ($_POST['bulkaction']) && isset ($_POST['doaction'])) {
|
126 |
-
|
127 |
-
check_admin_referer('ngg_bulkgallery');
|
128 |
-
|
129 |
-
switch ($_POST['bulkaction']) {
|
130 |
-
case 'no_action';
|
131 |
-
// No action
|
132 |
-
break;
|
133 |
-
case 'recover_images':
|
134 |
-
// Recover images from backup
|
135 |
-
// A prefix 'gallery_' will first fetch all ids from the selected galleries
|
136 |
-
nggAdmin::do_ajax_operation( 'gallery_recover_image' , $_POST['doaction'], __('Recover from backup','nggallery') );
|
137 |
-
break;
|
138 |
-
case 'set_watermark':
|
139 |
-
// Set watermark
|
140 |
-
// A prefix 'gallery_' will first fetch all ids from the selected galleries
|
141 |
-
nggAdmin::do_ajax_operation( 'gallery_set_watermark' , $_POST['doaction'], __('Set watermark','nggallery') );
|
142 |
-
break;
|
143 |
-
case 'import_meta':
|
144 |
-
// Import Metadata
|
145 |
-
// A prefix 'gallery_' will first fetch all ids from the selected galleries
|
146 |
-
nggAdmin::do_ajax_operation( 'gallery_import_metadata' , $_POST['doaction'], __('Import metadata','nggallery') );
|
147 |
-
break;
|
148 |
-
case 'delete_gallery':
|
149 |
-
// Delete gallery
|
150 |
-
if ( is_array($_POST['doaction']) ) {
|
151 |
-
$deleted = false;
|
152 |
-
foreach ( $_POST['doaction'] as $id ) {
|
153 |
-
// get the path to the gallery
|
154 |
-
$gallery = nggdb::find_gallery($id);
|
155 |
-
if ($gallery){
|
156 |
-
//TODO:Remove also Tag reference, look here for ids instead filename
|
157 |
-
$imagelist = $wpdb->get_col("SELECT filename FROM $wpdb->nggpictures WHERE galleryid = '$gallery->gid' ");
|
158 |
-
if ($ngg->options['deleteImg']) {
|
159 |
-
if (is_array($imagelist)) {
|
160 |
-
foreach ($imagelist as $filename) {
|
161 |
-
@unlink(WINABSPATH . $gallery->path . '/thumbs/thumbs_' . $filename);
|
162 |
-
@unlink(WINABSPATH . $gallery->path .'/'. $filename);
|
163 |
-
@unlink(WINABSPATH . $gallery->path .'/'. $filename . '_backup');
|
164 |
-
}
|
165 |
-
}
|
166 |
-
// delete folder
|
167 |
-
@rmdir( WINABSPATH . $gallery->path . '/thumbs' );
|
168 |
-
@rmdir( WINABSPATH . $gallery->path );
|
169 |
-
}
|
170 |
-
}
|
171 |
-
do_action('ngg_delete_gallery', $id);
|
172 |
-
$deleted = nggdb::delete_gallery( $id );
|
173 |
-
}
|
174 |
-
|
175 |
-
if($deleted)
|
176 |
-
nggGallery::show_message(__('Gallery deleted successfully ', 'nggallery'));
|
177 |
-
|
178 |
-
}
|
179 |
-
break;
|
180 |
-
}
|
181 |
-
}
|
182 |
-
|
183 |
-
if (isset ($_POST['addgallery']) && isset ($_POST['galleryname'])){
|
184 |
-
|
185 |
-
check_admin_referer('ngg_addgallery');
|
186 |
-
|
187 |
-
if ( !nggGallery::current_user_can( 'NextGEN Add new gallery' ))
|
188 |
-
wp_die(__('Cheatin’ uh?'));
|
189 |
-
|
190 |
-
// get the default path for a new gallery
|
191 |
-
$defaultpath = $ngg->options['gallerypath'];
|
192 |
-
$newgallery = esc_attr( $_POST['galleryname']);
|
193 |
-
if ( !empty($newgallery) )
|
194 |
-
nggAdmin::create_gallery($newgallery, $defaultpath);
|
195 |
-
|
196 |
-
do_action( 'ngg_update_addgallery_page' );
|
197 |
-
}
|
198 |
-
|
199 |
-
if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_ResizeImages'])) {
|
200 |
-
|
201 |
-
check_admin_referer('ngg_thickbox_form');
|
202 |
-
|
203 |
-
//save the new values for the next operation
|
204 |
-
$ngg->options['imgWidth'] = (int) $_POST['imgWidth'];
|
205 |
-
$ngg->options['imgHeight'] = (int) $_POST['imgHeight'];
|
206 |
-
// What is in the case the user has no if cap 'NextGEN Change options' ? Check feedback
|
207 |
-
update_option('ngg_options', $ngg->options);
|
208 |
-
|
209 |
-
$gallery_ids = explode(',', $_POST['TB_imagelist']);
|
210 |
-
// A prefix 'gallery_' will first fetch all ids from the selected galleries
|
211 |
-
nggAdmin::do_ajax_operation( 'gallery_resize_image' , $gallery_ids, __('Resize images','nggallery') );
|
212 |
-
}
|
213 |
-
|
214 |
-
if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_NewThumbnail'])) {
|
215 |
-
|
216 |
-
check_admin_referer('ngg_thickbox_form');
|
217 |
-
|
218 |
-
//save the new values for the next operation
|
219 |
-
$ngg->options['thumbwidth'] = (int) $_POST['thumbwidth'];
|
220 |
-
$ngg->options['thumbheight'] = (int) $_POST['thumbheight'];
|
221 |
-
$ngg->options['thumbfix'] = isset ($_POST['thumbfix']) ? true : false;
|
222 |
-
// What is in the case the user has no if cap 'NextGEN Change options' ? Check feedback
|
223 |
-
update_option('ngg_options', $ngg->options);
|
224 |
-
|
225 |
-
$gallery_ids = explode(',', $_POST['TB_imagelist']);
|
226 |
-
// A prefix 'gallery_' will first fetch all ids from the selected galleries
|
227 |
-
nggAdmin::do_ajax_operation( 'gallery_create_thumbnail' , $gallery_ids, __('Create new thumbnails','nggallery') );
|
228 |
-
}
|
229 |
-
|
230 |
-
}
|
231 |
-
|
232 |
-
function post_processor_images() {
|
233 |
-
global $wpdb, $ngg, $nggdb;
|
234 |
-
|
235 |
-
// bulk update in a single gallery
|
236 |
-
if (isset ($_POST['bulkaction']) && isset ($_POST['doaction'])) {
|
237 |
-
|
238 |
-
check_admin_referer('ngg_updategallery');
|
239 |
-
|
240 |
-
switch ($_POST['bulkaction']) {
|
241 |
-
case 'no_action';
|
242 |
-
break;
|
243 |
-
case 'rotate_cw':
|
244 |
-
nggAdmin::do_ajax_operation( 'rotate_cw' , $_POST['doaction'], __('Rotate images', 'nggallery') );
|
245 |
-
break;
|
246 |
-
case 'rotate_ccw':
|
247 |
-
nggAdmin::do_ajax_operation( 'rotate_ccw' , $_POST['doaction'], __('Rotate images', 'nggallery') );
|
248 |
-
break;
|
249 |
-
case 'recover_images':
|
250 |
-
nggAdmin::do_ajax_operation( 'recover_image' , $_POST['doaction'], __('Recover from backup', 'nggallery') );
|
251 |
-
break;
|
252 |
-
case 'set_watermark':
|
253 |
-
nggAdmin::do_ajax_operation( 'set_watermark' , $_POST['doaction'], __('Set watermark', 'nggallery') );
|
254 |
-
break;
|
255 |
-
case 'delete_images':
|
256 |
-
if ( is_array($_POST['doaction']) ) {
|
257 |
-
foreach ( $_POST['doaction'] as $imageID ) {
|
258 |
-
$image = $nggdb->find_image( $imageID );
|
259 |
-
if ($image) {
|
260 |
-
if ($ngg->options['deleteImg']) {
|
261 |
-
@unlink($image->imagePath);
|
262 |
-
@unlink($image->thumbPath);
|
263 |
-
@unlink($image->imagePath."_backup");
|
264 |
-
}
|
265 |
-
do_action('ngg_delete_picture', $image->pid);
|
266 |
-
$delete_pic = nggdb::delete_image( $image->pid );
|
267 |
-
}
|
268 |
-
}
|
269 |
-
if($delete_pic)
|
270 |
-
nggGallery::show_message(__('Pictures deleted successfully ', 'nggallery'));
|
271 |
-
}
|
272 |
-
break;
|
273 |
-
case 'import_meta':
|
274 |
-
nggAdmin::do_ajax_operation( 'import_metadata' , $_POST['doaction'], __('Import metadata', 'nggallery') );
|
275 |
-
break;
|
276 |
-
}
|
277 |
-
}
|
278 |
-
|
279 |
-
if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_ResizeImages'])) {
|
280 |
-
|
281 |
-
check_admin_referer('ngg_thickbox_form');
|
282 |
-
|
283 |
-
//save the new values for the next operation
|
284 |
-
$ngg->options['imgWidth'] = (int) $_POST['imgWidth'];
|
285 |
-
$ngg->options['imgHeight'] = (int) $_POST['imgHeight'];
|
286 |
-
|
287 |
-
update_option('ngg_options', $ngg->options);
|
288 |
-
|
289 |
-
$pic_ids = explode(',', $_POST['TB_imagelist']);
|
290 |
-
nggAdmin::do_ajax_operation( 'resize_image' , $pic_ids, __('Resize images','nggallery') );
|
291 |
-
}
|
292 |
-
|
293 |
-
if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_NewThumbnail'])) {
|
294 |
-
|
295 |
-
check_admin_referer('ngg_thickbox_form');
|
296 |
-
|
297 |
-
//save the new values for the next operation
|
298 |
-
$ngg->options['thumbwidth'] = (int) $_POST['thumbwidth'];
|
299 |
-
$ngg->options['thumbheight'] = (int) $_POST['thumbheight'];
|
300 |
-
$ngg->options['thumbfix'] = isset ( $_POST['thumbfix'] ) ? true : false;
|
301 |
-
update_option('ngg_options', $ngg->options);
|
302 |
-
|
303 |
-
$pic_ids = explode(',', $_POST['TB_imagelist']);
|
304 |
-
nggAdmin::do_ajax_operation( 'create_thumbnail' , $pic_ids, __('Create new thumbnails','nggallery') );
|
305 |
-
}
|
306 |
-
|
307 |
-
if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_SelectGallery'])) {
|
308 |
-
|
309 |
-
check_admin_referer('ngg_thickbox_form');
|
310 |
-
|
311 |
-
$pic_ids = explode(',', $_POST['TB_imagelist']);
|
312 |
-
$dest_gid = (int) $_POST['dest_gid'];
|
313 |
-
|
314 |
-
switch ($_POST['TB_bulkaction']) {
|
315 |
-
case 'copy_to':
|
316 |
-
// Copy images
|
317 |
-
nggAdmin::copy_images( $pic_ids, $dest_gid );
|
318 |
-
break;
|
319 |
-
case 'move_to':
|
320 |
-
// Move images
|
321 |
-
nggAdmin::move_images( $pic_ids, $dest_gid );
|
322 |
-
break;
|
323 |
-
}
|
324 |
-
}
|
325 |
-
|
326 |
-
if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_EditTags'])) {
|
327 |
-
// do tags update
|
328 |
-
|
329 |
-
check_admin_referer('ngg_thickbox_form');
|
330 |
-
|
331 |
-
// get the images list
|
332 |
-
$pic_ids = explode(',', $_POST['TB_imagelist']);
|
333 |
-
$taglist = explode(',', $_POST['taglist']);
|
334 |
-
$taglist = array_map('trim', $taglist);
|
335 |
-
|
336 |
-
if (is_array($pic_ids)) {
|
337 |
-
|
338 |
-
foreach($pic_ids as $pic_id) {
|
339 |
-
|
340 |
-
// which action should be performed ?
|
341 |
-
switch ($_POST['TB_bulkaction']) {
|
342 |
-
case 'no_action';
|
343 |
-
// No action
|
344 |
-
break;
|
345 |
-
case 'overwrite_tags':
|
346 |
-
// Overwrite tags
|
347 |
-
wp_set_object_terms($pic_id, $taglist, 'ngg_tag');
|
348 |
-
break;
|
349 |
-
case 'add_tags':
|
350 |
-
// Add / append tags
|
351 |
-
wp_set_object_terms($pic_id, $taglist, 'ngg_tag', TRUE);
|
352 |
-
break;
|
353 |
-
case 'delete_tags':
|
354 |
-
// Delete tags
|
355 |
-
$oldtags = wp_get_object_terms($pic_id, 'ngg_tag', 'fields=names');
|
356 |
-
// get the slugs, to vaoid case sensitive problems
|
357 |
-
$slugarray = array_map('sanitize_title', $taglist);
|
358 |
-
$oldtags = array_map('sanitize_title', $oldtags);
|
359 |
-
// compare them and return the diff
|
360 |
-
$newtags = array_diff($oldtags, $slugarray);
|
361 |
-
wp_set_object_terms($pic_id, $newtags, 'ngg_tag');
|
362 |
-
break;
|
363 |
-
}
|
364 |
-
}
|
365 |
-
|
366 |
-
nggGallery::show_message( __('Tags changed', 'nggallery') );
|
367 |
-
}
|
368 |
-
}
|
369 |
-
|
370 |
-
if (isset ($_POST['updatepictures']) ) {
|
371 |
-
// Update pictures
|
372 |
-
|
373 |
-
check_admin_referer('ngg_updategallery');
|
374 |
-
|
375 |
-
if ( nggGallery::current_user_can( 'NextGEN Edit gallery options' ) && !isset ($_GET['s']) ) {
|
376 |
-
|
377 |
-
if ( nggGallery::current_user_can( 'NextGEN Edit gallery title' )) {
|
378 |
-
// don't forget to update the slug
|
379 |
-
$slug = nggdb::get_unique_slug( sanitize_title( $_POST['title'] ), 'gallery', $this->gid );
|
380 |
-
$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET title= '%s', slug= '%s' WHERE gid = %d", esc_attr($_POST['title']), $slug, $this->gid) );
|
381 |
-
}
|
382 |
-
if ( nggGallery::current_user_can( 'NextGEN Edit gallery path' ))
|
383 |
-
$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET path= '%s' WHERE gid = %d", untrailingslashit ( str_replace('\\', '/', trim( stripslashes($_POST['path']) )) ), $this->gid ) );
|
384 |
-
if ( nggGallery::current_user_can( 'NextGEN Edit gallery description' ))
|
385 |
-
$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET galdesc= '%s' WHERE gid = %d", esc_attr( $_POST['gallerydesc'] ), $this->gid) );
|
386 |
-
if ( nggGallery::current_user_can( 'NextGEN Edit gallery page id' ))
|
387 |
-
$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET pageid= '%d' WHERE gid = %d", (int) $_POST['pageid'], $this->gid) );
|
388 |
-
if ( nggGallery::current_user_can( 'NextGEN Edit gallery preview pic' ))
|
389 |
-
$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET previewpic= '%d' WHERE gid = %d", (int) $_POST['previewpic'], $this->gid) );
|
390 |
-
if ( isset ($_POST['author']) && nggGallery::current_user_can( 'NextGEN Edit gallery author' ) )
|
391 |
-
$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET author= '%d' WHERE gid = %d", (int) $_POST['author'], $this->gid) );
|
392 |
-
|
393 |
-
wp_cache_delete($this->gid, 'ngg_gallery');
|
394 |
-
|
395 |
-
}
|
396 |
-
|
397 |
-
$this->update_pictures();
|
398 |
-
|
399 |
-
//hook for other plugin to update the fields
|
400 |
-
do_action('ngg_update_gallery', $this->gid, $_POST);
|
401 |
-
|
402 |
-
nggGallery::show_message(__('Update successful',"nggallery"));
|
403 |
-
}
|
404 |
-
|
405 |
-
if (isset ($_POST['scanfolder'])) {
|
406 |
-
// Rescan folder
|
407 |
-
check_admin_referer('ngg_updategallery');
|
408 |
-
|
409 |
-
$gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$this->gid' ");
|
410 |
-
nggAdmin::import_gallery($gallerypath);
|
411 |
-
}
|
412 |
-
|
413 |
-
if (isset ($_POST['oldscanfolder'])) {
|
414 |
-
// old rescan folder
|
415 |
-
check_admin_referer('ngg_updategallery');
|
416 |
-
|
417 |
-
$gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$this->gid' ");
|
418 |
-
nggAdmin::old_import_gallery($gallerypath);
|
419 |
-
}
|
420 |
-
|
421 |
-
if (isset ($_POST['addnewpage'])) {
|
422 |
-
// Add a new page
|
423 |
-
|
424 |
-
check_admin_referer('ngg_updategallery');
|
425 |
-
|
426 |
-
$parent_id = esc_attr($_POST['parent_id']);
|
427 |
-
$gallery_title = esc_attr($_POST['title']);
|
428 |
-
$gallery_name = $wpdb->get_var("SELECT name FROM $wpdb->nggallery WHERE gid = '$this->gid' ");
|
429 |
-
|
430 |
-
// Create a WP page
|
431 |
-
global $user_ID;
|
432 |
-
|
433 |
-
$page['post_type'] = 'page';
|
434 |
-
$page['post_content'] = '[nggallery id=' . $this->gid . ']';
|
435 |
-
$page['post_parent'] = $parent_id;
|
436 |
-
$page['post_author'] = $user_ID;
|
437 |
-
$page['post_status'] = 'publish';
|
438 |
-
$page['post_title'] = $gallery_title == '' ? $gallery_name : $gallery_title;
|
439 |
-
$page = apply_filters('ngg_add_new_page', $page, $this->gid);
|
440 |
-
|
441 |
-
$gallery_pageid = wp_insert_post ($page);
|
442 |
-
if ($gallery_pageid != 0) {
|
443 |
-
$result = $wpdb->query("UPDATE $wpdb->nggallery SET title= '$gallery_title', pageid = '$gallery_pageid' WHERE gid = '$this->gid'");
|
444 |
-
wp_cache_delete($this->gid, 'ngg_gallery');
|
445 |
-
nggGallery::show_message( __('New gallery page ID','nggallery'). ' ' . $gallery_pageid . ' -> <strong>' . $gallery_title . '</strong> ' .__('created','nggallery') );
|
446 |
-
}
|
447 |
-
|
448 |
-
do_action('ngg_gallery_addnewpage', $this->gid);
|
449 |
-
}
|
450 |
-
}
|
451 |
-
|
452 |
-
/**
|
453 |
-
* Publish a new post with the shortcode from the selected image
|
454 |
-
*
|
455 |
-
* @since 1.7.0
|
456 |
-
* @return void
|
457 |
-
*/
|
458 |
-
function publish_post() {
|
459 |
-
|
460 |
-
check_admin_referer('publish-post');
|
461 |
-
|
462 |
-
// Create a WP page
|
463 |
-
global $user_ID, $ngg;
|
464 |
-
|
465 |
-
$ngg->options['publish_width'] = (int) $_POST['width'];
|
466 |
-
$ngg->options['publish_height'] = (int) $_POST['height'];
|
467 |
-
$ngg->options['publish_align'] = $_POST['align'];
|
468 |
-
$align = ( $ngg->options['publish_align'] == 'none') ? '' : 'float='.$ngg->options['publish_align'];
|
469 |
-
|
470 |
-
//save the new values for the next operation
|
471 |
-
update_option('ngg_options', $ngg->options);
|
472 |
-
|
473 |
-
$post['post_type'] = 'post';
|
474 |
-
$post['post_content'] = '[singlepic id=' . intval($_POST['pid']) . ' w=' . $ngg->options['publish_width'] . ' h=' . $ngg->options['publish_height'] . ' ' . $align . ']';
|
475 |
-
$post['post_author'] = $user_ID;
|
476 |
-
$post['post_status'] = isset ( $_POST['publish'] ) ? 'publish' : 'draft';
|
477 |
-
$post['post_title'] = $_POST['post_title'];
|
478 |
-
$post = apply_filters('ngg_add_new_post', $post, $_POST['pid']);
|
479 |
-
|
480 |
-
$post_id = wp_insert_post ($post);
|
481 |
-
|
482 |
-
if ($post_id != 0)
|
483 |
-
nggGallery::show_message( __('Published a new post','nggallery') );
|
484 |
-
|
485 |
-
}
|
486 |
-
|
487 |
-
function update_pictures() {
|
488 |
-
global $wpdb, $nggdb;
|
489 |
-
|
490 |
-
//TODO:Error message when update failed
|
491 |
-
|
492 |
-
$description = isset ( $_POST['description'] ) ? $_POST['description'] : array();
|
493 |
-
$alttext = isset ( $_POST['alttext'] ) ? $_POST['alttext'] : array();
|
494 |
-
$exclude = isset ( $_POST['exclude'] ) ? $_POST['exclude'] : false;
|
495 |
-
$taglist = isset ( $_POST['tags'] ) ? $_POST['tags'] : false;
|
496 |
-
$pictures = isset ( $_POST['pid'] ) ? $_POST['pid'] : false;
|
497 |
-
$date = isset ( $_POST['date'] ) ? $_POST['date'] : "NOW()"; //Not sure if NOW() will work or not but in theory it should
|
498 |
-
|
499 |
-
if ( is_array($pictures) ){
|
500 |
-
foreach( $pictures as $pid ){
|
501 |
-
$image = $nggdb->find_image( $pid );
|
502 |
-
if ($image) {
|
503 |
-
// description field
|
504 |
-
$image->description = $description[$image->pid];
|
505 |
-
$image->date = $date[$image->pid];
|
506 |
-
// only uptade this field if someone change the alttext
|
507 |
-
if ( $image->alttext != $alttext[$image->pid] ) {
|
508 |
-
$image->alttext = $alttext[$image->pid];
|
509 |
-
$image->image_slug = nggdb::get_unique_slug( sanitize_title( $image->alttext ), 'image', $image->pid );
|
510 |
-
}
|
511 |
-
|
512 |
-
// set exclude flag
|
513 |
-
if ( is_array($exclude) )
|
514 |
-
$image->exclude = ( array_key_exists($image->pid, $exclude) )? 1 : 0;
|
515 |
-
else
|
516 |
-
$image->exclude = 0;
|
517 |
-
|
518 |
-
// update the database
|
519 |
-
$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggpictures SET image_slug = '%s', alttext = '%s', description = '%s', exclude = %d, imagedate = %s WHERE pid = %d",
|
520 |
-
$image->image_slug, $image->alttext, $image->description, $image->exclude, $image->date, $image->pid) );
|
521 |
-
// remove from cache
|
522 |
-
wp_cache_delete($image->pid, 'ngg_image');
|
523 |
-
|
524 |
-
// hook for other plugins after image is updated
|
525 |
-
do_action('ngg_image_updated', $image);
|
526 |
-
}
|
527 |
-
|
528 |
-
}
|
529 |
-
}
|
530 |
-
|
531 |
-
//TODO: This produce 300-400 queries !
|
532 |
-
if ( is_array($taglist) ){
|
533 |
-
foreach($taglist as $key=>$value) {
|
534 |
-
$tags = explode(',', $value);
|
535 |
-
wp_set_object_terms($key, $tags, 'ngg_tag');
|
536 |
-
}
|
537 |
-
}
|
538 |
-
|
539 |
-
return;
|
540 |
-
}
|
541 |
-
|
542 |
-
// Check if user can select a author
|
543 |
-
function get_editable_user_ids( $user_id, $exclude_zeros = true ) {
|
544 |
-
global $wpdb;
|
545 |
-
|
546 |
-
$user = new WP_User( $user_id );
|
547 |
-
|
548 |
-
if ( ! $user->has_cap('NextGEN Manage others gallery') ) {
|
549 |
-
if ( $user->has_cap('NextGEN Manage gallery') || $exclude_zeros == false )
|
550 |
-
return array($user->id);
|
551 |
-
else
|
552 |
-
return false;
|
553 |
-
}
|
554 |
-
|
555 |
-
$level_key = $wpdb->prefix . 'user_level';
|
556 |
-
$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'";
|
557 |
-
if ( $exclude_zeros )
|
558 |
-
$query .= " AND meta_value != '0'";
|
559 |
-
|
560 |
-
return $wpdb->get_col( $query );
|
561 |
-
}
|
562 |
-
|
563 |
-
function search_images() {
|
564 |
-
global $nggdb;
|
565 |
-
|
566 |
-
if ( empty($_GET['s']) )
|
567 |
-
return;
|
568 |
-
//on what ever reason I need to set again the query var
|
569 |
-
set_query_var('s', $_GET['s']);
|
570 |
-
$request = get_search_query();
|
571 |
-
|
572 |
-
// look now for the images
|
573 |
-
$search_for_images = (array) $nggdb->search_for_images( $request );
|
574 |
-
$search_for_tags = (array) nggTags::find_images_for_tags( $request , 'ASC' );
|
575 |
-
|
576 |
-
// finally merge the two results together
|
577 |
-
$this->search_result = array_merge( $search_for_images , $search_for_tags );
|
578 |
-
|
579 |
-
// TODO: Currently we didn't support a proper pagination
|
580 |
-
$nggdb->paged['total_objects'] = $nggdb->paged['objects_per_page'] = count ($this->search_result) ;
|
581 |
-
$nggdb->paged['max_objects_per_page'] = 1;
|
582 |
-
|
583 |
-
// show pictures page
|
584 |
-
$this->mode = 'edit';
|
585 |
-
}
|
586 |
-
|
587 |
-
/**
|
588 |
-
* Display the pagination.
|
589 |
-
*
|
590 |
-
* @since 1.8.0
|
591 |
-
* @author taken from WP core (see includes/class-wp-list-table.php)
|
592 |
-
* @return string echo the html pagination bar
|
593 |
-
*/
|
594 |
-
function pagination( $which, $current, $total_items, $per_page ) {
|
595 |
-
|
596 |
-
$total_pages = ($per_page > 0) ? ceil( $total_items / $per_page ) : 1;
|
597 |
-
|
598 |
-
$output = '<span class="displaying-num">' . sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
|
599 |
-
|
600 |
-
$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
|
601 |
-
|
602 |
-
$current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
|
603 |
-
|
604 |
-
$page_links = array();
|
605 |
-
|
606 |
-
$disable_first = $disable_last = '';
|
607 |
-
if ( $current == 1 )
|
608 |
-
$disable_first = ' disabled';
|
609 |
-
if ( $current == $total_pages )
|
610 |
-
$disable_last = ' disabled';
|
611 |
-
|
612 |
-
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
613 |
-
'first-page' . $disable_first,
|
614 |
-
esc_attr__( 'Go to the first page' ),
|
615 |
-
esc_url( remove_query_arg( 'paged', $current_url ) ),
|
616 |
-
'«'
|
617 |
-
);
|
618 |
-
|
619 |
-
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
620 |
-
'prev-page' . $disable_first,
|
621 |
-
esc_attr__( 'Go to the previous page' ),
|
622 |
-
esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ),
|
623 |
-
'‹'
|
624 |
-
);
|
625 |
-
|
626 |
-
if ( 'bottom' == $which )
|
627 |
-
$html_current_page = $current;
|
628 |
-
else
|
629 |
-
$html_current_page = sprintf( "<input class='current-page' title='%s' type='text' name='%s' value='%s' size='%d' />",
|
630 |
-
esc_attr__( 'Current page' ),
|
631 |
-
esc_attr( 'post_paged' ),
|
632 |
-
$current,
|
633 |
-
strlen( $total_pages )
|
634 |
-
);
|
635 |
-
|
636 |
-
$html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
|
637 |
-
$page_links[] = '<span class="paging-input">' . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . '</span>';
|
638 |
-
|
639 |
-
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
640 |
-
'next-page' . $disable_last,
|
641 |
-
esc_attr__( 'Go to the next page' ),
|
642 |
-
esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ),
|
643 |
-
'›'
|
644 |
-
);
|
645 |
-
|
646 |
-
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
647 |
-
'last-page' . $disable_last,
|
648 |
-
esc_attr__( 'Go to the last page' ),
|
649 |
-
esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
|
650 |
-
'»'
|
651 |
-
);
|
652 |
-
|
653 |
-
$output .= "\n<span class='pagination-links'>" . join( "\n", $page_links ) . '</span>';
|
654 |
-
|
655 |
-
if ( $total_pages )
|
656 |
-
$page_class = $total_pages < 2 ? ' one-page' : '';
|
657 |
-
else
|
658 |
-
$page_class = ' no-pages';
|
659 |
-
|
660 |
-
$pagination = "<div class='tablenav-pages{$page_class}'>$output</div>";
|
661 |
-
|
662 |
-
echo $pagination;
|
663 |
-
}
|
664 |
-
|
665 |
-
}
|
666 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/manage/actions.php
ADDED
@@ -0,0 +1,446 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This page manages the various actions that can be done when using the gallery overview.
|
4 |
+
*
|
5 |
+
* @access private
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once( '../../ngg-config.php' );
|
9 |
+
require_once( NGGALLERY_ABSPATH . '/lib/image.php' );
|
10 |
+
|
11 |
+
if ( ! is_user_logged_in() || ! current_user_can( 'NextGEN Manage gallery' ) ) {
|
12 |
+
wp_die( __( 'Cheatin’ uh?' ) );
|
13 |
+
}
|
14 |
+
|
15 |
+
$id = (int) $_GET['id'];
|
16 |
+
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Change the output based on which action the user wants to do.
|
20 |
+
* If you need scripts, you should register them with the parent page.
|
21 |
+
*/
|
22 |
+
switch ( $_GET['cmd'] ) {
|
23 |
+
case "rotate":
|
24 |
+
ngg_rotate( $id );
|
25 |
+
break;
|
26 |
+
case "edit_thumb":
|
27 |
+
ngg_edit_thumbnail( $id );
|
28 |
+
break;
|
29 |
+
case "show_meta":
|
30 |
+
ngg_show_meta( $id );
|
31 |
+
break;
|
32 |
+
default:
|
33 |
+
//Do nothing.
|
34 |
+
break;
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Display the page to rotate an image.
|
39 |
+
*
|
40 |
+
* @param $id int The ID of the image.
|
41 |
+
*/
|
42 |
+
function ngg_rotate( $id ) {
|
43 |
+
//Include the graphics library
|
44 |
+
include_once( nggGallery::graphic_library() );
|
45 |
+
|
46 |
+
//Get the image data
|
47 |
+
$picture = nggdb::find_image( $id );
|
48 |
+
$thumb = new ngg_Thumbnail( $picture->imagePath, true );
|
49 |
+
$thumb->resize( 350, 350 );
|
50 |
+
|
51 |
+
// we need the new dimension
|
52 |
+
$resizedPreviewInfo = $thumb->newDimensions;
|
53 |
+
$thumb->destruct();
|
54 |
+
|
55 |
+
$preview_image = trailingslashit( home_url() ) . 'index.php?callback=image&pid=' . $picture->pid . '&width=500&height=500';
|
56 |
+
|
57 |
+
?>
|
58 |
+
<p><?php _e( 'Select how you would like to rotate the image on the left.', 'nggallery' ); ?></p>
|
59 |
+
<table align="center" width="90%">
|
60 |
+
<tr>
|
61 |
+
<td style="text-align: center; vertical-align: middle">
|
62 |
+
<img src="<?php echo esc_url( $preview_image ); ?>" alt="" id="imageToEdit"/>
|
63 |
+
</td>
|
64 |
+
<td style="width: 200px;">
|
65 |
+
<label><input type="radio" name="ra" value="cw"><?php esc_html_e( '90° clockwise', 'nggallery' ); ?>
|
66 |
+
</label><br>
|
67 |
+
<label><input type="radio" name="ra" value="ccw"><?php esc_html_e( '90° anticlockwise',
|
68 |
+
'nggallery' ); ?></label><br>
|
69 |
+
<label><input type="radio" name="ra" value="fv"><?php esc_html_e( 'Flip horizontally', 'nggallery' ); ?>
|
70 |
+
</label><br>
|
71 |
+
<label><input type="radio" name="ra" value="fh"><?php esc_html_e( 'Flip vertically', 'nggallery' ); ?>
|
72 |
+
</label>
|
73 |
+
</td>
|
74 |
+
</tr>
|
75 |
+
<tr>
|
76 |
+
<td colspan="2">
|
77 |
+
<div id="thumbMsg" style="display : none; float:right; width:60%; height:2em; line-height:2em;"></div>
|
78 |
+
</td>
|
79 |
+
</tr>
|
80 |
+
</table>
|
81 |
+
<script type="text/javascript">
|
82 |
+
/**
|
83 |
+
* When pressed, send an AJAX request to rotate the image.
|
84 |
+
*/
|
85 |
+
doAction = function() {
|
86 |
+
var rotate_angle = jQuery('input[name=ra]:checked').val();
|
87 |
+
|
88 |
+
jQuery.ajax({
|
89 |
+
url: ajaxurl,
|
90 |
+
type: "POST",
|
91 |
+
data: {action: 'rotateImage', id: <?php echo $id ?>, ra: rotate_angle},
|
92 |
+
cache: false,
|
93 |
+
success: function() {
|
94 |
+
showMessage('<?php _e('Image rotated', 'nggallery'); ?>')
|
95 |
+
},
|
96 |
+
error: function() {
|
97 |
+
showMessage('<?php _e('Error rotating thumbnail', 'nggallery'); ?>')
|
98 |
+
}
|
99 |
+
});
|
100 |
+
};
|
101 |
+
</script>
|
102 |
+
<?php
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Show meta data about an image.
|
107 |
+
*
|
108 |
+
* @param $id int The ID of the image.
|
109 |
+
*/
|
110 |
+
function ngg_show_meta( $id ) {
|
111 |
+
include_once( NGGALLERY_ABSPATH . '/lib/meta.php' );
|
112 |
+
|
113 |
+
|
114 |
+
// let's get the meta data'
|
115 |
+
$meta = new nggMeta( $id );
|
116 |
+
$dbdata = $meta->get_saved_meta();
|
117 |
+
$exifdata = $meta->get_EXIF();
|
118 |
+
$iptcdata = $meta->get_IPTC();
|
119 |
+
$xmpdata = $meta->get_XMP();
|
120 |
+
$class = '';
|
121 |
+
|
122 |
+
?>
|
123 |
+
<!-- META DATA -->
|
124 |
+
<?php if ( $dbdata ) { ?>
|
125 |
+
<table id="the-list-x" style="width: 100%">
|
126 |
+
<thead style="text-align: left;">
|
127 |
+
<tr>
|
128 |
+
<th scope="col"><?php _e( 'Name', 'nggallery' ); ?></th>
|
129 |
+
<th scope="col"><?php _e( 'Value', 'nggallery' ); ?></th>
|
130 |
+
</tr>
|
131 |
+
</thead>
|
132 |
+
<?php
|
133 |
+
foreach ( $dbdata as $key => $value ) {
|
134 |
+
if ( is_array( $value ) ) {
|
135 |
+
continue;
|
136 |
+
}
|
137 |
+
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
138 |
+
echo '<tr ' . $class . '>
|
139 |
+
<td style="width:230px">' . esc_html( $meta->i8n_name( $key ) ) . '</td>
|
140 |
+
<td>' . esc_html( $value ) . '</td>
|
141 |
+
</tr>';
|
142 |
+
}
|
143 |
+
?>
|
144 |
+
</table>
|
145 |
+
<?php } else {
|
146 |
+
echo "<strong>" . __( 'No meta data saved', 'nggallery' ) . "</strong>";
|
147 |
+
} ?>
|
148 |
+
|
149 |
+
<!-- EXIF DATA -->
|
150 |
+
<?php if ( $exifdata ) { ?>
|
151 |
+
<h3><?php _e( 'EXIF Data', 'nggallery' ); ?></h3>
|
152 |
+
<?php if ( $exifdata ) { ?>
|
153 |
+
<table id="the-list-x" width="100%">
|
154 |
+
<thead style="text-align: left;">
|
155 |
+
<tr>
|
156 |
+
<th scope="col"><?php _e( 'Name', 'nggallery' ); ?></th>
|
157 |
+
<th scope="col"><?php _e( 'Value', 'nggallery' ); ?></th>
|
158 |
+
</tr>
|
159 |
+
</thead>
|
160 |
+
<?php
|
161 |
+
foreach ( $exifdata as $key => $value ) {
|
162 |
+
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
163 |
+
echo '<tr ' . $class . '>
|
164 |
+
<td style="width:230px">' . esc_html( $meta->i8n_name( $key ) ) . '</td>
|
165 |
+
<td>' . esc_html( $value ) . '</td>
|
166 |
+
</tr>';
|
167 |
+
}
|
168 |
+
?>
|
169 |
+
</table>
|
170 |
+
<?php } else {
|
171 |
+
echo "<strong>" . __( 'No exif data', 'nggallery' ) . "</strong>";
|
172 |
+
} ?>
|
173 |
+
<?php } ?>
|
174 |
+
|
175 |
+
<!-- IPTC DATA -->
|
176 |
+
<?php if ( $iptcdata ) { ?>
|
177 |
+
<h3><?php _e( 'IPTC Data', 'nggallery' ); ?></h3>
|
178 |
+
<table id="the-list-x" width="100%">
|
179 |
+
<thead style="text-align: left;">
|
180 |
+
<tr>
|
181 |
+
<th scope="col"><?php _e( 'Name', 'nggallery' ); ?></th>
|
182 |
+
<th scope="col"><?php _e( 'Value', 'nggallery' ); ?></th>
|
183 |
+
</tr>
|
184 |
+
</thead>
|
185 |
+
<?php
|
186 |
+
foreach ( $iptcdata as $key => $value ) {
|
187 |
+
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
188 |
+
echo '<tr ' . $class . '>
|
189 |
+
<td style="width:230px">' . esc_html( $meta->i8n_name( $key ) ) . '</td>
|
190 |
+
<td>' . esc_html( $value ) . '</td>
|
191 |
+
</tr>';
|
192 |
+
}
|
193 |
+
?>
|
194 |
+
</table>
|
195 |
+
<?php } ?>
|
196 |
+
|
197 |
+
<!-- XMP DATA -->
|
198 |
+
<?php if ( $xmpdata ) { ?>
|
199 |
+
<h3><?php _e( 'XMP Data', 'nggallery' ); ?></h3>
|
200 |
+
<table id="the-list-x" width="100%">
|
201 |
+
<thead>
|
202 |
+
<tr>
|
203 |
+
<th scope="col"><?php _e( 'Name', 'nggallery' ); ?></th>
|
204 |
+
<th scope="col"><?php _e( 'Value', 'nggallery' ); ?></th>
|
205 |
+
</tr>
|
206 |
+
</thead>
|
207 |
+
<?php
|
208 |
+
foreach ( $xmpdata as $key => $value ) {
|
209 |
+
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
210 |
+
echo '<tr ' . $class . '>
|
211 |
+
<td style="width:230px">' . esc_html( $meta->i8n_name( $key ) ) . '</td>
|
212 |
+
<td>' . esc_html( $value ) . '</td>
|
213 |
+
</tr>';
|
214 |
+
}
|
215 |
+
?>
|
216 |
+
</table>
|
217 |
+
<?php
|
218 |
+
} ?>
|
219 |
+
<script type="text/javascript">
|
220 |
+
doAction = defaultAction;
|
221 |
+
</script>
|
222 |
+
<?php
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* Show the interface to edit a thumbnail.
|
227 |
+
*
|
228 |
+
* @param $id int The ID of the image.
|
229 |
+
*
|
230 |
+
* @since 1.9.27 Totally remade with Fengyuan Chen's Cropper plugin.
|
231 |
+
* @see https://github.com/fengyuanchen/cropper
|
232 |
+
*/
|
233 |
+
function ngg_edit_thumbnail( $id ) {
|
234 |
+
|
235 |
+
/**
|
236 |
+
* @var $picture nggImage
|
237 |
+
*/
|
238 |
+
$picture = nggdb::find_image( $id );
|
239 |
+
|
240 |
+
$width = $picture->meta_data['width'];
|
241 |
+
$height = $picture->meta_data['height'];
|
242 |
+
|
243 |
+
?>
|
244 |
+
<table style="width: 100%">
|
245 |
+
<tr>
|
246 |
+
<td style="text-align: center; vertical-align: middle; width: 60%">
|
247 |
+
<div style="padding: 10px">
|
248 |
+
<button class="crop-action button button-small" data-method="zoom" data-option="0.1" type="button" title="<?php _e( 'Zoom In',
|
249 |
+
'nggallery' ); ?>">
|
250 |
+
<span class="dashicons dashicons-plus"></span>
|
251 |
+
</button>
|
252 |
+
<button class="crop-action button button-small" data-method="zoom" data-option="-0.1" type="button" title="<?php _e( 'Zoom Out',
|
253 |
+
'nggallery' ); ?>">
|
254 |
+
<span class="dashicons dashicons-minus"></span>
|
255 |
+
</button>
|
256 |
+
<button class="crop-action button button-small" data-method="rotate" data-option="-90" type="button" title="<?php _e( 'Rotate Left',
|
257 |
+
'nggallery' ); ?>">
|
258 |
+
<span class="dashicons dashicons-image-rotate-left"></span>
|
259 |
+
</button>
|
260 |
+
<button class="crop-action button button-small" data-method="rotate" data-option="90" type="button" title="<?php _e( 'Rotate Right',
|
261 |
+
'nggallery' ); ?>">
|
262 |
+
<span class="dashicons dashicons-image-rotate-right"></span>
|
263 |
+
</button>
|
264 |
+
<button class="crop-action button button-small" data-method="reset" type="button" title="<?php _e( 'Reset',
|
265 |
+
'nggallery' ); ?>">
|
266 |
+
<span class="dashicons dashicons-update"></span>
|
267 |
+
</button>
|
268 |
+
<button id="center-selection" class="button button-small" data-method="reset" type="button" title="<?php _e( 'Center selection',
|
269 |
+
'nggallery' ); ?>">
|
270 |
+
<span class="dashicons dashicons-align-center"></span>
|
271 |
+
</button>
|
272 |
+
</div>
|
273 |
+
<img src="<?php echo esc_url( $picture->imageURL ); ?>" alt="" id="imageToEdit" style="max-width: 100%; max-height: 100%; width: auto; height: auto;"/>
|
274 |
+
</td>
|
275 |
+
<td>
|
276 |
+
<div class="thumb-preview" style="max-width: 100%; width: 300px; height: 150px; overflow: hidden; margin-bottom: 10px; margin-left: auto; margin-right: auto; border: 1px solid black">
|
277 |
+
|
278 |
+
</div>
|
279 |
+
<!--<div id="actualThumb">
|
280 |
+
<img src="<?php echo esc_url( $picture->thumbURL ); ?>?<?php echo time() ?>" />
|
281 |
+
</div>-->
|
282 |
+
<table style="padding: 20px; width: 100%">
|
283 |
+
<tr>
|
284 |
+
<th colspan="2">
|
285 |
+
<?php _e( 'The parameters', 'nggallery' ); ?>
|
286 |
+
</th>
|
287 |
+
</tr>
|
288 |
+
<tr>
|
289 |
+
<td>
|
290 |
+
<?php /* translators: x position on a grid */ ?>
|
291 |
+
<label for="dataX"><?php _e( 'X', 'nggallery' ) ?></label>
|
292 |
+
</td>
|
293 |
+
<td style="text-align: right">
|
294 |
+
<?php /* translators: a measurement unit, stand for pixels */ ?>
|
295 |
+
<input id="dataX" type="number" placeholder="0"> <?php _e( 'px', 'nggallery' ) ?>
|
296 |
+
</td>
|
297 |
+
</tr>
|
298 |
+
<tr>
|
299 |
+
<td>
|
300 |
+
<?php /* translators: y position on a grid */ ?>
|
301 |
+
<label for="dataY"><?php _e( 'Y', 'nggallery' ) ?></label>
|
302 |
+
</td>
|
303 |
+
<td style="text-align: right">
|
304 |
+
<input id="dataY" type="number" placeholder="0"> <?php _e( 'px', 'nggallery' ) ?>
|
305 |
+
</td>
|
306 |
+
</tr>
|
307 |
+
<tr>
|
308 |
+
<td>
|
309 |
+
<label for="dataWidth"><?php _e( 'Width', 'nggallery' ) ?></label>
|
310 |
+
</td>
|
311 |
+
<td style="text-align: right">
|
312 |
+
<input id="dataWidth" type="number" placeholder="<?php echo $width ?>"> <?php _e( 'px',
|
313 |
+
'nggallery' ) ?>
|
314 |
+
</td>
|
315 |
+
</tr>
|
316 |
+
<tr>
|
317 |
+
<td>
|
318 |
+
<label for="dataHeight"><?php _e( 'Height', 'nggallery' ) ?></label>
|
319 |
+
</td>
|
320 |
+
<td style="text-align: right">
|
321 |
+
<input id="dataHeight" type="number" placeholder="<?php echo $height ?>"> <?php _e( 'px',
|
322 |
+
'nggallery' ) ?>
|
323 |
+
</td>
|
324 |
+
</tr>
|
325 |
+
<tr>
|
326 |
+
<td>
|
327 |
+
<label for="dataRotate"><?php _e( 'Rotation', 'nggallery' ) ?></label>
|
328 |
+
</td>
|
329 |
+
<td style="text-align: right">
|
330 |
+
<?php /* translators: stands for degrees, as in a rotation. Should be pretty short. */ ?>
|
331 |
+
<input id="dataRotate" type="number" placeholder="0"> <?php _e( 'deg', 'nggallery' ) ?>
|
332 |
+
</td>
|
333 |
+
</tr>
|
334 |
+
<tr>
|
335 |
+
<td colspan="2" style="text-align: right">
|
336 |
+
<button class="button button-secondary" type="button" id="apply-data" title="<?php _e( 'Apply the parameters',
|
337 |
+
'nggallery' ); ?>">
|
338 |
+
<?php _e( 'Apply', 'nggallery' ); ?>
|
339 |
+
</button>
|
340 |
+
</td>
|
341 |
+
</tr>
|
342 |
+
</table>
|
343 |
+
</td>
|
344 |
+
</tr>
|
345 |
+
<tr>
|
346 |
+
<td colspan="2">
|
347 |
+
<div id="thumbMsg" style="display : none; float:right; width:60%; height:2em; line-height:2em;"></div>
|
348 |
+
</td>
|
349 |
+
</tr>
|
350 |
+
</table>
|
351 |
+
<script type="text/javascript">
|
352 |
+
jQuery(document).ready(function() {
|
353 |
+
|
354 |
+
//Some common elements we need multiple times.
|
355 |
+
var $image = jQuery('#imageToEdit');
|
356 |
+
var $dataX = jQuery("#dataX");
|
357 |
+
var $dataY = jQuery("#dataY");
|
358 |
+
var $dataHeight = jQuery("#dataHeight");
|
359 |
+
var $dataWidth = jQuery("#dataWidth");
|
360 |
+
var $dataRotate = jQuery("#dataRotate");
|
361 |
+
|
362 |
+
/**
|
363 |
+
* Try and submit the new thumbnail.
|
364 |
+
*/
|
365 |
+
doAction = function() {
|
366 |
+
jQuery.ajax({
|
367 |
+
url: ajaxurl,
|
368 |
+
type: "POST",
|
369 |
+
data: {action: 'new_thumbnail', id: <?php echo $id ?>, newData: $image.cropper('getData', true)},
|
370 |
+
cache: false,
|
371 |
+
success: function(lol, hhh, xhr) {
|
372 |
+
console.log(lol);
|
373 |
+
jQuery(".wrap").append(lol);
|
374 |
+
showMessage('<?php _e('Thumbnail updated', 'nggallery'); ?>');
|
375 |
+
},
|
376 |
+
error: function(xhr) {
|
377 |
+
console.log(xhr.responseText);
|
378 |
+
showMessage('<?php _e('Error updating thumbnail', 'nggallery'); ?>');
|
379 |
+
}
|
380 |
+
});
|
381 |
+
};
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Properly destroy the cropper before destroying the dialog, or this gives errors.
|
385 |
+
*/
|
386 |
+
jQuery(".ngg-load-dialog").on("dialogbeforeclose", function() {
|
387 |
+
$image.cropper('destroy');
|
388 |
+
});
|
389 |
+
|
390 |
+
/**
|
391 |
+
* Set the action buttons.
|
392 |
+
*/
|
393 |
+
jQuery(".crop-action").click(function() {
|
394 |
+
var $element = jQuery(this);
|
395 |
+
$image.cropper($element.data('method'), $element.data('option'));
|
396 |
+
});
|
397 |
+
|
398 |
+
/**
|
399 |
+
* Allow manual apply of the data.
|
400 |
+
*/
|
401 |
+
jQuery("#apply-data").click(function() {
|
402 |
+
$image.cropper('setData', {
|
403 |
+
"x": parseInt($dataX.val()),
|
404 |
+
"y": parseInt($dataY.val()),
|
405 |
+
"width": parseInt($dataWidth.val()),
|
406 |
+
"height": parseInt($dataHeight.val()),
|
407 |
+
"rotate": parseInt($dataRotate.val())
|
408 |
+
});
|
409 |
+
});
|
410 |
+
|
411 |
+
/**
|
412 |
+
* Center the selection.
|
413 |
+
*/
|
414 |
+
jQuery("#center-selection").click(function() {
|
415 |
+
|
416 |
+
var width = parseInt($dataWidth.val());
|
417 |
+
var height = parseInt($dataHeight.val());
|
418 |
+
var img_width = <?php echo esc_js( $width ) ?>;
|
419 |
+
var img_height = <?php echo esc_js( $height ) ?>;
|
420 |
+
|
421 |
+
var x = Math.round((img_width - width) / 2);
|
422 |
+
var y = Math.round((img_height - height) / 2);
|
423 |
+
|
424 |
+
$image.cropper('setData', {
|
425 |
+
"x": x,
|
426 |
+
"y": y
|
427 |
+
});
|
428 |
+
});
|
429 |
+
|
430 |
+
/**
|
431 |
+
* Enable the cropper.
|
432 |
+
*/
|
433 |
+
$image.cropper({
|
434 |
+
preview: ".thumb-preview",
|
435 |
+
crop: function(data) {
|
436 |
+
$dataX.val(Math.round(data.x));
|
437 |
+
$dataY.val(Math.round(data.y));
|
438 |
+
$dataHeight.val(Math.round(data.height));
|
439 |
+
$dataWidth.val(Math.round(data.width));
|
440 |
+
$dataRotate.val(Math.round(data.rotate));
|
441 |
+
}
|
442 |
+
});
|
443 |
+
});
|
444 |
+
</script>
|
445 |
+
<?php
|
446 |
+
}
|
admin/manage/class-ngg-abstract-image-manager.php
ADDED
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once( 'class-ngg-manager.php' );
|
4 |
+
include_once( 'class-ngg-image-list-table.php' );
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Class NGG_Abstract_Image_Manager
|
8 |
+
*
|
9 |
+
* Contains some common methods to use when displaying images.
|
10 |
+
*/
|
11 |
+
abstract class NGG_Abstract_Image_Manager extends NGG_Manager {
|
12 |
+
|
13 |
+
public function display() {
|
14 |
+
|
15 |
+
parent::display();
|
16 |
+
|
17 |
+
if ( isset ( $_POST['update_images'] ) ) {
|
18 |
+
$this->handle_update_images();
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* @todo Make this better.
|
24 |
+
*/
|
25 |
+
protected function print_scripts() {
|
26 |
+
parent::print_scripts();
|
27 |
+
?>
|
28 |
+
<script type="text/javascript">
|
29 |
+
|
30 |
+
var defaultAction = function(dialog) {
|
31 |
+
jQuery(dialog).dialog('close');
|
32 |
+
};
|
33 |
+
|
34 |
+
var doAction = defaultAction;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Load the content with AJAX.
|
38 |
+
*/
|
39 |
+
jQuery('a.ngg-dialog').click(function() {
|
40 |
+
//Get the spinner.
|
41 |
+
var $spinner = jQuery("#spinner");
|
42 |
+
var $this = jQuery(this);
|
43 |
+
var action = $this.data("action");
|
44 |
+
var id = $this.data("id");
|
45 |
+
var base_url = "<?php echo esc_js(NGGALLERY_URLPATH) . "admin/manage/actions.php?cmd=" ?>";
|
46 |
+
|
47 |
+
if (!$spinner.length) {
|
48 |
+
jQuery("body").append('<div id="spinner"></div>');
|
49 |
+
}
|
50 |
+
|
51 |
+
$spinner.fadeIn();
|
52 |
+
|
53 |
+
var dialog = jQuery('<div style="display:none" class="ngg-load-dialog"></div>').appendTo('body');
|
54 |
+
// load the remote content
|
55 |
+
dialog.load(
|
56 |
+
base_url + action + "&id=" + id,
|
57 |
+
{},
|
58 |
+
function() {
|
59 |
+
jQuery('#spinner').hide();
|
60 |
+
//The doAction function must be defined in the actions.php file.
|
61 |
+
showDialog(dialog, ($this.attr('title')) ? $this.attr('title') : '', doAction);
|
62 |
+
}
|
63 |
+
);
|
64 |
+
//prevent the browser to follow the link
|
65 |
+
return false;
|
66 |
+
});
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Show a message on the image action modal window.
|
70 |
+
*
|
71 |
+
* @param message string The message.
|
72 |
+
*/
|
73 |
+
function showMessage(message) {
|
74 |
+
jQuery('#thumbMsg').html(message).css({'display': 'block'});
|
75 |
+
setTimeout(function() {
|
76 |
+
jQuery('#thumbMsg').fadeOut('slow');
|
77 |
+
}, 1500);
|
78 |
+
|
79 |
+
var d = new Date();
|
80 |
+
var $image = jQuery("#imageToEdit");
|
81 |
+
var newUrl = $image.attr("src") + "?" + d.getTime();
|
82 |
+
$image.attr("src", newUrl);
|
83 |
+
}
|
84 |
+
</script>
|
85 |
+
|
86 |
+
<?php
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @todo Make a real DAO system for NextCellent.
|
91 |
+
* @todo Make this a lot faster by merging all these database commands
|
92 |
+
*/
|
93 |
+
private function handle_update_images() {
|
94 |
+
|
95 |
+
if ( wp_verify_nonce( $_POST['_ngg_nonce_images'], 'ngg-update-images' ) === false ) {
|
96 |
+
nggGallery::show_error( __( 'You waited too long, or you cheated.', 'nggallery' ) );
|
97 |
+
|
98 |
+
return;
|
99 |
+
}
|
100 |
+
|
101 |
+
global $wpdb, $nggdb;
|
102 |
+
|
103 |
+
//TODO:Error message when update failed
|
104 |
+
|
105 |
+
$description = isset ( $_POST['description'] ) ? $_POST['description'] : array();
|
106 |
+
$alttext = isset ( $_POST['alttext'] ) ? $_POST['alttext'] : array();
|
107 |
+
$exclude = isset ( $_POST['exclude'] ) ? $_POST['exclude'] : false;
|
108 |
+
$taglist = isset ( $_POST['tags'] ) ? $_POST['tags'] : false;
|
109 |
+
$pictures = isset ( $_POST['pid'] ) ? $_POST['pid'] : false;
|
110 |
+
$date = isset ( $_POST['date'] ) ? $_POST['date'] : "NOW()"; //Not sure if NOW() will work or not but in theory it should
|
111 |
+
|
112 |
+
if ( is_array( $pictures ) ) {
|
113 |
+
foreach ( $pictures as $pid ) {
|
114 |
+
$image = $nggdb->find_image( $pid );
|
115 |
+
if ( $image ) {
|
116 |
+
// description field
|
117 |
+
$image->description = $description[ $image->pid ];
|
118 |
+
$image->date = $date[ $image->pid ];
|
119 |
+
// only uptade this field if someone change the alttext
|
120 |
+
if ( $image->alttext != $alttext[ $image->pid ] ) {
|
121 |
+
$image->alttext = $alttext[ $image->pid ];
|
122 |
+
$image->image_slug = nggdb::get_unique_slug( sanitize_title( $image->alttext ), 'image',
|
123 |
+
$image->pid );
|
124 |
+
}
|
125 |
+
|
126 |
+
// set exclude flag
|
127 |
+
if ( is_array( $exclude ) ) {
|
128 |
+
$image->exclude = ( array_key_exists( $image->pid, $exclude ) ) ? 1 : 0;
|
129 |
+
} else {
|
130 |
+
$image->exclude = 0;
|
131 |
+
}
|
132 |
+
|
133 |
+
// update the database
|
134 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggpictures SET image_slug = '%s', alttext = '%s', description = '%s', exclude = %d, imagedate = %s WHERE pid = %d",
|
135 |
+
$image->image_slug, $image->alttext, $image->description, $image->exclude, $image->date,
|
136 |
+
$image->pid ) );
|
137 |
+
// remove from cache
|
138 |
+
wp_cache_delete( $image->pid, 'ngg_image' );
|
139 |
+
|
140 |
+
// hook for other plugins after image is updated
|
141 |
+
do_action( 'ngg_image_updated', $image );
|
142 |
+
}
|
143 |
+
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
//TODO: This produce 300-400 queries !
|
148 |
+
if ( is_array( $taglist ) ) {
|
149 |
+
foreach ( $taglist as $key => $value ) {
|
150 |
+
$tags = explode( ',', $value );
|
151 |
+
wp_set_object_terms( $key, $tags, 'ngg_tag' );
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
nggGallery::show_message( __( 'Update successful', "nggallery" ) );
|
156 |
+
}
|
157 |
+
}
|
admin/manage/class-ngg-gallery-list-table.php
ADDED
@@ -0,0 +1,218 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! class_exists( 'WP_List_Table' ) ) {
|
4 |
+
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Class NGG_List_Table
|
9 |
+
*
|
10 |
+
* This class represents the listing of the galleries in the admin menu.
|
11 |
+
*
|
12 |
+
* This class was written with WP_List_Table from WordPress 4.3.
|
13 |
+
* If this doesn't work anymore in the future, it's because that class has changed.
|
14 |
+
*/
|
15 |
+
class NGG_Gallery_List_Table extends WP_List_Table {
|
16 |
+
|
17 |
+
private $base;
|
18 |
+
|
19 |
+
public function __construct( $base, $screen = null ) {
|
20 |
+
|
21 |
+
parent::__construct( array( 'screen' => $screen, 'plural' => 'ngg-manager' ) );
|
22 |
+
|
23 |
+
$this->base = $base;
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Prepare the items for the table to process
|
28 |
+
*
|
29 |
+
* @return Void
|
30 |
+
*/
|
31 |
+
public function prepare_items() {
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @global $nggdb nggdb
|
35 |
+
*/
|
36 |
+
global $nggdb;
|
37 |
+
|
38 |
+
$columns = $this->get_columns();
|
39 |
+
$hidden = $this->get_hidden_columns();
|
40 |
+
$sortable = $this->get_sortable_columns();
|
41 |
+
|
42 |
+
$this->_column_headers = array( $columns, $hidden, $sortable );
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Do the pagination.
|
46 |
+
*/
|
47 |
+
$currentPage = $this->get_pagenum();
|
48 |
+
$perPage = $this->get_items_per_page('ngg_galleries_per_page', 25);
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Sorting
|
52 |
+
*/
|
53 |
+
if ( ( isset ( $_GET['order'] ) && $_GET['order'] == 'desc' ) ) {
|
54 |
+
$order = 'DESC';
|
55 |
+
} else {
|
56 |
+
$order = 'ASC';
|
57 |
+
}
|
58 |
+
|
59 |
+
if ( ( isset ( $_GET['orderby'] ) && ( in_array( $_GET['orderby'], array( 'gid', 'title', 'author' ) ) ) ) ) {
|
60 |
+
$order_by = $_GET['orderby'];
|
61 |
+
} else {
|
62 |
+
$order_by = 'gid';
|
63 |
+
}
|
64 |
+
|
65 |
+
$start = ( $currentPage - 1 ) * $perPage;
|
66 |
+
$this->items = $nggdb->find_all_galleries( $order_by, $order, true, $perPage, $start, true );
|
67 |
+
|
68 |
+
$totalItems = (int) $nggdb->count_galleries();
|
69 |
+
|
70 |
+
$this->set_pagination_args( array(
|
71 |
+
'total_items' => $totalItems,
|
72 |
+
'per_page' => $perPage
|
73 |
+
) );
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Sort the items/
|
77 |
+
*/
|
78 |
+
usort( $this->items, array( $this, 'sort' ) );
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Get the hidden columns from the screen options.
|
83 |
+
*/
|
84 |
+
private function get_hidden_columns() {
|
85 |
+
return (array) get_user_option( 'manage' . $this->screen->id . 'columnshidden' );
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* The checkbox column.
|
90 |
+
*
|
91 |
+
* @param object $item
|
92 |
+
*
|
93 |
+
* @return string
|
94 |
+
*/
|
95 |
+
protected function column_cb( $item ) {
|
96 |
+
if ( nggAdmin::can_manage_this_gallery( $item->author ) ) {
|
97 |
+
return '<input name="doaction[]" type="checkbox" value="' . $item->gid . '" />';
|
98 |
+
} else {
|
99 |
+
return "";
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
protected function column_title( $item ) {
|
104 |
+
if ( nggAdmin::can_manage_this_gallery( $item->author ) ) {
|
105 |
+
$out = '<a href="' . wp_nonce_url( $this->base . '&mode=image&gid=' . $item->gid,
|
106 |
+
'ngg_editgallery' ) . '" class="edit" title="' . __( 'Edit' ) . '">';
|
107 |
+
$out .= esc_html( $item->title );
|
108 |
+
$out .= "</a>";
|
109 |
+
} else {
|
110 |
+
$out = esc_html( $item->title );
|
111 |
+
}
|
112 |
+
$out .= '<div class="row-actions"></div>';
|
113 |
+
|
114 |
+
return $out;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Define what data to show on each column of the table
|
119 |
+
*
|
120 |
+
* @param nggGallery $item Data
|
121 |
+
* @param String $column_name - Current column name
|
122 |
+
*
|
123 |
+
* @return Mixed
|
124 |
+
*/
|
125 |
+
protected function column_default( $item, $column_name ) {
|
126 |
+
switch ( $column_name ) {
|
127 |
+
case 'id':
|
128 |
+
return $item->gid;
|
129 |
+
case 'description':
|
130 |
+
return $item->galdesc;
|
131 |
+
case 'author':
|
132 |
+
return $item->author;
|
133 |
+
case 'page_id':
|
134 |
+
return $item->pageid;
|
135 |
+
case 'quantity':
|
136 |
+
return $item->counter;
|
137 |
+
default:
|
138 |
+
ob_start();
|
139 |
+
do_action( 'ngg_manage_gallery_custom_column', $column_name, $item->gid );
|
140 |
+
|
141 |
+
return ob_get_clean();
|
142 |
+
}
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* With this we can register the columns in the screen options.
|
147 |
+
*/
|
148 |
+
public static function get_columns_static() {
|
149 |
+
|
150 |
+
$columns = array(
|
151 |
+
'cb' => '<input type="checkbox" />',
|
152 |
+
'id' => __( 'ID', 'nggallery' ),
|
153 |
+
'title' => __( 'Title', 'nggallery' ),
|
154 |
+
'description' => __( 'Description', 'nggallery' ),
|
155 |
+
'author' => __( 'Author', 'nggallery' ),
|
156 |
+
'page_id' => __( 'Page ID', 'nggallery' ),
|
157 |
+
'quantity' => __( 'Images', 'nggallery' )
|
158 |
+
);
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Apply a filter to the columns.
|
162 |
+
*/
|
163 |
+
$columns = apply_filters( 'ngg_manage_gallery_columns', $columns );
|
164 |
+
|
165 |
+
return $columns;
|
166 |
+
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Get the columns.
|
171 |
+
*/
|
172 |
+
public function get_columns() {
|
173 |
+
|
174 |
+
return $this::get_columns_static();
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Get the sortable columns.
|
179 |
+
*/
|
180 |
+
protected function get_sortable_columns() {
|
181 |
+
return array(
|
182 |
+
'id' => array( 'gid', true ),
|
183 |
+
'title' => array( 'title', false ),
|
184 |
+
'author' => array( 'author', false )
|
185 |
+
);
|
186 |
+
}
|
187 |
+
|
188 |
+
private function sort( $a, $b ) {
|
189 |
+
|
190 |
+
if ( isset( $_GET['orderby'] ) && $_GET['orderby'] === 'title' ) {
|
191 |
+
$result = strnatcmp( $a->title, $b->title );
|
192 |
+
} else {
|
193 |
+
if ( isset( $_GET['orderby'] ) ) {
|
194 |
+
$orderby = $_GET['orderby'];
|
195 |
+
} else {
|
196 |
+
$orderby = 'gid';
|
197 |
+
}
|
198 |
+
$result = $a->{$orderby} - $b->{$orderby};
|
199 |
+
}
|
200 |
+
|
201 |
+
if ( ! isset( $_GET['order'] ) || $_GET['order'] === 'asc' ) {
|
202 |
+
return $result;
|
203 |
+
} else {
|
204 |
+
return - $result;
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
208 |
+
protected function get_bulk_actions() {
|
209 |
+
return array(
|
210 |
+
'delete_gallery' => __( 'Delete', 'nggallery' ),
|
211 |
+
'set_watermark' => __( 'Set watermark', 'nggallery' ),
|
212 |
+
'new_thumbnail' => __( 'Create new thumbnails', 'nggallery' ),
|
213 |
+
'resize_images' => __( 'Resize images', 'nggallery' ),
|
214 |
+
'import_meta' => __( 'Import metadata', 'nggallery' ),
|
215 |
+
'recover_images' => __( 'Recover from backup', 'nggallery' ),
|
216 |
+
);
|
217 |
+
}
|
218 |
+
}
|
admin/manage/class-ngg-gallery-manager.php
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
include_once( 'class-ngg-gallery-list-table.php' );
|
3 |
+
include_once( 'class-ngg-manager.php' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class NGG_Gallery_Manager
|
7 |
+
*
|
8 |
+
* Display the gallery managing page.
|
9 |
+
*/
|
10 |
+
class NGG_Gallery_Manager extends NGG_Manager {
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Display the page.
|
14 |
+
*/
|
15 |
+
public function display() {
|
16 |
+
|
17 |
+
parent::display();
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Add a gallery.
|
21 |
+
*/
|
22 |
+
if ( isset( $_POST['gallery_name'] ) ) {
|
23 |
+
$this->handle_add_gallery();
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Display the actual table.
|
28 |
+
*/
|
29 |
+
$table = new NGG_Gallery_List_Table( self::BASE );
|
30 |
+
$table->prepare_items();
|
31 |
+
?>
|
32 |
+
<div class="wrap">
|
33 |
+
<h2><?php _e( 'Galleries', 'nggallery' ); ?>
|
34 |
+
<?php if ( current_user_can( 'NextGEN Upload images' ) && nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) { ?>
|
35 |
+
<a class="add-new-h2" id="new-gallery" href="#"><?php _e( 'Add new gallery', 'nggallery' ) ?></a>
|
36 |
+
<?php }; ?>
|
37 |
+
</h2>
|
38 |
+
|
39 |
+
<form method="get">
|
40 |
+
<input type="hidden" name="page" value="nggallery-manage">
|
41 |
+
<input type="hidden" name="mode" value="search">
|
42 |
+
<?php $table->search_box( 'Search images', 'nggallery' ); ?>
|
43 |
+
</form>
|
44 |
+
|
45 |
+
<form method="post">
|
46 |
+
<input type="hidden" id="page_type" name="page_type" value="gallery"/>
|
47 |
+
<?php $table->display(); ?>
|
48 |
+
</form>
|
49 |
+
</div>
|
50 |
+
<?php
|
51 |
+
$this->print_dialogs();
|
52 |
+
$this->print_scripts();
|
53 |
+
}
|
54 |
+
|
55 |
+
protected function print_scripts() {
|
56 |
+
parent::print_scripts();
|
57 |
+
?>
|
58 |
+
<script type="text/javascript">
|
59 |
+
jQuery(function() {
|
60 |
+
jQuery("#new-gallery").click(function() {
|
61 |
+
addGalleryDialog();
|
62 |
+
return false;
|
63 |
+
});
|
64 |
+
});
|
65 |
+
|
66 |
+
function addGalleryDialog() {
|
67 |
+
showDialog("#add_gallery_dialog", '<?php echo esc_js(__('Add a new gallery','nggallery')); ?>');
|
68 |
+
}
|
69 |
+
</script>
|
70 |
+
<?php
|
71 |
+
}
|
72 |
+
|
73 |
+
protected function print_dialogs() {
|
74 |
+
parent::print_dialogs();
|
75 |
+
|
76 |
+
$options = get_option( 'ngg_options' );
|
77 |
+
?>
|
78 |
+
<div class="ngg-dialog-container">
|
79 |
+
<!-- Add Gallery -->
|
80 |
+
<form id="add_gallery_dialog" method="POST" accept-charset="utf-8">
|
81 |
+
<?php wp_nonce_field( 'ngg_add_gallery' ); ?>
|
82 |
+
<label>
|
83 |
+
<strong><?php _e( 'Name', 'nggallery' ); ?>: </strong>
|
84 |
+
<input id="gallery_name" type="text" class="regular-text" name="gallery_name">
|
85 |
+
</label>
|
86 |
+
<br>
|
87 |
+
<?php if ( ! is_multisite() ) { ?>
|
88 |
+
<?php _e( 'Create a new , empty gallery below the folder', 'nggallery' ); ?>
|
89 |
+
<strong><?php echo $options['gallerypath']; ?></strong><br>
|
90 |
+
<?php } ?>
|
91 |
+
<p class="description">
|
92 |
+
<?php printf( __( 'Allowed characters for file and folder names are %s', 'nggallery' ), 'a-z, A-Z, 0-9, -, _' ) ?>
|
93 |
+
</p>
|
94 |
+
<?php do_action( 'ngg_add_new_gallery_form' ); ?>
|
95 |
+
</form>
|
96 |
+
</div>
|
97 |
+
<?php
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Add a new gallery.
|
102 |
+
*/
|
103 |
+
private function handle_add_gallery() {
|
104 |
+
|
105 |
+
if ( wp_verify_nonce( $_POST['_wpnonce'],
|
106 |
+
'ngg_add_gallery' ) === false || ! nggGallery::current_user_can( 'NextGEN Add new gallery' )
|
107 |
+
) {
|
108 |
+
nggGallery::show_error( __( 'You waited too long, or you cheated.', 'nggallery' ) );
|
109 |
+
|
110 |
+
return;
|
111 |
+
}
|
112 |
+
|
113 |
+
$options = get_option( 'ngg_options' );
|
114 |
+
|
115 |
+
// get the default path for a new gallery
|
116 |
+
$default_path = $options['gallerypath'];
|
117 |
+
$new_gallery = esc_attr( $_POST['gallery_name'] );
|
118 |
+
if ( ! empty( $new_gallery ) ) {
|
119 |
+
nggAdmin::create_gallery( $new_gallery, $default_path );
|
120 |
+
}
|
121 |
+
|
122 |
+
do_action( 'ngg_update_addgallery_page' );
|
123 |
+
}
|
124 |
+
}
|
admin/manage/class-ngg-image-list-table.php
ADDED
@@ -0,0 +1,316 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! class_exists( 'WP_List_Table' ) ) {
|
4 |
+
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Class NGG_List_Table
|
9 |
+
*
|
10 |
+
* This class represents the listing of the galleries in the admin menu.
|
11 |
+
*
|
12 |
+
* This class was written with WP_List_Table from WordPress 4.3.
|
13 |
+
* If this doesn't work anymore in the future, it's because that class has changed.
|
14 |
+
*/
|
15 |
+
class NGG_Image_List_Table extends WP_List_Table {
|
16 |
+
|
17 |
+
private $base;
|
18 |
+
|
19 |
+
public function __construct( $base, $screen = null ) {
|
20 |
+
|
21 |
+
parent::__construct( array( 'screen' => $screen, 'plural' => 'ngg-manager' ) );
|
22 |
+
|
23 |
+
$this->base = $base;
|
24 |
+
|
25 |
+
add_filter( 'manage_' . $this->screen->id . '_columns', array( $this, 'get_columns' ), 0 );
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Prepare the items for the table to process
|
30 |
+
*
|
31 |
+
* @param bool|string $search The search string, or false if we don't search.
|
32 |
+
*/
|
33 |
+
public function prepare_items($search = false) {
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @global $nggdb nggdb
|
37 |
+
*/
|
38 |
+
global $nggdb;
|
39 |
+
|
40 |
+
$columns = $this->get_columns();
|
41 |
+
$hidden = $this->get_hidden_columns();
|
42 |
+
$sortable = $this->get_sortable_columns();
|
43 |
+
|
44 |
+
$this->_column_headers = array( $columns, $hidden, $sortable );
|
45 |
+
|
46 |
+
if( $search ) {
|
47 |
+
// look now for the images
|
48 |
+
$search_for_images = (array) $nggdb->search_for_images( $search );
|
49 |
+
$search_for_tags = (array) nggTags::find_images_for_tags( $search , 'ASC' );
|
50 |
+
|
51 |
+
// finally merge the two results together
|
52 |
+
$this->items = array_merge( $search_for_images , $search_for_tags );
|
53 |
+
|
54 |
+
$this->set_pagination_args( array(
|
55 |
+
'total_items' => count( $this->items )
|
56 |
+
) );
|
57 |
+
|
58 |
+
} else {
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Do the pagination.
|
62 |
+
*/
|
63 |
+
$currentPage = $this->get_pagenum();
|
64 |
+
$perPage = $this->get_items_per_page('ngg_images_per_page', 50);
|
65 |
+
|
66 |
+
$options = get_option( 'ngg_options' );
|
67 |
+
$gallery_id = (int) $_GET['gid'];
|
68 |
+
|
69 |
+
$start = ( $currentPage - 1 ) * $perPage;
|
70 |
+
|
71 |
+
$this->items = $nggdb->get_gallery( $gallery_id, $options['galSort'], $options['galSortDir'], false,
|
72 |
+
$perPage,
|
73 |
+
$start );
|
74 |
+
|
75 |
+
$totalItems = (int) nggdb::count_images_in_gallery( $gallery_id );
|
76 |
+
|
77 |
+
$this->set_pagination_args( array(
|
78 |
+
'total_items' => $totalItems,
|
79 |
+
'per_page' => $perPage
|
80 |
+
) );
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Override to add a button if on top.
|
86 |
+
*
|
87 |
+
* @param string $which
|
88 |
+
*/
|
89 |
+
protected function bulk_actions($which = '') {
|
90 |
+
parent::bulk_actions($which);
|
91 |
+
|
92 |
+
if($which === 'top') {
|
93 |
+
?>
|
94 |
+
<button type="submit" class="button-primary action manager-save" name="update_images">
|
95 |
+
<?php _e( "Save Changes", 'nggallery' ); ?>
|
96 |
+
</button>
|
97 |
+
<?php
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* Get the hidden columns from the screen options.
|
103 |
+
*/
|
104 |
+
public function get_hidden_columns() {
|
105 |
+
return (array) get_user_option( 'manage' . $this->screen->id . 'columnshidden' );;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* The checkbox column.
|
110 |
+
*
|
111 |
+
* @param nggImage $item
|
112 |
+
*
|
113 |
+
* @return string
|
114 |
+
*/
|
115 |
+
protected function column_cb( $item ) {
|
116 |
+
return '<input name="doaction[]" type="checkbox" value="' . $item->pid . '" />';
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* @param nggImage $item
|
121 |
+
*
|
122 |
+
* @return string
|
123 |
+
*/
|
124 |
+
protected function column_thumbnail( $item ) {
|
125 |
+
$out = '<a href="' . esc_url( add_query_arg( 'i', mt_rand(),
|
126 |
+
$item->imageURL ) ) . '" class="shutter" title="' . esc_attr( $item->filename ) . '">';
|
127 |
+
$out .= '<img class="thumb" src="' . esc_url( add_query_arg( 'i', mt_rand(),
|
128 |
+
$item->thumbURL ) ) . '" id="thumb' . $item->pid . '" /></a>';
|
129 |
+
|
130 |
+
return $out;
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* @param nggImage $item
|
135 |
+
*
|
136 |
+
* @return string
|
137 |
+
*/
|
138 |
+
protected function column_filename( $item ) {
|
139 |
+
$date = mysql2date( get_option( 'date_format' ), $item->imagedate );
|
140 |
+
ob_start();
|
141 |
+
?>
|
142 |
+
<a href="<?php echo esc_url( $item->imageURL ) ?>" class="thickbox" title="<?php esc_attr_e( $item->filename ) ?>">
|
143 |
+
<strong>
|
144 |
+
<?php esc_html_e( $item->filename ) ?>
|
145 |
+
</strong>
|
146 |
+
</a>
|
147 |
+
<br>
|
148 |
+
<span class="date"><?php echo $date ?></span>
|
149 |
+
<input type="text" class="datepicker" value="<?php echo $date ?>"/>
|
150 |
+
<span class="change"> <?php _e( 'Change Date', 'nggallery' ); ?></span>
|
151 |
+
<input type="hidden" class="rawdate" name="date[<?php echo $item->pid ?>]" value="<?php echo $item->imagedate ?>"/>
|
152 |
+
<?php if ( ! empty( $item->meta_data ) ) { ?>
|
153 |
+
<br><?php echo $item->meta_data['width'] ?> x <?php echo $item->meta_data['height'] ?><?php _e( 'pixel',
|
154 |
+
'nggallery' ) ?>
|
155 |
+
<?php } ?>
|
156 |
+
<p>
|
157 |
+
<?php
|
158 |
+
$actions = $this->get_row_actions( $item );
|
159 |
+
$action_count = count( $actions );
|
160 |
+
$i = 0;
|
161 |
+
echo '<div class="row-actions">';
|
162 |
+
foreach ( $actions as $action => $link ) {
|
163 |
+
++ $i;
|
164 |
+
( $i == $action_count ) ? $sep = '' : $sep = ' | ';
|
165 |
+
echo "<span class='$action'>$link$sep</span>";
|
166 |
+
}
|
167 |
+
echo '</div>';
|
168 |
+
?>
|
169 |
+
</p>
|
170 |
+
<?php
|
171 |
+
|
172 |
+
return ob_get_clean();
|
173 |
+
}
|
174 |
+
|
175 |
+
/**
|
176 |
+
* @param $item nggImage
|
177 |
+
*
|
178 |
+
* @return string
|
179 |
+
*/
|
180 |
+
protected function column_alt_title_desc( $item ) {
|
181 |
+
$img_alt_text = nggGallery::suppress_injection( $item->alttext );
|
182 |
+
$img_description = nggGallery::suppress_injection( $item->description );
|
183 |
+
|
184 |
+
$out = '<input placeholder="' . __( "Alt & title text",
|
185 |
+
'nggallery' ) . '" name="alttext[' . $item->pid . ']" type="text" style="width:95%; margin-bottom: 2px;" value="' . $img_alt_text . '"/>';
|
186 |
+
$out .= '<br>';
|
187 |
+
$out .= '<textarea placeholder="' . __( "Description",
|
188 |
+
'nggallery' ) . '" name="description[' . $item->pid . ']" style="width:95%; margin: 1px;" rows="2">' . $img_description . '</textarea>';
|
189 |
+
|
190 |
+
return $out;
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Define what data to show on each column of the table
|
195 |
+
*
|
196 |
+
* @param nggImage $item Data
|
197 |
+
* @param String $column_name - Current column name
|
198 |
+
*
|
199 |
+
* @return Mixed
|
200 |
+
*/
|
201 |
+
protected function column_default( $item, $column_name ) {
|
202 |
+
switch ( $column_name ) {
|
203 |
+
case 'id':
|
204 |
+
return '<input type="hidden" name="pid[]" value="' . $item->pid . '">' . $item->pid;
|
205 |
+
case 'tags':
|
206 |
+
$item->tags = wp_get_object_terms( $item->pid, 'ngg_tag', 'fields=names' );
|
207 |
+
if ( is_array( $item->tags ) ) {
|
208 |
+
$item->tags = implode( ', ', $item->tags );
|
209 |
+
}
|
210 |
+
|
211 |
+
return '<textarea placeholder="' . __( "Separated by commas",
|
212 |
+
'nggallery' ) . '" name="tags[' . $item->pid . ']" style="width:95%;" rows="2">' . $item->tags . '</textarea>';
|
213 |
+
case 'exclude':
|
214 |
+
return '<input name="exclude[' . $item->pid . ']" type="checkbox" value="1" ' . checked( $item->exclude ) . '/>';
|
215 |
+
default:
|
216 |
+
ob_start();
|
217 |
+
do_action( 'ngg_manage_image_custom_column', $column_name, $item );
|
218 |
+
|
219 |
+
return ob_get_clean();
|
220 |
+
}
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* With this we can register the columns in the screen options API.
|
225 |
+
*/
|
226 |
+
public static function get_columns_static() {
|
227 |
+
$columns = array(
|
228 |
+
'cb' => '<input type="checkbox" />',
|
229 |
+
'id' => __( 'ID', 'nggallery' ),
|
230 |
+
'thumbnail' => __( 'Thumbnail', 'nggallery' ),
|
231 |
+
'filename' => __( 'Filename', 'nggallery' ),
|
232 |
+
'alt_title_desc' => __( 'Alt & Title Text', 'nggallery' ) . '/' . __( 'Description', 'nggallery' ),
|
233 |
+
'tags' => __( 'Tags', 'nggallery' ),
|
234 |
+
'exclude' => __( 'Exclude', 'nggallery' )
|
235 |
+
);
|
236 |
+
|
237 |
+
/**
|
238 |
+
* Apply a filter to the columns.
|
239 |
+
*/
|
240 |
+
$columns = apply_filters( 'ngg_manage_images_columns', $columns );
|
241 |
+
|
242 |
+
return $columns;
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Get the columns.
|
247 |
+
*/
|
248 |
+
public function get_columns() {
|
249 |
+
|
250 |
+
return $this::get_columns_static();
|
251 |
+
}
|
252 |
+
|
253 |
+
/**
|
254 |
+
* @param $item nggImage
|
255 |
+
*
|
256 |
+
* @return array|mixed|void
|
257 |
+
*/
|
258 |
+
private function get_row_actions( $item ) {
|
259 |
+
|
260 |
+
if(isset($_GET['paged'])) {
|
261 |
+
$paged = '&paged=' . $_GET['paged'];
|
262 |
+
} else {
|
263 |
+
$paged = '';
|
264 |
+
}
|
265 |
+
|
266 |
+
$url = $this->base . '&mode=image&gid=' . $_GET['gid'] . $paged;
|
267 |
+
|
268 |
+
$actions = array(
|
269 |
+
'view' => '<a class="shutter" href="' . esc_url( $item->imageURL ) . '" title="' . esc_attr( sprintf( __( 'View "%s"' ),
|
270 |
+
sanitize_title( $item->filename ) ) ) . '">' . __( 'View', 'nggallery' ) . '</a>',
|
271 |
+
'meta' => '<a class="ngg-dialog" data-action="show_meta" data-id="' . $item->pid . '" href="#" title="' . __( 'Show Meta data',
|
272 |
+
'nggallery' ) . '">' . __( 'Meta', 'nggallery' ) . '</a>',
|
273 |
+
'custom_thumb' => '<a class="ngg-dialog" data-action="edit_thumb" data-id="' . $item->pid . '" href="#" title="' . __( 'Customize thumbnail',
|
274 |
+
'nggallery' ) . '">' . __( 'Edit thumb', 'nggallery' ) . '</a>',
|
275 |
+
'rotate' => '<a class="ngg-dialog" data-action="rotate" data-id="' . $item->pid . '" href="#" title="' . __( 'Rotate',
|
276 |
+
'nggallery' ) . '">' . __( 'Rotate', 'nggallery' ) . '</a>',
|
277 |
+
);
|
278 |
+
if ( file_exists( $item->imagePath . '_backup' ) ) {
|
279 |
+
$actions['recover'] = '<a class="confirm_recover" href="' . wp_nonce_url( $url . "&action=recover&pid=" . $item->pid, 'ngg_row_action' ) .
|
280 |
+
'" data-file="' . esc_attr($item->filename) . '">' .
|
281 |
+
__( 'Recover', 'nggallery' ) . '</a>';
|
282 |
+
}
|
283 |
+
$actions['delete'] = '<a class="confirm_delete" href="' . wp_nonce_url( $url . "&action=delete&pid=" . $item->pid, 'ngg_row_action' ) .
|
284 |
+
'" class="delete column-delete" data-file="' . esc_attr($item->filename) . '">' .
|
285 |
+
__( 'Delete' ) . '</a>';
|
286 |
+
|
287 |
+
$actions = apply_filters( 'ngg_manage_images_actions', $actions );
|
288 |
+
|
289 |
+
return $actions;
|
290 |
+
}
|
291 |
+
|
292 |
+
/**
|
293 |
+
* Get the sortable columns.
|
294 |
+
*/
|
295 |
+
protected function get_sortable_columns() {
|
296 |
+
return array();
|
297 |
+
}
|
298 |
+
|
299 |
+
protected function get_bulk_actions() {
|
300 |
+
return array(
|
301 |
+
'set_watermark' => __( 'Set watermark', 'nggallery' ),
|
302 |
+
'new_thumbnail' => __( 'Create new thumbnails', 'nggallery' ),
|
303 |
+
'resize_images' => __( 'Resize images', 'nggallery' ),
|
304 |
+
'import_meta' => __( 'Import metadata', 'nggallery' ),
|
305 |
+
'recover_images' => __( 'Recover from backup', 'nggallery' ),
|
306 |
+
'delete_images' => __( 'Delete images', 'nggallery' ),
|
307 |
+
'rotate_cw' => __( 'Rotate images clockwise', 'nggallery' ),
|
308 |
+
'rotate_ccw' => __( 'Rotate images counter-clockwise', 'nggallery' ),
|
309 |
+
'copy_to' => __( 'Copy to...', 'nggallery' ),
|
310 |
+
'move_to' => __( 'Move to...', 'nggallery' ),
|
311 |
+
'add_tags' => __( 'Add tags', 'nggallery' ),
|
312 |
+
'delete_tags' => __( 'Delete tags', 'nggallery' ),
|
313 |
+
'overwrite_tags' => __( 'Overwrite tags', 'nggallery' ),
|
314 |
+
);
|
315 |
+
}
|
316 |
+
}
|
admin/manage/class-ngg-image-manager.php
ADDED
@@ -0,0 +1,361 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
include_once( 'class-ngg-abstract-image-manager.php' );
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class NGG_Gallery_Manager
|
6 |
+
*
|
7 |
+
* Display the gallery managing page.
|
8 |
+
*/
|
9 |
+
class NGG_Image_Manager extends NGG_Abstract_Image_Manager {
|
10 |
+
|
11 |
+
private $gallery;
|
12 |
+
private $id;
|
13 |
+
|
14 |
+
public function __construct() {
|
15 |
+
$this->id = (int) $_GET['gid'];
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Display the page.
|
20 |
+
*/
|
21 |
+
public function display() {
|
22 |
+
|
23 |
+
parent::display();
|
24 |
+
|
25 |
+
if ( isset( $_POST['form'] ) && $_POST['form'] === "gallery" ) {
|
26 |
+
$this->handle_update_gallery();
|
27 |
+
}
|
28 |
+
|
29 |
+
if ( isset( $_POST['scan_folder'] ) ) {
|
30 |
+
$this->handle_scan_folder();
|
31 |
+
}
|
32 |
+
|
33 |
+
if ( isset( $_GET['action'] ) ) {
|
34 |
+
$this->handle_row_action();
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @global $nggdb nggdb
|
39 |
+
*/
|
40 |
+
global $nggdb;
|
41 |
+
|
42 |
+
$this->gallery = $nggdb->find_gallery( $this->id );
|
43 |
+
|
44 |
+
if ( isset( $_GET['paged'] ) ) {
|
45 |
+
$page = $_GET['paged'];
|
46 |
+
} else {
|
47 |
+
$page = '';
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Display the actual table.
|
52 |
+
*/
|
53 |
+
$table = new NGG_Image_List_Table( self::BASE );
|
54 |
+
$table->prepare_items();
|
55 |
+
?>
|
56 |
+
<div class="wrap">
|
57 |
+
<form id="update_gallery" class="nggform" method="post" action="<?php echo self::BASE . '&mode=image&gid=' . $this->id . '&paged=' . $page; ?>" accept-charset="utf-8">
|
58 |
+
<?php wp_nonce_field( 'ngg-update-gallery', '_ngg_nonce_gallery' ); ?>
|
59 |
+
<input type="hidden" name="form" value="gallery">
|
60 |
+
<?php $this->print_gallery_overview( $table->items ) ?>
|
61 |
+
</form>
|
62 |
+
<!-- TODO Add a search inside a gallery form -->
|
63 |
+
<form id="update_images" class="nggform" method="post" action="<?php echo self::BASE . '&mode=image&gid=' . $this->id . '&paged=' . $page; ?>" accept-charset="utf-8">
|
64 |
+
<?php wp_nonce_field( 'ngg-update-images', '_ngg_nonce_images' ); ?>
|
65 |
+
<input type="hidden" id="page_type" name="page_type" value="image">
|
66 |
+
<?php $table->display(); ?>
|
67 |
+
</form>
|
68 |
+
</div>
|
69 |
+
<?php
|
70 |
+
$this->print_dialogs();
|
71 |
+
$this->print_scripts();
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @todo Make this better.
|
76 |
+
*/
|
77 |
+
protected function print_scripts() {
|
78 |
+
parent::print_scripts();
|
79 |
+
?>
|
80 |
+
<script type="text/javascript">
|
81 |
+
/**
|
82 |
+
* Confirm the scan operation.
|
83 |
+
*/
|
84 |
+
jQuery("#scan_folder").click(function() {
|
85 |
+
return confirm(
|
86 |
+
"<?php _e( 'This will change folder and file names (e.g. remove spaces, special characters, ...)', 'nggallery' ) ?>" +
|
87 |
+
"\n\n" +
|
88 |
+
"<?php _e( 'You will need to update your URLs if you link directly to the images.', 'nggallery' ) ?>" +
|
89 |
+
"\n\n" +
|
90 |
+
"<?php _e( 'Press OK to proceed, and Cancel to stop.', 'nggallery' ) ?>"
|
91 |
+
);
|
92 |
+
});
|
93 |
+
|
94 |
+
/**
|
95 |
+
* For the row actions.
|
96 |
+
*/
|
97 |
+
jQuery(".confirm_recover").click(function() {
|
98 |
+
var fileName = jQuery(this).data('file');
|
99 |
+
return confirm( '<?php _e( 'Recover "{}"?', 'nggallery' ) ?>'.replace('{}', fileName));
|
100 |
+
});
|
101 |
+
|
102 |
+
jQuery(".confirm_delete").click(function() {
|
103 |
+
var fileName = jQuery(this).data('file');
|
104 |
+
return confirm( '<?php _e( 'Delete "{}"?', 'nggallery' ) ?>'.replace('{}', fileName));
|
105 |
+
});
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Redirect to the sorting UI.
|
109 |
+
*/
|
110 |
+
jQuery("#sort_gallery").click(function() {
|
111 |
+
location.href = "<?php echo esc_js(self::BASE) . '&mode=sort&gid=' . $this->id ?>";
|
112 |
+
});
|
113 |
+
</script>
|
114 |
+
|
115 |
+
<?php
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Handle a request to scan the folder for new images.
|
120 |
+
*/
|
121 |
+
private function handle_scan_folder() {
|
122 |
+
if ( wp_verify_nonce( $_POST['_ngg_nonce_gallery'], 'ngg-update-gallery' ) === false ) {
|
123 |
+
nggGallery::show_error( __( 'You waited too long, or you cheated.', 'nggallery' ) );
|
124 |
+
|
125 |
+
return;
|
126 |
+
}
|
127 |
+
|
128 |
+
global $wpdb;
|
129 |
+
|
130 |
+
$gallery_path = $wpdb->get_var( $wpdb->prepare( "SELECT path FROM $wpdb->nggallery WHERE gid = %d",
|
131 |
+
$this->id ) );
|
132 |
+
nggAdmin::import_gallery( $gallery_path );
|
133 |
+
}
|
134 |
+
|
135 |
+
private function print_gallery_overview( $images ) {
|
136 |
+
/**
|
137 |
+
* @global $nggdb nggdb
|
138 |
+
*/
|
139 |
+
global $nggdb;
|
140 |
+
|
141 |
+
$disabled = $title = "";
|
142 |
+
$options = get_option( 'ngg_options' );
|
143 |
+
|
144 |
+
if ( $options['galSort'] != "sortorder" ) {
|
145 |
+
//Disable sort button and provide feedback why is disabled
|
146 |
+
$disabled = "disabled ";
|
147 |
+
$title = "title='" . __( 'To enable manual Sort set Custom Order Sort.See Settings->Gallery Settings->Sort Options',
|
148 |
+
'nggallery' ) . "'";
|
149 |
+
}
|
150 |
+
?>
|
151 |
+
<h2><?php _e( 'Gallery', 'nggallery' ) ?><?php esc_html_e( $this->gallery->title ) ?></h2>
|
152 |
+
<?php if ( nggGallery::current_user_can( 'NextGEN Edit gallery options' ) ) { ?>
|
153 |
+
<div id="poststuff">
|
154 |
+
<div id="gallerydiv" class="postbox <?php echo postbox_classes( 'gallery_div', 'ngg-manage' ); ?>">
|
155 |
+
<h3 class="hndle"><?php _e( 'Gallery settings', 'nggallery' ) ?></h3>
|
156 |
+
|
157 |
+
<div class="inside">
|
158 |
+
<table class="form-table" id="gallery-properties">
|
159 |
+
<tr>
|
160 |
+
<td align="left"><label for="title"><?php _e( 'Title' ) ?></label></td>
|
161 |
+
<td align="left">
|
162 |
+
<input type="text" id="title" name="title" class="regular-text" value="<?php esc_attr_e( $this->gallery->title ) ?>"/>
|
163 |
+
</td>
|
164 |
+
<td align="right"><label for="page_id"><?php _e( 'Page Link', 'nggallery' ) ?></label>
|
165 |
+
</td>
|
166 |
+
<td align="left">
|
167 |
+
<select id="page_id" name="page_id">
|
168 |
+
<option value="0"><?php _e( 'Not linked', 'nggallery' ) ?></option>
|
169 |
+
<?php parent_dropdown( intval( $this->gallery->pageid ) ); ?>
|
170 |
+
</select>
|
171 |
+
</td>
|
172 |
+
</tr>
|
173 |
+
<tr>
|
174 |
+
<td align="left"><label for="gallery_desc"><?php _e( 'Description' ) ?></label></td>
|
175 |
+
<td align="left">
|
176 |
+
<textarea name="gallery_desc" id="gallery_desc" cols="46" rows="3"><?php echo $this->gallery->galdesc; ?></textarea>
|
177 |
+
</td>
|
178 |
+
<td align="right"><label for="preview_pic"><?php _e( 'Preview image',
|
179 |
+
'nggallery' ) ?></label></td>
|
180 |
+
<td align="left">
|
181 |
+
<select name="preview_pic" id="preview_pic">
|
182 |
+
<option value="0"><?php _e( 'No Picture', 'nggallery' ) ?></option>
|
183 |
+
<?php
|
184 |
+
// ensure that a preview pic from a other page is still shown here
|
185 |
+
if ( intval( $this->gallery->previewpic ) != 0 ) {
|
186 |
+
if ( ! array_key_exists( $this->gallery->previewpic, $images ) ) {
|
187 |
+
$previewpic = $nggdb->find_image( $this->gallery->previewpic );
|
188 |
+
if ( $previewpic ) {
|
189 |
+
echo '<option value="' . $previewpic->pid . '" selected>' . $previewpic->pid . ' - ' . esc_attr( $previewpic->filename ) . '</option>' . "\n";
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
if ( is_array( $images ) ) {
|
194 |
+
foreach ( $images as $picture ) {
|
195 |
+
if ( $picture->exclude ) {
|
196 |
+
continue;
|
197 |
+
}
|
198 |
+
$selected = ( $picture->pid == $this->gallery->previewpic ) ? 'selected' : '';
|
199 |
+
echo '<option value="' . $picture->pid . '" ' . $selected . ' >' . $picture->pid . ' - ' . esc_attr( $picture->filename ) . '</option>' . "\n";
|
200 |
+
}
|
201 |
+
}
|
202 |
+
?>
|
203 |
+
</select>
|
204 |
+
</td>
|
205 |
+
</tr>
|
206 |
+
<tr>
|
207 |
+
<td align="left"><label for="path"><?php _e( 'Path', 'nggallery' ) ?></label></td>
|
208 |
+
<td align="left">
|
209 |
+
<input <?php if ( is_multisite() ) {
|
210 |
+
echo 'readonly = "readonly"';
|
211 |
+
} ?> type="text" name="path" class="regular-text code" id="path" value="<?php echo $this->gallery->path; ?>"/>
|
212 |
+
</td>
|
213 |
+
<td align="right"><label for="author"><?php _e( 'Author', 'nggallery' ); ?></label></td>
|
214 |
+
<td align="left"><?php echo get_userdata( (int) $this->gallery->author )->display_name ?></td>
|
215 |
+
</tr>
|
216 |
+
<tr>
|
217 |
+
<td align="left"><?php _e( 'Gallery ID', 'nggallery' ) ?>:</td>
|
218 |
+
<td align="right"><?php echo $this->gallery->gid; ?></td>
|
219 |
+
<?php if ( current_user_can( 'publish_pages' ) ) { ?>
|
220 |
+
<td align="right"><label for="parent_id"><?php _e( 'Create new page',
|
221 |
+
'nggallery' ) ?></label></td>
|
222 |
+
<td align="left">
|
223 |
+
<select name="parent_id" id="parent_id">
|
224 |
+
<option value="0"><?php _e( 'Main page (No parent)',
|
225 |
+
'nggallery' ); ?></option>
|
226 |
+
<?php if ( get_post() ) {
|
227 |
+
parent_dropdown();
|
228 |
+
} ?>
|
229 |
+
</select>
|
230 |
+
<input class="button-secondary action" type="submit" name="addnewpage" value="<?php _e( 'Add page',
|
231 |
+
'nggallery' ); ?>" id="group"/>
|
232 |
+
</td>
|
233 |
+
<?php } ?>
|
234 |
+
</tr>
|
235 |
+
<?php do_action( 'ngg_manage_gallery_settings', $this->id ); ?>
|
236 |
+
</table>
|
237 |
+
<div class="submit">
|
238 |
+
<button class='button-secondary' type='button' <?php echo $disabled, $title ?> id='sort_gallery'>
|
239 |
+
<?php _e( 'Sort gallery', 'nggallery' ) ?>
|
240 |
+
</button>
|
241 |
+
<button type="submit" class="button-secondary" name="scan_folder" id="scan_folder">
|
242 |
+
<?php _e( "Scan folder for new images", 'nggallery' ); ?>
|
243 |
+
</button>
|
244 |
+
<button type="submit" class="button-primary action">
|
245 |
+
<?php _e( "Save Changes", 'nggallery' ); ?>
|
246 |
+
</button>
|
247 |
+
</div>
|
248 |
+
</div>
|
249 |
+
</div>
|
250 |
+
</div> <!-- poststuff -->
|
251 |
+
<?php
|
252 |
+
}
|
253 |
+
}
|
254 |
+
|
255 |
+
private function handle_update_gallery() {
|
256 |
+
|
257 |
+
if ( wp_verify_nonce( $_POST['_ngg_nonce_gallery'], 'ngg-update-gallery' ) === false ) {
|
258 |
+
nggGallery::show_error( __( 'You waited too long, or you cheated.', 'nggallery' ) );
|
259 |
+
|
260 |
+
return;
|
261 |
+
}
|
262 |
+
|
263 |
+
global $wpdb;
|
264 |
+
|
265 |
+
if ( nggGallery::current_user_can( 'NextGEN Edit gallery options' ) ) {
|
266 |
+
|
267 |
+
if ( nggGallery::current_user_can( 'NextGEN Edit gallery title' ) ) {
|
268 |
+
// don't forget to update the slug
|
269 |
+
$slug = nggdb::get_unique_slug( sanitize_title( $_POST['title'] ), 'gallery', $this->id );
|
270 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET title= '%s', slug= '%s' WHERE gid = %d",
|
271 |
+
esc_attr( $_POST['title'] ), $slug, $this->id ) );
|
272 |
+
}
|
273 |
+
if ( nggGallery::current_user_can( 'NextGEN Edit gallery path' ) ) {
|
274 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET path= '%s' WHERE gid = %d",
|
275 |
+
untrailingslashit( str_replace( '\\', '/', trim( stripslashes( $_POST['path'] ) ) ) ),
|
276 |
+
$this->id ) );
|
277 |
+
}
|
278 |
+
if ( nggGallery::current_user_can( 'NextGEN Edit gallery description' ) ) {
|
279 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET galdesc= '%s' WHERE gid = %d",
|
280 |
+
esc_attr( $_POST['gallery_desc'] ), $this->id ) );
|
281 |
+
}
|
282 |
+
if ( nggGallery::current_user_can( 'NextGEN Edit gallery page id' ) ) {
|
283 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET pageid= '%d' WHERE gid = %d",
|
284 |
+
(int) $_POST['page_id'], $this->id ) );
|
285 |
+
}
|
286 |
+
if ( nggGallery::current_user_can( 'NextGEN Edit gallery preview pic' ) ) {
|
287 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET previewpic= '%d' WHERE gid = %d",
|
288 |
+
(int) $_POST['preview_pic'], $this->id ) );
|
289 |
+
}
|
290 |
+
if ( isset ( $_POST['author'] ) && nggGallery::current_user_can( 'NextGEN Edit gallery author' ) ) {
|
291 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET author= '%d' WHERE gid = %d",
|
292 |
+
(int) $_POST['author'], $this->id ) );
|
293 |
+
}
|
294 |
+
|
295 |
+
wp_cache_delete( $this->id, 'ngg_gallery' );
|
296 |
+
|
297 |
+
}
|
298 |
+
|
299 |
+
do_action( 'ngg_update_gallery', $this->id, $_POST );
|
300 |
+
|
301 |
+
nggGallery::show_message( __( 'Update successful', "nggallery" ) );
|
302 |
+
|
303 |
+
}
|
304 |
+
|
305 |
+
private function handle_row_action() {
|
306 |
+
|
307 |
+
check_admin_referer('ngg_row_action');
|
308 |
+
|
309 |
+
/**
|
310 |
+
* @global nggdb $nggdb
|
311 |
+
*/
|
312 |
+
global $nggdb;
|
313 |
+
|
314 |
+
// Delete a picture
|
315 |
+
if ( $_GET['action'] == 'delete' ) {
|
316 |
+
|
317 |
+
$pid = (int) $_GET['pid'];
|
318 |
+
$options = get_option( 'ngg_options' );
|
319 |
+
|
320 |
+
//TODO:Remove also Tag reference
|
321 |
+
$image = $nggdb->find_image( $pid );
|
322 |
+
if ($image) {
|
323 |
+
if ($options['deleteImg']) {
|
324 |
+
@unlink($image->imagePath);
|
325 |
+
@unlink($image->thumbPath);
|
326 |
+
@unlink($image->imagePath . '_backup' );
|
327 |
+
}
|
328 |
+
do_action('ngg_delete_picture', $pid);
|
329 |
+
$result = nggdb::delete_image ( $pid );
|
330 |
+
} else {
|
331 |
+
$result = false;
|
332 |
+
}
|
333 |
+
|
334 |
+
if ($result) {
|
335 |
+
nggGallery::show_message(
|
336 |
+
sprintf( __( 'Picture %d deleted successfully.', 'nggallery' ), $pid )
|
337 |
+
);
|
338 |
+
} else {
|
339 |
+
nggGallery::show_error(
|
340 |
+
sprintf( __( 'Picture %d could not be deleted.', 'nggallery' ), $pid )
|
341 |
+
);
|
342 |
+
}
|
343 |
+
|
344 |
+
return;
|
345 |
+
}
|
346 |
+
|
347 |
+
// Recover picture from backup
|
348 |
+
if ( $_GET['action'] == 'recover' ) {
|
349 |
+
|
350 |
+
$image = $nggdb->find_image( (int) $_GET['pid'] );
|
351 |
+
// bring back the old image
|
352 |
+
nggAdmin::recover_image( $image );
|
353 |
+
nggAdmin::create_thumbnail( $image );
|
354 |
+
|
355 |
+
nggGallery::show_message( __( 'Operation successful. Please clear your browser cache.', "nggallery" ) );
|
356 |
+
|
357 |
+
return;
|
358 |
+
}
|
359 |
+
|
360 |
+
}
|
361 |
+
}
|
admin/manage/class-ngg-manager.php
ADDED
@@ -0,0 +1,491 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once( NGGALLERY_ABSPATH . '/admin/interface-ngg-displayable.php' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class NGG_Manager
|
7 |
+
*
|
8 |
+
* Contains common JavaScript and other code for the managing pages.
|
9 |
+
*/
|
10 |
+
abstract class NGG_Manager implements NGG_Displayable {
|
11 |
+
|
12 |
+
const BASE = 'admin.php?page=nggallery-manage';
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Subclasses should override this method, but must call the parent function.
|
16 |
+
*/
|
17 |
+
public function display() {
|
18 |
+
/**
|
19 |
+
* Do a bulk action.
|
20 |
+
*/
|
21 |
+
if ( ( isset( $_POST['action'] ) || isset( $_POST['action2'] ) ) && isset ( $_POST['doaction'] ) ) {
|
22 |
+
$this->handle_bulk_actions();
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Do the operations with a dialog.
|
27 |
+
*/
|
28 |
+
if ( isset( $_POST['TB_bulkaction'] ) && isset( $_POST['TB_action'] ) ) {
|
29 |
+
$this->handle_dialog_actions();
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Print the HTML for the dialogs.
|
35 |
+
*/
|
36 |
+
protected function print_dialogs() {
|
37 |
+
|
38 |
+
$options = get_option( 'ngg_options' );
|
39 |
+
|
40 |
+
?>
|
41 |
+
<style>
|
42 |
+
.ngg-dialog-container {
|
43 |
+
display: none;
|
44 |
+
}
|
45 |
+
</style>
|
46 |
+
<div class="ngg-dialog-container">
|
47 |
+
<!-- #resize_images -->
|
48 |
+
<form id="resize_images_dialog" method="POST" accept-charset="utf-8">
|
49 |
+
<?php wp_nonce_field( 'ngg_thickbox_form' ) ?>
|
50 |
+
<input type="hidden" name="TB_type" class="TB_type" value="">
|
51 |
+
<input type="hidden" id="resize_images_imagelist" name="TB_imagelist" value="">
|
52 |
+
<input type="hidden" id="resize_images_bulkaction" name="TB_bulkaction" value="">
|
53 |
+
<input type="hidden" name="TB_action" value="resize_images">
|
54 |
+
<table width="100%">
|
55 |
+
<tr valign="top">
|
56 |
+
<td>
|
57 |
+
<strong><?php _e( 'Resize Images to', 'nggallery' ); ?>:</strong>
|
58 |
+
</td>
|
59 |
+
<td>
|
60 |
+
<label for="imgWidth"><?php _e( 'Width', 'nggallery' ) ?></label>
|
61 |
+
<input type="number" min="0" class="small-text" id="imgWidth" name="imgWidth" value="<?php echo $options['imgWidth']; ?>">
|
62 |
+
<label for="imgHeight"><?php _e( 'Height', 'nggallery' ) ?></label>
|
63 |
+
<input type="number" min="0" size="5" name="imgHeight" id="imgHeight" class="small-text" value="<?php echo $options['imgHeight']; ?>">
|
64 |
+
|
65 |
+
<p class="description"><?php _e( 'Width and height (in pixels). NextCellent Gallery will keep the ratio size.',
|
66 |
+
'nggallery' ) ?></p>
|
67 |
+
</td>
|
68 |
+
</tr>
|
69 |
+
</table>
|
70 |
+
</form>
|
71 |
+
<!-- /#resize_images -->
|
72 |
+
<!-- #new_thumbnail -->
|
73 |
+
<form id="new_thumbnail_dialog" method="POST" accept-charset="utf-8">
|
74 |
+
<?php wp_nonce_field( 'ngg_thickbox_form' ) ?>
|
75 |
+
<input type="hidden" name="TB_type" class="TB_type" value="">
|
76 |
+
<input type="hidden" id="new_thumbnail_imagelist" name="TB_imagelist" value="">
|
77 |
+
<input type="hidden" id="new_thumbnail_bulkaction" name="TB_bulkaction" value="">
|
78 |
+
<input type="hidden" name="TB_action" value="new_thumbnails">
|
79 |
+
<table width="100%">
|
80 |
+
<tr valign="top">
|
81 |
+
<th align="left"><?php _e( 'Size', 'nggallery' ) ?></th>
|
82 |
+
<td>
|
83 |
+
<label for="thumbwidth"><?php _e( 'Width', 'nggallery' ) ?></label>
|
84 |
+
<input id="thumbwidth" class="small-text" type="number" min="0" name="thumbwidth" value="<?php echo $options['thumbwidth']; ?>">
|
85 |
+
<label for="thumbheight"><?php _e( 'Height', 'nggallery' ) ?></label>
|
86 |
+
<input id="thumbheight" class="small-text" type="number" step="1" min="0" name="thumbheight" value="<?php echo $options['thumbheight']; ?>">
|
87 |
+
|
88 |
+
<p class="description"><?php _e( 'These values are maximum values ', 'nggallery' ) ?></p>
|
89 |
+
</td>
|
90 |
+
</tr>
|
91 |
+
<tr valign="top">
|
92 |
+
<th align="left">
|
93 |
+
<label for="thumb_fix">
|
94 |
+
<?php _e( 'Fixed size', 'nggallery' ); ?>
|
95 |
+
</label>
|
96 |
+
</th>
|
97 |
+
<td>
|
98 |
+
<input id="thumb_fix" type="checkbox" name="thumb_fix" value="true" <?php checked( '1',
|
99 |
+
$options['thumbfix'] ); ?>>
|
100 |
+
<?php _e( 'This will ignore the aspect ratio, so no portrait thumbnails', 'nggallery' ) ?>
|
101 |
+
</td>
|
102 |
+
</tr>
|
103 |
+
</table>
|
104 |
+
</form>
|
105 |
+
<!-- /#new_thumbnail -->
|
106 |
+
<!-- #entertags -->
|
107 |
+
<form id="tags_dialog" method="POST" accept-charset="utf-8">
|
108 |
+
<?php wp_nonce_field( 'ngg_thickbox_form' ) ?>
|
109 |
+
<input type="hidden" class="TB_type" name="TB_type" value="">
|
110 |
+
<input type="hidden" id="tags_imagelist" name="TB_imagelist" value="">
|
111 |
+
<input type="hidden" id="tags_bulkaction" name="TB_bulkaction" value="">
|
112 |
+
<input type="hidden" name="TB_action" value="">
|
113 |
+
|
114 |
+
<div style="text-align: center">
|
115 |
+
<label>
|
116 |
+
<?php _e( "Enter the tags", 'nggallery' ); ?><br>
|
117 |
+
<input name="taglist" type="text" value="" style="width: 90%">
|
118 |
+
</label>
|
119 |
+
</div>
|
120 |
+
</form>
|
121 |
+
<!-- /#entertags -->
|
122 |
+
<!-- #selectgallery -->
|
123 |
+
<form id="select_gallery_dialog" method="POST" accept-charset="utf-8">
|
124 |
+
<?php wp_nonce_field( 'ngg_thickbox_form' ) ?>
|
125 |
+
<input type="hidden" name="TB_type" class="TB_type" value="">
|
126 |
+
<input type="hidden" id="select_gallery_imagelist" name="TB_imagelist" value="">
|
127 |
+
<input type="hidden" id="select_gallery_bulkaction" name="TB_bulkaction" value="">
|
128 |
+
<input type="hidden" name="TB_action" value="">
|
129 |
+
|
130 |
+
<div style="text-align: center">
|
131 |
+
<label>
|
132 |
+
<?php _e( 'Select the destination gallery:', 'nggallery' ); ?><br>
|
133 |
+
<select id="dest_gid" name="dest_gid" style="width: 300px">
|
134 |
+
<option value="0" selected="selected"><?php _e( "Select or search for a gallery",
|
135 |
+
'nggallery' ); ?></option>
|
136 |
+
</select>
|
137 |
+
</label>
|
138 |
+
</div>
|
139 |
+
</form>
|
140 |
+
<!-- /#selectgallery -->
|
141 |
+
</div>
|
142 |
+
<?php
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Print the Javascript.
|
147 |
+
*
|
148 |
+
* @todo Maybe move this whole stuff to a seperate file and register it instead of inline?
|
149 |
+
*/
|
150 |
+
protected function print_scripts() {
|
151 |
+
?>
|
152 |
+
<script type="text/javascript">
|
153 |
+
jQuery(function() {
|
154 |
+
jQuery("[id^=doaction]").click(function(event) {
|
155 |
+
return handleBulkActions(event);
|
156 |
+
});
|
157 |
+
jQuery("#dest_gid").nggAutocomplete({
|
158 |
+
type: 'gallery',
|
159 |
+
domain: "<?php echo home_url('index.php', is_ssl() ? 'https' : 'http'); ?>"
|
160 |
+
});
|
161 |
+
if (jQuery("#page_type").val() === 'gallery') {
|
162 |
+
jQuery('.TB_type').val('gallery');
|
163 |
+
}
|
164 |
+
});
|
165 |
+
|
166 |
+
var doActionToSelector = {
|
167 |
+
doaction: "#bulk-action-selector-top",
|
168 |
+
doaction2: "#bulk-action-selector-bottom"
|
169 |
+
};
|
170 |
+
|
171 |
+
function handleBulkActions(event) {
|
172 |
+
var caller = event.target;
|
173 |
+
var $selector = jQuery(doActionToSelector[caller.id]);
|
174 |
+
var $selected = jQuery("input[name^=doaction]:checkbox:checked");
|
175 |
+
|
176 |
+
if ($selected.length < 1) {
|
177 |
+
alert('<?php echo esc_js(__('No images selected', 'nggallery')); ?>');
|
178 |
+
return false;
|
179 |
+
}
|
180 |
+
|
181 |
+
var cp = '';
|
182 |
+
if (jQuery("#page_type").val() === 'gallery') {
|
183 |
+
cp = 'gallery_';
|
184 |
+
}
|
185 |
+
console.log($selector.val());
|
186 |
+
/**
|
187 |
+
* The options prepended with 'g' are the ones for the gallery page, the normal ones work with images.
|
188 |
+
*/
|
189 |
+
switch ($selector.val()) {
|
190 |
+
case "-1":
|
191 |
+
alert('<?php echo esc_js(__('No action selected.', 'nggallery')); ?>');
|
192 |
+
break;
|
193 |
+
case 'resize_images':
|
194 |
+
bulkDialog('resize_images', '<?php echo esc_js(__('Resize images','nggallery')); ?>', $selected);
|
195 |
+
break;
|
196 |
+
case 'new_thumbnail':
|
197 |
+
bulkDialog('new_thumbnail', '<?php echo esc_js(__('Create new thumbnails','nggallery')); ?>', $selected);
|
198 |
+
break;
|
199 |
+
case 'import_meta':
|
200 |
+
ajaxOperation(cp + 'import_metadata', '<?php echo esc_js(__('Import metadata','nggallery')); ?>', $selected, true);
|
201 |
+
break;
|
202 |
+
case 'recover_images':
|
203 |
+
ajaxOperation(cp + 'recover_image', '<?php echo esc_js(__('Recover from backup','nggallery')); ?>', $selected, true);
|
204 |
+
break;
|
205 |
+
case 'set_watermark':
|
206 |
+
ajaxOperation(cp + 'set_watermark', '<?php echo esc_js(__('Set watermark','nggallery')); ?>', $selected, true);
|
207 |
+
break;
|
208 |
+
case "copy_to":
|
209 |
+
set_TB_command('select_gallery', 'copy_to');
|
210 |
+
bulkDialog('select_gallery', '<?php echo esc_js(__('Copy image to...','nggallery')); ?>', $selected);
|
211 |
+
break;
|
212 |
+
case "move_to":
|
213 |
+
set_TB_command('select_gallery', 'move_to');
|
214 |
+
bulkDialog('select_gallery', '<?php echo esc_js(__('Move image to...','nggallery')); ?>', $selected);
|
215 |
+
break;
|
216 |
+
case "add_tags":
|
217 |
+
set_TB_command('tags', 'add_tags');
|
218 |
+
bulkDialog('tags', '<?php echo esc_js(__('Add new tags','nggallery')); ?>', $selected);
|
219 |
+
break;
|
220 |
+
case "delete_tags":
|
221 |
+
set_TB_command('tags', 'delete_tags');
|
222 |
+
bulkDialog('tags', '<?php echo esc_js(__('Delete tags','nggallery')); ?>', $selected);
|
223 |
+
break;
|
224 |
+
case "overwrite_tags":
|
225 |
+
set_TB_command('tags', 'overwrite_tags');
|
226 |
+
bulkDialog('tags', '<?php echo esc_js(__('Overwrite','nggallery')); ?>', $selected);
|
227 |
+
break;
|
228 |
+
case 'rotate_cw':
|
229 |
+
ajaxOperation('rotate_cw', '<?php echo esc_js(__('Rotate images','nggallery')); ?>', $selected);
|
230 |
+
break;
|
231 |
+
case 'rotate_ccw':
|
232 |
+
ajaxOperation('rotate_ccw', '<?php echo esc_js(__('Rotate images','nggallery')); ?>', $selected);
|
233 |
+
break;
|
234 |
+
default:
|
235 |
+
console.log($selected);
|
236 |
+
var images = $selected.map(function() {
|
237 |
+
return this.value;
|
238 |
+
}).get();
|
239 |
+
var message = '<?php echo sprintf(esc_js(__("You are about to start bulk edits for %s galleries\n\n 'Cancel' to stop, 'OK' to proceed.", 'nggallery' )), "' + images.length + '") ?>';
|
240 |
+
return confirm(message);
|
241 |
+
}
|
242 |
+
return false;
|
243 |
+
}
|
244 |
+
|
245 |
+
function set_TB_command(id, command) {
|
246 |
+
jQuery('#' + id + "_dialog #TB_action").val(command);
|
247 |
+
}
|
248 |
+
|
249 |
+
function ajaxOperation(command, title, $selected, warning) {
|
250 |
+
|
251 |
+
var images = $selected.map(function() {
|
252 |
+
return this.value;
|
253 |
+
}).get();
|
254 |
+
|
255 |
+
if (warning) {
|
256 |
+
var message = '<?php echo sprintf(esc_js(__("You are about to start bulk edits for %s galleries\n\n 'Cancel' to stop, 'OK' to proceed.", 'nggallery' )), "' + images.length + '") ?>';
|
257 |
+
|
258 |
+
if (!confirm(message)) {
|
259 |
+
return false;
|
260 |
+
}
|
261 |
+
}
|
262 |
+
|
263 |
+
var ajaxOptions = {
|
264 |
+
operation: command,
|
265 |
+
ids: images,
|
266 |
+
header: title,
|
267 |
+
maxStep: images.length
|
268 |
+
};
|
269 |
+
|
270 |
+
nggProgressBar.init(ajaxOptions);
|
271 |
+
nggAjax.init(ajaxOptions);
|
272 |
+
}
|
273 |
+
|
274 |
+
function bulkDialog(id, title, $selected) {
|
275 |
+
jQuery('#' + id + "_bulkaction").val(id);
|
276 |
+
jQuery('#' + id + "_imagelist").val($selected.map(function() {
|
277 |
+
return this.value;
|
278 |
+
}).get().join(','));
|
279 |
+
showDialog('#' + id + "_dialog", title);
|
280 |
+
}
|
281 |
+
|
282 |
+
function showDialog(id, title, onSubmit) {
|
283 |
+
|
284 |
+
if (typeof onSubmit === 'undefined' || onSubmit === null) {
|
285 |
+
onSubmit = function(dialog) {
|
286 |
+
jQuery(dialog).submit();
|
287 |
+
}
|
288 |
+
}
|
289 |
+
|
290 |
+
jQuery(id).dialog({
|
291 |
+
width: '50%',
|
292 |
+
resizable: true,
|
293 |
+
modal: true,
|
294 |
+
title: title,
|
295 |
+
close: function() {
|
296 |
+
jQuery(this).dialog('destroy').remove();
|
297 |
+
},
|
298 |
+
buttons: [
|
299 |
+
{
|
300 |
+
text: "<?php echo esc_js(__('Cancel','nggallery')); ?>",
|
301 |
+
'class': "button dialog-cancel",
|
302 |
+
'type': "reset",
|
303 |
+
click: function() {
|
304 |
+
jQuery(this).dialog('close');
|
305 |
+
}
|
306 |
+
},
|
307 |
+
{
|
308 |
+
text: "<?php echo esc_js(__('OK','nggallery')); ?>",
|
309 |
+
'class': "button-primary",
|
310 |
+
'type': "submit",
|
311 |
+
click: function() {
|
312 |
+
onSubmit(this);
|
313 |
+
}
|
314 |
+
}
|
315 |
+
]
|
316 |
+
});
|
317 |
+
}
|
318 |
+
</script>
|
319 |
+
<?php
|
320 |
+
}
|
321 |
+
|
322 |
+
/**
|
323 |
+
* Handle the actions that require a dialog.
|
324 |
+
*/
|
325 |
+
protected function handle_dialog_actions() {
|
326 |
+
|
327 |
+
$ngg_options = get_option( 'ngg_options' );
|
328 |
+
|
329 |
+
/**
|
330 |
+
* If the post type is
|
331 |
+
*/
|
332 |
+
if ( $_POST['TB_type'] === 'gallery' ) {
|
333 |
+
$mode = 'gallery';
|
334 |
+
} else {
|
335 |
+
$mode = 'image';
|
336 |
+
}
|
337 |
+
|
338 |
+
check_admin_referer( 'ngg_thickbox_form' );
|
339 |
+
|
340 |
+
$list = explode( ',', $_POST['TB_imagelist'] );
|
341 |
+
|
342 |
+
switch ( $_POST['TB_action'] ) {
|
343 |
+
case 'resize_images':
|
344 |
+
$data = array(
|
345 |
+
'width' => (int) $_POST['imgWidth'],
|
346 |
+
'height' => (int) $_POST['imgHeight']
|
347 |
+
);
|
348 |
+
$command = 'resize_image';
|
349 |
+
$title = __( 'Resize images', 'nggallery' );
|
350 |
+
nggAdmin::do_ajax_operation( $command, $list, $title, $mode, $data );
|
351 |
+
return;
|
352 |
+
case 'new_thumbnails':
|
353 |
+
$data = array(
|
354 |
+
'width' => (int) $_POST['thumbwidth'],
|
355 |
+
'height' => (int) $_POST['thumbheight'],
|
356 |
+
'fix' => isset( $_POST['thumb_fix'] ) ? true : false
|
357 |
+
);
|
358 |
+
$command = 'create_thumbnail';
|
359 |
+
$title = __( 'Create new thumbnails', 'nggallery' );
|
360 |
+
nggAdmin::do_ajax_operation( $command, $list, $title, $mode, $data );
|
361 |
+
return;
|
362 |
+
case 'copy_to':
|
363 |
+
$dest_gid = (int) $_POST['dest_gid'];
|
364 |
+
nggAdmin::copy_images( $list, $dest_gid );
|
365 |
+
|
366 |
+
return;
|
367 |
+
case 'move_to':
|
368 |
+
$dest_gid = (int) $_POST['dest_gid'];
|
369 |
+
nggAdmin::move_images( $list, $dest_gid );
|
370 |
+
|
371 |
+
return;
|
372 |
+
case 'add_tags':
|
373 |
+
$tag_list = explode( ',', $_POST['taglist'] );
|
374 |
+
$tag_list = array_map( 'trim', $tag_list );
|
375 |
+
if ( is_array( $list ) ) {
|
376 |
+
foreach ( $list as $pic_id ) {
|
377 |
+
wp_set_object_terms( $pic_id, $tag_list, 'ngg_tag', true );
|
378 |
+
}
|
379 |
+
}
|
380 |
+
nggGallery::show_message( __( 'Tags changed', 'nggallery' ) );
|
381 |
+
|
382 |
+
return;
|
383 |
+
case 'delete_tags':
|
384 |
+
$tag_list = explode( ',', $_POST['taglist'] );
|
385 |
+
$tag_list = array_map( 'trim', $tag_list );
|
386 |
+
if ( is_array( $list ) ) {
|
387 |
+
foreach ( $list as $pic_id ) {
|
388 |
+
$old_tags = wp_get_object_terms( $pic_id, 'ngg_tag', 'fields=names' );
|
389 |
+
// get the slugs, to vaoid case sensitive problems
|
390 |
+
$slug_array = array_map( 'sanitize_title', $tag_list );
|
391 |
+
$old_tags = array_map( 'sanitize_title', $old_tags );
|
392 |
+
// compare them and return the diff
|
393 |
+
$new_tags = array_diff( $old_tags, $slug_array );
|
394 |
+
wp_set_object_terms( $pic_id, $new_tags, 'ngg_tag' );
|
395 |
+
}
|
396 |
+
}
|
397 |
+
nggGallery::show_message( __( 'Tags changed', 'nggallery' ) );
|
398 |
+
|
399 |
+
return;
|
400 |
+
case 'overwrite_tags':
|
401 |
+
$tag_list = explode( ',', $_POST['taglist'] );
|
402 |
+
$tag_list = array_map( 'trim', $tag_list );
|
403 |
+
if ( is_array( $list ) ) {
|
404 |
+
foreach ( $list as $pic_id ) {
|
405 |
+
wp_set_object_terms( $pic_id, $tag_list, 'ngg_tag' );
|
406 |
+
}
|
407 |
+
}
|
408 |
+
nggGallery::show_message( __( 'Tags changed', 'nggallery' ) );
|
409 |
+
|
410 |
+
return;
|
411 |
+
default:
|
412 |
+
return;
|
413 |
+
}
|
414 |
+
}
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Handle the bulk actions.
|
418 |
+
*/
|
419 |
+
protected function handle_bulk_actions() {
|
420 |
+
//Check the nonce.
|
421 |
+
if ( wp_verify_nonce( $_POST['_wpnonce'], 'bulk-ngg-manager' ) === false ) {
|
422 |
+
nggGallery::show_error( __( 'You waited too long, or you cheated.', 'nggallery' ) );
|
423 |
+
|
424 |
+
return;
|
425 |
+
}
|
426 |
+
|
427 |
+
global $wpdb, $ngg;
|
428 |
+
|
429 |
+
if ( $_POST['action'] !== "-1" && $_POST['action2'] !== "-1" ) {
|
430 |
+
return;
|
431 |
+
}
|
432 |
+
|
433 |
+
$a1 = $_POST['action'];
|
434 |
+
$a2 = $_POST['action2'];
|
435 |
+
|
436 |
+
if ( $a1 === "delete_gallery" || $a2 === "delete_gallery" ) {
|
437 |
+
// Delete gallery
|
438 |
+
if ( is_array( $_POST['doaction'] ) ) {
|
439 |
+
$deleted = false;
|
440 |
+
foreach ( $_POST['doaction'] as $id ) {
|
441 |
+
// get the path to the gallery
|
442 |
+
$gallery = nggdb::find_gallery( $id );
|
443 |
+
if ( $gallery ) {
|
444 |
+
//TODO:Remove also Tag reference, look here for ids instead filename
|
445 |
+
$imagelist = $wpdb->get_col( "SELECT filename FROM $wpdb->nggpictures WHERE galleryid = '$gallery->gid' " );
|
446 |
+
if ( $ngg->options['deleteImg'] ) {
|
447 |
+
if ( is_array( $imagelist ) ) {
|
448 |
+
foreach ( $imagelist as $filename ) {
|
449 |
+
@unlink( WINABSPATH . $gallery->path . '/thumbs/thumbs_' . $filename );
|
450 |
+
@unlink( WINABSPATH . $gallery->path . '/' . $filename );
|
451 |
+
@unlink( WINABSPATH . $gallery->path . '/' . $filename . '_backup' );
|
452 |
+
}
|
453 |
+
}
|
454 |
+
// delete folder
|
455 |
+
@rmdir( WINABSPATH . $gallery->path . '/thumbs' );
|
456 |
+
@rmdir( WINABSPATH . $gallery->path );
|
457 |
+
}
|
458 |
+
}
|
459 |
+
do_action( 'ngg_delete_gallery', $id );
|
460 |
+
$deleted = nggdb::delete_gallery( $id );
|
461 |
+
}
|
462 |
+
|
463 |
+
if ( $deleted ) {
|
464 |
+
nggGallery::show_message( __( 'Gallery deleted successfully.', 'nggallery' ) );
|
465 |
+
} else {
|
466 |
+
nggGallery::show_error( __( 'Something went wrong.', 'nggallery' ) );
|
467 |
+
}
|
468 |
+
|
469 |
+
}
|
470 |
+
} elseif ( $a1 === "delete_images" || $a2 === "delete_images" ) {
|
471 |
+
global $nggdb;
|
472 |
+
if ( is_array( $_POST['doaction'] ) ) {
|
473 |
+
foreach ( $_POST['doaction'] as $imageID ) {
|
474 |
+
$image = $nggdb->find_image( $imageID );
|
475 |
+
if ( $image ) {
|
476 |
+
if ( $ngg->options['deleteImg'] ) {
|
477 |
+
@unlink( $image->imagePath );
|
478 |
+
@unlink( $image->thumbPath );
|
479 |
+
@unlink( $image->imagePath . "_backup" );
|
480 |
+
}
|
481 |
+
do_action( 'ngg_delete_picture', $image->pid );
|
482 |
+
$delete_pic = nggdb::delete_image( $image->pid );
|
483 |
+
}
|
484 |
+
}
|
485 |
+
if ( $delete_pic ) {
|
486 |
+
nggGallery::show_message( __( 'Pictures deleted successfully ', 'nggallery' ) );
|
487 |
+
}
|
488 |
+
}
|
489 |
+
}
|
490 |
+
}
|
491 |
+
}
|
admin/manage/class-ngg-search-manager.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once( 'class-ngg-abstract-image-manager.php' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class NGG_Search_Manager
|
7 |
+
*
|
8 |
+
* Represents an image search page.
|
9 |
+
*/
|
10 |
+
class NGG_Search_Manager extends NGG_Abstract_Image_Manager {
|
11 |
+
|
12 |
+
private $search;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Select the search parameter and add the gallery ID column.
|
16 |
+
*/
|
17 |
+
public function __construct() {
|
18 |
+
$this->search = $_GET['s'];
|
19 |
+
|
20 |
+
add_filter( 'ngg_manage_images_columns', array( $this, 'add_column' ) );
|
21 |
+
add_action( 'ngg_manage_image_custom_column', array( $this, 'add_column_content' ), 10, 2 );
|
22 |
+
}
|
23 |
+
|
24 |
+
public function display() {
|
25 |
+
|
26 |
+
parent::display();
|
27 |
+
|
28 |
+
set_query_var( 's', $this->search );
|
29 |
+
$request = get_search_query();
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Display the actual table.
|
33 |
+
*/
|
34 |
+
$table = new NGG_Image_List_Table( self::BASE );
|
35 |
+
$table->prepare_items( $request );
|
36 |
+
?>
|
37 |
+
<div class="wrap">
|
38 |
+
<h2><?php printf( __( 'Image results for %s', 'nggallery' ), $this->search ) ?></h2>
|
39 |
+
<form id="update_images" class="nggform" method="POST" action="<?php echo self::BASE . '&mode=search&s=' . $this->search; ?>" accept-charset="utf-8">
|
40 |
+
<?php wp_nonce_field( 'ngg-update-images', '_ngg_nonce_images' ); ?>
|
41 |
+
<input type="hidden" id="page_type" name="page_type" value="image"/>
|
42 |
+
<?php $table->display(); ?>
|
43 |
+
</form>
|
44 |
+
</div>
|
45 |
+
<?php
|
46 |
+
$this->print_dialogs();
|
47 |
+
$this->print_scripts();
|
48 |
+
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Add the gallery ID column.
|
53 |
+
*
|
54 |
+
* @access private
|
55 |
+
*
|
56 |
+
* @param $columns
|
57 |
+
*
|
58 |
+
* @return array|bool
|
59 |
+
*/
|
60 |
+
public function add_column( $columns ) {
|
61 |
+
|
62 |
+
$key = 'gid';
|
63 |
+
$value = '<span class="dashicons dashicons-format-gallery" title="' . __( 'Gallery ID', 'nggallery' ) . '"></span>';
|
64 |
+
|
65 |
+
return $this->array_insert_after( 'id', $columns, $key, $value );
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Add the gallery id.
|
70 |
+
*
|
71 |
+
* @access private
|
72 |
+
*
|
73 |
+
* @param string $name
|
74 |
+
* @param nggImage $item
|
75 |
+
*/
|
76 |
+
public function add_column_content( $name, $item ) {
|
77 |
+
if ( $name === "gid" ) {
|
78 |
+
echo $item->galleryid;
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
/*
|
83 |
+
* Inserts a new key/value after the key in the array.
|
84 |
+
*
|
85 |
+
* @param $key The key to insert after.
|
86 |
+
* @param $array array An array to insert in to.
|
87 |
+
* @param $new_key The key to insert.
|
88 |
+
* @param $new_value An value to insert.
|
89 |
+
*
|
90 |
+
* @return array|bool The new array if the key exists, FALSE otherwise.
|
91 |
+
*
|
92 |
+
* @see http://eosrei.net/articles/2011/11/php-arrayinsertafter-arrayinsertbefore
|
93 |
+
*/
|
94 |
+
private function array_insert_after( $key, array $array, $new_key, $new_value ) {
|
95 |
+
if ( array_key_exists( $key, $array ) ) {
|
96 |
+
$new = array();
|
97 |
+
foreach ( $array as $k => $value ) {
|
98 |
+
$new[ $k ] = $value;
|
99 |
+
if ( $k === $key ) {
|
100 |
+
$new[ $new_key ] = $new_value;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
return $new;
|
105 |
+
}
|
106 |
+
|
107 |
+
return false;
|
108 |
+
}
|
109 |
+
}
|
admin/manage/class-ngg-sort-manager.php
ADDED
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include_once( 'class-ngg-manager.php' );
|
4 |
+
include_once( NGGALLERY_ABSPATH . '/admin/interface-ngg-displayable.php' );
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Class NGG_Sort_Manager
|
8 |
+
*
|
9 |
+
* This class represents the page where a user can sort the gallery.
|
10 |
+
*/
|
11 |
+
class NGG_Sort_Manager implements NGG_Displayable {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @todo We also use this in NGG_Manager. Should we make another superclass or a trait for one line?
|
15 |
+
*/
|
16 |
+
const BASE = 'admin.php?page=nggallery-manage';
|
17 |
+
|
18 |
+
private $id;
|
19 |
+
|
20 |
+
public function __construct() {
|
21 |
+
$this->id = (int) $_GET['gid'];
|
22 |
+
}
|
23 |
+
|
24 |
+
function display() {
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Check if sorting is actually allowed.
|
28 |
+
*/
|
29 |
+
$options = get_option( 'ngg_options' );
|
30 |
+
|
31 |
+
if ( $options['galSort'] != "sortorder" ) {
|
32 |
+
//Disable sort button and provide feedback why is disabled
|
33 |
+
nggGallery::show_error( __( 'To enable manual Sort set Custom Order Sort. See Settings->Gallery Settings->Sort Options',
|
34 |
+
'nggallery' ) );
|
35 |
+
echo '<a href="' . self::BASE . '&mode=image&gid=' . $this->id . '">' . __( 'Go back',
|
36 |
+
'nggallery' ) . '</a>';
|
37 |
+
|
38 |
+
return;
|
39 |
+
}
|
40 |
+
|
41 |
+
if ( isset( $_POST['update_sort_order'] ) ) {
|
42 |
+
$this->handle_update_sort_order();
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @global $nggdb nggdb
|
47 |
+
*/
|
48 |
+
global $nggdb;
|
49 |
+
|
50 |
+
// look for presort args
|
51 |
+
if ( isset( $_GET['presort'] ) ) {
|
52 |
+
$presort = $_GET['presort'];
|
53 |
+
} else {
|
54 |
+
$presort = false;
|
55 |
+
}
|
56 |
+
if ( ( isset( $_GET['dir'] ) && $_GET['dir'] == 'DESC' ) ) {
|
57 |
+
$dir = 'DESC';
|
58 |
+
} else {
|
59 |
+
$dir = 'ASC';
|
60 |
+
}
|
61 |
+
$sort_items = array( 'pid', 'filename', 'alttext', 'imagedate' );
|
62 |
+
// ensure that nobody added some evil sorting :-)
|
63 |
+
if ( in_array( $presort, $sort_items ) ) {
|
64 |
+
$picturelist = $nggdb->get_gallery( $this->id, $presort, $dir, false );
|
65 |
+
} else {
|
66 |
+
$picturelist = $nggdb->get_gallery( $this->id, 'sortorder', $dir, false );
|
67 |
+
}
|
68 |
+
|
69 |
+
//This is the url without any presort variable
|
70 |
+
$clean_url = self::BASE . '&mode=sort&gid=' . $this->id;
|
71 |
+
//If we go back, then the mode should be edit
|
72 |
+
$back_url = self::BASE . '&mode=image&gid=' . $this->id;
|
73 |
+
|
74 |
+
//In case of presort, then we take this url.
|
75 |
+
if ( isset( $_GET['dir'] ) || isset( $_GET['presort'] ) ) {
|
76 |
+
$base_url = $_SERVER['REQUEST_URI'];
|
77 |
+
} else {
|
78 |
+
$base_url = $clean_url;
|
79 |
+
}
|
80 |
+
|
81 |
+
?>
|
82 |
+
<div class="wrap">
|
83 |
+
<h2><?php _e( 'Sort Gallery', 'nggallery' ) ?></h2>
|
84 |
+
|
85 |
+
<form id="sort_gallery" method="POST" action="<?php echo $clean_url ?>" accept-charset="utf-8">
|
86 |
+
<div class="tablenav">
|
87 |
+
<div class="alignleft actions">
|
88 |
+
<?php wp_nonce_field( 'ngg-update-sort' ) ?>
|
89 |
+
<a href="<?php echo esc_url( $back_url ); ?>" class="button"><?php _e( 'Back to gallery',
|
90 |
+
'nggallery' ); ?></a>
|
91 |
+
<input class="button-primary action" type="submit" name="update_sort_order" onclick="saveImageOrder()" value="<?php _e( 'Update Sort Order',
|
92 |
+
'nggallery' ) ?>">
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
<input name="sort_order" type="hidden" id="sort_order">
|
96 |
+
<ul class="subsubsub">
|
97 |
+
<li><?php _e( 'Presort', 'nggallery' ) ?> :</li>
|
98 |
+
<li><a href="<?php echo esc_attr( remove_query_arg( 'presort',
|
99 |
+
$base_url ) ); ?>" <?php if ( $presort == '' ) {
|
100 |
+
echo 'class="current"';
|
101 |
+
} ?>><?php _e( 'Unsorted', 'nggallery' ) ?></a> |
|
102 |
+
</li>
|
103 |
+
<li><a href="<?php echo esc_attr( add_query_arg( 'presort', 'pid',
|
104 |
+
$base_url ) ); ?>" <?php if ( $presort == 'pid' ) {
|
105 |
+
echo 'class="current"';
|
106 |
+
} ?>><?php _e( 'Image ID', 'nggallery' ) ?></a> |
|
107 |
+
</li>
|
108 |
+
<li><a href="<?php echo esc_attr( add_query_arg( 'presort', 'filename',
|
109 |
+
$base_url ) ); ?>" <?php if ( $presort == 'filename' ) {
|
110 |
+
echo 'class="current"';
|
111 |
+
} ?>><?php _e( 'Filename', 'nggallery' ) ?></a> |
|
112 |
+
</li>
|
113 |
+
<li><a href="<?php echo esc_attr( add_query_arg( 'presort', 'alttext',
|
114 |
+
$base_url ) ); ?>" <?php if ( $presort == 'alttext' ) {
|
115 |
+
echo 'class="current"';
|
116 |
+
} ?>><?php _e( 'Alt/Title text', 'nggallery' ) ?></a> |
|
117 |
+
</li>
|
118 |
+
<li><a href="<?php echo esc_attr( add_query_arg( 'presort', 'imagedate',
|
119 |
+
$base_url ) ); ?>" <?php if ( $presort == 'imagedate' ) {
|
120 |
+
echo 'class="current"';
|
121 |
+
} ?>><?php _e( 'Date/Time', 'nggallery' ) ?></a> |
|
122 |
+
</li>
|
123 |
+
<li><a href="<?php echo esc_attr( add_query_arg( 'dir', 'ASC',
|
124 |
+
$base_url ) ); ?>" <?php if ( $dir == 'ASC' ) {
|
125 |
+
echo 'class="current"';
|
126 |
+
} ?>><?php _e( 'Ascending', 'nggallery' ) ?></a> |
|
127 |
+
</li>
|
128 |
+
<li><a href="<?php echo esc_attr( add_query_arg( 'dir', 'DESC',
|
129 |
+
$base_url ) ); ?>" <?php if ( $dir == 'DESC' ) {
|
130 |
+
echo 'class="current"';
|
131 |
+
} ?>><?php _e( 'Descending', 'nggallery' ) ?></a></li>
|
132 |
+
</ul>
|
133 |
+
</form>
|
134 |
+
<br style="clear:both">
|
135 |
+
|
136 |
+
<div class='sortable'>
|
137 |
+
<?php
|
138 |
+
if ( $picturelist ) {
|
139 |
+
foreach ( $picturelist as $picture ) {
|
140 |
+
?>
|
141 |
+
<div class="image-box" id="pid-<?php echo $picture->pid ?>" data-id="<?php echo $picture->pid ?>">
|
142 |
+
<img src="<?php echo esc_url( $picture->thumbURL ); ?>">
|
143 |
+
|
144 |
+
<p><?php echo esc_html( stripslashes( $picture->alttext ) ); ?></p>
|
145 |
+
</div>
|
146 |
+
<?php
|
147 |
+
}
|
148 |
+
}
|
149 |
+
?>
|
150 |
+
</div>
|
151 |
+
</div>
|
152 |
+
<script type="text/javascript">
|
153 |
+
jQuery(document).ready(function() {
|
154 |
+
jQuery(".sortable").sortable({items: 'div.image-box'});
|
155 |
+
jQuery("#sort_gallery").submit(function() {
|
156 |
+
var ids = [];
|
157 |
+
|
158 |
+
jQuery(".image-box").each(function() {
|
159 |
+
ids.push(jQuery(this).data('id'));
|
160 |
+
});
|
161 |
+
|
162 |
+
jQuery('#sort_order').val(ids.join(','));
|
163 |
+
})
|
164 |
+
});
|
165 |
+
</script>
|
166 |
+
<?php
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Update the sort order if the user wants to.
|
171 |
+
*
|
172 |
+
* @access private
|
173 |
+
*/
|
174 |
+
private function handle_update_sort_order() {
|
175 |
+
|
176 |
+
//Check the nonce.
|
177 |
+
if ( wp_verify_nonce( $_POST['_wpnonce'], 'ngg-update-sort' ) === false ) {
|
178 |
+
nggGallery::show_error( __( 'You waited too long, or you cheated.', 'nggallery' ) );
|
179 |
+
|
180 |
+
return;
|
181 |
+
}
|
182 |
+
|
183 |
+
global $wpdb;
|
184 |
+
|
185 |
+
$ids = $integerIDs = array_map( 'intval', explode( ',', $_POST['sort_order'] ) );
|
186 |
+
|
187 |
+
if ( is_array( $ids ) ) {
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Prepare the SQL statement. Preparing isn't necessary here: we are sure we have int:
|
191 |
+
* PHP's internal counter and an array we have run intval over. Preparing would cost too much for no gain.
|
192 |
+
*/
|
193 |
+
$sql = "UPDATE $wpdb->nggpictures SET sortorder = CASE";
|
194 |
+
|
195 |
+
foreach ( $ids as $key => $pic_id ) {
|
196 |
+
$sql .= " WHEN pid = $pic_id THEN $key";
|
197 |
+
}
|
198 |
+
|
199 |
+
$string = join( ',', $ids );
|
200 |
+
|
201 |
+
$sql .= " END WHERE pid IN ($string)";
|
202 |
+
|
203 |
+
$wpdb->query( $sql );
|
204 |
+
|
205 |
+
do_action( 'ngg_gallery_sort', $this->id );
|
206 |
+
|
207 |
+
nggGallery::show_message( __( 'Sort order changed', 'nggallery' ) );
|
208 |
+
}
|
209 |
+
}
|
210 |
+
}
|
admin/publish.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
|
4 |
-
require_once( NGGALLERY_ABSPATH . '/lib/image.php' );
|
5 |
-
|
6 |
-
if ( !is_user_logged_in() )
|
7 |
-
die(__('Cheatin’ uh?'));
|
8 |
-
|
9 |
-
if ( !current_user_can('NextGEN Manage gallery') )
|
10 |
-
die(__('Cheatin’ uh?'));
|
11 |
-
|
12 |
-
if ( !current_user_can( 'publish_posts' ) )
|
13 |
-
die(__('Cheatin’ uh?'));
|
14 |
-
|
15 |
-
global $wpdb;
|
16 |
-
|
17 |
-
$id = (int) $_GET['id'];
|
18 |
-
|
19 |
-
// let's get the image data
|
20 |
-
$picture = nggdb::find_image($id);
|
21 |
-
|
22 |
-
// use defaults the first time
|
23 |
-
$width = empty ($ngg->options['publish_width']) ? $ngg->options['thumbwidth'] : $ngg->options['publish_width'];
|
24 |
-
$height = empty ($ngg->options['publish_height']) ? $ngg->options['thumbheight'] : $ngg->options['publish_height'];
|
25 |
-
$align = empty ($ngg->options['publish_align']) ? 'none' : $ngg->options['publish_align'];
|
26 |
-
|
27 |
-
?>
|
28 |
-
|
29 |
-
<form id="form-publish-post" method="POST" accept-charset="utf-8">
|
30 |
-
<?php wp_nonce_field('publish-post') ?>
|
31 |
-
<input type="hidden" name="page" value="publish-post" />
|
32 |
-
<input type="hidden" name="pid" value="<?php echo $picture->pid; ?>" />
|
33 |
-
<table width="100%" border="0" cellspacing="3" cellpadding="3" >
|
34 |
-
<tr valign="top">
|
35 |
-
<th align="left"><?php _e('Post title','nggallery') ?></th>
|
36 |
-
<td><input type="text" size="70" name="post_title" value="<?php echo esc_attr( $picture->alttext); ?>" />
|
37 |
-
<br /><small><?php _e('Enter the post title ','nggallery') ?></small></td>
|
38 |
-
</tr>
|
39 |
-
<tr valign="top">
|
40 |
-
<th align="left"><?php _e('Width x height (in pixel)','nggallery') ?></th>
|
41 |
-
<td><input type="text" size="5" maxlength="5" name="width" value="<?php echo $width; ?>" /> x <input type="text" size="5" maxlength="5" name="height" value="<?php echo $height; ?>" />
|
42 |
-
<br /><small><?php _e('Size of the image','nggallery') ?></small></td>
|
43 |
-
</tr>
|
44 |
-
<tr valign="top">
|
45 |
-
<th align="left"><?php _e('Alignment','nggallery') ?></th>
|
46 |
-
<td><input type="radio" value="none" <?php checked('none', $align); ?> id="image-align-none" name="align"/>
|
47 |
-
<label class="align" for="image-align-none"><?php _e('None','nggallery'); ?></label>
|
48 |
-
<input type="radio" value="left" <?php checked('left', $align); ?> id="image-align-left" name="align"/>
|
49 |
-
<label class="align" for="image-align-left"><?php _e('Left','nggallery'); ?></label>
|
50 |
-
<input type="radio" value="center" <?php checked('center', $align); ?> id="image-align-center" name="align"/>
|
51 |
-
<label class="align" for="image-align-center"><?php _e('Center','nggallery'); ?></label>
|
52 |
-
<input type="radio" value="right" <?php checked('right', $align); ?> id="image-align-right" name="align"/>
|
53 |
-
<label class="align" for="image-align-right"><?php _e('Right','nggallery'); ?></label>
|
54 |
-
</td>
|
55 |
-
</tr>
|
56 |
-
<tr align="right">
|
57 |
-
<td colspan="2" class="submit">
|
58 |
-
<input class="button-primary" type="submit" name="publish" value="<?php _e('Publish', 'nggallery');?>" />
|
59 |
-
|
60 |
-
<input class="button-secondary" type="submit" name="draft" value=" <?php _e('Draft', 'nggallery'); ?> " />
|
61 |
-
</td>
|
62 |
-
</tr>
|
63 |
-
</table>
|
64 |
-
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/roles.php
DELETED
@@ -1,138 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
4 |
-
|
5 |
-
function nggallery_admin_roles() {
|
6 |
-
|
7 |
-
if ( isset($_POST['update_cap']) ) {
|
8 |
-
|
9 |
-
check_admin_referer('ngg_addroles');
|
10 |
-
|
11 |
-
// now set or remove the capability
|
12 |
-
ngg_set_capability($_POST['general'],"NextGEN Gallery overview");
|
13 |
-
ngg_set_capability($_POST['tinymce'],"NextGEN Use TinyMCE");
|
14 |
-
ngg_set_capability($_POST['add_gallery'],"NextGEN Upload images");
|
15 |
-
ngg_set_capability($_POST['manage_gallery'],"NextGEN Manage gallery");
|
16 |
-
ngg_set_capability($_POST['manage_others'],"NextGEN Manage others gallery");
|
17 |
-
ngg_set_capability($_POST['manage_tags'],"NextGEN Manage tags");
|
18 |
-
ngg_set_capability($_POST['edit_album'],"NextGEN Edit album");
|
19 |
-
ngg_set_capability($_POST['change_style'],"NextGEN Change style");
|
20 |
-
ngg_set_capability($_POST['change_options'],"NextGEN Change options");
|
21 |
-
|
22 |
-
nggGallery::show_message(__('Updated capabilities',"nggallery"));
|
23 |
-
}
|
24 |
-
|
25 |
-
?>
|
26 |
-
<div class="wrap">
|
27 |
-
<h2><?php _e('Roles / capabilities', 'nggallery') ;?></h2>
|
28 |
-
<p><?php _e('Select the lowest role which should be able to access the following capabilities. NextCellent Gallery supports the standard roles from WordPress.', 'nggallery') ?> <br />
|
29 |
-
<?php _e('For a more flexible user management you can use the', 'nggallery') ?> <a href="http://wordpress.org/extend/plugins/capsman/" target="_blank">Capability Manager</a>.</p>
|
30 |
-
<form name="addroles" id="addroles" method="POST" accept-charset="utf-8" >
|
31 |
-
<?php wp_nonce_field('ngg_addroles') ?>
|
32 |
-
<table class="form-table">
|
33 |
-
<tr valign="top">
|
34 |
-
<th scope="row"><label for="general"><?php _e('NextCellent Gallery overview', 'nggallery') ;?></label></th>
|
35 |
-
<td><select name="general" id="general"><?php wp_dropdown_roles( ngg_get_role('NextGEN Gallery overview') ); ?></select></td>
|
36 |
-
</tr>
|
37 |
-
<tr valign="top">
|
38 |
-
<th scope="row"><label for="tinymce"><?php _e('Use TinyMCE Button / Add Media', 'nggallery') ;?></label></th>
|
39 |
-
<td><select name="tinymce" id="tinymce"><?php wp_dropdown_roles( ngg_get_role('NextGEN Use TinyMCE') ); ?></select></td>
|
40 |
-
</tr>
|
41 |
-
<tr valign="top">
|
42 |
-
<th scope="row"><label for="add_gallery"><?php _e('Add gallery / Upload images', 'nggallery') ;?></label></th>
|
43 |
-
<td><select name="add_gallery" id="add_gallery"><?php wp_dropdown_roles( ngg_get_role('NextGEN Upload images') ); ?></select></td>
|
44 |
-
</tr>
|
45 |
-
<tr valign="top">
|
46 |
-
<th scope="row"><label for="manage_gallery"><?php _e('Manage gallery', 'nggallery') ;?></label></th>
|
47 |
-
<td><select name="manage_gallery" id="manage_gallery"><?php wp_dropdown_roles( ngg_get_role('NextGEN Manage gallery') ); ?></select></td>
|
48 |
-
</tr>
|
49 |
-
<tr valign="top">
|
50 |
-
<th scope="row"><label for="manage_others"><?php _e('Manage others gallery', 'nggallery') ;?></label></th>
|
51 |
-
<td><select name="manage_others" id="manage_others"><?php wp_dropdown_roles( ngg_get_role('NextGEN Manage others gallery') ); ?></select></td>
|
52 |
-
</tr>
|
53 |
-
<tr valign="top">
|
54 |
-
<th scope="row"><label for="manage_tags"><?php _e('Manage tags', 'nggallery') ;?></label></th>
|
55 |
-
<td><select name="manage_tags" id="manage_tags"><?php wp_dropdown_roles( ngg_get_role('NextGEN Manage tags') ); ?></select></td>
|
56 |
-
</tr>
|
57 |
-
<tr valign="top">
|
58 |
-
<th scope="row"><label for="edit_album"><?php _e('Edit Album', 'nggallery') ;?></label></th>
|
59 |
-
<td><select name="edit_album" id="edit_album"><?php wp_dropdown_roles( ngg_get_role('NextGEN Edit album') ); ?></select></td>
|
60 |
-
</tr>
|
61 |
-
<tr valign="top">
|
62 |
-
<th scope="row"><label for="change_style"><?php _e('Change style', 'nggallery') ;?></label></th>
|
63 |
-
<td><select name="change_style" id="change_style"><?php wp_dropdown_roles( ngg_get_role('NextGEN Change style') ); ?></select></td>
|
64 |
-
</tr>
|
65 |
-
<tr valign="top">
|
66 |
-
<th scope="row"><label for="change_options"><?php _e('Change options', 'nggallery') ;?></label></th>
|
67 |
-
<td><select name="change_options" id="change_options"><?php wp_dropdown_roles( ngg_get_role('NextGEN Change options') ); ?></select></td>
|
68 |
-
</tr>
|
69 |
-
</table>
|
70 |
-
<div class="submit"><input type="submit" class="button-primary" name= "update_cap" value="<?php _e('Update capabilities', 'nggallery') ;?>"/></div>
|
71 |
-
</form>
|
72 |
-
</div>
|
73 |
-
<?php
|
74 |
-
|
75 |
-
}
|
76 |
-
|
77 |
-
function ngg_get_sorted_roles() {
|
78 |
-
// This function returns all roles, sorted by user level (lowest to highest)
|
79 |
-
global $wp_roles;
|
80 |
-
$roles = $wp_roles->role_objects;
|
81 |
-
$sorted = array();
|
82 |
-
|
83 |
-
if( class_exists('RoleManager') ) {
|
84 |
-
foreach( $roles as $role_key => $role_name ) {
|
85 |
-
$role = get_role($role_key);
|
86 |
-
if( empty($role) ) continue;
|
87 |
-
$role_user_level = array_reduce(array_keys($role->capabilities), array('WP_User', 'level_reduction'), 0);
|
88 |
-
$sorted[$role_user_level] = $role;
|
89 |
-
}
|
90 |
-
$sorted = array_values($sorted);
|
91 |
-
} else {
|
92 |
-
$role_order = array("subscriber", "contributor", "author", "editor", "administrator");
|
93 |
-
foreach($role_order as $role_key) {
|
94 |
-
$sorted[$role_key] = get_role($role_key);
|
95 |
-
}
|
96 |
-
}
|
97 |
-
return $sorted;
|
98 |
-
}
|
99 |
-
|
100 |
-
function ngg_get_role($capability){
|
101 |
-
// This function return the lowest roles which has the capabilities
|
102 |
-
$check_order = ngg_get_sorted_roles();
|
103 |
-
|
104 |
-
$args = array_slice(func_get_args(), 1);
|
105 |
-
$args = array_merge(array($capability), $args);
|
106 |
-
|
107 |
-
foreach ($check_order as $check_role) {
|
108 |
-
if ( empty($check_role) )
|
109 |
-
return false;
|
110 |
-
|
111 |
-
if (call_user_func_array(array(&$check_role, 'has_cap'), $args))
|
112 |
-
return $check_role->name;
|
113 |
-
}
|
114 |
-
return false;
|
115 |
-
}
|
116 |
-
|
117 |
-
function ngg_set_capability($lowest_role, $capability){
|
118 |
-
// This function set or remove the $capability
|
119 |
-
$check_order = ngg_get_sorted_roles();
|
120 |
-
|
121 |
-
$add_capability = false;
|
122 |
-
|
123 |
-
foreach ($check_order as $the_role) {
|
124 |
-
$role = $the_role->name;
|
125 |
-
|
126 |
-
if ( $lowest_role == $role )
|
127 |
-
$add_capability = true;
|
128 |
-
|
129 |
-
// If you rename the roles, then please use a role manager plugin
|
130 |
-
|
131 |
-
if ( empty($the_role) )
|
132 |
-
continue;
|
133 |
-
|
134 |
-
$add_capability ? $the_role->add_cap($capability) : $the_role->remove_cap($capability) ;
|
135 |
-
}
|
136 |
-
}
|
137 |
-
|
138 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/rotate.php
DELETED
@@ -1,93 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
|
4 |
-
Custom thumbnail for NGG
|
5 |
-
Author : Simone Fumagalli | simone@iliveinperego.com
|
6 |
-
More info and update : http://www.iliveinperego.com/rotate_for_ngg/
|
7 |
-
|
8 |
-
Credits:
|
9 |
-
NextGen Gallery : Alex Rabe | http://alexrabe.boelinger.com/wordpress-plugins/nextgen-gallery/
|
10 |
-
|
11 |
-
**/
|
12 |
-
|
13 |
-
require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
|
14 |
-
require_once( NGGALLERY_ABSPATH . '/lib/image.php' );
|
15 |
-
|
16 |
-
if ( !is_user_logged_in() )
|
17 |
-
die(__('Cheatin’ uh?'));
|
18 |
-
|
19 |
-
if ( !current_user_can('NextGEN Manage gallery') )
|
20 |
-
die(__('Cheatin’ uh?'));
|
21 |
-
|
22 |
-
global $wpdb;
|
23 |
-
|
24 |
-
$id = (int) $_GET['id'];
|
25 |
-
|
26 |
-
// let's get the image data
|
27 |
-
$picture = nggdb::find_image($id);
|
28 |
-
|
29 |
-
include_once( nggGallery::graphic_library() );
|
30 |
-
$ngg_options = get_option('ngg_options');
|
31 |
-
|
32 |
-
$thumb = new ngg_Thumbnail($picture->imagePath, TRUE);
|
33 |
-
$thumb->resize(350,350);
|
34 |
-
|
35 |
-
// we need the new dimension
|
36 |
-
$resizedPreviewInfo = $thumb->newDimensions;
|
37 |
-
$thumb->destruct();
|
38 |
-
|
39 |
-
$preview_image = trailingslashit( home_url() ) . 'index.php?callback=image&pid=' . $picture->pid . '&width=350&height=350';
|
40 |
-
|
41 |
-
?>
|
42 |
-
|
43 |
-
<script language="JavaScript">
|
44 |
-
<!--
|
45 |
-
|
46 |
-
function rotateImage() {
|
47 |
-
|
48 |
-
var rotate_angle = jQuery('input[name=ra]:checked').val();
|
49 |
-
|
50 |
-
jQuery.ajax({
|
51 |
-
url: ajaxurl,
|
52 |
-
type : "POST",
|
53 |
-
data: {action: 'rotateImage', id: <?php echo $id ?>, ra: rotate_angle},
|
54 |
-
cache: false,
|
55 |
-
success: function (msg) { showMessage('<?php _e('Image rotated', 'nggallery'); ?>') },
|
56 |
-
error: function (msg, status, errorThrown) { showMessage('<?php _e('Error rotating thumbnail', 'nggallery'); ?>') }
|
57 |
-
});
|
58 |
-
|
59 |
-
}
|
60 |
-
|
61 |
-
function showMessage(message) {
|
62 |
-
jQuery('#thumbMsg').html(message);
|
63 |
-
jQuery('#thumbMsg').css({'display':'block'});
|
64 |
-
setTimeout(function(){ jQuery('#thumbMsg').fadeOut('slow'); }, 1500);
|
65 |
-
|
66 |
-
var d = new Date();
|
67 |
-
newUrl = jQuery("#imageToEdit").attr("src") + "?" + d.getTime();
|
68 |
-
jQuery("#imageToEdit").attr("src" , newUrl);
|
69 |
-
|
70 |
-
}
|
71 |
-
|
72 |
-
-->
|
73 |
-
</script>
|
74 |
-
<p><?php _e('Select how you would like to rotate the image on the left.', 'nggallery'); ?></p>
|
75 |
-
<table width="98%" align="center">
|
76 |
-
<tr style="min-height: 360px;">
|
77 |
-
<td valign="middle" align="center" style="width : 370px;">
|
78 |
-
<img src="<?php echo esc_url( $preview_image ); ?>" alt="" id="imageToEdit" />
|
79 |
-
</td>
|
80 |
-
<td style="min-width: 160px;">
|
81 |
-
<input type="radio" name="ra" value="cw" /><?php esc_html_e('90° clockwise', 'nggallery'); ?><br />
|
82 |
-
<input type="radio" name="ra" value="ccw" /><?php esc_html_e('90° anticlockwise', 'nggallery'); ?><br />
|
83 |
-
<input type="radio" name="ra" value="fv" /><?php esc_html_e('Flip horizontally', 'nggallery'); ?><br />
|
84 |
-
<input type="radio" name="ra" value="fh" /><?php esc_html_e('Flip vertically', 'nggallery'); ?>
|
85 |
-
</td>
|
86 |
-
</tr>
|
87 |
-
<tr>
|
88 |
-
<td colspan="2">
|
89 |
-
<input type="button" name="update" value="<?php esc_attr_e('Update', 'nggallery'); ?>" onclick="rotateImage()" class="button-primary" style="float:right; margin-top:0.5em;"/>
|
90 |
-
<div id="thumbMsg" style="display : none; float:right; width:60%; height:2em; line-height:2em;"></div>
|
91 |
-
</td>
|
92 |
-
</tr>
|
93 |
-
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/setup.php
DELETED
@@ -1,58 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
3 |
-
|
4 |
-
function nggallery_admin_setup() {
|
5 |
-
global $wpdb, $ngg;
|
6 |
-
|
7 |
-
if (isset($_POST['resetdefault'])) {
|
8 |
-
check_admin_referer('ngg_uninstall');
|
9 |
-
|
10 |
-
include_once ( dirname (__FILE__). '/install.php');
|
11 |
-
|
12 |
-
ngg_default_options();
|
13 |
-
$ngg->load_options();
|
14 |
-
|
15 |
-
nggGallery::show_message(__('Reset all settings to default parameter','nggallery'));
|
16 |
-
}
|
17 |
-
|
18 |
-
if (isset($_POST['uninstall'])) {
|
19 |
-
|
20 |
-
check_admin_referer('ngg_uninstall');
|
21 |
-
|
22 |
-
include_once ( dirname (__FILE__). '/install.php');
|
23 |
-
|
24 |
-
nggallery_uninstall();
|
25 |
-
|
26 |
-
nggGallery::show_message(__('Uninstall sucessful ! Now delete the plugin and enjoy your life ! Good luck !','nggallery'));
|
27 |
-
}
|
28 |
-
?>
|
29 |
-
<div class="wrap">
|
30 |
-
<h2><?php _e('Reset options', 'nggallery') ;?></h2>
|
31 |
-
<form name="resetsettings" method="post">
|
32 |
-
<?php wp_nonce_field('ngg_uninstall') ?>
|
33 |
-
<p><?php _e('Reset all options/settings to the default installation.', 'nggallery') ;?></p>
|
34 |
-
<div align="center"><input type="submit" class="button" name="resetdefault" value="<?php _e('Reset settings', 'nggallery') ;?>" onclick="javascript:check=confirm('<?php _e('Reset all options to default settings ?\n\nChoose [Cancel] to Stop, [OK] to proceed.\n','nggallery'); ?>');if(check==false) return false;" /></div>
|
35 |
-
</form>
|
36 |
-
</div>
|
37 |
-
<?php if ( !is_multisite() || is_super_admin() ) : ?>
|
38 |
-
<div class="wrap">
|
39 |
-
<h2><?php _e('Uninstall plugin tables', 'nggallery') ;?></h2>
|
40 |
-
|
41 |
-
<form name="resetsettings" method="post">
|
42 |
-
<div>
|
43 |
-
<?php wp_nonce_field('ngg_uninstall') ?>
|
44 |
-
<p><?php _e('You don\'t like NextCellent Gallery ?', 'nggallery') ;?></p>
|
45 |
-
<p><?php _e('No problem, before you deactivate this plugin press the Uninstall Button, because deactivating NextCellent Gallery does not remove any data that may have been created. ', 'nggallery') ;?>
|
46 |
-
</div>
|
47 |
-
<p><font color="red"><strong><?php _e('WARNING:', 'nggallery') ;?></strong><br />
|
48 |
-
<?php _e('Once uninstalled, this cannot be undone. You should use a Database Backup plugin of WordPress to backup all the tables first. NextCellent gallery is stored in the tables', 'nggallery') ;?> <strong><?php echo $wpdb->nggpictures; ?></strong>, <strong><?php echo $wpdb->nggalbum; ?></strong> <?php _e('and', 'nggallery') ;?> <strong><?php echo $wpdb->nggalbum; ?></strong>.</font></p>
|
49 |
-
<div align="center">
|
50 |
-
<input type="submit" name="uninstall" class="button delete" value="<?php _e('Uninstall plugin', 'nggallery') ?>" onclick="javascript:check=confirm('<?php _e('You are about to Uninstall this plugin from WordPress.\nThis action is not reversible.\n\nChoose [Cancel] to Stop, [OK] to Uninstall.\n','nggallery'); ?>');if(check==false) return false;"/>
|
51 |
-
</div>
|
52 |
-
</form>
|
53 |
-
</div>
|
54 |
-
<?php endif; ?>
|
55 |
-
|
56 |
-
<?php
|
57 |
-
}
|
58 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/showmeta.php
DELETED
@@ -1,123 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// look up for the path
|
4 |
-
require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
|
5 |
-
|
6 |
-
require_once(NGGALLERY_ABSPATH . '/lib/meta.php');
|
7 |
-
require_once(NGGALLERY_ABSPATH . '/lib/image.php');
|
8 |
-
|
9 |
-
if ( !is_user_logged_in() )
|
10 |
-
die(__('Cheatin’ uh?'));
|
11 |
-
|
12 |
-
if ( !current_user_can('NextGEN Manage gallery') )
|
13 |
-
die(__('Cheatin’ uh?'));
|
14 |
-
|
15 |
-
global $wpdb;
|
16 |
-
|
17 |
-
$id = (int) $_GET['id'];
|
18 |
-
// let's get the meta data'
|
19 |
-
$meta = new nggMeta($id);
|
20 |
-
$dbdata = $meta->get_saved_meta();
|
21 |
-
$exifdata = $meta->get_EXIF();
|
22 |
-
$iptcdata = $meta->get_IPTC();
|
23 |
-
$xmpdata = $meta->get_XMP();
|
24 |
-
$class = '';
|
25 |
-
|
26 |
-
?>
|
27 |
-
<!-- META DATA -->
|
28 |
-
<fieldset class="options nggallery">
|
29 |
-
<?php if ($dbdata) { ?>
|
30 |
-
<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
|
31 |
-
<thead style="text-align: left;">
|
32 |
-
<tr>
|
33 |
-
<th scope="col"><?php _e('Name','nggallery'); ?></th>
|
34 |
-
<th scope="col"><?php _e('Value','nggallery'); ?></th>
|
35 |
-
</tr>
|
36 |
-
</thead>
|
37 |
-
<?php
|
38 |
-
foreach ($dbdata as $key => $value){
|
39 |
-
if ( is_array($value) ) continue;
|
40 |
-
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
41 |
-
echo '<tr '.$class.'>
|
42 |
-
<td style="width:230px">'. esc_html( $meta->i8n_name($key) ).'</td>
|
43 |
-
<td>' . esc_html( $value ) . '</td>
|
44 |
-
</tr>';
|
45 |
-
}
|
46 |
-
?>
|
47 |
-
</table>
|
48 |
-
<?php } else echo "<strong>" . __('No meta data saved','nggallery') . "</strong>"; ?>
|
49 |
-
</fieldset>
|
50 |
-
|
51 |
-
<!-- EXIF DATA -->
|
52 |
-
<?php if ($exifdata) { ?>
|
53 |
-
<fieldset class="options nggallery">
|
54 |
-
<h3><?php _e('EXIF Data','nggallery'); ?></h3>
|
55 |
-
<?php if ($exifdata) { ?>
|
56 |
-
<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
|
57 |
-
<thead style="text-align: left;">
|
58 |
-
<tr>
|
59 |
-
<th scope="col"><?php _e('Name','nggallery'); ?></th>
|
60 |
-
<th scope="col"><?php _e('Value','nggallery'); ?></th>
|
61 |
-
</tr>
|
62 |
-
</thead>
|
63 |
-
<?php
|
64 |
-
foreach ($exifdata as $key => $value){
|
65 |
-
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
66 |
-
echo '<tr '.$class.'>
|
67 |
-
<td style="width:230px">' . esc_html ( $meta->i8n_name($key) ) . '</td>
|
68 |
-
<td>' . esc_html( $value ) .'</td>
|
69 |
-
</tr>';
|
70 |
-
}
|
71 |
-
?>
|
72 |
-
</table>
|
73 |
-
<?php } else echo "<strong>". __('No exif data','nggallery'). "</strong>"; ?>
|
74 |
-
</fieldset>
|
75 |
-
<?php } ?>
|
76 |
-
|
77 |
-
<!-- IPTC DATA -->
|
78 |
-
<?php if ($iptcdata) { ?>
|
79 |
-
<fieldset class="options nggallery">
|
80 |
-
<h3><?php _e('IPTC Data','nggallery'); ?></h3>
|
81 |
-
<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
|
82 |
-
<thead style="text-align: left;">
|
83 |
-
<tr>
|
84 |
-
<th scope="col"><?php _e('Name','nggallery'); ?></th>
|
85 |
-
<th scope="col"><?php _e('Value','nggallery'); ?></th>
|
86 |
-
</tr>
|
87 |
-
</thead>
|
88 |
-
<?php
|
89 |
-
foreach ($iptcdata as $key => $value){
|
90 |
-
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
91 |
-
echo '<tr '.$class.'>
|
92 |
-
<td style="width:230px">' . esc_html( $meta->i8n_name($key) ) . '</td>
|
93 |
-
<td>' . esc_html( $value ) . '</td>
|
94 |
-
</tr>';
|
95 |
-
}
|
96 |
-
?>
|
97 |
-
</table>
|
98 |
-
</fieldset>
|
99 |
-
<?php } ?>
|
100 |
-
|
101 |
-
<!-- XMP DATA -->
|
102 |
-
<?php if ($xmpdata) { ?>
|
103 |
-
<fieldset class="options nggallery">
|
104 |
-
<h3><?php _e('XMP Data','nggallery'); ?></h3>
|
105 |
-
<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
|
106 |
-
<thead>
|
107 |
-
<tr>
|
108 |
-
<th scope="col"><?php _e('Name','nggallery'); ?></th>
|
109 |
-
<th scope="col"><?php _e('Value','nggallery'); ?></th>
|
110 |
-
</tr>
|
111 |
-
</thead>
|
112 |
-
<?php
|
113 |
-
foreach ($xmpdata as $key => $value){
|
114 |
-
$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
|
115 |
-
echo '<tr '.$class.'>
|
116 |
-
<td style="width:230px">' . esc_html( $meta->i8n_name($key) ) . '</td>
|
117 |
-
<td>' . esc_html( $value ) . '</td>
|
118 |
-
</tr>';
|
119 |
-
}
|
120 |
-
?>
|
121 |
-
</table>
|
122 |
-
</fieldset>
|
123 |
-
<?php } ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/tags.php
DELETED
@@ -1,289 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Tag management page. Inspired from the Simple Tags plugin by Amaury Balmer.
|
4 |
-
* http://code.google.com/p/simple-tags/
|
5 |
-
*/
|
6 |
-
|
7 |
-
if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
|
8 |
-
|
9 |
-
$action_status = array('message' => '', 'status' => 'ok');
|
10 |
-
|
11 |
-
if ( isset($_POST['tag_action']) ) {
|
12 |
-
|
13 |
-
check_admin_referer('nggallery_admin_tags');
|
14 |
-
|
15 |
-
if ( $_POST['tag_action'] == 'renametag' ) {
|
16 |
-
$oldtag = (isset($_POST['renametag_old'])) ? $_POST['renametag_old'] : '';
|
17 |
-
$newtag = (isset($_POST['renametag_new'])) ? $_POST['renametag_new'] : '';
|
18 |
-
$action_status = nggTags::rename_tags( $oldtag, $newtag );
|
19 |
-
} elseif ( $_POST['tag_action'] == 'deletetag' ) {
|
20 |
-
$todelete = (isset($_POST['deletetag_name'])) ? $_POST['deletetag_name'] : '';
|
21 |
-
$action_status = nggTags::delete_tags( $todelete );
|
22 |
-
} elseif ( $_POST['tag_action'] == 'editslug' ) {
|
23 |
-
$matchtag = (isset($_POST['tagname_match'])) ? $_POST['tagname_match'] : '';
|
24 |
-
$newslug = (isset($_POST['tagslug_new'])) ? $_POST['tagslug_new'] : '';
|
25 |
-
$action_status = nggTags::edit_tag_slug( $matchtag, $newslug );
|
26 |
-
}
|
27 |
-
}
|
28 |
-
|
29 |
-
// Som useful variables
|
30 |
-
$admin_base_url = admin_url() . 'admin.php?page=nggallery-tags';
|
31 |
-
$nb_tags = 50; // Number of tags to show on a single page
|
32 |
-
|
33 |
-
// Manage URL
|
34 |
-
$sort_order = ( isset($_GET['tag_sortorder']) ) ? esc_attr( stripslashes($_GET['tag_sortorder']) ) : 'desc';
|
35 |
-
$search_url = ( isset($_GET['search']) ) ? '&search=' . esc_attr ( stripslashes($_GET['search']) ) : '';
|
36 |
-
$action_url = $admin_base_url . '&tag_sortorder=' . $sort_order. $search_url;
|
37 |
-
|
38 |
-
// Tags Filters
|
39 |
-
$order_array = array(
|
40 |
-
'desc' => __('Most popular', 'nggallery'),
|
41 |
-
'asc' => __('Least used', 'nggallery'),
|
42 |
-
'natural' => __('Alphabetical', 'nggallery'));
|
43 |
-
|
44 |
-
// Build Tags Param
|
45 |
-
$param = 'hide_empty=false';
|
46 |
-
switch ($sort_order) {
|
47 |
-
case 'natural' :
|
48 |
-
$param .= '&number='.$nb_tags.'&orderby=name&order=asc';
|
49 |
-
break;
|
50 |
-
case 'asc' :
|
51 |
-
$param .= '&number='.$nb_tags.'&orderby=count&order=asc';
|
52 |
-
break;
|
53 |
-
default :
|
54 |
-
$param .= '&number='.$nb_tags.'&orderby=count&order=desc';
|
55 |
-
break;
|
56 |
-
}
|
57 |
-
|
58 |
-
|
59 |
-
// Search
|
60 |
-
if ( !empty($_GET['search']) ) {
|
61 |
-
$search = stripslashes($_GET['search']);
|
62 |
-
$param .= '&name__like=' . $search;
|
63 |
-
}
|
64 |
-
|
65 |
-
// Offset
|
66 |
-
if ( !empty($_GET['offset']) ) {
|
67 |
-
$param .= '&offset=' . intval( $_GET['offset'] );
|
68 |
-
}
|
69 |
-
|
70 |
-
// Navigation urls
|
71 |
-
if ( empty($_GET['offset']) ) {
|
72 |
-
$offset = 0;
|
73 |
-
} else {
|
74 |
-
$offset = intval( $_GET['offset'] );
|
75 |
-
}
|
76 |
-
|
77 |
-
$tag_count = (int)wp_count_terms('ngg_tag', 'ignore_empty=true');
|
78 |
-
|
79 |
-
if ($offset + $nb_tags < $tag_count) {
|
80 |
-
$next_offset = '' . min($offset + $nb_tags, $tag_count - $nb_tags);
|
81 |
-
} else {
|
82 |
-
$next_offset = '';
|
83 |
-
}
|
84 |
-
|
85 |
-
if ($nb_tags < $tag_count && $offset>0) {
|
86 |
-
$prev_offset = '' . max($offset - $nb_tags, 0);
|
87 |
-
} else {
|
88 |
-
$prev_offset = '';
|
89 |
-
}
|
90 |
-
|
91 |
-
?>
|
92 |
-
<style>
|
93 |
-
.disabled, .disabled:hover { border-color: #E5E5E5; color: #999999; cursor: default; }
|
94 |
-
</style>
|
95 |
-
|
96 |
-
<div class="wrap ngg_wrap">
|
97 |
-
<h2><?php _e('Tags', 'nggallery'); ?></h2>
|
98 |
-
|
99 |
-
<?php if ($action_status['message']!='') : ?>
|
100 |
-
<div id="message" class="<?php echo ($action_status['status']=='ok' ? 'updated' : $action_status['status']); ?> fade">
|
101 |
-
<p><strong><?php echo $action_status['message']; ?></strong></p>
|
102 |
-
</div>
|
103 |
-
<?php endif; ?>
|
104 |
-
|
105 |
-
<table>
|
106 |
-
<tr>
|
107 |
-
<td class="list_tags">
|
108 |
-
<fieldset class="options" id="taglist">
|
109 |
-
<h3><?php _e('Existing Tags', 'nggallery'); ?></h3>
|
110 |
-
|
111 |
-
<form method="get">
|
112 |
-
<p>
|
113 |
-
<label for="search"><?php _e('Search tags', 'nggallery'); ?></label><br />
|
114 |
-
<input type="hidden" name="page" value="<?php echo esc_attr( stripslashes($_GET['page']) ); ?>" />
|
115 |
-
<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
|
116 |
-
<input type="text" name="search" id="search" size="10" value="<?php if (isset($_GET['search'])) echo esc_attr( stripslashes($_GET['search']) ); ?>" />
|
117 |
-
<input class="button" type="submit" value="<?php _e('Go', 'nggallery'); ?>" />
|
118 |
-
</p>
|
119 |
-
</form>
|
120 |
-
|
121 |
-
<div class="sort_order">
|
122 |
-
<h3><?php _e('Sort Order:', 'nggallery'); ?></h3>
|
123 |
-
<?php
|
124 |
-
$output = array();
|
125 |
-
foreach( $order_array as $sort => $title ) {
|
126 |
-
$output[] = ($sort == $sort_order) ? '<span style="color: red;">'.$title.'</span>' : '<a href="'. $admin_base_url . '&tag_sortorder=' . $sort . $search_url .'">'.$title.'</a>';
|
127 |
-
}
|
128 |
-
echo implode('<br />', $output);
|
129 |
-
$output = array();
|
130 |
-
unset($output);
|
131 |
-
?>
|
132 |
-
</div>
|
133 |
-
|
134 |
-
<div id="ajax_area_tagslist">
|
135 |
-
<ul>
|
136 |
-
<?php
|
137 |
-
$tags = (array) nggTags::find_tags($param, true);
|
138 |
-
foreach( $tags as $tag ) {
|
139 |
-
//TODO:Tag link should be call a list of images in manage gallery
|
140 |
-
//echo '<li><span>' . $tag->name . '</span> <a href="'.(ngg_get_tag_link( $tag->term_id )).'" title="'.sprintf(__('View all images tagged with %s', 'nggallery'), $tag->name).'">('.$tag->count.')</a></li>'."\n";
|
141 |
-
echo '<li><span>' . esc_html( $tag->name ). '</span> '.'('. esc_html( $tag->count ).')</li>'."\n";
|
142 |
-
|
143 |
-
}
|
144 |
-
unset($tags);
|
145 |
-
?>
|
146 |
-
</ul>
|
147 |
-
|
148 |
-
<?php if ( $prev_offset!='' || $next_offset!='' ) : ?>
|
149 |
-
<div class="navigation">
|
150 |
-
|
151 |
-
<?php if ($prev_offset!='') { ?>
|
152 |
-
<form method="get" style="display: inline;">
|
153 |
-
<span>
|
154 |
-
<input type="hidden" name="page" value="<?php echo esc_attr( stripslashes($_GET['page']) ); ?>" />
|
155 |
-
<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
|
156 |
-
<input type="hidden" name="offset" value="<?php echo $prev_offset; ?>" />
|
157 |
-
<input class="button" type="submit" value="« <?php _e('Previous tags', 'nggallery'); ?>" />
|
158 |
-
</span>
|
159 |
-
</form>
|
160 |
-
<?php } else { ?>
|
161 |
-
<span><span class="button disabled">« <?php _e('Previous tags', 'nggallery'); ?></span></span>
|
162 |
-
<?php } ?>
|
163 |
-
|
164 |
-
<?php if ($next_offset!='') { ?>
|
165 |
-
<form method="get" style="display: inline;">
|
166 |
-
<span>
|
167 |
-
<input type="hidden" name="page" value="<?php echo esc_attr( stripslashes($_GET['page']) ); ?>" />
|
168 |
-
<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
|
169 |
-
<input type="hidden" name="offset" value="<?php echo $next_offset; ?>" />
|
170 |
-
<input class="button" type="submit" value="<?php _e('Next tags', 'nggallery'); ?> »" />
|
171 |
-
</span>
|
172 |
-
</form>
|
173 |
-
<?php } else { ?>
|
174 |
-
<span><span class="button disabled"><?php _e('Previous tags', 'nggallery'); ?> »</span></span>
|
175 |
-
<?php } ?>
|
176 |
-
</div>
|
177 |
-
<?php endif; ?>
|
178 |
-
</div>
|
179 |
-
</fieldset>
|
180 |
-
</td>
|
181 |
-
<td class="forms_manage">
|
182 |
-
<h3><?php _e('Rename Tag', 'nggallery'); ?></h3>
|
183 |
-
<form action="<?php echo $action_url; ?>" method="post">
|
184 |
-
<input type="hidden" name="tag_action" value="renametag" />
|
185 |
-
<?php wp_nonce_field('nggallery_admin_tags'); ?>
|
186 |
-
|
187 |
-
<table class="form-table">
|
188 |
-
<tr valign="top">
|
189 |
-
<td colspan="2">
|
190 |
-
<p><?php _e('Enter the tag to rename and its new value. You can use this feature to merge tags too. Click "Rename" and all posts which use this tag will be updated.', 'nggallery'); ?></p>
|
191 |
-
<p><?php _e('You can specify multiple tags to rename by separating them with commas.', 'nggallery'); ?></p>
|
192 |
-
</td>
|
193 |
-
</tr>
|
194 |
-
<tr valign="top">
|
195 |
-
<th scope="row"><label for="renametag_old"><?php _e('Tag(s) to rename:', 'nggallery'); ?></label></th>
|
196 |
-
<td><input type="text" id="renametag_old" name="renametag_old" value="" size="40" /></td>
|
197 |
-
</tr>
|
198 |
-
<tr valign="top">
|
199 |
-
<th scope="row"><label for="renametag_new"><?php _e('New tag name(s):', 'nggallery'); ?></label></th>
|
200 |
-
<td>
|
201 |
-
<input type="text" id="renametag_new" name="renametag_new" value="" size="40" />
|
202 |
-
<input class="button" type="submit" name="rename" value="<?php _e('Rename', 'nggallery'); ?>" />
|
203 |
-
</td>
|
204 |
-
</tr>
|
205 |
-
</table>
|
206 |
-
</form>
|
207 |
-
|
208 |
-
<h3><?php _e('Delete Tag', 'nggallery'); ?></h3>
|
209 |
-
<form action="<?php echo $action_url; ?>" method="post">
|
210 |
-
<input type="hidden" name="tag_action" value="deletetag" />
|
211 |
-
<?php wp_nonce_field('nggallery_admin_tags'); ?>
|
212 |
-
|
213 |
-
<table class="form-table">
|
214 |
-
<tr valign="top">
|
215 |
-
<td colspan="2">
|
216 |
-
<p><?php _e('Enter the name of the tag to delete. This tag will be removed from all posts.', 'nggallery'); ?></p>
|
217 |
-
<p><?php _e('You can specify multiple tags to delete by separating them with commas', 'nggallery'); ?>.</p>
|
218 |
-
</td>
|
219 |
-
</tr>
|
220 |
-
<tr valign="top">
|
221 |
-
<th scope="row"><label for="deletetag_name"><?php _e('Tag(s) to delete:', 'nggallery'); ?></label></th>
|
222 |
-
<td>
|
223 |
-
<input type="text" id="deletetag_name" name="deletetag_name" value="" size="40" />
|
224 |
-
<input class="button" type="submit" name="delete" value="<?php _e('Delete', 'nggallery'); ?>" />
|
225 |
-
</td>
|
226 |
-
</tr>
|
227 |
-
</table>
|
228 |
-
</form>
|
229 |
-
|
230 |
-
<h3><?php _e('Edit Tag Slug', 'nggallery'); ?></h3>
|
231 |
-
<form action="<?php echo $action_url; ?>" method="post">
|
232 |
-
<input type="hidden" name="tag_action" value="editslug" />
|
233 |
-
<?php wp_nonce_field('nggallery_admin_tags'); ?>
|
234 |
-
|
235 |
-
<table class="form-table">
|
236 |
-
<tr valign="top">
|
237 |
-
<td colspan="2">
|
238 |
-
<p><?php _e('Enter the tag name to edit and its new slug. <a href="http://codex.wordpress.org/Glossary#Slug">Slug definition</a>', 'nggallery'); ?></p>
|
239 |
-
<p><?php _e('You can specify multiple tags to rename by separating them with commas.', 'nggallery'); ?></p>
|
240 |
-
</td>
|
241 |
-
</tr>
|
242 |
-
<tr valign="top">
|
243 |
-
<th scope="row"><label for="tagname_match"><?php _e('Tag(s) to match:', 'nggallery'); ?></label></th>
|
244 |
-
<td><input type="text" id="tagname_match" name="tagname_match" value="" size="40" /></td>
|
245 |
-
</tr>
|
246 |
-
<tr valign="top">
|
247 |
-
<th scope="row"><label for="tagslug_new"><?php _e('Slug(s) to set:', 'nggallery'); ?></label></th>
|
248 |
-
<td>
|
249 |
-
<input type="text" id="tagslug_new" name="tagslug_new" value="" size="40" />
|
250 |
-
<input class="button" type="submit" name="edit" value="<?php _e('Edit', 'nggallery'); ?>" />
|
251 |
-
</td>
|
252 |
-
</tr>
|
253 |
-
</table>
|
254 |
-
</form>
|
255 |
-
</td>
|
256 |
-
</tr>
|
257 |
-
</table>
|
258 |
-
<script type="text/javascript">
|
259 |
-
// <![CDATA[
|
260 |
-
// Register onclick event
|
261 |
-
function registerClick() {
|
262 |
-
jQuery('#taglist ul li span').bind("click", function(){
|
263 |
-
addTag(this.innerHTML, "renametag_old");
|
264 |
-
addTag(this.innerHTML, "deletetag_name");
|
265 |
-
addTag(this.innerHTML, "tagname_match");
|
266 |
-
});
|
267 |
-
}
|
268 |
-
|
269 |
-
// Register initial event
|
270 |
-
jQuery(document).ready(function() {
|
271 |
-
registerClick();
|
272 |
-
});
|
273 |
-
|
274 |
-
// Add tag into input
|
275 |
-
function addTag( tag, name_element ) {
|
276 |
-
var input_element = document.getElementById( name_element );
|
277 |
-
|
278 |
-
if ( input_element.value.length > 0 && !input_element.value.match(/,\s*$/) )
|
279 |
-
input_element.value += ", ";
|
280 |
-
|
281 |
-
var re = new RegExp(tag + ",");
|
282 |
-
if ( !input_element.value.match(re) )
|
283 |
-
input_element.value += tag + ", ";
|
284 |
-
|
285 |
-
return true;
|
286 |
-
}
|
287 |
-
// ]]>
|
288 |
-
</script>
|
289 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/templates/facebook_like_button.php
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
<div id="fb-root"></div>
|
2 |
-
<div id="ngg_facebook_like" class="fb-like" data-href="http://www.facebook.com/nextgengallery" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div>
|
|
|
|
admin/templates/social_media_buttons.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<div id="ngg_social_media">
|
2 |
-
<?php
|
3 |
-
//Disabled. To include in next iteration
|
4 |
-
//include('twitter_follow_link.php'); ?>
|
5 |
-
<?php //include('facebook_like_button.php'); ?>
|
6 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
admin/templates/twitter_follow_link.php
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<a
|
2 |
-
href='https://twitter.com/NextGENGallery'
|
3 |
-
id="ngg_twitter_follow"
|
4 |
-
class='twitter-follow-button'
|
5 |
-
data-show-count='false'
|
6 |
-
data-lang='en'>
|
7 |
-
Follow @NextGENGallery
|
8 |
-
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/tinymce/editor_plugin.js
CHANGED
@@ -36,7 +36,7 @@
|
|
36 |
ed.addButton('NextGEN', {
|
37 |
title : 'NextCellent',
|
38 |
cmd : 'mceNextGEN',
|
39 |
-
|
40 |
});
|
41 |
},
|
42 |
|
36 |
ed.addButton('NextGEN', {
|
37 |
title : 'NextCellent',
|
38 |
cmd : 'mceNextGEN',
|
39 |
+
icon: 'NextGEN dashicons-before dashicons-format-gallery',
|
40 |
});
|
41 |
},
|
42 |
|
admin/tinymce/tinymce.js
CHANGED
@@ -1,144 +1,149 @@
|
|
1 |
function init() {
|
2 |
-
|
3 |
}
|
4 |
|
5 |
function getCheckedValue(radioObj) {
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
|
22 |
function insertNGGLink() {
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
|
|
|
|
144 |
}
|
1 |
function init() {
|
2 |
+
tinyMCEPopup.resizeToInnerSize();
|
3 |
}
|
4 |
|
5 |
function getCheckedValue(radioObj) {
|
6 |
+
if (!radioObj)
|
7 |
+
return "";
|
8 |
+
var radioLength = radioObj.length;
|
9 |
+
if (radioLength == undefined)
|
10 |
+
if (radioObj.checked)
|
11 |
+
return radioObj.value;
|
12 |
+
else
|
13 |
+
return "";
|
14 |
+
for (var i = 0; i < radioLength; i++) {
|
15 |
+
if (radioObj[i].checked) {
|
16 |
+
return radioObj[i].value;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
return "";
|
20 |
}
|
21 |
|
22 |
function insertNGGLink() {
|
23 |
|
24 |
+
var tagText;
|
25 |
+
var selected = document.getElementsByClassName('current')[0];
|
26 |
+
var panel = selected.id;
|
27 |
+
|
28 |
+
// who is active ?
|
29 |
+
switch (panel) {
|
30 |
+
case 'gallery_panel' :
|
31 |
+
|
32 |
+
var galleryId = document.getElementById('gallerytag').value;
|
33 |
+
var galleryTemplate = getCheckedValue(document.getElementsByName('showtype'));
|
34 |
+
var customTemplate = document.getElementById('other-name').value;
|
35 |
+
var images = document.getElementById('nggallery-images').value;
|
36 |
+
var width = document.getElementById('slide-width').value;
|
37 |
+
var height = document.getElementById('slide-height').value;
|
38 |
+
|
39 |
+
switch (galleryTemplate) {
|
40 |
+
case 'nggallery':
|
41 |
+
if (images) {
|
42 |
+
tagText = "[nggallery id=" + galleryId + " images=" + images + "]";
|
43 |
+
} else {
|
44 |
+
tagText = "[nggallery id=" + galleryId + "]";
|
45 |
+
}
|
46 |
+
break;
|
47 |
+
case 'slideshow':
|
48 |
+
tagText = "[slideshow id=" + galleryId;
|
49 |
+
if (width)
|
50 |
+
tagText += " w=" + width;
|
51 |
+
if (height)
|
52 |
+
tagText += " h=" + height;
|
53 |
+
tagText += "]";
|
54 |
+
break;
|
55 |
+
case 'imagebrowser':
|
56 |
+
tagText = "[" + galleryTemplate + " id=" + galleryId + "]";
|
57 |
+
break;
|
58 |
+
case 'other':
|
59 |
+
tagText = "[nggallery id=" + galleryId + " template=" + customTemplate + "]";
|
60 |
+
break;
|
61 |
+
default:
|
62 |
+
tagText = "[nggallery id=" + galleryId + " template=" + galleryTemplate + "]";
|
63 |
+
}
|
64 |
+
break;
|
65 |
+
case 'album_panel':
|
66 |
+
|
67 |
+
var albumId = document.getElementById('albumtag').value;
|
68 |
+
var albumType = getCheckedValue(document.getElementsByName('albumtype'));
|
69 |
+
var albumGalleryTemplate = getCheckedValue(document.getElementsByName('album-showtype'));
|
70 |
+
|
71 |
+
if (albumGalleryTemplate == 'nggallery') {
|
72 |
+
tagText = "[nggalbum id=" + albumId + " template=" + albumType + "]";
|
73 |
+
} else {
|
74 |
+
tagText = "[nggalbum id=" + albumId + " template=" + albumType + " gallery=" + albumGalleryTemplate + "]";
|
75 |
+
}
|
76 |
+
break;
|
77 |
+
case 'singlepic_panel':
|
78 |
+
|
79 |
+
//get all the options
|
80 |
+
var singlepicId = document.getElementById('singlepictag').value;
|
81 |
+
var imgWidth = document.getElementById('imgWidth').value;
|
82 |
+
var imgHeight = document.getElementById('imgHeight').value;
|
83 |
+
var imgEffect = document.getElementById('imgeffect').value;
|
84 |
+
var imgFloat = document.getElementById('imgfloat').value;
|
85 |
+
var imgLink = document.getElementById('imglink').value;
|
86 |
+
var imgCaption = document.getElementById('imgcaption').value;
|
87 |
+
|
88 |
+
tagText = "[singlepic id=" + singlepicId;
|
89 |
+
if (imgWidth) {
|
90 |
+
tagText += " w=" + imgWidth;
|
91 |
+
}
|
92 |
+
if (imgHeight) {
|
93 |
+
tagText += " h=" + imgHeight;
|
94 |
+
}
|
95 |
+
if (imgEffect != 0) {
|
96 |
+
tagText += " mode=" + imgEffect;
|
97 |
+
}
|
98 |
+
if (imgFloat != 0) {
|
99 |
+
tagText += " float=" + imgFloat;
|
100 |
+
}
|
101 |
+
if (imgLink) {
|
102 |
+
tagText += " link=" + imgLink;
|
103 |
+
}
|
104 |
+
if (imgCaption) {
|
105 |
+
tagText += "]" + imgCaption + "[/singlepic]";
|
106 |
+
} else {
|
107 |
+
tagText += "]";
|
108 |
+
}
|
109 |
+
break;
|
110 |
+
case 'recent_panel' :
|
111 |
+
|
112 |
+
var recentNumber = document.getElementById('recent-images').value;
|
113 |
+
var sort = document.getElementById('sortmode').value;
|
114 |
+
var recentGallery = document.getElementById('recentgallery').value;
|
115 |
+
var recentTemplate = getCheckedValue(document.getElementsByName('recent-showtype'));
|
116 |
+
|
117 |
+
tagText = "[recent max=" + recentNumber;
|
118 |
+
if (sort != 0)
|
119 |
+
tagText += " mode=" + sort;
|
120 |
+
if (recentGallery != 0)
|
121 |
+
tagText += " id=" + recentGallery;
|
122 |
+
if (randomTemplate != 'nggallery')
|
123 |
+
tagText += " template=" + recentTemplate;
|
124 |
+
tagText += "/]";
|
125 |
+
break;
|
126 |
+
case 'random_panel' :
|
127 |
+
|
128 |
+
var number = document.getElementById('random-images').value;
|
129 |
+
var randomGallery = document.getElementById('randomgallery').value;
|
130 |
+
var randomTemplate = getCheckedValue(document.getElementsByName('random-showtype'));
|
131 |
+
|
132 |
+
tagText = "[random max=" + number;
|
133 |
+
|
134 |
+
if (randomGallery != 0)
|
135 |
+
tagText += " id=" + randomGallery;
|
136 |
+
if (randomTemplate != 'nggallery')
|
137 |
+
tagText += " template=" + randomTemplate;
|
138 |
+
|
139 |
+
tagText += "/]";
|
140 |
+
break;
|
141 |
+
default:
|
142 |
+
tinyMCEPopup.close();
|
143 |
+
}
|
144 |
+
|
145 |
+
if (window.tinyMCE) {
|
146 |
+
tinyMCEPopup.editor.insertContent(tagText, false);
|
147 |
+
tinyMCEPopup.close();
|
148 |
+
}
|
149 |
}
|
admin/upgrade.php
CHANGED
@@ -100,7 +100,7 @@ function ngg_upgrade() {
|
|
100 |
*/
|
101 |
function nggallery_upgrade_page() {
|
102 |
|
103 |
-
|
104 |
if ( is_network_admin() ) { //unless if it is network administrator...
|
105 |
$filepath = network_admin_url() . 'admin.php?page=' . $_GET['page'];
|
106 |
}
|
@@ -123,7 +123,7 @@ function nggallery_upgrade_page() {
|
|
123 |
<a class="button button-primary"
|
124 |
href="<?php echo $filepath; ?>&upgrade=now"><?php _e( 'Start upgrade now', 'nggallery' ); ?></a>
|
125 |
</div>
|
126 |
-
<?php
|
127 |
}
|
128 |
|
129 |
/**
|
@@ -150,7 +150,7 @@ function doing_update_output( $filepath ) {
|
|
150 |
<br/><a class="finished button button-primary"
|
151 |
href="<?php echo $filepath; ?>"><?php _e( 'Continue to NextCellent', 'nggallery' ); ?></a>
|
152 |
</div>
|
153 |
-
<?php
|
154 |
}
|
155 |
|
156 |
?>
|
100 |
*/
|
101 |
function nggallery_upgrade_page() {
|
102 |
|
103 |
+
$filepath = admin_url() . 'admin.php?page=' . $_GET['page']; //default upgrade path
|
104 |
if ( is_network_admin() ) { //unless if it is network administrator...
|
105 |
$filepath = network_admin_url() . 'admin.php?page=' . $_GET['page'];
|
106 |
}
|
123 |
<a class="button button-primary"
|
124 |
href="<?php echo $filepath; ?>&upgrade=now"><?php _e( 'Start upgrade now', 'nggallery' ); ?></a>
|
125 |
</div>
|
126 |
+
<?php
|
127 |
}
|
128 |
|
129 |
/**
|
150 |
<br/><a class="finished button button-primary"
|
151 |
href="<?php echo $filepath; ?>"><?php _e( 'Continue to NextCellent', 'nggallery' ); ?></a>
|
152 |
</div>
|
153 |
+
<?php
|
154 |
}
|
155 |
|
156 |
?>
|
changelog.txt
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
NextCellent Gallery
|
2 |
-
by WPReady
|
3 |
-
|
4 |
-
= V1.9.14 - 01.09.2013 =
|
5 |
-
* NEW: Deactivate if NextGen is installed and activated
|
|
|
|
|
|
|
|
|
|
css/ngg_shadow2.css
CHANGED
@@ -13,7 +13,7 @@ it's only a template design
|
|
13 |
/* ----------- Album Styles Extend -------------*/
|
14 |
|
15 |
.ngg-albumoverview {
|
16 |
-
margin-top:
|
17 |
width: 100%;
|
18 |
clear:both;
|
19 |
display:block !important;
|
13 |
/* ----------- Album Styles Extend -------------*/
|
14 |
|
15 |
.ngg-albumoverview {
|
16 |
+
margin-top: 15px;
|
17 |
width: 100%;
|
18 |
clear:both;
|
19 |
display:block !important;
|
lang/nggallery-nl_NL.mo
CHANGED
Binary file
|
lang/nggallery-nl_NL.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: NextCellent Gallery 1.9.24\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2015-
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
8 |
"Language-Team: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
@@ -16,404 +16,267 @@ msgstr ""
|
|
16 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
17 |
"X-Poedit-Basepath: k\n"
|
18 |
"X-Textdomain-Support: yes\n"
|
19 |
-
"X-Generator: Poedit 1.
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
|
22 |
-
# @
|
23 |
-
#: ../admin/
|
24 |
-
msgid "
|
25 |
-
msgstr "
|
26 |
-
|
27 |
-
#: ../admin/about.php:12
|
28 |
-
msgid "Contributors"
|
29 |
-
msgstr "Bijdragers"
|
30 |
-
|
31 |
-
#: ../admin/about.php:14
|
32 |
-
msgid ""
|
33 |
-
"This plugin is made possible by the great work of a lot of people. A special "
|
34 |
-
"thanks the following people:"
|
35 |
-
msgstr ""
|
36 |
-
"Deze plug-in wordt mogelijk gemaakt door het fantastische werk van een "
|
37 |
-
"heleboel mensen. Een speciale dank u aan onderstaande personen:"
|
38 |
-
|
39 |
-
# @ nggallery
|
40 |
-
#: ../admin/about.php:16
|
41 |
-
msgid "for their great documented code"
|
42 |
-
msgstr "voor hun geweldige gedocumenteerde code"
|
43 |
-
|
44 |
-
# @ nggallery
|
45 |
-
#: ../admin/about.php:17
|
46 |
-
msgid "for jQuery, which is the best Web2.0 framework"
|
47 |
-
msgstr "voor jQuery, welke het beste Web2.0 framework is"
|
48 |
-
|
49 |
-
# @ nggallery
|
50 |
-
#: ../admin/about.php:18
|
51 |
-
msgid "for the fantastic PHP Thumbnail Class"
|
52 |
-
msgstr "voor de fantastische PHP Thumbnail Class"
|
53 |
-
|
54 |
-
# @ nggallery
|
55 |
-
#: ../admin/about.php:19
|
56 |
-
msgid "for a lot of very useful plugins and ideas"
|
57 |
-
msgstr "voor veel goede en bruikbare plugins en ideeën"
|
58 |
-
|
59 |
-
# @ nggallery
|
60 |
-
#: ../admin/about.php:20
|
61 |
-
msgid "for Shutter Reloaded, a real lightweight image effect"
|
62 |
-
msgstr "voor Shutter Herladen, een lischtgewicht afbeeldingseffect"
|
63 |
-
|
64 |
-
# @ nggallery
|
65 |
-
#: ../admin/about.php:21
|
66 |
-
msgid "for the best Media Flash Scripts on earth"
|
67 |
-
msgstr "voor de beste Media Flash Scripts op aarde"
|
68 |
-
|
69 |
-
# @ nggallery
|
70 |
-
#: ../admin/about.php:22
|
71 |
-
msgid "for the Gallery Icon"
|
72 |
-
msgstr "voor het galerij icoon"
|
73 |
-
|
74 |
-
# @ nggallery
|
75 |
-
#: ../admin/about.php:23
|
76 |
-
msgid "for the Watermark plugin"
|
77 |
-
msgstr "voor de Watermerk plugin"
|
78 |
-
|
79 |
-
#: ../admin/about.php:24
|
80 |
-
msgid "for maintaining this fork of NextGen Gallery"
|
81 |
-
msgstr "voor het onderhouden van deze fork van NextGEN Gallery"
|
82 |
-
|
83 |
-
#: ../admin/about.php:25
|
84 |
-
msgid "The original translators for NextGen Gallery, who made the translations"
|
85 |
-
msgstr ""
|
86 |
-
"De originele vertalers voor NextGen Gallery, die de vertalingen maakten"
|
87 |
-
|
88 |
-
#: ../admin/about.php:31 ../nggallery.php:386
|
89 |
-
msgid "NextCellent"
|
90 |
-
msgstr "NextCellent"
|
91 |
-
|
92 |
-
#: ../admin/about.php:33
|
93 |
-
msgid ""
|
94 |
-
"NextCellent Gallery is based on the 1.9.13 version of the NextGen Gallery by "
|
95 |
-
"Photocrati Media, which is the succesor to the work by Alex Rabe."
|
96 |
-
msgstr ""
|
97 |
-
"NextCellent is gebaseerd op versie 1.9.13 van NextGen Gallery door "
|
98 |
-
"Photocrati Media, wat de opvolger is van het werk door Alex Rabe."
|
99 |
-
|
100 |
-
# @ nggallery
|
101 |
-
#: ../admin/about.php:34
|
102 |
-
msgid "What do you get with NextCellent Gallery?"
|
103 |
-
msgstr "Wat krijg je met NextCellent Gallery?"
|
104 |
-
|
105 |
-
#: ../admin/about.php:36
|
106 |
-
msgid "Backward compatibility with NextGEN plugin version (1.9.13)"
|
107 |
-
msgstr "Achterwaartse compatabiliteit met NextGEN versie 1.9.13"
|
108 |
-
|
109 |
-
#: ../admin/about.php:37
|
110 |
-
msgid ""
|
111 |
-
"Slow evolving code path, made only by NextGEN user's suggestions. Yep, you "
|
112 |
-
"read it right: slow in counterpart as fast. Older code is good enough to "
|
113 |
-
"keep a community and it worked (and works) for most people."
|
114 |
-
msgstr "Traag evoluerende code, enkel door de suggesties van gebruikers."
|
115 |
-
|
116 |
-
#: ../admin/about.php:38
|
117 |
-
msgid "A reliable way to work with already installed NextGEN galleries."
|
118 |
-
msgstr "Een betrouwbare manier om te werken met bestaande NextGEN-galerijen."
|
119 |
-
|
120 |
-
#: ../admin/about.php:39
|
121 |
-
msgid ""
|
122 |
-
"A place for updating the plugin without using FTP manual updates, but "
|
123 |
-
"WordPress plugin repository."
|
124 |
-
msgstr "Een plaats om de plug-in bij te werken zonder manuele FTP-updates."
|
125 |
-
|
126 |
-
#: ../admin/about.php:40
|
127 |
-
msgid "Alternative path preserving backward compatibility (while possible)."
|
128 |
-
msgstr "Alternatieve paden met achterwaartse compatibiliteit (waar mogelijk)."
|
129 |
-
|
130 |
-
# @ nggallery
|
131 |
-
#: ../admin/about.php:46
|
132 |
-
msgid "How to support us?"
|
133 |
-
msgstr "Hoe kun je ons ondersteunen?"
|
134 |
-
|
135 |
-
#: ../admin/about.php:48
|
136 |
-
msgid "There are several ways to contribute:"
|
137 |
-
msgstr "Er zijn verschillende manieren om mee te helpen:"
|
138 |
-
|
139 |
-
# @ nggallery
|
140 |
-
#: ../admin/about.php:50
|
141 |
-
msgid "Send us bugfixes / code changes"
|
142 |
-
msgstr "Stuur ons bugfixes / code aanpassingen"
|
143 |
-
|
144 |
-
# @ nggallery
|
145 |
-
#: ../admin/about.php:50
|
146 |
-
msgid ""
|
147 |
-
"The most motivated support for this plugin are your ideas and brain work."
|
148 |
-
msgstr ""
|
149 |
-
"De meest motiverende steun voor deze plug-in zijn je ideeën en denkwerk."
|
150 |
-
|
151 |
-
# @ nggallery
|
152 |
-
#: ../admin/about.php:51
|
153 |
-
msgid "Translate the plugin"
|
154 |
-
msgstr "Vertaal de plugin"
|
155 |
-
|
156 |
-
# @ nggallery
|
157 |
-
#: ../admin/about.php:51
|
158 |
-
msgid ""
|
159 |
-
"To help people to work with this plugin, we would like to have it in all "
|
160 |
-
"available languages."
|
161 |
-
msgstr ""
|
162 |
-
"Om mensen te helpen werken met de plug-in, willen we de plug-in in alle "
|
163 |
-
"talen beschikbaar maken."
|
164 |
|
165 |
# @ nggallery
|
166 |
-
#: ../admin/
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
#: ../admin/about.php:52
|
171 |
-
msgid "Yes, sharing and linking are also supportive and helpful."
|
172 |
-
msgstr "Ja, delen is ook een manier van helpen."
|
173 |
|
174 |
# @ default
|
175 |
-
#: ../admin/
|
176 |
-
#: ../admin/
|
177 |
-
#: ../admin/album.php:
|
178 |
-
#: ../admin/
|
179 |
-
#: ../admin/
|
180 |
-
#: ../admin/publish.php:13 ../admin/rotate.php:17 ../admin/rotate.php:20
|
181 |
-
#: ../admin/showmeta.php:10 ../admin/showmeta.php:13
|
182 |
msgid "Cheatin’ uh?"
|
183 |
msgstr "Vals aan 't spelen, eh?"
|
184 |
|
185 |
# @ nggallery
|
186 |
-
#: ../admin/
|
187 |
msgid "Upload failed!"
|
188 |
msgstr "Upload mislukt!"
|
189 |
|
190 |
# @ nggallery
|
191 |
-
#: ../admin/
|
192 |
msgid "Upload failed! "
|
193 |
msgstr "Upload mislukt!"
|
194 |
|
195 |
# @ nggallery
|
196 |
-
#: ../admin/
|
197 |
-
#: ../admin/admin.php:
|
198 |
msgid "You didn't select a gallery!"
|
199 |
msgstr "Je hebt geen galerij geselecteerd!"
|
200 |
|
201 |
# @ nggallery
|
202 |
-
#: ../admin/
|
|
|
203 |
msgid "Add Gallery / Images"
|
204 |
msgstr "Galerij / afbeeldingen toevoegen"
|
205 |
|
206 |
# @ nggallery
|
207 |
-
#: ../admin/
|
208 |
msgid "Image Files"
|
209 |
msgstr "Afbeeldings Bestanden"
|
210 |
|
211 |
# @ nggallery
|
212 |
-
#: ../admin/
|
213 |
msgid "remove"
|
214 |
msgstr "verwijderen"
|
215 |
|
216 |
# @ nggallery
|
217 |
-
#: ../admin/
|
218 |
msgid "Browse..."
|
219 |
msgstr "Blader..."
|
220 |
|
221 |
# @ nggallery
|
222 |
-
#: ../admin/
|
223 |
-
#: ../admin/
|
224 |
msgid "Upload images"
|
225 |
msgstr "Afbeeldingen uploaden"
|
226 |
|
227 |
-
#: ../admin/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
msgid "You didn't select a file!"
|
229 |
msgstr "Je hebt geen bestand geselecteerd!"
|
230 |
|
231 |
# @ nggallery
|
232 |
-
#: ../admin/
|
233 |
msgid "New gallery"
|
234 |
msgstr "Nieuwe galerij"
|
235 |
|
236 |
# @ nggallery
|
237 |
-
#: ../admin/
|
238 |
-
#: ../admin/
|
|
|
|
|
|
|
239 |
msgid "Images"
|
240 |
msgstr "Afbeeldingen"
|
241 |
|
242 |
-
#: ../admin/
|
243 |
msgid "ZIP file"
|
244 |
msgstr "Zip-bestand"
|
245 |
|
246 |
# @ nggallery
|
247 |
-
#: ../admin/
|
248 |
-
#: ../admin/admin.php:
|
249 |
msgid "Import folder"
|
250 |
msgstr "Importeer map"
|
251 |
|
252 |
# @ nggallery
|
253 |
-
#: ../admin/
|
|
|
254 |
msgid "Add a new gallery"
|
255 |
msgstr "Nieuwe galerij toevoegen"
|
256 |
|
257 |
# @ nggallery
|
258 |
-
#: ../admin/
|
259 |
-
#: ../admin/
|
|
|
|
|
260 |
msgid "Name"
|
261 |
msgstr "Naam"
|
262 |
|
263 |
# @ nggallery
|
264 |
-
#: ../admin/
|
265 |
-
|
266 |
-
|
|
|
267 |
|
268 |
# @ nggallery
|
269 |
-
#: ../admin/
|
270 |
-
|
271 |
-
|
|
|
272 |
|
273 |
# @ nggallery
|
274 |
# @ default
|
275 |
-
#: ../admin/
|
276 |
-
#: ../admin/manage
|
277 |
-
#: ../admin/manage
|
278 |
-
#: ../admin/
|
|
|
|
|
279 |
msgid "Description"
|
280 |
msgstr "Beschrijving"
|
281 |
|
282 |
-
#: ../admin/
|
283 |
msgid "Add a description. This is optional and can be changed later."
|
284 |
msgstr ""
|
285 |
"Voeg een beschrijving toe. Dit is optioneel en kan later veranderd worden."
|
286 |
|
287 |
# @ nggallery
|
288 |
-
#: ../admin/
|
289 |
msgid "Add gallery"
|
290 |
msgstr "Galerij toevoegen"
|
291 |
|
292 |
# @ nggallery
|
293 |
-
#: ../admin/
|
294 |
msgid "Upload a ZIP File"
|
295 |
msgstr "Zip-bestand uploaden"
|
296 |
|
297 |
# @ default
|
298 |
-
#: ../admin/
|
299 |
msgid "Select ZIP file"
|
300 |
msgstr "Zip-bestand selecteren"
|
301 |
|
302 |
# @ nggallery
|
303 |
-
#: ../admin/
|
304 |
msgid "Upload a ZIP file with images"
|
305 |
msgstr "Zip-bestand met afbeeldingen uploaden"
|
306 |
|
307 |
# @ nggallery
|
308 |
-
#: ../admin/
|
309 |
msgid "or enter URL"
|
310 |
msgstr "of geef een URL op"
|
311 |
|
312 |
# @ nggallery
|
313 |
-
#: ../admin/
|
314 |
msgid "Import a ZIP file from a URL"
|
315 |
msgstr "Importeer een zip-bestand vanuit een URL"
|
316 |
|
317 |
# @ nggallery
|
318 |
-
#: ../admin/
|
319 |
msgid "in to"
|
320 |
msgstr "naar"
|
321 |
|
322 |
# @ nggallery
|
323 |
-
#: ../admin/
|
324 |
msgid "a new gallery"
|
325 |
msgstr "Een nieuwe galerij"
|
326 |
|
327 |
# @ nggallery
|
328 |
-
#: ../admin/
|
329 |
-
|
330 |
-
|
|
|
331 |
|
332 |
# @ nggallery
|
333 |
-
#: ../admin/
|
334 |
msgid "Start upload"
|
335 |
msgstr "Upload starten"
|
336 |
|
337 |
# @ nggallery
|
338 |
-
#: ../admin/
|
339 |
msgid "Import an image folder"
|
340 |
msgstr "Importeer map met afbeeldingen"
|
341 |
|
342 |
# @ nggallery
|
343 |
-
#: ../admin/
|
344 |
msgid "Import from server:"
|
345 |
msgstr "Importeer vanop de server:"
|
346 |
|
347 |
# @ nggallery
|
348 |
-
#: ../admin/
|
349 |
msgid "Note: you can change the default path in the gallery settings"
|
350 |
msgstr "Opmerking: je kan het standaardpad wijzigen in de galerij-instellingen"
|
351 |
|
352 |
# @ nggallery
|
353 |
-
#: ../admin/
|
354 |
-
msgid ""
|
355 |
-
"Please note: If safe-mode is ON, you need to add the subfolder with thumbs "
|
356 |
-
"manually"
|
357 |
-
msgstr ""
|
358 |
-
"Opmerking: Indien safe-mode = AAN moet je de thumbnail submap manueel "
|
359 |
-
"aanmaken"
|
360 |
-
|
361 |
-
#: ../admin/addgallery.php:453 ../admin/manage-images.php:354
|
362 |
-
msgid ""
|
363 |
-
"This will change folder and file names (e.g. remove spaces, special "
|
364 |
-
"characters, ...)"
|
365 |
-
msgstr ""
|
366 |
-
"Dit zal map- en bestandsnamen wijzigen (bv. spaties en speciale tekens "
|
367 |
-
"verwijderen, ...)"
|
368 |
-
|
369 |
-
#: ../admin/addgallery.php:453 ../admin/manage-images.php:354
|
370 |
-
msgid "You will need to update your URLs if you link directly to the images."
|
371 |
-
msgstr ""
|
372 |
-
"Je zal je URL's moeten bijwerken als je rechtstreeks naar de afbeeldingen "
|
373 |
-
"linkt."
|
374 |
-
|
375 |
-
#: ../admin/addgallery.php:453 ../admin/manage-images.php:354
|
376 |
-
msgid "Press OK to proceed, and Cancel to stop."
|
377 |
-
msgstr "Druk OK om verder te gaan, Annuleren om te stoppen."
|
378 |
-
|
379 |
-
# @ nggallery
|
380 |
-
#: ../admin/addgallery.php:470
|
381 |
msgid "Choose gallery"
|
382 |
msgstr "Kies galerij"
|
383 |
|
384 |
# @ default
|
385 |
-
#: ../admin/
|
386 |
msgid "Drop your files in this window"
|
387 |
msgstr "Sleep bestanden naar dit venster"
|
388 |
|
389 |
-
#: ../admin/
|
390 |
msgid "Or"
|
391 |
msgstr "Of"
|
392 |
|
393 |
# @ default
|
394 |
-
#: ../admin/
|
395 |
msgid "Select Files"
|
396 |
msgstr "Selecteer bestanden"
|
397 |
|
398 |
-
#: ../admin/
|
399 |
msgid "Click here to use the browser upload instead"
|
400 |
msgstr "Klik hier om de browserupload te gebruiken"
|
401 |
|
402 |
# @ nggallery
|
403 |
-
#: ../admin/
|
404 |
msgid "Use basic uploader"
|
405 |
msgstr "Gebruik de basisuploader"
|
406 |
|
407 |
-
#: ../admin/
|
408 |
msgid "Advanced uploading"
|
409 |
msgstr "Geavanceerd uploaden"
|
410 |
|
411 |
-
#: ../admin/
|
412 |
msgid "Use advanced uploader"
|
413 |
msgstr "Gebruik de geavanceerde uploader"
|
414 |
|
415 |
# @ nggallery
|
416 |
-
#: ../admin/
|
417 |
#, php-format
|
418 |
msgid "Your images will be rescaled to max width %1$dpx or max height %2$dpx."
|
419 |
msgstr ""
|
@@ -422,187 +285,190 @@ msgstr ""
|
|
422 |
|
423 |
# @ nggallery
|
424 |
# @ default
|
425 |
-
#: ../admin/admin.php:
|
426 |
-
#: ../admin/admin.php:
|
427 |
-
#: ../admin/
|
|
|
|
|
|
|
428 |
msgid "Galleries"
|
429 |
msgstr "Galerijen"
|
430 |
|
431 |
# @ nggallery
|
432 |
-
#: ../admin/admin.php:
|
|
|
433 |
msgid "Overview"
|
434 |
msgstr "Overzicht"
|
435 |
|
436 |
# @ nggallery
|
437 |
-
#: ../admin/admin.php:
|
|
|
438 |
msgid "Albums"
|
439 |
msgstr "Albums"
|
440 |
|
441 |
# @ nggallery
|
442 |
-
#: ../admin/admin.php:
|
443 |
-
#: ../admin/
|
444 |
-
#: ../
|
|
|
445 |
msgid "Tags"
|
446 |
msgstr "Tags"
|
447 |
|
448 |
# @ nggallery
|
449 |
-
#: ../admin/admin.php:
|
|
|
450 |
msgid "Settings"
|
451 |
msgstr "Instellingen"
|
452 |
|
453 |
# @ nggallery
|
454 |
-
#: ../admin/admin.php:
|
455 |
msgid "Style"
|
456 |
msgstr "Stijl"
|
457 |
|
458 |
# @ nggallery
|
459 |
-
#: ../admin/admin.php:
|
460 |
msgid "Roles"
|
461 |
msgstr "Rollen/rechten"
|
462 |
|
463 |
# @ nggallery
|
464 |
-
#: ../admin/admin.php:
|
465 |
-
|
466 |
-
msgstr "Over deze galerij"
|
467 |
-
|
468 |
-
# @ nggallery
|
469 |
-
#: ../admin/admin.php:177 ../admin/admin.php:198
|
470 |
msgid "Reset / Uninstall"
|
471 |
msgstr "Terug zetten / Deïnstalleer"
|
472 |
|
473 |
# @ nggallery
|
474 |
-
#: ../admin/admin.php:
|
475 |
msgid "Network settings"
|
476 |
msgstr "Netwerk instellingen"
|
477 |
|
478 |
# @ nggallery
|
479 |
-
#: ../admin/admin.php:
|
480 |
msgid "You do not have the correct permission"
|
481 |
msgstr "Je hebt niet de juiste permissies"
|
482 |
|
483 |
# @ nggallery
|
484 |
-
#: ../admin/admin.php:
|
485 |
msgid "Unexpected Error"
|
486 |
msgstr "Onverwachte fout"
|
487 |
|
488 |
# @ nggallery
|
489 |
-
#: ../admin/admin.php:
|
490 |
msgid "A failure occurred"
|
491 |
msgstr "Er is een fout opgetreden"
|
492 |
|
493 |
# @ default
|
494 |
-
#: ../admin/admin.php:
|
495 |
msgid "You have attempted to queue too many files."
|
496 |
msgstr "Je probeert teveel bestanden ineens in de rij de plaatsen"
|
497 |
|
498 |
# @ default
|
499 |
-
#: ../admin/admin.php:
|
500 |
msgid "This file exceeds the maximum upload size for this site."
|
501 |
msgstr "Het bestand overschrijdt de maximale upload grootte voor deze site"
|
502 |
|
503 |
# @ default
|
504 |
-
#: ../admin/admin.php:
|
505 |
msgid "This file is empty. Please try another."
|
506 |
msgstr "Dit bestand is leeg. Probeer aub een ander."
|
507 |
|
508 |
# @ default
|
509 |
-
#: ../admin/admin.php:
|
510 |
msgid "This file type is not allowed. Please try another."
|
511 |
msgstr "Dit bestandstype is niet toegelaten. Probeer aub een ander."
|
512 |
|
513 |
# @ default
|
514 |
-
#: ../admin/admin.php:
|
515 |
msgid "This file is not an image. Please try another."
|
516 |
msgstr "Dit bestand is geen afbeelding. Probeer aub een ander."
|
517 |
|
518 |
# @ default
|
519 |
-
#: ../admin/admin.php:
|
520 |
msgid "Memory exceeded. Please try another smaller file."
|
521 |
msgstr "Geheugen overschreden. Probeer aub een kleiner bestand."
|
522 |
|
523 |
# @ default
|
524 |
-
#: ../admin/admin.php:
|
525 |
msgid "This is larger than the maximum size. Please try another."
|
526 |
msgstr "Dit is groter dan de maximum grootte. Probeer aub een ander."
|
527 |
|
528 |
# @ default
|
529 |
-
#: ../admin/admin.php:
|
530 |
msgid "An error occurred in the upload. Please try again later."
|
531 |
msgstr "Een fout is opgetreden tijdens het uploaden. Probeer eens opnieuw."
|
532 |
|
533 |
# @ default
|
534 |
-
#: ../admin/admin.php:
|
535 |
msgid ""
|
536 |
"There was a configuration error. Please contact the server administrator."
|
537 |
msgstr "Er was een configuratiefout. Contacteer de server administrator."
|
538 |
|
539 |
# @ default
|
540 |
-
#: ../admin/admin.php:
|
541 |
msgid "You may only upload 1 file."
|
542 |
msgstr "Je mag slechts 1 bestand uploaden."
|
543 |
|
544 |
# @ default
|
545 |
-
#: ../admin/admin.php:
|
546 |
msgid "HTTP error."
|
547 |
msgstr "HTT-fout."
|
548 |
|
549 |
# @ default
|
550 |
-
#: ../admin/admin.php:
|
551 |
msgid "Upload failed."
|
552 |
msgstr "Upload mislukt."
|
553 |
|
554 |
# @ default
|
555 |
-
#: ../admin/admin.php:
|
556 |
msgid "IO error."
|
557 |
msgstr "IO-fout."
|
558 |
|
559 |
# @ default
|
560 |
-
#: ../admin/admin.php:
|
561 |
msgid "Security error."
|
562 |
msgstr "Beveiligingsfout"
|
563 |
|
564 |
# @ default
|
565 |
-
#: ../admin/admin.php:
|
566 |
msgid "File canceled."
|
567 |
msgstr "Bestand geannuleerd."
|
568 |
|
569 |
# @ default
|
570 |
-
#: ../admin/admin.php:
|
571 |
msgid "Upload stopped."
|
572 |
msgstr "Upload onderbroken."
|
573 |
|
574 |
# @ default
|
575 |
-
#: ../admin/admin.php:
|
576 |
msgid "Dismiss"
|
577 |
msgstr "Negeren"
|
578 |
|
579 |
# @ default
|
580 |
-
#: ../admin/admin.php:
|
581 |
msgid "Crunching…"
|
582 |
msgstr "Bewerken…"
|
583 |
|
584 |
# @ default
|
585 |
-
#: ../admin/admin.php:
|
586 |
msgid "moved to the trash."
|
587 |
msgstr "verplaatst naar prullenbak."
|
588 |
|
589 |
# @ default
|
590 |
-
#: ../admin/admin.php:
|
591 |
#, php-format
|
592 |
msgid "“%s” has failed to upload due to an error"
|
593 |
msgstr "“%s” is niet geupload omwille van een fout"
|
594 |
|
595 |
# @ nggallery
|
596 |
-
#: ../admin/admin.php:
|
597 |
msgid "L O A D I N G"
|
598 |
msgstr "L A D E N"
|
599 |
|
600 |
# @ nggallery
|
601 |
-
#: ../admin/admin.php:
|
602 |
msgid "Click to Close"
|
603 |
msgstr "Klik om te sluiten"
|
604 |
|
605 |
-
#: ../admin/admin.php:
|
606 |
msgid ""
|
607 |
"Welcome to your NextCellent Dashboard! This screen gives you all kinds of "
|
608 |
"information about NextCellent at glance. You can get help for any screen by "
|
@@ -612,16 +478,17 @@ msgstr ""
|
|
612 |
"over NextCellent in een ogenblik. Je kan meer hulp voor elk scherm krijgen "
|
613 |
"door op Help te drukken in de rechterbovenhoek."
|
614 |
|
615 |
-
#: ../admin/admin.php:
|
616 |
msgid "The boxes on your overview screen are:"
|
617 |
msgstr "De hokjes op je overzichtsscherm zijn:"
|
618 |
|
619 |
# @ nggallery
|
620 |
-
#: ../admin/admin.php:
|
|
|
621 |
msgid "At a Glance"
|
622 |
msgstr "In een oogopslag"
|
623 |
|
624 |
-
#: ../admin/admin.php:
|
625 |
msgid ""
|
626 |
"Shows some general information about your site, such as the number of "
|
627 |
"pictures, albums and galleries."
|
@@ -630,108 +497,113 @@ msgstr ""
|
|
630 |
"albums en galerijen."
|
631 |
|
632 |
# @ nggallery
|
633 |
-
#: ../admin/admin.php:
|
|
|
634 |
msgid "Latest News"
|
635 |
msgstr "Laatste nieuws"
|
636 |
|
637 |
-
#: ../admin/admin.php:
|
638 |
msgid "The latest NextCellent news."
|
639 |
msgstr "Laatste nieuws omtrent NextCellent."
|
640 |
|
641 |
# @ nggallery
|
642 |
-
#: ../admin/admin.php:
|
|
|
643 |
msgid "Related plugins"
|
644 |
msgstr "Gerelateerde plugins"
|
645 |
|
646 |
-
#: ../admin/admin.php:
|
647 |
msgid "Shows plugins that extend NextCellent."
|
648 |
msgstr "Toont plug-ins die werken met NextCellent."
|
649 |
|
650 |
-
#: ../admin/admin.php:
|
651 |
msgid "Pay attention"
|
652 |
msgstr "Aandacht"
|
653 |
|
654 |
-
#: ../admin/admin.php:
|
655 |
#, php-format
|
656 |
msgid ""
|
657 |
"third parties plugins that are compatible with NGG may not be "
|
658 |
"100% compatible with NextCellent Gallery!"
|
659 |
msgstr ""
|
660 |
|
661 |
-
#: ../admin/admin.php:
|
|
|
662 |
msgid "Help me help YOU!"
|
663 |
msgstr "Help mij JOU te helpen!"
|
664 |
|
665 |
-
#: ../admin/admin.php:
|
666 |
msgid "Shows general information about he plugin and some links."
|
667 |
msgstr "Toont algemene informatie over de plug-in en sommige links."
|
668 |
|
669 |
# @ nggallery
|
670 |
-
#: ../admin/admin.php:
|
671 |
msgid "Translation"
|
672 |
msgstr "Vertaling"
|
673 |
|
674 |
-
#: ../admin/admin.php:
|
675 |
msgid "View information about the current translation."
|
676 |
msgstr "Bekijk informatie over de huidige vertaling."
|
677 |
|
678 |
# @ nggallery
|
679 |
-
#: ../admin/admin.php:
|
|
|
680 |
msgid "Server Settings"
|
681 |
msgstr "Server Instellingen"
|
682 |
|
683 |
# @ nggallery
|
684 |
-
#: ../admin/admin.php:
|
685 |
msgid "Show all the server settings!."
|
686 |
msgstr "Toon alle serverinstellingen."
|
687 |
|
688 |
# @ nggallery
|
689 |
-
#: ../admin/admin.php:
|
|
|
690 |
msgid "Plugin Check"
|
691 |
msgstr "Plugin controle"
|
692 |
|
693 |
-
#: ../admin/admin.php:
|
694 |
msgid "Check if there are known errors in your installation."
|
695 |
msgstr "Kijk of er fouten in je installatie zijn."
|
696 |
|
697 |
-
#: ../admin/admin.php:
|
698 |
msgid "On this page you can add galleries and pictures to those galleries."
|
699 |
msgstr ""
|
700 |
"Op deze pagina kan je galerijen en afbeeldingen aan die galerijen toevoegen."
|
701 |
|
702 |
-
#: ../admin/admin.php:
|
703 |
msgid "Add new galleries to NextCellent."
|
704 |
msgstr "Voeg nieuwe galerijen toe aan NextCellent."
|
705 |
|
706 |
-
#: ../admin/admin.php:
|
707 |
msgid "You must add a gallery before adding images!"
|
708 |
msgstr "Je moet een galerij toevoegen voor je afbeeldingen toevoegt!"
|
709 |
|
710 |
# @ nggallery
|
711 |
-
#: ../admin/admin.php:
|
712 |
msgid "Add new images to a gallery."
|
713 |
msgstr "Voeg nieuwe afbeeldingen toe aan een galerij."
|
714 |
|
715 |
-
#: ../admin/admin.php:
|
716 |
msgid "Add images from a ZIP file."
|
717 |
msgstr "Voeg afbeeldingen van een zip-bestand toe."
|
718 |
|
719 |
# @ nggallery
|
720 |
-
#: ../admin/admin.php:
|
721 |
msgid "Import a folder from the server as a new gallery."
|
722 |
msgstr "Importeer een map vanop de server als een nieuwe galerij."
|
723 |
|
724 |
# @ nggallery
|
725 |
-
#: ../admin/admin.php:
|
726 |
msgid "Manage your images and galleries."
|
727 |
msgstr "Beheer je afbeeldingen en galerijen."
|
728 |
|
729 |
# @ nggallery
|
730 |
-
#: ../admin/admin.php:
|
731 |
msgid "Organize your galleries into albums."
|
732 |
msgstr "Organiseer je galerijen in albums."
|
733 |
|
734 |
-
#: ../admin/admin.php:
|
735 |
msgid ""
|
736 |
"First select an album from the dropdown and then drag the galleries you want "
|
737 |
"to add or remove from the selected album."
|
@@ -740,17 +612,17 @@ msgstr ""
|
|
740 |
"wilt toevoegen of verwijderen naar en van het album."
|
741 |
|
742 |
# @ nggallery
|
743 |
-
#: ../admin/admin.php:
|
744 |
msgid "Organize your pictures with tags."
|
745 |
msgstr "Organiseer je afbeeldingen met tags."
|
746 |
|
747 |
-
#: ../admin/admin.php:
|
748 |
msgid "Rename, delete and edit tags. Use the rename function to merge tags."
|
749 |
msgstr ""
|
750 |
"Henroem, verwijder en bewerk tags. Gebruik de functie hernoemen om tags "
|
751 |
"samen te voegen."
|
752 |
|
753 |
-
#: ../admin/admin.php:
|
754 |
msgid ""
|
755 |
"Edit all of NextCellent's options. The options are sorted in multiple "
|
756 |
"categories."
|
@@ -759,17 +631,18 @@ msgstr ""
|
|
759 |
"categorie."
|
760 |
|
761 |
# @ nggallery
|
762 |
-
#: ../admin/admin.php:
|
|
|
763 |
msgid "General"
|
764 |
msgstr "Algemeen"
|
765 |
|
766 |
-
#: ../admin/admin.php:
|
767 |
msgid ""
|
768 |
"General NextCellent options. Contains options for permalinks and related "
|
769 |
"images."
|
770 |
msgstr "Algemene opties. Bevat permalinks en gerelateerde afbeeldingen."
|
771 |
|
772 |
-
#: ../admin/admin.php:
|
773 |
msgid "All image-related options. Also contains options for thumbnails."
|
774 |
msgstr ""
|
775 |
"Alle opties met betrekking tot afbeeldingen. Bevat ook opties voor "
|
@@ -777,17 +650,18 @@ msgstr ""
|
|
777 |
|
778 |
# @ nggallery
|
779 |
# @ default
|
780 |
-
#: ../admin/admin.php:
|
781 |
-
#: ../admin/
|
782 |
-
#: ../admin/
|
783 |
-
#: ../admin/
|
784 |
-
#: ../admin/tinymce/window.php:
|
785 |
-
#: ../admin/tinymce/window.php:
|
786 |
-
#: ../
|
|
|
787 |
msgid "Gallery"
|
788 |
msgstr "Galerij"
|
789 |
|
790 |
-
#: ../admin/admin.php:
|
791 |
msgid ""
|
792 |
"Everything about galleries. From sorting options to the number of images, "
|
793 |
"it's all in here."
|
@@ -796,46 +670,50 @@ msgstr ""
|
|
796 |
"allemaal hier."
|
797 |
|
798 |
# @ nggallery
|
799 |
-
#: ../admin/admin.php:
|
|
|
800 |
msgid "Effects"
|
801 |
msgstr "Effecten"
|
802 |
|
803 |
-
#: ../admin/admin.php:
|
804 |
msgid "Make your gallery look beautiful."
|
805 |
msgstr "Laat je galerij er prachtig uitzien."
|
806 |
|
807 |
# @ nggallery
|
808 |
-
#: ../admin/admin.php:
|
809 |
-
#: ../admin/
|
|
|
810 |
msgid "Watermark"
|
811 |
msgstr "Watermerk"
|
812 |
|
813 |
-
#: ../admin/admin.php:
|
814 |
msgid "Who doesn't want theft-proof images?"
|
815 |
msgstr "Wie wilt er geen diefstal-bestendige afbeeldingen?"
|
816 |
|
817 |
# @ nggallery
|
818 |
-
#: ../admin/admin.php:
|
819 |
-
#: ../admin/
|
820 |
-
#: ../admin/
|
821 |
-
#: ../
|
|
|
|
|
822 |
msgid "Slideshow"
|
823 |
msgstr "Slideshow"
|
824 |
|
825 |
-
#: ../admin/admin.php:
|
826 |
msgid "Edit options for the slideshow."
|
827 |
msgstr "Verander opties voor de diavoorstelling."
|
828 |
|
829 |
-
#: ../admin/admin.php:
|
830 |
msgid "Don't forget to press save!"
|
831 |
msgstr "Vergeet niet om op opslaan te drukken!"
|
832 |
|
833 |
-
#: ../admin/admin.php:
|
834 |
msgid "You can edit the css file to adjust how your gallery looks."
|
835 |
msgstr ""
|
836 |
"Je kan het css-bestand wijzigen om het uitzien van je galerij te veranderen."
|
837 |
|
838 |
-
#: ../admin/admin.php:
|
839 |
msgid ""
|
840 |
"When you save an edited file, NextCellent automatically saves it as a copy "
|
841 |
"in the folder ngg_styles. This protects your changes from upgrades."
|
@@ -844,7 +722,7 @@ msgstr ""
|
|
844 |
"als een kopie in de map ngg_styles. Dit beschermt je wijzigingen van "
|
845 |
"upgrades."
|
846 |
|
847 |
-
#: ../admin/admin.php:
|
848 |
msgid ""
|
849 |
"You can assign the lowest user role that has access to a certain feature. "
|
850 |
"Needless to say, all greater user roles will also have access to that "
|
@@ -853,7 +731,7 @@ msgstr ""
|
|
853 |
"Je kan de laagste rol aanduiden die toegang heeft tot een functie. Alle "
|
854 |
"hogere rollen zullen ook toegang hebben."
|
855 |
|
856 |
-
#: ../admin/admin.php:
|
857 |
msgid ""
|
858 |
"NextCellent also works with various plugins that extend the default roles "
|
859 |
"capabilities."
|
@@ -861,7 +739,7 @@ msgstr ""
|
|
861 |
"NextCellent werkt ook met verschillende plug-ins die het rollensysteem nog "
|
862 |
"uitbreiden."
|
863 |
|
864 |
-
#: ../admin/admin.php:
|
865 |
msgid ""
|
866 |
"If 'someone' messed with your settings (yeah, definitely not you), you can "
|
867 |
"reset them here."
|
@@ -869,127 +747,120 @@ msgstr ""
|
|
869 |
"Als 'iemand' (jij zeker niet) je instellingen verknoeit heeft, kan je ze "
|
870 |
"hier resetten."
|
871 |
|
872 |
-
#: ../admin/admin.php:
|
873 |
msgid "Attention!"
|
874 |
msgstr "Aandacht!"
|
875 |
|
876 |
-
#: ../admin/admin.php:
|
877 |
msgid ""
|
878 |
"You should not use the Uninstall Plugin button, unless you know what you're "
|
879 |
"doing! It should never be necessary to press it."
|
880 |
msgstr "Je zou de knop Verwijderen nooit moeten gebruiken!"
|
881 |
|
882 |
# @ nggallery
|
883 |
-
#: ../admin/admin.php:
|
884 |
msgid "For more information:"
|
885 |
msgstr "Voor meer informatie:"
|
886 |
|
887 |
-
#: ../admin/admin.php:
|
888 |
msgid "Support Forums"
|
889 |
msgstr "Ondersteuningsforums"
|
890 |
|
891 |
# @ nggallery
|
892 |
-
#: ../admin/admin.php:
|
893 |
msgid "Source Code"
|
894 |
msgstr "Broncode"
|
895 |
|
896 |
-
# @ default
|
897 |
-
#: ../admin/ajax.php:291
|
898 |
-
msgid "You are not allowed to be here"
|
899 |
-
msgstr "Je hebt geen toestemming je hier te bevinden"
|
900 |
-
|
901 |
-
# @ nggallery
|
902 |
-
#: ../admin/ajax.php:389
|
903 |
-
#, php-format
|
904 |
-
msgid "Could create image with %s x %s pixel"
|
905 |
-
msgstr "Kan afbeelding maken met %s x %s pixels"
|
906 |
-
|
907 |
# @ nggallery
|
908 |
-
#: ../admin/album.php:
|
|
|
|
|
909 |
msgid "Updated successfully"
|
910 |
msgstr "Met succes bijgewerkt"
|
911 |
|
912 |
# @ nggallery
|
913 |
-
#: ../admin/album.php:
|
914 |
msgid "Album deleted"
|
915 |
msgstr "Album verwijderd"
|
916 |
|
917 |
# @ nggallery
|
918 |
-
#: ../admin/album.php:
|
919 |
msgid "Edit Album"
|
920 |
msgstr "Album bewerken"
|
921 |
|
922 |
# @ nggallery
|
923 |
-
#: ../admin/album.php:
|
|
|
924 |
msgid "Select album"
|
925 |
msgstr "Selecteer album"
|
926 |
|
927 |
# @ nggallery
|
928 |
-
#: ../admin/album.php:
|
929 |
msgid "No album selected"
|
930 |
msgstr "Geen album geselecteerd"
|
931 |
|
932 |
# @ nggallery
|
933 |
# @ default
|
934 |
-
#: ../admin/album
|
935 |
-
#: ../admin/overview.php:539 ../admin/rotate.php:89 ../admin/wpmu.php:114
|
936 |
msgid "Update"
|
937 |
msgstr "Bijwerken"
|
938 |
|
939 |
# @ nggallery
|
940 |
-
#: ../admin/album.php:
|
941 |
msgid "Edit album"
|
942 |
msgstr "Album bewerken"
|
943 |
|
944 |
# @ nggallery
|
945 |
# @ default
|
946 |
-
#: ../admin/album
|
947 |
-
#: ../admin/
|
|
|
|
|
948 |
msgid "Delete"
|
949 |
msgstr "Verwijder"
|
950 |
|
951 |
# @ nggallery
|
952 |
-
#: ../admin/album.php:
|
953 |
msgid "Add new album"
|
954 |
msgstr "Nieuw album toevoegen"
|
955 |
|
956 |
# @ nggallery
|
957 |
-
#: ../admin/album.php:
|
958 |
msgid "Add"
|
959 |
msgstr "Toevoegen"
|
960 |
|
961 |
# @ nggallery
|
962 |
-
#: ../admin/album.php:
|
963 |
msgid "Show / hide used galleries"
|
964 |
msgstr "Toon / verberg gebruikte gallerys"
|
965 |
|
966 |
# @ nggallery
|
967 |
-
#: ../admin/album.php:
|
968 |
msgid "[Show all]"
|
969 |
msgstr "[Toon alle]"
|
970 |
|
971 |
# @ nggallery
|
972 |
-
#: ../admin/album.php:
|
973 |
msgid "Maximize the widget content"
|
974 |
msgstr "De widget inhoud maximaliseren"
|
975 |
|
976 |
# @ nggallery
|
977 |
-
#: ../admin/album.php:
|
978 |
msgid "[Maximize]"
|
979 |
msgstr "[Maximaliseer]"
|
980 |
|
981 |
# @ nggallery
|
982 |
-
#: ../admin/album.php:
|
983 |
msgid "Minimize the widget content"
|
984 |
msgstr "De widget inhoud minimaliseren"
|
985 |
|
986 |
# @ nggallery
|
987 |
-
#: ../admin/album.php:
|
988 |
msgid "[Minimize]"
|
989 |
msgstr "[Minimaliseer]"
|
990 |
|
991 |
# @ nggallery
|
992 |
-
#: ../admin/album.php:
|
993 |
msgid ""
|
994 |
"After you create and select a album, you can drag and drop a gallery or "
|
995 |
"another album into your new album below"
|
@@ -998,1502 +869,1305 @@ msgstr ""
|
|
998 |
"album naar je nieuwe album hieronder slepen"
|
999 |
|
1000 |
# @ nggallery
|
1001 |
-
#: ../admin/album.php:
|
1002 |
msgid "Select gallery"
|
1003 |
msgstr "Selecteer galerij"
|
1004 |
|
1005 |
# @ nggallery
|
1006 |
-
#: ../admin/album.php:
|
1007 |
msgid "Album ID"
|
1008 |
msgstr "Album ID"
|
1009 |
|
1010 |
# @ nggallery
|
1011 |
-
#: ../admin/album.php:
|
1012 |
msgid "No album selected!"
|
1013 |
msgstr "Geen album geselecteerd"
|
1014 |
|
1015 |
# @ nggallery
|
1016 |
-
#: ../admin/album.php:
|
1017 |
msgid "Album name:"
|
1018 |
msgstr "Album naam:"
|
1019 |
|
1020 |
# @ nggallery
|
1021 |
-
#: ../admin/album.php:
|
1022 |
msgid "Album description:"
|
1023 |
msgstr "Album omschrijving:"
|
1024 |
|
1025 |
# @ nggallery
|
1026 |
-
#: ../admin/album.php:
|
1027 |
msgid "Select a preview image:"
|
1028 |
msgstr "Selecteer een afbeelding om vooraf te bekijken:"
|
1029 |
|
1030 |
# @ nggallery
|
1031 |
-
#: ../admin/album.php:
|
|
|
1032 |
msgid "No picture"
|
1033 |
msgstr "Geen afbeelding"
|
1034 |
|
1035 |
# @ nggallery
|
1036 |
-
#: ../admin/album
|
1037 |
msgid "Page Link to"
|
1038 |
msgstr "Pagina Link naar"
|
1039 |
|
1040 |
# @ nggallery
|
1041 |
-
#: ../admin/album
|
|
|
1042 |
msgid "Not linked"
|
1043 |
msgstr "Niet gelinkt"
|
1044 |
|
1045 |
# @ nggallery
|
1046 |
-
#: ../admin/album
|
1047 |
-
#: ../admin/manage
|
1048 |
-
#: ../admin/manage-images.php:568 ../admin/manage-images.php:603
|
1049 |
-
#: ../admin/manage-images.php:634 ../admin/manage-images.php:664
|
1050 |
msgid "OK"
|
1051 |
msgstr "OK"
|
1052 |
|
1053 |
# @ nggallery
|
1054 |
-
#: ../admin/album
|
1055 |
-
#: ../admin/manage-
|
1056 |
-
#: ../admin/manage-images.php:569 ../admin/manage-images.php:604
|
1057 |
-
#: ../admin/manage-images.php:635 ../admin/manage-images.php:665
|
1058 |
-
#: ../admin/tinymce/window.php:472
|
1059 |
msgid "Cancel"
|
1060 |
msgstr "Annuleren"
|
1061 |
|
1062 |
# @ nggallery
|
1063 |
# @ default
|
1064 |
-
#: ../admin/album
|
1065 |
-
#: ../admin/manage-
|
|
|
|
|
1066 |
msgid "Title"
|
1067 |
msgstr "Titel"
|
1068 |
|
1069 |
# @ nggallery
|
1070 |
-
#: ../admin/album.php:
|
1071 |
msgid "Page"
|
1072 |
msgstr "Pagina"
|
1073 |
|
1074 |
# @ nggallery
|
1075 |
-
#: ../admin/
|
1076 |
-
msgid "
|
1077 |
-
msgstr "
|
|
|
1078 |
|
1079 |
# @ nggallery
|
1080 |
-
#: ../admin/
|
1081 |
-
msgid "
|
1082 |
-
|
|
|
|
|
|
|
|
|
1083 |
|
1084 |
# @ nggallery
|
1085 |
-
#: ../admin/
|
1086 |
-
msgid "
|
1087 |
-
msgstr "
|
1088 |
|
1089 |
# @ nggallery
|
1090 |
-
#: ../admin/
|
1091 |
-
msgid "
|
1092 |
-
msgstr ""
|
1093 |
-
"Selecteer het gebied voor de thumbnail van de afbeelding aan de linkerkant"
|
1094 |
|
1095 |
# @ nggallery
|
1096 |
-
#: ../admin/
|
1097 |
-
msgid "
|
1098 |
-
msgstr "
|
1099 |
|
1100 |
# @ nggallery
|
1101 |
-
#: ../admin/
|
1102 |
-
|
1103 |
-
|
1104 |
-
#: ../admin/functions.php:352
|
1105 |
-
msgid "Directory"
|
1106 |
-
msgstr "Directory"
|
1107 |
|
1108 |
# @ nggallery
|
1109 |
-
#: ../admin/
|
1110 |
-
msgid "
|
1111 |
-
msgstr "
|
1112 |
|
1113 |
# @ nggallery
|
1114 |
-
#: ../admin/
|
1115 |
-
msgid "
|
1116 |
-
msgstr "
|
1117 |
|
1118 |
# @ nggallery
|
1119 |
-
#: ../admin/
|
1120 |
-
msgid "is
|
1121 |
-
msgstr "is
|
1122 |
|
1123 |
# @ nggallery
|
1124 |
-
#: ../admin/
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
|
|
|
|
|
|
1128 |
|
1129 |
# @ nggallery
|
1130 |
-
#: ../admin/
|
1131 |
-
msgid "
|
1132 |
-
msgstr "
|
1133 |
|
1134 |
# @ nggallery
|
1135 |
-
#: ../admin/
|
1136 |
-
msgid "
|
1137 |
-
msgstr "
|
1138 |
|
1139 |
# @ nggallery
|
1140 |
-
#: ../admin/
|
1141 |
-
msgid "
|
1142 |
-
msgstr "
|
1143 |
|
1144 |
# @ nggallery
|
1145 |
-
#: ../admin/
|
1146 |
-
msgid "
|
1147 |
-
msgstr "
|
1148 |
|
1149 |
# @ nggallery
|
1150 |
-
#: ../admin/
|
1151 |
-
|
1152 |
-
|
1153 |
-
"Gallery ID %1$s successfully created. You can show this gallery in your post "
|
1154 |
-
"or page with the shortcode %2$s.<br/>"
|
1155 |
-
msgstr ""
|
1156 |
-
"Galerij ID %1$s met succes gemaakt. Je kunt deze galerij in je bericht of "
|
1157 |
-
"pagina tonen met de code %2$s.<br/>"
|
1158 |
|
1159 |
# @ nggallery
|
1160 |
-
#: ../admin/
|
1161 |
-
|
1162 |
-
|
1163 |
-
msgstr "Galerij bewerken"
|
1164 |
|
1165 |
# @ nggallery
|
1166 |
-
#: ../admin/
|
1167 |
-
msgid "
|
1168 |
-
msgstr "
|
1169 |
|
1170 |
# @ nggallery
|
1171 |
-
#: ../admin/
|
1172 |
-
msgid "
|
1173 |
-
msgstr "
|
|
|
1174 |
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
|
|
1178 |
|
1179 |
-
#: ../admin/
|
1180 |
-
msgid "
|
1181 |
-
msgstr "
|
1182 |
|
1183 |
# @ nggallery
|
1184 |
-
#: ../admin/
|
1185 |
-
msgid "
|
1186 |
-
|
|
|
|
|
|
|
|
|
1187 |
|
1188 |
# @ nggallery
|
1189 |
-
#: ../admin/
|
1190 |
-
msgid "
|
1191 |
-
msgstr "
|
1192 |
|
1193 |
# @ nggallery
|
1194 |
-
#: ../admin/
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
#: ../admin/
|
1199 |
-
msgid "
|
1200 |
-
msgstr "
|
1201 |
|
1202 |
# @ nggallery
|
1203 |
-
#: ../admin/
|
1204 |
-
msgid "
|
1205 |
-
|
|
|
|
|
|
|
1206 |
|
1207 |
# @ nggallery
|
1208 |
-
#: ../admin/
|
1209 |
-
msgid "
|
1210 |
-
msgstr "
|
1211 |
|
1212 |
# @ nggallery
|
1213 |
-
#: ../admin/
|
1214 |
-
msgid "
|
1215 |
-
msgstr "
|
1216 |
|
1217 |
# @ nggallery
|
1218 |
-
#: ../admin/
|
1219 |
-
|
1220 |
-
|
1221 |
-
msgid "Object didn't contain correct data"
|
1222 |
-
msgstr "Object bevat onjuiste gegevens"
|
1223 |
|
1224 |
# @ nggallery
|
1225 |
-
#: ../admin/
|
1226 |
-
msgid "
|
1227 |
-
msgstr "
|
1228 |
|
1229 |
# @ nggallery
|
1230 |
-
#: ../admin/
|
1231 |
-
|
1232 |
-
|
1233 |
-
msgstr "is niet beschrijfbaar"
|
1234 |
|
1235 |
# @ nggallery
|
1236 |
-
#: ../admin/
|
1237 |
-
msgid "
|
1238 |
-
msgstr "
|
1239 |
|
1240 |
# @ nggallery
|
1241 |
-
#: ../admin/
|
1242 |
-
msgid "
|
1243 |
-
msgstr "
|
1244 |
-
|
1245 |
-
# @ nggallery
|
1246 |
-
#: ../admin/functions.php:877
|
1247 |
-
msgid "(Error : Couldn't not update data base)"
|
1248 |
-
msgstr "(Mislukt : Kan de database niet bijwerken)"
|
1249 |
-
|
1250 |
-
# @ nggallery
|
1251 |
-
#: ../admin/functions.php:884
|
1252 |
-
msgid "(Error : Couldn't not update meta data)"
|
1253 |
-
msgstr "(Mislukt : Kan de metadata niet bijwerken)"
|
1254 |
-
|
1255 |
-
# @ nggallery
|
1256 |
-
#: ../admin/functions.php:893
|
1257 |
-
msgid "(Error : Couldn't not find image)"
|
1258 |
-
msgstr "(Mislukt : Kan de afbeelding niet vinden)"
|
1259 |
|
1260 |
# @ nggallery
|
1261 |
-
#: ../admin/
|
1262 |
-
msgid "
|
1263 |
-
msgstr "
|
1264 |
|
1265 |
# @ nggallery
|
1266 |
-
#: ../admin/
|
1267 |
-
msgid "
|
1268 |
-
msgstr "
|
1269 |
|
1270 |
# @ nggallery
|
1271 |
-
#: ../admin/
|
1272 |
-
msgid "
|
1273 |
-
msgstr ""
|
1274 |
-
"Geuploade bestand is geen geldig of onjuist zip bestand ! De server "
|
1275 |
-
"herkent : "
|
1276 |
|
1277 |
# @ nggallery
|
1278 |
-
#: ../admin/
|
1279 |
-
msgid "
|
1280 |
-
msgstr "
|
1281 |
|
1282 |
# @ nggallery
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
"
|
1290 |
-
|
1291 |
|
1292 |
# @ nggallery
|
1293 |
-
#: ../admin/
|
1294 |
-
msgid "
|
1295 |
-
msgstr "
|
1296 |
|
1297 |
# @ nggallery
|
1298 |
-
#: ../admin/
|
1299 |
-
|
1300 |
-
|
|
|
|
|
|
|
|
|
1301 |
|
1302 |
# @ nggallery
|
1303 |
-
#: ../admin/
|
1304 |
-
|
1305 |
-
|
|
|
|
|
|
|
|
|
1306 |
|
1307 |
# @ nggallery
|
1308 |
-
#: ../admin/
|
1309 |
-
|
1310 |
-
|
|
|
|
|
|
|
|
|
1311 |
|
1312 |
# @ nggallery
|
1313 |
-
#: ../admin/
|
1314 |
-
#: ../admin/functions.php:1464
|
1315 |
-
#, php-format
|
1316 |
msgid ""
|
1317 |
-
"
|
1318 |
msgstr ""
|
1319 |
-
"
|
|
|
1320 |
|
1321 |
# @ nggallery
|
1322 |
-
#: ../admin/
|
1323 |
-
msgid "
|
1324 |
-
msgstr "
|
1325 |
|
1326 |
# @ nggallery
|
1327 |
-
#: ../admin/
|
1328 |
-
msgid "
|
1329 |
-
msgstr "
|
1330 |
|
1331 |
# @ nggallery
|
1332 |
-
#: ../admin/
|
1333 |
-
msgid "
|
1334 |
-
msgstr "
|
1335 |
|
1336 |
# @ nggallery
|
1337 |
-
#: ../admin/
|
1338 |
-
msgid "
|
1339 |
-
msgstr "
|
1340 |
|
1341 |
# @ nggallery
|
1342 |
-
#: ../admin/
|
1343 |
-
|
1344 |
-
|
1345 |
-
"SAFE MODE Restriction in effect! You need to create the folder <strong>%s</"
|
1346 |
-
"strong> manually"
|
1347 |
-
msgstr ""
|
1348 |
-
"BEVEILINGS beperking in effect! Het is nodig de map <strong>%s</strong> "
|
1349 |
-
"handmatig te maken"
|
1350 |
|
1351 |
# @ nggallery
|
1352 |
-
#: ../admin/
|
1353 |
-
|
|
|
|
|
|
|
|
|
1354 |
msgid ""
|
1355 |
-
"
|
1356 |
-
"
|
1357 |
-
"function or its directory"
|
1358 |
msgstr ""
|
|
|
|
|
1359 |
|
1360 |
# @ nggallery
|
1361 |
-
#: ../admin/
|
1362 |
-
msgid "
|
1363 |
-
msgstr "
|
1364 |
|
1365 |
# @ nggallery
|
1366 |
-
#: ../admin/
|
1367 |
-
|
1368 |
-
|
1369 |
-
msgstr "Afbeelding verplaatsen mislukt %1$s naar %2$s"
|
1370 |
|
1371 |
-
# @
|
1372 |
-
#: ../admin/
|
1373 |
-
|
1374 |
-
|
1375 |
-
msgstr " %1$s afbeelding(en) verplaatst naar gallery : %2$s ."
|
1376 |
|
1377 |
# @ nggallery
|
1378 |
-
#: ../admin/
|
1379 |
-
|
1380 |
-
|
1381 |
-
msgstr "afbeelding kopieeren mislukt van %1$s naar %2$s"
|
1382 |
|
1383 |
# @ nggallery
|
1384 |
-
#: ../admin/
|
1385 |
-
|
1386 |
-
|
1387 |
-
msgstr "Database rij kopieeren mislukt voor afbeelding %s"
|
1388 |
|
1389 |
# @ nggallery
|
1390 |
-
#: ../admin/
|
1391 |
-
|
1392 |
-
|
1393 |
-
"Image %1$s (%2$s) copied as image %3$s (%4$s) » The file already "
|
1394 |
-
"existed in the destination gallery."
|
1395 |
-
msgstr ""
|
1396 |
-
"Afbeelding %1$s (%2$s) gekopieerd als afbeelding %3$s (%4$s) » De "
|
1397 |
-
"bestandsnaam was al aanwezig in de bestaande galerij."
|
1398 |
|
1399 |
# @ nggallery
|
1400 |
-
#: ../admin/
|
1401 |
-
|
1402 |
-
|
1403 |
-
msgstr "Afbeelding %1$s (%2$s) gekopieerd als afbeelding %3$s (%4$s)"
|
1404 |
|
1405 |
# @ nggallery
|
1406 |
-
#: ../admin/
|
1407 |
-
|
1408 |
-
|
1409 |
-
msgstr "%1$s afbeelding(en) gekopieerd naar galerij: %2$s ."
|
1410 |
|
1411 |
# @ nggallery
|
1412 |
-
#: ../admin/
|
1413 |
-
|
1414 |
-
|
1415 |
-
"
|
1416 |
-
"ini"
|
1417 |
|
1418 |
-
# @
|
1419 |
-
#: ../admin/
|
1420 |
-
msgid ""
|
1421 |
-
"
|
1422 |
-
"the HTML form"
|
1423 |
-
msgstr ""
|
1424 |
-
"Het geuploade bestand overschrijdt de MAX_FILE_SIZE richtlijn welke is "
|
1425 |
-
"ingesteld op het HTML formulier"
|
1426 |
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
msgstr "Het geuploade bestand is slechts voor een deel geupload"
|
1431 |
|
1432 |
# @ nggallery
|
1433 |
-
#: ../admin/
|
1434 |
-
msgid "
|
1435 |
-
msgstr "
|
1436 |
|
1437 |
# @ nggallery
|
1438 |
-
#: ../admin/
|
1439 |
-
msgid "
|
1440 |
-
msgstr "
|
1441 |
|
1442 |
# @ nggallery
|
1443 |
-
#: ../admin/
|
1444 |
-
msgid "
|
1445 |
-
msgstr "
|
|
|
|
|
1446 |
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
msgstr "Bestands upload is gestopt vanwege de extensie"
|
1451 |
|
1452 |
# @ nggallery
|
1453 |
-
#: ../admin/
|
1454 |
-
msgid "
|
1455 |
-
msgstr "
|
1456 |
|
1457 |
# @ nggallery
|
1458 |
-
#: ../admin/
|
1459 |
-
msgid "
|
|
|
|
|
1460 |
msgstr ""
|
1461 |
-
"
|
|
|
1462 |
|
1463 |
# @ nggallery
|
1464 |
-
#: ../admin/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1465 |
msgid ""
|
1466 |
-
"
|
1467 |
-
"
|
1468 |
msgstr ""
|
1469 |
-
"
|
1470 |
-
"
|
1471 |
|
1472 |
# @ nggallery
|
1473 |
-
#: ../admin/
|
1474 |
-
msgid "
|
1475 |
-
msgstr "
|
1476 |
|
1477 |
# @ nggallery
|
1478 |
-
#: ../admin/
|
1479 |
-
|
1480 |
-
|
|
|
|
|
|
|
|
|
|
|
1481 |
|
1482 |
# @ nggallery
|
1483 |
-
#: ../admin/
|
1484 |
-
msgid "
|
1485 |
-
msgstr "
|
1486 |
|
1487 |
# @ nggallery
|
1488 |
-
#: ../admin/
|
1489 |
-
|
1490 |
-
|
1491 |
-
msgid "Resize images"
|
1492 |
-
msgstr "Formaat afbeeldingen aanpassen"
|
1493 |
|
1494 |
# @ nggallery
|
1495 |
-
#: ../admin/
|
1496 |
-
|
|
|
|
|
|
|
1497 |
msgid ""
|
1498 |
-
"
|
1499 |
-
"
|
1500 |
-
" 'Cancel' to stop, 'OK' to proceed."
|
1501 |
msgstr ""
|
1502 |
-
"
|
1503 |
-
"
|
1504 |
-
" 'Annuleren' om te stoppen, 'OK' om door te gaan."
|
1505 |
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
|
1511 |
# @ nggallery
|
1512 |
-
#: ../admin/
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
|
|
|
|
|
|
|
|
|
|
1516 |
|
1517 |
# @ nggallery
|
1518 |
-
#: ../admin/
|
1519 |
-
msgid "
|
1520 |
-
msgstr "
|
1521 |
|
1522 |
# @ nggallery
|
1523 |
-
#: ../admin/
|
1524 |
-
|
1525 |
-
|
1526 |
-
msgstr "Watermerk instellen"
|
1527 |
|
1528 |
# @ nggallery
|
1529 |
-
#: ../admin/
|
1530 |
-
|
1531 |
-
|
1532 |
-
msgstr "Importeer metadata"
|
1533 |
-
|
1534 |
-
# @ nggallery
|
1535 |
-
#: ../admin/manage-galleries.php:153 ../admin/manage-images.php:374
|
1536 |
-
#: ../admin/manage.php:136 ../admin/manage.php:250
|
1537 |
-
msgid "Recover from backup"
|
1538 |
-
msgstr "Herstel van backup"
|
1539 |
|
1540 |
# @ nggallery
|
1541 |
-
#: ../admin/
|
1542 |
-
msgid "
|
1543 |
-
msgstr "
|
1544 |
|
1545 |
-
# @ default
|
1546 |
# @ nggallery
|
1547 |
-
#: ../admin/
|
1548 |
-
|
1549 |
-
|
|
|
1550 |
|
1551 |
# @ nggallery
|
1552 |
-
#: ../admin/
|
1553 |
-
msgid "
|
1554 |
-
msgstr "
|
1555 |
|
1556 |
# @ nggallery
|
1557 |
-
#: ../admin/
|
1558 |
-
msgid "
|
1559 |
-
msgstr "
|
1560 |
|
1561 |
# @ nggallery
|
1562 |
-
#: ../admin/
|
1563 |
-
msgid "
|
1564 |
-
msgstr "
|
1565 |
|
1566 |
# @ nggallery
|
1567 |
-
#: ../admin/
|
1568 |
-
msgid "
|
1569 |
-
msgstr "
|
1570 |
|
1571 |
# @ nggallery
|
1572 |
-
#: ../admin/
|
1573 |
-
#: ../admin/manage
|
1574 |
-
|
1575 |
-
|
1576 |
-
#: ../admin/tinymce/window.php:318
|
1577 |
-
msgid "Width"
|
1578 |
-
msgstr "Breedte"
|
1579 |
|
1580 |
# @ nggallery
|
1581 |
-
#: ../admin/
|
1582 |
-
#: ../admin/manage
|
1583 |
-
|
1584 |
-
|
1585 |
-
#: ../admin/tinymce/window.php:320
|
1586 |
-
msgid "Height"
|
1587 |
-
msgstr "Hoogte"
|
1588 |
|
1589 |
# @ nggallery
|
1590 |
-
#: ../admin/
|
1591 |
-
#: ../admin/settings.php:399
|
1592 |
msgid ""
|
1593 |
-
"
|
|
|
|
|
1594 |
msgstr ""
|
1595 |
-
"
|
1596 |
-
"
|
|
|
|
|
1597 |
|
1598 |
-
# @ default
|
1599 |
# @ nggallery
|
1600 |
-
#: ../admin/
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
|
|
|
|
|
|
|
|
|
|
1604 |
|
1605 |
# @ nggallery
|
1606 |
-
#: ../admin/
|
1607 |
-
|
1608 |
-
|
1609 |
-
msgstr "Dit zijn de maximale waarden"
|
1610 |
|
1611 |
# @ default
|
1612 |
-
#: ../admin/manage-galleries.php:344 ../admin/manage-images.php:658
|
1613 |
-
#: ../admin/settings.php:431
|
1614 |
-
msgid "Fixed size"
|
1615 |
-
msgstr "Vaste grootte"
|
1616 |
-
|
1617 |
# @ nggallery
|
1618 |
-
#: ../admin/
|
1619 |
-
|
1620 |
-
|
1621 |
-
msgstr "Dit zal de verhouding negeren, dus geen miniaturen in portretmodus."
|
1622 |
|
1623 |
-
# @
|
1624 |
-
#: ../admin/
|
1625 |
-
msgid "
|
1626 |
-
msgstr "
|
1627 |
|
1628 |
# @ nggallery
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
msgid "Author"
|
1633 |
-
msgstr "Auteur"
|
1634 |
|
1635 |
# @ nggallery
|
1636 |
-
#: ../admin/
|
1637 |
-
msgid "
|
1638 |
-
msgstr "
|
1639 |
|
1640 |
# @ nggallery
|
1641 |
-
#: ../admin/
|
1642 |
-
msgid "
|
1643 |
-
msgstr "
|
1644 |
|
1645 |
# @ nggallery
|
1646 |
-
#: ../admin/
|
1647 |
-
msgid "
|
1648 |
-
msgstr "
|
1649 |
|
1650 |
# @ nggallery
|
1651 |
-
#: ../admin/
|
1652 |
-
msgid "
|
1653 |
-
msgstr "
|
1654 |
|
1655 |
# @ nggallery
|
1656 |
-
#: ../admin/
|
1657 |
-
msgid "
|
1658 |
-
|
|
|
|
|
|
|
|
|
1659 |
|
1660 |
# @ nggallery
|
1661 |
-
#: ../admin/
|
1662 |
-
msgid "
|
1663 |
-
msgstr "
|
1664 |
|
1665 |
# @ nggallery
|
1666 |
-
#: ../admin/
|
1667 |
-
msgid "
|
1668 |
-
msgstr "
|
1669 |
|
1670 |
# @ nggallery
|
1671 |
-
#: ../admin/
|
1672 |
-
msgid "
|
1673 |
-
msgstr "
|
1674 |
|
1675 |
# @ nggallery
|
1676 |
-
#: ../admin/
|
1677 |
-
|
1678 |
-
|
1679 |
-
"You are about to start the bulk edit for %s images \n"
|
1680 |
-
" \n"
|
1681 |
-
" 'Cancel' to stop, 'OK' to proceed."
|
1682 |
-
msgstr ""
|
1683 |
-
"Je bent bezig meerdere bewerkingen van %s afbeeldingen te starten \n"
|
1684 |
-
" \n"
|
1685 |
-
" 'Annuleren' om te stoppen, 'OK' om door te gaan."
|
1686 |
|
1687 |
# @ nggallery
|
1688 |
-
#: ../admin/
|
1689 |
-
|
1690 |
-
|
1691 |
-
msgstr "Zoekresultaten op “%s”"
|
1692 |
|
1693 |
# @ nggallery
|
1694 |
-
#: ../admin/
|
1695 |
-
msgid "
|
1696 |
-
msgstr "
|
1697 |
|
1698 |
# @ nggallery
|
1699 |
-
#: ../admin/
|
1700 |
-
msgid "
|
1701 |
-
msgstr "
|
1702 |
|
1703 |
# @ nggallery
|
1704 |
-
#: ../admin/
|
1705 |
-
msgid "
|
1706 |
-
msgstr "
|
1707 |
|
1708 |
# @ nggallery
|
1709 |
-
#: ../admin/
|
1710 |
-
msgid "
|
1711 |
-
msgstr "
|
1712 |
|
1713 |
# @ nggallery
|
1714 |
-
#: ../admin/
|
1715 |
-
msgid "
|
1716 |
-
msgstr "
|
|
|
1717 |
|
1718 |
# @ nggallery
|
1719 |
-
#: ../admin/
|
1720 |
-
msgid "
|
1721 |
-
|
|
|
|
|
1722 |
|
|
|
1723 |
# @ nggallery
|
1724 |
-
#: ../admin/manage-
|
1725 |
-
|
1726 |
-
|
|
|
1727 |
|
1728 |
# @ nggallery
|
1729 |
-
#: ../admin/
|
1730 |
-
msgid "
|
1731 |
-
msgstr "
|
1732 |
|
1733 |
# @ nggallery
|
1734 |
-
#: ../admin/
|
1735 |
-
msgid "
|
1736 |
-
msgstr "
|
1737 |
|
1738 |
# @ nggallery
|
1739 |
-
#: ../admin/
|
1740 |
-
msgid "
|
1741 |
-
msgstr "
|
1742 |
|
1743 |
-
#: ../admin/
|
1744 |
-
msgid "
|
1745 |
-
msgstr "
|
1746 |
|
1747 |
-
|
1748 |
-
|
1749 |
-
|
1750 |
-
|
1751 |
-
#: ../admin/settings.php:447 ../admin/settings.php:537
|
1752 |
-
#: ../admin/settings.php:571 ../admin/settings.php:681
|
1753 |
-
#: ../admin/settings.php:833
|
1754 |
-
msgid "Save Changes"
|
1755 |
-
msgstr "Bijwerken"
|
1756 |
|
1757 |
# @ nggallery
|
1758 |
-
#: ../admin/
|
1759 |
-
msgid "
|
1760 |
-
msgstr "
|
1761 |
|
1762 |
# @ nggallery
|
1763 |
-
#: ../admin/
|
1764 |
-
msgid "
|
1765 |
-
msgstr "
|
1766 |
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
msgstr "Roteer afbeelding teller met de klok mee."
|
1771 |
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
msgstr "Kopieer naar..."
|
1776 |
|
1777 |
-
|
1778 |
-
|
1779 |
-
|
1780 |
-
msgstr "Verplaats naar..."
|
1781 |
|
1782 |
-
|
1783 |
-
|
1784 |
-
|
1785 |
-
msgstr "Tags toevoegen"
|
1786 |
|
1787 |
-
|
1788 |
-
|
1789 |
-
|
1790 |
-
msgstr "Tags overschrijven"
|
1791 |
|
1792 |
# @ nggallery
|
1793 |
-
#: ../admin/
|
1794 |
-
msgid "
|
1795 |
-
msgstr "
|
1796 |
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
msgstr "Datum bewerken"
|
1801 |
|
1802 |
-
|
1803 |
-
|
1804 |
-
|
1805 |
-
msgstr "pixel"
|
1806 |
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
msgid "View \"%s\""
|
1811 |
-
msgstr "Bekijk \"%s\""
|
1812 |
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
msgstr "Bekijk"
|
1817 |
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
1821 |
-
msgstr "Toon meta data"
|
1822 |
|
1823 |
-
|
1824 |
-
|
1825 |
-
|
1826 |
-
msgstr "Meta"
|
1827 |
|
1828 |
-
|
1829 |
-
|
1830 |
-
|
1831 |
-
msgstr "Aanpassen thumbnail"
|
1832 |
|
1833 |
-
|
1834 |
-
|
1835 |
-
|
1836 |
-
|
|
|
1837 |
|
1838 |
-
|
1839 |
-
|
1840 |
-
|
1841 |
-
msgstr "Roteer"
|
1842 |
|
1843 |
-
|
1844 |
-
|
1845 |
-
|
1846 |
-
msgstr "Publiceer deze afbeelding"
|
1847 |
|
1848 |
# @ nggallery
|
1849 |
-
#: ../admin/
|
1850 |
-
msgid "
|
1851 |
-
msgstr "
|
1852 |
|
1853 |
-
|
1854 |
-
|
1855 |
-
|
1856 |
-
msgstr "Herstellen / terugzetten"
|
1857 |
|
1858 |
# @ nggallery
|
1859 |
-
#: ../admin/
|
1860 |
-
|
1861 |
-
|
1862 |
-
msgstr " \"%s\" terugzetten?"
|
1863 |
|
1864 |
# @ nggallery
|
1865 |
-
#: ../admin/
|
1866 |
-
|
1867 |
-
|
1868 |
-
msgstr " \"%s\" verwijderen?"
|
1869 |
|
1870 |
-
|
1871 |
-
|
1872 |
-
|
1873 |
-
msgstr "Alt- & titeltekst"
|
1874 |
|
1875 |
# @ nggallery
|
1876 |
-
#: ../admin/
|
1877 |
-
msgid "
|
1878 |
-
msgstr "
|
1879 |
|
1880 |
# @ nggallery
|
1881 |
-
#: ../admin/
|
1882 |
-
msgid "
|
1883 |
-
msgstr "
|
1884 |
|
1885 |
# @ nggallery
|
1886 |
-
#: ../admin/
|
1887 |
-
msgid "
|
1888 |
-
msgstr "
|
1889 |
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
msgid "Thumbnail"
|
1894 |
-
msgstr "Thumbnail"
|
1895 |
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
1899 |
-
msgstr "Bestandsnaam"
|
1900 |
|
1901 |
# @ nggallery
|
1902 |
-
#: ../admin/
|
1903 |
-
msgid "
|
1904 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
1905 |
|
1906 |
# @ nggallery
|
1907 |
-
#: ../admin/
|
1908 |
-
|
1909 |
-
|
1910 |
-
|
1911 |
-
# @ nggallery
|
1912 |
-
#: ../admin/manage-sort.php:35
|
1913 |
-
msgid "Sort order changed"
|
1914 |
-
msgstr "Volgorde gewijzigd"
|
1915 |
-
|
1916 |
-
# @ nggallery
|
1917 |
-
#: ../admin/manage-sort.php:77
|
1918 |
-
msgid "Sort Gallery"
|
1919 |
-
msgstr "Galerij volgorde"
|
1920 |
-
|
1921 |
-
# @ nggallery
|
1922 |
-
#: ../admin/manage-sort.php:81
|
1923 |
-
msgid "Update Sort Order"
|
1924 |
-
msgstr "Volgorde bijwerken"
|
1925 |
-
|
1926 |
-
# @ nggallery
|
1927 |
-
#: ../admin/manage-sort.php:84
|
1928 |
-
msgid "Back to gallery"
|
1929 |
-
msgstr "Terug naar galerij"
|
1930 |
|
1931 |
-
|
1932 |
-
|
1933 |
-
|
1934 |
-
msgstr "Vooraf sorteren"
|
1935 |
|
1936 |
# @ nggallery
|
1937 |
-
#: ../admin/
|
1938 |
-
|
1939 |
-
|
|
|
1940 |
|
1941 |
# @ nggallery
|
1942 |
-
#: ../admin/
|
1943 |
-
|
1944 |
-
|
|
|
1945 |
|
1946 |
# @ nggallery
|
1947 |
-
#: ../admin/
|
1948 |
-
|
1949 |
-
|
|
|
1950 |
|
1951 |
# @ nggallery
|
1952 |
-
#: ../admin/
|
1953 |
-
msgid "
|
1954 |
-
msgstr "
|
1955 |
|
1956 |
-
|
1957 |
-
|
1958 |
-
|
1959 |
-
msgstr "Oplopend"
|
1960 |
|
1961 |
# @ nggallery
|
1962 |
-
#: ../admin/
|
1963 |
-
msgid "
|
1964 |
-
msgstr "
|
1965 |
|
1966 |
# @ nggallery
|
1967 |
-
#: ../admin/
|
1968 |
-
|
1969 |
-
#: ../view/imagebrowser.php:31
|
1970 |
-
msgid "Picture"
|
1971 |
msgstr "Afbeelding"
|
1972 |
|
1973 |
# @ nggallery
|
1974 |
-
#: ../admin/
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
# @ nggallery
|
1979 |
-
#: ../admin/manage.php:100 ../admin/manage.php:109
|
1980 |
-
msgid "Operation successful. Please clear your browser cache."
|
1981 |
-
msgstr "Met succes uitgevoerd. Browser cache verversen. (Ctrl en F5 toets)"
|
1982 |
-
|
1983 |
-
# @ nggallery
|
1984 |
-
#: ../admin/manage.php:176
|
1985 |
-
msgid "Gallery deleted successfully "
|
1986 |
-
msgstr "Galerij met succes verwijderd"
|
1987 |
-
|
1988 |
-
# @ nggallery
|
1989 |
-
#: ../admin/manage.php:244 ../admin/manage.php:247
|
1990 |
-
msgid "Rotate images"
|
1991 |
-
msgstr "Roteer afbeeldingen"
|
1992 |
-
|
1993 |
-
# @ nggallery
|
1994 |
-
#: ../admin/manage.php:270
|
1995 |
-
msgid "Pictures deleted successfully "
|
1996 |
-
msgstr "Afbeeldingen met succes verwijderd"
|
1997 |
-
|
1998 |
-
# @ nggallery
|
1999 |
-
#: ../admin/manage.php:366
|
2000 |
-
msgid "Tags changed"
|
2001 |
-
msgstr "Tags aangepast"
|
2002 |
-
|
2003 |
-
# @ nggallery
|
2004 |
-
#: ../admin/manage.php:402
|
2005 |
-
msgid "Update successful"
|
2006 |
-
msgstr "Met succes bijgewerkt"
|
2007 |
-
|
2008 |
-
# @ nggallery
|
2009 |
-
#: ../admin/manage.php:445
|
2010 |
-
msgid "New gallery page ID"
|
2011 |
-
msgstr "Nieuwe galerij pagina ID"
|
2012 |
-
|
2013 |
-
# @ nggallery
|
2014 |
-
#: ../admin/manage.php:445
|
2015 |
-
msgid "created"
|
2016 |
-
msgstr "gemaakt"
|
2017 |
-
|
2018 |
-
# @ nggallery
|
2019 |
-
#: ../admin/manage.php:483
|
2020 |
-
msgid "Published a new post"
|
2021 |
-
msgstr "Nieuw bericht gepubliceerd"
|
2022 |
-
|
2023 |
-
# @ default
|
2024 |
-
#: ../admin/manage.php:598
|
2025 |
-
msgid "1 item"
|
2026 |
-
msgstr "1 item"
|
2027 |
-
|
2028 |
-
# @ nggallery
|
2029 |
-
#: ../admin/media-upload.php:11
|
2030 |
-
msgid "NextCellent Gallery"
|
2031 |
-
msgstr "NextCellent Gallery"
|
2032 |
-
|
2033 |
-
# @ nggallery
|
2034 |
-
#: ../admin/media-upload.php:166
|
2035 |
-
msgid "No gallery"
|
2036 |
-
msgstr "Geen galerij"
|
2037 |
-
|
2038 |
-
# @ nggallery
|
2039 |
-
#: ../admin/media-upload.php:178
|
2040 |
-
msgid "Select »"
|
2041 |
-
msgstr "Selecteer »"
|
2042 |
-
|
2043 |
-
# @ nggallery
|
2044 |
-
#: ../admin/media-upload.php:209
|
2045 |
-
msgid "Show"
|
2046 |
-
msgstr "Toon"
|
2047 |
-
|
2048 |
-
# @ nggallery
|
2049 |
-
#: ../admin/media-upload.php:210
|
2050 |
-
msgid "Hide"
|
2051 |
-
msgstr "Verberg"
|
2052 |
-
|
2053 |
-
# @ nggallery
|
2054 |
-
#: ../admin/media-upload.php:215
|
2055 |
-
msgid "Image ID:"
|
2056 |
-
msgstr "Afbeeldings ID:"
|
2057 |
|
2058 |
-
# @ default
|
2059 |
# @ nggallery
|
2060 |
-
#: ../admin/
|
2061 |
-
|
2062 |
-
|
2063 |
-
msgstr "Uitlijning"
|
2064 |
|
2065 |
# @ default
|
2066 |
-
|
2067 |
-
|
2068 |
-
|
2069 |
-
msgid "None"
|
2070 |
-
msgstr "Geen"
|
2071 |
|
2072 |
# @ default
|
2073 |
-
|
2074 |
-
|
2075 |
-
|
2076 |
-
msgid "Left"
|
2077 |
-
msgstr "Links"
|
2078 |
|
2079 |
# @ default
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
2085 |
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
#: ../admin/tinymce/window.php:341
|
2090 |
-
msgid "Right"
|
2091 |
-
msgstr "Rechts"
|
2092 |
|
2093 |
# @ default
|
2094 |
-
#: ../admin/
|
2095 |
-
|
2096 |
-
|
|
|
|
|
|
|
2097 |
|
2098 |
# @ nggallery
|
2099 |
-
#: ../admin/
|
2100 |
-
|
2101 |
-
|
|
|
|
|
|
|
|
|
|
|
2102 |
|
2103 |
# @ default
|
2104 |
-
#: ../admin/
|
2105 |
-
msgid "
|
2106 |
-
msgstr "
|
2107 |
-
|
2108 |
-
# @ nggallery
|
2109 |
-
#: ../admin/media-upload.php:274
|
2110 |
-
msgid "Save all changes"
|
2111 |
-
msgstr "Wijzigingen bewaren"
|
2112 |
-
|
2113 |
-
# @ nggallery
|
2114 |
-
#: ../admin/overview.php:15
|
2115 |
-
msgid "NextCellent Gallery Overview"
|
2116 |
-
msgstr "NextCellent Gallery Overzicht"
|
2117 |
-
|
2118 |
-
# @ nggallery
|
2119 |
-
#: ../admin/overview.php:86
|
2120 |
-
msgid "Welcome to NextCellent Gallery !"
|
2121 |
-
msgstr "Welkom bij NextCellent Gallery!"
|
2122 |
|
2123 |
# @ nggallery
|
2124 |
-
#: ../admin/overview.php:
|
2125 |
msgid "Running..."
|
2126 |
msgstr "Bezig... even wachten"
|
2127 |
|
2128 |
# @ nggallery
|
2129 |
-
#: ../admin/overview.php:
|
2130 |
msgid "Check plugin/theme conflict"
|
2131 |
msgstr "Plugin controle / thema conflict"
|
2132 |
|
2133 |
# @ nggallery
|
2134 |
-
#: ../admin/overview.php:
|
2135 |
-
#: ../admin/overview.php:
|
2136 |
msgid "Not tested"
|
2137 |
msgstr "Niet getest"
|
2138 |
|
2139 |
# @ nggallery
|
2140 |
-
#: ../admin/overview.php:
|
2141 |
msgid "No conflict could be detected"
|
2142 |
msgstr "Er kan geen conflict worden gevonden"
|
2143 |
|
2144 |
# @ nggallery
|
2145 |
-
#: ../admin/overview.php:
|
2146 |
msgid "Test failed, disable other plugins & switch to default theme"
|
2147 |
msgstr ""
|
2148 |
"Test mislukt, schakel andere plugins uit en stel het standaard thema in"
|
2149 |
|
2150 |
# @ nggallery
|
2151 |
-
#: ../admin/overview.php:
|
2152 |
msgid "Test image function"
|
2153 |
msgstr "Test afbeeldingsfunctie"
|
2154 |
|
2155 |
# @ nggallery
|
2156 |
-
#: ../admin/overview.php:
|
2157 |
-
msgid "The plugin could create images"
|
2158 |
msgstr "De plugin kan geen afbeeldingen maken"
|
2159 |
|
2160 |
# @ nggallery
|
2161 |
-
#: ../admin/overview.php:
|
2162 |
-
msgid "
|
2163 |
msgstr "Kan de afbeeldingen niet maken, controleer de geheugen limiet"
|
2164 |
|
2165 |
# @ nggallery
|
2166 |
-
#: ../admin/overview.php:
|
2167 |
msgid "Check theme compatibility"
|
2168 |
msgstr "Controleer thema compatibiliteit"
|
2169 |
|
2170 |
# @ nggallery
|
2171 |
-
#: ../admin/overview.php:
|
2172 |
msgid "Your theme should work fine with NextCellent Gallery"
|
2173 |
msgstr "Je thema zou moeten werken met NextCellent Gallery"
|
2174 |
|
2175 |
# @ nggallery
|
2176 |
-
#: ../admin/overview.php:
|
2177 |
msgid "wp_head()/wp_footer() is missing, contact the theme author"
|
2178 |
msgstr ""
|
2179 |
"wp_head()/wp_footer() ontbreekt, neem contact op met de ontwikkelaar van het "
|
2180 |
"thema"
|
2181 |
|
2182 |
# @ nggallery
|
2183 |
-
#: ../admin/overview.php:
|
2184 |
msgid "Check plugin"
|
2185 |
msgstr "Controleer plugin"
|
2186 |
|
2187 |
# @ nggallery
|
2188 |
-
#: ../admin/overview.php:
|
2189 |
msgid "Graphic Library"
|
2190 |
msgstr "Grafische bibliotheek"
|
2191 |
|
2192 |
-
# @ default
|
2193 |
-
#: ../admin/overview.php:333 ../admin/overview.php:520
|
2194 |
-
#: ../admin/overview.php:710
|
2195 |
-
msgid "Loading…"
|
2196 |
-
msgstr "Laden…"
|
2197 |
-
|
2198 |
-
# @ default
|
2199 |
-
#: ../admin/overview.php:333 ../admin/overview.php:520
|
2200 |
-
#: ../admin/overview.php:710
|
2201 |
-
msgid "This widget requires JavaScript."
|
2202 |
-
msgstr "Deze widget vereist JavaScript."
|
2203 |
-
|
2204 |
-
# @ nggallery
|
2205 |
-
#: ../admin/overview.php:345
|
2206 |
-
#, php-format
|
2207 |
-
msgid ""
|
2208 |
-
"Newsfeed could not be loaded. Check the <a href=\"%s\">front page</a> to "
|
2209 |
-
"check for updates."
|
2210 |
-
msgstr ""
|
2211 |
-
"Nieuwsfeed kan niet geladen worden. Ga naar de <a href=\"%s\">voorpagina </"
|
2212 |
-
"a> om te controleren op updates."
|
2213 |
-
|
2214 |
-
# @ default
|
2215 |
-
#: ../admin/overview.php:357
|
2216 |
-
msgid "Untitled"
|
2217 |
-
msgstr "Zonder titel"
|
2218 |
-
|
2219 |
-
# @ nggallery
|
2220 |
-
#: ../admin/overview.php:412
|
2221 |
-
msgid "Image"
|
2222 |
-
msgstr "Afbeelding"
|
2223 |
-
|
2224 |
-
# @ nggallery
|
2225 |
-
#: ../admin/overview.php:424 ../admin/tinymce/window.php:121
|
2226 |
-
#: ../admin/tinymce/window.php:236 ../lib/rewrite.php:226
|
2227 |
-
msgid "Album"
|
2228 |
-
msgstr "Album"
|
2229 |
-
|
2230 |
-
# @ nggallery
|
2231 |
-
#: ../admin/overview.php:433
|
2232 |
-
msgid "Upload pictures"
|
2233 |
-
msgstr "Afbeeldingen uploaden"
|
2234 |
-
|
2235 |
-
# @ nggallery
|
2236 |
-
#: ../admin/overview.php:434
|
2237 |
-
msgid "Here you can control your images, galleries and albums."
|
2238 |
-
msgstr "Hier kunnen de afbeeldingen, gallerys en albums beheerd worden."
|
2239 |
-
|
2240 |
-
# @ default
|
2241 |
-
#: ../admin/overview.php:464
|
2242 |
-
msgid "Storage Space"
|
2243 |
-
msgstr "Opslag ruimte"
|
2244 |
-
|
2245 |
-
# @ default
|
2246 |
-
#: ../admin/overview.php:468
|
2247 |
-
#, php-format
|
2248 |
-
msgid ""
|
2249 |
-
"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>"
|
2250 |
-
msgstr ""
|
2251 |
-
"<a href=\"%1$s\" title=\"Beheer uploads\" class=\"musublink\">%2$sMB</a>"
|
2252 |
-
|
2253 |
-
# @ default
|
2254 |
-
#: ../admin/overview.php:469
|
2255 |
-
msgid "Space Allowed"
|
2256 |
-
msgstr "Toegestane ruimte"
|
2257 |
-
|
2258 |
-
# @ default
|
2259 |
-
#: ../admin/overview.php:476
|
2260 |
-
#, php-format
|
2261 |
-
msgid ""
|
2262 |
-
"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s"
|
2263 |
-
"%%)</a>"
|
2264 |
-
msgstr ""
|
2265 |
-
"<a href=\"%1$s\" title=\"Beheer uploads\" class=\"musublink\">%2$sMB (%3$s"
|
2266 |
-
"%%)</a>"
|
2267 |
-
|
2268 |
-
# @ default
|
2269 |
-
#: ../admin/overview.php:477
|
2270 |
-
msgid "Space Used"
|
2271 |
-
msgstr "Gebruikte ruimte"
|
2272 |
-
|
2273 |
-
# @ nggallery
|
2274 |
-
#: ../admin/overview.php:506
|
2275 |
-
msgid "Translation file successful updated. Please reload page."
|
2276 |
-
msgstr "Vertaalbestand met succes aangemaakt. Herlaad de pagina."
|
2277 |
-
|
2278 |
-
# @ nggallery
|
2279 |
-
#: ../admin/overview.php:508
|
2280 |
-
msgid "Reload page"
|
2281 |
-
msgstr "Herlaad de pagina"
|
2282 |
-
|
2283 |
-
# @ nggallery
|
2284 |
-
#: ../admin/overview.php:513
|
2285 |
-
msgid "Translation file couldn't be updated"
|
2286 |
-
msgstr "Vertaal bestand kan niet geupdated worden"
|
2287 |
-
|
2288 |
-
# @ nggallery
|
2289 |
-
#: ../admin/overview.php:550
|
2290 |
-
msgid "Download"
|
2291 |
-
msgstr "Download"
|
2292 |
-
|
2293 |
# @ nggallery
|
2294 |
-
#: ../admin/overview.php:
|
2295 |
-
msgid "
|
2296 |
msgstr "Geen GD ondersteuning"
|
2297 |
|
2298 |
# @ nggallery
|
2299 |
-
#: ../admin/overview.php:
|
2300 |
-
#: ../admin/overview.php:
|
2301 |
msgid "Yes"
|
2302 |
msgstr "Ja"
|
2303 |
|
2304 |
# @ nggallery
|
2305 |
-
#: ../admin/overview.php:
|
2306 |
-
#: ../admin/overview.php:
|
2307 |
msgid "No"
|
2308 |
msgstr "Nee"
|
2309 |
|
2310 |
# @ nggallery
|
2311 |
-
#: ../admin/overview.php:
|
2312 |
msgid "Not set"
|
2313 |
msgstr "Niet ingesteld"
|
2314 |
|
2315 |
# @ nggallery
|
2316 |
-
#: ../admin/overview.php:
|
2317 |
msgid "On"
|
2318 |
msgstr "Aan"
|
2319 |
|
2320 |
# @ nggallery
|
2321 |
-
#: ../admin/overview.php:
|
2322 |
msgid "Off"
|
2323 |
msgstr "Uit"
|
2324 |
|
2325 |
# @ nggallery
|
2326 |
-
#: ../admin/overview.php:
|
2327 |
-
#: ../admin/overview.php:
|
2328 |
-
#: ../admin/overview.php:
|
2329 |
msgid "N/A"
|
2330 |
msgstr "N/A"
|
2331 |
|
2332 |
# @ nggallery
|
2333 |
-
#: ../admin/overview.php:
|
2334 |
-
msgid "
|
2335 |
msgstr " MByte"
|
2336 |
|
2337 |
# @ nggallery
|
2338 |
-
#: ../admin/overview.php:
|
2339 |
msgid "Operating System"
|
2340 |
msgstr "Operating Systeem"
|
2341 |
|
2342 |
# @ nggallery
|
2343 |
-
#: ../admin/overview.php:
|
2344 |
msgid "Server"
|
2345 |
msgstr "Server"
|
2346 |
|
2347 |
# @ nggallery
|
2348 |
-
#: ../admin/overview.php:
|
2349 |
-
msgid "Memory
|
2350 |
msgstr "Geheugen gebruik"
|
2351 |
|
2352 |
# @ nggallery
|
2353 |
-
#: ../admin/overview.php:
|
2354 |
msgid "MYSQL Version"
|
2355 |
msgstr "MYSQL Versie"
|
2356 |
|
2357 |
# @ nggallery
|
2358 |
-
#: ../admin/overview.php:
|
2359 |
msgid "SQL Mode"
|
2360 |
msgstr "SQL Mode"
|
2361 |
|
2362 |
# @ nggallery
|
2363 |
-
#: ../admin/overview.php:
|
2364 |
msgid "PHP Version"
|
2365 |
msgstr "PHP Versie"
|
2366 |
|
2367 |
# @ nggallery
|
2368 |
-
#: ../admin/overview.php:
|
2369 |
-
msgid "PHP Safe Mode"
|
2370 |
-
msgstr "PHP Safe Mode"
|
2371 |
-
|
2372 |
-
# @ nggallery
|
2373 |
-
#: ../admin/overview.php:654
|
2374 |
msgid "PHP Allow URL fopen"
|
2375 |
msgstr "PHP toegestaan URL fopen"
|
2376 |
|
2377 |
# @ nggallery
|
2378 |
-
#: ../admin/overview.php:
|
2379 |
msgid "PHP Memory Limit"
|
2380 |
msgstr "PHP Geheugen Limiet"
|
2381 |
|
2382 |
# @ nggallery
|
2383 |
-
#: ../admin/overview.php:
|
2384 |
msgid "PHP Max Upload Size"
|
2385 |
msgstr "PHP Max Upload formaat"
|
2386 |
|
2387 |
# @ nggallery
|
2388 |
-
#: ../admin/overview.php:
|
2389 |
msgid "PHP Max Post Size"
|
2390 |
msgstr "PHP Max Post formaat"
|
2391 |
|
2392 |
# @ nggallery
|
2393 |
-
#: ../admin/overview.php:
|
2394 |
msgid "PCRE Backtracking Limit"
|
2395 |
msgstr "PCRE Backtracking limiet"
|
2396 |
|
2397 |
# @ nggallery
|
2398 |
-
#: ../admin/overview.php:
|
2399 |
msgid "PHP Max Script Execute Time"
|
2400 |
msgstr "PHP Max Script Uitvoering tijd"
|
2401 |
|
2402 |
# @ nggallery
|
2403 |
-
#: ../admin/overview.php:
|
2404 |
-
msgid "PHP
|
2405 |
msgstr "PHP Exif ondersteuning"
|
2406 |
|
2407 |
# @ nggallery
|
2408 |
-
#: ../admin/overview.php:
|
2409 |
-
msgid "PHP IPTC
|
2410 |
msgstr "PHP IPTC ondersteuning"
|
2411 |
|
2412 |
# @ nggallery
|
2413 |
-
#: ../admin/overview.php:
|
2414 |
-
msgid "PHP XML
|
2415 |
msgstr "PHP XML ondersteuning"
|
2416 |
|
2417 |
-
# @
|
2418 |
-
#: ../admin/overview.php:
|
2419 |
-
msgid ""
|
2420 |
-
|
2421 |
-
|
2422 |
-
|
2423 |
-
|
2424 |
-
|
2425 |
-
"
|
2426 |
-
"PHP 5.2. Je gebruikt de oude PHP 4 versie, upgrade nu! Het wordt niet langer "
|
2427 |
-
"ondersteund door de PHP groep. Verschillende hosting providers bieden beide "
|
2428 |
-
"PHP 4 en PHP 5, tegelijk. Vraag je provider of ze dit kunnen doen."
|
2429 |
|
2430 |
-
#: ../admin/overview.php:
|
2431 |
msgid ""
|
2432 |
-
"third parties plugins that are compatible with NGG
|
2433 |
-
"compatible with NextCellent Gallery!"
|
2434 |
msgstr ""
|
2435 |
"niet alle plug-ins van derden die compatibel zijn met NGG zullen 100% werken "
|
2436 |
"met NextCellent Gallery!"
|
2437 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2438 |
# @ default
|
2439 |
-
#: ../admin/overview.php:
|
2440 |
-
msgid "Install"
|
2441 |
msgstr "Installeer"
|
2442 |
|
2443 |
-
|
|
|
|
|
2444 |
#, php-format
|
2445 |
-
msgid ""
|
2446 |
-
"
|
2447 |
-
|
2448 |
-
|
2449 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2450 |
"onderhouden door <a href=\"%s\" target=\"_blank\">WPGetReady.com</a>"
|
2451 |
|
2452 |
-
#: ../admin/overview.php:
|
2453 |
msgid "You can contribute by giving this plugin a good rating! Thanks a lot!"
|
2454 |
msgstr "Je kan helpen door deze plug-in een goede rating te geven! Bedankt!"
|
2455 |
|
2456 |
-
#: ../admin/overview.php:
|
2457 |
msgid "Visit the plugin homepage"
|
2458 |
msgstr "Plug-instartpagina bezoeken"
|
2459 |
|
2460 |
# @ nggallery
|
2461 |
-
#: ../admin/
|
2462 |
-
msgid "
|
2463 |
-
msgstr "
|
2464 |
|
2465 |
-
|
2466 |
-
|
2467 |
-
|
2468 |
-
|
|
|
2469 |
|
2470 |
-
|
2471 |
-
|
2472 |
-
|
2473 |
-
msgstr "Breedte x Hoogte (in pixels)"
|
2474 |
|
2475 |
-
|
2476 |
-
|
2477 |
-
|
2478 |
-
msgstr "Grootte van de afbeelding"
|
2479 |
|
2480 |
# @ nggallery
|
2481 |
-
#: ../admin/
|
2482 |
-
msgid "
|
2483 |
-
msgstr "
|
2484 |
|
2485 |
-
|
2486 |
-
|
2487 |
-
|
2488 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2489 |
|
2490 |
# @ nggallery
|
2491 |
-
#: ../admin/roles.php:
|
2492 |
msgid "Roles / capabilities"
|
2493 |
msgstr "Instellen Rollen/Rechten voor gebruik NextGEN"
|
2494 |
|
2495 |
# @ nggallery
|
2496 |
-
#: ../admin/roles.php:
|
2497 |
msgid ""
|
2498 |
"Select the lowest role which should be able to access the following "
|
2499 |
"capabilities. NextCellent Gallery supports the standard roles from WordPress."
|
@@ -2502,1342 +2176,1503 @@ msgstr ""
|
|
2502 |
"voeren. NextCellent Gallery gebruikt de standaard WordPress-rollen."
|
2503 |
|
2504 |
# @ nggallery
|
2505 |
-
#: ../admin/roles.php:
|
2506 |
msgid "For a more flexible user management you can use the"
|
2507 |
msgstr "Als je een flexibeler gebruikersmanagement wilt, kijk dan eens bij "
|
2508 |
|
2509 |
# @ nggallery
|
2510 |
-
#: ../admin/roles.php:
|
2511 |
msgid "NextCellent Gallery overview"
|
2512 |
msgstr "NextCellent Gallery overzicht"
|
2513 |
|
2514 |
# @ nggallery
|
2515 |
-
#: ../admin/roles.php:
|
2516 |
msgid "Use TinyMCE Button / Add Media"
|
2517 |
msgstr "Gebruik TinyMCE-knop / Media Toevoegen"
|
2518 |
|
2519 |
# @ nggallery
|
2520 |
-
#: ../admin/roles.php:
|
2521 |
msgid "Add gallery / Upload images"
|
2522 |
msgstr "Galerij toevoegen / afbeeldingen uploaden"
|
2523 |
|
2524 |
# @ nggallery
|
2525 |
-
#: ../admin/roles.php:
|
2526 |
msgid "Manage gallery"
|
2527 |
msgstr "Galerij Beheren"
|
2528 |
|
2529 |
# @ nggallery
|
2530 |
-
#: ../admin/roles.php:
|
2531 |
msgid "Manage others gallery"
|
2532 |
msgstr "Beheer galerij van anderen"
|
2533 |
|
2534 |
# @ nggallery
|
2535 |
-
#: ../admin/roles.php:
|
2536 |
msgid "Manage tags"
|
2537 |
msgstr "Beheer tags"
|
2538 |
|
2539 |
# @ nggallery
|
2540 |
-
#: ../admin/roles.php:
|
2541 |
msgid "Change style"
|
2542 |
msgstr "Stijl bewerken"
|
2543 |
|
2544 |
# @ nggallery
|
2545 |
-
#: ../admin/roles.php:
|
2546 |
msgid "Change options"
|
2547 |
msgstr "Bijwerken opties"
|
2548 |
|
2549 |
# @ nggallery
|
2550 |
-
#: ../admin/roles.php:
|
2551 |
msgid "Update capabilities"
|
2552 |
msgstr "Bijwerken"
|
2553 |
|
2554 |
# @ nggallery
|
2555 |
-
#: ../admin/
|
2556 |
-
msgid "
|
2557 |
-
msgstr "
|
2558 |
|
2559 |
# @ nggallery
|
2560 |
-
#: ../admin/
|
2561 |
-
msgid "
|
2562 |
-
msgstr "
|
2563 |
|
2564 |
# @ nggallery
|
2565 |
-
#: ../admin/
|
2566 |
-
msgid "
|
2567 |
-
msgstr ""
|
2568 |
-
"Selecteer het gebied voor de thumbnail van de afbeelding aan de linkerkant"
|
2569 |
|
2570 |
# @ nggallery
|
2571 |
-
#: ../admin/
|
2572 |
-
msgid "
|
2573 |
-
msgstr "
|
2574 |
|
2575 |
# @ nggallery
|
2576 |
-
#: ../admin/
|
2577 |
-
msgid "
|
2578 |
-
msgstr "
|
2579 |
|
2580 |
# @ nggallery
|
2581 |
-
#: ../admin/
|
2582 |
-
msgid "
|
2583 |
-
msgstr "
|
2584 |
|
2585 |
-
|
2586 |
-
|
2587 |
-
|
2588 |
-
|
|
|
|
|
|
|
|
|
|
|
2589 |
|
2590 |
# @ nggallery
|
2591 |
-
#: ../admin/
|
2592 |
-
|
2593 |
-
|
2594 |
-
msgstr "Opnieuw opgebouwde afbeelding structuur: %s / %s afbeeldingen"
|
2595 |
|
2596 |
# @ nggallery
|
2597 |
-
#: ../admin/
|
2598 |
-
|
2599 |
-
|
2600 |
-
|
|
|
|
|
|
|
|
|
|
|
2601 |
|
2602 |
# @ nggallery
|
2603 |
-
#: ../admin/
|
2604 |
-
|
2605 |
-
|
2606 |
-
msgstr "Opnieuw opgebouwde album structuur: %s / %s albums"
|
2607 |
|
2608 |
-
|
2609 |
-
|
2610 |
-
|
2611 |
-
msgstr "Klaar."
|
2612 |
|
2613 |
# @ nggallery
|
2614 |
-
#: ../admin/
|
2615 |
-
msgid "
|
2616 |
-
msgstr "
|
2617 |
|
2618 |
# @ nggallery
|
2619 |
-
#: ../admin/
|
2620 |
-
msgid "
|
2621 |
-
msgstr "
|
2622 |
|
2623 |
-
|
2624 |
-
|
2625 |
-
|
2626 |
-
msgstr "Instellingen"
|
2627 |
|
2628 |
-
|
2629 |
-
|
2630 |
-
|
2631 |
-
|
|
|
|
|
|
|
2632 |
|
2633 |
# @ nggallery
|
2634 |
-
#: ../admin/
|
2635 |
-
msgid "
|
2636 |
-
msgstr "
|
2637 |
|
2638 |
# @ nggallery
|
2639 |
-
#: ../admin/
|
2640 |
-
msgid "
|
2641 |
-
msgstr "
|
|
|
|
|
2642 |
|
2643 |
# @ nggallery
|
2644 |
-
#: ../admin/
|
2645 |
-
msgid "
|
2646 |
-
msgstr "
|
2647 |
|
2648 |
-
|
2649 |
-
|
2650 |
-
|
2651 |
-
msgstr "Selecteer grafische bibliotheek"
|
2652 |
|
2653 |
-
# @
|
2654 |
-
#: ../admin/
|
2655 |
-
msgid "
|
2656 |
-
msgstr "
|
|
|
2657 |
|
2658 |
-
# @
|
2659 |
-
#: ../admin/
|
2660 |
-
msgid "
|
2661 |
-
msgstr "
|
2662 |
|
2663 |
# @ nggallery
|
2664 |
-
#: ../admin/
|
2665 |
-
msgid "
|
2666 |
-
msgstr "
|
2667 |
|
2668 |
-
# @
|
2669 |
-
#: ../admin/
|
2670 |
-
msgid "
|
2671 |
-
msgstr "
|
2672 |
|
2673 |
# @ nggallery
|
2674 |
-
#: ../admin/
|
2675 |
-
msgid "
|
2676 |
-
msgstr ""
|
2677 |
-
"Een RSS-feed wordt toegevoegd aan je header. Handig voor CoolIris/PicLens"
|
2678 |
|
2679 |
-
# @
|
2680 |
-
#: ../admin/
|
2681 |
-
msgid "
|
2682 |
-
msgstr "
|
2683 |
|
2684 |
-
#: ../admin/
|
2685 |
-
msgid "
|
2686 |
-
msgstr "
|
|
|
|
|
|
|
|
|
2687 |
|
2688 |
# @ nggallery
|
2689 |
-
#: ../admin/
|
2690 |
-
msgid ""
|
2691 |
-
"
|
2692 |
-
"wp_footer is called in your theme."
|
2693 |
-
msgstr ""
|
2694 |
-
"Als je deze optie activeert, wordt wat javascript toegevoegd aan je footer. "
|
2695 |
-
"Verzeker je ervan dat wp_footer wordt aangeroepen in je thema"
|
2696 |
|
2697 |
# @ nggallery
|
2698 |
-
#: ../admin/
|
2699 |
-
msgid "
|
2700 |
-
msgstr "
|
2701 |
|
2702 |
# @ nggallery
|
2703 |
-
#: ../admin/
|
2704 |
-
msgid "
|
2705 |
-
msgstr "
|
2706 |
|
2707 |
-
|
2708 |
-
|
2709 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2710 |
|
2711 |
# @ nggallery
|
2712 |
-
#: ../admin/
|
|
|
|
|
|
|
|
|
2713 |
msgid ""
|
2714 |
-
"
|
|
|
2715 |
msgstr ""
|
2716 |
-
"
|
2717 |
-
"
|
2718 |
|
2719 |
# @ nggallery
|
2720 |
-
#: ../admin/
|
2721 |
-
msgid "
|
2722 |
-
msgstr "
|
2723 |
|
2724 |
# @ nggallery
|
2725 |
-
|
2726 |
-
|
2727 |
-
|
|
|
|
|
|
|
2728 |
|
2729 |
# @ nggallery
|
2730 |
-
#: ../admin/
|
2731 |
-
msgid "
|
2732 |
-
msgstr "
|
2733 |
|
2734 |
# @ nggallery
|
2735 |
-
#: ../admin/
|
2736 |
-
msgid "
|
2737 |
-
msgstr "
|
2738 |
|
2739 |
# @ nggallery
|
2740 |
-
#: ../admin/
|
2741 |
-
msgid "
|
2742 |
-
msgstr "
|
2743 |
|
2744 |
# @ nggallery
|
2745 |
-
#: ../admin/
|
2746 |
-
msgid "
|
2747 |
-
msgstr "
|
2748 |
|
2749 |
# @ nggallery
|
2750 |
-
#: ../admin/
|
2751 |
-
msgid "This
|
2752 |
-
msgstr "
|
|
|
2753 |
|
2754 |
# @ nggallery
|
2755 |
-
#: ../admin/
|
2756 |
-
msgid "
|
2757 |
-
msgstr "
|
2758 |
|
2759 |
# @ nggallery
|
2760 |
-
#: ../admin/
|
2761 |
-
msgid "
|
2762 |
-
msgstr "
|
2763 |
|
2764 |
# @ nggallery
|
2765 |
-
#: ../admin/
|
2766 |
-
msgid "
|
2767 |
-
msgstr "
|
2768 |
|
2769 |
# @ nggallery
|
2770 |
-
#: ../admin/
|
2771 |
-
msgid "
|
2772 |
-
msgstr "
|
2773 |
|
2774 |
# @ nggallery
|
2775 |
-
#: ../admin/
|
2776 |
-
msgid "
|
2777 |
-
msgstr "
|
2778 |
|
2779 |
# @ nggallery
|
2780 |
-
#: ../admin/
|
2781 |
-
msgid "
|
2782 |
-
msgstr "
|
2783 |
|
2784 |
# @ nggallery
|
2785 |
-
#: ../admin/
|
2786 |
-
msgid "
|
2787 |
-
msgstr "
|
2788 |
|
2789 |
# @ nggallery
|
2790 |
-
#: ../admin/
|
2791 |
-
|
2792 |
-
|
|
|
|
|
2793 |
|
2794 |
# @ nggallery
|
2795 |
-
#: ../admin/
|
2796 |
-
msgid "
|
2797 |
-
msgstr "
|
2798 |
-
|
2799 |
-
# @ nggallery
|
2800 |
-
#: ../admin/settings.php:414
|
2801 |
-
msgid "Automatically resize images on upload."
|
2802 |
-
msgstr "Afbeeldingsgrootte automatisch aanpassen tijdens uploaden"
|
2803 |
|
2804 |
# @ nggallery
|
2805 |
-
#: ../admin/
|
2806 |
-
msgid "
|
2807 |
-
msgstr "
|
2808 |
|
2809 |
# @ nggallery
|
2810 |
-
#: ../admin/
|
2811 |
msgid ""
|
2812 |
-
"
|
2813 |
-
"
|
|
|
2814 |
msgstr ""
|
2815 |
-
"
|
2816 |
-
"
|
2817 |
-
|
2818 |
-
# @ nggallery
|
2819 |
-
#: ../admin/settings.php:422
|
2820 |
-
msgid "Thumbnail size"
|
2821 |
-
msgstr "Miniauurgrootte"
|
2822 |
|
2823 |
# @ nggallery
|
2824 |
-
#: ../admin/
|
2825 |
-
|
2826 |
-
|
|
|
|
|
|
|
2827 |
|
2828 |
# @ nggallery
|
2829 |
-
#: ../admin/
|
2830 |
-
msgid "
|
2831 |
-
msgstr "
|
2832 |
|
2833 |
# @ nggallery
|
2834 |
-
#: ../admin/
|
2835 |
-
msgid "
|
2836 |
-
msgstr "
|
2837 |
|
2838 |
# @ nggallery
|
2839 |
-
#: ../admin/
|
2840 |
-
msgid "
|
2841 |
-
msgstr "
|
2842 |
-
|
2843 |
-
# @ default
|
2844 |
-
#: ../admin/settings.php:463
|
2845 |
-
msgid "Inline gallery"
|
2846 |
-
msgstr "Inline galerij"
|
2847 |
-
|
2848 |
-
#: ../admin/settings.php:465
|
2849 |
-
msgid "Galleries will not be shown on a subpage, but on the same page."
|
2850 |
-
msgstr "Galerijen zullen op dezelfde pagina getoond worden."
|
2851 |
|
2852 |
# @ nggallery
|
2853 |
-
#: ../admin/
|
2854 |
-
msgid "
|
2855 |
-
msgstr "
|
2856 |
|
2857 |
# @ nggallery
|
2858 |
-
#: ../admin/
|
2859 |
-
msgid "
|
|
|
|
|
2860 |
msgstr ""
|
2861 |
-
"
|
2862 |
-
"
|
2863 |
-
|
2864 |
-
#: ../admin/settings.php:476
|
2865 |
-
msgid "Columns"
|
2866 |
-
msgstr "Kolommen"
|
2867 |
|
2868 |
# @ nggallery
|
2869 |
-
#: ../admin/
|
2870 |
-
msgid ""
|
2871 |
-
"0 will display as much columns as possible. This is normally only required "
|
2872 |
-
"for captions below the images."
|
2873 |
msgstr ""
|
2874 |
-
"
|
2875 |
-
"
|
2876 |
|
2877 |
# @ nggallery
|
2878 |
-
#: ../admin/
|
2879 |
-
msgid "
|
2880 |
-
msgstr "
|
2881 |
|
2882 |
-
|
2883 |
-
|
2884 |
-
|
|
|
2885 |
|
2886 |
-
|
|
|
2887 |
msgid ""
|
2888 |
-
"
|
2889 |
-
"
|
2890 |
msgstr ""
|
2891 |
-
"
|
2892 |
-
"
|
2893 |
-
|
2894 |
-
# @ nggallery
|
2895 |
-
#: ../admin/settings.php:491
|
2896 |
-
msgid "Show first"
|
2897 |
-
msgstr "Toon eerst"
|
2898 |
|
2899 |
# @ nggallery
|
2900 |
-
#: ../admin/
|
2901 |
-
msgid "
|
2902 |
-
msgstr "
|
2903 |
|
2904 |
# @ nggallery
|
2905 |
-
#: ../admin/
|
2906 |
-
msgid "
|
2907 |
-
msgstr "
|
2908 |
|
|
|
2909 |
# @ nggallery
|
2910 |
-
#: ../admin/
|
2911 |
-
|
2912 |
-
|
|
|
2913 |
|
2914 |
# @ nggallery
|
2915 |
-
#: ../admin/
|
2916 |
-
msgid "
|
2917 |
-
msgstr "
|
2918 |
-
|
2919 |
-
#: ../admin/settings.php:506
|
2920 |
-
msgid ""
|
2921 |
-
"Loads all images for the modal window, when pagination is used (like "
|
2922 |
-
"Thickbox, Lightbox etc.)."
|
2923 |
-
msgstr ""
|
2924 |
-
"Laadt alle afbeeldingen voor het modaal venster als pagina's worden gebruikt "
|
2925 |
-
"(zoals Thickbox, Lightbox, enz.)."
|
2926 |
-
|
2927 |
-
#: ../admin/settings.php:507
|
2928 |
-
msgid "Note: this increases the page load (possibly a lot)"
|
2929 |
-
msgstr ""
|
2930 |
-
"Opmerking: dit verhoogt de laadtijd van de pagina (met misschien wel veel)"
|
2931 |
|
2932 |
# @ nggallery
|
2933 |
-
#: ../admin/
|
2934 |
-
|
2935 |
-
|
2936 |
-
|
2937 |
-
|
2938 |
-
|
2939 |
-
msgstr ""
|
2940 |
-
"Gebruik AJAX-pagina's om afbeeldingen te bekijken zonder de pagina te "
|
2941 |
-
"herladen."
|
2942 |
|
2943 |
# @ nggallery
|
2944 |
-
#: ../admin/
|
2945 |
-
msgid "
|
2946 |
-
msgstr "
|
2947 |
|
2948 |
# @ nggallery
|
2949 |
-
#: ../admin/
|
2950 |
-
msgid "
|
2951 |
-
msgstr "
|
2952 |
|
2953 |
# @ nggallery
|
2954 |
-
#: ../admin/
|
2955 |
-
msgid "
|
2956 |
-
msgstr "
|
2957 |
|
2958 |
# @ nggallery
|
2959 |
-
#: ../admin/
|
2960 |
-
|
2961 |
-
|
|
|
2962 |
|
2963 |
# @ nggallery
|
2964 |
-
#: ../admin/
|
2965 |
-
msgid "
|
2966 |
-
msgstr "
|
2967 |
|
2968 |
# @ nggallery
|
2969 |
-
#: ../admin/
|
2970 |
-
msgid "
|
2971 |
-
msgstr "
|
2972 |
|
2973 |
# @ nggallery
|
2974 |
-
#: ../admin/
|
2975 |
-
msgid "
|
2976 |
-
msgstr "
|
2977 |
|
2978 |
# @ nggallery
|
2979 |
-
#: ../admin/
|
2980 |
-
msgid "
|
2981 |
-
msgstr "
|
2982 |
|
2983 |
# @ nggallery
|
2984 |
-
#: ../admin/
|
|
|
2985 |
msgid ""
|
2986 |
-
"
|
2987 |
-
"
|
2988 |
-
"Thickbox effect will automatic added to your theme."
|
2989 |
msgstr ""
|
2990 |
-
"
|
2991 |
-
"
|
2992 |
-
"mee dat alleen het sluiter- en thickbox-effect automatisch toegevoegd worden "
|
2993 |
-
"aan je thema."
|
2994 |
|
2995 |
# @ nggallery
|
2996 |
-
#: ../admin/
|
2997 |
-
|
2998 |
-
|
|
|
2999 |
|
3000 |
# @ nggallery
|
3001 |
-
#: ../admin/
|
3002 |
-
msgid ""
|
3003 |
-
"
|
3004 |
-
"Change the code line only , when you use a different thumbnail effect or you "
|
3005 |
-
"know what you do."
|
3006 |
-
msgstr ""
|
3007 |
-
"<br>Er kan navigatie toegevoegd worden aan de afbeeldingen (hangt van het "
|
3008 |
-
"effect af). Wijzig de code uitsluitend als je voor een afwijkend thumbnail "
|
3009 |
-
"effect gaat of als je weet waar je mee bezig bent!"
|
3010 |
|
3011 |
# @ nggallery
|
3012 |
-
#: ../admin/
|
3013 |
-
msgid "
|
3014 |
-
msgstr "
|
3015 |
|
3016 |
-
|
3017 |
-
|
3018 |
-
|
3019 |
-
|
|
|
|
|
|
|
3020 |
|
3021 |
# @ nggallery
|
3022 |
-
#: ../admin/
|
3023 |
-
msgid "
|
3024 |
-
msgstr "
|
3025 |
|
3026 |
# @ nggallery
|
3027 |
-
#: ../admin/
|
3028 |
-
msgid "
|
3029 |
-
msgstr "
|
3030 |
|
3031 |
# @ nggallery
|
3032 |
-
#: ../admin/
|
3033 |
-
|
3034 |
-
|
|
|
|
|
|
|
|
|
|
|
3035 |
|
3036 |
# @ nggallery
|
3037 |
-
#: ../admin/
|
3038 |
-
msgid "
|
3039 |
-
msgstr "
|
3040 |
|
3041 |
# @ nggallery
|
3042 |
-
#: ../admin/
|
3043 |
-
msgid "
|
3044 |
-
msgstr "
|
3045 |
|
3046 |
# @ nggallery
|
3047 |
-
#: ../admin/
|
3048 |
-
msgid ""
|
3049 |
-
"
|
3050 |
-
"Galleries . This action cannot be undone."
|
3051 |
-
msgstr ""
|
3052 |
-
"Opmerking: je kan het watermerk enkel activeren bij -> Galerij beheren. Deze "
|
3053 |
-
"actie kan niet ongedaan gemaakt worden."
|
3054 |
|
3055 |
# @ nggallery
|
3056 |
-
#: ../admin/
|
3057 |
-
|
3058 |
-
|
|
|
|
|
3059 |
|
3060 |
# @ nggallery
|
3061 |
-
#: ../admin/
|
3062 |
-
msgid "
|
3063 |
-
msgstr "
|
3064 |
|
3065 |
# @ nggallery
|
3066 |
-
#: ../admin/
|
3067 |
-
|
3068 |
-
|
|
|
3069 |
|
3070 |
# @ nggallery
|
3071 |
-
#: ../admin/
|
3072 |
-
msgid "
|
3073 |
-
msgstr "
|
3074 |
|
3075 |
# @ nggallery
|
3076 |
-
#: ../admin/
|
3077 |
-
msgid "
|
3078 |
-
msgstr "
|
3079 |
|
3080 |
# @ nggallery
|
3081 |
-
#: ../admin/
|
3082 |
-
msgid "
|
3083 |
-
msgstr ""
|
3084 |
-
"De toegang van de URL bestanden zijn uitgeschakeld bij je server "
|
3085 |
-
"(allow_url_fopen)"
|
3086 |
|
3087 |
# @ nggallery
|
3088 |
-
#: ../admin/
|
3089 |
-
msgid "
|
3090 |
-
msgstr "
|
3091 |
|
3092 |
# @ nggallery
|
3093 |
-
#: ../admin/
|
3094 |
-
msgid "
|
3095 |
-
msgstr "
|
3096 |
|
3097 |
# @ nggallery
|
3098 |
-
#: ../admin/
|
3099 |
-
msgid "
|
3100 |
-
msgstr ""
|
3101 |
-
"Deze functie zal niet werken, omdat je een Free Type library nodig hebt"
|
3102 |
|
3103 |
# @ nggallery
|
3104 |
-
#: ../admin/
|
3105 |
-
msgid ""
|
3106 |
-
"
|
3107 |
-
msgstr ""
|
3108 |
-
"Je kan meer lettertypes uploaden in de map <strong>nggallery/fonts</strong>"
|
3109 |
|
3110 |
# @ nggallery
|
3111 |
-
#: ../admin/
|
3112 |
-
msgid "
|
3113 |
-
msgstr "
|
|
|
|
|
3114 |
|
3115 |
# @ nggallery
|
3116 |
-
#: ../admin/
|
3117 |
-
msgid "
|
3118 |
-
msgstr "
|
3119 |
|
3120 |
# @ nggallery
|
3121 |
-
#: ../admin/
|
3122 |
-
|
3123 |
-
|
|
|
|
|
|
|
|
|
|
|
3124 |
|
3125 |
# @ nggallery
|
3126 |
-
#: ../admin/
|
3127 |
-
msgid "
|
3128 |
-
msgstr "
|
3129 |
|
3130 |
# @ nggallery
|
3131 |
-
#: ../admin/
|
3132 |
-
msgid "
|
3133 |
-
msgstr "
|
3134 |
|
3135 |
# @ nggallery
|
3136 |
-
#: ../admin/
|
3137 |
-
msgid "
|
3138 |
-
msgstr "
|
3139 |
|
3140 |
# @ nggallery
|
3141 |
-
#: ../admin/
|
3142 |
-
msgid "
|
3143 |
-
msgstr "
|
3144 |
|
3145 |
# @ nggallery
|
3146 |
-
#: ../admin/
|
3147 |
-
|
3148 |
-
|
|
|
|
|
|
|
|
|
3149 |
|
3150 |
# @ nggallery
|
3151 |
-
#: ../admin/
|
3152 |
-
msgid "
|
3153 |
-
msgstr "
|
3154 |
|
3155 |
# @ nggallery
|
3156 |
-
#: ../admin/
|
3157 |
-
msgid "
|
3158 |
-
msgstr "
|
3159 |
|
3160 |
# @ nggallery
|
3161 |
-
#: ../admin/
|
3162 |
-
msgid "
|
3163 |
-
msgstr "
|
3164 |
|
3165 |
# @ nggallery
|
3166 |
-
#: ../admin/
|
3167 |
-
msgid "
|
3168 |
-
msgstr "
|
3169 |
|
3170 |
# @ nggallery
|
3171 |
-
#: ../admin/
|
3172 |
-
|
3173 |
-
|
|
|
|
|
|
|
|
|
|
|
3174 |
|
3175 |
# @ nggallery
|
3176 |
-
#: ../admin/
|
3177 |
-
|
3178 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
3179 |
|
3180 |
# @ nggallery
|
3181 |
-
#: ../admin/
|
3182 |
-
msgid "
|
3183 |
-
msgstr "
|
3184 |
|
3185 |
# @ nggallery
|
3186 |
-
#: ../admin/
|
3187 |
-
|
3188 |
-
|
|
|
3189 |
|
3190 |
# @ nggallery
|
3191 |
-
#: ../admin/
|
3192 |
-
|
3193 |
-
|
|
|
3194 |
|
3195 |
# @ nggallery
|
3196 |
-
#: ../admin/
|
3197 |
-
|
3198 |
-
|
|
|
3199 |
|
3200 |
# @ nggallery
|
3201 |
-
#: ../admin/
|
3202 |
-
|
3203 |
-
"
|
3204 |
-
msgstr "
|
3205 |
-
|
3206 |
-
#: ../admin/settings.php:727
|
3207 |
-
msgid ""
|
3208 |
-
"Press the button below to search for it automatically. For earlier versions "
|
3209 |
-
"of NextCellent Gallery, you'll need to\n"
|
3210 |
-
"\t\t\t\t\tupload the file manually to the"
|
3211 |
-
msgstr "Druk op de knop hieronder om te zoeken."
|
3212 |
|
3213 |
# @ nggallery
|
3214 |
-
#: ../admin/
|
|
|
3215 |
msgid ""
|
3216 |
-
"
|
|
|
3217 |
msgstr ""
|
3218 |
-
"
|
3219 |
-
"
|
3220 |
|
3221 |
-
|
3222 |
-
|
3223 |
-
|
|
|
|
|
3224 |
|
3225 |
# @ nggallery
|
3226 |
-
#: ../admin/
|
3227 |
-
|
3228 |
-
|
|
|
3229 |
|
3230 |
# @ nggallery
|
3231 |
-
#: ../admin/
|
3232 |
-
msgid "
|
3233 |
msgstr ""
|
3234 |
-
"
|
3235 |
-
"
|
3236 |
|
3237 |
# @ nggallery
|
3238 |
-
#: ../admin/
|
3239 |
-
msgid "
|
3240 |
-
|
|
|
|
|
|
|
|
|
3241 |
|
3242 |
# @ nggallery
|
3243 |
-
#: ../admin/
|
3244 |
-
msgid "
|
3245 |
-
msgstr "
|
3246 |
|
3247 |
# @ nggallery
|
3248 |
-
#: ../admin/
|
3249 |
-
msgid "
|
3250 |
-
msgstr "
|
3251 |
|
3252 |
# @ nggallery
|
3253 |
-
#: ../admin/
|
3254 |
-
msgid "
|
3255 |
-
msgstr "
|
3256 |
|
3257 |
# @ nggallery
|
3258 |
-
#: ../admin/
|
3259 |
-
msgid "
|
3260 |
-
msgstr "
|
3261 |
|
3262 |
# @ nggallery
|
3263 |
-
#: ../admin/
|
3264 |
-
msgid "
|
3265 |
-
msgstr "
|
3266 |
|
3267 |
# @ nggallery
|
3268 |
-
#: ../admin/
|
3269 |
-
msgid "
|
3270 |
-
msgstr "
|
3271 |
|
3272 |
# @ nggallery
|
3273 |
-
#: ../admin/
|
3274 |
-
msgid "
|
3275 |
-
msgstr "
|
|
|
3276 |
|
3277 |
# @ nggallery
|
3278 |
-
#: ../admin/
|
3279 |
-
msgid "
|
3280 |
-
msgstr "
|
3281 |
|
3282 |
# @ nggallery
|
3283 |
-
#: ../admin/
|
3284 |
-
msgid "
|
3285 |
-
msgstr "
|
3286 |
|
3287 |
# @ nggallery
|
3288 |
-
#: ../admin/
|
3289 |
-
msgid "
|
3290 |
-
msgstr "
|
3291 |
|
3292 |
# @ nggallery
|
3293 |
-
#: ../admin/
|
3294 |
-
msgid "
|
3295 |
-
msgstr "
|
3296 |
|
3297 |
# @ nggallery
|
3298 |
-
#: ../admin/
|
3299 |
-
msgid "
|
3300 |
-
msgstr "
|
3301 |
|
3302 |
# @ nggallery
|
3303 |
-
#: ../admin/
|
3304 |
-
msgid "
|
3305 |
-
msgstr "
|
3306 |
|
3307 |
# @ nggallery
|
3308 |
-
#: ../admin/
|
3309 |
-
|
3310 |
-
|
|
|
3311 |
|
3312 |
# @ nggallery
|
3313 |
-
#: ../admin/
|
3314 |
-
msgid "
|
3315 |
-
msgstr "
|
3316 |
|
3317 |
# @ nggallery
|
3318 |
-
#: ../admin/
|
3319 |
-
msgid "
|
3320 |
-
msgstr "
|
3321 |
|
3322 |
# @ nggallery
|
3323 |
-
#: ../admin/
|
3324 |
-
msgid "
|
3325 |
-
msgstr "
|
3326 |
|
3327 |
# @ nggallery
|
3328 |
-
#: ../admin/
|
3329 |
-
msgid "
|
3330 |
-
msgstr "
|
3331 |
|
3332 |
# @ nggallery
|
3333 |
-
#: ../admin/
|
3334 |
-
msgid "
|
3335 |
-
msgstr "
|
3336 |
|
3337 |
-
|
3338 |
-
|
3339 |
-
|
3340 |
-
msgstr "flash"
|
3341 |
|
3342 |
-
|
3343 |
-
|
3344 |
-
|
3345 |
-
msgstr "lijnen"
|
3346 |
|
3347 |
# @ nggallery
|
3348 |
-
#: ../admin/
|
3349 |
-
msgid "
|
3350 |
-
msgstr "
|
3351 |
|
3352 |
# @ nggallery
|
3353 |
-
#: ../admin/
|
3354 |
-
msgid "
|
3355 |
-
msgstr "
|
3356 |
|
3357 |
-
|
3358 |
-
|
3359 |
-
|
3360 |
-
msgstr "Achtergrondkleur"
|
3361 |
|
3362 |
# @ nggallery
|
3363 |
-
#: ../admin/
|
3364 |
-
msgid "
|
3365 |
-
msgstr "
|
3366 |
|
3367 |
-
|
3368 |
-
|
3369 |
-
|
3370 |
-
msgstr "Muis over / Actieve kleur"
|
3371 |
|
3372 |
-
|
3373 |
-
#: ../admin/
|
3374 |
-
msgid "
|
3375 |
-
msgstr "
|
3376 |
|
3377 |
-
|
3378 |
-
#: ../admin/
|
3379 |
-
|
3380 |
-
|
|
|
3381 |
|
3382 |
-
|
3383 |
-
#: ../admin/
|
3384 |
-
msgid "
|
3385 |
-
msgstr "
|
3386 |
|
3387 |
# @ nggallery
|
3388 |
-
#: ../admin/
|
3389 |
-
msgid ""
|
3390 |
-
|
3391 |
-
msgstr ""
|
3392 |
-
"Belangrijk: kan problemen veroorzaken met bepaalde browsers. Controleer je "
|
3393 |
-
"pagina."
|
3394 |
|
3395 |
-
|
3396 |
-
#: ../admin/
|
3397 |
-
msgid "
|
3398 |
-
msgstr "
|
3399 |
|
3400 |
-
|
3401 |
-
|
3402 |
-
|
3403 |
-
"Uninstall sucessful ! Now delete the plugin and enjoy your life ! Good luck !"
|
3404 |
-
msgstr ""
|
3405 |
-
"Deïnstalleren succesvol! Nu de plugin verwijderen en vrolijk verder "
|
3406 |
-
"leven! Veel plezier!"
|
3407 |
|
3408 |
# @ nggallery
|
3409 |
-
#: ../admin/
|
3410 |
-
msgid "
|
3411 |
-
msgstr "
|
3412 |
|
3413 |
# @ nggallery
|
3414 |
-
#: ../admin/
|
3415 |
-
msgid "
|
3416 |
-
msgstr "
|
3417 |
|
3418 |
# @ nggallery
|
3419 |
-
#: ../admin/
|
3420 |
-
msgid "
|
3421 |
-
msgstr "
|
3422 |
|
3423 |
-
|
3424 |
-
#: ../admin/
|
3425 |
-
|
3426 |
-
|
3427 |
-
|
3428 |
-
|
|
|
|
|
3429 |
|
3430 |
# @ nggallery
|
3431 |
-
#: ../admin/
|
3432 |
-
|
3433 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3434 |
|
3435 |
# @ nggallery
|
3436 |
-
#: ../admin/
|
3437 |
-
msgid "
|
3438 |
-
msgstr "
|
3439 |
|
3440 |
# @ nggallery
|
3441 |
-
#: ../admin/
|
3442 |
-
|
3443 |
-
|
3444 |
-
"
|
3445 |
-
"
|
3446 |
-
msgstr ""
|
3447 |
-
"Geen probleem, voor je deze plug-in deactiveert, klik op de knop "
|
3448 |
-
"verwijderen, omdat het deactiveren van NextCellent Gallery niet de data "
|
3449 |
-
"verwijdert die gemaakt is."
|
3450 |
|
3451 |
# @ nggallery
|
3452 |
-
#: ../admin/
|
3453 |
-
|
3454 |
-
|
|
|
|
|
3455 |
|
3456 |
# @ nggallery
|
3457 |
-
#: ../admin/
|
3458 |
-
|
3459 |
-
|
3460 |
-
"
|
3461 |
-
"
|
3462 |
-
msgstr ""
|
3463 |
-
" Eenmaal verwijderd, kan dit niet ongedaan gemaakt worden. Je zult een "
|
3464 |
-
"Database Backup plugin van WordPress moeten gebruiken om eerst een backup te "
|
3465 |
-
"maken van alle tabellen. NextCellent Gallery is opgeslagen in de tabellen "
|
3466 |
|
3467 |
# @ nggallery
|
3468 |
-
#: ../admin/
|
3469 |
-
msgid "
|
3470 |
-
msgstr "
|
3471 |
|
3472 |
# @ nggallery
|
3473 |
-
#: ../admin/
|
3474 |
-
msgid "
|
3475 |
-
msgstr "
|
3476 |
|
3477 |
# @ nggallery
|
3478 |
-
#: ../admin/
|
3479 |
-
|
3480 |
-
"
|
3481 |
-
"
|
3482 |
-
msgstr ""
|
3483 |
|
3484 |
# @ nggallery
|
3485 |
-
#: ../admin/
|
3486 |
-
|
3487 |
-
|
3488 |
-
msgstr "Waarde"
|
3489 |
|
3490 |
# @ nggallery
|
3491 |
-
#: ../admin/
|
3492 |
-
msgid "
|
3493 |
-
msgstr "
|
3494 |
|
3495 |
# @ nggallery
|
3496 |
-
#: ../admin/
|
3497 |
-
msgid "
|
3498 |
-
msgstr "
|
3499 |
|
3500 |
# @ nggallery
|
3501 |
-
#: ../admin/
|
3502 |
-
msgid "
|
3503 |
-
msgstr "
|
3504 |
|
3505 |
# @ nggallery
|
3506 |
-
|
3507 |
-
|
3508 |
-
|
|
|
|
|
3509 |
|
3510 |
# @ nggallery
|
3511 |
-
#: ../admin/
|
3512 |
-
|
3513 |
-
|
|
|
3514 |
|
3515 |
# @ nggallery
|
3516 |
-
#: ../admin/
|
3517 |
-
msgid "
|
3518 |
-
msgstr "
|
3519 |
|
3520 |
-
|
3521 |
-
|
3522 |
-
|
|
|
3523 |
|
3524 |
# @ default
|
3525 |
-
#: ../admin/
|
3526 |
-
|
3527 |
-
|
3528 |
-
"
|
3529 |
|
3530 |
-
# @
|
3531 |
-
#: ../admin/
|
3532 |
-
msgid "
|
3533 |
-
msgstr "
|
3534 |
|
3535 |
# @ nggallery
|
3536 |
-
#: ../admin/
|
3537 |
-
msgid "
|
3538 |
-
msgstr "
|
3539 |
|
3540 |
-
# @
|
3541 |
-
#: ../admin/
|
3542 |
-
msgid "
|
3543 |
-
msgstr "
|
3544 |
|
3545 |
# @ nggallery
|
3546 |
-
#: ../admin/
|
3547 |
-
msgid "
|
3548 |
-
msgstr "
|
3549 |
|
3550 |
-
# @
|
3551 |
-
#: ../admin/
|
3552 |
-
msgid "
|
3553 |
-
msgstr "
|
3554 |
|
3555 |
-
|
3556 |
-
|
3557 |
-
|
|
|
|
|
3558 |
|
3559 |
-
|
3560 |
-
|
3561 |
-
|
|
|
3562 |
|
3563 |
# @ nggallery
|
3564 |
-
#: ../admin/
|
3565 |
-
msgid "
|
3566 |
-
msgstr "
|
3567 |
|
3568 |
# @ nggallery
|
3569 |
-
#: ../admin/
|
3570 |
-
msgid "
|
3571 |
-
msgstr "
|
3572 |
|
3573 |
# @ nggallery
|
3574 |
-
#: ../admin/
|
3575 |
-
msgid "
|
3576 |
-
msgstr "
|
3577 |
|
3578 |
# @ nggallery
|
3579 |
-
#: ../admin/
|
3580 |
-
|
3581 |
-
|
3582 |
-
msgstr "%s aan het bewerken"
|
3583 |
|
3584 |
-
|
3585 |
-
|
3586 |
-
msgid "
|
3587 |
-
msgstr "
|
3588 |
|
3589 |
# @ nggallery
|
3590 |
-
#: ../admin/
|
3591 |
-
msgid "
|
3592 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3593 |
|
3594 |
-
|
|
|
|
|
|
|
|
|
|
|
3595 |
msgid ""
|
3596 |
-
"To
|
3597 |
-
"
|
3598 |
msgstr ""
|
3599 |
-
"Om
|
3600 |
-
"
|
3601 |
|
3602 |
# @ nggallery
|
3603 |
-
#: ../admin/
|
3604 |
-
msgid "
|
3605 |
-
msgstr "
|
3606 |
|
3607 |
# @ nggallery
|
3608 |
-
#: ../admin/
|
3609 |
-
msgid "
|
3610 |
-
msgstr "
|
3611 |
|
3612 |
# @ nggallery
|
3613 |
-
#: ../admin/
|
3614 |
-
msgid "
|
3615 |
-
msgstr "
|
3616 |
|
3617 |
# @ nggallery
|
3618 |
-
#: ../admin/
|
3619 |
-
msgid "
|
3620 |
-
msgstr "
|
3621 |
|
3622 |
# @ nggallery
|
3623 |
-
#: ../admin/
|
3624 |
-
|
3625 |
-
|
|
|
3626 |
|
3627 |
# @ nggallery
|
3628 |
-
#: ../admin/
|
3629 |
-
msgid "
|
3630 |
-
msgstr ""
|
3631 |
-
"Dit bestand bestaat niet. Controleer de naam nogmaals en probeer het opnieuw."
|
3632 |
|
3633 |
# @ nggallery
|
3634 |
-
#: ../admin/
|
3635 |
-
msgid "
|
3636 |
-
msgstr "
|
3637 |
|
3638 |
# @ nggallery
|
3639 |
-
#: ../admin/
|
3640 |
-
msgid "
|
3641 |
-
msgstr "
|
3642 |
|
3643 |
# @ nggallery
|
3644 |
-
#: ../admin/
|
3645 |
-
msgid "
|
3646 |
-
msgstr "
|
3647 |
|
3648 |
# @ nggallery
|
3649 |
-
#: ../admin/
|
3650 |
-
msgid "
|
3651 |
-
msgstr "
|
3652 |
|
3653 |
# @ nggallery
|
3654 |
-
#: ../admin/
|
3655 |
-
|
3656 |
-
|
|
|
3657 |
|
3658 |
# @ nggallery
|
3659 |
-
#: ../admin/
|
3660 |
-
|
3661 |
-
|
|
|
3662 |
|
3663 |
# @ nggallery
|
3664 |
-
#: ../admin/
|
3665 |
-
msgid "
|
3666 |
-
msgstr "
|
3667 |
|
3668 |
# @ nggallery
|
3669 |
-
#: ../admin/
|
3670 |
-
msgid "
|
3671 |
-
msgstr "
|
3672 |
|
3673 |
# @ nggallery
|
3674 |
-
#: ../admin/
|
3675 |
-
msgid "
|
3676 |
-
msgstr "
|
3677 |
|
3678 |
# @ nggallery
|
3679 |
-
#: ../admin/
|
3680 |
-
msgid "
|
3681 |
-
msgstr "
|
3682 |
|
3683 |
# @ nggallery
|
3684 |
-
#: ../admin/
|
3685 |
-
msgid ""
|
3686 |
-
"
|
3687 |
-
"merge tags too. Click \"Rename\" and all posts which use this tag will be "
|
3688 |
-
"updated."
|
3689 |
-
msgstr ""
|
3690 |
-
"Geef de tag die je wilt hernoemen een nieuwe naam. Je kunt deze mogelijkheid "
|
3691 |
-
"ook gebruiken om tags samen te voegen. Klik \"Hernoemen\" en alle berichten "
|
3692 |
-
"die deze tag gebruiken zullen bijgewerkt worden."
|
3693 |
|
3694 |
# @ nggallery
|
3695 |
-
#: ../admin/
|
3696 |
-
msgid "
|
3697 |
-
msgstr ""
|
3698 |
-
"Je kunt meerdere tags specificeren om te hernoemen door ze met komma's "
|
3699 |
-
"te scheiden"
|
3700 |
|
3701 |
# @ nggallery
|
3702 |
-
#: ../admin/
|
3703 |
-
|
3704 |
-
|
|
|
3705 |
|
3706 |
# @ nggallery
|
3707 |
-
#: ../admin/
|
3708 |
-
msgid "
|
3709 |
-
msgstr "
|
3710 |
|
3711 |
# @ nggallery
|
3712 |
-
#: ../admin/
|
3713 |
-
msgid "
|
3714 |
-
msgstr "
|
3715 |
|
3716 |
# @ nggallery
|
3717 |
-
#: ../admin/
|
3718 |
-
msgid "
|
3719 |
-
msgstr "
|
3720 |
|
3721 |
# @ nggallery
|
3722 |
-
#: ../admin/
|
3723 |
-
msgid ""
|
3724 |
-
"
|
3725 |
-
"posts."
|
3726 |
-
msgstr ""
|
3727 |
-
"Geef de naam van de tag om te verwijderen. Deze tag zal verwijderd worden "
|
3728 |
-
"van alle berichten."
|
3729 |
|
3730 |
# @ nggallery
|
3731 |
-
#: ../admin/
|
3732 |
-
msgid "
|
3733 |
-
msgstr ""
|
3734 |
-
"Je kunt meerdere tags specificeren om te verwijderen door ze te scheiden "
|
3735 |
-
"door komma's"
|
3736 |
|
3737 |
# @ nggallery
|
3738 |
-
#: ../admin/
|
3739 |
-
msgid "
|
3740 |
-
msgstr "
|
3741 |
|
3742 |
# @ nggallery
|
3743 |
-
#: ../admin/
|
3744 |
-
|
3745 |
-
|
|
|
3746 |
|
3747 |
# @ nggallery
|
3748 |
-
#: ../admin/
|
|
|
|
|
3749 |
msgid ""
|
3750 |
-
"
|
3751 |
-
"
|
|
|
3752 |
msgstr ""
|
3753 |
-
"
|
3754 |
-
"
|
|
|
3755 |
|
3756 |
# @ nggallery
|
3757 |
-
#: ../admin/
|
3758 |
-
|
3759 |
-
|
|
|
|
|
3760 |
|
3761 |
# @ nggallery
|
3762 |
-
#: ../admin/
|
3763 |
-
msgid "
|
3764 |
-
msgstr "
|
3765 |
|
3766 |
-
#: ../admin/
|
3767 |
-
msgid "
|
3768 |
-
msgstr "
|
3769 |
|
3770 |
# @ nggallery
|
3771 |
-
#: ../admin/
|
3772 |
-
msgid "
|
3773 |
-
msgstr "
|
3774 |
|
3775 |
-
|
3776 |
-
|
3777 |
-
msgid "
|
3778 |
-
msgstr "
|
3779 |
|
3780 |
-
|
3781 |
-
|
3782 |
-
|
3783 |
-
|
|
|
|
|
|
|
3784 |
|
3785 |
-
#: ../admin/
|
3786 |
-
|
3787 |
-
|
3788 |
-
msgid "Basics"
|
3789 |
-
msgstr "Basis"
|
3790 |
|
3791 |
# @ nggallery
|
3792 |
-
#: ../admin/
|
3793 |
-
|
3794 |
-
|
3795 |
-
msgstr "Selecteer een galerij:"
|
3796 |
|
3797 |
# @ nggallery
|
3798 |
-
#: ../admin/
|
3799 |
-
|
3800 |
-
|
3801 |
-
msgstr "Selecteer of zoek een galerij"
|
3802 |
-
|
3803 |
-
#: ../admin/tinymce/window.php:143
|
3804 |
-
msgid "Display types"
|
3805 |
-
msgstr "Weergavemodi"
|
3806 |
|
3807 |
# @ nggallery
|
3808 |
-
#: ../admin/
|
3809 |
-
msgid "
|
3810 |
-
msgstr "
|
3811 |
|
3812 |
# @ nggallery
|
3813 |
-
#: ../admin/
|
3814 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3815 |
msgstr "Afbeeldingsbrowser"
|
3816 |
|
3817 |
-
#: ../admin/tinymce/window.php:
|
3818 |
-
#: ../admin/tinymce/window.php:
|
3819 |
msgid "Carousel"
|
3820 |
msgstr "Carousel"
|
3821 |
|
3822 |
# @ nggallery
|
3823 |
-
#: ../admin/tinymce/window.php:
|
3824 |
-
#: ../admin/tinymce/window.php:
|
3825 |
-
#: ../admin/tinymce/window.php:
|
3826 |
msgid "Caption"
|
3827 |
msgstr "Titel"
|
3828 |
|
3829 |
# @ nggallery
|
3830 |
-
#: ../admin/tinymce/window.php:
|
3831 |
msgid "Type options"
|
3832 |
msgstr "Type-opties"
|
3833 |
|
3834 |
-
|
3835 |
-
#: ../admin/tinymce/window.php:197 ../admin/tinymce/window.php:361
|
3836 |
-
#: ../admin/tinymce/window.php:423
|
3837 |
-
msgid "Number of images"
|
3838 |
-
msgstr "Aantal afbeeldingen"
|
3839 |
-
|
3840 |
-
#: ../admin/tinymce/window.php:200
|
3841 |
msgid ""
|
3842 |
"The number of images before pagination is applied. Leave empty for the "
|
3843 |
"default from the settings."
|
@@ -3846,49 +3681,49 @@ msgstr ""
|
|
3846 |
"standaardwaarde van de instellingen."
|
3847 |
|
3848 |
# @ nggallery
|
3849 |
-
#: ../admin/tinymce/window.php:
|
3850 |
msgid "Slideshow dimensions"
|
3851 |
msgstr "Dimensies diavoorstelling"
|
3852 |
|
3853 |
# @ nggallery
|
3854 |
-
#: ../admin/tinymce/window.php:
|
3855 |
msgid "Template name"
|
3856 |
msgstr "Templatenaam"
|
3857 |
|
3858 |
# @ nggallery
|
3859 |
-
#: ../admin/tinymce/window.php:
|
3860 |
msgid "Select or enter album"
|
3861 |
msgstr "Selecteer of geef album"
|
3862 |
|
3863 |
-
#: ../admin/tinymce/window.php:
|
3864 |
msgid "Leave this empty to display all galleries."
|
3865 |
msgstr "Laat dit leeg om alle galerijen te tonen."
|
3866 |
|
3867 |
# @ nggallery
|
3868 |
-
#: ../admin/tinymce/window.php:
|
3869 |
msgid "Album display types"
|
3870 |
msgstr "Weergavemodi"
|
3871 |
|
3872 |
-
#: ../admin/tinymce/window.php:
|
3873 |
msgid "Select how you want to display the albums"
|
3874 |
msgstr "Selecteer hoe je de albums wilt weergeven"
|
3875 |
|
3876 |
# @ nggallery
|
3877 |
-
#: ../admin/tinymce/window.php:
|
3878 |
msgid "Compact version"
|
3879 |
msgstr "Compacte versie"
|
3880 |
|
3881 |
# @ nggallery
|
3882 |
-
#: ../admin/tinymce/window.php:
|
3883 |
msgid "Extended version"
|
3884 |
msgstr "Uitgebreide versie"
|
3885 |
|
3886 |
# @ nggallery
|
3887 |
-
#: ../admin/tinymce/window.php:
|
3888 |
msgid "Gallery display types"
|
3889 |
msgstr "Weergavemodi"
|
3890 |
|
3891 |
-
#: ../admin/tinymce/window.php:
|
3892 |
msgid ""
|
3893 |
"Select a template for the galleries (displayed after you click on an album)"
|
3894 |
msgstr ""
|
@@ -3896,84 +3731,84 @@ msgstr ""
|
|
3896 |
"een album)"
|
3897 |
|
3898 |
# @ nggallery
|
3899 |
-
#: ../admin/tinymce/window.php:
|
3900 |
msgid "Select a picture"
|
3901 |
msgstr "Selecteer een afbeelding"
|
3902 |
|
3903 |
# @ nggallery
|
3904 |
-
#: ../admin/tinymce/window.php:
|
3905 |
msgid "Select or enter picture"
|
3906 |
msgstr "Selecteer of geef afbeedling"
|
3907 |
|
3908 |
# @ nggallery
|
3909 |
-
#: ../admin/tinymce/window.php:
|
3910 |
-
#: ../admin/tinymce/window.php:
|
3911 |
msgid "Options"
|
3912 |
msgstr "Opties"
|
3913 |
|
3914 |
-
#: ../admin/tinymce/window.php:
|
3915 |
msgid "Dimensions"
|
3916 |
msgstr "Dimensies"
|
3917 |
|
3918 |
# @ nggallery
|
3919 |
-
#: ../admin/tinymce/window.php:
|
3920 |
msgid "Effect"
|
3921 |
msgstr "Effect"
|
3922 |
|
3923 |
# @ nggallery
|
3924 |
-
#: ../admin/tinymce/window.php:
|
3925 |
msgid "No effect"
|
3926 |
msgstr "Geen effect"
|
3927 |
|
3928 |
# @ nggallery
|
3929 |
-
#: ../admin/tinymce/window.php:
|
3930 |
msgid "Web 2.0"
|
3931 |
msgstr "Web 2.0"
|
3932 |
|
3933 |
# @ nggallery
|
3934 |
-
#: ../admin/tinymce/window.php:
|
3935 |
msgid "No float"
|
3936 |
msgstr "Geen float"
|
3937 |
|
3938 |
-
#: ../admin/tinymce/window.php:
|
3939 |
msgid "Link"
|
3940 |
msgstr "Link"
|
3941 |
|
3942 |
-
#: ../admin/tinymce/window.php:
|
3943 |
msgid "Add an optional link to the image. Leave blank for no link."
|
3944 |
msgstr ""
|
3945 |
"Voeg een optionele link toe aan de afbeelding. Laat leeg voor geen link."
|
3946 |
|
3947 |
-
#: ../admin/tinymce/window.php:
|
3948 |
msgid "Add an optional caption to the image. Leave blank for no caption."
|
3949 |
msgstr ""
|
3950 |
"Voeg een optioneel bijschrift toe aan de afbeelding. Laat leeg voor geen "
|
3951 |
"bijschrift."
|
3952 |
|
3953 |
-
#: ../admin/tinymce/window.php:
|
3954 |
msgid "The number of images that should be displayed."
|
3955 |
msgstr "Het aantal afbeeldingen dat getoond moet worden."
|
3956 |
|
3957 |
# @ nggallery
|
3958 |
-
#: ../admin/tinymce/window.php:
|
3959 |
msgid "Sort the images"
|
3960 |
msgstr "Sorteer de afbeeldingen"
|
3961 |
|
3962 |
# @ nggallery
|
3963 |
-
#: ../admin/tinymce/window.php:
|
3964 |
msgid "Upload order"
|
3965 |
msgstr "Uploadvolgorde"
|
3966 |
|
3967 |
# @ nggallery
|
3968 |
-
#: ../admin/tinymce/window.php:
|
3969 |
msgid "Date taken"
|
3970 |
msgstr "Datum genomen"
|
3971 |
|
3972 |
-
#: ../admin/tinymce/window.php:
|
3973 |
msgid "User defined"
|
3974 |
msgstr "Aangepast"
|
3975 |
|
3976 |
-
#: ../admin/tinymce/window.php:
|
3977 |
msgid ""
|
3978 |
"In what order the images are shown. Upload order uses the ID's, date taken "
|
3979 |
"uses the EXIF data and user defined is the sort mode from the settings."
|
@@ -3982,52 +3817,43 @@ msgstr ""
|
|
3982 |
"ID's, datum gemaakt gebruikt de EXIF-data en door de gebruiker gedefinieerd "
|
3983 |
"is de volgorde uit de instellingen."
|
3984 |
|
3985 |
-
#: ../admin/tinymce/window.php:
|
3986 |
msgid "If a gallery is selected, only images from that gallery will be shown."
|
3987 |
msgstr ""
|
3988 |
"Als een galerij geselecteerd wordt, zullen er enkel afbeeldingen uit die "
|
3989 |
"galerij getoond worden."
|
3990 |
|
3991 |
# @ nggallery
|
3992 |
-
#: ../admin/tinymce/window.php:
|
3993 |
msgid "Select a template to display the images"
|
3994 |
msgstr "Selecteer een sjabloon om de afbeeldingen te tonen"
|
3995 |
|
3996 |
# @ nggallery
|
3997 |
-
#: ../admin/tinymce/window.php:
|
3998 |
msgid "Insert"
|
3999 |
msgstr "Toevoegen"
|
4000 |
|
4001 |
# @ nggallery
|
4002 |
-
#: ../admin/tinymce/window.php:
|
4003 |
msgid "You need to select a gallery."
|
4004 |
msgstr "Je moet een galerij selecteren."
|
4005 |
|
4006 |
-
#: ../admin/tinymce/window.php:
|
4007 |
msgid "You need to select a picture."
|
4008 |
msgstr "Je moet een afbeelding selecteren."
|
4009 |
|
4010 |
# @ nggallery
|
4011 |
-
#: ../admin/tinymce/window.php:
|
4012 |
msgid "You need to select a number of images."
|
4013 |
msgstr "Je moet een aantal afbeelding selecteren."
|
4014 |
|
4015 |
# @ nggallery
|
4016 |
-
#: ../admin/upgrade.php:
|
4017 |
-
|
4018 |
-
msgstr "Database bijwerken..."
|
4019 |
-
|
4020 |
-
# @ nggallery
|
4021 |
-
#: ../admin/upgrade.php:48
|
4022 |
-
msgid "Could not find NextCellent Gallery database tables, upgrade failed!"
|
4023 |
-
msgstr "Kon NextCellent Database niet vinden, upgrade is mislukt!"
|
4024 |
-
|
4025 |
-
# @ nggallery
|
4026 |
-
#: ../admin/upgrade.php:68 ../admin/upgrade.php:85
|
4027 |
msgid "Upgrade NextCellent Gallery"
|
4028 |
msgstr "NextCellent Gallery upgraden"
|
4029 |
|
4030 |
-
#: ../admin/upgrade.php:
|
4031 |
msgid ""
|
4032 |
"You're upgrading from an older version. To enable the newest features, we "
|
4033 |
"sometimes need to do a database upgrade."
|
@@ -4035,7 +3861,7 @@ msgstr ""
|
|
4035 |
"Je upgrade van een oudere versie. Om de nieuwste functies te kunnen "
|
4036 |
"gebruiken, moet je een database-upgrade uitvoeren."
|
4037 |
|
4038 |
-
#: ../admin/upgrade.php:
|
4039 |
msgid ""
|
4040 |
"Normally you should be able to downgrade without any problems, but if you "
|
4041 |
"really want to play safe, you should make a backup of your database."
|
@@ -4044,31 +3870,40 @@ msgstr ""
|
|
4044 |
"het echt veilig wil spelen, maak je best een back-up van je database."
|
4045 |
|
4046 |
# @ nggallery
|
4047 |
-
#: ../admin/upgrade.php:
|
4048 |
msgid "Start upgrade now"
|
4049 |
msgstr "Upgrade starten"
|
4050 |
|
4051 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4052 |
msgid "Upgrade complete."
|
4053 |
msgstr "Upgrade voltooid."
|
4054 |
|
4055 |
# @ nggallery
|
4056 |
-
#: ../admin/upgrade.php:
|
4057 |
msgid "Continue to NextCellent"
|
4058 |
msgstr "Verder naar NextCellent"
|
4059 |
|
4060 |
# @ nggallery
|
4061 |
-
#: ../admin/wpmu.php:
|
4062 |
msgid "Update successfully"
|
4063 |
msgstr "Met succes bijgewerkt"
|
4064 |
|
4065 |
# @ nggallery
|
4066 |
-
#: ../admin/wpmu.php:
|
4067 |
msgid "Network Options"
|
4068 |
msgstr "Netwerk instellingen"
|
4069 |
|
4070 |
# @ nggallery
|
4071 |
-
#: ../admin/wpmu.php:
|
4072 |
msgid ""
|
4073 |
"This is the default path for all blogs. With the placeholder %BLOG_ID% you "
|
4074 |
"can organize the folder structure better."
|
@@ -4077,71 +3912,76 @@ msgstr ""
|
|
4077 |
"je de map beter structureren."
|
4078 |
|
4079 |
# @ nggallery
|
4080 |
-
#: ../admin/wpmu.php:
|
4081 |
#, php-format
|
4082 |
-
msgid "The default setting should be %s"
|
4083 |
msgstr "De standaard instelling zou %s moeten zijn"
|
4084 |
|
4085 |
# @ nggallery
|
4086 |
-
#: ../admin/wpmu.php:
|
4087 |
msgid "Enable upload quota check"
|
4088 |
msgstr "Inschakelen upload quota controle"
|
4089 |
|
4090 |
# @ nggallery
|
4091 |
-
#: ../admin/wpmu.php:
|
4092 |
msgid "Should work if the gallery is bellow the blog.dir"
|
4093 |
msgstr "Zal werken als de gallery zich onder de blog.dir bevindt"
|
4094 |
|
4095 |
# @ nggallery
|
4096 |
-
#: ../admin/wpmu.php:
|
4097 |
msgid "Enable zip upload option"
|
4098 |
msgstr "Inschakelen zip upload optie"
|
4099 |
|
4100 |
# @ nggallery
|
4101 |
-
#: ../admin/wpmu.php:
|
4102 |
msgid "Allow users to upload zip folders."
|
4103 |
msgstr "Gebruikers toestaan zip mappen te uploaden"
|
4104 |
|
4105 |
# @ nggallery
|
4106 |
-
#: ../admin/wpmu.php:
|
4107 |
msgid "Enable import function"
|
4108 |
msgstr "Inschakelen importeer functie"
|
4109 |
|
4110 |
# @ nggallery
|
4111 |
-
#: ../admin/wpmu.php:
|
4112 |
msgid "Allow users to import images folders from the server."
|
4113 |
msgstr "Gebruikers toestaan afbeeldingsmappen te importeren vanaf de server."
|
4114 |
|
4115 |
# @ nggallery
|
4116 |
-
#: ../admin/wpmu.php:
|
4117 |
msgid "Enable style selection"
|
4118 |
msgstr "Inschakelen style selectie"
|
4119 |
|
4120 |
# @ nggallery
|
4121 |
-
#: ../admin/wpmu.php:
|
4122 |
msgid "Allow users to choose a style for the gallery."
|
4123 |
msgstr "Gebruikers toestaan een stijl te kiezen voor de galerij"
|
4124 |
|
4125 |
# @ nggallery
|
4126 |
-
#: ../admin/wpmu.php:
|
4127 |
msgid "Enable roles/capabilities"
|
4128 |
msgstr "Inschakelen Rollen/Rechten mogelijkheden"
|
4129 |
|
4130 |
# @ nggallery
|
4131 |
-
#: ../admin/wpmu.php:
|
4132 |
msgid "Allow users to change the roles for other blog authors."
|
4133 |
msgstr "Gebruikers toestaan de rollen voor andere site auteurs te wijzigen"
|
4134 |
|
4135 |
# @ nggallery
|
4136 |
-
#: ../admin/wpmu.php:
|
4137 |
msgid "Default style"
|
4138 |
msgstr "Standaard style"
|
4139 |
|
4140 |
# @ nggallery
|
4141 |
-
#: ../admin/wpmu.php:
|
4142 |
msgid "Choose the default style for the galleries."
|
4143 |
msgstr "Kies de standaard stijl voor de galerijen."
|
4144 |
|
|
|
|
|
|
|
|
|
|
|
4145 |
# @ nggallery
|
4146 |
#: ../lib/core.php:432
|
4147 |
#, php-format
|
@@ -4178,701 +4018,1238 @@ msgid "Fired"
|
|
4178 |
msgstr "Fired"
|
4179 |
|
4180 |
# @ nggallery
|
4181 |
-
#: ../lib/meta.php:141
|
4182 |
-
msgid "Not fired"
|
4183 |
-
msgstr "Niet fired"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4184 |
|
4185 |
# @ nggallery
|
4186 |
-
#: ../
|
4187 |
-
|
4188 |
-
|
|
|
4189 |
|
4190 |
# @ nggallery
|
4191 |
-
#: ../
|
4192 |
-
msgid "
|
4193 |
-
msgstr "
|
4194 |
|
4195 |
# @ nggallery
|
4196 |
-
#: ../
|
4197 |
-
msgid "
|
4198 |
-
msgstr "
|
4199 |
|
4200 |
# @ nggallery
|
4201 |
-
#: ../
|
4202 |
-
msgid "
|
4203 |
-
msgstr "
|
4204 |
|
4205 |
# @ nggallery
|
4206 |
-
#: ../
|
4207 |
-
msgid "
|
4208 |
-
msgstr "
|
4209 |
|
4210 |
# @ nggallery
|
4211 |
-
#: ../
|
4212 |
-
msgid "
|
4213 |
-
msgstr "
|
4214 |
|
4215 |
# @ nggallery
|
4216 |
-
#: ../
|
4217 |
-
msgid "
|
4218 |
-
msgstr "
|
4219 |
|
4220 |
# @ nggallery
|
4221 |
-
#: ../
|
4222 |
-
msgid "
|
4223 |
-
msgstr "
|
4224 |
|
4225 |
# @ nggallery
|
4226 |
-
#: ../
|
4227 |
-
msgid "
|
4228 |
-
msgstr "
|
4229 |
|
4230 |
# @ nggallery
|
4231 |
-
#: ../
|
4232 |
-
|
4233 |
-
|
|
|
4234 |
|
4235 |
# @ nggallery
|
4236 |
-
#: ../
|
4237 |
-
msgid "
|
4238 |
-
msgstr "
|
4239 |
|
4240 |
# @ nggallery
|
4241 |
-
#: ../
|
4242 |
-
msgid "
|
4243 |
-
msgstr "
|
4244 |
|
4245 |
# @ nggallery
|
4246 |
-
#: ../
|
4247 |
-
msgid "
|
4248 |
-
msgstr "
|
4249 |
|
4250 |
# @ nggallery
|
4251 |
-
#: ../
|
4252 |
-
msgid "
|
4253 |
-
msgstr "
|
4254 |
|
4255 |
# @ nggallery
|
4256 |
-
#: ../
|
4257 |
-
msgid "
|
4258 |
-
msgstr "
|
4259 |
|
4260 |
# @ nggallery
|
4261 |
-
#: ../
|
4262 |
-
msgid "
|
4263 |
-
msgstr "
|
4264 |
|
4265 |
# @ nggallery
|
4266 |
-
#: ../
|
4267 |
-
msgid "
|
4268 |
-
msgstr "
|
4269 |
|
4270 |
# @ nggallery
|
4271 |
-
#: ../
|
4272 |
-
msgid "
|
4273 |
-
msgstr "
|
4274 |
|
4275 |
# @ nggallery
|
4276 |
-
#: ../
|
4277 |
-
msgid "
|
4278 |
-
msgstr "
|
4279 |
|
4280 |
-
|
4281 |
-
|
4282 |
-
|
4283 |
-
|
4284 |
|
4285 |
# @ nggallery
|
4286 |
-
#: ../
|
4287 |
-
msgid "
|
4288 |
-
msgstr "
|
4289 |
|
4290 |
# @ nggallery
|
4291 |
-
#: ../
|
4292 |
-
|
4293 |
-
|
|
|
4294 |
|
4295 |
# @ nggallery
|
4296 |
-
#: ../
|
4297 |
-
msgid "
|
4298 |
-
msgstr "
|
4299 |
|
4300 |
# @ nggallery
|
4301 |
-
#: ../
|
4302 |
-
|
4303 |
-
|
|
|
4304 |
|
4305 |
# @ nggallery
|
4306 |
-
#: ../
|
4307 |
-
msgid "
|
4308 |
-
msgstr "
|
4309 |
|
4310 |
# @ nggallery
|
4311 |
-
|
4312 |
-
|
4313 |
-
msgstr "Programma gereedschap"
|
4314 |
|
4315 |
# @ nggallery
|
4316 |
-
|
4317 |
-
|
4318 |
-
msgstr "Formaat"
|
4319 |
|
4320 |
# @ nggallery
|
4321 |
-
|
4322 |
-
|
4323 |
-
msgstr "Afbeelding breedte"
|
4324 |
|
4325 |
# @ nggallery
|
4326 |
-
|
4327 |
-
|
4328 |
-
msgstr "Afbeelding hoogte"
|
4329 |
|
4330 |
# @ nggallery
|
4331 |
-
|
4332 |
-
|
4333 |
-
msgstr "Flash"
|
4334 |
|
4335 |
# @ nggallery
|
4336 |
-
|
4337 |
-
|
4338 |
-
"Sorry, you have used your space allocation. Please delete some files to "
|
4339 |
-
"upload more files."
|
4340 |
-
msgstr ""
|
4341 |
-
"Helaas, je hebt de maximale ruimte gebruikt. Verwijder enkele bestanden om "
|
4342 |
-
"andere bestanden te kunnen uploaden."
|
4343 |
|
4344 |
# @ nggallery
|
4345 |
-
|
4346 |
-
|
4347 |
-
msgstr "Album overzicht"
|
4348 |
|
4349 |
# @ nggallery
|
4350 |
-
|
4351 |
-
|
4352 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4353 |
|
4354 |
# @ nggallery
|
4355 |
-
|
4356 |
-
|
4357 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4358 |
|
4359 |
# @ nggallery
|
4360 |
-
|
4361 |
-
|
4362 |
-
|
|
|
|
|
4363 |
|
4364 |
# @ nggallery
|
4365 |
-
|
4366 |
-
|
4367 |
-
msgstr "Geen nieuw/oud geldige tag gegeven!"
|
4368 |
|
4369 |
# @ nggallery
|
4370 |
-
|
4371 |
-
|
4372 |
-
msgstr "
|
|
|
4373 |
|
4374 |
# @ nggallery
|
4375 |
-
|
4376 |
-
|
4377 |
-
msgid "Renamed tag(s) «%1$s» to «%2$s»"
|
4378 |
-
msgstr "Hernoemde tag(s) «%1$s» naar «%2$s»"
|
4379 |
|
4380 |
# @ nggallery
|
4381 |
-
|
4382 |
-
|
4383 |
-
|
|
|
|
|
|
|
4384 |
|
4385 |
# @ nggallery
|
4386 |
-
|
4387 |
-
|
4388 |
-
|
4389 |
-
"
|
|
|
4390 |
|
4391 |
# @ nggallery
|
4392 |
-
|
4393 |
-
|
4394 |
-
|
|
|
|
|
|
|
4395 |
|
4396 |
# @ nggallery
|
4397 |
-
|
4398 |
-
|
4399 |
-
msgid ""
|
4400 |
-
"Merge tag(s) «%1$s» to «%2$s». %3$s objects edited."
|
4401 |
-
msgstr ""
|
4402 |
-
"Samengevoegde tag(s) «%1$s» naar «%2$s». %3$s "
|
4403 |
-
"objecten bewerkt."
|
4404 |
|
4405 |
# @ nggallery
|
4406 |
-
|
4407 |
-
|
4408 |
-
msgstr "Mislukt. Niet genoeg tags om te hernoemen. Ook voor samenvoegen. Kies!"
|
4409 |
|
4410 |
# @ nggallery
|
4411 |
-
|
4412 |
-
|
4413 |
-
|
4414 |
|
4415 |
# @ nggallery
|
4416 |
-
|
4417 |
-
|
4418 |
-
msgstr "Geen tag verwijderd."
|
4419 |
|
4420 |
# @ nggallery
|
4421 |
-
|
4422 |
-
|
4423 |
-
msgid "%1s tag(s) deleted."
|
4424 |
-
msgstr "%1s tag(s) verwijderd."
|
4425 |
|
4426 |
# @ nggallery
|
4427 |
-
|
4428 |
-
|
4429 |
-
msgstr "Geen nieuwe slug(s) opgegeven."
|
4430 |
|
4431 |
# @ nggallery
|
4432 |
-
|
4433 |
-
|
4434 |
-
msgstr "Tags nummers en slug nummers zijn niet hetzelfde!"
|
4435 |
|
4436 |
# @ nggallery
|
4437 |
-
|
4438 |
-
|
4439 |
-
msgstr "Geen slug bewerkt."
|
4440 |
|
4441 |
# @ nggallery
|
4442 |
-
|
4443 |
-
|
4444 |
-
|
4445 |
-
|
|
|
|
|
|
|
|
|
4446 |
|
4447 |
-
# @
|
4448 |
-
|
4449 |
-
|
4450 |
-
msgid ""
|
4451 |
-
"XML-RPC services are disabled on this blog. An admin user can enable them "
|
4452 |
-
"at %s"
|
4453 |
-
msgstr ""
|
4454 |
-
"XML-RPC services zijn uitgeschakeld op deze site. Een Admin kan deze "
|
4455 |
-
"inschakelen op %s"
|
4456 |
|
4457 |
-
# @
|
4458 |
-
|
4459 |
-
|
4460 |
-
msgstr "Onjuiste login/wachtwoord combinatie"
|
4461 |
|
4462 |
-
|
4463 |
-
|
4464 |
-
msgid "You are not allowed to upload files to this site."
|
4465 |
-
msgstr "Je hebt onvoldoende rechten om bestanden op deze site te uploaden."
|
4466 |
|
4467 |
-
# @
|
4468 |
-
|
4469 |
-
|
4470 |
-
msgstr "Kan geen galerij vinden"
|
4471 |
|
4472 |
-
# @
|
4473 |
-
|
4474 |
-
|
4475 |
-
msgstr ""
|
4476 |
-
"Je hebt onvoldoende rechten om bestanden naar deze gallery te uploaden."
|
4477 |
|
4478 |
# @ nggallery
|
4479 |
-
|
4480 |
-
|
4481 |
-
msgstr "Dit is geen geldig afbeeldingsbestand."
|
4482 |
|
4483 |
-
# @
|
4484 |
-
|
4485 |
-
|
4486 |
-
msgstr "Kan het afbeeldings id niet vinden"
|
4487 |
|
4488 |
# @ nggallery
|
4489 |
-
|
4490 |
-
|
4491 |
-
msgid "Failed to delete image %1$s "
|
4492 |
-
msgstr "Afbeelding verwijderen mislukt %1$s"
|
4493 |
|
4494 |
-
# @
|
4495 |
-
|
4496 |
-
|
4497 |
-
msgid "Could not write file %1$s (%2$s)"
|
4498 |
-
msgstr "Kan bestand %1$s (%2$s) niet beschrijven"
|
4499 |
|
4500 |
# @ default
|
4501 |
-
|
4502 |
-
|
4503 |
-
msgstr "Ongeldige afbeelding ID"
|
4504 |
|
4505 |
-
# @
|
4506 |
-
|
4507 |
-
|
4508 |
-
msgstr "Helaas, je moet toestemming hebben om deze afbeelding te bewerken"
|
4509 |
|
4510 |
-
# @
|
4511 |
-
|
4512 |
-
|
4513 |
-
msgstr "Helaas, de afbeelding kon niet bijgewerkt worden."
|
4514 |
|
4515 |
# @ default
|
4516 |
-
|
4517 |
-
|
4518 |
-
msgid "Sorry, you must be able to manage galleries"
|
4519 |
-
msgstr "Mislukt, je moet toestemming hebben om gallerys kunnen beheren."
|
4520 |
|
4521 |
-
# @
|
4522 |
-
|
4523 |
-
|
4524 |
-
msgstr "Mislukt, de gallery kon niet gemaakt worden"
|
4525 |
|
4526 |
-
# @
|
4527 |
-
|
4528 |
-
|
4529 |
-
msgstr "Ongeldige gallery ID"
|
4530 |
|
4531 |
-
# @
|
4532 |
-
|
4533 |
-
|
4534 |
-
msgstr "Mislukt, je moet toestemming hebben om deze gallery te beheren."
|
4535 |
|
4536 |
-
# @
|
4537 |
-
|
4538 |
-
|
4539 |
-
msgstr "Mislukt, de gallery kon niet bijgewerkt worden."
|
4540 |
|
4541 |
-
# @
|
4542 |
-
|
4543 |
-
|
4544 |
-
msgid "Sorry, you must be able to manage albums"
|
4545 |
-
msgstr "Mislukt, je moet toestemming heb om albums te beheren"
|
4546 |
|
4547 |
-
# @
|
4548 |
-
|
4549 |
-
|
4550 |
-
msgstr "Mislukt, het album kon niet gemaakt worden"
|
4551 |
|
4552 |
-
# @
|
4553 |
-
|
4554 |
-
|
4555 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4556 |
|
4557 |
-
# @
|
4558 |
-
|
4559 |
-
|
4560 |
-
msgstr "Helaas, het album kan niet geupdate worden"
|
4561 |
|
4562 |
-
|
4563 |
-
msgid "
|
4564 |
-
msgstr "
|
4565 |
|
4566 |
# @ nggallery
|
4567 |
-
|
4568 |
-
|
4569 |
-
msgstr "Nu upgraden"
|
4570 |
|
4571 |
# @ nggallery
|
4572 |
-
|
4573 |
-
|
4574 |
-
"<strong>Translation by : </strong><a target=\"_blank\" href=\"http://"
|
4575 |
-
"alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\">See here</a>"
|
4576 |
-
msgstr ""
|
4577 |
-
"<strong>Vertaling door: </strong><a target=\"_blank\" href=\"http://www."
|
4578 |
-
"werkgroepen.net/wordpress/\">Anja</a>"
|
4579 |
|
4580 |
# @ nggallery
|
4581 |
-
|
4582 |
-
|
4583 |
-
"<strong>This translation is not yet updated for Version 1.9.0</strong>. If "
|
4584 |
-
"you would like to help with translation, download the current po from the "
|
4585 |
-
"plugin folder and read <a href=\"http://alexrabe.de/wordpress-plugins/"
|
4586 |
-
"wordtube/translation-of-plugins/\">here</a> how you can translate the plugin."
|
4587 |
-
msgstr ""
|
4588 |
-
"<strong>Deze vertaling is nog niet geupdate voor Versie 1.9.0</strong>. Als "
|
4589 |
-
"je graag wil helpen met de vertaling, download dan de huidige po uit de "
|
4590 |
-
"plugin map en lees <a href=\"http://alexrabe.de/wordpress-plugins/wordtube/"
|
4591 |
-
"translation-of-plugins/\">hier</a> hoe je de plugin kan vertalen."
|
4592 |
|
4593 |
# @ nggallery
|
4594 |
-
|
4595 |
-
|
4596 |
-
"Sorry, NextCellent Gallery works only with a Memory Limit of 16 MB or higher"
|
4597 |
-
msgstr ""
|
4598 |
-
"Helaas, NextCellent Gallery werkt alleen met een geheugen limiet van 16MB of "
|
4599 |
-
"hoger"
|
4600 |
|
4601 |
# @ nggallery
|
4602 |
-
|
4603 |
-
|
4604 |
-
msgstr "
|
|
|
|
|
4605 |
|
4606 |
# @ nggallery
|
4607 |
-
|
4608 |
-
|
4609 |
-
msgstr "Afbeeldingstag: %2$l."
|
4610 |
|
4611 |
# @ nggallery
|
4612 |
-
|
4613 |
-
|
4614 |
-
msgstr "Afbeeldingstags scheiden met komma's"
|
4615 |
|
4616 |
# @ nggallery
|
4617 |
-
|
4618 |
-
|
4619 |
-
msgstr "NextCellent Gallery / Afbeeldingen"
|
4620 |
|
4621 |
# @ nggallery
|
4622 |
-
|
4623 |
-
|
4624 |
-
msgstr "laden"
|
4625 |
|
4626 |
# @ nggallery
|
4627 |
-
|
4628 |
-
|
4629 |
-
msgstr "Help (Engels)"
|
4630 |
|
4631 |
-
|
4632 |
-
msgid "
|
4633 |
-
msgstr "
|
4634 |
|
4635 |
# @ nggallery
|
4636 |
-
|
4637 |
-
|
4638 |
-
"The <a href=\"http://www.macromedia.com/go/getflashplayer\">Flash Player</a> "
|
4639 |
-
"and <a href=\"http://www.mozilla.com/firefox/\">a browser with Javascript "
|
4640 |
-
"support</a> are needed."
|
4641 |
-
msgstr ""
|
4642 |
-
"De <a href=\"http://www.macromedia.com/go/getflashplayer\">Flash Player</a> "
|
4643 |
-
"en <a href=\"http://www.mozilla.com/firefox/\">en browser met Javascript "
|
4644 |
-
"ondersteuning</a> zijn nodig."
|
4645 |
|
4646 |
# @ nggallery
|
4647 |
-
|
4648 |
-
|
4649 |
-
msgstr "[Album niet gevonden]"
|
4650 |
|
4651 |
# @ nggallery
|
4652 |
-
|
4653 |
-
|
4654 |
-
msgstr "[SinglePic niet gevonden]"
|
4655 |
|
4656 |
# @ nggallery
|
4657 |
-
|
4658 |
-
|
4659 |
-
msgstr "Gerelateerde afbeeldingen voor"
|
4660 |
|
4661 |
# @ nggallery
|
4662 |
-
|
4663 |
-
|
4664 |
-
msgstr "Afbeeldingen"
|
4665 |
|
4666 |
# @ nggallery
|
4667 |
-
|
4668 |
-
|
4669 |
-
|
4670 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4671 |
|
4672 |
# @ nggallery
|
4673 |
-
|
4674 |
-
|
4675 |
-
|
4676 |
-
|
|
|
|
|
|
|
|
|
4677 |
|
4678 |
# @ nggallery
|
4679 |
-
|
4680 |
-
|
4681 |
-
msgid "Next"
|
4682 |
-
msgstr "Volgende"
|
4683 |
|
4684 |
# @ nggallery
|
4685 |
-
|
4686 |
-
|
4687 |
-
|
4688 |
-
|
4689 |
|
4690 |
# @ nggallery
|
4691 |
-
|
4692 |
-
|
4693 |
-
msgstr "Meta data"
|
4694 |
|
4695 |
# @ nggallery
|
4696 |
-
|
4697 |
-
|
4698 |
-
msgstr "Camera / Type"
|
4699 |
|
4700 |
# @ nggallery
|
4701 |
-
|
4702 |
-
|
4703 |
-
msgstr "Focal lengte"
|
4704 |
|
4705 |
# @ nggallery
|
4706 |
-
|
4707 |
-
|
4708 |
-
msgstr "Widget die de Media-RSS-links toont voor NextCellent Gallery."
|
4709 |
|
4710 |
# @ nggallery
|
4711 |
-
|
4712 |
-
|
4713 |
-
msgstr "NextCellent Media RSS"
|
4714 |
|
4715 |
# @ nggallery
|
4716 |
-
|
4717 |
-
|
4718 |
-
msgstr "Media RSS"
|
4719 |
|
4720 |
# @ nggallery
|
4721 |
-
|
4722 |
-
|
4723 |
-
msgstr "Link naar de hoofd afbeeldingsfeed"
|
4724 |
|
4725 |
-
# @
|
4726 |
-
|
4727 |
-
|
4728 |
-
msgid "Title:"
|
4729 |
-
msgstr "Titel : "
|
4730 |
|
4731 |
# @ nggallery
|
4732 |
-
|
4733 |
-
|
4734 |
-
msgstr "Toon Media RSS icoon:"
|
4735 |
|
4736 |
# @ nggallery
|
4737 |
-
|
4738 |
-
|
4739 |
-
msgstr "Toon de media RSS link"
|
4740 |
|
4741 |
# @ nggallery
|
4742 |
-
|
4743 |
-
|
4744 |
-
msgstr "Tekst voor de media RSS link:"
|
4745 |
|
4746 |
# @ nggallery
|
4747 |
-
|
4748 |
-
|
4749 |
-
msgstr "Teksttip voor de media RSS link:"
|
4750 |
|
4751 |
# @ nggallery
|
4752 |
-
|
4753 |
-
|
4754 |
-
msgstr "Toon een NextCellent Gallery Diavoorstelling"
|
4755 |
|
4756 |
# @ nggallery
|
4757 |
-
|
4758 |
-
|
4759 |
-
msgstr "NextCellent Diavoorstelling"
|
4760 |
|
4761 |
# @ nggallery
|
4762 |
-
|
4763 |
-
|
4764 |
-
"<a href=\"http://www.macromedia.com/go/getflashplayer\">Get the Flash "
|
4765 |
-
"Player</a> to see the slideshow."
|
4766 |
-
msgstr ""
|
4767 |
-
"<a href=\"http://www.macromedia.com/go/getflashplayer\">Gebruik de Flash "
|
4768 |
-
"Player</a> om de slideshow te bekijken."
|
4769 |
|
4770 |
# @ nggallery
|
4771 |
-
|
4772 |
-
|
4773 |
-
msgstr "Selecteer Galerij:"
|
4774 |
|
4775 |
# @ nggallery
|
4776 |
-
|
4777 |
-
|
4778 |
-
msgstr "Alle afbeeldingen"
|
4779 |
|
4780 |
# @ nggallery
|
4781 |
-
|
4782 |
-
|
4783 |
-
msgstr "Breedte:"
|
4784 |
|
4785 |
# @ nggallery
|
4786 |
-
|
4787 |
-
|
4788 |
-
msgstr "Hoogte:"
|
4789 |
|
4790 |
# @ nggallery
|
4791 |
-
|
4792 |
-
|
4793 |
-
msgstr "Toevoegen recente of random afbeeldingen van de galerijen"
|
4794 |
|
4795 |
# @ nggallery
|
4796 |
-
|
4797 |
-
|
4798 |
-
msgstr "NextCellent Widget"
|
4799 |
|
4800 |
# @ nggallery
|
4801 |
-
|
4802 |
-
|
4803 |
-
msgstr "Toon:"
|
4804 |
|
4805 |
# @ nggallery
|
4806 |
-
|
4807 |
-
|
4808 |
-
msgstr "Originele afbeeldingen"
|
4809 |
|
4810 |
# @ nggallery
|
4811 |
-
|
4812 |
-
|
4813 |
-
msgstr "recent toegevoegd"
|
4814 |
|
4815 |
# @ nggallery
|
4816 |
-
|
4817 |
-
|
4818 |
-
msgstr "IE8 webslices inschakelen"
|
4819 |
|
4820 |
# @ nggallery
|
4821 |
-
|
4822 |
-
|
4823 |
-
msgstr "Selecteer:"
|
4824 |
|
4825 |
# @ nggallery
|
4826 |
-
|
4827 |
-
|
4828 |
-
msgstr "Alle galerijen"
|
4829 |
|
4830 |
# @ nggallery
|
4831 |
-
|
4832 |
-
|
4833 |
-
msgstr "Alleen welke niet op de lijst staan"
|
4834 |
|
4835 |
# @ nggallery
|
4836 |
-
|
4837 |
-
|
4838 |
-
|
|
|
|
|
|
|
4839 |
|
4840 |
# @ nggallery
|
4841 |
-
|
4842 |
-
|
4843 |
-
|
|
|
|
|
|
|
|
|
|
|
4844 |
|
4845 |
# @ nggallery
|
4846 |
-
|
4847 |
-
|
4848 |
-
msgstr "Galerij IDs, door komma gescheiden."
|
4849 |
|
4850 |
# @ nggallery
|
4851 |
-
|
4852 |
-
|
4853 |
-
|
|
|
|
|
|
|
|
|
|
|
4854 |
|
4855 |
# @ nggallery
|
4856 |
-
|
4857 |
-
|
4858 |
-
|
4859 |
-
msgstr "
|
|
|
|
|
4860 |
|
4861 |
# @ nggallery
|
4862 |
-
|
4863 |
-
|
4864 |
-
msgstr "Er is geen album ID verstrekt als parameter."
|
4865 |
|
4866 |
# @ nggallery
|
4867 |
-
|
4868 |
-
|
4869 |
-
msgid "The album ID=%s does not exist."
|
4870 |
-
msgstr "Het album ID=%s bestaat niet."
|
4871 |
|
4872 |
# @ nggallery
|
4873 |
-
|
4874 |
-
|
4875 |
-
|
|
|
|
|
|
|
4876 |
|
4877 |
# @ nggallery
|
4878 |
#~ msgid ""
|
@@ -5165,10 +5542,6 @@ msgstr "Ongeldige MediaRSS opdracht"
|
|
5165 |
#~ msgid "More Help & Info"
|
5166 |
#~ msgstr "Meer hulp & Info"
|
5167 |
|
5168 |
-
# @ nggallery
|
5169 |
-
#~ msgid "More settings"
|
5170 |
-
#~ msgstr "Meer instellingen"
|
5171 |
-
|
5172 |
# @ nggallery
|
5173 |
#~ msgid "Move imagerotator to new location..."
|
5174 |
#~ msgstr "Verplaats de imagerotator naar een nieuwe locatie..."
|
@@ -5239,10 +5612,6 @@ msgstr "Ongeldige MediaRSS opdracht"
|
|
5239 |
#~ msgid "Show ImageBrowser"
|
5240 |
#~ msgstr "Toon Afbeelding Browser"
|
5241 |
|
5242 |
-
# @ nggallery
|
5243 |
-
#~ msgid "Show as"
|
5244 |
-
#~ msgstr "Toon als"
|
5245 |
-
|
5246 |
# @ nggallery
|
5247 |
#~ msgid ""
|
5248 |
#~ "So, we would like to thank the following people for their pioneer work "
|
@@ -5503,10 +5872,6 @@ msgstr "Ongeldige MediaRSS opdracht"
|
|
5503 |
#~ msgid "%1$s of %2$s"
|
5504 |
#~ msgstr "%1$s van %2$s"
|
5505 |
|
5506 |
-
# @ default
|
5507 |
-
#~ msgid "Go to the next page"
|
5508 |
-
#~ msgstr "Ga naar de volgende pagina"
|
5509 |
-
|
5510 |
# @ default
|
5511 |
#~ msgid "Go to the last page"
|
5512 |
#~ msgstr "Ga naar de laatste pagina"
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: NextCellent Gallery 1.9.24\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2015-07-02 18:55+0200\n"
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
8 |
"Language-Team: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
16 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
17 |
"X-Poedit-Basepath: k\n"
|
18 |
"X-Textdomain-Support: yes\n"
|
19 |
+
"X-Generator: Poedit 1.8.2\n"
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
|
22 |
+
# @ default
|
23 |
+
#: ../admin/ajax.php:358
|
24 |
+
msgid "You are not allowed to be here"
|
25 |
+
msgstr "Je hebt geen toestemming je hier te bevinden"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
|
27 |
# @ nggallery
|
28 |
+
#: ../admin/ajax.php:456
|
29 |
+
#, php-format
|
30 |
+
msgid "Could create image with %s x %s pixel"
|
31 |
+
msgstr "Kan afbeelding maken met %s x %s pixels"
|
|
|
|
|
|
|
32 |
|
33 |
# @ default
|
34 |
+
#: ../admin/class-ngg-adder.php:34 ../admin/class-ngg-adder.php:48
|
35 |
+
#: ../admin/class-ngg-adder.php:62 ../admin/class-ngg-adder.php:75
|
36 |
+
#: ../admin/class-ngg-album-manager.php:82
|
37 |
+
#: ../admin/class-ngg-album-manager.php:119
|
38 |
+
#: ../admin/class-ngg-album-manager.php:143 ../admin/manage/actions.php:12
|
|
|
|
|
39 |
msgid "Cheatin’ uh?"
|
40 |
msgstr "Vals aan 't spelen, eh?"
|
41 |
|
42 |
# @ nggallery
|
43 |
+
#: ../admin/class-ngg-adder.php:54 ../admin/class-ngg-adder.php:91
|
44 |
msgid "Upload failed!"
|
45 |
msgstr "Upload mislukt!"
|
46 |
|
47 |
# @ nggallery
|
48 |
+
#: ../admin/class-ngg-adder.php:81
|
49 |
msgid "Upload failed! "
|
50 |
msgstr "Upload mislukt!"
|
51 |
|
52 |
# @ nggallery
|
53 |
+
#: ../admin/class-ngg-adder.php:88 ../admin/class-ngg-adder.php:335
|
54 |
+
#: ../admin/class-ngg-admin-launcher.php:298
|
55 |
msgid "You didn't select a gallery!"
|
56 |
msgstr "Je hebt geen galerij geselecteerd!"
|
57 |
|
58 |
# @ nggallery
|
59 |
+
#: ../admin/class-ngg-adder.php:162 ../admin/class-ngg-admin-launcher.php:65
|
60 |
+
#: ../admin/class-ngg-admin-launcher.php:66
|
61 |
msgid "Add Gallery / Images"
|
62 |
msgstr "Galerij / afbeeldingen toevoegen"
|
63 |
|
64 |
# @ nggallery
|
65 |
+
#: ../admin/class-ngg-adder.php:199
|
66 |
msgid "Image Files"
|
67 |
msgstr "Afbeeldings Bestanden"
|
68 |
|
69 |
# @ nggallery
|
70 |
+
#: ../admin/class-ngg-adder.php:224
|
71 |
msgid "remove"
|
72 |
msgstr "verwijderen"
|
73 |
|
74 |
# @ nggallery
|
75 |
+
#: ../admin/class-ngg-adder.php:225 ../admin/class-ngg-adder.php:488
|
76 |
msgid "Browse..."
|
77 |
msgstr "Blader..."
|
78 |
|
79 |
# @ nggallery
|
80 |
+
#: ../admin/class-ngg-adder.php:226 ../admin/class-ngg-adder.php:264
|
81 |
+
#: ../admin/class-ngg-adder.php:506 ../admin/class-ngg-adder.php:557
|
82 |
msgid "Upload images"
|
83 |
msgstr "Afbeeldingen uploaden"
|
84 |
|
85 |
+
#: ../admin/class-ngg-adder.php:307
|
86 |
+
#: ../admin/manage/class-ngg-image-manager.php:86
|
87 |
+
msgid ""
|
88 |
+
"This will change folder and file names (e.g. remove spaces, special "
|
89 |
+
"characters, ...)"
|
90 |
+
msgstr ""
|
91 |
+
"Dit zal map- en bestandsnamen wijzigen (bv. spaties en speciale tekens "
|
92 |
+
"verwijderen, ...)"
|
93 |
+
|
94 |
+
#: ../admin/class-ngg-adder.php:309
|
95 |
+
#: ../admin/manage/class-ngg-image-manager.php:88
|
96 |
+
msgid "You will need to update your URLs if you link directly to the images."
|
97 |
+
msgstr ""
|
98 |
+
"Je zal je URL's moeten bijwerken als je rechtstreeks naar de afbeeldingen "
|
99 |
+
"linkt."
|
100 |
+
|
101 |
+
#: ../admin/class-ngg-adder.php:311
|
102 |
+
#: ../admin/manage/class-ngg-image-manager.php:90
|
103 |
+
msgid "Press OK to proceed, and Cancel to stop."
|
104 |
+
msgstr "Druk OK om verder te gaan, Annuleren om te stoppen."
|
105 |
+
|
106 |
+
#: ../admin/class-ngg-adder.php:343 ../admin/class-ngg-adder.php:351
|
107 |
msgid "You didn't select a file!"
|
108 |
msgstr "Je hebt geen bestand geselecteerd!"
|
109 |
|
110 |
# @ nggallery
|
111 |
+
#: ../admin/class-ngg-adder.php:370 ../admin/class-ngg-admin-launcher.php:479
|
112 |
msgid "New gallery"
|
113 |
msgstr "Nieuwe galerij"
|
114 |
|
115 |
# @ nggallery
|
116 |
+
#: ../admin/class-ngg-adder.php:373 ../admin/class-ngg-admin-launcher.php:487
|
117 |
+
#: ../admin/class-ngg-admin-launcher.php:524
|
118 |
+
#: ../admin/class-ngg-admin-launcher.php:569
|
119 |
+
#: ../admin/class-ngg-options.php:205
|
120 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:157
|
121 |
msgid "Images"
|
122 |
msgstr "Afbeeldingen"
|
123 |
|
124 |
+
#: ../admin/class-ngg-adder.php:376 ../admin/class-ngg-admin-launcher.php:491
|
125 |
msgid "ZIP file"
|
126 |
msgstr "Zip-bestand"
|
127 |
|
128 |
# @ nggallery
|
129 |
+
#: ../admin/class-ngg-adder.php:379 ../admin/class-ngg-adder.php:497
|
130 |
+
#: ../admin/class-ngg-admin-launcher.php:495
|
131 |
msgid "Import folder"
|
132 |
msgstr "Importeer map"
|
133 |
|
134 |
# @ nggallery
|
135 |
+
#: ../admin/class-ngg-adder.php:390
|
136 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:67
|
137 |
msgid "Add a new gallery"
|
138 |
msgstr "Nieuwe galerij toevoegen"
|
139 |
|
140 |
# @ nggallery
|
141 |
+
#: ../admin/class-ngg-adder.php:395 ../admin/class-ngg-album-manager.php:580
|
142 |
+
#: ../admin/manage/actions.php:128 ../admin/manage/actions.php:156
|
143 |
+
#: ../admin/manage/actions.php:181 ../admin/manage/actions.php:203
|
144 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:83
|
145 |
msgid "Name"
|
146 |
msgstr "Naam"
|
147 |
|
148 |
# @ nggallery
|
149 |
+
#: ../admin/class-ngg-adder.php:400
|
150 |
+
#, php-format
|
151 |
+
msgid "Create a new, empty gallery in the folder <strong>%s</strong>"
|
152 |
+
msgstr "Maak een nieuwe, lege galerij in de map <strong>%s</strong>"
|
153 |
|
154 |
# @ nggallery
|
155 |
+
#: ../admin/class-ngg-adder.php:403
|
156 |
+
#, php-format
|
157 |
+
msgid "Allowed characters for file and folder names are \"%s\"."
|
158 |
+
msgstr "Toegestane karakters voor bestanden en mappen zijn \"%s\"."
|
159 |
|
160 |
# @ nggallery
|
161 |
# @ default
|
162 |
+
#: ../admin/class-ngg-adder.php:408 ../admin/class-ngg-style.php:294
|
163 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:154
|
164 |
+
#: ../admin/manage/class-ngg-image-list-table.php:187
|
165 |
+
#: ../admin/manage/class-ngg-image-list-table.php:232
|
166 |
+
#: ../admin/manage/class-ngg-image-manager.php:174
|
167 |
+
#: ../admin/media-upload.php:225
|
168 |
msgid "Description"
|
169 |
msgstr "Beschrijving"
|
170 |
|
171 |
+
#: ../admin/class-ngg-adder.php:412
|
172 |
msgid "Add a description. This is optional and can be changed later."
|
173 |
msgstr ""
|
174 |
"Voeg een beschrijving toe. Dit is optioneel en kan later veranderd worden."
|
175 |
|
176 |
# @ nggallery
|
177 |
+
#: ../admin/class-ngg-adder.php:419
|
178 |
msgid "Add gallery"
|
179 |
msgstr "Galerij toevoegen"
|
180 |
|
181 |
# @ nggallery
|
182 |
+
#: ../admin/class-ngg-adder.php:428
|
183 |
msgid "Upload a ZIP File"
|
184 |
msgstr "Zip-bestand uploaden"
|
185 |
|
186 |
# @ default
|
187 |
+
#: ../admin/class-ngg-adder.php:433
|
188 |
msgid "Select ZIP file"
|
189 |
msgstr "Zip-bestand selecteren"
|
190 |
|
191 |
# @ nggallery
|
192 |
+
#: ../admin/class-ngg-adder.php:437
|
193 |
msgid "Upload a ZIP file with images"
|
194 |
msgstr "Zip-bestand met afbeeldingen uploaden"
|
195 |
|
196 |
# @ nggallery
|
197 |
+
#: ../admin/class-ngg-adder.php:443
|
198 |
msgid "or enter URL"
|
199 |
msgstr "of geef een URL op"
|
200 |
|
201 |
# @ nggallery
|
202 |
+
#: ../admin/class-ngg-adder.php:447
|
203 |
msgid "Import a ZIP file from a URL"
|
204 |
msgstr "Importeer een zip-bestand vanuit een URL"
|
205 |
|
206 |
# @ nggallery
|
207 |
+
#: ../admin/class-ngg-adder.php:453 ../admin/class-ngg-adder.php:512
|
208 |
msgid "in to"
|
209 |
msgstr "naar"
|
210 |
|
211 |
# @ nggallery
|
212 |
+
#: ../admin/class-ngg-adder.php:456
|
213 |
msgid "a new gallery"
|
214 |
msgstr "Een nieuwe galerij"
|
215 |
|
216 |
# @ nggallery
|
217 |
+
#: ../admin/class-ngg-adder.php:461
|
218 |
+
#, php-format
|
219 |
+
msgid "Note: the upload limit on your server is <strong>%s MB</strong>."
|
220 |
+
msgstr "Opmerking: de uploadlimit van je server is <strong>%s MB</strong>."
|
221 |
|
222 |
# @ nggallery
|
223 |
+
#: ../admin/class-ngg-adder.php:471
|
224 |
msgid "Start upload"
|
225 |
msgstr "Upload starten"
|
226 |
|
227 |
# @ nggallery
|
228 |
+
#: ../admin/class-ngg-adder.php:480
|
229 |
msgid "Import an image folder"
|
230 |
msgstr "Importeer map met afbeeldingen"
|
231 |
|
232 |
# @ nggallery
|
233 |
+
#: ../admin/class-ngg-adder.php:485
|
234 |
msgid "Import from server:"
|
235 |
msgstr "Importeer vanop de server:"
|
236 |
|
237 |
# @ nggallery
|
238 |
+
#: ../admin/class-ngg-adder.php:491
|
239 |
msgid "Note: you can change the default path in the gallery settings"
|
240 |
msgstr "Opmerking: je kan het standaardpad wijzigen in de galerij-instellingen"
|
241 |
|
242 |
# @ nggallery
|
243 |
+
#: ../admin/class-ngg-adder.php:514
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
msgid "Choose gallery"
|
245 |
msgstr "Kies galerij"
|
246 |
|
247 |
# @ default
|
248 |
+
#: ../admin/class-ngg-adder.php:530
|
249 |
msgid "Drop your files in this window"
|
250 |
msgstr "Sleep bestanden naar dit venster"
|
251 |
|
252 |
+
#: ../admin/class-ngg-adder.php:532
|
253 |
msgid "Or"
|
254 |
msgstr "Of"
|
255 |
|
256 |
# @ default
|
257 |
+
#: ../admin/class-ngg-adder.php:534
|
258 |
msgid "Select Files"
|
259 |
msgstr "Selecteer bestanden"
|
260 |
|
261 |
+
#: ../admin/class-ngg-adder.php:553
|
262 |
msgid "Click here to use the browser upload instead"
|
263 |
msgstr "Klik hier om de browserupload te gebruiken"
|
264 |
|
265 |
# @ nggallery
|
266 |
+
#: ../admin/class-ngg-adder.php:553
|
267 |
msgid "Use basic uploader"
|
268 |
msgstr "Gebruik de basisuploader"
|
269 |
|
270 |
+
#: ../admin/class-ngg-adder.php:555
|
271 |
msgid "Advanced uploading"
|
272 |
msgstr "Geavanceerd uploaden"
|
273 |
|
274 |
+
#: ../admin/class-ngg-adder.php:555
|
275 |
msgid "Use advanced uploader"
|
276 |
msgstr "Gebruik de geavanceerde uploader"
|
277 |
|
278 |
# @ nggallery
|
279 |
+
#: ../admin/class-ngg-adder.php:560
|
280 |
#, php-format
|
281 |
msgid "Your images will be rescaled to max width %1$dpx or max height %2$dpx."
|
282 |
msgstr ""
|
285 |
|
286 |
# @ nggallery
|
287 |
# @ default
|
288 |
+
#: ../admin/class-ngg-admin-launcher.php:58
|
289 |
+
#: ../admin/class-ngg-admin-launcher.php:69
|
290 |
+
#: ../admin/class-ngg-admin-launcher.php:107
|
291 |
+
#: ../admin/class-ngg-admin-launcher.php:419
|
292 |
+
#: ../admin/class-ngg-admin-launcher.php:515
|
293 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:33
|
294 |
msgid "Galleries"
|
295 |
msgstr "Galerijen"
|
296 |
|
297 |
# @ nggallery
|
298 |
+
#: ../admin/class-ngg-admin-launcher.php:61 ../nggallery.php:723
|
299 |
+
#: ../nggfunctions.php:966
|
300 |
msgid "Overview"
|
301 |
msgstr "Overzicht"
|
302 |
|
303 |
# @ nggallery
|
304 |
+
#: ../admin/class-ngg-admin-launcher.php:73
|
305 |
+
#: ../admin/class-ngg-album-manager.php:286 ../nggallery.php:429
|
306 |
msgid "Albums"
|
307 |
msgstr "Albums"
|
308 |
|
309 |
# @ nggallery
|
310 |
+
#: ../admin/class-ngg-admin-launcher.php:77 ../admin/class-ngg-options.php:329
|
311 |
+
#: ../admin/class-ngg-tag-manager.php:102
|
312 |
+
#: ../admin/manage/class-ngg-image-list-table.php:233 ../lib/meta.php:459
|
313 |
+
#: ../nggallery.php:437
|
314 |
msgid "Tags"
|
315 |
msgstr "Tags"
|
316 |
|
317 |
# @ nggallery
|
318 |
+
#: ../admin/class-ngg-admin-launcher.php:81 ../admin/class-ngg-options.php:116
|
319 |
+
#: ../nggallery.php:445
|
320 |
msgid "Settings"
|
321 |
msgstr "Instellingen"
|
322 |
|
323 |
# @ nggallery
|
324 |
+
#: ../admin/class-ngg-admin-launcher.php:86 ../nggallery.php:453
|
325 |
msgid "Style"
|
326 |
msgstr "Stijl"
|
327 |
|
328 |
# @ nggallery
|
329 |
+
#: ../admin/class-ngg-admin-launcher.php:91
|
330 |
msgid "Roles"
|
331 |
msgstr "Rollen/rechten"
|
332 |
|
333 |
# @ nggallery
|
334 |
+
#: ../admin/class-ngg-admin-launcher.php:97
|
335 |
+
#: ../admin/class-ngg-admin-launcher.php:114
|
|
|
|
|
|
|
|
|
336 |
msgid "Reset / Uninstall"
|
337 |
msgstr "Terug zetten / Deïnstalleer"
|
338 |
|
339 |
# @ nggallery
|
340 |
+
#: ../admin/class-ngg-admin-launcher.php:110
|
341 |
msgid "Network settings"
|
342 |
msgstr "Netwerk instellingen"
|
343 |
|
344 |
# @ nggallery
|
345 |
+
#: ../admin/class-ngg-admin-launcher.php:271
|
346 |
msgid "You do not have the correct permission"
|
347 |
msgstr "Je hebt niet de juiste permissies"
|
348 |
|
349 |
# @ nggallery
|
350 |
+
#: ../admin/class-ngg-admin-launcher.php:272
|
351 |
msgid "Unexpected Error"
|
352 |
msgstr "Onverwachte fout"
|
353 |
|
354 |
# @ nggallery
|
355 |
+
#: ../admin/class-ngg-admin-launcher.php:273
|
356 |
msgid "A failure occurred"
|
357 |
msgstr "Er is een fout opgetreden"
|
358 |
|
359 |
# @ default
|
360 |
+
#: ../admin/class-ngg-admin-launcher.php:278
|
361 |
msgid "You have attempted to queue too many files."
|
362 |
msgstr "Je probeert teveel bestanden ineens in de rij de plaatsen"
|
363 |
|
364 |
# @ default
|
365 |
+
#: ../admin/class-ngg-admin-launcher.php:279
|
366 |
msgid "This file exceeds the maximum upload size for this site."
|
367 |
msgstr "Het bestand overschrijdt de maximale upload grootte voor deze site"
|
368 |
|
369 |
# @ default
|
370 |
+
#: ../admin/class-ngg-admin-launcher.php:280
|
371 |
msgid "This file is empty. Please try another."
|
372 |
msgstr "Dit bestand is leeg. Probeer aub een ander."
|
373 |
|
374 |
# @ default
|
375 |
+
#: ../admin/class-ngg-admin-launcher.php:281
|
376 |
msgid "This file type is not allowed. Please try another."
|
377 |
msgstr "Dit bestandstype is niet toegelaten. Probeer aub een ander."
|
378 |
|
379 |
# @ default
|
380 |
+
#: ../admin/class-ngg-admin-launcher.php:282
|
381 |
msgid "This file is not an image. Please try another."
|
382 |
msgstr "Dit bestand is geen afbeelding. Probeer aub een ander."
|
383 |
|
384 |
# @ default
|
385 |
+
#: ../admin/class-ngg-admin-launcher.php:283
|
386 |
msgid "Memory exceeded. Please try another smaller file."
|
387 |
msgstr "Geheugen overschreden. Probeer aub een kleiner bestand."
|
388 |
|
389 |
# @ default
|
390 |
+
#: ../admin/class-ngg-admin-launcher.php:284
|
391 |
msgid "This is larger than the maximum size. Please try another."
|
392 |
msgstr "Dit is groter dan de maximum grootte. Probeer aub een ander."
|
393 |
|
394 |
# @ default
|
395 |
+
#: ../admin/class-ngg-admin-launcher.php:285
|
396 |
msgid "An error occurred in the upload. Please try again later."
|
397 |
msgstr "Een fout is opgetreden tijdens het uploaden. Probeer eens opnieuw."
|
398 |
|
399 |
# @ default
|
400 |
+
#: ../admin/class-ngg-admin-launcher.php:286
|
401 |
msgid ""
|
402 |
"There was a configuration error. Please contact the server administrator."
|
403 |
msgstr "Er was een configuratiefout. Contacteer de server administrator."
|
404 |
|
405 |
# @ default
|
406 |
+
#: ../admin/class-ngg-admin-launcher.php:287
|
407 |
msgid "You may only upload 1 file."
|
408 |
msgstr "Je mag slechts 1 bestand uploaden."
|
409 |
|
410 |
# @ default
|
411 |
+
#: ../admin/class-ngg-admin-launcher.php:288
|
412 |
msgid "HTTP error."
|
413 |
msgstr "HTT-fout."
|
414 |
|
415 |
# @ default
|
416 |
+
#: ../admin/class-ngg-admin-launcher.php:289
|
417 |
msgid "Upload failed."
|
418 |
msgstr "Upload mislukt."
|
419 |
|
420 |
# @ default
|
421 |
+
#: ../admin/class-ngg-admin-launcher.php:290
|
422 |
msgid "IO error."
|
423 |
msgstr "IO-fout."
|
424 |
|
425 |
# @ default
|
426 |
+
#: ../admin/class-ngg-admin-launcher.php:291
|
427 |
msgid "Security error."
|
428 |
msgstr "Beveiligingsfout"
|
429 |
|
430 |
# @ default
|
431 |
+
#: ../admin/class-ngg-admin-launcher.php:292
|
432 |
msgid "File canceled."
|
433 |
msgstr "Bestand geannuleerd."
|
434 |
|
435 |
# @ default
|
436 |
+
#: ../admin/class-ngg-admin-launcher.php:293
|
437 |
msgid "Upload stopped."
|
438 |
msgstr "Upload onderbroken."
|
439 |
|
440 |
# @ default
|
441 |
+
#: ../admin/class-ngg-admin-launcher.php:294
|
442 |
msgid "Dismiss"
|
443 |
msgstr "Negeren"
|
444 |
|
445 |
# @ default
|
446 |
+
#: ../admin/class-ngg-admin-launcher.php:295
|
447 |
msgid "Crunching…"
|
448 |
msgstr "Bewerken…"
|
449 |
|
450 |
# @ default
|
451 |
+
#: ../admin/class-ngg-admin-launcher.php:296
|
452 |
msgid "moved to the trash."
|
453 |
msgstr "verplaatst naar prullenbak."
|
454 |
|
455 |
# @ default
|
456 |
+
#: ../admin/class-ngg-admin-launcher.php:297
|
457 |
#, php-format
|
458 |
msgid "“%s” has failed to upload due to an error"
|
459 |
msgstr "“%s” is niet geupload omwille van een fout"
|
460 |
|
461 |
# @ nggallery
|
462 |
+
#: ../admin/class-ngg-admin-launcher.php:321 ../nggallery.php:488
|
463 |
msgid "L O A D I N G"
|
464 |
msgstr "L A D E N"
|
465 |
|
466 |
# @ nggallery
|
467 |
+
#: ../admin/class-ngg-admin-launcher.php:322 ../nggallery.php:489
|
468 |
msgid "Click to Close"
|
469 |
msgstr "Klik om te sluiten"
|
470 |
|
471 |
+
#: ../admin/class-ngg-admin-launcher.php:424
|
472 |
msgid ""
|
473 |
"Welcome to your NextCellent Dashboard! This screen gives you all kinds of "
|
474 |
"information about NextCellent at glance. You can get help for any screen by "
|
478 |
"over NextCellent in een ogenblik. Je kan meer hulp voor elk scherm krijgen "
|
479 |
"door op Help te drukken in de rechterbovenhoek."
|
480 |
|
481 |
+
#: ../admin/class-ngg-admin-launcher.php:433
|
482 |
msgid "The boxes on your overview screen are:"
|
483 |
msgstr "De hokjes op je overzichtsscherm zijn:"
|
484 |
|
485 |
# @ nggallery
|
486 |
+
#: ../admin/class-ngg-admin-launcher.php:434
|
487 |
+
#: ../admin/class-ngg-overview.php:13
|
488 |
msgid "At a Glance"
|
489 |
msgstr "In een oogopslag"
|
490 |
|
491 |
+
#: ../admin/class-ngg-admin-launcher.php:435
|
492 |
msgid ""
|
493 |
"Shows some general information about your site, such as the number of "
|
494 |
"pictures, albums and galleries."
|
497 |
"albums en galerijen."
|
498 |
|
499 |
# @ nggallery
|
500 |
+
#: ../admin/class-ngg-admin-launcher.php:437
|
501 |
+
#: ../admin/class-ngg-overview.php:21
|
502 |
msgid "Latest News"
|
503 |
msgstr "Laatste nieuws"
|
504 |
|
505 |
+
#: ../admin/class-ngg-admin-launcher.php:438
|
506 |
msgid "The latest NextCellent news."
|
507 |
msgstr "Laatste nieuws omtrent NextCellent."
|
508 |
|
509 |
# @ nggallery
|
510 |
+
#: ../admin/class-ngg-admin-launcher.php:440
|
511 |
+
#: ../admin/class-ngg-overview.php:34
|
512 |
msgid "Related plugins"
|
513 |
msgstr "Gerelateerde plugins"
|
514 |
|
515 |
+
#: ../admin/class-ngg-admin-launcher.php:441
|
516 |
msgid "Shows plugins that extend NextCellent."
|
517 |
msgstr "Toont plug-ins die werken met NextCellent."
|
518 |
|
519 |
+
#: ../admin/class-ngg-admin-launcher.php:442
|
520 |
msgid "Pay attention"
|
521 |
msgstr "Aandacht"
|
522 |
|
523 |
+
#: ../admin/class-ngg-admin-launcher.php:443
|
524 |
#, php-format
|
525 |
msgid ""
|
526 |
"third parties plugins that are compatible with NGG may not be "
|
527 |
"100% compatible with NextCellent Gallery!"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: ../admin/class-ngg-admin-launcher.php:446
|
531 |
+
#: ../admin/class-ngg-overview.php:17
|
532 |
msgid "Help me help YOU!"
|
533 |
msgstr "Help mij JOU te helpen!"
|
534 |
|
535 |
+
#: ../admin/class-ngg-admin-launcher.php:447
|
536 |
msgid "Shows general information about he plugin and some links."
|
537 |
msgstr "Toont algemene informatie over de plug-in en sommige links."
|
538 |
|
539 |
# @ nggallery
|
540 |
+
#: ../admin/class-ngg-admin-launcher.php:450
|
541 |
msgid "Translation"
|
542 |
msgstr "Vertaling"
|
543 |
|
544 |
+
#: ../admin/class-ngg-admin-launcher.php:451
|
545 |
msgid "View information about the current translation."
|
546 |
msgstr "Bekijk informatie over de huidige vertaling."
|
547 |
|
548 |
# @ nggallery
|
549 |
+
#: ../admin/class-ngg-admin-launcher.php:454
|
550 |
+
#: ../admin/class-ngg-overview.php:30
|
551 |
msgid "Server Settings"
|
552 |
msgstr "Server Instellingen"
|
553 |
|
554 |
# @ nggallery
|
555 |
+
#: ../admin/class-ngg-admin-launcher.php:455
|
556 |
msgid "Show all the server settings!."
|
557 |
msgstr "Toon alle serverinstellingen."
|
558 |
|
559 |
# @ nggallery
|
560 |
+
#: ../admin/class-ngg-admin-launcher.php:457
|
561 |
+
#: ../admin/class-ngg-overview.php:26
|
562 |
msgid "Plugin Check"
|
563 |
msgstr "Plugin controle"
|
564 |
|
565 |
+
#: ../admin/class-ngg-admin-launcher.php:458
|
566 |
msgid "Check if there are known errors in your installation."
|
567 |
msgstr "Kijk of er fouten in je installatie zijn."
|
568 |
|
569 |
+
#: ../admin/class-ngg-admin-launcher.php:476
|
570 |
msgid "On this page you can add galleries and pictures to those galleries."
|
571 |
msgstr ""
|
572 |
"Op deze pagina kan je galerijen en afbeeldingen aan die galerijen toevoegen."
|
573 |
|
574 |
+
#: ../admin/class-ngg-admin-launcher.php:480
|
575 |
msgid "Add new galleries to NextCellent."
|
576 |
msgstr "Voeg nieuwe galerijen toe aan NextCellent."
|
577 |
|
578 |
+
#: ../admin/class-ngg-admin-launcher.php:484
|
579 |
msgid "You must add a gallery before adding images!"
|
580 |
msgstr "Je moet een galerij toevoegen voor je afbeeldingen toevoegt!"
|
581 |
|
582 |
# @ nggallery
|
583 |
+
#: ../admin/class-ngg-admin-launcher.php:488
|
584 |
msgid "Add new images to a gallery."
|
585 |
msgstr "Voeg nieuwe afbeeldingen toe aan een galerij."
|
586 |
|
587 |
+
#: ../admin/class-ngg-admin-launcher.php:492
|
588 |
msgid "Add images from a ZIP file."
|
589 |
msgstr "Voeg afbeeldingen van een zip-bestand toe."
|
590 |
|
591 |
# @ nggallery
|
592 |
+
#: ../admin/class-ngg-admin-launcher.php:496
|
593 |
msgid "Import a folder from the server as a new gallery."
|
594 |
msgstr "Importeer een map vanop de server als een nieuwe galerij."
|
595 |
|
596 |
# @ nggallery
|
597 |
+
#: ../admin/class-ngg-admin-launcher.php:533
|
598 |
msgid "Manage your images and galleries."
|
599 |
msgstr "Beheer je afbeeldingen en galerijen."
|
600 |
|
601 |
# @ nggallery
|
602 |
+
#: ../admin/class-ngg-admin-launcher.php:542
|
603 |
msgid "Organize your galleries into albums."
|
604 |
msgstr "Organiseer je galerijen in albums."
|
605 |
|
606 |
+
#: ../admin/class-ngg-admin-launcher.php:543
|
607 |
msgid ""
|
608 |
"First select an album from the dropdown and then drag the galleries you want "
|
609 |
"to add or remove from the selected album."
|
612 |
"wilt toevoegen of verwijderen naar en van het album."
|
613 |
|
614 |
# @ nggallery
|
615 |
+
#: ../admin/class-ngg-admin-launcher.php:553
|
616 |
msgid "Organize your pictures with tags."
|
617 |
msgstr "Organiseer je afbeeldingen met tags."
|
618 |
|
619 |
+
#: ../admin/class-ngg-admin-launcher.php:554
|
620 |
msgid "Rename, delete and edit tags. Use the rename function to merge tags."
|
621 |
msgstr ""
|
622 |
"Henroem, verwijder en bewerk tags. Gebruik de functie hernoemen om tags "
|
623 |
"samen te voegen."
|
624 |
|
625 |
+
#: ../admin/class-ngg-admin-launcher.php:564
|
626 |
msgid ""
|
627 |
"Edit all of NextCellent's options. The options are sorted in multiple "
|
628 |
"categories."
|
631 |
"categorie."
|
632 |
|
633 |
# @ nggallery
|
634 |
+
#: ../admin/class-ngg-admin-launcher.php:566
|
635 |
+
#: ../admin/class-ngg-options.php:204
|
636 |
msgid "General"
|
637 |
msgstr "Algemeen"
|
638 |
|
639 |
+
#: ../admin/class-ngg-admin-launcher.php:567
|
640 |
msgid ""
|
641 |
"General NextCellent options. Contains options for permalinks and related "
|
642 |
"images."
|
643 |
msgstr "Algemene opties. Bevat permalinks en gerelateerde afbeeldingen."
|
644 |
|
645 |
+
#: ../admin/class-ngg-admin-launcher.php:570
|
646 |
msgid "All image-related options. Also contains options for thumbnails."
|
647 |
msgstr ""
|
648 |
"Alle opties met betrekking tot afbeeldingen. Bevat ook opties voor "
|
650 |
|
651 |
# @ nggallery
|
652 |
# @ default
|
653 |
+
#: ../admin/class-ngg-admin-launcher.php:572
|
654 |
+
#: ../admin/class-ngg-options.php:206 ../admin/class-ngg-overview.php:59
|
655 |
+
#: ../admin/functions.php:213 ../admin/functions.php:375
|
656 |
+
#: ../admin/manage/class-ngg-image-manager.php:151
|
657 |
+
#: ../admin/tinymce/window.php:117 ../admin/tinymce/window.php:150
|
658 |
+
#: ../admin/tinymce/window.php:274 ../admin/tinymce/window.php:395
|
659 |
+
#: ../admin/tinymce/window.php:446 ../lib/rewrite.php:220
|
660 |
+
#: ../lib/rewrite.php:229 ../nggallery.php:421
|
661 |
msgid "Gallery"
|
662 |
msgstr "Galerij"
|
663 |
|
664 |
+
#: ../admin/class-ngg-admin-launcher.php:573
|
665 |
msgid ""
|
666 |
"Everything about galleries. From sorting options to the number of images, "
|
667 |
"it's all in here."
|
670 |
"allemaal hier."
|
671 |
|
672 |
# @ nggallery
|
673 |
+
#: ../admin/class-ngg-admin-launcher.php:575
|
674 |
+
#: ../admin/class-ngg-options.php:207 ../admin/class-ngg-options.php:578
|
675 |
msgid "Effects"
|
676 |
msgstr "Effecten"
|
677 |
|
678 |
+
#: ../admin/class-ngg-admin-launcher.php:576
|
679 |
msgid "Make your gallery look beautiful."
|
680 |
msgstr "Laat je galerij er prachtig uitzien."
|
681 |
|
682 |
# @ nggallery
|
683 |
+
#: ../admin/class-ngg-admin-launcher.php:578
|
684 |
+
#: ../admin/class-ngg-options.php:208 ../admin/class-ngg-options.php:625
|
685 |
+
#: ../admin/tinymce/window.php:326
|
686 |
msgid "Watermark"
|
687 |
msgstr "Watermerk"
|
688 |
|
689 |
+
#: ../admin/class-ngg-admin-launcher.php:579
|
690 |
msgid "Who doesn't want theft-proof images?"
|
691 |
msgstr "Wie wilt er geen diefstal-bestendige afbeeldingen?"
|
692 |
|
693 |
# @ nggallery
|
694 |
+
#: ../admin/class-ngg-admin-launcher.php:581
|
695 |
+
#: ../admin/class-ngg-options.php:209 ../admin/class-ngg-options.php:462
|
696 |
+
#: ../admin/class-ngg-options.php:488 ../admin/class-ngg-options.php:777
|
697 |
+
#: ../admin/tinymce/window.php:156 ../lib/rewrite.php:218
|
698 |
+
#: ../widgets/class-ngg-slideshow-widget.php:28
|
699 |
+
#: ../widgets/class-ngg-slideshow-widget.php:93
|
700 |
msgid "Slideshow"
|
701 |
msgstr "Slideshow"
|
702 |
|
703 |
+
#: ../admin/class-ngg-admin-launcher.php:582
|
704 |
msgid "Edit options for the slideshow."
|
705 |
msgstr "Verander opties voor de diavoorstelling."
|
706 |
|
707 |
+
#: ../admin/class-ngg-admin-launcher.php:583
|
708 |
msgid "Don't forget to press save!"
|
709 |
msgstr "Vergeet niet om op opslaan te drukken!"
|
710 |
|
711 |
+
#: ../admin/class-ngg-admin-launcher.php:592
|
712 |
msgid "You can edit the css file to adjust how your gallery looks."
|
713 |
msgstr ""
|
714 |
"Je kan het css-bestand wijzigen om het uitzien van je galerij te veranderen."
|
715 |
|
716 |
+
#: ../admin/class-ngg-admin-launcher.php:594
|
717 |
msgid ""
|
718 |
"When you save an edited file, NextCellent automatically saves it as a copy "
|
719 |
"in the folder ngg_styles. This protects your changes from upgrades."
|
722 |
"als een kopie in de map ngg_styles. Dit beschermt je wijzigingen van "
|
723 |
"upgrades."
|
724 |
|
725 |
+
#: ../admin/class-ngg-admin-launcher.php:604
|
726 |
msgid ""
|
727 |
"You can assign the lowest user role that has access to a certain feature. "
|
728 |
"Needless to say, all greater user roles will also have access to that "
|
731 |
"Je kan de laagste rol aanduiden die toegang heeft tot een functie. Alle "
|
732 |
"hogere rollen zullen ook toegang hebben."
|
733 |
|
734 |
+
#: ../admin/class-ngg-admin-launcher.php:606
|
735 |
msgid ""
|
736 |
"NextCellent also works with various plugins that extend the default roles "
|
737 |
"capabilities."
|
739 |
"NextCellent werkt ook met verschillende plug-ins die het rollensysteem nog "
|
740 |
"uitbreiden."
|
741 |
|
742 |
+
#: ../admin/class-ngg-admin-launcher.php:616
|
743 |
msgid ""
|
744 |
"If 'someone' messed with your settings (yeah, definitely not you), you can "
|
745 |
"reset them here."
|
747 |
"Als 'iemand' (jij zeker niet) je instellingen verknoeit heeft, kan je ze "
|
748 |
"hier resetten."
|
749 |
|
750 |
+
#: ../admin/class-ngg-admin-launcher.php:618
|
751 |
msgid "Attention!"
|
752 |
msgstr "Aandacht!"
|
753 |
|
754 |
+
#: ../admin/class-ngg-admin-launcher.php:619
|
755 |
msgid ""
|
756 |
"You should not use the Uninstall Plugin button, unless you know what you're "
|
757 |
"doing! It should never be necessary to press it."
|
758 |
msgstr "Je zou de knop Verwijderen nooit moeten gebruiken!"
|
759 |
|
760 |
# @ nggallery
|
761 |
+
#: ../admin/class-ngg-admin-launcher.php:632
|
762 |
msgid "For more information:"
|
763 |
msgstr "Voor meer informatie:"
|
764 |
|
765 |
+
#: ../admin/class-ngg-admin-launcher.php:633
|
766 |
msgid "Support Forums"
|
767 |
msgstr "Ondersteuningsforums"
|
768 |
|
769 |
# @ nggallery
|
770 |
+
#: ../admin/class-ngg-admin-launcher.php:635
|
771 |
msgid "Source Code"
|
772 |
msgstr "Broncode"
|
773 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
774 |
# @ nggallery
|
775 |
+
#: ../admin/class-ngg-album-manager.php:92
|
776 |
+
#: ../admin/class-ngg-album-manager.php:112
|
777 |
+
#: ../admin/class-ngg-album-manager.php:161
|
778 |
msgid "Updated successfully"
|
779 |
msgstr "Met succes bijgewerkt"
|
780 |
|
781 |
# @ nggallery
|
782 |
+
#: ../admin/class-ngg-album-manager.php:131
|
783 |
msgid "Album deleted"
|
784 |
msgstr "Album verwijderd"
|
785 |
|
786 |
# @ nggallery
|
787 |
+
#: ../admin/class-ngg-album-manager.php:277 ../admin/class-ngg-roles.php:47
|
788 |
msgid "Edit Album"
|
789 |
msgstr "Album bewerken"
|
790 |
|
791 |
# @ nggallery
|
792 |
+
#: ../admin/class-ngg-album-manager.php:294
|
793 |
+
#: ../admin/class-ngg-album-manager.php:352
|
794 |
msgid "Select album"
|
795 |
msgstr "Selecteer album"
|
796 |
|
797 |
# @ nggallery
|
798 |
+
#: ../admin/class-ngg-album-manager.php:296
|
799 |
msgid "No album selected"
|
800 |
msgstr "Geen album geselecteerd"
|
801 |
|
802 |
# @ nggallery
|
803 |
# @ default
|
804 |
+
#: ../admin/class-ngg-album-manager.php:307
|
|
|
805 |
msgid "Update"
|
806 |
msgstr "Bijwerken"
|
807 |
|
808 |
# @ nggallery
|
809 |
+
#: ../admin/class-ngg-album-manager.php:310
|
810 |
msgid "Edit album"
|
811 |
msgstr "Album bewerken"
|
812 |
|
813 |
# @ nggallery
|
814 |
# @ default
|
815 |
+
#: ../admin/class-ngg-album-manager.php:314
|
816 |
+
#: ../admin/class-ngg-tag-manager.php:229
|
817 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:210
|
818 |
+
#: ../admin/manage/class-ngg-image-list-table.php:285
|
819 |
msgid "Delete"
|
820 |
msgstr "Verwijder"
|
821 |
|
822 |
# @ nggallery
|
823 |
+
#: ../admin/class-ngg-album-manager.php:320
|
824 |
msgid "Add new album"
|
825 |
msgstr "Nieuw album toevoegen"
|
826 |
|
827 |
# @ nggallery
|
828 |
+
#: ../admin/class-ngg-album-manager.php:322
|
829 |
msgid "Add"
|
830 |
msgstr "Toevoegen"
|
831 |
|
832 |
# @ nggallery
|
833 |
+
#: ../admin/class-ngg-album-manager.php:334
|
834 |
msgid "Show / hide used galleries"
|
835 |
msgstr "Toon / verberg gebruikte gallerys"
|
836 |
|
837 |
# @ nggallery
|
838 |
+
#: ../admin/class-ngg-album-manager.php:335
|
839 |
msgid "[Show all]"
|
840 |
msgstr "[Toon alle]"
|
841 |
|
842 |
# @ nggallery
|
843 |
+
#: ../admin/class-ngg-album-manager.php:336
|
844 |
msgid "Maximize the widget content"
|
845 |
msgstr "De widget inhoud maximaliseren"
|
846 |
|
847 |
# @ nggallery
|
848 |
+
#: ../admin/class-ngg-album-manager.php:337
|
849 |
msgid "[Maximize]"
|
850 |
msgstr "[Maximaliseer]"
|
851 |
|
852 |
# @ nggallery
|
853 |
+
#: ../admin/class-ngg-album-manager.php:338
|
854 |
msgid "Minimize the widget content"
|
855 |
msgstr "De widget inhoud minimaliseren"
|
856 |
|
857 |
# @ nggallery
|
858 |
+
#: ../admin/class-ngg-album-manager.php:339
|
859 |
msgid "[Minimize]"
|
860 |
msgstr "[Minimaliseer]"
|
861 |
|
862 |
# @ nggallery
|
863 |
+
#: ../admin/class-ngg-album-manager.php:341
|
864 |
msgid ""
|
865 |
"After you create and select a album, you can drag and drop a gallery or "
|
866 |
"another album into your new album below"
|
869 |
"album naar je nieuwe album hieronder slepen"
|
870 |
|
871 |
# @ nggallery
|
872 |
+
#: ../admin/class-ngg-album-manager.php:368
|
873 |
msgid "Select gallery"
|
874 |
msgstr "Selecteer galerij"
|
875 |
|
876 |
# @ nggallery
|
877 |
+
#: ../admin/class-ngg-album-manager.php:398
|
878 |
msgid "Album ID"
|
879 |
msgstr "Album ID"
|
880 |
|
881 |
# @ nggallery
|
882 |
+
#: ../admin/class-ngg-album-manager.php:412
|
883 |
msgid "No album selected!"
|
884 |
msgstr "Geen album geselecteerd"
|
885 |
|
886 |
# @ nggallery
|
887 |
+
#: ../admin/class-ngg-album-manager.php:436
|
888 |
msgid "Album name:"
|
889 |
msgstr "Album naam:"
|
890 |
|
891 |
# @ nggallery
|
892 |
+
#: ../admin/class-ngg-album-manager.php:442
|
893 |
msgid "Album description:"
|
894 |
msgstr "Album omschrijving:"
|
895 |
|
896 |
# @ nggallery
|
897 |
+
#: ../admin/class-ngg-album-manager.php:448
|
898 |
msgid "Select a preview image:"
|
899 |
msgstr "Selecteer een afbeelding om vooraf te bekijken:"
|
900 |
|
901 |
# @ nggallery
|
902 |
+
#: ../admin/class-ngg-album-manager.php:451
|
903 |
+
#: ../admin/class-ngg-album-manager.php:454
|
904 |
msgid "No picture"
|
905 |
msgstr "Geen afbeelding"
|
906 |
|
907 |
# @ nggallery
|
908 |
+
#: ../admin/class-ngg-album-manager.php:466
|
909 |
msgid "Page Link to"
|
910 |
msgstr "Pagina Link naar"
|
911 |
|
912 |
# @ nggallery
|
913 |
+
#: ../admin/class-ngg-album-manager.php:468
|
914 |
+
#: ../admin/manage/class-ngg-image-manager.php:168
|
915 |
msgid "Not linked"
|
916 |
msgstr "Niet gelinkt"
|
917 |
|
918 |
# @ nggallery
|
919 |
+
#: ../admin/class-ngg-album-manager.php:482
|
920 |
+
#: ../admin/manage/class-ngg-manager.php:308
|
|
|
|
|
921 |
msgid "OK"
|
922 |
msgstr "OK"
|
923 |
|
924 |
# @ nggallery
|
925 |
+
#: ../admin/class-ngg-album-manager.php:485
|
926 |
+
#: ../admin/manage/class-ngg-manager.php:300 ../admin/tinymce/window.php:469
|
|
|
|
|
|
|
927 |
msgid "Cancel"
|
928 |
msgstr "Annuleren"
|
929 |
|
930 |
# @ nggallery
|
931 |
# @ default
|
932 |
+
#: ../admin/class-ngg-album-manager.php:582
|
933 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:153
|
934 |
+
#: ../admin/manage/class-ngg-image-manager.php:160 ../lib/meta.php:457
|
935 |
+
#: ../widgets/class-ngg-media-rss-widget.php:90
|
936 |
msgid "Title"
|
937 |
msgstr "Titel"
|
938 |
|
939 |
# @ nggallery
|
940 |
+
#: ../admin/class-ngg-album-manager.php:584 ../lib/rewrite.php:232
|
941 |
msgid "Page"
|
942 |
msgstr "Pagina"
|
943 |
|
944 |
# @ nggallery
|
945 |
+
#: ../admin/class-ngg-installer.php:29
|
946 |
+
msgid "Sorry, NextCellent Gallery works only with a role called administrator"
|
947 |
+
msgstr ""
|
948 |
+
"Helaas, NextCellent Gallery werkt enkel met een rol genaamd administrator"
|
949 |
|
950 |
# @ nggallery
|
951 |
+
#: ../admin/class-ngg-installer.php:112
|
952 |
+
msgid ""
|
953 |
+
"NextCellent Gallery : Tables could not created, please check your database "
|
954 |
+
"settings"
|
955 |
+
msgstr ""
|
956 |
+
"NextCellent Gallery: tabellen kunnen niet gemaakt worden, controleer je "
|
957 |
+
"database-instellingen"
|
958 |
|
959 |
# @ nggallery
|
960 |
+
#: ../admin/class-ngg-installer.php:172
|
961 |
+
msgid "[Show as slideshow]"
|
962 |
+
msgstr "[Toon als slideshow]"
|
963 |
|
964 |
# @ nggallery
|
965 |
+
#: ../admin/class-ngg-installer.php:173
|
966 |
+
msgid "[Show picture list]"
|
967 |
+
msgstr "[Toon afbeeldingen lijst]"
|
|
|
968 |
|
969 |
# @ nggallery
|
970 |
+
#: ../admin/class-ngg-options.php:72
|
971 |
+
msgid "Settings updated successfully"
|
972 |
+
msgstr "Met succes bijgewerkt"
|
973 |
|
974 |
# @ nggallery
|
975 |
+
#: ../admin/class-ngg-options.php:90
|
976 |
+
msgid "Cache cleared"
|
977 |
+
msgstr "Cache leeg gemaakt"
|
|
|
|
|
|
|
978 |
|
979 |
# @ nggallery
|
980 |
+
#: ../admin/class-ngg-options.php:222
|
981 |
+
msgid "General settings"
|
982 |
+
msgstr "Instellingen"
|
983 |
|
984 |
# @ nggallery
|
985 |
+
#: ../admin/class-ngg-options.php:228 ../admin/wpmu.php:85
|
986 |
+
msgid "Gallery path"
|
987 |
+
msgstr "Galerij pad"
|
988 |
|
989 |
# @ nggallery
|
990 |
+
#: ../admin/class-ngg-options.php:231
|
991 |
+
msgid "This is the default path for all galleries"
|
992 |
+
msgstr "Dit is het standaard pad voor alle galerijen"
|
993 |
|
994 |
# @ nggallery
|
995 |
+
#: ../admin/class-ngg-options.php:235 ../admin/wpmu.php:95
|
996 |
+
msgid "Silent database upgrade"
|
997 |
+
msgstr "Databank in stilte bijwerken"
|
998 |
+
|
999 |
+
#: ../admin/class-ngg-options.php:238 ../admin/wpmu.php:98
|
1000 |
+
msgid "Update the database without notice."
|
1001 |
+
msgstr "Werk de databank bij zonder melding."
|
1002 |
|
1003 |
# @ nggallery
|
1004 |
+
#: ../admin/class-ngg-options.php:242
|
1005 |
+
msgid "Image files"
|
1006 |
+
msgstr "Afbeeldingsbestanden"
|
1007 |
|
1008 |
# @ nggallery
|
1009 |
+
#: ../admin/class-ngg-options.php:246
|
1010 |
+
msgid "Delete files when removing a gallery from the database"
|
1011 |
+
msgstr "Verwijder bestanden, als een galerij in de database verwijderd wordt."
|
1012 |
|
1013 |
# @ nggallery
|
1014 |
+
#: ../admin/class-ngg-options.php:251
|
1015 |
+
msgid "Select graphic library"
|
1016 |
+
msgstr "Selecteer grafische bibliotheek"
|
1017 |
|
1018 |
# @ nggallery
|
1019 |
+
#: ../admin/class-ngg-options.php:256
|
1020 |
+
msgid "GD Library"
|
1021 |
+
msgstr "GD bibliotheek"
|
1022 |
|
1023 |
# @ nggallery
|
1024 |
+
#: ../admin/class-ngg-options.php:260
|
1025 |
+
msgid "ImageMagick (Experimental)"
|
1026 |
+
msgstr "ImageMagick (Experimenteel)"
|
|
|
|
|
|
|
|
|
|
|
1027 |
|
1028 |
# @ nggallery
|
1029 |
+
#: ../admin/class-ngg-options.php:264
|
1030 |
+
msgid "Path to the ImageMagick library:"
|
1031 |
+
msgstr "Locatie van de bibliotheek:"
|
|
|
1032 |
|
1033 |
# @ nggallery
|
1034 |
+
#: ../admin/class-ngg-options.php:270
|
1035 |
+
msgid "Media RSS feed"
|
1036 |
+
msgstr "Media-RSS-feed"
|
1037 |
|
1038 |
# @ nggallery
|
1039 |
+
#: ../admin/class-ngg-options.php:273
|
1040 |
+
msgid "Add a RSS feed to you blog header. Useful for CoolIris/PicLens"
|
1041 |
+
msgstr ""
|
1042 |
+
"Een RSS-feed wordt toegevoegd aan je header. Handig voor CoolIris/PicLens"
|
1043 |
|
1044 |
+
# @ nggallery
|
1045 |
+
#: ../admin/class-ngg-options.php:277
|
1046 |
+
msgid "PicLens/CoolIris"
|
1047 |
+
msgstr "PicLens/CoolIris"
|
1048 |
|
1049 |
+
#: ../admin/class-ngg-options.php:280
|
1050 |
+
msgid "Include support for PicLens and CoolIris"
|
1051 |
+
msgstr "Inclusief ondersteuning voor PicLens en CoolIris"
|
1052 |
|
1053 |
# @ nggallery
|
1054 |
+
#: ../admin/class-ngg-options.php:281
|
1055 |
+
msgid ""
|
1056 |
+
"When activated, JavaScript is added to your site footer. Make sure that "
|
1057 |
+
"wp_footer is called in your theme."
|
1058 |
+
msgstr ""
|
1059 |
+
"Als je deze optie activeert, wordt wat javascript toegevoegd aan je footer. "
|
1060 |
+
"Verzeker je ervan dat wp_footer wordt aangeroepen in je thema"
|
1061 |
|
1062 |
# @ nggallery
|
1063 |
+
#: ../admin/class-ngg-options.php:285
|
1064 |
+
msgid "Permalinks"
|
1065 |
+
msgstr "Permalinks"
|
1066 |
|
1067 |
# @ nggallery
|
1068 |
+
#: ../admin/class-ngg-options.php:288
|
1069 |
+
msgid "Use permalinks"
|
1070 |
+
msgstr "Gebruik permalinks"
|
1071 |
+
|
1072 |
+
#: ../admin/class-ngg-options.php:291
|
1073 |
+
msgid "Adds a static link to all images"
|
1074 |
+
msgstr "Voegt een statische link toe aan alle afbeeldingen"
|
1075 |
|
1076 |
# @ nggallery
|
1077 |
+
#: ../admin/class-ngg-options.php:292
|
1078 |
+
msgid ""
|
1079 |
+
"When activating this option, you need to update your permalink structure once"
|
1080 |
+
msgstr ""
|
1081 |
+
"Als je deze optie activeert, is het nodig eenmalig je permalinkstructuur te "
|
1082 |
+
"updaten."
|
1083 |
|
1084 |
# @ nggallery
|
1085 |
+
#: ../admin/class-ngg-options.php:296
|
1086 |
+
msgid "Gallery slug:"
|
1087 |
+
msgstr "Galerijslug:"
|
1088 |
|
1089 |
# @ nggallery
|
1090 |
+
#: ../admin/class-ngg-options.php:302
|
1091 |
+
msgid "Recreate URLs"
|
1092 |
+
msgstr "URL's hermaken"
|
1093 |
|
1094 |
# @ nggallery
|
1095 |
+
#: ../admin/class-ngg-options.php:304
|
1096 |
+
msgid "Start now »"
|
1097 |
+
msgstr "Nu starten"
|
|
|
|
|
1098 |
|
1099 |
# @ nggallery
|
1100 |
+
#: ../admin/class-ngg-options.php:305
|
1101 |
+
msgid "If you've changed these settings, you'll have to recreate the URLs."
|
1102 |
+
msgstr "Als je deze instellingen hebt aangepast, zal de URL's moeten hermaken."
|
1103 |
|
1104 |
# @ nggallery
|
1105 |
+
#: ../admin/class-ngg-options.php:309
|
1106 |
+
msgid "Related images"
|
1107 |
+
msgstr "Gerelateerde afbeeldingen"
|
|
|
1108 |
|
1109 |
# @ nggallery
|
1110 |
+
#: ../admin/class-ngg-options.php:312
|
1111 |
+
msgid "Add related images"
|
1112 |
+
msgstr "Voeg gerelateerde afbeeldingen toe"
|
1113 |
|
1114 |
# @ nggallery
|
1115 |
+
#: ../admin/class-ngg-options.php:315
|
1116 |
+
msgid "This will add related images to every post"
|
1117 |
+
msgstr "Deze optie zal gerelateerde afbeeldingen toevoegen aan elk bericht"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1118 |
|
1119 |
# @ nggallery
|
1120 |
+
#: ../admin/class-ngg-options.php:319
|
1121 |
+
msgid "Match with"
|
1122 |
+
msgstr "Matchen met"
|
1123 |
|
1124 |
# @ nggallery
|
1125 |
+
#: ../admin/class-ngg-options.php:324
|
1126 |
+
msgid "Categories"
|
1127 |
+
msgstr "Categorieën"
|
1128 |
|
1129 |
# @ nggallery
|
1130 |
+
#: ../admin/class-ngg-options.php:335
|
1131 |
+
msgid "Max. number of images"
|
1132 |
+
msgstr "Max. aantal afbeeldingen"
|
|
|
|
|
1133 |
|
1134 |
# @ nggallery
|
1135 |
+
#: ../admin/class-ngg-options.php:338
|
1136 |
+
msgid "0 will show all images"
|
1137 |
+
msgstr "0 zal alle afbeeldingen tonen"
|
1138 |
|
1139 |
# @ nggallery
|
1140 |
+
# @ default
|
1141 |
+
#: ../admin/class-ngg-options.php:342 ../admin/class-ngg-options.php:422
|
1142 |
+
#: ../admin/class-ngg-options.php:568 ../admin/class-ngg-options.php:609
|
1143 |
+
#: ../admin/class-ngg-options.php:727 ../admin/class-ngg-options.php:886
|
1144 |
+
#: ../admin/manage/class-ngg-image-list-table.php:95
|
1145 |
+
#: ../admin/manage/class-ngg-image-manager.php:245 ../admin/wpmu.php:149
|
1146 |
+
msgid "Save Changes"
|
1147 |
+
msgstr "Bijwerken"
|
1148 |
|
1149 |
# @ nggallery
|
1150 |
+
#: ../admin/class-ngg-options.php:352
|
1151 |
+
msgid "Image settings"
|
1152 |
+
msgstr "Afbeeldings instellingen"
|
1153 |
|
1154 |
# @ nggallery
|
1155 |
+
#: ../admin/class-ngg-options.php:358
|
1156 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:213
|
1157 |
+
#: ../admin/manage/class-ngg-image-list-table.php:303
|
1158 |
+
#: ../admin/manage/class-ngg-manager.php:194
|
1159 |
+
#: ../admin/manage/class-ngg-manager.php:349
|
1160 |
+
msgid "Resize images"
|
1161 |
+
msgstr "Formaat afbeeldingen aanpassen"
|
1162 |
|
1163 |
# @ nggallery
|
1164 |
+
#: ../admin/class-ngg-options.php:360 ../admin/class-ngg-options.php:396
|
1165 |
+
#: ../admin/class-ngg-options.php:789 ../admin/manage/actions.php:309
|
1166 |
+
#: ../admin/manage/class-ngg-manager.php:60
|
1167 |
+
#: ../admin/manage/class-ngg-manager.php:83 ../admin/tinymce/window.php:207
|
1168 |
+
#: ../admin/tinymce/window.php:315
|
1169 |
+
msgid "Width"
|
1170 |
+
msgstr "Breedte"
|
1171 |
|
1172 |
# @ nggallery
|
1173 |
+
#: ../admin/class-ngg-options.php:362 ../admin/class-ngg-options.php:398
|
1174 |
+
#: ../admin/class-ngg-options.php:791 ../admin/manage/actions.php:318
|
1175 |
+
#: ../admin/manage/class-ngg-manager.php:62
|
1176 |
+
#: ../admin/manage/class-ngg-manager.php:85 ../admin/tinymce/window.php:208
|
1177 |
+
#: ../admin/tinymce/window.php:317
|
1178 |
+
msgid "Height"
|
1179 |
+
msgstr "Hoogte"
|
1180 |
|
1181 |
# @ nggallery
|
1182 |
+
#: ../admin/class-ngg-options.php:364 ../admin/manage/class-ngg-manager.php:65
|
|
|
|
|
1183 |
msgid ""
|
1184 |
+
"Width and height (in pixels). NextCellent Gallery will keep the ratio size."
|
1185 |
msgstr ""
|
1186 |
+
"Breedte en hoogte (in pixels). NextCellent Gallery zal de verhoudingen "
|
1187 |
+
"respecteren."
|
1188 |
|
1189 |
# @ nggallery
|
1190 |
+
#: ../admin/class-ngg-options.php:368
|
1191 |
+
msgid "Image quality"
|
1192 |
+
msgstr "Kwaliteit afbeeldingen"
|
1193 |
|
1194 |
# @ nggallery
|
1195 |
+
#: ../admin/class-ngg-options.php:372
|
1196 |
+
msgid "Backup original"
|
1197 |
+
msgstr "Back-up van origineel"
|
1198 |
|
1199 |
# @ nggallery
|
1200 |
+
#: ../admin/class-ngg-options.php:376
|
1201 |
+
msgid "Create a backup for the resized images"
|
1202 |
+
msgstr "Maak een back-up van de herschaalde afbeeldingen"
|
1203 |
|
1204 |
# @ nggallery
|
1205 |
+
#: ../admin/class-ngg-options.php:381
|
1206 |
+
msgid "Automatically resize"
|
1207 |
+
msgstr "Automatisch grootte aanpassen"
|
1208 |
|
1209 |
# @ nggallery
|
1210 |
+
#: ../admin/class-ngg-options.php:385
|
1211 |
+
msgid "Automatically resize images on upload."
|
1212 |
+
msgstr "Afbeeldingsgrootte automatisch aanpassen tijdens uploaden"
|
|
|
|
|
|
|
|
|
|
|
1213 |
|
1214 |
# @ nggallery
|
1215 |
+
#: ../admin/class-ngg-options.php:390
|
1216 |
+
msgid "Thumbnail settings"
|
1217 |
+
msgstr "Thumbnail instellingen"
|
1218 |
+
|
1219 |
+
# @ nggallery
|
1220 |
+
#: ../admin/class-ngg-options.php:391
|
1221 |
msgid ""
|
1222 |
+
"Please note: if you change these settings, you need to recreate the "
|
1223 |
+
"thumbnails under -> Manage Gallery ."
|
|
|
1224 |
msgstr ""
|
1225 |
+
"Opmerking: als je deze instellingen verandert, is het nodig om de miniaturen "
|
1226 |
+
"opnieuw te maken."
|
1227 |
|
1228 |
# @ nggallery
|
1229 |
+
#: ../admin/class-ngg-options.php:394
|
1230 |
+
msgid "Thumbnail size"
|
1231 |
+
msgstr "Miniauurgrootte"
|
1232 |
|
1233 |
# @ nggallery
|
1234 |
+
#: ../admin/class-ngg-options.php:400
|
1235 |
+
msgid "These values are maximum values."
|
1236 |
+
msgstr "Dit zijn de maximale waarden"
|
|
|
1237 |
|
1238 |
+
# @ default
|
1239 |
+
#: ../admin/class-ngg-options.php:404 ../admin/manage/class-ngg-manager.php:94
|
1240 |
+
msgid "Fixed size"
|
1241 |
+
msgstr "Vaste grootte"
|
|
|
1242 |
|
1243 |
# @ nggallery
|
1244 |
+
#: ../admin/class-ngg-options.php:407
|
1245 |
+
msgid "Ignore the aspect ratio, so no portrait thumbnails."
|
1246 |
+
msgstr "Dit zal de verhouding negeren, dus geen miniaturen in portretmodus."
|
|
|
1247 |
|
1248 |
# @ nggallery
|
1249 |
+
#: ../admin/class-ngg-options.php:411
|
1250 |
+
msgid "Thumbnail quality"
|
1251 |
+
msgstr "Thumbnail kwaliteit"
|
|
|
1252 |
|
1253 |
# @ nggallery
|
1254 |
+
#: ../admin/class-ngg-options.php:415
|
1255 |
+
msgid "Single picture"
|
1256 |
+
msgstr "Enkele afbeelding"
|
|
|
|
|
|
|
|
|
|
|
1257 |
|
1258 |
# @ nggallery
|
1259 |
+
#: ../admin/class-ngg-options.php:418
|
1260 |
+
msgid "Clear cache folder"
|
1261 |
+
msgstr "Leegmaken cache map"
|
|
|
1262 |
|
1263 |
# @ nggallery
|
1264 |
+
#: ../admin/class-ngg-options.php:419
|
1265 |
+
msgid "Proceed now »"
|
1266 |
+
msgstr "Nu leegmaken"
|
|
|
1267 |
|
1268 |
# @ nggallery
|
1269 |
+
#: ../admin/class-ngg-options.php:433
|
1270 |
+
#: ../admin/manage/class-ngg-image-manager.php:155
|
1271 |
+
msgid "Gallery settings"
|
1272 |
+
msgstr "Galerij instellingen"
|
|
|
1273 |
|
1274 |
+
# @ default
|
1275 |
+
#: ../admin/class-ngg-options.php:439
|
1276 |
+
msgid "Inline gallery"
|
1277 |
+
msgstr "Inline galerij"
|
|
|
|
|
|
|
|
|
1278 |
|
1279 |
+
#: ../admin/class-ngg-options.php:442
|
1280 |
+
msgid "Galleries will not be shown on a subpage, but on the same page."
|
1281 |
+
msgstr "Galerijen zullen op dezelfde pagina getoond worden."
|
|
|
1282 |
|
1283 |
# @ nggallery
|
1284 |
+
#: ../admin/class-ngg-options.php:446
|
1285 |
+
msgid "Images per page"
|
1286 |
+
msgstr "Afbeeldingen per pagina"
|
1287 |
|
1288 |
# @ nggallery
|
1289 |
+
#: ../admin/class-ngg-options.php:449 ../admin/class-ngg-options.php:881
|
1290 |
+
msgid "images"
|
1291 |
+
msgstr "Afbeeldingen"
|
1292 |
|
1293 |
# @ nggallery
|
1294 |
+
#: ../admin/class-ngg-options.php:450
|
1295 |
+
msgid "0 will disable pagination and show all images on one page."
|
1296 |
+
msgstr ""
|
1297 |
+
"0 schakelt instellen voor pagina's uit, alle afbeeldingen komen op 1 "
|
1298 |
+
"pagina"
|
1299 |
|
1300 |
+
#: ../admin/class-ngg-options.php:454
|
1301 |
+
msgid "Columns"
|
1302 |
+
msgstr "Kolommen"
|
|
|
1303 |
|
1304 |
# @ nggallery
|
1305 |
+
#: ../admin/class-ngg-options.php:457
|
1306 |
+
msgid "columns per page"
|
1307 |
+
msgstr "Afbeeldingen per pagina"
|
1308 |
|
1309 |
# @ nggallery
|
1310 |
+
#: ../admin/class-ngg-options.php:458
|
1311 |
+
msgid ""
|
1312 |
+
"0 will display as much columns as possible. This is normally only required "
|
1313 |
+
"for captions below the images."
|
1314 |
msgstr ""
|
1315 |
+
"0 zal zoveel mogelijk tonen. Instellen is normaal alleen vereist voor tekst "
|
1316 |
+
"onder de afbeeldingen."
|
1317 |
|
1318 |
# @ nggallery
|
1319 |
+
#: ../admin/class-ngg-options.php:466
|
1320 |
+
msgid "Enable slideshow"
|
1321 |
+
msgstr "Flash-diavoorstelling inschakelen"
|
1322 |
+
|
1323 |
+
#: ../admin/class-ngg-options.php:470
|
1324 |
+
msgid "Text to show:"
|
1325 |
+
msgstr "Te tonen tekst:"
|
1326 |
+
|
1327 |
+
#: ../admin/class-ngg-options.php:474
|
1328 |
msgid ""
|
1329 |
+
"This is the text the visitors will have to click to switch between display "
|
1330 |
+
"modes."
|
1331 |
msgstr ""
|
1332 |
+
"Dit is de tekst die bezoekers zullen zien als ze wisselen tussen de "
|
1333 |
+
"weergavemodi."
|
1334 |
|
1335 |
# @ nggallery
|
1336 |
+
#: ../admin/class-ngg-options.php:478
|
1337 |
+
msgid "Show first"
|
1338 |
+
msgstr "Toon eerst"
|
1339 |
|
1340 |
# @ nggallery
|
1341 |
+
#: ../admin/class-ngg-options.php:483
|
1342 |
+
#: ../widgets/class-ngg-gallery-widget.php:110
|
1343 |
+
msgid "Thumbnails"
|
1344 |
+
msgstr "Thumbnails"
|
1345 |
+
|
1346 |
+
#: ../admin/class-ngg-options.php:491
|
1347 |
+
msgid "Choose what visitors will see first."
|
1348 |
+
msgstr "Kies wat bezoekers eerst zullen zien."
|
1349 |
|
1350 |
# @ nggallery
|
1351 |
+
#: ../admin/class-ngg-options.php:495
|
1352 |
+
msgid "ImageBrowser"
|
1353 |
+
msgstr "Afbeeldingsbrowser"
|
1354 |
|
1355 |
# @ nggallery
|
1356 |
+
#: ../admin/class-ngg-options.php:499
|
1357 |
+
msgid "Use ImageBrowser instead of another effect."
|
1358 |
+
msgstr "In plaats van een effect zal de galerij de afbeeldingsbrowser openen"
|
|
|
|
|
1359 |
|
1360 |
# @ nggallery
|
1361 |
+
#: ../admin/class-ngg-options.php:504
|
1362 |
+
msgid "Hidden images"
|
1363 |
+
msgstr "Verborgen afbeeldingen"
|
1364 |
+
|
1365 |
+
#: ../admin/class-ngg-options.php:508
|
1366 |
msgid ""
|
1367 |
+
"Loads all images for the modal window, when pagination is used (like "
|
1368 |
+
"Thickbox, Lightbox etc.)."
|
|
|
1369 |
msgstr ""
|
1370 |
+
"Laadt alle afbeeldingen voor het modaal venster als pagina's worden gebruikt "
|
1371 |
+
"(zoals Thickbox, Lightbox, enz.)."
|
|
|
1372 |
|
1373 |
+
#: ../admin/class-ngg-options.php:510
|
1374 |
+
msgid "Note: this increases the page load (possibly a lot)"
|
1375 |
+
msgstr ""
|
1376 |
+
"Opmerking: dit verhoogt de laadtijd van de pagina (met misschien wel veel)"
|
1377 |
|
1378 |
# @ nggallery
|
1379 |
+
#: ../admin/class-ngg-options.php:514
|
1380 |
+
msgid "AJAX pagination"
|
1381 |
+
msgstr "AJAX-pagina's"
|
1382 |
+
|
1383 |
+
#: ../admin/class-ngg-options.php:518
|
1384 |
+
msgid "Use AJAX pagination to browse images without reloading the page."
|
1385 |
+
msgstr ""
|
1386 |
+
"Gebruik AJAX-pagina's om afbeeldingen te bekijken zonder de pagina te "
|
1387 |
+
"herladen."
|
1388 |
|
1389 |
# @ nggallery
|
1390 |
+
#: ../admin/class-ngg-options.php:520
|
1391 |
+
msgid "Note: works only in combination with the Shutter effect."
|
1392 |
+
msgstr "Opmerking: Werkt alleen in combinatie met het shutter-effect."
|
1393 |
|
1394 |
# @ nggallery
|
1395 |
+
#: ../admin/class-ngg-options.php:524
|
1396 |
+
msgid "Sort options"
|
1397 |
+
msgstr "Opties sorteren"
|
|
|
1398 |
|
1399 |
# @ nggallery
|
1400 |
+
#: ../admin/class-ngg-options.php:527
|
1401 |
+
msgid "Sort thumbnails"
|
1402 |
+
msgstr "Thumbnail volgorde"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1403 |
|
1404 |
# @ nggallery
|
1405 |
+
#: ../admin/class-ngg-options.php:532
|
1406 |
+
msgid "Custom order"
|
1407 |
+
msgstr "Volgorde wijzigen"
|
1408 |
|
|
|
1409 |
# @ nggallery
|
1410 |
+
#: ../admin/class-ngg-options.php:536
|
1411 |
+
#: ../admin/manage/class-ngg-sort-manager.php:106
|
1412 |
+
msgid "Image ID"
|
1413 |
+
msgstr "Afbeeldings ID"
|
1414 |
|
1415 |
# @ nggallery
|
1416 |
+
#: ../admin/class-ngg-options.php:540
|
1417 |
+
msgid "File name"
|
1418 |
+
msgstr "Bestandsnaam"
|
1419 |
|
1420 |
# @ nggallery
|
1421 |
+
#: ../admin/class-ngg-options.php:544
|
1422 |
+
msgid "Alt / Title text"
|
1423 |
+
msgstr "Alt / Titel tekst"
|
1424 |
|
1425 |
# @ nggallery
|
1426 |
+
#: ../admin/class-ngg-options.php:548 ../view/imagebrowser-exif.php:58
|
1427 |
+
msgid "Date / Time"
|
1428 |
+
msgstr "Datum / tijd"
|
1429 |
|
1430 |
# @ nggallery
|
1431 |
+
#: ../admin/class-ngg-options.php:555
|
1432 |
+
msgid "Sort direction"
|
1433 |
+
msgstr "Volgorde"
|
1434 |
|
1435 |
# @ nggallery
|
1436 |
+
#: ../admin/class-ngg-options.php:559
|
1437 |
+
#: ../admin/manage/class-ngg-sort-manager.php:126
|
1438 |
+
msgid "Ascending"
|
1439 |
+
msgstr "Oplopend"
|
|
|
|
|
|
|
1440 |
|
1441 |
# @ nggallery
|
1442 |
+
#: ../admin/class-ngg-options.php:563
|
1443 |
+
#: ../admin/manage/class-ngg-sort-manager.php:131
|
1444 |
+
msgid "Descending"
|
1445 |
+
msgstr "Aflopend"
|
|
|
|
|
|
|
1446 |
|
1447 |
# @ nggallery
|
1448 |
+
#: ../admin/class-ngg-options.php:583
|
|
|
1449 |
msgid ""
|
1450 |
+
"Here you can select the thumbnail effect, NextCellent Gallery will integrate "
|
1451 |
+
"the required HTML code in the images. Please note that only the Shutter and "
|
1452 |
+
"Thickbox effect will automatic added to your theme."
|
1453 |
msgstr ""
|
1454 |
+
"Hier kun je het effect voor de miniaturen selecteren, NextCellent Gallery "
|
1455 |
+
"zal de vereiste HTML code in de afbeeldingen integreren. Houd er rekening "
|
1456 |
+
"mee dat alleen het sluiter- en thickbox-effect automatisch toegevoegd worden "
|
1457 |
+
"aan je thema."
|
1458 |
|
|
|
1459 |
# @ nggallery
|
1460 |
+
#: ../admin/class-ngg-options.php:584
|
1461 |
+
msgid ""
|
1462 |
+
"With the placeholder <strong> %GALLERY_NAME% </strong> you can activate a "
|
1463 |
+
"navigation through the images (depend on the effect). Change the code line "
|
1464 |
+
"only , when you use a different thumbnail effect or you know what you do."
|
1465 |
+
msgstr ""
|
1466 |
+
"<br>Er kan navigatie toegevoegd worden aan de afbeeldingen (hangt van het "
|
1467 |
+
"effect af). Wijzig de code uitsluitend als je voor een afwijkend thumbnail "
|
1468 |
+
"effect gaat of als je weet waar je mee bezig bent!"
|
1469 |
|
1470 |
# @ nggallery
|
1471 |
+
#: ../admin/class-ngg-options.php:588
|
1472 |
+
msgid "JavaScript Thumbnail effect"
|
1473 |
+
msgstr "JavaScript Thumbnail effect"
|
|
|
1474 |
|
1475 |
# @ default
|
|
|
|
|
|
|
|
|
|
|
1476 |
# @ nggallery
|
1477 |
+
#: ../admin/class-ngg-options.php:591 ../admin/media-upload.php:232
|
1478 |
+
msgid "None"
|
1479 |
+
msgstr "Geen"
|
|
|
1480 |
|
1481 |
+
# @ nggallery
|
1482 |
+
#: ../admin/class-ngg-options.php:592
|
1483 |
+
msgid "Thickbox"
|
1484 |
+
msgstr "Thickbox"
|
1485 |
|
1486 |
# @ nggallery
|
1487 |
+
#: ../admin/class-ngg-options.php:593
|
1488 |
+
msgid "Lightbox"
|
1489 |
+
msgstr "Lightbox"
|
|
|
|
|
1490 |
|
1491 |
# @ nggallery
|
1492 |
+
#: ../admin/class-ngg-options.php:594
|
1493 |
+
msgid "Highslide"
|
1494 |
+
msgstr "Highslide"
|
1495 |
|
1496 |
# @ nggallery
|
1497 |
+
#: ../admin/class-ngg-options.php:595
|
1498 |
+
msgid "Shutter"
|
1499 |
+
msgstr "Sluiter"
|
1500 |
|
1501 |
# @ nggallery
|
1502 |
+
#: ../admin/class-ngg-options.php:596 ../admin/tinymce/window.php:181
|
1503 |
+
msgid "Custom"
|
1504 |
+
msgstr "Custom"
|
1505 |
|
1506 |
# @ nggallery
|
1507 |
+
#: ../admin/class-ngg-options.php:601
|
1508 |
+
msgid "Link Code line"
|
1509 |
+
msgstr "Link Code regel"
|
1510 |
|
1511 |
# @ nggallery
|
1512 |
+
#: ../admin/class-ngg-options.php:626
|
1513 |
+
msgid ""
|
1514 |
+
"Please note : you can only activate the watermark under -> Manage Galleries. "
|
1515 |
+
"This action cannot be undone."
|
1516 |
+
msgstr ""
|
1517 |
+
"Opmerking: je kan het watermerk enkel activeren bij -> Galerij beheren. Deze "
|
1518 |
+
"actie kan niet ongedaan gemaakt worden."
|
1519 |
|
1520 |
# @ nggallery
|
1521 |
+
#: ../admin/class-ngg-options.php:631
|
1522 |
+
msgid "Preview"
|
1523 |
+
msgstr "Vooraf bekijken"
|
1524 |
|
1525 |
# @ nggallery
|
1526 |
+
#: ../admin/class-ngg-options.php:632
|
1527 |
+
msgid "Select an image"
|
1528 |
+
msgstr "Selecteer een afbeelding om vooraf te bekijken:"
|
1529 |
|
1530 |
# @ nggallery
|
1531 |
+
#: ../admin/class-ngg-options.php:637
|
1532 |
+
msgid "View full image"
|
1533 |
+
msgstr "Afbeelding vooraf bekijken"
|
1534 |
|
1535 |
# @ nggallery
|
1536 |
+
#: ../admin/class-ngg-options.php:641 ../admin/class-ngg-options.php:645
|
1537 |
+
msgid "Position"
|
1538 |
+
msgstr "Positie"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1539 |
|
1540 |
# @ nggallery
|
1541 |
+
#: ../admin/class-ngg-options.php:665
|
1542 |
+
msgid "Offset"
|
1543 |
+
msgstr "Offset"
|
|
|
1544 |
|
1545 |
# @ nggallery
|
1546 |
+
#: ../admin/class-ngg-options.php:680
|
1547 |
+
msgid "Use image as watermark"
|
1548 |
+
msgstr "Gebruik afbeelding als watermerk"
|
1549 |
|
1550 |
# @ nggallery
|
1551 |
+
#: ../admin/class-ngg-options.php:683
|
1552 |
+
msgid "URL to file"
|
1553 |
+
msgstr "URL naar bestand"
|
1554 |
|
1555 |
# @ nggallery
|
1556 |
+
#: ../admin/class-ngg-options.php:687
|
1557 |
+
msgid "Use text as watermark"
|
1558 |
+
msgstr "Gebruik tekst als watermerk"
|
1559 |
|
1560 |
# @ nggallery
|
1561 |
+
#: ../admin/class-ngg-options.php:690
|
1562 |
+
msgid "Font"
|
1563 |
+
msgstr "Lettertype"
|
1564 |
|
1565 |
# @ nggallery
|
1566 |
+
#: ../admin/class-ngg-options.php:702
|
1567 |
+
msgid "This function will not work, cause you need the FreeType library"
|
1568 |
+
msgstr ""
|
1569 |
+
"Deze functie zal niet werken, omdat je een Free Type library nodig hebt"
|
1570 |
|
1571 |
# @ nggallery
|
1572 |
+
#: ../admin/class-ngg-options.php:704
|
1573 |
+
msgid ""
|
1574 |
+
"You can upload more fonts in the folder <strong>nggallery/fonts</strong>"
|
1575 |
+
msgstr ""
|
1576 |
+
"Je kan meer lettertypes uploaden in de map <strong>nggallery/fonts</strong>"
|
1577 |
|
1578 |
+
# @ default
|
1579 |
# @ nggallery
|
1580 |
+
#: ../admin/class-ngg-options.php:710 ../admin/manage/class-ngg-manager.php:81
|
1581 |
+
#: ../admin/media-upload.php:242
|
1582 |
+
msgid "Size"
|
1583 |
+
msgstr "Formaat"
|
1584 |
|
1585 |
# @ nggallery
|
1586 |
+
#: ../admin/class-ngg-options.php:714
|
1587 |
+
msgid "Color"
|
1588 |
+
msgstr "Kleur"
|
1589 |
|
1590 |
# @ nggallery
|
1591 |
+
#: ../admin/class-ngg-options.php:718
|
1592 |
+
msgid "Text"
|
1593 |
+
msgstr "Tekst"
|
1594 |
|
1595 |
# @ nggallery
|
1596 |
+
#: ../admin/class-ngg-options.php:722
|
1597 |
+
msgid "Opaque"
|
1598 |
+
msgstr "Ondoorzichtig"
|
1599 |
|
1600 |
+
#: ../admin/class-ngg-options.php:780
|
1601 |
+
msgid "Fit to space"
|
1602 |
+
msgstr "Aanpassen aan de ruimte"
|
1603 |
|
1604 |
+
#: ../admin/class-ngg-options.php:783
|
1605 |
+
#: ../widgets/class-ngg-slideshow-widget.php:128
|
1606 |
+
msgid "Let the slideshow fit in the available space."
|
1607 |
+
msgstr "Pas de diavoorstelling aan aan de beschikbare ruimte."
|
|
|
|
|
|
|
|
|
|
|
1608 |
|
1609 |
# @ nggallery
|
1610 |
+
#: ../admin/class-ngg-options.php:787
|
1611 |
+
msgid "Default size"
|
1612 |
+
msgstr "Standaardgrootte"
|
1613 |
|
1614 |
# @ nggallery
|
1615 |
+
#: ../admin/class-ngg-options.php:796
|
1616 |
+
msgid "Transition / Fade effect"
|
1617 |
+
msgstr "Overgang afbeeldingen / Vervaag effect"
|
1618 |
|
1619 |
+
#: ../admin/class-ngg-options.php:801
|
1620 |
+
msgid "Attention Seekers"
|
1621 |
+
msgstr "Aandacht!"
|
|
|
1622 |
|
1623 |
+
#: ../admin/class-ngg-options.php:802
|
1624 |
+
msgid "Bouncing Entrances"
|
1625 |
+
msgstr "Stuiterende ingangen"
|
|
|
1626 |
|
1627 |
+
#: ../admin/class-ngg-options.php:803
|
1628 |
+
msgid "Fading Entrances"
|
1629 |
+
msgstr "Vervagende ingangen"
|
|
|
1630 |
|
1631 |
+
#: ../admin/class-ngg-options.php:804
|
1632 |
+
msgid "Fading Exits"
|
1633 |
+
msgstr "Vervagende uitgangen"
|
|
|
1634 |
|
1635 |
+
#: ../admin/class-ngg-options.php:805
|
1636 |
+
msgid "Flippers"
|
1637 |
+
msgstr "Flippers"
|
|
|
1638 |
|
1639 |
# @ nggallery
|
1640 |
+
#: ../admin/class-ngg-options.php:806
|
1641 |
+
msgid "Lightspeed"
|
1642 |
+
msgstr "Sluiter snelheid"
|
1643 |
|
1644 |
+
#: ../admin/class-ngg-options.php:807
|
1645 |
+
msgid "Rotating Entrances"
|
1646 |
+
msgstr "Draaiende ingangen"
|
|
|
1647 |
|
1648 |
+
#: ../admin/class-ngg-options.php:808
|
1649 |
+
msgid "Rotating Exits"
|
1650 |
+
msgstr "Draaiende uitgangen"
|
|
|
1651 |
|
1652 |
+
#: ../admin/class-ngg-options.php:809
|
1653 |
+
msgid "Specials"
|
1654 |
+
msgstr "Bijzonderheden"
|
|
|
|
|
1655 |
|
1656 |
+
#: ../admin/class-ngg-options.php:810
|
1657 |
+
msgid "Zoom Entrances"
|
1658 |
+
msgstr "Zoomende ingangen"
|
|
|
1659 |
|
1660 |
+
#: ../admin/class-ngg-options.php:819
|
1661 |
+
msgid "These effects are powered by"
|
1662 |
+
msgstr "Deze effecten zijn mogelijk door"
|
|
|
1663 |
|
1664 |
+
#: ../admin/class-ngg-options.php:819
|
1665 |
+
msgid "Click here for examples of all effects and to learn more."
|
1666 |
+
msgstr "Klik hier voor een voorbeeld van alle effecten en om meer te leren."
|
|
|
1667 |
|
1668 |
+
#: ../admin/class-ngg-options.php:823
|
1669 |
+
msgid "Loop"
|
1670 |
+
msgstr "Herhalen"
|
|
|
1671 |
|
1672 |
+
#: ../admin/class-ngg-options.php:826
|
1673 |
+
msgid "Infinity loop. Duplicate last and first items to get loop illusion."
|
1674 |
+
msgstr ""
|
1675 |
+
"Oneindig herhalen. Het eerste en laatste item worden gedupliceerd om een "
|
1676 |
+
"lusillusie te creëren."
|
1677 |
|
1678 |
+
#: ../admin/class-ngg-options.php:830
|
1679 |
+
msgid "Mouse/touch drag"
|
1680 |
+
msgstr "Muis/aanraak slepen"
|
|
|
1681 |
|
1682 |
+
#: ../admin/class-ngg-options.php:833
|
1683 |
+
msgid "Enable dragging with the mouse (or touch)."
|
1684 |
+
msgstr "Schakel slepen met de muis (of aanraking) in."
|
|
|
1685 |
|
1686 |
# @ nggallery
|
1687 |
+
#: ../admin/class-ngg-options.php:837
|
1688 |
+
msgid "Previous / Next"
|
1689 |
+
msgstr "Vorige tags"
|
1690 |
|
1691 |
+
#: ../admin/class-ngg-options.php:840
|
1692 |
+
msgid "Show next/previous buttons."
|
1693 |
+
msgstr "Knop vorige/volgende tonen."
|
|
|
1694 |
|
1695 |
# @ nggallery
|
1696 |
+
#: ../admin/class-ngg-options.php:844
|
1697 |
+
msgid "Show dots"
|
1698 |
+
msgstr "Toon als"
|
|
|
1699 |
|
1700 |
# @ nggallery
|
1701 |
+
#: ../admin/class-ngg-options.php:847
|
1702 |
+
msgid "Show dots for each image."
|
1703 |
+
msgstr "Afbeelding uitrekken"
|
|
|
1704 |
|
1705 |
+
#: ../admin/class-ngg-options.php:851
|
1706 |
+
msgid "Autoplay"
|
1707 |
+
msgstr "Automatisch afspelen"
|
|
|
1708 |
|
1709 |
# @ nggallery
|
1710 |
+
#: ../admin/class-ngg-options.php:854
|
1711 |
+
msgid "Automatically play the images."
|
1712 |
+
msgstr "Automatisch grootte aanpassen"
|
1713 |
|
1714 |
# @ nggallery
|
1715 |
+
#: ../admin/class-ngg-options.php:858
|
1716 |
+
msgid "Duration"
|
1717 |
+
msgstr "Tijdsduur"
|
1718 |
|
1719 |
# @ nggallery
|
1720 |
+
#: ../admin/class-ngg-options.php:861
|
1721 |
+
msgid "sec."
|
1722 |
+
msgstr "sec."
|
1723 |
|
1724 |
+
#: ../admin/class-ngg-options.php:865
|
1725 |
+
msgid "Pause on hover"
|
1726 |
+
msgstr "Pauzeren bij hover"
|
|
|
|
|
1727 |
|
1728 |
+
#: ../admin/class-ngg-options.php:868
|
1729 |
+
msgid "Pause when hovering over the slideshow."
|
1730 |
+
msgstr "Verander opties voor de diavoorstelling."
|
|
|
1731 |
|
1732 |
# @ nggallery
|
1733 |
+
#: ../admin/class-ngg-options.php:872
|
1734 |
+
msgid "Click for next"
|
1735 |
+
msgstr "Klik om te sluiten"
|
1736 |
+
|
1737 |
+
# @ default
|
1738 |
+
#: ../admin/class-ngg-options.php:875
|
1739 |
+
msgid "Click to go to the next image."
|
1740 |
+
msgstr "Ga naar de volgende pagina"
|
1741 |
|
1742 |
# @ nggallery
|
1743 |
+
#: ../admin/class-ngg-options.php:878 ../admin/tinymce/window.php:194
|
1744 |
+
#: ../admin/tinymce/window.php:358 ../admin/tinymce/window.php:420
|
1745 |
+
msgid "Number of images"
|
1746 |
+
msgstr "Aantal afbeeldingen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1747 |
|
1748 |
+
#: ../admin/class-ngg-options.php:882
|
1749 |
+
msgid "Number of images to display when using random or latest."
|
1750 |
+
msgstr "Aantal afbeeldingen bij laatste of willekeurig."
|
|
|
1751 |
|
1752 |
# @ nggallery
|
1753 |
+
#: ../admin/class-ngg-options.php:945
|
1754 |
+
#, php-format
|
1755 |
+
msgid "Rebuild image structure : %s / %s images"
|
1756 |
+
msgstr "Opnieuw opgebouwde afbeelding structuur: %s / %s afbeeldingen"
|
1757 |
|
1758 |
# @ nggallery
|
1759 |
+
#: ../admin/class-ngg-options.php:946
|
1760 |
+
#, php-format
|
1761 |
+
msgid "Rebuild gallery structure : %s / %s galleries"
|
1762 |
+
msgstr "Opnieuw opgebouwde gallery structuur: %s / %s gallerys"
|
1763 |
|
1764 |
# @ nggallery
|
1765 |
+
#: ../admin/class-ngg-options.php:947
|
1766 |
+
#, php-format
|
1767 |
+
msgid "Rebuild album structure : %s / %s albums"
|
1768 |
+
msgstr "Opnieuw opgebouwde album structuur: %s / %s albums"
|
1769 |
|
1770 |
# @ nggallery
|
1771 |
+
#: ../admin/class-ngg-options.php:1001
|
1772 |
+
msgid "Done."
|
1773 |
+
msgstr "Klaar."
|
1774 |
|
1775 |
+
#: ../admin/class-ngg-overview.php:39
|
1776 |
+
msgid "Contributors"
|
1777 |
+
msgstr "Bijdragers"
|
|
|
1778 |
|
1779 |
# @ nggallery
|
1780 |
+
#: ../admin/class-ngg-overview.php:53
|
1781 |
+
msgid "Here you can control your images, galleries and albums."
|
1782 |
+
msgstr "Hier kunnen de afbeeldingen, gallerys en albums beheerd worden."
|
1783 |
|
1784 |
# @ nggallery
|
1785 |
+
#: ../admin/class-ngg-overview.php:56
|
1786 |
+
msgid "Image"
|
|
|
|
|
1787 |
msgstr "Afbeelding"
|
1788 |
|
1789 |
# @ nggallery
|
1790 |
+
#: ../admin/class-ngg-overview.php:62 ../admin/tinymce/window.php:118
|
1791 |
+
#: ../admin/tinymce/window.php:233 ../lib/rewrite.php:226
|
1792 |
+
msgid "Album"
|
1793 |
+
msgstr "Album"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1794 |
|
|
|
1795 |
# @ nggallery
|
1796 |
+
#: ../admin/class-ngg-overview.php:67
|
1797 |
+
msgid "Add new pictures"
|
1798 |
+
msgstr "Eén afbeelding"
|
|
|
1799 |
|
1800 |
# @ default
|
1801 |
+
#: ../admin/class-ngg-overview.php:104
|
1802 |
+
msgid "Storage Space"
|
1803 |
+
msgstr "Opslag ruimte"
|
|
|
|
|
1804 |
|
1805 |
# @ default
|
1806 |
+
#: ../admin/class-ngg-overview.php:107
|
1807 |
+
msgid "Allowed"
|
1808 |
+
msgstr "Je hebt geen toestemming om hier te zijn"
|
|
|
|
|
1809 |
|
1810 |
# @ default
|
1811 |
+
#: ../admin/class-ngg-overview.php:108
|
1812 |
+
#, php-format
|
1813 |
+
msgid "<a href=\"%1$s\" title=\"Manage Uploads\">%2$s MB</a>"
|
1814 |
+
msgstr ""
|
1815 |
+
"<a href=\"%1$s\" title=\"Beheer uploads\" class=\"musublink\">%2$sMB</a>"
|
1816 |
|
1817 |
+
#: ../admin/class-ngg-overview.php:111
|
1818 |
+
msgid "Used"
|
1819 |
+
msgstr "Toon / verberg gebruikte galerijen"
|
|
|
|
|
|
|
1820 |
|
1821 |
# @ default
|
1822 |
+
#: ../admin/class-ngg-overview.php:112
|
1823 |
+
#, php-format
|
1824 |
+
msgid "<a href=\"%1$s\" title=\"Manage Uploads\">%2$s MB (%3$s%%)</a>"
|
1825 |
+
msgstr ""
|
1826 |
+
"<a href=\"%1$s\" title=\"Beheer uploads\" class=\"musublink\">%2$sMB (%3$s"
|
1827 |
+
"%%)</a>"
|
1828 |
|
1829 |
# @ nggallery
|
1830 |
+
#: ../admin/class-ngg-overview.php:126
|
1831 |
+
#, php-format
|
1832 |
+
msgid ""
|
1833 |
+
"The newsfeed could not be loaded. Check the <a href=\"%s\">front page</a> "
|
1834 |
+
"to check for updates."
|
1835 |
+
msgstr ""
|
1836 |
+
"Nieuwsfeed kan niet geladen worden. Ga naar de <a href=\"%s\">voorpagina </"
|
1837 |
+
"a> om te controleren op updates."
|
1838 |
|
1839 |
# @ default
|
1840 |
+
#: ../admin/class-ngg-overview.php:137
|
1841 |
+
msgid "Untitled"
|
1842 |
+
msgstr "Zonder titel"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1843 |
|
1844 |
# @ nggallery
|
1845 |
+
#: ../admin/class-ngg-overview.php:305
|
1846 |
msgid "Running..."
|
1847 |
msgstr "Bezig... even wachten"
|
1848 |
|
1849 |
# @ nggallery
|
1850 |
+
#: ../admin/class-ngg-overview.php:349
|
1851 |
msgid "Check plugin/theme conflict"
|
1852 |
msgstr "Plugin controle / thema conflict"
|
1853 |
|
1854 |
# @ nggallery
|
1855 |
+
#: ../admin/class-ngg-overview.php:350 ../admin/class-ngg-overview.php:356
|
1856 |
+
#: ../admin/class-ngg-overview.php:362
|
1857 |
msgid "Not tested"
|
1858 |
msgstr "Niet getest"
|
1859 |
|
1860 |
# @ nggallery
|
1861 |
+
#: ../admin/class-ngg-overview.php:351
|
1862 |
msgid "No conflict could be detected"
|
1863 |
msgstr "Er kan geen conflict worden gevonden"
|
1864 |
|
1865 |
# @ nggallery
|
1866 |
+
#: ../admin/class-ngg-overview.php:352
|
1867 |
msgid "Test failed, disable other plugins & switch to default theme"
|
1868 |
msgstr ""
|
1869 |
"Test mislukt, schakel andere plugins uit en stel het standaard thema in"
|
1870 |
|
1871 |
# @ nggallery
|
1872 |
+
#: ../admin/class-ngg-overview.php:355
|
1873 |
msgid "Test image function"
|
1874 |
msgstr "Test afbeeldingsfunctie"
|
1875 |
|
1876 |
# @ nggallery
|
1877 |
+
#: ../admin/class-ngg-overview.php:357
|
1878 |
+
msgid "The plugin could create images."
|
1879 |
msgstr "De plugin kan geen afbeeldingen maken"
|
1880 |
|
1881 |
# @ nggallery
|
1882 |
+
#: ../admin/class-ngg-overview.php:358
|
1883 |
+
msgid "Could not create image, check your memory limit."
|
1884 |
msgstr "Kan de afbeeldingen niet maken, controleer de geheugen limiet"
|
1885 |
|
1886 |
# @ nggallery
|
1887 |
+
#: ../admin/class-ngg-overview.php:361
|
1888 |
msgid "Check theme compatibility"
|
1889 |
msgstr "Controleer thema compatibiliteit"
|
1890 |
|
1891 |
# @ nggallery
|
1892 |
+
#: ../admin/class-ngg-overview.php:363
|
1893 |
msgid "Your theme should work fine with NextCellent Gallery"
|
1894 |
msgstr "Je thema zou moeten werken met NextCellent Gallery"
|
1895 |
|
1896 |
# @ nggallery
|
1897 |
+
#: ../admin/class-ngg-overview.php:364
|
1898 |
msgid "wp_head()/wp_footer() is missing, contact the theme author"
|
1899 |
msgstr ""
|
1900 |
"wp_head()/wp_footer() ontbreekt, neem contact op met de ontwikkelaar van het "
|
1901 |
"thema"
|
1902 |
|
1903 |
# @ nggallery
|
1904 |
+
#: ../admin/class-ngg-overview.php:368
|
1905 |
msgid "Check plugin"
|
1906 |
msgstr "Controleer plugin"
|
1907 |
|
1908 |
# @ nggallery
|
1909 |
+
#: ../admin/class-ngg-overview.php:384
|
1910 |
msgid "Graphic Library"
|
1911 |
msgstr "Grafische bibliotheek"
|
1912 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1913 |
# @ nggallery
|
1914 |
+
#: ../admin/class-ngg-overview.php:410
|
1915 |
+
msgid "There is no GD support"
|
1916 |
msgstr "Geen GD ondersteuning"
|
1917 |
|
1918 |
# @ nggallery
|
1919 |
+
#: ../admin/class-ngg-overview.php:423 ../admin/class-ngg-overview.php:491
|
1920 |
+
#: ../admin/class-ngg-overview.php:497 ../admin/class-ngg-overview.php:503
|
1921 |
msgid "Yes"
|
1922 |
msgstr "Ja"
|
1923 |
|
1924 |
# @ nggallery
|
1925 |
+
#: ../admin/class-ngg-overview.php:425 ../admin/class-ngg-overview.php:493
|
1926 |
+
#: ../admin/class-ngg-overview.php:499 ../admin/class-ngg-overview.php:505
|
1927 |
msgid "No"
|
1928 |
msgstr "Nee"
|
1929 |
|
1930 |
# @ nggallery
|
1931 |
+
#: ../admin/class-ngg-overview.php:445
|
1932 |
msgid "Not set"
|
1933 |
msgstr "Niet ingesteld"
|
1934 |
|
1935 |
# @ nggallery
|
1936 |
+
#: ../admin/class-ngg-overview.php:449
|
1937 |
msgid "On"
|
1938 |
msgstr "Aan"
|
1939 |
|
1940 |
# @ nggallery
|
1941 |
+
#: ../admin/class-ngg-overview.php:451
|
1942 |
msgid "Off"
|
1943 |
msgstr "Uit"
|
1944 |
|
1945 |
# @ nggallery
|
1946 |
+
#: ../admin/class-ngg-overview.php:457 ../admin/class-ngg-overview.php:463
|
1947 |
+
#: ../admin/class-ngg-overview.php:469 ../admin/class-ngg-overview.php:475
|
1948 |
+
#: ../admin/class-ngg-overview.php:481 ../admin/class-ngg-overview.php:487
|
1949 |
msgid "N/A"
|
1950 |
msgstr "N/A"
|
1951 |
|
1952 |
# @ nggallery
|
1953 |
+
#: ../admin/class-ngg-overview.php:485
|
1954 |
+
msgid " MB"
|
1955 |
msgstr " MByte"
|
1956 |
|
1957 |
# @ nggallery
|
1958 |
+
#: ../admin/class-ngg-overview.php:509
|
1959 |
msgid "Operating System"
|
1960 |
msgstr "Operating Systeem"
|
1961 |
|
1962 |
# @ nggallery
|
1963 |
+
#: ../admin/class-ngg-overview.php:511
|
1964 |
msgid "Server"
|
1965 |
msgstr "Server"
|
1966 |
|
1967 |
# @ nggallery
|
1968 |
+
#: ../admin/class-ngg-overview.php:512
|
1969 |
+
msgid "Memory Usage"
|
1970 |
msgstr "Geheugen gebruik"
|
1971 |
|
1972 |
# @ nggallery
|
1973 |
+
#: ../admin/class-ngg-overview.php:513
|
1974 |
msgid "MYSQL Version"
|
1975 |
msgstr "MYSQL Versie"
|
1976 |
|
1977 |
# @ nggallery
|
1978 |
+
#: ../admin/class-ngg-overview.php:514
|
1979 |
msgid "SQL Mode"
|
1980 |
msgstr "SQL Mode"
|
1981 |
|
1982 |
# @ nggallery
|
1983 |
+
#: ../admin/class-ngg-overview.php:515
|
1984 |
msgid "PHP Version"
|
1985 |
msgstr "PHP Versie"
|
1986 |
|
1987 |
# @ nggallery
|
1988 |
+
#: ../admin/class-ngg-overview.php:516
|
|
|
|
|
|
|
|
|
|
|
1989 |
msgid "PHP Allow URL fopen"
|
1990 |
msgstr "PHP toegestaan URL fopen"
|
1991 |
|
1992 |
# @ nggallery
|
1993 |
+
#: ../admin/class-ngg-overview.php:517
|
1994 |
msgid "PHP Memory Limit"
|
1995 |
msgstr "PHP Geheugen Limiet"
|
1996 |
|
1997 |
# @ nggallery
|
1998 |
+
#: ../admin/class-ngg-overview.php:518
|
1999 |
msgid "PHP Max Upload Size"
|
2000 |
msgstr "PHP Max Upload formaat"
|
2001 |
|
2002 |
# @ nggallery
|
2003 |
+
#: ../admin/class-ngg-overview.php:519
|
2004 |
msgid "PHP Max Post Size"
|
2005 |
msgstr "PHP Max Post formaat"
|
2006 |
|
2007 |
# @ nggallery
|
2008 |
+
#: ../admin/class-ngg-overview.php:520
|
2009 |
msgid "PCRE Backtracking Limit"
|
2010 |
msgstr "PCRE Backtracking limiet"
|
2011 |
|
2012 |
# @ nggallery
|
2013 |
+
#: ../admin/class-ngg-overview.php:521
|
2014 |
msgid "PHP Max Script Execute Time"
|
2015 |
msgstr "PHP Max Script Uitvoering tijd"
|
2016 |
|
2017 |
# @ nggallery
|
2018 |
+
#: ../admin/class-ngg-overview.php:522
|
2019 |
+
msgid "PHP EXIF Support"
|
2020 |
msgstr "PHP Exif ondersteuning"
|
2021 |
|
2022 |
# @ nggallery
|
2023 |
+
#: ../admin/class-ngg-overview.php:523
|
2024 |
+
msgid "PHP IPTC Support"
|
2025 |
msgstr "PHP IPTC ondersteuning"
|
2026 |
|
2027 |
# @ nggallery
|
2028 |
+
#: ../admin/class-ngg-overview.php:524
|
2029 |
+
msgid "PHP XML Support"
|
2030 |
msgstr "PHP XML ondersteuning"
|
2031 |
|
2032 |
+
# @ default
|
2033 |
+
#: ../admin/class-ngg-overview.php:532
|
2034 |
+
msgid "Loading…"
|
2035 |
+
msgstr "Laden…"
|
2036 |
+
|
2037 |
+
# @ default
|
2038 |
+
#: ../admin/class-ngg-overview.php:532
|
2039 |
+
msgid "This widget requires JavaScript."
|
2040 |
+
msgstr "Deze widget vereist JavaScript."
|
|
|
|
|
|
|
2041 |
|
2042 |
+
#: ../admin/class-ngg-overview.php:557
|
2043 |
msgid ""
|
2044 |
+
"<strong>Note</strong>: third parties plugins that are compatible with NGG "
|
2045 |
+
"may not be 100% compatible with NextCellent Gallery!"
|
2046 |
msgstr ""
|
2047 |
"niet alle plug-ins van derden die compatibel zijn met NGG zullen 100% werken "
|
2048 |
"met NextCellent Gallery!"
|
2049 |
|
2050 |
+
#: ../admin/class-ngg-overview.php:599
|
2051 |
+
#, php-format
|
2052 |
+
msgid "By %s"
|
2053 |
+
msgstr "Door %s"
|
2054 |
+
|
2055 |
+
# @ default
|
2056 |
+
#. translators: 1: Plugin name and version.
|
2057 |
+
#: ../admin/class-ngg-overview.php:611
|
2058 |
+
#, php-format
|
2059 |
+
msgid "Install %s now"
|
2060 |
+
msgstr "Nu %s installeren"
|
2061 |
+
|
2062 |
# @ default
|
2063 |
+
#: ../admin/class-ngg-overview.php:611
|
2064 |
+
msgid "Install Now"
|
2065 |
msgstr "Installeer"
|
2066 |
|
2067 |
+
# @ nggallery
|
2068 |
+
#. translators: 1: Plugin name and version
|
2069 |
+
#: ../admin/class-ngg-overview.php:618
|
2070 |
#, php-format
|
2071 |
+
msgid "Update %s now"
|
2072 |
+
msgstr "%s nu bijwerken"
|
2073 |
+
|
2074 |
+
# @ nggallery
|
2075 |
+
# @ default
|
2076 |
+
#: ../admin/class-ngg-overview.php:618
|
2077 |
+
msgid "Update Now"
|
2078 |
+
msgstr "Bijwerken"
|
2079 |
+
|
2080 |
+
# @ nggallery
|
2081 |
+
#: ../admin/class-ngg-overview.php:638 ../admin/class-ngg-overview.php:640
|
2082 |
+
#, php-format
|
2083 |
+
msgid "More information about %s"
|
2084 |
+
msgstr "Voor meer informatie over %s"
|
2085 |
+
|
2086 |
+
# @ nggallery
|
2087 |
+
#: ../admin/class-ngg-overview.php:638 ../admin/class-ngg-overview.php:640
|
2088 |
+
msgid "More Details"
|
2089 |
+
msgstr "Meer instellingen"
|
2090 |
+
|
2091 |
+
#: ../admin/class-ngg-overview.php:679
|
2092 |
+
msgid "Untested with your version of WordPress"
|
2093 |
+
msgstr "Niet-getest met jouw versie van WordPress"
|
2094 |
+
|
2095 |
+
#: ../admin/class-ngg-overview.php:681
|
2096 |
+
msgid "<strong>Incompatible</strong> with your version of WordPress"
|
2097 |
+
msgstr "<strong>Niet compatibel</strong> met jouw versie van WordPress"
|
2098 |
+
|
2099 |
+
#: ../admin/class-ngg-overview.php:683
|
2100 |
+
msgid "<strong>Compatible</strong> with your version of WordPress"
|
2101 |
+
msgstr "<strong>Compatibel</strong> met jouw versie van WordPress"
|
2102 |
+
|
2103 |
+
#: ../admin/class-ngg-overview.php:746
|
2104 |
+
msgid "This plugin is a branch from NextGen Gallery, version 1.9.13."
|
2105 |
+
msgstr "Deze plug-in is een aanpassing van NextGen Gallery, versie 1.9.13."
|
2106 |
+
|
2107 |
+
#: ../admin/class-ngg-overview.php:747
|
2108 |
+
msgid ""
|
2109 |
+
"Developed & maintained by <a href=\"http://www.wpgetready.com\" target="
|
2110 |
+
"\"_blank\">WPGetReady.com</a>"
|
2111 |
+
msgstr ""
|
2112 |
+
"Deze plug-in is een tak van de NGG stabiele versie 1.9.13.<br> Ontwikkeld en "
|
2113 |
"onderhouden door <a href=\"%s\" target=\"_blank\">WPGetReady.com</a>"
|
2114 |
|
2115 |
+
#: ../admin/class-ngg-overview.php:753
|
2116 |
msgid "You can contribute by giving this plugin a good rating! Thanks a lot!"
|
2117 |
msgstr "Je kan helpen door deze plug-in een goede rating te geven! Bedankt!"
|
2118 |
|
2119 |
+
#: ../admin/class-ngg-overview.php:758
|
2120 |
msgid "Visit the plugin homepage"
|
2121 |
msgstr "Plug-instartpagina bezoeken"
|
2122 |
|
2123 |
# @ nggallery
|
2124 |
+
#: ../admin/class-ngg-overview.php:770
|
2125 |
+
msgid "Welcome to NextCellent Gallery!"
|
2126 |
+
msgstr "Welkom bij NextCellent Gallery!"
|
2127 |
|
2128 |
+
#: ../admin/class-ngg-overview.php:835
|
2129 |
+
msgid "This plugin is made possible by the great work of a lot of people:"
|
2130 |
+
msgstr ""
|
2131 |
+
"Deze plug-in wordt mogelijk gemaakt door het fantastische werk van een "
|
2132 |
+
"heleboel mensen. Een speciale dank u aan onderstaande personen:"
|
2133 |
|
2134 |
+
#: ../admin/class-ngg-overview.php:837
|
2135 |
+
msgid "Alex Rabe and Photocrati for the original NextGen Gallery"
|
2136 |
+
msgstr "Alex Rabe en Photocrati voor de originele NextGen Gallery"
|
|
|
2137 |
|
2138 |
+
#: ../admin/class-ngg-overview.php:839
|
2139 |
+
msgid "for maintaining this fork of NextGen Gallery"
|
2140 |
+
msgstr "voor het onderhouden van deze fork van NextGEN Gallery"
|
|
|
2141 |
|
2142 |
# @ nggallery
|
2143 |
+
#: ../admin/class-ngg-overview.php:842
|
2144 |
+
msgid "for helping maintain the plugin"
|
2145 |
+
msgstr "voor de Watermerk plugin"
|
2146 |
|
2147 |
+
#: ../admin/class-ngg-overview.php:844
|
2148 |
+
msgid "for his implementation of changing file the upload date using jQuery"
|
2149 |
+
msgstr ""
|
2150 |
+
"voor zijn implementatie van het veranderen van de uploaddatum met jQuery"
|
2151 |
+
|
2152 |
+
#: ../admin/class-ngg-overview.php:847
|
2153 |
+
msgid "for his his code suggestions regarding nggtags shortcodes"
|
2154 |
+
msgstr "voor zijn codesuggesties m.b.t. nggtags"
|
2155 |
+
|
2156 |
+
#: ../admin/class-ngg-overview.php:850
|
2157 |
+
msgid "for his his suggestions on templates"
|
2158 |
+
msgstr "voor zijn suggesties m.b.t. sjablonen"
|
2159 |
+
|
2160 |
+
#: ../admin/class-ngg-overview.php:851
|
2161 |
+
msgid "Also a big thank you to the new translators: "
|
2162 |
+
msgstr "Ook een dikke dank u wel aan de nieuwe vertalers: "
|
2163 |
|
2164 |
# @ nggallery
|
2165 |
+
#: ../admin/class-ngg-roles.php:16
|
2166 |
msgid "Roles / capabilities"
|
2167 |
msgstr "Instellen Rollen/Rechten voor gebruik NextGEN"
|
2168 |
|
2169 |
# @ nggallery
|
2170 |
+
#: ../admin/class-ngg-roles.php:17
|
2171 |
msgid ""
|
2172 |
"Select the lowest role which should be able to access the following "
|
2173 |
"capabilities. NextCellent Gallery supports the standard roles from WordPress."
|
2176 |
"voeren. NextCellent Gallery gebruikt de standaard WordPress-rollen."
|
2177 |
|
2178 |
# @ nggallery
|
2179 |
+
#: ../admin/class-ngg-roles.php:18
|
2180 |
msgid "For a more flexible user management you can use the"
|
2181 |
msgstr "Als je een flexibeler gebruikersmanagement wilt, kijk dan eens bij "
|
2182 |
|
2183 |
# @ nggallery
|
2184 |
+
#: ../admin/class-ngg-roles.php:23
|
2185 |
msgid "NextCellent Gallery overview"
|
2186 |
msgstr "NextCellent Gallery overzicht"
|
2187 |
|
2188 |
# @ nggallery
|
2189 |
+
#: ../admin/class-ngg-roles.php:27
|
2190 |
msgid "Use TinyMCE Button / Add Media"
|
2191 |
msgstr "Gebruik TinyMCE-knop / Media Toevoegen"
|
2192 |
|
2193 |
# @ nggallery
|
2194 |
+
#: ../admin/class-ngg-roles.php:31
|
2195 |
msgid "Add gallery / Upload images"
|
2196 |
msgstr "Galerij toevoegen / afbeeldingen uploaden"
|
2197 |
|
2198 |
# @ nggallery
|
2199 |
+
#: ../admin/class-ngg-roles.php:35
|
2200 |
msgid "Manage gallery"
|
2201 |
msgstr "Galerij Beheren"
|
2202 |
|
2203 |
# @ nggallery
|
2204 |
+
#: ../admin/class-ngg-roles.php:39
|
2205 |
msgid "Manage others gallery"
|
2206 |
msgstr "Beheer galerij van anderen"
|
2207 |
|
2208 |
# @ nggallery
|
2209 |
+
#: ../admin/class-ngg-roles.php:43
|
2210 |
msgid "Manage tags"
|
2211 |
msgstr "Beheer tags"
|
2212 |
|
2213 |
# @ nggallery
|
2214 |
+
#: ../admin/class-ngg-roles.php:51
|
2215 |
msgid "Change style"
|
2216 |
msgstr "Stijl bewerken"
|
2217 |
|
2218 |
# @ nggallery
|
2219 |
+
#: ../admin/class-ngg-roles.php:55
|
2220 |
msgid "Change options"
|
2221 |
msgstr "Bijwerken opties"
|
2222 |
|
2223 |
# @ nggallery
|
2224 |
+
#: ../admin/class-ngg-roles.php:59
|
2225 |
msgid "Update capabilities"
|
2226 |
msgstr "Bijwerken"
|
2227 |
|
2228 |
# @ nggallery
|
2229 |
+
#: ../admin/class-ngg-roles.php:82
|
2230 |
+
msgid "Updated capabilities"
|
2231 |
+
msgstr "Mogelijkheden bijgewerkt"
|
2232 |
|
2233 |
# @ nggallery
|
2234 |
+
#: ../admin/class-ngg-setup.php:14
|
2235 |
+
msgid "Reset options"
|
2236 |
+
msgstr "Opties terugzetten"
|
2237 |
|
2238 |
# @ nggallery
|
2239 |
+
#: ../admin/class-ngg-setup.php:17
|
2240 |
+
msgid "Reset all options/settings to the default installation."
|
2241 |
+
msgstr "Alle opties/instellingen terugzetten naar de standaard installatie"
|
|
|
2242 |
|
2243 |
# @ nggallery
|
2244 |
+
#: ../admin/class-ngg-setup.php:19
|
2245 |
+
msgid "Reset settings"
|
2246 |
+
msgstr "Instellingen terugzetten"
|
2247 |
|
2248 |
# @ nggallery
|
2249 |
+
#: ../admin/class-ngg-setup.php:25
|
2250 |
+
msgid "Uninstall plugin tables"
|
2251 |
+
msgstr "Deïnstalleer plugin tabellen"
|
2252 |
|
2253 |
# @ nggallery
|
2254 |
+
#: ../admin/class-ngg-setup.php:30
|
2255 |
+
msgid "You don't like NextCellent Gallery?"
|
2256 |
+
msgstr "Vind je NextCellent niet leuk?"
|
2257 |
|
2258 |
+
#: ../admin/class-ngg-setup.php:31
|
2259 |
+
msgid ""
|
2260 |
+
"With this button you can clear all database tables. This should also happen "
|
2261 |
+
"if you uninstall the normal way, but it can be useful for manually "
|
2262 |
+
"uninstalling NextCellent completely."
|
2263 |
+
msgstr ""
|
2264 |
+
"Met deze knop kan u de databanktabellen wissen. Dit zou ook vanzelf moeten "
|
2265 |
+
"gebeuren als je op de normale wijze verwijdert, maar het kan nuttig zijn om "
|
2266 |
+
"NextCellent manueel te verwijderen."
|
2267 |
|
2268 |
# @ nggallery
|
2269 |
+
#: ../admin/class-ngg-setup.php:34
|
2270 |
+
msgid "WARNING:"
|
2271 |
+
msgstr "WAARSCHUWING:"
|
|
|
2272 |
|
2273 |
# @ nggallery
|
2274 |
+
#: ../admin/class-ngg-setup.php:36
|
2275 |
+
msgid ""
|
2276 |
+
"Once uninstalled, this cannot be undone. You should use a Database Backup "
|
2277 |
+
"plugin of WordPress to backup all the tables first. NextCellent gallery is "
|
2278 |
+
"stored in the tables"
|
2279 |
+
msgstr ""
|
2280 |
+
" Eenmaal verwijderd, kan dit niet ongedaan gemaakt worden. Je zult een "
|
2281 |
+
"Database Backup plugin van WordPress moeten gebruiken om eerst een backup te "
|
2282 |
+
"maken van alle tabellen. NextCellent Gallery is opgeslagen in de tabellen "
|
2283 |
|
2284 |
# @ nggallery
|
2285 |
+
#: ../admin/class-ngg-setup.php:36
|
2286 |
+
msgid "and"
|
2287 |
+
msgstr "en"
|
|
|
2288 |
|
2289 |
+
#: ../admin/class-ngg-setup.php:39
|
2290 |
+
msgid "Show uninstall button"
|
2291 |
+
msgstr "Knop verwijderen tonen"
|
|
|
2292 |
|
2293 |
# @ nggallery
|
2294 |
+
#: ../admin/class-ngg-setup.php:40
|
2295 |
+
msgid "Uninstall plugin"
|
2296 |
+
msgstr "Deïnstalleer knop"
|
2297 |
|
2298 |
# @ nggallery
|
2299 |
+
#: ../admin/class-ngg-setup.php:49
|
2300 |
+
msgid "Reset all options to default settings?"
|
2301 |
+
msgstr "Alle opties/instellingen terugzetten naar de standaard installatie"
|
2302 |
|
2303 |
+
#: ../admin/class-ngg-setup.php:51 ../admin/class-ngg-setup.php:66
|
2304 |
+
msgid "Choose [Cancel] to Stop, [OK] to proceed."
|
2305 |
+
msgstr "Kies [Annuleren] om te stoppen, [OK] om door te gaan."
|
|
|
2306 |
|
2307 |
+
#: ../admin/class-ngg-setup.php:64
|
2308 |
+
msgid ""
|
2309 |
+
"You are about to uninstall this plugin from WordPress. This action is not "
|
2310 |
+
"reversible."
|
2311 |
+
msgstr ""
|
2312 |
+
"Je staat op het punt deze plug-in te verwijderen van WordPress. Deze actie "
|
2313 |
+
"kan niet ongedaan gemaakt worden."
|
2314 |
|
2315 |
# @ nggallery
|
2316 |
+
#: ../admin/class-ngg-setup.php:97
|
2317 |
+
msgid "Reset all settings to the default parameters."
|
2318 |
+
msgstr "Alle instellingen terugzetten naar de standaard waarden"
|
2319 |
|
2320 |
# @ nggallery
|
2321 |
+
#: ../admin/class-ngg-setup.php:104
|
2322 |
+
msgid "Uninstall successful! Now delete the plugin and enjoy your life!"
|
2323 |
+
msgstr ""
|
2324 |
+
"Deïnstalleren succesvol! Nu de plugin verwijderen en vrolijk verder "
|
2325 |
+
"leven! Veel plezier!"
|
2326 |
|
2327 |
# @ nggallery
|
2328 |
+
#: ../admin/class-ngg-style.php:118
|
2329 |
+
msgid "Successfully selected CSS file."
|
2330 |
+
msgstr "Css-bestand met succes geselecteerd."
|
2331 |
|
2332 |
+
#: ../admin/class-ngg-style.php:120
|
2333 |
+
msgid "No CSS file will be used."
|
2334 |
+
msgstr "Geen css-bestand zal gebruikt worden."
|
|
|
2335 |
|
2336 |
+
# @ default
|
2337 |
+
#: ../admin/class-ngg-style.php:129 ../admin/class-ngg-style.php:169
|
2338 |
+
msgid "You do not have sufficient permissions to edit templates for this blog."
|
2339 |
+
msgstr ""
|
2340 |
+
"Je hebt niet de juiste permissies om sjablonen van deze site te bewerken"
|
2341 |
|
2342 |
+
# @ default
|
2343 |
+
#: ../admin/class-ngg-style.php:154
|
2344 |
+
msgid "Could not move file."
|
2345 |
+
msgstr "Kon bestand niet verplaatsen."
|
2346 |
|
2347 |
# @ nggallery
|
2348 |
+
#: ../admin/class-ngg-style.php:160
|
2349 |
+
msgid "CSS file successfully updated."
|
2350 |
+
msgstr "CSS bestand met succes bijgewerkt."
|
2351 |
|
2352 |
+
# @ default
|
2353 |
+
#: ../admin/class-ngg-style.php:162
|
2354 |
+
msgid "Could not save file."
|
2355 |
+
msgstr "Kon bestand niet opslaan."
|
2356 |
|
2357 |
# @ nggallery
|
2358 |
+
#: ../admin/class-ngg-style.php:182
|
2359 |
+
msgid "CSS file successfully moved."
|
2360 |
+
msgstr "CSS bestand met succes verplaatst."
|
|
|
2361 |
|
2362 |
+
# @ default
|
2363 |
+
#: ../admin/class-ngg-style.php:187
|
2364 |
+
msgid "Could not move the CSS file."
|
2365 |
+
msgstr "Kon het css-bestand niet verplaatsen."
|
2366 |
|
2367 |
+
#: ../admin/class-ngg-style.php:218 ../admin/wpmu.php:63
|
2368 |
+
msgid "Your CSS file is set by a theme or another plugin."
|
2369 |
+
msgstr "Je css-bestand is ingesteld door een thema of een plug-in."
|
2370 |
+
|
2371 |
+
#: ../admin/class-ngg-style.php:218 ../admin/wpmu.php:63
|
2372 |
+
msgid "This CSS file will be applied:"
|
2373 |
+
msgstr "Dit css-bestand zal gebruikt worden:"
|
2374 |
|
2375 |
# @ nggallery
|
2376 |
+
#: ../admin/class-ngg-style.php:248
|
2377 |
+
msgid "Style Editor"
|
2378 |
+
msgstr "Stijl bewerken"
|
|
|
|
|
|
|
|
|
2379 |
|
2380 |
# @ nggallery
|
2381 |
+
#: ../admin/class-ngg-style.php:254
|
2382 |
+
msgid "Activate and use style sheet:"
|
2383 |
+
msgstr "Activeer en gebruik style sheet:"
|
2384 |
|
2385 |
# @ nggallery
|
2386 |
+
#: ../admin/class-ngg-style.php:259
|
2387 |
+
msgid "Activate"
|
2388 |
+
msgstr "Activeren"
|
2389 |
|
2390 |
+
# @ nggallery
|
2391 |
+
#: ../admin/class-ngg-style.php:268
|
2392 |
+
#, php-format
|
2393 |
+
msgid "Editing %s"
|
2394 |
+
msgstr "%s aan het bewerken"
|
2395 |
+
|
2396 |
+
#: ../admin/class-ngg-style.php:270
|
2397 |
+
#, php-format
|
2398 |
+
msgid "Browsing %s"
|
2399 |
+
msgstr "%s verkennen"
|
2400 |
|
2401 |
# @ nggallery
|
2402 |
+
#: ../admin/class-ngg-style.php:273
|
2403 |
+
msgid "(from the theme folder)"
|
2404 |
+
msgstr "(van de themamap)"
|
2405 |
+
|
2406 |
+
#: ../admin/class-ngg-style.php:283
|
2407 |
msgid ""
|
2408 |
+
"To ensure your css file stays safe during upgrades, please move it to the "
|
2409 |
+
"right folder."
|
2410 |
msgstr ""
|
2411 |
+
"Om zeker te zijn dat je css-bestand veilig is, moet je het naar de juiste "
|
2412 |
+
"map verplaatsen."
|
2413 |
|
2414 |
# @ nggallery
|
2415 |
+
#: ../admin/class-ngg-style.php:286
|
2416 |
+
msgid "Move file"
|
2417 |
+
msgstr "Verplaats bestand"
|
2418 |
|
2419 |
# @ nggallery
|
2420 |
+
# @ default
|
2421 |
+
#: ../admin/class-ngg-style.php:291
|
2422 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:155
|
2423 |
+
#: ../admin/manage/class-ngg-image-manager.php:213 ../lib/meta.php:458
|
2424 |
+
msgid "Author"
|
2425 |
+
msgstr "Auteur"
|
2426 |
|
2427 |
# @ nggallery
|
2428 |
+
#: ../admin/class-ngg-style.php:292
|
2429 |
+
msgid "Version"
|
2430 |
+
msgstr "Versie"
|
2431 |
|
2432 |
# @ nggallery
|
2433 |
+
#: ../admin/class-ngg-style.php:296
|
2434 |
+
msgid "File location"
|
2435 |
+
msgstr "Bestandslocatie"
|
2436 |
|
2437 |
# @ nggallery
|
2438 |
+
#: ../admin/class-ngg-style.php:309
|
2439 |
+
msgid "Update File"
|
2440 |
+
msgstr "Bestand bijwerken"
|
2441 |
|
2442 |
# @ nggallery
|
2443 |
+
#: ../admin/class-ngg-style.php:311
|
2444 |
+
msgid "If this file were writable you could edit it."
|
2445 |
+
msgstr "Als dit bestand beschrijfbaar zou zijn, zou je het kunnen bewerken"
|
2446 |
|
2447 |
# @ nggallery
|
2448 |
+
#: ../admin/class-ngg-style.php:316
|
2449 |
+
msgid "This file does not exist. Double check the name and try again."
|
2450 |
+
msgstr ""
|
2451 |
+
"Dit bestand bestaat niet. Controleer de naam nogmaals en probeer het opnieuw."
|
2452 |
|
2453 |
# @ nggallery
|
2454 |
+
#: ../admin/class-ngg-tag-manager.php:45
|
2455 |
+
msgid "Most popular"
|
2456 |
+
msgstr "Meest populair"
|
2457 |
|
2458 |
# @ nggallery
|
2459 |
+
#: ../admin/class-ngg-tag-manager.php:46
|
2460 |
+
msgid "Least used"
|
2461 |
+
msgstr "Laatst gebruikt"
|
2462 |
|
2463 |
# @ nggallery
|
2464 |
+
#: ../admin/class-ngg-tag-manager.php:47
|
2465 |
+
msgid "Alphabetical"
|
2466 |
+
msgstr "Alfabetisch"
|
2467 |
|
2468 |
# @ nggallery
|
2469 |
+
#: ../admin/class-ngg-tag-manager.php:114
|
2470 |
+
msgid "Existing Tags"
|
2471 |
+
msgstr "Bestaande tags"
|
2472 |
|
2473 |
# @ nggallery
|
2474 |
+
#: ../admin/class-ngg-tag-manager.php:118
|
2475 |
+
msgid "Search tags"
|
2476 |
+
msgstr "Zoek tags"
|
2477 |
|
2478 |
# @ nggallery
|
2479 |
+
#: ../admin/class-ngg-tag-manager.php:122
|
2480 |
+
msgid "Go"
|
2481 |
+
msgstr "Ga"
|
2482 |
|
2483 |
# @ nggallery
|
2484 |
+
#: ../admin/class-ngg-tag-manager.php:127
|
2485 |
+
msgid "Sort Order:"
|
2486 |
+
msgstr "Volgorde bepalen:"
|
2487 |
|
2488 |
# @ nggallery
|
2489 |
+
#: ../admin/class-ngg-tag-manager.php:162
|
2490 |
+
#: ../admin/class-ngg-tag-manager.php:166
|
2491 |
+
#: ../admin/class-ngg-tag-manager.php:179
|
2492 |
+
msgid "Previous tags"
|
2493 |
+
msgstr "Vorige tags"
|
2494 |
|
2495 |
# @ nggallery
|
2496 |
+
#: ../admin/class-ngg-tag-manager.php:175
|
2497 |
+
msgid "Next tags"
|
2498 |
+
msgstr "Volgende tags"
|
|
|
|
|
|
|
|
|
|
|
2499 |
|
2500 |
# @ nggallery
|
2501 |
+
#: ../admin/class-ngg-tag-manager.php:187
|
2502 |
+
msgid "Rename Tag"
|
2503 |
+
msgstr "Hernoem tag"
|
2504 |
|
2505 |
# @ nggallery
|
2506 |
+
#: ../admin/class-ngg-tag-manager.php:195
|
2507 |
msgid ""
|
2508 |
+
"Enter the tag to rename and its new value. You can use this feature to "
|
2509 |
+
"merge tags too. Click \"Rename\" and all posts which use this tag will be "
|
2510 |
+
"updated."
|
2511 |
msgstr ""
|
2512 |
+
"Geef de tag die je wilt hernoemen een nieuwe naam. Je kunt deze mogelijkheid "
|
2513 |
+
"ook gebruiken om tags samen te voegen. Klik \"Hernoemen\" en alle berichten "
|
2514 |
+
"die deze tag gebruiken zullen bijgewerkt worden."
|
|
|
|
|
|
|
|
|
2515 |
|
2516 |
# @ nggallery
|
2517 |
+
#: ../admin/class-ngg-tag-manager.php:196
|
2518 |
+
#: ../admin/class-ngg-tag-manager.php:244
|
2519 |
+
msgid "You can specify multiple tags to rename by separating them with commas."
|
2520 |
+
msgstr ""
|
2521 |
+
"Je kunt meerdere tags specificeren om te hernoemen door ze met komma's "
|
2522 |
+
"te scheiden"
|
2523 |
|
2524 |
# @ nggallery
|
2525 |
+
#: ../admin/class-ngg-tag-manager.php:200
|
2526 |
+
msgid "Tag(s) to rename:"
|
2527 |
+
msgstr "Tag(s) om te hernoemen:"
|
2528 |
|
2529 |
# @ nggallery
|
2530 |
+
#: ../admin/class-ngg-tag-manager.php:204
|
2531 |
+
msgid "New tag name(s):"
|
2532 |
+
msgstr "Nieuwe tag na(a)m(en):"
|
2533 |
|
2534 |
# @ nggallery
|
2535 |
+
#: ../admin/class-ngg-tag-manager.php:207
|
2536 |
+
msgid "Rename"
|
2537 |
+
msgstr "Hernoem"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2538 |
|
2539 |
# @ nggallery
|
2540 |
+
#: ../admin/class-ngg-tag-manager.php:213
|
2541 |
+
msgid "Delete Tag"
|
2542 |
+
msgstr " verwijder Tag"
|
2543 |
|
2544 |
# @ nggallery
|
2545 |
+
#: ../admin/class-ngg-tag-manager.php:221
|
2546 |
+
msgid ""
|
2547 |
+
"Enter the name of the tag to delete. This tag will be removed from all "
|
2548 |
+
"posts."
|
2549 |
msgstr ""
|
2550 |
+
"Geef de naam van de tag om te verwijderen. Deze tag zal verwijderd worden "
|
2551 |
+
"van alle berichten."
|
|
|
|
|
|
|
|
|
2552 |
|
2553 |
# @ nggallery
|
2554 |
+
#: ../admin/class-ngg-tag-manager.php:222
|
2555 |
+
msgid "You can specify multiple tags to delete by separating them with commas"
|
|
|
|
|
2556 |
msgstr ""
|
2557 |
+
"Je kunt meerdere tags specificeren om te verwijderen door ze te scheiden "
|
2558 |
+
"door komma's"
|
2559 |
|
2560 |
# @ nggallery
|
2561 |
+
#: ../admin/class-ngg-tag-manager.php:226
|
2562 |
+
msgid "Tag(s) to delete:"
|
2563 |
+
msgstr "Tag(s) verwijderen:"
|
2564 |
|
2565 |
+
# @ nggallery
|
2566 |
+
#: ../admin/class-ngg-tag-manager.php:235
|
2567 |
+
msgid "Edit Tag Slug"
|
2568 |
+
msgstr "Bewerk tag slug"
|
2569 |
|
2570 |
+
# @ nggallery
|
2571 |
+
#: ../admin/class-ngg-tag-manager.php:243
|
2572 |
msgid ""
|
2573 |
+
"Enter the tag name to edit and its new slug. <a href=\"http://codex."
|
2574 |
+
"wordpress.org/Glossary#Slug\">Slug definition</a>"
|
2575 |
msgstr ""
|
2576 |
+
"Geef de tagnaam om te bewerken en de nieuwe slug. <a href=\"http://codex."
|
2577 |
+
"wordpress.org/Glossary#Slug\">Slug definitie</a>"
|
|
|
|
|
|
|
|
|
|
|
2578 |
|
2579 |
# @ nggallery
|
2580 |
+
#: ../admin/class-ngg-tag-manager.php:248
|
2581 |
+
msgid "Tag(s) to match:"
|
2582 |
+
msgstr "Tag(s) om te matchen:"
|
2583 |
|
2584 |
# @ nggallery
|
2585 |
+
#: ../admin/class-ngg-tag-manager.php:252
|
2586 |
+
msgid "Slug(s) to set:"
|
2587 |
+
msgstr "Slug(s) instellen:"
|
2588 |
|
2589 |
+
# @ default
|
2590 |
# @ nggallery
|
2591 |
+
#: ../admin/class-ngg-tag-manager.php:255
|
2592 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:106
|
2593 |
+
msgid "Edit"
|
2594 |
+
msgstr "Bewerk"
|
2595 |
|
2596 |
# @ nggallery
|
2597 |
+
#: ../admin/functions.php:38
|
2598 |
+
msgid "No valid gallery name!"
|
2599 |
+
msgstr "Geen geldige galerij naam!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2600 |
|
2601 |
# @ nggallery
|
2602 |
+
#: ../admin/functions.php:48 ../admin/functions.php:57
|
2603 |
+
#: ../admin/functions.php:83 ../admin/functions.php:158
|
2604 |
+
#: ../admin/functions.php:165 ../admin/functions.php:345
|
2605 |
+
#: ../admin/functions.php:353
|
2606 |
+
msgid "Directory"
|
2607 |
+
msgstr "Directory"
|
|
|
|
|
|
|
2608 |
|
2609 |
# @ nggallery
|
2610 |
+
#: ../admin/functions.php:48
|
2611 |
+
msgid "didn't exist. Please create first the main gallery folder "
|
2612 |
+
msgstr "bestaat niet. Maak eerst de hoofdmap 'gallery' aan"
|
2613 |
|
2614 |
# @ nggallery
|
2615 |
+
#: ../admin/functions.php:49 ../admin/functions.php:58
|
2616 |
+
msgid "Check this link, if you didn't know how to set the permission :"
|
2617 |
+
msgstr "Klik deze link, als je niet weet hoe je rechten moet toewijzen :"
|
2618 |
|
2619 |
# @ nggallery
|
2620 |
+
#: ../admin/functions.php:57 ../admin/functions.php:83
|
2621 |
+
msgid "is not writeable !"
|
2622 |
+
msgstr "is niet beschrijfbaar!"
|
2623 |
|
2624 |
# @ nggallery
|
2625 |
+
#: ../admin/functions.php:79 ../admin/functions.php:88
|
2626 |
+
#: ../admin/functions.php:1127 ../lib/core.php:102
|
2627 |
+
msgid "Unable to create directory "
|
2628 |
+
msgstr "Niet mogelijk de directory aan te maken"
|
2629 |
|
2630 |
# @ nggallery
|
2631 |
+
#: ../admin/functions.php:92
|
2632 |
+
msgid "The server setting Safe-Mode is on !"
|
2633 |
+
msgstr "The server Safe-Mode is aan!"
|
2634 |
|
2635 |
# @ nggallery
|
2636 |
+
#: ../admin/functions.php:93
|
2637 |
+
msgid "If you have problems, please create directory"
|
2638 |
+
msgstr "Als je problemen hebt, maak map "
|
2639 |
|
2640 |
# @ nggallery
|
2641 |
+
#: ../admin/functions.php:94
|
2642 |
+
msgid "and the thumbnails directory"
|
2643 |
+
msgstr "en de thumbnails map"
|
2644 |
|
2645 |
# @ nggallery
|
2646 |
+
#: ../admin/functions.php:94
|
2647 |
+
msgid "with permission 777 manually !"
|
2648 |
+
msgstr "met permissie 777 handmatig ingesteld !"
|
2649 |
|
2650 |
# @ nggallery
|
2651 |
+
#: ../admin/functions.php:120
|
2652 |
+
#, php-format
|
2653 |
msgid ""
|
2654 |
+
"Gallery ID %1$s successfully created. You can show this gallery in your post "
|
2655 |
+
"or page with the shortcode %2$s.<br/>"
|
|
|
2656 |
msgstr ""
|
2657 |
+
"Galerij ID %1$s met succes gemaakt. Je kunt deze galerij in je bericht of "
|
2658 |
+
"pagina tonen met de code %2$s.<br/>"
|
|
|
|
|
2659 |
|
2660 |
# @ nggallery
|
2661 |
+
#: ../admin/functions.php:123 ../admin/functions.php:310
|
2662 |
+
#: ../admin/functions.php:413
|
2663 |
+
msgid "Edit gallery"
|
2664 |
+
msgstr "Galerij bewerken"
|
2665 |
|
2666 |
# @ nggallery
|
2667 |
+
#: ../admin/functions.php:158 ../admin/functions.php:345
|
2668 |
+
msgid "doesn`t exist!"
|
2669 |
+
msgstr "bestaat niet!"
|
|
|
|
|
|
|
|
|
|
|
|
|
2670 |
|
2671 |
# @ nggallery
|
2672 |
+
#: ../admin/functions.php:165 ../admin/functions.php:353
|
2673 |
+
msgid "contains no pictures"
|
2674 |
+
msgstr "bevat geen afbeeldingen"
|
2675 |
|
2676 |
+
#: ../admin/functions.php:192
|
2677 |
+
msgid "Something went wrong when renaming"
|
2678 |
+
msgstr "Iets ging verkeerd bij het hernoemen van"
|
2679 |
+
|
2680 |
+
#: ../admin/functions.php:192
|
2681 |
+
msgid "Importing was aborted."
|
2682 |
+
msgstr "Importeren is gestopt."
|
2683 |
|
2684 |
# @ nggallery
|
2685 |
+
#: ../admin/functions.php:210 ../admin/functions.php:372
|
2686 |
+
msgid "Database error. Could not add gallery!"
|
2687 |
+
msgstr "Database fout. Kan geen galerij toevoegen!"
|
2688 |
|
2689 |
# @ nggallery
|
2690 |
+
#: ../admin/functions.php:213 ../admin/functions.php:375
|
2691 |
+
msgid "successfully created!"
|
2692 |
+
msgstr "met succes gemaakt!"
|
2693 |
|
2694 |
# @ nggallery
|
2695 |
+
#: ../admin/functions.php:300 ../admin/functions.php:408
|
2696 |
+
#: ../admin/functions.php:1244
|
2697 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:212
|
2698 |
+
#: ../admin/manage/class-ngg-image-list-table.php:302
|
2699 |
+
#: ../admin/manage/class-ngg-manager.php:197
|
2700 |
+
#: ../admin/manage/class-ngg-manager.php:359
|
2701 |
+
msgid "Create new thumbnails"
|
2702 |
+
msgstr "Nieuwe thumbnails maken"
|
2703 |
|
2704 |
# @ nggallery
|
2705 |
+
#: ../admin/functions.php:305
|
2706 |
+
msgid " picture(s) successfully renamed"
|
2707 |
+
msgstr " afbeelding(en) met succes hernoemd"
|
2708 |
|
2709 |
# @ nggallery
|
2710 |
+
#: ../admin/functions.php:307 ../admin/functions.php:411
|
2711 |
+
msgid " picture(s) successfully added"
|
2712 |
+
msgstr " afbeelding(en) met succes toegevoegd"
|
2713 |
|
2714 |
# @ nggallery
|
2715 |
+
#: ../admin/functions.php:314
|
2716 |
+
msgid "No images were added."
|
2717 |
+
msgstr "Er zijn geen afbeeldingen toegevoegd."
|
|
|
|
|
|
|
|
|
2718 |
|
2719 |
# @ nggallery
|
2720 |
+
#: ../admin/functions.php:486 ../admin/functions.php:570
|
2721 |
+
#: ../admin/functions.php:625 ../admin/functions.php:722
|
2722 |
+
#: ../admin/functions.php:776
|
2723 |
+
msgid "Object didn't contain correct data"
|
2724 |
+
msgstr "Object bevat onjuiste gegevens"
|
2725 |
|
2726 |
# @ nggallery
|
2727 |
+
#: ../admin/functions.php:495
|
2728 |
+
msgid " is not writeable "
|
2729 |
+
msgstr "is niet beschrijfbaar"
|
2730 |
|
2731 |
# @ nggallery
|
2732 |
+
#: ../admin/functions.php:580 ../admin/functions.php:628
|
2733 |
+
#: ../admin/functions.php:728 ../admin/functions.php:779
|
2734 |
+
msgid " is not writeable"
|
2735 |
+
msgstr "is niet beschrijfbaar"
|
2736 |
|
2737 |
# @ nggallery
|
2738 |
+
#: ../admin/functions.php:782
|
2739 |
+
msgid "File do not exists"
|
2740 |
+
msgstr "Bestand bestaat niet"
|
2741 |
|
2742 |
# @ nggallery
|
2743 |
+
#: ../admin/functions.php:786
|
2744 |
+
msgid "Couldn't restore original image"
|
2745 |
+
msgstr "Kan de originele afbeelding niet terugzetten"
|
2746 |
|
2747 |
# @ nggallery
|
2748 |
+
#: ../admin/functions.php:902
|
2749 |
+
msgid "(Error : Couldn't not update data base)"
|
2750 |
+
msgstr "(Mislukt : Kan de database niet bijwerken)"
|
|
|
|
|
2751 |
|
2752 |
# @ nggallery
|
2753 |
+
#: ../admin/functions.php:909
|
2754 |
+
msgid "(Error : Couldn't not update meta data)"
|
2755 |
+
msgstr "(Mislukt : Kan de metadata niet bijwerken)"
|
2756 |
|
2757 |
# @ nggallery
|
2758 |
+
#: ../admin/functions.php:918
|
2759 |
+
msgid "(Error : Couldn't not find image)"
|
2760 |
+
msgstr "(Mislukt : Kan de afbeelding niet vinden)"
|
2761 |
|
2762 |
# @ nggallery
|
2763 |
+
#: ../admin/functions.php:1061
|
2764 |
+
msgid "No valid URL path "
|
2765 |
+
msgstr "Geen geldig URL path"
|
|
|
2766 |
|
2767 |
# @ nggallery
|
2768 |
+
#: ../admin/functions.php:1077
|
2769 |
+
msgid "Import via cURL failed."
|
2770 |
+
msgstr "Importeer via cURL mislukt."
|
|
|
|
|
2771 |
|
2772 |
# @ nggallery
|
2773 |
+
#: ../admin/functions.php:1094
|
2774 |
+
msgid "Uploaded file was no or a faulty zip file ! The server recognized : "
|
2775 |
+
msgstr ""
|
2776 |
+
"Geuploade bestand is geen geldig of onjuist zip bestand ! De server "
|
2777 |
+
"herkent : "
|
2778 |
|
2779 |
# @ nggallery
|
2780 |
+
#: ../admin/functions.php:1111
|
2781 |
+
msgid "Could not get a valid foldername"
|
2782 |
+
msgstr "Geen geldige mapnaam"
|
2783 |
|
2784 |
# @ nggallery
|
2785 |
+
#: ../admin/functions.php:1122
|
2786 |
+
#, php-format
|
2787 |
+
msgid ""
|
2788 |
+
"Unable to create directory %s. Is its parent directory writable by the "
|
2789 |
+
"server?"
|
2790 |
+
msgstr ""
|
2791 |
+
"Kan de map %s niet maken. Is de bovenstaande map beschrijfbaar op de "
|
2792 |
+
"server? "
|
2793 |
|
2794 |
# @ nggallery
|
2795 |
+
#: ../admin/functions.php:1137
|
2796 |
+
msgid "Zip-File successfully unpacked"
|
2797 |
+
msgstr "Zip-bestand is met succes uitgepakt"
|
2798 |
|
2799 |
# @ nggallery
|
2800 |
+
#: ../admin/functions.php:1168 ../admin/functions.php:1268
|
2801 |
+
msgid "No gallery selected !"
|
2802 |
+
msgstr "Geen galerij geselecteerd !"
|
2803 |
|
2804 |
# @ nggallery
|
2805 |
+
#: ../admin/functions.php:1176 ../admin/functions.php:1293
|
2806 |
+
msgid "Failure in database, no gallery path set !"
|
2807 |
+
msgstr "Mislukt in de database, geen galerij pad ingesteld !"
|
2808 |
|
2809 |
# @ nggallery
|
2810 |
+
#: ../admin/functions.php:1200 ../admin/functions.php:1287
|
2811 |
+
msgid "is no valid image file!"
|
2812 |
+
msgstr "is geen geldig afbeeldingsbestand!"
|
2813 |
|
2814 |
# @ nggallery
|
2815 |
+
#: ../admin/functions.php:1214 ../admin/functions.php:1412
|
2816 |
+
#: ../admin/functions.php:1489
|
2817 |
+
#, php-format
|
2818 |
+
msgid ""
|
2819 |
+
"Unable to write to directory %s. Is this directory writable by the server?"
|
2820 |
+
msgstr ""
|
2821 |
+
"Kan niet schrijven naar de map %s. Is deze map beschrijfbaar op de server?"
|
2822 |
|
2823 |
# @ nggallery
|
2824 |
+
#: ../admin/functions.php:1221 ../admin/functions.php:1310
|
2825 |
+
msgid "Error, the file could not be moved to : "
|
2826 |
+
msgstr "Mislukt, het bestand kan niet verplaatst worden naar: "
|
2827 |
|
2828 |
# @ nggallery
|
2829 |
+
#: ../admin/functions.php:1226 ../admin/functions.php:1314
|
2830 |
+
msgid "Error, the file permissions could not be set"
|
2831 |
+
msgstr "Fout, de bestandspermissies kunnen niet ingesteld worden"
|
2832 |
|
2833 |
# @ nggallery
|
2834 |
+
#: ../admin/functions.php:1249
|
2835 |
+
msgid " Image(s) successfully added"
|
2836 |
+
msgstr "Afbeelding(en) met succes toegevoegd"
|
2837 |
|
2838 |
# @ nggallery
|
2839 |
+
#: ../admin/functions.php:1276
|
2840 |
+
msgid "Invalid upload. Error Code : "
|
2841 |
+
msgstr "Ongeldige upload: fout code:"
|
2842 |
|
2843 |
# @ nggallery
|
2844 |
+
#: ../admin/functions.php:1352
|
2845 |
+
#, php-format
|
2846 |
+
msgid ""
|
2847 |
+
"SAFE MODE Restriction in effect! You need to create the folder <strong>%s</"
|
2848 |
+
"strong> manually"
|
2849 |
+
msgstr ""
|
2850 |
+
"BEVEILINGS beperking in effect! Het is nodig de map <strong>%s</strong> "
|
2851 |
+
"handmatig te maken"
|
2852 |
|
2853 |
# @ nggallery
|
2854 |
+
#: ../admin/functions.php:1353
|
2855 |
+
#, php-format
|
2856 |
+
msgid ""
|
2857 |
+
"When safe_mode is on, PHP checks to see if the owner (%s) of the current "
|
2858 |
+
"script matches the owner (%s) of the file to be operated on by a file "
|
2859 |
+
"function or its directory"
|
2860 |
+
msgstr ""
|
2861 |
+
"Als safe_mode aan staat, controleert PHP of dat de eigenaar (%s) van het "
|
2862 |
+
"script overeenkomt met de eigenaar (%s) van het bestand"
|
2863 |
|
2864 |
# @ nggallery
|
2865 |
+
#: ../admin/functions.php:1406 ../admin/functions.php:1483
|
2866 |
+
msgid "The destination gallery does not exist"
|
2867 |
+
msgstr "De doelgalerij bestaat niet"
|
2868 |
|
2869 |
# @ nggallery
|
2870 |
+
#: ../admin/functions.php:1437 ../lib/xmlrpc.php:222
|
2871 |
+
#, php-format
|
2872 |
+
msgid "Failed to move image %1$s to %2$s"
|
2873 |
+
msgstr "Afbeelding verplaatsen mislukt %1$s naar %2$s"
|
2874 |
|
2875 |
# @ nggallery
|
2876 |
+
#: ../admin/functions.php:1457
|
2877 |
+
#, php-format
|
2878 |
+
msgid "Moved %1$s picture(s) to gallery : %2$s ."
|
2879 |
+
msgstr " %1$s afbeelding(en) verplaatst naar gallery : %2$s ."
|
2880 |
|
2881 |
# @ nggallery
|
2882 |
+
#: ../admin/functions.php:1516
|
2883 |
+
#, php-format
|
2884 |
+
msgid "Failed to copy image %1$s to %2$s"
|
2885 |
+
msgstr "afbeelding kopieeren mislukt van %1$s naar %2$s"
|
2886 |
|
2887 |
# @ nggallery
|
2888 |
+
#: ../admin/functions.php:1530
|
2889 |
+
#, php-format
|
2890 |
+
msgid "Failed to copy database row for picture %s"
|
2891 |
+
msgstr "Database rij kopieeren mislukt voor afbeelding %s"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2892 |
|
2893 |
# @ nggallery
|
2894 |
+
#: ../admin/functions.php:1542
|
2895 |
+
#, php-format
|
2896 |
msgid ""
|
2897 |
+
"Image %1$s (%2$s) copied as image %3$s (%4$s) » The file already "
|
2898 |
+
"existed in the destination gallery."
|
2899 |
msgstr ""
|
2900 |
+
"Afbeelding %1$s (%2$s) gekopieerd als afbeelding %3$s (%4$s) » De "
|
2901 |
+
"bestandsnaam was al aanwezig in de bestaande galerij."
|
2902 |
|
2903 |
+
# @ nggallery
|
2904 |
+
#: ../admin/functions.php:1545
|
2905 |
+
#, php-format
|
2906 |
+
msgid "Image %1$s (%2$s) copied as image %3$s (%4$s)"
|
2907 |
+
msgstr "Afbeelding %1$s (%2$s) gekopieerd als afbeelding %3$s (%4$s)"
|
2908 |
|
2909 |
# @ nggallery
|
2910 |
+
#: ../admin/functions.php:1554
|
2911 |
+
#, php-format
|
2912 |
+
msgid "Copied %1$s picture(s) to gallery: %2$s ."
|
2913 |
+
msgstr "%1$s afbeelding(en) gekopieerd naar galerij: %2$s ."
|
2914 |
|
2915 |
# @ nggallery
|
2916 |
+
#: ../admin/functions.php:1669
|
2917 |
+
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
|
2918 |
msgstr ""
|
2919 |
+
"Het geuploade bestand overschrijdt de upload_max_filesize richtlijn in php."
|
2920 |
+
"ini"
|
2921 |
|
2922 |
# @ nggallery
|
2923 |
+
#: ../admin/functions.php:1672
|
2924 |
+
msgid ""
|
2925 |
+
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
|
2926 |
+
"the HTML form"
|
2927 |
+
msgstr ""
|
2928 |
+
"Het geuploade bestand overschrijdt de MAX_FILE_SIZE richtlijn welke is "
|
2929 |
+
"ingesteld op het HTML formulier"
|
2930 |
|
2931 |
# @ nggallery
|
2932 |
+
#: ../admin/functions.php:1675
|
2933 |
+
msgid "The uploaded file was only partially uploaded"
|
2934 |
+
msgstr "Het geuploade bestand is slechts voor een deel geupload"
|
2935 |
|
2936 |
# @ nggallery
|
2937 |
+
#: ../admin/functions.php:1678
|
2938 |
+
msgid "No file was uploaded"
|
2939 |
+
msgstr "Er is geen bestand geupload"
|
2940 |
|
2941 |
# @ nggallery
|
2942 |
+
#: ../admin/functions.php:1681
|
2943 |
+
msgid "Missing a temporary folder"
|
2944 |
+
msgstr "Een tijdelijke bestandsmap ontbreekt"
|
2945 |
|
2946 |
# @ nggallery
|
2947 |
+
#: ../admin/functions.php:1684
|
2948 |
+
msgid "Failed to write file to disk"
|
2949 |
+
msgstr "Bestand naar disk schrijven is mislukt"
|
2950 |
|
2951 |
# @ nggallery
|
2952 |
+
#: ../admin/functions.php:1687
|
2953 |
+
msgid "File upload stopped by extension"
|
2954 |
+
msgstr "Bestands upload is gestopt vanwege de extensie"
|
2955 |
|
2956 |
# @ nggallery
|
2957 |
+
#: ../admin/functions.php:1690
|
2958 |
+
msgid "Unknown upload error"
|
2959 |
+
msgstr "Onbekende upload fout"
|
2960 |
|
2961 |
# @ nggallery
|
2962 |
+
#: ../admin/manage/actions.php:58
|
2963 |
+
msgid "Select how you would like to rotate the image on the left."
|
2964 |
+
msgstr ""
|
2965 |
+
"Selecteer het gebied voor de thumbnail van de afbeelding aan de linkerkant"
|
2966 |
|
2967 |
# @ nggallery
|
2968 |
+
#: ../admin/manage/actions.php:65
|
2969 |
+
msgid "90° clockwise"
|
2970 |
+
msgstr "90° met de klok mee"
|
2971 |
|
2972 |
# @ nggallery
|
2973 |
+
#: ../admin/manage/actions.php:67
|
2974 |
+
msgid "90° anticlockwise"
|
2975 |
+
msgstr "90° tegen de klok in"
|
2976 |
|
2977 |
# @ nggallery
|
2978 |
+
#: ../admin/manage/actions.php:69
|
2979 |
+
msgid "Flip horizontally"
|
2980 |
+
msgstr "Horizontaal omklappen"
|
2981 |
|
2982 |
# @ nggallery
|
2983 |
+
#: ../admin/manage/actions.php:71
|
2984 |
+
msgid "Flip vertically"
|
2985 |
+
msgstr "Vericaal omklappen"
|
2986 |
|
2987 |
# @ nggallery
|
2988 |
+
#: ../admin/manage/actions.php:94
|
2989 |
+
msgid "Image rotated"
|
2990 |
+
msgstr "Afbeelding geroteerd"
|
2991 |
|
2992 |
# @ nggallery
|
2993 |
+
#: ../admin/manage/actions.php:97
|
2994 |
+
msgid "Error rotating thumbnail"
|
2995 |
+
msgstr "Fout bij roteren van de thumbnail"
|
2996 |
|
2997 |
# @ nggallery
|
2998 |
+
#: ../admin/manage/actions.php:129 ../admin/manage/actions.php:157
|
2999 |
+
#: ../admin/manage/actions.php:182 ../admin/manage/actions.php:204
|
3000 |
+
msgid "Value"
|
3001 |
+
msgstr "Waarde"
|
3002 |
|
3003 |
# @ nggallery
|
3004 |
+
#: ../admin/manage/actions.php:146
|
3005 |
+
msgid "No meta data saved"
|
3006 |
+
msgstr "Geen meta data opgeslagen"
|
3007 |
|
3008 |
# @ nggallery
|
3009 |
+
#: ../admin/manage/actions.php:151
|
3010 |
+
msgid "EXIF Data"
|
3011 |
+
msgstr "EXIF Data"
|
3012 |
|
3013 |
# @ nggallery
|
3014 |
+
#: ../admin/manage/actions.php:171
|
3015 |
+
msgid "No exif data"
|
3016 |
+
msgstr "Geen exif data"
|
3017 |
|
3018 |
# @ nggallery
|
3019 |
+
#: ../admin/manage/actions.php:177
|
3020 |
+
msgid "IPTC Data"
|
3021 |
+
msgstr "IPTC Data"
|
3022 |
|
3023 |
# @ nggallery
|
3024 |
+
#: ../admin/manage/actions.php:199
|
3025 |
+
msgid "XMP Data"
|
3026 |
+
msgstr "XMP Data"
|
3027 |
|
3028 |
+
#: ../admin/manage/actions.php:248
|
3029 |
+
msgid "Zoom In"
|
3030 |
+
msgstr "Vergroten"
|
|
|
3031 |
|
3032 |
+
#: ../admin/manage/actions.php:252
|
3033 |
+
msgid "Zoom Out"
|
3034 |
+
msgstr "Verkleinen"
|
|
|
3035 |
|
3036 |
# @ nggallery
|
3037 |
+
#: ../admin/manage/actions.php:256
|
3038 |
+
msgid "Rotate Left"
|
3039 |
+
msgstr "Roteer"
|
3040 |
|
3041 |
# @ nggallery
|
3042 |
+
#: ../admin/manage/actions.php:260
|
3043 |
+
msgid "Rotate Right"
|
3044 |
+
msgstr "Roteer afbeeldingen"
|
3045 |
|
3046 |
+
#: ../admin/manage/actions.php:264
|
3047 |
+
msgid "Reset"
|
3048 |
+
msgstr "Resetten en allemaal opnieuw in wachtrij zetten"
|
|
|
3049 |
|
3050 |
# @ nggallery
|
3051 |
+
#: ../admin/manage/actions.php:268
|
3052 |
+
msgid "Center selection"
|
3053 |
+
msgstr "Inschakelen style selectie"
|
3054 |
|
3055 |
+
#: ../admin/manage/actions.php:285
|
3056 |
+
msgid "The parameters"
|
3057 |
+
msgstr "De parameters"
|
|
|
3058 |
|
3059 |
+
#. translators: x position on a grid
|
3060 |
+
#: ../admin/manage/actions.php:291
|
3061 |
+
msgid "X"
|
3062 |
+
msgstr "X"
|
3063 |
|
3064 |
+
#. translators: a measurement unit, stand for pixels
|
3065 |
+
#: ../admin/manage/actions.php:295 ../admin/manage/actions.php:304
|
3066 |
+
#: ../admin/manage/actions.php:312 ../admin/manage/actions.php:321
|
3067 |
+
msgid "px"
|
3068 |
+
msgstr "px"
|
3069 |
|
3070 |
+
#. translators: y position on a grid
|
3071 |
+
#: ../admin/manage/actions.php:301
|
3072 |
+
msgid "Y"
|
3073 |
+
msgstr "Y"
|
3074 |
|
3075 |
# @ nggallery
|
3076 |
+
#: ../admin/manage/actions.php:327
|
3077 |
+
msgid "Rotation"
|
3078 |
+
msgstr "Locatie"
|
|
|
|
|
|
|
3079 |
|
3080 |
+
#. translators: stands for degrees, as in a rotation. Should be pretty short.
|
3081 |
+
#: ../admin/manage/actions.php:331
|
3082 |
+
msgid "deg"
|
3083 |
+
msgstr "°"
|
3084 |
|
3085 |
+
#: ../admin/manage/actions.php:336
|
3086 |
+
msgid "Apply the parameters"
|
3087 |
+
msgstr "Parameters toepassen"
|
|
|
|
|
|
|
|
|
3088 |
|
3089 |
# @ nggallery
|
3090 |
+
#: ../admin/manage/actions.php:338
|
3091 |
+
msgid "Apply"
|
3092 |
+
msgstr "Toepassen"
|
3093 |
|
3094 |
# @ nggallery
|
3095 |
+
#: ../admin/manage/actions.php:374
|
3096 |
+
msgid "Thumbnail updated"
|
3097 |
+
msgstr "Thumbnail bijgewerkt"
|
3098 |
|
3099 |
# @ nggallery
|
3100 |
+
#: ../admin/manage/actions.php:378
|
3101 |
+
msgid "Error updating thumbnail"
|
3102 |
+
msgstr "Fout bij updaten van de thumbnail"
|
3103 |
|
3104 |
+
#: ../admin/manage/class-ngg-abstract-image-manager.php:96
|
3105 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:108
|
3106 |
+
#: ../admin/manage/class-ngg-image-manager.php:123
|
3107 |
+
#: ../admin/manage/class-ngg-image-manager.php:258
|
3108 |
+
#: ../admin/manage/class-ngg-manager.php:422
|
3109 |
+
#: ../admin/manage/class-ngg-sort-manager.php:178
|
3110 |
+
msgid "You waited too long, or you cheated."
|
3111 |
+
msgstr "Je hebt te lang gewacht, of je speelt vals."
|
3112 |
|
3113 |
# @ nggallery
|
3114 |
+
#: ../admin/manage/class-ngg-abstract-image-manager.php:155
|
3115 |
+
#: ../admin/manage/class-ngg-image-manager.php:301
|
3116 |
+
msgid "Update successful"
|
3117 |
+
msgstr "Met succes bijgewerkt"
|
3118 |
+
|
3119 |
+
# @ default
|
3120 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:152
|
3121 |
+
#: ../admin/manage/class-ngg-image-list-table.php:229
|
3122 |
+
msgid "ID"
|
3123 |
+
msgstr "ID"
|
3124 |
|
3125 |
# @ nggallery
|
3126 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:156
|
3127 |
+
msgid "Page ID"
|
3128 |
+
msgstr "Pagina ID"
|
3129 |
|
3130 |
# @ nggallery
|
3131 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:211
|
3132 |
+
#: ../admin/manage/class-ngg-image-list-table.php:301
|
3133 |
+
#: ../admin/manage/class-ngg-manager.php:206
|
3134 |
+
msgid "Set watermark"
|
3135 |
+
msgstr "Watermerk instellen"
|
|
|
|
|
|
|
|
|
3136 |
|
3137 |
# @ nggallery
|
3138 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:214
|
3139 |
+
#: ../admin/manage/class-ngg-image-list-table.php:304
|
3140 |
+
#: ../admin/manage/class-ngg-manager.php:200
|
3141 |
+
msgid "Import metadata"
|
3142 |
+
msgstr "Importeer metadata"
|
3143 |
|
3144 |
# @ nggallery
|
3145 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:215
|
3146 |
+
#: ../admin/manage/class-ngg-image-list-table.php:305
|
3147 |
+
#: ../admin/manage/class-ngg-manager.php:203
|
3148 |
+
msgid "Recover from backup"
|
3149 |
+
msgstr "Herstel van backup"
|
|
|
|
|
|
|
|
|
3150 |
|
3151 |
# @ nggallery
|
3152 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:35
|
3153 |
+
msgid "Add new gallery"
|
3154 |
+
msgstr "Nieuwe galerij toevoegen"
|
3155 |
|
3156 |
# @ nggallery
|
3157 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:88
|
3158 |
+
msgid "Create a new , empty gallery below the folder"
|
3159 |
+
msgstr "Maak een nieuwe, lege galerij bij de map"
|
3160 |
|
3161 |
# @ nggallery
|
3162 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:92
|
3163 |
+
#, php-format
|
3164 |
+
msgid "Allowed characters for file and folder names are %s"
|
3165 |
+
msgstr "Toegestane karakters voor bestanden en mappen zijn %s"
|
|
|
3166 |
|
3167 |
# @ nggallery
|
3168 |
+
#: ../admin/manage/class-ngg-image-list-table.php:150
|
3169 |
+
msgid "Change Date"
|
3170 |
+
msgstr "Datum bewerken"
|
|
|
3171 |
|
3172 |
# @ nggallery
|
3173 |
+
#: ../admin/manage/class-ngg-image-list-table.php:153
|
3174 |
+
msgid "pixel"
|
3175 |
+
msgstr "pixel"
|
3176 |
|
3177 |
# @ nggallery
|
3178 |
+
#: ../admin/manage/class-ngg-image-list-table.php:184
|
3179 |
+
msgid "Alt & title text"
|
3180 |
+
msgstr "Alt- & titeltekst"
|
3181 |
|
3182 |
# @ nggallery
|
3183 |
+
#: ../admin/manage/class-ngg-image-list-table.php:211
|
3184 |
+
msgid "Separated by commas"
|
3185 |
+
msgstr "Door komma's gescheiden"
|
3186 |
|
3187 |
# @ nggallery
|
3188 |
+
# @ default
|
3189 |
+
#: ../admin/manage/class-ngg-image-list-table.php:230
|
3190 |
+
#: ../admin/media-upload.php:246
|
3191 |
+
msgid "Thumbnail"
|
3192 |
+
msgstr "Thumbnail"
|
3193 |
|
3194 |
# @ nggallery
|
3195 |
+
#: ../admin/manage/class-ngg-image-list-table.php:231
|
3196 |
+
#: ../admin/manage/class-ngg-sort-manager.php:111
|
3197 |
+
msgid "Filename"
|
3198 |
+
msgstr "Bestandsnaam"
|
3199 |
|
3200 |
# @ nggallery
|
3201 |
+
#: ../admin/manage/class-ngg-image-list-table.php:232
|
3202 |
+
msgid "Alt & Title Text"
|
3203 |
+
msgstr "Alt / Titel tekst"
|
3204 |
|
3205 |
+
# @ nggallery
|
3206 |
+
#: ../admin/manage/class-ngg-image-list-table.php:234
|
3207 |
+
msgid "Exclude"
|
3208 |
+
msgstr "Uitsluiten"
|
3209 |
|
3210 |
# @ default
|
3211 |
+
#: ../admin/manage/class-ngg-image-list-table.php:269
|
3212 |
+
#, php-format
|
3213 |
+
msgid "View \"%s\""
|
3214 |
+
msgstr "Bekijk \"%s\""
|
3215 |
|
3216 |
+
# @ nggallery
|
3217 |
+
#: ../admin/manage/class-ngg-image-list-table.php:270
|
3218 |
+
msgid "View"
|
3219 |
+
msgstr "Bekijk"
|
3220 |
|
3221 |
# @ nggallery
|
3222 |
+
#: ../admin/manage/class-ngg-image-list-table.php:271
|
3223 |
+
msgid "Show Meta data"
|
3224 |
+
msgstr "Toon meta data"
|
3225 |
|
3226 |
+
# @ nggallery
|
3227 |
+
#: ../admin/manage/class-ngg-image-list-table.php:272
|
3228 |
+
msgid "Meta"
|
3229 |
+
msgstr "Meta"
|
3230 |
|
3231 |
# @ nggallery
|
3232 |
+
#: ../admin/manage/class-ngg-image-list-table.php:273
|
3233 |
+
msgid "Customize thumbnail"
|
3234 |
+
msgstr "Aanpassen thumbnail"
|
3235 |
|
3236 |
+
# @ nggallery
|
3237 |
+
#: ../admin/manage/class-ngg-image-list-table.php:274
|
3238 |
+
msgid "Edit thumb"
|
3239 |
+
msgstr "Bewerk thumbnail"
|
3240 |
|
3241 |
+
# @ nggallery
|
3242 |
+
#: ../admin/manage/class-ngg-image-list-table.php:275
|
3243 |
+
#: ../admin/manage/class-ngg-image-list-table.php:276
|
3244 |
+
msgid "Rotate"
|
3245 |
+
msgstr "Roteer"
|
3246 |
|
3247 |
+
# @ nggallery
|
3248 |
+
#: ../admin/manage/class-ngg-image-list-table.php:281
|
3249 |
+
msgid "Recover"
|
3250 |
+
msgstr "Herstellen / terugzetten"
|
3251 |
|
3252 |
# @ nggallery
|
3253 |
+
#: ../admin/manage/class-ngg-image-list-table.php:306
|
3254 |
+
msgid "Delete images"
|
3255 |
+
msgstr "Afbeeldingen verwijderen"
|
3256 |
|
3257 |
# @ nggallery
|
3258 |
+
#: ../admin/manage/class-ngg-image-list-table.php:307
|
3259 |
+
msgid "Rotate images clockwise"
|
3260 |
+
msgstr "Roteer afbeeldingen met de klok mee"
|
3261 |
|
3262 |
# @ nggallery
|
3263 |
+
#: ../admin/manage/class-ngg-image-list-table.php:308
|
3264 |
+
msgid "Rotate images counter-clockwise"
|
3265 |
+
msgstr "Roteer afbeelding teller met de klok mee."
|
3266 |
|
3267 |
# @ nggallery
|
3268 |
+
#: ../admin/manage/class-ngg-image-list-table.php:309
|
3269 |
+
msgid "Copy to..."
|
3270 |
+
msgstr "Kopieer naar..."
|
|
|
3271 |
|
3272 |
+
# @ nggallery
|
3273 |
+
#: ../admin/manage/class-ngg-image-list-table.php:310
|
3274 |
+
msgid "Move to..."
|
3275 |
+
msgstr "Verplaats naar..."
|
3276 |
|
3277 |
# @ nggallery
|
3278 |
+
#: ../admin/manage/class-ngg-image-list-table.php:311
|
3279 |
+
msgid "Add tags"
|
3280 |
+
msgstr "Tags toevoegen"
|
3281 |
+
|
3282 |
+
# @ nggallery
|
3283 |
+
#: ../admin/manage/class-ngg-image-list-table.php:312
|
3284 |
+
#: ../admin/manage/class-ngg-manager.php:222
|
3285 |
+
msgid "Delete tags"
|
3286 |
+
msgstr "Tags verwijderen"
|
3287 |
+
|
3288 |
+
# @ nggallery
|
3289 |
+
#: ../admin/manage/class-ngg-image-list-table.php:313
|
3290 |
+
msgid "Overwrite tags"
|
3291 |
+
msgstr "Tags overschrijven"
|
3292 |
+
|
3293 |
+
# @ nggallery
|
3294 |
+
#: ../admin/manage/class-ngg-image-manager.php:99
|
3295 |
+
msgid "Recover \"{}\"?"
|
3296 |
+
msgstr " \"%s\" terugzetten?"
|
3297 |
|
3298 |
+
# @ nggallery
|
3299 |
+
#: ../admin/manage/class-ngg-image-manager.php:104
|
3300 |
+
msgid "Delete \"{}\"?"
|
3301 |
+
msgstr " \"%s\" verwijderen?"
|
3302 |
+
|
3303 |
+
#: ../admin/manage/class-ngg-image-manager.php:147
|
3304 |
msgid ""
|
3305 |
+
"To enable manual Sort set Custom Order Sort.See Settings->Gallery Settings-"
|
3306 |
+
">Sort Options"
|
3307 |
msgstr ""
|
3308 |
+
"Om manueel sorteren aan te zetten moet je Aangepaste Sorteermethode "
|
3309 |
+
"inschakelen in Instellingen -> Galerij-opties -> Sorteeropties"
|
3310 |
|
3311 |
# @ nggallery
|
3312 |
+
#: ../admin/manage/class-ngg-image-manager.php:164
|
3313 |
+
msgid "Page Link"
|
3314 |
+
msgstr "Paginalink naar"
|
3315 |
|
3316 |
# @ nggallery
|
3317 |
+
#: ../admin/manage/class-ngg-image-manager.php:178
|
3318 |
+
msgid "Preview image"
|
3319 |
+
msgstr "Afbeelding vooraf bekijken"
|
3320 |
|
3321 |
# @ nggallery
|
3322 |
+
#: ../admin/manage/class-ngg-image-manager.php:182
|
3323 |
+
msgid "No Picture"
|
3324 |
+
msgstr "Geen afbeelding"
|
3325 |
|
3326 |
# @ nggallery
|
3327 |
+
#: ../admin/manage/class-ngg-image-manager.php:207
|
3328 |
+
msgid "Path"
|
3329 |
+
msgstr "Path"
|
3330 |
|
3331 |
# @ nggallery
|
3332 |
+
#: ../admin/manage/class-ngg-image-manager.php:217
|
3333 |
+
#: ../admin/manage/class-ngg-search-manager.php:63
|
3334 |
+
msgid "Gallery ID"
|
3335 |
+
msgstr "Galerij-ID"
|
3336 |
|
3337 |
# @ nggallery
|
3338 |
+
#: ../admin/manage/class-ngg-image-manager.php:220
|
3339 |
+
msgid "Create new page"
|
3340 |
+
msgstr "Nieuwe pagina maken"
|
|
|
3341 |
|
3342 |
# @ nggallery
|
3343 |
+
#: ../admin/manage/class-ngg-image-manager.php:224
|
3344 |
+
msgid "Main page (No parent)"
|
3345 |
+
msgstr "Hoofpagina (geen parent)"
|
3346 |
|
3347 |
# @ nggallery
|
3348 |
+
#: ../admin/manage/class-ngg-image-manager.php:230
|
3349 |
+
msgid "Add page"
|
3350 |
+
msgstr "Pagina toevoegen"
|
3351 |
|
3352 |
# @ nggallery
|
3353 |
+
#: ../admin/manage/class-ngg-image-manager.php:239
|
3354 |
+
msgid "Sort gallery"
|
3355 |
+
msgstr "Galerij volgorde"
|
3356 |
|
3357 |
# @ nggallery
|
3358 |
+
#: ../admin/manage/class-ngg-image-manager.php:242
|
3359 |
+
msgid "Scan folder for new images"
|
3360 |
+
msgstr "Map scannen voor nieuwe afbeeldingen"
|
3361 |
|
3362 |
# @ nggallery
|
3363 |
+
#: ../admin/manage/class-ngg-image-manager.php:336
|
3364 |
+
#, php-format
|
3365 |
+
msgid "Picture %d deleted successfully."
|
3366 |
+
msgstr "Afbeelding %d met succes verwijderd."
|
3367 |
|
3368 |
# @ nggallery
|
3369 |
+
#: ../admin/manage/class-ngg-image-manager.php:340
|
3370 |
+
#, php-format
|
3371 |
+
msgid "Picture %d could not be deleted."
|
3372 |
+
msgstr "Afbeelding %d kon niet verwijderd worden."
|
3373 |
|
3374 |
# @ nggallery
|
3375 |
+
#: ../admin/manage/class-ngg-image-manager.php:355
|
3376 |
+
msgid "Operation successful. Please clear your browser cache."
|
3377 |
+
msgstr "Met succes uitgevoerd. Browser cache verversen. (Ctrl en F5 toets)"
|
3378 |
|
3379 |
# @ nggallery
|
3380 |
+
#: ../admin/manage/class-ngg-manager.php:57
|
3381 |
+
msgid "Resize Images to"
|
3382 |
+
msgstr "Formaat afbeeldingen aanpassen naar"
|
3383 |
|
3384 |
# @ nggallery
|
3385 |
+
#: ../admin/manage/class-ngg-manager.php:88
|
3386 |
+
msgid "These values are maximum values "
|
3387 |
+
msgstr "Dit zijn de maximale waarden"
|
3388 |
|
3389 |
# @ nggallery
|
3390 |
+
#: ../admin/manage/class-ngg-manager.php:100
|
3391 |
+
msgid "This will ignore the aspect ratio, so no portrait thumbnails"
|
3392 |
+
msgstr "Dit zal de verhouding negeren, dus geen miniaturen in portretmodus."
|
3393 |
|
3394 |
# @ nggallery
|
3395 |
+
#: ../admin/manage/class-ngg-manager.php:116
|
3396 |
+
msgid "Enter the tags"
|
3397 |
+
msgstr "Geef tags in"
|
|
|
|
|
|
|
|
|
|
|
|
|
3398 |
|
3399 |
# @ nggallery
|
3400 |
+
#: ../admin/manage/class-ngg-manager.php:132
|
3401 |
+
msgid "Select the destination gallery:"
|
3402 |
+
msgstr "Selecteer een doel galerij:"
|
|
|
|
|
3403 |
|
3404 |
# @ nggallery
|
3405 |
+
#: ../admin/manage/class-ngg-manager.php:134 ../admin/tinymce/window.php:135
|
3406 |
+
#: ../admin/tinymce/window.php:379 ../admin/tinymce/window.php:430
|
3407 |
+
msgid "Select or search for a gallery"
|
3408 |
+
msgstr "Selecteer of zoek een galerij"
|
3409 |
|
3410 |
# @ nggallery
|
3411 |
+
#: ../admin/manage/class-ngg-manager.php:177
|
3412 |
+
msgid "No images selected"
|
3413 |
+
msgstr "Geen afbeeldingen geselecteerd"
|
3414 |
|
3415 |
# @ nggallery
|
3416 |
+
#: ../admin/manage/class-ngg-manager.php:191
|
3417 |
+
msgid "No action selected."
|
3418 |
+
msgstr "Geen album geselecteerd"
|
3419 |
|
3420 |
# @ nggallery
|
3421 |
+
#: ../admin/manage/class-ngg-manager.php:210
|
3422 |
+
msgid "Copy image to..."
|
3423 |
+
msgstr "Kopieer afbeelding naar..."
|
3424 |
|
3425 |
# @ nggallery
|
3426 |
+
#: ../admin/manage/class-ngg-manager.php:214
|
3427 |
+
msgid "Move image to..."
|
3428 |
+
msgstr "Verplaats afbeelding naar..."
|
|
|
|
|
|
|
|
|
3429 |
|
3430 |
# @ nggallery
|
3431 |
+
#: ../admin/manage/class-ngg-manager.php:218
|
3432 |
+
msgid "Add new tags"
|
3433 |
+
msgstr "Nieuwe tags toevoegen"
|
|
|
|
|
3434 |
|
3435 |
# @ nggallery
|
3436 |
+
#: ../admin/manage/class-ngg-manager.php:226
|
3437 |
+
msgid "Overwrite"
|
3438 |
+
msgstr "Overschrijven"
|
3439 |
|
3440 |
# @ nggallery
|
3441 |
+
#: ../admin/manage/class-ngg-manager.php:229
|
3442 |
+
#: ../admin/manage/class-ngg-manager.php:232
|
3443 |
+
msgid "Rotate images"
|
3444 |
+
msgstr "Roteer afbeeldingen"
|
3445 |
|
3446 |
# @ nggallery
|
3447 |
+
#: ../admin/manage/class-ngg-manager.php:239
|
3448 |
+
#: ../admin/manage/class-ngg-manager.php:256
|
3449 |
+
#, php-format
|
3450 |
msgid ""
|
3451 |
+
"You are about to start bulk edits for %s galleries\n"
|
3452 |
+
"\n"
|
3453 |
+
" 'Cancel' to stop, 'OK' to proceed."
|
3454 |
msgstr ""
|
3455 |
+
"Je staat op het punt een bulk bewerking voor %s galerijen uit te voeren\n"
|
3456 |
+
" \n"
|
3457 |
+
" 'Annuleren' om te stoppen, 'OK' om door te gaan."
|
3458 |
|
3459 |
# @ nggallery
|
3460 |
+
#: ../admin/manage/class-ngg-manager.php:380
|
3461 |
+
#: ../admin/manage/class-ngg-manager.php:397
|
3462 |
+
#: ../admin/manage/class-ngg-manager.php:408
|
3463 |
+
msgid "Tags changed"
|
3464 |
+
msgstr "Tags aangepast"
|
3465 |
|
3466 |
# @ nggallery
|
3467 |
+
#: ../admin/manage/class-ngg-manager.php:464
|
3468 |
+
msgid "Gallery deleted successfully."
|
3469 |
+
msgstr "Galerij met succes verwijderd"
|
3470 |
|
3471 |
+
#: ../admin/manage/class-ngg-manager.php:466
|
3472 |
+
msgid "Something went wrong."
|
3473 |
+
msgstr "Iets ging verkeerd bij het hernoemen van"
|
3474 |
|
3475 |
# @ nggallery
|
3476 |
+
#: ../admin/manage/class-ngg-manager.php:486
|
3477 |
+
msgid "Pictures deleted successfully "
|
3478 |
+
msgstr "Afbeeldingen met succes verwijderd"
|
3479 |
|
3480 |
+
#: ../admin/manage/class-ngg-search-manager.php:38
|
3481 |
+
#, php-format
|
3482 |
+
msgid "Image results for %s"
|
3483 |
+
msgstr "Afbeeldingsresultaten voor %s"
|
3484 |
|
3485 |
+
#: ../admin/manage/class-ngg-sort-manager.php:33
|
3486 |
+
msgid ""
|
3487 |
+
"To enable manual Sort set Custom Order Sort. See Settings->Gallery Settings-"
|
3488 |
+
">Sort Options"
|
3489 |
+
msgstr ""
|
3490 |
+
"Om manueel sorteren aan te zetten moet je Aangepaste Sorteermethode "
|
3491 |
+
"inschakelen in Instellingen -> Galerij-opties -> Sorteeropties"
|
3492 |
|
3493 |
+
#: ../admin/manage/class-ngg-sort-manager.php:35
|
3494 |
+
msgid "Go back"
|
3495 |
+
msgstr "Teruggaan"
|
|
|
|
|
3496 |
|
3497 |
# @ nggallery
|
3498 |
+
#: ../admin/manage/class-ngg-sort-manager.php:83
|
3499 |
+
msgid "Sort Gallery"
|
3500 |
+
msgstr "Galerij volgorde"
|
|
|
3501 |
|
3502 |
# @ nggallery
|
3503 |
+
#: ../admin/manage/class-ngg-sort-manager.php:89
|
3504 |
+
msgid "Back to gallery"
|
3505 |
+
msgstr "Terug naar galerij"
|
|
|
|
|
|
|
|
|
|
|
3506 |
|
3507 |
# @ nggallery
|
3508 |
+
#: ../admin/manage/class-ngg-sort-manager.php:91
|
3509 |
+
msgid "Update Sort Order"
|
3510 |
+
msgstr "Volgorde bijwerken"
|
3511 |
|
3512 |
# @ nggallery
|
3513 |
+
#: ../admin/manage/class-ngg-sort-manager.php:97
|
3514 |
+
msgid "Presort"
|
3515 |
+
msgstr "Vooraf sorteren"
|
3516 |
+
|
3517 |
+
# @ nggallery
|
3518 |
+
#: ../admin/manage/class-ngg-sort-manager.php:101
|
3519 |
+
msgid "Unsorted"
|
3520 |
+
msgstr "Ongesorteerd"
|
3521 |
+
|
3522 |
+
# @ nggallery
|
3523 |
+
#: ../admin/manage/class-ngg-sort-manager.php:116
|
3524 |
+
#: ../admin/media-upload.php:221
|
3525 |
+
msgid "Alt/Title text"
|
3526 |
+
msgstr "Alt / Titel tekst"
|
3527 |
+
|
3528 |
+
# @ nggallery
|
3529 |
+
#: ../admin/manage/class-ngg-sort-manager.php:121 ../lib/meta.php:452
|
3530 |
+
msgid "Date/Time"
|
3531 |
+
msgstr "Datum/tijd"
|
3532 |
+
|
3533 |
+
# @ nggallery
|
3534 |
+
#: ../admin/manage/class-ngg-sort-manager.php:207
|
3535 |
+
msgid "Sort order changed"
|
3536 |
+
msgstr "Volgorde gewijzigd"
|
3537 |
+
|
3538 |
+
# @ nggallery
|
3539 |
+
#: ../admin/media-upload.php:11
|
3540 |
+
msgid "NextCellent Gallery"
|
3541 |
+
msgstr "NextCellent Gallery"
|
3542 |
+
|
3543 |
+
# @ nggallery
|
3544 |
+
#: ../admin/media-upload.php:166
|
3545 |
+
msgid "No gallery"
|
3546 |
+
msgstr "Geen galerij"
|
3547 |
+
|
3548 |
+
# @ nggallery
|
3549 |
+
#: ../admin/media-upload.php:178
|
3550 |
+
msgid "Select »"
|
3551 |
+
msgstr "Selecteer »"
|
3552 |
+
|
3553 |
+
# @ nggallery
|
3554 |
+
#: ../admin/media-upload.php:209
|
3555 |
+
msgid "Show"
|
3556 |
+
msgstr "Toon"
|
3557 |
+
|
3558 |
+
# @ nggallery
|
3559 |
+
#: ../admin/media-upload.php:210
|
3560 |
+
msgid "Hide"
|
3561 |
+
msgstr "Verberg"
|
3562 |
+
|
3563 |
+
# @ nggallery
|
3564 |
+
#: ../admin/media-upload.php:215
|
3565 |
+
msgid "Image ID:"
|
3566 |
+
msgstr "Afbeeldings ID:"
|
3567 |
+
|
3568 |
+
# @ default
|
3569 |
+
# @ nggallery
|
3570 |
+
#: ../admin/media-upload.php:229 ../admin/tinymce/window.php:332
|
3571 |
+
msgid "Alignment"
|
3572 |
+
msgstr "Uitlijning"
|
3573 |
+
|
3574 |
+
# @ default
|
3575 |
+
# @ nggallery
|
3576 |
+
#: ../admin/media-upload.php:234 ../admin/tinymce/window.php:336
|
3577 |
+
msgid "Left"
|
3578 |
+
msgstr "Links"
|
3579 |
+
|
3580 |
+
# @ default
|
3581 |
+
# @ nggallery
|
3582 |
+
#: ../admin/media-upload.php:236 ../admin/tinymce/window.php:337
|
3583 |
+
msgid "Center"
|
3584 |
+
msgstr "Centreren"
|
3585 |
+
|
3586 |
+
# @ default
|
3587 |
+
# @ nggallery
|
3588 |
+
#: ../admin/media-upload.php:238 ../admin/tinymce/window.php:338
|
3589 |
+
msgid "Right"
|
3590 |
+
msgstr "Rechts"
|
3591 |
+
|
3592 |
+
# @ default
|
3593 |
+
#: ../admin/media-upload.php:248
|
3594 |
+
msgid "Full size"
|
3595 |
+
msgstr "Volledige grootte"
|
3596 |
+
|
3597 |
+
# @ nggallery
|
3598 |
+
#: ../admin/media-upload.php:250
|
3599 |
+
msgid "Singlepic"
|
3600 |
+
msgstr "Enkelepic"
|
3601 |
+
|
3602 |
+
# @ default
|
3603 |
+
#: ../admin/media-upload.php:263
|
3604 |
+
msgid "Insert into Post"
|
3605 |
+
msgstr "Invoegen in bericht"
|
3606 |
+
|
3607 |
+
# @ nggallery
|
3608 |
+
#: ../admin/media-upload.php:274
|
3609 |
+
msgid "Save all changes"
|
3610 |
+
msgstr "Wijzigingen bewaren"
|
3611 |
+
|
3612 |
+
#: ../admin/tinymce/window.php:115
|
3613 |
+
msgid "To add something, select what you would want to display"
|
3614 |
+
msgstr "Selecteer wat je wilt weergeven om iets toe te voegen"
|
3615 |
+
|
3616 |
+
# @ nggallery
|
3617 |
+
#: ../admin/tinymce/window.php:119
|
3618 |
+
msgid "One picture"
|
3619 |
+
msgstr "Eén afbeelding"
|
3620 |
+
|
3621 |
+
# @ nggallery
|
3622 |
+
#: ../admin/tinymce/window.php:120
|
3623 |
+
msgid "Recent pictures"
|
3624 |
+
msgstr "Recente afbeeldingen"
|
3625 |
+
|
3626 |
+
# @ nggallery
|
3627 |
+
#: ../admin/tinymce/window.php:121
|
3628 |
+
msgid "Random pictures"
|
3629 |
+
msgstr "Willekeurige afbeeldingen"
|
3630 |
+
|
3631 |
+
#: ../admin/tinymce/window.php:129 ../admin/tinymce/window.php:230
|
3632 |
+
#: ../admin/tinymce/window.php:297 ../admin/tinymce/window.php:355
|
3633 |
+
#: ../admin/tinymce/window.php:417
|
3634 |
+
msgid "Basics"
|
3635 |
+
msgstr "Basis"
|
3636 |
+
|
3637 |
+
# @ nggallery
|
3638 |
+
#: ../admin/tinymce/window.php:132 ../admin/tinymce/window.php:376
|
3639 |
+
#: ../admin/tinymce/window.php:427
|
3640 |
+
#: ../widgets/class-ngg-slideshow-widget.php:113
|
3641 |
+
msgid "Select a gallery:"
|
3642 |
+
msgstr "Selecteer een galerij:"
|
3643 |
+
|
3644 |
+
#: ../admin/tinymce/window.php:140
|
3645 |
+
msgid "Display types"
|
3646 |
+
msgstr "Weergavemodi"
|
3647 |
+
|
3648 |
+
# @ nggallery
|
3649 |
+
#: ../admin/tinymce/window.php:143
|
3650 |
+
msgid "Select how you want to display your gallery"
|
3651 |
+
msgstr "Selecteer hoe je je galerij wilt weergeven"
|
3652 |
+
|
3653 |
+
# @ nggallery
|
3654 |
+
#: ../admin/tinymce/window.php:162
|
3655 |
+
msgid "Imagebrowser"
|
3656 |
msgstr "Afbeeldingsbrowser"
|
3657 |
|
3658 |
+
#: ../admin/tinymce/window.php:168 ../admin/tinymce/window.php:280
|
3659 |
+
#: ../admin/tinymce/window.php:401 ../admin/tinymce/window.php:452
|
3660 |
msgid "Carousel"
|
3661 |
msgstr "Carousel"
|
3662 |
|
3663 |
# @ nggallery
|
3664 |
+
#: ../admin/tinymce/window.php:174 ../admin/tinymce/window.php:286
|
3665 |
+
#: ../admin/tinymce/window.php:347 ../admin/tinymce/window.php:407
|
3666 |
+
#: ../admin/tinymce/window.php:458 ../lib/meta.php:451
|
3667 |
msgid "Caption"
|
3668 |
msgstr "Titel"
|
3669 |
|
3670 |
# @ nggallery
|
3671 |
+
#: ../admin/tinymce/window.php:187
|
3672 |
msgid "Type options"
|
3673 |
msgstr "Type-opties"
|
3674 |
|
3675 |
+
#: ../admin/tinymce/window.php:197
|
|
|
|
|
|
|
|
|
|
|
|
|
3676 |
msgid ""
|
3677 |
"The number of images before pagination is applied. Leave empty for the "
|
3678 |
"default from the settings."
|
3681 |
"standaardwaarde van de instellingen."
|
3682 |
|
3683 |
# @ nggallery
|
3684 |
+
#: ../admin/tinymce/window.php:205
|
3685 |
msgid "Slideshow dimensions"
|
3686 |
msgstr "Dimensies diavoorstelling"
|
3687 |
|
3688 |
# @ nggallery
|
3689 |
+
#: ../admin/tinymce/window.php:216
|
3690 |
msgid "Template name"
|
3691 |
msgstr "Templatenaam"
|
3692 |
|
3693 |
# @ nggallery
|
3694 |
+
#: ../admin/tinymce/window.php:236
|
3695 |
msgid "Select or enter album"
|
3696 |
msgstr "Selecteer of geef album"
|
3697 |
|
3698 |
+
#: ../admin/tinymce/window.php:238
|
3699 |
msgid "Leave this empty to display all galleries."
|
3700 |
msgstr "Laat dit leeg om alle galerijen te tonen."
|
3701 |
|
3702 |
# @ nggallery
|
3703 |
+
#: ../admin/tinymce/window.php:242
|
3704 |
msgid "Album display types"
|
3705 |
msgstr "Weergavemodi"
|
3706 |
|
3707 |
+
#: ../admin/tinymce/window.php:245
|
3708 |
msgid "Select how you want to display the albums"
|
3709 |
msgstr "Selecteer hoe je de albums wilt weergeven"
|
3710 |
|
3711 |
# @ nggallery
|
3712 |
+
#: ../admin/tinymce/window.php:252
|
3713 |
msgid "Compact version"
|
3714 |
msgstr "Compacte versie"
|
3715 |
|
3716 |
# @ nggallery
|
3717 |
+
#: ../admin/tinymce/window.php:258
|
3718 |
msgid "Extended version"
|
3719 |
msgstr "Uitgebreide versie"
|
3720 |
|
3721 |
# @ nggallery
|
3722 |
+
#: ../admin/tinymce/window.php:264
|
3723 |
msgid "Gallery display types"
|
3724 |
msgstr "Weergavemodi"
|
3725 |
|
3726 |
+
#: ../admin/tinymce/window.php:267
|
3727 |
msgid ""
|
3728 |
"Select a template for the galleries (displayed after you click on an album)"
|
3729 |
msgstr ""
|
3731 |
"een album)"
|
3732 |
|
3733 |
# @ nggallery
|
3734 |
+
#: ../admin/tinymce/window.php:301
|
3735 |
msgid "Select a picture"
|
3736 |
msgstr "Selecteer een afbeelding"
|
3737 |
|
3738 |
# @ nggallery
|
3739 |
+
#: ../admin/tinymce/window.php:305
|
3740 |
msgid "Select or enter picture"
|
3741 |
msgstr "Selecteer of geef afbeedling"
|
3742 |
|
3743 |
# @ nggallery
|
3744 |
+
#: ../admin/tinymce/window.php:310 ../admin/tinymce/window.php:385
|
3745 |
+
#: ../admin/tinymce/window.php:436
|
3746 |
msgid "Options"
|
3747 |
msgstr "Opties"
|
3748 |
|
3749 |
+
#: ../admin/tinymce/window.php:313
|
3750 |
msgid "Dimensions"
|
3751 |
msgstr "Dimensies"
|
3752 |
|
3753 |
# @ nggallery
|
3754 |
+
#: ../admin/tinymce/window.php:322
|
3755 |
msgid "Effect"
|
3756 |
msgstr "Effect"
|
3757 |
|
3758 |
# @ nggallery
|
3759 |
+
#: ../admin/tinymce/window.php:325
|
3760 |
msgid "No effect"
|
3761 |
msgstr "Geen effect"
|
3762 |
|
3763 |
# @ nggallery
|
3764 |
+
#: ../admin/tinymce/window.php:327
|
3765 |
msgid "Web 2.0"
|
3766 |
msgstr "Web 2.0"
|
3767 |
|
3768 |
# @ nggallery
|
3769 |
+
#: ../admin/tinymce/window.php:335
|
3770 |
msgid "No float"
|
3771 |
msgstr "Geen float"
|
3772 |
|
3773 |
+
#: ../admin/tinymce/window.php:343
|
3774 |
msgid "Link"
|
3775 |
msgstr "Link"
|
3776 |
|
3777 |
+
#: ../admin/tinymce/window.php:344
|
3778 |
msgid "Add an optional link to the image. Leave blank for no link."
|
3779 |
msgstr ""
|
3780 |
"Voeg een optionele link toe aan de afbeelding. Laat leeg voor geen link."
|
3781 |
|
3782 |
+
#: ../admin/tinymce/window.php:348
|
3783 |
msgid "Add an optional caption to the image. Leave blank for no caption."
|
3784 |
msgstr ""
|
3785 |
"Voeg een optioneel bijschrift toe aan de afbeelding. Laat leeg voor geen "
|
3786 |
"bijschrift."
|
3787 |
|
3788 |
+
#: ../admin/tinymce/window.php:361 ../admin/tinymce/window.php:423
|
3789 |
msgid "The number of images that should be displayed."
|
3790 |
msgstr "Het aantal afbeeldingen dat getoond moet worden."
|
3791 |
|
3792 |
# @ nggallery
|
3793 |
+
#: ../admin/tinymce/window.php:365
|
3794 |
msgid "Sort the images"
|
3795 |
msgstr "Sorteer de afbeeldingen"
|
3796 |
|
3797 |
# @ nggallery
|
3798 |
+
#: ../admin/tinymce/window.php:368
|
3799 |
msgid "Upload order"
|
3800 |
msgstr "Uploadvolgorde"
|
3801 |
|
3802 |
# @ nggallery
|
3803 |
+
#: ../admin/tinymce/window.php:369
|
3804 |
msgid "Date taken"
|
3805 |
msgstr "Datum genomen"
|
3806 |
|
3807 |
+
#: ../admin/tinymce/window.php:370
|
3808 |
msgid "User defined"
|
3809 |
msgstr "Aangepast"
|
3810 |
|
3811 |
+
#: ../admin/tinymce/window.php:372
|
3812 |
msgid ""
|
3813 |
"In what order the images are shown. Upload order uses the ID's, date taken "
|
3814 |
"uses the EXIF data and user defined is the sort mode from the settings."
|
3817 |
"ID's, datum gemaakt gebruikt de EXIF-data en door de gebruiker gedefinieerd "
|
3818 |
"is de volgorde uit de instellingen."
|
3819 |
|
3820 |
+
#: ../admin/tinymce/window.php:381 ../admin/tinymce/window.php:432
|
3821 |
msgid "If a gallery is selected, only images from that gallery will be shown."
|
3822 |
msgstr ""
|
3823 |
"Als een galerij geselecteerd wordt, zullen er enkel afbeeldingen uit die "
|
3824 |
"galerij getoond worden."
|
3825 |
|
3826 |
# @ nggallery
|
3827 |
+
#: ../admin/tinymce/window.php:388 ../admin/tinymce/window.php:439
|
3828 |
msgid "Select a template to display the images"
|
3829 |
msgstr "Selecteer een sjabloon om de afbeeldingen te tonen"
|
3830 |
|
3831 |
# @ nggallery
|
3832 |
+
#: ../admin/tinymce/window.php:472
|
3833 |
msgid "Insert"
|
3834 |
msgstr "Toevoegen"
|
3835 |
|
3836 |
# @ nggallery
|
3837 |
+
#: ../admin/tinymce/window.php:508
|
3838 |
msgid "You need to select a gallery."
|
3839 |
msgstr "Je moet een galerij selecteren."
|
3840 |
|
3841 |
+
#: ../admin/tinymce/window.php:512
|
3842 |
msgid "You need to select a picture."
|
3843 |
msgstr "Je moet een afbeelding selecteren."
|
3844 |
|
3845 |
# @ nggallery
|
3846 |
+
#: ../admin/tinymce/window.php:516 ../admin/tinymce/window.php:520
|
3847 |
msgid "You need to select a number of images."
|
3848 |
msgstr "Je moet een aantal afbeelding selecteren."
|
3849 |
|
3850 |
# @ nggallery
|
3851 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:39
|
3852 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:59
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3853 |
msgid "Upgrade NextCellent Gallery"
|
3854 |
msgstr "NextCellent Gallery upgraden"
|
3855 |
|
3856 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:41
|
3857 |
msgid ""
|
3858 |
"You're upgrading from an older version. To enable the newest features, we "
|
3859 |
"sometimes need to do a database upgrade."
|
3861 |
"Je upgrade van een oudere versie. Om de nieuwste functies te kunnen "
|
3862 |
"gebruiken, moet je een database-upgrade uitvoeren."
|
3863 |
|
3864 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:46
|
3865 |
msgid ""
|
3866 |
"Normally you should be able to downgrade without any problems, but if you "
|
3867 |
"really want to play safe, you should make a backup of your database."
|
3870 |
"het echt veilig wil spelen, maak je best een back-up van je database."
|
3871 |
|
3872 |
# @ nggallery
|
3873 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:51
|
3874 |
msgid "Start upgrade now"
|
3875 |
msgstr "Upgrade starten"
|
3876 |
|
3877 |
+
# @ nggallery
|
3878 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:63
|
3879 |
+
msgid "Upgrading database…"
|
3880 |
+
msgstr "Database bijwerken..."
|
3881 |
+
|
3882 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:68
|
3883 |
+
msgid "Oh no! Something went wrong while updating the database"
|
3884 |
+
msgstr "Iets ging verkeerd bij het hernoemen van"
|
3885 |
+
|
3886 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:72
|
3887 |
msgid "Upgrade complete."
|
3888 |
msgstr "Upgrade voltooid."
|
3889 |
|
3890 |
# @ nggallery
|
3891 |
+
#: ../admin/upgrade/class-ngg-upgrade-page.php:74
|
3892 |
msgid "Continue to NextCellent"
|
3893 |
msgstr "Verder naar NextCellent"
|
3894 |
|
3895 |
# @ nggallery
|
3896 |
+
#: ../admin/wpmu.php:44
|
3897 |
msgid "Update successfully"
|
3898 |
msgstr "Met succes bijgewerkt"
|
3899 |
|
3900 |
# @ nggallery
|
3901 |
+
#: ../admin/wpmu.php:79
|
3902 |
msgid "Network Options"
|
3903 |
msgstr "Netwerk instellingen"
|
3904 |
|
3905 |
# @ nggallery
|
3906 |
+
#: ../admin/wpmu.php:89
|
3907 |
msgid ""
|
3908 |
"This is the default path for all blogs. With the placeholder %BLOG_ID% you "
|
3909 |
"can organize the folder structure better."
|
3912 |
"je de map beter structureren."
|
3913 |
|
3914 |
# @ nggallery
|
3915 |
+
#: ../admin/wpmu.php:90
|
3916 |
#, php-format
|
3917 |
+
msgid "The default setting should be %s."
|
3918 |
msgstr "De standaard instelling zou %s moeten zijn"
|
3919 |
|
3920 |
# @ nggallery
|
3921 |
+
#: ../admin/wpmu.php:102
|
3922 |
msgid "Enable upload quota check"
|
3923 |
msgstr "Inschakelen upload quota controle"
|
3924 |
|
3925 |
# @ nggallery
|
3926 |
+
#: ../admin/wpmu.php:105
|
3927 |
msgid "Should work if the gallery is bellow the blog.dir"
|
3928 |
msgstr "Zal werken als de gallery zich onder de blog.dir bevindt"
|
3929 |
|
3930 |
# @ nggallery
|
3931 |
+
#: ../admin/wpmu.php:109
|
3932 |
msgid "Enable zip upload option"
|
3933 |
msgstr "Inschakelen zip upload optie"
|
3934 |
|
3935 |
# @ nggallery
|
3936 |
+
#: ../admin/wpmu.php:112
|
3937 |
msgid "Allow users to upload zip folders."
|
3938 |
msgstr "Gebruikers toestaan zip mappen te uploaden"
|
3939 |
|
3940 |
# @ nggallery
|
3941 |
+
#: ../admin/wpmu.php:116
|
3942 |
msgid "Enable import function"
|
3943 |
msgstr "Inschakelen importeer functie"
|
3944 |
|
3945 |
# @ nggallery
|
3946 |
+
#: ../admin/wpmu.php:119
|
3947 |
msgid "Allow users to import images folders from the server."
|
3948 |
msgstr "Gebruikers toestaan afbeeldingsmappen te importeren vanaf de server."
|
3949 |
|
3950 |
# @ nggallery
|
3951 |
+
#: ../admin/wpmu.php:123
|
3952 |
msgid "Enable style selection"
|
3953 |
msgstr "Inschakelen style selectie"
|
3954 |
|
3955 |
# @ nggallery
|
3956 |
+
#: ../admin/wpmu.php:126
|
3957 |
msgid "Allow users to choose a style for the gallery."
|
3958 |
msgstr "Gebruikers toestaan een stijl te kiezen voor de galerij"
|
3959 |
|
3960 |
# @ nggallery
|
3961 |
+
#: ../admin/wpmu.php:130
|
3962 |
msgid "Enable roles/capabilities"
|
3963 |
msgstr "Inschakelen Rollen/Rechten mogelijkheden"
|
3964 |
|
3965 |
# @ nggallery
|
3966 |
+
#: ../admin/wpmu.php:133
|
3967 |
msgid "Allow users to change the roles for other blog authors."
|
3968 |
msgstr "Gebruikers toestaan de rollen voor andere site auteurs te wijzigen"
|
3969 |
|
3970 |
# @ nggallery
|
3971 |
+
#: ../admin/wpmu.php:137
|
3972 |
msgid "Default style"
|
3973 |
msgstr "Standaard style"
|
3974 |
|
3975 |
# @ nggallery
|
3976 |
+
#: ../admin/wpmu.php:143
|
3977 |
msgid "Choose the default style for the galleries."
|
3978 |
msgstr "Kies de standaard stijl voor de galerijen."
|
3979 |
|
3980 |
+
#: ../admin/wpmu.php:144
|
3981 |
+
msgid "Note: between brackets is the folder in which the file is."
|
3982 |
+
msgstr ""
|
3983 |
+
"Opmerking: tussen haakjes staat de map waarin het bestand zich bevindt."
|
3984 |
+
|
3985 |
# @ nggallery
|
3986 |
#: ../lib/core.php:432
|
3987 |
#, php-format
|
4018 |
msgstr "Fired"
|
4019 |
|
4020 |
# @ nggallery
|
4021 |
+
#: ../lib/meta.php:141
|
4022 |
+
msgid "Not fired"
|
4023 |
+
msgstr "Niet fired"
|
4024 |
+
|
4025 |
+
# @ nggallery
|
4026 |
+
#: ../lib/meta.php:448 ../view/imagebrowser-exif.php:46
|
4027 |
+
msgid "Aperture"
|
4028 |
+
msgstr "Opening"
|
4029 |
+
|
4030 |
+
# @ nggallery
|
4031 |
+
#: ../lib/meta.php:449 ../lib/meta.php:474
|
4032 |
+
msgid "Credit"
|
4033 |
+
msgstr "Credit"
|
4034 |
+
|
4035 |
+
# @ nggallery
|
4036 |
+
#: ../lib/meta.php:450
|
4037 |
+
msgid "Camera"
|
4038 |
+
msgstr "Camera"
|
4039 |
+
|
4040 |
+
# @ nggallery
|
4041 |
+
#: ../lib/meta.php:453
|
4042 |
+
msgid "Copyright"
|
4043 |
+
msgstr "Copyright"
|
4044 |
+
|
4045 |
+
# @ nggallery
|
4046 |
+
#: ../lib/meta.php:454
|
4047 |
+
msgid "Focal length"
|
4048 |
+
msgstr "Focal lengte"
|
4049 |
+
|
4050 |
+
# @ nggallery
|
4051 |
+
#: ../lib/meta.php:455
|
4052 |
+
msgid "ISO"
|
4053 |
+
msgstr "ISO"
|
4054 |
+
|
4055 |
+
# @ nggallery
|
4056 |
+
#: ../lib/meta.php:456 ../view/imagebrowser-exif.php:54
|
4057 |
+
msgid "Shutter speed"
|
4058 |
+
msgstr "Sluiter snelheid"
|
4059 |
+
|
4060 |
+
# @ nggallery
|
4061 |
+
#: ../lib/meta.php:460
|
4062 |
+
msgid "Subject"
|
4063 |
+
msgstr "Onderwerp"
|
4064 |
+
|
4065 |
+
# @ nggallery
|
4066 |
+
#: ../lib/meta.php:461
|
4067 |
+
msgid "Make"
|
4068 |
+
msgstr "Maak"
|
4069 |
+
|
4070 |
+
# @ nggallery
|
4071 |
+
#: ../lib/meta.php:462
|
4072 |
+
msgid "Edit Status"
|
4073 |
+
msgstr "Bewerk status"
|
4074 |
+
|
4075 |
+
# @ nggallery
|
4076 |
+
#: ../lib/meta.php:463
|
4077 |
+
msgid "Category"
|
4078 |
+
msgstr "Categorie"
|
4079 |
+
|
4080 |
+
# @ nggallery
|
4081 |
+
#: ../lib/meta.php:464
|
4082 |
+
msgid "Keywords"
|
4083 |
+
msgstr "Sleutelwoorden"
|
4084 |
+
|
4085 |
+
# @ nggallery
|
4086 |
+
#: ../lib/meta.php:465
|
4087 |
+
msgid "Date Created"
|
4088 |
+
msgstr "Datum gemaakt"
|
4089 |
+
|
4090 |
+
# @ nggallery
|
4091 |
+
#: ../lib/meta.php:466
|
4092 |
+
msgid "Time Created"
|
4093 |
+
msgstr "Tijd gemaakt"
|
4094 |
+
|
4095 |
+
# @ nggallery
|
4096 |
+
#: ../lib/meta.php:467
|
4097 |
+
msgid "Author Position"
|
4098 |
+
msgstr "Auteur positie"
|
4099 |
+
|
4100 |
+
# @ nggallery
|
4101 |
+
#: ../lib/meta.php:468
|
4102 |
+
msgid "City"
|
4103 |
+
msgstr "Plaats"
|
4104 |
+
|
4105 |
+
# @ nggallery
|
4106 |
+
#: ../lib/meta.php:469
|
4107 |
+
msgid "Location"
|
4108 |
+
msgstr "Locatie"
|
4109 |
+
|
4110 |
+
# @ nggallery
|
4111 |
+
#: ../lib/meta.php:470
|
4112 |
+
msgid "Province/State"
|
4113 |
+
msgstr "Provincie"
|
4114 |
+
|
4115 |
+
# @ nggallery
|
4116 |
+
#: ../lib/meta.php:471
|
4117 |
+
msgid "Country code"
|
4118 |
+
msgstr "Postcode"
|
4119 |
+
|
4120 |
+
# @ nggallery
|
4121 |
+
#: ../lib/meta.php:472
|
4122 |
+
msgid "Country"
|
4123 |
+
msgstr "Land"
|
4124 |
+
|
4125 |
+
# @ nggallery
|
4126 |
+
#: ../lib/meta.php:473
|
4127 |
+
msgid "Headline"
|
4128 |
+
msgstr "Headline"
|
4129 |
+
|
4130 |
+
# @ nggallery
|
4131 |
+
#: ../lib/meta.php:475
|
4132 |
+
msgid "Source"
|
4133 |
+
msgstr "Bron"
|
4134 |
+
|
4135 |
+
# @ nggallery
|
4136 |
+
#: ../lib/meta.php:476
|
4137 |
+
msgid "Copyright Notice"
|
4138 |
+
msgstr "Copyright opmerking:"
|
4139 |
+
|
4140 |
+
# @ nggallery
|
4141 |
+
#: ../lib/meta.php:477
|
4142 |
+
msgid "Contact"
|
4143 |
+
msgstr "Contact"
|
4144 |
+
|
4145 |
+
# @ nggallery
|
4146 |
+
#: ../lib/meta.php:478
|
4147 |
+
msgid "Last modified"
|
4148 |
+
msgstr "Laatst gewijzigd"
|
4149 |
+
|
4150 |
+
# @ nggallery
|
4151 |
+
#: ../lib/meta.php:479
|
4152 |
+
msgid "Program tool"
|
4153 |
+
msgstr "Programma gereedschap"
|
4154 |
+
|
4155 |
+
# @ nggallery
|
4156 |
+
#: ../lib/meta.php:480
|
4157 |
+
msgid "Format"
|
4158 |
+
msgstr "Formaat"
|
4159 |
+
|
4160 |
+
# @ nggallery
|
4161 |
+
#: ../lib/meta.php:481
|
4162 |
+
msgid "Image Width"
|
4163 |
+
msgstr "Afbeelding breedte"
|
4164 |
+
|
4165 |
+
# @ nggallery
|
4166 |
+
#: ../lib/meta.php:482
|
4167 |
+
msgid "Image Height"
|
4168 |
+
msgstr "Afbeelding hoogte"
|
4169 |
+
|
4170 |
+
# @ nggallery
|
4171 |
+
#: ../lib/meta.php:483
|
4172 |
+
msgid "Flash"
|
4173 |
+
msgstr "Flash"
|
4174 |
+
|
4175 |
+
# @ nggallery
|
4176 |
+
#: ../lib/multisite.php:23
|
4177 |
+
msgid ""
|
4178 |
+
"Sorry, you have used your space allocation. Please delete some files to "
|
4179 |
+
"upload more files."
|
4180 |
+
msgstr ""
|
4181 |
+
"Helaas, je hebt de maximale ruimte gebruikt. Verwijder enkele bestanden om "
|
4182 |
+
"andere bestanden te kunnen uploaden."
|
4183 |
+
|
4184 |
+
# @ nggallery
|
4185 |
+
#: ../lib/ngg-db.php:361 ../lib/ngg-db.php:362
|
4186 |
+
msgid "Album overview"
|
4187 |
+
msgstr "Album overzicht"
|
4188 |
+
|
4189 |
+
# @ nggallery
|
4190 |
+
#: ../lib/rewrite.php:223 ../view/imagebrowser-caption.php:31
|
4191 |
+
#: ../view/imagebrowser-exif.php:35 ../view/imagebrowser.php:31
|
4192 |
+
msgid "Picture"
|
4193 |
+
msgstr "Afbeelding"
|
4194 |
+
|
4195 |
+
# @ nggallery
|
4196 |
+
#: ../lib/shortcodes.php:358
|
4197 |
+
msgid "[Pictures not found]"
|
4198 |
+
msgstr "[Geen afbeeldingen gevonden]"
|
4199 |
+
|
4200 |
+
# @ nggallery
|
4201 |
+
#: ../lib/tags.php:35
|
4202 |
+
msgid "No new tag specified!"
|
4203 |
+
msgstr "Geen nieuwe tag gespecificeerd!"
|
4204 |
+
|
4205 |
+
# @ nggallery
|
4206 |
+
#: ../lib/tags.php:50
|
4207 |
+
msgid "No new/old valid tag specified!"
|
4208 |
+
msgstr "Geen nieuw/oud geldige tag gegeven!"
|
4209 |
+
|
4210 |
+
# @ nggallery
|
4211 |
+
#: ../lib/tags.php:86
|
4212 |
+
msgid "No tag renamed."
|
4213 |
+
msgstr "Geen tag hernoemd"
|
4214 |
+
|
4215 |
+
# @ nggallery
|
4216 |
+
#: ../lib/tags.php:88
|
4217 |
+
#, php-format
|
4218 |
+
msgid "Renamed tag(s) «%1$s» to «%2$s»"
|
4219 |
+
msgstr "Hernoemde tag(s) «%1$s» naar «%2$s»"
|
4220 |
+
|
4221 |
+
# @ nggallery
|
4222 |
+
#: ../lib/tags.php:95
|
4223 |
+
msgid "No valid new tag."
|
4224 |
+
msgstr "Geen geldige nieuwe tag."
|
4225 |
+
|
4226 |
+
# @ nggallery
|
4227 |
+
#: ../lib/tags.php:112
|
4228 |
+
msgid "No objects (post/page) found for specified old tags."
|
4229 |
+
msgstr ""
|
4230 |
+
"Geen objecten (berichten/pagina's) gevonden voor de opgegeven oude tags."
|
4231 |
+
|
4232 |
+
# @ nggallery
|
4233 |
+
#: ../lib/tags.php:141
|
4234 |
+
msgid "No tag merged."
|
4235 |
+
msgstr "Geen tag samengevoegd"
|
4236 |
+
|
4237 |
+
# @ nggallery
|
4238 |
+
#: ../lib/tags.php:143
|
4239 |
+
#, php-format
|
4240 |
+
msgid ""
|
4241 |
+
"Merge tag(s) «%1$s» to «%2$s». %3$s objects edited."
|
4242 |
+
msgstr ""
|
4243 |
+
"Samengevoegde tag(s) «%1$s» naar «%2$s». %3$s "
|
4244 |
+
"objecten bewerkt."
|
4245 |
+
|
4246 |
+
# @ nggallery
|
4247 |
+
#: ../lib/tags.php:146
|
4248 |
+
msgid "Error. No enough tags for rename. Too for merge. Choose !"
|
4249 |
+
msgstr "Mislukt. Niet genoeg tags om te hernoemen. Ook voor samenvoegen. Kies!"
|
4250 |
+
|
4251 |
+
# @ nggallery
|
4252 |
+
#: ../lib/tags.php:163
|
4253 |
+
msgid "No tag specified!"
|
4254 |
+
msgstr "Geen tag gegeven!"
|
4255 |
+
|
4256 |
+
# @ nggallery
|
4257 |
+
#: ../lib/tags.php:186
|
4258 |
+
msgid "No tag deleted."
|
4259 |
+
msgstr "Geen tag verwijderd."
|
4260 |
+
|
4261 |
+
# @ nggallery
|
4262 |
+
#: ../lib/tags.php:188
|
4263 |
+
#, php-format
|
4264 |
+
msgid "%1s tag(s) deleted."
|
4265 |
+
msgstr "%1s tag(s) verwijderd."
|
4266 |
+
|
4267 |
+
# @ nggallery
|
4268 |
+
#: ../lib/tags.php:202
|
4269 |
+
msgid "No new slug(s) specified!"
|
4270 |
+
msgstr "Geen nieuwe slug(s) opgegeven."
|
4271 |
+
|
4272 |
+
# @ nggallery
|
4273 |
+
#: ../lib/tags.php:214
|
4274 |
+
msgid "Tags number and slugs number isn't the same!"
|
4275 |
+
msgstr "Tags nummers en slug nummers zijn niet hetzelfde!"
|
4276 |
+
|
4277 |
+
# @ nggallery
|
4278 |
+
#: ../lib/tags.php:241
|
4279 |
+
msgid "No slug edited."
|
4280 |
+
msgstr "Geen slug bewerkt."
|
4281 |
+
|
4282 |
+
# @ nggallery
|
4283 |
+
#: ../lib/tags.php:243
|
4284 |
+
#, php-format
|
4285 |
+
msgid "%s slug(s) edited."
|
4286 |
+
msgstr "%s slug(s) bewerkt."
|
4287 |
+
|
4288 |
+
# @ default
|
4289 |
+
#: ../lib/xmlrpc.php:93
|
4290 |
+
#, php-format
|
4291 |
+
msgid ""
|
4292 |
+
"XML-RPC services are disabled on this blog. An admin user can enable them "
|
4293 |
+
"at %s"
|
4294 |
+
msgstr ""
|
4295 |
+
"XML-RPC services zijn uitgeschakeld op deze site. Een Admin kan deze "
|
4296 |
+
"inschakelen op %s"
|
4297 |
+
|
4298 |
+
# @ default
|
4299 |
+
#: ../lib/xmlrpc.php:101
|
4300 |
+
msgid "Bad login/pass combination."
|
4301 |
+
msgstr "Onjuiste login/wachtwoord combinatie"
|
4302 |
+
|
4303 |
+
# @ default
|
4304 |
+
#: ../lib/xmlrpc.php:157
|
4305 |
+
msgid "You are not allowed to upload files to this site."
|
4306 |
+
msgstr "Je hebt onvoldoende rechten om bestanden op deze site te uploaden."
|
4307 |
+
|
4308 |
+
# @ default
|
4309 |
+
#: ../lib/xmlrpc.php:163 ../lib/xmlrpc.php:777 ../lib/xmlrpc.php:829
|
4310 |
+
msgid "Could not find gallery "
|
4311 |
+
msgstr "Kan geen galerij vinden"
|
4312 |
+
|
4313 |
+
# @ default
|
4314 |
+
#: ../lib/xmlrpc.php:168 ../lib/xmlrpc.php:782 ../lib/xmlrpc.php:834
|
4315 |
+
msgid "You are not allowed to upload files to this gallery."
|
4316 |
+
msgstr ""
|
4317 |
+
"Je hebt onvoldoende rechten om bestanden naar deze gallery te uploaden."
|
4318 |
+
|
4319 |
+
# @ nggallery
|
4320 |
+
#: ../lib/xmlrpc.php:180
|
4321 |
+
msgid "This is no valid image file."
|
4322 |
+
msgstr "Dit is geen geldig afbeeldingsbestand."
|
4323 |
+
|
4324 |
+
# @ default
|
4325 |
+
#: ../lib/xmlrpc.php:192
|
4326 |
+
msgid "Could not find image id "
|
4327 |
+
msgstr "Kan het afbeeldings id niet vinden"
|
4328 |
+
|
4329 |
+
# @ nggallery
|
4330 |
+
#: ../lib/xmlrpc.php:199
|
4331 |
+
#, php-format
|
4332 |
+
msgid "Failed to delete image %1$s "
|
4333 |
+
msgstr "Afbeelding verwijderen mislukt %1$s"
|
4334 |
+
|
4335 |
+
# @ default
|
4336 |
+
#: ../lib/xmlrpc.php:208
|
4337 |
+
#, php-format
|
4338 |
+
msgid "Could not write file %1$s (%2$s)"
|
4339 |
+
msgstr "Kan bestand %1$s (%2$s) niet beschrijven"
|
4340 |
+
|
4341 |
+
# @ default
|
4342 |
+
#: ../lib/xmlrpc.php:275 ../lib/xmlrpc.php:327
|
4343 |
+
msgid "Invalid image ID"
|
4344 |
+
msgstr "Ongeldige afbeelding ID"
|
4345 |
+
|
4346 |
+
# @ default
|
4347 |
+
#: ../lib/xmlrpc.php:278 ../lib/xmlrpc.php:330
|
4348 |
+
msgid "Sorry, you must be able to edit this image"
|
4349 |
+
msgstr "Helaas, je moet toestemming hebben om deze afbeelding te bewerken"
|
4350 |
+
|
4351 |
+
# @ default
|
4352 |
+
#: ../lib/xmlrpc.php:336
|
4353 |
+
msgid "Sorry, could not update the image"
|
4354 |
+
msgstr "Helaas, de afbeelding kon niet bijgewerkt worden."
|
4355 |
+
|
4356 |
+
# @ default
|
4357 |
+
#: ../lib/xmlrpc.php:372 ../lib/xmlrpc.php:604 ../lib/xmlrpc.php:704
|
4358 |
+
#: ../lib/xmlrpc.php:739
|
4359 |
+
msgid "Sorry, you must be able to manage galleries"
|
4360 |
+
msgstr "Mislukt, je moet toestemming hebben om gallerys kunnen beheren."
|
4361 |
+
|
4362 |
+
# @ default
|
4363 |
+
#: ../lib/xmlrpc.php:378
|
4364 |
+
msgid "Sorry, could not create the gallery"
|
4365 |
+
msgstr "Mislukt, de gallery kon niet gemaakt worden"
|
4366 |
+
|
4367 |
+
# @ default
|
4368 |
+
#: ../lib/xmlrpc.php:421 ../lib/xmlrpc.php:601
|
4369 |
+
msgid "Invalid gallery ID"
|
4370 |
+
msgstr "Ongeldige gallery ID"
|
4371 |
+
|
4372 |
+
# @ default
|
4373 |
+
#: ../lib/xmlrpc.php:424
|
4374 |
+
msgid "Sorry, you must be able to manage this gallery"
|
4375 |
+
msgstr "Mislukt, je moet toestemming hebben om deze gallery te beheren."
|
4376 |
+
|
4377 |
+
# @ default
|
4378 |
+
#: ../lib/xmlrpc.php:430
|
4379 |
+
msgid "Sorry, could not update the gallery"
|
4380 |
+
msgstr "Mislukt, de gallery kon niet bijgewerkt worden."
|
4381 |
+
|
4382 |
+
# @ default
|
4383 |
+
#: ../lib/xmlrpc.php:470 ../lib/xmlrpc.php:522 ../lib/xmlrpc.php:564
|
4384 |
+
#: ../lib/xmlrpc.php:637 ../lib/xmlrpc.php:671
|
4385 |
+
msgid "Sorry, you must be able to manage albums"
|
4386 |
+
msgstr "Mislukt, je moet toestemming heb om albums te beheren"
|
4387 |
+
|
4388 |
+
# @ default
|
4389 |
+
#: ../lib/xmlrpc.php:476
|
4390 |
+
msgid "Sorry, could not create the album"
|
4391 |
+
msgstr "Mislukt, het album kon niet gemaakt worden"
|
4392 |
+
|
4393 |
+
# @ default
|
4394 |
+
#: ../lib/xmlrpc.php:519 ../lib/xmlrpc.php:561
|
4395 |
+
msgid "Invalid album ID"
|
4396 |
+
msgstr "Ongeldig album ID"
|
4397 |
+
|
4398 |
+
# @ default
|
4399 |
+
#: ../lib/xmlrpc.php:528
|
4400 |
+
msgid "Sorry, could not update the album"
|
4401 |
+
msgstr "Helaas, het album kan niet geupdate worden"
|
4402 |
+
|
4403 |
+
#: ../nggallery.php:121
|
4404 |
+
msgid "NextCellent Gallery requires a database upgrade."
|
4405 |
+
msgstr "NextCellent heeft een database-upgrade nodig."
|
4406 |
+
|
4407 |
+
# @ nggallery
|
4408 |
+
#: ../nggallery.php:121
|
4409 |
+
msgid "Upgrade now."
|
4410 |
+
msgstr "Nu upgraden"
|
4411 |
+
|
4412 |
+
# @ nggallery
|
4413 |
+
#: ../nggallery.php:135
|
4414 |
+
msgid ""
|
4415 |
+
"<strong>Translation by : </strong><a target=\"_blank\" href=\"http://"
|
4416 |
+
"alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\">See here</a>"
|
4417 |
+
msgstr ""
|
4418 |
+
"<strong>Vertaling door: </strong><a target=\"_blank\" href=\"http://www."
|
4419 |
+
"werkgroepen.net/wordpress/\">Anja</a>"
|
4420 |
+
|
4421 |
+
# @ nggallery
|
4422 |
+
#: ../nggallery.php:136
|
4423 |
+
msgid ""
|
4424 |
+
"<strong>This translation is not yet updated for Version 1.9.0</strong>. If "
|
4425 |
+
"you would like to help with translation, download the current po from the "
|
4426 |
+
"plugin folder and read <a href=\"http://alexrabe.de/wordpress-plugins/"
|
4427 |
+
"wordtube/translation-of-plugins/\">here</a> how you can translate the plugin."
|
4428 |
+
msgstr ""
|
4429 |
+
"<strong>Deze vertaling is nog niet geupdate voor Versie 1.9.0</strong>. Als "
|
4430 |
+
"je graag wil helpen met de vertaling, download dan de huidige po uit de "
|
4431 |
+
"plugin map en lees <a href=\"http://alexrabe.de/wordpress-plugins/wordtube/"
|
4432 |
+
"translation-of-plugins/\">hier</a> hoe je de plugin kan vertalen."
|
4433 |
+
|
4434 |
+
#: ../nggallery.php:176
|
4435 |
+
msgid "Something went wrong while upgrading NextCellent Gallery."
|
4436 |
+
msgstr "Iets ging verkeerd bij het hernoemen van"
|
4437 |
+
|
4438 |
+
# @ nggallery
|
4439 |
+
#: ../nggallery.php:265
|
4440 |
+
msgid ""
|
4441 |
+
"Sorry, NextCellent Gallery works only with a Memory Limit of 16 MB or higher"
|
4442 |
+
msgstr ""
|
4443 |
+
"Helaas, NextCellent Gallery werkt alleen met een geheugen limiet van 16MB of "
|
4444 |
+
"hoger"
|
4445 |
+
|
4446 |
+
# @ nggallery
|
4447 |
+
#: ../nggallery.php:294
|
4448 |
+
msgid "Picture tag"
|
4449 |
+
msgstr "Afbeeldingstag"
|
4450 |
+
|
4451 |
+
# @ nggallery
|
4452 |
+
#: ../nggallery.php:295
|
4453 |
+
msgid "Picture tag: %2$l."
|
4454 |
+
msgstr "Afbeeldingstag: %2$l."
|
4455 |
+
|
4456 |
+
# @ nggallery
|
4457 |
+
#: ../nggallery.php:296
|
4458 |
+
msgid "Separate picture tags with commas."
|
4459 |
+
msgstr "Afbeeldingstags scheiden met komma's"
|
4460 |
+
|
4461 |
+
# @ nggallery
|
4462 |
+
#: ../nggallery.php:404
|
4463 |
+
msgid "NextCellent Gallery / Images"
|
4464 |
+
msgstr "NextCellent Gallery / Afbeeldingen"
|
4465 |
+
|
4466 |
+
#: ../nggallery.php:414
|
4467 |
+
msgid "NextCellent"
|
4468 |
+
msgstr "NextCellent"
|
4469 |
+
|
4470 |
+
# @ nggallery
|
4471 |
+
#: ../nggallery.php:508
|
4472 |
+
msgid "loading"
|
4473 |
+
msgstr "laden"
|
4474 |
+
|
4475 |
+
# @ nggallery
|
4476 |
+
#: ../nggallery.php:724
|
4477 |
+
msgid "Get help"
|
4478 |
+
msgstr "Help (Engels)"
|
4479 |
+
|
4480 |
+
#: ../nggallery.php:806
|
4481 |
+
msgid "Sorry, NextCellent Gallery is deactivated: NextGEN version "
|
4482 |
+
msgstr "Sorry, NextCellent Gallery is gedeactiveerd: NextGEN-versie"
|
4483 |
+
|
4484 |
+
# @ nggallery
|
4485 |
+
#: ../nggfunctions.php:98
|
4486 |
+
msgid "The gallery was not found."
|
4487 |
+
msgstr "Galerij niet gevonden"
|
4488 |
+
|
4489 |
+
# @ nggallery
|
4490 |
+
#: ../nggfunctions.php:125
|
4491 |
+
msgid "previous"
|
4492 |
+
msgstr "Knop vorige/volgende tonen."
|
4493 |
+
|
4494 |
+
#: ../nggfunctions.php:125
|
4495 |
+
msgid "next"
|
4496 |
+
msgstr "Volgende"
|
4497 |
+
|
4498 |
+
# @ nggallery
|
4499 |
+
#: ../nggfunctions.php:177 ../nggfunctions.php:664
|
4500 |
+
msgid "[Gallery not found]"
|
4501 |
+
msgstr "[Galerij niet gevonden]"
|
4502 |
+
|
4503 |
+
# @ nggallery
|
4504 |
+
#: ../nggfunctions.php:465
|
4505 |
+
msgid "[Album not found]"
|
4506 |
+
msgstr "[Album niet gevonden]"
|
4507 |
+
|
4508 |
+
# @ nggallery
|
4509 |
+
#: ../nggfunctions.php:795
|
4510 |
+
msgid "[SinglePic not found]"
|
4511 |
+
msgstr "[SinglePic niet gevonden]"
|
4512 |
+
|
4513 |
+
# @ nggallery
|
4514 |
+
#: ../nggfunctions.php:931
|
4515 |
+
msgid "Related images for"
|
4516 |
+
msgstr "Gerelateerde afbeeldingen voor"
|
4517 |
+
|
4518 |
+
# @ nggallery
|
4519 |
+
#: ../view/album-compact.php:32 ../view/album-extend.php:30
|
4520 |
+
msgid "Photos"
|
4521 |
+
msgstr "Afbeeldingen"
|
4522 |
+
|
4523 |
+
# @ nggallery
|
4524 |
+
#: ../view/gallery-caption.php:32 ../view/gallery.php:68
|
4525 |
+
msgid "[View with PicLens]"
|
4526 |
+
msgstr "[Bekijk met PicLens] "
|
4527 |
+
|
4528 |
+
# @ nggallery
|
4529 |
+
#: ../view/imagebrowser-caption.php:26 ../view/imagebrowser-exif.php:30
|
4530 |
+
#: ../view/imagebrowser.php:26
|
4531 |
+
msgid "Back"
|
4532 |
+
msgstr "Terug"
|
4533 |
+
|
4534 |
+
# @ nggallery
|
4535 |
+
#: ../view/imagebrowser-caption.php:29 ../view/imagebrowser-exif.php:33
|
4536 |
+
#: ../view/imagebrowser.php:29
|
4537 |
+
msgid "Next"
|
4538 |
+
msgstr "Volgende"
|
4539 |
+
|
4540 |
+
# @ nggallery
|
4541 |
+
#: ../view/imagebrowser-caption.php:31 ../view/imagebrowser-exif.php:35
|
4542 |
+
#: ../view/imagebrowser.php:31
|
4543 |
+
msgid "of"
|
4544 |
+
msgstr "van"
|
4545 |
+
|
4546 |
+
# @ nggallery
|
4547 |
+
#: ../view/imagebrowser-exif.php:38
|
4548 |
+
msgid "Meta data"
|
4549 |
+
msgstr "Meta data"
|
4550 |
+
|
4551 |
+
# @ nggallery
|
4552 |
+
#: ../view/imagebrowser-exif.php:42
|
4553 |
+
msgid "Camera / Type"
|
4554 |
+
msgstr "Camera / Type"
|
4555 |
+
|
4556 |
+
# @ nggallery
|
4557 |
+
#: ../view/imagebrowser-exif.php:50
|
4558 |
+
msgid "Focal Length"
|
4559 |
+
msgstr "Focal lengte"
|
4560 |
+
|
4561 |
+
# @ nggallery
|
4562 |
+
#: ../widgets/class-ngg-gallery-widget.php:12
|
4563 |
+
msgid "NextCellent Gallery Widget"
|
4564 |
+
msgstr "NextCellent Gallery"
|
4565 |
+
|
4566 |
+
# @ nggallery
|
4567 |
+
#: ../widgets/class-ngg-gallery-widget.php:14
|
4568 |
+
msgid "Add recent or random images from the galleries"
|
4569 |
+
msgstr "Toevoegen recente of random afbeeldingen van de galerijen"
|
4570 |
+
|
4571 |
+
# @ default
|
4572 |
+
#: ../widgets/class-ngg-gallery-widget.php:97
|
4573 |
+
#: ../widgets/class-ngg-slideshow-widget.php:106
|
4574 |
+
msgid "Title:"
|
4575 |
+
msgstr "Titel : "
|
4576 |
+
|
4577 |
+
# @ nggallery
|
4578 |
+
#: ../widgets/class-ngg-gallery-widget.php:103
|
4579 |
+
msgid "Show:"
|
4580 |
+
msgstr "Toon:"
|
4581 |
+
|
4582 |
+
# @ nggallery
|
4583 |
+
#: ../widgets/class-ngg-gallery-widget.php:112
|
4584 |
+
msgid "Original images"
|
4585 |
+
msgstr "Originele afbeeldingen"
|
4586 |
+
|
4587 |
+
# @ nggallery
|
4588 |
+
#: ../widgets/class-ngg-gallery-widget.php:120
|
4589 |
+
msgid "random"
|
4590 |
+
msgstr "alle door elkaar gebruiken"
|
4591 |
+
|
4592 |
+
# @ nggallery
|
4593 |
+
#: ../widgets/class-ngg-gallery-widget.php:126
|
4594 |
+
msgid "recent added "
|
4595 |
+
msgstr "recent toegevoegd"
|
4596 |
+
|
4597 |
+
# @ nggallery
|
4598 |
+
#: ../widgets/class-ngg-gallery-widget.php:131
|
4599 |
+
#: ../widgets/class-ngg-slideshow-widget.php:135
|
4600 |
+
msgid "Width:"
|
4601 |
+
msgstr "Breedte:"
|
4602 |
|
4603 |
# @ nggallery
|
4604 |
+
#: ../widgets/class-ngg-gallery-widget.php:140
|
4605 |
+
#: ../widgets/class-ngg-slideshow-widget.php:145
|
4606 |
+
msgid "Height:"
|
4607 |
+
msgstr "Hoogte:"
|
4608 |
|
4609 |
# @ nggallery
|
4610 |
+
#: ../widgets/class-ngg-gallery-widget.php:149
|
4611 |
+
msgid "Select:"
|
4612 |
+
msgstr "Selecteer:"
|
4613 |
|
4614 |
# @ nggallery
|
4615 |
+
#: ../widgets/class-ngg-gallery-widget.php:153
|
4616 |
+
msgid "All galleries"
|
4617 |
+
msgstr "Alle galerijen"
|
4618 |
|
4619 |
# @ nggallery
|
4620 |
+
#: ../widgets/class-ngg-gallery-widget.php:155
|
4621 |
+
msgid "Only which are not listed"
|
4622 |
+
msgstr "Alleen welke niet op de lijst staan"
|
4623 |
|
4624 |
# @ nggallery
|
4625 |
+
#: ../widgets/class-ngg-gallery-widget.php:157
|
4626 |
+
msgid "Only which are listed"
|
4627 |
+
msgstr "Alleen welke op de lijst staan"
|
4628 |
|
4629 |
# @ nggallery
|
4630 |
+
#: ../widgets/class-ngg-gallery-widget.php:161
|
4631 |
+
msgid "Gallery ID:"
|
4632 |
+
msgstr "Galerij-ID:"
|
4633 |
|
4634 |
# @ nggallery
|
4635 |
+
#: ../widgets/class-ngg-gallery-widget.php:166
|
4636 |
+
msgid "Gallery IDs, separated by commas."
|
4637 |
+
msgstr "Galerij IDs, door komma gescheiden."
|
4638 |
|
4639 |
# @ nggallery
|
4640 |
+
#: ../widgets/class-ngg-media-rss-widget.php:12
|
4641 |
+
msgid "NextCellent Media RSS"
|
4642 |
+
msgstr "NextCellent Media RSS"
|
4643 |
|
4644 |
# @ nggallery
|
4645 |
+
#: ../widgets/class-ngg-media-rss-widget.php:14
|
4646 |
+
msgid "Widget that displays a Media RSS links for NextCellent Gallery."
|
4647 |
+
msgstr "Widget die de Media-RSS-links toont voor NextCellent Gallery."
|
4648 |
|
4649 |
# @ nggallery
|
4650 |
+
#: ../widgets/class-ngg-media-rss-widget.php:80
|
4651 |
+
#: ../widgets/class-ngg-media-rss-widget.php:82
|
4652 |
+
msgid "Media RSS"
|
4653 |
+
msgstr "Media RSS"
|
4654 |
|
4655 |
# @ nggallery
|
4656 |
+
#: ../widgets/class-ngg-media-rss-widget.php:83
|
4657 |
+
msgid "Link to the main image feed"
|
4658 |
+
msgstr "Link naar de hoofd afbeeldingsfeed"
|
4659 |
|
4660 |
# @ nggallery
|
4661 |
+
#: ../widgets/class-ngg-media-rss-widget.php:100
|
4662 |
+
msgid "Show the RSS icon"
|
4663 |
+
msgstr "Toon Media RSS icoon:"
|
4664 |
|
4665 |
# @ nggallery
|
4666 |
+
#: ../widgets/class-ngg-media-rss-widget.php:108
|
4667 |
+
msgid "Show the link text"
|
4668 |
+
msgstr "Toon de media RSS link"
|
4669 |
|
4670 |
# @ nggallery
|
4671 |
+
#: ../widgets/class-ngg-media-rss-widget.php:113
|
4672 |
+
msgid "Text for Media RSS link"
|
4673 |
+
msgstr "Tekst voor de media RSS link:"
|
4674 |
|
4675 |
# @ nggallery
|
4676 |
+
#: ../widgets/class-ngg-media-rss-widget.php:121
|
4677 |
+
msgid "Tooltip text for Media RSS link"
|
4678 |
+
msgstr "Teksttip voor de media RSS link:"
|
4679 |
|
4680 |
# @ nggallery
|
4681 |
+
#: ../widgets/class-ngg-slideshow-widget.php:12
|
4682 |
+
msgid "NextCellent Slideshow"
|
4683 |
+
msgstr "NextCellent Diavoorstelling"
|
4684 |
|
4685 |
# @ nggallery
|
4686 |
+
#: ../widgets/class-ngg-slideshow-widget.php:14
|
4687 |
+
msgid "Show a NextCellent Gallery Slideshow"
|
4688 |
+
msgstr "Toon een NextCellent Gallery Diavoorstelling"
|
4689 |
|
4690 |
# @ nggallery
|
4691 |
+
#: ../widgets/class-ngg-slideshow-widget.php:117
|
4692 |
+
msgid "Random images"
|
4693 |
+
msgstr "Gerelateerde afbeeldingen"
|
4694 |
|
4695 |
# @ nggallery
|
4696 |
+
#: ../widgets/class-ngg-slideshow-widget.php:119
|
4697 |
+
msgid "Recent images"
|
4698 |
+
msgstr "Formaat afbeeldingen aanpassen"
|
4699 |
|
4700 |
+
#: ../widgets/class-ngg-slideshow-widget.php:130
|
4701 |
+
msgid "The given width and height are ignored when this is selected."
|
4702 |
+
msgstr ""
|
4703 |
+
"De opgegeven breedte en hoogte worden genegeerd als dit ingeschakeld is."
|
4704 |
|
4705 |
# @ nggallery
|
4706 |
+
#: ../xml/media-rss.php:50
|
4707 |
+
msgid "No galleries have been yet created."
|
4708 |
+
msgstr "Er zijn nog geen galerijen gemaakt."
|
4709 |
|
4710 |
# @ nggallery
|
4711 |
+
#: ../xml/media-rss.php:69
|
4712 |
+
#, php-format
|
4713 |
+
msgid "The gallery ID=%s does not exist."
|
4714 |
+
msgstr "Het galerij ID=%s bestaat niet."
|
4715 |
|
4716 |
# @ nggallery
|
4717 |
+
#: ../xml/media-rss.php:100
|
4718 |
+
msgid "No album ID has been provided as parameter"
|
4719 |
+
msgstr "Er is geen album ID verstrekt als parameter."
|
4720 |
|
4721 |
# @ nggallery
|
4722 |
+
#: ../xml/media-rss.php:108
|
4723 |
+
#, php-format
|
4724 |
+
msgid "The album ID=%s does not exist."
|
4725 |
+
msgstr "Het album ID=%s bestaat niet."
|
4726 |
|
4727 |
# @ nggallery
|
4728 |
+
#: ../xml/media-rss.php:115
|
4729 |
+
msgid "Invalid MediaRSS command"
|
4730 |
+
msgstr "Ongeldige MediaRSS opdracht"
|
4731 |
|
4732 |
# @ nggallery
|
4733 |
+
#~ msgid "About"
|
4734 |
+
#~ msgstr "Over"
|
|
|
4735 |
|
4736 |
# @ nggallery
|
4737 |
+
#~ msgid "for their great documented code"
|
4738 |
+
#~ msgstr "voor hun geweldige gedocumenteerde code"
|
|
|
4739 |
|
4740 |
# @ nggallery
|
4741 |
+
#~ msgid "for jQuery, which is the best Web2.0 framework"
|
4742 |
+
#~ msgstr "voor jQuery, welke het beste Web2.0 framework is"
|
|
|
4743 |
|
4744 |
# @ nggallery
|
4745 |
+
#~ msgid "for the fantastic PHP Thumbnail Class"
|
4746 |
+
#~ msgstr "voor de fantastische PHP Thumbnail Class"
|
|
|
4747 |
|
4748 |
# @ nggallery
|
4749 |
+
#~ msgid "for a lot of very useful plugins and ideas"
|
4750 |
+
#~ msgstr "voor veel goede en bruikbare plugins en ideeën"
|
|
|
4751 |
|
4752 |
# @ nggallery
|
4753 |
+
#~ msgid "for Shutter Reloaded, a real lightweight image effect"
|
4754 |
+
#~ msgstr "voor Shutter Herladen, een lischtgewicht afbeeldingseffect"
|
|
|
|
|
|
|
|
|
|
|
4755 |
|
4756 |
# @ nggallery
|
4757 |
+
#~ msgid "for the best Media Flash Scripts on earth"
|
4758 |
+
#~ msgstr "voor de beste Media Flash Scripts op aarde"
|
|
|
4759 |
|
4760 |
# @ nggallery
|
4761 |
+
#~ msgid "for the Gallery Icon"
|
4762 |
+
#~ msgstr "voor het galerij icoon"
|
4763 |
+
|
4764 |
+
#~ msgid ""
|
4765 |
+
#~ "The original translators for NextGen Gallery, who made the translations"
|
4766 |
+
#~ msgstr ""
|
4767 |
+
#~ "De originele vertalers voor NextGen Gallery, die de vertalingen maakten"
|
4768 |
+
|
4769 |
+
#~ msgid ""
|
4770 |
+
#~ "NextCellent Gallery is based on the 1.9.13 version of the NextGen Gallery "
|
4771 |
+
#~ "by Photocrati Media, which is the succesor to the work by Alex Rabe."
|
4772 |
+
#~ msgstr ""
|
4773 |
+
#~ "NextCellent is gebaseerd op versie 1.9.13 van NextGen Gallery door "
|
4774 |
+
#~ "Photocrati Media, wat de opvolger is van het werk door Alex Rabe."
|
4775 |
|
4776 |
# @ nggallery
|
4777 |
+
#~ msgid "What do you get with NextCellent Gallery?"
|
4778 |
+
#~ msgstr "Wat krijg je met NextCellent Gallery?"
|
4779 |
+
|
4780 |
+
#~ msgid "Backward compatibility with NextGEN plugin version (1.9.13)"
|
4781 |
+
#~ msgstr "Achterwaartse compatabiliteit met NextGEN versie 1.9.13"
|
4782 |
+
|
4783 |
+
#~ msgid ""
|
4784 |
+
#~ "Slow evolving code path, made only by NextGEN user's suggestions. Yep, "
|
4785 |
+
#~ "you read it right: slow in counterpart as fast. Older code is good enough "
|
4786 |
+
#~ "to keep a community and it worked (and works) for most people."
|
4787 |
+
#~ msgstr "Traag evoluerende code, enkel door de suggesties van gebruikers."
|
4788 |
+
|
4789 |
+
#~ msgid "A reliable way to work with already installed NextGEN galleries."
|
4790 |
+
#~ msgstr ""
|
4791 |
+
#~ "Een betrouwbare manier om te werken met bestaande NextGEN-galerijen."
|
4792 |
+
|
4793 |
+
#~ msgid ""
|
4794 |
+
#~ "A place for updating the plugin without using FTP manual updates, but "
|
4795 |
+
#~ "WordPress plugin repository."
|
4796 |
+
#~ msgstr "Een plaats om de plug-in bij te werken zonder manuele FTP-updates."
|
4797 |
+
|
4798 |
+
#~ msgid "Alternative path preserving backward compatibility (while possible)."
|
4799 |
+
#~ msgstr ""
|
4800 |
+
#~ "Alternatieve paden met achterwaartse compatibiliteit (waar mogelijk)."
|
4801 |
|
4802 |
# @ nggallery
|
4803 |
+
#~ msgid "How to support us?"
|
4804 |
+
#~ msgstr "Hoe kun je ons ondersteunen?"
|
4805 |
+
|
4806 |
+
#~ msgid "There are several ways to contribute:"
|
4807 |
+
#~ msgstr "Er zijn verschillende manieren om mee te helpen:"
|
4808 |
|
4809 |
# @ nggallery
|
4810 |
+
#~ msgid "Send us bugfixes / code changes"
|
4811 |
+
#~ msgstr "Stuur ons bugfixes / code aanpassingen"
|
|
|
4812 |
|
4813 |
# @ nggallery
|
4814 |
+
#~ msgid ""
|
4815 |
+
#~ "The most motivated support for this plugin are your ideas and brain work."
|
4816 |
+
#~ msgstr ""
|
4817 |
+
#~ "De meest motiverende steun voor deze plug-in zijn je ideeën en denkwerk."
|
4818 |
|
4819 |
# @ nggallery
|
4820 |
+
#~ msgid "Translate the plugin"
|
4821 |
+
#~ msgstr "Vertaal de plugin"
|
|
|
|
|
4822 |
|
4823 |
# @ nggallery
|
4824 |
+
#~ msgid ""
|
4825 |
+
#~ "To help people to work with this plugin, we would like to have it in all "
|
4826 |
+
#~ "available languages."
|
4827 |
+
#~ msgstr ""
|
4828 |
+
#~ "Om mensen te helpen werken met de plug-in, willen we de plug-in in alle "
|
4829 |
+
#~ "talen beschikbaar maken."
|
4830 |
|
4831 |
# @ nggallery
|
4832 |
+
#~ msgid "Place a link to the plugin in your blog/webpage"
|
4833 |
+
#~ msgstr "Plaats een link naar de plugin in je site/webpagina"
|
4834 |
+
|
4835 |
+
#~ msgid "Yes, sharing and linking are also supportive and helpful."
|
4836 |
+
#~ msgstr "Ja, delen is ook een manier van helpen."
|
4837 |
|
4838 |
# @ nggallery
|
4839 |
+
#~ msgid ""
|
4840 |
+
#~ "Please note: If safe-mode is ON, you need to add the subfolder with "
|
4841 |
+
#~ "thumbs manually"
|
4842 |
+
#~ msgstr ""
|
4843 |
+
#~ "Opmerking: Indien safe-mode = AAN moet je de thumbnail submap manueel "
|
4844 |
+
#~ "aanmaken"
|
4845 |
|
4846 |
# @ nggallery
|
4847 |
+
#~ msgid "About this Gallery"
|
4848 |
+
#~ msgstr "Over deze galerij"
|
|
|
|
|
|
|
|
|
|
|
4849 |
|
4850 |
# @ nggallery
|
4851 |
+
#~ msgid "Select with the mouse the area for the new thumbnail"
|
4852 |
+
#~ msgstr "Selecteer met de muis het gebied voor de nieuwe thumbnail"
|
|
|
4853 |
|
4854 |
# @ nggallery
|
4855 |
+
#~ msgid "Select the area for the thumbnail from the picture on the left."
|
4856 |
+
#~ msgstr ""
|
4857 |
+
#~ "Selecteer het gebied voor de thumbnail van de afbeelding aan de linkerkant"
|
4858 |
|
4859 |
# @ nggallery
|
4860 |
+
#~ msgid "Search Images"
|
4861 |
+
#~ msgstr "Zoek afbeeldingen"
|
|
|
4862 |
|
4863 |
# @ nggallery
|
4864 |
+
#~ msgid "Actions"
|
4865 |
+
#~ msgstr "Acties"
|
|
|
|
|
4866 |
|
4867 |
# @ nggallery
|
4868 |
+
#~ msgid "No entries found"
|
4869 |
+
#~ msgstr "Geen entries gevonden"
|
|
|
4870 |
|
4871 |
# @ nggallery
|
4872 |
+
#~ msgid "New Gallery"
|
4873 |
+
#~ msgstr "Nieuwe galerij"
|
|
|
4874 |
|
4875 |
# @ nggallery
|
4876 |
+
#~ msgid "Sorry, you have no access here"
|
4877 |
+
#~ msgstr "Sorry, je hebt hier geen toegang."
|
|
|
4878 |
|
4879 |
# @ nggallery
|
4880 |
+
#~ msgid ""
|
4881 |
+
#~ "You are about to start the bulk edit for %s images \n"
|
4882 |
+
#~ " \n"
|
4883 |
+
#~ " 'Cancel' to stop, 'OK' to proceed."
|
4884 |
+
#~ msgstr ""
|
4885 |
+
#~ "Je bent bezig meerdere bewerkingen van %s afbeeldingen te starten \n"
|
4886 |
+
#~ " \n"
|
4887 |
+
#~ " 'Annuleren' om te stoppen, 'OK' om door te gaan."
|
4888 |
|
4889 |
+
# @ nggallery
|
4890 |
+
#~ msgid "Search results for “%s”"
|
4891 |
+
#~ msgstr "Zoekresultaten op “%s”"
|
|
|
|
|
|
|
|
|
|
|
|
|
4892 |
|
4893 |
+
# @ nggallery
|
4894 |
+
#~ msgid "Click here for more settings"
|
4895 |
+
#~ msgstr "Klik hier voor meer instellingen"
|
|
|
4896 |
|
4897 |
+
#~ msgid "Old scanning"
|
4898 |
+
#~ msgstr "Oud scanmethode"
|
|
|
|
|
4899 |
|
4900 |
+
# @ nggallery
|
4901 |
+
#~ msgid "Publish this image"
|
4902 |
+
#~ msgstr "Publiceer deze afbeelding"
|
|
|
4903 |
|
4904 |
+
# @ nggallery
|
4905 |
+
#~ msgid "Publish"
|
4906 |
+
#~ msgstr "Publiceer"
|
|
|
|
|
4907 |
|
4908 |
# @ nggallery
|
4909 |
+
#~ msgid "deleted successfully"
|
4910 |
+
#~ msgstr "met succes verwijderd"
|
|
|
4911 |
|
4912 |
+
# @ nggallery
|
4913 |
+
#~ msgid "New gallery page ID"
|
4914 |
+
#~ msgstr "Nieuwe galerij pagina ID"
|
|
|
4915 |
|
4916 |
# @ nggallery
|
4917 |
+
#~ msgid "created"
|
4918 |
+
#~ msgstr "gemaakt"
|
|
|
|
|
4919 |
|
4920 |
+
# @ nggallery
|
4921 |
+
#~ msgid "Published a new post"
|
4922 |
+
#~ msgstr "Nieuw bericht gepubliceerd"
|
|
|
|
|
4923 |
|
4924 |
# @ default
|
4925 |
+
#~ msgid "1 item"
|
4926 |
+
#~ msgstr "1 item"
|
|
|
4927 |
|
4928 |
+
# @ nggallery
|
4929 |
+
#~ msgid "NextCellent Gallery Overview"
|
4930 |
+
#~ msgstr "NextCellent Gallery Overzicht"
|
|
|
4931 |
|
4932 |
+
# @ nggallery
|
4933 |
+
#~ msgid "Upload pictures"
|
4934 |
+
#~ msgstr "Afbeeldingen uploaden"
|
|
|
4935 |
|
4936 |
# @ default
|
4937 |
+
#~ msgid "Space Used"
|
4938 |
+
#~ msgstr "Gebruikte ruimte"
|
|
|
|
|
4939 |
|
4940 |
+
# @ nggallery
|
4941 |
+
#~ msgid "Translation file successful updated. Please reload page."
|
4942 |
+
#~ msgstr "Vertaalbestand met succes aangemaakt. Herlaad de pagina."
|
|
|
4943 |
|
4944 |
+
# @ nggallery
|
4945 |
+
#~ msgid "Reload page"
|
4946 |
+
#~ msgstr "Herlaad de pagina"
|
|
|
4947 |
|
4948 |
+
# @ nggallery
|
4949 |
+
#~ msgid "Translation file couldn't be updated"
|
4950 |
+
#~ msgstr "Vertaal bestand kan niet geupdated worden"
|
|
|
4951 |
|
4952 |
+
# @ nggallery
|
4953 |
+
#~ msgid "Download"
|
4954 |
+
#~ msgstr "Download"
|
|
|
4955 |
|
4956 |
+
# @ nggallery
|
4957 |
+
#~ msgid "PHP Safe Mode"
|
4958 |
+
#~ msgstr "PHP Safe Mode"
|
|
|
|
|
4959 |
|
4960 |
+
# @ nggallery
|
4961 |
+
#~ msgid "PHP Exif support"
|
4962 |
+
#~ msgstr "PHP Exif ondersteuning"
|
|
|
4963 |
|
4964 |
+
# @ nggallery
|
4965 |
+
#~ msgid ""
|
4966 |
+
#~ "NextCellent Gallery contains some functions which are only available "
|
4967 |
+
#~ "under PHP 5.2. You are using the old PHP 4 version, upgrade now! It's no "
|
4968 |
+
#~ "longer supported by the PHP group. Many shared hosting providers offer "
|
4969 |
+
#~ "both PHP 4 and PHP 5, running simultaneously. Ask your provider if they "
|
4970 |
+
#~ "can do this."
|
4971 |
+
#~ msgstr ""
|
4972 |
+
#~ "NextCellent Gallery bevat enkele functies die niet beschikbaar zijn onder "
|
4973 |
+
#~ "PHP 5.2. Je gebruikt de oude PHP 4 versie, upgrade nu! Het wordt niet "
|
4974 |
+
#~ "langer ondersteund door de PHP groep. Verschillende hosting providers "
|
4975 |
+
#~ "bieden beide PHP 4 en PHP 5, tegelijk. Vraag je provider of ze dit kunnen "
|
4976 |
+
#~ "doen."
|
4977 |
|
4978 |
+
# @ nggallery
|
4979 |
+
#~ msgid "Post title"
|
4980 |
+
#~ msgstr "Titel van bericht"
|
|
|
4981 |
|
4982 |
+
# @ nggallery
|
4983 |
+
#~ msgid "Enter the post title "
|
4984 |
+
#~ msgstr "Geef de titel van het bericht"
|
4985 |
|
4986 |
# @ nggallery
|
4987 |
+
#~ msgid "Width x height (in pixel)"
|
4988 |
+
#~ msgstr "Breedte x Hoogte (in pixels)"
|
|
|
4989 |
|
4990 |
# @ nggallery
|
4991 |
+
#~ msgid "Size of the image"
|
4992 |
+
#~ msgstr "Grootte van de afbeelding"
|
|
|
|
|
|
|
|
|
|
|
4993 |
|
4994 |
# @ nggallery
|
4995 |
+
#~ msgid "Draft"
|
4996 |
+
#~ msgstr "Concept"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4997 |
|
4998 |
# @ nggallery
|
4999 |
+
#~ msgid "With the placeholder"
|
5000 |
+
#~ msgstr "Met de plaatshouder "
|
|
|
|
|
|
|
|
|
5001 |
|
5002 |
# @ nggallery
|
5003 |
+
#~ msgid ""
|
5004 |
+
#~ "The accessing of URL files is disabled at your server (allow_url_fopen)"
|
5005 |
+
#~ msgstr ""
|
5006 |
+
#~ "De toegang van de URL bestanden zijn uitgeschakeld bij je server "
|
5007 |
+
#~ "(allow_url_fopen)"
|
5008 |
|
5009 |
# @ nggallery
|
5010 |
+
#~ msgid "(hex w/o #)"
|
5011 |
+
#~ msgstr "(hex w/o #)"
|
|
|
5012 |
|
5013 |
# @ nggallery
|
5014 |
+
#~ msgid "fade"
|
5015 |
+
#~ msgstr "vervagen"
|
|
|
5016 |
|
5017 |
# @ nggallery
|
5018 |
+
#~ msgid "blindX"
|
5019 |
+
#~ msgstr "blindX"
|
|
|
5020 |
|
5021 |
# @ nggallery
|
5022 |
+
#~ msgid "cover"
|
5023 |
+
#~ msgstr "cover"
|
|
|
5024 |
|
5025 |
# @ nggallery
|
5026 |
+
#~ msgid "scrollUp"
|
5027 |
+
#~ msgstr "scrollUp"
|
|
|
5028 |
|
5029 |
+
# @ nggallery
|
5030 |
+
#~ msgid "scrollDown"
|
5031 |
+
#~ msgstr "scrollDown"
|
5032 |
|
5033 |
# @ nggallery
|
5034 |
+
#~ msgid "shuffle"
|
5035 |
+
#~ msgstr "shuffle"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5036 |
|
5037 |
# @ nggallery
|
5038 |
+
#~ msgid "toss"
|
5039 |
+
#~ msgstr "weggooien"
|
|
|
5040 |
|
5041 |
# @ nggallery
|
5042 |
+
#~ msgid "wipe"
|
5043 |
+
#~ msgstr "vegen"
|
|
|
5044 |
|
5045 |
# @ nggallery
|
5046 |
+
#~ msgid "See here for more information about the effects :"
|
5047 |
+
#~ msgstr "Bezoek meer informatie over de effecten :"
|
|
|
5048 |
|
5049 |
# @ nggallery
|
5050 |
+
#~ msgid "Settings for the JW Image Rotator"
|
5051 |
+
#~ msgstr "De instellingen voor de JW Image Rotator"
|
|
|
5052 |
|
5053 |
# @ nggallery
|
5054 |
+
#~ msgid ""
|
5055 |
+
#~ "NextCellent Gallery flash slideshows use the JW Image Rotator Version "
|
5056 |
+
#~ "3.17 by"
|
5057 |
+
#~ msgstr ""
|
5058 |
+
#~ "De instellingen worden alleen gebruikt in de JW Image Rotator Version "
|
5059 |
+
|
5060 |
+
#~ msgid ""
|
5061 |
+
#~ "Press the button below to search for it automatically. For earlier "
|
5062 |
+
#~ "versions of NextCellent Gallery, you'll need to\n"
|
5063 |
+
#~ "\t\t\t\t\tupload the file manually to the"
|
5064 |
+
#~ msgstr "Druk op de knop hieronder om te zoeken."
|
5065 |
|
5066 |
# @ nggallery
|
5067 |
+
#~ msgid ""
|
5068 |
+
#~ "The path to JW Image Rotator is not defined, the slideshow will not work."
|
5069 |
+
#~ msgstr ""
|
5070 |
+
#~ "Het pad naar imagerotator.swf is niet opgegeven, de slideshow zal niet "
|
5071 |
+
#~ "werken"
|
5072 |
+
|
5073 |
+
#~ msgid "Press the button below to search for the file."
|
5074 |
+
#~ msgstr "Druk op de knop hieronder om het bestand te zoeken."
|
5075 |
|
5076 |
# @ nggallery
|
5077 |
+
#~ msgid "Enable flash slideshow"
|
5078 |
+
#~ msgstr "Inschakelen flash slideshow"
|
|
|
|
|
5079 |
|
5080 |
# @ nggallery
|
5081 |
+
#~ msgid "Integrate the flash based slideshow for all flash supported devices"
|
5082 |
+
#~ msgstr ""
|
5083 |
+
#~ "Integreer de flash gebaseerde slideshow voor alle flash ondersteunde "
|
5084 |
+
#~ "apparaten"
|
5085 |
|
5086 |
# @ nggallery
|
5087 |
+
#~ msgid "Path to the JW Image Rotator (URL)"
|
5088 |
+
#~ msgstr "De instellingen voor de JW Image Rotator"
|
|
|
5089 |
|
5090 |
# @ nggallery
|
5091 |
+
#~ msgid "Search now"
|
5092 |
+
#~ msgstr "Nu zoeken"
|
|
|
5093 |
|
5094 |
# @ nggallery
|
5095 |
+
#~ msgid "Press the button below to search for the JW Image Rotator"
|
5096 |
+
#~ msgstr "De instellingen voor de JW Image Rotator"
|
|
|
5097 |
|
5098 |
# @ nggallery
|
5099 |
+
#~ msgid "Shuffle mode"
|
5100 |
+
#~ msgstr "Wisselende volgorde"
|
|
|
5101 |
|
5102 |
# @ nggallery
|
5103 |
+
#~ msgid "Show next image on click"
|
5104 |
+
#~ msgstr "Toon volgende afbeelding door te klikken"
|
|
|
5105 |
|
5106 |
# @ nggallery
|
5107 |
+
#~ msgid "Show navigation bar"
|
5108 |
+
#~ msgstr "Toon navigatie balk"
|
|
|
5109 |
|
5110 |
# @ nggallery
|
5111 |
+
#~ msgid "Show loading icon"
|
5112 |
+
#~ msgstr "Toon icoon laden"
|
|
|
5113 |
|
5114 |
+
# @ nggallery
|
5115 |
+
#~ msgid "Use watermark logo"
|
5116 |
+
#~ msgstr "Gebruik watermerk logo"
|
|
|
|
|
5117 |
|
5118 |
# @ nggallery
|
5119 |
+
#~ msgid "You can change the logo at the watermark settings"
|
5120 |
+
#~ msgstr "Je kunt het logo bij de watermerk instellingen wijzigen"
|
|
|
5121 |
|
5122 |
# @ nggallery
|
5123 |
+
#~ msgid "true"
|
5124 |
+
#~ msgstr "waar"
|
|
|
5125 |
|
5126 |
# @ nggallery
|
5127 |
+
#~ msgid "false"
|
5128 |
+
#~ msgstr "niet waar"
|
|
|
5129 |
|
5130 |
# @ nggallery
|
5131 |
+
#~ msgid "fit"
|
5132 |
+
#~ msgstr "passend"
|
|
|
5133 |
|
5134 |
# @ nggallery
|
5135 |
+
#~ msgid "none"
|
5136 |
+
#~ msgstr "geen"
|
|
|
5137 |
|
5138 |
# @ nggallery
|
5139 |
+
#~ msgid "bgfade"
|
5140 |
+
#~ msgstr "achtergrond vervagen"
|
|
|
5141 |
|
5142 |
# @ nggallery
|
5143 |
+
#~ msgid "slowfade"
|
5144 |
+
#~ msgstr "langzaam vervagen"
|
|
|
|
|
|
|
|
|
|
|
5145 |
|
5146 |
# @ nggallery
|
5147 |
+
#~ msgid "circles"
|
5148 |
+
#~ msgstr "cirkels"
|
|
|
5149 |
|
5150 |
# @ nggallery
|
5151 |
+
#~ msgid "bubbles"
|
5152 |
+
#~ msgstr "bellen"
|
|
|
5153 |
|
5154 |
# @ nggallery
|
5155 |
+
#~ msgid "blocks"
|
5156 |
+
#~ msgstr "blokken"
|
|
|
5157 |
|
5158 |
# @ nggallery
|
5159 |
+
#~ msgid "fluids"
|
5160 |
+
#~ msgstr "vloeistof"
|
|
|
5161 |
|
5162 |
# @ nggallery
|
5163 |
+
#~ msgid "flash"
|
5164 |
+
#~ msgstr "flash"
|
|
|
5165 |
|
5166 |
# @ nggallery
|
5167 |
+
#~ msgid "lines"
|
5168 |
+
#~ msgstr "lijnen"
|
|
|
5169 |
|
5170 |
# @ nggallery
|
5171 |
+
#~ msgid "Use slow zooming effect"
|
5172 |
+
#~ msgstr "Gebruik langzaam zoom effect"
|
|
|
5173 |
|
5174 |
# @ nggallery
|
5175 |
+
#~ msgid "Background Color"
|
5176 |
+
#~ msgstr "Achtergrondkleur"
|
|
|
5177 |
|
5178 |
# @ nggallery
|
5179 |
+
#~ msgid "Texts / Buttons Color"
|
5180 |
+
#~ msgstr "Tekst / Knoppen kleur"
|
|
|
5181 |
|
5182 |
# @ nggallery
|
5183 |
+
#~ msgid "Rollover / Active Color"
|
5184 |
+
#~ msgstr "Muis over / Actieve kleur"
|
|
|
5185 |
|
5186 |
# @ nggallery
|
5187 |
+
#~ msgid "Screen Color"
|
5188 |
+
#~ msgstr "Schermkleur"
|
|
|
5189 |
|
5190 |
# @ nggallery
|
5191 |
+
#~ msgid "Background music (URL)"
|
5192 |
+
#~ msgstr "Achtergrond muziek (URL)"
|
|
|
5193 |
|
5194 |
# @ nggallery
|
5195 |
+
#~ msgid "Try XHTML validation (with CDATA)"
|
5196 |
+
#~ msgstr "Probeer XHTML validatie (met CDATA)"
|
|
|
5197 |
|
5198 |
# @ nggallery
|
5199 |
+
#~ msgid ""
|
5200 |
+
#~ "Important : Could causes problem with some browser. Please recheck your "
|
5201 |
+
#~ "page."
|
5202 |
+
#~ msgstr ""
|
5203 |
+
#~ "Belangrijk: kan problemen veroorzaken met bepaalde browsers. Controleer "
|
5204 |
+
#~ "je pagina."
|
5205 |
|
5206 |
# @ nggallery
|
5207 |
+
#~ msgid ""
|
5208 |
+
#~ "No problem, before you deactivate this plugin press the Uninstall Button, "
|
5209 |
+
#~ "because deactivating NextCellent Gallery does not remove any data that "
|
5210 |
+
#~ "may have been created. "
|
5211 |
+
#~ msgstr ""
|
5212 |
+
#~ "Geen probleem, voor je deze plug-in deactiveert, klik op de knop "
|
5213 |
+
#~ "verwijderen, omdat het deactiveren van NextCellent Gallery niet de data "
|
5214 |
+
#~ "verwijdert die gemaakt is."
|
5215 |
|
5216 |
# @ nggallery
|
5217 |
+
#~ msgid "Could not find NextCellent Gallery database tables, upgrade failed!"
|
5218 |
+
#~ msgstr "Kon NextCellent Database niet vinden, upgrade is mislukt!"
|
|
|
5219 |
|
5220 |
# @ nggallery
|
5221 |
+
#~ msgid ""
|
5222 |
+
#~ "The <a href=\"http://www.macromedia.com/go/getflashplayer\">Flash Player</"
|
5223 |
+
#~ "a> and <a href=\"http://www.mozilla.com/firefox/\">a browser with "
|
5224 |
+
#~ "Javascript support</a> are needed."
|
5225 |
+
#~ msgstr ""
|
5226 |
+
#~ "De <a href=\"http://www.macromedia.com/go/getflashplayer\">Flash Player</"
|
5227 |
+
#~ "a> en <a href=\"http://www.mozilla.com/firefox/\">en browser met "
|
5228 |
+
#~ "Javascript ondersteuning</a> zijn nodig."
|
5229 |
|
5230 |
# @ nggallery
|
5231 |
+
#~ msgid ""
|
5232 |
+
#~ "<a href=\"http://www.macromedia.com/go/getflashplayer\">Get the Flash "
|
5233 |
+
#~ "Player</a> to see the slideshow."
|
5234 |
+
#~ msgstr ""
|
5235 |
+
#~ "<a href=\"http://www.macromedia.com/go/getflashplayer\">Gebruik de Flash "
|
5236 |
+
#~ "Player</a> om de slideshow te bekijken."
|
5237 |
|
5238 |
# @ nggallery
|
5239 |
+
#~ msgid "Select Gallery:"
|
5240 |
+
#~ msgstr "Selecteer Galerij:"
|
|
|
5241 |
|
5242 |
# @ nggallery
|
5243 |
+
#~ msgid "All images"
|
5244 |
+
#~ msgstr "Alle afbeeldingen"
|
|
|
|
|
5245 |
|
5246 |
# @ nggallery
|
5247 |
+
#~ msgid "NextCellent Widget"
|
5248 |
+
#~ msgstr "NextCellent Widget"
|
5249 |
+
|
5250 |
+
# @ nggallery
|
5251 |
+
#~ msgid "Enable IE8 Web Slices"
|
5252 |
+
#~ msgstr "IE8 webslices inschakelen"
|
5253 |
|
5254 |
# @ nggallery
|
5255 |
#~ msgid ""
|
5542 |
#~ msgid "More Help & Info"
|
5543 |
#~ msgstr "Meer hulp & Info"
|
5544 |
|
|
|
|
|
|
|
|
|
5545 |
# @ nggallery
|
5546 |
#~ msgid "Move imagerotator to new location..."
|
5547 |
#~ msgstr "Verplaats de imagerotator naar een nieuwe locatie..."
|
5612 |
#~ msgid "Show ImageBrowser"
|
5613 |
#~ msgstr "Toon Afbeelding Browser"
|
5614 |
|
|
|
|
|
|
|
|
|
5615 |
# @ nggallery
|
5616 |
#~ msgid ""
|
5617 |
#~ "So, we would like to thank the following people for their pioneer work "
|
5872 |
#~ msgid "%1$s of %2$s"
|
5873 |
#~ msgstr "%1$s van %2$s"
|
5874 |
|
|
|
|
|
|
|
|
|
5875 |
# @ default
|
5876 |
#~ msgid "Go to the last page"
|
5877 |
#~ msgstr "Ga naar de laatste pagina"
|
lang/nggallery.pot
CHANGED
@@ -1,7 +1,8 @@
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: NextCellent\n"
|
4 |
-
"POT-Creation-Date: 2015-
|
5 |
"PO-Revision-Date: 2015-01-09 16:11+0100\n"
|
6 |
"Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
7 |
"Language-Team: \n"
|
@@ -9,3599 +10,3257 @@ msgstr ""
|
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Generator: Poedit 1.
|
13 |
"X-Poedit-KeywordsList: _n;__;_e;esc_attr_e;esc_html_e\n"
|
14 |
-
"X-Poedit-Basepath:
|
15 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"X-Poedit-SearchPath-0: .\n"
|
18 |
"X-Poedit-SearchPath-1: ..\n"
|
19 |
|
20 |
-
#: ../admin/
|
21 |
-
|
22 |
-
msgid "About"
|
23 |
-
msgstr "Informatie"
|
24 |
-
|
25 |
-
#: ../admin/about.php:12
|
26 |
-
msgid "Contributors"
|
27 |
-
msgstr ""
|
28 |
-
|
29 |
-
#: ../admin/about.php:14
|
30 |
-
msgid ""
|
31 |
-
"This plugin is made possible by the great work of a lot of people. A special "
|
32 |
-
"thanks the following people:"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: ../admin/about.php:16
|
36 |
-
#, fuzzy
|
37 |
-
msgid "for their great documented code"
|
38 |
-
msgstr "Kopieer code naar het clipboard"
|
39 |
-
|
40 |
-
#: ../admin/about.php:17
|
41 |
-
msgid "for jQuery, which is the best Web2.0 framework"
|
42 |
-
msgstr ""
|
43 |
-
|
44 |
-
#: ../admin/about.php:18
|
45 |
-
msgid "for the fantastic PHP Thumbnail Class"
|
46 |
-
msgstr ""
|
47 |
-
|
48 |
-
#: ../admin/about.php:19
|
49 |
-
msgid "for a lot of very useful plugins and ideas"
|
50 |
-
msgstr ""
|
51 |
-
|
52 |
-
#: ../admin/about.php:20
|
53 |
-
msgid "for Shutter Reloaded, a real lightweight image effect"
|
54 |
-
msgstr ""
|
55 |
-
|
56 |
-
#: ../admin/about.php:21
|
57 |
-
msgid "for the best Media Flash Scripts on earth"
|
58 |
-
msgstr ""
|
59 |
-
|
60 |
-
#: ../admin/about.php:22
|
61 |
-
#, fuzzy
|
62 |
-
msgid "for the Gallery Icon"
|
63 |
-
msgstr "Exporteer Gallerij"
|
64 |
-
|
65 |
-
#: ../admin/about.php:23
|
66 |
-
msgid "for the Watermark plugin"
|
67 |
-
msgstr ""
|
68 |
-
|
69 |
-
#: ../admin/about.php:24
|
70 |
-
msgid "for maintaining this fork of NextGen Gallery"
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
#: ../admin/about.php:25
|
74 |
-
msgid "The original translators for NextGen Gallery, who made the translations"
|
75 |
-
msgstr ""
|
76 |
-
|
77 |
-
#: ../admin/about.php:31 ../nggallery.php:386
|
78 |
-
msgid "NextCellent"
|
79 |
-
msgstr ""
|
80 |
-
|
81 |
-
#: ../admin/about.php:33
|
82 |
-
msgid ""
|
83 |
-
"NextCellent Gallery is based on the 1.9.13 version of the NextGen Gallery by "
|
84 |
-
"Photocrati Media, which is the succesor to the work by Alex Rabe."
|
85 |
-
msgstr ""
|
86 |
-
|
87 |
-
#: ../admin/about.php:34
|
88 |
-
msgid "What do you get with NextCellent Gallery?"
|
89 |
-
msgstr ""
|
90 |
-
|
91 |
-
#: ../admin/about.php:36
|
92 |
-
msgid "Backward compatibility with NextGEN plugin version (1.9.13)"
|
93 |
-
msgstr ""
|
94 |
-
|
95 |
-
#: ../admin/about.php:37
|
96 |
-
msgid ""
|
97 |
-
"Slow evolving code path, made only by NextGEN user's suggestions. Yep, you "
|
98 |
-
"read it right: slow in counterpart as fast. Older code is good enough to "
|
99 |
-
"keep a community and it worked (and works) for most people."
|
100 |
-
msgstr ""
|
101 |
-
|
102 |
-
#: ../admin/about.php:38
|
103 |
-
msgid "A reliable way to work with already installed NextGEN galleries."
|
104 |
-
msgstr ""
|
105 |
-
|
106 |
-
#: ../admin/about.php:39
|
107 |
-
msgid ""
|
108 |
-
"A place for updating the plugin without using FTP manual updates, but "
|
109 |
-
"WordPress plugin repository."
|
110 |
-
msgstr ""
|
111 |
-
|
112 |
-
#: ../admin/about.php:40
|
113 |
-
msgid "Alternative path preserving backward compatibility (while possible)."
|
114 |
-
msgstr ""
|
115 |
-
|
116 |
-
#: ../admin/about.php:46
|
117 |
-
msgid "How to support us?"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#: ../admin/about.php:48
|
121 |
-
msgid "There are several ways to contribute:"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#: ../admin/about.php:50
|
125 |
-
msgid "Send us bugfixes / code changes"
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#: ../admin/about.php:50
|
129 |
-
msgid ""
|
130 |
-
"The most motivated support for this plugin are your ideas and brain work."
|
131 |
-
msgstr ""
|
132 |
-
|
133 |
-
#: ../admin/about.php:51
|
134 |
-
msgid "Translate the plugin"
|
135 |
-
msgstr ""
|
136 |
-
|
137 |
-
#: ../admin/about.php:51
|
138 |
-
msgid ""
|
139 |
-
"To help people to work with this plugin, we would like to have it in all "
|
140 |
-
"available languages."
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#: ../admin/about.php:52
|
144 |
-
msgid "Place a link to the plugin in your blog/webpage"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: ../admin/
|
148 |
-
|
|
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: ../admin/
|
152 |
-
#: ../admin/
|
153 |
-
#: ../admin/album.php:
|
154 |
-
#: ../admin/
|
155 |
-
#: ../admin/
|
156 |
-
#: ../admin/publish.php:13 ../admin/rotate.php:17 ../admin/rotate.php:20
|
157 |
-
#: ../admin/showmeta.php:10 ../admin/showmeta.php:13
|
158 |
msgid "Cheatin’ uh?"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: ../admin/
|
162 |
msgid "Upload failed!"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: ../admin/
|
166 |
msgid "Upload failed! "
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: ../admin/
|
170 |
-
#: ../admin/admin.php:
|
171 |
msgid "You didn't select a gallery!"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: ../admin/
|
175 |
-
|
176 |
msgid "Add Gallery / Images"
|
177 |
-
msgstr "
|
178 |
|
179 |
-
#: ../admin/
|
180 |
-
#, fuzzy
|
181 |
msgid "Image Files"
|
182 |
-
msgstr "
|
183 |
|
184 |
-
#: ../admin/
|
185 |
#, fuzzy
|
186 |
msgid "remove"
|
187 |
msgstr "Verwijder overgeslagen files en fouten uit de ljist"
|
188 |
|
189 |
-
#: ../admin/
|
190 |
msgid "Browse..."
|
191 |
msgstr ""
|
192 |
|
193 |
-
#: ../admin/
|
194 |
-
#: ../admin/
|
195 |
-
#, fuzzy
|
196 |
msgid "Upload images"
|
197 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
|
199 |
-
#: ../admin/
|
200 |
msgid "You didn't select a file!"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: ../admin/
|
204 |
-
#, fuzzy
|
205 |
msgid "New gallery"
|
206 |
-
msgstr "
|
207 |
|
208 |
-
#: ../admin/
|
209 |
-
#: ../admin/
|
|
|
|
|
|
|
210 |
#, fuzzy
|
211 |
msgid "Images"
|
212 |
msgstr "Scan URL op afbeeldingen"
|
213 |
|
214 |
-
#: ../admin/
|
215 |
-
#, fuzzy
|
216 |
msgid "ZIP file"
|
217 |
-
msgstr "
|
218 |
|
219 |
-
#: ../admin/
|
220 |
-
#: ../admin/admin.php:
|
221 |
-
#, fuzzy
|
222 |
msgid "Import folder"
|
223 |
-
msgstr "
|
224 |
|
225 |
-
#: ../admin/
|
226 |
-
|
227 |
msgid "Add a new gallery"
|
228 |
-
msgstr "
|
229 |
|
230 |
-
#: ../admin/
|
231 |
-
#: ../admin/
|
|
|
|
|
232 |
#, fuzzy
|
233 |
msgid "Name"
|
234 |
msgstr "URL/Filename:"
|
235 |
|
236 |
-
#: ../admin/
|
237 |
-
|
|
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: ../admin/
|
241 |
-
|
|
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: ../admin/
|
245 |
-
#: ../admin/manage
|
246 |
-
#: ../admin/manage
|
247 |
-
#: ../admin/
|
|
|
|
|
248 |
msgid "Description"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: ../admin/
|
252 |
msgid "Add a description. This is optional and can be changed later."
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: ../admin/
|
256 |
-
#, fuzzy
|
257 |
msgid "Add gallery"
|
258 |
-
msgstr "
|
259 |
|
260 |
-
#: ../admin/
|
261 |
-
#, fuzzy
|
262 |
msgid "Upload a ZIP File"
|
263 |
-
msgstr "
|
264 |
|
265 |
-
#: ../admin/
|
266 |
-
#, fuzzy
|
267 |
msgid "Select ZIP file"
|
268 |
-
msgstr "
|
269 |
|
270 |
-
#: ../admin/
|
271 |
msgid "Upload a ZIP file with images"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: ../admin/
|
275 |
-
#, fuzzy
|
276 |
msgid "or enter URL"
|
277 |
-
msgstr "
|
278 |
|
279 |
-
#: ../admin/
|
280 |
msgid "Import a ZIP file from a URL"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: ../admin/
|
284 |
msgid "in to"
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: ../admin/
|
288 |
-
#, fuzzy
|
289 |
msgid "a new gallery"
|
290 |
-
msgstr "Exporteer Gallerij"
|
291 |
-
|
292 |
-
#: ../admin/addgallery.php:428
|
293 |
-
msgid "Note: the upload limit on your server is "
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: ../admin/
|
297 |
-
#,
|
298 |
-
msgid "
|
299 |
-
msgstr "Starttijd :"
|
300 |
-
|
301 |
-
#: ../admin/addgallery.php:440
|
302 |
-
#, fuzzy
|
303 |
-
msgid "Import an image folder"
|
304 |
-
msgstr "Downloadmap :"
|
305 |
-
|
306 |
-
#: ../admin/addgallery.php:445
|
307 |
-
#, fuzzy
|
308 |
-
msgid "Import from server:"
|
309 |
-
msgstr "Verwijder overgeslagen files en fouten uit de ljist"
|
310 |
-
|
311 |
-
#: ../admin/addgallery.php:448
|
312 |
-
msgid "Note: you can change the default path in the gallery settings"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: ../admin/
|
316 |
-
msgid ""
|
317 |
-
"Please note: If safe-mode is ON, you need to add the subfolder with thumbs "
|
318 |
-
"manually"
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: ../admin/
|
322 |
-
msgid ""
|
323 |
-
"This will change folder and file names (e.g. remove spaces, special "
|
324 |
-
"characters, ...)"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: ../admin/
|
328 |
-
msgid "
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: ../admin/
|
332 |
-
msgid "
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: ../admin/
|
336 |
-
#, fuzzy
|
337 |
msgid "Choose gallery"
|
338 |
-
msgstr "
|
339 |
|
340 |
-
#: ../admin/
|
341 |
msgid "Drop your files in this window"
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: ../admin/
|
345 |
msgid "Or"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: ../admin/
|
349 |
-
#, fuzzy
|
350 |
msgid "Select Files"
|
351 |
-
msgstr "
|
352 |
|
353 |
-
#: ../admin/
|
354 |
msgid "Click here to use the browser upload instead"
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: ../admin/
|
358 |
-
#, fuzzy
|
359 |
msgid "Use basic uploader"
|
360 |
-
msgstr "
|
361 |
|
362 |
-
#: ../admin/
|
363 |
-
#, fuzzy
|
364 |
msgid "Advanced uploading"
|
365 |
-
msgstr "
|
366 |
|
367 |
-
#: ../admin/
|
368 |
-
#, fuzzy
|
369 |
msgid "Use advanced uploader"
|
370 |
-
msgstr "
|
371 |
|
372 |
-
#: ../admin/
|
373 |
#, php-format
|
374 |
msgid "Your images will be rescaled to max width %1$dpx or max height %2$dpx."
|
375 |
msgstr ""
|
376 |
|
377 |
-
#: ../admin/admin.php:
|
378 |
-
#: ../admin/admin.php:
|
379 |
-
#: ../admin/
|
|
|
|
|
|
|
380 |
msgid "Galleries"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: ../admin/admin.php:
|
|
|
384 |
msgid "Overview"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: ../admin/admin.php:
|
|
|
388 |
msgid "Albums"
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: ../admin/admin.php:
|
392 |
-
#: ../admin/
|
393 |
-
#: ../
|
|
|
394 |
msgid "Tags"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: ../admin/admin.php:
|
|
|
398 |
#, fuzzy
|
399 |
msgid "Settings"
|
400 |
msgstr "Instellingen"
|
401 |
|
402 |
-
#: ../admin/admin.php:
|
403 |
msgid "Style"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: ../admin/admin.php:
|
407 |
msgid "Roles"
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: ../admin/admin.php:
|
411 |
-
|
412 |
-
msgid "About this Gallery"
|
413 |
-
msgstr "Informatie"
|
414 |
-
|
415 |
-
#: ../admin/admin.php:177 ../admin/admin.php:198
|
416 |
msgid "Reset / Uninstall"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: ../admin/admin.php:
|
420 |
-
#, fuzzy
|
421 |
msgid "Network settings"
|
422 |
-
msgstr "
|
423 |
|
424 |
-
#: ../admin/admin.php:
|
425 |
msgid "You do not have the correct permission"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: ../admin/admin.php:
|
429 |
-
#, fuzzy
|
430 |
msgid "Unexpected Error"
|
431 |
-
msgstr "
|
432 |
|
433 |
-
#: ../admin/admin.php:
|
434 |
msgid "A failure occurred"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: ../admin/admin.php:
|
438 |
msgid "You have attempted to queue too many files."
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: ../admin/admin.php:
|
442 |
msgid "This file exceeds the maximum upload size for this site."
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: ../admin/admin.php:
|
446 |
msgid "This file is empty. Please try another."
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: ../admin/admin.php:
|
450 |
msgid "This file type is not allowed. Please try another."
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: ../admin/admin.php:
|
454 |
msgid "This file is not an image. Please try another."
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: ../admin/admin.php:
|
458 |
msgid "Memory exceeded. Please try another smaller file."
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: ../admin/admin.php:
|
462 |
msgid "This is larger than the maximum size. Please try another."
|
463 |
msgstr ""
|
464 |
|
465 |
-
#: ../admin/admin.php:
|
466 |
msgid "An error occurred in the upload. Please try again later."
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: ../admin/admin.php:
|
470 |
msgid ""
|
471 |
"There was a configuration error. Please contact the server administrator."
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: ../admin/admin.php:
|
475 |
msgid "You may only upload 1 file."
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: ../admin/admin.php:
|
479 |
-
#, fuzzy
|
480 |
msgid "HTTP error."
|
481 |
-
msgstr "
|
482 |
|
483 |
-
#: ../admin/admin.php:
|
484 |
msgid "Upload failed."
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: ../admin/admin.php:
|
488 |
-
#, fuzzy
|
489 |
msgid "IO error."
|
490 |
-
msgstr "
|
491 |
|
492 |
-
#: ../admin/admin.php:
|
493 |
-
#, fuzzy
|
494 |
msgid "Security error."
|
495 |
-
msgstr "
|
496 |
|
497 |
-
#: ../admin/admin.php:
|
498 |
-
#, fuzzy
|
499 |
msgid "File canceled."
|
500 |
-
msgstr "
|
501 |
|
502 |
-
#: ../admin/admin.php:
|
503 |
-
#, fuzzy
|
504 |
msgid "Upload stopped."
|
505 |
-
msgstr "
|
506 |
|
507 |
-
#: ../admin/admin.php:
|
508 |
msgid "Dismiss"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: ../admin/admin.php:
|
512 |
msgid "Crunching…"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: ../admin/admin.php:
|
516 |
msgid "moved to the trash."
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: ../admin/admin.php:
|
520 |
#, php-format
|
521 |
msgid "“%s” has failed to upload due to an error"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: ../admin/admin.php:
|
525 |
msgid "L O A D I N G"
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: ../admin/admin.php:
|
529 |
-
#, fuzzy
|
530 |
msgid "Click to Close"
|
531 |
-
msgstr "
|
532 |
|
533 |
-
#: ../admin/admin.php:
|
534 |
msgid ""
|
535 |
"Welcome to your NextCellent Dashboard! This screen gives you all kinds of "
|
536 |
"information about NextCellent at glance. You can get help for any screen by "
|
537 |
"clicking the Help tab in the upper corner."
|
538 |
msgstr ""
|
539 |
|
540 |
-
#: ../admin/admin.php:
|
541 |
msgid "The boxes on your overview screen are:"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: ../admin/admin.php:
|
|
|
545 |
msgid "At a Glance"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: ../admin/admin.php:
|
549 |
msgid ""
|
550 |
"Shows some general information about your site, such as the number of "
|
551 |
"pictures, albums and galleries."
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: ../admin/admin.php:
|
|
|
555 |
msgid "Latest News"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: ../admin/admin.php:
|
559 |
msgid "The latest NextCellent news."
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: ../admin/admin.php:
|
|
|
563 |
msgid "Related plugins"
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: ../admin/admin.php:
|
567 |
msgid "Shows plugins that extend NextCellent."
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: ../admin/admin.php:
|
571 |
msgid "Pay attention"
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: ../admin/admin.php:
|
575 |
#, php-format
|
576 |
msgid ""
|
577 |
"third parties plugins that are compatible with NGG may not be "
|
578 |
"100% compatible with NextCellent Gallery!"
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: ../admin/admin.php:
|
|
|
582 |
msgid "Help me help YOU!"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: ../admin/admin.php:
|
586 |
msgid "Shows general information about he plugin and some links."
|
587 |
msgstr ""
|
588 |
|
589 |
-
#: ../admin/admin.php:
|
590 |
-
#, fuzzy
|
591 |
msgid "Translation"
|
592 |
-
msgstr "
|
593 |
|
594 |
-
#: ../admin/admin.php:
|
595 |
msgid "View information about the current translation."
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: ../admin/admin.php:
|
599 |
-
|
600 |
msgid "Server Settings"
|
601 |
-
msgstr "
|
602 |
|
603 |
-
#: ../admin/admin.php:
|
604 |
msgid "Show all the server settings!."
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: ../admin/admin.php:
|
608 |
-
|
609 |
msgid "Plugin Check"
|
610 |
-
msgstr "
|
611 |
|
612 |
-
#: ../admin/admin.php:
|
613 |
msgid "Check if there are known errors in your installation."
|
614 |
msgstr ""
|
615 |
|
616 |
-
#: ../admin/admin.php:
|
617 |
msgid "On this page you can add galleries and pictures to those galleries."
|
618 |
msgstr ""
|
619 |
|
620 |
-
#: ../admin/admin.php:
|
621 |
msgid "Add new galleries to NextCellent."
|
622 |
msgstr ""
|
623 |
|
624 |
-
#: ../admin/admin.php:
|
625 |
msgid "You must add a gallery before adding images!"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: ../admin/admin.php:
|
629 |
msgid "Add new images to a gallery."
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: ../admin/admin.php:
|
633 |
msgid "Add images from a ZIP file."
|
634 |
msgstr ""
|
635 |
|
636 |
-
#: ../admin/admin.php:
|
637 |
msgid "Import a folder from the server as a new gallery."
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: ../admin/admin.php:
|
641 |
msgid "Manage your images and galleries."
|
642 |
msgstr ""
|
643 |
|
644 |
-
#: ../admin/admin.php:
|
645 |
msgid "Organize your galleries into albums."
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: ../admin/admin.php:
|
649 |
msgid ""
|
650 |
"First select an album from the dropdown and then drag the galleries you want "
|
651 |
"to add or remove from the selected album."
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: ../admin/admin.php:
|
655 |
msgid "Organize your pictures with tags."
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: ../admin/admin.php:
|
659 |
msgid "Rename, delete and edit tags. Use the rename function to merge tags."
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: ../admin/admin.php:
|
663 |
msgid ""
|
664 |
"Edit all of NextCellent's options. The options are sorted in multiple "
|
665 |
"categories."
|
666 |
msgstr ""
|
667 |
|
668 |
-
#: ../admin/admin.php:
|
|
|
669 |
msgid "General"
|
670 |
msgstr ""
|
671 |
|
672 |
-
#: ../admin/admin.php:
|
673 |
msgid ""
|
674 |
"General NextCellent options. Contains options for permalinks and related "
|
675 |
"images."
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: ../admin/admin.php:
|
679 |
msgid "All image-related options. Also contains options for thumbnails."
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: ../admin/admin.php:
|
683 |
-
#: ../admin/
|
684 |
-
#: ../admin/
|
685 |
-
#: ../admin/
|
686 |
-
#: ../admin/tinymce/window.php:
|
687 |
-
#: ../admin/tinymce/window.php:
|
688 |
-
#: ../
|
|
|
689 |
#, fuzzy
|
690 |
msgid "Gallery"
|
691 |
-
msgstr "
|
692 |
|
693 |
-
#: ../admin/admin.php:
|
694 |
msgid ""
|
695 |
"Everything about galleries. From sorting options to the number of images, "
|
696 |
"it's all in here."
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: ../admin/admin.php:
|
|
|
700 |
msgid "Effects"
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: ../admin/admin.php:
|
704 |
msgid "Make your gallery look beautiful."
|
705 |
msgstr ""
|
706 |
|
707 |
-
#: ../admin/admin.php:
|
708 |
-
#: ../admin/
|
|
|
709 |
msgid "Watermark"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: ../admin/admin.php:
|
713 |
msgid "Who doesn't want theft-proof images?"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#: ../admin/admin.php:
|
717 |
-
#: ../admin/
|
718 |
-
#: ../admin/
|
719 |
-
#: ../
|
|
|
|
|
720 |
msgid "Slideshow"
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: ../admin/admin.php:
|
724 |
msgid "Edit options for the slideshow."
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: ../admin/admin.php:
|
728 |
msgid "Don't forget to press save!"
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: ../admin/admin.php:
|
732 |
msgid "You can edit the css file to adjust how your gallery looks."
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: ../admin/admin.php:
|
736 |
msgid ""
|
737 |
"When you save an edited file, NextCellent automatically saves it as a copy "
|
738 |
"in the folder ngg_styles. This protects your changes from upgrades."
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: ../admin/admin.php:
|
742 |
msgid ""
|
743 |
"You can assign the lowest user role that has access to a certain feature. "
|
744 |
"Needless to say, all greater user roles will also have access to that "
|
745 |
"feature."
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: ../admin/admin.php:
|
749 |
msgid ""
|
750 |
"NextCellent also works with various plugins that extend the default roles "
|
751 |
"capabilities."
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: ../admin/admin.php:
|
755 |
msgid ""
|
756 |
"If 'someone' messed with your settings (yeah, definitely not you), you can "
|
757 |
"reset them here."
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: ../admin/admin.php:
|
761 |
msgid "Attention!"
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: ../admin/admin.php:
|
765 |
msgid ""
|
766 |
"You should not use the Uninstall Plugin button, unless you know what you're "
|
767 |
"doing! It should never be necessary to press it."
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: ../admin/admin.php:
|
771 |
-
#, fuzzy
|
772 |
msgid "For more information:"
|
773 |
-
msgstr "
|
774 |
|
775 |
-
#: ../admin/admin.php:
|
776 |
msgid "Support Forums"
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: ../admin/admin.php:
|
780 |
-
#, fuzzy
|
781 |
msgid "Source Code"
|
782 |
-
msgstr "Genereer code"
|
783 |
-
|
784 |
-
#: ../admin/ajax.php:291
|
785 |
-
#, fuzzy
|
786 |
-
msgid "You are not allowed to be here"
|
787 |
-
msgstr "Klik hier om verder te doen in Trialmodus"
|
788 |
-
|
789 |
-
#: ../admin/ajax.php:389
|
790 |
-
#, php-format
|
791 |
-
msgid "Could create image with %s x %s pixel"
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: ../admin/album.php:
|
|
|
|
|
795 |
msgid "Updated successfully"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: ../admin/album.php:
|
799 |
msgid "Album deleted"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: ../admin/album.php:
|
803 |
msgid "Edit Album"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: ../admin/album.php:
|
807 |
-
|
808 |
msgid "Select album"
|
809 |
-
msgstr "
|
810 |
|
811 |
-
#: ../admin/album.php:
|
812 |
-
#, fuzzy
|
813 |
msgid "No album selected"
|
814 |
-
msgstr "
|
815 |
|
816 |
-
#: ../admin/album
|
817 |
-
#: ../admin/overview.php:539 ../admin/rotate.php:89 ../admin/wpmu.php:114
|
818 |
-
#, fuzzy
|
819 |
msgid "Update"
|
820 |
msgstr ""
|
821 |
-
"Selecteer aub een andere download map of check en update uw "
|
822 |
-
"veiligheidsconfiguratie."
|
823 |
|
824 |
-
#: ../admin/album.php:
|
825 |
msgid "Edit album"
|
826 |
msgstr ""
|
827 |
|
828 |
-
#: ../admin/album
|
829 |
-
#: ../admin/
|
|
|
|
|
830 |
#, fuzzy
|
831 |
msgid "Delete"
|
832 |
msgstr "Verwijder de logfile?"
|
833 |
|
834 |
-
#: ../admin/album.php:
|
835 |
-
#, fuzzy
|
836 |
msgid "Add new album"
|
837 |
-
msgstr "
|
838 |
|
839 |
-
#: ../admin/album.php:
|
840 |
#, fuzzy
|
841 |
msgid "Add"
|
842 |
msgstr "Voeg URL toe"
|
843 |
|
844 |
-
#: ../admin/album.php:
|
845 |
msgid "Show / hide used galleries"
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: ../admin/album.php:
|
849 |
-
#, fuzzy
|
850 |
msgid "[Show all]"
|
851 |
-
msgstr "
|
852 |
|
853 |
-
#: ../admin/album.php:
|
854 |
msgid "Maximize the widget content"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: ../admin/album.php:
|
858 |
msgid "[Maximize]"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: ../admin/album.php:
|
862 |
msgid "Minimize the widget content"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: ../admin/album.php:
|
866 |
msgid "[Minimize]"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: ../admin/album.php:
|
870 |
msgid ""
|
871 |
"After you create and select a album, you can drag and drop a gallery or "
|
872 |
"another album into your new album below"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: ../admin/album.php:
|
876 |
-
#, fuzzy
|
877 |
msgid "Select gallery"
|
878 |
-
msgstr "
|
879 |
|
880 |
-
#: ../admin/album.php:
|
881 |
msgid "Album ID"
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: ../admin/album.php:
|
885 |
-
#, fuzzy
|
886 |
msgid "No album selected!"
|
887 |
-
msgstr "
|
888 |
|
889 |
-
#: ../admin/album.php:
|
890 |
-
#, fuzzy
|
891 |
msgid "Album name:"
|
892 |
-
msgstr "
|
893 |
|
894 |
-
#: ../admin/album.php:
|
895 |
msgid "Album description:"
|
896 |
msgstr ""
|
897 |
|
898 |
-
#: ../admin/album.php:
|
899 |
-
#, fuzzy
|
900 |
msgid "Select a preview image:"
|
901 |
-
msgstr "
|
902 |
|
903 |
-
#: ../admin/album.php:
|
|
|
904 |
msgid "No picture"
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: ../admin/album
|
908 |
-
#, fuzzy
|
909 |
msgid "Page Link to"
|
910 |
-
msgstr "
|
911 |
|
912 |
-
#: ../admin/album
|
|
|
913 |
msgid "Not linked"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: ../admin/album
|
917 |
-
#: ../admin/manage
|
918 |
-
#: ../admin/manage-images.php:568 ../admin/manage-images.php:603
|
919 |
-
#: ../admin/manage-images.php:634 ../admin/manage-images.php:664
|
920 |
#, fuzzy
|
921 |
msgid "OK"
|
922 |
msgstr "OK"
|
923 |
|
924 |
-
#: ../admin/album
|
925 |
-
#: ../admin/manage-
|
926 |
-
#: ../admin/manage-images.php:569 ../admin/manage-images.php:604
|
927 |
-
#: ../admin/manage-images.php:635 ../admin/manage-images.php:665
|
928 |
-
#: ../admin/tinymce/window.php:472
|
929 |
#, fuzzy
|
930 |
msgid "Cancel"
|
931 |
msgstr "Stoppen"
|
932 |
|
933 |
-
#: ../admin/album
|
934 |
-
#: ../admin/manage-
|
|
|
|
|
935 |
#, fuzzy
|
936 |
msgid "Title"
|
937 |
-
msgstr "
|
938 |
|
939 |
-
#: ../admin/album.php:
|
940 |
#, fuzzy
|
941 |
msgid "Page"
|
942 |
msgstr "Kan webpagina niet downloaden:"
|
943 |
|
944 |
-
#: ../admin/
|
945 |
-
msgid "
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: ../admin/
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
#: ../admin/edit-thumbnail.php:124
|
954 |
-
#, fuzzy
|
955 |
-
msgid "Error updating thumbnail"
|
956 |
-
msgstr "Register update fout:"
|
957 |
-
|
958 |
-
#: ../admin/edit-thumbnail.php:133
|
959 |
-
msgid "Select the area for the thumbnail from the picture on the left."
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: ../admin/
|
963 |
-
|
964 |
-
|
965 |
-
msgstr "Geen geldige callback gevonden."
|
966 |
|
967 |
-
#: ../admin/
|
968 |
-
|
969 |
-
|
970 |
-
#: ../admin/functions.php:352
|
971 |
-
#, fuzzy
|
972 |
-
msgid "Directory"
|
973 |
-
msgstr "Deze map bestaat niet."
|
974 |
|
975 |
-
#: ../admin/
|
976 |
-
msgid "
|
977 |
msgstr ""
|
978 |
|
979 |
-
#: ../admin/
|
980 |
-
msgid "
|
981 |
msgstr ""
|
982 |
|
983 |
-
#: ../admin/
|
984 |
-
msgid "
|
985 |
msgstr ""
|
986 |
|
987 |
-
#: ../admin/
|
988 |
-
|
989 |
-
|
990 |
-
msgid "Unable to create directory "
|
991 |
-
msgstr "Deze map bestaat niet."
|
992 |
|
993 |
-
#: ../admin/
|
994 |
-
msgid "
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: ../admin/
|
998 |
-
msgid "
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: ../admin/
|
1002 |
-
|
1003 |
-
|
1004 |
-
msgstr "Thumbnails"
|
1005 |
|
1006 |
-
#: ../admin/
|
1007 |
-
msgid "
|
1008 |
msgstr ""
|
1009 |
|
1010 |
-
#: ../admin/
|
1011 |
-
|
1012 |
-
msgid ""
|
1013 |
-
"Gallery ID %1$s successfully created. You can show this gallery in your post "
|
1014 |
-
"or page with the shortcode %2$s.<br/>"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: ../admin/
|
1018 |
-
|
1019 |
-
|
1020 |
-
msgid "Edit gallery"
|
1021 |
-
msgstr "Exporteer Gallerij"
|
1022 |
|
1023 |
-
#: ../admin/
|
1024 |
-
msgid "
|
1025 |
msgstr ""
|
1026 |
|
1027 |
-
#: ../admin/
|
1028 |
-
msgid "
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#: ../admin/
|
1032 |
-
msgid "
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#: ../admin/
|
1036 |
-
msgid "
|
1037 |
msgstr ""
|
1038 |
|
1039 |
-
#: ../admin/
|
1040 |
-
msgid "
|
1041 |
msgstr ""
|
1042 |
|
1043 |
-
#: ../admin/
|
1044 |
-
msgid "
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: ../admin/
|
1048 |
-
|
1049 |
-
#: ../admin/manage-galleries.php:150 ../admin/manage-images.php:227
|
1050 |
-
#: ../admin/manage-images.php:372 ../admin/manage.php:227
|
1051 |
-
#: ../admin/manage.php:304
|
1052 |
-
#, fuzzy
|
1053 |
-
msgid "Create new thumbnails"
|
1054 |
-
msgstr "Thumbnails"
|
1055 |
-
|
1056 |
-
#: ../admin/functions.php:304
|
1057 |
-
msgid " picture(s) successfully renamed"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: ../admin/
|
1061 |
-
msgid "
|
|
|
|
|
1062 |
msgstr ""
|
1063 |
|
1064 |
-
#: ../admin/
|
1065 |
-
|
1066 |
-
msgid "No images were added."
|
1067 |
-
msgstr "Gevonden Afbeeldingen:"
|
1068 |
-
|
1069 |
-
#: ../admin/functions.php:465 ../admin/functions.php:545
|
1070 |
-
#: ../admin/functions.php:600 ../admin/functions.php:697
|
1071 |
-
#: ../admin/functions.php:751
|
1072 |
-
msgid "Object didn't contain correct data"
|
1073 |
msgstr ""
|
1074 |
|
1075 |
-
#: ../admin/
|
1076 |
-
msgid "
|
1077 |
msgstr ""
|
1078 |
|
1079 |
-
#: ../admin/
|
1080 |
-
|
1081 |
-
msgid " is not writeable"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: ../admin/
|
1085 |
-
|
1086 |
-
|
1087 |
-
msgstr "Als het bestand al bestaat in de downloadmap:"
|
1088 |
-
|
1089 |
-
#: ../admin/functions.php:761
|
1090 |
-
msgid "Couldn't restore original image"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: ../admin/
|
1094 |
-
msgid "
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: ../admin/
|
1098 |
-
msgid "
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#: ../admin/
|
1102 |
-
|
1103 |
-
msgid "(Error : Couldn't not find image)"
|
1104 |
-
msgstr "ERROR: Afbeelding niet gevonden"
|
1105 |
-
|
1106 |
-
#: ../admin/functions.php:1036
|
1107 |
-
#, fuzzy
|
1108 |
-
msgid "No valid URL path "
|
1109 |
-
msgstr "URL : "
|
1110 |
-
|
1111 |
-
#: ../admin/functions.php:1052
|
1112 |
-
msgid "Import via cURL failed."
|
1113 |
msgstr ""
|
1114 |
|
1115 |
-
#: ../admin/
|
1116 |
-
msgid "
|
1117 |
msgstr ""
|
1118 |
|
1119 |
-
#: ../admin/
|
1120 |
-
msgid "
|
1121 |
msgstr ""
|
1122 |
|
1123 |
-
#: ../admin/
|
1124 |
-
|
1125 |
-
msgid ""
|
1126 |
-
"Unable to create directory %s. Is its parent directory writable by the "
|
1127 |
-
"server?"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
-
#: ../admin/
|
1131 |
-
msgid "
|
1132 |
msgstr ""
|
1133 |
|
1134 |
-
#: ../admin/
|
1135 |
#, fuzzy
|
1136 |
-
msgid "
|
1137 |
-
msgstr "
|
1138 |
|
1139 |
-
#: ../admin/
|
1140 |
-
msgid "
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: ../admin/
|
1144 |
-
|
1145 |
-
|
1146 |
-
msgstr "Ongeldige afbeelding"
|
1147 |
|
1148 |
-
#: ../admin/
|
1149 |
-
|
1150 |
-
#, php-format
|
1151 |
-
msgid ""
|
1152 |
-
"Unable to write to directory %s. Is this directory writable by the server?"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: ../admin/
|
1156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: ../admin/
|
1160 |
-
|
|
|
|
|
|
|
|
|
1161 |
msgstr ""
|
1162 |
|
1163 |
-
#: ../admin/
|
1164 |
-
|
|
|
|
|
|
|
|
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: ../admin/
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
|
|
|
|
|
|
1171 |
|
1172 |
-
#: ../admin/
|
1173 |
-
#, php-format
|
1174 |
msgid ""
|
1175 |
-
"
|
1176 |
-
"strong> manually"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
-
#: ../admin/
|
1180 |
-
|
1181 |
-
msgid ""
|
1182 |
-
"When safe_mode is on, PHP checks to see if the owner (%s) of the current "
|
1183 |
-
"script matches the owner (%s) of the file to be operated on by a file "
|
1184 |
-
"function or its directory"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
-
#: ../admin/
|
1188 |
-
|
1189 |
-
|
1190 |
-
msgstr "Deze map bestaat niet."
|
1191 |
|
1192 |
-
#: ../admin/
|
1193 |
-
|
1194 |
-
msgid "Failed to move image %1$s to %2$s"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: ../admin/
|
1198 |
-
|
1199 |
-
msgid "Moved %1$s picture(s) to gallery : %2$s ."
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: ../admin/
|
1203 |
-
|
1204 |
-
msgid "Failed to copy image %1$s to %2$s"
|
1205 |
msgstr ""
|
1206 |
|
1207 |
-
#: ../admin/
|
1208 |
-
|
1209 |
-
msgid "Failed to copy database row for picture %s"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
-
#: ../admin/
|
1213 |
-
#, php-format
|
1214 |
msgid ""
|
1215 |
-
"
|
1216 |
-
"
|
1217 |
msgstr ""
|
1218 |
|
1219 |
-
#: ../admin/
|
1220 |
-
|
1221 |
-
msgid "Image %1$s (%2$s) copied as image %3$s (%4$s)"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
-
#: ../admin/
|
1225 |
-
|
1226 |
-
msgid "Copied %1$s picture(s) to gallery: %2$s ."
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: ../admin/
|
1230 |
-
msgid "
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#: ../admin/
|
1234 |
-
msgid ""
|
1235 |
-
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
|
1236 |
-
"the HTML form"
|
1237 |
msgstr ""
|
1238 |
|
1239 |
-
#: ../admin/
|
1240 |
-
msgid "
|
1241 |
msgstr ""
|
1242 |
|
1243 |
-
#: ../admin/
|
1244 |
-
|
1245 |
-
|
1246 |
-
msgstr "Bestand : "
|
1247 |
|
1248 |
-
#: ../admin/
|
1249 |
-
|
1250 |
-
|
1251 |
-
msgstr "Probeer opnieuw verzamelmap:"
|
1252 |
|
1253 |
-
#: ../admin/
|
1254 |
-
msgid "
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: ../admin/
|
1258 |
-
|
|
|
1259 |
msgstr ""
|
1260 |
|
1261 |
-
#: ../admin/
|
1262 |
-
|
1263 |
-
|
1264 |
-
msgstr "Fout laden pagina, fout:"
|
1265 |
|
1266 |
-
#: ../admin/
|
1267 |
-
msgid "
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: ../admin/
|
1271 |
-
msgid ""
|
1272 |
-
"NextCellent Gallery : Tables could not created, please check your database "
|
1273 |
-
"settings"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
-
#: ../admin/
|
1277 |
#, fuzzy
|
1278 |
-
msgid "
|
1279 |
-
msgstr "
|
1280 |
|
1281 |
-
#: ../admin/
|
1282 |
-
|
1283 |
-
|
1284 |
-
msgstr "Schoon de Lijst op"
|
1285 |
|
1286 |
-
#: ../admin/
|
1287 |
-
|
1288 |
-
|
1289 |
-
msgstr "Verwijder geselecteerde afbeeldingen"
|
1290 |
|
1291 |
-
#: ../admin/
|
1292 |
-
|
1293 |
-
|
1294 |
-
#, fuzzy
|
1295 |
-
msgid "Resize images"
|
1296 |
-
msgstr "Gevonden Afbeeldingen:"
|
1297 |
|
1298 |
-
#: ../admin/
|
1299 |
-
#, php-format
|
1300 |
msgid ""
|
1301 |
-
"
|
1302 |
-
"
|
1303 |
-
" 'Cancel' to stop, 'OK' to proceed."
|
1304 |
msgstr ""
|
1305 |
|
1306 |
-
#: ../admin/
|
1307 |
-
|
1308 |
-
|
1309 |
-
msgstr "Voeg URL toe"
|
1310 |
-
|
1311 |
-
#: ../admin/manage-galleries.php:132 ../admin/manage-galleries.php:135
|
1312 |
-
#: ../admin/manage-images.php:249 ../admin/manage-images.php:252
|
1313 |
-
#, fuzzy
|
1314 |
-
msgid "Search Images"
|
1315 |
-
msgstr "Gevonden Afbeeldingen:"
|
1316 |
|
1317 |
-
#: ../admin/
|
1318 |
-
msgid "
|
1319 |
msgstr ""
|
1320 |
|
1321 |
-
#: ../admin/
|
1322 |
-
|
1323 |
-
|
|
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: ../admin/
|
1327 |
-
|
1328 |
-
msgid "Import metadata"
|
1329 |
msgstr ""
|
1330 |
|
1331 |
-
#: ../admin/
|
1332 |
-
#: ../
|
1333 |
#, fuzzy
|
1334 |
-
msgid "
|
1335 |
-
msgstr "
|
1336 |
|
1337 |
-
#: ../admin/
|
1338 |
-
|
1339 |
-
msgid "Apply"
|
1340 |
msgstr ""
|
1341 |
-
"Start IE, klik op Tools | Internet Opties | Geavanceerd, en neem de "
|
1342 |
-
"instellingen al dan niet over. Klik op Toepassen om de instellingen op te "
|
1343 |
-
"slaan."
|
1344 |
|
1345 |
-
#: ../admin/
|
1346 |
-
msgid "
|
1347 |
msgstr ""
|
1348 |
|
1349 |
-
#: ../admin/
|
1350 |
-
|
1351 |
-
msgid "No entries found"
|
1352 |
-
msgstr "Afbeelding niet gevonden"
|
1353 |
-
|
1354 |
-
#: ../admin/manage-galleries.php:278
|
1355 |
-
#, fuzzy
|
1356 |
-
msgid "New Gallery"
|
1357 |
-
msgstr "Exporteer Gallerij"
|
1358 |
-
|
1359 |
-
#: ../admin/manage-galleries.php:280
|
1360 |
-
msgid "Create a new , empty gallery below the folder"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
-
#: ../admin/
|
1364 |
-
|
1365 |
-
msgid "Resize Images to"
|
1366 |
-
msgstr "Deselecteer Afbeeldingen"
|
1367 |
-
|
1368 |
-
#: ../admin/manage-galleries.php:311 ../admin/manage-galleries.php:340
|
1369 |
-
#: ../admin/manage-images.php:625 ../admin/manage-images.php:653
|
1370 |
-
#: ../admin/settings.php:395 ../admin/settings.php:424
|
1371 |
-
#: ../admin/settings.php:698 ../admin/tinymce/window.php:210
|
1372 |
-
#: ../admin/tinymce/window.php:318
|
1373 |
-
msgid "Width"
|
1374 |
msgstr ""
|
1375 |
|
1376 |
-
#: ../admin/
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
#: ../admin/tinymce/window.php:320
|
1381 |
-
msgid "Height"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#: ../admin/
|
1385 |
-
|
1386 |
-
msgid ""
|
1387 |
-
"Width and height (in pixels). NextCellent Gallery will keep the ratio size."
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: ../admin/
|
1391 |
-
|
1392 |
-
msgid "Size"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: ../admin/
|
1396 |
-
|
1397 |
-
msgid "These values are maximum values "
|
1398 |
msgstr ""
|
1399 |
|
1400 |
-
#: ../admin/
|
1401 |
-
|
1402 |
-
msgid "Fixed size"
|
1403 |
msgstr ""
|
1404 |
|
1405 |
-
#: ../admin/
|
1406 |
-
|
1407 |
-
msgid "This will ignore the aspect ratio, so no portrait thumbnails"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
-
#: ../admin/
|
1411 |
-
msgid "
|
1412 |
msgstr ""
|
1413 |
|
1414 |
-
#: ../admin/
|
1415 |
-
|
1416 |
-
msgid "Author"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
-
#: ../admin/
|
1420 |
-
|
1421 |
-
msgid "
|
1422 |
-
msgstr "
|
1423 |
|
1424 |
-
#: ../admin/
|
1425 |
#, fuzzy
|
1426 |
-
msgid "
|
1427 |
-
msgstr "
|
1428 |
|
1429 |
-
#: ../admin/
|
1430 |
-
msgid "
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#: ../admin/
|
1434 |
-
|
1435 |
-
|
1436 |
-
msgstr "Kopieer afbeeldingslocatie naar clipboard"
|
1437 |
-
|
1438 |
-
#: ../admin/manage-images.php:207
|
1439 |
-
#, fuzzy
|
1440 |
-
msgid "Move image to..."
|
1441 |
-
msgstr "Verplaats naar Beneden"
|
1442 |
|
1443 |
-
#: ../admin/
|
1444 |
-
|
1445 |
-
|
1446 |
-
msgstr "Voeg toe aan Wachtrij"
|
1447 |
|
1448 |
-
#: ../admin/
|
1449 |
-
|
1450 |
-
msgid "
|
1451 |
-
msgstr "
|
1452 |
|
1453 |
-
#: ../admin/
|
1454 |
-
|
1455 |
-
msgid "
|
1456 |
-
msgstr "
|
1457 |
|
1458 |
-
#: ../admin/
|
1459 |
-
#, php-format
|
1460 |
msgid ""
|
1461 |
-
"
|
1462 |
-
"
|
1463 |
-
"
|
1464 |
msgstr ""
|
1465 |
|
1466 |
-
#: ../admin/
|
1467 |
-
|
1468 |
-
|
|
|
|
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: ../admin/
|
1472 |
-
|
1473 |
-
|
1474 |
-
msgstr "Instellingen"
|
1475 |
|
1476 |
-
#: ../admin/
|
1477 |
#, fuzzy
|
1478 |
-
msgid "
|
1479 |
-
msgstr "
|
1480 |
|
1481 |
-
#: ../admin/
|
1482 |
-
|
1483 |
-
|
1484 |
-
msgstr "Bekijk Afbeelding..."
|
1485 |
|
1486 |
-
#: ../admin/
|
1487 |
-
msgid "
|
1488 |
msgstr ""
|
1489 |
|
1490 |
-
#: ../admin/
|
1491 |
-
msgid "
|
1492 |
msgstr ""
|
1493 |
|
1494 |
-
#: ../admin/
|
1495 |
-
|
1496 |
-
msgid "Gallery ID"
|
1497 |
-
msgstr "Exporteer Gallerij"
|
1498 |
-
|
1499 |
-
#: ../admin/manage-images.php:336
|
1500 |
-
#, fuzzy
|
1501 |
-
msgid "Create new page"
|
1502 |
-
msgstr "Huidige pagina"
|
1503 |
-
|
1504 |
-
#: ../admin/manage-images.php:339
|
1505 |
-
#, fuzzy
|
1506 |
-
msgid "Main page (No parent)"
|
1507 |
-
msgstr "Paginatitel : "
|
1508 |
-
|
1509 |
-
#: ../admin/manage-images.php:344
|
1510 |
-
#, fuzzy
|
1511 |
-
msgid "Add page"
|
1512 |
-
msgstr "Voeg URL toe"
|
1513 |
-
|
1514 |
-
#: ../admin/manage-images.php:354
|
1515 |
-
#, fuzzy
|
1516 |
-
msgid "Scan folder for new images"
|
1517 |
-
msgstr "Scan URL op afbeeldingen"
|
1518 |
-
|
1519 |
-
#: ../admin/manage-images.php:355
|
1520 |
-
msgid "Old scanning"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: ../admin/
|
1524 |
-
|
1525 |
-
#: ../admin/settings.php:447 ../admin/settings.php:537
|
1526 |
-
#: ../admin/settings.php:571 ../admin/settings.php:681
|
1527 |
-
#: ../admin/settings.php:833
|
1528 |
-
#, fuzzy
|
1529 |
-
msgid "Save Changes"
|
1530 |
-
msgstr "Save Wijzigingen"
|
1531 |
-
|
1532 |
-
#: ../admin/manage-images.php:375
|
1533 |
-
#, fuzzy
|
1534 |
-
msgid "Delete images"
|
1535 |
-
msgstr "Verwijder geselecteerde afbeeldingen"
|
1536 |
-
|
1537 |
-
#: ../admin/manage-images.php:377
|
1538 |
-
#, fuzzy
|
1539 |
-
msgid "Rotate images clockwise"
|
1540 |
-
msgstr "Scan URL op afbeeldingen"
|
1541 |
-
|
1542 |
-
#: ../admin/manage-images.php:378
|
1543 |
-
msgid "Rotate images counter-clockwise"
|
1544 |
msgstr ""
|
1545 |
|
1546 |
-
#: ../admin/
|
1547 |
-
|
1548 |
-
|
1549 |
-
msgstr "Kopieer code naar het clipboard"
|
1550 |
|
1551 |
-
#: ../admin/
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
|
|
1555 |
|
1556 |
-
#: ../admin/
|
1557 |
-
|
1558 |
-
|
1559 |
-
msgstr "Voeg URL toe"
|
1560 |
|
1561 |
-
#: ../admin/
|
1562 |
-
|
1563 |
-
|
1564 |
-
msgstr "Overschrijven"
|
1565 |
|
1566 |
-
#: ../admin/
|
1567 |
-
|
1568 |
-
|
1569 |
-
msgstr "Sorteer Lijst"
|
1570 |
|
1571 |
-
#: ../admin/
|
1572 |
-
|
1573 |
-
|
1574 |
-
msgstr "Om deze instellingen te veranderen:"
|
1575 |
|
1576 |
-
#: ../admin/
|
1577 |
-
msgid "
|
1578 |
msgstr ""
|
1579 |
|
1580 |
-
#: ../admin/
|
1581 |
-
|
1582 |
-
|
1583 |
-
msgstr "Bekijk Afbeelding..."
|
1584 |
|
1585 |
-
#: ../admin/
|
1586 |
#, fuzzy
|
1587 |
-
msgid "
|
1588 |
-
msgstr "
|
1589 |
|
1590 |
-
#: ../admin/
|
1591 |
-
msgid "
|
1592 |
msgstr ""
|
1593 |
|
1594 |
-
#: ../admin/
|
1595 |
-
|
1596 |
-
|
1597 |
-
msgstr "Dit is potentieel bruikbare metadata die de logger opgeslagen heeft."
|
1598 |
|
1599 |
-
#: ../admin/
|
1600 |
-
|
1601 |
-
|
1602 |
-
msgstr "Thumbnail"
|
1603 |
|
1604 |
-
#: ../admin/
|
1605 |
-
msgid "
|
|
|
1606 |
msgstr ""
|
1607 |
|
1608 |
-
#: ../admin/manage-
|
1609 |
-
|
|
|
1610 |
msgstr ""
|
1611 |
|
1612 |
-
#: ../admin/
|
1613 |
-
|
1614 |
-
|
1615 |
-
msgstr "Laad afbeelding..."
|
1616 |
|
1617 |
-
#: ../admin/
|
1618 |
-
msgid "
|
1619 |
msgstr ""
|
1620 |
|
1621 |
-
#: ../admin/
|
1622 |
-
msgid "
|
1623 |
msgstr ""
|
1624 |
|
1625 |
-
#: ../admin/
|
1626 |
-
|
1627 |
-
|
1628 |
-
msgstr "Geschiedenis voor %s"
|
1629 |
|
1630 |
-
#: ../admin/
|
1631 |
-
|
1632 |
-
msgid "
|
1633 |
-
msgstr "
|
1634 |
|
1635 |
-
#: ../admin/
|
1636 |
-
|
1637 |
-
|
1638 |
-
msgstr "Paginatitel : "
|
1639 |
|
1640 |
-
#: ../admin/
|
1641 |
-
msgid "
|
1642 |
msgstr ""
|
1643 |
|
1644 |
-
#: ../admin/
|
1645 |
-
|
1646 |
-
|
1647 |
-
msgstr "Voer de registratiecode in:"
|
1648 |
|
1649 |
-
#: ../admin/
|
1650 |
-
|
1651 |
-
|
1652 |
-
msgstr "Selecteer Afbeeldingen"
|
1653 |
|
1654 |
-
#: ../admin/
|
1655 |
-
|
1656 |
-
|
1657 |
-
msgstr "Thumbnail"
|
1658 |
|
1659 |
-
#: ../admin/
|
1660 |
-
|
1661 |
-
|
1662 |
-
msgstr "Bestandsnaam"
|
1663 |
|
1664 |
-
#: ../admin/
|
1665 |
-
msgid "
|
1666 |
msgstr ""
|
1667 |
|
1668 |
-
#: ../admin/
|
1669 |
-
msgid "
|
1670 |
msgstr ""
|
1671 |
|
1672 |
-
#: ../admin/
|
1673 |
-
|
1674 |
-
|
1675 |
-
msgstr "Sorteer Lijst"
|
1676 |
|
1677 |
-
#: ../admin/
|
1678 |
-
|
1679 |
-
|
1680 |
-
msgstr "Sorteer Lijst"
|
1681 |
|
1682 |
-
#: ../admin/
|
1683 |
-
|
1684 |
-
|
1685 |
-
msgstr "Sorteer Lijst"
|
1686 |
|
1687 |
-
#: ../admin/
|
1688 |
-
|
1689 |
-
|
1690 |
-
msgstr "Exporteer Gallerij"
|
1691 |
|
1692 |
-
#: ../admin/
|
1693 |
-
msgid "
|
1694 |
msgstr ""
|
1695 |
|
1696 |
-
#: ../admin/
|
1697 |
-
msgid "
|
1698 |
msgstr ""
|
1699 |
|
1700 |
-
#: ../admin/
|
1701 |
-
|
1702 |
-
|
1703 |
-
msgstr "Totaal aantal afbeeldingenlinks:"
|
1704 |
|
1705 |
-
#: ../admin/
|
1706 |
-
|
1707 |
-
|
1708 |
-
msgstr "Paginatitel:"
|
1709 |
|
1710 |
-
#: ../admin/
|
1711 |
-
|
1712 |
-
msgid "Date/Time"
|
1713 |
msgstr ""
|
1714 |
-
"Sla afbeeldingen op met originele datum/tijd van de server indien beschikbaar"
|
1715 |
|
1716 |
-
#: ../admin/
|
1717 |
-
msgid "
|
1718 |
msgstr ""
|
1719 |
|
1720 |
-
#: ../admin/
|
1721 |
-
msgid "
|
1722 |
msgstr ""
|
1723 |
|
1724 |
-
#: ../admin/
|
1725 |
-
|
1726 |
-
#: ../view/imagebrowser.php:31
|
1727 |
-
msgid "Picture"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
-
#: ../admin/
|
1731 |
-
msgid "
|
1732 |
msgstr ""
|
1733 |
|
1734 |
-
#: ../admin/
|
1735 |
-
msgid "
|
1736 |
msgstr ""
|
1737 |
|
1738 |
-
#: ../admin/
|
1739 |
-
|
1740 |
-
|
1741 |
-
msgstr "...alleen als alle afbeeldingen succesvol gedownload zijn"
|
1742 |
|
1743 |
-
#: ../admin/
|
1744 |
-
|
1745 |
-
|
1746 |
-
msgstr "Gevonden Afbeeldingen:"
|
1747 |
|
1748 |
-
#: ../admin/
|
1749 |
-
|
1750 |
-
|
1751 |
-
msgstr "...alleen als alle afbeeldingen succesvol gedownload zijn"
|
1752 |
|
1753 |
-
#: ../admin/
|
1754 |
-
msgid "
|
1755 |
msgstr ""
|
1756 |
|
1757 |
-
#: ../admin/
|
1758 |
-
msgid "
|
1759 |
msgstr ""
|
1760 |
|
1761 |
-
#: ../admin/
|
1762 |
-
msgid "
|
1763 |
msgstr ""
|
1764 |
|
1765 |
-
#: ../admin/
|
1766 |
-
|
1767 |
-
|
1768 |
-
msgstr "Maak nieuw geheim RSS-adres"
|
1769 |
|
1770 |
-
#: ../admin/
|
1771 |
-
|
1772 |
-
|
1773 |
-
msgstr "Maak nieuw geheim RSS-adres"
|
1774 |
|
1775 |
-
#: ../admin/
|
1776 |
-
|
1777 |
-
msgid "
|
1778 |
-
msgstr "
|
1779 |
|
1780 |
-
#: ../admin/
|
1781 |
-
|
1782 |
-
|
1783 |
-
msgstr "Exporteer Gallerij"
|
1784 |
|
1785 |
-
#: ../admin/
|
1786 |
-
#,
|
1787 |
-
msgid "
|
1788 |
-
msgstr "
|
1789 |
|
1790 |
-
#: ../admin/
|
1791 |
-
#,
|
1792 |
-
msgid "
|
1793 |
-
msgstr "
|
1794 |
|
1795 |
-
#: ../admin/
|
1796 |
-
#,
|
1797 |
-
msgid "
|
1798 |
-
msgstr "
|
1799 |
|
1800 |
-
#: ../admin/
|
1801 |
-
|
1802 |
-
|
1803 |
-
msgstr "Verberg Taak"
|
1804 |
|
1805 |
-
#: ../admin/
|
1806 |
-
|
1807 |
-
|
1808 |
-
msgstr "Afbeeldings Informatie"
|
1809 |
|
1810 |
-
#: ../admin/
|
1811 |
-
|
1812 |
-
msgid "Alignment"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
-
#: ../admin/
|
1816 |
-
#: ../admin/settings.php:557
|
1817 |
#, fuzzy
|
1818 |
-
msgid "
|
1819 |
-
msgstr "
|
1820 |
|
1821 |
-
#: ../admin/
|
1822 |
-
#: ../admin/tinymce/window.php:
|
1823 |
#, fuzzy
|
1824 |
-
msgid "
|
1825 |
-
msgstr "
|
1826 |
|
1827 |
-
#: ../admin/
|
1828 |
-
|
1829 |
-
msgid "Center"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
-
#: ../admin/
|
1833 |
-
|
1834 |
-
#, fuzzy
|
1835 |
-
msgid "Right"
|
1836 |
msgstr ""
|
1837 |
-
"Integreer met Internet Explorer (contextmenu wordt toegevoegd met "
|
1838 |
-
"rechtermuisklik)"
|
1839 |
|
1840 |
-
#: ../admin/
|
1841 |
-
msgid "
|
1842 |
msgstr ""
|
1843 |
|
1844 |
-
#: ../admin/
|
1845 |
-
|
|
|
1846 |
msgstr ""
|
1847 |
|
1848 |
-
#: ../admin/
|
1849 |
-
msgid "
|
1850 |
msgstr ""
|
1851 |
|
1852 |
-
#: ../admin/
|
1853 |
-
#,
|
1854 |
-
msgid "
|
1855 |
-
msgstr "
|
1856 |
|
1857 |
-
#: ../admin/overview.php:
|
1858 |
-
#,
|
1859 |
-
msgid "
|
1860 |
-
|
|
|
|
|
1861 |
|
1862 |
-
#: ../admin/overview.php:
|
1863 |
-
|
1864 |
-
|
1865 |
-
msgstr "Download deze gallerij met Bulk Image Downloader"
|
1866 |
|
1867 |
-
#: ../admin/overview.php:
|
1868 |
-
#, fuzzy
|
1869 |
msgid "Running..."
|
1870 |
-
msgstr "
|
1871 |
|
1872 |
-
#: ../admin/overview.php:
|
1873 |
msgid "Check plugin/theme conflict"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
-
#: ../admin/overview.php:
|
1877 |
-
#: ../admin/overview.php:
|
1878 |
msgid "Not tested"
|
1879 |
msgstr ""
|
1880 |
|
1881 |
-
#: ../admin/overview.php:
|
1882 |
-
#, fuzzy
|
1883 |
msgid "No conflict could be detected"
|
1884 |
-
msgstr "
|
1885 |
|
1886 |
-
#: ../admin/overview.php:
|
1887 |
msgid "Test failed, disable other plugins & switch to default theme"
|
1888 |
msgstr ""
|
1889 |
|
1890 |
-
#: ../admin/overview.php:
|
1891 |
-
#, fuzzy
|
1892 |
msgid "Test image function"
|
1893 |
-
msgstr "
|
1894 |
|
1895 |
-
#: ../admin/overview.php:
|
1896 |
-
|
1897 |
-
|
1898 |
-
msgstr "Kon de map niet aanmaken:"
|
1899 |
|
1900 |
-
#: ../admin/overview.php:
|
1901 |
-
msgid "
|
1902 |
msgstr ""
|
1903 |
|
1904 |
-
#: ../admin/overview.php:
|
1905 |
-
#, fuzzy
|
1906 |
msgid "Check theme compatibility"
|
1907 |
-
msgstr "
|
1908 |
|
1909 |
-
#: ../admin/overview.php:
|
1910 |
msgid "Your theme should work fine with NextCellent Gallery"
|
1911 |
msgstr ""
|
1912 |
|
1913 |
-
#: ../admin/overview.php:
|
1914 |
msgid "wp_head()/wp_footer() is missing, contact the theme author"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
-
#: ../admin/overview.php:
|
1918 |
-
#, fuzzy
|
1919 |
msgid "Check plugin"
|
1920 |
-
msgstr "
|
1921 |
|
1922 |
-
#: ../admin/overview.php:
|
1923 |
msgid "Graphic Library"
|
1924 |
msgstr ""
|
1925 |
|
1926 |
-
#: ../admin/overview.php:
|
1927 |
-
|
1928 |
-
#, fuzzy
|
1929 |
-
msgid "Loading…"
|
1930 |
-
msgstr "Laden…"
|
1931 |
-
|
1932 |
-
#: ../admin/overview.php:333 ../admin/overview.php:520
|
1933 |
-
#: ../admin/overview.php:710
|
1934 |
-
msgid "This widget requires JavaScript."
|
1935 |
msgstr ""
|
1936 |
|
1937 |
-
#: ../admin/overview.php:
|
1938 |
-
|
1939 |
-
msgid ""
|
1940 |
-
"Newsfeed could not be loaded. Check the <a href=\"%s\">front page</a> to "
|
1941 |
-
"check for updates."
|
1942 |
msgstr ""
|
1943 |
|
1944 |
-
#: ../admin/overview.php:
|
1945 |
-
|
|
|
1946 |
msgstr ""
|
1947 |
|
1948 |
-
#: ../admin/overview.php:
|
1949 |
-
|
1950 |
-
|
1951 |
-
msgstr "Totaal aantal afbeeldingenlinks:"
|
1952 |
|
1953 |
-
#: ../admin/overview.php:
|
1954 |
-
|
1955 |
-
msgid "Album"
|
1956 |
msgstr ""
|
1957 |
|
1958 |
-
#: ../admin/overview.php:
|
1959 |
-
msgid "
|
1960 |
msgstr ""
|
1961 |
|
1962 |
-
#: ../admin/overview.php:
|
1963 |
-
|
|
|
|
|
1964 |
msgstr ""
|
1965 |
|
1966 |
-
#: ../admin/overview.php:
|
1967 |
-
|
1968 |
-
msgid "Storage Space"
|
1969 |
-
msgstr "Zeer weinig diskruimte"
|
1970 |
-
|
1971 |
-
#: ../admin/overview.php:468
|
1972 |
-
#, php-format
|
1973 |
-
msgid ""
|
1974 |
-
"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>"
|
1975 |
msgstr ""
|
1976 |
|
1977 |
-
#: ../admin/overview.php:
|
1978 |
-
|
1979 |
-
msgid "Space Allowed"
|
1980 |
-
msgstr "Zeer weinig diskruimte"
|
1981 |
-
|
1982 |
-
#: ../admin/overview.php:476
|
1983 |
-
#, php-format
|
1984 |
-
msgid ""
|
1985 |
-
"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s"
|
1986 |
-
"%%)</a>"
|
1987 |
msgstr ""
|
1988 |
|
1989 |
-
#: ../admin/overview.php:
|
1990 |
-
|
1991 |
-
msgid "Space Used"
|
1992 |
-
msgstr "Zeer weinig diskruimte"
|
1993 |
-
|
1994 |
-
#: ../admin/overview.php:506
|
1995 |
-
msgid "Translation file successful updated. Please reload page."
|
1996 |
msgstr ""
|
1997 |
|
1998 |
-
#: ../admin/overview.php:
|
1999 |
-
|
2000 |
-
|
2001 |
-
msgstr "Paginatitel:"
|
2002 |
|
2003 |
-
#: ../admin/overview.php:513
|
2004 |
-
msgid "
|
2005 |
msgstr ""
|
2006 |
|
2007 |
-
#: ../admin/overview.php:
|
2008 |
-
|
2009 |
-
|
2010 |
-
msgstr "Selecteer a.u.b. een download map."
|
2011 |
|
2012 |
-
#: ../admin/overview.php:
|
2013 |
-
msgid "
|
2014 |
msgstr ""
|
2015 |
|
2016 |
-
#: ../admin/overview.php:
|
2017 |
-
|
2018 |
-
msgid "Yes"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
-
#: ../admin/overview.php:
|
2022 |
-
|
2023 |
-
msgid "No"
|
2024 |
msgstr ""
|
2025 |
|
2026 |
-
#: ../admin/overview.php:
|
2027 |
-
|
2028 |
-
msgid "Not set"
|
2029 |
msgstr ""
|
2030 |
-
"Voer in \"netsh interface tcp set global autotuninglevel=disabled\" (zonder "
|
2031 |
-
"accolades) en druk op Enter"
|
2032 |
|
2033 |
-
#: ../admin/overview.php:
|
2034 |
-
msgid "
|
2035 |
msgstr ""
|
2036 |
|
2037 |
-
#: ../admin/overview.php:
|
2038 |
-
msgid "
|
2039 |
msgstr ""
|
2040 |
|
2041 |
-
#: ../admin/overview.php:
|
2042 |
-
|
2043 |
-
#: ../admin/overview.php:632 ../admin/overview.php:635
|
2044 |
-
msgid "N/A"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
-
#: ../admin/overview.php:
|
2048 |
-
msgid "
|
2049 |
msgstr ""
|
2050 |
|
2051 |
-
#: ../admin/overview.php:
|
2052 |
-
msgid "
|
2053 |
msgstr ""
|
2054 |
|
2055 |
-
#: ../admin/overview.php:
|
2056 |
-
|
2057 |
-
msgid "Server"
|
2058 |
msgstr ""
|
2059 |
-
"Sla afbeeldingen op met originele datum/tijd van de server indien beschikbaar"
|
2060 |
|
2061 |
-
#: ../admin/overview.php:
|
2062 |
-
msgid "
|
2063 |
msgstr ""
|
2064 |
|
2065 |
-
#: ../admin/overview.php:
|
2066 |
-
|
2067 |
-
|
2068 |
-
msgstr "Datum versie"
|
2069 |
|
2070 |
-
#: ../admin/overview.php:
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
|
|
2074 |
|
2075 |
-
#: ../admin/overview.php:
|
2076 |
-
#, fuzzy
|
2077 |
-
msgid "
|
2078 |
-
msgstr "
|
2079 |
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
|
|
2084 |
|
2085 |
-
#: ../admin/overview.php:
|
2086 |
-
msgid "
|
2087 |
msgstr ""
|
2088 |
|
2089 |
-
|
2090 |
-
|
|
|
|
|
2091 |
msgstr ""
|
2092 |
|
2093 |
-
#: ../admin/overview.php:
|
2094 |
-
msgid "
|
2095 |
msgstr ""
|
2096 |
|
2097 |
-
#: ../admin/overview.php:
|
2098 |
-
|
|
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: ../admin/overview.php:
|
2102 |
-
msgid "
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
#: ../admin/overview.php:
|
2106 |
-
msgid "
|
2107 |
msgstr ""
|
2108 |
|
2109 |
-
#: ../admin/overview.php:
|
2110 |
-
msgid "
|
2111 |
msgstr ""
|
2112 |
|
2113 |
-
#: ../admin/overview.php:
|
2114 |
-
msgid "
|
2115 |
msgstr ""
|
2116 |
|
2117 |
-
#: ../admin/overview.php:
|
2118 |
-
msgid "
|
2119 |
msgstr ""
|
2120 |
|
2121 |
-
#: ../admin/overview.php:
|
2122 |
msgid ""
|
2123 |
-
"
|
2124 |
-
"
|
2125 |
-
"supported by the PHP group. Many shared hosting providers offer both PHP 4 "
|
2126 |
-
"and PHP 5, running simultaneously. Ask your provider if they can do this."
|
2127 |
msgstr ""
|
2128 |
|
2129 |
-
#: ../admin/overview.php:
|
2130 |
-
msgid ""
|
2131 |
-
"third parties plugins that are compatible with NGG may not be 100% "
|
2132 |
-
"compatible with NextCellent Gallery!"
|
2133 |
msgstr ""
|
2134 |
|
2135 |
-
#: ../admin/overview.php:
|
2136 |
-
|
2137 |
-
msgid "Install"
|
2138 |
msgstr ""
|
2139 |
-
"Installeer de BID extentie voor Mozilla Firefox, deze is te vinden in de "
|
2140 |
-
"[BID]/Firefox Extentie map."
|
2141 |
|
2142 |
-
#: ../admin/overview.php:
|
2143 |
-
|
2144 |
-
msgid ""
|
2145 |
-
"This plugin is a branch from NGG stable version 1.9.13.<br> Developed & "
|
2146 |
-
"maintained by <a href=\"%s\" target=\"_blank\">WPGetReady.com</a>"
|
2147 |
msgstr ""
|
2148 |
|
2149 |
-
#: ../admin/overview.php:
|
2150 |
-
msgid "
|
2151 |
msgstr ""
|
2152 |
|
2153 |
-
#: ../admin/overview.php:
|
2154 |
-
msgid "
|
2155 |
msgstr ""
|
2156 |
|
2157 |
-
#: ../admin/
|
2158 |
-
|
2159 |
-
|
2160 |
-
msgstr "Paginatitel:"
|
2161 |
|
2162 |
-
#: ../admin/
|
2163 |
-
|
2164 |
-
|
2165 |
-
msgstr "Voer de registratiecode in:"
|
2166 |
|
2167 |
-
#: ../admin/
|
2168 |
-
msgid "
|
2169 |
msgstr ""
|
2170 |
|
2171 |
-
#: ../admin/
|
2172 |
-
|
2173 |
-
|
2174 |
-
msgstr "Laad afbeelding..."
|
2175 |
|
2176 |
-
#: ../admin/
|
2177 |
-
msgid "
|
2178 |
msgstr ""
|
2179 |
|
2180 |
-
#: ../admin/
|
2181 |
-
msgid "
|
2182 |
msgstr ""
|
2183 |
|
2184 |
-
#: ../admin/roles.php:
|
2185 |
msgid "Roles / capabilities"
|
2186 |
msgstr ""
|
2187 |
|
2188 |
-
#: ../admin/roles.php:
|
2189 |
msgid ""
|
2190 |
"Select the lowest role which should be able to access the following "
|
2191 |
"capabilities. NextCellent Gallery supports the standard roles from WordPress."
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: ../admin/roles.php:
|
2195 |
msgid "For a more flexible user management you can use the"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
-
#: ../admin/roles.php:
|
2199 |
-
#, fuzzy
|
2200 |
msgid "NextCellent Gallery overview"
|
2201 |
-
msgstr "
|
2202 |
|
2203 |
-
#: ../admin/roles.php:
|
2204 |
msgid "Use TinyMCE Button / Add Media"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
-
#: ../admin/roles.php:
|
2208 |
msgid "Add gallery / Upload images"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
-
#: ../admin/roles.php:
|
2212 |
-
#, fuzzy
|
2213 |
msgid "Manage gallery"
|
2214 |
-
msgstr "
|
2215 |
|
2216 |
-
#: ../admin/roles.php:
|
2217 |
-
#, fuzzy
|
2218 |
msgid "Manage others gallery"
|
2219 |
-
msgstr "
|
2220 |
|
2221 |
-
#: ../admin/roles.php:
|
2222 |
msgid "Manage tags"
|
2223 |
msgstr ""
|
2224 |
|
2225 |
-
#: ../admin/roles.php:
|
2226 |
-
#, fuzzy
|
2227 |
msgid "Change style"
|
2228 |
-
msgstr "
|
2229 |
|
2230 |
-
#: ../admin/roles.php:
|
2231 |
-
#, fuzzy
|
2232 |
msgid "Change options"
|
2233 |
-
msgstr "
|
2234 |
|
2235 |
-
#: ../admin/roles.php:
|
2236 |
msgid "Update capabilities"
|
2237 |
msgstr ""
|
2238 |
|
2239 |
-
#: ../admin/
|
2240 |
-
|
2241 |
-
|
2242 |
-
msgstr "Bekijk Afbeelding..."
|
2243 |
|
2244 |
-
#: ../admin/
|
2245 |
-
|
2246 |
-
|
2247 |
-
msgstr "Fout"
|
2248 |
|
2249 |
-
#: ../admin/
|
2250 |
-
msgid "
|
2251 |
msgstr ""
|
2252 |
|
2253 |
-
#: ../admin/
|
2254 |
-
msgid "
|
2255 |
msgstr ""
|
2256 |
|
2257 |
-
#: ../admin/
|
2258 |
-
msgid "
|
2259 |
msgstr ""
|
2260 |
|
2261 |
-
#: ../admin/
|
2262 |
-
msgid "
|
2263 |
msgstr ""
|
2264 |
|
2265 |
-
#: ../admin/
|
2266 |
-
msgid "
|
|
|
|
|
|
|
2267 |
msgstr ""
|
2268 |
|
2269 |
-
#: ../admin/
|
2270 |
-
#,
|
2271 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2272 |
msgstr ""
|
2273 |
|
2274 |
-
#: ../admin/
|
2275 |
-
|
2276 |
-
msgid "Rebuild gallery structure : %s / %s galleries"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
-
#: ../admin/
|
2280 |
-
|
2281 |
-
msgid "Rebuild album structure : %s / %s albums"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: ../admin/
|
2285 |
-
msgid "
|
2286 |
msgstr ""
|
2287 |
|
2288 |
-
#: ../admin/
|
2289 |
-
|
2290 |
-
|
2291 |
-
msgstr "Om deze instellingen te veranderen:"
|
2292 |
|
2293 |
-
#: ../admin/
|
2294 |
-
|
2295 |
-
|
2296 |
-
msgstr "Database leeggemaakt"
|
2297 |
|
2298 |
-
#: ../admin/
|
2299 |
-
|
2300 |
-
|
2301 |
-
|
|
|
2302 |
|
2303 |
-
#: ../admin/
|
2304 |
-
|
2305 |
-
|
2306 |
-
msgstr "Exporteer Gallerij"
|
2307 |
|
2308 |
-
#: ../admin/
|
2309 |
-
msgid "
|
2310 |
msgstr ""
|
2311 |
|
2312 |
-
#: ../admin/
|
2313 |
-
|
2314 |
-
|
2315 |
-
msgstr "Bestanden"
|
2316 |
|
2317 |
-
#: ../admin/
|
2318 |
-
msgid "
|
2319 |
msgstr ""
|
2320 |
|
2321 |
-
#: ../admin/
|
2322 |
-
|
2323 |
-
|
2324 |
-
msgstr "Selecteer Afbeeldingen"
|
2325 |
|
2326 |
-
#: ../admin/
|
2327 |
-
msgid "
|
2328 |
msgstr ""
|
2329 |
|
2330 |
-
#: ../admin/
|
2331 |
-
msgid "
|
2332 |
msgstr ""
|
2333 |
|
2334 |
-
#: ../admin/
|
2335 |
-
msgid "
|
2336 |
msgstr ""
|
2337 |
|
2338 |
-
#: ../admin/
|
2339 |
-
|
2340 |
-
|
2341 |
-
msgstr "Maak nieuw geheim RSS-adres"
|
2342 |
|
2343 |
-
#: ../admin/
|
2344 |
-
msgid "
|
2345 |
msgstr ""
|
2346 |
|
2347 |
-
#: ../admin/
|
2348 |
-
msgid "
|
2349 |
msgstr ""
|
2350 |
|
2351 |
-
#: ../admin/
|
2352 |
-
msgid "
|
2353 |
msgstr ""
|
2354 |
|
2355 |
-
#: ../admin/
|
2356 |
-
msgid ""
|
2357 |
-
"When activated, JavaScript is added to your site footer. Make sure that "
|
2358 |
-
"wp_footer is called in your theme."
|
2359 |
msgstr ""
|
2360 |
|
2361 |
-
#: ../admin/
|
2362 |
-
msgid "
|
2363 |
msgstr ""
|
2364 |
|
2365 |
-
#: ../admin/
|
2366 |
-
|
2367 |
-
|
2368 |
-
msgstr "Gebruik deze proxy"
|
2369 |
|
2370 |
-
#: ../admin/
|
2371 |
-
|
|
|
2372 |
msgstr ""
|
2373 |
|
2374 |
-
#: ../admin/
|
2375 |
-
|
2376 |
-
"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
-
#: ../admin/
|
2380 |
-
|
2381 |
-
|
2382 |
-
msgstr "Exporteer Gallerij"
|
2383 |
|
2384 |
-
#: ../admin/
|
2385 |
-
msgid "
|
|
|
|
|
2386 |
msgstr ""
|
2387 |
|
2388 |
-
#: ../admin/
|
2389 |
-
|
2390 |
-
|
2391 |
-
msgstr "Log nu wissen"
|
2392 |
|
2393 |
-
#: ../admin/
|
2394 |
-
|
|
|
|
|
2395 |
msgstr ""
|
2396 |
|
2397 |
-
#: ../admin/
|
2398 |
#, fuzzy
|
2399 |
-
msgid "
|
2400 |
-
msgstr "
|
2401 |
|
2402 |
-
#: ../admin/
|
2403 |
-
|
2404 |
-
|
2405 |
-
msgstr "Voeg URL toe"
|
2406 |
|
2407 |
-
#: ../admin/
|
2408 |
-
msgid "
|
2409 |
msgstr ""
|
2410 |
|
2411 |
-
#: ../admin/
|
2412 |
-
|
2413 |
-
|
2414 |
-
msgstr "Corrigeer de Afbeelding link"
|
2415 |
|
2416 |
-
#: ../admin/
|
2417 |
-
msgid "
|
2418 |
msgstr ""
|
2419 |
|
2420 |
-
#: ../admin/
|
2421 |
-
msgid "
|
2422 |
msgstr ""
|
2423 |
|
2424 |
-
#: ../admin/
|
2425 |
-
|
2426 |
-
|
2427 |
-
msgstr "...alleen als alle afbeeldingen succesvol gedownload zijn"
|
2428 |
|
2429 |
-
#: ../admin/
|
2430 |
-
|
2431 |
-
|
2432 |
-
msgstr "Instellingen"
|
2433 |
|
2434 |
-
#: ../admin/
|
2435 |
-
|
2436 |
-
|
2437 |
-
msgstr "Bekijk Afbeelding..."
|
2438 |
|
2439 |
-
#: ../admin/
|
2440 |
-
msgid "
|
2441 |
msgstr ""
|
2442 |
|
2443 |
-
#: ../admin/
|
2444 |
-
msgid "
|
2445 |
msgstr ""
|
2446 |
|
2447 |
-
#: ../admin/
|
2448 |
-
|
2449 |
-
|
2450 |
-
msgstr "Check automatisch voor updates"
|
2451 |
|
2452 |
-
#: ../admin/
|
2453 |
-
|
|
|
|
|
2454 |
msgstr ""
|
2455 |
|
2456 |
-
#: ../admin/
|
2457 |
-
|
2458 |
-
|
2459 |
-
|
|
|
|
|
|
|
2460 |
|
2461 |
-
#: ../admin/
|
2462 |
msgid ""
|
2463 |
-
"
|
2464 |
-
"
|
|
|
2465 |
msgstr ""
|
2466 |
|
2467 |
-
#: ../admin/
|
2468 |
-
|
2469 |
-
msgid "
|
2470 |
-
msgstr "
|
2471 |
|
2472 |
-
#: ../admin/
|
2473 |
-
|
2474 |
-
msgid "Thumbnail quality"
|
2475 |
-
msgstr "Thumbnail"
|
2476 |
-
|
2477 |
-
#: ../admin/settings.php:440
|
2478 |
-
msgid "Single picture"
|
2479 |
msgstr ""
|
2480 |
|
2481 |
-
#: ../admin/
|
2482 |
-
|
2483 |
-
|
2484 |
-
msgstr "Leeg Cache"
|
2485 |
|
2486 |
-
#: ../admin/
|
2487 |
#, fuzzy
|
2488 |
-
msgid "
|
2489 |
-
msgstr "
|
2490 |
|
2491 |
-
#: ../admin/
|
2492 |
-
|
2493 |
-
|
2494 |
-
msgstr "Exporteer Gallerij"
|
2495 |
|
2496 |
-
#: ../admin/
|
2497 |
-
msgid "
|
|
|
|
|
2498 |
msgstr ""
|
2499 |
|
2500 |
-
#: ../admin/
|
2501 |
-
|
2502 |
-
|
2503 |
-
msgstr "Aantal items per pagina"
|
2504 |
|
2505 |
-
#: ../admin/
|
2506 |
-
msgid "
|
2507 |
msgstr ""
|
2508 |
|
2509 |
-
#: ../admin/
|
2510 |
-
msgid "
|
2511 |
msgstr ""
|
2512 |
|
2513 |
-
#: ../admin/
|
2514 |
msgid ""
|
2515 |
-
"
|
2516 |
-
"
|
2517 |
msgstr ""
|
2518 |
|
2519 |
-
#: ../admin/
|
2520 |
-
|
2521 |
-
|
2522 |
-
msgstr "Activeer logging"
|
2523 |
|
2524 |
-
#: ../admin/
|
2525 |
-
|
2526 |
-
|
2527 |
-
msgstr "Geschiedenis tonen"
|
2528 |
|
2529 |
-
#: ../admin/
|
2530 |
-
|
2531 |
-
|
2532 |
-
"modes."
|
2533 |
msgstr ""
|
2534 |
|
2535 |
-
#: ../admin/
|
2536 |
-
|
2537 |
-
|
2538 |
-
msgstr "Geschiedenis tonen"
|
2539 |
|
2540 |
-
#: ../admin/
|
2541 |
-
|
2542 |
-
|
2543 |
-
|
|
|
|
|
2544 |
|
2545 |
-
#: ../admin/
|
2546 |
-
msgid "
|
2547 |
msgstr ""
|
2548 |
|
2549 |
-
#: ../admin/
|
2550 |
-
msgid "
|
2551 |
msgstr ""
|
2552 |
|
2553 |
-
#: ../admin/
|
2554 |
-
|
2555 |
-
|
2556 |
-
msgstr "Gevonden Afbeeldingen:"
|
2557 |
|
2558 |
-
#: ../admin/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2559 |
msgid ""
|
2560 |
-
"
|
2561 |
-
"
|
2562 |
msgstr ""
|
2563 |
|
2564 |
-
#: ../admin/
|
2565 |
-
|
|
|
2566 |
msgstr ""
|
2567 |
|
2568 |
-
#: ../admin/
|
2569 |
-
msgid "
|
2570 |
msgstr ""
|
2571 |
|
2572 |
-
#: ../admin/
|
2573 |
-
msgid "
|
2574 |
msgstr ""
|
2575 |
|
2576 |
-
#: ../admin/
|
2577 |
-
msgid "
|
2578 |
msgstr ""
|
2579 |
|
2580 |
-
#: ../admin/
|
2581 |
-
|
2582 |
-
|
2583 |
-
msgstr "Sorteer Lijst"
|
2584 |
|
2585 |
-
#: ../admin/
|
2586 |
-
|
2587 |
-
|
2588 |
-
msgstr "Thumbnails"
|
2589 |
|
2590 |
-
#: ../admin/
|
2591 |
-
msgid "
|
2592 |
msgstr ""
|
2593 |
|
2594 |
-
#: ../admin/
|
2595 |
-
|
2596 |
-
|
2597 |
-
|
|
|
|
|
|
|
|
|
2598 |
|
2599 |
-
#: ../admin/
|
2600 |
-
|
2601 |
-
|
2602 |
-
msgstr "Paginatitel : "
|
2603 |
|
2604 |
-
#: ../admin/
|
2605 |
-
|
2606 |
-
msgid "Date / Time"
|
2607 |
msgstr ""
|
2608 |
-
"Sla afbeeldingen op met originele datum/tijd van de server indien beschikbaar"
|
2609 |
|
2610 |
-
#: ../admin/
|
2611 |
-
|
2612 |
-
|
2613 |
-
msgstr "Sorteer Lijst"
|
2614 |
|
2615 |
-
#: ../admin/
|
2616 |
-
|
2617 |
-
|
2618 |
-
"
|
2619 |
-
"Thickbox effect will automatic added to your theme."
|
2620 |
msgstr ""
|
2621 |
|
2622 |
-
#: ../admin/
|
2623 |
-
msgid "
|
2624 |
msgstr ""
|
2625 |
|
2626 |
-
#: ../admin/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#, fuzzy
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: NextCellent\n"
|
5 |
+
"POT-Creation-Date: 2015-07-02 18:05+0200\n"
|
6 |
"PO-Revision-Date: 2015-01-09 16:11+0100\n"
|
7 |
"Last-Translator: Niko Strijbol <strijbol.niko@gmail.com>\n"
|
8 |
"Language-Team: \n"
|
10 |
"MIME-Version: 1.0\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Poedit 1.8.2\n"
|
14 |
"X-Poedit-KeywordsList: _n;__;_e;esc_attr_e;esc_html_e\n"
|
15 |
+
"X-Poedit-Basepath: .\n"
|
16 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
"X-Poedit-SearchPath-1: ..\n"
|
20 |
|
21 |
+
#: ../admin/ajax.php:358
|
22 |
+
msgid "You are not allowed to be here"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: ../admin/ajax.php:456
|
26 |
+
#, php-format
|
27 |
+
msgid "Could create image with %s x %s pixel"
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: ../admin/class-ngg-adder.php:34 ../admin/class-ngg-adder.php:48
|
31 |
+
#: ../admin/class-ngg-adder.php:62 ../admin/class-ngg-adder.php:75
|
32 |
+
#: ../admin/class-ngg-album-manager.php:82
|
33 |
+
#: ../admin/class-ngg-album-manager.php:119
|
34 |
+
#: ../admin/class-ngg-album-manager.php:143 ../admin/manage/actions.php:12
|
|
|
|
|
35 |
msgid "Cheatin’ uh?"
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: ../admin/class-ngg-adder.php:54 ../admin/class-ngg-adder.php:91
|
39 |
msgid "Upload failed!"
|
40 |
msgstr ""
|
41 |
|
42 |
+
#: ../admin/class-ngg-adder.php:81
|
43 |
msgid "Upload failed! "
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: ../admin/class-ngg-adder.php:88 ../admin/class-ngg-adder.php:335
|
47 |
+
#: ../admin/class-ngg-admin-launcher.php:298
|
48 |
msgid "You didn't select a gallery!"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: ../admin/class-ngg-adder.php:162 ../admin/class-ngg-admin-launcher.php:65
|
52 |
+
#: ../admin/class-ngg-admin-launcher.php:66
|
53 |
msgid "Add Gallery / Images"
|
54 |
+
msgstr ""
|
55 |
|
56 |
+
#: ../admin/class-ngg-adder.php:199
|
|
|
57 |
msgid "Image Files"
|
58 |
+
msgstr ""
|
59 |
|
60 |
+
#: ../admin/class-ngg-adder.php:224
|
61 |
#, fuzzy
|
62 |
msgid "remove"
|
63 |
msgstr "Verwijder overgeslagen files en fouten uit de ljist"
|
64 |
|
65 |
+
#: ../admin/class-ngg-adder.php:225 ../admin/class-ngg-adder.php:488
|
66 |
msgid "Browse..."
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: ../admin/class-ngg-adder.php:226 ../admin/class-ngg-adder.php:264
|
70 |
+
#: ../admin/class-ngg-adder.php:506 ../admin/class-ngg-adder.php:557
|
|
|
71 |
msgid "Upload images"
|
72 |
+
msgstr ""
|
73 |
+
|
74 |
+
#: ../admin/class-ngg-adder.php:307
|
75 |
+
#: ../admin/manage/class-ngg-image-manager.php:86
|
76 |
+
msgid ""
|
77 |
+
"This will change folder and file names (e.g. remove spaces, special "
|
78 |
+
"characters, ...)"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: ../admin/class-ngg-adder.php:309
|
82 |
+
#: ../admin/manage/class-ngg-image-manager.php:88
|
83 |
+
msgid "You will need to update your URLs if you link directly to the images."
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#: ../admin/class-ngg-adder.php:311
|
87 |
+
#: ../admin/manage/class-ngg-image-manager.php:90
|
88 |
+
msgid "Press OK to proceed, and Cancel to stop."
|
89 |
+
msgstr ""
|
90 |
|
91 |
+
#: ../admin/class-ngg-adder.php:343 ../admin/class-ngg-adder.php:351
|
92 |
msgid "You didn't select a file!"
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: ../admin/class-ngg-adder.php:370 ../admin/class-ngg-admin-launcher.php:479
|
|
|
96 |
msgid "New gallery"
|
97 |
+
msgstr ""
|
98 |
|
99 |
+
#: ../admin/class-ngg-adder.php:373 ../admin/class-ngg-admin-launcher.php:487
|
100 |
+
#: ../admin/class-ngg-admin-launcher.php:524
|
101 |
+
#: ../admin/class-ngg-admin-launcher.php:569
|
102 |
+
#: ../admin/class-ngg-options.php:205
|
103 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:157
|
104 |
#, fuzzy
|
105 |
msgid "Images"
|
106 |
msgstr "Scan URL op afbeeldingen"
|
107 |
|
108 |
+
#: ../admin/class-ngg-adder.php:376 ../admin/class-ngg-admin-launcher.php:491
|
|
|
109 |
msgid "ZIP file"
|
110 |
+
msgstr ""
|
111 |
|
112 |
+
#: ../admin/class-ngg-adder.php:379 ../admin/class-ngg-adder.php:497
|
113 |
+
#: ../admin/class-ngg-admin-launcher.php:495
|
|
|
114 |
msgid "Import folder"
|
115 |
+
msgstr ""
|
116 |
|
117 |
+
#: ../admin/class-ngg-adder.php:390
|
118 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:67
|
119 |
msgid "Add a new gallery"
|
120 |
+
msgstr ""
|
121 |
|
122 |
+
#: ../admin/class-ngg-adder.php:395 ../admin/class-ngg-album-manager.php:580
|
123 |
+
#: ../admin/manage/actions.php:128 ../admin/manage/actions.php:156
|
124 |
+
#: ../admin/manage/actions.php:181 ../admin/manage/actions.php:203
|
125 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:83
|
126 |
#, fuzzy
|
127 |
msgid "Name"
|
128 |
msgstr "URL/Filename:"
|
129 |
|
130 |
+
#: ../admin/class-ngg-adder.php:400
|
131 |
+
#, php-format
|
132 |
+
msgid "Create a new, empty gallery in the folder <strong>%s</strong>"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: ../admin/class-ngg-adder.php:403
|
136 |
+
#, php-format
|
137 |
+
msgid "Allowed characters for file and folder names are \"%s\"."
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: ../admin/class-ngg-adder.php:408 ../admin/class-ngg-style.php:294
|
141 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:154
|
142 |
+
#: ../admin/manage/class-ngg-image-list-table.php:187
|
143 |
+
#: ../admin/manage/class-ngg-image-list-table.php:232
|
144 |
+
#: ../admin/manage/class-ngg-image-manager.php:174
|
145 |
+
#: ../admin/media-upload.php:225
|
146 |
msgid "Description"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: ../admin/class-ngg-adder.php:412
|
150 |
msgid "Add a description. This is optional and can be changed later."
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: ../admin/class-ngg-adder.php:419
|
|
|
154 |
msgid "Add gallery"
|
155 |
+
msgstr ""
|
156 |
|
157 |
+
#: ../admin/class-ngg-adder.php:428
|
|
|
158 |
msgid "Upload a ZIP File"
|
159 |
+
msgstr ""
|
160 |
|
161 |
+
#: ../admin/class-ngg-adder.php:433
|
|
|
162 |
msgid "Select ZIP file"
|
163 |
+
msgstr ""
|
164 |
|
165 |
+
#: ../admin/class-ngg-adder.php:437
|
166 |
msgid "Upload a ZIP file with images"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: ../admin/class-ngg-adder.php:443
|
|
|
170 |
msgid "or enter URL"
|
171 |
+
msgstr ""
|
172 |
|
173 |
+
#: ../admin/class-ngg-adder.php:447
|
174 |
msgid "Import a ZIP file from a URL"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: ../admin/class-ngg-adder.php:453 ../admin/class-ngg-adder.php:512
|
178 |
msgid "in to"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: ../admin/class-ngg-adder.php:456
|
|
|
182 |
msgid "a new gallery"
|
|
|
|
|
|
|
|
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: ../admin/class-ngg-adder.php:461
|
186 |
+
#, php-format
|
187 |
+
msgid "Note: the upload limit on your server is <strong>%s MB</strong>."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: ../admin/class-ngg-adder.php:471
|
191 |
+
msgid "Start upload"
|
|
|
|
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: ../admin/class-ngg-adder.php:480
|
195 |
+
msgid "Import an image folder"
|
|
|
|
|
196 |
msgstr ""
|
197 |
|
198 |
+
#: ../admin/class-ngg-adder.php:485
|
199 |
+
msgid "Import from server:"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: ../admin/class-ngg-adder.php:491
|
203 |
+
msgid "Note: you can change the default path in the gallery settings"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: ../admin/class-ngg-adder.php:514
|
|
|
207 |
msgid "Choose gallery"
|
208 |
+
msgstr ""
|
209 |
|
210 |
+
#: ../admin/class-ngg-adder.php:530
|
211 |
msgid "Drop your files in this window"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: ../admin/class-ngg-adder.php:532
|
215 |
msgid "Or"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: ../admin/class-ngg-adder.php:534
|
|
|
219 |
msgid "Select Files"
|
220 |
+
msgstr ""
|
221 |
|
222 |
+
#: ../admin/class-ngg-adder.php:553
|
223 |
msgid "Click here to use the browser upload instead"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: ../admin/class-ngg-adder.php:553
|
|
|
227 |
msgid "Use basic uploader"
|
228 |
+
msgstr ""
|
229 |
|
230 |
+
#: ../admin/class-ngg-adder.php:555
|
|
|
231 |
msgid "Advanced uploading"
|
232 |
+
msgstr ""
|
233 |
|
234 |
+
#: ../admin/class-ngg-adder.php:555
|
|
|
235 |
msgid "Use advanced uploader"
|
236 |
+
msgstr ""
|
237 |
|
238 |
+
#: ../admin/class-ngg-adder.php:560
|
239 |
#, php-format
|
240 |
msgid "Your images will be rescaled to max width %1$dpx or max height %2$dpx."
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: ../admin/class-ngg-admin-launcher.php:58
|
244 |
+
#: ../admin/class-ngg-admin-launcher.php:69
|
245 |
+
#: ../admin/class-ngg-admin-launcher.php:107
|
246 |
+
#: ../admin/class-ngg-admin-launcher.php:419
|
247 |
+
#: ../admin/class-ngg-admin-launcher.php:515
|
248 |
+
#: ../admin/manage/class-ngg-gallery-manager.php:33
|
249 |
msgid "Galleries"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: ../admin/class-ngg-admin-launcher.php:61 ../nggallery.php:723
|
253 |
+
#: ../nggfunctions.php:966
|
254 |
msgid "Overview"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: ../admin/class-ngg-admin-launcher.php:73
|
258 |
+
#: ../admin/class-ngg-album-manager.php:286 ../nggallery.php:429
|
259 |
msgid "Albums"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: ../admin/class-ngg-admin-launcher.php:77 ../admin/class-ngg-options.php:329
|
263 |
+
#: ../admin/class-ngg-tag-manager.php:102
|
264 |
+
#: ../admin/manage/class-ngg-image-list-table.php:233 ../lib/meta.php:459
|
265 |
+
#: ../nggallery.php:437
|
266 |
msgid "Tags"
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: ../admin/class-ngg-admin-launcher.php:81 ../admin/class-ngg-options.php:116
|
270 |
+
#: ../nggallery.php:445
|
271 |
#, fuzzy
|
272 |
msgid "Settings"
|
273 |
msgstr "Instellingen"
|
274 |
|
275 |
+
#: ../admin/class-ngg-admin-launcher.php:86 ../nggallery.php:453
|
276 |
msgid "Style"
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: ../admin/class-ngg-admin-launcher.php:91
|
280 |
msgid "Roles"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: ../admin/class-ngg-admin-launcher.php:97
|
284 |
+
#: ../admin/class-ngg-admin-launcher.php:114
|
|
|
|
|
|
|
|
|
285 |
msgid "Reset / Uninstall"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: ../admin/class-ngg-admin-launcher.php:110
|
|
|
289 |
msgid "Network settings"
|
290 |
+
msgstr ""
|
291 |
|
292 |
+
#: ../admin/class-ngg-admin-launcher.php:271
|
293 |
msgid "You do not have the correct permission"
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: ../admin/class-ngg-admin-launcher.php:272
|
|
|
297 |
msgid "Unexpected Error"
|
298 |
+
msgstr ""
|
299 |
|
300 |
+
#: ../admin/class-ngg-admin-launcher.php:273
|
301 |
msgid "A failure occurred"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: ../admin/class-ngg-admin-launcher.php:278
|
305 |
msgid "You have attempted to queue too many files."
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: ../admin/class-ngg-admin-launcher.php:279
|
309 |
msgid "This file exceeds the maximum upload size for this site."
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: ../admin/class-ngg-admin-launcher.php:280
|
313 |
msgid "This file is empty. Please try another."
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: ../admin/class-ngg-admin-launcher.php:281
|
317 |
msgid "This file type is not allowed. Please try another."
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: ../admin/class-ngg-admin-launcher.php:282
|
321 |
msgid "This file is not an image. Please try another."
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: ../admin/class-ngg-admin-launcher.php:283
|
325 |
msgid "Memory exceeded. Please try another smaller file."
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: ../admin/class-ngg-admin-launcher.php:284
|
329 |
msgid "This is larger than the maximum size. Please try another."
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: ../admin/class-ngg-admin-launcher.php:285
|
333 |
msgid "An error occurred in the upload. Please try again later."
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: ../admin/class-ngg-admin-launcher.php:286
|
337 |
msgid ""
|
338 |
"There was a configuration error. Please contact the server administrator."
|
339 |
msgstr ""
|
340 |
|
341 |
+
#: ../admin/class-ngg-admin-launcher.php:287
|
342 |
msgid "You may only upload 1 file."
|
343 |
msgstr ""
|
344 |
|
345 |
+
#: ../admin/class-ngg-admin-launcher.php:288
|
|
|
346 |
msgid "HTTP error."
|
347 |
+
msgstr ""
|
348 |
|
349 |
+
#: ../admin/class-ngg-admin-launcher.php:289
|
350 |
msgid "Upload failed."
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: ../admin/class-ngg-admin-launcher.php:290
|
|
|
354 |
msgid "IO error."
|
355 |
+
msgstr ""
|
356 |
|
357 |
+
#: ../admin/class-ngg-admin-launcher.php:291
|
|
|
358 |
msgid "Security error."
|
359 |
+
msgstr ""
|
360 |
|
361 |
+
#: ../admin/class-ngg-admin-launcher.php:292
|
|
|
362 |
msgid "File canceled."
|
363 |
+
msgstr ""
|
364 |
|
365 |
+
#: ../admin/class-ngg-admin-launcher.php:293
|
|
|
366 |
msgid "Upload stopped."
|
367 |
+
msgstr ""
|
368 |
|
369 |
+
#: ../admin/class-ngg-admin-launcher.php:294
|
370 |
msgid "Dismiss"
|
371 |
msgstr ""
|
372 |
|
373 |
+
#: ../admin/class-ngg-admin-launcher.php:295
|
374 |
msgid "Crunching…"
|
375 |
msgstr ""
|
376 |
|
377 |
+
#: ../admin/class-ngg-admin-launcher.php:296
|
378 |
msgid "moved to the trash."
|
379 |
msgstr ""
|
380 |
|
381 |
+
#: ../admin/class-ngg-admin-launcher.php:297
|
382 |
#, php-format
|
383 |
msgid "“%s” has failed to upload due to an error"
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: ../admin/class-ngg-admin-launcher.php:321 ../nggallery.php:488
|
387 |
msgid "L O A D I N G"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: ../admin/class-ngg-admin-launcher.php:322 ../nggallery.php:489
|
|
|
391 |
msgid "Click to Close"
|
392 |
+
msgstr ""
|
393 |
|
394 |
+
#: ../admin/class-ngg-admin-launcher.php:424
|
395 |
msgid ""
|
396 |
"Welcome to your NextCellent Dashboard! This screen gives you all kinds of "
|
397 |
"information about NextCellent at glance. You can get help for any screen by "
|
398 |
"clicking the Help tab in the upper corner."
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: ../admin/class-ngg-admin-launcher.php:433
|
402 |
msgid "The boxes on your overview screen are:"
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: ../admin/class-ngg-admin-launcher.php:434
|
406 |
+
#: ../admin/class-ngg-overview.php:13
|
407 |
msgid "At a Glance"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: ../admin/class-ngg-admin-launcher.php:435
|
411 |
msgid ""
|
412 |
"Shows some general information about your site, such as the number of "
|
413 |
"pictures, albums and galleries."
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: ../admin/class-ngg-admin-launcher.php:437
|
417 |
+
#: ../admin/class-ngg-overview.php:21
|
418 |
msgid "Latest News"
|
419 |
msgstr ""
|
420 |
|
421 |
+
#: ../admin/class-ngg-admin-launcher.php:438
|
422 |
msgid "The latest NextCellent news."
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: ../admin/class-ngg-admin-launcher.php:440
|
426 |
+
#: ../admin/class-ngg-overview.php:34
|
427 |
msgid "Related plugins"
|
428 |
msgstr ""
|
429 |
|
430 |
+
#: ../admin/class-ngg-admin-launcher.php:441
|
431 |
msgid "Shows plugins that extend NextCellent."
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: ../admin/class-ngg-admin-launcher.php:442
|
435 |
msgid "Pay attention"
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: ../admin/class-ngg-admin-launcher.php:443
|
439 |
#, php-format
|
440 |
msgid ""
|
441 |
"third parties plugins that are compatible with NGG may not be "
|
442 |
"100% compatible with NextCellent Gallery!"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: ../admin/class-ngg-admin-launcher.php:446
|
446 |
+
#: ../admin/class-ngg-overview.php:17
|
447 |
msgid "Help me help YOU!"
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: ../admin/class-ngg-admin-launcher.php:447
|
451 |
msgid "Shows general information about he plugin and some links."
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: ../admin/class-ngg-admin-launcher.php:450
|
|
|
455 |
msgid "Translation"
|
456 |
+
msgstr ""
|
457 |
|
458 |
+
#: ../admin/class-ngg-admin-launcher.php:451
|
459 |
msgid "View information about the current translation."
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: ../admin/class-ngg-admin-launcher.php:454
|
463 |
+
#: ../admin/class-ngg-overview.php:30
|
464 |
msgid "Server Settings"
|
465 |
+
msgstr ""
|
466 |
|
467 |
+
#: ../admin/class-ngg-admin-launcher.php:455
|
468 |
msgid "Show all the server settings!."
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: ../admin/class-ngg-admin-launcher.php:457
|
472 |
+
#: ../admin/class-ngg-overview.php:26
|
473 |
msgid "Plugin Check"
|
474 |
+
msgstr ""
|
475 |
|
476 |
+
#: ../admin/class-ngg-admin-launcher.php:458
|
477 |
msgid "Check if there are known errors in your installation."
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: ../admin/class-ngg-admin-launcher.php:476
|
481 |
msgid "On this page you can add galleries and pictures to those galleries."
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: ../admin/class-ngg-admin-launcher.php:480
|
485 |
msgid "Add new galleries to NextCellent."
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: ../admin/class-ngg-admin-launcher.php:484
|
489 |
msgid "You must add a gallery before adding images!"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: ../admin/class-ngg-admin-launcher.php:488
|
493 |
msgid "Add new images to a gallery."
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: ../admin/class-ngg-admin-launcher.php:492
|
497 |
msgid "Add images from a ZIP file."
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: ../admin/class-ngg-admin-launcher.php:496
|
501 |
msgid "Import a folder from the server as a new gallery."
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: ../admin/class-ngg-admin-launcher.php:533
|
505 |
msgid "Manage your images and galleries."
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: ../admin/class-ngg-admin-launcher.php:542
|
509 |
msgid "Organize your galleries into albums."
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: ../admin/class-ngg-admin-launcher.php:543
|
513 |
msgid ""
|
514 |
"First select an album from the dropdown and then drag the galleries you want "
|
515 |
"to add or remove from the selected album."
|
516 |
msgstr ""
|
517 |
|
518 |
+
#: ../admin/class-ngg-admin-launcher.php:553
|
519 |
msgid "Organize your pictures with tags."
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: ../admin/class-ngg-admin-launcher.php:554
|
523 |
msgid "Rename, delete and edit tags. Use the rename function to merge tags."
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: ../admin/class-ngg-admin-launcher.php:564
|
527 |
msgid ""
|
528 |
"Edit all of NextCellent's options. The options are sorted in multiple "
|
529 |
"categories."
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: ../admin/class-ngg-admin-launcher.php:566
|
533 |
+
#: ../admin/class-ngg-options.php:204
|
534 |
msgid "General"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: ../admin/class-ngg-admin-launcher.php:567
|
538 |
msgid ""
|
539 |
"General NextCellent options. Contains options for permalinks and related "
|
540 |
"images."
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: ../admin/class-ngg-admin-launcher.php:570
|
544 |
msgid "All image-related options. Also contains options for thumbnails."
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: ../admin/class-ngg-admin-launcher.php:572
|
548 |
+
#: ../admin/class-ngg-options.php:206 ../admin/class-ngg-overview.php:59
|
549 |
+
#: ../admin/functions.php:213 ../admin/functions.php:375
|
550 |
+
#: ../admin/manage/class-ngg-image-manager.php:151
|
551 |
+
#: ../admin/tinymce/window.php:117 ../admin/tinymce/window.php:150
|
552 |
+
#: ../admin/tinymce/window.php:274 ../admin/tinymce/window.php:395
|
553 |
+
#: ../admin/tinymce/window.php:446 ../lib/rewrite.php:220
|
554 |
+
#: ../lib/rewrite.php:229 ../nggallery.php:421
|
555 |
#, fuzzy
|
556 |
msgid "Gallery"
|
557 |
+
msgstr "Galerij \"<a href=\"{gallery_link}\">{gallery_title}</a>\" gemaakt"
|
558 |
|
559 |
+
#: ../admin/class-ngg-admin-launcher.php:573
|
560 |
msgid ""
|
561 |
"Everything about galleries. From sorting options to the number of images, "
|
562 |
"it's all in here."
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: ../admin/class-ngg-admin-launcher.php:575
|
566 |
+
#: ../admin/class-ngg-options.php:207 ../admin/class-ngg-options.php:578
|
567 |
msgid "Effects"
|
568 |
msgstr ""
|
569 |
|
570 |
+
#: ../admin/class-ngg-admin-launcher.php:576
|
571 |
msgid "Make your gallery look beautiful."
|
572 |
msgstr ""
|
573 |
|
574 |
+
#: ../admin/class-ngg-admin-launcher.php:578
|
575 |
+
#: ../admin/class-ngg-options.php:208 ../admin/class-ngg-options.php:625
|
576 |
+
#: ../admin/tinymce/window.php:326
|
577 |
msgid "Watermark"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: ../admin/class-ngg-admin-launcher.php:579
|
581 |
msgid "Who doesn't want theft-proof images?"
|
582 |
msgstr ""
|
583 |
|
584 |
+
#: ../admin/class-ngg-admin-launcher.php:581
|
585 |
+
#: ../admin/class-ngg-options.php:209 ../admin/class-ngg-options.php:462
|
586 |
+
#: ../admin/class-ngg-options.php:488 ../admin/class-ngg-options.php:777
|
587 |
+
#: ../admin/tinymce/window.php:156 ../lib/rewrite.php:218
|
588 |
+
#: ../widgets/class-ngg-slideshow-widget.php:28
|
589 |
+
#: ../widgets/class-ngg-slideshow-widget.php:93
|
590 |
msgid "Slideshow"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: ../admin/class-ngg-admin-launcher.php:582
|
594 |
msgid "Edit options for the slideshow."
|
595 |
msgstr ""
|
596 |
|
597 |
+
#: ../admin/class-ngg-admin-launcher.php:583
|
598 |
msgid "Don't forget to press save!"
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: ../admin/class-ngg-admin-launcher.php:592
|
602 |
msgid "You can edit the css file to adjust how your gallery looks."
|
603 |
msgstr ""
|
604 |
|
605 |
+
#: ../admin/class-ngg-admin-launcher.php:594
|
606 |
msgid ""
|
607 |
"When you save an edited file, NextCellent automatically saves it as a copy "
|
608 |
"in the folder ngg_styles. This protects your changes from upgrades."
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: ../admin/class-ngg-admin-launcher.php:604
|
612 |
msgid ""
|
613 |
"You can assign the lowest user role that has access to a certain feature. "
|
614 |
"Needless to say, all greater user roles will also have access to that "
|
615 |
"feature."
|
616 |
msgstr ""
|
617 |
|
618 |
+
#: ../admin/class-ngg-admin-launcher.php:606
|
619 |
msgid ""
|
620 |
"NextCellent also works with various plugins that extend the default roles "
|
621 |
"capabilities."
|
622 |
msgstr ""
|
623 |
|
624 |
+
#: ../admin/class-ngg-admin-launcher.php:616
|
625 |
msgid ""
|
626 |
"If 'someone' messed with your settings (yeah, definitely not you), you can "
|
627 |
"reset them here."
|
628 |
msgstr ""
|
629 |
|
630 |
+
#: ../admin/class-ngg-admin-launcher.php:618
|
631 |
msgid "Attention!"
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: ../admin/class-ngg-admin-launcher.php:619
|
635 |
msgid ""
|
636 |
"You should not use the Uninstall Plugin button, unless you know what you're "
|
637 |
"doing! It should never be necessary to press it."
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: ../admin/class-ngg-admin-launcher.php:632
|
|
|
641 |
msgid "For more information:"
|
642 |
+
msgstr ""
|
643 |
|
644 |
+
#: ../admin/class-ngg-admin-launcher.php:633
|
645 |
msgid "Support Forums"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: ../admin/class-ngg-admin-launcher.php:635
|
|
|
649 |
msgid "Source Code"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
650 |
msgstr ""
|
651 |
|
652 |
+
#: ../admin/class-ngg-album-manager.php:92
|
653 |
+
#: ../admin/class-ngg-album-manager.php:112
|
654 |
+
#: ../admin/class-ngg-album-manager.php:161
|
655 |
msgid "Updated successfully"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: ../admin/class-ngg-album-manager.php:131
|
659 |
msgid "Album deleted"
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: ../admin/class-ngg-album-manager.php:277 ../admin/class-ngg-roles.php:47
|
663 |
msgid "Edit Album"
|
664 |
msgstr ""
|
665 |
|
666 |
+
#: ../admin/class-ngg-album-manager.php:294
|
667 |
+
#: ../admin/class-ngg-album-manager.php:352
|
668 |
msgid "Select album"
|
669 |
+
msgstr ""
|
670 |
|
671 |
+
#: ../admin/class-ngg-album-manager.php:296
|
|
|
672 |
msgid "No album selected"
|
673 |
+
msgstr ""
|
674 |
|
675 |
+
#: ../admin/class-ngg-album-manager.php:307
|
|
|
|
|
676 |
msgid "Update"
|
677 |
msgstr ""
|
|
|
|
|
678 |
|
679 |
+
#: ../admin/class-ngg-album-manager.php:310
|
680 |
msgid "Edit album"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: ../admin/class-ngg-album-manager.php:314
|
684 |
+
#: ../admin/class-ngg-tag-manager.php:229
|
685 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:210
|
686 |
+
#: ../admin/manage/class-ngg-image-list-table.php:285
|
687 |
#, fuzzy
|
688 |
msgid "Delete"
|
689 |
msgstr "Verwijder de logfile?"
|
690 |
|
691 |
+
#: ../admin/class-ngg-album-manager.php:320
|
|
|
692 |
msgid "Add new album"
|
693 |
+
msgstr ""
|
694 |
|
695 |
+
#: ../admin/class-ngg-album-manager.php:322
|
696 |
#, fuzzy
|
697 |
msgid "Add"
|
698 |
msgstr "Voeg URL toe"
|
699 |
|
700 |
+
#: ../admin/class-ngg-album-manager.php:334
|
701 |
msgid "Show / hide used galleries"
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: ../admin/class-ngg-album-manager.php:335
|
|
|
705 |
msgid "[Show all]"
|
706 |
+
msgstr ""
|
707 |
|
708 |
+
#: ../admin/class-ngg-album-manager.php:336
|
709 |
msgid "Maximize the widget content"
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: ../admin/class-ngg-album-manager.php:337
|
713 |
msgid "[Maximize]"
|
714 |
msgstr ""
|
715 |
|
716 |
+
#: ../admin/class-ngg-album-manager.php:338
|
717 |
msgid "Minimize the widget content"
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: ../admin/class-ngg-album-manager.php:339
|
721 |
msgid "[Minimize]"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: ../admin/class-ngg-album-manager.php:341
|
725 |
msgid ""
|
726 |
"After you create and select a album, you can drag and drop a gallery or "
|
727 |
"another album into your new album below"
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: ../admin/class-ngg-album-manager.php:368
|
|
|
731 |
msgid "Select gallery"
|
732 |
+
msgstr ""
|
733 |
|
734 |
+
#: ../admin/class-ngg-album-manager.php:398
|
735 |
msgid "Album ID"
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: ../admin/class-ngg-album-manager.php:412
|
|
|
739 |
msgid "No album selected!"
|
740 |
+
msgstr ""
|
741 |
|
742 |
+
#: ../admin/class-ngg-album-manager.php:436
|
|
|
743 |
msgid "Album name:"
|
744 |
+
msgstr ""
|
745 |
|
746 |
+
#: ../admin/class-ngg-album-manager.php:442
|
747 |
msgid "Album description:"
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: ../admin/class-ngg-album-manager.php:448
|
|
|
751 |
msgid "Select a preview image:"
|
752 |
+
msgstr ""
|
753 |
|
754 |
+
#: ../admin/class-ngg-album-manager.php:451
|
755 |
+
#: ../admin/class-ngg-album-manager.php:454
|
756 |
msgid "No picture"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: ../admin/class-ngg-album-manager.php:466
|
|
|
760 |
msgid "Page Link to"
|
761 |
+
msgstr ""
|
762 |
|
763 |
+
#: ../admin/class-ngg-album-manager.php:468
|
764 |
+
#: ../admin/manage/class-ngg-image-manager.php:168
|
765 |
msgid "Not linked"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: ../admin/class-ngg-album-manager.php:482
|
769 |
+
#: ../admin/manage/class-ngg-manager.php:308
|
|
|
|
|
770 |
#, fuzzy
|
771 |
msgid "OK"
|
772 |
msgstr "OK"
|
773 |
|
774 |
+
#: ../admin/class-ngg-album-manager.php:485
|
775 |
+
#: ../admin/manage/class-ngg-manager.php:300 ../admin/tinymce/window.php:469
|
|
|
|
|
|
|
776 |
#, fuzzy
|
777 |
msgid "Cancel"
|
778 |
msgstr "Stoppen"
|
779 |
|
780 |
+
#: ../admin/class-ngg-album-manager.php:582
|
781 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:153
|
782 |
+
#: ../admin/manage/class-ngg-image-manager.php:160 ../lib/meta.php:457
|
783 |
+
#: ../widgets/class-ngg-media-rss-widget.php:90
|
784 |
#, fuzzy
|
785 |
msgid "Title"
|
786 |
+
msgstr "Galerij \"{gallery_title}\" gemaakt"
|
787 |
|
788 |
+
#: ../admin/class-ngg-album-manager.php:584 ../lib/rewrite.php:232
|
789 |
#, fuzzy
|
790 |
msgid "Page"
|
791 |
msgstr "Kan webpagina niet downloaden:"
|
792 |
|
793 |
+
#: ../admin/class-ngg-installer.php:29
|
794 |
+
msgid "Sorry, NextCellent Gallery works only with a role called administrator"
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: ../admin/class-ngg-installer.php:112
|
798 |
+
msgid ""
|
799 |
+
"NextCellent Gallery : Tables could not created, please check your database "
|
800 |
+
"settings"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: ../admin/class-ngg-installer.php:172
|
804 |
+
msgid "[Show as slideshow]"
|
805 |
+
msgstr ""
|
|
|
806 |
|
807 |
+
#: ../admin/class-ngg-installer.php:173
|
808 |
+
msgid "[Show picture list]"
|
809 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
810 |
|
811 |
+
#: ../admin/class-ngg-options.php:72
|
812 |
+
msgid "Settings updated successfully"
|
813 |
msgstr ""
|
814 |
|
815 |
+
#: ../admin/class-ngg-options.php:90
|
816 |
+
msgid "Cache cleared"
|
817 |
msgstr ""
|
818 |
|
819 |
+
#: ../admin/class-ngg-options.php:222
|
820 |
+
msgid "General settings"
|
821 |
msgstr ""
|
822 |
|
823 |
+
#: ../admin/class-ngg-options.php:228 ../admin/wpmu.php:85
|
824 |
+
msgid "Gallery path"
|
825 |
+
msgstr ""
|
|
|
|
|
826 |
|
827 |
+
#: ../admin/class-ngg-options.php:231
|
828 |
+
msgid "This is the default path for all galleries"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: ../admin/class-ngg-options.php:235 ../admin/wpmu.php:95
|
832 |
+
msgid "Silent database upgrade"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: ../admin/class-ngg-options.php:238 ../admin/wpmu.php:98
|
836 |
+
msgid "Update the database without notice."
|
837 |
+
msgstr ""
|
|
|
838 |
|
839 |
+
#: ../admin/class-ngg-options.php:242
|
840 |
+
msgid "Image files"
|
841 |
msgstr ""
|
842 |
|
843 |
+
#: ../admin/class-ngg-options.php:246
|
844 |
+
msgid "Delete files when removing a gallery from the database"
|
|
|
|
|
|
|
845 |
msgstr ""
|
846 |
|
847 |
+
#: ../admin/class-ngg-options.php:251
|
848 |
+
msgid "Select graphic library"
|
849 |
+
msgstr ""
|
|
|
|
|
850 |
|
851 |
+
#: ../admin/class-ngg-options.php:256
|
852 |
+
msgid "GD Library"
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: ../admin/class-ngg-options.php:260
|
856 |
+
msgid "ImageMagick (Experimental)"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: ../admin/class-ngg-options.php:264
|
860 |
+
msgid "Path to the ImageMagick library:"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: ../admin/class-ngg-options.php:270
|
864 |
+
msgid "Media RSS feed"
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: ../admin/class-ngg-options.php:273
|
868 |
+
msgid "Add a RSS feed to you blog header. Useful for CoolIris/PicLens"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: ../admin/class-ngg-options.php:277
|
872 |
+
msgid "PicLens/CoolIris"
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: ../admin/class-ngg-options.php:280
|
876 |
+
msgid "Include support for PicLens and CoolIris"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: ../admin/class-ngg-options.php:281
|
880 |
+
msgid ""
|
881 |
+
"When activated, JavaScript is added to your site footer. Make sure that "
|
882 |
+
"wp_footer is called in your theme."
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: ../admin/class-ngg-options.php:285
|
886 |
+
msgid "Permalinks"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: ../admin/class-ngg-options.php:288
|
890 |
+
msgid "Use permalinks"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: ../admin/class-ngg-options.php:291
|
894 |
+
msgid "Adds a static link to all images"
|
|
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: ../admin/class-ngg-options.php:292
|
898 |
+
msgid ""
|
899 |
+
"When activating this option, you need to update your permalink structure once"
|
|
|
|
|
|
|
|
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: ../admin/class-ngg-options.php:296
|
903 |
+
msgid "Gallery slug:"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: ../admin/class-ngg-options.php:302
|
907 |
+
msgid "Recreate URLs"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: ../admin/class-ngg-options.php:304
|
911 |
+
msgid "Start now »"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: ../admin/class-ngg-options.php:305
|
915 |
+
msgid "If you've changed these settings, you'll have to recreate the URLs."
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: ../admin/class-ngg-options.php:309
|
919 |
+
msgid "Related images"
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: ../admin/class-ngg-options.php:312
|
923 |
+
msgid "Add related images"
|
|
|
|
|
|
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: ../admin/class-ngg-options.php:315
|
927 |
+
msgid "This will add related images to every post"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: ../admin/class-ngg-options.php:319
|
931 |
#, fuzzy
|
932 |
+
msgid "Match with"
|
933 |
+
msgstr "Er kwamen geen geschiedenisevents overeen met je zoekopdracht"
|
934 |
|
935 |
+
#: ../admin/class-ngg-options.php:324
|
936 |
+
msgid "Categories"
|
937 |
msgstr ""
|
938 |
|
939 |
+
#: ../admin/class-ngg-options.php:335
|
940 |
+
msgid "Max. number of images"
|
941 |
+
msgstr ""
|
|
|
942 |
|
943 |
+
#: ../admin/class-ngg-options.php:338
|
944 |
+
msgid "0 will show all images"
|
|
|
|
|
|
|
945 |
msgstr ""
|
946 |
|
947 |
+
#: ../admin/class-ngg-options.php:342 ../admin/class-ngg-options.php:422
|
948 |
+
#: ../admin/class-ngg-options.php:568 ../admin/class-ngg-options.php:609
|
949 |
+
#: ../admin/class-ngg-options.php:727 ../admin/class-ngg-options.php:886
|
950 |
+
#: ../admin/manage/class-ngg-image-list-table.php:95
|
951 |
+
#: ../admin/manage/class-ngg-image-manager.php:245 ../admin/wpmu.php:149
|
952 |
+
#, fuzzy
|
953 |
+
msgid "Save Changes"
|
954 |
+
msgstr "Save Wijzigingen"
|
955 |
+
|
956 |
+
#: ../admin/class-ngg-options.php:352
|
957 |
+
msgid "Image settings"
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: ../admin/class-ngg-options.php:358
|
961 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:213
|
962 |
+
#: ../admin/manage/class-ngg-image-list-table.php:303
|
963 |
+
#: ../admin/manage/class-ngg-manager.php:194
|
964 |
+
#: ../admin/manage/class-ngg-manager.php:349
|
965 |
+
msgid "Resize images"
|
966 |
msgstr ""
|
967 |
|
968 |
+
#: ../admin/class-ngg-options.php:360 ../admin/class-ngg-options.php:396
|
969 |
+
#: ../admin/class-ngg-options.php:789 ../admin/manage/actions.php:309
|
970 |
+
#: ../admin/manage/class-ngg-manager.php:60
|
971 |
+
#: ../admin/manage/class-ngg-manager.php:83 ../admin/tinymce/window.php:207
|
972 |
+
#: ../admin/tinymce/window.php:315
|
973 |
+
msgid "Width"
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: ../admin/class-ngg-options.php:362 ../admin/class-ngg-options.php:398
|
977 |
+
#: ../admin/class-ngg-options.php:791 ../admin/manage/actions.php:318
|
978 |
+
#: ../admin/manage/class-ngg-manager.php:62
|
979 |
+
#: ../admin/manage/class-ngg-manager.php:85 ../admin/tinymce/window.php:208
|
980 |
+
#: ../admin/tinymce/window.php:317
|
981 |
+
msgid "Height"
|
982 |
+
msgstr ""
|
983 |
|
984 |
+
#: ../admin/class-ngg-options.php:364 ../admin/manage/class-ngg-manager.php:65
|
|
|
985 |
msgid ""
|
986 |
+
"Width and height (in pixels). NextCellent Gallery will keep the ratio size."
|
|
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: ../admin/class-ngg-options.php:368
|
990 |
+
msgid "Image quality"
|
|
|
|
|
|
|
|
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: ../admin/class-ngg-options.php:372
|
994 |
+
msgid "Backup original"
|
995 |
+
msgstr ""
|
|
|
996 |
|
997 |
+
#: ../admin/class-ngg-options.php:376
|
998 |
+
msgid "Create a backup for the resized images"
|
|
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: ../admin/class-ngg-options.php:381
|
1002 |
+
msgid "Automatically resize"
|
|
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: ../admin/class-ngg-options.php:385
|
1006 |
+
msgid "Automatically resize images on upload."
|
|
|
1007 |
msgstr ""
|
1008 |
|
1009 |
+
#: ../admin/class-ngg-options.php:390
|
1010 |
+
msgid "Thumbnail settings"
|
|
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: ../admin/class-ngg-options.php:391
|
|
|
1014 |
msgid ""
|
1015 |
+
"Please note: if you change these settings, you need to recreate the "
|
1016 |
+
"thumbnails under -> Manage Gallery ."
|
1017 |
msgstr ""
|
1018 |
|
1019 |
+
#: ../admin/class-ngg-options.php:394
|
1020 |
+
msgid "Thumbnail size"
|
|
|
1021 |
msgstr ""
|
1022 |
|
1023 |
+
#: ../admin/class-ngg-options.php:400
|
1024 |
+
msgid "These values are maximum values."
|
|
|
1025 |
msgstr ""
|
1026 |
|
1027 |
+
#: ../admin/class-ngg-options.php:404 ../admin/manage/class-ngg-manager.php:94
|
1028 |
+
msgid "Fixed size"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
+
#: ../admin/class-ngg-options.php:407
|
1032 |
+
msgid "Ignore the aspect ratio, so no portrait thumbnails."
|
|
|
|
|
1033 |
msgstr ""
|
1034 |
|
1035 |
+
#: ../admin/class-ngg-options.php:411
|
1036 |
+
msgid "Thumbnail quality"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: ../admin/class-ngg-options.php:415
|
1040 |
+
msgid "Single picture"
|
1041 |
+
msgstr ""
|
|
|
1042 |
|
1043 |
+
#: ../admin/class-ngg-options.php:418
|
1044 |
+
msgid "Clear cache folder"
|
1045 |
+
msgstr ""
|
|
|
1046 |
|
1047 |
+
#: ../admin/class-ngg-options.php:419
|
1048 |
+
msgid "Proceed now »"
|
1049 |
msgstr ""
|
1050 |
|
1051 |
+
#: ../admin/class-ngg-options.php:433
|
1052 |
+
#: ../admin/manage/class-ngg-image-manager.php:155
|
1053 |
+
msgid "Gallery settings"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
+
#: ../admin/class-ngg-options.php:439
|
1057 |
+
msgid "Inline gallery"
|
1058 |
+
msgstr ""
|
|
|
1059 |
|
1060 |
+
#: ../admin/class-ngg-options.php:442
|
1061 |
+
msgid "Galleries will not be shown on a subpage, but on the same page."
|
1062 |
msgstr ""
|
1063 |
|
1064 |
+
#: ../admin/class-ngg-options.php:446
|
1065 |
+
msgid "Images per page"
|
|
|
|
|
1066 |
msgstr ""
|
1067 |
|
1068 |
+
#: ../admin/class-ngg-options.php:449 ../admin/class-ngg-options.php:881
|
1069 |
#, fuzzy
|
1070 |
+
msgid "images"
|
1071 |
+
msgstr "Scan URL op afbeeldingen"
|
1072 |
|
1073 |
+
#: ../admin/class-ngg-options.php:450
|
1074 |
+
msgid "0 will disable pagination and show all images on one page."
|
1075 |
+
msgstr ""
|
|
|
1076 |
|
1077 |
+
#: ../admin/class-ngg-options.php:454
|
1078 |
+
msgid "Columns"
|
1079 |
+
msgstr ""
|
|
|
1080 |
|
1081 |
+
#: ../admin/class-ngg-options.php:457
|
1082 |
+
msgid "columns per page"
|
1083 |
+
msgstr ""
|
|
|
|
|
|
|
1084 |
|
1085 |
+
#: ../admin/class-ngg-options.php:458
|
|
|
1086 |
msgid ""
|
1087 |
+
"0 will display as much columns as possible. This is normally only required "
|
1088 |
+
"for captions below the images."
|
|
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: ../admin/class-ngg-options.php:466
|
1092 |
+
msgid "Enable slideshow"
|
1093 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1094 |
|
1095 |
+
#: ../admin/class-ngg-options.php:470
|
1096 |
+
msgid "Text to show:"
|
1097 |
msgstr ""
|
1098 |
|
1099 |
+
#: ../admin/class-ngg-options.php:474
|
1100 |
+
msgid ""
|
1101 |
+
"This is the text the visitors will have to click to switch between display "
|
1102 |
+
"modes."
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: ../admin/class-ngg-options.php:478
|
1106 |
+
msgid "Show first"
|
|
|
1107 |
msgstr ""
|
1108 |
|
1109 |
+
#: ../admin/class-ngg-options.php:483
|
1110 |
+
#: ../widgets/class-ngg-gallery-widget.php:110
|
1111 |
#, fuzzy
|
1112 |
+
msgid "Thumbnails"
|
1113 |
+
msgstr "Thumbnails"
|
1114 |
|
1115 |
+
#: ../admin/class-ngg-options.php:491
|
1116 |
+
msgid "Choose what visitors will see first."
|
|
|
1117 |
msgstr ""
|
|
|
|
|
|
|
1118 |
|
1119 |
+
#: ../admin/class-ngg-options.php:495
|
1120 |
+
msgid "ImageBrowser"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
+
#: ../admin/class-ngg-options.php:499
|
1124 |
+
msgid "Use ImageBrowser instead of another effect."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1125 |
msgstr ""
|
1126 |
|
1127 |
+
#: ../admin/class-ngg-options.php:504
|
1128 |
+
msgid "Hidden images"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: ../admin/class-ngg-options.php:508
|
1132 |
+
msgid ""
|
1133 |
+
"Loads all images for the modal window, when pagination is used (like "
|
1134 |
+
"Thickbox, Lightbox etc.)."
|
|
|
|
|
1135 |
msgstr ""
|
1136 |
|
1137 |
+
#: ../admin/class-ngg-options.php:510
|
1138 |
+
msgid "Note: this increases the page load (possibly a lot)"
|
|
|
|
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: ../admin/class-ngg-options.php:514
|
1142 |
+
msgid "AJAX pagination"
|
|
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: ../admin/class-ngg-options.php:518
|
1146 |
+
msgid "Use AJAX pagination to browse images without reloading the page."
|
|
|
1147 |
msgstr ""
|
1148 |
|
1149 |
+
#: ../admin/class-ngg-options.php:520
|
1150 |
+
msgid "Note: works only in combination with the Shutter effect."
|
|
|
1151 |
msgstr ""
|
1152 |
|
1153 |
+
#: ../admin/class-ngg-options.php:524
|
1154 |
+
msgid "Sort options"
|
|
|
1155 |
msgstr ""
|
1156 |
|
1157 |
+
#: ../admin/class-ngg-options.php:527
|
1158 |
+
msgid "Sort thumbnails"
|
1159 |
msgstr ""
|
1160 |
|
1161 |
+
#: ../admin/class-ngg-options.php:532
|
1162 |
+
msgid "Custom order"
|
|
|
1163 |
msgstr ""
|
1164 |
|
1165 |
+
#: ../admin/class-ngg-options.php:536
|
1166 |
+
#: ../admin/manage/class-ngg-sort-manager.php:106
|
1167 |
+
msgid "Image ID"
|
1168 |
+
msgstr ""
|
1169 |
|
1170 |
+
#: ../admin/class-ngg-options.php:540
|
1171 |
#, fuzzy
|
1172 |
+
msgid "File name"
|
1173 |
+
msgstr "URL/Filename:"
|
1174 |
|
1175 |
+
#: ../admin/class-ngg-options.php:544
|
1176 |
+
msgid "Alt / Title text"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: ../admin/class-ngg-options.php:548 ../view/imagebrowser-exif.php:58
|
1180 |
+
msgid "Date / Time"
|
1181 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
1182 |
|
1183 |
+
#: ../admin/class-ngg-options.php:555
|
1184 |
+
msgid "Sort direction"
|
1185 |
+
msgstr ""
|
|
|
1186 |
|
1187 |
+
#: ../admin/class-ngg-options.php:559
|
1188 |
+
#: ../admin/manage/class-ngg-sort-manager.php:126
|
1189 |
+
msgid "Ascending"
|
1190 |
+
msgstr ""
|
1191 |
|
1192 |
+
#: ../admin/class-ngg-options.php:563
|
1193 |
+
#: ../admin/manage/class-ngg-sort-manager.php:131
|
1194 |
+
msgid "Descending"
|
1195 |
+
msgstr ""
|
1196 |
|
1197 |
+
#: ../admin/class-ngg-options.php:583
|
|
|
1198 |
msgid ""
|
1199 |
+
"Here you can select the thumbnail effect, NextCellent Gallery will integrate "
|
1200 |
+
"the required HTML code in the images. Please note that only the Shutter and "
|
1201 |
+
"Thickbox effect will automatic added to your theme."
|
1202 |
msgstr ""
|
1203 |
|
1204 |
+
#: ../admin/class-ngg-options.php:584
|
1205 |
+
msgid ""
|
1206 |
+
"With the placeholder <strong> %GALLERY_NAME% </strong> you can activate a "
|
1207 |
+
"navigation through the images (depend on the effect). Change the code line "
|
1208 |
+
"only , when you use a different thumbnail effect or you know what you do."
|
1209 |
msgstr ""
|
1210 |
|
1211 |
+
#: ../admin/class-ngg-options.php:588
|
1212 |
+
msgid "JavaScript Thumbnail effect"
|
1213 |
+
msgstr ""
|
|
|
1214 |
|
1215 |
+
#: ../admin/class-ngg-options.php:591 ../admin/media-upload.php:232
|
1216 |
#, fuzzy
|
1217 |
+
msgid "None"
|
1218 |
+
msgstr "(geen)"
|
1219 |
|
1220 |
+
#: ../admin/class-ngg-options.php:592
|
1221 |
+
msgid "Thickbox"
|
1222 |
+
msgstr ""
|
|
|
1223 |
|
1224 |
+
#: ../admin/class-ngg-options.php:593
|
1225 |
+
msgid "Lightbox"
|
1226 |
msgstr ""
|
1227 |
|
1228 |
+
#: ../admin/class-ngg-options.php:594
|
1229 |
+
msgid "Highslide"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
+
#: ../admin/class-ngg-options.php:595
|
1233 |
+
msgid "Shutter"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1234 |
msgstr ""
|
1235 |
|
1236 |
+
#: ../admin/class-ngg-options.php:596 ../admin/tinymce/window.php:181
|
1237 |
+
msgid "Custom"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: ../admin/class-ngg-options.php:601
|
1241 |
+
msgid "Link Code line"
|
1242 |
+
msgstr ""
|
|
|
1243 |
|
1244 |
+
#: ../admin/class-ngg-options.php:626
|
1245 |
+
msgid ""
|
1246 |
+
"Please note : you can only activate the watermark under -> Manage Galleries. "
|
1247 |
+
"This action cannot be undone."
|
1248 |
+
msgstr ""
|
1249 |
|
1250 |
+
#: ../admin/class-ngg-options.php:631
|
1251 |
+
msgid "Preview"
|
1252 |
+
msgstr ""
|
|
|
1253 |
|
1254 |
+
#: ../admin/class-ngg-options.php:632
|
1255 |
+
msgid "Select an image"
|
1256 |
+
msgstr ""
|
|
|
1257 |
|
1258 |
+
#: ../admin/class-ngg-options.php:637
|
1259 |
+
msgid "View full image"
|
1260 |
+
msgstr ""
|
|
|
1261 |
|
1262 |
+
#: ../admin/class-ngg-options.php:641 ../admin/class-ngg-options.php:645
|
1263 |
+
msgid "Position"
|
1264 |
+
msgstr ""
|
|
|
1265 |
|
1266 |
+
#: ../admin/class-ngg-options.php:665
|
1267 |
+
msgid "Offset"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: ../admin/class-ngg-options.php:680
|
1271 |
+
msgid "Use image as watermark"
|
1272 |
+
msgstr ""
|
|
|
1273 |
|
1274 |
+
#: ../admin/class-ngg-options.php:683
|
1275 |
#, fuzzy
|
1276 |
+
msgid "URL to file"
|
1277 |
+
msgstr "URL/Filename:"
|
1278 |
|
1279 |
+
#: ../admin/class-ngg-options.php:687
|
1280 |
+
msgid "Use text as watermark"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: ../admin/class-ngg-options.php:690
|
1284 |
+
msgid "Font"
|
1285 |
+
msgstr ""
|
|
|
1286 |
|
1287 |
+
#: ../admin/class-ngg-options.php:702
|
1288 |
+
msgid "This function will not work, cause you need the FreeType library"
|
1289 |
+
msgstr ""
|
|
|
1290 |
|
1291 |
+
#: ../admin/class-ngg-options.php:704
|
1292 |
+
msgid ""
|
1293 |
+
"You can upload more fonts in the folder <strong>nggallery/fonts</strong>"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: ../admin/class-ngg-options.php:710 ../admin/manage/class-ngg-manager.php:81
|
1297 |
+
#: ../admin/media-upload.php:242
|
1298 |
+
msgid "Size"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: ../admin/class-ngg-options.php:714
|
1302 |
+
msgid "Color"
|
1303 |
+
msgstr ""
|
|
|
1304 |
|
1305 |
+
#: ../admin/class-ngg-options.php:718
|
1306 |
+
msgid "Text"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: ../admin/class-ngg-options.php:722
|
1310 |
+
msgid "Opaque"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: ../admin/class-ngg-options.php:780
|
1314 |
+
msgid "Fit to space"
|
1315 |
+
msgstr ""
|
|
|
1316 |
|
1317 |
+
#: ../admin/class-ngg-options.php:783
|
1318 |
+
#: ../widgets/class-ngg-slideshow-widget.php:128
|
1319 |
+
msgid "Let the slideshow fit in the available space."
|
1320 |
+
msgstr ""
|
1321 |
|
1322 |
+
#: ../admin/class-ngg-options.php:787
|
1323 |
+
msgid "Default size"
|
1324 |
+
msgstr ""
|
|
|
1325 |
|
1326 |
+
#: ../admin/class-ngg-options.php:796
|
1327 |
+
msgid "Transition / Fade effect"
|
1328 |
msgstr ""
|
1329 |
|
1330 |
+
#: ../admin/class-ngg-options.php:801
|
1331 |
+
msgid "Attention Seekers"
|
1332 |
+
msgstr ""
|
|
|
1333 |
|
1334 |
+
#: ../admin/class-ngg-options.php:802
|
1335 |
+
msgid "Bouncing Entrances"
|
1336 |
+
msgstr ""
|
|
|
1337 |
|
1338 |
+
#: ../admin/class-ngg-options.php:803
|
1339 |
+
msgid "Fading Entrances"
|
1340 |
+
msgstr ""
|
|
|
1341 |
|
1342 |
+
#: ../admin/class-ngg-options.php:804
|
1343 |
+
msgid "Fading Exits"
|
1344 |
+
msgstr ""
|
|
|
1345 |
|
1346 |
+
#: ../admin/class-ngg-options.php:805
|
1347 |
+
msgid "Flippers"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: ../admin/class-ngg-options.php:806
|
1351 |
+
msgid "Lightspeed"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
+
#: ../admin/class-ngg-options.php:807
|
1355 |
+
msgid "Rotating Entrances"
|
1356 |
+
msgstr ""
|
|
|
1357 |
|
1358 |
+
#: ../admin/class-ngg-options.php:808
|
1359 |
+
msgid "Rotating Exits"
|
1360 |
+
msgstr ""
|
|
|
1361 |
|
1362 |
+
#: ../admin/class-ngg-options.php:809
|
1363 |
+
msgid "Specials"
|
1364 |
+
msgstr ""
|
|
|
1365 |
|
1366 |
+
#: ../admin/class-ngg-options.php:810
|
1367 |
+
msgid "Zoom Entrances"
|
1368 |
+
msgstr ""
|
|
|
1369 |
|
1370 |
+
#: ../admin/class-ngg-options.php:819
|
1371 |
+
msgid "These effects are powered by"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
+
#: ../admin/class-ngg-options.php:819
|
1375 |
+
msgid "Click here for examples of all effects and to learn more."
|
1376 |
msgstr ""
|
1377 |
|
1378 |
+
#: ../admin/class-ngg-options.php:823
|
1379 |
+
msgid "Loop"
|
1380 |
+
msgstr ""
|
|
|
1381 |
|
1382 |
+
#: ../admin/class-ngg-options.php:826
|
1383 |
+
msgid "Infinity loop. Duplicate last and first items to get loop illusion."
|
1384 |
+
msgstr ""
|
|
|
1385 |
|
1386 |
+
#: ../admin/class-ngg-options.php:830
|
1387 |
+
msgid "Mouse/touch drag"
|
|
|
1388 |
msgstr ""
|
|
|
1389 |
|
1390 |
+
#: ../admin/class-ngg-options.php:833
|
1391 |
+
msgid "Enable dragging with the mouse (or touch)."
|
1392 |
msgstr ""
|
1393 |
|
1394 |
+
#: ../admin/class-ngg-options.php:837
|
1395 |
+
msgid "Previous / Next"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
+
#: ../admin/class-ngg-options.php:840
|
1399 |
+
msgid "Show next/previous buttons."
|
|
|
|
|
1400 |
msgstr ""
|
1401 |
|
1402 |
+
#: ../admin/class-ngg-options.php:844
|
1403 |
+
msgid "Show dots"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
+
#: ../admin/class-ngg-options.php:847
|
1407 |
+
msgid "Show dots for each image."
|
1408 |
msgstr ""
|
1409 |
|
1410 |
+
#: ../admin/class-ngg-options.php:851
|
1411 |
+
msgid "Autoplay"
|
1412 |
+
msgstr ""
|
|
|
1413 |
|
1414 |
+
#: ../admin/class-ngg-options.php:854
|
1415 |
+
msgid "Automatically play the images."
|
1416 |
+
msgstr ""
|
|
|
1417 |
|
1418 |
+
#: ../admin/class-ngg-options.php:858
|
1419 |
+
msgid "Duration"
|
1420 |
+
msgstr ""
|
|
|
1421 |
|
1422 |
+
#: ../admin/class-ngg-options.php:861
|
1423 |
+
msgid "sec."
|
1424 |
msgstr ""
|
1425 |
|
1426 |
+
#: ../admin/class-ngg-options.php:865
|
1427 |
+
msgid "Pause on hover"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
+
#: ../admin/class-ngg-options.php:868
|
1431 |
+
msgid "Pause when hovering over the slideshow."
|
1432 |
msgstr ""
|
1433 |
|
1434 |
+
#: ../admin/class-ngg-options.php:872
|
1435 |
+
msgid "Click for next"
|
1436 |
+
msgstr ""
|
|
|
1437 |
|
1438 |
+
#: ../admin/class-ngg-options.php:875
|
1439 |
+
msgid "Click to go to the next image."
|
1440 |
+
msgstr ""
|
|
|
1441 |
|
1442 |
+
#: ../admin/class-ngg-options.php:878 ../admin/tinymce/window.php:194
|
1443 |
+
#: ../admin/tinymce/window.php:358 ../admin/tinymce/window.php:420
|
1444 |
+
msgid "Number of images"
|
1445 |
+
msgstr ""
|
1446 |
|
1447 |
+
#: ../admin/class-ngg-options.php:882
|
1448 |
+
msgid "Number of images to display when using random or latest."
|
1449 |
+
msgstr ""
|
|
|
1450 |
|
1451 |
+
#: ../admin/class-ngg-options.php:945
|
1452 |
+
#, php-format
|
1453 |
+
msgid "Rebuild image structure : %s / %s images"
|
1454 |
+
msgstr ""
|
1455 |
|
1456 |
+
#: ../admin/class-ngg-options.php:946
|
1457 |
+
#, php-format
|
1458 |
+
msgid "Rebuild gallery structure : %s / %s galleries"
|
1459 |
+
msgstr ""
|
1460 |
|
1461 |
+
#: ../admin/class-ngg-options.php:947
|
1462 |
+
#, php-format
|
1463 |
+
msgid "Rebuild album structure : %s / %s albums"
|
1464 |
+
msgstr ""
|
1465 |
|
1466 |
+
#: ../admin/class-ngg-options.php:1001
|
1467 |
+
msgid "Done."
|
1468 |
+
msgstr ""
|
|
|
1469 |
|
1470 |
+
#: ../admin/class-ngg-overview.php:39
|
1471 |
+
msgid "Contributors"
|
1472 |
+
msgstr ""
|
|
|
1473 |
|
1474 |
+
#: ../admin/class-ngg-overview.php:53
|
1475 |
+
msgid "Here you can control your images, galleries and albums."
|
|
|
1476 |
msgstr ""
|
1477 |
|
1478 |
+
#: ../admin/class-ngg-overview.php:56
|
|
|
1479 |
#, fuzzy
|
1480 |
+
msgid "Image"
|
1481 |
+
msgstr "Afbeelding verwijderd"
|
1482 |
|
1483 |
+
#: ../admin/class-ngg-overview.php:62 ../admin/tinymce/window.php:118
|
1484 |
+
#: ../admin/tinymce/window.php:233 ../lib/rewrite.php:226
|
1485 |
#, fuzzy
|
1486 |
+
msgid "Album"
|
1487 |
+
msgstr "Album \"{album_title}\" toegevoegd (# {album_id})"
|
1488 |
|
1489 |
+
#: ../admin/class-ngg-overview.php:67
|
1490 |
+
msgid "Add new pictures"
|
|
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: ../admin/class-ngg-overview.php:104
|
1494 |
+
msgid "Storage Space"
|
|
|
|
|
1495 |
msgstr ""
|
|
|
|
|
1496 |
|
1497 |
+
#: ../admin/class-ngg-overview.php:107
|
1498 |
+
msgid "Allowed"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: ../admin/class-ngg-overview.php:108
|
1502 |
+
#, php-format
|
1503 |
+
msgid "<a href=\"%1$s\" title=\"Manage Uploads\">%2$s MB</a>"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
+
#: ../admin/class-ngg-overview.php:111
|
1507 |
+
msgid "Used"
|
1508 |
msgstr ""
|
1509 |
|
1510 |
+
#: ../admin/class-ngg-overview.php:112
|
1511 |
+
#, php-format
|
1512 |
+
msgid "<a href=\"%1$s\" title=\"Manage Uploads\">%2$s MB (%3$s%%)</a>"
|
1513 |
+
msgstr ""
|
1514 |
|
1515 |
+
#: ../admin/class-ngg-overview.php:126
|
1516 |
+
#, php-format
|
1517 |
+
msgid ""
|
1518 |
+
"The newsfeed could not be loaded. Check the <a href=\"%s\">front page</a> "
|
1519 |
+
"to check for updates."
|
1520 |
+
msgstr ""
|
1521 |
|
1522 |
+
#: ../admin/class-ngg-overview.php:137
|
1523 |
+
msgid "Untitled"
|
1524 |
+
msgstr ""
|
|
|
1525 |
|
1526 |
+
#: ../admin/class-ngg-overview.php:305
|
|
|
1527 |
msgid "Running..."
|
1528 |
+
msgstr ""
|
1529 |
|
1530 |
+
#: ../admin/class-ngg-overview.php:349
|
1531 |
msgid "Check plugin/theme conflict"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
+
#: ../admin/class-ngg-overview.php:350 ../admin/class-ngg-overview.php:356
|
1535 |
+
#: ../admin/class-ngg-overview.php:362
|
1536 |
msgid "Not tested"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
+
#: ../admin/class-ngg-overview.php:351
|
|
|
1540 |
msgid "No conflict could be detected"
|
1541 |
+
msgstr ""
|
1542 |
|
1543 |
+
#: ../admin/class-ngg-overview.php:352
|
1544 |
msgid "Test failed, disable other plugins & switch to default theme"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
+
#: ../admin/class-ngg-overview.php:355
|
|
|
1548 |
msgid "Test image function"
|
1549 |
+
msgstr ""
|
1550 |
|
1551 |
+
#: ../admin/class-ngg-overview.php:357
|
1552 |
+
msgid "The plugin could create images."
|
1553 |
+
msgstr ""
|
|
|
1554 |
|
1555 |
+
#: ../admin/class-ngg-overview.php:358
|
1556 |
+
msgid "Could not create image, check your memory limit."
|
1557 |
msgstr ""
|
1558 |
|
1559 |
+
#: ../admin/class-ngg-overview.php:361
|
|
|
1560 |
msgid "Check theme compatibility"
|
1561 |
+
msgstr ""
|
1562 |
|
1563 |
+
#: ../admin/class-ngg-overview.php:363
|
1564 |
msgid "Your theme should work fine with NextCellent Gallery"
|
1565 |
msgstr ""
|
1566 |
|
1567 |
+
#: ../admin/class-ngg-overview.php:364
|
1568 |
msgid "wp_head()/wp_footer() is missing, contact the theme author"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
+
#: ../admin/class-ngg-overview.php:368
|
|
|
1572 |
msgid "Check plugin"
|
1573 |
+
msgstr ""
|
1574 |
|
1575 |
+
#: ../admin/class-ngg-overview.php:384
|
1576 |
msgid "Graphic Library"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
+
#: ../admin/class-ngg-overview.php:410
|
1580 |
+
msgid "There is no GD support"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1581 |
msgstr ""
|
1582 |
|
1583 |
+
#: ../admin/class-ngg-overview.php:423 ../admin/class-ngg-overview.php:491
|
1584 |
+
#: ../admin/class-ngg-overview.php:497 ../admin/class-ngg-overview.php:503
|
1585 |
+
msgid "Yes"
|
|
|
|
|
1586 |
msgstr ""
|
1587 |
|
1588 |
+
#: ../admin/class-ngg-overview.php:425 ../admin/class-ngg-overview.php:493
|
1589 |
+
#: ../admin/class-ngg-overview.php:499 ../admin/class-ngg-overview.php:505
|
1590 |
+
msgid "No"
|
1591 |
msgstr ""
|
1592 |
|
1593 |
+
#: ../admin/class-ngg-overview.php:445
|
1594 |
+
msgid "Not set"
|
1595 |
+
msgstr ""
|
|
|
1596 |
|
1597 |
+
#: ../admin/class-ngg-overview.php:449
|
1598 |
+
msgid "On"
|
|
|
1599 |
msgstr ""
|
1600 |
|
1601 |
+
#: ../admin/class-ngg-overview.php:451
|
1602 |
+
msgid "Off"
|
1603 |
msgstr ""
|
1604 |
|
1605 |
+
#: ../admin/class-ngg-overview.php:457 ../admin/class-ngg-overview.php:463
|
1606 |
+
#: ../admin/class-ngg-overview.php:469 ../admin/class-ngg-overview.php:475
|
1607 |
+
#: ../admin/class-ngg-overview.php:481 ../admin/class-ngg-overview.php:487
|
1608 |
+
msgid "N/A"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: ../admin/class-ngg-overview.php:485
|
1612 |
+
msgid " MB"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1613 |
msgstr ""
|
1614 |
|
1615 |
+
#: ../admin/class-ngg-overview.php:509
|
1616 |
+
msgid "Operating System"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1617 |
msgstr ""
|
1618 |
|
1619 |
+
#: ../admin/class-ngg-overview.php:511
|
1620 |
+
msgid "Server"
|
|
|
|
|
|
|
|
|
|
|
1621 |
msgstr ""
|
1622 |
|
1623 |
+
#: ../admin/class-ngg-overview.php:512
|
1624 |
+
msgid "Memory Usage"
|
1625 |
+
msgstr ""
|
|
|
1626 |
|
1627 |
+
#: ../admin/class-ngg-overview.php:513
|
1628 |
+
msgid "MYSQL Version"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
+
#: ../admin/class-ngg-overview.php:514
|
1632 |
+
msgid "SQL Mode"
|
1633 |
+
msgstr ""
|
|
|
1634 |
|
1635 |
+
#: ../admin/class-ngg-overview.php:515
|
1636 |
+
msgid "PHP Version"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
+
#: ../admin/class-ngg-overview.php:516
|
1640 |
+
msgid "PHP Allow URL fopen"
|
|
|
1641 |
msgstr ""
|
1642 |
|
1643 |
+
#: ../admin/class-ngg-overview.php:517
|
1644 |
+
msgid "PHP Memory Limit"
|
|
|
1645 |
msgstr ""
|
1646 |
|
1647 |
+
#: ../admin/class-ngg-overview.php:518
|
1648 |
+
msgid "PHP Max Upload Size"
|
|
|
1649 |
msgstr ""
|
|
|
|
|
1650 |
|
1651 |
+
#: ../admin/class-ngg-overview.php:519
|
1652 |
+
msgid "PHP Max Post Size"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
+
#: ../admin/class-ngg-overview.php:520
|
1656 |
+
msgid "PCRE Backtracking Limit"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
+
#: ../admin/class-ngg-overview.php:521
|
1660 |
+
msgid "PHP Max Script Execute Time"
|
|
|
|
|
1661 |
msgstr ""
|
1662 |
|
1663 |
+
#: ../admin/class-ngg-overview.php:522
|
1664 |
+
msgid "PHP EXIF Support"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
+
#: ../admin/class-ngg-overview.php:523
|
1668 |
+
msgid "PHP IPTC Support"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
+
#: ../admin/class-ngg-overview.php:524
|
1672 |
+
msgid "PHP XML Support"
|
|
|
1673 |
msgstr ""
|
|
|
1674 |
|
1675 |
+
#: ../admin/class-ngg-overview.php:532
|
1676 |
+
msgid "Loading…"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
+
#: ../admin/class-ngg-overview.php:532
|
1680 |
+
msgid "This widget requires JavaScript."
|
1681 |
+
msgstr ""
|
|
|
1682 |
|
1683 |
+
#: ../admin/class-ngg-overview.php:557
|
1684 |
+
msgid ""
|
1685 |
+
"<strong>Note</strong>: third parties plugins that are compatible with NGG "
|
1686 |
+
"may not be 100% compatible with NextCellent Gallery!"
|
1687 |
+
msgstr ""
|
1688 |
|
1689 |
+
#: ../admin/class-ngg-overview.php:599
|
1690 |
+
#, fuzzy, php-format
|
1691 |
+
msgid "By %s"
|
1692 |
+
msgstr "+%1$s meer"
|
1693 |
|
1694 |
+
#. translators: 1: Plugin name and version.
|
1695 |
+
#: ../admin/class-ngg-overview.php:611
|
1696 |
+
#, php-format
|
1697 |
+
msgid "Install %s now"
|
1698 |
+
msgstr ""
|
1699 |
|
1700 |
+
#: ../admin/class-ngg-overview.php:611
|
1701 |
+
msgid "Install Now"
|
1702 |
msgstr ""
|
1703 |
|
1704 |
+
#. translators: 1: Plugin name and version
|
1705 |
+
#: ../admin/class-ngg-overview.php:618
|
1706 |
+
#, php-format
|
1707 |
+
msgid "Update %s now"
|
1708 |
msgstr ""
|
1709 |
|
1710 |
+
#: ../admin/class-ngg-overview.php:618
|
1711 |
+
msgid "Update Now"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
+
#: ../admin/class-ngg-overview.php:638 ../admin/class-ngg-overview.php:640
|
1715 |
+
#, php-format
|
1716 |
+
msgid "More information about %s"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
#: ../admin/class-ngg-overview.php:638 ../admin/class-ngg-overview.php:640
|
1720 |
+
msgid "More Details"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: ../admin/class-ngg-overview.php:679
|
1724 |
+
msgid "Untested with your version of WordPress"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: ../admin/class-ngg-overview.php:681
|
1728 |
+
msgid "<strong>Incompatible</strong> with your version of WordPress"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: ../admin/class-ngg-overview.php:683
|
1732 |
+
msgid "<strong>Compatible</strong> with your version of WordPress"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
+
#: ../admin/class-ngg-overview.php:746
|
1736 |
+
msgid "This plugin is a branch from NextGen Gallery, version 1.9.13."
|
1737 |
msgstr ""
|
1738 |
|
1739 |
+
#: ../admin/class-ngg-overview.php:747
|
1740 |
msgid ""
|
1741 |
+
"Developed & maintained by <a href=\"http://www.wpgetready.com\" target="
|
1742 |
+
"\"_blank\">WPGetReady.com</a>"
|
|
|
|
|
1743 |
msgstr ""
|
1744 |
|
1745 |
+
#: ../admin/class-ngg-overview.php:753
|
1746 |
+
msgid "You can contribute by giving this plugin a good rating! Thanks a lot!"
|
|
|
|
|
1747 |
msgstr ""
|
1748 |
|
1749 |
+
#: ../admin/class-ngg-overview.php:758
|
1750 |
+
msgid "Visit the plugin homepage"
|
|
|
1751 |
msgstr ""
|
|
|
|
|
1752 |
|
1753 |
+
#: ../admin/class-ngg-overview.php:770
|
1754 |
+
msgid "Welcome to NextCellent Gallery!"
|
|
|
|
|
|
|
1755 |
msgstr ""
|
1756 |
|
1757 |
+
#: ../admin/class-ngg-overview.php:835
|
1758 |
+
msgid "This plugin is made possible by the great work of a lot of people:"
|
1759 |
msgstr ""
|
1760 |
|
1761 |
+
#: ../admin/class-ngg-overview.php:837
|
1762 |
+
msgid "Alex Rabe and Photocrati for the original NextGen Gallery"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
+
#: ../admin/class-ngg-overview.php:839
|
1766 |
+
msgid "for maintaining this fork of NextGen Gallery"
|
1767 |
+
msgstr ""
|
|
|
1768 |
|
1769 |
+
#: ../admin/class-ngg-overview.php:842
|
1770 |
+
msgid "for helping maintain the plugin"
|
1771 |
+
msgstr ""
|
|
|
1772 |
|
1773 |
+
#: ../admin/class-ngg-overview.php:844
|
1774 |
+
msgid "for his implementation of changing file the upload date using jQuery"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
+
#: ../admin/class-ngg-overview.php:847
|
1778 |
+
msgid "for his his code suggestions regarding nggtags shortcodes"
|
1779 |
+
msgstr ""
|
|
|
1780 |
|
1781 |
+
#: ../admin/class-ngg-overview.php:850
|
1782 |
+
msgid "for his his suggestions on templates"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: ../admin/class-ngg-overview.php:851
|
1786 |
+
msgid "Also a big thank you to the new translators: "
|
1787 |
msgstr ""
|
1788 |
|
1789 |
+
#: ../admin/class-ngg-roles.php:16
|
1790 |
msgid "Roles / capabilities"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
+
#: ../admin/class-ngg-roles.php:17
|
1794 |
msgid ""
|
1795 |
"Select the lowest role which should be able to access the following "
|
1796 |
"capabilities. NextCellent Gallery supports the standard roles from WordPress."
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: ../admin/class-ngg-roles.php:18
|
1800 |
msgid "For a more flexible user management you can use the"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: ../admin/class-ngg-roles.php:23
|
|
|
1804 |
msgid "NextCellent Gallery overview"
|
1805 |
+
msgstr ""
|
1806 |
|
1807 |
+
#: ../admin/class-ngg-roles.php:27
|
1808 |
msgid "Use TinyMCE Button / Add Media"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: ../admin/class-ngg-roles.php:31
|
1812 |
msgid "Add gallery / Upload images"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: ../admin/class-ngg-roles.php:35
|
|
|
1816 |
msgid "Manage gallery"
|
1817 |
+
msgstr ""
|
1818 |
|
1819 |
+
#: ../admin/class-ngg-roles.php:39
|
|
|
1820 |
msgid "Manage others gallery"
|
1821 |
+
msgstr ""
|
1822 |
|
1823 |
+
#: ../admin/class-ngg-roles.php:43
|
1824 |
msgid "Manage tags"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: ../admin/class-ngg-roles.php:51
|
|
|
1828 |
msgid "Change style"
|
1829 |
+
msgstr ""
|
1830 |
|
1831 |
+
#: ../admin/class-ngg-roles.php:55
|
|
|
1832 |
msgid "Change options"
|
1833 |
+
msgstr ""
|
1834 |
|
1835 |
+
#: ../admin/class-ngg-roles.php:59
|
1836 |
msgid "Update capabilities"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
+
#: ../admin/class-ngg-roles.php:82
|
1840 |
+
msgid "Updated capabilities"
|
1841 |
+
msgstr ""
|
|
|
1842 |
|
1843 |
+
#: ../admin/class-ngg-setup.php:14
|
1844 |
+
msgid "Reset options"
|
1845 |
+
msgstr ""
|
|
|
1846 |
|
1847 |
+
#: ../admin/class-ngg-setup.php:17
|
1848 |
+
msgid "Reset all options/settings to the default installation."
|
1849 |
msgstr ""
|
1850 |
|
1851 |
+
#: ../admin/class-ngg-setup.php:19
|
1852 |
+
msgid "Reset settings"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
+
#: ../admin/class-ngg-setup.php:25
|
1856 |
+
msgid "Uninstall plugin tables"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
+
#: ../admin/class-ngg-setup.php:30
|
1860 |
+
msgid "You don't like NextCellent Gallery?"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
+
#: ../admin/class-ngg-setup.php:31
|
1864 |
+
msgid ""
|
1865 |
+
"With this button you can clear all database tables. This should also happen "
|
1866 |
+
"if you uninstall the normal way, but it can be useful for manually "
|
1867 |
+
"uninstalling NextCellent completely."
|
1868 |
msgstr ""
|
1869 |
|
1870 |
+
#: ../admin/class-ngg-setup.php:34
|
1871 |
+
#, fuzzy
|
1872 |
+
msgid "WARNING:"
|
1873 |
+
msgstr "Waarschuwing"
|
1874 |
+
|
1875 |
+
#: ../admin/class-ngg-setup.php:36
|
1876 |
+
msgid ""
|
1877 |
+
"Once uninstalled, this cannot be undone. You should use a Database Backup "
|
1878 |
+
"plugin of WordPress to backup all the tables first. NextCellent gallery is "
|
1879 |
+
"stored in the tables"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: ../admin/class-ngg-setup.php:36
|
1883 |
+
msgid "and"
|
|
|
1884 |
msgstr ""
|
1885 |
|
1886 |
+
#: ../admin/class-ngg-setup.php:39
|
1887 |
+
msgid "Show uninstall button"
|
|
|
1888 |
msgstr ""
|
1889 |
|
1890 |
+
#: ../admin/class-ngg-setup.php:40
|
1891 |
+
msgid "Uninstall plugin"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
+
#: ../admin/class-ngg-setup.php:49
|
1895 |
+
msgid "Reset all options to default settings?"
|
1896 |
+
msgstr ""
|
|
|
1897 |
|
1898 |
+
#: ../admin/class-ngg-setup.php:51 ../admin/class-ngg-setup.php:66
|
1899 |
+
msgid "Choose [Cancel] to Stop, [OK] to proceed."
|
1900 |
+
msgstr ""
|
|
|
1901 |
|
1902 |
+
#: ../admin/class-ngg-setup.php:64
|
1903 |
+
msgid ""
|
1904 |
+
"You are about to uninstall this plugin from WordPress. This action is not "
|
1905 |
+
"reversible."
|
1906 |
+
msgstr ""
|
1907 |
|
1908 |
+
#: ../admin/class-ngg-setup.php:97
|
1909 |
+
msgid "Reset all settings to the default parameters."
|
1910 |
+
msgstr ""
|
|
|
1911 |
|
1912 |
+
#: ../admin/class-ngg-setup.php:104
|
1913 |
+
msgid "Uninstall successful! Now delete the plugin and enjoy your life!"
|
1914 |
msgstr ""
|
1915 |
|
1916 |
+
#: ../admin/class-ngg-style.php:118
|
1917 |
+
msgid "Successfully selected CSS file."
|
1918 |
+
msgstr ""
|
|
|
1919 |
|
1920 |
+
#: ../admin/class-ngg-style.php:120
|
1921 |
+
msgid "No CSS file will be used."
|
1922 |
msgstr ""
|
1923 |
|
1924 |
+
#: ../admin/class-ngg-style.php:129 ../admin/class-ngg-style.php:169
|
1925 |
+
msgid "You do not have sufficient permissions to edit templates for this blog."
|
1926 |
+
msgstr ""
|
|
|
1927 |
|
1928 |
+
#: ../admin/class-ngg-style.php:154
|
1929 |
+
msgid "Could not move file."
|
1930 |
msgstr ""
|
1931 |
|
1932 |
+
#: ../admin/class-ngg-style.php:160
|
1933 |
+
msgid "CSS file successfully updated."
|
1934 |
msgstr ""
|
1935 |
|
1936 |
+
#: ../admin/class-ngg-style.php:162
|
1937 |
+
msgid "Could not save file."
|
1938 |
msgstr ""
|
1939 |
|
1940 |
+
#: ../admin/class-ngg-style.php:182
|
1941 |
+
msgid "CSS file successfully moved."
|
1942 |
+
msgstr ""
|
|
|
1943 |
|
1944 |
+
#: ../admin/class-ngg-style.php:187
|
1945 |
+
msgid "Could not move the CSS file."
|
1946 |
msgstr ""
|
1947 |
|
1948 |
+
#: ../admin/class-ngg-style.php:218 ../admin/wpmu.php:63
|
1949 |
+
msgid "Your CSS file is set by a theme or another plugin."
|
1950 |
msgstr ""
|
1951 |
|
1952 |
+
#: ../admin/class-ngg-style.php:218 ../admin/wpmu.php:63
|
1953 |
+
msgid "This CSS file will be applied:"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
+
#: ../admin/class-ngg-style.php:248
|
1957 |
+
msgid "Style Editor"
|
|
|
|
|
1958 |
msgstr ""
|
1959 |
|
1960 |
+
#: ../admin/class-ngg-style.php:254
|
1961 |
+
msgid "Activate and use style sheet:"
|
1962 |
msgstr ""
|
1963 |
|
1964 |
+
#: ../admin/class-ngg-style.php:259
|
1965 |
+
msgid "Activate"
|
1966 |
+
msgstr ""
|
|
|
1967 |
|
1968 |
+
#: ../admin/class-ngg-style.php:268
|
1969 |
+
#, php-format
|
1970 |
+
msgid "Editing %s"
|
1971 |
msgstr ""
|
1972 |
|
1973 |
+
#: ../admin/class-ngg-style.php:270
|
1974 |
+
#, php-format
|
1975 |
+
msgid "Browsing %s"
|
1976 |
msgstr ""
|
1977 |
|
1978 |
+
#: ../admin/class-ngg-style.php:273
|
1979 |
+
msgid "(from the theme folder)"
|
1980 |
+
msgstr ""
|
|
|
1981 |
|
1982 |
+
#: ../admin/class-ngg-style.php:283
|
1983 |
+
msgid ""
|
1984 |
+
"To ensure your css file stays safe during upgrades, please move it to the "
|
1985 |
+
"right folder."
|
1986 |
msgstr ""
|
1987 |
|
1988 |
+
#: ../admin/class-ngg-style.php:286
|
1989 |
+
msgid "Move file"
|
1990 |
+
msgstr ""
|
|
|
1991 |
|
1992 |
+
#: ../admin/class-ngg-style.php:291
|
1993 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:155
|
1994 |
+
#: ../admin/manage/class-ngg-image-manager.php:213 ../lib/meta.php:458
|
1995 |
+
msgid "Author"
|
1996 |
msgstr ""
|
1997 |
|
1998 |
+
#: ../admin/class-ngg-style.php:292
|
1999 |
#, fuzzy
|
2000 |
+
msgid "Version"
|
2001 |
+
msgstr "Datum versie"
|
2002 |
|
2003 |
+
#: ../admin/class-ngg-style.php:296
|
2004 |
+
msgid "File location"
|
2005 |
+
msgstr ""
|
|
|
2006 |
|
2007 |
+
#: ../admin/class-ngg-style.php:309
|
2008 |
+
msgid "Update File"
|
2009 |
msgstr ""
|
2010 |
|
2011 |
+
#: ../admin/class-ngg-style.php:311
|
2012 |
+
msgid "If this file were writable you could edit it."
|
2013 |
+
msgstr ""
|
|
|
2014 |
|
2015 |
+
#: ../admin/class-ngg-style.php:316
|
2016 |
+
msgid "This file does not exist. Double check the name and try again."
|
2017 |
msgstr ""
|
2018 |
|
2019 |
+
#: ../admin/class-ngg-tag-manager.php:45
|
2020 |
+
msgid "Most popular"
|
2021 |
msgstr ""
|
2022 |
|
2023 |
+
#: ../admin/class-ngg-tag-manager.php:46
|
2024 |
+
msgid "Least used"
|
2025 |
+
msgstr ""
|
|
|
2026 |
|
2027 |
+
#: ../admin/class-ngg-tag-manager.php:47
|
2028 |
+
msgid "Alphabetical"
|
2029 |
+
msgstr ""
|
|
|
2030 |
|
2031 |
+
#: ../admin/class-ngg-tag-manager.php:114
|
2032 |
+
msgid "Existing Tags"
|
2033 |
+
msgstr ""
|
|
|
2034 |
|
2035 |
+
#: ../admin/class-ngg-tag-manager.php:118
|
2036 |
+
msgid "Search tags"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
+
#: ../admin/class-ngg-tag-manager.php:122
|
2040 |
+
msgid "Go"
|
2041 |
msgstr ""
|
2042 |
|
2043 |
+
#: ../admin/class-ngg-tag-manager.php:127
|
2044 |
+
msgid "Sort Order:"
|
2045 |
+
msgstr ""
|
|
|
2046 |
|
2047 |
+
#: ../admin/class-ngg-tag-manager.php:162
|
2048 |
+
#: ../admin/class-ngg-tag-manager.php:166
|
2049 |
+
#: ../admin/class-ngg-tag-manager.php:179
|
2050 |
+
msgid "Previous tags"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
+
#: ../admin/class-ngg-tag-manager.php:175
|
2054 |
+
msgid "Next tags"
|
2055 |
+
msgstr ""
|
2056 |
+
|
2057 |
+
#: ../admin/class-ngg-tag-manager.php:187
|
2058 |
+
msgid "Rename Tag"
|
2059 |
+
msgstr ""
|
2060 |
|
2061 |
+
#: ../admin/class-ngg-tag-manager.php:195
|
2062 |
msgid ""
|
2063 |
+
"Enter the tag to rename and its new value. You can use this feature to "
|
2064 |
+
"merge tags too. Click \"Rename\" and all posts which use this tag will be "
|
2065 |
+
"updated."
|
2066 |
msgstr ""
|
2067 |
|
2068 |
+
#: ../admin/class-ngg-tag-manager.php:196
|
2069 |
+
#: ../admin/class-ngg-tag-manager.php:244
|
2070 |
+
msgid "You can specify multiple tags to rename by separating them with commas."
|
2071 |
+
msgstr ""
|
2072 |
|
2073 |
+
#: ../admin/class-ngg-tag-manager.php:200
|
2074 |
+
msgid "Tag(s) to rename:"
|
|
|
|
|
|
|
|
|
|
|
2075 |
msgstr ""
|
2076 |
|
2077 |
+
#: ../admin/class-ngg-tag-manager.php:204
|
2078 |
+
msgid "New tag name(s):"
|
2079 |
+
msgstr ""
|
|
|
2080 |
|
2081 |
+
#: ../admin/class-ngg-tag-manager.php:207
|
2082 |
#, fuzzy
|
2083 |
+
msgid "Rename"
|
2084 |
+
msgstr "Hernoem"
|
2085 |
|
2086 |
+
#: ../admin/class-ngg-tag-manager.php:213
|
2087 |
+
msgid "Delete Tag"
|
2088 |
+
msgstr ""
|
|
|
2089 |
|
2090 |
+
#: ../admin/class-ngg-tag-manager.php:221
|
2091 |
+
msgid ""
|
2092 |
+
"Enter the name of the tag to delete. This tag will be removed from all "
|
2093 |
+
"posts."
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: ../admin/class-ngg-tag-manager.php:222
|
2097 |
+
msgid "You can specify multiple tags to delete by separating them with commas"
|
2098 |
+
msgstr ""
|
|
|
2099 |
|
2100 |
+
#: ../admin/class-ngg-tag-manager.php:226
|
2101 |
+
msgid "Tag(s) to delete:"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
+
#: ../admin/class-ngg-tag-manager.php:235
|
2105 |
+
msgid "Edit Tag Slug"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
+
#: ../admin/class-ngg-tag-manager.php:243
|
2109 |
msgid ""
|
2110 |
+
"Enter the tag name to edit and its new slug. <a href=\"http://codex."
|
2111 |
+
"wordpress.org/Glossary#Slug\">Slug definition</a>"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
+
#: ../admin/class-ngg-tag-manager.php:248
|
2115 |
+
msgid "Tag(s) to match:"
|
2116 |
+
msgstr ""
|
|
|
2117 |
|
2118 |
+
#: ../admin/class-ngg-tag-manager.php:252
|
2119 |
+
msgid "Slug(s) to set:"
|
2120 |
+
msgstr ""
|
|
|
2121 |
|
2122 |
+
#: ../admin/class-ngg-tag-manager.php:255
|
2123 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:106
|
2124 |
+
msgid "Edit"
|
|
|
2125 |
msgstr ""
|
2126 |
|
2127 |
+
#: ../admin/functions.php:38
|
2128 |
+
msgid "No valid gallery name!"
|
2129 |
+
msgstr ""
|
|
|
2130 |
|
2131 |
+
#: ../admin/functions.php:48 ../admin/functions.php:57
|
2132 |
+
#: ../admin/functions.php:83 ../admin/functions.php:158
|
2133 |
+
#: ../admin/functions.php:165 ../admin/functions.php:345
|
2134 |
+
#: ../admin/functions.php:353
|
2135 |
+
msgid "Directory"
|
2136 |
+
msgstr ""
|
2137 |
|
2138 |
+
#: ../admin/functions.php:48
|
2139 |
+
msgid "didn't exist. Please create first the main gallery folder "
|
2140 |
msgstr ""
|
2141 |
|
2142 |
+
#: ../admin/functions.php:49 ../admin/functions.php:58
|
2143 |
+
msgid "Check this link, if you didn't know how to set the permission :"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
+
#: ../admin/functions.php:57 ../admin/functions.php:83
|
2147 |
+
msgid "is not writeable !"
|
2148 |
+
msgstr ""
|
|
|
2149 |
|
2150 |
+
#: ../admin/functions.php:79 ../admin/functions.php:88
|
2151 |
+
#: ../admin/functions.php:1127 ../lib/core.php:102
|
2152 |
+
msgid "Unable to create directory "
|
2153 |
+
msgstr ""
|
2154 |
+
|
2155 |
+
#: ../admin/functions.php:92
|
2156 |
+
msgid "The server setting Safe-Mode is on !"
|
2157 |
+
msgstr ""
|
2158 |
+
|
2159 |
+
#: ../admin/functions.php:93
|
2160 |
+
msgid "If you have problems, please create directory"
|
2161 |
+
msgstr ""
|
2162 |
+
|
2163 |
+
#: ../admin/functions.php:94
|
2164 |
+
msgid "and the thumbnails directory"
|
2165 |
+
msgstr ""
|
2166 |
+
|
2167 |
+
#: ../admin/functions.php:94
|
2168 |
+
msgid "with permission 777 manually !"
|
2169 |
+
msgstr ""
|
2170 |
+
|
2171 |
+
#: ../admin/functions.php:120
|
2172 |
+
#, php-format
|
2173 |
msgid ""
|
2174 |
+
"Gallery ID %1$s successfully created. You can show this gallery in your post "
|
2175 |
+
"or page with the shortcode %2$s.<br/>"
|
2176 |
msgstr ""
|
2177 |
|
2178 |
+
#: ../admin/functions.php:123 ../admin/functions.php:310
|
2179 |
+
#: ../admin/functions.php:413
|
2180 |
+
msgid "Edit gallery"
|
2181 |
msgstr ""
|
2182 |
|
2183 |
+
#: ../admin/functions.php:158 ../admin/functions.php:345
|
2184 |
+
msgid "doesn`t exist!"
|
2185 |
msgstr ""
|
2186 |
|
2187 |
+
#: ../admin/functions.php:165 ../admin/functions.php:353
|
2188 |
+
msgid "contains no pictures"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
+
#: ../admin/functions.php:192
|
2192 |
+
msgid "Something went wrong when renaming"
|
2193 |
msgstr ""
|
2194 |
|
2195 |
+
#: ../admin/functions.php:192
|
2196 |
+
msgid "Importing was aborted."
|
2197 |
+
msgstr ""
|
|
|
2198 |
|
2199 |
+
#: ../admin/functions.php:210 ../admin/functions.php:372
|
2200 |
+
msgid "Database error. Could not add gallery!"
|
2201 |
+
msgstr ""
|
|
|
2202 |
|
2203 |
+
#: ../admin/functions.php:213 ../admin/functions.php:375
|
2204 |
+
msgid "successfully created!"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
+
#: ../admin/functions.php:300 ../admin/functions.php:408
|
2208 |
+
#: ../admin/functions.php:1244
|
2209 |
+
#: ../admin/manage/class-ngg-gallery-list-table.php:212
|
2210 |
+
#: ../admin/manage/class-ngg-image-list-table.php:302
|
2211 |
+
#: ../admin/manage/class-ngg-manager.php:197
|
2212 |
+
#: ../admin/manage/class-ngg-manager.php:359
|
2213 |
+
msgid "Create new thumbnails"
|
2214 |
+
msgstr ""
|
2215 |
|
2216 |
+
#: ../admin/functions.php:305
|
2217 |
+
msgid " picture(s) successfully renamed"
|
2218 |
+
msgstr ""
|
|
|
2219 |
|
2220 |
+
#: ../admin/functions.php:307 ../admin/functions.php:411
|
2221 |
+
msgid " picture(s) successfully added"
|
|
|
2222 |
msgstr ""
|
|
|
2223 |
|
2224 |
+
#: ../admin/functions.php:314
|
2225 |
+
msgid "No images were added."
|
2226 |
+
msgstr ""
|
|
|
2227 |
|
2228 |
+
#: ../admin/functions.php:486 ../admin/functions.php:570
|
2229 |
+
#: ../admin/functions.php:625 ../admin/functions.php:722
|
2230 |
+
#: ../admin/functions.php:776
|
2231 |
+
msgid "Object didn't contain correct data"
|
|
|
2232 |
msgstr ""
|
2233 |
|
2234 |
+
#: ../admin/functions.php:495
|
2235 |
+
msgid " is not writeable "
|
2236 |
msgstr ""
|
2237 |
|
2238 |
+
#: ../admin/functions.php:580 ../admin/functions.php:628
|
2239 |
+
#: ../admin/functions.php:728 ../admin/functions.php:779
|
2240 |
+
msgid " is not writeable"
|
2241 |
+
msgstr ""
|
2242 |
+
|
2243 |
+
#: ../admin/functions.php:782
|
2244 |
+
msgid "File do not exists"
|
2245 |
+
msgstr ""
|
2246 |
+
|
2247 |
+
#: ../admin/functions.php:786
|
2248 |
+
msgid "Couldn't restore original image"
|
2249 |
+
msgstr ""
|
2250 |
+
|
2251 |
+
#: ../admin/functions.php:902
|
2252 |
+
msgid "(Error : Couldn't not update data base)"
|
2253 |
+
msgstr ""
|
2254 |
+
|
2255 |
+
#: ../admin/functions.php:909
|
2256 |
+
msgid "(Error : Couldn't not update meta data)"
|
2257 |
+
msgstr ""
|
2258 |
+
|
2259 |
+
#: ../admin/functi
|