Drupal 9 http://lobsterr.me/ en How to check that module installed in Drupal 9? http://lobsterr.me/post/how-check-module-installed-drupal-9 <span class="field field--name-title field--type-string field--label-hidden">How to check that module installed in Drupal 9?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">07/14/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><pre> <code class="language-php">if (\Drupal::service('module_handler')-&gt;moduleExists('locale')) { // your code here }</code></pre> <p> </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/module" hreflang="en">Module</a></div> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 14 Jul 2021 09:03:12 +0000 LOBsTerr 45 at http://lobsterr.me How to provide full access to route in Drupal? http://lobsterr.me/post/how-provide-full-access-route-drupal <span class="field field--name-title field--type-string field--label-hidden">How to provide full access to route in Drupal?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">03/17/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><p>Let's imagine we don't want to have any restrictions for our route. For this we can set <strong>_access </strong>requirement to <strong>TRUE</strong>.</p> <pre> <code class="language-php">your_module.route_name: path: '/your_path' defaults: _controller: 'Drupal\your_module\Controller\YourController::yourMethod' requirements: _access: 'TRUE'</code></pre> <p> </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/routing-api" hreflang="en">Routing API</a></div> <div class="field__item btn btn-secondary"><a href="/tags/routing" hreflang="en">Routing</a></div> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 17 Mar 2021 13:10:49 +0000 LOBsTerr 44 at http://lobsterr.me How to check if the current user has a role in Drupal? http://lobsterr.me/post/how-check-if-current-user-has-role-drupal <span class="field field--name-title field--type-string field--label-hidden">How to check if the current user has a role in Drupal?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">03/10/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><pre> <code class="language-php">\Drupal::currentUser()-&gt;hasRole('administrator')</code></pre> <p> </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/user" hreflang="en">User</a></div> </div> <div class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush"> <div class="field__label">Related items</div> <ul class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush field__items"> <li class="field__item list-group-item"><a href="/post/how-check-if-current-user-has-permission-drupal" hreflang="en">How to check if the current user has a permission in Drupal</a></li> </ul> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 10 Mar 2021 09:33:46 +0000 LOBsTerr 43 at http://lobsterr.me How to check if the current user has a permission in Drupal http://lobsterr.me/post/how-check-if-current-user-has-permission-drupal <span class="field field--name-title field--type-string field--label-hidden">How to check if the current user has a permission in Drupal</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">03/10/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><pre> <code class="language-php">\Drupal::currentUser()-&gt;hasPermission('permission name');</code></pre> <p> </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/user" hreflang="en">User</a></div> </div> <div class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush"> <div class="field__label">Related items</div> <ul class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush field__items"> <li class="field__item list-group-item"><a href="/post/how-check-if-current-user-has-role-drupal" hreflang="en">How to check if the current user has a role in Drupal?</a></li> </ul> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 10 Mar 2021 09:28:39 +0000 LOBsTerr 42 at http://lobsterr.me How to use entity query conditions for complex fields in drupal? http://lobsterr.me/post/how-use-entity-query-conditions-complex-fields-drupal <span class="field field--name-title field--type-string field--label-hidden">How to use entity query conditions for complex fields in drupal?</span> <div class="field field--name-f-intro field--type-string-long field--label-hidden field__item">Entity query conditions can be tricky, but at the same time it does a lot of things in the background for us. Let&#039;s check how to use it.</div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">03/03/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><h3>Select nodes of the specific content type using entity query</h3> <p>Let's start from the most simple example. Fetch all nodes of type <strong>article</strong><br />  </p> <pre> <code class="language-php">$query = \Drupal::service('entity_type.manager')-&gt;getStorage('node')-&gt;getQuery() -&gt;condition('type', 'article') $results = $query-&gt;execute();</code></pre> <h3> </h3> <h3>Select nodes by a simple field using entity query</h3> <p>Let's imagine our node have a simple field <strong>field_text</strong> and we want to fetch all nodes with some value.</p> <pre> <code class="language-php">$query = \Drupal::service('entity_type.manager')-&gt;getStorage('node')-&gt;getQuery() -&gt;condition('field_text', 'my value') $results = $query-&gt;execute();</code></pre> <h3> </h3> <h3>Select nodes by a complex fields (containing several subvalues) using entity query</h3> <p>Let's imagine we have a <strong>field_link </strong>of type Link. Such fields contain uri and title. </p> <pre> <code class="language-php">$query = \Drupal::service('entity_type.manager')-&gt;getStorage('node')-&gt;getQuery() -&gt;condition('field_link', 'my value') $results = $query-&gt;execute();</code></pre> <p>In this case by default uri will be used and we will get </p> <pre> <code class="language-sql">WHERE node__field_link.field_link_uri = '1'</code></pre> <p>To filter by the title of the link we need to use the next code</p> <pre> <code class="language-php">$results = \Drupal::service('entity_type.manager')-&gt;getStorage('node')-&gt;getQuery() -&gt;condition('field_link.title', 'my value') $results = $query-&gt;execute();</code></pre> <h3> </h3> <h3>Select nodes by a reference fields using entity query</h3> <p>Let's imagine we have <strong>field_tags </strong>which has a reference to taxonomy <strong>tags</strong>.</p> <pre> <code class="language-php">$query = \Drupal::service('entity_type.manager')-&gt;getStorage('node')-&gt;getQuery() -&gt;condition('type', 'article') -&gt;condition('field_tag.entity:taxonomy_term.name', 'My tag') $results = $query-&gt;execute();</code></pre> <p>As a result we will get such SQL query:</p> <pre> <code class="language-sql">SELECT base_table.vid AS vid, base_table.nid AS nid FROM node base_table INNER JOIN node__field_tag node__field_tag ON node__field_tag.entity_id = base_table.nid LEFT OUTER JOIN taxonomy_term_data taxonomy_term_data ON taxonomy_term_data.tid = node__field_tag.field_tag_target_id INNER JOIN taxonomy_term_field_data taxonomy_term_field_data ON taxonomy_term_field_data.tid = taxonomy_term_data.tid WHERE taxonomy_term_field_data.name LIKE 'My tag' ESCAPE '\\'SELECT base_table.vid AS vid, base_table.nid AS nid FROM node base_table INNER JOIN node__field_tag node__field_tag ON node__field_tag.entity_id = base_table.nid LEFT OUTER JOIN taxonomy_term_data taxonomy_term_data ON taxonomy_term_data.tid = node__field_tag.field_tag_target_id INNER JOIN taxonomy_term_field_data taxonomy_term_field_data ON taxonomy_term_field_data.tid = taxonomy_term_data.tid WHERE taxonomy_term_field_data.name LIKE 'My tag' ESCAPE '\\'SELECT base_table.vid AS vid, base_table.nid AS nid FROM node base_table INNER JOIN node__field_tag node__field_tag ON node__field_tag.entity_id = base_table.nid LEFT OUTER JOIN taxonomy_term_data taxonomy_term_data ON taxonomy_term_data.tid = node__field_tag.field_tag_target_id INNER JOIN taxonomy_term_field_data taxonomy_term_field_data ON taxonomy_term_field_data.tid = taxonomy_term_data.tid WHERE taxonomy_term_field_data.name LIKE 'My tag' ESCAPE '\\'</code></pre> <p>We can the same way extract the field of referenced entities and their referenced entities.</p> <p> </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/entity-api" hreflang="en">Entity API</a></div> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 03 Mar 2021 13:53:15 +0000 LOBsTerr 41 at http://lobsterr.me How to extract entity id from autocomplete string in Drupal? http://lobsterr.me/post/how-extract-entity-id-autocomplete-string-drupal <span class="field field--name-title field--type-string field--label-hidden">How to extract entity id from autocomplete string in Drupal?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">02/22/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><p>When we use autocomplete field, the submitted value will look something like this "Title of the entity (10)". To extract the current entity id from this string we can use helper function <strong>extractEntityIdFromAutocompleteInput </strong> from <strong>EntityAutocomplete</strong></p> <pre> <code class="language-php">$autocomplete_data = 'Title of the entity (10)'; $entity_id = EntityAutocomplete::extractEntityIdFromAutocompleteInput($autocomplete_data);</code></pre> <p> </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/entity" hreflang="en">Entity</a></div> <div class="field__item btn btn-secondary"><a href="/tags/field" hreflang="en">Field</a></div> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Mon, 22 Feb 2021 11:57:48 +0000 LOBsTerr 40 at http://lobsterr.me How to display / place a block based on route in Drupal? http://lobsterr.me/post/how-display-place-block-based-route-drupal <span class="field field--name-title field--type-string field--label-hidden">How to display / place a block based on route in Drupal?</span> <div class="field field--name-f-intro field--type-string-long field--label-hidden field__item">By default Drupal provides and option to set visibility of block based on path, but quite often it is not what actually want.</div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">02/16/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><p>To solve this issue we can use a small, but a very useful module <a href="https://www.drupal.org/project/route_condition">Route condition</a>. This module provides condition plugin, which will display the block based on routes. Basically it works the same way as Pages condition plugin. So, I believe you will not find any issues configure it.<br />  </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/module" hreflang="en">Module</a></div> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Tue, 16 Feb 2021 22:31:00 +0000 LOBsTerr 39 at http://lobsterr.me How prepopulate values on a form from request in Drupal? http://lobsterr.me/post/how-prepopulate-values-form-request-drupal <span class="field field--name-title field--type-string field--label-hidden">How prepopulate values on a form from request in Drupal?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">02/16/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><p>Let's imagine we have a node with field category and we want to create a link in the view and pass a category in the request ?field_category=1. Unfortunately, it will not like this by default. Fortunately, we have a solution! We need a module <a href="https://www.drupal.org/project/prepopulate">prepopulated</a> and pass a parameter a special way:<br /><br /> 1) For entity reference fields</p> <pre> <code class="language-php">http://yourdoamain.com/node/add/page?edit[field_category][widget][0][target_id]=1</code></pre> <p>2) Normal fields</p> <pre> <code class="language-php">http://yourdoamain.com/node/add/page?edit[field_body][widget][0][value]=Something</code></pre> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/module" hreflang="en">Module</a></div> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Tue, 16 Feb 2021 16:23:42 +0000 LOBsTerr 38 at http://lobsterr.me How to get a route by URI in Drupal? http://lobsterr.me/post/how-get-route-uri-drupal <span class="field field--name-title field--type-string field--label-hidden">How to get a route by URI in Drupal?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">02/05/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><p>If you have a basic path we can get route using <strong>router.no_access_checks</strong> service. Keep in my you have to have a leading slash</p> <pre> <code class="language-php">$router = \Drupal::service('router.no_access_checks'); $result = $router-&gt;match('/node/2'); </code></pre> <p>In case you have URL object we can get route from it like this</p> <pre> <code class="language-php">$router = \Drupal::service('router.no_access_checks'); $result = $router-&gt;match($url-&gt;toString());</code></pre> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/routing" hreflang="en">Routing</a></div> <div class="field__item btn btn-secondary"><a href="/tags/routing-api" hreflang="en">Routing API</a></div> </div> <div class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush"> <div class="field__label">Related items</div> <ul class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush field__items"> <li class="field__item list-group-item"><a href="/post/how-get-route-name-drupal-9" hreflang="en">How to get a route by name in Drupal 9?</a></li> <li class="field__item list-group-item"><a href="/post/how-check-if-current-page-using-admin-theme-drupal" hreflang="en">How to check if the current page using admin theme in Drupal?</a></li> </ul> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Fri, 05 Feb 2021 12:59:18 +0000 LOBsTerr 37 at http://lobsterr.me How to get a route by name in Drupal 9? http://lobsterr.me/post/how-get-route-name-drupal-9 <span class="field field--name-title field--type-string field--label-hidden">How to get a route by name in Drupal 9?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">LOBsTerr</span></span> <span class="field field--name-created field--type-created field--label-hidden">02/05/2021</span> <div class="field field--name-f-content field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--l-text paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-f-text field--type-text-long field--label-hidden field__item"><p>To get route by name in Drupal 9 we need to use <strong>router.route_provider </strong>service.</p> <pre> <code class="language-php">$route_provider = \Drupal::service('router.route_provider'); $route = $route_provider-&gt;getRouteByName('user.page');</code></pre> <p> </p> </div> </div> </div> </div> <div class="field field--name-f-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item btn btn-secondary"><a href="/tags/drupal-9" hreflang="en">Drupal 9</a></div> <div class="field__item btn btn-secondary"><a href="/tags/routing" hreflang="en">Routing</a></div> <div class="field__item btn btn-secondary"><a href="/tags/routing-api" hreflang="en">Routing API</a></div> </div> <div class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush"> <div class="field__label">Related items</div> <ul class="field field--name-f-related-items field--type-entity-reference field--label-above list-group list-group-flush field__items"> <li class="field__item list-group-item"><a href="/post/how-get-route-uri-drupal" hreflang="en">How to get a route by URI in Drupal?</a></li> <li class="field__item list-group-item"><a href="/post/how-check-if-current-page-using-admin-theme-drupal" hreflang="en">How to check if the current page using admin theme in Drupal?</a></li> </ul> </div> <section class="field field--name-f-comments field--type-comment field--label-above comment-wrapper"> </section> Fri, 05 Feb 2021 12:57:32 +0000 LOBsTerr 36 at http://lobsterr.me