How to get the correct 'base hook' to override a template file in a custom module?
up vote
1
down vote
favorite
How can I find the 'base hook' to override a template file using a custom module?
'node' and 'user' are pretty straightforward, but others can be a little more elusive.
Example code...
MYMODULE.module:
/**
** Implements hook_theme().
**/
function MYMODULE_theme($existing, $type, $theme, $path) {
return [
'username' => [
'template' => 'username',
'base hook' => 'how do you get this?',
],
];
}
8 theming hooks
add a comment |
up vote
1
down vote
favorite
How can I find the 'base hook' to override a template file using a custom module?
'node' and 'user' are pretty straightforward, but others can be a little more elusive.
Example code...
MYMODULE.module:
/**
** Implements hook_theme().
**/
function MYMODULE_theme($existing, $type, $theme, $path) {
return [
'username' => [
'template' => 'username',
'base hook' => 'how do you get this?',
],
];
}
8 theming hooks
You don't needtemplate
if the template is named the same as the theme.
– leymannx
Dec 2 at 7:20
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
How can I find the 'base hook' to override a template file using a custom module?
'node' and 'user' are pretty straightforward, but others can be a little more elusive.
Example code...
MYMODULE.module:
/**
** Implements hook_theme().
**/
function MYMODULE_theme($existing, $type, $theme, $path) {
return [
'username' => [
'template' => 'username',
'base hook' => 'how do you get this?',
],
];
}
8 theming hooks
How can I find the 'base hook' to override a template file using a custom module?
'node' and 'user' are pretty straightforward, but others can be a little more elusive.
Example code...
MYMODULE.module:
/**
** Implements hook_theme().
**/
function MYMODULE_theme($existing, $type, $theme, $path) {
return [
'username' => [
'template' => 'username',
'base hook' => 'how do you get this?',
],
];
}
8 theming hooks
8 theming hooks
asked Dec 2 at 6:05
Prestosaurus
490111
490111
You don't needtemplate
if the template is named the same as the theme.
– leymannx
Dec 2 at 7:20
add a comment |
You don't needtemplate
if the template is named the same as the theme.
– leymannx
Dec 2 at 7:20
You don't need
template
if the template is named the same as the theme.– leymannx
Dec 2 at 7:20
You don't need
template
if the template is named the same as the theme.– leymannx
Dec 2 at 7:20
add a comment |
1 Answer
1
active
oldest
votes
up vote
4
down vote
accepted
Look into the *.module file where the base hook is defined, in this case the User module. The base hook is the key of the template definition:
user.module:
/**
* Implements hook_theme().
*/
function user_theme() {
return [
...
'username' => [
'variables' => ['account' => NULL, 'attributes' => , 'link_options' => ],
],
];
}
Then in your *.module file
mymodule.module
/**
* Implements hook_theme().
*/
function mymodule_theme() {
return [
'username__mymodule_template' => [
'base hook' => 'username',
],
];
}
Start the name of your own hook with the base hook and double underscores.
Want to cross-reference this question: drupal.stackexchange.com/questions/200602/…. Note, for the above template file to apply you will need to alter/add a theme suggestion so this file is looked for. Examplehook_theme_suggestions_username_alter(array &$suggestions, array $variables)
– Prestosaurus
Dec 3 at 0:31
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "220"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdrupal.stackexchange.com%2fquestions%2f273382%2fhow-to-get-the-correct-base-hook-to-override-a-template-file-in-a-custom-modul%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
accepted
Look into the *.module file where the base hook is defined, in this case the User module. The base hook is the key of the template definition:
user.module:
/**
* Implements hook_theme().
*/
function user_theme() {
return [
...
'username' => [
'variables' => ['account' => NULL, 'attributes' => , 'link_options' => ],
],
];
}
Then in your *.module file
mymodule.module
/**
* Implements hook_theme().
*/
function mymodule_theme() {
return [
'username__mymodule_template' => [
'base hook' => 'username',
],
];
}
Start the name of your own hook with the base hook and double underscores.
Want to cross-reference this question: drupal.stackexchange.com/questions/200602/…. Note, for the above template file to apply you will need to alter/add a theme suggestion so this file is looked for. Examplehook_theme_suggestions_username_alter(array &$suggestions, array $variables)
– Prestosaurus
Dec 3 at 0:31
add a comment |
up vote
4
down vote
accepted
Look into the *.module file where the base hook is defined, in this case the User module. The base hook is the key of the template definition:
user.module:
/**
* Implements hook_theme().
*/
function user_theme() {
return [
...
'username' => [
'variables' => ['account' => NULL, 'attributes' => , 'link_options' => ],
],
];
}
Then in your *.module file
mymodule.module
/**
* Implements hook_theme().
*/
function mymodule_theme() {
return [
'username__mymodule_template' => [
'base hook' => 'username',
],
];
}
Start the name of your own hook with the base hook and double underscores.
Want to cross-reference this question: drupal.stackexchange.com/questions/200602/…. Note, for the above template file to apply you will need to alter/add a theme suggestion so this file is looked for. Examplehook_theme_suggestions_username_alter(array &$suggestions, array $variables)
– Prestosaurus
Dec 3 at 0:31
add a comment |
up vote
4
down vote
accepted
up vote
4
down vote
accepted
Look into the *.module file where the base hook is defined, in this case the User module. The base hook is the key of the template definition:
user.module:
/**
* Implements hook_theme().
*/
function user_theme() {
return [
...
'username' => [
'variables' => ['account' => NULL, 'attributes' => , 'link_options' => ],
],
];
}
Then in your *.module file
mymodule.module
/**
* Implements hook_theme().
*/
function mymodule_theme() {
return [
'username__mymodule_template' => [
'base hook' => 'username',
],
];
}
Start the name of your own hook with the base hook and double underscores.
Look into the *.module file where the base hook is defined, in this case the User module. The base hook is the key of the template definition:
user.module:
/**
* Implements hook_theme().
*/
function user_theme() {
return [
...
'username' => [
'variables' => ['account' => NULL, 'attributes' => , 'link_options' => ],
],
];
}
Then in your *.module file
mymodule.module
/**
* Implements hook_theme().
*/
function mymodule_theme() {
return [
'username__mymodule_template' => [
'base hook' => 'username',
],
];
}
Start the name of your own hook with the base hook and double underscores.
answered Dec 2 at 8:54
4k4
49.6k45596
49.6k45596
Want to cross-reference this question: drupal.stackexchange.com/questions/200602/…. Note, for the above template file to apply you will need to alter/add a theme suggestion so this file is looked for. Examplehook_theme_suggestions_username_alter(array &$suggestions, array $variables)
– Prestosaurus
Dec 3 at 0:31
add a comment |
Want to cross-reference this question: drupal.stackexchange.com/questions/200602/…. Note, for the above template file to apply you will need to alter/add a theme suggestion so this file is looked for. Examplehook_theme_suggestions_username_alter(array &$suggestions, array $variables)
– Prestosaurus
Dec 3 at 0:31
Want to cross-reference this question: drupal.stackexchange.com/questions/200602/…. Note, for the above template file to apply you will need to alter/add a theme suggestion so this file is looked for. Example
hook_theme_suggestions_username_alter(array &$suggestions, array $variables)
– Prestosaurus
Dec 3 at 0:31
Want to cross-reference this question: drupal.stackexchange.com/questions/200602/…. Note, for the above template file to apply you will need to alter/add a theme suggestion so this file is looked for. Example
hook_theme_suggestions_username_alter(array &$suggestions, array $variables)
– Prestosaurus
Dec 3 at 0:31
add a comment |
Thanks for contributing an answer to Drupal Answers!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdrupal.stackexchange.com%2fquestions%2f273382%2fhow-to-get-the-correct-base-hook-to-override-a-template-file-in-a-custom-modul%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You don't need
template
if the template is named the same as the theme.– leymannx
Dec 2 at 7:20