<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[12314] sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-blocks.php: Support Forums: Blocks: Add an experimental predefs functionality through the usage of Block Patterns.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/12314">12314</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/12314","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>dd32</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2022-12-12 02:36:41 +0000 (Mon, 12 Dec 2022)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Support Forums: Blocks: Add an experimental predefs functionality through the usage of Block Patterns.

Props johnny5.
See <a href="http://meta.trac.wordpress.org/ticket/6608">#6608</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginssupportforumsincclassblocksphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-blocks.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginssupportforumsincclassblocksphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-blocks.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-blocks.php      2022-12-12 00:16:33 UTC (rev 12313)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-blocks.php        2022-12-12 02:36:41 UTC (rev 12314)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,6 +1,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <?php
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del><span class="cx" style="display: block; padding: 0 10px"> namespace WordPressdotorg\Forums;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use WP_Block_Patterns_Registry, WP_Block_Pattern_Categories_Registry;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px">  * Customizations for the Support Forum and the Blocks Everywhere plugin.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -32,6 +32,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Hack to make Imgur embeds work. This should be fixed by Imgur.
</span><span class="cx" style="display: block; padding: 0 10px">                add_filter( 'oembed_remote_get_args', [ $this, 'oembed_remote_get_args' ], 10, 2 );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               // Add block patterns.
+               add_filter( 'init', [ $this, 'register_predefs' ] );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        public function after_setup_theme() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -79,6 +82,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        ]
</span><span class="cx" style="display: block; padding: 0 10px">                ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                // Add patterns
+               $settings['editor']['__experimentalBlockPatterns'] = WP_Block_Patterns_Registry::get_instance()->get_all_registered();
+               $settings['editor']['__experimentalBlockPatternCategories'] = WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered();
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 return $settings;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -120,4 +127,123 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                return $http_args;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       /**
+        * Register pre-defs for the forums.
+        */
+       public function register_predefs() {
+               $registered = WP_Block_Patterns_Registry::get_instance()->get_all_registered();
+               foreach ( $registered as $pattern ) {
+                       unregister_block_pattern( $pattern['name'] );
+               }
+       
+               $registered = WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered();
+               foreach ( $registered as $pattern ) {
+                       unregister_block_pattern_category( $pattern['name'] );
+               }
+       
+               register_block_pattern_category( 'predef', [ 'label' => 'Pre-defined Replies' ] );
+       
+               register_block_pattern( 'wordpress-org/no-dashboard', [
+                       'title'      => 'Cannot Access Dashboard',
+                       'categories' => [ 'predef' ],
+                       'content'    => '
+                               <!-- wp:paragraph -->
+                               <p>Try <a href="https://wordpress.org/support/article/faq-troubleshooting/#how-to-deactivate-all-plugins-when-not-able-to-access-the-administrative-menus">manually resetting your plugins</a> (no Dashboard access required). If that resolves the issue, reactivate each one individually until you find the cause.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>If that does not resolve the issue, access your server via <a href="https://wordpress.org/support/article/ftp-clients/">SFTP or FTP</a>, or a file manager in your hosting account\'s control panel, navigate to <code>/wp-content/themes/</code> and rename the directory of your currently active theme. This will force the default theme to activate and hopefully rule-out a theme-specific issue (theme functions can interfere like plugins).</p>
+                               <!-- /wp:paragraph -->',
+               ] );
+       
+               register_block_pattern( 'wordpress-org/theme-conflict', [
+                       'title'      => 'Error Related to Plugin or Theme Conflict',
+                       'categories' => [ 'predef' ],
+                       'content'    => '
+                               <!-- wp:paragraph -->
+                               <p>This may be a plugin or theme conflict. Please attempt to disable all plugins, and use one of the default (Twenty*) themes. If the problem goes away, enable them one by one to identify the source of your troubles.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>If you can install plugins, install and activate "Health Check": <a href="https://wordpress.org/plugins/health-check/">https://wordpress.org/plugins/health-check/</a></p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>It will add some additional features under the menu item under Tools &gt; Site Health.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>On its troubleshooting tab, you can Enable Troubleshooting Mode. This will disable all plugins, switch to a standard WordPress theme (if available), allow you to turn your plugins on and off and switch between themes, <strong>without affecting normal visitors to your site</strong>. This allows you to test for various compatibility issues.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>There’s a more detailed description about how to use the Health Check plugin and its Troubleshooting Mode at <a href="https://make.wordpress.org/support/handbook/appendix/troubleshooting-using-the-health-check/">https://make.wordpress.org/support/handbook/appendix/troubleshooting-using-the-health-check/</a></p>
+                               <!-- /wp:paragraph -->',
+               ] );
+       
+               register_block_pattern( 'wordpress-org/missing-files', [
+                       'title'      => 'Error Related to Missing or Damaged Core Files',
+                       'categories' => [ 'predef' ],
+                       'content'    => '
+                               <!-- wp:paragraph -->
+                               <p>Try <a href="https://wordpress.org/download/">downloading WordPress</a> again, access your server via <a href="https://wordpress.org/support/article/ftp-clients/">SFTP or FTP</a>, or a file manager in your hosting account\'s control panel, and delete then replace your copies of everything <strong>except</strong> the `wp-config.php` file and the <code>/wp-content/</code> directory with fresh copies from the download. This will effectively replace all of your core files without damaging your content and settings.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>Some uploaders tend to be unreliable when overwriting files, so don\'t forget to delete the original files before replacing them.</p>
+                               <!-- /wp:paragraph -->',
+               ] );
+       
+               register_block_pattern( 'wordpress-org/oom', [
+                       'title'      => 'Out of Memory Errors',
+                       'categories' => [ 'predef' ],
+                       'content'    => '
+                               <!-- wp:paragraph -->
+                               <p>If you\'re seeing this error either suddenly (no specific task was done to cause the error) or frequently, try deactivating all plugins to rule-out a plugin-specific issue and try switching themes to rule-out a theme-specific issue.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>Otherwise, here are three ways to increase PHP\'s memory allocation:</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:list {"ordered":true} -->
+                               <ol><!-- wp:list-item -->
+                               <li>If you can edit or override the system <code>php.ini</code> file, increase the memory limit. For example, <code>memory_limit = 128M</code></li>
+                               <!-- /wp:list-item -->
+       
+                               <!-- wp:list-item -->
+                               <li>If you cannot edit or override the system <code>php.ini</code> file, add <code>php_value memory_limit 128M</code> to your <code>.htaccess</code> file.</li>
+                               <!-- /wp:list-item -->
+       
+                               <!-- wp:list-item -->
+                               <li>If neither of these work, it\'s time to ask your hosting provider to temporarily increase PHP\'s memory allocation on your account.</li>
+                               <!-- /wp:list-item --></ol>
+                               <!-- /wp:list -->
+       
+                               <!-- wp:paragraph -->
+                               <p>(in the above examples, the limit is set to 128MB)</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p><a href="https://make.wordpress.org/support/handbook/giving-good-support/pre-defined-replies/#error-500-internal-server-error"><strong>Error 500: Internal Server Error</strong></a></p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>Internal server errors (error 500) are often caused by plugin or theme function conflicts, so if you have access to your admin panel, try deactivating all plugins. If you don\'t have access to your admin panel, try <a href="https://wordpress.org/support/article/faq-troubleshooting/#how-to-deactivate-all-plugins-when-not-able-to-access-the-administrative-menus">manually resetting your plugins</a> (no Dashboard access required). If that resolves the issue, reactivate each one individually until you find the cause.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>If that does not resolve the issue, try switching to the default theme for your version of WordPress to rule-out a theme-specific issue. If you don\'t have access to your admin panel, access your server via <a href="https://wordpress.org/support/article/ftp-clients/">SFTP or FTP</a>, or a file manager in your hosting account\'s control panel, navigate to <code>/wp-content/themes/</code> and rename the directory of your currently active theme. This will force the default theme to activate and hopefully rule-out a theme-specific issue.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>If that does not resolve the issue, it\'s possible that a <code>.htaccess</code> rule could be the source of the problem. To check for this, access your server via SFTP or FTP, or a file manager in your hosting account\'s control panel, and rename the <code>.htaccess</code> file. If you can\'t find a <code>.htaccess</code> file, make sure that you have set your SFTP or FTP client to view invisible files.</p>
+                               <!-- /wp:paragraph -->
+       
+                               <!-- wp:paragraph -->
+                               <p>If you weren’t able to resolve the issue by either resetting your plugins and theme or renaming your <code>.htaccess</code> file, we may be able to help, but we\'ll need a more detailed error message. Internal server errors are usually described in more detail in the server error log. If you have access to your server error log, generate the error again, note the date and time, then immediately check your server error log for any errors that occurred during that time period. If you don’t have access to your server error log, ask your hosting provider to look for you.</p>
+                               <!-- /wp:paragraph -->',
+               ] );
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre>
</div>
</div>

</body>
</html>