Customer Content Screen Hooks

1 views Markdown

The twenty-seven placement points of the home page, content, the knowledge base and the sign-in forms.

Overview

The placement points on the pages open to visitors live here: the home page, content and the blog, contact, the knowledge base and the sign-in forms.

Most of these pages are open to everyone. A script you place here is run by anyone not signed in, and anything depending on a session comes out empty.

Reference

After the home hero

uiclient.home.hero.after
website/content no parameters

Appears after the opening block of the home page.

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.home.hero.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The end of the home sections

uiclient.home.sections.end
website/content no parameters

Appears at the end of the home page sections.

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.home.sections.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of a content page

uiclient.content.top
website/content no parameters

Appears at the top of the content pages.

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.content.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the page content

uiclient.content_page.content.after
website/content no parameters

Appears after the content of a plain page.

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.content_page.content.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After a blog article

uiclient.blog_detail.content.after
website/content no parameters

Appears after the body of a blog article. It suits an author box or related posts.

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.blog_detail.content.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the blog feed

uiclient.blog_list.feed.after
website/content no parameters

Appears after the blog 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.blog_list.feed.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the news feed

uiclient.news_list.feed.after
website/content no parameters

Appears after the news 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.news_list.feed.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the reference content

uiclient.reference_detail.content.after
website/content no parameters

Appears after the content of a reference page.

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.reference_detail.content.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the contact form

uiclient.contact.form.top
website/content no parameters

Appears above the contact 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.contact.form.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the contact form

uiclient.contact.form.bottom
website/content no parameters

Appears below the contact form. If you add a field, handling the submitted value is your job.

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.contact.form.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the contact sidebar

uiclient.contact.aside.bottom
website/content no parameters

Appears at the bottom of the side column on the contact page.

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.contact.aside.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the domain search

uiclient.domain.search.after
website/content no parameters

Appears after the domain search box.

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.search.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the knowledge base landing

uiclient.kb_landing.content.top
website/knowledgebase no parameters

Appears at the top of the knowledge base landing page.

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.kb_landing.content.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the knowledge base landing

uiclient.kb_landing.content.bottom
website/knowledgebase no parameters

Appears at the bottom of the landing page.

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.kb_landing.content.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the search box

uiclient.kb_landing.search.after
website/knowledgebase no parameters

Appears after the knowledge base search box.

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.kb_landing.search.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the category header

uiclient.kb_category.header.after
website/knowledgebase no parameters

Appears after the header of a category page.

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.kb_category.header.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the category content

uiclient.kb_category.content.bottom
website/knowledgebase no parameters

Appears at the bottom of the category page content.

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.kb_category.content.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the table of contents

uiclient.kb_article.toc.after
website/knowledgebase no parameters

Appears after the table of contents of an article.

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.kb_article.toc.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the article content

uiclient.kb_article.content.after
website/knowledgebase no parameters

Appears after the article body. It suits a feedback area or related articles.

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.kb_article.content.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The article footer

uiclient.kb_article.footer
website/knowledgebase no parameters

Appears in the footer of an article.

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.kb_article.footer', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The top of the knowledge base sidebar

uiclient.kb_sidebar.top
website/knowledgebase no parameters

Appears at the top of the knowledge base side column.

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.kb_sidebar.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the knowledge base sidebar

uiclient.kb_sidebar.bottom
website/knowledgebase no parameters

Appears at the bottom of the side column.

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.kb_sidebar.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the sign-in form

uiclient.login.form.bottom
website/content no parameters

Appears below the sign-in form. That page is open to everyone: a script placed here runs for anyone not signed in.

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.login.form.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the sign-up form

uiclient.register.form.bottom
website/content no parameters

Appears below the sign-up form. If you add an extra consent, enforce it yourself.

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.register.form.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the password recovery form

uiclient.auth.forget.form.bottom
website/content no parameters

Appears below the password recovery 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.auth.forget.form.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

The bottom of the password reset form

uiclient.auth.reset.form.bottom
website/content no parameters

Appears below the password reset 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.auth.reset.form.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

After the invitation actions

uiclient.auth.invite.actions.after
website/content no parameters

Appears after the actions on the sub-user invitation page. The invited person may hold no account yet.

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.auth.invite.actions.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Pitfalls

These pages are open to everyone

Code you place on the sign-in, sign-up and content pages is run by anyone, identified or not. Keep internal details, keys and anything meant only for a customer out of them.

On the invitation page the other party may have no account

The sub-user invitation page can open for somebody with no record at all in the system. Output depending on a session or an existing customer record comes out empty there.

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.