Customer Domain Screen Hooks

1 views Markdown

The twenty-seven placement points of the domain detail and list.

Overview

The placement points on the customer domain screens live here: every tab of the detail page, the hero block, the modals and the list.

They are all parameter-less: the hook does not tell you which domain is on screen. If you need that context, resolve it from the address or from your own side.

Reference

Below the hero block

uiclient.domain_detail.hero.after
website/domains/detail no parameters

Appears immediately below the hero block of the domain detail. It suits a warning specific to an extension.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.hero.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The end of the hero actions

uiclient.domain_detail.hero_actions.end
website/domains/detail no parameters

Appears at the end of the action buttons in the hero block.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.hero_actions.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The end of the tab bar

uiclient.domain_detail.tabs.end
website/domains/detail no parameters

Appears at the end of the tab bar on the domain detail. The place to add the label of your own tab.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.tabs.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the overview tab

uiclient.domain_detail.overview.top
website/domains/detail no parameters

Appears at the very top of the overview tab.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.overview.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the overview tab

uiclient.domain_detail.overview.bottom
website/domains/detail no parameters

Appears at the very bottom of the overview tab.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.overview.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the name servers tab

uiclient.domain_detail.nameservers.top
website/domains/detail no parameters

Appears above the name server form. It suits a reminder that a wrong setting makes the domain unreachable.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.nameservers.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the name servers tab

uiclient.domain_detail.nameservers.bottom
website/domains/detail no parameters

Appears below the name server form.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.nameservers.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the DNS tab

uiclient.domain_detail.dns.top
website/domains/detail no parameters

Appears above the DNS record table.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.dns.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the DNS tab

uiclient.domain_detail.dns.bottom
website/domains/detail no parameters

Appears below the DNS record table.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.dns.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the contacts tab

uiclient.domain_detail.contacts.top
website/domains/detail no parameters

Appears above the domain contact details.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.contacts.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the contacts tab

uiclient.domain_detail.contacts.bottom
website/domains/detail no parameters

Appears below the contact details.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.contacts.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the forwarding tab

uiclient.domain_detail.forwarding.top
website/domains/detail no parameters

Appears above the address and email forwarding settings.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.forwarding.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the forwarding tab

uiclient.domain_detail.forwarding.bottom
website/domains/detail no parameters

Appears below the forwarding settings.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.forwarding.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the transfer tab

uiclient.domain_detail.transfer.top
website/domains/detail no parameters

Appears above the transfer section.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.transfer.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the transfer tab

uiclient.domain_detail.transfer.bottom
website/domains/detail no parameters

Appears below the transfer section.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.transfer.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the billing tab

uiclient.domain_detail.billing.top
website/domains/detail no parameters

Appears above the billing section of the domain.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.billing.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the billing tab

uiclient.domain_detail.billing.bottom
website/domains/detail no parameters

Appears below the billing section.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.billing.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Above the invoice list

uiclient.domain_detail.billing_invoices.before
website/domains/detail no parameters

Appears immediately above the list of invoices for the domain.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.billing_invoices.before', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the activity tab

uiclient.domain_detail.activity.top
website/domains/detail no parameters

Appears above the domain history.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.activity.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the activity tab

uiclient.domain_detail.activity.bottom
website/domains/detail no parameters

Appears below the domain history.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.activity.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the protection section

uiclient.domain_detail.protection.after
website/domains/detail no parameters

Appears after the privacy and transfer lock settings.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.protection.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The end of the modals

uiclient.domain_detail.modals.end
website/domains/detail no parameters

Appears at the end of the modals on the page. The right place to add one of your own, since it disturbs no layout.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domain_detail.modals.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the attention banner

uiclient.domains_list.attention.after
website/domains no parameters

Appears after the attention banner on the domain list.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domains_list.attention.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the summary tiles

uiclient.domains_list.tiles.after
website/domains no parameters

Appears after the summary tiles above the list.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domains_list.tiles.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The end of the header actions

uiclient.domains_list.header_actions.end
website/domains no parameters

Appears at the end of the action buttons in the list header.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domains_list.header_actions.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The end of the toolbar

uiclient.domains_list.toolbar.end
website/domains no parameters

Appears at the end of the list toolbar.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domains_list.toolbar.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The end of the list modals

uiclient.domains_list.modals.end
website/domains no parameters

Appears at the end of the modals on the list.

Parameters 0
It takes no parameters.
Return 1
string|nullThe HTML you return appears. With several listeners the outputs are appended one after another in priority order. Empty text, null and false are skipped, so return null when you have nothing to add. The output enters the page unescaped — clean anything coming from outside yourself.
Listener
Hook::add('ui:client.domains_list.modals.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Pitfalls

Which domain is on screen is not passed

None of these points hand you the domain. To show something that depends on it, resolve the id from the address. Relying on a "last viewed" value from the session shows the wrong domain’s details to a customer with two tabs open.

Put a modal at the modal point

A listener placing its own modal in the middle of a tab pane disturbs the layout, and the modal disappears when the tab changes. There is a modal point for this: there it sits outside the page flow.

Was this helpful?

Thanks for your feedback!

Still Need Help?

Our support team is here around the clock for anything you can't find above.