{"id":20036982,"url":"https://github.com/antistatique/drupal-template-whisperer","last_synced_at":"2025-05-05T06:30:38.713Z","repository":{"id":39522572,"uuid":"84868657","full_name":"antistatique/drupal-template-whisperer","owner":"antistatique","description":"Provides a formalized way to declare and suggest page templates.","archived":false,"fork":false,"pushed_at":"2024-08-09T14:51:22.000Z","size":257,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":11,"default_branch":"4.0.x","last_synced_at":"2024-08-10T10:17:01.535Z","etag":null,"topics":["drupal","drupal-8","drupal-module"],"latest_commit_sha":null,"homepage":"https://www.drupal.org/project/template_whisperer","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antistatique.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-13T19:55:43.000Z","updated_at":"2024-08-09T14:51:20.000Z","dependencies_parsed_at":"2024-03-01T09:25:16.196Z","dependency_job_id":"8188c0e9-a9cc-4091-8fb2-933be375efaa","html_url":"https://github.com/antistatique/drupal-template-whisperer","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistatique%2Fdrupal-template-whisperer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistatique%2Fdrupal-template-whisperer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistatique%2Fdrupal-template-whisperer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antistatique%2Fdrupal-template-whisperer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antistatique","download_url":"https://codeload.github.com/antistatique/drupal-template-whisperer/tar.gz/refs/heads/4.0.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224427719,"owners_count":17309375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drupal","drupal-8","drupal-module"],"created_at":"2024-11-13T10:17:43.290Z","updated_at":"2025-05-05T06:30:38.701Z","avatar_url":"https://github.com/antistatique.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Template Whisperer\n\nProvides a formalized way to declare and suggest page templates\nusing \"Template Whisperer\".\n\n|       Tests-CI        |        Style-CI         |                                                                           Downloads                                                                            |                                                                           Releases                                                                            |\n|:----------------------:|:-----------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| [![Build Status](https://github.com/antistatique/drupal-template-whisperer/actions/workflows/ci.yml/badge.svg)](https://github.com/antistatique/drupal-template-whisperer/actions/workflows/ci.yml) | [![Code styles](https://github.com/antistatique/drupal-template-whisperer/actions/workflows/styles.yml/badge.svg)](https://github.com/antistatique/drupal-template-whisperer/actions/workflows/styles.yml) | [![Downloads](https://img.shields.io/badge/downloads-4.0.1-green.svg?style=flat-square)](https://ftp.drupal.org/files/projects/template_whisperer-4.0.1.tar.gz) | [![Latest Stable Version](https://img.shields.io/badge/release-v4.0.1-blue.svg?style=flat-square)](https://www.drupal.org/project/template_whisperer/releases) |\n\nIt is a continuation to something besides the standard\nnode.html.twig file for a variety of special case pages\nlike site news lists, contact page, ...\n\n## You need Template Whisperer if\n\n  - You want to generate a specific template of a node\n    E.g. `node--article--xyz.html.twig`.\n  - You want to allow the editors to freely include pre-defined content on the\n    node by themselves.\n    E.g. Add a list of the three latest news at the end of the content.\n  - You don't want to hardcode node ID for specific templating but want the content to drive this decision.\n  - You don't want to hardcode/configure node url to render blocks (default behavior of Drupal Layout) in a custom template (may need (Bambo Twig)[https://www.drupal.org/project/bamboo_twig]).\n  - You want Pathauto be able to detect which page list your specific content to generate a real dynamic pattern driven by content creation.\n  Eg. node of type article need a Pathauto patterns `/articles/article/[node:title]`, you can then use `[suggestion:lookup:articles_collection:entity:url:path]/[node:title]`.\n\nTemplate Whisperer can do a lot more than that,\nbut those are some of the obvious uses of Template Whisperer.\n\n## Features\n\n* An administration interface to manage Template Whisperer.\n\n* Use of standard fields for entity support, allowing for translation and\n  revisioning of Template Whisperer values added for individual entities.\n\n* Fully Token integration.\n - Highly versatile URLs patterns with Template Whisperer Tokens in Pathauto.\n\n* High permissions granularity:\n  - `administer template whisperer suggestion entities`: Access the administration forms for CRUD operations on Suggestion(s).\n  - `administer the template whisperer field`: Allow to see \u0026 edit any Template Whisperer field(s).\n\n## Standard usage scenario\n\n1. Install the module.\n2. Open admin/structure/template-whisperer.\n3. Create your own suggestion by clicking \"Add Template Whisperer.\n4. Attach a new field \"Template Whisperer\" for a specific entity.\n\n  4.1 Go to the \"Manage fields\" of the bundle where\n  the Template Whisperer field should appear.\n  4.2 Select \"Template Whisperer\" from the \"Add a new field\" selector.\n  4.3 Fill in a label for the field, e.g. \"Template Whisperer\",\n  and set an appropriate, machine name, e.g. \"template_whisperer\".\n  4.4 Click \"Save and continue\".\n  4.5 If the site supports multiple languages, and translations have been\n  enabled for this entity, you can select \"Users may translate this field\" to\n  use Drupal's translation system.\n\n5. When you edit the content of that entity or\n  bundle you should then see the new \"Template Whisperer\"\n  section on the Advanced tabs.')\n\n  5.1 Select the template you want to use for that entity or bundle\n  5.2 You can now edit your template which is formatted this way:\n  `[entity-type-id]--[entity-type]--list-news.html.twig`.\n\n## Which version should I use?\n\nTemplate Whisperer is available for Drupal 8, Drupal 9, Drupal 10 and Drupal 11 !\n\n| Drupal Core | Template Whisperer |\n|:-----------:|:------------------:|\n|    8.0.x    |        1.x         |\n|    8.4.x    |        2.x         |\n|    8.8.x    |        3.0         |\n|    8.9.x    |        3.0         |\n|     9.x     |        3.x         |\n|    10.x     |       4.0.x        |\n|    11.x     |       4.0.x        |\n\n## Dependencies\n\nThe Drupal version of Template Whisperer requires nothing !\nFeel free to use it.\n\nTemplate Whisperer requires PHP 7.0+ to works properly. We recommend updating to at least PHP 8.1 if possible.\n\n## Supporting organizations\n\nThis project is sponsored by Antistatique. We are a Swiss Web Agency,\nVisit us at [www.antistatique.net](https://www.antistatique.net) or\n[Contact us](mailto:info@antistatique.net).\n\n# Known issues\n\n* In order to uninstall the module any \"Template Whisperer\"\n  fields must first be removed from all entities.\n  In order to see whether there are fields blocking the\n  module from being uninstalled, load the module uninstall page\n  (admin/modules/uninstall) and see if any is listed. This would look like\n  something like this:\n  _The Template Whisperer field type is used in the following field:\n  node.field_template_whisperer_\n  In order to uninstall the module, go to the appropriate field settings pages\n  and remove any Template Whisperer fields.\n  Once this is done it will be possible to uninstall the module.\n\n* In order to uninstall the module any \"Template Whisperer\"\n  entities must first be removed.\n  In order to see whether there are entities blocking the\n  module from being uninstalled, load the administration interface page\n  (admin/structure/template-whisperer) and see if any are listed.\n  In order to uninstall the module, delete every entities.\n  Once this is done it will be possible to uninstall the module.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantistatique%2Fdrupal-template-whisperer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantistatique%2Fdrupal-template-whisperer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantistatique%2Fdrupal-template-whisperer/lists"}