Shortcodes Ultimate - Version 1.8.0

Version Description

  • Some small additions
  • Ajax admin page
Download this release

Release Info

Developer gn_themes
Plugin Icon 128x128 Shortcodes Ultimate
Version 1.8.0
Comparing to
See all releases

Code changes from version 1.7.0 to 1.8.0

css/admin.css CHANGED
@@ -1,12 +1,19 @@
1
- /* Author block */
2
- #su-top-message {
3
- margin: 20px 20px 10px 0;
4
- padding: 5px 15px;
5
- border: 1px solid #E6DB55;
6
- background: #FFFFE0;
7
- border-radius: 3px;
8
- -moz-border-radius: 3px;
9
- -webkit-border-radius: 3px;
 
 
 
 
 
 
 
10
  }
11
 
12
  /* New shortcodes and options highlight */
@@ -64,6 +71,7 @@
64
  }
65
 
66
  .su-pane {
 
67
  display: none;
68
  width: 668px;
69
  background: #fff;
@@ -72,4 +80,26 @@
72
  border-right: 1px solid #DFDFDF;
73
  border-bottom: 1px solid #DFDFDF;
74
  border-left: 1px solid #DFDFDF;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  }
1
+ #su-wrapper {
2
+ padding-top: 20px;
3
+ }
4
+ .su-clear {
5
+ clear: both;
6
+ height: 0;
7
+ }
8
+ .su-onethird-column {
9
+ width: 40%;
10
+ margin: 0;
11
+ float: left;
12
+ }
13
+ .su-twothird-column {
14
+ width: 58%;
15
+ margin: 0;
16
+ float: left;
17
  }
18
 
19
  /* New shortcodes and options highlight */
71
  }
72
 
73
  .su-pane {
74
+ position: relative;
75
  display: none;
76
  width: 668px;
77
  background: #fff;
80
  border-right: 1px solid #DFDFDF;
81
  border-bottom: 1px solid #DFDFDF;
82
  border-left: 1px solid #DFDFDF;
83
+ }
84
+
85
+ /* Messages (notifications) */
86
+ .su-message {
87
+ position: absolute;
88
+ right: 2px;
89
+ top: 2px;
90
+ display: none;
91
+ margin: 0;
92
+ padding: 5px 10px;
93
+ font-size: 11px;
94
+ font-weight: bold;
95
+ }
96
+ .su-message-loading {
97
+ background: #ff9;
98
+ color: #000;
99
+ border: 1px solid #C2C23E;
100
+ }
101
+ .su-message-success {
102
+ background: #8EF59C;
103
+ color: #000;
104
+ border: 1px solid #66B070;
105
  }
css/style.css CHANGED
@@ -421,18 +421,18 @@
421
  }
422
 
423
  /* Nivo slider */
424
- #su-nivo-slider {
425
  position: relative;
426
  margin: 0 0 1.5em 0;
427
  background: #f8f8f8 url(../images/nivo-slider/loading.gif) no-repeat 50% 50%;
428
  }
429
- #su-nivo-slider img {
430
  position: absolute;
431
  top: 0;
432
  left: 0;
433
  display: none;
434
  }
435
- #su-nivo-slider a {
436
  border: 0;
437
  display: block;
438
  }
421
  }
422
 
423
  /* Nivo slider */
424
+ .su-nivo-slider {
425
  position: relative;
426
  margin: 0 0 1.5em 0;
427
  background: #f8f8f8 url(../images/nivo-slider/loading.gif) no-repeat 50% 50%;
428
  }
429
+ .su-nivo-slider img {
430
  position: absolute;
431
  top: 0;
432
  left: 0;
433
  display: none;
434
  }
435
+ .su-nivo-slider a {
436
  border: 0;
437
  display: block;
438
  }
js/admin.js CHANGED
@@ -9,5 +9,31 @@ jQuery(document).ready(function($) {
9
  $(this).addClass('su-current').siblings().removeClass('su-current')
10
  .parents('.wrap').find('.su-pane').hide().eq($(this).index()).show();
11
  editor.refresh();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  });
13
  });
9
  $(this).addClass('su-current').siblings().removeClass('su-current')
10
  .parents('.wrap').find('.su-pane').hide().eq($(this).index()).show();
11
  editor.refresh();
12
+ $('.su-message').hide();
13
+ });
14
+
15
+ // Forms
16
+ $('#su-form-save-settings').ajaxForm({
17
+ beforeSubmit: function() {
18
+ $('#su-form-save-settings .su-message-success').hide();
19
+ $('#su-form-save-settings .su-message-loading').slideDown(200);
20
+ },
21
+ success: function() {
22
+ $('#su-form-save-settings .su-message-success, #su-form-save-settings .su-message-loading').fadeOut(200);
23
+ $('#su-form-save-settings .su-message-success').fadeIn(200);
24
+ setTimeout('jQuery("#su-form-save-settings .su-message-success").slideUp(100)', 2000);
25
+ }
26
+ });
27
+
28
+ $('#su-form-save-custom-css').ajaxForm({
29
+ beforeSubmit: function() {
30
+ $('#su-form-save-custom-css .su-message-success').hide();
31
+ $('#su-form-save-custom-css .su-message-loading').slideDown(200);
32
+ },
33
+ success: function() {
34
+ $('#su-form-save-custom-css .su-message-success, #su-form-save-custom-css .su-message-loading').fadeOut(200);
35
+ $('#su-form-save-custom-css .su-message-success').fadeIn(200);
36
+ setTimeout('jQuery("#su-form-save-custom-css .su-message-success").slideUp(100)', 2000);
37
+ }
38
  });
39
  });
js/jquery.form.js ADDED
@@ -0,0 +1,815 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery Form Plugin
3
+ * version: 2.69 (06-APR-2011)
4
+ * @requires jQuery v1.3.2 or later
5
+ *
6
+ * Examples and documentation at: http://malsup.com/jquery/form/
7
+ * Dual licensed under the MIT and GPL licenses:
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ * http://www.gnu.org/licenses/gpl.html
10
+ */
11
+ ;(function($) {
12
+
13
+ /*
14
+ Usage Note:
15
+ -----------
16
+ Do not use both ajaxSubmit and ajaxForm on the same form. These
17
+ functions are intended to be exclusive. Use ajaxSubmit if you want
18
+ to bind your own submit handler to the form. For example,
19
+
20
+ $(document).ready(function() {
21
+ $('#myForm').bind('submit', function(e) {
22
+ e.preventDefault(); // <-- important
23
+ $(this).ajaxSubmit({
24
+ target: '#output'
25
+ });
26
+ });
27
+ });
28
+
29
+ Use ajaxForm when you want the plugin to manage all the event binding
30
+ for you. For example,
31
+
32
+ $(document).ready(function() {
33
+ $('#myForm').ajaxForm({
34
+ target: '#output'
35
+ });
36
+ });
37
+
38
+ When using ajaxForm, the ajaxSubmit function will be invoked for you
39
+ at the appropriate time.
40
+ */
41
+
42
+ /**
43
+ * ajaxSubmit() provides a mechanism for immediately submitting
44
+ * an HTML form using AJAX.
45
+ */
46
+ $.fn.ajaxSubmit = function(options) {
47
+ // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
48
+ if (!this.length) {
49
+ log('ajaxSubmit: skipping submit process - no element selected');
50
+ return this;
51
+ }
52
+
53
+ if (typeof options == 'function') {
54
+ options = { success: options };
55
+ }
56
+
57
+ var action = this.attr('action');
58
+ var url = (typeof action === 'string') ? $.trim(action) : '';
59
+ if (url) {
60
+ // clean url (don't include hash vaue)
61
+ url = (url.match(/^([^#]+)/)||[])[1];
62
+ }
63
+ url = url || window.location.href || '';
64
+
65
+ options = $.extend(true, {
66
+ url: url,
67
+ success: $.ajaxSettings.success,
68
+ type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57)
69
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
70
+ }, options);
71
+
72
+ // hook for manipulating the form data before it is extracted;
73
+ // convenient for use with rich editors like tinyMCE or FCKEditor
74
+ var veto = {};
75
+ this.trigger('form-pre-serialize', [this, options, veto]);
76
+ if (veto.veto) {
77
+ log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
78
+ return this;
79
+ }
80
+
81
+ // provide opportunity to alter form data before it is serialized
82
+ if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
83
+ log('ajaxSubmit: submit aborted via beforeSerialize callback');
84
+ return this;
85
+ }
86
+
87
+ var n,v,a = this.formToArray(options.semantic);
88
+ if (options.data) {
89
+ options.extraData = options.data;
90
+ for (n in options.data) {
91
+ if(options.data[n] instanceof Array) {
92
+ for (var k in options.data[n]) {
93
+ a.push( { name: n, value: options.data[n][k] } );
94
+ }
95
+ }
96
+ else {
97
+ v = options.data[n];
98
+ v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
99
+ a.push( { name: n, value: v } );
100
+ }
101
+ }
102
+ }
103
+
104
+ // give pre-submit callback an opportunity to abort the submit
105
+ if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
106
+ log('ajaxSubmit: submit aborted via beforeSubmit callback');
107
+ return this;
108
+ }
109
+
110
+ // fire vetoable 'validate' event
111
+ this.trigger('form-submit-validate', [a, this, options, veto]);
112
+ if (veto.veto) {
113
+ log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
114
+ return this;
115
+ }
116
+
117
+ var q = $.param(a);
118
+
119
+ if (options.type.toUpperCase() == 'GET') {
120
+ options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
121
+ options.data = null; // data is null for 'get'
122
+ }
123
+ else {
124
+ options.data = q; // data is the query string for 'post'
125
+ }
126
+
127
+ var $form = this, callbacks = [];
128
+ if (options.resetForm) {
129
+ callbacks.push(function() { $form.resetForm(); });
130
+ }
131
+ if (options.clearForm) {
132
+ callbacks.push(function() { $form.clearForm(); });
133
+ }
134
+
135
+ // perform a load on the target only if dataType is not provided
136
+ if (!options.dataType && options.target) {
137
+ var oldSuccess = options.success || function(){};
138
+ callbacks.push(function(data) {
139
+ var fn = options.replaceTarget ? 'replaceWith' : 'html';
140
+ $(options.target)[fn](data).each(oldSuccess, arguments);
141
+ });
142
+ }
143
+ else if (options.success) {
144
+ callbacks.push(options.success);
145
+ }
146
+
147
+ options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
148
+ var context = options.context || options; // jQuery 1.4+ supports scope context
149
+ for (var i=0, max=callbacks.length; i < max; i++) {
150
+ callbacks[i].apply(context, [data, status, xhr || $form, $form]);
151
+ }
152
+ };
153
+
154
+ // are there files to upload?
155
+ var fileInputs = $('input:file', this).length > 0;
156
+ var mp = 'multipart/form-data';
157
+ var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
158
+
159
+ // options.iframe allows user to force iframe mode
160
+ // 06-NOV-09: now defaulting to iframe mode if file input is detected
161
+ if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
162
+ // hack to fix Safari hang (thanks to Tim Molendijk for this)
163
+ // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
164
+ if (options.closeKeepAlive) {
165
+ $.get(options.closeKeepAlive, fileUpload);
166
+ }
167
+ else {
168
+ fileUpload();
169
+ }
170
+ }
171
+ else {
172
+ $.ajax(options);
173
+ }
174
+
175
+ // fire 'notify' event
176
+ this.trigger('form-submit-notify', [this, options]);
177
+ return this;
178
+
179
+
180
+ // private function for handling file uploads (hat tip to YAHOO!)
181
+ function fileUpload() {
182
+ var form = $form[0];
183
+
184
+ if ($(':input[name=submit],:input[id=submit]', form).length) {
185
+ // if there is an input with a name or id of 'submit' then we won't be
186
+ // able to invoke the submit fn on the form (at least not x-browser)
187
+ alert('Error: Form elements must not have name or id of "submit".');
188
+ return;
189
+ }
190
+
191
+ var s = $.extend(true, {}, $.ajaxSettings, options);
192
+ s.context = s.context || s;
193
+ var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
194
+ var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" />');
195
+ var io = $io[0];
196
+
197
+ $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
198
+
199
+ var xhr = { // mock object
200
+ aborted: 0,
201
+ responseText: null,
202
+ responseXML: null,
203
+ status: 0,
204
+ statusText: 'n/a',
205
+ getAllResponseHeaders: function() {},
206
+ getResponseHeader: function() {},
207
+ setRequestHeader: function() {},
208
+ abort: function() {
209
+ log('aborting upload...');
210
+ var e = 'aborted';
211
+ this.aborted = 1;
212
+ $io.attr('src', s.iframeSrc); // abort op in progress
213
+ xhr.error = e;
214
+ s.error && s.error.call(s.context, xhr, 'error', e);
215
+ g && $.event.trigger("ajaxError", [xhr, s, e]);
216
+ s.complete && s.complete.call(s.context, xhr, 'error');
217
+ }
218
+ };
219
+
220
+ var g = s.global;
221
+ // trigger ajax global events so that activity/block indicators work like normal
222
+ if (g && ! $.active++) {
223
+ $.event.trigger("ajaxStart");
224
+ }
225
+ if (g) {
226
+ $.event.trigger("ajaxSend", [xhr, s]);
227
+ }
228
+
229
+ if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
230
+ if (s.global) {
231
+ $.active--;
232
+ }
233
+ return;
234
+ }
235
+ if (xhr.aborted) {
236
+ return;
237
+ }
238
+
239
+ var timedOut = 0;
240
+
241
+ // add submitting element to data if we know it
242
+ var sub = form.clk;
243
+ if (sub) {
244
+ var n = sub.name;
245
+ if (n && !sub.disabled) {
246
+ s.extraData = s.extraData || {};
247
+ s.extraData[n] = sub.value;
248
+ if (sub.type == "image") {
249
+ s.extraData[n+'.x'] = form.clk_x;
250
+ s.extraData[n+'.y'] = form.clk_y;
251
+ }
252
+ }
253
+ }
254
+
255
+ // take a breath so that pending repaints get some cpu time before the upload starts
256
+ function doSubmit() {
257
+ // make sure form attrs are set
258
+ var t = $form.attr('target'), a = $form.attr('action');
259
+
260
+ // update form attrs in IE friendly way
261
+ form.setAttribute('target',id);
262
+ if (form.getAttribute('method') != 'POST') {
263
+ form.setAttribute('method', 'POST');
264
+ }
265
+ if (form.getAttribute('action') != s.url) {
266
+ form.setAttribute('action', s.url);
267
+ }
268
+
269
+ // ie borks in some cases when setting encoding
270
+ if (! s.skipEncodingOverride) {
271
+ $form.attr({
272
+ encoding: 'multipart/form-data',
273
+ enctype: 'multipart/form-data'
274
+ });
275
+ }
276
+
277
+ // support timout
278
+ if (s.timeout) {
279
+ setTimeout(function() { timedOut = true; cb(); }, s.timeout);
280
+ }
281
+
282
+ // add "extra" data to form if provided in options
283
+ var extraInputs = [];
284
+ try {
285
+ if (s.extraData) {
286
+ for (var n in s.extraData) {
287
+ extraInputs.push(
288
+ $('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
289
+ .appendTo(form)[0]);
290
+ }
291
+ }
292
+
293
+ // add iframe to doc and submit the form
294
+ $io.appendTo('body');
295
+ io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
296
+ form.submit();
297
+ }
298
+ finally {
299
+ // reset attrs and remove "extra" input elements
300
+ form.setAttribute('action',a);
301
+ if(t) {
302
+ form.setAttribute('target', t);
303
+ } else {
304
+ $form.removeAttr('target');
305
+ }
306
+ $(extraInputs).remove();
307
+ }
308
+ }
309
+
310
+ if (s.forceSync) {
311
+ doSubmit();
312
+ }
313
+ else {
314
+ setTimeout(doSubmit, 10); // this lets dom updates render
315
+ }
316
+
317
+ var data, doc, domCheckCount = 50;
318
+
319
+ function cb() {
320
+ if (xhr.aborted) {
321
+ return;
322
+ }
323
+
324
+ var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
325
+ if (!doc || doc.location.href == s.iframeSrc) {
326
+ // response not received yet
327
+ if (!timedOut)
328
+ return;
329
+ }
330
+ io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
331
+
332
+ var ok = true;
333
+ try {
334
+ if (timedOut) {
335
+ throw 'timeout';
336
+ }
337
+
338
+ var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
339
+ log('isXml='+isXml);
340
+ if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
341
+ if (--domCheckCount) {
342
+ // in some browsers (Opera) the iframe DOM is not always traversable when
343
+ // the onload callback fires, so we loop a bit to accommodate
344
+ log('requeing onLoad callback, DOM not available');
345
+ setTimeout(cb, 250);
346
+ return;
347
+ }
348
+ // let this fall through because server response could be an empty document
349
+ //log('Could not access iframe DOM after mutiple tries.');
350
+ //throw 'DOMException: not available';
351
+ }
352
+
353
+ //log('response detected');
354
+ xhr.responseText = doc.body ? doc.body.innerHTML : doc.documentElement ? doc.documentElement.innerHTML : null;
355
+ xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
356
+ xhr.getResponseHeader = function(header){
357
+ var headers = {'content-type': s.dataType};
358
+ return headers[header];
359
+ };
360
+
361
+ var scr = /(json|script)/.test(s.dataType);
362
+ if (scr || s.textarea) {
363
+ // see if user embedded response in textarea
364
+ var ta = doc.getElementsByTagName('textarea')[0];
365
+ if (ta) {
366
+ xhr.responseText = ta.value;
367
+ }
368
+ else if (scr) {
369
+ // account for browsers injecting pre around json response
370
+ var pre = doc.getElementsByTagName('pre')[0];
371
+ var b = doc.getElementsByTagName('body')[0];
372
+ if (pre) {
373
+ xhr.responseText = pre.textContent;
374
+ }
375
+ else if (b) {
376
+ xhr.responseText = b.innerHTML;
377
+ }
378
+ }
379
+ }
380
+ else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
381
+ xhr.responseXML = toXml(xhr.responseText);
382
+ }
383
+
384
+ data = httpData(xhr, s.dataType, s);
385
+ }
386
+ catch(e){
387
+ log('error caught:',e);
388
+ ok = false;
389
+ xhr.error = e;
390
+ s.error && s.error.call(s.context, xhr, 'error', e);
391
+ g && $.event.trigger("ajaxError", [xhr, s, e]);
392
+ }
393
+
394
+ if (xhr.aborted) {
395
+ log('upload aborted');
396
+ ok = false;
397
+ }
398
+
399
+ // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
400
+ if (ok) {
401
+ s.success && s.success.call(s.context, data, 'success', xhr);
402
+ g && $.event.trigger("ajaxSuccess", [xhr, s]);
403
+ }
404
+
405
+ g && $.event.trigger("ajaxComplete", [xhr, s]);
406
+
407
+ if (g && ! --$.active) {
408
+ $.event.trigger("ajaxStop");
409
+ }
410
+
411
+ s.complete && s.complete.call(s.context, xhr, ok ? 'success' : 'error');
412
+
413
+ // clean up
414
+ setTimeout(function() {
415
+ $io.removeData('form-plugin-onload');
416
+ $io.remove();
417
+ xhr.responseXML = null;
418
+ }, 100);
419
+ }
420
+
421
+ var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
422
+ if (window.ActiveXObject) {
423
+ doc = new ActiveXObject('Microsoft.XMLDOM');
424
+ doc.async = 'false';
425
+ doc.loadXML(s);
426
+ }
427
+ else {
428
+ doc = (new DOMParser()).parseFromString(s, 'text/xml');
429
+ }
430
+ return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
431
+ };
432
+ var parseJSON = $.parseJSON || function(s) {
433
+ return window['eval']('(' + s + ')');
434
+ };
435
+
436
+ var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
437
+ var ct = xhr.getResponseHeader('content-type') || '',
438
+ xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
439
+ data = xml ? xhr.responseXML : xhr.responseText;
440
+
441
+ if (xml && data.documentElement.nodeName === 'parsererror') {
442
+ $.error && $.error('parsererror');
443
+ }
444
+ if (s && s.dataFilter) {
445
+ data = s.dataFilter(data, type);
446
+ }
447
+ if (typeof data === 'string') {
448
+ if (type === 'json' || !type && ct.indexOf('json') >= 0) {
449
+ data = parseJSON(data);
450
+ } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
451
+ $.globalEval(data);
452
+ }
453
+ }
454
+ return data;
455
+ };
456
+ }
457
+ };
458
+
459
+ /**
460
+ * ajaxForm() provides a mechanism for fully automating form submission.
461
+ *
462
+ * The advantages of using this method instead of ajaxSubmit() are:
463
+ *
464
+ * 1: This method will include coordinates for <input type="image" /> elements (if the element
465
+ * is used to submit the form).
466
+ * 2. This method will include the submit element's name/value data (for the element that was
467
+ * used to submit the form).
468
+ * 3. This method binds the submit() method to the form for you.
469
+ *
470
+ * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
471
+ * passes the options argument along after properly binding events for submit elements and
472
+ * the form itself.
473
+ */
474
+ $.fn.ajaxForm = function(options) {
475
+ // in jQuery 1.3+ we can fix mistakes with the ready state
476
+ if (this.length === 0) {
477
+ var o = { s: this.selector, c: this.context };
478
+ if (!$.isReady && o.s) {
479
+ log('DOM not ready, queuing ajaxForm');
480
+ $(function() {
481
+ $(o.s,o.c).ajaxForm(options);
482
+ });
483
+ return this;
484
+ }
485
+ // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
486
+ log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
487
+ return this;
488
+ }
489
+
490
+ return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
491
+ if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
492
+ e.preventDefault();
493
+ $(this).ajaxSubmit(options);
494
+ }
495
+ }).bind('click.form-plugin', function(e) {
496
+ var target = e.target;
497
+ var $el = $(target);
498
+ if (!($el.is(":submit,input:image"))) {
499
+ // is this a child element of the submit el? (ex: a span within a button)
500
+ var t = $el.closest(':submit');
501
+ if (t.length == 0) {
502
+ return;
503
+ }
504
+ target = t[0];
505
+ }
506
+ var form = this;
507
+ form.clk = target;
508
+ if (target.type == 'image') {
509
+ if (e.offsetX != undefined) {
510
+ form.clk_x = e.offsetX;
511
+ form.clk_y = e.offsetY;
512
+ } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
513
+ var offset = $el.offset();
514
+ form.clk_x = e.pageX - offset.left;
515
+ form.clk_y = e.pageY - offset.top;
516
+ } else {
517
+ form.clk_x = e.pageX - target.offsetLeft;
518
+ form.clk_y = e.pageY - target.offsetTop;
519
+ }
520
+ }
521
+ // clear form vars
522
+ setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
523
+ });
524
+ };
525
+
526
+ // ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
527
+ $.fn.ajaxFormUnbind = function() {
528
+ return this.unbind('submit.form-plugin click.form-plugin');
529
+ };
530
+
531
+ /**
532
+ * formToArray() gathers form element data into an array of objects that can
533
+ * be passed to any of the following ajax functions: $.get, $.post, or load.
534
+ * Each object in the array has both a 'name' and 'value' property. An example of
535
+ * an array for a simple login form might be:
536
+ *
537
+ * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
538
+ *
539
+ * It is this array that is passed to pre-submit callback functions provided to the
540
+ * ajaxSubmit() and ajaxForm() methods.
541
+ */
542
+ $.fn.formToArray = function(semantic) {
543
+ var a = [];
544
+ if (this.length === 0) {
545
+ return a;
546
+ }
547
+
548
+ var form = this[0];
549
+ var els = semantic ? form.getElementsByTagName('*') : form.elements;
550
+ if (!els) {
551
+ return a;
552
+ }
553
+
554
+ var i,j,n,v,el,max,jmax;
555
+ for(i=0, max=els.length; i < max; i++) {
556
+ el = els[i];
557
+ n = el.name;
558
+ if (!n) {
559
+ continue;
560
+ }
561
+
562
+ if (semantic && form.clk && el.type == "image") {
563
+ // handle image inputs on the fly when semantic == true
564
+ if(!el.disabled && form.clk == el) {
565
+ a.push({name: n, value: $(el).val()});
566
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
567
+ }
568
+ continue;
569
+ }
570
+
571
+ v = $.fieldValue(el, true);
572
+ if (v && v.constructor == Array) {
573
+ for(j=0, jmax=v.length; j < jmax; j++) {
574
+ a.push({name: n, value: v[j]});
575
+ }
576
+ }
577
+ else if (v !== null && typeof v != 'undefined') {
578
+ a.push({name: n, value: v});
579
+ }
580
+ }
581
+
582
+ if (!semantic && form.clk) {
583
+ // input type=='image' are not found in elements array! handle it here
584
+ var $input = $(form.clk), input = $input[0];
585
+ n = input.name;
586
+ if (n && !input.disabled && input.type == 'image') {
587
+ a.push({name: n, value: $input.val()});
588
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
589
+ }
590
+ }
591
+ return a;
592
+ };
593
+
594
+ /**
595
+ * Serializes form data into a 'submittable' string. This method will return a string
596
+ * in the format: name1=value1&amp;name2=value2
597
+ */
598
+ $.fn.formSerialize = function(semantic) {
599
+ //hand off to jQuery.param for proper encoding
600
+ return $.param(this.formToArray(semantic));
601
+ };
602
+
603
+ /**
604
+ * Serializes all field elements in the jQuery object into a query string.
605
+ * This method will return a string in the format: name1=value1&amp;name2=value2
606
+ */
607
+ $.fn.fieldSerialize = function(successful) {
608
+ var a = [];
609
+ this.each(function() {
610
+ var n = this.name;
611
+ if (!n) {
612
+ return;
613
+ }
614
+ var v = $.fieldValue(this, successful);
615
+ if (v && v.constructor == Array) {
616
+ for (var i=0,max=v.length; i < max; i++) {
617
+ a.push({name: n, value: v[i]});
618
+ }
619
+ }
620
+ else if (v !== null && typeof v != 'undefined') {
621
+ a.push({name: this.name, value: v});
622
+ }
623
+ });
624
+ //hand off to jQuery.param for proper encoding
625
+ return $.param(a);
626
+ };
627
+
628
+ /**
629
+ * Returns the value(s) of the element in the matched set. For example, consider the following form:
630
+ *
631
+ * <form><fieldset>
632
+ * <input name="A" type="text" />
633
+ * <input name="A" type="text" />
634
+ * <input name="B" type="checkbox" value="B1" />
635
+ * <input name="B" type="checkbox" value="B2"/>
636
+ * <input name="C" type="radio" value="C1" />
637
+ * <input name="C" type="radio" value="C2" />
638
+ * </fieldset></form>
639
+ *
640
+ * var v = $(':text').fieldValue();
641
+ * // if no values are entered into the text inputs
642
+ * v == ['','']
643
+ * // if values entered into the text inputs are 'foo' and 'bar'
644
+ * v == ['foo','bar']
645
+ *
646
+ * var v = $(':checkbox').fieldValue();
647
+ * // if neither checkbox is checked
648
+ * v === undefined
649
+ * // if both checkboxes are checked
650
+ * v == ['B1', 'B2']
651
+ *
652
+ * var v = $(':radio').fieldValue();
653
+ * // if neither radio is checked
654
+ * v === undefined
655
+ * // if first radio is checked
656
+ * v == ['C1']
657
+ *
658
+ * The successful argument controls whether or not the field element must be 'successful'
659
+ * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
660
+ * The default value of the successful argument is true. If this value is false the value(s)
661
+ * for each element is returned.
662
+ *
663
+ * Note: This method *always* returns an array. If no valid value can be determined the
664
+ * array will be empty, otherwise it will contain one or more values.
665
+ */
666
+ $.fn.fieldValue = function(successful) {
667
+ for (var val=[], i=0, max=this.length; i < max; i++) {
668
+ var el = this[i];
669
+ var v = $.fieldValue(el, successful);
670
+ if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
671
+ continue;
672
+ }
673
+ v.constructor == Array ? $.merge(val, v) : val.push(v);
674
+ }
675
+ return val;
676
+ };
677
+
678
+ /**
679
+ * Returns the value of the field element.
680
+ */
681
+ $.fieldValue = function(el, successful) {
682
+ var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
683
+ if (successful === undefined) {
684
+ successful = true;
685
+ }
686
+
687
+ if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
688
+ (t == 'checkbox' || t == 'radio') && !el.checked ||
689
+ (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
690
+ tag == 'select' && el.selectedIndex == -1)) {
691
+ return null;
692
+ }
693
+
694
+ if (tag == 'select') {
695
+ var index = el.selectedIndex;
696
+ if (index < 0) {
697
+ return null;
698
+ }
699
+ var a = [], ops = el.options;
700
+ var one = (t == 'select-one');
701
+ var max = (one ? index+1 : ops.length);
702
+ for(var i=(one ? index : 0); i < max; i++) {
703
+ var op = ops[i];
704
+ if (op.selected) {
705
+ var v = op.value;
706
+ if (!v) { // extra pain for IE...
707
+ v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
708
+ }
709
+ if (one) {
710
+ return v;
711
+ }
712
+ a.push(v);
713
+ }
714
+ }
715
+ return a;
716
+ }
717
+ return $(el).val();
718
+ };
719
+
720
+ /**
721
+ * Clears the form data. Takes the following actions on the form's input fields:
722
+ * - input text fields will have their 'value' property set to the empty string
723
+ * - select elements will have their 'selectedIndex' property set to -1
724
+ * - checkbox and radio inputs will have their 'checked' property set to false
725
+ * - inputs of type submit, button, reset, and hidden will *not* be effected
726
+ * - button elements will *not* be effected
727
+ */
728
+ $.fn.clearForm = function() {
729
+ return this.each(function() {
730
+ $('input,select,textarea', this).clearFields();
731
+ });
732
+ };
733
+
734
+ /**
735
+ * Clears the selected form elements.
736
+ */
737
+ $.fn.clearFields = $.fn.clearInputs = function() {
738
+ return this.each(function() {
739
+ var t = this.type, tag = this.tagName.toLowerCase();
740
+ if (t == 'text' || t == 'password' || tag == 'textarea') {
741
+ this.value = '';
742
+ }
743
+ else if (t == 'checkbox' || t == 'radio') {
744
+ this.checked = false;
745
+ }
746
+ else if (tag == 'select') {
747
+ this.selectedIndex = -1;
748
+ }
749
+ });
750
+ };
751
+
752
+ /**
753
+ * Resets the form data. Causes all form elements to be reset to their original value.
754
+ */
755
+ $.fn.resetForm = function() {
756
+ return this.each(function() {
757
+ // guard against an input with the name of 'reset'
758
+ // note that IE reports the reset function as an 'object'
759
+ if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
760
+ this.reset();
761
+ }
762
+ });
763
+ };
764
+
765
+ /**
766
+ * Enables or disables any matching elements.
767
+ */
768
+ $.fn.enable = function(b) {
769
+ if (b === undefined) {
770
+ b = true;
771
+ }
772
+ return this.each(function() {
773
+ this.disabled = !b;
774
+ });
775
+ };
776
+
777
+ /**
778
+ * Checks/unchecks any matching checkboxes or radio buttons and
779
+ * selects/deselects and matching option elements.
780
+ */
781
+ $.fn.selected = function(select) {
782
+ if (select === undefined) {
783
+ select = true;
784
+ }
785
+ return this.each(function() {
786
+ var t = this.type;
787
+ if (t == 'checkbox' || t == 'radio') {
788
+ this.checked = select;
789
+ }
790
+ else if (this.tagName.toLowerCase() == 'option') {
791
+ var $sel = $(this).parent('select');
792
+ if (select && $sel[0] && $sel[0].type == 'select-one') {
793
+ // deselect all other options
794
+ $sel.find('option').selected(false);
795
+ }
796
+ this.selected = select;
797
+ }
798
+ });
799
+ };
800
+
801
+ // helper fn for console logging
802
+ // set $.fn.ajaxSubmit.debug to true to enable debug logging
803
+ function log() {
804
+ if ($.fn.ajaxSubmit.debug) {
805
+ var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
806
+ if (window.console && window.console.log) {
807
+ window.console.log(msg);
808
+ }
809
+ else if (window.opera && window.opera.postError) {
810
+ window.opera.postError(msg);
811
+ }
812
+ }
813
+ };
814
+
815
+ })(jQuery);
languages/shortcodes-ultimate-ru_RU.mo CHANGED
Binary file
languages/shortcodes-ultimate-ru_RU.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: gn_themes\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2011-04-27 23:53+0300\n"
6
- "PO-Revision-Date: 2011-04-27 23:53+0300\n"
7
  "Last-Translator: Vladimir Anokhin <ano.vladimir@gmail.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -14,24 +14,30 @@ msgstr ""
14
  "X-Poedit-SourceCharset: utf-8\n"
15
  "X-Poedit-SearchPath-0: .\n"
16
 
17
- #: shortcodes-ultimate.php:155
18
  #: lib/admin.php:23
19
  msgid "Shortcodes Ultimate"
20
  msgstr "Шорткоды"
21
 
22
- #: shortcodes-ultimate.php:155
23
  msgid "Vladimir Anokhin"
24
  msgstr "Владимир Анохин"
25
 
26
- #: shortcodes-ultimate.php:155
27
  msgid "Provides support for many easy to use shortcodes"
28
  msgstr "Предоставляет поддержку множества полезных шорткодов"
29
 
30
- #: shortcodes-ultimate.php:239
 
 
 
 
 
31
  msgid "Settings saved"
32
  msgstr "Настройки сохранены"
33
 
34
- #: shortcodes-ultimate.php:244
 
35
  msgid "Custom CSS saved"
36
  msgstr "Произвольные стили сохранены"
37
 
@@ -39,197 +45,195 @@ msgstr "Произвольные стили сохранены"
39
  msgid "Shortcodes"
40
  msgstr "Шорткоды"
41
 
42
- #: lib/admin.php:27
43
- msgid "You can support this project by buying the author a cup of coffee!"
44
- msgstr "Вы можете поддержать этот проект, купив автору чашечку кофе!"
45
-
46
- #: lib/admin.php:29
47
- msgid "Donate with MoneyBookers.com"
48
- msgstr "Сделать пожертвование через MoneyBookers.com"
49
-
50
- #: lib/admin.php:44
51
- #: lib/admin.php:45
52
- #: lib/admin.php:54
53
- msgid "Donation to help support Shortcodes Ultimate plugin"
54
- msgstr "Пожертвование автору плагина Shortcodes Ultimate"
55
-
56
- #: lib/admin.php:46
57
- msgid "Click to make a donation"
58
- msgstr "Кликните, чтобы сделать пожертвование"
59
-
60
- #: lib/admin.php:46
61
- #: lib/admin.php:56
62
- msgid "Donate"
63
- msgstr "Пожертвовать"
64
 
65
- #: lib/admin.php:50
66
- msgid "Donate with Money.Yandex.ru"
67
- msgstr "Сделать пожертвование через Money.Yandex.ru"
68
 
69
- #: lib/admin.php:52
70
- msgid "RUR"
71
- msgstr "Руб."
72
 
73
- #: lib/admin.php:59
74
- msgid "Donate with WebMoney.ru"
75
- msgstr "Сделать пожертвование через WebMoney.ru"
76
 
77
- #: lib/admin.php:63
78
- msgid "Support links"
79
- msgstr "Полезные ссылки"
80
 
81
- #: lib/admin.php:64
82
  msgid "Support forum"
83
  msgstr "Форум поддержки"
84
 
85
- #: lib/admin.php:64
86
  msgid "Twitter"
87
  msgstr "Твиттер разработчика"
88
 
89
- #: lib/admin.php:64
90
  msgid "Bug report"
91
  msgstr "Сообщить об ошибке"
92
 
93
- #: lib/admin.php:71
94
- msgid "General settings"
95
- msgstr "Основные настройки"
96
 
97
- #: lib/admin.php:72
98
- msgid "Custom CSS"
99
- msgstr "Произвольные стили"
100
 
101
- #: lib/admin.php:73
102
- msgid "Available shortcodes"
103
- msgstr "Список шорткодов"
 
 
 
 
 
 
 
 
 
 
 
 
104
 
105
- #: lib/admin.php:80
 
 
 
 
 
106
  msgid "Disable custom formatting"
107
  msgstr "Отключить специальное форматирование"
108
 
109
- #: lib/admin.php:83
110
  msgid "Enable this option if you have some problems with other plugins or content formatting"
111
  msgstr "Отметьте этот флажок, если у вас возникли пролемы совместимости с другими плагинами или форматированием контента"
112
 
113
- #: lib/admin.php:88
114
  msgid "Compatibility mode"
115
  msgstr "Режим совместимости"
116
 
117
- #: lib/admin.php:91
118
  msgid "Enable this option if you have some problems with other plugins that uses similar shortcode names"
119
  msgstr "Отметьте этот флажок, если у вас используются другие шорткоды с такими же именами. Все шорткоды этого плагина будут иметь такие имена"
120
 
121
- #: lib/admin.php:96
122
  msgid "Save settings"
123
  msgstr "Сохранить настройки"
124
 
125
- #: lib/admin.php:105
126
  msgid "You can add custom styles, that will override defaults"
127
  msgstr "Вы можете добавить произвольные стили, которые заменят оригинальные стили для шорткодов"
128
 
129
- #: lib/admin.php:106
130
  msgid "See original styles"
131
  msgstr "Смотреть оригинальные стили"
132
 
133
- #: lib/admin.php:109
134
  msgid "Save styles"
135
  msgstr "Сохранить стили"
136
 
137
- #: lib/admin.php:117
138
  msgid "Shortcode"
139
  msgstr "Шорткоды"
140
 
141
- #: lib/admin.php:118
142
  msgid "Parameters"
143
  msgstr "Параметры"
144
 
145
- #: lib/admin.php:119
146
  msgid "Usage"
147
  msgstr "Пример использования"
148
 
149
- #: lib/admin.php:124
150
- #: lib/admin.php:154
151
- #: lib/admin.php:159
152
- #: lib/admin.php:164
153
- #: lib/admin.php:184
154
- #: lib/admin.php:189
155
- #: lib/admin.php:199
156
  msgid "Content"
157
  msgstr "Содержимое"
158
 
159
- #: lib/admin.php:134
160
  msgid "Tab name"
161
  msgstr "Имя вкладки"
162
 
163
- #: lib/admin.php:134
164
  msgid "Tab content"
165
  msgstr "Содержимое вкладки"
166
 
167
- #: lib/admin.php:139
168
  #: lib/shortcodes.php:78
169
  msgid "Spoiler title"
170
  msgstr "Скрытый текст"
171
 
172
- #: lib/admin.php:139
173
  msgid "Hidden text"
174
  msgstr "Скрытый текст"
175
 
176
- #: lib/admin.php:143
177
- #: lib/admin.php:168
178
- #: lib/admin.php:203
179
- #: lib/admin.php:213
180
  msgid "optional"
181
  msgstr "необяз."
182
 
183
- #: lib/admin.php:169
184
  msgid "Button text"
185
  msgstr "Текст кнопки"
186
 
187
- #: lib/admin.php:174
188
  msgid "Read more"
189
  msgstr "Подробнее"
190
 
191
- #: lib/admin.php:178
192
  msgid "image url"
193
  msgstr "ссылка на изображение"
194
 
195
- #: lib/admin.php:178
196
  msgid "icon size"
197
  msgstr "размер иконки"
198
 
199
- #: lib/admin.php:179
200
  #: lib/shortcodes.php:292
201
  msgid "Service name"
202
  msgstr "Название услуги"
203
 
204
- #: lib/admin.php:179
205
  msgid "Service description"
206
  msgstr "Описание услуги"
207
 
208
- #: lib/admin.php:184
209
  msgid "Box title"
210
  msgstr "Заголовок блока"
211
 
212
- #: lib/admin.php:194
213
  msgid "List item"
214
  msgstr "Элемент списка"
215
 
216
- #: lib/admin.php:198
217
  msgid "add this to last columns"
218
  msgstr "добавьте к каждой последней колонке"
219
 
220
- #: lib/admin.php:204
221
  msgid "Plain table"
222
  msgstr "Простая таблица"
223
 
224
- #: lib/admin.php:204
225
  msgid "From CSV"
226
  msgstr "Из CSV-файла"
227
 
228
- #: lib/admin.php:213
229
  msgid "1 second"
230
  msgstr "1 секунда"
231
 
232
- #: lib/admin.php:218
233
  msgid "See filter IDs"
234
  msgstr "Смотреть ID фильтров"
235
 
@@ -245,10 +249,34 @@ msgstr "Заголовок блока"
245
  msgid "Please specify media url"
246
  msgstr "Укажите ссылку на медиа"
247
 
248
- #: lib/shortcodes.php:481
249
  msgid "no attached images, or only one attached image"
250
  msgstr "не найдены загруженные изображения, или изображение всего одно"
251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  #~ msgid "Want to support author? Just share this link!"
253
  #~ msgstr "Хотите поддержать автора? Просто опубликйте ссылку!"
254
 
2
  msgstr ""
3
  "Project-Id-Version: gn_themes\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2011-04-28 04:56+0300\n"
6
+ "PO-Revision-Date: 2011-04-28 04:57+0300\n"
7
  "Last-Translator: Vladimir Anokhin <ano.vladimir@gmail.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
14
  "X-Poedit-SourceCharset: utf-8\n"
15
  "X-Poedit-SearchPath-0: .\n"
16
 
17
+ #: shortcodes-ultimate.php:157
18
  #: lib/admin.php:23
19
  msgid "Shortcodes Ultimate"
20
  msgstr "Шорткоды"
21
 
22
+ #: shortcodes-ultimate.php:157
23
  msgid "Vladimir Anokhin"
24
  msgstr "Владимир Анохин"
25
 
26
+ #: shortcodes-ultimate.php:157
27
  msgid "Provides support for many easy to use shortcodes"
28
  msgstr "Предоставляет поддержку множества полезных шорткодов"
29
 
30
+ #: shortcodes-ultimate.php:241
31
+ msgid "Settings"
32
+ msgstr "Настройки"
33
+
34
+ #: shortcodes-ultimate.php:254
35
+ #: lib/admin.php:61
36
  msgid "Settings saved"
37
  msgstr "Настройки сохранены"
38
 
39
+ #: shortcodes-ultimate.php:259
40
+ #: lib/admin.php:91
41
  msgid "Custom CSS saved"
42
  msgstr "Произвольные стили сохранены"
43
 
45
  msgid "Shortcodes"
46
  msgstr "Шорткоды"
47
 
48
+ #: lib/admin.php:31
49
+ msgid "About"
50
+ msgstr "О плагине"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
+ #: lib/admin.php:32
53
+ msgid "General settings"
54
+ msgstr "Основные настройки"
55
 
56
+ #: lib/admin.php:33
57
+ msgid "Custom CSS"
58
+ msgstr "Произвольные стили"
59
 
60
+ #: lib/admin.php:34
61
+ msgid "Available shortcodes"
62
+ msgstr "Список шорткодов"
63
 
64
+ #: lib/admin.php:40
65
+ msgid "FREE Support"
66
+ msgstr "БЕСПЛАТНАЯ поддержка"
67
 
68
+ #: lib/admin.php:41
69
  msgid "Support forum"
70
  msgstr "Форум поддержки"
71
 
72
+ #: lib/admin.php:42
73
  msgid "Twitter"
74
  msgstr "Твиттер разработчика"
75
 
76
+ #: lib/admin.php:43
77
  msgid "Bug report"
78
  msgstr "Сообщить об ошибке"
79
 
80
+ #: lib/admin.php:49
81
+ msgid "Do you love this plugin?"
82
+ msgstr "Вам нравится этот плагин?"
83
 
84
+ #: lib/admin.php:50
85
+ msgid "Buy author a beer"
86
+ msgstr "Купите автору пива"
87
 
88
+ #: lib/admin.php:50
89
+ msgid "Donate"
90
+ msgstr "Сделать пожертвование"
91
+
92
+ #: lib/admin.php:51
93
+ msgid "Rate this plugin at wordpress.org"
94
+ msgstr "Оцените плагин на wordpress.org"
95
+
96
+ #: lib/admin.php:51
97
+ msgid "5 stars"
98
+ msgstr "5 звезд"
99
+
100
+ #: lib/admin.php:52
101
+ msgid "Review this plugin in your blog"
102
+ msgstr "Сделайте обзор этого плагина в своем блоге"
103
 
104
+ #: lib/admin.php:60
105
+ #: lib/admin.php:90
106
+ msgid "Saving..."
107
+ msgstr "Сохранение..."
108
+
109
+ #: lib/admin.php:65
110
  msgid "Disable custom formatting"
111
  msgstr "Отключить специальное форматирование"
112
 
113
+ #: lib/admin.php:68
114
  msgid "Enable this option if you have some problems with other plugins or content formatting"
115
  msgstr "Отметьте этот флажок, если у вас возникли пролемы совместимости с другими плагинами или форматированием контента"
116
 
117
+ #: lib/admin.php:73
118
  msgid "Compatibility mode"
119
  msgstr "Режим совместимости"
120
 
121
+ #: lib/admin.php:76
122
  msgid "Enable this option if you have some problems with other plugins that uses similar shortcode names"
123
  msgstr "Отметьте этот флажок, если у вас используются другие шорткоды с такими же именами. Все шорткоды этого плагина будут иметь такие имена"
124
 
125
+ #: lib/admin.php:81
126
  msgid "Save settings"
127
  msgstr "Сохранить настройки"
128
 
129
+ #: lib/admin.php:92
130
  msgid "You can add custom styles, that will override defaults"
131
  msgstr "Вы можете добавить произвольные стили, которые заменят оригинальные стили для шорткодов"
132
 
133
+ #: lib/admin.php:93
134
  msgid "See original styles"
135
  msgstr "Смотреть оригинальные стили"
136
 
137
+ #: lib/admin.php:96
138
  msgid "Save styles"
139
  msgstr "Сохранить стили"
140
 
141
+ #: lib/admin.php:104
142
  msgid "Shortcode"
143
  msgstr "Шорткоды"
144
 
145
+ #: lib/admin.php:105
146
  msgid "Parameters"
147
  msgstr "Параметры"
148
 
149
+ #: lib/admin.php:106
150
  msgid "Usage"
151
  msgstr "Пример использования"
152
 
153
+ #: lib/admin.php:111
154
+ #: lib/admin.php:141
155
+ #: lib/admin.php:146
156
+ #: lib/admin.php:151
157
+ #: lib/admin.php:171
158
+ #: lib/admin.php:176
159
+ #: lib/admin.php:186
160
  msgid "Content"
161
  msgstr "Содержимое"
162
 
163
+ #: lib/admin.php:121
164
  msgid "Tab name"
165
  msgstr "Имя вкладки"
166
 
167
+ #: lib/admin.php:121
168
  msgid "Tab content"
169
  msgstr "Содержимое вкладки"
170
 
171
+ #: lib/admin.php:126
172
  #: lib/shortcodes.php:78
173
  msgid "Spoiler title"
174
  msgstr "Скрытый текст"
175
 
176
+ #: lib/admin.php:126
177
  msgid "Hidden text"
178
  msgstr "Скрытый текст"
179
 
180
+ #: lib/admin.php:130
181
+ #: lib/admin.php:155
182
+ #: lib/admin.php:190
183
+ #: lib/admin.php:200
184
  msgid "optional"
185
  msgstr "необяз."
186
 
187
+ #: lib/admin.php:156
188
  msgid "Button text"
189
  msgstr "Текст кнопки"
190
 
191
+ #: lib/admin.php:161
192
  msgid "Read more"
193
  msgstr "Подробнее"
194
 
195
+ #: lib/admin.php:165
196
  msgid "image url"
197
  msgstr "ссылка на изображение"
198
 
199
+ #: lib/admin.php:165
200
  msgid "icon size"
201
  msgstr "размер иконки"
202
 
203
+ #: lib/admin.php:166
204
  #: lib/shortcodes.php:292
205
  msgid "Service name"
206
  msgstr "Название услуги"
207
 
208
+ #: lib/admin.php:166
209
  msgid "Service description"
210
  msgstr "Описание услуги"
211
 
212
+ #: lib/admin.php:171
213
  msgid "Box title"
214
  msgstr "Заголовок блока"
215
 
216
+ #: lib/admin.php:181
217
  msgid "List item"
218
  msgstr "Элемент списка"
219
 
220
+ #: lib/admin.php:185
221
  msgid "add this to last columns"
222
  msgstr "добавьте к каждой последней колонке"
223
 
224
+ #: lib/admin.php:191
225
  msgid "Plain table"
226
  msgstr "Простая таблица"
227
 
228
+ #: lib/admin.php:191
229
  msgid "From CSV"
230
  msgstr "Из CSV-файла"
231
 
232
+ #: lib/admin.php:200
233
  msgid "1 second"
234
  msgstr "1 секунда"
235
 
236
+ #: lib/admin.php:205
237
  msgid "See filter IDs"
238
  msgstr "Смотреть ID фильтров"
239
 
249
  msgid "Please specify media url"
250
  msgstr "Укажите ссылку на медиа"
251
 
252
+ #: lib/shortcodes.php:483
253
  msgid "no attached images, or only one attached image"
254
  msgstr "не найдены загруженные изображения, или изображение всего одно"
255
 
256
+ #~ msgid "Support links"
257
+ #~ msgstr "Полезные ссылки"
258
+
259
+ #~ msgid "You can support this project by buying the author a cup of coffee!"
260
+ #~ msgstr "Вы можете поддержать этот проект, купив автору чашечку кофе!"
261
+
262
+ #~ msgid "Donate with MoneyBookers.com"
263
+ #~ msgstr "Сделать пожертвование через MoneyBookers.com"
264
+
265
+ #~ msgid "Donation to help support Shortcodes Ultimate plugin"
266
+ #~ msgstr "Пожертвование автору плагина Shortcodes Ultimate"
267
+
268
+ #~ msgid "Click to make a donation"
269
+ #~ msgstr "Кликните, чтобы сделать пожертвование"
270
+
271
+ #~ msgid "Donate with Money.Yandex.ru"
272
+ #~ msgstr "Сделать пожертвование через Money.Yandex.ru"
273
+
274
+ #~ msgid "RUR"
275
+ #~ msgstr "Руб."
276
+
277
+ #~ msgid "Donate with WebMoney.ru"
278
+ #~ msgstr "Сделать пожертвование через WebMoney.ru"
279
+
280
  #~ msgid "Want to support author? Just share this link!"
281
  #~ msgstr "Хотите поддержать автора? Просто опубликйте ссылку!"
282
 
lib/admin.php CHANGED
@@ -22,204 +22,190 @@
22
  <div id="icon-options-general" class="icon32"><br /></div>
23
  <h2><?php _e( 'Shortcodes Ultimate', 'shortcodes-ultimate' ); ?></h2>
24
 
25
- <div class="updated">
 
26
 
27
- <p><strong><?php _e( 'You can support this project by buying the author a cup of coffee!', 'shortcodes-ultimate' ); ?></strong></p>
28
 
29
- <p><strong><?php _e( 'Donate with MoneyBookers.com', 'shortcodes-ultimate' ); ?></strong></p>
30
- <form action="https://www.moneybookers.com/app/payment.pl" method="post" target="_blank">
31
- <fieldset>
32
- <input type="hidden" name="pay_to_email" value="ano.vladimir@gmail.com" />
33
- <input type="hidden" name="return_url" value="http://ilovecode.ru/thanks" />
34
- <input type="hidden" name="language" value="EN" />
35
- <input type="text" name="amount" value="5.00" size="10" />
36
- <select name="currency" size="1">
37
- <option value="USD" selected="selected">US dollar</option>
38
- <option value="GBP">GB pound</option>
39
- <option value="EUR">Euro</option>
40
- <option value="JPY">Yen</option>
41
- <option value="CAD">Canadian $</option>
42
- <option value="AUD">Australian $</option>
43
- </select>
44
- <input type="hidden" name="detail1_description" value="<?php _e( 'Donation to help support Shortcodes Ultimate plugin', 'shortcodes-ultimate' ); ?>" />
45
- <input type="hidden" name="detail1_text" value="<?php _e( 'Donation to help support Shortcodes Ultimate plugin', 'shortcodes-ultimate' ); ?>" />
46
- <input type="submit" alt="<?php _e( 'Click to make a donation', 'shortcodes-ultimate' ); ?>" class="button-primary" value="<?php _e( 'Donate', 'shortcodes-ultimate' ); ?>" />
47
- </fieldset>
48
- </form>
49
 
50
- <p><strong><?php _e( 'Donate with Money.Yandex.ru', 'shortcodes-ultimate' ); ?></strong></p>
51
- <form action="https://money.yandex.ru/charity.xml" method="post" name="yandex_pay" target="_blank">
52
- <input type="text" size="10" value="150" name="CompanySum" /> <?php _e( 'RUR', 'shortcodes-ultimate' ); ?>
53
- <input type="hidden" value="41001358358276" name="to" />
54
- <input type="hidden" value="<?php _e( 'Donation to help support Shortcodes Ultimate plugin', 'shortcodes-ultimate' ); ?>" name="CompanyName" />
55
- <input type="hidden" value="http://ilovecode.ru/thanks" name="CompanyLink" />
56
- <input type="submit" value="<?php _e( 'Donate', 'shortcodes-ultimate' ); ?>" class="button-primary" />
57
- </form>
58
 
59
- <p><strong><?php _e( 'Donate with WebMoney.ru', 'shortcodes-ultimate' ); ?></strong></p>
60
- <p>R297004467669<br/>Z147863587938</p>
 
 
 
 
61
 
62
- <p>
63
- <strong><?php _e( 'Support links', 'shortcodes-ultimate' ); ?></strong>:
64
- <a href="http://wordpress.org/tags/shortcodes-ultimate?forum_id=10" target="_blank"><?php _e( 'Support forum', 'shortcodes-ultimate' ); ?></a>, <a href="http://twitter.com/gn_themes" target="_blank"><?php _e( 'Twitter', 'shortcodes-ultimate' ); ?></a>, <a href="http://ilovecode.ru/?p=163#commentform" target="_blank" style="color:red"><?php _e( 'Bug report', 'shortcodes-ultimate' ); ?></a>
65
- </p>
66
- </div>
67
-
68
- <?php su_save_notification(); ?>
69
-
70
- <div id="su-tabs">
71
- <a class="su-current"><span><?php _e( 'General settings', 'shortcodes-ultimate' ); ?></span></a>
72
- <a><span><?php _e( 'Custom CSS', 'shortcodes-ultimate' ); ?></span></a>
73
- <a><span><?php _e( 'Available shortcodes', 'shortcodes-ultimate' ); ?></span></a>
74
- </div>
75
- <div class="su-pane">
76
- <form action="" method="post">
77
- <table class="fixed">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  <tr>
79
- <td>
80
- <p><label><input type="checkbox" name="su_disable_custom_formatting" <?php echo $checked_formatting; ?> /> <?php _e( 'Disable custom formatting', 'shortcodes-ultimate' ); ?></label></p>
81
- </td>
82
- <td>
83
- <p><small><?php _e( 'Enable this option if you have some problems with other plugins or content formatting', 'shortcodes-ultimate' ); ?></small></p>
84
- </td>
85
  </tr>
86
  <tr>
87
- <td>
88
- <p><label><input type="checkbox" name="su_compatibility_mode" <?php echo $checked_compatibility; ?> /> <?php _e( 'Compatibility mode', 'shortcodes-ultimate' ); ?></label></p>
89
- </td>
90
- <td>
91
- <p><small><?php _e( 'Enable this option if you have some problems with other plugins that uses similar shortcode names', 'shortcodes-ultimate' ); ?><br/><code>[button] => [gn_button]</code></small></p>
92
- </td>
93
  </tr>
94
  <tr>
95
- <td colspan="2">
96
- <input type="submit" value="<?php _e( 'Save settings', 'shortcodes-ultimate' ); ?>" class="button-primary" />
97
- <input type="hidden" name="save" value="true" />
98
- </td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  </tr>
100
  </table>
101
- </form>
102
- </div>
103
- <div class="su-pane">
104
- <form action="" method="post">
105
- <p><?php _e( 'You can add custom styles, that will override defaults', 'shortcodes-ultimate' ); ?></p>
106
- <p><a href="<?php echo su_plugin_url(); ?>/css/style.css" target="_blank"><?php _e( 'See original styles', 'shortcodes-ultimate' ); ?></a></p>
107
- <p><textarea id="su-custom-css" name="su_custom_css"><?php echo get_option( 'su_custom_css' ); ?></textarea></p>
108
- <p>
109
- <input type="submit" value="<?php _e( 'Save styles', 'shortcodes-ultimate' ); ?>" class="button-primary" />
110
- <input type="hidden" name="save-css" value="true" />
111
- </p>
112
- </form>
113
- </div>
114
- <div class="su-pane">
115
- <table class="widefat fixed">
116
- <tr>
117
- <th width="100"><?php _e( 'Shortcode', 'shortcodes-ultimate' ); ?></th>
118
- <th width="200"><?php _e( 'Parameters', 'shortcodes-ultimate' ); ?></th>
119
- <th><?php _e( 'Usage', 'shortcodes-ultimate' ); ?></th>
120
- </tr>
121
- <tr>
122
- <td>heading</td>
123
- <td>&mdash;</td>
124
- <td>[heading] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/heading]</td>
125
- </tr>
126
- <tr>
127
- <td>frame</td>
128
- <td>align="left|center|none|right"</td>
129
- <td>[frame align="center"] &lt;img src="image.jpg" alt="" /&gt; [/frame]</td>
130
- </tr>
131
- <tr>
132
- <td>tabs, tab</td>
133
- <td>title</td>
134
- <td>[tabs] [tab title="<?php _e( 'Tab name', 'shortcodes-ultimate' ); ?>"] <?php _e( 'Tab content', 'shortcodes-ultimate' ); ?> [/tab] [/tabs]</td>
135
- </tr>
136
- <tr>
137
- <td>spoiler</td>
138
- <td>title</td>
139
- <td>[spoiler title="<?php _e( 'Spoiler title', 'shortcodes-ultimate' ); ?>"] <?php _e( 'Hidden text', 'shortcodes-ultimate' ); ?> [/spoiler]</td>
140
- </tr>
141
- <tr>
142
- <td>divider</td>
143
- <td>top (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)</td>
144
- <td>[divider top="1"]</td>
145
- </tr>
146
- <tr>
147
- <td>spacer</td>
148
- <td>size</td>
149
- <td>[spacer size="20"]</td>
150
- </tr>
151
- <tr>
152
- <td>quote</td>
153
- <td>&mdash;</td>
154
- <td>[quote] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/quote]</td>
155
- </tr>
156
- <tr>
157
- <td>pullquote</td>
158
- <td>align="left|right"</td>
159
- <td>[pullquote align="left"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/pullquote]</td>
160
- </tr>
161
- <tr>
162
- <td>highlight</td>
163
- <td>bg="#HEX"<br/>color="#HEX"</td>
164
- <td>[highlight bg="#fc0" color="#000"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/highlight]</td>
165
- </tr>
166
- <tr>
167
- <td>button</td>
168
- <td>link<br/>color="#HEX"<br/>size="1-12"<br/>style="1|2|3|4"<br/>dark (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>square (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>icon (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)</td>
169
- <td>[button link="#" color="#b00" size="3" style="3" dark="1" square="1" icon="image.png"] <?php _e( 'Button text', 'shortcodes-ultimate' ); ?> [/button]</td>
170
- </tr>
171
- <tr>
172
- <td>fancy_link</td>
173
- <td>color="black|white"<br/>link</td>
174
- <td>[fancy_link color="black" link="http://example.com/"] <?php _e( 'Read more', 'shortcodes-ultimate' ); ?> [/fancy_link]</td>
175
- </tr>
176
- <tr>
177
- <td>service</td>
178
- <td>title<br/>icon (<?php _e( 'image url', 'shortcodes-ultimate' ); ?>)<br/>size (<?php _e( 'icon size', 'shortcodes-ultimate' ); ?>)</td>
179
- <td>[service title="<?php _e( 'Service name', 'shortcodes-ultimate' ); ?>" icon="images/service-1.png" size="32"] <?php _e( 'Service description', 'shortcodes-ultimate' ); ?> [/service]</td>
180
- </tr>
181
- <tr>
182
- <td>box</td>
183
- <td>title<br/>color="#HEX"</td>
184
- <td>[box title="<?php _e( 'Box title', 'shortcodes-ultimate' ); ?>" color="#f00"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/box]</td>
185
- </tr>
186
- <tr>
187
- <td>note</td>
188
- <td>color="#HEX"</td>
189
- <td>[note color="#D1F26D"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/note]</td>
190
- </tr>
191
- <tr>
192
- <td>list</td>
193
- <td>style="star|arrow|check|cross|thumbs|link|gear|time|note|plus|guard|event|idea|settings|twitter"</td>
194
- <td>[list style="check"] &lt;ul&gt; &lt;li&gt; <?php _e( 'List item', 'shortcodes-ultimate' ); ?> &lt;/li&gt; &lt;/ul&gt; [/list]</td>
195
- </tr>
196
- <tr>
197
- <td>column</td>
198
- <td>size="1-2|1-3|1-4|1-5|1-6|2-3|3-4|2-5|3-5|4-5|5-6"<br/>last (<?php _e( 'add this to last columns', 'shortcodes-ultimate' ); ?>)</td>
199
- <td>[column size="1-2"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/column]<br/>[column size="1-2" last="1"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/column]</td>
200
- </tr>
201
- <tr>
202
- <td>table</td>
203
- <td>style="1|2|3"<br/>file (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)</td>
204
- <td><p><strong><?php _e( 'Plain table', 'shortcodes-ultimate' ); ?></strong><br/>[table style="1"] &lt;table&gt; &hellip; &lt;table&gt; [/table]</p><p><strong><?php _e( 'From CSV', 'shortcodes-ultimate' ); ?></strong><br/>[table style="1" file="http://example.com/file.csv"] [/table]</p></td>
205
- </tr>
206
- <tr>
207
- <td>media</td>
208
- <td>url<br/>width<br/>height</td>
209
- <td>[media url="http://www.youtube.com/watch?v=2c2EEacfC1M"]<br/>[media url="http://vimeo.com/15069551"]<br/>[media url="video.mp4"]<br/>[media url="video.flv"]<br/>[media url="audio.mp3"]<br/>[media url="image.jpg"]</td>
210
- </tr>
211
- <tr class="su-new-shortcode">
212
- <td>nivo_slider</td>
213
- <td>width<br/>height<br/>link="file|attachment" (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>speed (1000 = <?php _e( '1 second', 'shortcodes-ultimate' ); ?>)<br/>delay (1000 = <?php _e( '1 second', 'shortcodes-ultimate' ); ?>)<br/>p - post ID (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>effect="random|boxRandom|fold|fade"</td>
214
- <td>[nivo_slider]<br/>[nivo_slider width="640" height="400" link="file" effect="boxRandom"]</td>
215
- </tr>
216
- <tr class="su-new-shortcode">
217
- <td>photoshop</td>
218
- <td>image (url)<br/>width<br/>height<br/>crop="0|1"<br/>quality="0-100"<br/>sharpen="0|1"<br/>filter="%filter_id%"<br/><a href="http://www.binarymoon.co.uk/demo/timthumb-filters/" target="_blank"><?php _e( 'See filter IDs', 'shortcodes-ultimate' ); ?></a></td>
219
- <td>[photoshop image="image.jpg" width="400" height="300" filter="2"]</td>
220
- </tr>
221
- </table>
222
  </div>
 
 
223
  </div>
224
  <!-- /.wrap -->
225
  <?php
22
  <div id="icon-options-general" class="icon32"><br /></div>
23
  <h2><?php _e( 'Shortcodes Ultimate', 'shortcodes-ultimate' ); ?></h2>
24
 
25
+ <!-- #su-wrapper -->
26
+ <div id="su-wrapper">
27
 
28
+ <?php su_save_notification(); ?>
29
 
30
+ <div id="su-tabs">
31
+ <a class="su-current"><span><?php _e( 'About', 'shortcodes-ultimate' ); ?></span></a>
32
+ <a><span><?php _e( 'General settings', 'shortcodes-ultimate' ); ?></span></a>
33
+ <a><span><?php _e( 'Custom CSS', 'shortcodes-ultimate' ); ?></span></a>
34
+ <a><span><?php _e( 'Available shortcodes', 'shortcodes-ultimate' ); ?></span></a>
35
+ </div>
36
+ <div class="su-pane">
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
+ <div class="su-onethird-column">
39
+ <h3><?php _e( 'FREE Support', 'shortcodes-ultimate' ); ?></h3>
40
+ <p><a href="http://wordpress.org/tags/shortcodes-ultimate?forum_id=10" target="_blank"><?php _e( 'Support forum', 'shortcodes-ultimate' ); ?></a></p>
41
+ <p><a href="http://twitter.com/gn_themes" target="_blank"><?php _e( 'Twitter', 'shortcodes-ultimate' ); ?></a></p>
42
+ <p><a href="http://ilovecode.ru/?p=163#commentform" target="_blank" style="color:red"><?php _e( 'Bug report', 'shortcodes-ultimate' ); ?></a></p>
43
+ </div>
 
 
44
 
45
+ <div class="su-twothird-column">
46
+ <h3><?php _e( 'Do you love this plugin?', 'shortcodes-ultimate' ); ?></h3>
47
+ <p><?php _e( 'Buy author a beer', 'shortcodes-ultimate' ); ?> - <a href="http://ilovecode.ru/donate/" target="_blank"><?php _e( 'Donate', 'shortcodes-ultimate' ); ?></a></p>
48
+ <p><a href="http://wordpress.org/extend/plugins/shortcodes-ultimate/" target="_blank"><?php _e( 'Rate this plugin at wordpress.org', 'shortcodes-ultimate' ); ?></a> (<?php _e( '5 stars', 'shortcodes-ultimate' ); ?>)</p>
49
+ <p><?php _e( 'Review this plugin in your blog', 'shortcodes-ultimate' ); ?></p>
50
+ </div>
51
 
52
+ <div class="su-clear"></div>
53
+ </div>
54
+ <div class="su-pane">
55
+ <form action="" method="post" id="su-form-save-settings">
56
+ <p class="su-message su-message-loading"><?php _e( 'Saving...', 'shortcodes-ultimate' ); ?></p>
57
+ <p class="su-message su-message-success"><?php _e( 'Settings saved', 'shortcodes-ultimate' ); ?></p>
58
+ <table class="fixed">
59
+ <tr>
60
+ <td>
61
+ <p><label><input type="checkbox" name="su_disable_custom_formatting" <?php echo $checked_formatting; ?> /> <?php _e( 'Disable custom formatting', 'shortcodes-ultimate' ); ?></label></p>
62
+ </td>
63
+ <td>
64
+ <p><small><?php _e( 'Enable this option if you have some problems with other plugins or content formatting', 'shortcodes-ultimate' ); ?></small></p>
65
+ </td>
66
+ </tr>
67
+ <tr>
68
+ <td>
69
+ <p><label><input type="checkbox" name="su_compatibility_mode" <?php echo $checked_compatibility; ?> /> <?php _e( 'Compatibility mode', 'shortcodes-ultimate' ); ?></label></p>
70
+ </td>
71
+ <td>
72
+ <p><small><?php _e( 'Enable this option if you have some problems with other plugins that uses similar shortcode names', 'shortcodes-ultimate' ); ?><br/><code>[button] => [gn_button]</code></small></p>
73
+ </td>
74
+ </tr>
75
+ <tr>
76
+ <td colspan="2">
77
+ <input type="submit" value="<?php _e( 'Save settings', 'shortcodes-ultimate' ); ?>" class="button-primary" />
78
+ <input type="hidden" name="save" value="true" />
79
+ </td>
80
+ </tr>
81
+ </table>
82
+ </form>
83
+ </div>
84
+ <div class="su-pane">
85
+ <form action="" method="post" id="su-form-save-custom-css">
86
+ <p class="su-message su-message-loading"><?php _e( 'Saving...', 'shortcodes-ultimate' ); ?></p>
87
+ <p class="su-message su-message-success"><?php _e( 'Custom CSS saved', 'shortcodes-ultimate' ); ?></p>
88
+ <p><?php _e( 'You can add custom styles, that will override defaults', 'shortcodes-ultimate' ); ?></p>
89
+ <p><a href="<?php echo su_plugin_url(); ?>/css/style.css" target="_blank"><?php _e( 'See original styles', 'shortcodes-ultimate' ); ?></a></p>
90
+ <p><textarea id="su-custom-css" name="su_custom_css"><?php echo get_option( 'su_custom_css' ); ?></textarea></p>
91
+ <p>
92
+ <input type="submit" value="<?php _e( 'Save styles', 'shortcodes-ultimate' ); ?>" class="button-primary" />
93
+ <input type="hidden" name="save-css" value="true" />
94
+ </p>
95
+ </form>
96
+ </div>
97
+ <div class="su-pane">
98
+ <table class="widefat fixed">
99
+ <tr>
100
+ <th width="100"><?php _e( 'Shortcode', 'shortcodes-ultimate' ); ?></th>
101
+ <th width="200"><?php _e( 'Parameters', 'shortcodes-ultimate' ); ?></th>
102
+ <th><?php _e( 'Usage', 'shortcodes-ultimate' ); ?></th>
103
+ </tr>
104
  <tr>
105
+ <td>heading</td>
106
+ <td>&mdash;</td>
107
+ <td>[heading] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/heading]</td>
 
 
 
108
  </tr>
109
  <tr>
110
+ <td>frame</td>
111
+ <td>align="left|center|none|right"</td>
112
+ <td>[frame align="center"] &lt;img src="image.jpg" alt="" /&gt; [/frame]</td>
 
 
 
113
  </tr>
114
  <tr>
115
+ <td>tabs, tab</td>
116
+ <td>title</td>
117
+ <td>[tabs] [tab title="<?php _e( 'Tab name', 'shortcodes-ultimate' ); ?>"] <?php _e( 'Tab content', 'shortcodes-ultimate' ); ?> [/tab] [/tabs]</td>
118
+ </tr>
119
+ <tr>
120
+ <td>spoiler</td>
121
+ <td>title</td>
122
+ <td>[spoiler title="<?php _e( 'Spoiler title', 'shortcodes-ultimate' ); ?>"] <?php _e( 'Hidden text', 'shortcodes-ultimate' ); ?> [/spoiler]</td>
123
+ </tr>
124
+ <tr>
125
+ <td>divider</td>
126
+ <td>top (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)</td>
127
+ <td>[divider top="1"]</td>
128
+ </tr>
129
+ <tr>
130
+ <td>spacer</td>
131
+ <td>size</td>
132
+ <td>[spacer size="20"]</td>
133
+ </tr>
134
+ <tr>
135
+ <td>quote</td>
136
+ <td>&mdash;</td>
137
+ <td>[quote] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/quote]</td>
138
+ </tr>
139
+ <tr>
140
+ <td>pullquote</td>
141
+ <td>align="left|right"</td>
142
+ <td>[pullquote align="left"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/pullquote]</td>
143
+ </tr>
144
+ <tr>
145
+ <td>highlight</td>
146
+ <td>bg="#HEX"<br/>color="#HEX"</td>
147
+ <td>[highlight bg="#fc0" color="#000"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/highlight]</td>
148
+ </tr>
149
+ <tr>
150
+ <td>button</td>
151
+ <td>link<br/>color="#HEX"<br/>size="1-12"<br/>style="1|2|3|4"<br/>dark (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>square (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>icon (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)</td>
152
+ <td>[button link="#" color="#b00" size="3" style="3" dark="1" square="1" icon="image.png"] <?php _e( 'Button text', 'shortcodes-ultimate' ); ?> [/button]</td>
153
+ </tr>
154
+ <tr>
155
+ <td>fancy_link</td>
156
+ <td>color="black|white"<br/>link</td>
157
+ <td>[fancy_link color="black" link="http://example.com/"] <?php _e( 'Read more', 'shortcodes-ultimate' ); ?> [/fancy_link]</td>
158
+ </tr>
159
+ <tr>
160
+ <td>service</td>
161
+ <td>title<br/>icon (<?php _e( 'image url', 'shortcodes-ultimate' ); ?>)<br/>size (<?php _e( 'icon size', 'shortcodes-ultimate' ); ?>)</td>
162
+ <td>[service title="<?php _e( 'Service name', 'shortcodes-ultimate' ); ?>" icon="images/service-1.png" size="32"] <?php _e( 'Service description', 'shortcodes-ultimate' ); ?> [/service]</td>
163
+ </tr>
164
+ <tr>
165
+ <td>box</td>
166
+ <td>title<br/>color="#HEX"</td>
167
+ <td>[box title="<?php _e( 'Box title', 'shortcodes-ultimate' ); ?>" color="#f00"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/box]</td>
168
+ </tr>
169
+ <tr>
170
+ <td>note</td>
171
+ <td>color="#HEX"</td>
172
+ <td>[note color="#D1F26D"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/note]</td>
173
+ </tr>
174
+ <tr>
175
+ <td>list</td>
176
+ <td>style="star|arrow|check|cross|thumbs|link|gear|time|note|plus|guard|event|idea|settings|twitter"</td>
177
+ <td>[list style="check"] &lt;ul&gt; &lt;li&gt; <?php _e( 'List item', 'shortcodes-ultimate' ); ?> &lt;/li&gt; &lt;/ul&gt; [/list]</td>
178
+ </tr>
179
+ <tr>
180
+ <td>column</td>
181
+ <td>size="1-2|1-3|1-4|1-5|1-6|2-3|3-4|2-5|3-5|4-5|5-6"<br/>last (<?php _e( 'add this to last columns', 'shortcodes-ultimate' ); ?>)</td>
182
+ <td>[column size="1-2"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/column]<br/>[column size="1-2" last="1"] <?php _e( 'Content', 'shortcodes-ultimate' ); ?> [/column]</td>
183
+ </tr>
184
+ <tr>
185
+ <td>table</td>
186
+ <td>style="1|2|3"<br/>file (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)</td>
187
+ <td><p><strong><?php _e( 'Plain table', 'shortcodes-ultimate' ); ?></strong><br/>[table style="1"] &lt;table&gt; &hellip; &lt;table&gt; [/table]</p><p><strong><?php _e( 'From CSV', 'shortcodes-ultimate' ); ?></strong><br/>[table style="1" file="http://example.com/file.csv"] [/table]</p></td>
188
+ </tr>
189
+ <tr>
190
+ <td>media</td>
191
+ <td>url<br/>width<br/>height</td>
192
+ <td>[media url="http://www.youtube.com/watch?v=2c2EEacfC1M"]<br/>[media url="http://vimeo.com/15069551"]<br/>[media url="video.mp4"]<br/>[media url="video.flv"]<br/>[media url="audio.mp3"]<br/>[media url="image.jpg"]</td>
193
+ </tr>
194
+ <tr class="su-new-shortcode">
195
+ <td>nivo_slider</td>
196
+ <td>width<br/>height<br/>link="file|attachment" (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>speed (1000 = <?php _e( '1 second', 'shortcodes-ultimate' ); ?>)<br/>delay (1000 = <?php _e( '1 second', 'shortcodes-ultimate' ); ?>)<br/>p - post ID (<?php _e( 'optional', 'shortcodes-ultimate' ); ?>)<br/>effect="random|boxRandom|fold|fade"</td>
197
+ <td>[nivo_slider]<br/>[nivo_slider width="640" height="400" link="file" effect="boxRandom"]</td>
198
+ </tr>
199
+ <tr class="su-new-shortcode">
200
+ <td>photoshop</td>
201
+ <td>image (url)<br/>width<br/>height<br/>crop="0|1"<br/>quality="0-100"<br/>sharpen="0|1"<br/>filter="%filter_id%"<br/><a href="http://www.binarymoon.co.uk/demo/timthumb-filters/" target="_blank"><?php _e( 'See filter IDs', 'shortcodes-ultimate' ); ?></a></td>
202
+ <td>[photoshop image="image.jpg" width="400" height="300" filter="2"]</td>
203
  </tr>
204
  </table>
205
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
206
  </div>
207
+ <!-- /#su-wrapper -->
208
+
209
  </div>
210
  <!-- /.wrap -->
211
  <?php
lib/shortcodes.php CHANGED
@@ -438,10 +438,12 @@
438
  // If has attachments
439
  if ( count( $attachments ) > 1 ) {
440
 
 
 
441
  $return = '
442
  <script type="text/javascript">
443
  jQuery(window).load(function() {
444
- jQuery("#su-nivo-slider").nivoSlider({
445
  effect: "' . $effect . '",
446
  animSpeed: ' . $speed . ',
447
  pauseTime: ' . $delay . '
@@ -449,11 +451,11 @@
449
  });
450
  </script>
451
  <style type="text/css">
452
- #su-nivo-slider {width:' . $width . 'px;height:' . $height . 'px}
453
  </style>
454
  ';
455
 
456
- $return .= '<div id="su-nivo-slider">';
457
  foreach ( $attachments as $attachment ) {
458
  $title = apply_filters( 'the_title', $attachment->post_title );
459
  $image = wp_get_attachment_image_src( $attachment->ID, 'full', false );
@@ -483,4 +485,5 @@
483
 
484
  return $return;
485
  }
 
486
  ?>
438
  // If has attachments
439
  if ( count( $attachments ) > 1 ) {
440
 
441
+ $slider_id = uniqid( 'su-nivo-slider_' );
442
+
443
  $return = '
444
  <script type="text/javascript">
445
  jQuery(window).load(function() {
446
+ jQuery("#' . $slider_id . '").nivoSlider({
447
  effect: "' . $effect . '",
448
  animSpeed: ' . $speed . ',
449
  pauseTime: ' . $delay . '
451
  });
452
  </script>
453
  <style type="text/css">
454
+ #' . $slider_id . ' {width:' . $width . 'px;height:' . $height . 'px}
455
  </style>
456
  ';
457
 
458
+ $return .= '<div id="' . $slider_id . '" class="su-nivo-slider">';
459
  foreach ( $attachments as $attachment ) {
460
  $title = apply_filters( 'the_title', $attachment->post_title );
461
  $image = wp_get_attachment_image_src( $attachment->ID, 'full', false );
485
 
486
  return $return;
487
  }
488
+
489
  ?>
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://ilovecode.ru/
4
  Tags: shortcode, shortcodes, short code, shortcodes, tab, tabs, button, buttons, jquery, box, boxes, toggle, spoiler, column, columns, services, service, pullquote, list, lists, frame, images, image, links, fancy, fancy link, fancy links, fancy buttons, jquery tabs, accordeon, slider, nivo, nivo slider, plugin, admin, photoshop, gallery
5
  Requires at least: 3.0
6
  Tested up to: 3.1
7
- Stable tag: 1.7.0
8
 
9
  Provides support for multiple useful shortcodes
10
 
@@ -15,6 +15,7 @@ Provides support for multiple useful shortcodes
15
  * Improved settings page
16
  * Added shortcode nivo_slider
17
  * Added shortcode photoshop
 
18
 
19
  With this plugin you can easily add buttons, dividers, spacers, boxes, notes and much more
20
  = Complete list of available shortcodes =
@@ -71,6 +72,10 @@ In your dashboard
71
 
72
  == Changelog ==
73
 
 
 
 
 
74
  = 1.7.0 =
75
  * Improved settings page design
76
  * Added shortcode nivo_slider
4
  Tags: shortcode, shortcodes, short code, shortcodes, tab, tabs, button, buttons, jquery, box, boxes, toggle, spoiler, column, columns, services, service, pullquote, list, lists, frame, images, image, links, fancy, fancy link, fancy links, fancy buttons, jquery tabs, accordeon, slider, nivo, nivo slider, plugin, admin, photoshop, gallery
5
  Requires at least: 3.0
6
  Tested up to: 3.1
7
+ Stable tag: 1.8.0
8
 
9
  Provides support for multiple useful shortcodes
10
 
15
  * Improved settings page
16
  * Added shortcode nivo_slider
17
  * Added shortcode photoshop
18
+ * Ajax admin!
19
 
20
  With this plugin you can easily add buttons, dividers, spacers, boxes, notes and much more
21
  = Complete list of available shortcodes =
72
 
73
  == Changelog ==
74
 
75
+ = 1.8.0 =
76
+ * Some small additions
77
+ * Ajax admin page
78
+
79
  = 1.7.0 =
80
  * Improved settings page design
81
  * Added shortcode nivo_slider
shortcodes-ultimate.php CHANGED
@@ -3,7 +3,7 @@
3
  /*
4
  Plugin Name: Shortcodes Ultimate
5
  Plugin URI: http://ilovecode.ru/?p=122
6
- Version: 1.7.0
7
  Author: Vladimir Anokhin
8
  Author URI: http://ilovecode.ru/
9
  Description: Provides support for many easy to use shortcodes
@@ -58,6 +58,7 @@
58
  wp_register_script( 'nivo-slider', su_plugin_url() . '/js/jquery.nivo.slider.pack.js', false, su_get_version(), false );
59
  wp_register_script( 'codemirror', su_plugin_url() . '/js/codemirror.js', false, su_get_version(), false );
60
  wp_register_script( 'codemirror-css', su_plugin_url() . '/js/codemirror-css.js', false, su_get_version(), false );
 
61
  wp_register_script( 'jwplayer', su_plugin_url() . '/js/jwplayer.js', false, su_get_version(), false );
62
 
63
  // Front-end scripts and styles
@@ -86,6 +87,7 @@
86
  wp_enqueue_script( 'jquery' );
87
  wp_enqueue_script( 'codemirror' );
88
  wp_enqueue_script( 'codemirror-css' );
 
89
  wp_enqueue_script( 'shortcodes-ultimate-admin' );
90
  }
91
 
@@ -229,6 +231,19 @@
229
 
230
  add_action( 'admin_init', 'su_manage_settings' );
231
 
 
 
 
 
 
 
 
 
 
 
 
 
 
232
  /**
233
  * Print notification if options saved
234
  */
3
  /*
4
  Plugin Name: Shortcodes Ultimate
5
  Plugin URI: http://ilovecode.ru/?p=122
6
+ Version: 1.8.0
7
  Author: Vladimir Anokhin
8
  Author URI: http://ilovecode.ru/
9
  Description: Provides support for many easy to use shortcodes
58
  wp_register_script( 'nivo-slider', su_plugin_url() . '/js/jquery.nivo.slider.pack.js', false, su_get_version(), false );
59
  wp_register_script( 'codemirror', su_plugin_url() . '/js/codemirror.js', false, su_get_version(), false );
60
  wp_register_script( 'codemirror-css', su_plugin_url() . '/js/codemirror-css.js', false, su_get_version(), false );
61
+ wp_register_script( 'ajax-form', su_plugin_url() . '/js/jquery.form.js', false, su_get_version(), false );
62
  wp_register_script( 'jwplayer', su_plugin_url() . '/js/jwplayer.js', false, su_get_version(), false );
63
 
64
  // Front-end scripts and styles
87
  wp_enqueue_script( 'jquery' );
88
  wp_enqueue_script( 'codemirror' );
89
  wp_enqueue_script( 'codemirror-css' );
90
+ wp_enqueue_script( 'ajax-form' );
91
  wp_enqueue_script( 'shortcodes-ultimate-admin' );
92
  }
93
 
231
 
232
  add_action( 'admin_init', 'su_manage_settings' );
233
 
234
+ /**
235
+ * Add settings link to plugins dashboard
236
+ *
237
+ * @param array $links Links
238
+ * @return array Links
239
+ */
240
+ function su_add_settings_link( $links ) {
241
+ $links[] = '<a href="' . admin_url( 'options-general.php?page=shortcodes-ultimate' ) . '">' . __( 'Settings', 'shortcodes-ultimate' ) . '</a>';
242
+ return $links;
243
+ }
244
+
245
+ add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'su_add_settings_link', -10 );
246
+
247
  /**
248
  * Print notification if options saved
249
  */