Version Description
- Dutch translation added
- Better error handling
- Fixed overwriting of previously saved crops
- Minor tweaks all around
Download this release
Release Info
Developer | tomasz.sita |
Plugin | Manual Image Crop |
Version | 1.09 |
Comparing to | |
See all releases |
Code changes from version 1.08 to 1.09
- assets/css/jquery.Jcrop.min.css +164 -28
- assets/css/mic-admin.css +5 -3
- languages/microp-de_DE.po +163 -163
- languages/microp-nl_NL.mo +0 -0
- languages/microp-nl_NL.po +202 -0
- languages/microp-pl_PL.mo +0 -0
- languages/microp-pl_PL.po +199 -163
- languages/microp.pot +191 -0
- lib/ManualImageCrop.php +155 -119
- lib/ManualImageCropEditorWindow.php +205 -159
- lib/ManualImageCropSettingsPage.php +7 -7
- manual-image-crop.php +24 -12
- readme.txt +10 -3
assets/css/jquery.Jcrop.min.css
CHANGED
@@ -1,29 +1,165 @@
|
|
1 |
/* jquery.Jcrop.min.css v0.9.12 (build:20130126) */
|
2 |
-
.jcrop-holder{
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
.jcrop-hline
|
8 |
-
.
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
.jcrop-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
.jcrop-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
.jcrop-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
.jcrop-
|
28 |
-
|
29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
/* jquery.Jcrop.min.css v0.9.12 (build:20130126) */
|
2 |
+
.jcrop-holder {
|
3 |
+
direction: ltr;
|
4 |
+
text-align: left;
|
5 |
+
}
|
6 |
+
|
7 |
+
.jcrop-vline,.jcrop-hline {
|
8 |
+
background: #FFF url(Jcrop.gif);
|
9 |
+
font-size: 0;
|
10 |
+
position: absolute;
|
11 |
+
}
|
12 |
+
|
13 |
+
.jcrop-vline {
|
14 |
+
height: 100%;
|
15 |
+
width: 1px !important;
|
16 |
+
}
|
17 |
+
|
18 |
+
.jcrop-vline.right {
|
19 |
+
right: 0;
|
20 |
+
}
|
21 |
+
|
22 |
+
.jcrop-hline {
|
23 |
+
height: 1px !important;
|
24 |
+
width: 100%;
|
25 |
+
}
|
26 |
+
|
27 |
+
.jcrop-hline.bottom {
|
28 |
+
bottom: 0;
|
29 |
+
}
|
30 |
+
|
31 |
+
.jcrop-tracker {
|
32 |
+
-webkit-tap-highlight-color: transparent;
|
33 |
+
-webkit-touch-callout: none;
|
34 |
+
-webkit-user-select: none;
|
35 |
+
height: 100%;
|
36 |
+
width: 100%;
|
37 |
+
}
|
38 |
+
|
39 |
+
.jcrop-handle {
|
40 |
+
background-color: #333;
|
41 |
+
border: 1px #EEE solid;
|
42 |
+
font-size: 1px;
|
43 |
+
height: 7px;
|
44 |
+
width: 7px;
|
45 |
+
}
|
46 |
+
|
47 |
+
.jcrop-handle.ord-n {
|
48 |
+
left: 50%;
|
49 |
+
margin-left: -4px;
|
50 |
+
margin-top: -4px;
|
51 |
+
top: 0;
|
52 |
+
}
|
53 |
+
|
54 |
+
.jcrop-handle.ord-s {
|
55 |
+
bottom: 0;
|
56 |
+
left: 50%;
|
57 |
+
margin-bottom: -4px;
|
58 |
+
margin-left: -4px;
|
59 |
+
}
|
60 |
+
|
61 |
+
.jcrop-handle.ord-e {
|
62 |
+
margin-right: -4px;
|
63 |
+
margin-top: -4px;
|
64 |
+
right: 0;
|
65 |
+
top: 50%;
|
66 |
+
}
|
67 |
+
|
68 |
+
.jcrop-handle.ord-w {
|
69 |
+
left: 0;
|
70 |
+
margin-left: -4px;
|
71 |
+
margin-top: -4px;
|
72 |
+
top: 50%;
|
73 |
+
}
|
74 |
+
|
75 |
+
.jcrop-handle.ord-nw {
|
76 |
+
left: 0;
|
77 |
+
margin-left: -4px;
|
78 |
+
margin-top: -4px;
|
79 |
+
top: 0;
|
80 |
+
}
|
81 |
+
|
82 |
+
.jcrop-handle.ord-ne {
|
83 |
+
margin-right: -4px;
|
84 |
+
margin-top: -4px;
|
85 |
+
right: 0;
|
86 |
+
top: 0;
|
87 |
+
}
|
88 |
+
|
89 |
+
.jcrop-handle.ord-se {
|
90 |
+
bottom: 0;
|
91 |
+
margin-bottom: -4px;
|
92 |
+
margin-right: -4px;
|
93 |
+
right: 0;
|
94 |
+
}
|
95 |
+
|
96 |
+
.jcrop-handle.ord-sw {
|
97 |
+
bottom: 0;
|
98 |
+
left: 0;
|
99 |
+
margin-bottom: -4px;
|
100 |
+
margin-left: -4px;
|
101 |
+
}
|
102 |
+
|
103 |
+
.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s {
|
104 |
+
height: 7px;
|
105 |
+
width: 100%;
|
106 |
+
}
|
107 |
+
|
108 |
+
.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w {
|
109 |
+
height: 100%;
|
110 |
+
width: 7px;
|
111 |
+
}
|
112 |
+
|
113 |
+
.jcrop-dragbar.ord-n {
|
114 |
+
margin-top: -4px;
|
115 |
+
}
|
116 |
+
|
117 |
+
.jcrop-dragbar.ord-s {
|
118 |
+
bottom: 0;
|
119 |
+
margin-bottom: -4px;
|
120 |
+
}
|
121 |
+
|
122 |
+
.jcrop-dragbar.ord-e {
|
123 |
+
margin-right: -4px;
|
124 |
+
right: 0;
|
125 |
+
}
|
126 |
+
|
127 |
+
.jcrop-dragbar.ord-w {
|
128 |
+
margin-left: -4px;
|
129 |
+
}
|
130 |
+
|
131 |
+
.jcrop-light .jcrop-vline,.jcrop-light .jcrop-hline {
|
132 |
+
background: #FFF;
|
133 |
+
filter: alpha(opacity = 70) !important;
|
134 |
+
opacity: .70 !important;
|
135 |
+
}
|
136 |
+
|
137 |
+
.jcrop-light .jcrop-handle {
|
138 |
+
-moz-border-radius: 3px;
|
139 |
+
-webkit-border-radius: 3px;
|
140 |
+
background-color: #000;
|
141 |
+
border-color: #FFF;
|
142 |
+
border-radius: 3px;
|
143 |
+
}
|
144 |
+
|
145 |
+
.jcrop-dark .jcrop-vline,.jcrop-dark .jcrop-hline {
|
146 |
+
background: #000;
|
147 |
+
filter: alpha(opacity = 70) !important;
|
148 |
+
opacity: .7 !important;
|
149 |
+
}
|
150 |
+
|
151 |
+
.jcrop-dark .jcrop-handle {
|
152 |
+
-moz-border-radius: 3px;
|
153 |
+
-webkit-border-radius: 3px;
|
154 |
+
background-color: #FFF;
|
155 |
+
border-color: #000;
|
156 |
+
border-radius: 3px;
|
157 |
+
}
|
158 |
+
|
159 |
+
.solid-line .jcrop-vline,.solid-line .jcrop-hline {
|
160 |
+
background: #FFF;
|
161 |
+
}
|
162 |
+
|
163 |
+
.jcrop-holder img,img.jcrop-preview {
|
164 |
+
max-width: none;
|
165 |
+
}
|
assets/css/mic-admin.css
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
#TB_window {
|
2 |
z-index: 260001 !important;
|
3 |
}
|
|
|
4 |
#TB_overlay {
|
5 |
-
|
6 |
}
|
7 |
|
8 |
.mic-editor-wrapper {
|
@@ -14,6 +15,7 @@
|
|
14 |
width: 500px;
|
15 |
margin-right: 20px;
|
16 |
}
|
|
|
17 |
.mic-right-col {
|
18 |
float: left;
|
19 |
width: 400px;
|
@@ -37,7 +39,7 @@
|
|
37 |
|
38 |
#micCropImage {
|
39 |
margin: auto !important;
|
40 |
-
|
41 |
border-radius: 0;
|
42 |
}
|
43 |
|
@@ -86,7 +88,7 @@
|
|
86 |
float: left;
|
87 |
width: 100px;
|
88 |
margin-top: 23px;
|
89 |
-
line-height: 11px;
|
90 |
}
|
91 |
|
92 |
.mic-editor-wrapper .nav-tab-wrapper {
|
1 |
#TB_window {
|
2 |
z-index: 260001 !important;
|
3 |
}
|
4 |
+
|
5 |
#TB_overlay {
|
6 |
+
z-index: 260000 !important;
|
7 |
}
|
8 |
|
9 |
.mic-editor-wrapper {
|
15 |
width: 500px;
|
16 |
margin-right: 20px;
|
17 |
}
|
18 |
+
|
19 |
.mic-right-col {
|
20 |
float: left;
|
21 |
width: 400px;
|
39 |
|
40 |
#micCropImage {
|
41 |
margin: auto !important;
|
42 |
+
display: block !important;
|
43 |
border-radius: 0;
|
44 |
}
|
45 |
|
88 |
float: left;
|
89 |
width: 100px;
|
90 |
margin-top: 23px;
|
91 |
+
line-height: 11px;
|
92 |
}
|
93 |
|
94 |
.mic-editor-wrapper .nav-tab-wrapper {
|
languages/microp-de_DE.po
CHANGED
@@ -1,163 +1,163 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: mic\n"
|
4 |
-
"POT-Creation-Date: 2014-05-13 22:40-0000\n"
|
5 |
-
"PO-Revision-Date: 2014-05-13 22:41-0000\n"
|
6 |
-
"Last-Translator: \n"
|
7 |
-
"Language-Team: \n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"X-Generator: Poedit 1.5.7\n"
|
12 |
-
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
-
"X-Poedit-Basepath: .\n"
|
14 |
-
"X-Poedit-SearchPath-0: C:\\wamp\\www\\wordpress\\wp-content\\plugins\\manual-"
|
15 |
-
"image-crop\n"
|
16 |
-
|
17 |
-
#: manual-image-crop/lib/ManualImageCrop.php:58
|
18 |
-
msgid "Crop"
|
19 |
-
msgstr "Ausschnitt"
|
20 |
-
|
21 |
-
#: manual-image-crop/lib/ManualImageCrop.php:67
|
22 |
-
msgid "Crop featured image"
|
23 |
-
msgstr "Beitragsbild Ausschneiden"
|
24 |
-
|
25 |
-
#: manual-image-crop/lib/ManualImageCrop.php:94
|
26 |
-
#: manual-image-crop/lib/ManualImageCrop.php:121
|
27 |
-
msgid "Crop Image"
|
28 |
-
msgstr "Bild Ausschneiden"
|
29 |
-
|
30 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:31
|
31 |
-
msgid "Pick the image size:"
|
32 |
-
msgstr "Wählen Sie die Bildgröße"
|
33 |
-
|
34 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:41
|
35 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:115
|
36 |
-
msgid "Thumbnail"
|
37 |
-
msgstr "Miniaturbild"
|
38 |
-
|
39 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:42
|
40 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:116
|
41 |
-
msgid "Medium"
|
42 |
-
msgstr "Mittlere Bildgröße"
|
43 |
-
|
44 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:43
|
45 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:117
|
46 |
-
msgid "Large"
|
47 |
-
msgstr "Maximale Bildgröße"
|
48 |
-
|
49 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:44
|
50 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:118
|
51 |
-
msgid "Full Size"
|
52 |
-
msgstr "Ursprünglichen Größe"
|
53 |
-
|
54 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:142
|
55 |
-
msgid "Original picture dimensions:"
|
56 |
-
msgstr "Original-Bildabmessungen"
|
57 |
-
|
58 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:143
|
59 |
-
msgid "Target picture dimensions:"
|
60 |
-
msgstr "Zielbildabmessungen"
|
61 |
-
|
62 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:143
|
63 |
-
msgid "Soft proportional crop mode"
|
64 |
-
msgstr "Soft proportional Ausschnitt Modus"
|
65 |
-
|
66 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:143
|
67 |
-
msgid "Hard crop mode"
|
68 |
-
msgstr "Fest Ausschnitt Modus"
|
69 |
-
|
70 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:147
|
71 |
-
msgid "New image:"
|
72 |
-
msgstr "Neue Bild"
|
73 |
-
|
74 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:154
|
75 |
-
msgid "Previous image:"
|
76 |
-
msgstr "Vorheriges Bild"
|
77 |
-
|
78 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:162
|
79 |
-
msgid "Crop it!"
|
80 |
-
msgstr "Ausschneiden!"
|
81 |
-
|
82 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:169
|
83 |
-
msgid "Target JPEG Quality"
|
84 |
-
msgstr "Ziel JPEG-Qualität"
|
85 |
-
|
86 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:170
|
87 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:154
|
88 |
-
msgid "100 (best quality, biggest file)"
|
89 |
-
msgstr "100 (beste Qualität, größte Datei)"
|
90 |
-
|
91 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:171
|
92 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:155
|
93 |
-
msgid "80 (very high quality)"
|
94 |
-
msgstr "80 (sehr hoher Qualität)"
|
95 |
-
|
96 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:172
|
97 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:156
|
98 |
-
msgid "70 (high quality)"
|
99 |
-
msgstr "70 (hoher Qualität)"
|
100 |
-
|
101 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:173
|
102 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:157
|
103 |
-
msgid "60 (good)"
|
104 |
-
msgstr "60 (gute Qualität)"
|
105 |
-
|
106 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:174
|
107 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:158
|
108 |
-
msgid "50 (average)"
|
109 |
-
msgstr "50 (mittelmäßige Qualität)"
|
110 |
-
|
111 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:175
|
112 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:159
|
113 |
-
msgid "30 (low)"
|
114 |
-
msgstr "30 (niedrige Qualität)"
|
115 |
-
|
116 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:176
|
117 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:160
|
118 |
-
msgid "10 (very low, smallest file)"
|
119 |
-
msgstr "10 (sehr geringe Qualität)"
|
120 |
-
|
121 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:183
|
122 |
-
msgid "Generate Retina/HiDPI (@2x):"
|
123 |
-
msgstr "Retina/HiDPI (@2x) erzeugen"
|
124 |
-
|
125 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:188
|
126 |
-
msgid "The image has been cropped successfully"
|
127 |
-
msgstr "Das Bild wurde erfolgreich abgeschnitten worden"
|
128 |
-
|
129 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:189
|
130 |
-
msgid "An Error has occured. Please try again or contact plugin's author."
|
131 |
-
msgstr "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut oder Kontaktdaten Plugin Autor"
|
132 |
-
|
133 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:232
|
134 |
-
msgid "Compatible"
|
135 |
-
msgstr "Kompatibel"
|
136 |
-
|
137 |
-
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:234
|
138 |
-
msgid "Source too small"
|
139 |
-
msgstr "Ursprung bild zu klein"
|
140 |
-
|
141 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:125
|
142 |
-
msgid "Size"
|
143 |
-
msgstr "Größe"
|
144 |
-
|
145 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:126
|
146 |
-
msgid "Visible"
|
147 |
-
msgstr "Sichtbar"
|
148 |
-
|
149 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:127
|
150 |
-
msgid "Default JPEG Quality"
|
151 |
-
msgstr "Standard JPEG-Qualität"
|
152 |
-
|
153 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:128
|
154 |
-
msgid "Custom Label"
|
155 |
-
msgstr "angepasst Beschriftung"
|
156 |
-
|
157 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:150
|
158 |
-
msgid "Yes"
|
159 |
-
msgstr "Ja"
|
160 |
-
|
161 |
-
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:151
|
162 |
-
msgid "No"
|
163 |
-
msgstr "Nein"
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: mic\n"
|
4 |
+
"POT-Creation-Date: 2014-05-13 22:40-0000\n"
|
5 |
+
"PO-Revision-Date: 2014-05-13 22:41-0000\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: \n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.5.7\n"
|
12 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SearchPath-0: C:\\wamp\\www\\wordpress\\wp-content\\plugins\\manual-"
|
15 |
+
"image-crop\n"
|
16 |
+
|
17 |
+
#: manual-image-crop/lib/ManualImageCrop.php:58
|
18 |
+
msgid "Crop"
|
19 |
+
msgstr "Ausschnitt"
|
20 |
+
|
21 |
+
#: manual-image-crop/lib/ManualImageCrop.php:67
|
22 |
+
msgid "Crop featured image"
|
23 |
+
msgstr "Beitragsbild Ausschneiden"
|
24 |
+
|
25 |
+
#: manual-image-crop/lib/ManualImageCrop.php:94
|
26 |
+
#: manual-image-crop/lib/ManualImageCrop.php:121
|
27 |
+
msgid "Crop Image"
|
28 |
+
msgstr "Bild Ausschneiden"
|
29 |
+
|
30 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:31
|
31 |
+
msgid "Pick the image size:"
|
32 |
+
msgstr "Wählen Sie die Bildgröße"
|
33 |
+
|
34 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:41
|
35 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:115
|
36 |
+
msgid "Thumbnail"
|
37 |
+
msgstr "Miniaturbild"
|
38 |
+
|
39 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:42
|
40 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:116
|
41 |
+
msgid "Medium"
|
42 |
+
msgstr "Mittlere Bildgröße"
|
43 |
+
|
44 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:43
|
45 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:117
|
46 |
+
msgid "Large"
|
47 |
+
msgstr "Maximale Bildgröße"
|
48 |
+
|
49 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:44
|
50 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:118
|
51 |
+
msgid "Full Size"
|
52 |
+
msgstr "Ursprünglichen Größe"
|
53 |
+
|
54 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:142
|
55 |
+
msgid "Original picture dimensions:"
|
56 |
+
msgstr "Original-Bildabmessungen"
|
57 |
+
|
58 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:143
|
59 |
+
msgid "Target picture dimensions:"
|
60 |
+
msgstr "Zielbildabmessungen"
|
61 |
+
|
62 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:143
|
63 |
+
msgid "Soft proportional crop mode"
|
64 |
+
msgstr "Soft proportional Ausschnitt Modus"
|
65 |
+
|
66 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:143
|
67 |
+
msgid "Hard crop mode"
|
68 |
+
msgstr "Fest Ausschnitt Modus"
|
69 |
+
|
70 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:147
|
71 |
+
msgid "New image:"
|
72 |
+
msgstr "Neue Bild"
|
73 |
+
|
74 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:154
|
75 |
+
msgid "Previous image:"
|
76 |
+
msgstr "Vorheriges Bild"
|
77 |
+
|
78 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:162
|
79 |
+
msgid "Crop it!"
|
80 |
+
msgstr "Ausschneiden!"
|
81 |
+
|
82 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:169
|
83 |
+
msgid "Target JPEG Quality"
|
84 |
+
msgstr "Ziel JPEG-Qualität"
|
85 |
+
|
86 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:170
|
87 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:154
|
88 |
+
msgid "100 (best quality, biggest file)"
|
89 |
+
msgstr "100 (beste Qualität, größte Datei)"
|
90 |
+
|
91 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:171
|
92 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:155
|
93 |
+
msgid "80 (very high quality)"
|
94 |
+
msgstr "80 (sehr hoher Qualität)"
|
95 |
+
|
96 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:172
|
97 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:156
|
98 |
+
msgid "70 (high quality)"
|
99 |
+
msgstr "70 (hoher Qualität)"
|
100 |
+
|
101 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:173
|
102 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:157
|
103 |
+
msgid "60 (good)"
|
104 |
+
msgstr "60 (gute Qualität)"
|
105 |
+
|
106 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:174
|
107 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:158
|
108 |
+
msgid "50 (average)"
|
109 |
+
msgstr "50 (mittelmäßige Qualität)"
|
110 |
+
|
111 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:175
|
112 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:159
|
113 |
+
msgid "30 (low)"
|
114 |
+
msgstr "30 (niedrige Qualität)"
|
115 |
+
|
116 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:176
|
117 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:160
|
118 |
+
msgid "10 (very low, smallest file)"
|
119 |
+
msgstr "10 (sehr geringe Qualität)"
|
120 |
+
|
121 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:183
|
122 |
+
msgid "Generate Retina/HiDPI (@2x):"
|
123 |
+
msgstr "Retina/HiDPI (@2x) erzeugen"
|
124 |
+
|
125 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:188
|
126 |
+
msgid "The image has been cropped successfully"
|
127 |
+
msgstr "Das Bild wurde erfolgreich abgeschnitten worden"
|
128 |
+
|
129 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:189
|
130 |
+
msgid "An Error has occured. Please try again or contact plugin's author."
|
131 |
+
msgstr "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut oder Kontaktdaten Plugin Autor"
|
132 |
+
|
133 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:232
|
134 |
+
msgid "Compatible"
|
135 |
+
msgstr "Kompatibel"
|
136 |
+
|
137 |
+
#: manual-image-crop/lib/ManualImageCropEditorWindow.php:234
|
138 |
+
msgid "Source too small"
|
139 |
+
msgstr "Ursprung bild zu klein"
|
140 |
+
|
141 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:125
|
142 |
+
msgid "Size"
|
143 |
+
msgstr "Größe"
|
144 |
+
|
145 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:126
|
146 |
+
msgid "Visible"
|
147 |
+
msgstr "Sichtbar"
|
148 |
+
|
149 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:127
|
150 |
+
msgid "Default JPEG Quality"
|
151 |
+
msgstr "Standard JPEG-Qualität"
|
152 |
+
|
153 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:128
|
154 |
+
msgid "Custom Label"
|
155 |
+
msgstr "angepasst Beschriftung"
|
156 |
+
|
157 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:150
|
158 |
+
msgid "Yes"
|
159 |
+
msgstr "Ja"
|
160 |
+
|
161 |
+
#: manual-image-crop/lib/ManualImageCropSettingsPage.php:151
|
162 |
+
msgid "No"
|
163 |
+
msgstr "Nein"
|
languages/microp-nl_NL.mo
ADDED
Binary file
|
languages/microp-nl_NL.po
ADDED
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Manual Image Crop\n"
|
4 |
+
"POT-Creation-Date: 2015-05-01 00:50+0100\n"
|
5 |
+
"PO-Revision-Date: 2015-05-06 17:17+0100\n"
|
6 |
+
"Last-Translator: Bernardo Hulsman <b.hulsman@tripix.nl>\n"
|
7 |
+
"Language-Team: \n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 1.7.6\n"
|
12 |
+
"X-Poedit-Basepath: D:\\Programy\\xampp\\apps\\wordpress\\htdocs\\wp-content"
|
13 |
+
"\\plugins\\manual-image-crop\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
+
"X-Poedit-KeywordsList: _e;__\n"
|
16 |
+
"Language: nl_NL\n"
|
17 |
+
"X-Poedit-SearchPath-0: .\n"
|
18 |
+
|
19 |
+
#: manual-image-crop.php:5
|
20 |
+
msgid ""
|
21 |
+
"Plugin allows you to manually crop all the image sizes registered in your "
|
22 |
+
"WordPress theme (in particular featured image). Simply click on the \"Crop\" "
|
23 |
+
"link next to any image in your media library and select the area of the "
|
24 |
+
"image you want to crop."
|
25 |
+
msgstr ""
|
26 |
+
"Met deze plugin kun je handmatig de in je WordPress thema geregistreerde "
|
27 |
+
"afbeeldingsgroottes bijsnijden. Klik simpelweg op 'Bijsnijden' naast de "
|
28 |
+
"afbeelding in de mediabibliotheek, of naast een uitgelichte afbeelding en "
|
29 |
+
"selecteer het gedeelte van de afbeelding dat je wil bijsnijden."
|
30 |
+
|
31 |
+
#: lib/ManualImageCrop.php:58
|
32 |
+
msgid "Crop"
|
33 |
+
msgstr "Bijsnijden"
|
34 |
+
|
35 |
+
#: lib/ManualImageCrop.php:67 lib/ManualImageCrop.php:94
|
36 |
+
#: lib/ManualImageCrop.php:104 lib/ManualImageCrop.php:131
|
37 |
+
#: lib/ManualImageCropSettingsPage.php:45
|
38 |
+
#: lib/ManualImageCropSettingsPage.php:46 manual-image-crop.php:3
|
39 |
+
msgid "Manual Image Crop"
|
40 |
+
msgstr "Manual Image Crop"
|
41 |
+
|
42 |
+
#: lib/ManualImageCrop.php:67
|
43 |
+
msgid "Crop featured image"
|
44 |
+
msgstr "Uitgelichte afbeelding bijsnijden"
|
45 |
+
|
46 |
+
#: lib/ManualImageCrop.php:94 lib/ManualImageCrop.php:104
|
47 |
+
#: lib/ManualImageCrop.php:131
|
48 |
+
msgid "Crop Image"
|
49 |
+
msgstr "Afbeelding bijsnijden"
|
50 |
+
|
51 |
+
#: lib/ManualImageCropEditorWindow.php:30
|
52 |
+
msgid "Pick the image size:"
|
53 |
+
msgstr "Kies een afmeting"
|
54 |
+
|
55 |
+
#: lib/ManualImageCropEditorWindow.php:40
|
56 |
+
#: lib/ManualImageCropSettingsPage.php:133
|
57 |
+
msgid "Thumbnail"
|
58 |
+
msgstr "Thumbnail"
|
59 |
+
|
60 |
+
#: lib/ManualImageCropEditorWindow.php:41
|
61 |
+
#: lib/ManualImageCropSettingsPage.php:134
|
62 |
+
msgid "Medium"
|
63 |
+
msgstr "Gemiddeld"
|
64 |
+
|
65 |
+
#: lib/ManualImageCropEditorWindow.php:42
|
66 |
+
#: lib/ManualImageCropSettingsPage.php:135
|
67 |
+
msgid "Large"
|
68 |
+
msgstr "Groot"
|
69 |
+
|
70 |
+
#: lib/ManualImageCropEditorWindow.php:43
|
71 |
+
#: lib/ManualImageCropSettingsPage.php:136
|
72 |
+
msgid "Full Size"
|
73 |
+
msgstr "Volledige grootte"
|
74 |
+
|
75 |
+
#: lib/ManualImageCropEditorWindow.php:151
|
76 |
+
msgid "Original picture dimensions:"
|
77 |
+
msgstr "Oorspronkelijke afmeting:"
|
78 |
+
|
79 |
+
#: lib/ManualImageCropEditorWindow.php:152
|
80 |
+
msgid "Target picture dimensions:"
|
81 |
+
msgstr "Nieuwe afmeting:"
|
82 |
+
|
83 |
+
#: lib/ManualImageCropEditorWindow.php:156
|
84 |
+
msgid "Soft proportional crop mode"
|
85 |
+
msgstr "soft crop"
|
86 |
+
|
87 |
+
#: lib/ManualImageCropEditorWindow.php:156
|
88 |
+
msgid "Hard crop mode"
|
89 |
+
msgstr "hard crop"
|
90 |
+
|
91 |
+
#: lib/ManualImageCropEditorWindow.php:160
|
92 |
+
msgid "New image:"
|
93 |
+
msgstr "Nieuwe afbeelding:"
|
94 |
+
|
95 |
+
#: lib/ManualImageCropEditorWindow.php:167
|
96 |
+
msgid "Previous image:"
|
97 |
+
msgstr "Vorige afbeelding:"
|
98 |
+
|
99 |
+
#: lib/ManualImageCropEditorWindow.php:175
|
100 |
+
msgid "Crop it!"
|
101 |
+
msgstr "Bijsnijden!"
|
102 |
+
|
103 |
+
#: lib/ManualImageCropEditorWindow.php:182
|
104 |
+
msgid "Target JPEG Quality"
|
105 |
+
msgstr "JPEG kwaliteit"
|
106 |
+
|
107 |
+
#: lib/ManualImageCropEditorWindow.php:183
|
108 |
+
#: lib/ManualImageCropSettingsPage.php:172
|
109 |
+
msgid "100 (best quality, biggest file)"
|
110 |
+
msgstr "100 (hoogste kwaliteit, grootste bestand)"
|
111 |
+
|
112 |
+
#: lib/ManualImageCropEditorWindow.php:184
|
113 |
+
#: lib/ManualImageCropSettingsPage.php:173
|
114 |
+
msgid "80 (very high quality)"
|
115 |
+
msgstr "80 (zeer hoge kwaliteit)"
|
116 |
+
|
117 |
+
#: lib/ManualImageCropEditorWindow.php:185
|
118 |
+
#: lib/ManualImageCropSettingsPage.php:174
|
119 |
+
msgid "70 (high quality)"
|
120 |
+
msgstr "70 (hoge kwaliteit)"
|
121 |
+
|
122 |
+
#: lib/ManualImageCropEditorWindow.php:186
|
123 |
+
#: lib/ManualImageCropSettingsPage.php:175
|
124 |
+
msgid "60 (good)"
|
125 |
+
msgstr "60 (goede kwaliteit)"
|
126 |
+
|
127 |
+
#: lib/ManualImageCropEditorWindow.php:187
|
128 |
+
#: lib/ManualImageCropSettingsPage.php:176
|
129 |
+
msgid "50 (average)"
|
130 |
+
msgstr "50 (gemiddelde kwaliteit)"
|
131 |
+
|
132 |
+
#: lib/ManualImageCropEditorWindow.php:188
|
133 |
+
#: lib/ManualImageCropSettingsPage.php:177
|
134 |
+
msgid "30 (low)"
|
135 |
+
msgstr "30 (lage kwaliteit)"
|
136 |
+
|
137 |
+
#: lib/ManualImageCropEditorWindow.php:189
|
138 |
+
#: lib/ManualImageCropSettingsPage.php:178
|
139 |
+
msgid "10 (very low, smallest file)"
|
140 |
+
msgstr "10 (zeer lage kwaliteit, kleinste bestand)"
|
141 |
+
|
142 |
+
#: lib/ManualImageCropEditorWindow.php:196
|
143 |
+
msgid "Generate Retina/HiDPI (@2x):"
|
144 |
+
msgstr "Genereer Retina/HiDPI (@2x):"
|
145 |
+
|
146 |
+
#: lib/ManualImageCropEditorWindow.php:201
|
147 |
+
msgid "The image has been cropped successfully"
|
148 |
+
msgstr "De afbeelding is succesvol bijgesneden"
|
149 |
+
|
150 |
+
#: lib/ManualImageCropEditorWindow.php:202
|
151 |
+
msgid "An Error has occured. Please try again or contact plugin's author."
|
152 |
+
msgstr ""
|
153 |
+
"Er heeft zich een fout voorgedaan! Probeer het nog eens of neem contact op "
|
154 |
+
"met de maker van de plugin."
|
155 |
+
|
156 |
+
#: lib/ManualImageCropEditorWindow.php:245
|
157 |
+
msgid "Compatible"
|
158 |
+
msgstr "Geschikt"
|
159 |
+
|
160 |
+
#: lib/ManualImageCropEditorWindow.php:247
|
161 |
+
msgid "Source too small"
|
162 |
+
msgstr "Bronbestand te klein"
|
163 |
+
|
164 |
+
#: lib/ManualImageCropSettingsPage.php:61
|
165 |
+
msgid "Manual Image Crop Settings"
|
166 |
+
msgstr "Manual Image Crop instellingen"
|
167 |
+
|
168 |
+
#: lib/ManualImageCropSettingsPage.php:87
|
169 |
+
msgid "Mic Custom Settings"
|
170 |
+
msgstr "Aangepaste instellingen"
|
171 |
+
|
172 |
+
#: lib/ManualImageCropSettingsPage.php:94
|
173 |
+
msgid "Crop sizes settings"
|
174 |
+
msgstr "Afbeeldingsgrootte instellingen"
|
175 |
+
|
176 |
+
#: lib/ManualImageCropSettingsPage.php:120
|
177 |
+
msgid "Enter your settings below:"
|
178 |
+
msgstr "Pas hieronder de instellingen aan:"
|
179 |
+
|
180 |
+
#: lib/ManualImageCropSettingsPage.php:143
|
181 |
+
msgid "Size"
|
182 |
+
msgstr "Afmeting"
|
183 |
+
|
184 |
+
#: lib/ManualImageCropSettingsPage.php:144
|
185 |
+
msgid "Visible"
|
186 |
+
msgstr "Zichtbaar"
|
187 |
+
|
188 |
+
#: lib/ManualImageCropSettingsPage.php:145
|
189 |
+
msgid "Default JPEG Quality"
|
190 |
+
msgstr "Standaard JPEG kwaliteit"
|
191 |
+
|
192 |
+
#: lib/ManualImageCropSettingsPage.php:146
|
193 |
+
msgid "Custom Label"
|
194 |
+
msgstr "Aangepast label"
|
195 |
+
|
196 |
+
#: lib/ManualImageCropSettingsPage.php:168
|
197 |
+
msgid "Yes"
|
198 |
+
msgstr "Ja"
|
199 |
+
|
200 |
+
#: lib/ManualImageCropSettingsPage.php:169
|
201 |
+
msgid "No"
|
202 |
+
msgstr "Nee"
|
languages/microp-pl_PL.mo
CHANGED
Binary file
|
languages/microp-pl_PL.po
CHANGED
@@ -1,163 +1,199 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: mic\n"
|
4 |
-
"POT-Creation-Date:
|
5 |
-
"PO-Revision-Date:
|
6 |
-
"Last-Translator:
|
7 |
-
"Language-Team: \n"
|
8 |
-
"
|
9 |
-
"
|
10 |
-
"Content-
|
11 |
-
"
|
12 |
-
"X-
|
13 |
-
"X-Poedit-
|
14 |
-
"X-Poedit-
|
15 |
-
"
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
#:
|
31 |
-
msgid "
|
32 |
-
msgstr "
|
33 |
-
|
34 |
-
#:
|
35 |
-
#:
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
#:
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
#:
|
51 |
-
msgid "
|
52 |
-
msgstr "
|
53 |
-
|
54 |
-
#:
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
#:
|
71 |
-
msgid "
|
72 |
-
msgstr "
|
73 |
-
|
74 |
-
#:
|
75 |
-
msgid "
|
76 |
-
msgstr "
|
77 |
-
|
78 |
-
#:
|
79 |
-
msgid "
|
80 |
-
msgstr "
|
81 |
-
|
82 |
-
#:
|
83 |
-
msgid "
|
84 |
-
msgstr "
|
85 |
-
|
86 |
-
#:
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
#:
|
103 |
-
msgid "
|
104 |
-
msgstr "
|
105 |
-
|
106 |
-
#:
|
107 |
-
#:
|
108 |
-
msgid "
|
109 |
-
msgstr "
|
110 |
-
|
111 |
-
#:
|
112 |
-
#:
|
113 |
-
msgid "
|
114 |
-
msgstr "
|
115 |
-
|
116 |
-
#:
|
117 |
-
#:
|
118 |
-
msgid "
|
119 |
-
msgstr "
|
120 |
-
|
121 |
-
#:
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
#:
|
138 |
-
msgid "
|
139 |
-
msgstr "
|
140 |
-
|
141 |
-
#:
|
142 |
-
msgid "
|
143 |
-
msgstr "
|
144 |
-
|
145 |
-
#:
|
146 |
-
msgid "
|
147 |
-
msgstr "
|
148 |
-
|
149 |
-
#:
|
150 |
-
msgid "
|
151 |
-
msgstr "
|
152 |
-
|
153 |
-
#:
|
154 |
-
msgid "
|
155 |
-
msgstr "
|
156 |
-
|
157 |
-
#:
|
158 |
-
msgid "
|
159 |
-
msgstr "
|
160 |
-
|
161 |
-
#:
|
162 |
-
msgid "
|
163 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: mic\n"
|
4 |
+
"POT-Creation-Date: 2015-05-01 00:50+0100\n"
|
5 |
+
"PO-Revision-Date: 2015-05-01 00:58+0100\n"
|
6 |
+
"Last-Translator: Maciej Gryniuk <maciejka45@gmail.com>\n"
|
7 |
+
"Language-Team: \n"
|
8 |
+
"Language: pl_PL\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8beta1\n"
|
13 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
14 |
+
"X-Poedit-Basepath: .\n"
|
15 |
+
"X-Poedit-SearchPath-0: C:\\wamp\\www\\wordpress\\wp-content\\plugins\\manual-"
|
16 |
+
"image-crop\n"
|
17 |
+
|
18 |
+
#: manual-image-crop.php:5
|
19 |
+
msgid ""
|
20 |
+
"Plugin allows you to manually crop all the image sizes registered in your "
|
21 |
+
"WordPress theme (in particular featured image). Simply click on the \"Crop\" "
|
22 |
+
"link next to any image in your media library and select the area of the "
|
23 |
+
"image you want to crop."
|
24 |
+
msgstr ""
|
25 |
+
"Wtyczka umożliwiająca ręczne przycięcie wszystkich rozmiarów obrazków "
|
26 |
+
"zarejestrowanych w szablonie WordPress (oraz po części obrazka "
|
27 |
+
"wyróżniającego). Po prostu naciśnij na odnośnik \"Przytnij\" obok obrazka w "
|
28 |
+
"bibliotece medium i wybierz obszar obrazka, który chcesz przyciąć."
|
29 |
+
|
30 |
+
#: lib/ManualImageCrop.php:58
|
31 |
+
msgid "Crop"
|
32 |
+
msgstr "Kadruj"
|
33 |
+
|
34 |
+
#: lib/ManualImageCrop.php:67 lib/ManualImageCrop.php:94
|
35 |
+
#: lib/ManualImageCrop.php:104 lib/ManualImageCrop.php:131
|
36 |
+
#: lib/ManualImageCropSettingsPage.php:45
|
37 |
+
#: lib/ManualImageCropSettingsPage.php:46 manual-image-crop.php:3
|
38 |
+
msgid "Manual Image Crop"
|
39 |
+
msgstr "Ręczne przycinanie obrazków"
|
40 |
+
|
41 |
+
#: lib/ManualImageCrop.php:67
|
42 |
+
msgid "Crop featured image"
|
43 |
+
msgstr "Kadruj główny obrazek"
|
44 |
+
|
45 |
+
#: lib/ManualImageCrop.php:94 lib/ManualImageCrop.php:104
|
46 |
+
#: lib/ManualImageCrop.php:131
|
47 |
+
msgid "Crop Image"
|
48 |
+
msgstr "Kadruj zdjęcie"
|
49 |
+
|
50 |
+
#: lib/ManualImageCropEditorWindow.php:30
|
51 |
+
msgid "Pick the image size:"
|
52 |
+
msgstr "Wybierz rozmiar zdjęcia:"
|
53 |
+
|
54 |
+
#: lib/ManualImageCropEditorWindow.php:40
|
55 |
+
#: lib/ManualImageCropSettingsPage.php:133
|
56 |
+
msgid "Thumbnail"
|
57 |
+
msgstr "Miniatura"
|
58 |
+
|
59 |
+
#: lib/ManualImageCropEditorWindow.php:41
|
60 |
+
#: lib/ManualImageCropSettingsPage.php:134
|
61 |
+
msgid "Medium"
|
62 |
+
msgstr "Średnie"
|
63 |
+
|
64 |
+
#: lib/ManualImageCropEditorWindow.php:42
|
65 |
+
#: lib/ManualImageCropSettingsPage.php:135
|
66 |
+
msgid "Large"
|
67 |
+
msgstr "Duże"
|
68 |
+
|
69 |
+
#: lib/ManualImageCropEditorWindow.php:43
|
70 |
+
#: lib/ManualImageCropSettingsPage.php:136
|
71 |
+
msgid "Full Size"
|
72 |
+
msgstr "Pełny rozmiar"
|
73 |
+
|
74 |
+
#: lib/ManualImageCropEditorWindow.php:151
|
75 |
+
msgid "Original picture dimensions:"
|
76 |
+
msgstr "Oryginalne wymiary:"
|
77 |
+
|
78 |
+
#: lib/ManualImageCropEditorWindow.php:152
|
79 |
+
msgid "Target picture dimensions:"
|
80 |
+
msgstr "Docelowe wymairy:"
|
81 |
+
|
82 |
+
#: lib/ManualImageCropEditorWindow.php:156
|
83 |
+
msgid "Soft proportional crop mode"
|
84 |
+
msgstr "Kadrowanie proporcjonalne"
|
85 |
+
|
86 |
+
#: lib/ManualImageCropEditorWindow.php:156
|
87 |
+
msgid "Hard crop mode"
|
88 |
+
msgstr "Kadrowanie sztywne"
|
89 |
+
|
90 |
+
#: lib/ManualImageCropEditorWindow.php:160
|
91 |
+
msgid "New image:"
|
92 |
+
msgstr "Nowe zdjęcie:"
|
93 |
+
|
94 |
+
#: lib/ManualImageCropEditorWindow.php:167
|
95 |
+
msgid "Previous image:"
|
96 |
+
msgstr "Poprzednie zdjęcie:"
|
97 |
+
|
98 |
+
#: lib/ManualImageCropEditorWindow.php:175
|
99 |
+
msgid "Crop it!"
|
100 |
+
msgstr "Kadruj!"
|
101 |
+
|
102 |
+
#: lib/ManualImageCropEditorWindow.php:182
|
103 |
+
msgid "Target JPEG Quality"
|
104 |
+
msgstr "Jakość JPEG"
|
105 |
+
|
106 |
+
#: lib/ManualImageCropEditorWindow.php:183
|
107 |
+
#: lib/ManualImageCropSettingsPage.php:172
|
108 |
+
msgid "100 (best quality, biggest file)"
|
109 |
+
msgstr "100 (najlepsza jakość, największy plik)"
|
110 |
+
|
111 |
+
#: lib/ManualImageCropEditorWindow.php:184
|
112 |
+
#: lib/ManualImageCropSettingsPage.php:173
|
113 |
+
msgid "80 (very high quality)"
|
114 |
+
msgstr "80 (wyśmienita jakość)"
|
115 |
+
|
116 |
+
#: lib/ManualImageCropEditorWindow.php:185
|
117 |
+
#: lib/ManualImageCropSettingsPage.php:174
|
118 |
+
msgid "70 (high quality)"
|
119 |
+
msgstr "70 (bardzo wysoka jakość)"
|
120 |
+
|
121 |
+
#: lib/ManualImageCropEditorWindow.php:186
|
122 |
+
#: lib/ManualImageCropSettingsPage.php:175
|
123 |
+
msgid "60 (good)"
|
124 |
+
msgstr "60 (wysoka jakość)"
|
125 |
+
|
126 |
+
#: lib/ManualImageCropEditorWindow.php:187
|
127 |
+
#: lib/ManualImageCropSettingsPage.php:176
|
128 |
+
msgid "50 (average)"
|
129 |
+
msgstr "50 (średnia jakość)"
|
130 |
+
|
131 |
+
#: lib/ManualImageCropEditorWindow.php:188
|
132 |
+
#: lib/ManualImageCropSettingsPage.php:177
|
133 |
+
msgid "30 (low)"
|
134 |
+
msgstr "30 (niska jakość)"
|
135 |
+
|
136 |
+
#: lib/ManualImageCropEditorWindow.php:189
|
137 |
+
#: lib/ManualImageCropSettingsPage.php:178
|
138 |
+
msgid "10 (very low, smallest file)"
|
139 |
+
msgstr "10 (bardzo niska jakość)"
|
140 |
+
|
141 |
+
#: lib/ManualImageCropEditorWindow.php:196
|
142 |
+
msgid "Generate Retina/HiDPI (@2x):"
|
143 |
+
msgstr "Wygeneruj Retina/HiDPI (@2x)"
|
144 |
+
|
145 |
+
#: lib/ManualImageCropEditorWindow.php:201
|
146 |
+
msgid "The image has been cropped successfully"
|
147 |
+
msgstr "Zdjęcie zostało wykadrowane"
|
148 |
+
|
149 |
+
#: lib/ManualImageCropEditorWindow.php:202
|
150 |
+
msgid "An Error has occured. Please try again or contact plugin's author."
|
151 |
+
msgstr "Wystąpił błąd, spróbuj ponownie lub skontaktuj się z autorem wtyczki"
|
152 |
+
|
153 |
+
#: lib/ManualImageCropEditorWindow.php:245
|
154 |
+
msgid "Compatible"
|
155 |
+
msgstr "Kompatybilne"
|
156 |
+
|
157 |
+
#: lib/ManualImageCropEditorWindow.php:247
|
158 |
+
msgid "Source too small"
|
159 |
+
msgstr "Zbyt małe zdjecie wejściowe"
|
160 |
+
|
161 |
+
#: lib/ManualImageCropSettingsPage.php:61
|
162 |
+
msgid "Manual Image Crop Settings"
|
163 |
+
msgstr "Ustawienia: Ręczne przycinanie obrazków"
|
164 |
+
|
165 |
+
#: lib/ManualImageCropSettingsPage.php:87
|
166 |
+
msgid "Mic Custom Settings"
|
167 |
+
msgstr "Własne ustawienia: Ręczne przycinanie obrazków"
|
168 |
+
|
169 |
+
#: lib/ManualImageCropSettingsPage.php:94
|
170 |
+
msgid "Crop sizes settings"
|
171 |
+
msgstr "Ustawienia rozmiarów do przycinania"
|
172 |
+
|
173 |
+
#: lib/ManualImageCropSettingsPage.php:120
|
174 |
+
msgid "Enter your settings below:"
|
175 |
+
msgstr "Podaj poniżej swoje ustawienia:"
|
176 |
+
|
177 |
+
#: lib/ManualImageCropSettingsPage.php:143
|
178 |
+
msgid "Size"
|
179 |
+
msgstr "Rozmiar"
|
180 |
+
|
181 |
+
#: lib/ManualImageCropSettingsPage.php:144
|
182 |
+
msgid "Visible"
|
183 |
+
msgstr "Widoczny"
|
184 |
+
|
185 |
+
#: lib/ManualImageCropSettingsPage.php:145
|
186 |
+
msgid "Default JPEG Quality"
|
187 |
+
msgstr "Domyślna jakość JPEG"
|
188 |
+
|
189 |
+
#: lib/ManualImageCropSettingsPage.php:146
|
190 |
+
msgid "Custom Label"
|
191 |
+
msgstr "Niestandardowa etykieta"
|
192 |
+
|
193 |
+
#: lib/ManualImageCropSettingsPage.php:168
|
194 |
+
msgid "Yes"
|
195 |
+
msgstr "Tak"
|
196 |
+
|
197 |
+
#: lib/ManualImageCropSettingsPage.php:169
|
198 |
+
msgid "No"
|
199 |
+
msgstr "Nie"
|
languages/microp.pot
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Manual Image Crop\n"
|
4 |
+
"POT-Creation-Date: 2015-05-01 00:50+0100\n"
|
5 |
+
"PO-Revision-Date: 2015-05-01 00:54+0100\n"
|
6 |
+
"Last-Translator: Maciej Gryniuk <maciejka45@gmail.com>\n"
|
7 |
+
"Language-Team: \n"
|
8 |
+
"Language: en\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8beta1\n"
|
13 |
+
"X-Poedit-Basepath: D:\\Programy\\xampp\\apps\\wordpress\\htdocs\\wp-content\\plugins\\manual-image-crop\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
+
"X-Poedit-KeywordsList: _e;__\n"
|
16 |
+
"X-Poedit-SearchPath-0: .\n"
|
17 |
+
|
18 |
+
#: manual-image-crop.php:5
|
19 |
+
msgid "Plugin allows you to manually crop all the image sizes registered in your WordPress theme (in particular featured image). Simply click on the \"Crop\" link next to any image in your media library and select the area of the image you want to crop."
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: lib/ManualImageCrop.php:58
|
23 |
+
msgid "Crop"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: lib/ManualImageCrop.php:67 lib/ManualImageCrop.php:94
|
27 |
+
#: lib/ManualImageCrop.php:104 lib/ManualImageCrop.php:131
|
28 |
+
#: lib/ManualImageCropSettingsPage.php:45
|
29 |
+
#: lib/ManualImageCropSettingsPage.php:46 manual-image-crop.php:3
|
30 |
+
msgid "Manual Image Crop"
|
31 |
+
msgstr ""
|
32 |
+
|
33 |
+
#: lib/ManualImageCrop.php:67
|
34 |
+
msgid "Crop featured image"
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: lib/ManualImageCrop.php:94 lib/ManualImageCrop.php:104
|
38 |
+
#: lib/ManualImageCrop.php:131
|
39 |
+
msgid "Crop Image"
|
40 |
+
msgstr ""
|
41 |
+
|
42 |
+
#: lib/ManualImageCropEditorWindow.php:30
|
43 |
+
msgid "Pick the image size:"
|
44 |
+
msgstr ""
|
45 |
+
|
46 |
+
#: lib/ManualImageCropEditorWindow.php:40
|
47 |
+
#: lib/ManualImageCropSettingsPage.php:133
|
48 |
+
msgid "Thumbnail"
|
49 |
+
msgstr ""
|
50 |
+
|
51 |
+
#: lib/ManualImageCropEditorWindow.php:41
|
52 |
+
#: lib/ManualImageCropSettingsPage.php:134
|
53 |
+
msgid "Medium"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: lib/ManualImageCropEditorWindow.php:42
|
57 |
+
#: lib/ManualImageCropSettingsPage.php:135
|
58 |
+
msgid "Large"
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
#: lib/ManualImageCropEditorWindow.php:43
|
62 |
+
#: lib/ManualImageCropSettingsPage.php:136
|
63 |
+
msgid "Full Size"
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: lib/ManualImageCropEditorWindow.php:151
|
67 |
+
msgid "Original picture dimensions:"
|
68 |
+
msgstr ""
|
69 |
+
|
70 |
+
#: lib/ManualImageCropEditorWindow.php:152
|
71 |
+
msgid "Target picture dimensions:"
|
72 |
+
msgstr ""
|
73 |
+
|
74 |
+
#: lib/ManualImageCropEditorWindow.php:156
|
75 |
+
msgid "Soft proportional crop mode"
|
76 |
+
msgstr ""
|
77 |
+
|
78 |
+
#: lib/ManualImageCropEditorWindow.php:156
|
79 |
+
msgid "Hard crop mode"
|
80 |
+
msgstr ""
|
81 |
+
|
82 |
+
#: lib/ManualImageCropEditorWindow.php:160
|
83 |
+
msgid "New image:"
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#: lib/ManualImageCropEditorWindow.php:167
|
87 |
+
msgid "Previous image:"
|
88 |
+
msgstr ""
|
89 |
+
|
90 |
+
#: lib/ManualImageCropEditorWindow.php:175
|
91 |
+
msgid "Crop it!"
|
92 |
+
msgstr ""
|
93 |
+
|
94 |
+
#: lib/ManualImageCropEditorWindow.php:182
|
95 |
+
msgid "Target JPEG Quality"
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: lib/ManualImageCropEditorWindow.php:183
|
99 |
+
#: lib/ManualImageCropSettingsPage.php:172
|
100 |
+
msgid "100 (best quality, biggest file)"
|
101 |
+
msgstr ""
|
102 |
+
|
103 |
+
#: lib/ManualImageCropEditorWindow.php:184
|
104 |
+
#: lib/ManualImageCropSettingsPage.php:173
|
105 |
+
msgid "80 (very high quality)"
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: lib/ManualImageCropEditorWindow.php:185
|
109 |
+
#: lib/ManualImageCropSettingsPage.php:174
|
110 |
+
msgid "70 (high quality)"
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: lib/ManualImageCropEditorWindow.php:186
|
114 |
+
#: lib/ManualImageCropSettingsPage.php:175
|
115 |
+
msgid "60 (good)"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: lib/ManualImageCropEditorWindow.php:187
|
119 |
+
#: lib/ManualImageCropSettingsPage.php:176
|
120 |
+
msgid "50 (average)"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: lib/ManualImageCropEditorWindow.php:188
|
124 |
+
#: lib/ManualImageCropSettingsPage.php:177
|
125 |
+
msgid "30 (low)"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: lib/ManualImageCropEditorWindow.php:189
|
129 |
+
#: lib/ManualImageCropSettingsPage.php:178
|
130 |
+
msgid "10 (very low, smallest file)"
|
131 |
+
msgstr ""
|
132 |
+
|
133 |
+
#: lib/ManualImageCropEditorWindow.php:196
|
134 |
+
msgid "Generate Retina/HiDPI (@2x):"
|
135 |
+
msgstr ""
|
136 |
+
|
137 |
+
#: lib/ManualImageCropEditorWindow.php:201
|
138 |
+
msgid "The image has been cropped successfully"
|
139 |
+
msgstr ""
|
140 |
+
|
141 |
+
#: lib/ManualImageCropEditorWindow.php:202
|
142 |
+
msgid "An Error has occured. Please try again or contact plugin's author."
|
143 |
+
msgstr ""
|
144 |
+
|
145 |
+
#: lib/ManualImageCropEditorWindow.php:245
|
146 |
+
msgid "Compatible"
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: lib/ManualImageCropEditorWindow.php:247
|
150 |
+
msgid "Source too small"
|
151 |
+
msgstr ""
|
152 |
+
|
153 |
+
#: lib/ManualImageCropSettingsPage.php:61
|
154 |
+
msgid "Manual Image Crop Settings"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
#: lib/ManualImageCropSettingsPage.php:87
|
158 |
+
msgid "Mic Custom Settings"
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: lib/ManualImageCropSettingsPage.php:94
|
162 |
+
msgid "Crop sizes settings"
|
163 |
+
msgstr ""
|
164 |
+
|
165 |
+
#: lib/ManualImageCropSettingsPage.php:120
|
166 |
+
msgid "Enter your settings below:"
|
167 |
+
msgstr ""
|
168 |
+
|
169 |
+
#: lib/ManualImageCropSettingsPage.php:143
|
170 |
+
msgid "Size"
|
171 |
+
msgstr ""
|
172 |
+
|
173 |
+
#: lib/ManualImageCropSettingsPage.php:144
|
174 |
+
msgid "Visible"
|
175 |
+
msgstr ""
|
176 |
+
|
177 |
+
#: lib/ManualImageCropSettingsPage.php:145
|
178 |
+
msgid "Default JPEG Quality"
|
179 |
+
msgstr ""
|
180 |
+
|
181 |
+
#: lib/ManualImageCropSettingsPage.php:146
|
182 |
+
msgid "Custom Label"
|
183 |
+
msgstr ""
|
184 |
+
|
185 |
+
#: lib/ManualImageCropSettingsPage.php:168
|
186 |
+
msgid "Yes"
|
187 |
+
msgstr ""
|
188 |
+
|
189 |
+
#: lib/ManualImageCropSettingsPage.php:169
|
190 |
+
msgid "No"
|
191 |
+
msgstr ""
|
lib/ManualImageCrop.php
CHANGED
@@ -6,18 +6,18 @@
|
|
6 |
*/
|
7 |
class ManualImageCrop {
|
8 |
|
9 |
-
private static $instance;
|
10 |
|
11 |
/**
|
12 |
* Returns the instance of the class [Singleton]
|
13 |
* @return ManualImageCrop
|
14 |
*/
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
|
22 |
private function __construct() {
|
23 |
|
@@ -34,7 +34,7 @@ class ManualImageCrop {
|
|
34 |
|
35 |
wp_register_style( 'jquery-jcrop', plugins_url('assets/css/jquery.Jcrop.min.css', dirname( __FILE__ ) ) );
|
36 |
wp_enqueue_style( 'jquery-jcrop' );
|
37 |
-
|
38 |
wp_enqueue_script( 'jquery-color', plugins_url('assets/js/jquery.color.js', dirname( __FILE__ )), array( 'jquery') );
|
39 |
wp_enqueue_script( 'jquery-jcrop', plugins_url('assets/js/jquery.Jcrop.min.js', dirname( __FILE__ )), array( 'jquery') );
|
40 |
wp_enqueue_script( 'miccrop', plugins_url('assets/js/microp.js', dirname( __FILE__ )), array( 'jquery') );
|
@@ -64,16 +64,16 @@ class ManualImageCrop {
|
|
64 |
* Adds link below "Remove featured image" in post editing form
|
65 |
*/
|
66 |
public function addCropFeatureImageEditorLink($content, $post) {
|
67 |
-
$content .= '<a id="micCropFeatureImage" class="thickbox mic-link" rel="crop" title="Manual Image Crop" href="' . admin_url( 'admin-ajax.php' ) . '?action=mic_editor_window&postId=' . get_post_thumbnail_id($post) . '">' . __('Crop featured image','microp') . '</a>
|
68 |
-
<script>
|
69 |
-
setInterval(function() {
|
70 |
-
|
71 |
jQuery(\'#micCropFeatureImage\').show();
|
72 |
}else {
|
73 |
-
|
74 |
}
|
75 |
-
}, 200);
|
76 |
-
</script>';
|
77 |
return $content;
|
78 |
}
|
79 |
|
@@ -81,7 +81,7 @@ setInterval(function() {
|
|
81 |
* Adds link in the ligthbox media library
|
82 |
*/
|
83 |
public function addAttachementEditLink() { ?>
|
84 |
-
|
85 |
var micEditAttachemtnLinkAdded = false;
|
86 |
var micEditAttachemtnLinkAddedInterval = 0;
|
87 |
jQuery(document).ready(function() {
|
@@ -91,7 +91,7 @@ setInterval(function() {
|
|
91 |
var mRegexp = /\?post=([0-9]+)/;
|
92 |
var match = mRegexp.exec(jQuery('.details .edit-attachment').attr('href'));
|
93 |
jQuery('.crop-image-ml.crop-image').remove();
|
94 |
-
jQuery('.details .edit-attachment').after( '<a class="thickbox mic-link crop-image-ml crop-image" rel="crop" title="Manual Image Crop" href="' + ajaxurl + '?action=mic_editor_window&postId=' + match[1] + '"><?php _e('Crop Image','microp') ?></a>' );
|
95 |
} catch (e) {
|
96 |
console.log(e);
|
97 |
}
|
@@ -101,7 +101,7 @@ setInterval(function() {
|
|
101 |
try {
|
102 |
var postId = jQuery('.attachment-details').attr('data-id');
|
103 |
jQuery('.button.crop-image-ml.crop-image').remove();
|
104 |
-
jQuery('.button.edit-attachment').after( ' <a class="thickbox mic-link crop-image-ml crop-image button" rel="crop" title="Manual Image Crop" href="' + ajaxurl + '?action=mic_editor_window&postId=' + postId + '"><?php _e('Crop Image','microp') ?></a>' );
|
105 |
} catch (e) {
|
106 |
console.log(e);
|
107 |
}
|
@@ -109,15 +109,15 @@ setInterval(function() {
|
|
109 |
}, 500);
|
110 |
});
|
111 |
</script>
|
112 |
-
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
* Adds link in the ligthbox media library
|
117 |
*/
|
118 |
public function addAfterUploadAttachementEditLink() {
|
119 |
-
|
120 |
-
|
121 |
var micEditAttachemtnLinkAdded = false;
|
122 |
var micEditAttachemtnLinkAddedInterval = 0;
|
123 |
jQuery(document).ready(function() {
|
@@ -128,7 +128,7 @@ setInterval(function() {
|
|
128 |
var mRegexp = /\?post=([0-9]+)/;
|
129 |
var match = mRegexp.exec(jQuery(this).attr('href'));
|
130 |
if (!jQuery(this).parent().find('.edit-attachment.crop-image').length && jQuery(this).parent().find('.pinkynail').attr('src').match(/upload/g)) {
|
131 |
-
jQuery(this).after( '<a class="thickbox mic-link edit-attachment crop-image" rel="crop" title="Manual Image Crop" href="' + ajaxurl + '?action=mic_editor_window&postId=' + match[1] + '"><?php _e('Crop Image','microp') ?></a>' );
|
132 |
}
|
133 |
} catch (e) {
|
134 |
console.log(e);
|
@@ -138,7 +138,7 @@ setInterval(function() {
|
|
138 |
}, 500);
|
139 |
});
|
140 |
</script>
|
141 |
-
|
142 |
}
|
143 |
|
144 |
/**
|
@@ -147,53 +147,65 @@ setInterval(function() {
|
|
147 |
public function cropImage() {
|
148 |
global $_wp_additional_image_sizes;
|
149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
$uploadsDir = wp_upload_dir();
|
151 |
-
|
152 |
// checks for ssl. wp_upload_dir does not handle ssl (ssl admin trips on this and subsequent ajax success to browser)
|
153 |
-
if (is_ssl()) {
|
154 |
$uploadsDir['baseurl'] = preg_replace('#^http://#i', 'https://', $uploadsDir['baseurl']);
|
155 |
}
|
156 |
|
157 |
-
$src_file_url = wp_get_attachment_image_src($_POST['attachmentId'], 'full');
|
158 |
|
159 |
-
if (
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
|
|
|
|
|
|
170 |
}
|
171 |
-
$dst_file = str_replace($uploadsDir['baseurl'], $uploadsDir['basedir'], $dst_file_url[0]);
|
172 |
-
|
173 |
|
174 |
//checks if the destination image file is present (if it's not, we want to create a new file, as the WordPress returns the original image instead of specific one)
|
175 |
if ($dst_file == $src_file) {
|
176 |
$attachmentData = wp_generate_attachment_metadata( $_POST['attachmentId'], $dst_file );
|
177 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
//new destination file path - replaces original file name with the correct one
|
179 |
$dst_file = str_replace( basename($attachmentData['file']), $attachmentData['sizes'][ $_POST['editedSize'] ]['file'], $dst_file);
|
180 |
|
181 |
-
//saves new path to the image size in the database
|
182 |
-
wp_update_attachment_metadata( $_POST['attachmentId'], $attachmentData );
|
183 |
-
|
184 |
//retrieves the new url to file (needet to refresh the preview)
|
185 |
$dst_file_url = wp_get_attachment_image_src($_POST['attachmentId'], $_POST['editedSize']);
|
186 |
}
|
187 |
|
188 |
//sets the destination image dimensions
|
189 |
if (isset($_wp_additional_image_sizes[$_POST['editedSize']])) {
|
190 |
-
$dst_w = min(intval($_wp_additional_image_sizes[$_POST['editedSize']]['width']), $_POST['select']['w'] * $_POST['previewScale'])
|
191 |
$dst_h = min(intval($_wp_additional_image_sizes[$_POST['editedSize']]['height']), $_POST['select']['h'] * $_POST['previewScale']);
|
192 |
} else {
|
193 |
$dst_w = min(get_option($_POST['editedSize'].'_size_w'), $_POST['select']['w'] * $_POST['previewScale']);
|
194 |
$dst_h = min(get_option($_POST['editedSize'].'_size_h'), $_POST['select']['h'] * $_POST['previewScale']);
|
195 |
}
|
196 |
-
|
197 |
if (!$dst_w || !$dst_h) {
|
198 |
echo json_encode (array('status' => 'error', 'message' => 'wrong dimensions' ) );
|
199 |
exit;
|
@@ -206,78 +218,102 @@ setInterval(function() {
|
|
206 |
$src_y = max(0, $_POST['select']['y']) * $_POST['previewScale'];
|
207 |
$src_w = max(0, $_POST['select']['w']) * $_POST['previewScale'];
|
208 |
$src_h = max(0, $_POST['select']['h']) * $_POST['previewScale'];
|
209 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
//saves the selected area
|
211 |
$imageMetadata = wp_get_attachment_metadata($_POST['attachmentId']);
|
212 |
$imageMetadata['micSelectedArea'][$_POST['editedSize']] = array(
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
|
|
218 |
wp_update_attachment_metadata($_POST['attachmentId'], $imageMetadata);
|
219 |
-
|
220 |
-
$quality = intval($_POST['mic_quality']);
|
221 |
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
exit;
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
$imageSaveReturn = true;
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
// Generate Retina Image
|
274 |
if( isset( $_POST['make2x'] ) && $_POST['make2x'] === 'true' ) {
|
275 |
$dst_w2x = $dst_w * 2;
|
276 |
$dst_h2x = $dst_h * 2;
|
277 |
-
|
278 |
$dot = strrpos($dst_file,".");
|
279 |
$dst_file2x = substr($dst_file,0,$dot).'@2x'.substr($dst_file,$dot);
|
280 |
-
|
281 |
// Check image size and create the retina file if possible
|
282 |
if ( $src_w > $dst_w2x && $src_h > $dst_h2x) {
|
283 |
if ( function_exists('wp_get_image_editor') ) {
|
@@ -287,19 +323,19 @@ setInterval(function() {
|
|
287 |
$img->set_quality( $quality );
|
288 |
$img->save($dst_file2x);
|
289 |
}else {
|
290 |
-
|
291 |
exit;
|
292 |
-
|
293 |
-
} else {
|
294 |
$dst_img2x = imagecreatetruecolor($dst_w2x, $dst_h2x);
|
295 |
$resampleReturn = imagecopyresampled($dst_img2x, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w2x, $dst_h2x, $src_w, $src_h);
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
if ($ext == "gif"){
|
304 |
$imageSaveReturn = imagegif($dst_img2x, $dst_file2x);
|
305 |
} else if($ext =="png"){
|
@@ -307,15 +343,15 @@ setInterval(function() {
|
|
307 |
} else {
|
308 |
$imageSaveReturn = imagejpeg($dst_img2x, $dst_file2x, $quality);
|
309 |
}
|
310 |
-
|
311 |
-
if ($imageSaveReturn === false ) {
|
312 |
-
echo json_encode (array('status' => 'error', 'message' => 'PHP ERROR: imagejpeg/imagegif/imagepng' ) );
|
313 |
-
exit;
|
314 |
}
|
315 |
}
|
316 |
}
|
317 |
}
|
318 |
-
// update 'mic_make2x' option status to persist choice
|
319 |
if( isset( $_POST['make2x'] ) && $_POST['make2x'] !== get_option('mic_make2x') ) {
|
320 |
update_option('mic_make2x', $_POST['make2x']);
|
321 |
}
|
6 |
*/
|
7 |
class ManualImageCrop {
|
8 |
|
9 |
+
private static $instance;
|
10 |
|
11 |
/**
|
12 |
* Returns the instance of the class [Singleton]
|
13 |
* @return ManualImageCrop
|
14 |
*/
|
15 |
+
public static function getInstance() {
|
16 |
+
if (self::$instance === null) {
|
17 |
+
self::$instance = new ManualImageCrop();
|
18 |
+
}
|
19 |
+
return self::$instance;
|
20 |
+
}
|
21 |
|
22 |
private function __construct() {
|
23 |
|
34 |
|
35 |
wp_register_style( 'jquery-jcrop', plugins_url('assets/css/jquery.Jcrop.min.css', dirname( __FILE__ ) ) );
|
36 |
wp_enqueue_style( 'jquery-jcrop' );
|
37 |
+
|
38 |
wp_enqueue_script( 'jquery-color', plugins_url('assets/js/jquery.color.js', dirname( __FILE__ )), array( 'jquery') );
|
39 |
wp_enqueue_script( 'jquery-jcrop', plugins_url('assets/js/jquery.Jcrop.min.js', dirname( __FILE__ )), array( 'jquery') );
|
40 |
wp_enqueue_script( 'miccrop', plugins_url('assets/js/microp.js', dirname( __FILE__ )), array( 'jquery') );
|
64 |
* Adds link below "Remove featured image" in post editing form
|
65 |
*/
|
66 |
public function addCropFeatureImageEditorLink($content, $post) {
|
67 |
+
$content .= '<a id="micCropFeatureImage" class="thickbox mic-link" rel="crop" title="' . __('Manual Image Crop','microp') . '" href="' . admin_url( 'admin-ajax.php' ) . '?action=mic_editor_window&postId=' . get_post_thumbnail_id($post) . '">' . __('Crop featured image','microp') . '</a>
|
68 |
+
<script>
|
69 |
+
setInterval(function() {
|
70 |
+
if (jQuery(\'#remove-post-thumbnail\').is(\':visible\')) {
|
71 |
jQuery(\'#micCropFeatureImage\').show();
|
72 |
}else {
|
73 |
+
jQuery(\'#micCropFeatureImage\').hide();
|
74 |
}
|
75 |
+
}, 200);
|
76 |
+
</script>';
|
77 |
return $content;
|
78 |
}
|
79 |
|
81 |
* Adds link in the ligthbox media library
|
82 |
*/
|
83 |
public function addAttachementEditLink() { ?>
|
84 |
+
<script>
|
85 |
var micEditAttachemtnLinkAdded = false;
|
86 |
var micEditAttachemtnLinkAddedInterval = 0;
|
87 |
jQuery(document).ready(function() {
|
91 |
var mRegexp = /\?post=([0-9]+)/;
|
92 |
var match = mRegexp.exec(jQuery('.details .edit-attachment').attr('href'));
|
93 |
jQuery('.crop-image-ml.crop-image').remove();
|
94 |
+
jQuery('.details .edit-attachment').after( '<a class="thickbox mic-link crop-image-ml crop-image" rel="crop" title="<?php _e("Manual Image Crop","microp"); ?>" href="' + ajaxurl + '?action=mic_editor_window&postId=' + match[1] + '"><?php _e('Crop Image','microp') ?></a>' );
|
95 |
} catch (e) {
|
96 |
console.log(e);
|
97 |
}
|
101 |
try {
|
102 |
var postId = jQuery('.attachment-details').attr('data-id');
|
103 |
jQuery('.button.crop-image-ml.crop-image').remove();
|
104 |
+
jQuery('.button.edit-attachment').after( ' <a class="thickbox mic-link crop-image-ml crop-image button" rel="crop" title="<?php _e("Manual Image Crop","microp"); ?>" href="' + ajaxurl + '?action=mic_editor_window&postId=' + postId + '"><?php _e('Crop Image','microp') ?></a>' );
|
105 |
} catch (e) {
|
106 |
console.log(e);
|
107 |
}
|
109 |
}, 500);
|
110 |
});
|
111 |
</script>
|
112 |
+
<?php
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
* Adds link in the ligthbox media library
|
117 |
*/
|
118 |
public function addAfterUploadAttachementEditLink() {
|
119 |
+
?>
|
120 |
+
<script>
|
121 |
var micEditAttachemtnLinkAdded = false;
|
122 |
var micEditAttachemtnLinkAddedInterval = 0;
|
123 |
jQuery(document).ready(function() {
|
128 |
var mRegexp = /\?post=([0-9]+)/;
|
129 |
var match = mRegexp.exec(jQuery(this).attr('href'));
|
130 |
if (!jQuery(this).parent().find('.edit-attachment.crop-image').length && jQuery(this).parent().find('.pinkynail').attr('src').match(/upload/g)) {
|
131 |
+
jQuery(this).after( '<a class="thickbox mic-link edit-attachment crop-image" rel="crop" title="<?php _e("Manual Image Crop","microp"); ?>" href="' + ajaxurl + '?action=mic_editor_window&postId=' + match[1] + '"><?php _e('Crop Image','microp') ?></a>' );
|
132 |
}
|
133 |
} catch (e) {
|
134 |
console.log(e);
|
138 |
}, 500);
|
139 |
});
|
140 |
</script>
|
141 |
+
<?php
|
142 |
}
|
143 |
|
144 |
/**
|
147 |
public function cropImage() {
|
148 |
global $_wp_additional_image_sizes;
|
149 |
|
150 |
+
$dst_file_url = wp_get_attachment_image_src($_POST['attachmentId'], $_POST['editedSize']);
|
151 |
+
|
152 |
+
if (!$dst_file_url) {
|
153 |
+
exit;
|
154 |
+
}
|
155 |
+
|
156 |
$uploadsDir = wp_upload_dir();
|
157 |
+
|
158 |
// checks for ssl. wp_upload_dir does not handle ssl (ssl admin trips on this and subsequent ajax success to browser)
|
159 |
+
if (is_ssl()) {
|
160 |
$uploadsDir['baseurl'] = preg_replace('#^http://#i', 'https://', $uploadsDir['baseurl']);
|
161 |
}
|
162 |
|
|
|
163 |
|
164 |
+
if ( function_exists( '_load_image_to_edit_path' ) ) {
|
165 |
+
// this function is consider as private, but it return proper image path. Notice it is in function_exists condition
|
166 |
+
$src_file = _load_image_to_edit_path( $_POST['attachmentId'], 'full' );
|
167 |
+
$dst_file = _load_image_to_edit_path( $_POST['attachmentId'], $_POST['editedSize'] );
|
168 |
+
} else {
|
169 |
+
$src_file_url = wp_get_attachment_image_src( $_POST['attachmentId'], 'full' );
|
170 |
+
|
171 |
+
if ( ! $src_file_url ) {
|
172 |
+
echo json_encode( array( 'status' => 'error', 'message' => 'wrong attachment' ) );
|
173 |
+
exit;
|
174 |
+
}
|
175 |
+
|
176 |
+
$src_file = str_replace( $uploadsDir['baseurl'], $uploadsDir['basedir'], $src_file_url[0] );
|
177 |
+
$dst_file = str_replace( $uploadsDir['baseurl'], $uploadsDir['basedir'], $dst_file_url[0] );
|
178 |
}
|
|
|
|
|
179 |
|
180 |
//checks if the destination image file is present (if it's not, we want to create a new file, as the WordPress returns the original image instead of specific one)
|
181 |
if ($dst_file == $src_file) {
|
182 |
$attachmentData = wp_generate_attachment_metadata( $_POST['attachmentId'], $dst_file );
|
183 |
+
|
184 |
+
//overwrite with previous values
|
185 |
+
$prevAttachmentData = wp_get_attachment_metadata($_POST['attachmentId']);
|
186 |
+
if (isset($prevAttachmentData['micSelectedArea'])) {
|
187 |
+
$attachmentData['micSelectedArea'] = $prevAttachmentData['micSelectedArea'];
|
188 |
+
}
|
189 |
+
|
190 |
+
//saves new path to the image size in the database
|
191 |
+
wp_update_attachment_metadata( $_POST['attachmentId'], $attachmentData );
|
192 |
+
|
193 |
//new destination file path - replaces original file name with the correct one
|
194 |
$dst_file = str_replace( basename($attachmentData['file']), $attachmentData['sizes'][ $_POST['editedSize'] ]['file'], $dst_file);
|
195 |
|
|
|
|
|
|
|
196 |
//retrieves the new url to file (needet to refresh the preview)
|
197 |
$dst_file_url = wp_get_attachment_image_src($_POST['attachmentId'], $_POST['editedSize']);
|
198 |
}
|
199 |
|
200 |
//sets the destination image dimensions
|
201 |
if (isset($_wp_additional_image_sizes[$_POST['editedSize']])) {
|
202 |
+
$dst_w = min(intval($_wp_additional_image_sizes[$_POST['editedSize']]['width']), $_POST['select']['w'] * $_POST['previewScale']);
|
203 |
$dst_h = min(intval($_wp_additional_image_sizes[$_POST['editedSize']]['height']), $_POST['select']['h'] * $_POST['previewScale']);
|
204 |
} else {
|
205 |
$dst_w = min(get_option($_POST['editedSize'].'_size_w'), $_POST['select']['w'] * $_POST['previewScale']);
|
206 |
$dst_h = min(get_option($_POST['editedSize'].'_size_h'), $_POST['select']['h'] * $_POST['previewScale']);
|
207 |
}
|
208 |
+
|
209 |
if (!$dst_w || !$dst_h) {
|
210 |
echo json_encode (array('status' => 'error', 'message' => 'wrong dimensions' ) );
|
211 |
exit;
|
218 |
$src_y = max(0, $_POST['select']['y']) * $_POST['previewScale'];
|
219 |
$src_w = max(0, $_POST['select']['w']) * $_POST['previewScale'];
|
220 |
$src_h = max(0, $_POST['select']['h']) * $_POST['previewScale'];
|
221 |
+
|
222 |
+
$size = wp_get_image_editor( $src_file )->get_size();
|
223 |
+
|
224 |
+
$is_higher = ( $dst_h > $size["height"] );
|
225 |
+
$is_wider = ( $dst_w > $size["width"] );
|
226 |
+
|
227 |
+
if ( $is_higher || $is_wider ) {
|
228 |
+
if ( $is_higher ) {
|
229 |
+
$scale = $src_h / $size["height"];
|
230 |
+
} else {
|
231 |
+
$scale = $src_w / $size["width"];
|
232 |
+
}
|
233 |
+
|
234 |
+
$src_w = $src_w / $scale;
|
235 |
+
$src_h = $src_h / $scale;
|
236 |
+
$src_x = $src_x / $scale;
|
237 |
+
$src_y = $src_y / $scale;
|
238 |
+
}
|
239 |
+
|
240 |
//saves the selected area
|
241 |
$imageMetadata = wp_get_attachment_metadata($_POST['attachmentId']);
|
242 |
$imageMetadata['micSelectedArea'][$_POST['editedSize']] = array(
|
243 |
+
'x' => $_POST['select']['x'],
|
244 |
+
'y' => $_POST['select']['y'],
|
245 |
+
'w' => $_POST['select']['w'],
|
246 |
+
'h' => $_POST['select']['h'],
|
247 |
+
'scale' => $_POST['previewScale'],
|
248 |
+
);
|
249 |
wp_update_attachment_metadata($_POST['attachmentId'], $imageMetadata);
|
|
|
|
|
250 |
|
251 |
+
$quality = isset($_POST['mic_quality']) ? intval($_POST['mic_quality']) : 60;
|
252 |
+
|
253 |
+
if ( function_exists('wp_get_image_editor') ) {
|
254 |
+
$img = wp_get_image_editor( $src_file );
|
255 |
+
|
256 |
+
if ( ! is_wp_error( $img ) ) {
|
257 |
+
|
258 |
+
$img->crop( $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, false );
|
259 |
+
$img->set_quality( $quality );
|
260 |
+
$saveStatus = $img->save( $dst_file );
|
261 |
+
|
262 |
+
if ( is_wp_error( $saveStatus ) ) {
|
263 |
+
echo json_encode( array( 'status' => 'error', 'message' => 'WP_ERROR: ' . $saveStatus->get_error_message() ) );
|
264 |
+
exit;
|
265 |
+
}
|
266 |
+
}else {
|
267 |
+
echo json_encode (array('status' => 'error', 'message' => 'WP_ERROR: ' . $img->get_error_message() ) );
|
268 |
exit;
|
269 |
+
}
|
270 |
+
} else {
|
271 |
+
//determines what's the image format
|
272 |
+
$ext = pathinfo($src_file, PATHINFO_EXTENSION);
|
273 |
+
if ($ext == "gif"){
|
274 |
+
$src_img = imagecreatefromgif($src_file);
|
275 |
+
} else if($ext =="png"){
|
276 |
+
$src_img = imagecreatefrompng($src_file);
|
277 |
+
} else {
|
278 |
+
$src_img = imagecreatefromjpeg($src_file);
|
279 |
+
}
|
280 |
+
|
281 |
+
if ($src_img === false ) {
|
282 |
+
echo json_encode (array('status' => 'error', 'message' => 'PHP ERROR: Cannot create image from the source file' ) );
|
283 |
+
exit;
|
284 |
+
}
|
285 |
+
|
286 |
+
$dst_img = imagecreatetruecolor($dst_w, $dst_h);
|
287 |
+
$resampleReturn = imagecopyresampled($dst_img, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
|
288 |
+
|
289 |
+
if ($resampleReturn === false ) {
|
290 |
+
echo json_encode (array('status' => 'error', 'message' => 'PHP ERROR: imagecopyresampled' ) );
|
291 |
+
exit;
|
292 |
+
}
|
293 |
+
|
294 |
$imageSaveReturn = true;
|
295 |
+
if ($ext == "gif"){
|
296 |
+
$imageSaveReturn = imagegif($dst_img, $dst_file);
|
297 |
+
} else if($ext =="png"){
|
298 |
+
$imageSaveReturn = imagepng($dst_img, $dst_file);
|
299 |
+
} else {
|
300 |
+
$imageSaveReturn = imagejpeg($dst_img, $dst_file, $quality);
|
301 |
+
}
|
302 |
+
|
303 |
+
if ($imageSaveReturn === false ) {
|
304 |
+
echo json_encode (array('status' => 'error', 'message' => 'PHP ERROR: imagejpeg/imagegif/imagepng' ) );
|
305 |
+
exit;
|
306 |
+
}
|
307 |
+
}
|
308 |
+
|
309 |
// Generate Retina Image
|
310 |
if( isset( $_POST['make2x'] ) && $_POST['make2x'] === 'true' ) {
|
311 |
$dst_w2x = $dst_w * 2;
|
312 |
$dst_h2x = $dst_h * 2;
|
313 |
+
|
314 |
$dot = strrpos($dst_file,".");
|
315 |
$dst_file2x = substr($dst_file,0,$dot).'@2x'.substr($dst_file,$dot);
|
316 |
+
|
317 |
// Check image size and create the retina file if possible
|
318 |
if ( $src_w > $dst_w2x && $src_h > $dst_h2x) {
|
319 |
if ( function_exists('wp_get_image_editor') ) {
|
323 |
$img->set_quality( $quality );
|
324 |
$img->save($dst_file2x);
|
325 |
}else {
|
326 |
+
echo json_encode (array('status' => 'error', 'message' => 'WP_ERROR: ' . $img->get_error_message() ) );
|
327 |
exit;
|
328 |
+
}
|
329 |
+
} else {
|
330 |
$dst_img2x = imagecreatetruecolor($dst_w2x, $dst_h2x);
|
331 |
$resampleReturn = imagecopyresampled($dst_img2x, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w2x, $dst_h2x, $src_w, $src_h);
|
332 |
+
|
333 |
+
if ($resampleReturn === false ) {
|
334 |
+
echo json_encode (array('status' => 'error', 'message' => 'PHP ERROR: imagecopyresampled' ) );
|
335 |
+
exit;
|
336 |
+
}
|
337 |
+
|
338 |
+
$imageSaveReturn = true;
|
339 |
if ($ext == "gif"){
|
340 |
$imageSaveReturn = imagegif($dst_img2x, $dst_file2x);
|
341 |
} else if($ext =="png"){
|
343 |
} else {
|
344 |
$imageSaveReturn = imagejpeg($dst_img2x, $dst_file2x, $quality);
|
345 |
}
|
346 |
+
|
347 |
+
if ($imageSaveReturn === false ) {
|
348 |
+
echo json_encode (array('status' => 'error', 'message' => 'PHP ERROR: imagejpeg/imagegif/imagepng' ) );
|
349 |
+
exit;
|
350 |
}
|
351 |
}
|
352 |
}
|
353 |
}
|
354 |
+
// update 'mic_make2x' option status to persist choice
|
355 |
if( isset( $_POST['make2x'] ) && $_POST['make2x'] !== get_option('mic_make2x') ) {
|
356 |
update_option('mic_make2x', $_POST['make2x']);
|
357 |
}
|
lib/ManualImageCropEditorWindow.php
CHANGED
@@ -6,18 +6,18 @@
|
|
6 |
*/
|
7 |
class ManualImageCropEditorWindow {
|
8 |
|
9 |
-
private static $instance;
|
10 |
|
11 |
/**
|
12 |
* Returns the instance of the class [Singleton]
|
13 |
* @return ManualImageCropEditorWindow
|
14 |
*/
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
|
22 |
private function __construct() {
|
23 |
|
@@ -26,170 +26,216 @@ class ManualImageCropEditorWindow {
|
|
26 |
public function renderWindow() {
|
27 |
$sizesSettings = MicSettingsPage::getSettings();
|
28 |
?>
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
34 |
|
35 |
-
|
36 |
|
37 |
-
|
38 |
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
foreach ($imageSizes as $s) {
|
48 |
-
if ( ! isset($sizesSettings[$s]) ) {
|
49 |
-
$sizesSettings[$s] = array('label' => '', 'quality' => 80, 'visibility' => 'visible');
|
50 |
-
}
|
51 |
-
|
52 |
-
if ( $sizesSettings[$s]['visibility'] == 'hidden') {
|
53 |
-
continue;
|
54 |
-
}
|
55 |
-
|
56 |
-
if (isset($_wp_additional_image_sizes[$s])) {
|
57 |
-
$cropMethod = $_wp_additional_image_sizes[$s]['crop'];
|
58 |
-
} else {
|
59 |
-
$cropMethod = get_option($s.'_crop');
|
60 |
-
}
|
61 |
-
if ($cropMethod == 0) {
|
62 |
-
continue;
|
63 |
-
}
|
64 |
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
echo '<a href="' . admin_url( 'admin-ajax.php' ) . '?action=mic_editor_window&size=' . $s . '&postId=' . $_GET['postId'] . '&width=940" class="mic-icon-' . $s . ' rm-crop-size-tab nav-tab ' . ( ($s == $editedSize) ? 'nav-tab-active' : '' ) . '">' . $label . '</a>';
|
69 |
}
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
//reads the specific registered image size dimension
|
75 |
-
if (isset($_wp_additional_image_sizes[$editedSize])) {
|
76 |
-
$width = intval($_wp_additional_image_sizes[$editedSize]['width']);
|
77 |
-
$height = intval($_wp_additional_image_sizes[$editedSize]['height']);
|
78 |
-
$cropMethod = $_wp_additional_image_sizes[$editedSize]['crop'];
|
79 |
-
} else {
|
80 |
-
$width = get_option($editedSize.'_size_w');
|
81 |
-
$height = get_option($editedSize.'_size_h');
|
82 |
-
$cropMethod = get_option($editedSize.'_crop');
|
83 |
}
|
|
|
|
|
84 |
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
|
87 |
-
|
|
|
|
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
</div>
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
<option value="70" ' . ( $sizesSettings[$editedSize]['quality'] == '70' ? 'selected' : '' ) . '>' . __('70 (high quality)', 'microp') . '</option>
|
172 |
-
<option value="60" ' . ( $sizesSettings[$editedSize]['quality'] == '60' ? 'selected' : '' ) . '>' . __('60 (good)', 'microp') . '</option>
|
173 |
-
<option value="50" ' . ( $sizesSettings[$editedSize]['quality'] == '50' ? 'selected' : '' ) . '>' . __('50 (average)', 'microp') . '</option>
|
174 |
-
<option value="30" ' . ( $sizesSettings[$editedSize]['quality'] == '30' ? 'selected' : '' ) . '>' . __('30 (low)', 'microp') . '</option>
|
175 |
-
<option value="10" ' . ( $sizesSettings[$editedSize]['quality'] == '10' ? 'selected' : '' ) . '>' . __('10 (very low, smallest file)', 'microp') . '</option>
|
176 |
-
</select></div>';
|
177 |
-
}
|
178 |
-
?>
|
179 |
-
<?php
|
180 |
if ( is_plugin_active('wp-retina-2x/wp-retina-2x.php') ) { ?>
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
|
|
|
|
|
|
185 |
} ?>
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
</div>
|
191 |
</div>
|
192 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
jQuery(document).ready(function($) {
|
194 |
mic_attachment_id = <?php echo $_GET['postId']; ?>;
|
195 |
mic_edited_size = '<?php echo $editedSize; ?>';
|
@@ -236,7 +282,7 @@ class ManualImageCropEditorWindow {
|
|
236 |
}
|
237 |
});
|
238 |
</script>
|
239 |
-
|
240 |
-
|
241 |
}
|
242 |
}
|
6 |
*/
|
7 |
class ManualImageCropEditorWindow {
|
8 |
|
9 |
+
private static $instance;
|
10 |
|
11 |
/**
|
12 |
* Returns the instance of the class [Singleton]
|
13 |
* @return ManualImageCropEditorWindow
|
14 |
*/
|
15 |
+
public static function getInstance() {
|
16 |
+
if (self::$instance === null) {
|
17 |
+
self::$instance = new ManualImageCropEditorWindow();
|
18 |
+
}
|
19 |
+
return self::$instance;
|
20 |
+
}
|
21 |
|
22 |
private function __construct() {
|
23 |
|
26 |
public function renderWindow() {
|
27 |
$sizesSettings = MicSettingsPage::getSettings();
|
28 |
?>
|
29 |
+
<div class="mic-editor-wrapper">
|
30 |
+
<h4>
|
31 |
+
<?php _e('Pick the image size:','microp'); ?>
|
32 |
+
</h4>
|
33 |
+
<h2 class="nav-tab-wrapper">
|
34 |
+
<?php
|
35 |
+
global $_wp_additional_image_sizes;
|
36 |
|
37 |
+
$imageSizes = get_intermediate_image_sizes();
|
38 |
|
39 |
+
$editedSize = isset( $_GET['size'] ) ? $_GET['size'] : null;
|
40 |
|
41 |
+
$sizeLabels = apply_filters( 'image_size_names_choose', array(
|
42 |
+
'thumbnail' => __('Thumbnail'),
|
43 |
+
'medium' => __('Medium'),
|
44 |
+
'large' => __('Large'),
|
45 |
+
'full' => __('Full Size'),
|
46 |
+
) );
|
47 |
+
$sizeLabels = apply_filters( 'image_size_names_choose', array() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
|
49 |
+
foreach ($imageSizes as $s) {
|
50 |
+
if ( ! isset($sizesSettings[$s]) ) {
|
51 |
+
$sizesSettings[$s] = array('label' => '', 'quality' => 80, 'visibility' => 'visible');
|
|
|
52 |
}
|
53 |
+
|
54 |
+
if ( $sizesSettings[$s]['visibility'] == 'hidden') {
|
55 |
+
if ($editedSize == $s) {
|
56 |
+
$editedSize = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
58 |
+
continue;
|
59 |
+
}
|
60 |
|
61 |
+
if (isset($_wp_additional_image_sizes[$s])) {
|
62 |
+
$cropMethod = $_wp_additional_image_sizes[$s]['crop'];
|
63 |
+
} else {
|
64 |
+
$cropMethod = get_option($s.'_crop');
|
65 |
+
}
|
66 |
+
if ($cropMethod == 0) {
|
67 |
+
continue;
|
68 |
+
}
|
69 |
|
70 |
+
if ( is_null($editedSize) ) {
|
71 |
+
$editedSize = $s;
|
72 |
+
}
|
73 |
|
74 |
+
// Get user defined label for the size or just cleanup a bit
|
75 |
+
$label = isset($sizeLabels[$s]) ? $sizeLabels[$s] : ucfirst( str_replace( '-', ' ', $s ) );
|
76 |
+
$label = $sizesSettings[$s]['label'] ? $sizesSettings[$s]['label'] : $label;
|
77 |
+
echo '<a href="' . admin_url( 'admin-ajax.php' ) . '?action=mic_editor_window&size=' . $s . '&postId=' . $_GET['postId'] . '&width=940" class="mic-icon-' . $s . ' rm-crop-size-tab nav-tab ' . ( ($s == $editedSize) ? 'nav-tab-active' : '' ) . '">' . $label . '</a>';
|
78 |
+
}
|
79 |
+
?>
|
80 |
+
</h2>
|
81 |
+
<div class="mic-left-col">
|
82 |
+
<?php
|
83 |
+
//reads the specific registered image size dimension
|
84 |
+
if (isset($_wp_additional_image_sizes[$editedSize])) {
|
85 |
+
$width = intval($_wp_additional_image_sizes[$editedSize]['width']);
|
86 |
+
$height = intval($_wp_additional_image_sizes[$editedSize]['height']);
|
87 |
+
$cropMethod = $_wp_additional_image_sizes[$editedSize]['crop'];
|
88 |
+
} else {
|
89 |
+
$width = get_option($editedSize.'_size_w');
|
90 |
+
$height = get_option($editedSize.'_size_h');
|
91 |
+
$cropMethod = get_option($editedSize.'_crop');
|
92 |
+
}
|
93 |
|
94 |
+
$uploadsDir = wp_upload_dir();
|
95 |
+
|
96 |
+
$metaData = wp_get_attachment_metadata($_GET['postId']);
|
97 |
+
|
98 |
+
$src_file_url = wp_get_attachment_image_src($_GET['postId'], 'full');
|
99 |
+
if (!$src_file_url) {
|
100 |
+
echo json_encode (array('status' => 'error', 'message' => 'wrong attachement' ) );
|
101 |
+
exit;
|
102 |
+
}
|
103 |
+
$src_file = str_replace($uploadsDir['baseurl'], $uploadsDir['basedir'], $src_file_url[0]);
|
104 |
+
$sizes = getimagesize($src_file);
|
105 |
+
|
106 |
+
$original[0] = $sizes[0];
|
107 |
+
$original[1] = $sizes[1];
|
108 |
+
|
109 |
+
if ($width > $sizes[0]) {
|
110 |
+
$sizes[1] = ( $sizes[1] * ($width / $sizes[0]) );
|
111 |
+
$height = ceil($height);
|
112 |
+
$sizes[0] = $width;
|
113 |
+
}
|
114 |
+
|
115 |
+
$previewWidth = min($sizes[0], 500);
|
116 |
+
$previewHeight = min($sizes[1], 350);
|
117 |
+
$previewRatio = 1;
|
118 |
+
|
119 |
+
if ($sizes[1] / 350 < $sizes[0] / 500) {
|
120 |
+
$previewHeight = $sizes[1] * $previewWidth / $sizes[0] ;
|
121 |
+
$previewRatio = $sizes[1] / $previewHeight;
|
122 |
+
}else {
|
123 |
+
$previewWidth = $sizes[0] * $previewHeight / $sizes[1];
|
124 |
+
$previewRatio = $sizes[0] / $previewWidth;
|
125 |
+
}
|
126 |
+
|
127 |
+
$minWidth = min($width / $previewRatio, $previewWidth);
|
128 |
+
$minHeight = min($height / $previewRatio, $previewHeight);
|
129 |
+
|
130 |
+
if ($cropMethod == 1) {
|
131 |
+
$aspectRatio = ($width / $height);
|
132 |
+
// if ($aspectRatio * $minWidth > $sizes[0]) {
|
133 |
+
// die('a');
|
134 |
+
// $aspectRatio = ($previewWidth / $minHeight);
|
135 |
+
// }
|
136 |
+
|
137 |
+
if (1 / $aspectRatio * $minHeight > $sizes[1]) {
|
138 |
+
$aspectRatio = ($minWidth / $previewHeight);
|
139 |
+
}
|
140 |
+
|
141 |
+
if ($minWidth / $aspectRatio > $previewHeight) {
|
142 |
+
$aspectRatio = $minWidth / $previewHeight;
|
143 |
+
}
|
144 |
+
}else {
|
145 |
+
$aspectRatio = $sizes[0] / $sizes[1];
|
146 |
+
}
|
147 |
+
|
148 |
+
|
149 |
+
$smallPreviewWidth = min($width, 180);
|
150 |
+
$smallPreviewHeight = min($height, 180);
|
151 |
+
|
152 |
+
if ($width > $height) {
|
153 |
+
$smallPreviewHeight = $smallPreviewWidth * 1/ $aspectRatio;
|
154 |
+
}else {
|
155 |
+
$smallPreviewWidth = $smallPreviewHeight * $aspectRatio;
|
156 |
+
}
|
157 |
+
|
158 |
+
?>
|
159 |
+
<div style="margin: auto; width: <?php echo $previewWidth; ?>px;">
|
160 |
+
<img style="width: <?php echo $previewWidth; ?>px; height: <?php echo $previewHeight; ?>px;" id="jcrop_target" src="<?php echo wp_get_attachment_url($_GET['postId']); ?>">
|
161 |
+
</div>
|
162 |
+
</div>
|
163 |
+
<div class="mic-right-col">
|
164 |
+
<div>
|
165 |
+
<?php _e('Original picture dimensions:','microp') ?>
|
166 |
+
<strong><?php echo $original[0]; ?> x <?php echo $original[1]; ?> px</strong><br />
|
167 |
+
<?php _e('Target picture dimensions:','microp') ?>
|
168 |
+
<strong> <?php // ($width != $width2 or $height != $height2) echo $width.' x '.$height.' px ('.$width2.' x '.$height2.' px)';
|
169 |
+
//else
|
170 |
+
echo $width.' x '.$height.' px'; ?>
|
171 |
+
</strong> (
|
172 |
+
<?php if ($cropMethod == 0) {
|
173 |
+
_e('Soft proportional crop mode','microp');
|
174 |
+
}else { _e('Hard crop mode','microp');
|
175 |
+
} ?>
|
176 |
+
)
|
177 |
+
</div>
|
178 |
+
|
179 |
+
<div class="mic-52-col">
|
180 |
+
<?php _e('New image:','microp') ?>
|
181 |
+
<br />
|
182 |
+
<div style="width: <?php echo $smallPreviewWidth; ?>px; height: <?php echo $smallPreviewHeight; ?>px; overflow: hidden; margin-left: 5px; float: right;">
|
183 |
+
<img id="preview"
|
184 |
+
src="<?php echo wp_get_attachment_url($_GET['postId']); ?>">
|
185 |
</div>
|
186 |
+
</div>
|
187 |
+
|
188 |
+
<div class="mic-48-col">
|
189 |
+
<?php _e('Previous image:','microp');
|
190 |
+
$editedImage = wp_get_attachment_image_src($_GET['postId'], $editedSize);
|
191 |
+
?>
|
192 |
+
<div style="width: <?php echo $smallPreviewWidth; ?>px; height: <?php echo $smallPreviewHeight; ?>px; overflow: hidden; margin-left: 5px;">
|
193 |
+
<img id="micPreviousImage" style="max-width: <?php echo $smallPreviewWidth; ?>px; max-height: <?php echo $smallPreviewHeight; ?>px;" src="<?php echo $editedImage[0] . '?' . time(); ?>">
|
194 |
+
</div>
|
195 |
+
</div>
|
196 |
+
|
197 |
+
<input id="micCropImage" class="button-primary button-large"
|
198 |
+
type="button" value="<?php _e('Crop it!','microp') ?>" /> <img
|
199 |
+
src="<?php echo includes_url(); ?>js/thickbox/loadingAnimation.gif"
|
200 |
+
id="micLoading" />
|
201 |
+
|
202 |
+
|
203 |
+
<?php
|
204 |
+
$ext = strtolower( pathinfo($src_file, PATHINFO_EXTENSION) );
|
205 |
+
if ($ext == 'jpg' || $ext == 'jpeg') {
|
206 |
+
echo '<div class="mic-option"><label for="micQuality">' . __('Target JPEG Quality', 'microp') . '</label> <select id="micQuality" name="mic_quality">
|
207 |
+
<option value="100">' . __('100 (best quality, biggest file)', 'microp') . '</option>
|
208 |
+
<option value="80" ' . ( $sizesSettings[$editedSize]['quality'] == '80' ? 'selected' : '' ) . '>' . __('80 (very high quality)', 'microp') . '</option>
|
209 |
+
<option value="70" ' . ( $sizesSettings[$editedSize]['quality'] == '70' ? 'selected' : '' ) . '>' . __('70 (high quality)', 'microp') . '</option>
|
210 |
+
<option value="60" ' . ( $sizesSettings[$editedSize]['quality'] == '60' ? 'selected' : '' ) . '>' . __('60 (good)', 'microp') . '</option>
|
211 |
+
<option value="50" ' . ( $sizesSettings[$editedSize]['quality'] == '50' ? 'selected' : '' ) . '>' . __('50 (average)', 'microp') . '</option>
|
212 |
+
<option value="30" ' . ( $sizesSettings[$editedSize]['quality'] == '30' ? 'selected' : '' ) . '>' . __('30 (low)', 'microp') . '</option>
|
213 |
+
<option value="10" ' . ( $sizesSettings[$editedSize]['quality'] == '10' ? 'selected' : '' ) . '>' . __('10 (very low, smallest file)', 'microp') . '</option>
|
214 |
+
</select></div>';
|
215 |
+
}
|
216 |
+
?>
|
217 |
+
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
if ( is_plugin_active('wp-retina-2x/wp-retina-2x.php') ) { ?>
|
219 |
+
<div class="mic-option">
|
220 |
+
<input type="checkbox" id="mic-make-2x"
|
221 |
+
<?php if(get_option('mic_make2x') === 'true' ) echo 'checked="checked"' ?> />
|
222 |
+
<label for="mic-make-2x"><?php _e('Generate Retina/HiDPI (@2x):', 'microp') ?>
|
223 |
+
<span id="mic-2x-status"></span> </label>
|
224 |
+
</div>
|
225 |
+
<?php
|
226 |
} ?>
|
227 |
+
|
228 |
+
<div id="micSuccessMessage" class="updated below-h2">
|
229 |
+
<?php _e('The image has been cropped successfully','microp') ?>
|
|
|
|
|
230 |
</div>
|
231 |
+
<div id="micFailureMessage" class="error below-h2">
|
232 |
+
<span class="error-message"></span><br />
|
233 |
+
<?php _e('An Error has occured. Please try again or contact plugin\'s author.','microp') ?>
|
234 |
+
</div>
|
235 |
+
|
236 |
+
</div>
|
237 |
+
</div>
|
238 |
+
<script>
|
239 |
jQuery(document).ready(function($) {
|
240 |
mic_attachment_id = <?php echo $_GET['postId']; ?>;
|
241 |
mic_edited_size = '<?php echo $editedSize; ?>';
|
282 |
}
|
283 |
});
|
284 |
</script>
|
285 |
+
<?php
|
286 |
+
die;
|
287 |
}
|
288 |
}
|
lib/ManualImageCropSettingsPage.php
CHANGED
@@ -42,8 +42,8 @@ class MicSettingsPage
|
|
42 |
{
|
43 |
// This page will be under "Settings"
|
44 |
add_options_page(
|
45 |
-
'Settings
|
46 |
-
'Manual Image Crop',
|
47 |
'manage_options',
|
48 |
'Mic-setting-admin',
|
49 |
array( $this, 'create_admin_page' )
|
@@ -58,7 +58,7 @@ class MicSettingsPage
|
|
58 |
?>
|
59 |
<div class="wrap">
|
60 |
<?php screen_icon(); ?>
|
61 |
-
<h2
|
62 |
<form method="post" action="options.php" class="mic-settings-page">
|
63 |
<?php
|
64 |
// This prints out all hidden setting fields
|
@@ -84,14 +84,14 @@ class MicSettingsPage
|
|
84 |
|
85 |
add_settings_section(
|
86 |
'setting_section_id', // ID
|
87 |
-
'Mic Custom Settings', // Title
|
88 |
array( $this, 'print_section_info' ), // Callback
|
89 |
'Mic-setting-admin' // Page
|
90 |
);
|
91 |
|
92 |
add_settings_field(
|
93 |
'sizes_settings', // ID
|
94 |
-
'Crop sizes settings', // Title
|
95 |
array( $this, 'sizes_settings_callback' ), // Callback
|
96 |
'Mic-setting-admin', // Page
|
97 |
'setting_section_id' // Section
|
@@ -117,7 +117,7 @@ class MicSettingsPage
|
|
117 |
*/
|
118 |
public function print_section_info()
|
119 |
{
|
120 |
-
print 'Enter your settings below:';
|
121 |
}
|
122 |
|
123 |
/**
|
@@ -148,7 +148,7 @@ class MicSettingsPage
|
|
148 |
</thead>
|
149 |
<tbody>';
|
150 |
|
151 |
-
$sizesSettings = self::getSettings();
|
152 |
|
153 |
foreach ($imageSizes as $s) {
|
154 |
$label = isset($sizeLabels[$s]) ? $sizeLabels[$s] : ucfirst( str_replace( '-', ' ', $s ) );
|
42 |
{
|
43 |
// This page will be under "Settings"
|
44 |
add_options_page(
|
45 |
+
__('Manual Image Crop Settings', 'microp'),
|
46 |
+
__('Manual Image Crop', 'microp'),
|
47 |
'manage_options',
|
48 |
'Mic-setting-admin',
|
49 |
array( $this, 'create_admin_page' )
|
58 |
?>
|
59 |
<div class="wrap">
|
60 |
<?php screen_icon(); ?>
|
61 |
+
<h2><?php _e('Manual Image Crop Settings', 'microp'); ?></h2>
|
62 |
<form method="post" action="options.php" class="mic-settings-page">
|
63 |
<?php
|
64 |
// This prints out all hidden setting fields
|
84 |
|
85 |
add_settings_section(
|
86 |
'setting_section_id', // ID
|
87 |
+
__('Mic Custom Settings', 'microp'), // Title
|
88 |
array( $this, 'print_section_info' ), // Callback
|
89 |
'Mic-setting-admin' // Page
|
90 |
);
|
91 |
|
92 |
add_settings_field(
|
93 |
'sizes_settings', // ID
|
94 |
+
__('Crop sizes settings', 'microp'), // Title
|
95 |
array( $this, 'sizes_settings_callback' ), // Callback
|
96 |
'Mic-setting-admin', // Page
|
97 |
'setting_section_id' // Section
|
117 |
*/
|
118 |
public function print_section_info()
|
119 |
{
|
120 |
+
print __('Enter your settings below:', 'microp');
|
121 |
}
|
122 |
|
123 |
/**
|
148 |
</thead>
|
149 |
<tbody>';
|
150 |
|
151 |
+
$sizesSettings = self::getSettings() || array();
|
152 |
|
153 |
foreach ($imageSizes as $s) {
|
154 |
$label = isset($sizeLabels[$s]) ? $sizeLabels[$s] : ucfirst( str_replace( '-', ' ', $s ) );
|
manual-image-crop.php
CHANGED
@@ -3,17 +3,16 @@
|
|
3 |
Plugin Name: Manual Image Crop
|
4 |
Plugin URI: http://www.rocketmill.co.uk/wordpress-plugin-manual-image-crop
|
5 |
Description: Plugin allows you to manually crop all the image sizes registered in your WordPress theme (in particular featured image). Simply click on the "Crop" link next to any image in your media library and select the area of the image you want to crop.
|
6 |
-
Version: 1.
|
7 |
Author: Tomasz Sita
|
8 |
-
Author URI:
|
9 |
License: GPL2
|
|
|
|
|
10 |
*/
|
11 |
|
12 |
-
define('mic_VERSION', '1.
|
13 |
|
14 |
-
|
15 |
-
include_once(dirname(__FILE__) . '/lib/ManualImageCrop.php');
|
16 |
-
include_once(dirname(__FILE__) . '/lib/ManualImageCropEditorWindow.php');
|
17 |
include_once(dirname(__FILE__) . '/lib/ManualImageCropSettingsPage.php');
|
18 |
|
19 |
//mic - stands for Manual Image Crop
|
@@ -26,12 +25,12 @@ add_option('mic_make2x', 'true'); //Add option so we can persist make2x choice a
|
|
26 |
* inits the plugin
|
27 |
*/
|
28 |
function mic_init_plugin() {
|
29 |
-
if
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
|
34 |
-
|
35 |
|
36 |
$ManualImageCrop = ManualImageCrop::getInstance();
|
37 |
add_action( 'admin_enqueue_scripts', array($ManualImageCrop, 'enqueueAssets') );
|
@@ -46,6 +45,7 @@ function mic_init_plugin() {
|
|
46 |
* ajax call rendering the image cropping area
|
47 |
*/
|
48 |
function mic_ajax_editor_window() {
|
|
|
49 |
$ManualImageCropEditorWindow = ManualImageCropEditorWindow::getInstance();
|
50 |
$ManualImageCropEditorWindow->renderWindow();
|
51 |
exit;
|
@@ -59,4 +59,16 @@ function mic_ajax_crop_image() {
|
|
59 |
$ManualImageCrop->cropImage();
|
60 |
exit;
|
61 |
}
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Plugin Name: Manual Image Crop
|
4 |
Plugin URI: http://www.rocketmill.co.uk/wordpress-plugin-manual-image-crop
|
5 |
Description: Plugin allows you to manually crop all the image sizes registered in your WordPress theme (in particular featured image). Simply click on the "Crop" link next to any image in your media library and select the area of the image you want to crop.
|
6 |
+
Version: 1.09
|
7 |
Author: Tomasz Sita
|
8 |
+
Author URI: https://github.com/tomaszsita
|
9 |
License: GPL2
|
10 |
+
Text Domain: microp
|
11 |
+
Domain Path: /languages/
|
12 |
*/
|
13 |
|
14 |
+
define('mic_VERSION', '1.09');
|
15 |
|
|
|
|
|
|
|
16 |
include_once(dirname(__FILE__) . '/lib/ManualImageCropSettingsPage.php');
|
17 |
|
18 |
//mic - stands for Manual Image Crop
|
25 |
* inits the plugin
|
26 |
*/
|
27 |
function mic_init_plugin() {
|
28 |
+
// we are gonna use our plugin in the admin area only, so ends here if it's a frontend
|
29 |
+
if (!is_admin()) return;
|
30 |
+
|
31 |
+
include_once(dirname(__FILE__) . '/lib/ManualImageCrop.php');
|
32 |
|
33 |
+
load_plugin_textdomain('microp', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
|
34 |
|
35 |
$ManualImageCrop = ManualImageCrop::getInstance();
|
36 |
add_action( 'admin_enqueue_scripts', array($ManualImageCrop, 'enqueueAssets') );
|
45 |
* ajax call rendering the image cropping area
|
46 |
*/
|
47 |
function mic_ajax_editor_window() {
|
48 |
+
include_once(dirname(__FILE__) . '/lib/ManualImageCropEditorWindow.php');
|
49 |
$ManualImageCropEditorWindow = ManualImageCropEditorWindow::getInstance();
|
50 |
$ManualImageCropEditorWindow->renderWindow();
|
51 |
exit;
|
59 |
$ManualImageCrop->cropImage();
|
60 |
exit;
|
61 |
}
|
62 |
+
|
63 |
+
|
64 |
+
/**
|
65 |
+
* add settings link on plugin page
|
66 |
+
*/
|
67 |
+
function mic_settings_link($links) {
|
68 |
+
$settings_link = '<a href="options-general.php?page=Mic-setting-admin">' . __('Settings') . '</a>';
|
69 |
+
array_unshift($links, $settings_link);
|
70 |
+
return $links;
|
71 |
+
}
|
72 |
+
|
73 |
+
$plugin = plugin_basename(__FILE__);
|
74 |
+
add_filter("plugin_action_links_$plugin", 'mic_settings_link' );
|
readme.txt
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
=== Manual Image Crop ===
|
2 |
Contributors: tomasz.sita
|
3 |
Tags: crop, cropping, thumbnail, featured image, gallery, images, picture, image, image area
|
4 |
-
Tested up to: 4.
|
5 |
-
Requires at least: 3.
|
6 |
License: GPLv2 or later
|
7 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
8 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WB5ZQWGUM7T96
|
9 |
-
Stable tag: 1.
|
10 |
|
11 |
Plugin allows you to manually crop all the image sizes registered in your WordPress theme (in particular featured image).
|
12 |
|
@@ -25,6 +25,7 @@ GitHub Repository:
|
|
25 |
https://github.com/tomaszsita/wp-manual-image-crop
|
26 |
|
27 |
Translations:
|
|
|
28 |
* French (Gabriel Féron)
|
29 |
* German (Bertram Greenhough)
|
30 |
* Italian (Alessandro Curci)
|
@@ -46,6 +47,12 @@ Automatically:
|
|
46 |
* When the plugin has been installed, Click 'Activate'
|
47 |
|
48 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
= 1.08 =
|
50 |
* More descriptive error messages
|
51 |
* Russian translation added
|
1 |
=== Manual Image Crop ===
|
2 |
Contributors: tomasz.sita
|
3 |
Tags: crop, cropping, thumbnail, featured image, gallery, images, picture, image, image area
|
4 |
+
Tested up to: 4.2.1
|
5 |
+
Requires at least: 3.5
|
6 |
License: GPLv2 or later
|
7 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
8 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WB5ZQWGUM7T96
|
9 |
+
Stable tag: 1.09
|
10 |
|
11 |
Plugin allows you to manually crop all the image sizes registered in your WordPress theme (in particular featured image).
|
12 |
|
25 |
https://github.com/tomaszsita/wp-manual-image-crop
|
26 |
|
27 |
Translations:
|
28 |
+
* Dutch (Bernardo Hulsman)
|
29 |
* French (Gabriel Féron)
|
30 |
* German (Bertram Greenhough)
|
31 |
* Italian (Alessandro Curci)
|
47 |
* When the plugin has been installed, Click 'Activate'
|
48 |
|
49 |
== Changelog ==
|
50 |
+
= 1.09 =
|
51 |
+
* Dutch translation added
|
52 |
+
* Better error handling
|
53 |
+
* Fixed overwriting of previously saved crops
|
54 |
+
* Minor tweaks all around
|
55 |
+
|
56 |
= 1.08 =
|
57 |
* More descriptive error messages
|
58 |
* Russian translation added
|