Gravity PDF - Version 4.0.5

Version Description

  • Add support for "Almost Pretty" permalinks for web servers that don't support Mod Rewrite (IIS) (GH#488)
  • Add PHP 7.1 support resolves two string-to-array issues (GH#495)
  • Add

    and
    tags to Rich Text Paragraph field in PDF using wpautop() (GH#490)

  • Disable product table when enabling the 'individual_products' option in core templates (GH#493)
Download this release

Release Info

Developer Blue Liquid Designs
Plugin Icon 128x128 Gravity PDF
Version 4.0.5
Comparing to
See all releases

Code changes from version 4.0.4 to 4.0.5

Files changed (34) hide show
  1. README.txt +11 -5
  2. pdf.php +2 -2
  3. src/assets/languages/gravity-forms-pdf-extended.pot +90 -89
  4. src/helper/abstract/Helper_Abstract_Options.php +6 -11
  5. src/helper/fields/Field_Textarea.php +1 -1
  6. src/model/Model_PDF.php +4 -2
  7. src/model/Model_Shortcodes.php +4 -1
  8. src/view/View_PDF.php +1 -1
  9. src/view/html/Settings/system_status.php +137 -137
  10. vendor/autoload.php +1 -1
  11. vendor/composer/autoload_namespaces.php +0 -1
  12. vendor/composer/autoload_psr4.php +1 -0
  13. vendor/composer/autoload_real.php +7 -7
  14. vendor/composer/autoload_static.php +13 -12
  15. vendor/composer/installed.json +77 -68
  16. vendor/masterminds/html5/RELEASE.md +10 -3
  17. vendor/masterminds/html5/composer.json +1 -1
  18. vendor/masterminds/html5/src/HTML5.php +6 -4
  19. vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php +11 -3
  20. vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php +0 -1
  21. vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php +5 -1
  22. vendor/masterminds/html5/test/HTML5/Html5Test.php +12 -0
  23. vendor/masterminds/html5/test/HTML5/Parser/DOMTreeBuilderTest.php +29 -0
  24. vendor/masterminds/html5/test/HTML5/Parser/TreeBuildingRulesTest.php +13 -0
  25. vendor/masterminds/html5/test/HTML5/Serializer/OutputRulesTest.php +35 -1
  26. vendor/psr/log/Psr/Log/AbstractLogger.php +16 -8
  27. vendor/psr/log/Psr/Log/LogLevel.php +8 -8
  28. vendor/psr/log/Psr/Log/LoggerAwareInterface.php +3 -2
  29. vendor/psr/log/Psr/Log/LoggerAwareTrait.php +6 -2
  30. vendor/psr/log/Psr/Log/LoggerInterface.php +21 -12
  31. vendor/psr/log/Psr/Log/LoggerTrait.php +21 -12
  32. vendor/psr/log/Psr/Log/NullLogger.php +4 -3
  33. vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +35 -11
  34. vendor/psr/log/composer.json +11 -2
README.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: https://gravitypdf.com/donate-to-plugin/
5
  Tags: gravity, forms, pdf, automation, attachment, email
6
  Requires at least: 4.2
7
  Tested up to: 4.6
8
- Stable tag: 4.0.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl.txt
11
 
@@ -19,15 +19,15 @@ https://www.youtube.com/watch?v=z8zKKrjmNjY
19
 
20
  The plugin ships with four highly-customisable PDF templates perfectly suited for displaying your user’s data. Within seconds you can personalise the documents with your company logo, change the font, size, colour and the paper size. If the templates don't suit, [have one tailor made just for you](https://gravitypdf.com/integration-services/) or [roll your own](https://gravitypdf.com/documentation/v4/developer-start-customising/).
21
 
22
- > Digital document management with WordPress just became a breeze!
23
 
24
  = Feature =
25
 
26
- * There’s no third-party APIs needed when generating your PDFs. That means no monthly fees or rate limits. You control the software and the documents it generates.
27
  * We support all languages, including complex symbol-based languages like Chinese and Japanese, as well as Right to Left (RTL) written languages such as Arabic and Hebrew.
28
  * Automatically email your PDF when a user completes a form. Have it emailed to people in your organisation, the user, or both. You can also conditionally generate and email the PDF.
29
- * Using Gravity Forms developer-licensed payment add-ons – like PayPal, Authorize.net or Stripe – you can restrict access to the PDF until after a payment is captured.
30
- * [Protecting your user’s sensitive information is the at the heart of Gravity PDF](https://gravitypdf.com/documentation/v4/user-pdf-security/). The plugin’s security settings give you granular control over who has access to the PDFs generated.
31
  * Our [JavaScript-powered font manager](https://gravitypdf.com/documentation/v4/user-custom-fonts/) allows you to install and use your favourite fonts. Now you can keep in line with your corporate style guide, or create beautiful PDF typography.
32
  * [The documentation](https://gravitypdf.com/documentation/v4/user-installation/) has everything from basic install instructions to advanced developer how-to guides. Our friendly team is also on hand to [provide FREE general support](https://gravitypdf.com/support/).
33
  * PHP, HTML and CSS come easy? [You’ll find creating your own PDF templates a breeze](https://gravitypdf.com/documentation/v4/developer-start-customising/). If not, [we offer PDF design services](https://gravitypdf.com/integration-services/) tailored just for you. We can even auto-fill existing PDFs!
@@ -85,6 +85,12 @@ Also, if you enjoy using the software [we'd love it if you could give us a revie
85
 
86
  == Changelog ==
87
 
 
 
 
 
 
 
88
  = 4.0.4 =
89
  * Prevent Finder (Mac) and Ghostscript viewing / processing password-protected PDFs without a password (GH#467)
90
  * Fix Font Manager display issues for users running a version of WP lower than 4.5 (GH#470)
5
  Tags: gravity, forms, pdf, automation, attachment, email
6
  Requires at least: 4.2
7
  Tested up to: 4.6
8
+ Stable tag: 4.0.5
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl.txt
11
 
19
 
20
  The plugin ships with four highly-customisable PDF templates perfectly suited for displaying your user’s data. Within seconds you can personalise the documents with your company logo, change the font, size, colour and the paper size. If the templates don't suit, [have one tailor made just for you](https://gravitypdf.com/integration-services/) or [roll your own](https://gravitypdf.com/documentation/v4/developer-start-customising/).
21
 
22
+ > Digital document management with WordPress and Gravity Forms just became a breeze!
23
 
24
  = Feature =
25
 
26
+ * There’s no third-party APIs needed when generating your PDFs. That means no chance of third-party data breaches, no monthly fees or rate limits. You control the software and the documents it generates.
27
  * We support all languages, including complex symbol-based languages like Chinese and Japanese, as well as Right to Left (RTL) written languages such as Arabic and Hebrew.
28
  * Automatically email your PDF when a user completes a form. Have it emailed to people in your organisation, the user, or both. You can also conditionally generate and email the PDF.
29
+ * Using Gravity Forms developer-licensed payment add-ons – like PayPal, Authorize.net or Stripe – you can restrict access to the PDF until after a payment is captured.
30
+ * [Protecting your user’s sensitive information is at the heart of Gravity PDF](https://gravitypdf.com/documentation/v4/user-pdf-security/). The plugin’s security settings give you granular control over who has access to the PDFs generated.
31
  * Our [JavaScript-powered font manager](https://gravitypdf.com/documentation/v4/user-custom-fonts/) allows you to install and use your favourite fonts. Now you can keep in line with your corporate style guide, or create beautiful PDF typography.
32
  * [The documentation](https://gravitypdf.com/documentation/v4/user-installation/) has everything from basic install instructions to advanced developer how-to guides. Our friendly team is also on hand to [provide FREE general support](https://gravitypdf.com/support/).
33
  * PHP, HTML and CSS come easy? [You’ll find creating your own PDF templates a breeze](https://gravitypdf.com/documentation/v4/developer-start-customising/). If not, [we offer PDF design services](https://gravitypdf.com/integration-services/) tailored just for you. We can even auto-fill existing PDFs!
85
 
86
  == Changelog ==
87
 
88
+ = 4.0.5 =
89
+ * Add support for "Almost Pretty" permalinks for web servers that don't support Mod Rewrite (IIS) (GH#488)
90
+ * Add PHP 7.1 support – resolves two string-to-array issues (GH#495)
91
+ * Add <p> and <br> tags to Rich Text Paragraph field in PDF – using wpautop() (GH#490)
92
+ * Disable product table when enabling the 'individual_products' option in core templates (GH#493)
93
+
94
  = 4.0.4 =
95
  * Prevent Finder (Mac) and Ghostscript viewing / processing password-protected PDFs without a password (GH#467)
96
  * Fix Font Manager display issues for users running a version of WP lower than 4.5 (GH#470)
pdf.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: Gravity PDF
4
- Version: 4.0.4
5
  Description: Automatically generate highly-customisable PDF documents using Gravity Forms.
6
  Author: Gravity PDF
7
  Author URI: https://gravitypdf.com
@@ -38,7 +38,7 @@ if ( ! defined( 'ABSPATH' ) ) {
38
  * Set base constants we'll use throughout the plugin
39
  */
40
 
41
- define( 'PDF_EXTENDED_VERSION', '4.0.4' ); /* the current plugin version */
42
  define( 'PDF_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); /* plugin directory path */
43
  define( 'PDF_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); /* plugin directory url */
44
  define( 'PDF_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); /* the plugin basename */
1
  <?php
2
  /*
3
  Plugin Name: Gravity PDF
4
+ Version: 4.0.5
5
  Description: Automatically generate highly-customisable PDF documents using Gravity Forms.
6
  Author: Gravity PDF
7
  Author URI: https://gravitypdf.com
38
  * Set base constants we'll use throughout the plugin
39
  */
40
 
41
+ define( 'PDF_EXTENDED_VERSION', '4.0.5' ); /* the current plugin version */
42
  define( 'PDF_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); /* plugin directory path */
43
  define( 'PDF_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); /* plugin directory url */
44
  define( 'PDF_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); /* the plugin basename */
src/assets/languages/gravity-forms-pdf-extended.pot CHANGED
@@ -13,6 +13,7 @@ msgstr ""
13
  "X-Poedit-SearchPath-0: .\n"
14
  "X-Poedit-SearchPathExcluded-0: *.js\n"
15
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
16
  #: api.php:465
17
  msgid "The $type parameter is invalid. Only \"view\" and \"model\" are accepted"
18
  msgstr ""
@@ -133,352 +134,352 @@ msgstr ""
133
  msgid "There was a problem installing the PDF templates. Please try again."
134
  msgstr ""
135
 
136
- #: src/helper/abstract/Helper_Abstract_Options.php:761, src/helper/abstract/Helper_Abstract_Options.php:793
137
  msgid "You must pass in a valid form ID"
138
  msgstr ""
139
 
140
- #: src/helper/abstract/Helper_Abstract_Options.php:881
141
  msgid "You must pass in a valid PDF ID"
142
  msgstr ""
143
 
144
- #: src/helper/abstract/Helper_Abstract_Options.php:1587
145
  msgid "Gravity Forms Capabilities"
146
  msgstr ""
147
 
148
- #: src/helper/abstract/Helper_Abstract_Options.php:1599
149
  msgid "Active WordPress Capabilities"
150
  msgstr ""
151
 
152
- #: src/helper/abstract/Helper_Abstract_Options.php:1645
153
  msgid "Common Sizes"
154
  msgstr ""
155
 
156
- #: src/helper/abstract/Helper_Abstract_Options.php:1647
157
  msgid "A4 (210 x 297mm)"
158
  msgstr ""
159
 
160
- #: src/helper/abstract/Helper_Abstract_Options.php:1649
161
  msgid "Letter (8.5 x 11in)"
162
  msgstr ""
163
 
164
- #: src/helper/abstract/Helper_Abstract_Options.php:1651
165
  msgid "Legal (8.5 x 14in)"
166
  msgstr ""
167
 
168
- #: src/helper/abstract/Helper_Abstract_Options.php:1653
169
  msgid "Ledger / Tabloid (11 x 17in)"
170
  msgstr ""
171
 
172
- #: src/helper/abstract/Helper_Abstract_Options.php:1655
173
  msgid "Executive (7 x 10in)"
174
  msgstr ""
175
 
176
- #: src/helper/abstract/Helper_Abstract_Options.php:1657, src/helper/Helper_Options_Fields.php:195, src/helper/Helper_Options_Fields.php:723
177
  msgid "Custom Paper Size"
178
  msgstr ""
179
 
180
- #: src/helper/abstract/Helper_Abstract_Options.php:1663
181
  msgid "\"A\" Sizes"
182
  msgstr ""
183
 
184
- #: src/helper/abstract/Helper_Abstract_Options.php:1665
185
  msgid "A0 (841 x 1189mm)"
186
  msgstr ""
187
 
188
- #: src/helper/abstract/Helper_Abstract_Options.php:1667
189
  msgid "A1 (594 x 841mm)"
190
  msgstr ""
191
 
192
- #: src/helper/abstract/Helper_Abstract_Options.php:1669
193
  msgid "A2 (420 x 594mm)"
194
  msgstr ""
195
 
196
- #: src/helper/abstract/Helper_Abstract_Options.php:1671
197
  msgid "A3 (297 x 420mm)"
198
  msgstr ""
199
 
200
- #: src/helper/abstract/Helper_Abstract_Options.php:1673
201
  msgid "A5 (210 x 297mm)"
202
  msgstr ""
203
 
204
- #: src/helper/abstract/Helper_Abstract_Options.php:1675
205
  msgid "A6 (105 x 148mm)"
206
  msgstr ""
207
 
208
- #: src/helper/abstract/Helper_Abstract_Options.php:1677
209
  msgid "A7 (74 x 105mm)"
210
  msgstr ""
211
 
212
- #: src/helper/abstract/Helper_Abstract_Options.php:1679
213
  msgid "A8 (52 x 74mm)"
214
  msgstr ""
215
 
216
- #: src/helper/abstract/Helper_Abstract_Options.php:1681
217
  msgid "A9 (37 x 52mm)"
218
  msgstr ""
219
 
220
- #: src/helper/abstract/Helper_Abstract_Options.php:1683
221
  msgid "A10 (26 x 37mm)"
222
  msgstr ""
223
 
224
- #: src/helper/abstract/Helper_Abstract_Options.php:1689
225
  msgid "\"B\" Sizes"
226
  msgstr ""
227
 
228
- #: src/helper/abstract/Helper_Abstract_Options.php:1691
229
  msgid "B0 (1414 x 1000mm)"
230
  msgstr ""
231
 
232
- #: src/helper/abstract/Helper_Abstract_Options.php:1693
233
  msgid "B1 (1000 x 707mm)"
234
  msgstr ""
235
 
236
- #: src/helper/abstract/Helper_Abstract_Options.php:1695
237
  msgid "B2 (707 x 500mm)"
238
  msgstr ""
239
 
240
- #: src/helper/abstract/Helper_Abstract_Options.php:1697
241
  msgid "B3 (500 x 353mm)"
242
  msgstr ""
243
 
244
- #: src/helper/abstract/Helper_Abstract_Options.php:1699
245
  msgid "B4 (353 x 250mm)"
246
  msgstr ""
247
 
248
- #: src/helper/abstract/Helper_Abstract_Options.php:1701
249
  msgid "B5 (250 x 176mm)"
250
  msgstr ""
251
 
252
- #: src/helper/abstract/Helper_Abstract_Options.php:1703
253
  msgid "B6 (176 x 125mm)"
254
  msgstr ""
255
 
256
- #: src/helper/abstract/Helper_Abstract_Options.php:1705
257
  msgid "B7 (125 x 88mm)"
258
  msgstr ""
259
 
260
- #: src/helper/abstract/Helper_Abstract_Options.php:1707
261
  msgid "B8 (88 x 62mm)"
262
  msgstr ""
263
 
264
- #: src/helper/abstract/Helper_Abstract_Options.php:1709
265
  msgid "B9 (62 x 44mm)"
266
  msgstr ""
267
 
268
- #: src/helper/abstract/Helper_Abstract_Options.php:1711
269
  msgid "B10 (44 x 31mm)"
270
  msgstr ""
271
 
272
- #: src/helper/abstract/Helper_Abstract_Options.php:1717
273
  msgid "\"C\" Sizes"
274
  msgstr ""
275
 
276
- #: src/helper/abstract/Helper_Abstract_Options.php:1719
277
  msgid "C0 (1297 x 917mm)"
278
  msgstr ""
279
 
280
- #: src/helper/abstract/Helper_Abstract_Options.php:1721
281
  msgid "C1 (917 x 648mm)"
282
  msgstr ""
283
 
284
- #: src/helper/abstract/Helper_Abstract_Options.php:1723
285
  msgid "C2 (648 x 458mm)"
286
  msgstr ""
287
 
288
- #: src/helper/abstract/Helper_Abstract_Options.php:1725
289
  msgid "C3 (458 x 324mm)"
290
  msgstr ""
291
 
292
- #: src/helper/abstract/Helper_Abstract_Options.php:1727
293
  msgid "C4 (324 x 229mm)"
294
  msgstr ""
295
 
296
- #: src/helper/abstract/Helper_Abstract_Options.php:1729
297
  msgid "C5 (229 x 162mm)"
298
  msgstr ""
299
 
300
- #: src/helper/abstract/Helper_Abstract_Options.php:1731
301
  msgid "C6 (162 x 114mm)"
302
  msgstr ""
303
 
304
- #: src/helper/abstract/Helper_Abstract_Options.php:1733
305
  msgid "C7 (114 x 81mm)"
306
  msgstr ""
307
 
308
- #: src/helper/abstract/Helper_Abstract_Options.php:1735
309
  msgid "C8 (81 x 57mm)"
310
  msgstr ""
311
 
312
- #: src/helper/abstract/Helper_Abstract_Options.php:1737
313
  msgid "C9 (57 x 40mm)"
314
  msgstr ""
315
 
316
- #: src/helper/abstract/Helper_Abstract_Options.php:1739
317
  msgid "C10 (40 x 28mm)"
318
  msgstr ""
319
 
320
- #: src/helper/abstract/Helper_Abstract_Options.php:1745
321
  msgid "\"RA\" and \"SRA\" Sizes"
322
  msgstr ""
323
 
324
- #: src/helper/abstract/Helper_Abstract_Options.php:1747
325
  msgid "RA0 (860 x 1220mm)"
326
  msgstr ""
327
 
328
- #: src/helper/abstract/Helper_Abstract_Options.php:1749
329
  msgid "RA1 (610 x 860mm)"
330
  msgstr ""
331
 
332
- #: src/helper/abstract/Helper_Abstract_Options.php:1751
333
  msgid "RA2 (430 x 610mm)"
334
  msgstr ""
335
 
336
- #: src/helper/abstract/Helper_Abstract_Options.php:1753
337
  msgid "RA3 (305 x 430mm)"
338
  msgstr ""
339
 
340
- #: src/helper/abstract/Helper_Abstract_Options.php:1755
341
  msgid "RA4 (215 x 305mm)"
342
  msgstr ""
343
 
344
- #: src/helper/abstract/Helper_Abstract_Options.php:1757
345
  msgid "SRA0 (900 x 1280mm)"
346
  msgstr ""
347
 
348
- #: src/helper/abstract/Helper_Abstract_Options.php:1759
349
  msgid "SRA1 (640 x 900mm)"
350
  msgstr ""
351
 
352
- #: src/helper/abstract/Helper_Abstract_Options.php:1761
353
  msgid "SRA2 (450 x 640mm)"
354
  msgstr ""
355
 
356
- #: src/helper/abstract/Helper_Abstract_Options.php:1763
357
  msgid "SRA3 (320 x 450mm)"
358
  msgstr ""
359
 
360
- #: src/helper/abstract/Helper_Abstract_Options.php:1765
361
  msgid "SRA4 (225 x 320mm)"
362
  msgstr ""
363
 
364
- #: src/helper/abstract/Helper_Abstract_Options.php:1851
365
  msgid "Legacy"
366
  msgstr ""
367
 
368
- #: src/helper/abstract/Helper_Abstract_Options.php:1911, src/helper/Helper_PDF_List_Table.php:637
369
  msgctxt "Required"
370
  msgid "needs"
371
  msgstr ""
372
 
373
- #: src/helper/abstract/Helper_Abstract_Options.php:1971
374
  msgid "Template Name"
375
  msgstr ""
376
 
377
- #: src/helper/abstract/Helper_Abstract_Options.php:1973
378
  msgid "Version"
379
  msgstr ""
380
 
381
- #: src/helper/abstract/Helper_Abstract_Options.php:1975
382
  msgid "Description"
383
  msgstr ""
384
 
385
- #: src/helper/abstract/Helper_Abstract_Options.php:1977
386
  msgid "Author"
387
  msgstr ""
388
 
389
- #: src/helper/abstract/Helper_Abstract_Options.php:1979
390
  msgid "Group"
391
  msgstr ""
392
 
393
- #: src/helper/abstract/Helper_Abstract_Options.php:1981, src/helper/Helper_PDF.php:727
394
  msgid "Required PDF Version"
395
  msgstr ""
396
 
397
- #: src/helper/abstract/Helper_Abstract_Options.php:2165
398
  msgid "Unicode"
399
  msgstr ""
400
 
401
- #: src/helper/abstract/Helper_Abstract_Options.php:2193
402
  msgid "Indic"
403
  msgstr ""
404
 
405
- #: src/helper/abstract/Helper_Abstract_Options.php:2203
406
  msgid "Arabic"
407
  msgstr ""
408
 
409
- #: src/helper/abstract/Helper_Abstract_Options.php:2215
410
  msgid "Other"
411
  msgstr ""
412
 
413
- #: src/helper/abstract/Helper_Abstract_Options.php:2319, src/model/Model_Settings.php:639
414
  msgid "User-Defined Fonts"
415
  msgstr ""
416
 
417
- #: src/helper/abstract/Helper_Abstract_Options.php:2457
418
  msgid "Copy"
419
  msgstr ""
420
 
421
- #: src/helper/abstract/Helper_Abstract_Options.php:2459
422
  msgid "Print - Low Resolution"
423
  msgstr ""
424
 
425
- #: src/helper/abstract/Helper_Abstract_Options.php:2461
426
  msgid "Print - High Resolution"
427
  msgstr ""
428
 
429
- #: src/helper/abstract/Helper_Abstract_Options.php:2463
430
  msgid "Modify"
431
  msgstr ""
432
 
433
- #: src/helper/abstract/Helper_Abstract_Options.php:2465
434
  msgid "Annotate"
435
  msgstr ""
436
 
437
- #: src/helper/abstract/Helper_Abstract_Options.php:2467
438
  msgid "Fill Forms"
439
  msgstr ""
440
 
441
- #: src/helper/abstract/Helper_Abstract_Options.php:2469
442
  msgid "Extract"
443
  msgstr ""
444
 
445
- #: src/helper/abstract/Helper_Abstract_Options.php:2471
446
  msgid "Assemble"
447
  msgstr ""
448
 
449
- #: src/helper/abstract/Helper_Abstract_Options.php:2721
450
  msgid "Settings updated."
451
  msgstr ""
452
 
453
- #: src/helper/abstract/Helper_Abstract_Options.php:2959, src/helper/abstract/Helper_Abstract_Options.php:2975, src/helper/abstract/Helper_Abstract_Options.php:2991
454
  msgid "PDF Settings could not be saved. Please enter all required information below."
455
  msgstr ""
456
 
457
- #: src/helper/abstract/Helper_Abstract_Options.php:4055, src/helper/abstract/Helper_Abstract_Options.php:4057
458
  msgid "Select Media"
459
  msgstr ""
460
 
461
- #: src/helper/abstract/Helper_Abstract_Options.php:4059
462
  msgid "Upload File"
463
  msgstr ""
464
 
465
- #: src/helper/abstract/Helper_Abstract_Options.php:4373
466
  msgid "Width"
467
  msgstr ""
468
 
469
- #: src/helper/abstract/Helper_Abstract_Options.php:4375
470
  msgid "Height"
471
  msgstr ""
472
 
473
- #: src/helper/abstract/Helper_Abstract_Options.php:4381
474
  msgid "mm"
475
  msgstr ""
476
 
477
- #: src/helper/abstract/Helper_Abstract_Options.php:4383
478
  msgid "inches"
479
  msgstr ""
480
 
481
- #: src/helper/abstract/Helper_Abstract_Options.php:4503
482
  msgid "The callback used for the %s setting is missing."
483
  msgstr ""
484
 
@@ -1222,11 +1223,11 @@ msgstr ""
1222
  msgid "You do not have access to view this PDF."
1223
  msgstr ""
1224
 
1225
- #: src/model/Model_PDF.php:1763
1226
  msgid "The PDF could not be saved."
1227
  msgstr ""
1228
 
1229
- #: src/model/Model_PDF.php:3583
1230
  msgid "Could not find PDF configuration requested"
1231
  msgstr ""
1232
 
13
  "X-Poedit-SearchPath-0: .\n"
14
  "X-Poedit-SearchPathExcluded-0: *.js\n"
15
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
+
17
  #: api.php:465
18
  msgid "The $type parameter is invalid. Only \"view\" and \"model\" are accepted"
19
  msgstr ""
134
  msgid "There was a problem installing the PDF templates. Please try again."
135
  msgstr ""
136
 
137
+ #: src/helper/abstract/Helper_Abstract_Options.php:751, src/helper/abstract/Helper_Abstract_Options.php:783
138
  msgid "You must pass in a valid form ID"
139
  msgstr ""
140
 
141
+ #: src/helper/abstract/Helper_Abstract_Options.php:871
142
  msgid "You must pass in a valid PDF ID"
143
  msgstr ""
144
 
145
+ #: src/helper/abstract/Helper_Abstract_Options.php:1577
146
  msgid "Gravity Forms Capabilities"
147
  msgstr ""
148
 
149
+ #: src/helper/abstract/Helper_Abstract_Options.php:1589
150
  msgid "Active WordPress Capabilities"
151
  msgstr ""
152
 
153
+ #: src/helper/abstract/Helper_Abstract_Options.php:1635
154
  msgid "Common Sizes"
155
  msgstr ""
156
 
157
+ #: src/helper/abstract/Helper_Abstract_Options.php:1637
158
  msgid "A4 (210 x 297mm)"
159
  msgstr ""
160
 
161
+ #: src/helper/abstract/Helper_Abstract_Options.php:1639
162
  msgid "Letter (8.5 x 11in)"
163
  msgstr ""
164
 
165
+ #: src/helper/abstract/Helper_Abstract_Options.php:1641
166
  msgid "Legal (8.5 x 14in)"
167
  msgstr ""
168
 
169
+ #: src/helper/abstract/Helper_Abstract_Options.php:1643
170
  msgid "Ledger / Tabloid (11 x 17in)"
171
  msgstr ""
172
 
173
+ #: src/helper/abstract/Helper_Abstract_Options.php:1645
174
  msgid "Executive (7 x 10in)"
175
  msgstr ""
176
 
177
+ #: src/helper/abstract/Helper_Abstract_Options.php:1647, src/helper/Helper_Options_Fields.php:195, src/helper/Helper_Options_Fields.php:723
178
  msgid "Custom Paper Size"
179
  msgstr ""
180
 
181
+ #: src/helper/abstract/Helper_Abstract_Options.php:1653
182
  msgid "\"A\" Sizes"
183
  msgstr ""
184
 
185
+ #: src/helper/abstract/Helper_Abstract_Options.php:1655
186
  msgid "A0 (841 x 1189mm)"
187
  msgstr ""
188
 
189
+ #: src/helper/abstract/Helper_Abstract_Options.php:1657
190
  msgid "A1 (594 x 841mm)"
191
  msgstr ""
192
 
193
+ #: src/helper/abstract/Helper_Abstract_Options.php:1659
194
  msgid "A2 (420 x 594mm)"
195
  msgstr ""
196
 
197
+ #: src/helper/abstract/Helper_Abstract_Options.php:1661
198
  msgid "A3 (297 x 420mm)"
199
  msgstr ""
200
 
201
+ #: src/helper/abstract/Helper_Abstract_Options.php:1663
202
  msgid "A5 (210 x 297mm)"
203
  msgstr ""
204
 
205
+ #: src/helper/abstract/Helper_Abstract_Options.php:1665
206
  msgid "A6 (105 x 148mm)"
207
  msgstr ""
208
 
209
+ #: src/helper/abstract/Helper_Abstract_Options.php:1667
210
  msgid "A7 (74 x 105mm)"
211
  msgstr ""
212
 
213
+ #: src/helper/abstract/Helper_Abstract_Options.php:1669
214
  msgid "A8 (52 x 74mm)"
215
  msgstr ""
216
 
217
+ #: src/helper/abstract/Helper_Abstract_Options.php:1671
218
  msgid "A9 (37 x 52mm)"
219
  msgstr ""
220
 
221
+ #: src/helper/abstract/Helper_Abstract_Options.php:1673
222
  msgid "A10 (26 x 37mm)"
223
  msgstr ""
224
 
225
+ #: src/helper/abstract/Helper_Abstract_Options.php:1679
226
  msgid "\"B\" Sizes"
227
  msgstr ""
228
 
229
+ #: src/helper/abstract/Helper_Abstract_Options.php:1681
230
  msgid "B0 (1414 x 1000mm)"
231
  msgstr ""
232
 
233
+ #: src/helper/abstract/Helper_Abstract_Options.php:1683
234
  msgid "B1 (1000 x 707mm)"
235
  msgstr ""
236
 
237
+ #: src/helper/abstract/Helper_Abstract_Options.php:1685
238
  msgid "B2 (707 x 500mm)"
239
  msgstr ""
240
 
241
+ #: src/helper/abstract/Helper_Abstract_Options.php:1687
242
  msgid "B3 (500 x 353mm)"
243
  msgstr ""
244
 
245
+ #: src/helper/abstract/Helper_Abstract_Options.php:1689
246
  msgid "B4 (353 x 250mm)"
247
  msgstr ""
248
 
249
+ #: src/helper/abstract/Helper_Abstract_Options.php:1691
250
  msgid "B5 (250 x 176mm)"
251
  msgstr ""
252
 
253
+ #: src/helper/abstract/Helper_Abstract_Options.php:1693
254
  msgid "B6 (176 x 125mm)"
255
  msgstr ""
256
 
257
+ #: src/helper/abstract/Helper_Abstract_Options.php:1695
258
  msgid "B7 (125 x 88mm)"
259
  msgstr ""
260
 
261
+ #: src/helper/abstract/Helper_Abstract_Options.php:1697
262
  msgid "B8 (88 x 62mm)"
263
  msgstr ""
264
 
265
+ #: src/helper/abstract/Helper_Abstract_Options.php:1699
266
  msgid "B9 (62 x 44mm)"
267
  msgstr ""
268
 
269
+ #: src/helper/abstract/Helper_Abstract_Options.php:1701
270
  msgid "B10 (44 x 31mm)"
271
  msgstr ""
272
 
273
+ #: src/helper/abstract/Helper_Abstract_Options.php:1707
274
  msgid "\"C\" Sizes"
275
  msgstr ""
276
 
277
+ #: src/helper/abstract/Helper_Abstract_Options.php:1709
278
  msgid "C0 (1297 x 917mm)"
279
  msgstr ""
280
 
281
+ #: src/helper/abstract/Helper_Abstract_Options.php:1711
282
  msgid "C1 (917 x 648mm)"
283
  msgstr ""
284
 
285
+ #: src/helper/abstract/Helper_Abstract_Options.php:1713
286
  msgid "C2 (648 x 458mm)"
287
  msgstr ""
288
 
289
+ #: src/helper/abstract/Helper_Abstract_Options.php:1715
290
  msgid "C3 (458 x 324mm)"
291
  msgstr ""
292
 
293
+ #: src/helper/abstract/Helper_Abstract_Options.php:1717
294
  msgid "C4 (324 x 229mm)"
295
  msgstr ""
296
 
297
+ #: src/helper/abstract/Helper_Abstract_Options.php:1719
298
  msgid "C5 (229 x 162mm)"
299
  msgstr ""
300
 
301
+ #: src/helper/abstract/Helper_Abstract_Options.php:1721
302
  msgid "C6 (162 x 114mm)"
303
  msgstr ""
304
 
305
+ #: src/helper/abstract/Helper_Abstract_Options.php:1723
306
  msgid "C7 (114 x 81mm)"
307
  msgstr ""
308
 
309
+ #: src/helper/abstract/Helper_Abstract_Options.php:1725
310
  msgid "C8 (81 x 57mm)"
311
  msgstr ""
312
 
313
+ #: src/helper/abstract/Helper_Abstract_Options.php:1727
314
  msgid "C9 (57 x 40mm)"
315
  msgstr ""
316
 
317
+ #: src/helper/abstract/Helper_Abstract_Options.php:1729
318
  msgid "C10 (40 x 28mm)"
319
  msgstr ""
320
 
321
+ #: src/helper/abstract/Helper_Abstract_Options.php:1735
322
  msgid "\"RA\" and \"SRA\" Sizes"
323
  msgstr ""
324
 
325
+ #: src/helper/abstract/Helper_Abstract_Options.php:1737
326
  msgid "RA0 (860 x 1220mm)"
327
  msgstr ""
328
 
329
+ #: src/helper/abstract/Helper_Abstract_Options.php:1739
330
  msgid "RA1 (610 x 860mm)"
331
  msgstr ""
332
 
333
+ #: src/helper/abstract/Helper_Abstract_Options.php:1741
334
  msgid "RA2 (430 x 610mm)"
335
  msgstr ""
336
 
337
+ #: src/helper/abstract/Helper_Abstract_Options.php:1743
338
  msgid "RA3 (305 x 430mm)"
339
  msgstr ""
340
 
341
+ #: src/helper/abstract/Helper_Abstract_Options.php:1745
342
  msgid "RA4 (215 x 305mm)"
343
  msgstr ""
344
 
345
+ #: src/helper/abstract/Helper_Abstract_Options.php:1747
346
  msgid "SRA0 (900 x 1280mm)"
347
  msgstr ""
348
 
349
+ #: src/helper/abstract/Helper_Abstract_Options.php:1749
350
  msgid "SRA1 (640 x 900mm)"
351
  msgstr ""
352
 
353
+ #: src/helper/abstract/Helper_Abstract_Options.php:1751
354
  msgid "SRA2 (450 x 640mm)"
355
  msgstr ""
356
 
357
+ #: src/helper/abstract/Helper_Abstract_Options.php:1753
358
  msgid "SRA3 (320 x 450mm)"
359
  msgstr ""
360
 
361
+ #: src/helper/abstract/Helper_Abstract_Options.php:1755
362
  msgid "SRA4 (225 x 320mm)"
363
  msgstr ""
364
 
365
+ #: src/helper/abstract/Helper_Abstract_Options.php:1841
366
  msgid "Legacy"
367
  msgstr ""
368
 
369
+ #: src/helper/abstract/Helper_Abstract_Options.php:1901, src/helper/Helper_PDF_List_Table.php:637
370
  msgctxt "Required"
371
  msgid "needs"
372
  msgstr ""
373
 
374
+ #: src/helper/abstract/Helper_Abstract_Options.php:1961
375
  msgid "Template Name"
376
  msgstr ""
377
 
378
+ #: src/helper/abstract/Helper_Abstract_Options.php:1963
379
  msgid "Version"
380
  msgstr ""
381
 
382
+ #: src/helper/abstract/Helper_Abstract_Options.php:1965
383
  msgid "Description"
384
  msgstr ""
385
 
386
+ #: src/helper/abstract/Helper_Abstract_Options.php:1967
387
  msgid "Author"
388
  msgstr ""
389
 
390
+ #: src/helper/abstract/Helper_Abstract_Options.php:1969
391
  msgid "Group"
392
  msgstr ""
393
 
394
+ #: src/helper/abstract/Helper_Abstract_Options.php:1971, src/helper/Helper_PDF.php:727
395
  msgid "Required PDF Version"
396
  msgstr ""
397
 
398
+ #: src/helper/abstract/Helper_Abstract_Options.php:2155
399
  msgid "Unicode"
400
  msgstr ""
401
 
402
+ #: src/helper/abstract/Helper_Abstract_Options.php:2183
403
  msgid "Indic"
404
  msgstr ""
405
 
406
+ #: src/helper/abstract/Helper_Abstract_Options.php:2193
407
  msgid "Arabic"
408
  msgstr ""
409
 
410
+ #: src/helper/abstract/Helper_Abstract_Options.php:2205
411
  msgid "Other"
412
  msgstr ""
413
 
414
+ #: src/helper/abstract/Helper_Abstract_Options.php:2309, src/model/Model_Settings.php:639
415
  msgid "User-Defined Fonts"
416
  msgstr ""
417
 
418
+ #: src/helper/abstract/Helper_Abstract_Options.php:2447
419
  msgid "Copy"
420
  msgstr ""
421
 
422
+ #: src/helper/abstract/Helper_Abstract_Options.php:2449
423
  msgid "Print - Low Resolution"
424
  msgstr ""
425
 
426
+ #: src/helper/abstract/Helper_Abstract_Options.php:2451
427
  msgid "Print - High Resolution"
428
  msgstr ""
429
 
430
+ #: src/helper/abstract/Helper_Abstract_Options.php:2453
431
  msgid "Modify"
432
  msgstr ""
433
 
434
+ #: src/helper/abstract/Helper_Abstract_Options.php:2455
435
  msgid "Annotate"
436
  msgstr ""
437
 
438
+ #: src/helper/abstract/Helper_Abstract_Options.php:2457
439
  msgid "Fill Forms"
440
  msgstr ""
441
 
442
+ #: src/helper/abstract/Helper_Abstract_Options.php:2459
443
  msgid "Extract"
444
  msgstr ""
445
 
446
+ #: src/helper/abstract/Helper_Abstract_Options.php:2461
447
  msgid "Assemble"
448
  msgstr ""
449
 
450
+ #: src/helper/abstract/Helper_Abstract_Options.php:2711
451
  msgid "Settings updated."
452
  msgstr ""
453
 
454
+ #: src/helper/abstract/Helper_Abstract_Options.php:2949, src/helper/abstract/Helper_Abstract_Options.php:2965, src/helper/abstract/Helper_Abstract_Options.php:2981
455
  msgid "PDF Settings could not be saved. Please enter all required information below."
456
  msgstr ""
457
 
458
+ #: src/helper/abstract/Helper_Abstract_Options.php:4045, src/helper/abstract/Helper_Abstract_Options.php:4047
459
  msgid "Select Media"
460
  msgstr ""
461
 
462
+ #: src/helper/abstract/Helper_Abstract_Options.php:4049
463
  msgid "Upload File"
464
  msgstr ""
465
 
466
+ #: src/helper/abstract/Helper_Abstract_Options.php:4363
467
  msgid "Width"
468
  msgstr ""
469
 
470
+ #: src/helper/abstract/Helper_Abstract_Options.php:4365
471
  msgid "Height"
472
  msgstr ""
473
 
474
+ #: src/helper/abstract/Helper_Abstract_Options.php:4371
475
  msgid "mm"
476
  msgstr ""
477
 
478
+ #: src/helper/abstract/Helper_Abstract_Options.php:4373
479
  msgid "inches"
480
  msgstr ""
481
 
482
+ #: src/helper/abstract/Helper_Abstract_Options.php:4493
483
  msgid "The callback used for the %s setting is missing."
484
  msgstr ""
485
 
1223
  msgid "You do not have access to view this PDF."
1224
  msgstr ""
1225
 
1226
+ #: src/model/Model_PDF.php:1767
1227
  msgid "The PDF could not be saved."
1228
  msgstr ""
1229
 
1230
+ #: src/model/Model_PDF.php:3587
1231
  msgid "Could not find PDF configuration requested"
1232
  msgstr ""
1233
 
src/helper/abstract/Helper_Abstract_Options.php CHANGED
@@ -188,10 +188,6 @@ abstract class Helper_Abstract_Options implements Helper_Interface_Filters {
188
  * @return void
189
  */
190
  public function set_plugin_settings() {
191
- if ( false == get_option( 'gfpdf_settings' ) ) {
192
- add_option( 'gfpdf_settings' );
193
- }
194
-
195
  /* assign our settings */
196
  $this->settings = $this->get_settings();
197
  }
@@ -306,16 +302,15 @@ abstract class Helper_Abstract_Options implements Helper_Interface_Filters {
306
  *
307
  * We'll check if the transient exists and use it, otherwise get the main plugin settings from the options table
308
  */
309
- $tempSettings = get_transient( 'gfpdf_settings_user_data' );
310
- $is_temp = ( $tempSettings !== false ) ? true : false;
311
 
312
  if ( $is_temp ) {
313
- $settings = $tempSettings;
314
  delete_transient( 'gfpdf_settings_user_data' );
315
- } else {
316
- $settings = ( is_array( get_option( 'gfpdf_settings' ) ) ) ? get_option( 'gfpdf_settings' ) : array();
317
  }
318
 
 
 
319
  /* See https://gravitypdf.com/documentation/v4/gfpdf_get_settings/ for more details about this filter */
320
  return apply_filters( 'gfpdf_get_settings', $settings, $is_temp );
321
  }
@@ -714,7 +709,7 @@ abstract class Helper_Abstract_Options implements Helper_Interface_Filters {
714
  }
715
 
716
  /* First let's grab the current settings */
717
- $options = get_option( 'gfpdf_settings' );
718
 
719
  /* See https://gravitypdf.com/documentation/v4/gfpdf_update_option/ for more details about these filters */
720
  $value = apply_filters( 'gfpdf_update_option', $value, $key );
@@ -758,7 +753,7 @@ abstract class Helper_Abstract_Options implements Helper_Interface_Filters {
758
  }
759
 
760
  // First let's grab the current settings
761
- $options = get_option( 'gfpdf_settings' );
762
 
763
  // Next let's try to update the value
764
  if ( isset( $options[ $key ] ) ) {
188
  * @return void
189
  */
190
  public function set_plugin_settings() {
 
 
 
 
191
  /* assign our settings */
192
  $this->settings = $this->get_settings();
193
  }
302
  *
303
  * We'll check if the transient exists and use it, otherwise get the main plugin settings from the options table
304
  */
305
+ $tmp_settings = get_transient( 'gfpdf_settings_user_data' );
306
+ $is_temp = ( $tmp_settings !== false ) ? true : false;
307
 
308
  if ( $is_temp ) {
 
309
  delete_transient( 'gfpdf_settings_user_data' );
 
 
310
  }
311
 
312
+ $settings = ( $is_temp ) ? (array) $tmp_settings : get_option( 'gfpdf_settings', array() );
313
+
314
  /* See https://gravitypdf.com/documentation/v4/gfpdf_get_settings/ for more details about this filter */
315
  return apply_filters( 'gfpdf_get_settings', $settings, $is_temp );
316
  }
709
  }
710
 
711
  /* First let's grab the current settings */
712
+ $options = get_option( 'gfpdf_settings', array() );
713
 
714
  /* See https://gravitypdf.com/documentation/v4/gfpdf_update_option/ for more details about these filters */
715
  $value = apply_filters( 'gfpdf_update_option', $value, $key );
753
  }
754
 
755
  // First let's grab the current settings
756
+ $options = get_option( 'gfpdf_settings', array() );
757
 
758
  // Next let's try to update the value
759
  if ( isset( $options[ $key ] ) ) {
src/helper/fields/Field_Textarea.php CHANGED
@@ -95,7 +95,7 @@ class Field_Textarea extends Helper_Abstract_Fields {
95
  $value = $this->get_value();
96
 
97
  if ( isset( $this->field->useRichTextEditor ) && true === $this->field->useRichTextEditor ) {
98
- $html = wp_kses_post( $value );
99
  } else {
100
  $html = nl2br( esc_html( $value ) );
101
  }
95
  $value = $this->get_value();
96
 
97
  if ( isset( $this->field->useRichTextEditor ) && true === $this->field->useRichTextEditor ) {
98
+ $html = wp_kses_post( wpautop( $value ) );
99
  } else {
100
  $html = nl2br( esc_html( $value ) );
101
  }
src/model/Model_PDF.php CHANGED
@@ -691,10 +691,12 @@ class Model_PDF extends Helper_Abstract_Model {
691
  * @since 4.0
692
  */
693
  public function get_pdf_url( $pid, $id, $download = false, $print = false, $esc = true ) {
 
694
 
695
  /* Check if permalinks are enabled, otherwise fall back to our ugly link structure for 4.0 (not the same as our v3 links) */
696
- if ( get_option( 'permalink_structure' ) ) {
697
- $url = home_url() . '/pdf/' . $pid . '/' . $id . '/';
 
698
 
699
  if ( $download ) {
700
  $url .= 'download/';
691
  * @since 4.0
692
  */
693
  public function get_pdf_url( $pid, $id, $download = false, $print = false, $esc = true ) {
694
+ global $wp_rewrite;
695
 
696
  /* Check if permalinks are enabled, otherwise fall back to our ugly link structure for 4.0 (not the same as our v3 links) */
697
+ if ( $wp_rewrite->using_permalinks() ) {
698
+ $url = home_url( '/' ) . $wp_rewrite->root; /* Handle "almost pretty" permalinks - fix for IIS servers without modrewrite */
699
+ $url .= 'pdf/' . $pid . '/' . $id . '/';
700
 
701
  if ( $download ) {
702
  $url .= 'download/';
src/model/Model_Shortcodes.php CHANGED
@@ -312,6 +312,7 @@ class Model_Shortcodes extends Helper_Abstract_Model {
312
  * @since 4.0
313
  */
314
  public function add_shortcode_attr( $code, $attr, $value ) {
 
315
  /* if the attribute doesn't already exist... */
316
  if ( ! isset( $code['attr'][ $attr ] ) ) {
317
 
@@ -412,10 +413,12 @@ class Model_Shortcodes extends Helper_Abstract_Model {
412
  if ( ! empty( $matches ) && isset( $matches[2] ) ) {
413
  foreach ( $matches[2] as $key => $code ) {
414
  if ( $code == $shortcode ) {
 
 
415
  $shortcodes[] = array(
416
  'shortcode' => $matches[0][ $key ],
417
  'attr_raw' => $matches[3][ $key ],
418
- 'attr' => shortcode_parse_atts( $matches[3][ $key ] ),
419
  );
420
  }
421
  }
312
  * @since 4.0
313
  */
314
  public function add_shortcode_attr( $code, $attr, $value ) {
315
+
316
  /* if the attribute doesn't already exist... */
317
  if ( ! isset( $code['attr'][ $attr ] ) ) {
318
 
413
  if ( ! empty( $matches ) && isset( $matches[2] ) ) {
414
  foreach ( $matches[2] as $key => $code ) {
415
  if ( $code == $shortcode ) {
416
+ $attr = shortcode_parse_atts( $matches[3][ $key ] );
417
+
418
  $shortcodes[] = array(
419
  'shortcode' => $matches[0][ $key ],
420
  'attr_raw' => $matches[3][ $key ],
421
+ 'attr' => ( is_array( $attr ) ) ? $attr: array(),
422
  );
423
  }
424
  }
src/view/View_PDF.php CHANGED
@@ -390,7 +390,7 @@ class View_PDF extends Helper_Abstract_View {
390
  $container->close();
391
 
392
  /* Output product table, if needed */
393
- if ( ! $products->is_empty() ) {
394
  echo $products->html();
395
  }
396
 
390
  $container->close();
391
 
392
  /* Output product table, if needed */
393
+ if ( $show_individual_product_fields === false && ! $products->is_empty() ) {
394
  echo $products->html();
395
  }
396
 
src/view/html/Settings/system_status.php CHANGED
@@ -1,137 +1,137 @@
1
- <?php
2
-
3
- /**
4
- * System Status Settings View
5
- *
6
- * @package Gravity PDF
7
- * @copyright Copyright (c) 2016, Blue Liquid Designs
8
- * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
- * @since 4.0
10
- *
11
- */
12
-
13
- /* Exit if accessed directly */
14
- if ( ! defined( 'ABSPATH' ) ) {
15
- exit;
16
- }
17
-
18
- /*
19
- This file is part of Gravity PDF.
20
-
21
- Gravity PDF – Copyright (C) 2016, Blue Liquid Designs
22
-
23
- This program is free software; you can redistribute it and/or modify
24
- it under the terms of the GNU General Public License as published by
25
- the Free Software Foundation; either version 2 of the License, or
26
- (at your option) any later version.
27
-
28
- This program is distributed in the hope that it will be useful,
29
- but WITHOUT ANY WARRANTY; without even the implied warranty of
30
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31
- GNU General Public License for more details.
32
-
33
- You should have received a copy of the GNU General Public License
34
- along with this program; if not, write to the Free Software
35
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
36
- */
37
-
38
- ?>
39
-
40
- <div class="hr-divider"></div>
41
-
42
- <h3>
43
- <span>
44
- <i class="fa fa-dashboard"></i>
45
- <?php esc_html_e( 'Installation Status', 'gravity-forms-pdf-extended' ); ?>
46
- </span>
47
- </h3>
48
-
49
- <table id="pdf-system-status" class="form-table">
50
- <tr>
51
- <th scope="row">
52
- <?php esc_html_e( 'WP Memory Available', 'gravity-forms-pdf-extended' ); ?> <?php gform_tooltip( 'pdf_status_wp_memory' ); ?>
53
- </th>
54
-
55
- <td>
56
-
57
- <?php
58
- $ram_icon = 'fa fa-check-circle';
59
- if ( $args['memory'] < 128 && $args['memory'] !== -1 ) {
60
- $ram_icon = 'fa fa-exclamation-triangle';
61
- }
62
- ?>
63
-
64
- <?php if ( $args['memory'] === -1 ): ?>
65
- <?php echo esc_html__( 'Unlimited', 'gravity-forms-pdf-extended' ); ?>
66
- <?php else: ?>
67
- <?php echo $args['memory']; ?>MB
68
- <?php endif; ?>
69
-
70
- <span class="<?php echo $ram_icon; ?>"></span>
71
-
72
- <?php if ( $args['memory'] < 128 && $args['memory'] !== -1 ): ?>
73
- <span class="gf_settings_description">
74
- <?php echo sprintf( esc_html__( 'We strongly recommend you have at least 128MB of available WP Memory (RAM) assigned to your website. %sFind out how to increase this limit%s.', 'gravity-forms-pdf-extended' ), '<br /><a href="https://gravitypdf.com/documentation/v4/user-increasing-memory-limit/">', '</a>' ); ?>
75
- </span>
76
- <?php endif; ?>
77
- </td>
78
- </tr>
79
-
80
- <tr>
81
- <th scope="row">
82
- <?php esc_html_e( 'WordPress Version', 'gravity-forms-pdf-extended' ); ?>
83
- </th>
84
-
85
- <td>
86
- <?php echo $args['wp']; ?>
87
- </td>
88
- </tr>
89
-
90
- <tr>
91
- <th scope="row">
92
- <?php esc_html_e( 'Gravity Forms Version', 'gravity-forms-pdf-extended' ); ?>
93
- </th>
94
-
95
- <td>
96
- <?php echo $args['gf']; ?>
97
- </td>
98
- </tr>
99
-
100
- <tr>
101
- <th scope="row">
102
- <?php esc_html_e( 'PHP Version', 'gravity-forms-pdf-extended' ); ?>
103
- </th>
104
-
105
- <td>
106
- <?php echo $args['php']; ?>
107
- </td>
108
- </tr>
109
-
110
- <tr>
111
- <th scope="row">
112
- <?php esc_html_e( 'Direct PDF Protection', 'gravity-forms-pdf-extended' ); ?> <?php gform_tooltip( 'pdf_protection' ); ?>
113
- </th>
114
-
115
- <td>
116
-
117
- <!-- A placeholder for our JS which will do the check for us, thereby preventing any load time by checking in PHP directly -->
118
- <div id="gfpdf-direct-pdf-protection-check" data-nonce="<?php echo wp_create_nonce( 'gfpdf-direct-pdf-protection' ); ?>">
119
- <noscript><?php esc_html_e( 'You need JavaScript enabled to perform this check.', 'gravity-forms-pdf-extended' ); ?></noscript>
120
-
121
- <div id="gfpdf-direct-pdf-check-protected" style="display: none">
122
- <?php esc_html_e( 'Protected', 'gravity-forms-pdf-extended' ); ?> <span class="fa fa-check-circle"></span>
123
- </div>
124
-
125
- <div id="gfpdf-direct-pdf-check-unprotected" style="display: none">
126
- <strong><?php esc_html_e( 'Unprotected', 'gravity-forms-pdf-extended' ); ?></strong> <span class="fa fa-times-circle"></span>
127
-
128
- <span class="gf_settings_description">
129
- <?php printf( esc_html__( "We've detected the PDFs saved in Gravity PDF's %stmp%s directory can be publically accessed.", 'gravity-forms-pdf-extended' ), '<code>', '</code>' ); ?><br>
130
- <?php printf( esc_html__( 'We recommend you use our %sgfpdf_tmp_location%s filter to %smove the folder outside your public website directory%s.', 'gravity-forms-pdf-extended' ), '<code>', '</code>', '<a href="https://gravitypdf.com/documentation/v4/gfpdf_tmp_location/">', '</a>' ); ?>
131
- </span>
132
- </div>
133
- </div>
134
- </td>
135
- </tr>
136
-
137
- </table>
1
+ <?php
2
+
3
+ /**
4
+ * System Status Settings View
5
+ *
6
+ * @package Gravity PDF
7
+ * @copyright Copyright (c) 2016, Blue Liquid Designs
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 4.0
10
+ *
11
+ */
12
+
13
+ /* Exit if accessed directly */
14
+ if ( ! defined( 'ABSPATH' ) ) {
15
+ exit;
16
+ }
17
+
18
+ /*
19
+ This file is part of Gravity PDF.
20
+
21
+ Gravity PDF – Copyright (C) 2016, Blue Liquid Designs
22
+
23
+ This program is free software; you can redistribute it and/or modify
24
+ it under the terms of the GNU General Public License as published by
25
+ the Free Software Foundation; either version 2 of the License, or
26
+ (at your option) any later version.
27
+
28
+ This program is distributed in the hope that it will be useful,
29
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
30
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31
+ GNU General Public License for more details.
32
+
33
+ You should have received a copy of the GNU General Public License
34
+ along with this program; if not, write to the Free Software
35
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
36
+ */
37
+
38
+ ?>
39
+
40
+ <div class="hr-divider"></div>
41
+
42
+ <h3>
43
+ <span>
44
+ <i class="fa fa-dashboard"></i>
45
+ <?php esc_html_e( 'Installation Status', 'gravity-forms-pdf-extended' ); ?>
46
+ </span>
47
+ </h3>
48
+
49
+ <table id="pdf-system-status" class="form-table">
50
+ <tr>
51
+ <th scope="row">
52
+ <?php esc_html_e( 'WP Memory Available', 'gravity-forms-pdf-extended' ); ?> <?php gform_tooltip( 'pdf_status_wp_memory' ); ?>
53
+ </th>
54
+
55
+ <td>
56
+
57
+ <?php
58
+ $ram_icon = 'fa fa-check-circle';
59
+ if ( $args['memory'] < 128 && $args['memory'] !== -1 ) {
60
+ $ram_icon = 'fa fa-exclamation-triangle';
61
+ }
62
+ ?>
63
+
64
+ <?php if ( $args['memory'] === -1 ): ?>
65
+ <?php echo esc_html__( 'Unlimited', 'gravity-forms-pdf-extended' ); ?>
66
+ <?php else: ?>
67
+ <?php echo $args['memory']; ?>MB
68
+ <?php endif; ?>
69
+
70
+ <span class="<?php echo $ram_icon; ?>"></span>
71
+
72
+ <?php if ( $args['memory'] < 128 && $args['memory'] !== -1 ): ?>
73
+ <span class="gf_settings_description">
74
+ <?php echo sprintf( esc_html__( 'We strongly recommend you have at least 128MB of available WP Memory (RAM) assigned to your website. %sFind out how to increase this limit%s.', 'gravity-forms-pdf-extended' ), '<br /><a href="https://gravitypdf.com/documentation/v4/user-increasing-memory-limit/">', '</a>' ); ?>
75
+ </span>
76
+ <?php endif; ?>
77
+ </td>
78
+ </tr>
79
+
80
+ <tr>
81
+ <th scope="row">
82
+ <?php esc_html_e( 'WordPress Version', 'gravity-forms-pdf-extended' ); ?>
83
+ </th>
84
+
85
+ <td>
86
+ <?php echo $args['wp']; ?>
87
+ </td>
88
+ </tr>
89
+
90
+ <tr>
91
+ <th scope="row">
92
+ <?php esc_html_e( 'Gravity Forms Version', 'gravity-forms-pdf-extended' ); ?>
93
+ </th>
94
+
95
+ <td>
96
+ <?php echo $args['gf']; ?>
97
+ </td>
98
+ </tr>
99
+
100
+ <tr>
101
+ <th scope="row">
102
+ <?php esc_html_e( 'PHP Version', 'gravity-forms-pdf-extended' ); ?>
103
+ </th>
104
+
105
+ <td>
106
+ <?php echo $args['php']; ?>
107
+ </td>
108
+ </tr>
109
+
110
+ <tr>
111
+ <th scope="row">
112
+ <?php esc_html_e( 'Direct PDF Protection', 'gravity-forms-pdf-extended' ); ?> <?php gform_tooltip( 'pdf_protection' ); ?>
113
+ </th>
114
+
115
+ <td>
116
+
117
+ <!-- A placeholder for our JS which will do the check for us, thereby preventing any load time by checking in PHP directly -->
118
+ <div id="gfpdf-direct-pdf-protection-check" data-nonce="<?php echo wp_create_nonce( 'gfpdf-direct-pdf-protection' ); ?>">
119
+ <noscript><?php esc_html_e( 'You need JavaScript enabled to perform this check.', 'gravity-forms-pdf-extended' ); ?></noscript>
120
+
121
+ <div id="gfpdf-direct-pdf-check-protected" style="display: none">
122
+ <?php esc_html_e( 'Protected', 'gravity-forms-pdf-extended' ); ?> <span class="fa fa-check-circle"></span>
123
+ </div>
124
+
125
+ <div id="gfpdf-direct-pdf-check-unprotected" style="display: none">
126
+ <strong><?php esc_html_e( 'Unprotected', 'gravity-forms-pdf-extended' ); ?></strong> <span class="fa fa-times-circle"></span>
127
+
128
+ <span class="gf_settings_description">
129
+ <?php printf( esc_html__( "We've detected the PDFs saved in Gravity PDF's %stmp%s directory can be publically accessed.", 'gravity-forms-pdf-extended' ), '<code>', '</code>' ); ?><br>
130
+ <?php printf( esc_html__( 'We recommend you use our %sgfpdf_tmp_location%s filter to %smove the folder outside your public website directory%s.', 'gravity-forms-pdf-extended' ), '<code>', '</code>', '<a href="https://gravitypdf.com/documentation/v4/gfpdf_tmp_location/">', '</a>' ); ?>
131
+ </span>
132
+ </div>
133
+ </div>
134
+ </td>
135
+ </tr>
136
+
137
+ </table>
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitfeed9bb4a90dc7c1aedfa3d8346e3b4d::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit1df7b282d8067ac85521899a87b4868c::getLoader();
vendor/composer/autoload_namespaces.php CHANGED
@@ -7,5 +7,4 @@ $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
  'QueryPath' => array($vendorDir . '/querypath/querypath/src'),
10
- 'Psr\\Log\\' => array($vendorDir . '/psr/log'),
11
  );
7
 
8
  return array(
9
  'QueryPath' => array($vendorDir . '/querypath/querypath/src'),
 
10
  );
vendor/composer/autoload_psr4.php CHANGED
@@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
 
9
  'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
10
  'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'),
11
  'GFPDF\\View\\' => array($baseDir . '/src/view'),
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
+ 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
10
  'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
11
  'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'),
12
  'GFPDF\\View\\' => array($baseDir . '/src/view'),
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitfeed9bb4a90dc7c1aedfa3d8346e3b4d
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitfeed9bb4a90dc7c1aedfa3d8346e3b4d
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitfeed9bb4a90dc7c1aedfa3d8346e3b4d', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitfeed9bb4a90dc7c1aedfa3d8346e3b4d', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInitfeed9bb4a90dc7c1aedfa3d8346e3b4d
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
- $includeFiles = Composer\Autoload\ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequirefeed9bb4a90dc7c1aedfa3d8346e3b4d($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
- function composerRequirefeed9bb4a90dc7c1aedfa3d8346e3b4d($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit1df7b282d8067ac85521899a87b4868c
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit1df7b282d8067ac85521899a87b4868c', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit1df7b282d8067ac85521899a87b4868c', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit1df7b282d8067ac85521899a87b4868c::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInit1df7b282d8067ac85521899a87b4868c::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequire1df7b282d8067ac85521899a87b4868c($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
+ function composerRequire1df7b282d8067ac85521899a87b4868c($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,13 +4,17 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d
8
  {
9
  public static $files = array (
10
  'e9b046393eb3376a21bcc1a30bd2fe64' => __DIR__ . '/..' . '/querypath/querypath/src/qp_functions.php',
11
  );
12
 
13
  public static $prefixLengthsPsr4 = array (
 
 
 
 
14
  'M' =>
15
  array (
16
  'Monolog\\' => 8,
@@ -29,6 +33,10 @@ class ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d
29
  );
30
 
31
  public static $prefixDirsPsr4 = array (
 
 
 
 
32
  'Monolog\\' =>
33
  array (
34
  0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',
@@ -77,13 +85,6 @@ class ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d
77
  0 => __DIR__ . '/..' . '/querypath/querypath/src',
78
  ),
79
  ),
80
- 'P' =>
81
- array (
82
- 'Psr\\Log\\' =>
83
- array (
84
- 0 => __DIR__ . '/..' . '/psr/log',
85
- ),
86
- ),
87
  );
88
 
89
  public static $classMap = array (
@@ -351,10 +352,10 @@ class ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d
351
  public static function getInitializer(ClassLoader $loader)
352
  {
353
  return \Closure::bind(function () use ($loader) {
354
- $loader->prefixLengthsPsr4 = ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d::$prefixLengthsPsr4;
355
- $loader->prefixDirsPsr4 = ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d::$prefixDirsPsr4;
356
- $loader->prefixesPsr0 = ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d::$prefixesPsr0;
357
- $loader->classMap = ComposerStaticInitfeed9bb4a90dc7c1aedfa3d8346e3b4d::$classMap;
358
 
359
  }, null, ClassLoader::class);
360
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit1df7b282d8067ac85521899a87b4868c
8
  {
9
  public static $files = array (
10
  'e9b046393eb3376a21bcc1a30bd2fe64' => __DIR__ . '/..' . '/querypath/querypath/src/qp_functions.php',
11
  );
12
 
13
  public static $prefixLengthsPsr4 = array (
14
+ 'P' =>
15
+ array (
16
+ 'Psr\\Log\\' => 8,
17
+ ),
18
  'M' =>
19
  array (
20
  'Monolog\\' => 8,
33
  );
34
 
35
  public static $prefixDirsPsr4 = array (
36
+ 'Psr\\Log\\' =>
37
+ array (
38
+ 0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
39
+ ),
40
  'Monolog\\' =>
41
  array (
42
  0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',
85
  0 => __DIR__ . '/..' . '/querypath/querypath/src',
86
  ),
87
  ),
 
 
 
 
 
 
 
88
  );
89
 
90
  public static $classMap = array (
352
  public static function getInitializer(ClassLoader $loader)
353
  {
354
  return \Closure::bind(function () use ($loader) {
355
+ $loader->prefixLengthsPsr4 = ComposerStaticInit1df7b282d8067ac85521899a87b4868c::$prefixLengthsPsr4;
356
+ $loader->prefixDirsPsr4 = ComposerStaticInit1df7b282d8067ac85521899a87b4868c::$prefixDirsPsr4;
357
+ $loader->prefixesPsr0 = ComposerStaticInit1df7b282d8067ac85521899a87b4868c::$prefixesPsr0;
358
+ $loader->classMap = ComposerStaticInit1df7b282d8067ac85521899a87b4868c::$classMap;
359
 
360
  }, null, ClassLoader::class);
361
  }
vendor/composer/installed.json CHANGED
@@ -50,27 +50,88 @@
50
  "pdf"
51
  ]
52
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  {
54
  "name": "psr/log",
55
- "version": "1.0.0",
56
- "version_normalized": "1.0.0.0",
57
  "source": {
58
  "type": "git",
59
  "url": "https://github.com/php-fig/log.git",
60
- "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
61
  },
62
  "dist": {
63
  "type": "zip",
64
- "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
65
- "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
66
  "shasum": ""
67
  },
68
- "time": "2012-12-21 11:40:51",
 
 
 
69
  "type": "library",
 
 
 
 
 
70
  "installation-source": "dist",
71
  "autoload": {
72
- "psr-0": {
73
- "Psr\\Log\\": ""
74
  }
75
  },
76
  "notification-url": "https://packagist.org/downloads/",
@@ -84,6 +145,7 @@
84
  }
85
  ],
86
  "description": "Common interface for logging libraries",
 
87
  "keywords": [
88
  "log",
89
  "psr",
@@ -170,17 +232,17 @@
170
  },
171
  {
172
  "name": "masterminds/html5",
173
- "version": "2.2.1",
174
- "version_normalized": "2.2.1.0",
175
  "source": {
176
  "type": "git",
177
  "url": "https://github.com/Masterminds/html5-php.git",
178
- "reference": "170aa5cb35b29fccafbf5ea63487c013f396fdc9"
179
  },
180
  "dist": {
181
  "type": "zip",
182
- "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/170aa5cb35b29fccafbf5ea63487c013f396fdc9",
183
- "reference": "170aa5cb35b29fccafbf5ea63487c013f396fdc9",
184
  "shasum": ""
185
  },
186
  "require": {
@@ -192,11 +254,11 @@
192
  "sami/sami": "~2.0",
193
  "satooshi/php-coveralls": "1.0.*"
194
  },
195
- "time": "2016-05-10 14:11:45",
196
  "type": "library",
197
  "extra": {
198
  "branch-alias": {
199
- "dev-master": "2.1-dev"
200
  }
201
  },
202
  "installation-source": "dist",
@@ -278,58 +340,5 @@
278
  "xml",
279
  "xslt"
280
  ]
281
- },
282
- {
283
- "name": "blueliquiddesigns/mpdf",
284
- "version": "dev-wordpress-master",
285
- "version_normalized": "dev-wordpress-master",
286
- "source": {
287
- "type": "git",
288
- "url": "https://github.com/GravityPDF/mpdf.git",
289
- "reference": "4e63bae49b5fd2fa141031107ac8044f07c0e7b1"
290
- },
291
- "dist": {
292
- "type": "zip",
293
- "url": "https://api.github.com/repos/GravityPDF/mpdf/zipball/4e63bae49b5fd2fa141031107ac8044f07c0e7b1",
294
- "reference": "4e63bae49b5fd2fa141031107ac8044f07c0e7b1",
295
- "shasum": ""
296
- },
297
- "require": {
298
- "ext-mbstring": "*",
299
- "php": ">=5.4.0",
300
- "setasign/fpdi": "1.6.*"
301
- },
302
- "require-dev": {
303
- "phpunit/phpunit": "^4.7"
304
- },
305
- "suggest": {
306
- "ext-zlib": "Needed for compression of embedded resources, such as fonts"
307
- },
308
- "time": "2016-08-09 06:28:57",
309
- "type": "library",
310
- "installation-source": "dist",
311
- "autoload": {
312
- "classmap": [
313
- "mpdf.php",
314
- "classes"
315
- ]
316
- },
317
- "notification-url": "https://packagist.org/downloads/",
318
- "license": [
319
- "GPL-2.0"
320
- ],
321
- "authors": [
322
- {
323
- "name": "Ian Back",
324
- "role": "Developer"
325
- }
326
- ],
327
- "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support, with a strong focus on WordPress integration. If you just want a standalone option (without WordPress) use the mpdf/mpdf packagist option.",
328
- "homepage": "http://mpdf.github.io",
329
- "keywords": [
330
- "pdf",
331
- "php",
332
- "utf-8"
333
- ]
334
  }
335
  ]
50
  "pdf"
51
  ]
52
  },
53
+ {
54
+ "name": "blueliquiddesigns/mpdf",
55
+ "version": "dev-wordpress-master",
56
+ "version_normalized": "dev-wordpress-master",
57
+ "source": {
58
+ "type": "git",
59
+ "url": "https://github.com/GravityPDF/mpdf.git",
60
+ "reference": "4e63bae49b5fd2fa141031107ac8044f07c0e7b1"
61
+ },
62
+ "dist": {
63
+ "type": "zip",
64
+ "url": "https://api.github.com/repos/GravityPDF/mpdf/zipball/4e63bae49b5fd2fa141031107ac8044f07c0e7b1",
65
+ "reference": "4e63bae49b5fd2fa141031107ac8044f07c0e7b1",
66
+ "shasum": ""
67
+ },
68
+ "require": {
69
+ "ext-mbstring": "*",
70
+ "php": ">=5.4.0",
71
+ "setasign/fpdi": "1.6.*"
72
+ },
73
+ "require-dev": {
74
+ "phpunit/phpunit": "^4.7"
75
+ },
76
+ "suggest": {
77
+ "ext-zlib": "Needed for compression of embedded resources, such as fonts"
78
+ },
79
+ "time": "2016-08-09 06:28:57",
80
+ "type": "library",
81
+ "installation-source": "dist",
82
+ "autoload": {
83
+ "classmap": [
84
+ "mpdf.php",
85
+ "classes"
86
+ ]
87
+ },
88
+ "notification-url": "https://packagist.org/downloads/",
89
+ "license": [
90
+ "GPL-2.0"
91
+ ],
92
+ "authors": [
93
+ {
94
+ "name": "Ian Back",
95
+ "role": "Developer"
96
+ }
97
+ ],
98
+ "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support, with a strong focus on WordPress integration. If you just want a standalone option (without WordPress) use the mpdf/mpdf packagist option.",
99
+ "homepage": "http://mpdf.github.io",
100
+ "keywords": [
101
+ "pdf",
102
+ "php",
103
+ "utf-8"
104
+ ]
105
+ },
106
  {
107
  "name": "psr/log",
108
+ "version": "1.0.1",
109
+ "version_normalized": "1.0.1.0",
110
  "source": {
111
  "type": "git",
112
  "url": "https://github.com/php-fig/log.git",
113
+ "reference": "5277094ed527a1c4477177d102fe4c53551953e0"
114
  },
115
  "dist": {
116
  "type": "zip",
117
+ "url": "https://api.github.com/repos/php-fig/log/zipball/5277094ed527a1c4477177d102fe4c53551953e0",
118
+ "reference": "5277094ed527a1c4477177d102fe4c53551953e0",
119
  "shasum": ""
120
  },
121
+ "require": {
122
+ "php": ">=5.3.0"
123
+ },
124
+ "time": "2016-09-19 16:02:08",
125
  "type": "library",
126
+ "extra": {
127
+ "branch-alias": {
128
+ "dev-master": "1.0.x-dev"
129
+ }
130
+ },
131
  "installation-source": "dist",
132
  "autoload": {
133
+ "psr-4": {
134
+ "Psr\\Log\\": "Psr/Log/"
135
  }
136
  },
137
  "notification-url": "https://packagist.org/downloads/",
145
  }
146
  ],
147
  "description": "Common interface for logging libraries",
148
+ "homepage": "https://github.com/php-fig/log",
149
  "keywords": [
150
  "log",
151
  "psr",
232
  },
233
  {
234
  "name": "masterminds/html5",
235
+ "version": "2.2.2",
236
+ "version_normalized": "2.2.2.0",
237
  "source": {
238
  "type": "git",
239
  "url": "https://github.com/Masterminds/html5-php.git",
240
+ "reference": "7866e93dcf0245de22378414e0c2c7350abc45af"
241
  },
242
  "dist": {
243
  "type": "zip",
244
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/7866e93dcf0245de22378414e0c2c7350abc45af",
245
+ "reference": "7866e93dcf0245de22378414e0c2c7350abc45af",
246
  "shasum": ""
247
  },
248
  "require": {
254
  "sami/sami": "~2.0",
255
  "satooshi/php-coveralls": "1.0.*"
256
  },
257
+ "time": "2016-09-22 11:01:11",
258
  "type": "library",
259
  "extra": {
260
  "branch-alias": {
261
+ "dev-master": "2.2-dev"
262
  }
263
  },
264
  "installation-source": "dist",
340
  "xml",
341
  "xslt"
342
  ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  }
344
  ]
vendor/masterminds/html5/RELEASE.md CHANGED
@@ -1,10 +1,17 @@
1
  # Release Notes
2
 
3
- 2.2.1 (2015-05-10)
4
 
5
- - #109: Fixed issue where address tag could be written without closing tag
 
 
 
6
 
7
- 2.2.0 (2015-04-11)
 
 
 
 
8
 
9
  - #105: Enable composer cache (for CI/CD)
10
  - #100: Use mb_substitute_character inset of ini_set for environments where
1
  # Release Notes
2
 
3
+ 2.2.2 (2016-10-22)
4
 
5
+ - #116: In XML mode, tags are case sensitive
6
+ - #115: Fix PHP Notice in OutputRules
7
+ - #112: fix parsing of options of an optgroup
8
+ - #111: Adding test for the address tag
9
 
10
+ 2.2.1 (2016-05-10)
11
+
12
+ - #109: Fixed issue where address tag could be written without closing tag (thanks sylus)
13
+
14
+ 2.2.0 (2016-04-11)
15
 
16
  - #105: Enable composer cache (for CI/CD)
17
  - #100: Use mb_substitute_character inset of ini_set for environments where
vendor/masterminds/html5/composer.json CHANGED
@@ -36,7 +36,7 @@
36
  },
37
  "extra": {
38
  "branch-alias": {
39
- "dev-master": "2.1-dev"
40
  }
41
  }
42
  }
36
  },
37
  "extra": {
38
  "branch-alias": {
39
+ "dev-master": "2.2-dev"
40
  }
41
  }
42
  }
vendor/masterminds/html5/src/HTML5.php CHANGED
@@ -166,9 +166,10 @@ class HTML5
166
  public function parse(\Masterminds\HTML5\Parser\InputStream $input, array $options = array())
167
  {
168
  $this->errors = array();
169
- $events = new DOMTreeBuilder(false, array_merge($this->getOptions(), $options));
 
170
  $scanner = new Scanner($input);
171
- $parser = new Tokenizer($scanner, $events);
172
 
173
  $parser->parse();
174
  $this->errors = $events->getErrors();
@@ -184,9 +185,10 @@ class HTML5
184
  */
185
  public function parseFragment(\Masterminds\HTML5\Parser\InputStream $input, array $options = array())
186
  {
187
- $events = new DOMTreeBuilder(true, array_merge($this->getOptions(), $options));
 
188
  $scanner = new Scanner($input);
189
- $parser = new Tokenizer($scanner, $events);
190
 
191
  $parser->parse();
192
  $this->errors = $events->getErrors();
166
  public function parse(\Masterminds\HTML5\Parser\InputStream $input, array $options = array())
167
  {
168
  $this->errors = array();
169
+ $options = array_merge($this->getOptions(), $options);
170
+ $events = new DOMTreeBuilder(false, $options);
171
  $scanner = new Scanner($input);
172
+ $parser = new Tokenizer($scanner, $events, !empty($options['xmlNamespaces']) ? Tokenizer::CONFORMANT_XML: Tokenizer::CONFORMANT_HTML);
173
 
174
  $parser->parse();
175
  $this->errors = $events->getErrors();
185
  */
186
  public function parseFragment(\Masterminds\HTML5\Parser\InputStream $input, array $options = array())
187
  {
188
+ $options = array_merge($this->getOptions(), $options);
189
+ $events = new DOMTreeBuilder(true, $options);
190
  $scanner = new Scanner($input);
191
+ $parser = new Tokenizer($scanner, $events, !empty($options['xmlNamespaces']) ? Tokenizer::CONFORMANT_XML: Tokenizer::CONFORMANT_HTML);
192
 
193
  $parser->parse();
194
  $this->errors = $events->getErrors();
vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php CHANGED
@@ -43,6 +43,10 @@ class Tokenizer
43
  protected $textMode = 0; // TEXTMODE_NORMAL;
44
  protected $untilTag = null;
45
 
 
 
 
 
46
  const WHITE = "\t\n\f ";
47
 
48
  /**
@@ -57,11 +61,13 @@ class Tokenizer
57
  * @param \Masterminds\HTML5\Parser\EventHandler $eventHandler
58
  * An event handler, initialized and ready to receive
59
  * events.
 
60
  */
61
- public function __construct($scanner, $eventHandler)
62
  {
63
  $this->scanner = $scanner;
64
  $this->events = $eventHandler;
 
65
  }
66
 
67
  /**
@@ -335,7 +341,8 @@ class Tokenizer
335
  return $this->bogusComment('</');
336
  }
337
 
338
- $name = strtolower($this->scanner->charsUntil("\n\f \t>"));
 
339
  // Trash whitespace.
340
  $this->scanner->whitespace();
341
 
@@ -362,7 +369,8 @@ class Tokenizer
362
  }
363
 
364
  // We know this is at least one char.
365
- $name = strtolower($this->scanner->charsWhile(":_-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
 
366
  $attributes = array();
367
  $selfClose = false;
368
 
43
  protected $textMode = 0; // TEXTMODE_NORMAL;
44
  protected $untilTag = null;
45
 
46
+ const CONFORMANT_XML = 'xml';
47
+ const CONFORMANT_HTML = 'html';
48
+ protected $mode = self::CONFORMANT_HTML;
49
+
50
  const WHITE = "\t\n\f ";
51
 
52
  /**
61
  * @param \Masterminds\HTML5\Parser\EventHandler $eventHandler
62
  * An event handler, initialized and ready to receive
63
  * events.
64
+ * @param string $mode
65
  */
66
+ public function __construct($scanner, $eventHandler, $mode = self::CONFORMANT_HTML)
67
  {
68
  $this->scanner = $scanner;
69
  $this->events = $eventHandler;
70
+ $this->mode = $mode;
71
  }
72
 
73
  /**
341
  return $this->bogusComment('</');
342
  }
343
 
344
+ $name = $this->scanner->charsUntil("\n\f \t>");
345
+ $name = $this->mode === self::CONFORMANT_XML ? $name: strtolower($name);
346
  // Trash whitespace.
347
  $this->scanner->whitespace();
348
 
369
  }
370
 
371
  // We know this is at least one char.
372
+ $name = $this->scanner->charsWhile(":_-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
373
+ $name = $this->mode === self::CONFORMANT_XML ? $name : strtolower($name);
374
  $attributes = array();
375
  $selfClose = false;
376
 
vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php CHANGED
@@ -76,7 +76,6 @@ class TreeBuildingRules
76
  case 'option':
77
  return $this->closeIfCurrentMatches($new, $current, array(
78
  'option',
79
- 'optgroup'
80
  ));
81
  case 'tr':
82
  return $this->closeIfCurrentMatches($new, $current, array(
76
  case 'option':
77
  return $this->closeIfCurrentMatches($new, $current, array(
78
  'option',
 
79
  ));
80
  case 'tr':
81
  return $this->closeIfCurrentMatches($new, $current, array(
vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php CHANGED
@@ -221,7 +221,11 @@ class OutputRules implements \Masterminds\HTML5\Serializer\RulesInterface
221
  $this->openTag($ele);
222
  if (Elements::isA($name, Elements::TEXT_RAW)) {
223
  foreach ($ele->childNodes as $child) {
224
- $this->wr($child->data);
 
 
 
 
225
  }
226
  } else {
227
  // Handle children.
221
  $this->openTag($ele);
222
  if (Elements::isA($name, Elements::TEXT_RAW)) {
223
  foreach ($ele->childNodes as $child) {
224
+ if ($child instanceof \DOMCharacterData) {
225
+ $this->wr($child->data);
226
+ } elseif ($child instanceof \DOMElement) {
227
+ $this->element($child);
228
+ }
229
  }
230
  } else {
231
  // Handle children.
vendor/masterminds/html5/test/HTML5/Html5Test.php CHANGED
@@ -399,6 +399,18 @@ class Html5Test extends TestCase
399
  $this->assertRegExp('|R&amp;D|', $res);
400
  }
401
 
 
 
 
 
 
 
 
 
 
 
 
 
402
  public function testComment()
403
  {
404
  $res = $this->cycle('a<!-- This is a test. -->b');
399
  $this->assertRegExp('|R&amp;D|', $res);
400
  }
401
 
402
+ public function testCaseSensitiveTags()
403
+ {
404
+ $dom = $this->html5->loadHTML(
405
+ '<html><body><Button color="red">Error</Button></body></html>',
406
+ array(
407
+ "xmlNamespaces" => true
408
+ )
409
+ );
410
+ $out = $this->html5->saveHTML($dom);
411
+ $this->assertRegExp('|<html><body><Button color="red">Error</Button></body></html>|', $out);
412
+ }
413
+
414
  public function testComment()
415
  {
416
  $res = $this->cycle('a<!-- This is a test. -->b');
vendor/masterminds/html5/test/HTML5/Parser/DOMTreeBuilderTest.php CHANGED
@@ -540,4 +540,33 @@ class DOMTreeBuilderTest extends \Masterminds\HTML5\Tests\TestCase
540
  $this->assertEquals('div', $div->tagName);
541
  $this->assertEquals('foo', $div->textContent);
542
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
543
  }
540
  $this->assertEquals('div', $div->tagName);
541
  $this->assertEquals('foo', $div->textContent);
542
  }
543
+
544
+ public function testSelectGroupedOptions()
545
+ {
546
+ $html = <<<EOM
547
+ <!DOCTYPE html>
548
+ <html>
549
+ <head>
550
+ <title>testSelectGroupedOptions</title>
551
+ </head>
552
+ <body>
553
+ <select>
554
+ <optgroup id="first" label="first">
555
+ <option value="foo">foo</option>
556
+ <option value="bar">bar</option>
557
+ <option value="baz">baz</option>
558
+ </optgroup>
559
+ <optgroup id="second" label="second">
560
+ <option value="lorem">lorem</option>
561
+ <option value="ipsum">ipsum</option>
562
+ </optgroup>
563
+ </select>
564
+ </body>
565
+ </html>
566
+ EOM;
567
+ $dom = $this->parse($html);
568
+
569
+ $this->assertSame(3, $dom->getElementById('first')->getElementsByTagName('option')->length);
570
+ $this->assertSame(2, $dom->getElementById('second')->getElementsByTagName('option')->length);
571
+ }
572
  }
vendor/masterminds/html5/test/HTML5/Parser/TreeBuildingRulesTest.php CHANGED
@@ -90,6 +90,19 @@ class TreeBuildingRulesTest extends \Masterminds\HTML5\Tests\TestCase
90
  $this->assertEquals('dd', $list->lastChild->tagName);
91
  }
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  public function testTable()
94
  {
95
  $html = sprintf(self::HTML_STUB, '<table><thead id="a"><th>foo<td>bar<td>baz');
90
  $this->assertEquals('dd', $list->lastChild->tagName);
91
  }
92
 
93
+ public function testHandleOptionGroupAndOption()
94
+ {
95
+ $html = sprintf(self::HTML_STUB, '<optgroup id="foo" label="foo" ><option value="foo">bar</option></optgroup>');
96
+ $doc = $this->parse($html);
97
+
98
+ $list = $doc->getElementById('foo');
99
+
100
+ $this->assertEquals(1, $list->childNodes->length);
101
+
102
+ $option = $list->childNodes->item(0);
103
+ $this->assertEquals('option', $option->tagName);
104
+ }
105
+
106
  public function testTable()
107
  {
108
  $html = sprintf(self::HTML_STUB, '<table><thead id="a"><th>foo<td>bar<td>baz');
vendor/masterminds/html5/test/HTML5/Serializer/OutputRulesTest.php CHANGED
@@ -3,6 +3,7 @@ namespace Masterminds\HTML5\Tests\Serializer;
3
 
4
  use Masterminds\HTML5\Serializer\OutputRules;
5
  use Masterminds\HTML5\Serializer\Traverser;
 
6
 
7
  class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
8
  {
@@ -18,6 +19,11 @@ class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
18
  </body>
19
  </html>';
20
 
 
 
 
 
 
21
  public function setUp()
22
  {
23
  $this->html5 = $this->getInstance();
@@ -29,7 +35,7 @@ class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
29
  * @param string $name
30
  * The name of the method on the Traverser class to test.
31
  *
32
- * @return \ReflectionMethod \ReflectionMethod for the specified method
33
  */
34
  public function getProtectedMethod($name)
35
  {
@@ -613,4 +619,32 @@ class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
613
  $this->assertRegExp('|contact persons for the <a href="Activity">W3C HTML Activity</a>|', $contents);
614
  $this->assertRegExp('|</address>|', $contents);
615
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
616
  }
3
 
4
  use Masterminds\HTML5\Serializer\OutputRules;
5
  use Masterminds\HTML5\Serializer\Traverser;
6
+ use Masterminds\HTML5;
7
 
8
  class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
9
  {
19
  </body>
20
  </html>';
21
 
22
+ /**
23
+ * @var HTML5
24
+ */
25
+ protected $html5;
26
+
27
  public function setUp()
28
  {
29
  $this->html5 = $this->getInstance();
35
  * @param string $name
36
  * The name of the method on the Traverser class to test.
37
  *
38
+ * @return \ReflectionMethod for the specified method
39
  */
40
  public function getProtectedMethod($name)
41
  {
619
  $this->assertRegExp('|contact persons for the <a href="Activity">W3C HTML Activity</a>|', $contents);
620
  $this->assertRegExp('|</address>|', $contents);
621
  }
622
+
623
+ /**
624
+ * Ensure direct DOM manipulation doesn't break TEXT_RAW elements (iframe, script, etc...)
625
+ */
626
+ public function testHandlingInvalidRawContent()
627
+ {
628
+ $dom = $this->html5->loadHTML(
629
+ '<!doctype html>
630
+ <html lang="en" id="base">
631
+ <body>
632
+ <script id="template" type="x-tmpl-mustache">
633
+ <h1>Hello!</h1>
634
+ </script>
635
+ </body>
636
+ </html>');
637
+
638
+ $badNode = $dom->createElement("p", "Bar");
639
+
640
+ // modify the content of the TEXT_RAW element: <script id="template"> appending dom nodes
641
+ $styleElement = $dom->getElementById("template");
642
+ $styleElement->appendChild($badNode);
643
+
644
+ $contents = $this->html5->saveHTML($dom);
645
+
646
+ $this->assertTrue(strpos($contents, '<script id="template" type="x-tmpl-mustache">
647
+ <h1>Hello!</h1>
648
+ <p>Bar</p></script>')!==false);
649
+ }
650
  }
vendor/psr/log/Psr/Log/AbstractLogger.php CHANGED
@@ -15,7 +15,8 @@ abstract class AbstractLogger implements LoggerInterface
15
  * System is unusable.
16
  *
17
  * @param string $message
18
- * @param array $context
 
19
  * @return null
20
  */
21
  public function emergency($message, array $context = array())
@@ -30,7 +31,8 @@ abstract class AbstractLogger implements LoggerInterface
30
  * trigger the SMS alerts and wake you up.
31
  *
32
  * @param string $message
33
- * @param array $context
 
34
  * @return null
35
  */
36
  public function alert($message, array $context = array())
@@ -44,7 +46,8 @@ abstract class AbstractLogger implements LoggerInterface
44
  * Example: Application component unavailable, unexpected exception.
45
  *
46
  * @param string $message
47
- * @param array $context
 
48
  * @return null
49
  */
50
  public function critical($message, array $context = array())
@@ -57,7 +60,8 @@ abstract class AbstractLogger implements LoggerInterface
57
  * be logged and monitored.
58
  *
59
  * @param string $message
60
- * @param array $context
 
61
  * @return null
62
  */
63
  public function error($message, array $context = array())
@@ -72,7 +76,8 @@ abstract class AbstractLogger implements LoggerInterface
72
  * that are not necessarily wrong.
73
  *
74
  * @param string $message
75
- * @param array $context
 
76
  * @return null
77
  */
78
  public function warning($message, array $context = array())
@@ -84,7 +89,8 @@ abstract class AbstractLogger implements LoggerInterface
84
  * Normal but significant events.
85
  *
86
  * @param string $message
87
- * @param array $context
 
88
  * @return null
89
  */
90
  public function notice($message, array $context = array())
@@ -98,7 +104,8 @@ abstract class AbstractLogger implements LoggerInterface
98
  * Example: User logs in, SQL logs.
99
  *
100
  * @param string $message
101
- * @param array $context
 
102
  * @return null
103
  */
104
  public function info($message, array $context = array())
@@ -110,7 +117,8 @@ abstract class AbstractLogger implements LoggerInterface
110
  * Detailed debug information.
111
  *
112
  * @param string $message
113
- * @param array $context
 
114
  * @return null
115
  */
116
  public function debug($message, array $context = array())
15
  * System is unusable.
16
  *
17
  * @param string $message
18
+ * @param array $context
19
+ *
20
  * @return null
21
  */
22
  public function emergency($message, array $context = array())
31
  * trigger the SMS alerts and wake you up.
32
  *
33
  * @param string $message
34
+ * @param array $context
35
+ *
36
  * @return null
37
  */
38
  public function alert($message, array $context = array())
46
  * Example: Application component unavailable, unexpected exception.
47
  *
48
  * @param string $message
49
+ * @param array $context
50
+ *
51
  * @return null
52
  */
53
  public function critical($message, array $context = array())
60
  * be logged and monitored.
61
  *
62
  * @param string $message
63
+ * @param array $context
64
+ *
65
  * @return null
66
  */
67
  public function error($message, array $context = array())
76
  * that are not necessarily wrong.
77
  *
78
  * @param string $message
79
+ * @param array $context
80
+ *
81
  * @return null
82
  */
83
  public function warning($message, array $context = array())
89
  * Normal but significant events.
90
  *
91
  * @param string $message
92
+ * @param array $context
93
+ *
94
  * @return null
95
  */
96
  public function notice($message, array $context = array())
104
  * Example: User logs in, SQL logs.
105
  *
106
  * @param string $message
107
+ * @param array $context
108
+ *
109
  * @return null
110
  */
111
  public function info($message, array $context = array())
117
  * Detailed debug information.
118
  *
119
  * @param string $message
120
+ * @param array $context
121
+ *
122
  * @return null
123
  */
124
  public function debug($message, array $context = array())
vendor/psr/log/Psr/Log/LogLevel.php CHANGED
@@ -3,16 +3,16 @@
3
  namespace Psr\Log;
4
 
5
  /**
6
- * Describes log levels
7
  */
8
  class LogLevel
9
  {
10
  const EMERGENCY = 'emergency';
11
- const ALERT = 'alert';
12
- const CRITICAL = 'critical';
13
- const ERROR = 'error';
14
- const WARNING = 'warning';
15
- const NOTICE = 'notice';
16
- const INFO = 'info';
17
- const DEBUG = 'debug';
18
  }
3
  namespace Psr\Log;
4
 
5
  /**
6
+ * Describes log levels.
7
  */
8
  class LogLevel
9
  {
10
  const EMERGENCY = 'emergency';
11
+ const ALERT = 'alert';
12
+ const CRITICAL = 'critical';
13
+ const ERROR = 'error';
14
+ const WARNING = 'warning';
15
+ const NOTICE = 'notice';
16
+ const INFO = 'info';
17
+ const DEBUG = 'debug';
18
  }
vendor/psr/log/Psr/Log/LoggerAwareInterface.php CHANGED
@@ -3,14 +3,15 @@
3
  namespace Psr\Log;
4
 
5
  /**
6
- * Describes a logger-aware instance
7
  */
8
  interface LoggerAwareInterface
9
  {
10
  /**
11
- * Sets a logger instance on the object
12
  *
13
  * @param LoggerInterface $logger
 
14
  * @return null
15
  */
16
  public function setLogger(LoggerInterface $logger);
3
  namespace Psr\Log;
4
 
5
  /**
6
+ * Describes a logger-aware instance.
7
  */
8
  interface LoggerAwareInterface
9
  {
10
  /**
11
+ * Sets a logger instance on the object.
12
  *
13
  * @param LoggerInterface $logger
14
+ *
15
  * @return null
16
  */
17
  public function setLogger(LoggerInterface $logger);
vendor/psr/log/Psr/Log/LoggerAwareTrait.php CHANGED
@@ -7,12 +7,16 @@ namespace Psr\Log;
7
  */
8
  trait LoggerAwareTrait
9
  {
10
- /** @var LoggerInterface */
 
 
 
 
11
  protected $logger;
12
 
13
  /**
14
  * Sets a logger.
15
- *
16
  * @param LoggerInterface $logger
17
  */
18
  public function setLogger(LoggerInterface $logger)
7
  */
8
  trait LoggerAwareTrait
9
  {
10
+ /**
11
+ * The logger instance.
12
+ *
13
+ * @var LoggerInterface
14
+ */
15
  protected $logger;
16
 
17
  /**
18
  * Sets a logger.
19
+ *
20
  * @param LoggerInterface $logger
21
  */
22
  public function setLogger(LoggerInterface $logger)
vendor/psr/log/Psr/Log/LoggerInterface.php CHANGED
@@ -3,14 +3,14 @@
3
  namespace Psr\Log;
4
 
5
  /**
6
- * Describes a logger instance
7
  *
8
  * The message MUST be a string or object implementing __toString().
9
  *
10
  * The message MAY contain placeholders in the form: {foo} where foo
11
  * will be replaced by the context data in key "foo".
12
  *
13
- * The context array can contain arbitrary data, the only assumption that
14
  * can be made by implementors is that if an Exception instance is given
15
  * to produce a stack trace, it MUST be in a key named "exception".
16
  *
@@ -23,7 +23,8 @@ interface LoggerInterface
23
  * System is unusable.
24
  *
25
  * @param string $message
26
- * @param array $context
 
27
  * @return null
28
  */
29
  public function emergency($message, array $context = array());
@@ -35,7 +36,8 @@ interface LoggerInterface
35
  * trigger the SMS alerts and wake you up.
36
  *
37
  * @param string $message
38
- * @param array $context
 
39
  * @return null
40
  */
41
  public function alert($message, array $context = array());
@@ -46,7 +48,8 @@ interface LoggerInterface
46
  * Example: Application component unavailable, unexpected exception.
47
  *
48
  * @param string $message
49
- * @param array $context
 
50
  * @return null
51
  */
52
  public function critical($message, array $context = array());
@@ -56,7 +59,8 @@ interface LoggerInterface
56
  * be logged and monitored.
57
  *
58
  * @param string $message
59
- * @param array $context
 
60
  * @return null
61
  */
62
  public function error($message, array $context = array());
@@ -68,7 +72,8 @@ interface LoggerInterface
68
  * that are not necessarily wrong.
69
  *
70
  * @param string $message
71
- * @param array $context
 
72
  * @return null
73
  */
74
  public function warning($message, array $context = array());
@@ -77,7 +82,8 @@ interface LoggerInterface
77
  * Normal but significant events.
78
  *
79
  * @param string $message
80
- * @param array $context
 
81
  * @return null
82
  */
83
  public function notice($message, array $context = array());
@@ -88,7 +94,8 @@ interface LoggerInterface
88
  * Example: User logs in, SQL logs.
89
  *
90
  * @param string $message
91
- * @param array $context
 
92
  * @return null
93
  */
94
  public function info($message, array $context = array());
@@ -97,7 +104,8 @@ interface LoggerInterface
97
  * Detailed debug information.
98
  *
99
  * @param string $message
100
- * @param array $context
 
101
  * @return null
102
  */
103
  public function debug($message, array $context = array());
@@ -105,9 +113,10 @@ interface LoggerInterface
105
  /**
106
  * Logs with an arbitrary level.
107
  *
108
- * @param mixed $level
109
  * @param string $message
110
- * @param array $context
 
111
  * @return null
112
  */
113
  public function log($level, $message, array $context = array());
3
  namespace Psr\Log;
4
 
5
  /**
6
+ * Describes a logger instance.
7
  *
8
  * The message MUST be a string or object implementing __toString().
9
  *
10
  * The message MAY contain placeholders in the form: {foo} where foo
11
  * will be replaced by the context data in key "foo".
12
  *
13
+ * The context array can contain arbitrary data. The only assumption that
14
  * can be made by implementors is that if an Exception instance is given
15
  * to produce a stack trace, it MUST be in a key named "exception".
16
  *
23
  * System is unusable.
24
  *
25
  * @param string $message
26
+ * @param array $context
27
+ *
28
  * @return null
29
  */
30
  public function emergency($message, array $context = array());
36
  * trigger the SMS alerts and wake you up.
37
  *
38
  * @param string $message
39
+ * @param array $context
40
+ *
41
  * @return null
42
  */
43
  public function alert($message, array $context = array());
48
  * Example: Application component unavailable, unexpected exception.
49
  *
50
  * @param string $message
51
+ * @param array $context
52
+ *
53
  * @return null
54
  */
55
  public function critical($message, array $context = array());
59
  * be logged and monitored.
60
  *
61
  * @param string $message
62
+ * @param array $context
63
+ *
64
  * @return null
65
  */
66
  public function error($message, array $context = array());
72
  * that are not necessarily wrong.
73
  *
74
  * @param string $message
75
+ * @param array $context
76
+ *
77
  * @return null
78
  */
79
  public function warning($message, array $context = array());
82
  * Normal but significant events.
83
  *
84
  * @param string $message
85
+ * @param array $context
86
+ *
87
  * @return null
88
  */
89
  public function notice($message, array $context = array());
94
  * Example: User logs in, SQL logs.
95
  *
96
  * @param string $message
97
+ * @param array $context
98
+ *
99
  * @return null
100
  */
101
  public function info($message, array $context = array());
104
  * Detailed debug information.
105
  *
106
  * @param string $message
107
+ * @param array $context
108
+ *
109
  * @return null
110
  */
111
  public function debug($message, array $context = array());
113
  /**
114
  * Logs with an arbitrary level.
115
  *
116
+ * @param mixed $level
117
  * @param string $message
118
+ * @param array $context
119
+ *
120
  * @return null
121
  */
122
  public function log($level, $message, array $context = array());
vendor/psr/log/Psr/Log/LoggerTrait.php CHANGED
@@ -6,8 +6,8 @@ namespace Psr\Log;
6
  * This is a simple Logger trait that classes unable to extend AbstractLogger
7
  * (because they extend another class, etc) can include.
8
  *
9
- * It simply delegates all log-level-specific methods to the `log` method to
10
- * reduce boilerplate code that a simple Logger that does the same thing with
11
  * messages regardless of the error level has to implement.
12
  */
13
  trait LoggerTrait
@@ -16,7 +16,8 @@ trait LoggerTrait
16
  * System is unusable.
17
  *
18
  * @param string $message
19
- * @param array $context
 
20
  * @return null
21
  */
22
  public function emergency($message, array $context = array())
@@ -31,7 +32,8 @@ trait LoggerTrait
31
  * trigger the SMS alerts and wake you up.
32
  *
33
  * @param string $message
34
- * @param array $context
 
35
  * @return null
36
  */
37
  public function alert($message, array $context = array())
@@ -45,7 +47,8 @@ trait LoggerTrait
45
  * Example: Application component unavailable, unexpected exception.
46
  *
47
  * @param string $message
48
- * @param array $context
 
49
  * @return null
50
  */
51
  public function critical($message, array $context = array())
@@ -58,7 +61,8 @@ trait LoggerTrait
58
  * be logged and monitored.
59
  *
60
  * @param string $message
61
- * @param array $context
 
62
  * @return null
63
  */
64
  public function error($message, array $context = array())
@@ -73,7 +77,8 @@ trait LoggerTrait
73
  * that are not necessarily wrong.
74
  *
75
  * @param string $message
76
- * @param array $context
 
77
  * @return null
78
  */
79
  public function warning($message, array $context = array())
@@ -85,7 +90,8 @@ trait LoggerTrait
85
  * Normal but significant events.
86
  *
87
  * @param string $message
88
- * @param array $context
 
89
  * @return null
90
  */
91
  public function notice($message, array $context = array())
@@ -99,7 +105,8 @@ trait LoggerTrait
99
  * Example: User logs in, SQL logs.
100
  *
101
  * @param string $message
102
- * @param array $context
 
103
  * @return null
104
  */
105
  public function info($message, array $context = array())
@@ -111,7 +118,8 @@ trait LoggerTrait
111
  * Detailed debug information.
112
  *
113
  * @param string $message
114
- * @param array $context
 
115
  * @return null
116
  */
117
  public function debug($message, array $context = array())
@@ -122,9 +130,10 @@ trait LoggerTrait
122
  /**
123
  * Logs with an arbitrary level.
124
  *
125
- * @param mixed $level
126
  * @param string $message
127
- * @param array $context
 
128
  * @return null
129
  */
130
  abstract public function log($level, $message, array $context = array());
6
  * This is a simple Logger trait that classes unable to extend AbstractLogger
7
  * (because they extend another class, etc) can include.
8
  *
9
+ * It simply delegates all log-level-specific methods to the `log` method to
10
+ * reduce boilerplate code that a simple Logger that does the same thing with
11
  * messages regardless of the error level has to implement.
12
  */
13
  trait LoggerTrait
16
  * System is unusable.
17
  *
18
  * @param string $message
19
+ * @param array $context
20
+ *
21
  * @return null
22
  */
23
  public function emergency($message, array $context = array())
32
  * trigger the SMS alerts and wake you up.
33
  *
34
  * @param string $message
35
+ * @param array $context
36
+ *
37
  * @return null
38
  */
39
  public function alert($message, array $context = array())
47
  * Example: Application component unavailable, unexpected exception.
48
  *
49
  * @param string $message
50
+ * @param array $context
51
+ *
52
  * @return null
53
  */
54
  public function critical($message, array $context = array())
61
  * be logged and monitored.
62
  *
63
  * @param string $message
64
+ * @param array $context
65
+ *
66
  * @return null
67
  */
68
  public function error($message, array $context = array())
77
  * that are not necessarily wrong.
78
  *
79
  * @param string $message
80
+ * @param array $context
81
+ *
82
  * @return null
83
  */
84
  public function warning($message, array $context = array())
90
  * Normal but significant events.
91
  *
92
  * @param string $message
93
+ * @param array $context
94
+ *
95
  * @return null
96
  */
97
  public function notice($message, array $context = array())
105
  * Example: User logs in, SQL logs.
106
  *
107
  * @param string $message
108
+ * @param array $context
109
+ *
110
  * @return null
111
  */
112
  public function info($message, array $context = array())
118
  * Detailed debug information.
119
  *
120
  * @param string $message
121
+ * @param array $context
122
+ *
123
  * @return null
124
  */
125
  public function debug($message, array $context = array())
130
  /**
131
  * Logs with an arbitrary level.
132
  *
133
+ * @param mixed $level
134
  * @param string $message
135
+ * @param array $context
136
+ *
137
  * @return null
138
  */
139
  abstract public function log($level, $message, array $context = array());
vendor/psr/log/Psr/Log/NullLogger.php CHANGED
@@ -3,7 +3,7 @@
3
  namespace Psr\Log;
4
 
5
  /**
6
- * This Logger can be used to avoid conditional log calls
7
  *
8
  * Logging should always be optional, and if no logger is provided to your
9
  * library creating a NullLogger instance to have something to throw logs at
@@ -15,9 +15,10 @@ class NullLogger extends AbstractLogger
15
  /**
16
  * Logs with an arbitrary level.
17
  *
18
- * @param mixed $level
19
  * @param string $message
20
- * @param array $context
 
21
  * @return null
22
  */
23
  public function log($level, $message, array $context = array())
3
  namespace Psr\Log;
4
 
5
  /**
6
+ * This Logger can be used to avoid conditional log calls.
7
  *
8
  * Logging should always be optional, and if no logger is provided to your
9
  * library creating a NullLogger instance to have something to throw logs at
15
  /**
16
  * Logs with an arbitrary level.
17
  *
18
+ * @param mixed $level
19
  * @param string $message
20
+ * @param array $context
21
+ *
22
  * @return null
23
  */
24
  public function log($level, $message, array $context = array())
vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php CHANGED
@@ -2,28 +2,32 @@
2
 
3
  namespace Psr\Log\Test;
4
 
 
5
  use Psr\Log\LogLevel;
6
 
7
  /**
8
- * Provides a base test class for ensuring compliance with the LoggerInterface
9
  *
10
- * Implementors can extend the class and implement abstract methods to run this as part of their test suite
 
11
  */
12
  abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
13
  {
14
  /**
15
  * @return LoggerInterface
16
  */
17
- abstract function getLogger();
18
 
19
  /**
20
- * This must return the log messages in order with a simple formatting: "<LOG LEVEL> <MESSAGE>"
21
  *
22
- * Example ->error('Foo') would yield "error Foo"
 
 
23
  *
24
  * @return string[]
25
  */
26
- abstract function getLogs();
27
 
28
  public function testImplements()
29
  {
@@ -61,7 +65,7 @@ abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
61
  }
62
 
63
  /**
64
- * @expectedException Psr\Log\InvalidArgumentException
65
  */
66
  public function testThrowsOnInvalidLevel()
67
  {
@@ -80,12 +84,19 @@ abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
80
 
81
  public function testObjectCastToString()
82
  {
83
- $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
 
 
 
 
84
  $dummy->expects($this->once())
85
  ->method('__toString')
86
  ->will($this->returnValue('DUMMY'));
87
 
88
  $this->getLogger()->warning($dummy);
 
 
 
89
  }
90
 
91
  public function testContextCanContainAnything()
@@ -102,15 +113,28 @@ abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
102
  );
103
 
104
  $this->getLogger()->warning('Crazy context data', $context);
 
 
 
105
  }
106
 
107
  public function testContextExceptionKeyCanBeExceptionOrOtherValues()
108
  {
109
- $this->getLogger()->warning('Random message', array('exception' => 'oops'));
110
- $this->getLogger()->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
 
 
 
 
 
 
 
111
  }
112
  }
113
 
114
  class DummyTest
115
  {
116
- }
 
 
 
2
 
3
  namespace Psr\Log\Test;
4
 
5
+ use Psr\Log\LoggerInterface;
6
  use Psr\Log\LogLevel;
7
 
8
  /**
9
+ * Provides a base test class for ensuring compliance with the LoggerInterface.
10
  *
11
+ * Implementors can extend the class and implement abstract methods to run this
12
+ * as part of their test suite.
13
  */
14
  abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
15
  {
16
  /**
17
  * @return LoggerInterface
18
  */
19
+ abstract public function getLogger();
20
 
21
  /**
22
+ * This must return the log messages in order.
23
  *
24
+ * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
25
+ *
26
+ * Example ->error('Foo') would yield "error Foo".
27
  *
28
  * @return string[]
29
  */
30
+ abstract public function getLogs();
31
 
32
  public function testImplements()
33
  {
65
  }
66
 
67
  /**
68
+ * @expectedException \Psr\Log\InvalidArgumentException
69
  */
70
  public function testThrowsOnInvalidLevel()
71
  {
84
 
85
  public function testObjectCastToString()
86
  {
87
+ if (method_exists($this, 'createMock')) {
88
+ $dummy = $this->createMock('Psr\Log\Test\DummyTest', array('__toString'));
89
+ } else {
90
+ $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
91
+ }
92
  $dummy->expects($this->once())
93
  ->method('__toString')
94
  ->will($this->returnValue('DUMMY'));
95
 
96
  $this->getLogger()->warning($dummy);
97
+
98
+ $expected = array('warning DUMMY');
99
+ $this->assertEquals($expected, $this->getLogs());
100
  }
101
 
102
  public function testContextCanContainAnything()
113
  );
114
 
115
  $this->getLogger()->warning('Crazy context data', $context);
116
+
117
+ $expected = array('warning Crazy context data');
118
+ $this->assertEquals($expected, $this->getLogs());
119
  }
120
 
121
  public function testContextExceptionKeyCanBeExceptionOrOtherValues()
122
  {
123
+ $logger = $this->getLogger();
124
+ $logger->warning('Random message', array('exception' => 'oops'));
125
+ $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
126
+
127
+ $expected = array(
128
+ 'warning Random message',
129
+ 'critical Uncaught Exception!'
130
+ );
131
+ $this->assertEquals($expected, $this->getLogs());
132
  }
133
  }
134
 
135
  class DummyTest
136
  {
137
+ public function __toString()
138
+ {
139
+ }
140
+ }
vendor/psr/log/composer.json CHANGED
@@ -2,6 +2,7 @@
2
  "name": "psr/log",
3
  "description": "Common interface for logging libraries",
4
  "keywords": ["psr", "psr-3", "log"],
 
5
  "license": "MIT",
6
  "authors": [
7
  {
@@ -9,9 +10,17 @@
9
  "homepage": "http://www.php-fig.org/"
10
  }
11
  ],
 
 
 
12
  "autoload": {
13
- "psr-0": {
14
- "Psr\\Log\\": ""
 
 
 
 
 
15
  }
16
  }
17
  }
2
  "name": "psr/log",
3
  "description": "Common interface for logging libraries",
4
  "keywords": ["psr", "psr-3", "log"],
5
+ "homepage": "https://github.com/php-fig/log",
6
  "license": "MIT",
7
  "authors": [
8
  {
10
  "homepage": "http://www.php-fig.org/"
11
  }
12
  ],
13
+ "require": {
14
+ "php": ">=5.3.0"
15
+ },
16
  "autoload": {
17
+ "psr-4": {
18
+ "Psr\\Log\\": "Psr/Log/"
19
+ }
20
+ },
21
+ "extra": {
22
+ "branch-alias": {
23
+ "dev-master": "1.0.x-dev"
24
  }
25
  }
26
  }