From 919792aee9735e5a30012c7cc32188699b47a853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Obradovi=C4=87?= Date: Wed, 28 Feb 2024 17:03:31 +0100 Subject: [PATCH 1/6] Add blog post about tips & useful features --- .../blog/2024-02-29-tips-useful-features.md | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 website/blog/2024-02-29-tips-useful-features.md diff --git a/website/blog/2024-02-29-tips-useful-features.md b/website/blog/2024-02-29-tips-useful-features.md new file mode 100644 index 000000000..0c97ee6ab --- /dev/null +++ b/website/blog/2024-02-29-tips-useful-features.md @@ -0,0 +1,221 @@ +--- +title: Tips & useful features +description: Various tips and useful features for your project included in Eightshift DevKit. +slug: tips-useful.features +authors: obradovic +date: 2024-02-29 +tags: [eightshift, boilerplate, blocks, plugins, colors, images, classes] +hide_table_of_contents: false +--- + +Eightshift DevKit has lots of features that can make your development experience easier. These are mostly minor features which can’t be a blog post of its own, so they’ll be listed here. This isn’t a complete list, so there may be a part 2 in the future. + + +## Using only Eightshift blocks + +If you want to remove the default Gutenberg blocks and use only Eightshift blocks, it’s as easy as adding the following code in your src/Blocks/Blocks.php file: + +```php +// Limits the usage of only custom project blocks. +\add_filter('allowed_block_types_all', [$this, 'getAllBlocksList'], 10, 2); +``` + +## ModifyAdminAppearance class + +When you have multiple environments, you may accidentally change something on the wrong environment. The `ModifyAdminAppearance` class changes your WP Admin color scheme depending on the environment type defined with the `WP_ENVIRONMENT_TYPE` constant. That way it’s much easier to differentiate on which environment are you. + +Now when you get a call from the client asking you why the blog post they published isn’t visible on the site, the first question you can ask is: “What color is the admin area?” 😄 + +To add it into your project, use the following WP-CLI command: + +```bash +wp boilerplate create modify-admin-appearance +``` + +After adding this class to your project, all you have to do is define the proper environment type in the `WP_ENVIRONMENT_TYPE` constant in ***wp-config.php.*** + +The supported values are: + +- local +- development +- staging +- production + +If you want to change any of the colors, you can do so by modifying the values in `COLOR_SCHEMES` array inside `ModifyAdminAppearance` class. + +## EscapedView class + +This class can be used to define which tags and attributes are escaped or allowed in your project. To add it the class your project, use the following WP-CLI command: + +```php +wp boilerplate create escaped-view +``` + +Here’s an example how to define the allowed tags so `wp_kses` doesn’t remove them: + +```php + /** + * Add tags to Allowed HTML list. + * + * @param array> $tags Allowed tags. + * + * @return array> + */ + public function ksesAllowedHtml($tags): array + { + $tags['source'] = [ + 'src' => [], + 'type' => [], + ]; + + $tags['video'] = [ + 'muted' => [], + 'src' => [], + 'autoplay' => [], + // ... + ]; + + $tags['div']['data-*'] = true; + + return \array_merge( + $tags, + static::SVG, + static::FORM, + static::IFRAME + ); + } +``` + +Don’t forget to add this action to the `register` method: + +```php +**\add_filter('wp_kses_allowed_html', [$this, 'ksesAllowedHtml'], 20, 1);** +``` + +## Media class + +To add the Media class to your project, use the following WP-CLI command: + +```bash +wp boilerplate create media +``` + +You can use the Media class to define new media sizes or allow uploads of the mime types that are not allowed by default. + +```php + /** + * Allow additional types for uploads in media. + * + * @param array $mimes Load all mimes types. + * + * @return array Return original and updated. + */ + public function enableMimeTypes(array $mimes): array + { + $mimes['svg'] = 'image/svg+xml'; + $mimes['zip'] = 'application/zip'; + $mimes['json'] = 'application/json'; + + return $mimes; + } +``` + +And register the filter: + +```php +\add_filter('upload_mimes', [$this, 'enableMimeTypes']); +``` + +This class also supports converting your media into ***.webp*** format, but more on that below. + +## Webp conversion + +The .webp file format is becoming more and more popular, with it’s smaller file sizes and better compression, it is a preferred replacement to .jpg and .png formats. Eightshift DevKit supports converting your existing files to .webp format. + +If you already have the Media class in your project, you need to run the next WP-CLI commands: + +```bash +wp boilerplate create webp-media-column +``` + +This command will add a new column in your ***List view*** in Media Library that shows if the media is converted to .webp or not. + +To enable webp and convert existing media to webp, run the following commands: + +```bash +wp boilerplate run use-webp-media +wp boilerplate run regenerate-media +``` + +After running these commands, you’ll have your images converted to webp. Please note that the original files will not be deleted and you’ll have to add additional logic to your Image component for replacing the URLs. Here’s a simple example how to do it: + +```php +// Check if webP is used from admin. +$isWebPUsed = Components::isWebPMediaUsed(); + +// If webP is used override the url for large. +if ($isWebPUsed) { + $sourceWebPLarge = Components::getWebPMedia($imageUrl['large'], Media::WEBP_ALLOWED_EXT); + + if ($sourceWebPLarge) { + $imageUrl['large'] = $sourceWebPLarge['src']; + } +} +``` + +## Dynamic cookies for WP Rocket + +This is quite useful when you have a GDPR plugin and you have to take the cookie value into consideration when serving the cached version of the site depending on the cookie value. + +To add the GDPR cookie to the list of dynamic cookies, create a new class called Rocket with the following WP-CLI command: + +```bash +wp boilerplate create service-example --folder=Plugins/Rocket --file_name=Rocket +``` + +Add the following method to the Rocket class + +```php + /** + * List all dynamic cookies that will create new cached version. + * + * @param array $items Items from the admin. + * + * @return array + */ + public function dynamicCookiesList(array $items): array + { + $items[] = 'gdpr'; + + return $items; + } +``` + +Finally, add the following filter to the `register` method: + +```php +\add_filter('rocket_cache_dynamic_cookies', [$this, 'dynamicCookiesList']); +``` + +## Yoast SEO helper + +The content generated by Eightshift blocks may be difficult for Yoast SEO to interpret, but there is a Yoast SEO helper included in our DevKit that fixes the issue and makes the content readable to Yoast SEO. To enable this, you have to add the following in ….: + +```jsx +import { yoastSeo } from '@eightshift/frontend-libs/scripts/plugins'; + +// ... + +yoastSeo(); +``` + +## Linters and Coding Standards checks + +Eightshift DevKit includes coding standards checks that will help you improve your code quality. + +The commands for running these checks have to be in the theme root folder. Here’s the list: + +- `npm run lintStyle` - check your CSS files with StyleLint +- `npm run lintJs` - check your JS files with ESLint +- `composer test:standards` - check PHP coding standards errors with PHPCS +- `composer test:types` - runs PHPStan static code analysis From 6f246eaf84236074c2a82d4f7e4554eebcf992e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Obradovi=C4=87?= Date: Thu, 29 Feb 2024 08:48:28 +0100 Subject: [PATCH 2/6] Update content and add images --- .../blog/2024-02-29-tips-useful-features.md | 36 ++++++++++-------- .../img/blog/modify-admin-appearance.webp | Bin 0 -> 34622 bytes website/static/img/blog/webp-column.webp | Bin 0 -> 45640 bytes 3 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 website/static/img/blog/modify-admin-appearance.webp create mode 100644 website/static/img/blog/webp-column.webp diff --git a/website/blog/2024-02-29-tips-useful-features.md b/website/blog/2024-02-29-tips-useful-features.md index 0c97ee6ab..7fe0add17 100644 --- a/website/blog/2024-02-29-tips-useful-features.md +++ b/website/blog/2024-02-29-tips-useful-features.md @@ -13,7 +13,7 @@ Eightshift DevKit has lots of features that can make your development experience ## Using only Eightshift blocks -If you want to remove the default Gutenberg blocks and use only Eightshift blocks, it’s as easy as adding the following code in your src/Blocks/Blocks.php file: +If you want to remove the default Gutenberg blocks and use only Eightshift blocks, it’s as easy as adding the following code in your **_src/Blocks/Blocks.php_** file: ```php // Limits the usage of only custom project blocks. @@ -22,7 +22,7 @@ If you want to remove the default Gutenberg blocks and use only Eightshift block ## ModifyAdminAppearance class -When you have multiple environments, you may accidentally change something on the wrong environment. The `ModifyAdminAppearance` class changes your WP Admin color scheme depending on the environment type defined with the `WP_ENVIRONMENT_TYPE` constant. That way it’s much easier to differentiate on which environment are you. +When you have multiple environments, you may accidentally change something on the wrong environment. The `ModifyAdminAppearance` class changes your WP Admin color scheme depending on the environment type defined with the `WP_ENVIRONMENT_TYPE` constant. That way it’s much easier to differentiate on which environment you are when you're in WP Admin. Now when you get a call from the client asking you why the blog post they published isn’t visible on the site, the first question you can ask is: “What color is the admin area?” 😄 @@ -41,13 +41,15 @@ The supported values are: - staging - production +![Different color schemes in WP Admin depending on the environment](/img/blog/modify-admin-appearance.webp) + If you want to change any of the colors, you can do so by modifying the values in `COLOR_SCHEMES` array inside `ModifyAdminAppearance` class. ## EscapedView class -This class can be used to define which tags and attributes are escaped or allowed in your project. To add it the class your project, use the following WP-CLI command: +This class can be used to define which tags and attributes are escaped or allowed in your project. To add the class into your project, use the following WP-CLI command: -```php +```bash wp boilerplate create escaped-view ``` @@ -55,7 +57,7 @@ Here’s an example how to define the allowed tags so `wp_kses` doesn’t remove ```php /** - * Add tags to Allowed HTML list. + * Add tags to allowed HTML list. * * @param array> $tags Allowed tags. * @@ -89,7 +91,7 @@ Here’s an example how to define the allowed tags so `wp_kses` doesn’t remove Don’t forget to add this action to the `register` method: ```php -**\add_filter('wp_kses_allowed_html', [$this, 'ksesAllowedHtml'], 20, 1);** +\add_filter('wp_kses_allowed_html', [$this, 'ksesAllowedHtml'], 20, 1); ``` ## Media class @@ -126,11 +128,11 @@ And register the filter: \add_filter('upload_mimes', [$this, 'enableMimeTypes']); ``` -This class also supports converting your media into ***.webp*** format, but more on that below. +This class also supports converting your media into **_WebP_** format, but more on that below. -## Webp conversion +## WebP conversion -The .webp file format is becoming more and more popular, with it’s smaller file sizes and better compression, it is a preferred replacement to .jpg and .png formats. Eightshift DevKit supports converting your existing files to .webp format. +The WebP file format is becoming more and more popular, with its smaller file sizes and better compression, it is a preferred replacement to .jpg and .png formats. Eightshift DevKit supports converting your existing files to WebP format. If you already have the Media class in your project, you need to run the next WP-CLI commands: @@ -138,16 +140,18 @@ If you already have the Media class in your project, you need to run the next WP wp boilerplate create webp-media-column ``` -This command will add a new column in your ***List view*** in Media Library that shows if the media is converted to .webp or not. +This command will add a new column in your ***List view*** in Media Library that shows if the media is converted to WebP or not. + +![WebP column in Media Library](/img/blog/webp-column.webp) -To enable webp and convert existing media to webp, run the following commands: +To enable and convert existing media to WebP, run the following commands: ```bash wp boilerplate run use-webp-media wp boilerplate run regenerate-media ``` -After running these commands, you’ll have your images converted to webp. Please note that the original files will not be deleted and you’ll have to add additional logic to your Image component for replacing the URLs. Here’s a simple example how to do it: +After running these commands, you’ll have your images converted to WebP. Please note that the original files will not be deleted and you’ll have to add additional logic to your Image component for replacing the URLs. Here’s a simple example how to do it: ```php // Check if webP is used from admin. @@ -165,7 +169,7 @@ if ($isWebPUsed) { ## Dynamic cookies for WP Rocket -This is quite useful when you have a GDPR plugin and you have to take the cookie value into consideration when serving the cached version of the site depending on the cookie value. +This is quite useful when you have a GDPR plugin and you have to take the cookie value into consideration when serving the cached version of the site. To add the GDPR cookie to the list of dynamic cookies, create a new class called Rocket with the following WP-CLI command: @@ -173,7 +177,7 @@ To add the GDPR cookie to the list of dynamic cookies, create a new class called wp boilerplate create service-example --folder=Plugins/Rocket --file_name=Rocket ``` -Add the following method to the Rocket class +Add the following method to the Rocket class: ```php /** @@ -199,7 +203,7 @@ Finally, add the following filter to the `register` method: ## Yoast SEO helper -The content generated by Eightshift blocks may be difficult for Yoast SEO to interpret, but there is a Yoast SEO helper included in our DevKit that fixes the issue and makes the content readable to Yoast SEO. To enable this, you have to add the following in ….: +The content generated by Eightshift blocks may be difficult for Yoast SEO to interpret, but there is a Yoast SEO helper included in our DevKit that fixes the issue and makes the content readable to Yoast SEO. To enable this, you have to add the following in **_src/Blocks/assets/scripts/application-blocks-editor.js_**: ```jsx import { yoastSeo } from '@eightshift/frontend-libs/scripts/plugins'; @@ -213,7 +217,7 @@ yoastSeo(); Eightshift DevKit includes coding standards checks that will help you improve your code quality. -The commands for running these checks have to be in the theme root folder. Here’s the list: +To run these commands, you have to be in the theme root folder. Here’s the list: - `npm run lintStyle` - check your CSS files with StyleLint - `npm run lintJs` - check your JS files with ESLint diff --git a/website/static/img/blog/modify-admin-appearance.webp b/website/static/img/blog/modify-admin-appearance.webp new file mode 100644 index 0000000000000000000000000000000000000000..6a2d168e0ba77ca3a83c35a0e9e99ab6a27968c1 GIT binary patch literal 34622 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
9ZGeX)6-L}T2wzm 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 Z|Hl>o`1$YFcSj2%@H78s&;$_x{|8&8>%ag2 literal 0 HcmV?d00001 From 6969422afe17fcc202113a38e3b2ffb36185d640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Obradovi=C4=87?= Date: Thu, 29 Feb 2024 08:54:36 +0100 Subject: [PATCH 3/6] More content updates --- website/blog/2024-02-29-tips-useful-features.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/blog/2024-02-29-tips-useful-features.md b/website/blog/2024-02-29-tips-useful-features.md index 7fe0add17..6028e5600 100644 --- a/website/blog/2024-02-29-tips-useful-features.md +++ b/website/blog/2024-02-29-tips-useful-features.md @@ -88,7 +88,7 @@ Here’s an example how to define the allowed tags so `wp_kses` doesn’t remove } ``` -Don’t forget to add this action to the `register` method: +Don’t forget to add this to the `register` method: ```php \add_filter('wp_kses_allowed_html', [$this, 'ksesAllowedHtml'], 20, 1); @@ -134,7 +134,7 @@ This class also supports converting your media into **_WebP_** format, but more The WebP file format is becoming more and more popular, with its smaller file sizes and better compression, it is a preferred replacement to .jpg and .png formats. Eightshift DevKit supports converting your existing files to WebP format. -If you already have the Media class in your project, you need to run the next WP-CLI commands: +If you already have the Media class in your project, you need to run this WP-CLI command: ```bash wp boilerplate create webp-media-column From 095d02d6a15d0710f013919ce2188f770f3a7978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Obradovi=C4=87?= Date: Thu, 29 Feb 2024 09:03:19 +0100 Subject: [PATCH 4/6] Fix slug typo --- website/blog/2024-02-29-tips-useful-features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/blog/2024-02-29-tips-useful-features.md b/website/blog/2024-02-29-tips-useful-features.md index 6028e5600..210fda523 100644 --- a/website/blog/2024-02-29-tips-useful-features.md +++ b/website/blog/2024-02-29-tips-useful-features.md @@ -1,7 +1,7 @@ --- title: Tips & useful features description: Various tips and useful features for your project included in Eightshift DevKit. -slug: tips-useful.features +slug: tips-useful-features authors: obradovic date: 2024-02-29 tags: [eightshift, boilerplate, blocks, plugins, colors, images, classes] From 250bb36b693424e9eefbb6f3dfa4b7247fc31c51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Obradovi=C4=87?= Date: Thu, 29 Feb 2024 09:26:18 +0100 Subject: [PATCH 5/6] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Goran Alković <77000136+goranalkovic-infinum@users.noreply.github.com> --- website/blog/2024-02-29-tips-useful-features.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/website/blog/2024-02-29-tips-useful-features.md b/website/blog/2024-02-29-tips-useful-features.md index 210fda523..4a65b11ac 100644 --- a/website/blog/2024-02-29-tips-useful-features.md +++ b/website/blog/2024-02-29-tips-useful-features.md @@ -22,7 +22,7 @@ If you want to remove the default Gutenberg blocks and use only Eightshift block ## ModifyAdminAppearance class -When you have multiple environments, you may accidentally change something on the wrong environment. The `ModifyAdminAppearance` class changes your WP Admin color scheme depending on the environment type defined with the `WP_ENVIRONMENT_TYPE` constant. That way it’s much easier to differentiate on which environment you are when you're in WP Admin. +When you have multiple environments (local, staging, production ...), you may accidentally change something on the wrong environment if you mix up your tabs. The `ModifyAdminAppearance` class changes your WP Admin color scheme depending on the environment type defined with the `WP_ENVIRONMENT_TYPE` constant. That way it’s much easier to differentiate on which environment you are when you're in WP Admin. Now when you get a call from the client asking you why the blog post they published isn’t visible on the site, the first question you can ask is: “What color is the admin area?” 😄 @@ -88,6 +88,9 @@ Here’s an example how to define the allowed tags so `wp_kses` doesn’t remove } ``` +> ⚠️ **Note** +> Please be vary of attributes you're allowing, as that could expose your website to cross-site-scripting (XSS) and similar attacks! + Don’t forget to add this to the `register` method: ```php @@ -130,9 +133,9 @@ And register the filter: This class also supports converting your media into **_WebP_** format, but more on that below. -## WebP conversion +## Automatic WebP conversion -The WebP file format is becoming more and more popular, with its smaller file sizes and better compression, it is a preferred replacement to .jpg and .png formats. Eightshift DevKit supports converting your existing files to WebP format. +The WebP file format is becoming more and more popular, with its smaller file sizes and better compression, it is a preferred replacement for .jpg and .png formats. Eightshift DevKit supports converting your existing files to WebP format. If you already have the Media class in your project, you need to run this WP-CLI command: @@ -151,7 +154,11 @@ wp boilerplate run use-webp-media wp boilerplate run regenerate-media ``` -After running these commands, you’ll have your images converted to WebP. Please note that the original files will not be deleted and you’ll have to add additional logic to your Image component for replacing the URLs. Here’s a simple example how to do it: +After running these commands, you’ll have your images converted to WebP. Some formats like `svg` will not be converted, this is intended. + +Please note that the original files will not be deleted and you’ll have to add additional logic to your Image component for replacing the URLs. + +Here’s a simple example how to do it: ```php // Check if webP is used from admin. From 0cf440de173e7b7eb08820ffc1dc55d909021919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Obradovi=C4=87?= Date: Thu, 29 Feb 2024 10:12:05 +0100 Subject: [PATCH 6/6] Content updates --- .../blog/2024-02-29-tips-useful-features.md | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/website/blog/2024-02-29-tips-useful-features.md b/website/blog/2024-02-29-tips-useful-features.md index 4a65b11ac..975f0eab9 100644 --- a/website/blog/2024-02-29-tips-useful-features.md +++ b/website/blog/2024-02-29-tips-useful-features.md @@ -43,7 +43,21 @@ The supported values are: ![Different color schemes in WP Admin depending on the environment](/img/blog/modify-admin-appearance.webp) -If you want to change any of the colors, you can do so by modifying the values in `COLOR_SCHEMES` array inside `ModifyAdminAppearance` class. +If you want to change any of the colors, you can do so by modifying the values in `COLOR_SCHEMES` array inside `ModifyAdminAppearance` class. For the full list of available color schemes, you can navigate to **_wp-admin/css/colors_**. The subfolders here represent the color schemes you can use. For example, if you want to change production environment color scheme to `coffee`, you would do it like this: + +```php +/** + * List of admin color schemes. + * + * @var array + */ +public const COLOR_SCHEMES = [ + 'development' => 'fresh', + 'local' => 'fresh', + 'staging' => 'blue', + 'production' => 'coffee', +]; +``` ## EscapedView class @@ -210,7 +224,9 @@ Finally, add the following filter to the `register` method: ## Yoast SEO helper -The content generated by Eightshift blocks may be difficult for Yoast SEO to interpret, but there is a Yoast SEO helper included in our DevKit that fixes the issue and makes the content readable to Yoast SEO. To enable this, you have to add the following in **_src/Blocks/assets/scripts/application-blocks-editor.js_**: +The content generated by Eightshift blocks may be difficult for Yoast SEO to interpret, but there is a Yoast SEO helper included in our DevKit that fixes the issue and makes the content readable to Yoast SEO. By default, Yoast SEO can't read the content from custom dynamic blocks, so this helper tells it how to parse the content from the blocks. + +To enable this, you have to add the following in **_src/Blocks/assets/scripts/application-blocks-editor.js_**: ```jsx import { yoastSeo } from '@eightshift/frontend-libs/scripts/plugins';