Simple Image Sizes - Version 2.0.1

Version Description

Download this release

Release Info

Developer Rahe
Plugin Icon wp plugin Simple Image Sizes
Version 2.0.1
Comparing to
See all releases

Code changes from version 2.0 to 2.0.1

css/Aristo/jquery-ui-1.8.7.custom.css CHANGED
@@ -1,740 +1,740 @@
1
- /*
2
- * jQuery UI CSS Framework 1.8.7
3
- *
4
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Theming/API
9
- */
10
-
11
- /* Layout helpers
12
- ----------------------------------*/
13
- .ui-helper-hidden { display: none; }
14
- .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
- .ui-helper-clearfix { display: inline-block; }
18
- /* required comment for clearfix to work in Opera \*/
19
- * html .ui-helper-clearfix { height:1%; }
20
- .ui-helper-clearfix { display:block; }
21
- /* end clearfix */
22
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
-
24
-
25
- /* Interaction Cues
26
- ----------------------------------*/
27
- .ui-state-disabled { cursor: default !important; }
28
-
29
-
30
- /* Icons
31
- ----------------------------------*/
32
-
33
- /* states and images */
34
- .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
-
36
-
37
- /* Misc visuals
38
- ----------------------------------*/
39
-
40
- /* Overlays */
41
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
-
43
-
44
- /*
45
- * jQuery UI CSS Framework 1.8.7
46
- *
47
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
48
- * Dual licensed under the MIT or GPL Version 2 licenses.
49
- * http://jquery.org/license
50
- *
51
- * http://docs.jquery.com/UI/Theming/API
52
- *
53
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
54
- */
55
-
56
-
57
- /* Component containers
58
- ----------------------------------*/
59
- .ui-widget { font-family: Helvetica,Arial,sans-serif; font-size: 1.1em; }
60
- .ui-widget .ui-widget { font-size: 1em; }
61
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica,Arial,sans-serif; font-size: 1em; }
62
- .ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; }
63
- .ui-widget-content a { color: #4F4F4F; }
64
- .ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }
65
- .ui-widget-header {
66
- background: url(images/bg_fallback.png) 0 0 repeat-x;
67
- background: -webkit-gradient(
68
- linear,
69
- left bottom,
70
- left top,
71
- color-stop(1, rgb(237,237,237)),
72
- color-stop(0, rgb(196,196,196))
73
- );
74
- background: -moz-linear-gradient(
75
- center top,
76
- rgb(237,237,237),
77
- rgb(196,196,196)
78
- );
79
- }
80
- .ui-widget-header a { color: #4F4F4F; }
81
-
82
- /* Interaction states
83
- ----------------------------------*/
84
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; }
85
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
86
- background: url(images/bg_fallback.png) 0 0 repeat-x;
87
- background: -webkit-gradient(
88
- linear,
89
- left bottom,
90
- left top,
91
- color-stop(1, rgb(237,237,237)),
92
- color-stop(0, rgb(196,196,196))
93
- );
94
- background: -moz-linear-gradient(
95
- center top,
96
- rgb(237,237,237),
97
- rgb(196,196,196)
98
- );
99
- -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
100
- -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
101
- }
102
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; }
103
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; }
104
- .ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }
105
- .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
106
- outline: none;
107
- color: #1c4257; border: 1px solid #7096ab;
108
- background: url(images/bg_fallback.png) 0 -50px repeat-x;
109
- background: -webkit-gradient(
110
- linear,
111
- left bottom,
112
- left top,
113
- color-stop(1, rgb(185,224,245)),
114
- color-stop(0, rgb(146,189,214))
115
- );
116
- background: -moz-linear-gradient(
117
- center top,
118
- rgb(185,224,245),
119
- rgb(146,189,214)
120
- );
121
- -webkit-box-shadow: none;
122
- -moz-box-shadow: none;
123
- }
124
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; }
125
- .ui-widget :active { outline: none; }
126
-
127
- /* Interaction Cues
128
- ----------------------------------*/
129
- .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
130
- .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
131
- .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
132
- .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
133
- .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
134
- .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
135
- .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
136
- .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
137
-
138
- /* Icons
139
- ----------------------------------*/
140
-
141
- /* states and images */
142
- .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
143
- .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
144
- .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
145
- .ui-state-default .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); }
146
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
147
- .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
148
- .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
149
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(images/icon_sprite.png) -16px 0 no-repeat !important; }
150
- .ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }
151
-
152
- /* positioning */
153
- .ui-icon-carat-1-n { background-position: 0 0; }
154
- .ui-icon-carat-1-ne { background-position: -16px 0; }
155
- .ui-icon-carat-1-e { background-position: -32px 0; }
156
- .ui-icon-carat-1-se { background-position: -48px 0; }
157
- .ui-icon-carat-1-s { background-position: -64px 0; }
158
- .ui-icon-carat-1-sw { background-position: -80px 0; }
159
- .ui-icon-carat-1-w { background-position: -96px 0; }
160
- .ui-icon-carat-1-nw { background-position: -112px 0; }
161
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
162
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
163
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
164
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
165
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
166
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
167
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
168
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
169
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
170
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
171
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
172
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
173
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
174
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
175
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
176
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
177
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
178
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
179
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
180
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
181
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
182
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
183
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
184
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
185
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
186
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
187
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
188
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
189
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
190
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
191
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
192
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
193
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
194
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
195
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
196
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
197
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
198
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
199
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
200
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
201
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
202
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
203
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
204
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
205
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
206
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
207
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
208
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
209
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
210
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
211
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
212
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
213
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
214
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
215
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
216
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
217
- .ui-icon-arrow-4 { background-position: 0 -80px; }
218
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
219
- .ui-icon-extlink { background-position: -32px -80px; }
220
- .ui-icon-newwin { background-position: -48px -80px; }
221
- .ui-icon-refresh { background-position: -64px -80px; }
222
- .ui-icon-shuffle { background-position: -80px -80px; }
223
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
224
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
225
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
226
- .ui-icon-folder-open { background-position: -16px -96px; }
227
- .ui-icon-document { background-position: -32px -96px; }
228
- .ui-icon-document-b { background-position: -48px -96px; }
229
- .ui-icon-note { background-position: -64px -96px; }
230
- .ui-icon-mail-closed { background-position: -80px -96px; }
231
- .ui-icon-mail-open { background-position: -96px -96px; }
232
- .ui-icon-suitcase { background-position: -112px -96px; }
233
- .ui-icon-comment { background-position: -128px -96px; }
234
- .ui-icon-person { background-position: -144px -96px; }
235
- .ui-icon-print { background-position: -160px -96px; }
236
- .ui-icon-trash { background-position: -176px -96px; }
237
- .ui-icon-locked { background-position: -192px -96px; }
238
- .ui-icon-unlocked { background-position: -208px -96px; }
239
- .ui-icon-bookmark { background-position: -224px -96px; }
240
- .ui-icon-tag { background-position: -240px -96px; }
241
- .ui-icon-home { background-position: 0 -112px; }
242
- .ui-icon-flag { background-position: -16px -112px; }
243
- .ui-icon-calendar { background-position: -32px -112px; }
244
- .ui-icon-cart { background-position: -48px -112px; }
245
- .ui-icon-pencil { background-position: -64px -112px; }
246
- .ui-icon-clock { background-position: -80px -112px; }
247
- .ui-icon-disk { background-position: -96px -112px; }
248
- .ui-icon-calculator { background-position: -112px -112px; }
249
- .ui-icon-zoomin { background-position: -128px -112px; }
250
- .ui-icon-zoomout { background-position: -144px -112px; }
251
- .ui-icon-search { background-position: -160px -112px; }
252
- .ui-icon-wrench { background-position: -176px -112px; }
253
- .ui-icon-gear { background-position: -192px -112px; }
254
- .ui-icon-heart { background-position: -208px -112px; }
255
- .ui-icon-star { background-position: -224px -112px; }
256
- .ui-icon-link { background-position: -240px -112px; }
257
- .ui-icon-cancel { background-position: 0 -128px; }
258
- .ui-icon-plus { background-position: -16px -128px; }
259
- .ui-icon-plusthick { background-position: -32px -128px; }
260
- .ui-icon-minus { background-position: -48px -128px; }
261
- .ui-icon-minusthick { background-position: -64px -128px; }
262
- .ui-icon-close { background-position: -80px -128px; }
263
- .ui-icon-closethick { background-position: -96px -128px; }
264
- .ui-icon-key { background-position: -112px -128px; }
265
- .ui-icon-lightbulb { background-position: -128px -128px; }
266
- .ui-icon-scissors { background-position: -144px -128px; }
267
- .ui-icon-clipboard { background-position: -160px -128px; }
268
- .ui-icon-copy { background-position: -176px -128px; }
269
- .ui-icon-contact { background-position: -192px -128px; }
270
- .ui-icon-image { background-position: -208px -128px; }
271
- .ui-icon-video { background-position: -224px -128px; }
272
- .ui-icon-script { background-position: -240px -128px; }
273
- .ui-icon-alert { background-position: 0 -144px; }
274
- .ui-icon-info { background: url(images/icon_sprite.png) 0 0 no-repeat !important; }
275
- .ui-icon-notice { background-position: -32px -144px; }
276
- .ui-icon-help { background-position: -48px -144px; }
277
- .ui-icon-check { background-position: -64px -144px; }
278
- .ui-icon-bullet { background-position: -80px -144px; }
279
- .ui-icon-radio-off { background-position: -96px -144px; }
280
- .ui-icon-radio-on { background-position: -112px -144px; }
281
- .ui-icon-pin-w { background-position: -128px -144px; }
282
- .ui-icon-pin-s { background-position: -144px -144px; }
283
- .ui-icon-play { background-position: 0 -160px; }
284
- .ui-icon-pause { background-position: -16px -160px; }
285
- .ui-icon-seek-next { background-position: -32px -160px; }
286
- .ui-icon-seek-prev { background-position: -48px -160px; }
287
- .ui-icon-seek-end { background-position: -64px -160px; }
288
- .ui-icon-seek-start { background-position: -80px -160px; }
289
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
290
- .ui-icon-seek-first { background-position: -80px -160px; }
291
- .ui-icon-stop { background-position: -96px -160px; }
292
- .ui-icon-eject { background-position: -112px -160px; }
293
- .ui-icon-volume-off { background-position: -128px -160px; }
294
- .ui-icon-volume-on { background-position: -144px -160px; }
295
- .ui-icon-power { background-position: 0 -176px; }
296
- .ui-icon-signal-diag { background-position: -16px -176px; }
297
- .ui-icon-signal { background-position: -32px -176px; }
298
- .ui-icon-battery-0 { background-position: -48px -176px; }
299
- .ui-icon-battery-1 { background-position: -64px -176px; }
300
- .ui-icon-battery-2 { background-position: -80px -176px; }
301
- .ui-icon-battery-3 { background-position: -96px -176px; }
302
- .ui-icon-circle-plus { background-position: 0 -192px; }
303
- .ui-icon-circle-minus { background-position: -16px -192px; }
304
- .ui-icon-circle-close { background-position: -32px -192px; }
305
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
306
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
307
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
308
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
309
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
310
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
311
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
312
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
313
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
314
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
315
- .ui-icon-circle-check { background-position: -208px -192px; }
316
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
317
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
318
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
319
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
320
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
321
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
322
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
323
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
324
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
325
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
326
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
327
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
328
-
329
-
330
- /* Misc visuals
331
- ----------------------------------*/
332
-
333
- /* Corner radius */
334
- .ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; }
335
- .ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
336
- .ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
337
- .ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
338
- .ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
339
- .ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
340
- .ui-corner-right { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
341
- .ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
342
- .ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
343
-
344
- /* Overlays */
345
- .ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }
346
- .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
347
- * jQuery UI Resizable 1.8.7
348
- *
349
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
350
- * Dual licensed under the MIT or GPL Version 2 licenses.
351
- * http://jquery.org/license
352
- *
353
- * http://docs.jquery.com/UI/Resizable#theming
354
- */
355
- .ui-resizable { position: relative;}
356
- .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
357
- .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
358
- .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
359
- .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
360
- .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
361
- .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
362
- .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
363
- .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
364
- .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
365
- .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
366
- * jQuery UI Selectable 1.8.7
367
- *
368
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
369
- * Dual licensed under the MIT or GPL Version 2 licenses.
370
- * http://jquery.org/license
371
- *
372
- * http://docs.jquery.com/UI/Selectable#theming
373
- */
374
- .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
375
- /*
376
- * jQuery UI Accordion 1.8.7
377
- *
378
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
379
- * Dual licensed under the MIT or GPL Version 2 licenses.
380
- * http://jquery.org/license
381
- *
382
- * http://docs.jquery.com/UI/Accordion#theming
383
- */
384
- /* IE/Win - Fix animation bug - #4615 */
385
- .ui-accordion { width: 100%; }
386
- .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
387
- .ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
388
- .ui-accordion .ui-accordion-li-fix { display: inline; }
389
- .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
390
- .ui-accordion .ui-accordion-header a { display: block; font-size: 12px; font-weight: bold; padding: .5em .5em .5em .7em; }
391
- .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
392
- .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
393
- .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
394
- .ui-accordion .ui-accordion-content-active { display: block; }/*
395
- * jQuery UI Autocomplete 1.8.7
396
- *
397
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
398
- * Dual licensed under the MIT or GPL Version 2 licenses.
399
- * http://jquery.org/license
400
- *
401
- * http://docs.jquery.com/UI/Autocomplete#theming
402
- */
403
- .ui-autocomplete {
404
- position: absolute; cursor: default; z-index: 3 !important;
405
- -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
406
- -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
407
- -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
408
- }
409
-
410
- /* workarounds */
411
- * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
412
-
413
- /*
414
- * jQuery UI Menu 1.8.7
415
- *
416
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
417
- * Dual licensed under the MIT or GPL Version 2 licenses.
418
- * http://jquery.org/license
419
- *
420
- * http://docs.jquery.com/UI/Menu#theming
421
- */
422
- .ui-menu {
423
- list-style:none;
424
- padding: 2px;
425
- margin: 0;
426
- display:block;
427
- float: left;
428
- }
429
- .ui-menu .ui-menu {
430
- margin-top: -3px;
431
- }
432
- .ui-menu .ui-menu-item {
433
- margin:0;
434
- padding: 0;
435
- zoom: 1;
436
- float: left;
437
- clear: left;
438
- width: 100%;
439
- }
440
- .ui-menu .ui-menu-item a {
441
- text-decoration:none;
442
- display:block;
443
- padding:.2em .4em;
444
- line-height:1.5;
445
- zoom:1;
446
- }
447
- .ui-menu .ui-menu-item a.ui-state-hover,
448
- .ui-menu .ui-menu-item a.ui-state-active {
449
- font-weight: normal;
450
- margin: -1px;
451
- background: #5f83b9;
452
- color: #FFFFFF;
453
- text-shadow: 0px 1px 1px #234386;
454
- border-color: #466086;
455
- -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
456
- }
457
- /*
458
- * jQuery UI Button 1.8.7
459
- *
460
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
461
- * Dual licensed under the MIT or GPL Version 2 licenses.
462
- * http://jquery.org/license
463
- *
464
- * http://docs.jquery.com/UI/Button#theming
465
- */
466
- .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; -webkit-user-select: none; -moz-user-select: none; user-select: none; } /* the overflow property removes extra width in IE */
467
- .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
468
- button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
469
- .ui-button-icons-only { width: 3.4em; }
470
- button.ui-button-icons-only { width: 3.7em; }
471
-
472
- /* button animation properties */
473
- .ui-button {
474
- -webkit-transition: all 0.25s ease-in-out;
475
- -moz-transition: all 0.25s ease-in-out;
476
- -o-transition: all 0.25s ease-in-out;
477
- }
478
-
479
- /*states*/
480
- .ui-button.ui-state-hover {
481
- -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
482
- -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
483
- }
484
- .ui-button.ui-state-focus {
485
- outline: none;
486
- color: #1c4257; border-color: #7096ab;
487
- background-image: -webkit-gradient(
488
- linear,
489
- left bottom,
490
- left top,
491
- color-stop(1, rgb(185,224,245)),
492
- color-stop(0, rgb(146,189,214))
493
- );
494
- background-image: -moz-linear-gradient(
495
- center top,
496
- rgb(185,224,245),
497
- rgb(146,189,214)
498
- );
499
- -webkit-box-shadow: none;
500
- -moz-box-shadow: none;
501
- }
502
-
503
- /*button text element */
504
- .ui-button .ui-button-text { display: block; line-height: 1.4; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
505
- .ui-button-text-only .ui-button-text { padding: .4em 1em .3em }
506
- .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
507
- .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
508
- .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
509
- .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
510
- /* no icon support for input elements, provide padding by default */
511
- input.ui-button { padding: .4em 1em; }
512
-
513
- /*button icon element(s) */
514
- .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
515
- .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
516
- .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
517
- .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
518
- .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
519
-
520
- /*button sets*/
521
- .ui-buttonset { margin-right: 7px; }
522
- .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
523
- .ui-buttonset .ui-button.ui-state-active { color: #1c4257; border-color: #7096ab; }
524
- .ui-buttonset .ui-button.ui-state-active {
525
- background-image: -webkit-gradient(
526
- linear,
527
- left bottom,
528
- left top,
529
- color-stop(1, rgb(185,224,245)),
530
- color-stop(0, rgb(146,189,214))
531
- );
532
- background-image: -moz-linear-gradient(
533
- center top,
534
- rgb(185,224,245),
535
- rgb(146,189,214)
536
- );
537
- -webkit-box-shadow: none;
538
- -moz-box-shadow: none;
539
- }
540
-
541
- /* workarounds */
542
- button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
543
- /*
544
- * jQuery UI Dialog 1.8.7
545
- *
546
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
547
- * Dual licensed under the MIT or GPL Version 2 licenses.
548
- * http://jquery.org/license
549
- *
550
- * http://docs.jquery.com/UI/Dialog#theming
551
- */
552
- .ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; }
553
- .ui-dialog {
554
- -webkit-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
555
- -moz-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
556
- }
557
- .ui-dialog .ui-dialog-titlebar { padding: 0.7em 1em 0.6em 1em; position: relative; border: none; border-bottom: 1px solid #979797; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
558
- .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; font-size: 14px; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
559
- .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .8em; top: 55%; width: 16px; margin: -10px 0 0 0; padding: 0; height: 16px; }
560
- .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; background: url(images/icon_sprite.png) 0 -16px no-repeat; }
561
- .ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; }
562
- .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border: 0; }
563
- .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
564
- .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
565
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
566
- .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
567
- .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
568
- .ui-draggable .ui-dialog-titlebar { cursor: move; }
569
- /*
570
- * jQuery UI Slider 1.8.7
571
- *
572
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
573
- * Dual licensed under the MIT or GPL Version 2 licenses.
574
- * http://jquery.org/license
575
- *
576
- * http://docs.jquery.com/UI/Slider#theming
577
- */
578
- .ui-slider { position: relative; text-align: left; background: #d7d7d7; }
579
- .ui-slider { -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; }
580
- .ui-slider .ui-slider-handle { background: url(images/slider_handles.png) 0px -23px no-repeat; position: absolute; z-index: 2; width: 23px; height: 23px; cursor: default; border: none; outline: none; -moz-box-shadow: none; -webkit-box-shadow: none; }
581
- .ui-slider .ui-state-hover, .ui-slider .ui-state-active { background-position: 0 0; }
582
- .ui-slider .ui-slider-range { background: #a3cae0; position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
583
- .ui-slider .ui-slider-range { -moz-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; -webkit-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; }
584
-
585
-
586
- .ui-slider-horizontal { height: 5px; }
587
- .ui-slider-horizontal .ui-slider-handle { top: -8px; margin-left: -13px; }
588
- .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
589
- .ui-slider-horizontal .ui-slider-range-min { left: 0; }
590
- .ui-slider-horizontal .ui-slider-range-max { right: 0; }
591
-
592
- .ui-slider-vertical { width: 5px; height: 100px; }
593
- .ui-slider-vertical .ui-slider-handle { left: -8px; margin-left: 0; margin-bottom: -13px; }
594
- .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
595
- .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
596
- .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
597
- * jQuery UI Tabs 1.8.7
598
- *
599
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
600
- * Dual licensed under the MIT or GPL Version 2 licenses.
601
- * http://jquery.org/license
602
- *
603
- * http://docs.jquery.com/UI/Tabs#theming
604
- */
605
- .ui-tabs { position: relative; zoom: 1; border: 0; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
606
- .ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: transparent; border-width: 0 0 1px 0; }
607
- .ui-tabs .ui-tabs-nav {
608
- -moz-border-radius: 0;
609
- -webkit-border-radius: 0;
610
- border-radius: 0;
611
- }
612
- .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
613
- .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-size: 12px; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
614
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background: #fff; border-color: #B6B6B6; }
615
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; outline: none; }
616
- .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
617
- .ui-tabs .ui-tabs-panel { display: block; border-width: 0 1px 1px 1px; padding: 1em 1.4em; background: none; }
618
- .ui-tabs .ui-tabs-panel {
619
- -moz-border-radius: 0;
620
- -webkit-border-radius: 0;
621
- border-radius: 0;
622
- }
623
- .ui-tabs .ui-tabs-hide { display: none !important; }
624
- /*
625
- * jQuery UI Datepicker 1.8.7
626
- *
627
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
628
- * Dual licensed under the MIT or GPL Version 2 licenses.
629
- * http://jquery.org/license
630
- *
631
- * http://docs.jquery.com/UI/Datepicker#theming
632
- */
633
- .ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; }
634
- .ui-datepicker {
635
- -moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
636
- -webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
637
- box-shadow: 0 4px 8px rgba(0,0,0,0.5);
638
- }
639
- .ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #B6B6B6; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
640
- .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }
641
- .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }
642
- .ui-datepicker .ui-datepicker-prev { left:2px; }
643
- .ui-datepicker .ui-datepicker-next { right:2px; }
644
- .ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }
645
- .ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }
646
- .ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }
647
- .ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }
648
- .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(images/icon_sprite.png) no-repeat; }
649
- .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
650
- .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
651
- .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
652
- .ui-datepicker select.ui-datepicker-month,
653
- .ui-datepicker select.ui-datepicker-year { width: 49%;}
654
- .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
655
- .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
656
- .ui-datepicker td { border: 0; padding: 1px; }
657
- .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
658
- .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
659
- .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
660
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
661
- .ui-datepicker .ui-state-default { background: transparent; border-color: #FFF; }
662
- .ui-datepicker .ui-state-active { background: #5F83B9; border-color: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; }
663
-
664
- /* with multiple calendars */
665
- .ui-datepicker.ui-datepicker-multi { width:auto; }
666
- .ui-datepicker-multi .ui-datepicker-group { float:left; }
667
- .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
668
- .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
669
- .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
670
- .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
671
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
672
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
673
- .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
674
- .ui-datepicker-row-break { clear:both; width:100%; }
675
-
676
- /* RTL support */
677
- .ui-datepicker-rtl { direction: rtl; }
678
- .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
679
- .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
680
- .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
681
- .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
682
- .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
683
- .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
684
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
685
- .ui-datepicker-rtl .ui-datepicker-group { float:right; }
686
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
687
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
688
-
689
- /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
690
- .ui-datepicker-cover {
691
- display: none; /*sorry for IE5*/
692
- display/**/: block; /*sorry for IE5*/
693
- position: absolute; /*must have*/
694
- z-index: -1; /*must have*/
695
- filter: mask(); /*must have*/
696
- top: -4px; /*must have*/
697
- left: -4px; /*must have*/
698
- width: 200px; /*must have*/
699
- height: 200px; /*must have*/
700
- }/*
701
- * jQuery UI Progressbar 1.8.7
702
- *
703
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
704
- * Dual licensed under the MIT or GPL Version 2 licenses.
705
- * http://jquery.org/license
706
- *
707
- * http://docs.jquery.com/UI/Progressbar#theming
708
- */
709
- .ui-progressbar { height: 12px; text-align: left; background: #FFF url(images/progress_bar.gif) 0 -14px repeat-x; }
710
- .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: url(images/progress_bar.gif) 0 0 repeat-x; }
711
-
712
- /* Extra Input Field Styling */
713
- /*
714
- textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
715
- padding: 3px;
716
- -webkit-border-radius: 2px;
717
- -moz-border-radius: 2px;
718
- border-radius: 2px;
719
- border: 1px solid #cecece;
720
- outline: none;
721
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
722
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
723
- box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
724
- -webkit-transition: all 0.25s ease-in-out;
725
- -moz-transition: all 0.25 ease-in-out;
726
- -o-transition: all 0.25s ease-in-out;
727
- }
728
- textarea:hover, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover {
729
- border: 1px solid #bdbdbd;
730
- -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
731
- -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
732
- box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
733
- }
734
- textarea:focus, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus {
735
- border: 1px solid #95bdd4;
736
- -webkit-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
737
- -moz-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
738
- box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
739
- }
740
  */
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.7
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+
43
+
44
+ /*
45
+ * jQuery UI CSS Framework 1.8.7
46
+ *
47
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Theming/API
52
+ *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
54
+ */
55
+
56
+
57
+ /* Component containers
58
+ ----------------------------------*/
59
+ .ui-widget { font-family: Helvetica,Arial,sans-serif; font-size: 1.1em; }
60
+ .ui-widget .ui-widget { font-size: 1em; }
61
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica,Arial,sans-serif; font-size: 1em; }
62
+ .ui-widget-content { border: 1px solid #B6B6B6; background: #ffffff; color: #4F4F4F; }
63
+ .ui-widget-content a { color: #4F4F4F; }
64
+ .ui-widget-header { border: 1px solid #B6B6B6; color: #4F4F4F; font-weight: bold; }
65
+ .ui-widget-header {
66
+ background: url(images/bg_fallback.png) 0 0 repeat-x;
67
+ background: -webkit-gradient(
68
+ linear,
69
+ left bottom,
70
+ left top,
71
+ color-stop(1, rgb(237,237,237)),
72
+ color-stop(0, rgb(196,196,196))
73
+ );
74
+ background: -moz-linear-gradient(
75
+ center top,
76
+ rgb(237,237,237),
77
+ rgb(196,196,196)
78
+ );
79
+ }
80
+ .ui-widget-header a { color: #4F4F4F; }
81
+
82
+ /* Interaction states
83
+ ----------------------------------*/
84
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #B6B6B6; font-weight: normal; color: #4F4F4F; }
85
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
86
+ background: url(images/bg_fallback.png) 0 0 repeat-x;
87
+ background: -webkit-gradient(
88
+ linear,
89
+ left bottom,
90
+ left top,
91
+ color-stop(1, rgb(237,237,237)),
92
+ color-stop(0, rgb(196,196,196))
93
+ );
94
+ background: -moz-linear-gradient(
95
+ center top,
96
+ rgb(237,237,237),
97
+ rgb(196,196,196)
98
+ );
99
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
100
+ -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
101
+ }
102
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #4F4F4F; text-decoration: none; }
103
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9D9D9D; font-weight: normal; color: #313131; }
104
+ .ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }
105
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
106
+ outline: none;
107
+ color: #1c4257; border: 1px solid #7096ab;
108
+ background: url(images/bg_fallback.png) 0 -50px repeat-x;
109
+ background: -webkit-gradient(
110
+ linear,
111
+ left bottom,
112
+ left top,
113
+ color-stop(1, rgb(185,224,245)),
114
+ color-stop(0, rgb(146,189,214))
115
+ );
116
+ background: -moz-linear-gradient(
117
+ center top,
118
+ rgb(185,224,245),
119
+ rgb(146,189,214)
120
+ );
121
+ -webkit-box-shadow: none;
122
+ -moz-box-shadow: none;
123
+ }
124
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #313131; text-decoration: none; }
125
+ .ui-widget :active { outline: none; }
126
+
127
+ /* Interaction Cues
128
+ ----------------------------------*/
129
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #d2dbf4; background: #f4f8fd; color: #0d2054; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
130
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
131
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #e2d0d0; background: #fcf0f0; color: #280b0b; -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; }
132
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
133
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
134
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
135
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
136
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
137
+
138
+ /* Icons
139
+ ----------------------------------*/
140
+
141
+ /* states and images */
142
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
143
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
144
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
145
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); }
146
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
147
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
148
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
149
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(images/icon_sprite.png) -16px 0 no-repeat !important; }
150
+ .ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }
151
+
152
+ /* positioning */
153
+ .ui-icon-carat-1-n { background-position: 0 0; }
154
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
155
+ .ui-icon-carat-1-e { background-position: -32px 0; }
156
+ .ui-icon-carat-1-se { background-position: -48px 0; }
157
+ .ui-icon-carat-1-s { background-position: -64px 0; }
158
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
159
+ .ui-icon-carat-1-w { background-position: -96px 0; }
160
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
161
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
162
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
163
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
164
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
165
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
166
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
167
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
168
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
169
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
170
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
171
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
172
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
173
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
174
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
175
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
176
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
177
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
178
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
179
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
180
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
181
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
182
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
183
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
184
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
185
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
186
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
187
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
188
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
189
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
190
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
191
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
192
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
193
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
194
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
195
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
196
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
197
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
198
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
199
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
200
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
201
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
202
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
203
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
204
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
205
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
206
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
207
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
208
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
209
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
210
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
211
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
212
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
213
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
214
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
215
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
216
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
217
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
218
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
219
+ .ui-icon-extlink { background-position: -32px -80px; }
220
+ .ui-icon-newwin { background-position: -48px -80px; }
221
+ .ui-icon-refresh { background-position: -64px -80px; }
222
+ .ui-icon-shuffle { background-position: -80px -80px; }
223
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
224
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
225
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
226
+ .ui-icon-folder-open { background-position: -16px -96px; }
227
+ .ui-icon-document { background-position: -32px -96px; }
228
+ .ui-icon-document-b { background-position: -48px -96px; }
229
+ .ui-icon-note { background-position: -64px -96px; }
230
+ .ui-icon-mail-closed { background-position: -80px -96px; }
231
+ .ui-icon-mail-open { background-position: -96px -96px; }
232
+ .ui-icon-suitcase { background-position: -112px -96px; }
233
+ .ui-icon-comment { background-position: -128px -96px; }
234
+ .ui-icon-person { background-position: -144px -96px; }
235
+ .ui-icon-print { background-position: -160px -96px; }
236
+ .ui-icon-trash { background-position: -176px -96px; }
237
+ .ui-icon-locked { background-position: -192px -96px; }
238
+ .ui-icon-unlocked { background-position: -208px -96px; }
239
+ .ui-icon-bookmark { background-position: -224px -96px; }
240
+ .ui-icon-tag { background-position: -240px -96px; }
241
+ .ui-icon-home { background-position: 0 -112px; }
242
+ .ui-icon-flag { background-position: -16px -112px; }
243
+ .ui-icon-calendar { background-position: -32px -112px; }
244
+ .ui-icon-cart { background-position: -48px -112px; }
245
+ .ui-icon-pencil { background-position: -64px -112px; }
246
+ .ui-icon-clock { background-position: -80px -112px; }
247
+ .ui-icon-disk { background-position: -96px -112px; }
248
+ .ui-icon-calculator { background-position: -112px -112px; }
249
+ .ui-icon-zoomin { background-position: -128px -112px; }
250
+ .ui-icon-zoomout { background-position: -144px -112px; }
251
+ .ui-icon-search { background-position: -160px -112px; }
252
+ .ui-icon-wrench { background-position: -176px -112px; }
253
+ .ui-icon-gear { background-position: -192px -112px; }
254
+ .ui-icon-heart { background-position: -208px -112px; }
255
+ .ui-icon-star { background-position: -224px -112px; }
256
+ .ui-icon-link { background-position: -240px -112px; }
257
+ .ui-icon-cancel { background-position: 0 -128px; }
258
+ .ui-icon-plus { background-position: -16px -128px; }
259
+ .ui-icon-plusthick { background-position: -32px -128px; }
260
+ .ui-icon-minus { background-position: -48px -128px; }
261
+ .ui-icon-minusthick { background-position: -64px -128px; }
262
+ .ui-icon-close { background-position: -80px -128px; }
263
+ .ui-icon-closethick { background-position: -96px -128px; }
264
+ .ui-icon-key { background-position: -112px -128px; }
265
+ .ui-icon-lightbulb { background-position: -128px -128px; }
266
+ .ui-icon-scissors { background-position: -144px -128px; }
267
+ .ui-icon-clipboard { background-position: -160px -128px; }
268
+ .ui-icon-copy { background-position: -176px -128px; }
269
+ .ui-icon-contact { background-position: -192px -128px; }
270
+ .ui-icon-image { background-position: -208px -128px; }
271
+ .ui-icon-video { background-position: -224px -128px; }
272
+ .ui-icon-script { background-position: -240px -128px; }
273
+ .ui-icon-alert { background-position: 0 -144px; }
274
+ .ui-icon-info { background: url(images/icon_sprite.png) 0 0 no-repeat !important; }
275
+ .ui-icon-notice { background-position: -32px -144px; }
276
+ .ui-icon-help { background-position: -48px -144px; }
277
+ .ui-icon-check { background-position: -64px -144px; }
278
+ .ui-icon-bullet { background-position: -80px -144px; }
279
+ .ui-icon-radio-off { background-position: -96px -144px; }
280
+ .ui-icon-radio-on { background-position: -112px -144px; }
281
+ .ui-icon-pin-w { background-position: -128px -144px; }
282
+ .ui-icon-pin-s { background-position: -144px -144px; }
283
+ .ui-icon-play { background-position: 0 -160px; }
284
+ .ui-icon-pause { background-position: -16px -160px; }
285
+ .ui-icon-seek-next { background-position: -32px -160px; }
286
+ .ui-icon-seek-prev { background-position: -48px -160px; }
287
+ .ui-icon-seek-end { background-position: -64px -160px; }
288
+ .ui-icon-seek-start { background-position: -80px -160px; }
289
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
290
+ .ui-icon-seek-first { background-position: -80px -160px; }
291
+ .ui-icon-stop { background-position: -96px -160px; }
292
+ .ui-icon-eject { background-position: -112px -160px; }
293
+ .ui-icon-volume-off { background-position: -128px -160px; }
294
+ .ui-icon-volume-on { background-position: -144px -160px; }
295
+ .ui-icon-power { background-position: 0 -176px; }
296
+ .ui-icon-signal-diag { background-position: -16px -176px; }
297
+ .ui-icon-signal { background-position: -32px -176px; }
298
+ .ui-icon-battery-0 { background-position: -48px -176px; }
299
+ .ui-icon-battery-1 { background-position: -64px -176px; }
300
+ .ui-icon-battery-2 { background-position: -80px -176px; }
301
+ .ui-icon-battery-3 { background-position: -96px -176px; }
302
+ .ui-icon-circle-plus { background-position: 0 -192px; }
303
+ .ui-icon-circle-minus { background-position: -16px -192px; }
304
+ .ui-icon-circle-close { background-position: -32px -192px; }
305
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
306
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
307
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
308
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
309
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
310
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
311
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
312
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
313
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
314
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
315
+ .ui-icon-circle-check { background-position: -208px -192px; }
316
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
317
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
318
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
319
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
320
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
321
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
322
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
323
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
324
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
325
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
326
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
327
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
328
+
329
+
330
+ /* Misc visuals
331
+ ----------------------------------*/
332
+
333
+ /* Corner radius */
334
+ .ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; }
335
+ .ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
336
+ .ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
337
+ .ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
338
+ .ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
339
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
340
+ .ui-corner-right { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
341
+ .ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
342
+ .ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
343
+
344
+ /* Overlays */
345
+ .ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }
346
+ .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
347
+ * jQuery UI Resizable 1.8.7
348
+ *
349
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
350
+ * Dual licensed under the MIT or GPL Version 2 licenses.
351
+ * http://jquery.org/license
352
+ *
353
+ * http://docs.jquery.com/UI/Resizable#theming
354
+ */
355
+ .ui-resizable { position: relative;}
356
+ .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
357
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
358
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
359
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
360
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
361
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
362
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
363
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
364
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
365
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
366
+ * jQuery UI Selectable 1.8.7
367
+ *
368
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
369
+ * Dual licensed under the MIT or GPL Version 2 licenses.
370
+ * http://jquery.org/license
371
+ *
372
+ * http://docs.jquery.com/UI/Selectable#theming
373
+ */
374
+ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
375
+ /*
376
+ * jQuery UI Accordion 1.8.7
377
+ *
378
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
379
+ * Dual licensed under the MIT or GPL Version 2 licenses.
380
+ * http://jquery.org/license
381
+ *
382
+ * http://docs.jquery.com/UI/Accordion#theming
383
+ */
384
+ /* IE/Win - Fix animation bug - #4615 */
385
+ .ui-accordion { width: 100%; }
386
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
387
+ .ui-accordion .ui-accordion-header, .ui-accordion .ui-accordion-content { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
388
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
389
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
390
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 12px; font-weight: bold; padding: .5em .5em .5em .7em; }
391
+ .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
392
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
393
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
394
+ .ui-accordion .ui-accordion-content-active { display: block; }/*
395
+ * jQuery UI Autocomplete 1.8.7
396
+ *
397
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
398
+ * Dual licensed under the MIT or GPL Version 2 licenses.
399
+ * http://jquery.org/license
400
+ *
401
+ * http://docs.jquery.com/UI/Autocomplete#theming
402
+ */
403
+ .ui-autocomplete {
404
+ position: absolute; cursor: default; z-index: 3 !important;
405
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
406
+ -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
407
+ -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
408
+ }
409
+
410
+ /* workarounds */
411
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
412
+
413
+ /*
414
+ * jQuery UI Menu 1.8.7
415
+ *
416
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
417
+ * Dual licensed under the MIT or GPL Version 2 licenses.
418
+ * http://jquery.org/license
419
+ *
420
+ * http://docs.jquery.com/UI/Menu#theming
421
+ */
422
+ .ui-menu {
423
+ list-style:none;
424
+ padding: 2px;
425
+ margin: 0;
426
+ display:block;
427
+ float: left;
428
+ }
429
+ .ui-menu .ui-menu {
430
+ margin-top: -3px;
431
+ }
432
+ .ui-menu .ui-menu-item {
433
+ margin:0;
434
+ padding: 0;
435
+ zoom: 1;
436
+ float: left;
437
+ clear: left;
438
+ width: 100%;
439
+ }
440
+ .ui-menu .ui-menu-item a {
441
+ text-decoration:none;
442
+ display:block;
443
+ padding:.2em .4em;
444
+ line-height:1.5;
445
+ zoom:1;
446
+ }
447
+ .ui-menu .ui-menu-item a.ui-state-hover,
448
+ .ui-menu .ui-menu-item a.ui-state-active {
449
+ font-weight: normal;
450
+ margin: -1px;
451
+ background: #5f83b9;
452
+ color: #FFFFFF;
453
+ text-shadow: 0px 1px 1px #234386;
454
+ border-color: #466086;
455
+ -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
456
+ }
457
+ /*
458
+ * jQuery UI Button 1.8.7
459
+ *
460
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
461
+ * Dual licensed under the MIT or GPL Version 2 licenses.
462
+ * http://jquery.org/license
463
+ *
464
+ * http://docs.jquery.com/UI/Button#theming
465
+ */
466
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; -webkit-user-select: none; -moz-user-select: none; user-select: none; } /* the overflow property removes extra width in IE */
467
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
468
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
469
+ .ui-button-icons-only { width: 3.4em; }
470
+ button.ui-button-icons-only { width: 3.7em; }
471
+
472
+ /* button animation properties */
473
+ .ui-button {
474
+ -webkit-transition: all 0.25s ease-in-out;
475
+ -moz-transition: all 0.25s ease-in-out;
476
+ -o-transition: all 0.25s ease-in-out;
477
+ }
478
+
479
+ /*states*/
480
+ .ui-button.ui-state-hover {
481
+ -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
482
+ -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.8) inset;
483
+ }
484
+ .ui-button.ui-state-focus {
485
+ outline: none;
486
+ color: #1c4257; border-color: #7096ab;
487
+ background-image: -webkit-gradient(
488
+ linear,
489
+ left bottom,
490
+ left top,
491
+ color-stop(1, rgb(185,224,245)),
492
+ color-stop(0, rgb(146,189,214))
493
+ );
494
+ background-image: -moz-linear-gradient(
495
+ center top,
496
+ rgb(185,224,245),
497
+ rgb(146,189,214)
498
+ );
499
+ -webkit-box-shadow: none;
500
+ -moz-box-shadow: none;
501
+ }
502
+
503
+ /*button text element */
504
+ .ui-button .ui-button-text { display: block; line-height: 1.4; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
505
+ .ui-button-text-only .ui-button-text { padding: .4em 1em .3em }
506
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
507
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
508
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
509
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
510
+ /* no icon support for input elements, provide padding by default */
511
+ input.ui-button { padding: .4em 1em; }
512
+
513
+ /*button icon element(s) */
514
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
515
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
516
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
517
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
518
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
519
+
520
+ /*button sets*/
521
+ .ui-buttonset { margin-right: 7px; }
522
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
523
+ .ui-buttonset .ui-button.ui-state-active { color: #1c4257; border-color: #7096ab; }
524
+ .ui-buttonset .ui-button.ui-state-active {
525
+ background-image: -webkit-gradient(
526
+ linear,
527
+ left bottom,
528
+ left top,
529
+ color-stop(1, rgb(185,224,245)),
530
+ color-stop(0, rgb(146,189,214))
531
+ );
532
+ background-image: -moz-linear-gradient(
533
+ center top,
534
+ rgb(185,224,245),
535
+ rgb(146,189,214)
536
+ );
537
+ -webkit-box-shadow: none;
538
+ -moz-box-shadow: none;
539
+ }
540
+
541
+ /* workarounds */
542
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
543
+ /*
544
+ * jQuery UI Dialog 1.8.7
545
+ *
546
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
547
+ * Dual licensed under the MIT or GPL Version 2 licenses.
548
+ * http://jquery.org/license
549
+ *
550
+ * http://docs.jquery.com/UI/Dialog#theming
551
+ */
552
+ .ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; }
553
+ .ui-dialog {
554
+ -webkit-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
555
+ -moz-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
556
+ }
557
+ .ui-dialog .ui-dialog-titlebar { padding: 0.7em 1em 0.6em 1em; position: relative; border: none; border-bottom: 1px solid #979797; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
558
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; font-size: 14px; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
559
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .8em; top: 55%; width: 16px; margin: -10px 0 0 0; padding: 0; height: 16px; }
560
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; background: url(images/icon_sprite.png) 0 -16px no-repeat; }
561
+ .ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; }
562
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border: 0; }
563
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
564
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
565
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
566
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
567
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
568
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
569
+ /*
570
+ * jQuery UI Slider 1.8.7
571
+ *
572
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
573
+ * Dual licensed under the MIT or GPL Version 2 licenses.
574
+ * http://jquery.org/license
575
+ *
576
+ * http://docs.jquery.com/UI/Slider#theming
577
+ */
578
+ .ui-slider { position: relative; text-align: left; background: #d7d7d7; }
579
+ .ui-slider { -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; }
580
+ .ui-slider .ui-slider-handle { background: url(images/slider_handles.png) 0px -23px no-repeat; position: absolute; z-index: 2; width: 23px; height: 23px; cursor: default; border: none; outline: none; -moz-box-shadow: none; -webkit-box-shadow: none; }
581
+ .ui-slider .ui-state-hover, .ui-slider .ui-state-active { background-position: 0 0; }
582
+ .ui-slider .ui-slider-range { background: #a3cae0; position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
583
+ .ui-slider .ui-slider-range { -moz-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; -webkit-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; }
584
+
585
+
586
+ .ui-slider-horizontal { height: 5px; }
587
+ .ui-slider-horizontal .ui-slider-handle { top: -8px; margin-left: -13px; }
588
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
589
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
590
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
591
+
592
+ .ui-slider-vertical { width: 5px; height: 100px; }
593
+ .ui-slider-vertical .ui-slider-handle { left: -8px; margin-left: 0; margin-bottom: -13px; }
594
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
595
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
596
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
597
+ * jQuery UI Tabs 1.8.7
598
+ *
599
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
600
+ * Dual licensed under the MIT or GPL Version 2 licenses.
601
+ * http://jquery.org/license
602
+ *
603
+ * http://docs.jquery.com/UI/Tabs#theming
604
+ */
605
+ .ui-tabs { position: relative; zoom: 1; border: 0; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
606
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: transparent; border-width: 0 0 1px 0; }
607
+ .ui-tabs .ui-tabs-nav {
608
+ -moz-border-radius: 0;
609
+ -webkit-border-radius: 0;
610
+ border-radius: 0;
611
+ }
612
+ .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
613
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-size: 12px; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
614
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background: #fff; border-color: #B6B6B6; }
615
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; outline: none; }
616
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
617
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0 1px 1px 1px; padding: 1em 1.4em; background: none; }
618
+ .ui-tabs .ui-tabs-panel {
619
+ -moz-border-radius: 0;
620
+ -webkit-border-radius: 0;
621
+ border-radius: 0;
622
+ }
623
+ .ui-tabs .ui-tabs-hide { display: none !important; }
624
+ /*
625
+ * jQuery UI Datepicker 1.8.7
626
+ *
627
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
628
+ * Dual licensed under the MIT or GPL Version 2 licenses.
629
+ * http://jquery.org/license
630
+ *
631
+ * http://docs.jquery.com/UI/Datepicker#theming
632
+ */
633
+ .ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; }
634
+ .ui-datepicker {
635
+ -moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
636
+ -webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
637
+ box-shadow: 0 4px 8px rgba(0,0,0,0.5);
638
+ }
639
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #B6B6B6; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
640
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }
641
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }
642
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
643
+ .ui-datepicker .ui-datepicker-next { right:2px; }
644
+ .ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }
645
+ .ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }
646
+ .ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }
647
+ .ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }
648
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(images/icon_sprite.png) no-repeat; }
649
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
650
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
651
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
652
+ .ui-datepicker select.ui-datepicker-month,
653
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
654
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
655
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
656
+ .ui-datepicker td { border: 0; padding: 1px; }
657
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
658
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
659
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
660
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
661
+ .ui-datepicker .ui-state-default { background: transparent; border-color: #FFF; }
662
+ .ui-datepicker .ui-state-active { background: #5F83B9; border-color: #5F83B9; color: #FFF; font-weight: bold; text-shadow: 0 1px 1px #234386; }
663
+
664
+ /* with multiple calendars */
665
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
666
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
667
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
668
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
669
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
670
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
671
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
672
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
673
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
674
+ .ui-datepicker-row-break { clear:both; width:100%; }
675
+
676
+ /* RTL support */
677
+ .ui-datepicker-rtl { direction: rtl; }
678
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
679
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
680
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
681
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
682
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
683
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
684
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
685
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
686
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
687
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
688
+
689
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
690
+ .ui-datepicker-cover {
691
+ display: none; /*sorry for IE5*/
692
+ display/**/: block; /*sorry for IE5*/
693
+ position: absolute; /*must have*/
694
+ z-index: -1; /*must have*/
695
+ filter: mask(); /*must have*/
696
+ top: -4px; /*must have*/
697
+ left: -4px; /*must have*/
698
+ width: 200px; /*must have*/
699
+ height: 200px; /*must have*/
700
+ }/*
701
+ * jQuery UI Progressbar 1.8.7
702
+ *
703
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
704
+ * Dual licensed under the MIT or GPL Version 2 licenses.
705
+ * http://jquery.org/license
706
+ *
707
+ * http://docs.jquery.com/UI/Progressbar#theming
708
+ */
709
+ .ui-progressbar { height: 12px; text-align: left; background: #FFF url(images/progress_bar.gif) 0 -14px repeat-x; }
710
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: url(images/progress_bar.gif) 0 0 repeat-x; }
711
+
712
+ /* Extra Input Field Styling */
713
+ /*
714
+ textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]) {
715
+ padding: 3px;
716
+ -webkit-border-radius: 2px;
717
+ -moz-border-radius: 2px;
718
+ border-radius: 2px;
719
+ border: 1px solid #cecece;
720
+ outline: none;
721
+ -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
722
+ -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
723
+ box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2);
724
+ -webkit-transition: all 0.25s ease-in-out;
725
+ -moz-transition: all 0.25 ease-in-out;
726
+ -o-transition: all 0.25s ease-in-out;
727
+ }
728
+ textarea:hover, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover {
729
+ border: 1px solid #bdbdbd;
730
+ -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
731
+ -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
732
+ box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2);
733
+ }
734
+ textarea:focus, input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus {
735
+ border: 1px solid #95bdd4;
736
+ -webkit-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
737
+ -moz-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
738
+ box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2);
739
+ }
740
  */
css/sis-style.css CHANGED
@@ -1,58 +1,58 @@
1
- .progress {
2
- position:relative;
3
- height:13px;
4
- margin-bottom: 43px;
5
- margin-top: 60px;
6
- color:#FFFFFF;
7
- display:none;
8
- }
9
-
10
- .progress .progress-percent {
11
- position: absolute;
12
- left: 0%;
13
- top: -63px;
14
- width: 82px;
15
- height: 49px;
16
- margin-top: -9px;
17
- font-weight: bold;
18
- line-height: 39px;
19
- text-align: center;
20
- }
21
- tr{
22
- -webkit-transition: all .5s ease-in-out;
23
- -moz-transition: all .5s ease-in-out;
24
- -o-transition: all .5s ease-in-out;
25
- transition: all .5s ease-in-out;
26
- }
27
- tr:nth-child(even){
28
- background-color:#F9F9F9 ;
29
- }
30
- tr.addPending{
31
- background-color:#6CA1D7;
32
- }
33
- tr.successAdding{
34
- background-color:#89D76A;
35
- }
36
- tr.errorAdding {
37
- background-color:#C45858;
38
- }
39
- tr.notChangedAdding {
40
- background-color:#F2A13A;
41
- }
42
- .wrapper {
43
- display: inline-block;
44
- float: left;
45
- width: 45%;
46
- }
47
-
48
- #regenerate_message {
49
- display:none;
50
- }
51
-
52
- #thumb {
53
- display:none;
54
- }
55
-
56
- #ajax_thumbnail_rebuild {
57
- margin-top:40px;
58
  }
1
+ .progress {
2
+ position:relative;
3
+ height:13px;
4
+ margin-bottom: 43px;
5
+ margin-top: 60px;
6
+ color:#FFFFFF;
7
+ display:none;
8
+ }
9
+
10
+ .progress .progress-percent {
11
+ position: absolute;
12
+ left: 0%;
13
+ top: -63px;
14
+ width: 82px;
15
+ height: 49px;
16
+ margin-top: -9px;
17
+ font-weight: bold;
18
+ line-height: 39px;
19
+ text-align: center;
20
+ }
21
+ tr{
22
+ -webkit-transition: all .5s ease-in-out;
23
+ -moz-transition: all .5s ease-in-out;
24
+ -o-transition: all .5s ease-in-out;
25
+ transition: all .5s ease-in-out;
26
+ }
27
+ tr:nth-child(even){
28
+ background-color:#F9F9F9 ;
29
+ }
30
+ tr.addPending{
31
+ background-color:#6CA1D7;
32
+ }
33
+ tr.successAdding{
34
+ background-color:#89D76A;
35
+ }
36
+ tr.errorAdding {
37
+ background-color:#C45858;
38
+ }
39
+ tr.notChangedAdding {
40
+ background-color:#F2A13A;
41
+ }
42
+ .wrapper {
43
+ display: inline-block;
44
+ float: left;
45
+ width: 45%;
46
+ }
47
+
48
+ #regenerate_message {
49
+ display:none;
50
+ }
51
+
52
+ #thumb {
53
+ display:none;
54
+ }
55
+
56
+ #ajax_thumbnail_rebuild {
57
+ margin-top:40px;
58
  }
inc/class.admin.php CHANGED
@@ -1,680 +1,681 @@
1
- <?php
2
- Class SISAdmin {
3
-
4
- // Original sizes
5
- public $original = array( 'thumbnail', 'medium', 'large' );
6
-
7
- public function __construct(){
8
- // Init
9
- add_action ( 'admin_menu', array( &$this, 'init' ) );
10
- add_action ( 'admin_enqueue_scripts', array( &$this, 'registerScripts' ), 11 );
11
-
12
- // Add ajax action
13
- add_action('wp_ajax_ajax_thumbnail_rebuild', array( &$this, 'ajaxThumbnailRebuildAjax' ) );
14
- add_action('wp_ajax_get_sizes', array( &$this, 'ajaxGetSizes' ) );
15
- add_action('wp_ajax_add_size', array( &$this, 'ajaxAddSize' ) );
16
- add_action('wp_ajax_remove_size', array( &$this, 'ajaxRemoveSize' ) );
17
-
18
- // Add image sizes in the form
19
- add_filter( 'attachment_fields_to_edit', array( &$this, 'sizesInForm' ), 11, 2 ); // Add our sizes to media forms
20
-
21
- // Add link in plugins list
22
- add_filter('plugin_action_links', array( &$this,'addSettingsLink'), 10, 2 );
23
- }
24
-
25
- /**
26
- * Register javascripts and css.
27
- *
28
- * @access public
29
- * @return void
30
- * @author Nicolas Juen
31
- */
32
- public function registerScripts($hook_suffix = '' ) {
33
- if( isset( $hook_suffix ) && $hook_suffix == 'options-media.php' ) {
34
- // Add javascript
35
- wp_enqueue_script( 'sis-jquery-ui-sis', SIS_URL.'js/jquery-ui-1.8.12.custom.min.js', array('jquery'), '1.8.12' );
36
- wp_enqueue_script( 'sis_js', SIS_URL.'js/sis.min.js', array('jquery','sis-jquery-ui-sis'), SIS_VERSION );
37
-
38
- // Add javascript translation
39
- wp_localize_script( 'sis_js', 'sis', $this->localizeVars() );
40
-
41
- // Add CSS
42
- wp_enqueue_style( 'jquery-ui-sis', SIS_URL.'css/Aristo/jquery-ui-1.8.7.custom.css', array(), '1.8.7' );
43
- wp_enqueue_style( 'sis_css', SIS_URL.'css/sis-style.css', array(), SIS_VERSION );
44
- }
45
- }
46
-
47
- /**
48
- * Localize the var for javascript
49
- *
50
- * @access public
51
- * @return void
52
- * @author Nicolas Juen
53
- */
54
- public function localizeVars() {
55
- return array(
56
- 'ajaxUrl' => admin_url( '/admin-ajax.php' ),
57
- 'reading' => __( 'Reading attachments...', 'sis' ),
58
- 'maximumWidth' => __( 'Maximum width', 'sis' ),
59
- 'maximumHeight' => __( 'Maximum height', 'sis' ),
60
- 'crop' => __( 'Crop ?', 'sis' ),
61
- 'of' => __( ' of ', 'sis' ),
62
- 'deleteImage' => __( 'Delete', 'sis' ),
63
- 'noMedia' => __( 'No media in your site to regenerate !', 'sis' ),
64
- 'regenerating' => __( 'Regenerating ', 'sis'),
65
- 'validate' => __( 'Validate image size name', 'sis' ),
66
- 'done' => __( 'Done.', 'sis' ),
67
- 'size' => __( 'Size', 'sis' ),
68
- 'notOriginal' => __( 'Don\'t use the basic Wordpress thumbnail size name, use the form above to edit them', 'sis' ),
69
- 'alreadyPresent' => __( 'This size is already registered, edit it instead of recreating it.', 'sis' ),
70
- 'confirmDelete' => __( 'Do you really want to delete these size ?', 'sis' ),
71
- 'update' => __( 'Update', 'sis' ),
72
- 'ajaxErrorHandler' => __( 'Error requesting page', 'sis' ),
73
- 'messageRegenerated' => __( 'images have been regenerated !', 'sis' ),
74
- 'validateButton' => __( 'Validate', 'sis' ),
75
- );
76
- }
77
-
78
- /**
79
- * Add a link to the setting option page
80
- *
81
- * @access public
82
- * @param array $links
83
- * @param string $file
84
- * @return void
85
- * @author Nicolas Juen
86
- */
87
- public function addSettingsLink( $links, $file ) {
88
-
89
- if( $file != 'simple-image-sizes/simple_image_sizes.php' )
90
- return $links;
91
-
92
- $settings_link = '<a href="'.admin_url('options-media.php').'"> '.__( 'Settings', 'sis' ).' </a>';
93
- array_unshift($links, $settings_link);
94
-
95
- return $links;
96
- }
97
-
98
- /**
99
- * Init for the option page
100
- *
101
- * @access public
102
- * @return void
103
- * @author Nicolas Juen
104
- */
105
- function init() {
106
-
107
- // Check if admin
108
- if( !is_admin() )
109
- return false;
110
-
111
- // Get the image sizes
112
- global $_wp_additional_image_sizes;
113
-
114
- // Get the sizes and add the settings
115
- foreach ( get_intermediate_image_sizes() as $s ) {
116
-
117
- // Don't make the original sizes
118
- if( in_array( $s, $this->original ) )
119
- continue;
120
-
121
- // Set width
122
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
123
- $width = intval( $_wp_additional_image_sizes[$s]['width'] );
124
- else // For default sizes set in options
125
- $width = get_option( "{$s}_size_w" );
126
-
127
- // Set height
128
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
129
- $height = intval( $_wp_additional_image_sizes[$s]['height'] );
130
- else // For default sizes set in options
131
- $height = get_option( "{$s}_size_h" );
132
-
133
- //Set crop
134
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
135
- $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
136
- else // For default sizes set in options
137
- $crop = get_option( "{$s}_crop" );
138
-
139
- // Add the setting field for this size
140
- add_settings_field( 'image_size_'.$s.'', __( 'Size ', 'sis' ).$s, array( &$this, 'imageSizes' ), 'media' , 'default', array( 'name' => $s , 'width' => $width , 'height' => $height ) );
141
-
142
- }
143
-
144
- // Register the setting for media option page
145
- register_setting( 'media', SIS_OPTION );
146
-
147
- // Add the button
148
- add_settings_field( 'add_size_button', __( 'Add a new size', 'sis' ), array( &$this, 'addSizeButton' ), 'media' );
149
-
150
- // Add legend
151
- add_settings_field( 'add_legend', __( 'Legend of the sizes', 'sis' ), array( &$this, 'addLegend' ), 'media' );
152
-
153
- // Add php button
154
- add_settings_field( 'get_php_button', __( 'Get php for theme', 'sis' ), array( &$this, 'getPhpButton' ), 'media' );
155
-
156
- // Add section for the thumbnail regeneration
157
- add_settings_section( 'thumbnail_regenerate', __( 'Thumbnail regeneration', 'sis' ), array( &$this, 'thumbnailRegenerate' ), 'media' );
158
- }
159
-
160
- /**
161
- * Display the row of the image size
162
- *
163
- * @access public
164
- * @param mixed $args
165
- * @return void
166
- * @author Nicolas Juen
167
- */
168
- public function imageSizes( $args ) {
169
- // Get the options
170
- $sizes = (array)get_option( SIS_OPTION );
171
-
172
- $height = isset( $sizes[$args['name']]['h'] )? $sizes[$args['name']]['h'] : $args['height'] ;
173
- $width = isset( $sizes[$args['name']]['w'] )? $sizes[$args['name']]['w'] : $args['width'] ;
174
- $crop = isset( $sizes[$args['name']]['c'] ) && !empty( $sizes[$args['name']]['c'] )? '1' : '0' ;
175
- $custom = ( isset( $sizes[$args['name']]['custom'] ) && !empty( $sizes[$args['name']]['custom'] ) )? '1' : '0' ;
176
- ?>
177
- <input type="hidden" value="<?php echo $args['name']; ?>" name="image_name" />
178
- <?php if( $custom ): ?>
179
- <span class="custom_size"> <?php _e( 'Custom size', 'sis'); ?> : </span>
180
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" value="1" />
181
- <?php else: ?>
182
- <span class="theme_size"> <?php _e( 'Theme size', 'sis'); ?> : </span>
183
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" value="1" />
184
- <?php endif; ?>
185
- <label for="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>">
186
- <?php _e( 'Maximum width', 'sis'); ?>
187
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" class='w' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" value="<?php echo $width ?>" />
188
- </label>
189
-
190
- <label for="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>">
191
- <?php _e( 'Maximum height', 'sis'); ?>
192
- <input name="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" class='h' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" value="<?php echo $height ?>" />
193
- </label>
194
-
195
- <div class="crop">
196
- <input type='checkbox' id="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" <?php checked( $crop, 1 ) ?> class="c" name="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" value="1" />
197
- <label for="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>"><?php _e( 'Crop ?', 'sis'); ?></label>
198
- </div>
199
- <div class="delete_size"><?php _e( 'Delete', 'sis'); ?></div>
200
- <div class="add_size validate_size"><?php _e( 'Update', 'sis'); ?></div>
201
- <?php }
202
-
203
- /**
204
- * Add the button to add a size
205
- *
206
- * @access public
207
- * @return void
208
- * @author Nicolas Juen
209
- */
210
- public function addSizeButton() { ?>
211
- <input type="button" class="button-secondary action" id="add_size" value="<?php _e( 'Add a new size of thumbnail', 'sis'); ?>" />
212
- <?php
213
- }
214
-
215
- /**
216
- * Add the button to get the php for th sizes
217
- *
218
- * @access public
219
- * @return void
220
- * @author Nicolas Juen
221
- */
222
- public function getPhpButton() { ?>
223
- <input type="button" class="button-secondary action" id="get_php" value="<?php _e( 'Get the PHP for the theme', 'sis'); ?>" />
224
- <p> <?php _e( 'Copy and paste the code below into your Wordpress theme function file if you wanted to save them and deactivate the plugin.', 'sis'); ?> </p>
225
- <code></code>
226
- <?php
227
- }
228
-
229
- /**
230
- * Add the legend fo the colors
231
- *
232
- * @access public
233
- * @return void
234
- * @author Nicolas Juen
235
- */
236
- public function addLegend() { ?>
237
- <?php _e('The images created on your theme are <span style="color:#F2A13A">orange</span> and your custom size are <span style="color:#89D76A"> green </span>.', 'sis'); ?>
238
- <?php
239
- }
240
-
241
- /**
242
- * Display the Table of sizes and post types for regenerating
243
- *
244
- * @access public
245
- * @return void
246
- * @author Nicolas Juen
247
- */
248
- public function thumbnailRegenerate() {
249
- // Get the sizes
250
- global $_wp_additional_image_sizes;
251
- $class= "alternate";
252
- ?>
253
- <div id="sis-regen">
254
- <div class="wrapper" style="">
255
- <h4> <?php _e( 'Select which thumbnails you want to rebuild:', 'sis'); ?> </h4>
256
- <table cellspacing="0" class="widefat page fixed">
257
- <thead>
258
- <tr>
259
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
260
- <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
261
- <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
262
- <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
263
- <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
264
- </tr>
265
- </thead>
266
- <tbody>
267
- <?php
268
- // Display the sizes in the array
269
- foreach ( get_intermediate_image_sizes() as $s ):
270
- $class = empty($class)? 'alternate' : '' ;
271
-
272
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
273
- $width = intval( $_wp_additional_image_sizes[$s]['width'] );
274
- else // For default sizes set in options
275
- $width = get_option( "{$s}_size_w" );
276
-
277
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
278
- $height = intval( $_wp_additional_image_sizes[$s]['height'] );
279
- else // For default sizes set in options
280
- $height = get_option( "{$s}_size_h" );
281
-
282
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
283
- $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
284
- else // For default sizes set in options
285
- $crop = get_option( "{$s}_crop" );
286
- ?>
287
- <tr class="<?php echo $class; ?>">
288
- <td>
289
- <input type="checkbox" class="thumbnails" id="<?php echo $s ?>" name="thumbnails[]" checked="checked" value="<?php echo $s ?>" />
290
- </td>
291
-
292
- <td>
293
- <label for="<?php echo $s ?>">
294
- <?php echo $s; ?>
295
- </label>
296
- </td>
297
-
298
- <td>
299
- <label for="<?php echo $s ?>">
300
- <?php echo $width;?> px
301
- </label>
302
- </td>
303
-
304
- <td>
305
- <label for="<?php echo $s ?>">
306
- <?php echo $height; ?> px
307
- </label>
308
- </td>
309
-
310
- <td>
311
- <label for="<?php echo $s ?>">
312
- <?php echo ( $crop == 1 )? __( 'yes', 'no' ):__( 'no', 'sis' ); ?>
313
- </label>
314
- </td>
315
- </tr>
316
- <?php endforeach;?>
317
- </tbody>
318
- <tfoot>
319
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
320
- <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
321
- <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
322
- <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
323
- <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
324
- </tfoot>
325
- </table>
326
- </div>
327
- <div style="display: inline-block;width: 25%;margin-left: 15px;">
328
- <h4><?php _e( 'Select which post type source thumbnails you want to rebuild:', 'sis'); ?></h4>
329
- <table cellspacing="0" class="widefat page fixed">
330
- <thead>
331
- <tr>
332
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
333
- <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
334
- </tr>
335
- </thead>
336
- <tbody>
337
- <?php
338
- // Diplay the post types table
339
- foreach ( get_post_types( array( 'public' => true ), 'objects' ) as $ptype ):
340
- $class = empty($class)? 'alternate' : '' ;
341
- ?>
342
- <tr class="<?php echo $class; ?>">
343
- <td>
344
- <label for="<?php echo $ptype->name; ?>">
345
- <input type="checkbox" class="post_types" name="post_types[]" checked="checked" id="<?php echo $ptype->name; ?>" value="<?php echo $ptype->name; ?>" />
346
- </label>
347
- </td>
348
- <td>
349
- <label for="<?php echo $ptype->name; ?>">
350
- <em><?php echo $ptype->labels->name; ?></em>
351
- </label>
352
- </td>
353
- </tr>
354
- <?php endforeach;?>
355
- </tbody>
356
- <tfoot>
357
- <tr>
358
- <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
359
- <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
360
- </tr>
361
- </tfoot>
362
- </table>
363
- </div>
364
- </div>
365
-
366
- <div style="clear:both;padding-top:15px">
367
- <div id="regenerate_message"></div>
368
- <div class="progress">
369
- <div class=" progress-percent ui-widget">
370
- <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
371
- <p>
372
- <span class="ui-icon ui-icon-info" style="float: left; margin-right: .7em;"></span>
373
- <span class="text">0%</span>
374
- </p>
375
- </div>
376
- </div>
377
- </div>
378
- <div id="thumb"><h4><?php _e( 'Last image:', 'sis'); ?></h4><img id="thumb-img" /></div>
379
- <input type="button" class="button" name="ajax_thumbnail_rebuild" id="ajax_thumbnail_rebuild" value="<?php _e( 'Regenerate Thumbnails', 'sis' ) ?>" />
380
- </div>
381
- <?php
382
- }
383
-
384
- /**
385
- * Add a size by Ajax
386
- *
387
- * @access public
388
- * @return void
389
- * @author Nicolas Juen
390
- */
391
- public function ajaxAddSize() {
392
-
393
- // Get old options
394
- $sizes = (array)get_option( SIS_OPTION );
395
-
396
- // Check entries
397
- $name = isset( $_POST['name'] ) ? apply_filters( 'sanitize_title', $_POST['name'] ) : '' ;
398
- $height = !isset( $_POST['height'] )? 0 : (int)$_POST['height'];
399
- $width = !isset( $_POST['width'] )? 0 : (int)$_POST['width'];
400
- $crop = !isset( $_POST['crop'] ) || ( $_POST['crop'] != 'true' && $_POST['crop'] != 'false' )? true : $_POST['crop'];
401
-
402
- $values = array( 'custom' => 1, 'w' => $width , 'h' => $height, 'c' => $crop );
403
-
404
- // If the size have not changed return 2
405
- if( isset( $sizes[$name] ) && $sizes[$name] === $values ) {
406
- echo 2;
407
- die();
408
- }
409
-
410
- // Put the new values
411
- $sizes[$name] = $values;
412
-
413
- // display update result
414
- echo (int)update_option( 'custom_image_sizes', $sizes );
415
- die();
416
- }
417
-
418
- /**
419
- * Remove a size by Ajax
420
- *
421
- * @access public
422
- * @return void
423
- * @author Nicolas Juen
424
- */
425
- public function ajaxRemoveSize() {
426
- // Get old options
427
- $sizes = (array)get_option( SIS_OPTION );
428
-
429
- // Remove the size
430
- unset( $sizes[apply_filters( 'sanitize_title', $_POST['name'] )] );
431
- unset( $sizes[0] );
432
-
433
- // Display the results
434
- echo (int)update_option( 'custom_image_sizes', $sizes );
435
- die();
436
- }
437
-
438
- /**
439
- * Display the add_image_size for the registered sizes
440
- *
441
- * @access public
442
- * @return void
443
- */
444
- public function ajaxGetSizes() {
445
- global $_wp_additional_image_sizes;
446
-
447
- foreach ( get_intermediate_image_sizes() as $s ):
448
-
449
- // Don't make the original sizes
450
- if( in_array( $s, $this->original ) )
451
- continue;
452
-
453
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
454
- $width = intval( $_wp_additional_image_sizes[$s]['width'] );
455
- else // For default sizes set in options
456
- $width = get_option( "{$s}_size_w" );
457
-
458
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
459
- $height = intval( $_wp_additional_image_sizes[$s]['height'] );
460
- else // For default sizes set in options
461
- $height = get_option( "{$s}_size_h" );
462
-
463
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
464
- $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
465
- else // For default sizes set in options
466
- $crop = get_option( "{$s}_crop" );
467
-
468
- $crop = ( $crop == 0 )? 'false' : 'true' ;
469
- ?>
470
- add_image_size( '<?php echo $s; ?>', '<?php echo $width; ?>', '<?php echo $height; ?>', <?php echo $crop ?> );<br />
471
- <?php endforeach;
472
-
473
- die();
474
- }
475
-
476
- /**
477
- * Rebuild the image
478
- *
479
- * @access public
480
- * @return void
481
- * @author Nicolas Juen
482
- */
483
- public function ajaxThumbnailRebuildAjax() {
484
- global $wpdb;
485
-
486
- // Get the action
487
- $action = $_POST["do"];
488
-
489
- // Get the thumbnails
490
- $thumbnails = isset( $_POST['thumbnails'] )? $_POST['thumbnails'] : NULL;
491
-
492
- if ( $action == "getlist" ) {
493
- if ( isset( $_POST['post_types'] ) && !empty( $_POST['post_types'] ) ) {
494
-
495
- // Get image medias
496
- $whichmimetype = wp_post_mime_type_where( 'image', $wpdb->posts );
497
-
498
- // Get all parent from post type
499
- $attachments = $wpdb->get_results( "SELECT *
500
- FROM $wpdb->posts
501
- WHERE 1 = 1
502
- AND post_type = 'attachment'
503
- $whichmimetype
504
- AND post_parent IN (
505
- SELECT DISTINCT ID
506
- FROM $wpdb->posts
507
- WHERE post_type IN ('".implode( "', '", $_POST['post_types'] )."')
508
- )" );
509
-
510
- } else {
511
- $attachments =& get_children( array(
512
- 'post_type' => 'attachment',
513
- 'post_mime_type' => 'image',
514
- 'numberposts' => -1,
515
- 'post_status' => null,
516
- 'post_parent' => null, // any parent
517
- 'output' => 'object',
518
- ) );
519
- }
520
-
521
- // Get the attachments
522
- foreach ( $attachments as $attachment ) {
523
- $res[] = array('id' => $attachment->ID, 'title' => $attachment->post_title);
524
- }
525
- // Return the Id's and Title of medias
526
- die( json_encode( $res ) );
527
- } else if ( $action == "regen" ) {
528
- // Get the id
529
- $id = $_POST["id"];
530
-
531
- // Check Id
532
- if( (int)$id == 0 ) {
533
- die( Null );
534
- }
535
-
536
- // Get the path
537
- $fullsizepath = get_attached_file( $id );
538
-
539
- // Regen the attachment
540
- if ( FALSE !== $fullsizepath && @file_exists( $fullsizepath ) ) {
541
- set_time_limit( 30 );
542
- wp_update_attachment_metadata( $id, $this->wp_generate_attachment_metadata_custom( $id, $fullsizepath, $thumbnails ) );
543
- }
544
-
545
- // Display the attachment url for feedback
546
- die( json_encode( array( array( 'src' => wp_get_attachment_thumb_url( $id ), 'title' => get_the_title( $id ) ) ) ) );
547
- }
548
- }
549
-
550
- /**
551
- * Generate post thumbnail attachment meta data.
552
- *
553
- * @since 2.1.0
554
- *
555
- * @param int $attachment_id Attachment Id to process.
556
- * @param string $file Filepath of the Attached image.
557
- * @return mixed Metadata for attachment.
558
- */
559
- public function wp_generate_attachment_metadata_custom( $attachment_id, $file, $thumbnails = NULL ) {
560
- $attachment = get_post( $attachment_id );
561
-
562
- $metadata = array();
563
- if ( preg_match('!^image/!', get_post_mime_type( $attachment )) && file_is_displayable_image($file) ) {
564
- $imagesize = getimagesize( $file );
565
- $metadata['width'] = $imagesize[0];
566
- $metadata['height'] = $imagesize[1];
567
- list($uwidth, $uheight) = wp_constrain_dimensions($metadata['width'], $metadata['height'], 128, 96);
568
- $metadata['hwstring_small'] = "height='$uheight' width='$uwidth'";
569
-
570
- // Make the file path relative to the upload dir
571
- $metadata['file'] = _wp_relative_upload_path($file);
572
-
573
- // make thumbnails and other intermediate sizes
574
- global $_wp_additional_image_sizes;
575
-
576
- foreach ( get_intermediate_image_sizes() as $s ) {
577
- $sizes[$s] = array( 'width' => '', 'height' => '', 'crop' => FALSE );
578
- if ( isset( $_wp_additional_image_sizes[$s]['width'] ) )
579
- $sizes[$s]['width'] = intval( $_wp_additional_image_sizes[$s]['width'] ); // For theme-added sizes
580
- else
581
- $sizes[$s]['width'] = get_option( "{$s}_size_w" ); // For default sizes set in options
582
- if ( isset( $_wp_additional_image_sizes[$s]['height'] ) )
583
- $sizes[$s]['height'] = intval( $_wp_additional_image_sizes[$s]['height'] ); // For theme-added sizes
584
- else
585
- $sizes[$s]['height'] = get_option( "{$s}_size_h" ); // For default sizes set in options
586
- if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) )
587
- $sizes[$s]['crop'] = intval( $_wp_additional_image_sizes[$s]['crop'] ); // For theme-added sizes
588
- else
589
- $sizes[$s]['crop'] = get_option( "{$s}_crop" ); // For default sizes set in options
590
- }
591
-
592
- $sizes = apply_filters( 'intermediate_image_sizes_advanced', $sizes );
593
-
594
- foreach ( $sizes as $size => $size_data ) {
595
- if( isset( $thumbnails ) )
596
- if( !in_array( $size, $thumbnails ) )
597
- continue;
598
-
599
- $resized = image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'] );
600
-
601
- if ( $resized )
602
- $metadata['sizes'][$size] = $resized;
603
- }
604
-
605
- // fetch additional metadata from exif/iptc
606
- $image_meta = wp_read_image_metadata( $file );
607
- if ( $image_meta )
608
- $metadata['image_meta'] = $image_meta;
609
-
610
- }
611
-
612
- return apply_filters( 'wp_generate_attachment_metadata', $metadata, $attachment_id );
613
- }
614
-
615
- /**
616
- * Add the custom sizes to the image sizes in article edition
617
- *
618
- * @access public
619
- * @param array $form_fields
620
- * @param object $post
621
- * @return void
622
- * @author Nicolas Juen
623
- * @author Additional Image Sizes (zui)
624
- */
625
- public function sizesInForm( $form_fields, $post ) {
626
- // Protect from being view in Media editor where there are no sizes
627
- if ( isset( $form_fields['image-size'] ) ) {
628
- $out = NULL;
629
- $size_names = array();
630
- $sizes_custom = get_option( 'custom_image_sizes' );
631
- if ( is_array( $sizes_custom ) ) {
632
- foreach( $sizes_custom as $key => $value ) {
633
- $size_names[$key] = $key;
634
- }
635
- }
636
- foreach ( $size_names as $size => $label ) {
637
- $downsize = image_downsize( $post->ID, $size );
638
-
639
- // is this size selectable?
640
- $enabled = ( $downsize[3] || 'full' == $size );
641
- $css_id = "image-size-{$size}-{$post->ID}";
642
-
643
- // We must do a clumsy search of the existing html to determine is something has been checked yet
644
- if ( FALSE === strpos( 'checked="checked"', $form_fields['image-size']['html'] ) ) {
645
-
646
- if ( empty($check) )
647
- $check = get_user_setting( 'imgsize' ); // See if they checked a custom size last time
648
-
649
- $checked = '';
650
-
651
- // if this size is the default but that's not available, don't select it
652
- if ( $size == $check || str_replace( " ", "", $size ) == $check ) {
653
- if ( $enabled )
654
- $checked = " checked='checked'";
655
- else
656
- $check = '';
657
- } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
658
- // if $check is not enabled, default to the first available size that's bigger than a thumbnail
659
- $check = $size;
660
- $checked = " checked='checked'";
661
- }
662
- }
663
- $html = "<div class='image-size-item' style='min-height: 50px; margin-top: 18px;'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
664
-
665
- $html .= "<label for='{$css_id}'>$label</label>";
666
- // only show the dimensions if that choice is available
667
- if ( $enabled )
668
- $html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
669
-
670
- $html .= '</div>';
671
-
672
- $out .= $html;
673
- }
674
- $form_fields['image-size']['html'] .= $out;
675
- } // End protect from Media editor
676
-
677
- return $form_fields;
678
- }
679
- }
 
680
  ?>
1
+ <?php
2
+ Class SISAdmin {
3
+
4
+ // Original sizes
5
+ public $original = array( 'thumbnail', 'medium', 'large' );
6
+
7
+ public function __construct(){
8
+ // Init
9
+ add_action ( 'admin_menu', array( &$this, 'init' ) );
10
+ add_action ( 'admin_enqueue_scripts', array( &$this, 'registerScripts' ), 11 );
11
+
12
+ // Add ajax action
13
+ add_action('wp_ajax_ajax_thumbnail_rebuild', array( &$this, 'ajaxThumbnailRebuildAjax' ) );
14
+ add_action('wp_ajax_get_sizes', array( &$this, 'ajaxGetSizes' ) );
15
+ add_action('wp_ajax_add_size', array( &$this, 'ajaxAddSize' ) );
16
+ add_action('wp_ajax_remove_size', array( &$this, 'ajaxRemoveSize' ) );
17
+
18
+ // Add image sizes in the form
19
+ add_filter( 'attachment_fields_to_edit', array( &$this, 'sizesInForm' ), 11, 2 ); // Add our sizes to media forms
20
+
21
+ // Add link in plugins list
22
+ add_filter('plugin_action_links', array( &$this,'addSettingsLink'), 10, 2 );
23
+ }
24
+
25
+ /**
26
+ * Register javascripts and css.
27
+ *
28
+ * @access public
29
+ * @return void
30
+ * @author Nicolas Juen
31
+ */
32
+ public function registerScripts($hook_suffix = '' ) {
33
+ if( isset( $hook_suffix ) && $hook_suffix == 'options-media.php' ) {
34
+ // Add javascript
35
+ wp_enqueue_script( 'sis-jquery-ui-sis', SIS_URL.'js/jquery-ui-1.8.12.custom.min.js', array('jquery'), '1.8.12' );
36
+ wp_enqueue_script( 'sis_js', SIS_URL.'js/sis.min.js', array('jquery','sis-jquery-ui-sis'), SIS_VERSION );
37
+
38
+ // Add javascript translation
39
+ wp_localize_script( 'sis_js', 'sis', $this->localizeVars() );
40
+
41
+ // Add CSS
42
+ wp_enqueue_style( 'jquery-ui-sis', SIS_URL.'css/Aristo/jquery-ui-1.8.7.custom.css', array(), '1.8.7' );
43
+ wp_enqueue_style( 'sis_css', SIS_URL.'css/sis-style.css', array(), SIS_VERSION );
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Localize the var for javascript
49
+ *
50
+ * @access public
51
+ * @return void
52
+ * @author Nicolas Juen
53
+ */
54
+ public function localizeVars() {
55
+ return array(
56
+ 'ajaxUrl' => admin_url( '/admin-ajax.php' ),
57
+ 'reading' => __( 'Reading attachments...', 'sis' ),
58
+ 'maximumWidth' => __( 'Maximum width', 'sis' ),
59
+ 'maximumHeight' => __( 'Maximum height', 'sis' ),
60
+ 'crop' => __( 'Crop ?', 'sis' ),
61
+ 'of' => __( ' of ', 'sis' ),
62
+ 'deleteImage' => __( 'Delete', 'sis' ),
63
+ 'noMedia' => __( 'No media in your site to regenerate !', 'sis' ),
64
+ 'regenerating' => __( 'Regenerating ', 'sis'),
65
+ 'validate' => __( 'Validate image size name', 'sis' ),
66
+ 'done' => __( 'Done.', 'sis' ),
67
+ 'size' => __( 'Size', 'sis' ),
68
+ 'notOriginal' => __( 'Don\'t use the basic Wordpress thumbnail size name, use the form above to edit them', 'sis' ),
69
+ 'alreadyPresent' => __( 'This size is already registered, edit it instead of recreating it.', 'sis' ),
70
+ 'confirmDelete' => __( 'Do you really want to delete these size ?', 'sis' ),
71
+ 'update' => __( 'Update', 'sis' ),
72
+ 'ajaxErrorHandler' => __( 'Error requesting page', 'sis' ),
73
+ 'messageRegenerated' => __( 'images have been regenerated !', 'sis' ),
74
+ 'validateButton' => __( 'Validate', 'sis' ),
75
+ );
76
+ }
77
+
78
+ /**
79
+ * Add a link to the setting option page
80
+ *
81
+ * @access public
82
+ * @param array $links
83
+ * @param string $file
84
+ * @return void
85
+ * @author Nicolas Juen
86
+ */
87
+ public function addSettingsLink( $links, $file ) {
88
+
89
+ if( $file != 'simple-image-sizes/simple_image_sizes.php' )
90
+ return $links;
91
+
92
+ $settings_link = '<a href="'.admin_url('options-media.php').'"> '.__( 'Settings', 'sis' ).' </a>';
93
+ array_unshift($links, $settings_link);
94
+
95
+ return $links;
96
+ }
97
+
98
+ /**
99
+ * Init for the option page
100
+ *
101
+ * @access public
102
+ * @return void
103
+ * @author Nicolas Juen
104
+ */
105
+ function init() {
106
+
107
+ // Check if admin
108
+ if( !is_admin() )
109
+ return false;
110
+
111
+ // Get the image sizes
112
+ global $_wp_additional_image_sizes;
113
+
114
+ // Get the sizes and add the settings
115
+ foreach ( get_intermediate_image_sizes() as $s ) {
116
+
117
+ // Don't make the original sizes
118
+ if( in_array( $s, $this->original ) )
119
+ continue;
120
+
121
+ // Set width
122
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
123
+ $width = intval( $_wp_additional_image_sizes[$s]['width'] );
124
+ else // For default sizes set in options
125
+ $width = get_option( "{$s}_size_w" );
126
+
127
+ // Set height
128
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
129
+ $height = intval( $_wp_additional_image_sizes[$s]['height'] );
130
+ else // For default sizes set in options
131
+ $height = get_option( "{$s}_size_h" );
132
+
133
+ //Set crop
134
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
135
+ $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
136
+ else // For default sizes set in options
137
+ $crop = get_option( "{$s}_crop" );
138
+
139
+ // Add the setting field for this size
140
+ add_settings_field( 'image_size_'.$s.'', __( 'Size ', 'sis' ).$s, array( &$this, 'imageSizes' ), 'media' , 'default', array( 'name' => $s , 'width' => $width , 'height' => $height ) );
141
+
142
+ }
143
+
144
+ // Register the setting for media option page
145
+ register_setting( 'media', SIS_OPTION );
146
+
147
+ // Add the button
148
+ add_settings_field( 'add_size_button', __( 'Add a new size', 'sis' ), array( &$this, 'addSizeButton' ), 'media' );
149
+
150
+ // Add legend
151
+ add_settings_field( 'add_legend', __( 'Legend of the sizes', 'sis' ), array( &$this, 'addLegend' ), 'media' );
152
+
153
+ // Add php button
154
+ add_settings_field( 'get_php_button', __( 'Get php for theme', 'sis' ), array( &$this, 'getPhpButton' ), 'media' );
155
+
156
+ // Add section for the thumbnail regeneration
157
+ add_settings_section( 'thumbnail_regenerate', __( 'Thumbnail regeneration', 'sis' ), array( &$this, 'thumbnailRegenerate' ), 'media' );
158
+ }
159
+
160
+ /**
161
+ * Display the row of the image size
162
+ *
163
+ * @access public
164
+ * @param mixed $args
165
+ * @return void
166
+ * @author Nicolas Juen
167
+ */
168
+ public function imageSizes( $args ) {
169
+ // Get the options
170
+ $sizes = (array)get_option( SIS_OPTION );
171
+
172
+ $height = isset( $sizes[$args['name']]['h'] )? $sizes[$args['name']]['h'] : $args['height'] ;
173
+ $width = isset( $sizes[$args['name']]['w'] )? $sizes[$args['name']]['w'] : $args['width'] ;
174
+ $crop = isset( $sizes[$args['name']]['c'] ) && !empty( $sizes[$args['name']]['c'] )? '1' : '0' ;
175
+ $custom = ( isset( $sizes[$args['name']]['custom'] ) && !empty( $sizes[$args['name']]['custom'] ) )? '1' : '0' ;
176
+ ?>
177
+ <input type="hidden" value="<?php echo $args['name']; ?>" name="image_name" />
178
+ <?php if( $custom ): ?>
179
+ <span class="custom_size"> <?php _e( 'Custom size', 'sis'); ?> : </span>
180
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][custom]' ?>" value="1" />
181
+ <?php else: ?>
182
+ <span class="theme_size"> <?php _e( 'Theme size', 'sis'); ?> : </span>
183
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" type="hidden" id="<?php echo 'custom_image_sizes['.$args['name'].'][theme]' ?>" value="1" />
184
+ <?php endif; ?>
185
+ <label for="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>">
186
+ <?php _e( 'Maximum width', 'sis'); ?>
187
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" class='w' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][w]' ?>" value="<?php echo $width ?>" />
188
+ </label>
189
+
190
+ <label for="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>">
191
+ <?php _e( 'Maximum height', 'sis'); ?>
192
+ <input name="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" class='h' type="number" step='1' min='0' id="<?php echo 'custom_image_sizes['.$args['name'].'][h]' ?>" value="<?php echo $height ?>" />
193
+ </label>
194
+
195
+ <div class="crop">
196
+ <input type='checkbox' id="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" <?php checked( $crop, 1 ) ?> class="c" name="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>" value="1" />
197
+ <label for="<?php echo 'custom_image_sizes['.$args['name'].'][c]' ?>"><?php _e( 'Crop ?', 'sis'); ?></label>
198
+ </div>
199
+ <div class="delete_size"><?php _e( 'Delete', 'sis'); ?></div>
200
+ <div class="add_size validate_size"><?php _e( 'Update', 'sis'); ?></div>
201
+ <?php }
202
+
203
+ /**
204
+ * Add the button to add a size
205
+ *
206
+ * @access public
207
+ * @return void
208
+ * @author Nicolas Juen
209
+ */
210
+ public function addSizeButton() { ?>
211
+ <input type="button" class="button-secondary action" id="add_size" value="<?php _e( 'Add a new size of thumbnail', 'sis'); ?>" />
212
+ <?php
213
+ }
214
+
215
+ /**
216
+ * Add the button to get the php for th sizes
217
+ *
218
+ * @access public
219
+ * @return void
220
+ * @author Nicolas Juen
221
+ */
222
+ public function getPhpButton() { ?>
223
+ <input type="button" class="button-secondary action" id="get_php" value="<?php _e( 'Get the PHP for the theme', 'sis'); ?>" />
224
+ <p> <?php _e( 'Copy and paste the code below into your Wordpress theme function file if you wanted to save them and deactivate the plugin.', 'sis'); ?> </p>
225
+ <code></code>
226
+ <?php
227
+ }
228
+
229
+ /**
230
+ * Add the legend fo the colors
231
+ *
232
+ * @access public
233
+ * @return void
234
+ * @author Nicolas Juen
235
+ */
236
+ public function addLegend() { ?>
237
+ <?php _e('The images created on your theme are <span style="color:#F2A13A">orange</span> and your custom size are <span style="color:#89D76A"> green </span>.', 'sis'); ?>
238
+ <?php
239
+ }
240
+
241
+ /**
242
+ * Display the Table of sizes and post types for regenerating
243
+ *
244
+ * @access public
245
+ * @return void
246
+ * @author Nicolas Juen
247
+ */
248
+ public function thumbnailRegenerate() {
249
+ // Get the sizes
250
+ global $_wp_additional_image_sizes;
251
+ $class= "alternate";
252
+ ?>
253
+ <div id="sis-regen">
254
+ <div class="wrapper" style="">
255
+ <h4> <?php _e( 'Select which thumbnails you want to rebuild:', 'sis'); ?> </h4>
256
+ <table cellspacing="0" class="widefat page fixed">
257
+ <thead>
258
+ <tr>
259
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
260
+ <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
261
+ <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
262
+ <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
263
+ <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
264
+ </tr>
265
+ </thead>
266
+ <tbody>
267
+ <?php
268
+ // Display the sizes in the array
269
+ foreach ( get_intermediate_image_sizes() as $s ):
270
+ $class = empty($class)? 'alternate' : '' ;
271
+
272
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
273
+ $width = intval( $_wp_additional_image_sizes[$s]['width'] );
274
+ else // For default sizes set in options
275
+ $width = get_option( "{$s}_size_w" );
276
+
277
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
278
+ $height = intval( $_wp_additional_image_sizes[$s]['height'] );
279
+ else // For default sizes set in options
280
+ $height = get_option( "{$s}_size_h" );
281
+
282
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
283
+ $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
284
+ else // For default sizes set in options
285
+ $crop = get_option( "{$s}_crop" );
286
+ ?>
287
+ <tr class="<?php echo $class; ?>">
288
+ <td>
289
+ <input type="checkbox" class="thumbnails" id="<?php echo $s ?>" name="thumbnails[]" checked="checked" value="<?php echo $s ?>" />
290
+ </td>
291
+
292
+ <td>
293
+ <label for="<?php echo $s ?>">
294
+ <?php echo $s; ?>
295
+ </label>
296
+ </td>
297
+
298
+ <td>
299
+ <label for="<?php echo $s ?>">
300
+ <?php echo $width;?> px
301
+ </label>
302
+ </td>
303
+
304
+ <td>
305
+ <label for="<?php echo $s ?>">
306
+ <?php echo $height; ?> px
307
+ </label>
308
+ </td>
309
+
310
+ <td>
311
+ <label for="<?php echo $s ?>">
312
+ <?php echo ( $crop == 1 )? __( 'yes', 'sis' ):__( 'no', 'sis' ); ?>
313
+ </label>
314
+ </td>
315
+ </tr>
316
+ <?php endforeach;?>
317
+ </tbody>
318
+ <tfoot>
319
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
320
+ <th class="manage-column column-author" scope="col"><?php _e( 'Size name', 'sis'); ?></th>
321
+ <th class="manage-column column-author" scope="col"><?php _e( 'Width', 'sis'); ?></th>
322
+ <th class="manage-column column-author" scope="col"><?php _e( 'Height', 'sis'); ?></th>
323
+ <th class="manage-column column-author" scope="col"><?php _e( 'Crop ?', 'sis'); ?></th>
324
+ </tfoot>
325
+ </table>
326
+ </div>
327
+ <div style="display: inline-block;width: 25%;margin-left: 15px;">
328
+ <h4><?php _e( 'Select which post type source thumbnails you want to rebuild:', 'sis'); ?></h4>
329
+ <table cellspacing="0" class="widefat page fixed">
330
+ <thead>
331
+ <tr>
332
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
333
+ <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
334
+ </tr>
335
+ </thead>
336
+ <tbody>
337
+ <?php
338
+ // Diplay the post types table
339
+ foreach ( get_post_types( array( 'public' => true ), 'objects' ) as $ptype ):
340
+ $class = empty($class)? 'alternate' : '' ;
341
+ ?>
342
+ <tr class="<?php echo $class; ?>">
343
+ <td>
344
+ <label for="<?php echo $ptype->name; ?>">
345
+ <input type="checkbox" class="post_types" name="post_types[]" checked="checked" id="<?php echo $ptype->name; ?>" value="<?php echo $ptype->name; ?>" />
346
+ </label>
347
+ </td>
348
+ <td>
349
+ <label for="<?php echo $ptype->name; ?>">
350
+ <em><?php echo $ptype->labels->name; ?></em>
351
+ </label>
352
+ </td>
353
+ </tr>
354
+ <?php endforeach;?>
355
+ </tbody>
356
+ <tfoot>
357
+ <tr>
358
+ <th class="manage-column column-date" scope="col"><?php _e( 'Resize ?', 'sis'); ?></th>
359
+ <th class="manage-column column-author" scope="col"><?php _e( 'Post type', 'sis'); ?></th>
360
+ </tr>
361
+ </tfoot>
362
+ </table>
363
+ </div>
364
+ </div>
365
+
366
+ <div style="clear:both;padding-top:15px">
367
+ <div id="regenerate_message"></div>
368
+ <div class="progress">
369
+ <div class=" progress-percent ui-widget">
370
+ <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
371
+ <p>
372
+ <span class="ui-icon ui-icon-info" style="float: left; margin-right: .7em;"></span>
373
+ <span class="text">0%</span>
374
+ </p>
375
+ </div>
376
+ </div>
377
+ </div>
378
+ <div id="thumb"><h4><?php _e( 'Last image:', 'sis'); ?></h4><img id="thumb-img" /></div>
379
+ <input type="button" class="button" name="ajax_thumbnail_rebuild" id="ajax_thumbnail_rebuild" value="<?php _e( 'Regenerate Thumbnails', 'sis' ) ?>" />
380
+ </div>
381
+ <?php
382
+ }
383
+
384
+ /**
385
+ * Add a size by Ajax
386
+ *
387
+ * @access public
388
+ * @return void
389
+ * @author Nicolas Juen
390
+ */
391
+ public function ajaxAddSize() {
392
+
393
+ // Get old options
394
+ $sizes = (array)get_option( SIS_OPTION );
395
+
396
+ // Check entries
397
+ $name = isset( $_POST['name'] ) ? apply_filters( 'sanitize_title', $_POST['name'] ) : '' ;
398
+ $height = !isset( $_POST['height'] )? 0 : (int)$_POST['height'];
399
+ $width = !isset( $_POST['width'] )? 0 : (int)$_POST['width'];
400
+
401
+ $crop = isset( $_POST['crop'] ) && $_POST['crop'] == 'false' ? false : true;
402
+
403
+ $values = array( 'custom' => 1, 'w' => $width , 'h' => $height, 'c' => $crop );
404
+ var_dump( $values );
405
+ // If the size have not changed return 2
406
+ if( isset( $sizes[$name] ) && $sizes[$name] === $values ) {
407
+ echo 2;
408
+ die();
409
+ }
410
+
411
+ // Put the new values
412
+ $sizes[$name] = $values;
413
+
414
+ // display update result
415
+ echo (int)update_option( 'custom_image_sizes', $sizes );
416
+ die();
417
+ }
418
+
419
+ /**
420
+ * Remove a size by Ajax
421
+ *
422
+ * @access public
423
+ * @return void
424
+ * @author Nicolas Juen
425
+ */
426
+ public function ajaxRemoveSize() {
427
+ // Get old options
428
+ $sizes = (array)get_option( SIS_OPTION );
429
+
430
+ // Remove the size
431
+ unset( $sizes[apply_filters( 'sanitize_title', $_POST['name'] )] );
432
+ unset( $sizes[0] );
433
+
434
+ // Display the results
435
+ echo (int)update_option( 'custom_image_sizes', $sizes );
436
+ die();
437
+ }
438
+
439
+ /**
440
+ * Display the add_image_size for the registered sizes
441
+ *
442
+ * @access public
443
+ * @return void
444
+ */
445
+ public function ajaxGetSizes() {
446
+ global $_wp_additional_image_sizes;
447
+
448
+ foreach ( get_intermediate_image_sizes() as $s ):
449
+
450
+ // Don't make the original sizes
451
+ if( in_array( $s, $this->original ) )
452
+ continue;
453
+
454
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) // For theme-added sizes
455
+ $width = intval( $_wp_additional_image_sizes[$s]['width'] );
456
+ else // For default sizes set in options
457
+ $width = get_option( "{$s}_size_w" );
458
+
459
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) // For theme-added sizes
460
+ $height = intval( $_wp_additional_image_sizes[$s]['height'] );
461
+ else // For default sizes set in options
462
+ $height = get_option( "{$s}_size_h" );
463
+
464
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) // For theme-added sizes
465
+ $crop = intval( $_wp_additional_image_sizes[$s]['crop'] );
466
+ else // For default sizes set in options
467
+ $crop = get_option( "{$s}_crop" );
468
+
469
+ $crop = ( $crop == 0 )? 'false' : 'true' ;
470
+ ?>
471
+ add_image_size( '<?php echo $s; ?>', '<?php echo $width; ?>', '<?php echo $height; ?>', <?php echo $crop ?> );<br />
472
+ <?php endforeach;
473
+
474
+ die();
475
+ }
476
+
477
+ /**
478
+ * Rebuild the image
479
+ *
480
+ * @access public
481
+ * @return void
482
+ * @author Nicolas Juen
483
+ */
484
+ public function ajaxThumbnailRebuildAjax() {
485
+ global $wpdb;
486
+
487
+ // Get the action
488
+ $action = $_POST["do"];
489
+
490
+ // Get the thumbnails
491
+ $thumbnails = isset( $_POST['thumbnails'] )? $_POST['thumbnails'] : NULL;
492
+
493
+ if ( $action == "getlist" ) {
494
+ if ( isset( $_POST['post_types'] ) && !empty( $_POST['post_types'] ) ) {
495
+
496
+ // Get image medias
497
+ $whichmimetype = wp_post_mime_type_where( 'image', $wpdb->posts );
498
+
499
+ // Get all parent from post type
500
+ $attachments = $wpdb->get_results( "SELECT *
501
+ FROM $wpdb->posts
502
+ WHERE 1 = 1
503
+ AND post_type = 'attachment'
504
+ $whichmimetype
505
+ AND post_parent IN (
506
+ SELECT DISTINCT ID
507
+ FROM $wpdb->posts
508
+ WHERE post_type IN ('".implode( "', '", $_POST['post_types'] )."')
509
+ )" );
510
+
511
+ } else {
512
+ $attachments =& get_children( array(
513
+ 'post_type' => 'attachment',
514
+ 'post_mime_type' => 'image',
515
+ 'numberposts' => -1,
516
+ 'post_status' => null,
517
+ 'post_parent' => null, // any parent
518
+ 'output' => 'object',
519
+ ) );
520
+ }
521
+
522
+ // Get the attachments
523
+ foreach ( $attachments as $attachment ) {
524
+ $res[] = array('id' => $attachment->ID, 'title' => $attachment->post_title);
525
+ }
526
+ // Return the Id's and Title of medias
527
+ die( json_encode( $res ) );
528
+ } else if ( $action == "regen" ) {
529
+ // Get the id
530
+ $id = $_POST["id"];
531
+
532
+ // Check Id
533
+ if( (int)$id == 0 ) {
534
+ die( Null );
535
+ }
536
+
537
+ // Get the path
538
+ $fullsizepath = get_attached_file( $id );
539
+
540
+ // Regen the attachment
541
+ if ( FALSE !== $fullsizepath && @file_exists( $fullsizepath ) ) {
542
+ set_time_limit( 30 );
543
+ wp_update_attachment_metadata( $id, $this->wp_generate_attachment_metadata_custom( $id, $fullsizepath, $thumbnails ) );
544
+ }
545
+
546
+ // Display the attachment url for feedback
547
+ die( json_encode( array( array( 'src' => wp_get_attachment_thumb_url( $id ), 'title' => get_the_title( $id ) ) ) ) );
548
+ }
549
+ }
550
+
551
+ /**
552
+ * Generate post thumbnail attachment meta data.
553
+ *
554
+ * @since 2.1.0
555
+ *
556
+ * @param int $attachment_id Attachment Id to process.
557
+ * @param string $file Filepath of the Attached image.
558
+ * @return mixed Metadata for attachment.
559
+ */
560
+ public function wp_generate_attachment_metadata_custom( $attachment_id, $file, $thumbnails = NULL ) {
561
+ $attachment = get_post( $attachment_id );
562
+
563
+ $metadata = array();
564
+ if ( preg_match('!^image/!', get_post_mime_type( $attachment )) && file_is_displayable_image($file) ) {
565
+ $imagesize = getimagesize( $file );
566
+ $metadata['width'] = $imagesize[0];
567
+ $metadata['height'] = $imagesize[1];
568
+ list($uwidth, $uheight) = wp_constrain_dimensions($metadata['width'], $metadata['height'], 128, 96);
569
+ $metadata['hwstring_small'] = "height='$uheight' width='$uwidth'";
570
+
571
+ // Make the file path relative to the upload dir
572
+ $metadata['file'] = _wp_relative_upload_path($file);
573
+
574
+ // make thumbnails and other intermediate sizes
575
+ global $_wp_additional_image_sizes;
576
+
577
+ foreach ( get_intermediate_image_sizes() as $s ) {
578
+ $sizes[$s] = array( 'width' => '', 'height' => '', 'crop' => FALSE );
579
+ if ( isset( $_wp_additional_image_sizes[$s]['width'] ) )
580
+ $sizes[$s]['width'] = intval( $_wp_additional_image_sizes[$s]['width'] ); // For theme-added sizes
581
+ else
582
+ $sizes[$s]['width'] = get_option( "{$s}_size_w" ); // For default sizes set in options
583
+ if ( isset( $_wp_additional_image_sizes[$s]['height'] ) )
584
+ $sizes[$s]['height'] = intval( $_wp_additional_image_sizes[$s]['height'] ); // For theme-added sizes
585
+ else
586
+ $sizes[$s]['height'] = get_option( "{$s}_size_h" ); // For default sizes set in options
587
+ if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) )
588
+ $sizes[$s]['crop'] = intval( $_wp_additional_image_sizes[$s]['crop'] ); // For theme-added sizes
589
+ else
590
+ $sizes[$s]['crop'] = get_option( "{$s}_crop" ); // For default sizes set in options
591
+ }
592
+
593
+ $sizes = apply_filters( 'intermediate_image_sizes_advanced', $sizes );
594
+
595
+ foreach ( $sizes as $size => $size_data ) {
596
+ if( isset( $thumbnails ) )
597
+ if( !in_array( $size, $thumbnails ) )
598
+ continue;
599
+
600
+ $resized = image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'] );
601
+
602
+ if ( $resized )
603
+ $metadata['sizes'][$size] = $resized;
604
+ }
605
+
606
+ // fetch additional metadata from exif/iptc
607
+ $image_meta = wp_read_image_metadata( $file );
608
+ if ( $image_meta )
609
+ $metadata['image_meta'] = $image_meta;
610
+
611
+ }
612
+
613
+ return apply_filters( 'wp_generate_attachment_metadata', $metadata, $attachment_id );
614
+ }
615
+
616
+ /**
617
+ * Add the custom sizes to the image sizes in article edition
618
+ *
619
+ * @access public
620
+ * @param array $form_fields
621
+ * @param object $post
622
+ * @return void
623
+ * @author Nicolas Juen
624
+ * @author Additional Image Sizes (zui)
625
+ */
626
+ public function sizesInForm( $form_fields, $post ) {
627
+ // Protect from being view in Media editor where there are no sizes
628
+ if ( isset( $form_fields['image-size'] ) ) {
629
+ $out = NULL;
630
+ $size_names = array();
631
+ $sizes_custom = get_option( 'custom_image_sizes' );
632
+ if ( is_array( $sizes_custom ) ) {
633
+ foreach( $sizes_custom as $key => $value ) {
634
+ $size_names[$key] = $key;
635
+ }
636
+ }
637
+ foreach ( $size_names as $size => $label ) {
638
+ $downsize = image_downsize( $post->ID, $size );
639
+
640
+ // is this size selectable?
641
+ $enabled = ( $downsize[3] || 'full' == $size );
642
+ $css_id = "image-size-{$size}-{$post->ID}";
643
+
644
+ // We must do a clumsy search of the existing html to determine is something has been checked yet
645
+ if ( FALSE === strpos( 'checked="checked"', $form_fields['image-size']['html'] ) ) {
646
+
647
+ if ( empty($check) )
648
+ $check = get_user_setting( 'imgsize' ); // See if they checked a custom size last time
649
+
650
+ $checked = '';
651
+
652
+ // if this size is the default but that's not available, don't select it
653
+ if ( $size == $check || str_replace( " ", "", $size ) == $check ) {
654
+ if ( $enabled )
655
+ $checked = " checked='checked'";
656
+ else
657
+ $check = '';
658
+ } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
659
+ // if $check is not enabled, default to the first available size that's bigger than a thumbnail
660
+ $check = $size;
661
+ $checked = " checked='checked'";
662
+ }
663
+ }
664
+ $html = "<div class='image-size-item' style='min-height: 50px; margin-top: 18px;'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
665
+
666
+ $html .= "<label for='{$css_id}'>$label</label>";
667
+ // only show the dimensions if that choice is available
668
+ if ( $enabled )
669
+ $html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
670
+
671
+ $html .= '</div>';
672
+
673
+ $out .= $html;
674
+ }
675
+ $form_fields['image-size']['html'] .= $out;
676
+ } // End protect from Media editor
677
+
678
+ return $form_fields;
679
+ }
680
+ }
681
  ?>
js/sis.js CHANGED
@@ -1,4 +1,3 @@
1
- var i = 0;
2
  // Functions for the regenerating of images
3
  var regenerate = {
4
  post_types : '',
@@ -239,7 +238,8 @@ var sizes = {
239
  // Refresh the buttons
240
  this.setButtons();
241
  },
242
- delete: function( el ) {
 
243
  // Check if user want to delete or not
244
  var confirmation = confirm( sis.confirmDelete );
245
 
@@ -247,9 +247,7 @@ var sizes = {
247
  if( confirmation == true ) {
248
  // Remove from the list and the array
249
  jQuery( el ).closest( 'tr' ).remove();
250
- this.removeFromArray( el );
251
- }else{
252
- return false;
253
  }
254
  },
255
  getPhp : function( e, el ) {
@@ -328,9 +326,7 @@ var sizes = {
328
  }
329
  });
330
  },
331
- ajaxUnregister: function(e, el) {
332
- e.preventDefault();
333
-
334
  // Get name and self object
335
  var self = this;
336
  var n = jQuery( el ).closest('tr').find('input[name=image_name]').val();
@@ -341,8 +337,7 @@ var sizes = {
341
  type: "POST",
342
  data: { action : "remove_size", name: n },
343
  success: function(result) {
344
- // delete the row
345
- self.delete( el );
346
  }
347
  });
348
  },
@@ -417,7 +412,7 @@ jQuery(function() {
417
  jQuery('.add_size_name').live( 'click',function( e ){ sizes.register( e, this ); });
418
 
419
  // Delete and Adding buttons
420
- jQuery('.delete_size').live('click', function( e ){ sizes.ajaxUnregister( e, this ); });
421
  jQuery('.validate_size').live('click', function( e ){ sizes.ajaxRegister( e, this ); });
422
 
423
  // Seup the getphp
 
1
  // Functions for the regenerating of images
2
  var regenerate = {
3
  post_types : '',
238
  // Refresh the buttons
239
  this.setButtons();
240
  },
241
+ deleteSize: function( e, el ) {
242
+ e.preventDefault();
243
  // Check if user want to delete or not
244
  var confirmation = confirm( sis.confirmDelete );
245
 
247
  if( confirmation == true ) {
248
  // Remove from the list and the array
249
  jQuery( el ).closest( 'tr' ).remove();
250
+ this.ajaxUnregister( el );
 
 
251
  }
252
  },
253
  getPhp : function( e, el ) {
326
  }
327
  });
328
  },
329
+ ajaxUnregister: function( el) {
 
 
330
  // Get name and self object
331
  var self = this;
332
  var n = jQuery( el ).closest('tr').find('input[name=image_name]').val();
337
  type: "POST",
338
  data: { action : "remove_size", name: n },
339
  success: function(result) {
340
+ self.removeFromArray( el );
 
341
  }
342
  });
343
  },
412
  jQuery('.add_size_name').live( 'click',function( e ){ sizes.register( e, this ); });
413
 
414
  // Delete and Adding buttons
415
+ jQuery('.delete_size').live('click', function( e ){ sizes.deleteSize( e, this ); });
416
  jQuery('.validate_size').live('click', function( e ){ sizes.ajaxRegister( e, this ); });
417
 
418
  // Seup the getphp
js/sis.min.js CHANGED
@@ -2,9 +2,9 @@ var regenerate={post_types:'',thumbnails:'',list:'',cur:0,percent:'',getThumbnai
2
  if(this.curr>=this.list.length){this.reInit();this.setMessage(sis.done+this.curr+' '+sis.messageRegenerated);return;}
3
  this.setMessage(sis.regenerating+(this.curr+1)+sis.of+this.list.length+" ("+this.list[this.curr].title+")...");jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:"action=ajax_thumbnail_rebuild&do=regen&id="+this.list[this.curr].id+this.thumbnails,beforeSend:function(){self.percent=(self.curr/self.list.length)*100;jQuery(".progress").progressbar("value",self.percent);jQuery(".progress-percent span.text").html(Math.round(self.percent)+"%").closest('.progress-percent').animate({left:Math.round(self.percent)-2.5+"%"},500);},success:function(r){r=eval(r);jQuery("#thumb").show();jQuery("#thumb-img").attr("src",r[0].src);self.curr++;self.regenItem();}});},reInit:function(){jQuery("#ajax_thumbnail_rebuild").removeAttr("disabled");jQuery(".progress, #thumb").hide();}}
4
  var sizes={i:0,add:function(e,el){e.preventDefault();var elTr=jQuery('<tr />').attr('valign','top').addClass('new_size_'+this.i);jQuery('<th />').attr('scope','row').append(jQuery('<input />').attr({type:'text',id:'new_size_'+this.i,}).val('thumbnail-name')).appendTo(elTr);jQuery('<td />').append(jQuery('<input />').attr({type:'button',id:'validate_'+this.i,}).val(sis.validate).addClass('button-secondary action add_size_name')).appendTo(elTr);jQuery(el).closest('tr').before(elTr);this.i++;},register:function(e,el){e.preventDefault();var name=jQuery(el).closest('tr').children('th').find('input').val();var id=jQuery(el).closest('tr').children('th').find('input').attr('id');var checkPresent=jQuery(el).closest('tbody').find('input[value="'+name+'"]').length;if(name=='thumbnail'||name=="medium"||name=="large"){alert(sis.notOriginal);return false;}else if(checkPresent!=0){alert(sis.alreadyPresent);return false;}
5
- var thEl=jQuery('<th />').attr('scope','row').text(sis.size+' '+name);var tdEl=jQuery('<td />');jQuery('<input />').attr({type:'hidden',name:'image_name'}).val(name).appendTo(tdEl);jQuery('<input />').attr({type:'hidden',name:'custom_image_sizes['+name+'][custom]'}).val("1").appendTo(tdEl);jQuery('<label />').attr('for','custom_image_sizes['+name+'][w]').text(sis.maximumWidth).append(jQuery('<input />').attr({type:'number',name:'custom_image_sizes['+name+'][w]',step:1,min:0,id:'custom_image_sizes['+name+'][w]'}).val("0").addClass("w")).appendTo(tdEl);jQuery('<label />').attr('for','custom_image_sizes['+name+'][h]').text(sis.maximumHeight).append(jQuery('<input />').attr({type:'number',name:'custom_image_sizes['+name+'][h]',step:1,min:0,id:'custom_image_sizes['+name+'][h]'}).val("0").addClass("h")).appendTo(tdEl);jQuery('<div />').addClass('crop').append(jQuery('<input />').attr({type:'checkbox',name:'custom_image_sizes['+name+'][c]',id:'custom_image_sizes['+name+'][c]'}).val("1").addClass('c')).append(jQuery('<label />').attr({'for':'checkbox',id:'custom_image_sizes['+name+'][c]'}).text(sis.crop)).appendTo(tdEl);jQuery('<div />').text(sis.deleteImage).addClass('delete_size').appendTo(tdEl);jQuery('<div />').text(sis.validateButton).addClass('add_size validate_size').appendTo(tdEl);jQuery('#'+id).closest('tr').html(thEl.after(tdEl));this.setButtons();},delete:function(el){var confirmation=confirm(sis.confirmDelete);if(confirmation==true){jQuery(el).closest('tr').remove();this.removeFromArray(el);}else{return false;}},getPhp:function(e,el){e.preventDefault();var parent=jQuery(el).closest('tr');jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:{action:"get_sizes"},beforeSend:function(){parent.removeClass('addPending');parent.addClass('addPending');},success:function(result){jQuery('#get_php').nextAll('code').html('<br />'+result).show().css({'display':'block'});parent.removeClass('addPending');}});},ajaxRegister:function(e,el){e.preventDefault();var self=this;var timer;var parent=jQuery(el).closest('tr');var n=parent.find('input[name=image_name]').val();var c=parent.find('input.c').attr('checked');var w=parseInt(parent.find('input.w').val());var h=parseInt(parent.find('input.h').val());jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:{action:"add_size",width:w,height:h,crop:c,name:n},beforeSend:function(){parent.removeClass('errorAdding notChangedAdding successAdding');parent.addClass('addPending');},success:function(result){var classTr='';parent.removeClass('addPending');if(result==0){classTr='errorAdding';}else if(result==2){classTr='notChangedAdding';self.addToArray(n,w,h,c,classTr);}else{classTr='successAdding';self.addToArray(n,w,h,c,classTr);}
6
- parent.addClass(classTr);parent.find('.add_size .ui-button-text').text(sis.update);clearTimeout(timer);timer=setTimeout(function(){parent.removeClass('errorAdding notChangedAdding successAdding');},3*1000);}});},ajaxUnregister:function(e,el){e.preventDefault();var self=this;var n=jQuery(el).closest('tr').find('input[name=image_name]').val();jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:{action:"remove_size",name:n},success:function(result){self.delete(el);}});},addToArray:function(n,w,h,c,s){var testRow=jQuery('#sis-regen .wrapper > table > tbody input[value="'+n+'"]');var newRow='';var timer;if(testRow.length!=0)
7
  newRow=testRow.closest('tr');else
8
  newRow=jQuery('#sis-regen .wrapper > table > tbody > tr:first').clone();newRow.find('td > label').attr('for',n).end().find('input.thumbnails').val(n).attr('id',n).end().find('td:nth-child(2) > label').text(n).end().find('td:nth-child(3) > label').text(w+'px').end().find('td:nth-child(4) > label').text(h+'px').end().find('td:nth-child(5) > label').text(c);if(testRow.length==0)
9
  newRow.appendTo('#sis-regen .wrapper > table > tbody');newRow.removeClass('errorAdding notChangedAdding successAdding').addClass(s);clearTimeout(timer);timer=setTimeout(function(){newRow.removeClass('errorAdding notChangedAdding successAdding');},3*1000);},removeFromArray:function(el){var n=jQuery(el).closest('tr').find('input[name=image_name]').val();jQuery('#sis-regen .wrapper > table > tbody input[value="'+n+'"]').closest('tr').remove();},setButtons:function(){jQuery(".delete_size").button({icons:{primary:'ui-icon-circle-close'}});jQuery(".add_size").button({icons:{primary:'ui-icon-circle-check'}});jQuery(".crop").button();}}
10
- jQuery(function(){jQuery('#ajax_thumbnail_rebuild').click(function(){regenerate.startRegenerating();});jQuery('#add_size').click(function(e){sizes.add(e,this);});jQuery('.add_size_name').live('click',function(e){sizes.register(e,this);});jQuery('.delete_size').live('click',function(e){sizes.ajaxUnregister(e,this);});jQuery('.validate_size').live('click',function(e){sizes.ajaxRegister(e,this);});jQuery('#get_php').click(function(e){sizes.getPhp(e,this)});jQuery('#get_php').nextAll('code').hide();jQuery('span.custom_size').closest('tr').children('th').css({'color':'#89D76A'});jQuery('span.theme_size').closest('tr').children('th').css({'color':'#F2A13A'});sizes.setButtons();jQuery('<div class="ui-widget" id="msg"><div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Alert:</strong> <ul class="msg" ></ul></p></div></div>').prependTo("div#wpwrap").slideUp(0);jQuery("#msg").ajaxError(function(event,request,settings){jQuery(this).find('.msg').append("<li>"+sis.ajaxErrorHandler+" "+settings.url+", status "+request.status+" : "+request.statusText+"</li>").end().stop(false,false).slideDown(200).delay(5000).slideUp(200);});});
2
  if(this.curr>=this.list.length){this.reInit();this.setMessage(sis.done+this.curr+' '+sis.messageRegenerated);return;}
3
  this.setMessage(sis.regenerating+(this.curr+1)+sis.of+this.list.length+" ("+this.list[this.curr].title+")...");jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:"action=ajax_thumbnail_rebuild&do=regen&id="+this.list[this.curr].id+this.thumbnails,beforeSend:function(){self.percent=(self.curr/self.list.length)*100;jQuery(".progress").progressbar("value",self.percent);jQuery(".progress-percent span.text").html(Math.round(self.percent)+"%").closest('.progress-percent').animate({left:Math.round(self.percent)-2.5+"%"},500);},success:function(r){r=eval(r);jQuery("#thumb").show();jQuery("#thumb-img").attr("src",r[0].src);self.curr++;self.regenItem();}});},reInit:function(){jQuery("#ajax_thumbnail_rebuild").removeAttr("disabled");jQuery(".progress, #thumb").hide();}}
4
  var sizes={i:0,add:function(e,el){e.preventDefault();var elTr=jQuery('<tr />').attr('valign','top').addClass('new_size_'+this.i);jQuery('<th />').attr('scope','row').append(jQuery('<input />').attr({type:'text',id:'new_size_'+this.i,}).val('thumbnail-name')).appendTo(elTr);jQuery('<td />').append(jQuery('<input />').attr({type:'button',id:'validate_'+this.i,}).val(sis.validate).addClass('button-secondary action add_size_name')).appendTo(elTr);jQuery(el).closest('tr').before(elTr);this.i++;},register:function(e,el){e.preventDefault();var name=jQuery(el).closest('tr').children('th').find('input').val();var id=jQuery(el).closest('tr').children('th').find('input').attr('id');var checkPresent=jQuery(el).closest('tbody').find('input[value="'+name+'"]').length;if(name=='thumbnail'||name=="medium"||name=="large"){alert(sis.notOriginal);return false;}else if(checkPresent!=0){alert(sis.alreadyPresent);return false;}
5
+ var thEl=jQuery('<th />').attr('scope','row').text(sis.size+' '+name);var tdEl=jQuery('<td />');jQuery('<input />').attr({type:'hidden',name:'image_name'}).val(name).appendTo(tdEl);jQuery('<input />').attr({type:'hidden',name:'custom_image_sizes['+name+'][custom]'}).val("1").appendTo(tdEl);jQuery('<label />').attr('for','custom_image_sizes['+name+'][w]').text(sis.maximumWidth).append(jQuery('<input />').attr({type:'number',name:'custom_image_sizes['+name+'][w]',step:1,min:0,id:'custom_image_sizes['+name+'][w]'}).val("0").addClass("w")).appendTo(tdEl);jQuery('<label />').attr('for','custom_image_sizes['+name+'][h]').text(sis.maximumHeight).append(jQuery('<input />').attr({type:'number',name:'custom_image_sizes['+name+'][h]',step:1,min:0,id:'custom_image_sizes['+name+'][h]'}).val("0").addClass("h")).appendTo(tdEl);jQuery('<div />').addClass('crop').append(jQuery('<input />').attr({type:'checkbox',name:'custom_image_sizes['+name+'][c]',id:'custom_image_sizes['+name+'][c]'}).val("1").addClass('c')).append(jQuery('<label />').attr({'for':'checkbox',id:'custom_image_sizes['+name+'][c]'}).text(sis.crop)).appendTo(tdEl);jQuery('<div />').text(sis.deleteImage).addClass('delete_size').appendTo(tdEl);jQuery('<div />').text(sis.validateButton).addClass('add_size validate_size').appendTo(tdEl);jQuery('#'+id).closest('tr').html(thEl.after(tdEl));this.setButtons();},deleteSize:function(e,el){e.preventDefault();var confirmation=confirm(sis.confirmDelete);if(confirmation==true){jQuery(el).closest('tr').remove();this.ajaxUnregister(el);}},getPhp:function(e,el){e.preventDefault();var parent=jQuery(el).closest('tr');jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:{action:"get_sizes"},beforeSend:function(){parent.removeClass('addPending');parent.addClass('addPending');},success:function(result){jQuery('#get_php').nextAll('code').html('<br />'+result).show().css({'display':'block'});parent.removeClass('addPending');}});},ajaxRegister:function(e,el){e.preventDefault();var self=this;var timer;var parent=jQuery(el).closest('tr');var n=parent.find('input[name=image_name]').val();var c=parent.find('input.c').attr('checked');var w=parseInt(parent.find('input.w').val());var h=parseInt(parent.find('input.h').val());jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:{action:"add_size",width:w,height:h,crop:c,name:n},beforeSend:function(){parent.removeClass('errorAdding notChangedAdding successAdding');parent.addClass('addPending');},success:function(result){var classTr='';parent.removeClass('addPending');if(result==0){classTr='errorAdding';}else if(result==2){classTr='notChangedAdding';self.addToArray(n,w,h,c,classTr);}else{classTr='successAdding';self.addToArray(n,w,h,c,classTr);}
6
+ parent.addClass(classTr);parent.find('.add_size .ui-button-text').text(sis.update);clearTimeout(timer);timer=setTimeout(function(){parent.removeClass('errorAdding notChangedAdding successAdding');},3*1000);}});},ajaxUnregister:function(el){var self=this;var n=jQuery(el).closest('tr').find('input[name=image_name]').val();jQuery.ajax({url:sis.ajaxUrl,type:"POST",data:{action:"remove_size",name:n},success:function(result){self.removeFromArray(el);}});},addToArray:function(n,w,h,c,s){var testRow=jQuery('#sis-regen .wrapper > table > tbody input[value="'+n+'"]');var newRow='';var timer;if(testRow.length!=0)
7
  newRow=testRow.closest('tr');else
8
  newRow=jQuery('#sis-regen .wrapper > table > tbody > tr:first').clone();newRow.find('td > label').attr('for',n).end().find('input.thumbnails').val(n).attr('id',n).end().find('td:nth-child(2) > label').text(n).end().find('td:nth-child(3) > label').text(w+'px').end().find('td:nth-child(4) > label').text(h+'px').end().find('td:nth-child(5) > label').text(c);if(testRow.length==0)
9
  newRow.appendTo('#sis-regen .wrapper > table > tbody');newRow.removeClass('errorAdding notChangedAdding successAdding').addClass(s);clearTimeout(timer);timer=setTimeout(function(){newRow.removeClass('errorAdding notChangedAdding successAdding');},3*1000);},removeFromArray:function(el){var n=jQuery(el).closest('tr').find('input[name=image_name]').val();jQuery('#sis-regen .wrapper > table > tbody input[value="'+n+'"]').closest('tr').remove();},setButtons:function(){jQuery(".delete_size").button({icons:{primary:'ui-icon-circle-close'}});jQuery(".add_size").button({icons:{primary:'ui-icon-circle-check'}});jQuery(".crop").button();}}
10
+ jQuery(function(){jQuery('#ajax_thumbnail_rebuild').click(function(){regenerate.startRegenerating();});jQuery('#add_size').click(function(e){sizes.add(e,this);});jQuery('.add_size_name').live('click',function(e){sizes.register(e,this);});jQuery('.delete_size').live('click',function(e){sizes.deleteSize(e,this);});jQuery('.validate_size').live('click',function(e){sizes.ajaxRegister(e,this);});jQuery('#get_php').click(function(e){sizes.getPhp(e,this)});jQuery('#get_php').nextAll('code').hide();jQuery('span.custom_size').closest('tr').children('th').css({'color':'#89D76A'});jQuery('span.theme_size').closest('tr').children('th').css({'color':'#F2A13A'});sizes.setButtons();jQuery('<div class="ui-widget" id="msg"><div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"><p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span><strong>Alert:</strong> <ul class="msg" ></ul></p></div></div>').prependTo("div#wpwrap").slideUp(0);jQuery("#msg").ajaxError(function(event,request,settings){jQuery(this).find('.msg').append("<li>"+sis.ajaxErrorHandler+" "+settings.url+", status "+request.status+" : "+request.statusText+"</li>").end().stop(false,false).slideDown(200).delay(5000).slideUp(200);});});
languages/sis-fr_FR.mo CHANGED
Binary file
languages/sis-fr_FR.po CHANGED
@@ -4,9 +4,9 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Simple image sizes\n"
6
  "Report-Msgid-Bugs-To: \n"
7
- "POT-Creation-Date: 2011-03-16 23:32+0100\n"
8
- "PO-Revision-Date: 2011-03-16 23:32+0100\n"
9
- "Last-Translator: Nicolas JUEN <njuen@beapi.fr>\n"
10
  "Language-Team: Beapi <njuen@beapi.fr>\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,128 +18,181 @@ msgstr ""
18
  "X-Poedit-Basepath: ../\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
- #: inc/class.admin.php:50
22
  msgid "Reading attachments..."
23
  msgstr "Chargement des médias..."
24
 
25
- #: inc/class.admin.php:51
26
- #: inc/class.admin.php:148
27
  msgid "Maximum width"
28
  msgstr "Largeur maximum"
29
 
30
- #: inc/class.admin.php:52
31
- #: inc/class.admin.php:153
32
  msgid "Maximum height"
33
  msgstr "Hauteur maximum"
34
 
35
- #: inc/class.admin.php:53
36
- #: inc/class.admin.php:159
37
- #: inc/class.admin.php:214
38
- #: inc/class.admin.php:273
39
  msgid "Crop ?"
40
  msgstr "Rogner ?"
41
 
42
- #: inc/class.admin.php:54
43
  msgid " of "
44
  msgstr " de "
45
 
46
- #: inc/class.admin.php:55
47
- #: inc/class.admin.php:163
48
  msgid "Delete"
49
  msgstr "Supprimer"
50
 
51
- #: inc/class.admin.php:56
52
  msgid "No media in your site to regenerate !"
53
  msgstr "Pas de médias à regénérer !"
54
 
55
- #: inc/class.admin.php:57
56
  msgid "Regenerating "
57
  msgstr "Regénération "
58
 
59
- #: inc/class.admin.php:58
60
  msgid "Validate image size name"
61
  msgstr "Valider le nom de la taille d'image"
62
 
63
- #: inc/class.admin.php:59
64
  msgid "Done."
65
  msgstr "Fini."
66
 
67
- #: inc/class.admin.php:60
68
  msgid "Size"
69
  msgstr "Taille "
70
 
71
- #: inc/class.admin.php:106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  msgid "Size "
73
  msgstr "Taille "
74
 
75
- #: inc/class.admin.php:114
76
  msgid "Add a new size"
77
  msgstr "Ajouter une nouvelle taille"
78
 
79
- #: inc/class.admin.php:117
80
  msgid "Legend of the sizes"
81
  msgstr "Légende des tailles"
82
 
83
- #: inc/class.admin.php:120
 
 
 
 
84
  msgid "Thumbnail regeneration"
85
  msgstr "Régénération des vignettes"
86
 
87
- #: inc/class.admin.php:141
88
  msgid "Custom size"
89
  msgstr "Taille personnelle"
90
 
91
- #: inc/class.admin.php:144
92
  msgid "Theme size"
93
  msgstr "Taille de thème"
94
 
95
- #: inc/class.admin.php:177
96
  msgid "Add a new size of thumbnail"
97
  msgstr "Ajouter une nouvelle taille de vignette"
98
 
99
- #: inc/class.admin.php:189
100
- msgid "The images created on your theme are <span style=\"color:orange\">orange</span> and your custom size are <span style=\"color:green\"> green </span>."
101
- msgstr "Les tailles d'images crées par votre thème sont en <span style=\"color:orange\">orange</span> et vos tailles personnalisés sont en <span style=\"color:green\"> vert </span>."
 
 
 
 
 
 
 
 
102
 
103
- #: inc/class.admin.php:206
104
  msgid "Select which thumbnails you want to rebuild:"
105
  msgstr "Sélectionnez les tailles de vignettes à régénérer"
106
 
107
- #: inc/class.admin.php:210
108
- #: inc/class.admin.php:269
109
- #: inc/class.admin.php:282
110
- #: inc/class.admin.php:307
111
  msgid "Resize ?"
112
  msgstr "Regénérer ?"
113
 
114
- #: inc/class.admin.php:211
115
- #: inc/class.admin.php:270
116
  msgid "Size name"
117
  msgstr "Nom de la taille"
118
 
119
- #: inc/class.admin.php:212
120
- #: inc/class.admin.php:271
121
  msgid "Width"
122
  msgstr "Largeur"
123
 
124
- #: inc/class.admin.php:213
125
- #: inc/class.admin.php:272
126
  msgid "Height"
127
  msgstr "Hauteur"
128
 
129
- #: inc/class.admin.php:278
 
 
 
 
 
 
 
 
130
  msgid "Select which post type source thumbnails you want to rebuild:"
131
  msgstr "Sélectionnez quelles vignettes de quel type de contenu vous souhaitez régénérer : "
132
 
133
- #: inc/class.admin.php:283
134
- #: inc/class.admin.php:308
135
  msgid "Post type"
136
  msgstr "Type de contenu"
137
 
138
- #: inc/class.admin.php:320
139
  msgid "Last image:"
140
  msgstr "Dernière image :"
141
 
142
- #: inc/class.admin.php:321
143
  msgid "Regenerate Thumbnails"
144
  msgstr "Régénérer les vignettes"
145
 
4
  msgstr ""
5
  "Project-Id-Version: Simple image sizes\n"
6
  "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: 2011-05-13 16:04+0100\n"
8
+ "PO-Revision-Date: 2011-05-13 16:04+0100\n"
9
+ "Last-Translator: Nicolas <njuen@beapi.fr>\n"
10
  "Language-Team: Beapi <njuen@beapi.fr>\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
18
  "X-Poedit-Basepath: ../\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
+ #: inc/class.admin.php:57
22
  msgid "Reading attachments..."
23
  msgstr "Chargement des médias..."
24
 
25
+ #: inc/class.admin.php:58
26
+ #: inc/class.admin.php:186
27
  msgid "Maximum width"
28
  msgstr "Largeur maximum"
29
 
30
+ #: inc/class.admin.php:59
31
+ #: inc/class.admin.php:191
32
  msgid "Maximum height"
33
  msgstr "Hauteur maximum"
34
 
35
+ #: inc/class.admin.php:60
36
+ #: inc/class.admin.php:197
37
+ #: inc/class.admin.php:263
38
+ #: inc/class.admin.php:323
39
  msgid "Crop ?"
40
  msgstr "Rogner ?"
41
 
42
+ #: inc/class.admin.php:61
43
  msgid " of "
44
  msgstr " de "
45
 
46
+ #: inc/class.admin.php:62
47
+ #: inc/class.admin.php:199
48
  msgid "Delete"
49
  msgstr "Supprimer"
50
 
51
+ #: inc/class.admin.php:63
52
  msgid "No media in your site to regenerate !"
53
  msgstr "Pas de médias à regénérer !"
54
 
55
+ #: inc/class.admin.php:64
56
  msgid "Regenerating "
57
  msgstr "Regénération "
58
 
59
+ #: inc/class.admin.php:65
60
  msgid "Validate image size name"
61
  msgstr "Valider le nom de la taille d'image"
62
 
63
+ #: inc/class.admin.php:66
64
  msgid "Done."
65
  msgstr "Fini."
66
 
67
+ #: inc/class.admin.php:67
68
  msgid "Size"
69
  msgstr "Taille "
70
 
71
+ #: inc/class.admin.php:68
72
+ msgid "Don't use the basic Wordpress thumbnail size name, use the form above to edit them"
73
+ msgstr "N'utilisez pas les tailles par défaut de WordPress comme nom de taille, éditez leurs valeurs avec le formulaire ci-dessus."
74
+
75
+ #: inc/class.admin.php:69
76
+ msgid "This size is already registered, edit it instead of recreating it."
77
+ msgstr "Cette taille existe déjà, éditez la au lieu de la recréer."
78
+
79
+ #: inc/class.admin.php:70
80
+ msgid "Do you really want to delete these size ?"
81
+ msgstr "Voulez-vous réellement supprimer cette taille ?"
82
+
83
+ #: inc/class.admin.php:71
84
+ #: inc/class.admin.php:200
85
+ msgid "Update"
86
+ msgstr "Mettre à jour"
87
+
88
+ #: inc/class.admin.php:72
89
+ msgid "Error requesting page"
90
+ msgstr "Erreur lors de la requête vers la page"
91
+
92
+ #: inc/class.admin.php:73
93
+ msgid "images have been regenerated !"
94
+ msgstr "images ont été regénérées !"
95
+
96
+ #: inc/class.admin.php:74
97
+ msgid "Validate"
98
+ msgstr "Valider"
99
+
100
+ #: inc/class.admin.php:92
101
+ msgid "Settings"
102
+ msgstr "Paramètres"
103
+
104
+ #: inc/class.admin.php:140
105
  msgid "Size "
106
  msgstr "Taille "
107
 
108
+ #: inc/class.admin.php:148
109
  msgid "Add a new size"
110
  msgstr "Ajouter une nouvelle taille"
111
 
112
+ #: inc/class.admin.php:151
113
  msgid "Legend of the sizes"
114
  msgstr "Légende des tailles"
115
 
116
+ #: inc/class.admin.php:154
117
+ msgid "Get php for theme"
118
+ msgstr "Récupérer le PHP pour le thème"
119
+
120
+ #: inc/class.admin.php:157
121
  msgid "Thumbnail regeneration"
122
  msgstr "Régénération des vignettes"
123
 
124
+ #: inc/class.admin.php:179
125
  msgid "Custom size"
126
  msgstr "Taille personnelle"
127
 
128
+ #: inc/class.admin.php:182
129
  msgid "Theme size"
130
  msgstr "Taille de thème"
131
 
132
+ #: inc/class.admin.php:211
133
  msgid "Add a new size of thumbnail"
134
  msgstr "Ajouter une nouvelle taille de vignette"
135
 
136
+ #: inc/class.admin.php:223
137
+ msgid "Get the PHP for the theme"
138
+ msgstr "Récupérer le PHP pour le thème"
139
+
140
+ #: inc/class.admin.php:224
141
+ msgid "Copy and paste the code below into your Wordpress theme function file if you wanted to save them and deactivate the plugin."
142
+ msgstr "Copiez et collez le code ci-dessous dans votre fichier de fonctions de votre thème WordPress si vous voulez les conserver et désactiver ce plugin."
143
+
144
+ #: inc/class.admin.php:237
145
+ msgid "The images created on your theme are <span style=\"color:#F2A13A\">orange</span> and your custom size are <span style=\"color:#89D76A\"> green </span>."
146
+ msgstr "Les tailles d'images crées par votre thème sont en <span style=\"color:#F2A13A\">orange</span> et vos tailles personnalisées sont en <span style=\"color:#89D76A\"> vert </span>."
147
 
148
+ #: inc/class.admin.php:255
149
  msgid "Select which thumbnails you want to rebuild:"
150
  msgstr "Sélectionnez les tailles de vignettes à régénérer"
151
 
152
+ #: inc/class.admin.php:259
153
+ #: inc/class.admin.php:319
154
+ #: inc/class.admin.php:332
155
+ #: inc/class.admin.php:358
156
  msgid "Resize ?"
157
  msgstr "Regénérer ?"
158
 
159
+ #: inc/class.admin.php:260
160
+ #: inc/class.admin.php:320
161
  msgid "Size name"
162
  msgstr "Nom de la taille"
163
 
164
+ #: inc/class.admin.php:261
165
+ #: inc/class.admin.php:321
166
  msgid "Width"
167
  msgstr "Largeur"
168
 
169
+ #: inc/class.admin.php:262
170
+ #: inc/class.admin.php:322
171
  msgid "Height"
172
  msgstr "Hauteur"
173
 
174
+ #: inc/class.admin.php:312
175
+ msgid "yes"
176
+ msgstr "non"
177
+
178
+ #: inc/class.admin.php:312
179
+ msgid "no"
180
+ msgstr "oui"
181
+
182
+ #: inc/class.admin.php:328
183
  msgid "Select which post type source thumbnails you want to rebuild:"
184
  msgstr "Sélectionnez quelles vignettes de quel type de contenu vous souhaitez régénérer : "
185
 
186
+ #: inc/class.admin.php:333
187
+ #: inc/class.admin.php:359
188
  msgid "Post type"
189
  msgstr "Type de contenu"
190
 
191
+ #: inc/class.admin.php:378
192
  msgid "Last image:"
193
  msgstr "Dernière image :"
194
 
195
+ #: inc/class.admin.php:379
196
  msgid "Regenerate Thumbnails"
197
  msgstr "Régénérer les vignettes"
198
 
languages/sis.pot CHANGED
@@ -2,184 +2,144 @@
2
  # This file is distributed under the same license as the package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: \n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/simple-image-sizes\n"
7
- "POT-Creation-Date: 2011-05-13 14:10:07+00:00\n"
 
 
 
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
12
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
- "Language-Team: LANGUAGE <LL@li.org>\n"
14
-
15
- #: inc/class.admin.php:57
 
 
 
16
  msgid "Reading attachments..."
17
  msgstr ""
18
 
19
- #: inc/class.admin.php:58 inc/class.admin.php:186
 
20
  msgid "Maximum width"
21
  msgstr ""
22
 
23
- #: inc/class.admin.php:59 inc/class.admin.php:191
 
24
  msgid "Maximum height"
25
  msgstr ""
26
 
27
- #: inc/class.admin.php:60 inc/class.admin.php:197 inc/class.admin.php:263
28
- #: inc/class.admin.php:323
 
 
29
  msgid "Crop ?"
30
  msgstr ""
31
 
32
- #: inc/class.admin.php:61
33
  msgid " of "
34
  msgstr ""
35
 
36
- #: inc/class.admin.php:62 inc/class.admin.php:199
 
37
  msgid "Delete"
38
  msgstr ""
39
 
40
- #: inc/class.admin.php:63
41
  msgid "No media in your site to regenerate !"
42
  msgstr ""
43
 
44
- #: inc/class.admin.php:64
45
  msgid "Regenerating "
46
  msgstr ""
47
 
48
- #: inc/class.admin.php:65
49
  msgid "Validate image size name"
50
  msgstr ""
51
 
52
- #: inc/class.admin.php:66
53
  msgid "Done."
54
  msgstr ""
55
 
56
- #: inc/class.admin.php:67
57
  msgid "Size"
58
  msgstr ""
59
 
60
- #: inc/class.admin.php:68
61
- msgid ""
62
- "Don't use the basic Wordpress thumbnail size name, use the form above to "
63
- "edit them"
64
- msgstr ""
65
-
66
- #: inc/class.admin.php:69
67
- msgid "This size is already registered, edit it instead of recreating it."
68
- msgstr ""
69
-
70
- #: inc/class.admin.php:70
71
- msgid "Do you really want to delete these size ?"
72
- msgstr ""
73
-
74
- #: inc/class.admin.php:71 inc/class.admin.php:200
75
- msgid "Update"
76
- msgstr ""
77
-
78
- #: inc/class.admin.php:72
79
- msgid "Error requesting page"
80
- msgstr ""
81
-
82
- #: inc/class.admin.php:73
83
- msgid "images have been regenerated !"
84
- msgstr ""
85
-
86
- #: inc/class.admin.php:74
87
- msgid "Validate"
88
- msgstr ""
89
-
90
- #: inc/class.admin.php:92
91
- msgid "Settings"
92
- msgstr ""
93
-
94
- #: inc/class.admin.php:140
95
  msgid "Size "
96
  msgstr ""
97
 
98
- #: inc/class.admin.php:148
99
  msgid "Add a new size"
100
  msgstr ""
101
 
102
- #: inc/class.admin.php:151
103
  msgid "Legend of the sizes"
104
  msgstr ""
105
 
106
- #: inc/class.admin.php:154
107
- msgid "Get php for theme"
108
- msgstr ""
109
-
110
- #: inc/class.admin.php:157
111
  msgid "Thumbnail regeneration"
112
  msgstr ""
113
 
114
- #: inc/class.admin.php:179
115
  msgid "Custom size"
116
  msgstr ""
117
 
118
- #: inc/class.admin.php:182
119
  msgid "Theme size"
120
  msgstr ""
121
 
122
- #: inc/class.admin.php:211
123
  msgid "Add a new size of thumbnail"
124
  msgstr ""
125
 
126
- #: inc/class.admin.php:223
127
- msgid "Get the PHP for the theme"
128
- msgstr ""
129
-
130
- #: inc/class.admin.php:224
131
- msgid ""
132
- "Copy and paste the code below into your Wordpress theme function file if you "
133
- "wanted to save them and deactivate the plugin."
134
- msgstr ""
135
-
136
- #: inc/class.admin.php:237
137
- msgid ""
138
- "The images created on your theme are <span style=\"color:#F2A13A\">orange</"
139
- "span> and your custom size are <span style=\"color:#89D76A\"> green </span>."
140
  msgstr ""
141
 
142
- #: inc/class.admin.php:255
143
  msgid "Select which thumbnails you want to rebuild:"
144
  msgstr ""
145
 
146
- #: inc/class.admin.php:259 inc/class.admin.php:319 inc/class.admin.php:332
147
- #: inc/class.admin.php:358
 
 
148
  msgid "Resize ?"
149
  msgstr ""
150
 
151
- #: inc/class.admin.php:260 inc/class.admin.php:320
 
152
  msgid "Size name"
153
  msgstr ""
154
 
155
- #: inc/class.admin.php:261 inc/class.admin.php:321
 
156
  msgid "Width"
157
  msgstr ""
158
 
159
- #: inc/class.admin.php:262 inc/class.admin.php:322
 
160
  msgid "Height"
161
  msgstr ""
162
 
163
- #: inc/class.admin.php:312
164
- msgid "yes"
165
- msgstr ""
166
-
167
- #: inc/class.admin.php:312
168
- msgid "no"
169
- msgstr ""
170
-
171
- #: inc/class.admin.php:328
172
  msgid "Select which post type source thumbnails you want to rebuild:"
173
  msgstr ""
174
 
175
- #: inc/class.admin.php:333 inc/class.admin.php:359
 
176
  msgid "Post type"
177
  msgstr ""
178
 
179
- #: inc/class.admin.php:378
180
  msgid "Last image:"
181
  msgstr ""
182
 
183
- #: inc/class.admin.php:379
184
  msgid "Regenerate Thumbnails"
185
  msgstr ""
 
2
  # This file is distributed under the same license as the package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Simple image sizes\n"
6
+ "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: 2011-03-16 23:32+0100\n"
8
+ "PO-Revision-Date: 2011-03-16 23:46+0100\n"
9
+ "Last-Translator: Nicolas JUEN <njuen@beapi.fr>\n"
10
+ "Language-Team: Beapi <njuen@beapi.fr>\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
13
  "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Poedit-Language: French\n"
15
+ "X-Poedit-Country: FRANCE\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;__\n"
18
+ "X-Poedit-Basepath: ../\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+
21
+ #: inc/class.admin.php:50
22
  msgid "Reading attachments..."
23
  msgstr ""
24
 
25
+ #: inc/class.admin.php:51
26
+ #: inc/class.admin.php:148
27
  msgid "Maximum width"
28
  msgstr ""
29
 
30
+ #: inc/class.admin.php:52
31
+ #: inc/class.admin.php:153
32
  msgid "Maximum height"
33
  msgstr ""
34
 
35
+ #: inc/class.admin.php:53
36
+ #: inc/class.admin.php:159
37
+ #: inc/class.admin.php:214
38
+ #: inc/class.admin.php:273
39
  msgid "Crop ?"
40
  msgstr ""
41
 
42
+ #: inc/class.admin.php:54
43
  msgid " of "
44
  msgstr ""
45
 
46
+ #: inc/class.admin.php:55
47
+ #: inc/class.admin.php:163
48
  msgid "Delete"
49
  msgstr ""
50
 
51
+ #: inc/class.admin.php:56
52
  msgid "No media in your site to regenerate !"
53
  msgstr ""
54
 
55
+ #: inc/class.admin.php:57
56
  msgid "Regenerating "
57
  msgstr ""
58
 
59
+ #: inc/class.admin.php:58
60
  msgid "Validate image size name"
61
  msgstr ""
62
 
63
+ #: inc/class.admin.php:59
64
  msgid "Done."
65
  msgstr ""
66
 
67
+ #: inc/class.admin.php:60
68
  msgid "Size"
69
  msgstr ""
70
 
71
+ #: inc/class.admin.php:106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  msgid "Size "
73
  msgstr ""
74
 
75
+ #: inc/class.admin.php:114
76
  msgid "Add a new size"
77
  msgstr ""
78
 
79
+ #: inc/class.admin.php:117
80
  msgid "Legend of the sizes"
81
  msgstr ""
82
 
83
+ #: inc/class.admin.php:120
 
 
 
 
84
  msgid "Thumbnail regeneration"
85
  msgstr ""
86
 
87
+ #: inc/class.admin.php:141
88
  msgid "Custom size"
89
  msgstr ""
90
 
91
+ #: inc/class.admin.php:144
92
  msgid "Theme size"
93
  msgstr ""
94
 
95
+ #: inc/class.admin.php:177
96
  msgid "Add a new size of thumbnail"
97
  msgstr ""
98
 
99
+ #: inc/class.admin.php:189
100
+ msgid "The images created on your theme are <span style=\"color:orange\">orange</span> and your custom size are <span style=\"color:green\"> green </span>."
 
 
 
 
 
 
 
 
 
 
 
 
101
  msgstr ""
102
 
103
+ #: inc/class.admin.php:206
104
  msgid "Select which thumbnails you want to rebuild:"
105
  msgstr ""
106
 
107
+ #: inc/class.admin.php:210
108
+ #: inc/class.admin.php:269
109
+ #: inc/class.admin.php:282
110
+ #: inc/class.admin.php:307
111
  msgid "Resize ?"
112
  msgstr ""
113
 
114
+ #: inc/class.admin.php:211
115
+ #: inc/class.admin.php:270
116
  msgid "Size name"
117
  msgstr ""
118
 
119
+ #: inc/class.admin.php:212
120
+ #: inc/class.admin.php:271
121
  msgid "Width"
122
  msgstr ""
123
 
124
+ #: inc/class.admin.php:213
125
+ #: inc/class.admin.php:272
126
  msgid "Height"
127
  msgstr ""
128
 
129
+ #: inc/class.admin.php:278
 
 
 
 
 
 
 
 
130
  msgid "Select which post type source thumbnails you want to rebuild:"
131
  msgstr ""
132
 
133
+ #: inc/class.admin.php:283
134
+ #: inc/class.admin.php:308
135
  msgid "Post type"
136
  msgstr ""
137
 
138
+ #: inc/class.admin.php:320
139
  msgid "Last image:"
140
  msgstr ""
141
 
142
+ #: inc/class.admin.php:321
143
  msgid "Regenerate Thumbnails"
144
  msgstr ""
145
+
readme.txt CHANGED
@@ -1,75 +1,79 @@
1
- === Simple Image Sizes ===
2
- Contributors: Rahe
3
- Donate link: http://www.beapi.fr/donate/
4
- Tags: images, image, custom sizes, custom images, thumbnail regenerate, thumbnail, regenerate
5
- Requires at least: 3.0
6
- Tested up to: 3.2
7
- Stable tag: 2.0
8
-
9
- == Description ==
10
-
11
- This plugin allow create custom image sizes for your site. Override your theme sizes directly on the media option page.
12
- You can regenerate all the sizes you have just created and choose which one you wanted to regenerate.
13
- You can now get all the code to copy and paste to your function theme file.
14
- Now you can use the generated sizes directly into your posts and insert images at the right size !
15
-
16
- == Installation ==
17
-
18
- 1. Download, unzip and upload to your WordPress plugins directory
19
- 2. Activate the plugin within you WordPress Administration Backend
20
- 3. Go to Settings > Medias
21
- 4. Configure your new image sizes and regenerate the thumbnails !
22
-
23
- == Screenshots ==
24
-
25
- 1. Settings page
26
- 2. Regenerating
27
- 3. In posts thumbnails
28
-
29
- == Changelog ==
30
- * 2.0
31
- * Code refactoring
32
- * Update translations
33
- * Ajaxification of the process
34
- * Deleting by Ajax
35
- * Updating by Ajax
36
- * Adding by Ajax
37
- * Change UI
38
- * Change theme
39
- * Handle ajax errors
40
- * Handle not modified sizes, cropped
41
- * Handle same names
42
- * Sanitize the names
43
- * Customize jQuery ui
44
- * Customize jQuery ui theme
45
- * HTML5 Elements
46
- * CSS3 Animations
47
- * 1.0.6
48
- * Minify javascript names
49
- * Change progressbar style
50
- * Add animations on progressbar
51
- * 1.0.5
52
- * Only add css and js script in the media page to avoid any javascript error in other pages
53
- * Rectify css
54
- * Add function to get the code for the function.php file of the theme
55
- * Don't redefine the Wordpress basic size names
56
- * 1.0.4
57
- * Fix the add_image_size issue ( height and width reversed )
58
- * 1.0.3
59
- * Fix the plugin language
60
- * Add some translations
61
- * Externalise some css
62
- * Add sizes in the image adding to an article
63
- * Add setting link in the plugins list
64
- * Use admin_url instead of home_url
65
- * Add legend for colors
66
- * Some code refactoring
67
- * 1.0.2
68
- * Fix the plugin license
69
- * 1.0.1
70
- * Add POT file
71
- * Add french translation
72
- * 1.0
73
- * First release
74
- * Thumbnail regenerate
 
 
 
 
75
  * Image size generation
1
+ === Simple Image Sizes ===
2
+ Contributors: Rahe
3
+ Donate link: http://www.beapi.fr/donate/
4
+ Tags: images, image, custom sizes, custom images, thumbnail regenerate, thumbnail, regenerate
5
+ Requires at least: 3.0
6
+ Tested up to: 3.2
7
+ Stable tag: 2.0.1
8
+
9
+ == Description ==
10
+
11
+ This plugin allow create custom image sizes for your site. Override your theme sizes directly on the media option page.
12
+ You can regenerate all the sizes you have just created and choose which one you wanted to regenerate.
13
+ You can now get all the code to copy and paste to your function theme file.
14
+ Now you can use the generated sizes directly into your posts and insert images at the right size !
15
+
16
+ == Installation ==
17
+ **Required PHP5.**
18
+
19
+ 1. Download, unzip and upload to your WordPress plugins directory
20
+ 2. Activate the plugin within you WordPress Administration Backend
21
+ 3. Go to Settings > Medias
22
+ 4. Configure your new image sizes and regenerate the thumbnails !
23
+
24
+ == Screenshots ==
25
+
26
+ 1. Settings page
27
+ 2. Regenerating
28
+ 3. In posts thumbnails
29
+
30
+ == Changelog ==
31
+ * 2.0.1
32
+ * Resolve javascript issue when clicking on delete button
33
+ * Resolve issue of never unchecking crop button
34
+ * 2.0
35
+ * Code refactoring
36
+ * Update translations
37
+ * Ajaxification of the process
38
+ * Deleting by Ajax
39
+ * Updating by Ajax
40
+ * Adding by Ajax
41
+ * Change UI
42
+ * Change theme
43
+ * Handle ajax errors
44
+ * Handle not modified sizes, cropped
45
+ * Handle same names
46
+ * Sanitize the names
47
+ * Customize jQuery ui
48
+ * Customize jQuery ui theme
49
+ * HTML5 Elements
50
+ * CSS3 Animations
51
+ * 1.0.6
52
+ * Minify javascript names
53
+ * Change progressbar style
54
+ * Add animations on progressbar
55
+ * 1.0.5
56
+ * Only add css and js script in the media page to avoid any javascript error in other pages
57
+ * Rectify css
58
+ * Add function to get the code for the function.php file of the theme
59
+ * Don't redefine the Wordpress basic size names
60
+ * 1.0.4
61
+ * Fix the add_image_size issue ( height and width reversed )
62
+ * 1.0.3
63
+ * Fix the plugin language
64
+ * Add some translations
65
+ * Externalise some css
66
+ * Add sizes in the image adding to an article
67
+ * Add setting link in the plugins list
68
+ * Use admin_url instead of home_url
69
+ * Add legend for colors
70
+ * Some code refactoring
71
+ * 1.0.2
72
+ * Fix the plugin license
73
+ * 1.0.1
74
+ * Add POT file
75
+ * Add french translation
76
+ * 1.0
77
+ * First release
78
+ * Thumbnail regenerate
79
  * Image size generation
simple_image_sizes.php CHANGED
@@ -1,49 +1,49 @@
1
- <?php
2
- /*
3
- Plugin Name: Simple Image Size
4
- Plugin URI: http://wordpress.org/extend/plugins/simple-image-sizes/
5
- Description: Add options in media setting page for images sizes
6
- Version: 2.0
7
- Author: Rahe
8
- Author URI: http://www.beapi.fr
9
- Text Domain: sis
10
- Domain Path: /languages/
11
- Network: false
12
-
13
- Copyright 2011 Nicolas JUEN (njuen@beapi.fr) - Be-API
14
-
15
- This program is free software; you can redistribute it and/or modify
16
- it under the terms of the GNU General Public License as published by
17
- the Free Software Foundation; either version 2 of the License, or
18
- (at your option) any later version.
19
-
20
- This program is distributed in the hope that it will be useful,
21
- but WITHOUT ANY WARRANTY; without even the implied warranty of
22
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
- GNU General Public License for more details.
24
-
25
- You should have received a copy of the GNU General Public License
26
- along with this program; if not, write to the Free Software
27
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
- */
29
-
30
- define( 'SIS_URL', plugins_url('/', __FILE__) );
31
- define( 'SIS_DIR', dirname(__FILE__) );
32
- define( 'SIS_VERSION', '2.0' );
33
- define( 'SIS_OPTION', 'custom_image_sizes' );
34
-
35
- require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.admin.php' );
36
- require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.client.php' );
37
-
38
- add_action ( 'plugins_loaded', 'initSIS' );
39
- function initSIS() {
40
- global $SIS;
41
- if( is_admin() )
42
- $SIS['admin'] = new SISAdmin();
43
-
44
- $SIS['client'] = new SISClient();
45
-
46
- load_plugin_textdomain ( 'sis', false, basename(rtrim(dirname(__FILE__), '/')) . '/languages' );
47
-
48
- }
49
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: Simple Image Size
4
+ Plugin URI: http://redmine.beapi.fr/projects/show/simple-image-sizes
5
+ Description: Add options in media setting page for images sizes
6
+ Version: 2.0.1
7
+ Author: Rahe
8
+ Author URI: http://www.beapi.fr
9
+ Text Domain: sis
10
+ Domain Path: /languages/
11
+ Network: false
12
+
13
+ Copyright 2011 Nicolas JUEN (njuen@beapi.fr) - Be-API
14
+
15
+ This program is free software; you can redistribute it and/or modify
16
+ it under the terms of the GNU General Public License as published by
17
+ the Free Software Foundation; either version 2 of the License, or
18
+ (at your option) any later version.
19
+
20
+ This program is distributed in the hope that it will be useful,
21
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ GNU General Public License for more details.
24
+
25
+ You should have received a copy of the GNU General Public License
26
+ along with this program; if not, write to the Free Software
27
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
+ */
29
+
30
+ define( 'SIS_URL', plugins_url('/', __FILE__) );
31
+ define( 'SIS_DIR', dirname(__FILE__) );
32
+ define( 'SIS_VERSION', '2.0' );
33
+ define( 'SIS_OPTION', 'custom_image_sizes' );
34
+
35
+ require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.admin.php' );
36
+ require_once( SIS_DIR . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'class.client.php' );
37
+
38
+ add_action ( 'plugins_loaded', 'initSIS' );
39
+ function initSIS() {
40
+ global $SIS;
41
+ if( is_admin() )
42
+ $SIS['admin'] = new SISAdmin();
43
+
44
+ $SIS['client'] = new SISClient();
45
+
46
+ load_plugin_textdomain ( 'sis', false, basename(rtrim(dirname(__FILE__), '/')) . '/languages' );
47
+
48
+ }
49
  ?>