Usages

ตามธรรมเนียม

Abstract Class

ชั้นนามธรรม


org.joget.apps.userview.model.UserviewV5Theme

Method Detail

รายละเอียดวิธีการ


Overridable Methods
วิธีการ overridable
handleContentError
public java.lang.String handleContentError(java.lang.Exception e, java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle error when retrieving userview content.

เทมเพลต HTML เพื่อจัดการข้อผิดพลาดเมื่อดึงเนื้อหา userview

handlePageNotFound
public java.lang.String handlePageNotFound(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle page not found. Default using /templates/userview/pageNotFound.ftl as template.

ไม่พบเทมเพลต HTML สำหรับจัดการหน้า ค่าเริ่มต้นโดยใช้ /templates/userview/pageNotFound.ftl เป็นเทมเพลต

getLayout
public java.lang.String getLayout(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle theme layout. Default using /templates/userview/layout.ftl as template.

เทมเพลต HTML เพื่อจัดการโครงร่างธีม ค่าเริ่มต้นโดยใช้ /templates/userview/layout.ftl เป็นแม่แบบ

getHeader
public java.lang.String getHeader(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle page header. Default using /templates/userview/header.ftl as template.

เทมเพลต HTML เพื่อจัดการส่วนหัวของหน้า ค่าเริ่มต้นโดยใช้ /templates/userview/header.ftl เป็นแม่แบบ

getFooter
public java.lang.String getFooter(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle page footer. Default using /templates/userview/footer.ftl as template.

เทมเพลต HTML เพื่อจัดการส่วนท้ายของหน้า ค่าเริ่มต้นโดยใช้ /templates/userview/footer.ftl เป็นแม่แบบ

getContentContainer
public java.lang.String getContentContainer(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle userview menu content. Default using /templates/userview/contentContainer.ftl as template.

เทมเพลต HTML เพื่อจัดการเนื้อหาเมนู userview ค่าเริ่มต้นโดยใช้ /templates/userview/contentContainer.ftl เป็นเทมเพลต

getMenus
public java.lang.String getMenus(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle menus. Default using /templates/userview/menus.ftl as template.

เทมเพลต HTML เพื่อจัดการเมนู ค่าเริ่มต้นโดยใช้ /templates/userview/menus.ftl เป็นแม่แบบ

getJsCssLib
public java.lang.String getJsCssLib(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template for putting javascript and css link for getHead() template.

เทมเพลต HTML สำหรับวาง javascript และลิงค์ css สำหรับแม่แบบ getHead ()

getCss
public java.lang.String getCss(java.util.Map<java.lang.String, java.lang.Object> data)

Gets dynamic generated CSS for getHead() template

รับ CSS สร้างขึ้นแบบไดนามิกสำหรับแม่แบบ getHead ()

getJs
public java.lang.String getJs(java.util.Map<java.lang.String, java.lang.Object> data)

Gets dynamic generated javascript for getHead() template 

รับจาวาสคริปต์ที่สร้างขึ้นแบบไดนามิกสำหรับแม่แบบ getHead ()

getMetas
public java.lang.String getMetas(java.util.Map<java.lang.String, java.lang.Object> data)

Gets dynamic generated meta data for getHead() template 

รับข้อมูลเมตาที่สร้างแบบไดนามิกสำหรับเทมเพลต getHead ()

getHead
public java.lang.String getHead(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template to handle for <head> tag. Default using /templates/userview/head.ftl as template.

เทมเพลต HTML ที่จะจัดการกับแท็ก <head> ค่าเริ่มต้นโดยใช้ /templates/userview/head.ftl เป็นแม่แบบ

getFavIconLink
public java.lang.String getFavIconLink(java.util.Map<java.lang.String, java.lang.Object> data)

Gets the fav icon relative path for getHead() template.

รับค่า path ไอคอน fav สำหรับเทมเพลต getHead ()

getLoginForm
public java.lang.String getLoginForm(java.util.Map<java.lang.String, java.lang.Object> data)

HTML template for login form. Default using /templates/userview/login.ftl as template.

เทมเพลต HTML สำหรับแบบฟอร์มเข้าสู่ระบบ ค่าเริ่มต้นโดยใช้ /templates/userview/login.ftl เป็นแม่แบบ

decorateCategoryLabel
public java.lang.String decorateCategoryLabel(org.joget.apps.userview.model.UserviewCategory category)

HTML template for menu category label.

เทมเพลต HTML สำหรับป้ายกำกับหมวดหมู่เมนู

Utility Methods
getUserview
public org.joget.apps.userview.model.Userview getUserview()

Gets userview which using this theme

รับ userview ที่ใช้ชุดรูปแบบนี้

setUserview
public void setUserview(org.joget.apps.userview.model.Userview userview)

Sets userview which using this theme

ชุด userview ซึ่งใช้รูปแบบนี้

getRequestParameters
public java.util.Map getRequestParameters()

Gets request parameters

รับคำขอพารามิเตอร์

setRequestParameters
public void setRequestParameters(java.util.Map requestParameters)

Sets request parameters

ตั้งค่าคำขอพารามิเตอร์
getRequestParameter
public java.lang.Object getRequestParameter(java.lang.String requestParameter)

Convenience method to get a parameter value

วิธีการอำนวยความสะดวกในการรับค่าพารามิเตอร์

getRequestParameterString
public java.lang.String getRequestParameterString(java.lang.String requestParameter)

Convenience method to get a parameter String value.

Return Empty string instead of NULL.

วิธีการสะดวกในการรับพารามิเตอร์ค่าสตริง

ส่งคืนสตริงที่ว่างเปล่าแทน NULL

Deprecated Methods
getCss
public java.lang.String getCss()

Deprecated not use for UserviewV5Theme

เลิกใช้ไม่ได้สำหรับ UserviewV5 ธีม

getJavascript
public java.lang.String getJavascript()

Deprecated not use for UserviewV5Theme

เลิกใช้ไม่ได้สำหรับ UserviewV5 ธีม

public java.lang.String getHeader()getHeader

Deprecated not use for UserviewV5Theme

เลิกใช้ไม่ได้สำหรับ UserviewV5 ธีม

getFooter
public java.lang.String getFooter()

Deprecated not use for UserviewV5Theme

เลิกใช้ไม่ได้สำหรับ UserviewV5 ธีม

getPageTop
public java.lang.String getPageTop()

Deprecated not use for UserviewV5Theme

เลิกใช้ไม่ได้สำหรับ UserviewV5 ธีม

getPageBottom
public java.lang.String getPageBottom()

Deprecated not use for UserviewV5Theme

เลิกใช้ไม่ได้สำหรับ UserviewV5 ธีม

getBeforeContent
public java.lang.String getBeforeContent()

Deprecated not use for UserviewV5Theme

เลิกใช้ไม่ได้สำหรับ UserviewV5 ธีม

org.joget.apps.userview.model.UserviewTheme

Method Detail

รายละเอียดวิธีการ

 
Abstract Methods
วิธีการเชิงนามธรรม
getCss
public abstract java.lang.String getCss()

Return css to inject in <head> tag

ส่งคืน css เพื่อฉีดในแท็ก <head>

getJavascript
public abstract java.lang.String getJavascript()

Return javascript to inject in <head> tag

ส่งคืนจาวาสคริปต์เพื่อฉีดในแท็ก <head>

getHeader
public abstract java.lang.String getHeader()

Return HTML template to replace default header

ส่งคืนเทมเพลต HTML เพื่อแทนที่เริ่มต้นส่วนหัว

getFooter
public abstract java.lang.String getFooter()

Return HTML template to replace default footer

ส่งคืนเทมเพลต HTML เพื่อแทนที่เริ่มต้นส่วนท้าย

getPageTop
public abstract java.lang.String getPageTop()

Return HTML template to inject before the page container

ส่งคืนเท็มเพลต HTML เพื่อแทรกก่อนหน้าคอนเทนเนอร์

getPageBottom
public abstract java.lang.String getPageBottom()

Return HTML template to inject after the page container

ส่งคืนเท็มเพลต HTML เพื่อแทรกหลังจากคอนเทนเนอร์ของหน้า

getBeforeContent
public abstract java.lang.String getBeforeContent()

Return HTML template to inject before content

ส่งคืนเทมเพลต HTML เพื่อแทรกก่อนเนื้อหา

Utility Methods
getUserview
public org.joget.apps.userview.model.Userview getUserview()

Gets userview which using this theme

รับ userview ที่ใช้ชุดรูปแบบธีมนี้

setUserview
public void setUserview(org.joget.apps.userview.model.Userview userview)

Sets userview which using this theme

ชุด userview ซึ่งใช้รูปแบบธีมนี้

getRequestParameters
public java.util.Map getRequestParameters()

Gets request parameters

รับพารามิเตอร์คำขอ

setRequestParameters
public void setRequestParameters(java.util.Map requestParameters)

Sets request parameters

ตั้งค่าพารามิเตอร์คำขอ

getRequestParameter
public java.lang.Object getRequestParameter(java.lang.String requestParameter)

Convenience method to get a parameter value

วิธีการอำนวยความสะดวกในการรับค่าพารามิเตอร์

getRequestParameterString
public java.lang.String getRequestParameterString(java.lang.String requestParameter)

Convenience method to get a parameter String value.

Return Empty string instead of NULL.

วิธีการความสะดวกสบายในการรับพารามิเตอร์ค่าสตริง

ส่งคืนสตริงที่ว่างเปล่าแทน NULL

V5 Predefined Theme Template

เทมเพลตธีมที่กำหนดไว้ล่วงหน้า V5

Predefined Variables 

ตัวแปรที่กำหนดไว้ล่วงหน้า

NameTemplateData TypeDefault ValueDescription
base_link-java.lang.String
Base URL of current Userview
body_classeslayout.ftljava.lang.String

Used by system to add the following CSS classes and current locale code as CSS class to <body> tag.

embeded - When userview is in embed mode.

rtl - When System setting set display from right to left or language set to Arabic.

body_idlayout.ftljava.lang.String
Use current userview menu page Id or Custom Id as <body> tag id
build_number-java.lang.String
Joget build number
categories_container_idmenus.ftljava.lang.Stringcategory-containerId of the container which contains all menu categories
categories_container_classesmenus.ftljava.lang.Stringnav nav-tabs nav-stacked main-menuCSS classes of the container which contains all menu categories
category_classesmenus.ftljava.lang.StringcategoryCSS classes of menu category
combine_single_menu_categorymenus.ftlbooleanfalseFlag to display the only menu in a category to replace the category as 1st level menu.
contentcontentContainer.ftljava.lang.String
Main content of the current page. Content from the Userview Menu or login form.
content_containerlayout.ftljava.lang.String
Value from theme getContentContainer method
content_idcontentContainer.ftljava.lang.StringcontentId of content container
context_pathlogin.ftljava.lang.String
Context Path of the Joget Server URL
csshead.ftljava.lang.String
Value from theme getCss method
current_category_classesmenus.ftljava.lang.Stringcurrent-category activeExtra CSS classes for current menu category
current_menu_classesmenus.ftljava.lang.Stringcurrent activeExtra CSS classes for current menu
embedcontentContainer.ftlboolean
Flag to decide whether userview is needed to display in embed mode
fav_icon_linkhead.ftljava.lang.String
Value from theme getFavIconLink  method
first_category_classesmenus.ftljava.lang.StringfirstExtra CSS classes for first menu category
first_menu_classesmenus.ftljava.lang.StringfirstExtra CSS classes for first menu in the menu category
footerlayout.ftljava.lang.String
Value from theme getFooter method
headlayout.ftljava.lang.String
Value from theme getHead method
headerlayout.ftljava.lang.String
Value from theme getHeader method
hide_navcontentContainer.ftlbooleanfalseFlag to hide navigator
home_page_link

pageNotFound.ftl,

header.ftl

java.lang.String
URL to the userview home page menu
is_logged_inheader.ftlboolean
Flag to decide whether there is a logged in user
is_login_page-boolean
Whether or not the current page is a login form page
joget_headerhead.ftljava.lang.String
Additional HTML template injected by system to the header
joget_footerlayout.ftljava.lang.String
Additional HTML template injected by system to the footer
jshead.ftljava.lang.String
Value from theme getJs method
js_css_libhead.ftljava.lang.String
Value from theme getJsCssLib method
last_category_classesmenus.ftljava.lang.StringlastExtra CSS classes for last menu category
last_menu_classesmenus.ftljava.lang.StringlastExtra CSS classes for last menu in the menu category
localelayout.ftljava.lang.String
Current language code of the system
login_error_classeslogin.ftljava.lang.Stringform-errors alert alert-warningCSS classes for login error message container
login_exceptionlogin.ftljava.lang.String
To keep exception message when a login attempt failure.
login_form_afterlogin.ftljava.lang.String
Value from "Custom HTML (After Login Form)" under Userview Builder - Settings
login_form_beforelogin.ftljava.lang.String
Value from "Custom HTML (Before Login Form)" under Userview Builder - Settings  
login_form_footerlogin.ftljava.lang.String
HTML template retrieved from DirectoryUtil.getLoginFormFooter(). Used by User Security Implementation.
login_linkheader.ftljava.lang.String
URL to the login form
logout_linkheader.ftljava.lang.String
URL to log out from userview
main_container_idcontentContainer.ftljava.lang.StringmainCSS classes for the main container
menuscontentContainer.ftl

Value from theme getMenus method
menu_classesmenus.ftljava.lang.StringmenuCSS classes for the menu
menus_container_classesmenus.ftljava.lang.Stringmenu-containerCSS classes for the container which contains menus
metashead.ftljava.lang.String
Value from theme getMetas method
nav_idmenus.ftljava.lang.StringnavigationId of the navigator container
nav_classesmenus.ftljava.lang.Stringnav-collapse sidebar-navCSS classes of the navigator container
params-java.util.Map<java.lang.String, java.lang.Object>
Received Request Parameters
titlehead.ftljava.lang.String
Userview name and the current menu label
right_to_left-boolean
Flag to decide whether or not userview need to display from right to left
sidebar_idcontentContainer.ftljava.lang.StringsidebarId of the sidebar container
user-org.joget.directory.model.User
Current logged in User object
username-java.lang.String
Current logged in username
userview

header.ftl, footer.ftl,

menus.ftl, login.ftl

org.joget.apps.userview.model.Userview
Userview object which using this theme

Templates

แบบ

/templates/userview/pageNotFound.ftl

<h3>@@ubuilder.pageNotFound@@</h3>
@@ubuilder.pageNotFound.message@@
<br><br>
@@ubuilder.pageNotFound.explanation@@
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
    <a href="${home_page_link!}">@@ubuilder.pageNotFound.backToMain@@</a>
</p>

/templates/userview/layout.ftl

<!DOCTYPE html>
<html lang="${locale!}">
    ${html_inner_before!}
    <head>
        ${head_inner_before!}
        ${head!}
        ${head_inner_after!}
    </head>
    <body id="${body_id!}" class="${body_classes!}">
        ${body_inner_before!}
        ${page_before!}
        <div id="page">
            ${page_inner_before!}
            ${header!}
            ${content_container!}
            ${footer!}
            ${page_inner_after!}
        </div>
        ${page_after!}
        ${joget_footer!}
        ${body_inner_after!}
    </body>
    ${html_inner_after!}
</html>

/templates/userview/header.ftl

${header_before!}
<header class="${header_classes!}">
    ${header_inner_before!}
    ${header_info_before!}
    <div id="header-info" class="${header_info_classes!}">
        ${header_info_inner_before!}
        ${header_name_before!}
        <div id="header-name" class="${header_name_classes!}">
            ${header_name_inner_before!}
            <a href="${home_page_link!}" id="header-link" class="${header_link_classes!}">
                <span>${userview.properties.name!}</span>
            </a>
            ${header_name_inner_after!}
        </div>
        ${header_name_after!}
        ${header_description_before!}
        <div id="header-description" class="${header_description_classes!}">
            ${header_description_inner_before!}
            <span id="description" class="${header_description_span_classes!}">${userview.properties.description!}</span>
            ${header_description_inner_after!}
        </div>
        ${header_description_after!}
        <div class="clearfix"></div>
        ${header_info_inner_after!}
    </div>
    ${header_info_after!}
    ${header_message_before!}
    <div id="header-message" class="${header_message_classes!}">
        ${header_message_inner_before!}
        <div id="header-welcome-message" class="${header_welcome_classes!}">
            <span id="welcomeMessage">${userview.properties.welcomeMessage!}</span>
        </div>
        <div id="header-logout-text" class="${header_logout_classes!}">
            <#if is_logged_in>
                <a href="${logout_link!}">
                    <span id="logoutText">${userview.properties.logoutText!}</span>
                </a>
            <#else>
                <a href="${login_link!}">
                    <span id="loginText">@@ubuilder.login@@</span>
                </a>
            </#if>
        </div>
        <div class="clearfix"></div>
        ${header_message_inner_after!}
    </div>
    ${header_message_after!}
    ${header_inner_after!}
</header>
${header_after!}

/templates/userview/footer.ftl

<div class="clearfix"></div>
${footer_before!}
<footer class="${footer_classes!}">
    ${footer_inner_before!}
    <div id="footer-message">
        <p><span id="footerMessage">${userview.properties.footerMessage!}</span></p>
    </div>
    ${footer_inner_after!}
</footer>
${footer_after!}

/templates/userview/contentContainer.ftl

${main_container_before!}
<div id="${main_container_id!}" class="${main_container_classes!}">
    <div class="${main_container_inner_classes!}">
        ${main_container_inner_before!}
        <#if !embed && !hide_nav>
            ${sidebar_before!}
            <div id="${sidebar_id!}" class="${sidebar_classes!}">
                ${sidebar_inner_before!}
                ${menus!}
                ${sidebar_inner_after!}
            </div>
            ${sidebar_after!}
        </#if>
        ${content_before!}
        <div id="${content_id!}" class="${content_classes!}">
            <main>
                ${content_inner_before!}
                ${content!}
                ${content_inner_after!}
            </main>
        </div>
        ${content_after!}
        ${main_container_inner_before!}
    </div>
</div>
${main_container_before!}

/templates/userview/menus.ftl

${nav_before!}
<nav id="${nav_id!}" class="${nav_classes!}">
    ${nav_inner_before!}
    ${categories_container_before!}
    <ul id="${categories_container_id!}" class="${categories_container_classes!}">
        ${categories_container_inner_before!}
        <#list userview.categories as category>
            <#if category.properties.hide! != 'yes' && category.menus?size gt 0>
                ${category_before!}
                <#assign cClass = category_classes!>
                <#if category_index == 0>
                    <#assign cClass = cClass + " " + first_category_classes!>
                </#if>
                <#if (category_index + 1) == userview.categories?size>
                    <#assign cClass = cClass + " " + last_category_classes!>
                </#if>
                <#if userview.currentCategory?? && category.properties.id == userview.currentCategory.properties.id>
                    <#assign cClass = cClass + " " + current_category_classes!>
                </#if>
                <#assign firstMenu = category.menus[0]>
                <#if combine_single_menu_category! && category.menus?size == 1>
                    <li id="${firstMenu.properties.id}" class="${cClass}">
                        ${category_inner_before!}
                        ${firstMenu.menu}
                        ${category_inner_after!}
                    </li>
                <#else>
                    <li class="${cClass}">
                        ${category_inner_before!}
                        <a class="${category_label_classes!} dropdown" href="#"><span>${theme.decorateCategoryLabel(category)}</span></a>
                        ${menu_container_before!}
                        <ul class="${menus_container_classes!}" >
                            ${menu_container_inner_before!}
                            <#list category.menus as menu>
                                <#assign mClass = menu_classes!>
                                <#if menu_index == 0>
                                    <#assign mClass = mClass + " " + first_menu_classes!>
                                </#if>
                                <#if (menu_index + 1) == category.menus?size>
                                    <#assign mClass = mClass + " " + last_menu_classes!>
                                </#if>
                                <#if userview.current?? && menu.properties.id == userview.current.properties.id>
                                    <#assign mClass = mClass + " " + current_menu_classes!>
                                </#if>
                                ${menu_before!}
                                <li id="${menu.properties.id!}" class="${mClass}">
                                    ${menu_inner_before!}
                                    ${menu.menu}
                                    ${menu_inner_after!}
                                </li>
                                ${menu_after!}
                            </#list>
                            ${menu_container_inner_after!}
                        </ul>
                        ${menu_container_after!}
                        ${category_inner_after!}
                    </li>
                </#if>
                ${category_after!}
            </#if>
        </#list>
        ${categories_container_inner_after!}
    </ul>
    ${categories_container_after!}
    ${nav_inner_after!}
</nav>
${nav_after!}

/templates/userview/head.ftl

${metas!} 
<title>${title!}</title>
${joget_header!}
${js_css_lib!}
<script type="text/javascript">
    ${js!}
</script>
<style type="text/css">
    ${css!}
</style>
<link rel="shortcut icon" href="${fav_icon_link!}"/>

/templates/userview/login.ftl

<#if userview.params.login_error?? >
    ${login_error_before!}
    <div id="main-body-message" class="${login_error_classes!}">
        ${login_error_inner_before!}
        ${login_exception!}
        ${login_error_inner_after!}
    </div>
    ${login_error_after!}
</#if>
${login_form_before!}
<form id="loginForm" name="loginForm" action="${context_path!}/j_spring_security_check" method="POST">
    ${login_form_inner_before!}
    <table align="center">
        <tr><td><label>@@ubuilder.login.username@@: </label></td><td><input type='text' id='j_username' name='j_username'/></td></tr>
        <tr><td><label>@@ubuilder.login.password@@: </label></td><td><input type='password' id='j_password' name='j_password'/></td></tr>
        <tr><td>&nbsp;</td><td><input name="submit" class="form-button" type="submit" value="@@ubuilder.login@@" /></td></tr>
        <tr><td colspan="2">
            ${login_form_footer!}
        </td></tr>
    </table>
    ${login_form_inner_after!}
</form>
${login_form_after!}

How to use and override V5 template

วิธีใช้และแทนที่เทมเพลต V5

Reuse the predefined template

ใช้แม่แบบที่กำหนดไว้ล่วงหน้าอีกครั้ง

    @Override
    public String getHeader(Map<String, Object> data) {
        data.put("header_classes", "navbar");
        data.put("header_inner_before", "<div class=\"navbar-inner\"><div class=\"container-fluid\">");
        data.put("header_inner_after", "</div></div>");
        data.put("header_info_after", "<a id=\"mobile_menu\" class=\"btn btn-navbar\"><span class=\"icon-bar\"></span><span class=\"icon-bar\"></span><span class=\"icon-bar\"></span></a>");
        data.put("header_link_classes", "brand");
        data.put("header_info_classes", "inline-block");
        data.put("header_name_classes", "inline-block");
        data.put("header_description_classes", "inline-block visible-desktop");
        data.put("header_description_span_classes", "brand");
        return super.getHeader(data);
    }

Override or replace the predefined template

แทนที่หรือแทนที่แม่แบบที่กำหนดไว้ล่วงหน้า


    @Override
    public String getHeader(Map<String, Object> data) {
        return UserviewUtil.getTemplate(this, data, "/templates/userview/customHeader.ftl");
    }

Plugin Properties Options

ตัวเลือกคุณสมบัติปลั๊กอิน

Tutorials

สอน


Related Community Plugins

ปลั๊กอินที่เกี่ยวข้อง