Thủ Thuật Hiển thị footer tùy chỉnh theo link truy cập.

longruoi

MasterCorporal
Thành viên BQT
Tham gia
19/04/2015
Bài viết
260
Được Like
213
Lâu ngày không viết bài, hôm nay thấy có bạn hỏi cách làm phần cuối của site mình chỉ hiện thị những option cơ bản khi vào Thread hoặc From nên mình hướng dẫn luôn.

P/s: Cách này áp dụng với các bạn nào tùy chỉnh footer quá nhiều dẫn đến việc load site chậm, để hạn chế tình trạng đó thì ta chỉ để footer tùy chỉnh hiển thị trên forum chính, ngoài ra cho hiển thị đơn giản để tăng tốc site.

Demo:

Tại forum chính:

26634239695_c916c3f43a_o.png


Tại bất cứ bài viết hay from nào khác:

26541130822_f9458fe770_o.png


Hoặc các bạn có thể truy cập vào site: http://vtplus.xyz tại trang chủ và vào đọc bài viết để thấy sự khác biệt.


Bắt đầu:

Đầu tiên là cần tạo thêm 2 template mới.
Thứ nhất tạo template tên là footer_1 với nội dung:

PHP:
<xen:edithint template="footer_1.css" />

<xen:hook name="footer">
<div class="footer">
    <div class="pageWidth">
        <div class="pageContent">
            <xen:if is="{$canChangeStyle} OR {$canChangeLanguage}">
            <dl class="choosers">
                <xen:if is="{$canChangeStyle}">
                    <dt>{xen:phrase style}</dt>
                    <dd><a href="{xen:link 'misc/style', '', 'redirect={$requestPaths.requestUri}'}" class="OverlayTrigger Tooltip" title="{xen:phrase style_chooser}" rel="nofollow">{$visitorStyle.title}</a></dd>
                </xen:if>
                <xen:if is="{$canChangeLanguage}">
                    <dt>{xen:phrase language}</dt>
                    <dd><a href="{xen:link 'misc/language', '', 'redirect={$requestPaths.requestUri}'}" class="OverlayTrigger Tooltip" title="{xen:phrase language_chooser}" rel="nofollow">{$visitorLanguage.title}</a></dd>
                </xen:if>
            </dl>
            </xen:if>
                    
            <ul class="footerLinks">
            <xen:hook name="footer_links">                
             <xen:if is="{$xenOptions.contactUrl.type} === 'default'">
                    <li><a href="{xen:link 'misc/contact'}" class="OverlayTrigger" data-overlayOptions="{&quot;fixed&quot;:false}">{xen:phrase contact_us}</a></li>
                <xen:elseif is="{$xenOptions.contactUrl.type} === 'custom'" />
                    <li><a href="{$xenOptions.contactUrl.custom}" {xen:if {$xenOptions.contactUrl.overlay}, 'class="OverlayTrigger" data-overlayOptions="{&quot;fixed&quot;:false}"'}>{xen:phrase contact_us}</a></li>
                </xen:if>
                <li><a href="{xen:link help}">{xen:phrase help}</a></li>
                <xen:if is="{$homeLink}"><li><a href="{$homeLink}" class="homeLink">{xen:phrase home}</a></li></xen:if>
                <li><a href="{$requestPaths.requestUri}#navigation" class="topLink">{xen:phrase go_to_top}</a></li>
                <li><a href="{xen:link forums/-/index.rss}" rel="alternate" class="globalFeed" target="_blank"
                    title="{xen:phrase rss_feed_for_x, 'title={$xenOptions.boardTitle}'}">{xen:phrase rss}</a></li>
            </xen:hook>
            </ul>
        
            <span class="helper"></span>
        </div>
    </div>
</div>

<div class="footerLegal">
    <div class="pageWidth">
        <div class="pageContent">
            <ul id="legal">
            <xen:hook name="footer_links_legal">
    
            </xen:hook>
            </ul>
            <xen:hook name="footer_after_copyright" />
    
             <xen:if is="{$debugMode} AND {$visitor.is_admin}">
                <xen:if hascontent="true">
                    <dl class="pairsInline debugInfo" title="{$controllerName}-&gt;{$controllerAction}{xen:if $viewName, ' ({$viewName})'}">
                    <xen:contentcheck>
                        <xen:if is="{$page_time}"><dt>{xen:phrase timing}:</dt> <dd><a href="{$debug_url}" rel="nofollow">{xen:phrase x_seconds, 'time={xen:number $page_time, 4}'}</a></dd></xen:if>
                        <xen:if is="{$memory_usage}"><dt>{xen:phrase memory}:</dt> <dd>{xen:phrase x_mb, 'size={xen:number {xen:calc "{$memory_usage} / 1024 / 1024"}, 3}'}</dd></xen:if>
                        <xen:if is="{$db_queries}"><dt>{xen:phrase db_queries}:</dt> <dd>{xen:number {$db_queries}}</dd></xen:if>
                    </xen:contentcheck>
                    </dl>
                </xen:if>
            </xen:if>
        
            <span class="helper"></span>
        </div>
    </div>
</div>
</xen:hook>

Thứ 2 là tạo template footer_1.css với nội dung:

PHP:
.footer .pageContent
{
    @property "footer";
    font-size: 11px;
    color: @primaryLighter;
    background-color: @primaryMedium;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
    overflow: hidden;
    zoom: 1;
    @property "/footer";
}

    .footer a,
    .footer a:visited
    {
        @property "footerLink";
        color: @primaryLighter;
        padding: 5px;
        display: block;
        @property "/footerLink";
    }

        .footer a:hover,
        .footer a:active
        {
            @property "footerLinkHover";
            color: @primaryLighterStill;
            @property "/footerLinkHover";
        }

    .footer .choosers
    {
        @property "footerLeftBlock";
        padding-left: 5px;
        float: left;
        overflow: hidden;
        zoom: 1;
        @property "/footerLeftBlock";
    }

        .footer .choosers dt
        {
            display: none;
        }
    
        .footer .choosers dd
        {
            float: left;
            <xen:if is="{$pageIsRtl}">*display: inline; *float: none; *zoom: 1;</xen:if>
        }
    
    .footerLinks
    {
        @property "footerRightBlock";
        padding-right: 5px;
        float: right;
        overflow: hidden;
        zoom: 1;
        @property "/footerRightBlock";
    }

        .footerLinks li
        {
            float: left;
            <xen:if is="{$pageIsRtl}">*display: inline; *float: none; *zoom: 1;</xen:if>
        }
    
            .footerLinks a.globalFeed
            {
                width: 14px;
                height: 14px;
                display: block;
                text-indent: -9999px;
                white-space: nowrap;
                background: url('@imagePath/xenforo/xenforo-ui-sprite.png') no-repeat -112px -16px;
                padding: 0;
                margin: 5px;
            }

.footerLegal .pageContent
{
    font-size: 11px;
    overflow: hidden; zoom: 1;
    padding: 5px 5px 15px;
    text-align: center;
}

    #copyright
    {
        color: @dimmedTextColor;
        float: left;
    }

    #legal
    {
        float: right;
    }

        #legal li
        {
            float: left;
            <xen:if is="{$pageIsRtl}">*display: inline; *float: none; *zoom: 1;</xen:if>
            margin-left: 10px;
        }

<xen:if is="@enableResponsive">
@media (max-width:@maxResponsiveMediumWidth)
{
    .Responsive .footerLinks a.globalFeed,
    .Responsive .footerLinks a.topLink,
    .Responsive .footerLinks a.homeLink
    {
        display: none;
    }

    .Responsive .footerLegal .debugInfo
    {
        clear: both;
    }
}

@media (max-width:@maxResponsiveNarrowWidth)
{
    .Responsive #copyright span
    {
        display: none;
    }
}
</xen:if>

Sau đó vào template PAGE_CONTAINER
Thay thế đoạn code:

PHP:
<footer>
    <xen:include template="footer" />
</footer>
Bằng đoạn code:
PHP:
<xen:if is="{$isIndexPage}">
<footer>
    <xen:include template="footer" />
</footer>
<xen:else />
<footer>
    <xen:include template="footer_1" />
</footer>
</xen:if>
Vậy là xong.

Chúc các bạn vui vẻ.
 
  • Like
Reactions: THB

Jindo_Katori

FirstSergeant
Tham gia
01/03/2015
Bài viết
1,454
Được Like
1,193
Rất hay.
Sẽ nghiên cứu để phù hợp với site mình (site mình footer cho giao diện mobi thực sự cũng quá tệ)
 
  • Like
Reactions: THB

longruoi

MasterCorporal
Thành viên BQT
Tham gia
19/04/2015
Bài viết
260
Được Like
213
Rất hay.
Sẽ nghiên cứu để phù hợp với site mình (site mình footer cho giao diện mobi thực sự cũng quá tệ)
Mobi site mình footer cũng tạm ổn, mà qua desktop đang còn dư 1 mớ textlink, bữa nào có điều kiện lên desktop chụp lại để đăng lên cho mọi người vào đăng ký textlink free..he
 

Jindo_Katori

FirstSergeant
Tham gia
01/03/2015
Bài viết
1,454
Được Like
1,193
Mobi site mình footer cũng tạm ổn, mà qua desktop đang còn dư 1 mớ textlink, bữa nào có điều kiện lên desktop chụp lại để đăng lên cho mọi người vào đăng ký textlink free..he
Cái footer destop bên site mình thì copy vxf do mọi người chia sẽ thôi chứ chẳng có gì đặc biệt cả (nói chung dễ nhìn).
Còn chuyển qua giao diện mobi thì trông nát bét, gớm chết đi được: lúc nãy kiểm tra tốc độ load là 1.5s chậm gấp 6 lần của bác. Thật là thảm họa.
Textlink bác cho ké được không (khi nào bác không cho ké nữa thì bác cứ xóa)
 

longruoi

MasterCorporal
Thành viên BQT
Tham gia
19/04/2015
Bài viết
260
Được Like
213
Cái footer destop bên site mình thì copy vxf do mọi người chia sẽ thôi chứ chẳng có gì đặc biệt cả (nói chung dễ nhìn).
Còn chuyển qua giao diện mobi thì trông nát bét, gớm chết đi được: lúc nãy kiểm tra tốc độ load là 1.5s chậm gấp 6 lần của bác. Thật là thảm họa.
Textlink bác cho ké được không (khi nào bác không cho ké nữa thì bác cứ xóa)
Ok. Mình bữa giờ làm trên điện thoại nên chỉ điều chỉnh response cho giao diện điện thoại, chứ chưa có điều kiện làm trên desktop để chỉnh cho phù hợp, bữa có nhờ người chụp màn hình desktop dùm thì thấy nó chưa hợ lý. Nên khi nào có máy tính thì tranh thủ làm lại.
 

Top Bottom