@automattic/newspack-blocks 1.37.0 → 1.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/babel/00255e6096be9e31ec354db849dfefaa.json.gz +0 -0
- package/.cache/babel/0265bee20d709ac92f56456637727f4b.json.gz +0 -0
- package/.cache/babel/02986ba19dc461a152ea1c45f3f36a27.json.gz +0 -0
- package/.cache/babel/06a1700c1a4a989fc7886c86bf6223f7.json.gz +0 -0
- package/.cache/babel/07169c73863508b392f15022920bd0b6.json.gz +0 -0
- package/.cache/babel/0a5083e561829e3884cb5c71388adc3f.json.gz +0 -0
- package/.cache/babel/0a713997b6e4f45849ed6a4bff79cca5.json.gz +0 -0
- package/.cache/babel/0a9506bf649ffbe854e75459cf6b8972.json.gz +0 -0
- package/.cache/babel/0c12c4398bbbf2d771b13dd1d0e64097.json.gz +0 -0
- package/.cache/babel/0f8c18da204f4cc2777ca3191f10c309.json.gz +0 -0
- package/.cache/babel/0fced15ed787cc4239bb53c1d12892e6.json.gz +0 -0
- package/.cache/babel/10faf7c74a89e9aa4d8b9528a654913e.json.gz +0 -0
- package/.cache/babel/1353b411b65a123b5dc35012db11aa1d.json.gz +0 -0
- package/.cache/babel/1729336f326db1cf54b9c1671dc5e36c.json.gz +0 -0
- package/.cache/babel/17a433ab631a32d0712f3f75cf85ea99.json.gz +0 -0
- package/.cache/babel/1948e72d907f681ff771881ad6800ee1.json.gz +0 -0
- package/.cache/babel/1ab4bf44aa14d2eb7e6911900a3b2c12.json.gz +0 -0
- package/.cache/babel/1decfd137cac87a75bd83ffbd39c9106.json.gz +0 -0
- package/.cache/babel/2143ceff6d186bc13bc902e0f1f33dbf.json.gz +0 -0
- package/.cache/babel/23c63332718e167968a7c2a8a5f730eb.json.gz +0 -0
- package/.cache/babel/24bf53676e12293cbf88d01e649fd167.json.gz +0 -0
- package/.cache/babel/26ba0bb46844575022e54a8819fbf405.json.gz +0 -0
- package/.cache/babel/281ca171ce8947f87f574df11059e00b.json.gz +0 -0
- package/.cache/babel/28700b83434e4dbfb9a20d7ec0a7e7a4.json.gz +0 -0
- package/.cache/babel/29cf8eeea8630ade027e34459f2e49ee.json.gz +0 -0
- package/.cache/babel/2b0dd254a46223a93e6259d2b797a7e7.json.gz +0 -0
- package/.cache/babel/2da6786ede3ddda4c86eeac524a6a796.json.gz +0 -0
- package/.cache/babel/2e7ce10fdee94274b48d528f94c32b34.json.gz +0 -0
- package/.cache/babel/2f93fed1706a40d82122281cc3677074.json.gz +0 -0
- package/.cache/babel/3a59b710e9745ef93148d6d74ee7d16f.json.gz +0 -0
- package/.cache/babel/3b2c440027c793c8f7978d7622cbfca0.json.gz +0 -0
- package/.cache/babel/3ca939ace4af88e266942d93837ab37a.json.gz +0 -0
- package/.cache/babel/3e671670c4d395cd1804ef4be31955e4.json.gz +0 -0
- package/.cache/babel/3e69fe002d9973c0030152a51da9477a.json.gz +0 -0
- package/.cache/babel/3f5f8ea603fd57850c6683c750fe53d8.json.gz +0 -0
- package/.cache/babel/41abaaadb68b0657a95fa0c356873def.json.gz +0 -0
- package/.cache/babel/421ac952d6b472ba18e1cb95ef65f42a.json.gz +0 -0
- package/.cache/babel/424185dd50e91d8dee5fdae43086010e.json.gz +0 -0
- package/.cache/babel/427a6423ebde76bcb488747127e47351.json.gz +0 -0
- package/.cache/babel/43e800659f23430a181fb4fc328eb6ef.json.gz +0 -0
- package/.cache/babel/469651017a2b6f3b9f63fda034974b3a.json.gz +0 -0
- package/.cache/babel/480d26447b7ee019a37e4e18422403e9.json.gz +0 -0
- package/.cache/babel/4b58fad313d90a4c1577a2766e6c924c.json.gz +0 -0
- package/.cache/babel/4d2d42fea63650192d1a3a5648b621c5.json.gz +0 -0
- package/.cache/babel/4d8c26a76e77fa64d01f30a5f2d62f85.json.gz +0 -0
- package/.cache/babel/4f606ce6656565507a74aaac8dc21eea.json.gz +0 -0
- package/.cache/babel/505f37592f4c601ccdc1581ca89d9009.json.gz +0 -0
- package/.cache/babel/50aaf34aa54b2cd3058518e42850bb62.json.gz +0 -0
- package/.cache/babel/51fbf389462feb111228ba7ec64c631d.json.gz +0 -0
- package/.cache/babel/51fc90ae5fe129a095172032f304dc2c.json.gz +0 -0
- package/.cache/babel/53dbf5484c5601528c2fd8d7fe728b78.json.gz +0 -0
- package/.cache/babel/58e4535574062eb2d8fa56d002e7190d.json.gz +0 -0
- package/.cache/babel/5aa5e8d1492938c62999de022c4b220e.json.gz +0 -0
- package/.cache/babel/5d64e475284e52c104df17e26066b17b.json.gz +0 -0
- package/.cache/babel/6333c664d69f13036f42bcf575c8e65d.json.gz +0 -0
- package/.cache/babel/635c439786b8522888342779b28ee9ee.json.gz +0 -0
- package/.cache/babel/648cffdd5ec4a2446f8935a17b98080b.json.gz +0 -0
- package/.cache/babel/64b0dd478e6f2dd51de5ee20e311aee7.json.gz +0 -0
- package/.cache/babel/6531721abbc0b3906b28b268ed7914af.json.gz +0 -0
- package/.cache/babel/66bf5585c7901a76c7d4014fa9ffed40.json.gz +0 -0
- package/.cache/babel/6ef313cb6d3a59f73a6b78e1a729fb13.json.gz +0 -0
- package/.cache/babel/6f14eed506421f15710d3dfafe3dcd93.json.gz +0 -0
- package/.cache/babel/70f6c01d8c6bc3efc41c97eaf49f7617.json.gz +0 -0
- package/.cache/babel/72321dde68f0bb9c334d90d6f4584be8.json.gz +0 -0
- package/.cache/babel/76c815fab58595f57e01af6591791d57.json.gz +0 -0
- package/.cache/babel/7c10f4d554daa8efe1e0a4457fb6d27b.json.gz +0 -0
- package/.cache/babel/7dffccddd9780ab37fb79f809947c2cd.json.gz +0 -0
- package/.cache/babel/7e5162e3319cd5d6fca6c0db0516aaeb.json.gz +0 -0
- package/.cache/babel/803192c922f7d419648bab7e1201b22e.json.gz +0 -0
- package/.cache/babel/81f3f0f896d29cdf88f8543dedb77787.json.gz +0 -0
- package/.cache/babel/84c019d3d643195fb37d08110f15f8c9.json.gz +0 -0
- package/.cache/babel/853c31db7c4351f2f36d1021c667224d.json.gz +0 -0
- package/.cache/babel/88ec99735ea4f314937736f04360ff8c.json.gz +0 -0
- package/.cache/babel/8959ab8fcfa783cb56e9418b99c0951c.json.gz +0 -0
- package/.cache/babel/8b9624d721f8706682e33fe1853c8287.json.gz +0 -0
- package/.cache/babel/8de5c373bbc4b6fbeec373d582935887.json.gz +0 -0
- package/.cache/babel/8f24517cff634d2e91c19e51be8816cc.json.gz +0 -0
- package/.cache/babel/901e1bb823eca196b594baa35a35a81c.json.gz +0 -0
- package/.cache/babel/90dbc666ff9fa3b88f305fe90a9917bf.json.gz +0 -0
- package/.cache/babel/91b62dfd9475df7a39dc08fbd43847f9.json.gz +0 -0
- package/.cache/babel/956daf27323e3b87bf8bf9bbf58881ed.json.gz +0 -0
- package/.cache/babel/959e9b81103c539a9d85ac60955451b9.json.gz +0 -0
- package/.cache/babel/963b1e44be998c4dcc6845745c377369.json.gz +0 -0
- package/.cache/babel/966b41ac1317b3e03ca1e59f7eb57e8c.json.gz +0 -0
- package/.cache/babel/969d5992cc682e3b43761ef02c10b851.json.gz +0 -0
- package/.cache/babel/99df128bb528d0f95a56b311801d14c1.json.gz +0 -0
- package/.cache/babel/9b33e7d21f3fc4955a536a033cced71b.json.gz +0 -0
- package/.cache/babel/9c5ec84f77314a621c01ad77da7ccb58.json.gz +0 -0
- package/.cache/babel/9d325af12a88623602a5f8c2fce04847.json.gz +0 -0
- package/.cache/babel/a413e4d325543836d0800684bb26ed04.json.gz +0 -0
- package/.cache/babel/a5405f86b8d1485e62a125275507e60f.json.gz +0 -0
- package/.cache/babel/a7f7461321ca6fd4360df04bb894c106.json.gz +0 -0
- package/.cache/babel/a8a6812e1c7b65cc6d0bdebe2a35c8ca.json.gz +0 -0
- package/.cache/babel/aa89cfc4c88fcc465b8d74af824e7f6b.json.gz +0 -0
- package/.cache/babel/adbaeb5ddf5612b3dcd233a3f6f17bf2.json.gz +0 -0
- package/.cache/babel/ae18cd6ec42a3366c73435b62a9f5f70.json.gz +0 -0
- package/.cache/babel/aea149ee1ec6fa3ca7839c63f5edd78d.json.gz +0 -0
- package/.cache/babel/af1b34067a69854e109c0b0e45d90e43.json.gz +0 -0
- package/.cache/babel/b3a335ab950f502914013810b43b0ad5.json.gz +0 -0
- package/.cache/babel/b6cfba15cda3404d4b1041df448ed2b2.json.gz +0 -0
- package/.cache/babel/ba711530bd319618a0510d8361bebb45.json.gz +0 -0
- package/.cache/babel/ba77e682225df6126b636458055601d9.json.gz +0 -0
- package/.cache/babel/bab8189a74eee8d72702d1510b52b3b3.json.gz +0 -0
- package/.cache/babel/bd8741020db56bb5d999252812d1d717.json.gz +0 -0
- package/.cache/babel/beaa874c5e01203d9dbe23cb89405276.json.gz +0 -0
- package/.cache/babel/c196c9b8c21953c474acdaa9029b3cbf.json.gz +0 -0
- package/.cache/babel/c1e31e6c217023eb3d3fd5d3de486ac3.json.gz +0 -0
- package/.cache/babel/c3aa996443e7f377aa423bcc03ffc617.json.gz +0 -0
- package/.cache/babel/c481eae84d69b65405a44af442dbfea7.json.gz +0 -0
- package/.cache/babel/c4a817d6c4bf6eb3687ffccc5c2df801.json.gz +0 -0
- package/.cache/babel/c8b10cf6f706fb669d6dd7564385768d.json.gz +0 -0
- package/.cache/babel/caa2f98ba4af6eba0605543f690693c6.json.gz +0 -0
- package/.cache/babel/cada4b2cecb2c1fcc48b7a7ecda54907.json.gz +0 -0
- package/.cache/babel/d1bed5404789c427c32965ac6ecad0d9.json.gz +0 -0
- package/.cache/babel/d395e8c0a9c63680f2dcf90ca0e91d4a.json.gz +0 -0
- package/.cache/babel/d4672090e0dd9a73bfb00bd770b23643.json.gz +0 -0
- package/.cache/babel/d4c81f65fe6d78cdbdcf1ef901b7ba1b.json.gz +0 -0
- package/.cache/babel/d515ddc0797ea256ff7271507737e9ce.json.gz +0 -0
- package/.cache/babel/d742848d263503f79168f1a6b8a52097.json.gz +0 -0
- package/.cache/babel/d834b41d7028519ecd0cbc8c65d33dde.json.gz +0 -0
- package/.cache/babel/d9060b9162e7caf974db0b90b6134727.json.gz +0 -0
- package/.cache/babel/d946975b9beac51a39f600461e84b1b6.json.gz +0 -0
- package/.cache/babel/daf0af780cff2270b1ae0e4b97a5a4ab.json.gz +0 -0
- package/.cache/babel/db5215643b0737dc5245972a5c25f736.json.gz +0 -0
- package/.cache/babel/dd57b8d31664b147b9f1e3f5cd18cc2a.json.gz +0 -0
- package/.cache/babel/e0c78bdaae19f15e2dd4a773e842422b.json.gz +0 -0
- package/.cache/babel/e1a2c7e4fc3afe9cc6e03d60f4e4a23d.json.gz +0 -0
- package/.cache/babel/e210ff9aa99df972b8d81c4bda70f642.json.gz +0 -0
- package/.cache/babel/e259a73f84d5b92b94e6d094719264c3.json.gz +0 -0
- package/.cache/babel/e6ce03a9908c9c4dc2c723531f1073f6.json.gz +0 -0
- package/.cache/babel/e8a1501dd8e4b3389ecdc8f722622359.json.gz +0 -0
- package/.cache/babel/eb3bb371036da362c42db50248d0b180.json.gz +0 -0
- package/.cache/babel/eb854e03c810bdb969497b2a36119bfa.json.gz +0 -0
- package/.cache/babel/ec25bb53826070b7f301e64f02355b8c.json.gz +0 -0
- package/.cache/babel/edbaca20e4a65f850c3d8321c1945718.json.gz +0 -0
- package/.cache/babel/f059f1ca9e49d5c3e655d20339860dce.json.gz +0 -0
- package/.cache/babel/f24c559fb42ef906405966598baf5f80.json.gz +0 -0
- package/.cache/babel/f2f333c3c546ad711d722d782decd450.json.gz +0 -0
- package/.cache/babel/f42c854ce8f1dc1a6e6fe7c510b033a5.json.gz +0 -0
- package/.cache/babel/f5211608f22c2e12594eafdbc4e66aa5.json.gz +0 -0
- package/.cache/babel/f645b8c88a49718cd778e3595212d4eb.json.gz +0 -0
- package/.cache/babel/f66dda5c4e4e9d04eb6b7411fcb12a65.json.gz +0 -0
- package/.cache/babel/f9d5b6f3f5438342dba75c2ce6143eef.json.gz +0 -0
- package/.cache/babel/fc9c60ee1d2e8783ba4c08db5cf97d40.json.gz +0 -0
- package/.cache/babel/fd558798cea72d04fb826468a89d72aa.json.gz +0 -0
- package/.cache/babel/fe735cbd0f6e131e28d8b6eb1f39141b.json.gz +0 -0
- package/.eslintrc.js +3 -26
- package/.nvmrc +1 -0
- package/CHANGELOG.md +422 -0
- package/babel.config.js +6 -0
- package/block-list.json +1 -1
- package/composer.json +2 -2
- package/composer.lock +446 -161
- package/dist/author-list/view.asset.php +1 -0
- package/dist/author-list/view.css +1 -0
- package/dist/author-list/view.js +1 -0
- package/dist/author-list/view.rtl.css +1 -0
- package/dist/author-profile/view.asset.php +1 -0
- package/dist/author-profile/view.css +1 -0
- package/dist/author-profile/view.js +1 -0
- package/dist/author-profile/view.rtl.css +1 -0
- package/dist/block_styles.asset.php +1 -0
- package/dist/block_styles.css +1 -0
- package/dist/block_styles.js +1 -0
- package/dist/block_styles.rtl.css +1 -0
- package/dist/carousel/view.asset.php +1 -0
- package/dist/carousel/view.css +1 -0
- package/dist/carousel/view.js +1 -0
- package/dist/carousel/view.rtl.css +1 -0
- package/dist/donate/view.asset.php +1 -0
- package/dist/donate/view.css +1 -0
- package/dist/donate/view.js +1 -0
- package/dist/donate/view.rtl.css +1 -0
- package/dist/donateStreamlined.asset.php +1 -0
- package/dist/donateStreamlined.css +1 -0
- package/dist/donateStreamlined.js +1 -0
- package/dist/donateStreamlined.rtl.css +1 -0
- package/dist/editor.asset.php +1 -0
- package/dist/editor.css +1 -0
- package/dist/editor.js +41 -0
- package/dist/editor.rtl.css +1 -0
- package/dist/homepage-articles/view.asset.php +1 -0
- package/dist/homepage-articles/view.css +1 -0
- package/dist/homepage-articles/view.js +1 -0
- package/dist/homepage-articles/view.rtl.css +1 -0
- package/dist/iframe/view.asset.php +1 -0
- package/dist/iframe/view.css +1 -0
- package/dist/iframe/view.js +1 -0
- package/dist/iframe/view.rtl.css +1 -0
- package/includes/class-newspack-blocks-api.php +14 -69
- package/includes/class-newspack-blocks-patterns.php +4 -1
- package/includes/class-newspack-blocks.php +421 -95
- package/newspack-blocks.php +26 -2
- package/package.json +31 -129
- package/postcss.config.js +11 -0
- package/src/block-patterns/subscribe-2.php +1 -1
- package/src/block-patterns/subscribe-3.php +1 -1
- package/src/block-patterns/subscribe-7.php +12 -0
- package/src/block-patterns/subscribe-8.php +12 -0
- package/src/block-patterns/subscribe-9.php +12 -0
- package/src/block-styles/core/columns/editor.scss +5 -8
- package/src/block-styles/core/columns/view.scss +83 -42
- package/src/blocks/author-list/block.json +82 -0
- package/src/blocks/author-list/class-wp-rest-newspack-author-list-controller.php +387 -0
- package/src/blocks/author-list/edit.js +527 -0
- package/src/blocks/author-list/editor.js +7 -0
- package/src/blocks/author-list/editor.scss +1 -0
- package/src/blocks/author-list/index.js +45 -0
- package/src/blocks/author-list/view.js +5 -0
- package/src/blocks/author-list/view.php +175 -0
- package/src/blocks/author-list/view.scss +46 -0
- package/src/blocks/author-profile/block.json +8 -0
- package/src/blocks/author-profile/class-wp-rest-newspack-authors-controller.php +69 -14
- package/src/blocks/author-profile/edit.js +212 -189
- package/src/blocks/author-profile/editor.scss +1 -1
- package/src/blocks/author-profile/single-author.js +100 -0
- package/src/blocks/author-profile/view.php +38 -92
- package/src/blocks/author-profile/view.scss +120 -1
- package/src/blocks/carousel/create-swiper.js +14 -5
- package/src/blocks/carousel/edit.js +4 -2
- package/src/blocks/carousel/editor.scss +3 -12
- package/src/blocks/carousel/view.js +1 -1
- package/src/blocks/carousel/view.php +9 -5
- package/src/blocks/carousel/view.scss +29 -3
- package/src/blocks/donate/class-wp-rest-newspack-donate-controller.php +22 -24
- package/src/blocks/donate/edit.js +49 -42
- package/src/blocks/donate/editor.scss +27 -3
- package/src/blocks/donate/index.js +31 -4
- package/src/blocks/donate/streamlined/index.js +248 -0
- package/src/blocks/donate/streamlined/index.test.js +125 -0
- package/src/blocks/donate/streamlined/style.scss +324 -0
- package/src/blocks/donate/streamlined/utils.js +174 -0
- package/src/blocks/donate/streamlined/utils.test.js +18 -0
- package/src/blocks/donate/view.php +77 -36
- package/src/blocks/donate/view.scss +291 -0
- package/src/blocks/homepage-articles/block.json +8 -0
- package/src/blocks/homepage-articles/class-wp-rest-newspack-articles-controller.php +24 -78
- package/src/blocks/homepage-articles/edit.js +26 -0
- package/src/blocks/homepage-articles/store.js +11 -1
- package/src/blocks/homepage-articles/templates/article.php +31 -3
- package/src/blocks/homepage-articles/templates/articles-loop.php +6 -5
- package/src/blocks/homepage-articles/utils.js +11 -10
- package/src/blocks/homepage-articles/view.php +4 -1
- package/src/blocks/homepage-articles/view.scss +69 -24
- package/src/blocks/iframe/block.json +34 -0
- package/src/blocks/iframe/class-wp-rest-newspack-iframe-controller.php +345 -0
- package/src/blocks/iframe/edit.js +252 -0
- package/src/blocks/iframe/editor.js +7 -0
- package/src/blocks/iframe/editor.scss +84 -0
- package/src/blocks/iframe/icons.js +10 -0
- package/src/blocks/iframe/iframe-placeholder.js +180 -0
- package/src/blocks/iframe/index.js +48 -0
- package/src/blocks/iframe/view.js +5 -0
- package/src/blocks/iframe/view.php +130 -0
- package/src/blocks/iframe/view.scss +9 -0
- package/src/blocks/video-playlist/view.php +4 -3
- package/src/components/query-controls.js +5 -4
- package/src/setup/editor.js +0 -1
- package/src/shared/js/utils.js +1 -1
- package/src/templates/author-profile-card.php +99 -0
- package/vendor/autoload.php +7 -0
- package/vendor/composer/ClassLoader.php +572 -0
- package/vendor/composer/InstalledVersions.php +350 -0
- package/vendor/composer/LICENSE +21 -0
- package/vendor/composer/autoload_classmap.php +10 -0
- package/vendor/composer/autoload_namespaces.php +9 -0
- package/vendor/composer/autoload_psr4.php +9 -0
- package/vendor/composer/autoload_real.php +55 -0
- package/vendor/composer/autoload_static.php +20 -0
- package/vendor/composer/installed.json +5 -0
- package/vendor/composer/installed.php +23 -0
- package/webpack.config.js +2 -3
- package/.circleci/config.yml +0 -96
- package/.distignore +0 -36
- package/.editorconfig +0 -22
- package/.github/ISSUE_TEMPLATE/Bug_report.md +0 -21
- package/.github/ISSUE_TEMPLATE/Enhancement.md +0 -17
- package/.github/ISSUE_TEMPLATE/Feature_request.md +0 -17
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -29
- package/.github/workflows/main.yml +0 -15
- package/.phpcs.xml.dist +0 -55
- package/.prettierrc +0 -10
- package/.stylelintrc +0 -21
- package/.travis.yml +0 -67
- package/phpunit.xml.dist +0 -16
- package/src/blocks/author-profile/shared.scss +0 -95
- package/src/blocks/donate/streamlined.js +0 -180
- package/src/blocks/donate/streamlined.scss +0 -124
- package/src/setup/public-path.js +0 -13
- package/src/setup/view.js +0 -4
- package/tests/bootstrap.php +0 -31
- package/tests/test-sample.php +0 -20
|
@@ -256,26 +256,6 @@
|
|
|
256
256
|
width: 100% !important;
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
-
figcaption {
|
|
260
|
-
bottom: 1em;
|
|
261
|
-
/* autoprefixer: ignore next */
|
|
262
|
-
-webkit-box-orient: vertical;
|
|
263
|
-
color: rgba( white, 0.9 );
|
|
264
|
-
display: -webkit-box;
|
|
265
|
-
font-style: italic;
|
|
266
|
-
left: 0;
|
|
267
|
-
-webkit-line-clamp: 1;
|
|
268
|
-
margin: 0;
|
|
269
|
-
max-height: 1.6em;
|
|
270
|
-
overflow: hidden;
|
|
271
|
-
padding: 0 1em;
|
|
272
|
-
position: absolute;
|
|
273
|
-
right: 0;
|
|
274
|
-
text-align: right;
|
|
275
|
-
text-overflow: ellipsis;
|
|
276
|
-
z-index: 2;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
259
|
&::after {
|
|
280
260
|
background: rgba( 0, 0, 0, 0.5 );
|
|
281
261
|
bottom: 0;
|
|
@@ -289,12 +269,13 @@
|
|
|
289
269
|
}
|
|
290
270
|
|
|
291
271
|
.entry-wrapper {
|
|
292
|
-
padding:
|
|
272
|
+
padding: 2rem 1rem;
|
|
293
273
|
position: relative;
|
|
274
|
+
width: 100%;
|
|
294
275
|
z-index: 2;
|
|
295
276
|
|
|
296
277
|
@include media( desktop ) {
|
|
297
|
-
padding:
|
|
278
|
+
padding: 2rem 1.5rem;
|
|
298
279
|
}
|
|
299
280
|
}
|
|
300
281
|
|
|
@@ -306,6 +287,30 @@
|
|
|
306
287
|
color: #fff;
|
|
307
288
|
}
|
|
308
289
|
}
|
|
290
|
+
|
|
291
|
+
figcaption {
|
|
292
|
+
bottom: 1em;
|
|
293
|
+
/* autoprefixer: ignore next */
|
|
294
|
+
-webkit-box-orient: vertical;
|
|
295
|
+
color: rgba( white, 0.9 );
|
|
296
|
+
display: -webkit-box;
|
|
297
|
+
font-style: italic;
|
|
298
|
+
left: 0;
|
|
299
|
+
-webkit-line-clamp: 1;
|
|
300
|
+
margin: 0;
|
|
301
|
+
max-height: 1.6em;
|
|
302
|
+
overflow: hidden;
|
|
303
|
+
padding: 0 1rem;
|
|
304
|
+
position: absolute;
|
|
305
|
+
right: 0;
|
|
306
|
+
text-align: right;
|
|
307
|
+
text-overflow: ellipsis;
|
|
308
|
+
z-index: 2;
|
|
309
|
+
|
|
310
|
+
@include media( desktop ) {
|
|
311
|
+
padding: 0 1.5rem;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
309
314
|
}
|
|
310
315
|
|
|
311
316
|
/* "More" button & related elements styles */
|
|
@@ -352,6 +357,46 @@
|
|
|
352
357
|
position: relative;
|
|
353
358
|
width: auto;
|
|
354
359
|
}
|
|
360
|
+
|
|
361
|
+
// Ensure centre alignment when selected.
|
|
362
|
+
&.has-text-align-center {
|
|
363
|
+
.cat-links,
|
|
364
|
+
.entry-meta,
|
|
365
|
+
.sponsor-logos {
|
|
366
|
+
justify-content: center;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.sponsor-logos > * {
|
|
370
|
+
margin: 0;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
&.image-alignbehind figcaption,
|
|
374
|
+
figcaption {
|
|
375
|
+
text-align: inherit;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
// Ensure right alignment when selected.
|
|
380
|
+
&.has-text-align-right {
|
|
381
|
+
.cat-links,
|
|
382
|
+
.entry-meta,
|
|
383
|
+
.sponsor-logos {
|
|
384
|
+
justify-content: flex-end;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
figcaption {
|
|
388
|
+
text-align: inherit;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
.entry-date:not( :first-child ) {
|
|
392
|
+
margin-left: 1.5em;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
.entry-meta .byline:not( :last-child ),
|
|
396
|
+
.sponsor-logos > * {
|
|
397
|
+
margin: 0;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
355
400
|
}
|
|
356
401
|
|
|
357
402
|
/* stylelint-disable selector-type-no-unknown */
|
|
@@ -410,7 +455,7 @@ amp-script .wpnbha {
|
|
|
410
455
|
&.ts-9,
|
|
411
456
|
&.ts-8 {
|
|
412
457
|
.entry-title {
|
|
413
|
-
line-height: 1.
|
|
458
|
+
line-height: 1.1;
|
|
414
459
|
}
|
|
415
460
|
@include media( tablet ) {
|
|
416
461
|
article .avatar {
|
|
@@ -691,7 +736,7 @@ amp-script .wpnbha {
|
|
|
691
736
|
&--in-homepage-block {
|
|
692
737
|
margin-top: 0.3em;
|
|
693
738
|
margin-bottom: 0;
|
|
694
|
-
line-height: 1.
|
|
739
|
+
line-height: 1.4;
|
|
695
740
|
font-style: italic;
|
|
696
741
|
}
|
|
697
742
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "iframe",
|
|
3
|
+
"category": "newspack",
|
|
4
|
+
"attributes": {
|
|
5
|
+
"className": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"default": ""
|
|
8
|
+
},
|
|
9
|
+
"src": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"default": ""
|
|
12
|
+
},
|
|
13
|
+
"archiveFolder": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"default": ""
|
|
16
|
+
},
|
|
17
|
+
"height": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"default": "600px"
|
|
20
|
+
},
|
|
21
|
+
"width": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"default": "100%"
|
|
24
|
+
},
|
|
25
|
+
"isFullScreen": {
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"default": false
|
|
28
|
+
},
|
|
29
|
+
"mode": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"default": "iframe"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
/**
|
|
3
|
+
* WP_REST_Newspack_Iframe_Controller file.
|
|
4
|
+
*
|
|
5
|
+
* @package WordPress
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Class WP_REST_Newspack_Iframe_Controller.
|
|
12
|
+
*/
|
|
13
|
+
class WP_REST_Newspack_Iframe_Controller extends WP_REST_Controller {
|
|
14
|
+
const IFRAME_UPLOAD_DIR = '/newspack_iframes/';
|
|
15
|
+
const IFRAME_ENTRY_FILE = 'index.html';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Constructs the controller.
|
|
19
|
+
*
|
|
20
|
+
* @access public
|
|
21
|
+
*/
|
|
22
|
+
public function __construct() {
|
|
23
|
+
$this->namespace = 'newspack-blocks/v1';
|
|
24
|
+
$this->rest_base = 'iframe';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Registers the necessary REST API routes.
|
|
29
|
+
*
|
|
30
|
+
* @access public
|
|
31
|
+
*/
|
|
32
|
+
public function register_routes() {
|
|
33
|
+
register_rest_route(
|
|
34
|
+
$this->namespace,
|
|
35
|
+
'/newspack-blocks-iframe-archive',
|
|
36
|
+
[
|
|
37
|
+
[
|
|
38
|
+
'methods' => WP_REST_Server::EDITABLE,
|
|
39
|
+
'callback' => [ $this, 'import_iframe_from_uploaded_file' ],
|
|
40
|
+
'permission_callback' => function() {
|
|
41
|
+
return current_user_can( 'edit_posts' );
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
]
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
register_rest_route(
|
|
48
|
+
$this->namespace,
|
|
49
|
+
'/newspack-blocks-iframe-archive-from-media',
|
|
50
|
+
[
|
|
51
|
+
[
|
|
52
|
+
'methods' => WP_REST_Server::EDITABLE,
|
|
53
|
+
'callback' => [ $this, 'import_iframe_archive_from_media_library' ],
|
|
54
|
+
'permission_callback' => function() {
|
|
55
|
+
return current_user_can( 'edit_posts' );
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
]
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
register_rest_route(
|
|
62
|
+
$this->namespace,
|
|
63
|
+
'/newspack-blocks-iframe-mode-from-url',
|
|
64
|
+
[
|
|
65
|
+
[
|
|
66
|
+
'methods' => WP_REST_Server::EDITABLE,
|
|
67
|
+
'callback' => [ $this, 'get_iframe_mode_from_url' ],
|
|
68
|
+
'permission_callback' => function() {
|
|
69
|
+
return current_user_can( 'edit_posts' );
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
]
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
register_rest_route(
|
|
76
|
+
$this->namespace,
|
|
77
|
+
'/newspack-blocks-remove-iframe-archive',
|
|
78
|
+
[
|
|
79
|
+
[
|
|
80
|
+
'methods' => WP_REST_Server::DELETABLE,
|
|
81
|
+
'callback' => [ $this, 'remove_iframe_archive' ],
|
|
82
|
+
'permission_callback' => function() {
|
|
83
|
+
return current_user_can( 'edit_posts' );
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
]
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Receive the iframe content, handle it, and returns the URL and the folder name.
|
|
92
|
+
*
|
|
93
|
+
* @param WP_REST_Request $request Request object.
|
|
94
|
+
* @return WP_REST_Response
|
|
95
|
+
*/
|
|
96
|
+
public function import_iframe_from_uploaded_file( $request ) {
|
|
97
|
+
$response = [];
|
|
98
|
+
$files = $request->get_file_params();
|
|
99
|
+
|
|
100
|
+
if ( count( $files ) > 0 && array_key_exists( 'iframe_file', $files ) ) {
|
|
101
|
+
$iframe_file = $files['iframe_file'];
|
|
102
|
+
$iframe_folder = pathinfo( $iframe_file['name'] )['filename'] . '-' . wp_generate_password( 8, false );
|
|
103
|
+
|
|
104
|
+
if ( in_array( $iframe_file['type'], array_keys( Newspack_Blocks::iframe_document_accepted_file_mimes() ), true ) ) {
|
|
105
|
+
$file_extension = pathinfo( $iframe_file['name'], PATHINFO_EXTENSION );
|
|
106
|
+
$response = $this->process_iframe_document( $request, "$iframe_folder.$file_extension", $iframe_file['tmp_name'] );
|
|
107
|
+
} elseif ( in_array( $iframe_file['type'], array_keys( Newspack_Blocks::iframe_archive_accepted_file_mimes() ), true ) ) {
|
|
108
|
+
$response = $this->process_iframe_archive( $request, $iframe_folder, $iframe_file['tmp_name'] );
|
|
109
|
+
} else {
|
|
110
|
+
$response = new WP_Error(
|
|
111
|
+
'newspack_blocks',
|
|
112
|
+
__( 'Could not find the iframe file on your request.', 'newspack-blocks' ),
|
|
113
|
+
[ 'status' => '400' ]
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
} else {
|
|
117
|
+
$response = new WP_Error(
|
|
118
|
+
'newspack_blocks',
|
|
119
|
+
__( 'Could not find the iframe file on your request.', 'newspack-blocks' ),
|
|
120
|
+
[ 'status' => '400' ]
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return rest_ensure_response( $response );
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Receive the iframe archive, unzip it, and returns the URL and the folder name.
|
|
129
|
+
*
|
|
130
|
+
* @param WP_REST_Request $request Request object.
|
|
131
|
+
* @return WP_REST_Response
|
|
132
|
+
*/
|
|
133
|
+
public function import_iframe_archive_from_media_library( $request ) {
|
|
134
|
+
$response = [];
|
|
135
|
+
$data = $request->get_body_params();
|
|
136
|
+
|
|
137
|
+
if ( array_key_exists( 'media_id', $data ) ) {
|
|
138
|
+
$media = get_post( $data['media_id'] );
|
|
139
|
+
$media_path = get_attached_file( $data['media_id'] );
|
|
140
|
+
|
|
141
|
+
if ( $media_path && in_array( $media->post_mime_type, array_keys( Newspack_Blocks::iframe_document_accepted_file_mimes() ), true ) ) {
|
|
142
|
+
$iframe_folder = $media->post_title . '-' . wp_generate_password( 8, false );
|
|
143
|
+
$file_extension = Newspack_Blocks::iframe_document_accepted_file_mimes()[ $media->post_mime_type ];
|
|
144
|
+
|
|
145
|
+
$response = $this->process_iframe_document( $request, "$iframe_folder.$file_extension", $media_path );
|
|
146
|
+
} elseif ( $media_path && in_array( $media->post_mime_type, array_keys( Newspack_Blocks::iframe_archive_accepted_file_mimes() ), true ) ) {
|
|
147
|
+
$iframe_folder = $media->post_title . '-' . wp_generate_password( 8, false );
|
|
148
|
+
|
|
149
|
+
$response = $this->process_iframe_archive( $request, $iframe_folder, $media_path );
|
|
150
|
+
} else {
|
|
151
|
+
$response = new WP_Error(
|
|
152
|
+
'newspack_blocks',
|
|
153
|
+
__( 'Please choose a valid (.zip) assets archive.', 'newspack-blocks' ),
|
|
154
|
+
[ 'status' => '400' ]
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
} else {
|
|
158
|
+
$response = new WP_Error(
|
|
159
|
+
'newspack_blocks',
|
|
160
|
+
__( 'Please choose a valid (.zip) assets archive.', 'newspack-blocks' ),
|
|
161
|
+
[ 'status' => '400' ]
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return rest_ensure_response( $response );
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Receive the iframe content, handle it, and returns the URL and the folder name.
|
|
170
|
+
*
|
|
171
|
+
* @param WP_REST_Request $request Request object.
|
|
172
|
+
* @return WP_REST_Response
|
|
173
|
+
*/
|
|
174
|
+
public function get_iframe_mode_from_url( $request ) {
|
|
175
|
+
$data = $request->get_body_params();
|
|
176
|
+
$mode = 'iframe';
|
|
177
|
+
|
|
178
|
+
// If we need to remove the previous document, it's a good place to do it here.
|
|
179
|
+
if ( array_key_exists( 'iframe_url', $data ) && ! empty( $data['iframe_url'] ) ) {
|
|
180
|
+
$content_type = wp_remote_head( $data['iframe_url'] )['headers']->offsetGet( 'content-type' );
|
|
181
|
+
if ( in_array( $content_type, array_keys( Newspack_Blocks::iframe_document_accepted_file_mimes() ), true ) ) {
|
|
182
|
+
$mode = 'document';
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return rest_ensure_response( [ 'mode' => $mode ] );
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Process iframe source from uploaded document file or from media file.
|
|
191
|
+
*
|
|
192
|
+
* @param WP_REST_REQUEST $request Request object.
|
|
193
|
+
* @param string $document_filename Document filename.
|
|
194
|
+
* @param string $media_source_path iframe assets zip file path.
|
|
195
|
+
* @return WP_REST_Response
|
|
196
|
+
*/
|
|
197
|
+
private function process_iframe_document( $request, $document_filename, $media_source_path ) {
|
|
198
|
+
$wp_upload_dir = wp_upload_dir();
|
|
199
|
+
$iframe_upload_dir = $wp_upload_dir['path'] . self::IFRAME_UPLOAD_DIR;
|
|
200
|
+
$iframe_path = $iframe_upload_dir . $document_filename;
|
|
201
|
+
$data = $request->get_body_params();
|
|
202
|
+
|
|
203
|
+
// Create iframe directory if not existing.
|
|
204
|
+
if ( ! file_exists( $iframe_upload_dir ) ) {
|
|
205
|
+
wp_mkdir_p( $iframe_upload_dir );
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// If we need to remove the previous document, it's a good place to do it here.
|
|
209
|
+
if ( array_key_exists( 'archive_folder', $data ) && ! empty( $data['archive_folder'] ) ) {
|
|
210
|
+
$this->remove_folder( $wp_upload_dir['basedir'] . $data['archive_folder'] );
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Copy uploaded document file to destination.
|
|
214
|
+
if ( copy( $media_source_path, $iframe_path ) ) {
|
|
215
|
+
return [
|
|
216
|
+
'mode' => 'document',
|
|
217
|
+
'src' => $wp_upload_dir['url'] . self::IFRAME_UPLOAD_DIR . $document_filename,
|
|
218
|
+
'dir' => path_join( $wp_upload_dir['subdir'] . self::IFRAME_UPLOAD_DIR, $document_filename ),
|
|
219
|
+
];
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return new WP_Error(
|
|
223
|
+
'newspack_blocks',
|
|
224
|
+
__( 'Could not upload your document.', 'newspack-blocks' ),
|
|
225
|
+
[ 'status' => '400' ]
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Process iframe archive from uploaded zip or from media file.
|
|
231
|
+
*
|
|
232
|
+
* @param WP_REST_REQUEST $request Request object.
|
|
233
|
+
* @param string $iframe_folder where to extract the iframe assets.
|
|
234
|
+
* @param string $media_path iframe assets zip file path.
|
|
235
|
+
* @return WP_REST_Response
|
|
236
|
+
*/
|
|
237
|
+
private function process_iframe_archive( $request, $iframe_folder, $media_path ) {
|
|
238
|
+
$wp_upload_dir = wp_upload_dir();
|
|
239
|
+
$iframe_upload_dir = $wp_upload_dir['path'] . self::IFRAME_UPLOAD_DIR;
|
|
240
|
+
$iframe_path = $iframe_upload_dir . $iframe_folder;
|
|
241
|
+
$data = $request->get_body_params();
|
|
242
|
+
|
|
243
|
+
// create iframe directory if not existing.
|
|
244
|
+
if ( ! file_exists( $iframe_upload_dir ) ) {
|
|
245
|
+
wp_mkdir_p( $iframe_upload_dir );
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// unzip iframe archive.
|
|
249
|
+
$zip = new ZipArchive();
|
|
250
|
+
$res = $zip->open( $media_path );
|
|
251
|
+
|
|
252
|
+
if ( true === $res ) {
|
|
253
|
+
$zip->extractTo( $iframe_path );
|
|
254
|
+
$zip->close();
|
|
255
|
+
|
|
256
|
+
// check if iframe entry file is there.
|
|
257
|
+
if ( file_exists( path_join( $iframe_path, self::IFRAME_ENTRY_FILE ) ) ) {
|
|
258
|
+
$response = [
|
|
259
|
+
'mode' => 'iframe',
|
|
260
|
+
'src' => $wp_upload_dir['url'] . self::IFRAME_UPLOAD_DIR . $iframe_folder . DIRECTORY_SEPARATOR,
|
|
261
|
+
'dir' => path_join( $wp_upload_dir['subdir'] . self::IFRAME_UPLOAD_DIR, $iframe_folder ),
|
|
262
|
+
];
|
|
263
|
+
|
|
264
|
+
// if we need to remove the previous archive, it's a good place to do it here.
|
|
265
|
+
if ( array_key_exists( 'archive_folder', $data ) && ! empty( $data['archive_folder'] ) ) {
|
|
266
|
+
$this->remove_folder( $wp_upload_dir['basedir'] . $data['archive_folder'] );
|
|
267
|
+
}
|
|
268
|
+
} else {
|
|
269
|
+
// check if its not a one folder archive: archive.zip > archive > index.html.
|
|
270
|
+
$archive_folders = array_values(
|
|
271
|
+
array_filter(
|
|
272
|
+
glob( "$iframe_path/*", GLOB_ONLYDIR ),
|
|
273
|
+
function( $file ) {
|
|
274
|
+
return false === strpos( $file, '__MACOSX' );
|
|
275
|
+
}
|
|
276
|
+
)
|
|
277
|
+
);
|
|
278
|
+
|
|
279
|
+
if ( 1 === count( $archive_folders ) && file_exists( path_join( $archive_folders[0], self::IFRAME_ENTRY_FILE ) ) ) {
|
|
280
|
+
$response = [
|
|
281
|
+
'mode' => 'iframe',
|
|
282
|
+
'src' => $wp_upload_dir['url'] . self::IFRAME_UPLOAD_DIR . $iframe_folder . DIRECTORY_SEPARATOR . basename( $archive_folders[0] ) . DIRECTORY_SEPARATOR,
|
|
283
|
+
'dir' => path_join( $wp_upload_dir['subdir'] . self::IFRAME_UPLOAD_DIR, $iframe_folder . DIRECTORY_SEPARATOR ),
|
|
284
|
+
];
|
|
285
|
+
|
|
286
|
+
// if we need to remove the previous archive, it's a good place to do it here.
|
|
287
|
+
if ( array_key_exists( 'archive_folder', $data ) && ! empty( $data['archive_folder'] ) ) {
|
|
288
|
+
$this->remove_folder( $wp_upload_dir['basedir'] . $data['archive_folder'] );
|
|
289
|
+
}
|
|
290
|
+
} else {
|
|
291
|
+
// if not, remove the uploaded archive data and raise an error.
|
|
292
|
+
$this->remove_folder( $iframe_path );
|
|
293
|
+
|
|
294
|
+
$response = new WP_Error(
|
|
295
|
+
'newspack_blocks',
|
|
296
|
+
/* translators: %s: iframe entry file (e.g. index,html) */
|
|
297
|
+
sprintf( __( '%s was not found in the iframe archive.', 'newspack-blocks' ), self::IFRAME_ENTRY_FILE ),
|
|
298
|
+
[ 'status' => '400' ]
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
} else {
|
|
303
|
+
$response = new WP_Error(
|
|
304
|
+
'newspack_blocks',
|
|
305
|
+
__( "Could not unzip the iframe archive, make sure it's a valid .zip archive file.", 'newspack-blocks' ),
|
|
306
|
+
[ 'status' => '400' ]
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
return $response;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Delete iframe archive, this is called when changing the iframe source.
|
|
315
|
+
*
|
|
316
|
+
* @param WP_REST_Request $request Request object.
|
|
317
|
+
* @return WP_REST_Response
|
|
318
|
+
*/
|
|
319
|
+
public function remove_iframe_archive( $request ) {
|
|
320
|
+
$wp_upload_dir = wp_upload_dir();
|
|
321
|
+
$data = $request->get_json_params();
|
|
322
|
+
|
|
323
|
+
if ( array_key_exists( 'archive_folder', $data ) && ! empty( $data['archive_folder'] ) ) {
|
|
324
|
+
$this->remove_folder( $wp_upload_dir['basedir'] . $data['archive_folder'] );
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
return rest_ensure_response( [] );
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Remove a folder. Called to remove the iframe archive folder.
|
|
332
|
+
*
|
|
333
|
+
* @param string $folder folder path to remove.
|
|
334
|
+
* @return void
|
|
335
|
+
*/
|
|
336
|
+
private function remove_folder( $folder ) {
|
|
337
|
+
if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
|
|
338
|
+
require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php';
|
|
339
|
+
require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php';
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
$file_system = new WP_Filesystem_Direct( false );
|
|
343
|
+
$file_system->rmdir( $folder, true );
|
|
344
|
+
}
|
|
345
|
+
}
|