Version Description
- Add printfriendly post_class.
- Add printfriendly button display settings per individual category.
- Fixed minor JS bug.
- Added redundancy to uninstall script.
Download this release
Release Info
Developer | printfriendly |
Plugin | Print, PDF, Email by PrintFriendly |
Version | 3.2.2 |
Comparing to | |
See all releases |
Code changes from version 3.2.0 to 3.2.2
- admin.css +339 -312
- admin.js +93 -0
- pf.php +203 -56
- readme.txt +13 -3
- screenshot-2.png +0 -0
- uninstall.php +17 -2
admin.css
CHANGED
@@ -1,319 +1,346 @@
|
|
1 |
-
label{
|
2 |
-
display: block;
|
3 |
-
margin: 1.5em 0;
|
4 |
-
}
|
5 |
-
|
6 |
-
h3{
|
7 |
-
margin: 3em 0 2em;
|
8 |
-
border-bottom: 1px solid #ccc;
|
9 |
-
padding-bottom:.75em;
|
10 |
-
clear: both;
|
11 |
-
}
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
#custom-txt div#
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
margin-
|
25 |
-
}
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
}
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
-
|
72 |
-
-
|
73 |
-
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
margin:
|
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 |
width: 36px;
|
133 |
height: 36px;
|
134 |
-
background: url(images/select2.png);
|
135 |
-
display: inline-block;
|
136 |
-
cursor: pointer;
|
137 |
-
}
|
138 |
-
|
139 |
-
#colorSelector div {
|
140 |
position: absolute;
|
141 |
top: 4px;
|
142 |
left: 4px;
|
143 |
width: 28px;
|
144 |
height: 28px;
|
145 |
-
background: url(images/select2.png) center;
|
146 |
-
}
|
147 |
-
|
148 |
-
.colorpicker {
|
149 |
-
width: 356px;
|
150 |
-
height: 176px;
|
151 |
-
overflow: hidden;
|
152 |
-
position: absolute;
|
153 |
-
background: url(images/custom_background.png);
|
154 |
-
font-family: Arial, Helvetica, sans-serif;
|
155 |
-
display: none;
|
156 |
-
}
|
157 |
-
|
158 |
-
.colorpicker_color {
|
159 |
-
width: 150px;
|
160 |
-
height: 150px;
|
161 |
-
left: 14px;
|
162 |
-
top: 13px;
|
163 |
-
position: absolute;
|
164 |
-
background: #f00;
|
165 |
-
overflow: hidden;
|
166 |
-
cursor: crosshair;
|
167 |
-
}
|
168 |
-
|
169 |
-
.colorpicker_color div {
|
170 |
-
position: absolute;
|
171 |
-
top: 0;
|
172 |
-
left: 0;
|
173 |
-
width: 150px;
|
174 |
-
height: 150px;
|
175 |
-
background: url(images/colorpicker_overlay.png);
|
176 |
-
}
|
177 |
-
|
178 |
-
.colorpicker_color div div {
|
179 |
-
position: absolute;
|
180 |
-
top: 0;
|
181 |
-
left: 0;
|
182 |
-
width: 11px;
|
183 |
-
height: 11px;
|
184 |
-
overflow: hidden;
|
185 |
-
background: url(images/colorpicker_select.gif);
|
186 |
-
margin: -5px 0 0 -5px;
|
187 |
-
}
|
188 |
-
|
189 |
-
.colorpicker_hue {
|
190 |
-
position: absolute;
|
191 |
-
top: 13px;
|
192 |
-
left: 171px;
|
193 |
-
width: 35px;
|
194 |
-
height: 150px;
|
195 |
-
cursor: n-resize;
|
196 |
-
}
|
197 |
-
|
198 |
-
.colorpicker_hue div {
|
199 |
-
position: absolute;
|
200 |
-
width: 35px;
|
201 |
-
height: 9px;
|
202 |
-
overflow: hidden;
|
203 |
-
background: url(images/custom_indic.gif) left top;
|
204 |
-
margin: -4px 0 0 0;
|
205 |
-
left: 0px;
|
206 |
-
}
|
207 |
-
|
208 |
-
.colorpicker_new_color {
|
209 |
-
position: absolute;
|
210 |
-
width: 60px;
|
211 |
-
height: 30px;
|
212 |
-
left: 213px;
|
213 |
-
top: 13px;
|
214 |
-
background: #f00;
|
215 |
-
}
|
216 |
-
|
217 |
-
.colorpicker_current_color {
|
218 |
-
position: absolute;
|
219 |
-
width: 60px;
|
220 |
-
height: 30px;
|
221 |
-
left: 283px;
|
222 |
-
top: 13px;
|
223 |
-
background: #f00;
|
224 |
-
}
|
225 |
-
|
226 |
-
.colorpicker input {
|
227 |
-
background-color: transparent;
|
228 |
-
border: 1px solid transparent !important;
|
229 |
-
position: absolute;
|
230 |
-
font-size: 10px;
|
231 |
-
font-family: Arial, Helvetica, sans-serif;
|
232 |
-
color: #778398;
|
233 |
-
top: 4px;
|
234 |
-
right: 11px;
|
235 |
-
text-align: right;
|
236 |
-
margin: 0;
|
237 |
-
padding: 0 !important;
|
238 |
-
height: 11px;
|
239 |
-
line-height: 11px;
|
240 |
-
outline: none;
|
241 |
-
}
|
242 |
-
|
243 |
-
.colorpicker_hex {
|
244 |
-
position: absolute;
|
245 |
-
width: 72px;
|
246 |
-
height: 22px;
|
247 |
-
background: url(images/custom_hex.png) top;
|
248 |
-
left: 212px;
|
249 |
-
top: 142px;
|
250 |
-
}
|
251 |
-
|
252 |
-
.colorpicker_hex input {
|
253 |
-
right: 6px;
|
254 |
-
}
|
255 |
-
|
256 |
-
.colorpicker_field {
|
257 |
-
height: 22px;
|
258 |
-
width: 62px;
|
259 |
-
background-position: top;
|
260 |
-
position: absolute;
|
261 |
-
}
|
262 |
-
|
263 |
-
.colorpicker_field span {
|
264 |
-
position: absolute;
|
265 |
-
width: 12px;
|
266 |
-
height: 22px;
|
267 |
-
overflow: hidden;
|
268 |
-
top: 0;
|
269 |
-
right: 0;
|
270 |
-
cursor: n-resize;
|
271 |
-
}
|
272 |
-
|
273 |
-
.colorpicker_rgb_r {
|
274 |
-
background-image: url(images/custom_rgb_r.png);
|
275 |
-
top: 52px;
|
276 |
-
left: 212px;
|
277 |
-
}
|
278 |
-
|
279 |
-
.colorpicker_rgb_g {
|
280 |
-
background-image: url(images/custom_rgb_g.png);
|
281 |
-
top: 82px;
|
282 |
-
left: 212px;
|
283 |
-
}
|
284 |
-
|
285 |
-
.colorpicker_rgb_b {
|
286 |
-
background-image: url(images/custom_rgb_b.png);
|
287 |
-
top: 112px;
|
288 |
-
left: 212px;
|
289 |
-
}
|
290 |
-
|
291 |
-
.colorpicker_hsb_h, .colorpicker_hsb_s, .colorpicker_hsb_b {
|
292 |
-
display: none;
|
293 |
-
}
|
294 |
-
|
295 |
-
.colorpicker_submit {
|
296 |
-
position: absolute;
|
297 |
-
width: 22px;
|
298 |
-
height: 22px;
|
299 |
-
background: url(images/custom_submit.png) top;
|
300 |
-
left: 322px;
|
301 |
-
top: 142px;
|
302 |
-
overflow: hidden;
|
303 |
-
}
|
304 |
-
|
305 |
-
.colorpicker_focus {
|
306 |
-
background-position: center;
|
307 |
-
}
|
308 |
-
|
309 |
-
.colorpicker_hex.colorpicker_focus {
|
310 |
-
background-position: bottom;
|
311 |
-
}
|
312 |
-
|
313 |
-
.colorpicker_submit.colorpicker_focus {
|
314 |
-
background-position: bottom;
|
315 |
-
}
|
316 |
-
|
317 |
-
.colorpicker_slider {
|
318 |
-
background-position: bottom;
|
319 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
label {
|
2 |
+
display: block;
|
3 |
+
margin: 1.5em 0;
|
4 |
+
}
|
5 |
+
|
6 |
+
h3 {
|
7 |
+
margin: 3em 0 2em;
|
8 |
+
border-bottom: 1px solid #ccc;
|
9 |
+
padding-bottom:.75em;
|
10 |
+
clear: both;
|
11 |
+
}
|
12 |
+
|
13 |
+
h3.hndle {
|
14 |
+
clear:none;
|
15 |
+
padding: 7px 5px;
|
16 |
+
}
|
17 |
+
|
18 |
+
#buttongroup1, #buttongroup2, #buttongroup3, #custom-txt div, #button-positioning div, #button-placement div {
|
19 |
+
display: block;
|
20 |
+
margin-right: 3em;
|
21 |
+
float: left;
|
22 |
+
}
|
23 |
+
#custom-txt div#txt-size, div#button-positioning-options {
|
24 |
+
margin-right: 0;
|
25 |
+
}
|
26 |
+
|
27 |
+
#custom-button-preview {
|
28 |
+
clear:both;
|
29 |
+
padding-top: 20px;
|
30 |
+
margin-left: 2em;
|
31 |
+
}
|
32 |
+
#custom-button-preview img {
|
33 |
+
margin-right: 6px;
|
34 |
+
}
|
35 |
+
#custom, #placement-adv-options {
|
36 |
+
float: left;
|
37 |
+
}
|
38 |
+
|
39 |
+
#custom-txt, #custom-img {
|
40 |
+
margin: 2em 0 2em 2em;
|
41 |
+
clear: both;
|
42 |
+
}
|
43 |
+
|
44 |
+
.description {
|
45 |
+
color: #cacaca;
|
46 |
+
}
|
47 |
+
.printfriendly-text2 {
|
48 |
+
font-family: verdana;
|
49 |
+
font-size: 14px;
|
50 |
+
color: #6D9F00;
|
51 |
+
}
|
52 |
+
select{
|
53 |
+
display: block;
|
54 |
+
margin: .5em .5em 2em 0;
|
55 |
+
}
|
56 |
+
select#javascript, select#website_protocol {
|
57 |
+
display: inline-block;
|
58 |
+
margin-bottom: 0;
|
59 |
+
}
|
60 |
+
input[type="radio"], input[type="checkbox"] {
|
61 |
+
cursor: pointer;
|
62 |
+
margin-right: 10px;
|
63 |
+
vertical-align: middle;
|
64 |
+
}
|
65 |
+
|
66 |
+
|
67 |
+
/* WP lacks styling for type="number", so in here for now */
|
68 |
+
input[type="number"] {
|
69 |
+
border-color: #DFDFDF;
|
70 |
+
background-color: white;
|
71 |
+
border-width: 1px;
|
72 |
+
border-style: solid;
|
73 |
+
-moz-border-radius: 3px;
|
74 |
+
-khtml-border-radius: 3px;
|
75 |
+
-webkit-border-radius: 3px;
|
76 |
+
border-radius: 3px;
|
77 |
+
-moz-box-sizing: border-box;
|
78 |
+
-webkit-box-sizing: border-box;
|
79 |
+
-ms-box-sizing: border-box;
|
80 |
+
box-sizing: border-box;
|
81 |
+
width: 36px;
|
82 |
+
margin-right: .5em;
|
83 |
+
}
|
84 |
+
#css {
|
85 |
+
font-size: 11px;
|
86 |
+
color:#bbb;
|
87 |
+
}
|
88 |
+
#css input {
|
89 |
+
margin: 0 6px 0 12px;
|
90 |
+
vertical-align: baseline;
|
91 |
+
}
|
92 |
+
#pf-shortcode {
|
93 |
+
|
94 |
+
margin-left: 2em;
|
95 |
+
}
|
96 |
+
.custom-logo label, .custom-logo input, #pf-favicon {
|
97 |
+
display: inline-block;
|
98 |
+
}
|
99 |
+
|
100 |
+
.custom-logo input {
|
101 |
+
width: 20em;
|
102 |
+
}
|
103 |
+
|
104 |
+
.custom-logo label {
|
105 |
+
margin-left: 5px;
|
106 |
+
margin-right: 2px;
|
107 |
+
}
|
108 |
+
|
109 |
+
label#pf-favicon {
|
110 |
+
vertical-align: baseline;
|
111 |
+
margin: 0;
|
112 |
+
}
|
113 |
+
|
114 |
+
.printfriendly-details input {
|
115 |
+
width: 20em;
|
116 |
+
}
|
117 |
+
|
118 |
+
.printfriendly-details label {
|
119 |
+
margin-left: 5px;
|
120 |
+
margin-right: 2px;
|
121 |
+
}
|
122 |
+
|
123 |
+
.icon32 {
|
124 |
+
background: url(images/pf-icon.png) center center no-repeat;
|
125 |
+
}
|
126 |
+
|
127 |
+
#after-submit {
|
128 |
+
border-top: 2px dashed #dfdfdf;
|
129 |
+
margin:4em 0;
|
130 |
+
padding-top:1em;
|
131 |
+
}
|
132 |
+
#addmanual-help {
|
133 |
+
display: none;
|
134 |
+
}
|
135 |
+
|
136 |
+
#colorSelector {
|
137 |
+
position: relative;
|
138 |
width: 36px;
|
139 |
height: 36px;
|
140 |
+
background: url(images/select2.png);
|
141 |
+
display: inline-block;
|
142 |
+
cursor: pointer;
|
143 |
+
}
|
144 |
+
|
145 |
+
#colorSelector div {
|
146 |
position: absolute;
|
147 |
top: 4px;
|
148 |
left: 4px;
|
149 |
width: 28px;
|
150 |
height: 28px;
|
151 |
+
background: url(images/select2.png) center;
|
152 |
+
}
|
153 |
+
|
154 |
+
.colorpicker {
|
155 |
+
width: 356px;
|
156 |
+
height: 176px;
|
157 |
+
overflow: hidden;
|
158 |
+
position: absolute;
|
159 |
+
background: url(images/custom_background.png);
|
160 |
+
font-family: Arial, Helvetica, sans-serif;
|
161 |
+
display: none;
|
162 |
+
}
|
163 |
+
|
164 |
+
.colorpicker_color {
|
165 |
+
width: 150px;
|
166 |
+
height: 150px;
|
167 |
+
left: 14px;
|
168 |
+
top: 13px;
|
169 |
+
position: absolute;
|
170 |
+
background: #f00;
|
171 |
+
overflow: hidden;
|
172 |
+
cursor: crosshair;
|
173 |
+
}
|
174 |
+
|
175 |
+
.colorpicker_color div {
|
176 |
+
position: absolute;
|
177 |
+
top: 0;
|
178 |
+
left: 0;
|
179 |
+
width: 150px;
|
180 |
+
height: 150px;
|
181 |
+
background: url(images/colorpicker_overlay.png);
|
182 |
+
}
|
183 |
+
|
184 |
+
.colorpicker_color div div {
|
185 |
+
position: absolute;
|
186 |
+
top: 0;
|
187 |
+
left: 0;
|
188 |
+
width: 11px;
|
189 |
+
height: 11px;
|
190 |
+
overflow: hidden;
|
191 |
+
background: url(images/colorpicker_select.gif);
|
192 |
+
margin: -5px 0 0 -5px;
|
193 |
+
}
|
194 |
+
|
195 |
+
.colorpicker_hue {
|
196 |
+
position: absolute;
|
197 |
+
top: 13px;
|
198 |
+
left: 171px;
|
199 |
+
width: 35px;
|
200 |
+
height: 150px;
|
201 |
+
cursor: n-resize;
|
202 |
+
}
|
203 |
+
|
204 |
+
.colorpicker_hue div {
|
205 |
+
position: absolute;
|
206 |
+
width: 35px;
|
207 |
+
height: 9px;
|
208 |
+
overflow: hidden;
|
209 |
+
background: url(images/custom_indic.gif) left top;
|
210 |
+
margin: -4px 0 0 0;
|
211 |
+
left: 0px;
|
212 |
+
}
|
213 |
+
|
214 |
+
.colorpicker_new_color {
|
215 |
+
position: absolute;
|
216 |
+
width: 60px;
|
217 |
+
height: 30px;
|
218 |
+
left: 213px;
|
219 |
+
top: 13px;
|
220 |
+
background: #f00;
|
221 |
+
}
|
222 |
+
|
223 |
+
.colorpicker_current_color {
|
224 |
+
position: absolute;
|
225 |
+
width: 60px;
|
226 |
+
height: 30px;
|
227 |
+
left: 283px;
|
228 |
+
top: 13px;
|
229 |
+
background: #f00;
|
230 |
+
}
|
231 |
+
|
232 |
+
.colorpicker input {
|
233 |
+
background-color: transparent;
|
234 |
+
border: 1px solid transparent !important;
|
235 |
+
position: absolute;
|
236 |
+
font-size: 10px;
|
237 |
+
font-family: Arial, Helvetica, sans-serif;
|
238 |
+
color: #778398;
|
239 |
+
top: 4px;
|
240 |
+
right: 11px;
|
241 |
+
text-align: right;
|
242 |
+
margin: 0;
|
243 |
+
padding: 0 !important;
|
244 |
+
height: 11px;
|
245 |
+
line-height: 11px;
|
246 |
+
outline: none;
|
247 |
+
}
|
248 |
+
|
249 |
+
.colorpicker_hex {
|
250 |
+
position: absolute;
|
251 |
+
width: 72px;
|
252 |
+
height: 22px;
|
253 |
+
background: url(images/custom_hex.png) top;
|
254 |
+
left: 212px;
|
255 |
+
top: 142px;
|
256 |
+
}
|
257 |
+
|
258 |
+
.colorpicker_hex input {
|
259 |
+
right: 6px;
|
260 |
+
}
|
261 |
+
|
262 |
+
.colorpicker_field {
|
263 |
+
height: 22px;
|
264 |
+
width: 62px;
|
265 |
+
background-position: top;
|
266 |
+
position: absolute;
|
267 |
+
}
|
268 |
+
|
269 |
+
.colorpicker_field span {
|
270 |
+
position: absolute;
|
271 |
+
width: 12px;
|
272 |
+
height: 22px;
|
273 |
+
overflow: hidden;
|
274 |
+
top: 0;
|
275 |
+
right: 0;
|
276 |
+
cursor: n-resize;
|
277 |
+
}
|
278 |
+
|
279 |
+
.colorpicker_rgb_r {
|
280 |
+
background-image: url(images/custom_rgb_r.png);
|
281 |
+
top: 52px;
|
282 |
+
left: 212px;
|
283 |
+
}
|
284 |
+
|
285 |
+
.colorpicker_rgb_g {
|
286 |
+
background-image: url(images/custom_rgb_g.png);
|
287 |
+
top: 82px;
|
288 |
+
left: 212px;
|
289 |
+
}
|
290 |
+
|
291 |
+
.colorpicker_rgb_b {
|
292 |
+
background-image: url(images/custom_rgb_b.png);
|
293 |
+
top: 112px;
|
294 |
+
left: 212px;
|
295 |
+
}
|
296 |
+
|
297 |
+
.colorpicker_hsb_h, .colorpicker_hsb_s, .colorpicker_hsb_b {
|
298 |
+
display: none;
|
299 |
+
}
|
300 |
+
|
301 |
+
.colorpicker_submit {
|
302 |
+
position: absolute;
|
303 |
+
width: 22px;
|
304 |
+
height: 22px;
|
305 |
+
background: url(images/custom_submit.png) top;
|
306 |
+
left: 322px;
|
307 |
+
top: 142px;
|
308 |
+
overflow: hidden;
|
309 |
+
}
|
310 |
+
|
311 |
+
.colorpicker_focus {
|
312 |
+
background-position: center;
|
313 |
+
}
|
314 |
+
|
315 |
+
.colorpicker_hex.colorpicker_focus {
|
316 |
+
background-position: bottom;
|
317 |
+
}
|
318 |
+
|
319 |
+
.colorpicker_submit.colorpicker_focus {
|
320 |
+
background-position: bottom;
|
321 |
+
}
|
322 |
+
|
323 |
+
.colorpicker_slider {
|
324 |
+
background-position: bottom;
|
325 |
+
}
|
326 |
+
|
327 |
+
#button-placement div#pages label {
|
328 |
+
clear: left;
|
329 |
+
}
|
330 |
+
|
331 |
+
div#category-adder {
|
332 |
+
float: none;
|
333 |
+
}
|
334 |
+
|
335 |
+
#pf-categories {
|
336 |
+
display: none;
|
337 |
+
float: left;
|
338 |
+
position: relative;
|
339 |
+
top: 1.5em;
|
340 |
+
left: -50px;
|
341 |
+
width: 270px;
|
342 |
+
}
|
343 |
+
|
344 |
+
#pf-categories-metabox, #category-adder {
|
345 |
+
display: none;
|
346 |
+
}
|
admin.js
CHANGED
@@ -4,12 +4,57 @@ jQuery(document).ready(function() {
|
|
4 |
if (jQuery('.show_list:checked').length == 0) {
|
5 |
jQuery('.content_placement').hide('slow');
|
6 |
jQuery('.content_placement input').attr('disabled','disabled');
|
|
|
7 |
} else {
|
|
|
8 |
jQuery('.content_placement').show('slow');
|
9 |
jQuery('.content_placement input').removeAttr('disabled');
|
10 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
}).change();
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
jQuery('#colorSelector').ColorPicker({
|
14 |
color: jQuery('#text_color').val(),
|
15 |
onShow: function (colpkr) {
|
@@ -158,4 +203,52 @@ jQuery(document).ready(function() {
|
|
158 |
jQuery('.printfriendly-text2').css('font-size',parseInt(size));
|
159 |
}
|
160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
});
|
4 |
if (jQuery('.show_list:checked').length == 0) {
|
5 |
jQuery('.content_placement').hide('slow');
|
6 |
jQuery('.content_placement input').attr('disabled','disabled');
|
7 |
+
jQuery('.show_template').attr('checked', 'checked');
|
8 |
} else {
|
9 |
+
jQuery('.show_template').attr('checked', false);
|
10 |
jQuery('.content_placement').show('slow');
|
11 |
jQuery('.content_placement input').removeAttr('disabled');
|
12 |
}
|
13 |
+
|
14 |
+
var postName = 'printfriendly_option[show_on_posts]';
|
15 |
+
var homeName = 'printfriendly_option[show_on_homepage]';
|
16 |
+
|
17 |
+
var optionName = jQuery(this).attr('name');
|
18 |
+
if (optionName == homeName || optionName == postName){
|
19 |
+
if(jQuery(this).is(':checked')) {
|
20 |
+
jQuery('#pf-categories').show('slow');
|
21 |
+
} else if(!jQuery('input[name="' + homeName + '"]').is(':checked')
|
22 |
+
&& !jQuery('input[name="' + postName + '"]').is(':checked')) {
|
23 |
+
jQuery('#pf-categories').hide('slow');
|
24 |
+
}
|
25 |
+
}
|
26 |
}).change();
|
27 |
|
28 |
+
jQuery('.show_template').change(function() {
|
29 |
+
if(jQuery(this).is(':checked')) {
|
30 |
+
jQuery('.show_list').attr('checked', false);
|
31 |
+
jQuery('.show_list').attr('disabled', 'disabled');
|
32 |
+
jQuery('.content_placement').hide('slow');
|
33 |
+
jQuery('.content_placement input').attr('disabled','disabled');
|
34 |
+
jQuery('#pf-categories-metabox').hide('slow');
|
35 |
+
} else {
|
36 |
+
jQuery('.show_list').removeAttr('disabled');
|
37 |
+
jQuery('.content_placement').show('slow');
|
38 |
+
jQuery('.content_placement input').removeAttr('disabled');
|
39 |
+
}
|
40 |
+
}).change();
|
41 |
+
|
42 |
+
jQuery('#toggle-categories').click(function() {
|
43 |
+
if(jQuery('#pf-categories-metabox').is(':visible')) {
|
44 |
+
jQuery('#pf-categories-metabox').hide('slow');
|
45 |
+
} else {
|
46 |
+
jQuery('#pf-categories-metabox').show('slow');
|
47 |
+
}
|
48 |
+
});
|
49 |
+
|
50 |
+
jQuery(document).mouseup(function (e) {
|
51 |
+
var container = jQuery("#pf-categories");
|
52 |
+
|
53 |
+
if (container.has(e.target).length === 0) {
|
54 |
+
jQuery('#pf-categories-metabox').hide('slow');
|
55 |
+
}
|
56 |
+
});
|
57 |
+
|
58 |
jQuery('#colorSelector').ColorPicker({
|
59 |
color: jQuery('#text_color').val(),
|
60 |
onShow: function (colpkr) {
|
203 |
jQuery('.printfriendly-text2').css('font-size',parseInt(size));
|
204 |
}
|
205 |
|
206 |
+
// postboxes setup
|
207 |
+
jQuery('.if-js-closed').removeClass('if-js-closed').addClass('closed');
|
208 |
+
|
209 |
+
// categories checkboxes
|
210 |
+
var category_ids = jQuery('#category_ids').val().split(',');
|
211 |
+
if(category_ids[0] == 'all') {
|
212 |
+
var ids = [];
|
213 |
+
jQuery('#categorydiv :checkbox').each(function() {
|
214 |
+
jQuery(this).attr('checked', 'checked');
|
215 |
+
});
|
216 |
+
jQuery('#category-all :checkbox').each(function() {
|
217 |
+
ids.push(jQuery(this).val());
|
218 |
+
});
|
219 |
+
// for older wp versions we do not have per category settings so
|
220 |
+
// ids array will be empty and in that case we shouldn't replace 'all'
|
221 |
+
if(ids.length != 0) {
|
222 |
+
jQuery('#category_ids').val(ids.join(','));
|
223 |
+
}
|
224 |
+
} else {
|
225 |
+
|
226 |
+
jQuery('#categorydiv :checkbox').each(function() {
|
227 |
+
if(jQuery.inArray(jQuery(this).val(), category_ids) != -1) {
|
228 |
+
jQuery(this).attr('checked', 'checked');
|
229 |
+
}
|
230 |
+
});
|
231 |
+
}
|
232 |
+
|
233 |
+
jQuery('#categorydiv :checkbox').click(function() {
|
234 |
+
var values = jQuery('#category_ids').val();
|
235 |
+
var ids = [];
|
236 |
+
if(values != '')
|
237 |
+
ids = values.split(',');
|
238 |
+
|
239 |
+
var id = jQuery(this).val();
|
240 |
+
|
241 |
+
if(jQuery(this).is(':checked'))
|
242 |
+
ids.push(id);
|
243 |
+
else {
|
244 |
+
ids = jQuery.grep(ids, function(value) {
|
245 |
+
return value != id;
|
246 |
+
});
|
247 |
+
}
|
248 |
+
|
249 |
+
jQuery('#category_ids').val(ids.join(','));
|
250 |
+
});
|
251 |
+
|
252 |
+
// page checkboxes TODO...
|
253 |
+
|
254 |
});
|
pf.php
CHANGED
@@ -1,14 +1,17 @@
|
|
1 |
<?php
|
|
|
2 |
/*
|
3 |
Plugin Name: Print Friendly and PDF
|
4 |
Plugin URI: http://www.printfriendly.com
|
5 |
Description: PrintFriendly & PDF button for your website. Optimizes your pages and brand for print, pdf, and email.
|
6 |
Name and URL are included to ensure repeat visitors and new visitors when printed versions are shared.
|
7 |
-
Version: 3.2.
|
8 |
Author: Print Friendly
|
9 |
Author URI: http://www.PrintFriendly.com
|
10 |
|
11 |
Changelog :
|
|
|
|
|
12 |
3.2.0 - Important chrome issue fix. Ie syntax error fix.
|
13 |
3.1.9 - Minor css detail.
|
14 |
3.1.8 - Add printfriendly options to allow/not allow print, pdf, email from the Printfriendly and PDF dialog.
|
@@ -81,7 +84,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
81 |
* Database version, used to allow for easy upgrades to / additions in plugin options between plugin versions.
|
82 |
* @var int
|
83 |
*/
|
84 |
-
var $db_version =
|
85 |
|
86 |
/**
|
87 |
* Settings page, used within the plugin to reliably load the plugins admin JS and CSS files only on the admin page.
|
@@ -115,24 +118,28 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
115 |
add_filter( 'the_excerpt', array( &$this, 'show_link' ) );
|
116 |
}
|
117 |
|
118 |
-
if ( !is_admin() )
|
119 |
-
return;
|
120 |
|
121 |
-
|
122 |
-
|
|
|
123 |
|
124 |
-
|
125 |
-
|
|
|
|
|
126 |
|
127 |
-
|
128 |
-
|
129 |
|
130 |
-
|
131 |
-
|
132 |
|
133 |
-
|
134 |
-
|
135 |
|
|
|
|
|
|
|
136 |
}
|
137 |
|
138 |
/**
|
@@ -154,10 +161,11 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
154 |
if ( isset( $this->options['enable_css'] ) && $this->options['enable_css'] != 'on' )
|
155 |
return;
|
156 |
|
|
|
157 |
?>
|
158 |
<style type="text/css" media="screen">
|
159 |
div.printfriendly {
|
160 |
-
margin: <?php echo $this->options['margin_top'].'px '.$this->options['margin_right'].'px '.$this->options['margin_bottom'].'px '.$this->options['margin_left'].'px'; ?>;
|
161 |
}
|
162 |
div.printfriendly a, div.printfriendly a:link, div.printfriendly a:visited {
|
163 |
text-decoration: none;
|
@@ -204,6 +212,18 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
204 |
<?php
|
205 |
}
|
206 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
/**
|
208 |
* Prints the PrintFriendly JavaScript, in the footer, and loads it asynchronously.
|
209 |
*
|
@@ -222,7 +242,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
222 |
}
|
223 |
|
224 |
// Currently we use v3 for both: normal and password protected sites
|
225 |
-
$pf_src = '
|
226 |
if($this->options['website_protocol'] == 'https')
|
227 |
$pf_src = 'https://pf-cdn.printfriendly.com/ssl/main.js';
|
228 |
|
@@ -239,7 +259,6 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
239 |
|
240 |
// PrintFriendly
|
241 |
var e = document.createElement('script'); e.type="text/javascript";
|
242 |
-
e.async = true;
|
243 |
e.src = '<?php echo $pf_src ?>';
|
244 |
document.getElementsByTagName('head')[0].appendChild(e);
|
245 |
</script>
|
@@ -285,11 +304,11 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
285 |
}
|
286 |
else
|
287 |
{
|
288 |
-
if ( (is_page() && isset($this->options['show_on_pages']))
|
289 |
-
|| (is_home() && isset($this->options['show_on_homepage']))
|
290 |
-
|| (is_tax() && isset($this->options['show_on_taxonomies']))
|
291 |
-
|| (is_category() && isset($this->options['show_on_categories']))
|
292 |
-
|| (is_single() && isset($this->options['show_on_posts'])) )
|
293 |
{
|
294 |
// Hook the script call now, so it only get's loaded when needed, and need is determined by the user calling pf_button
|
295 |
add_action( 'wp_footer', array( &$this, 'print_script_footer' ) );
|
@@ -308,6 +327,17 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
308 |
|
309 |
}
|
310 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
/**
|
312 |
* Register the textdomain and the options array along with the validation function
|
313 |
*
|
@@ -331,8 +361,29 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
331 |
function options_validate( $input ) {
|
332 |
$valid_input = $input;
|
333 |
|
334 |
-
|
335 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
|
337 |
if ( !in_array( $input['button_type'], array( 'pf-button.gif', 'button-print-grnw20.png', 'button-print-blu20.png', 'button-print-gry20.png', 'button-print-whgn20.png', 'pf_button_sq_gry_m.png', 'pf_button_sq_gry_l.png', 'pf_button_sq_grn_m.png', 'pf_button_sq_grn_l.png', 'pf-button-big.gif', 'pf-icon-small.gif', 'pf-icon.gif', 'pf-button-both.gif', 'pf-icon-both.gif', 'text-only', 'custom-image') ) )
|
338 |
$valid_input['button_type'] = 'pf-button.gif';
|
@@ -378,6 +429,9 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
378 |
*/
|
379 |
function add_config_page() {
|
380 |
$this->settings_page = add_options_page( __( 'PrintFriendly Options', $this->hook ), __( 'Print Friendly & PDF', $this->hook ), 'manage_options', $this->hook, array( &$this, 'config_page' ) );
|
|
|
|
|
|
|
381 |
}
|
382 |
|
383 |
/**
|
@@ -401,13 +455,14 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
401 |
*/
|
402 |
function admin_enqueue_scripts( $screen_id ) {
|
403 |
if ( $this->settings_page == $screen_id ) {
|
404 |
-
$ver = '3.2.
|
405 |
wp_register_script( 'pf-color-picker', plugins_url( 'colorpicker.js', __FILE__ ), array( 'jquery', 'media-upload' ), $ver );
|
406 |
wp_register_script( 'pf-admin-js', plugins_url( 'admin.js', __FILE__ ), array( 'jquery', 'media-upload' ), $ver );
|
407 |
|
408 |
wp_enqueue_script( 'pf-color-picker' );
|
409 |
wp_enqueue_script( 'pf-admin-js' );
|
410 |
|
|
|
411 |
wp_enqueue_style( 'printfriendly-admin-css', plugins_url( 'admin.css', __FILE__ ), array(), $ver);
|
412 |
}
|
413 |
}
|
@@ -465,6 +520,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
465 |
'password_protected' => 'no',
|
466 |
'javascript' => 'yes',
|
467 |
'custom_css_url' => '',
|
|
|
468 |
);
|
469 |
|
470 |
// Check whether the old badly named singular options are there, if so, use the data and delete them.
|
@@ -518,7 +574,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
518 |
// check whether image we do not list any more was used
|
519 |
if(in_array($this->options['button_type'], array('button-print-whgn20.png', 'pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png', 'pf_button_sq_grn_m.png', 'pf_button_sq_grn_l.png'))) {
|
520 |
// previous version had a bug with button name
|
521 |
-
if(in_array($this->options['button_type'], array('pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png')))
|
522 |
$this->options['button_type'] = str_replace('qry', 'gry', $this->options['button_type']);
|
523 |
|
524 |
$image_address = '//cdn.printfriendly.com/'.$this->options['button_type'];
|
@@ -577,6 +633,19 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
577 |
$this->options = array_merge($this->options, $additional_options);
|
578 |
}
|
579 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
580 |
$this->options['db_version'] = $this->db_version;
|
581 |
update_option( $this->option_name, $this->options );
|
582 |
}
|
@@ -617,7 +686,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
617 |
|
618 |
switch($name){
|
619 |
case "custom-image":
|
620 |
-
if( '' == $this->options['custom_image'] )
|
621 |
$return = '';
|
622 |
else
|
623 |
$return = '<img src="'.$this->options['custom_image'].'" alt="Print Friendly" />';
|
@@ -703,11 +772,11 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
703 |
* @param string $name string used for various parts of checkbox
|
704 |
*
|
705 |
*/
|
706 |
-
function create_checkbox($name) {
|
707 |
-
|
|
|
708 |
$this->checked( 'show_on_' . $name, 'on');
|
709 |
-
echo ' />';
|
710 |
-
_e( ucfirst($name), $this->hook );
|
711 |
}
|
712 |
|
713 |
|
@@ -723,6 +792,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
723 |
isset($this->options['show_on_pages']) ||
|
724 |
isset($this->options['show_on_homepage']) ||
|
725 |
isset($this->options['show_on_categories']) ||
|
|
|
726 |
isset($this->options['show_on_taxonomies']));
|
727 |
}
|
728 |
|
@@ -742,6 +812,61 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
742 |
return selected ($this->options[$val], $check_against);
|
743 |
}
|
744 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
745 |
/**
|
746 |
* Output the config page
|
747 |
*
|
@@ -751,7 +876,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
751 |
|
752 |
// Since WP 3.2 outputs these errors by default, only display them when we're on versions older than 3.2 that do support the settings errors.
|
753 |
global $wp_version;
|
754 |
-
if
|
755 |
settings_errors();
|
756 |
|
757 |
// Show the content of the options array when debug is enabled
|
@@ -759,15 +884,15 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
759 |
echo '<pre>Options:<br><br>' . print_r( $this->options, 1 ) . '</pre>';
|
760 |
?>
|
761 |
<div id="pf_settings" class="wrap">
|
762 |
-
|
763 |
<div class="icon32" id="printfriendly"></div>
|
764 |
<h2><?php _e( 'Print Friendly & PDF Settings', $this->hook ); ?></h2>
|
765 |
-
|
766 |
<form action="options.php" method="post">
|
767 |
<?php settings_fields( $this->option_name ); ?>
|
768 |
-
|
769 |
<h3><?php _e( "Pick Your Button Style", $this->hook ); ?></h3>
|
770 |
-
|
771 |
<fieldset id="button-style">
|
772 |
<div id="buttongroup1">
|
773 |
<?php $this->radio('pf-button.gif'); ?>
|
@@ -820,13 +945,13 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
820 |
</div>
|
821 |
</fieldset>
|
822 |
<br class="clear">
|
823 |
-
|
824 |
-
<!--Section 2 Button
|
825 |
-
<div id="button-
|
826 |
-
<h3><?php _e( "Button
|
827 |
<span id="css"><input type="checkbox" name="<?php echo $this->option_name; ?>[enable_css]" value="<?php $this->val('enable_css');?>" <?php $this->checked('enable_css', 'off'); ?> />Do not use CSS for button styles</span>
|
828 |
</h3>
|
829 |
-
<div id="button-
|
830 |
<div id="alignment">
|
831 |
<label>
|
832 |
<select id="pf_content_position" name="<?php echo $this->option_name; ?>[content_position]" >
|
@@ -861,19 +986,41 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
861 |
</label>
|
862 |
</div>
|
863 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
864 |
<div id="pages">
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
<label><
|
871 |
-
<
|
872 |
-
<
|
|
|
|
|
873 |
</div>
|
874 |
</div>
|
875 |
-
|
876 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
877 |
<div id="print-options">
|
878 |
<h3><?php _e( "Print PDF Options", $this->hook ); ?></h3>
|
879 |
<label id="pf-favicon" for="favicon">
|
@@ -919,10 +1066,10 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
919 |
<input id="custom_css_url" type="text" class="regular-text" name="<?php echo $this->option_name; ?>[custom_css_url]" value="<?php $this->val( 'custom_css_url' ); ?>" />
|
920 |
</label>
|
921 |
</div>
|
922 |
-
|
923 |
-
<!--Section
|
924 |
<h3><?php _e( "Webmaster Settings", $this->hook ); ?></h3>
|
925 |
-
|
926 |
<label for="protocol">Website Protocol<br>
|
927 |
<select id="website_protocol" name="<?php echo $this->option_name; ?>[website_protocol]" >
|
928 |
<option value="http" <?php selected( $this->options['website_protocol'], 'http' ); ?>><?php _e( "http (common)", $this->hook ); ?></option>
|
@@ -949,7 +1096,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
949 |
<?php _e( "Display print preview on PrintFriendly.com (No JavaScript)", $this->hook ); ?>
|
950 |
</span>
|
951 |
</label>
|
952 |
-
|
953 |
<p class="submit">
|
954 |
<input type="submit" class="button-primary" value="<?php esc_attr_e( "Save Options", $this->hook ); ?>"/>
|
955 |
<input type="reset" class="button-secondary" value="<?php esc_attr_e( "Cancel", $this->hook ); ?>"/>
|
@@ -959,7 +1106,7 @@ if ( ! class_exists( 'PrintFriendly_WordPress' ) ) {
|
|
959 |
<p>
|
960 |
<?php _e( "Like PrintFriendly?", $this->hook ); ?> <a href="http://wordpress.org/extend/plugins/printfriendly/"><?php _e( "Give us a rating", $this->hook ); ?></a>. <?php _e( "Need help or have suggestions?", $this->hook ); ?> <a href="mailto:support@printfriendly.com?subject=Support%20for%20PrintFriendly%20WordPress%20plugin">support@PrintFriendly.com</a>.</p>
|
961 |
</div>
|
962 |
-
|
963 |
</form>
|
964 |
</div>
|
965 |
<?php
|
1 |
<?php
|
2 |
+
|
3 |
/*
|
4 |
Plugin Name: Print Friendly and PDF
|
5 |
Plugin URI: http://www.printfriendly.com
|
6 |
Description: PrintFriendly & PDF button for your website. Optimizes your pages and brand for print, pdf, and email.
|
7 |
Name and URL are included to ensure repeat visitors and new visitors when printed versions are shared.
|
8 |
+
Version: 3.2.2
|
9 |
Author: Print Friendly
|
10 |
Author URI: http://www.PrintFriendly.com
|
11 |
|
12 |
Changelog :
|
13 |
+
3.2.2 - Add printfriendly post_class. Add printfriendly button display settings per individual category. Fixed minor JS bug. Added redundancy to uninstall script.
|
14 |
+
3.2.1 - Improve script loading.
|
15 |
3.2.0 - Important chrome issue fix. Ie syntax error fix.
|
16 |
3.1.9 - Minor css detail.
|
17 |
3.1.8 - Add printfriendly options to allow/not allow print, pdf, email from the Printfriendly and PDF dialog.
|
84 |
* Database version, used to allow for easy upgrades to / additions in plugin options between plugin versions.
|
85 |
* @var int
|
86 |
*/
|
87 |
+
var $db_version = 5;
|
88 |
|
89 |
/**
|
90 |
* Settings page, used within the plugin to reliably load the plugins admin JS and CSS files only on the admin page.
|
118 |
add_filter( 'the_excerpt', array( &$this, 'show_link' ) );
|
119 |
}
|
120 |
|
|
|
|
|
121 |
|
122 |
+
if ( !is_admin() ) {
|
123 |
+
// Register function that adds pf content class to article content
|
124 |
+
add_filter("post_class", array( &$this, 'add_pf_content_class' ) );
|
125 |
|
126 |
+
}
|
127 |
+
else {
|
128 |
+
// Hook into init for registration of the option and the language files
|
129 |
+
add_action( 'admin_init', array( &$this, 'init' ) );
|
130 |
|
131 |
+
// Register the settings page
|
132 |
+
add_action( 'admin_menu', array( &$this, 'add_config_page' ) );
|
133 |
|
134 |
+
// Register the contextual help
|
135 |
+
add_filter( 'contextual_help', array( &$this, 'contextual_help' ), 10, 2 );
|
136 |
|
137 |
+
// Enqueue the needed scripts and styles
|
138 |
+
add_action( 'admin_enqueue_scripts',array( &$this, 'admin_enqueue_scripts' ) );
|
139 |
|
140 |
+
// Register a link to the settings page on the plugins overview page
|
141 |
+
add_filter( 'plugin_action_links', array( &$this, 'filter_plugin_actions' ), 10, 2 );
|
142 |
+
}
|
143 |
}
|
144 |
|
145 |
/**
|
161 |
if ( isset( $this->options['enable_css'] ) && $this->options['enable_css'] != 'on' )
|
162 |
return;
|
163 |
|
164 |
+
|
165 |
?>
|
166 |
<style type="text/css" media="screen">
|
167 |
div.printfriendly {
|
168 |
+
margin: <?php echo $this->options['margin_top'].'px '.$this->options['margin_right'].'px '.$this->options['margin_bottom'].'px '.$this->options['margin_left'].'px;'; ?>;
|
169 |
}
|
170 |
div.printfriendly a, div.printfriendly a:link, div.printfriendly a:visited {
|
171 |
text-decoration: none;
|
212 |
<?php
|
213 |
}
|
214 |
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Adds class=wp-pf-content to the content container.
|
218 |
+
*
|
219 |
+
* @since 3.2.2
|
220 |
+
*/
|
221 |
+
function add_pf_content_class( $classes = array() ) {
|
222 |
+
$classes[] = esc_attr( 'wp-pf-content' );
|
223 |
+
return array_unique( $classes );
|
224 |
+
}
|
225 |
+
|
226 |
+
|
227 |
/**
|
228 |
* Prints the PrintFriendly JavaScript, in the footer, and loads it asynchronously.
|
229 |
*
|
242 |
}
|
243 |
|
244 |
// Currently we use v3 for both: normal and password protected sites
|
245 |
+
$pf_src = 'http://cdn.printfriendly.com/printfriendly.js';
|
246 |
if($this->options['website_protocol'] == 'https')
|
247 |
$pf_src = 'https://pf-cdn.printfriendly.com/ssl/main.js';
|
248 |
|
259 |
|
260 |
// PrintFriendly
|
261 |
var e = document.createElement('script'); e.type="text/javascript";
|
|
|
262 |
e.src = '<?php echo $pf_src ?>';
|
263 |
document.getElementsByTagName('head')[0].appendChild(e);
|
264 |
</script>
|
304 |
}
|
305 |
else
|
306 |
{
|
307 |
+
if ( (is_page() && ( isset($this->options['show_on_pages']) && 'on' === $this->options['show_on_pages'] ) )
|
308 |
+
|| (is_home() && ( ( isset($this->options['show_on_homepage']) && 'on' === $this->options['show_on_homepage'] ) && $this->category_included() ) )
|
309 |
+
|| (is_tax() && ( ( isset($this->options['show_on_taxonomies']) && 'on' === $this->options['show_on_taxonomies'] ) && $this->category_included() ) )
|
310 |
+
|| (is_category() && ( ( isset($this->options['show_on_categories']) && 'on' === $this->options['show_on_categories'] ) && $this->category_included() ) )
|
311 |
+
|| (is_single() && ( ( isset($this->options['show_on_posts']) && 'on' === $this->options['show_on_posts'] ) && $this->category_included() ) ) )
|
312 |
{
|
313 |
// Hook the script call now, so it only get's loaded when needed, and need is determined by the user calling pf_button
|
314 |
add_action( 'wp_footer', array( &$this, 'print_script_footer' ) );
|
327 |
|
328 |
}
|
329 |
|
330 |
+
|
331 |
+
/**
|
332 |
+
* Filter posts by category.
|
333 |
+
*
|
334 |
+
* @since 3.2.2
|
335 |
+
* @return boolean true if post belongs to category selected for button display
|
336 |
+
*/
|
337 |
+
function category_included() {
|
338 |
+
return ( 'all' === $this->options['category_ids'][0] || in_category($this->options['category_ids']) );
|
339 |
+
}
|
340 |
+
|
341 |
/**
|
342 |
* Register the textdomain and the options array along with the validation function
|
343 |
*
|
361 |
function options_validate( $input ) {
|
362 |
$valid_input = $input;
|
363 |
|
364 |
+
if( isset( $input['category_ids'] ) ) {
|
365 |
+
/**
|
366 |
+
* Validate received category ids:
|
367 |
+
* - Is there only one array item and does it contain the string text 'all' ? => pass
|
368 |
+
* - Otherwise, make sure the ids are integer values
|
369 |
+
*/
|
370 |
+
$valid_input['category_ids'] = explode(',', $input['category_ids']);
|
371 |
+
$valid_input['category_ids'] = array_map( 'trim', $valid_input['category_ids'] );
|
372 |
+
if( ( count( $valid_input['category_ids'] ) === 1 && 'all' === $valid_input['category_ids'][0] ) === false ) {
|
373 |
+
foreach( $valid_input['category_ids'] as $k => $v ) {
|
374 |
+
if( $v !== '' && ( ctype_digit( (string) $v ) === true && ( intval( $v ) == $v ) ) ) {
|
375 |
+
$valid_input['category_ids'][$k] = intval( $v );
|
376 |
+
}
|
377 |
+
else {
|
378 |
+
// Invalid input - Show error message ?
|
379 |
+
unset( $valid_input['category_ids'][$k] );
|
380 |
+
}
|
381 |
+
}
|
382 |
+
}
|
383 |
+
}
|
384 |
+
|
385 |
+
//echo '<pre>'.print_r($input,1).'</pre>';
|
386 |
+
//die;
|
387 |
|
388 |
if ( !in_array( $input['button_type'], array( 'pf-button.gif', 'button-print-grnw20.png', 'button-print-blu20.png', 'button-print-gry20.png', 'button-print-whgn20.png', 'pf_button_sq_gry_m.png', 'pf_button_sq_gry_l.png', 'pf_button_sq_grn_m.png', 'pf_button_sq_grn_l.png', 'pf-button-big.gif', 'pf-icon-small.gif', 'pf-icon.gif', 'pf-button-both.gif', 'pf-icon-both.gif', 'text-only', 'custom-image') ) )
|
389 |
$valid_input['button_type'] = 'pf-button.gif';
|
429 |
*/
|
430 |
function add_config_page() {
|
431 |
$this->settings_page = add_options_page( __( 'PrintFriendly Options', $this->hook ), __( 'Print Friendly & PDF', $this->hook ), 'manage_options', $this->hook, array( &$this, 'config_page' ) );
|
432 |
+
|
433 |
+
//register callback gets call prior your own page gets rendered
|
434 |
+
add_action('load-'.$this->settings_page, array(&$this, 'on_load_printfriendly'));
|
435 |
}
|
436 |
|
437 |
/**
|
455 |
*/
|
456 |
function admin_enqueue_scripts( $screen_id ) {
|
457 |
if ( $this->settings_page == $screen_id ) {
|
458 |
+
$ver = '3.2.2';
|
459 |
wp_register_script( 'pf-color-picker', plugins_url( 'colorpicker.js', __FILE__ ), array( 'jquery', 'media-upload' ), $ver );
|
460 |
wp_register_script( 'pf-admin-js', plugins_url( 'admin.js', __FILE__ ), array( 'jquery', 'media-upload' ), $ver );
|
461 |
|
462 |
wp_enqueue_script( 'pf-color-picker' );
|
463 |
wp_enqueue_script( 'pf-admin-js' );
|
464 |
|
465 |
+
|
466 |
wp_enqueue_style( 'printfriendly-admin-css', plugins_url( 'admin.css', __FILE__ ), array(), $ver);
|
467 |
}
|
468 |
}
|
520 |
'password_protected' => 'no',
|
521 |
'javascript' => 'yes',
|
522 |
'custom_css_url' => '',
|
523 |
+
'category_ids' => array('all'),
|
524 |
);
|
525 |
|
526 |
// Check whether the old badly named singular options are there, if so, use the data and delete them.
|
574 |
// check whether image we do not list any more was used
|
575 |
if(in_array($this->options['button_type'], array('button-print-whgn20.png', 'pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png', 'pf_button_sq_grn_m.png', 'pf_button_sq_grn_l.png'))) {
|
576 |
// previous version had a bug with button name
|
577 |
+
if(in_array($this->options['button_type'], array('pf_button_sq_qry_m.png', 'pf_button_sq_qry_l.png')))
|
578 |
$this->options['button_type'] = str_replace('qry', 'gry', $this->options['button_type']);
|
579 |
|
580 |
$image_address = '//cdn.printfriendly.com/'.$this->options['button_type'];
|
633 |
$this->options = array_merge($this->options, $additional_options);
|
634 |
}
|
635 |
|
636 |
+
// update options to version 5
|
637 |
+
if($this->options['db_version'] < 5) {
|
638 |
+
|
639 |
+
$additional_options = array(
|
640 |
+
'category_ids' => array(),
|
641 |
+
);
|
642 |
+
|
643 |
+
if( isset( $this->options['show_on_categories'] ) && 'on' === $this->options['show_on_categories'] ) {
|
644 |
+
$additional_options['category_ids'][] = 'all';
|
645 |
+
}
|
646 |
+
|
647 |
+
$this->options = array_merge($this->options, $additional_options);
|
648 |
+
}
|
649 |
$this->options['db_version'] = $this->db_version;
|
650 |
update_option( $this->option_name, $this->options );
|
651 |
}
|
686 |
|
687 |
switch($name){
|
688 |
case "custom-image":
|
689 |
+
if( '' == trim($this->options['custom_image']) )
|
690 |
$return = '';
|
691 |
else
|
692 |
$return = '<img src="'.$this->options['custom_image'].'" alt="Print Friendly" />';
|
772 |
* @param string $name string used for various parts of checkbox
|
773 |
*
|
774 |
*/
|
775 |
+
function create_checkbox($name, $label='', $labelid='' ) {
|
776 |
+
$label = ( !empty( $label) ? $label : $name );
|
777 |
+
echo '<label' . ( !empty( $labelid ) ? ' id=' . $labelid : '' ) . '><input type="checkbox" class="show_list" name="' . $this->option_name . '[show_on_' . $name . ']" value="on" ';
|
778 |
$this->checked( 'show_on_' . $name, 'on');
|
779 |
+
echo ' />' . __( ucfirst($label), $this->hook ) . '</label>';
|
|
|
780 |
}
|
781 |
|
782 |
|
792 |
isset($this->options['show_on_pages']) ||
|
793 |
isset($this->options['show_on_homepage']) ||
|
794 |
isset($this->options['show_on_categories']) ||
|
795 |
+
// (isset($this->options['category_ids']) && count($this->options['category_ids']) > 0) ||
|
796 |
isset($this->options['show_on_taxonomies']));
|
797 |
}
|
798 |
|
812 |
return selected ($this->options[$val], $check_against);
|
813 |
}
|
814 |
|
815 |
+
/**
|
816 |
+
* For use with page metabox.
|
817 |
+
*
|
818 |
+
* @since 3.2.2
|
819 |
+
*/
|
820 |
+
function get_page_post_type() {
|
821 |
+
$post_types = get_post_types( array( 'name' => 'page' ), 'object' );
|
822 |
+
//echo '<pre>'.print_r($post_types,1).'</pre>';
|
823 |
+
//die;
|
824 |
+
|
825 |
+
return $post_types['page'];
|
826 |
+
}
|
827 |
+
|
828 |
+
|
829 |
+
/**
|
830 |
+
* Helper that checks if wp versions is above 3.0.
|
831 |
+
*
|
832 |
+
* @since 3.2.2
|
833 |
+
* @return boolean true wp version is above 3.0
|
834 |
+
*
|
835 |
+
*/
|
836 |
+
function wp_version_gt30() {
|
837 |
+
global $wp_version;
|
838 |
+
return version_compare($wp_version, '3.0', '>=');
|
839 |
+
}
|
840 |
+
|
841 |
+
|
842 |
+
/**
|
843 |
+
* Create box for picking individual categories.
|
844 |
+
*
|
845 |
+
* @since 3.2.2
|
846 |
+
*/
|
847 |
+
function create_category_metabox() {
|
848 |
+
$obj = new stdClass();
|
849 |
+
$obj->ID = 0;
|
850 |
+
do_meta_boxes('settings_page_' . $this->hook, 'normal', $obj);
|
851 |
+
}
|
852 |
+
|
853 |
+
|
854 |
+
/**
|
855 |
+
* Load metaboxes advanced button display settings.
|
856 |
+
*
|
857 |
+
* @since 3.2.2
|
858 |
+
*/
|
859 |
+
function on_load_printfriendly() {
|
860 |
+
global $wp_version;
|
861 |
+
if($this->wp_version_gt30()) {
|
862 |
+
require_once('includes/meta-boxes.php');
|
863 |
+
//require_once('includes/nav-menu.php');
|
864 |
+
wp_enqueue_script('post');
|
865 |
+
|
866 |
+
add_meta_box('categorydiv', __('Button categories:'), 'post_categories_meta_box', 'settings_page_'. $this->hook, 'normal', 'core');
|
867 |
+
}
|
868 |
+
}
|
869 |
+
|
870 |
/**
|
871 |
* Output the config page
|
872 |
*
|
876 |
|
877 |
// Since WP 3.2 outputs these errors by default, only display them when we're on versions older than 3.2 that do support the settings errors.
|
878 |
global $wp_version;
|
879 |
+
if(version_compare($wp_version, '3.2', '<' ) && $this->wp_version_gt30() )
|
880 |
settings_errors();
|
881 |
|
882 |
// Show the content of the options array when debug is enabled
|
884 |
echo '<pre>Options:<br><br>' . print_r( $this->options, 1 ) . '</pre>';
|
885 |
?>
|
886 |
<div id="pf_settings" class="wrap">
|
887 |
+
|
888 |
<div class="icon32" id="printfriendly"></div>
|
889 |
<h2><?php _e( 'Print Friendly & PDF Settings', $this->hook ); ?></h2>
|
890 |
+
|
891 |
<form action="options.php" method="post">
|
892 |
<?php settings_fields( $this->option_name ); ?>
|
893 |
+
|
894 |
<h3><?php _e( "Pick Your Button Style", $this->hook ); ?></h3>
|
895 |
+
|
896 |
<fieldset id="button-style">
|
897 |
<div id="buttongroup1">
|
898 |
<?php $this->radio('pf-button.gif'); ?>
|
945 |
</div>
|
946 |
</fieldset>
|
947 |
<br class="clear">
|
948 |
+
|
949 |
+
<!--Section 2 Button Positioning-->
|
950 |
+
<div id="button-positioning">
|
951 |
+
<h3><?php _e( "Button Positioning", $this->hook ); ?>
|
952 |
<span id="css"><input type="checkbox" name="<?php echo $this->option_name; ?>[enable_css]" value="<?php $this->val('enable_css');?>" <?php $this->checked('enable_css', 'off'); ?> />Do not use CSS for button styles</span>
|
953 |
</h3>
|
954 |
+
<div id="button-positioning-options">
|
955 |
<div id="alignment">
|
956 |
<label>
|
957 |
<select id="pf_content_position" name="<?php echo $this->option_name; ?>[content_position]" >
|
986 |
</label>
|
987 |
</div>
|
988 |
</div>
|
989 |
+
</div>
|
990 |
+
<br class="clear">
|
991 |
+
|
992 |
+
<!--Section 3 Button Placement-->
|
993 |
+
<div id="button-placement">
|
994 |
+
<h3><?php _e( "Button Placement", $this->hook ); ?></h3>
|
995 |
<div id="pages">
|
996 |
+
<?php $this->create_checkbox('posts'); ?>
|
997 |
+
<?php $this->create_checkbox('pages'); ?>
|
998 |
+
<?php $this->create_checkbox('homepage'); ?>
|
999 |
+
<?php $this->create_checkbox('categories'); ?>
|
1000 |
+
<?php $this->create_checkbox('taxonomies'); ?>
|
1001 |
+
<label><input type="checkbox" class="show_template" name="show_on_template" /><?php echo _e( 'Add direct to template', $this->hook ); ?></label>
|
1002 |
+
<textarea id="pf-shortcode" class="code" rows="2" cols="40"><?php if(function_exists('pf_show_link')){echo pf_show_link();} ?></textarea>
|
1003 |
+
<label><?php _e( "or use shortcode inside your page/article", $this->hook ); ?></label>
|
1004 |
+
<textarea id="pf-shortcode" class="code" rows="2" cols="40">[printfriendly]</textarea>
|
1005 |
+
<input type="hidden" name="<?php echo $this->option_name; ?>[category_ids]" id="category_ids" value="<?php echo implode(',', $this->options['category_ids']); ?>" />
|
1006 |
</div>
|
1007 |
</div>
|
1008 |
+
<?php if($this->wp_version_gt30()) { ?>
|
1009 |
+
<div id="pf-categories">
|
1010 |
+
<?php printf( __( 'Specify <a %s>specific categories</a>', $this->hook), ' href="javascript:void(0)" id="toggle-categories"' ); ?>
|
1011 |
+
<br/>
|
1012 |
+
<p class="description pf-categories">
|
1013 |
+
<?php _e( "Selecting categories will act as an additional filter for when to display the buttons.", $this->hook ); ?>
|
1014 |
+
</p>
|
1015 |
+
<div id="pf-categories-metabox">
|
1016 |
+
<?php $this->create_category_metabox(); ?>
|
1017 |
+
</div>
|
1018 |
+
</div>
|
1019 |
+
<?php } ?>
|
1020 |
+
|
1021 |
+
<br class="clear">
|
1022 |
+
|
1023 |
+
<!--Section 4 Button Print Options-->
|
1024 |
<div id="print-options">
|
1025 |
<h3><?php _e( "Print PDF Options", $this->hook ); ?></h3>
|
1026 |
<label id="pf-favicon" for="favicon">
|
1066 |
<input id="custom_css_url" type="text" class="regular-text" name="<?php echo $this->option_name; ?>[custom_css_url]" value="<?php $this->val( 'custom_css_url' ); ?>" />
|
1067 |
</label>
|
1068 |
</div>
|
1069 |
+
|
1070 |
+
<!--Section 5 WebMaster-->
|
1071 |
<h3><?php _e( "Webmaster Settings", $this->hook ); ?></h3>
|
1072 |
+
|
1073 |
<label for="protocol">Website Protocol<br>
|
1074 |
<select id="website_protocol" name="<?php echo $this->option_name; ?>[website_protocol]" >
|
1075 |
<option value="http" <?php selected( $this->options['website_protocol'], 'http' ); ?>><?php _e( "http (common)", $this->hook ); ?></option>
|
1096 |
<?php _e( "Display print preview on PrintFriendly.com (No JavaScript)", $this->hook ); ?>
|
1097 |
</span>
|
1098 |
</label>
|
1099 |
+
|
1100 |
<p class="submit">
|
1101 |
<input type="submit" class="button-primary" value="<?php esc_attr_e( "Save Options", $this->hook ); ?>"/>
|
1102 |
<input type="reset" class="button-secondary" value="<?php esc_attr_e( "Cancel", $this->hook ); ?>"/>
|
1106 |
<p>
|
1107 |
<?php _e( "Like PrintFriendly?", $this->hook ); ?> <a href="http://wordpress.org/extend/plugins/printfriendly/"><?php _e( "Give us a rating", $this->hook ); ?></a>. <?php _e( "Need help or have suggestions?", $this->hook ); ?> <a href="mailto:support@printfriendly.com?subject=Support%20for%20PrintFriendly%20WordPress%20plugin">support@PrintFriendly.com</a>.</p>
|
1108 |
</div>
|
1109 |
+
|
1110 |
</form>
|
1111 |
</div>
|
1112 |
<?php
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Print Friendly and PDF Button===
|
2 |
-
Contributors: printfriendly,joostdevalk
|
3 |
Tags: print, pdf, printer, printing, printable, widget, plugin
|
4 |
Requires at least: 2.8
|
5 |
-
Tested up to: 3.5
|
6 |
-
Stable tag: 3.2.
|
7 |
|
8 |
The #1 Print and PDF button for your WordPress site. Printer Friendly pages without coding, css, or print.css. Fast, easy, and professional.
|
9 |
|
@@ -98,6 +98,16 @@ If you have any other issues with the plugin or the PrintFriendly widget, please
|
|
98 |
|
99 |
== Changelog ==
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
|
102 |
= 3.2.0 =
|
103 |
|
1 |
=== Print Friendly and PDF Button===
|
2 |
+
Contributors: printfriendly,joostdevalk, jrf
|
3 |
Tags: print, pdf, printer, printing, printable, widget, plugin
|
4 |
Requires at least: 2.8
|
5 |
+
Tested up to: 3.5.1
|
6 |
+
Stable tag: 3.2.2
|
7 |
|
8 |
The #1 Print and PDF button for your WordPress site. Printer Friendly pages without coding, css, or print.css. Fast, easy, and professional.
|
9 |
|
98 |
|
99 |
== Changelog ==
|
100 |
|
101 |
+
= 3.2.2 =
|
102 |
+
|
103 |
+
* Add printfriendly post_class.
|
104 |
+
* Add printfriendly button display settings per individual category.
|
105 |
+
* Fixed minor JS bug.
|
106 |
+
* Added redundancy to uninstall script.
|
107 |
+
|
108 |
+
= 3.2.1 =
|
109 |
+
|
110 |
+
* Improve script loading.
|
111 |
|
112 |
= 3.2.0 =
|
113 |
|
screenshot-2.png
CHANGED
Binary file
|
uninstall.php
CHANGED
@@ -1,6 +1,21 @@
|
|
1 |
-
<?php
|
2 |
|
3 |
if( !defined( 'ABSPATH' ) && !defined( 'WP_UNINSTALL_PLUGIN' ) )
|
4 |
exit();
|
5 |
|
6 |
-
delete_option( 'printfriendly_option' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
|
3 |
if( !defined( 'ABSPATH' ) && !defined( 'WP_UNINSTALL_PLUGIN' ) )
|
4 |
exit();
|
5 |
|
6 |
+
delete_option( 'printfriendly_option' );
|
7 |
+
|
8 |
+
// Make sure any old options which may still lurking about get deleted as well
|
9 |
+
delete_option( 'pf_button_type' );
|
10 |
+
delete_option( 'pf_custom_image' );
|
11 |
+
delete_option( 'pf_custom_text' );
|
12 |
+
delete_option( 'pf_custom_both' );
|
13 |
+
delete_option( 'pf_show_list' );
|
14 |
+
delete_option( 'pf_content_placement' );
|
15 |
+
delete_option( 'pf_content_position' );
|
16 |
+
delete_option( 'pf_margin_top' );
|
17 |
+
delete_option( 'pf_margin_right' );
|
18 |
+
delete_option( 'pf_margin_bottom' );
|
19 |
+
delete_option( 'pf_margin_left' );
|
20 |
+
delete_option( 'pf_text_color' );
|
21 |
+
delete_option( 'pf_text_size' );
|