1

I installed the modules "Twig tweak" and "Profile"

In the comment twig, I want to display the rendered entity of the profile ("personnel" type and "teaser" display). I tried this :

{{ drupal_entity('profile', comment.uid.target_id, 'teaser') }}

But it does not work.

The goal is to view the author's profile, not are user account.

{#
/**
 * @file
 * Default theme implementation for comments.
 *
 * Available variables:
 * - author: Comment author. Can be a link or plain text.
 * - content: The content-related items for the comment display. Use
 *   {{ content }} to print them all, or print a subset such as
 *   {{ content.field_example }}. Use the following code to temporarily suppress
 *   the printing of a given child element:
 *   @code
 *   {{ content|without('field_example') }}
 *   @endcode
 * - created: Formatted date and time for when the comment was created.
 *   Preprocess functions can reformat it by calling format_date() with the
 *   desired parameters on the 'comment.created' variable.
 * - changed: Formatted date and time for when the comment was last changed.
 *   Preprocess functions can reformat it by calling format_date() with the
 *   desired parameters on the 'comment.changed' variable.
 * - permalink: Comment permalink.
 * - submitted: Submission information created from author and created
 *   during template_preprocess_comment().
 * - user_picture: The comment author's profile picture.
 * - status: Comment status. Possible values are:
 *   unpublished, published, or preview.
 * - title: Comment title, linked to the comment.
 * - attributes: HTML attributes for the containing element.
 *   The attributes.class may contain one or more of the following classes:
 *   - comment: The current template type; for instance, 'theming hook'.
 *   - by-anonymous: Comment by an unregistered user.
 *   - by-{entity-type}-author: Comment by the author of the parent entity,
 *     eg. by-node-author.
 *   - preview: When previewing a new or edited comment.
 *   The following applies only to viewers who are registered users:
 *   - unpublished: An unpublished comment visible only to administrators.
 * - title_prefix: Additional output populated by modules, intended to be
 *   displayed in front of the main title tag that appears in the template.
 * - title_suffix: Additional output populated by modules, intended to be
 *   displayed after the main title tag that appears in the template.
 * - content_attributes: List of classes for the styling of the comment content.
 * - title_attributes: Same as attributes, except applied to the main title
 *   tag that appears in the template.
 * - threaded: A flag indicating whether the comments are threaded or not.
 *
 * These variables are provided to give context about the parent comment (if
 * any):
 * - comment_parent: Full parent comment entity (if any).
 * - parent_author: Equivalent to author for the parent comment.
 * - parent_created: Equivalent to created for the parent comment.
 * - parent_changed: Equivalent to changed for the parent comment.
 * - parent_title: Equivalent to title for the parent comment.
 * - parent_permalink: Equivalent to permalink for the parent comment.
 * - parent: A text string of parent comment submission information created from
 *   'parent_author' and 'parent_created' during template_preprocess_comment().
 *   This information is presented to help screen readers follow lengthy
 *   discussion threads. You can hide this from sighted users using the class
 *   visually-hidden.
 *
 * These two variables are provided for context:
 * - comment: Full comment object.
 * - entity: Entity the comments are attached to.
 *
 * @see template_preprocess_comment()
 *
 * @ingroup themeable
 */
#}

<article{{ attributes.addClass('js-comment comment--field-article-commentaire') }}>

  <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 bs-region-comment">

    <div class="col-xs-3 col-sm-3 col-md-2 col-lg-2 bs-left">
      {{ drupal_entity('profile', comment.uid.target_id, 'teaser') }}
      {{ created }}
    </div>

    <div class="col-xs-9 col-sm-9 col-md-10 col-lg-10 bs-right">
     {{ content.field_article_commentaire }}
     {{ content.links }}
     {{ content.flag_report_comment }}
    </div>

  </div>

</article>

On the "compact" view of the user, a profile field appears.

How to display in twig, the url of the profile?

I want the image and the user name to point to his profile (not to his account).

enter image description here

1 Answer 1

1

If I understand you correctly. You can render profile entity using Twig tweak

{{ drupal_entity('profile', comment.uid.entity.personal_profile.target_id) }}

FYI : The first Parameter for drupal_entity function is the entity type, Then id of the entity, then view mode. See TwigExtension.php file in twig_tweak/src folder

public function drupalEntity($entity_type, $id = NULL, $view_mode = NULL, $langcode = NULL, $check_access = TRUE) 

Its better to install Devel module and then you can use kint() for debugging the variables

6
  • Finally I will display the rendered entity of the user, it will be easier. There is a field that appears on the display from the user to the profile. How to display the profile url on the user account? I updated my question
    – user84727
    Apr 17, 2018 at 17:52
  • Replace field_profile with the machine name of field. I have updated the answer assuming field name field_profil_personnel. PS : When you render it profile.html.twig TEMPLATE is rendered. Apr 18, 2018 at 4:59
  • It does not work. I would like to display the url of the profile (personnal_profile) of the author of the comment. A field (personal_profile) is present in the user's teaser display (see the last screenshot of my question) . How to retrieve the url of the profile in the user account from the comment twig ?
    – user84727
    Apr 18, 2018 at 11:39
  • profil_personnel is not a field but a type of profile
    – user84727
    Apr 18, 2018 at 16:37
  • I opened a question to display the profile url drupal.stackexchange.com/questions/260148/…
    – user84727
    Apr 18, 2018 at 17:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.