Thứ Bảy, 24 tháng 11, 2012

Show user is online Tạo ribbon hiển thị online/offline



Điều kiện là phải cài Online Status rồi mới làm
Demo cho cái Classic ribbon
[IMG]

Classic ribbon
Open 'message_user_online' template and replace the string there with:

<span class="{$userStatus.class}"><span></span>{$userStatus.text}</span>
Open 'extra.css' and add these lines:
.UserOnline, .UserOffline, .UserOnlineInvisible
    {
        font-weight: bold;
        font-size: 10px;
        color: @contentBackground;
        background: @primaryLight url('@imagePath/xenforo/gradients/category-23px-light.png') repeat-x top;
        padding: 1px 5px;
        margin: -5px -5px 5px 5px;
        border: 1px solid @primaryLight;
        border-radius: 3px;
        border-top-right-radius: 0px;
        display: block;
        float: right;
        position: relative;
        box-shadow: 1px 1px 3px rgba(0,0,0, 0.25);

        margin-left: -{xen:calc '@content.padding-right + 5'}px;
    }

        .UserOnline span, .UserOffline span, .UserOnlineInvisible span
        {
            background-color: @primaryLight;
            border-top-right-radius: 3px;
            position: absolute;
            top: -4px;
            right: -1px;
            width: 5px;
            height: 4px;
        }
If you don't want to display Offline status then you should also add this:
.UserOffline {display: none !important;}

Long ribbon
Open 'message_user_online' template and replace the string there with:

<span class="{$userStatus.class}"><span></span>{$userStatus.text}</span>
Open 'extra.css' and add these lines:
.UserOnline, .UserOffline, .UserOnlineInvisible
    {
        font-weight: bold;
        font-size: 10px;
        color: @contentBackground;
        background: @primaryLight url('@imagePath/xenforo/gradients/category-23px-light.png') repeat-x top;
        padding: 1px 5px;
        margin: -5px;
        border: 1px solid @primaryLight;
        border-radius: 3px;
        border-top-right-radius: 0px;
        display: block;
        float: inherit;
        position: relative;
        box-shadow: 1px 1px 3px rgba(0,0,0, 0.25);
    }

        .UserOnline span, .UserOffline span, .UserOnlineInvisible span
        {
            background-color: @primaryLight;
            border-top-right-radius: 3px;
            position: absolute;
            top: -4px;
            right: -1px;
            width: 5px;
            height: 4px;
        }
If you don't want to display Offline status then you should also add this:

.UserOffline {display: none !important;}


Covering ribbon
Open 'message_user_online' template and replace the string there with:

<span class="{$userStatus.class}"><span class="firstSpan"></span><span class="secondSpan"></span>{$userStatus.text}</span>
Open 'extra.css' and add these lines:
.UserOnline, .UserOffline, .UserOnlineInvisible
{
font-weight: bold;
font-size: 10px;
color: @contentBackground;
background: @primaryLight url('@imagePath/xenforo/gradients/category-23px-light.png') repeat-x top;
padding: 1px 5px;
margin: -5px;
border: 1px solid @primaryLight;
border-radius: 3px;
border-top-right-radius: 0px;
border-top-left-radius: 0px;
display: block;
float: inherit;
position: relative;
box-shadow: 0px 1px 3px rgba(0,0,0, 0.25);
}
.UserOnline .firstSpan, .UserOffline .firstSpan, .UserOnlineInvisible .firstSpan
{
background-color: @primaryLight;
border-top-right-radius: 3px;
position: absolute;
top: -4px;
right: -1px;
width: 4px;
height: 4px;
}

.UserOnline .secondSpan, .UserOffline .secondSpan, .UserOnlineInvisible .secondSpan
{
background-color: @primaryLight;
border-top-left-radius: 3px;
position: absolute;
top: -4px;
left: -1px;
width: 4px;
height: 4px;
}
If you don't want to display Offline status then you should also add this:

.UserOffline {display: none !important;}

Thay đổi nút đăng ký mặc định bằng bảng đăng ký popup





Để thay đổi nút đăng ký mặc định của XenForo và khi bấm vào nút Đăng ký thì hiện popup bảng đăng ký thành viên các bạn làm như sau:
Bước 1: Tìm đoạn code sau trong template sidebar_visitor_panel

<div class="section loginButton">
    <div class="secondaryContent">
        <label for="LoginControl" id="SignupButton"><a href="{xen:link login}" class="inner">{xen:if $xenOptions.registrationSetup.enabled, {xen:phrase sign_up_now}, {xen:phrase log_in}}</a></label>
    </div>
</div>
Thay bằng đoạn code sau:

<div style="margin-top:10px;">
  <li>
      <a class="OverlayTrigger" data-overlayOptions="{&quot;fixed&quot;:false}" href="{xen:link 'register'}"><img src="http://vietxf.org/styles/default/xenforo/dangky.png"/></a>
  </li>
</div>
Bước 2: Tìm đoạn code sau trong template form.css

.xenOverlay .xenForm
    {
        width: @overlayFormWidth;
    }
Thay bằng đoạn code sau:

.xenOverlay .xenForm
    {
        width: @overlayFormWidth;
        background: #eff6fc;
    }
Với #eff6fc là mã màu nền của bảng popup được hiện ra.

Chúc các bạn thành công.

Tiêu đề forum thụt ra thụt vào khi di chuột

Như tiêu đề bài viết. Để tiêu đề forum thụt ra thụt vào khi di chuột qua các bạn làm như sau:
indenting.png
Vào template header thêm đoạn code sau:
<script type="text/javascript">
$(document).ready(function(){
$("h3 a").hover(function(){
    $(this).stop().animate({marginLeft:"10px"},300);}
  ,function(){
    $(this).stop().animate({marginLeft:"0px"},300);
});
});
</script>
Save lại -> done !

Stay logged in" (Duy trì trạng thái đăng nhập của thành viên)

Đây là 1 mod rất đơn giản nhưng lại hữu ích. Tác dụng của mod này là tự động tick vào "Stay logged in" (Duy trì trạng thái đăng nhập của thành viên). Các bạn làm như sau:
Bước 1: Tìm trong template: login_bar_form:
 
<label for="ctrl_remember" class="rememberPassword"><input type="checkbox" name="remember" value="1" id="ctrl_remember" tabindex="104" /> {xen:phrase stay_logged_in}</label>
Thay bằng code sau:
 
<label for="ctrl_remember" class="rememberPassword"><input type="checkbox" name="remember" value="1" checked="checked" id="ctrl_remember" tabindex="104" /> {xen:phrase stay_logged_in}</label>
Bước 2: Tìm trong template: helper_login_form:
 
<label for="ctrl_pageLogin_remember" class="rememberPassword"><input type="checkbox" name="remember" value="1" id="ctrl_pageLogin_remember" /> {xen:phrase stay_logged_in}</label>
Thay bằng code sau:
 
<label for="ctrl_pageLogin_remember" class="rememberPassword"><input type="checkbox" name="remember" value="1" checked="checked" id="ctrl_pageLogin_remember" /> {xen:phrase stay_logged_in}</label>

SubCategories in Columns - Hiển thị forum con ra ngoài trang chính


Để hiển thị forum con trong các chuyên mục thành các cột các bạn làm như sau:

Tìm đoạn code sau trong template: node_forum_level_2

<xen:if is="{$renderedChildren} AND {$level} == 2">
    <div class="Popup subForumsPopup">
        <a href="{xen:link forums, $forum}" rel="Menu" class="cloaked" data-closemenu="true"><span class="dt">{xen:phrase sub_forums}:</span> {xen:number $forum.childCount}</a>

        <div class="Menu JsOnly subForumsMenu">
            <div class="primaryContent menuHeader">
                <h3>{$forum.title}</h3>
                <div class="muted">{xen:phrase sub_forums}</div>
            </div>
            <ol class="secondaryContent blockLinksList">
            <xen:foreach loop="$renderedChildren" value="$child">
                {xen:raw $child}
            </xen:foreach>
            </ol>
        </div>
    </div>
</xen:if>
Thay bằng đoạn code sau:

<xen:if is="{$renderedChildren} AND {$level} == 2">
    <div class="subForumsPopup">
        <div class="subForumsMenu">
            <ol class="secondaryContent blockLinksList">
            <xen:foreach loop="$renderedChildren" value="$child">
                {xen:raw $child}
            </xen:foreach>
            </ol>
        </div>
    </div>
</xen:if>
Tìm đoạn code sau trong template: node_category_level_2

<xen:if is="{$renderedChildren} AND {$level} == 2">
    <div class="Popup subForumsPopup">
        <a href="{xen:link categories, $category}" rel="Menu" class="concealed" data-closemenu="true"><span class="dt">{xen:phrase sub_forums}:</span> {xen:number $category.childCount}</a>

        <div class="Menu JsOnly subForumsMenu">
            <div class="primaryContent menuHeader">
                <h3>{$category.title}</h3>
                <div class="muted">{xen:phrase sub_forums}</div>
            </div>
            <ol class="secondaryContent blockLinksList">
                <xen:foreach loop="$renderedChildren" value="$child">
                    {xen:raw $child}
                </xen:foreach>
            </ol>
        </div>
    </div>
</xen:if>
Thay bằng đoạn code sau:

<xen:if is="{$renderedChildren} AND {$level} == 2">
    <div class="subForumsPopup">

        <div class="subForumsMenu">
            <ol class="secondaryContent blockLinksList">
            <xen:foreach loop="$renderedChildren" value="$child">
                {xen:raw $child}
            </xen:foreach>
            </ol>
        </div>
    </div>
</xen:if>
Mở template: node_forum_level_n. Thay thế tất cả nội dung trong template này bằng:

<li class="node forum level-n node_{$forum.node_id}">
    <span class="dot"><span></span></span>
    <div {xen:if $forum.hasNew, 'class="unread"'}>
        <h4 class="nodeTitle"><a href="{xen:link forums, $forum}" class="menuRow">{$forum.title}</a></h4>
    </div>
    <xen:if is="{$renderedChildren}">
        <ol>
            <xen:foreach loop="$renderedChildren" value="$child">
                {xen:raw $child}
            </xen:foreach>
        </ol>
    </xen:if>
</li>
Mở template: node_category_level_n. Thay thế tất cả nội dung template trên bằng:

<li class="node category level-n node_{$category.node_id}">
    <span class="dot"><span></span></span>
    <div {xen:if $category.hasNew, 'class="unread"'}>
        <h4 class="nodeTitle"><a href="{xen:link categories, $category}" class="menuRow">{$category.title}</a></h4>
    </div>
    <xen:if is="{$renderedChildren}">
        <ol>
            <xen:foreach loop="$renderedChildren" value="$child">
                {xen:raw $child}
            </xen:foreach>
        </ol>
    </xen:if>
</li>
Mở template EXTRA.css. Thêm vào đoạn code sau:

.subForumsPopup,
.subForumsPopup .blockLinksList,
.subForumsPopup ol,
.subForumsMenu ol li ol li
{
    width: 100%;
}

.subForumsPopup .blockLinksList
{
    float: left;
}

.subForumsPopup .dot
{
    position: relative;
    float: left; /* firefox fix */
}
.subForumsPopup .dot span
{
    height: 0px;
    left: 6px;
    top: 10px !important;
    position: absolute;
    width: 0px;
    border: 2px solid @primaryLight;
    border-radius: 6px;
}

.subForumsMenu ol li
{
    width: 25%;
    float: left;
}

.subForumsMenu .node .nodeTitle a
{
    padding-left: 16px;
}

.subForumsMenu .node .node.level-n
{
    display: none;
}
Nếu muốn hiển thị Subforum thành nhiều hơn hoặc ít cột hơn. Các bạn sửa giá trị: 20% trong code:

.subForumsGrid .node { width: 20%; float: left; }
Thành giá trị tương ứng sau:

  • 20% = 5 cột
  • 25% = 4 cột
  • 33% = 3 cột
  • 50% = 2 cột

Thứ Năm, 22 tháng 11, 2012

Quảng cáo trượt 2 bên cho XenForo


Tìm template header. Dán đoạn code sau đây vào cuối: (*** là URL)

<div id="divAdRight" style="DISPLAY: none; POSITION: absolute; TOP: 0px"><a href="*******"><img src="********" width="100"/></a></div>
<div id="divAdLeft"  style="DISPLAY: none; POSITION: absolute; TOP: 0px"><a href="*******"><img src="********" width="100"/></a></div>
<script>
    function FloatTopDiv()
    {
        startLX = ((document.body.clientWidth -MainContentW)/2)-LeftBannerW-LeftAdjust , startLY = TopAdjust+80;
        startRX = ((document.body.clientWidth -MainContentW)/2)+MainContentW+RightAdjust , startRY = TopAdjust+80;
        var d = document;
        function ml(id)
        {
            var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
            el.sP=function(x,y){this.style.left=x + 'px';this.style.top=y + 'px';};
            el.x = startRX;
            el.y = startRY;
            return el;
        }
        function m2(id)
        {
            var e2=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
            e2.sP=function(x,y){this.style.left=x + 'px';this.style.top=y + 'px';};
            e2.x = startLX;
            e2.y = startLY;
            return e2;
        }
        window.stayTopLeft=function()
        {
            if (document.documentElement && document.documentElement.scrollTop)
                var pY =  document.documentElement.scrollTop;
            else if (document.body)
                var pY =  document.body.scrollTop;
            if (document.body.scrollTop > 30){startLY = 3;startRY = 3;} else {startLY = TopAdjust;startRY = TopAdjust;};
            ftlObj.y += (pY+startRY-ftlObj.y)/16;
            ftlObj.sP(ftlObj.x, ftlObj.y);
            ftlObj2.y += (pY+startLY-ftlObj2.y)/16;
            ftlObj2.sP(ftlObj2.x, ftlObj2.y);
            setTimeout("stayTopLeft()", 1);
        }
        ftlObj = ml("divAdRight");
        //stayTopLeft();
        ftlObj2 = m2("divAdLeft");
        stayTopLeft();
    }
    function ShowAdDiv()
    {
        var objAdDivRight = document.getElementById("divAdRight");
        var objAdDivLeft = document.getElementById("divAdLeft");
        if (document.body.clientWidth < 1000)
        {
            objAdDivRight.style.display = "none";
            objAdDivLeft.style.display = "none";
        }
        else
        {
            objAdDivRight.style.display = "block";
            objAdDivLeft.style.display = "block";
            FloatTopDiv();
        }
    }
</script>
<script>
document.write("<script type='text/javascript' language='javascript'>MainContentW = 1000;LeftBannerW = 125;RightBannerW = 125;LeftAdjust = 5;RightAdjust = 5;TopAdjust = 10;ShowAdDiv();window.onresize=ShowAdDiv;;<\/script>");
</script>

Những vấn đề cho người mới (sự cố 1)

Lỗi:
An exception occurred: Mysqli prepare error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') OR EWRporta_promotes.promote_date < ?) AND xf_thread.discussion_state = 'v' at line 11 in /home/a8895537/public_html/library/Zend/Db/Statement/Mysqli.php on line 77
Zend_Db_Statement_Mysqli->_prepare() in Zend/Db/Statement.php at line 115
Zend_Db_Statement->__construct() in Zend/Db/Adapter/Mysqli.php at line 381
Zend_Db_Adapter_Mysqli->prepare() in Zend/Db/Adapter/Abstract.php at line 478
Zend_Db_Adapter_Abstract->query() in Zend/Db/Adapter/Abstract.php at line 734
Zend_Db_Adapter_Abstract->fetchAll() in EWRporta/Block/RecentNews.php at line 38
EWRporta_Block_RecentNews->getModule() in EWRporta/Model/Blocks.php at line 116
EWRporta_Model_Blocks->getBlockParams() in EWRporta/ViewPublic/Custom.php at line 71
EWRporta_ViewPublic_Custom->renderHtml() in XenForo/ViewRenderer/Abstract.php at line 215
XenForo_ViewRenderer_Abstract->renderViewObject() in XenForo/ViewRenderer/HtmlPublic.php at line 67
XenForo_ViewRenderer_HtmlPublic->renderView() in XenForo/FrontController.php at line 533
XenForo_FrontController->renderView() in XenForo/FrontController.php at line 156
XenForo_FrontController->run() in /home/a8895537/public_html/index.php at line 13


Cái này nó báo không thấy table nào có tên EWRporta_Block_RecentNews, EWRporta_Model_Blocks, EWRporta_ViewPublic_Custom
Bạn sửa như sau :
vào database tìm cái table nào có tên đầu là : ewrporta_.........sửa thành EWRporta_.......là ok.
VD:ewrporta_Block_RecentNews --> bạn sủa thành cái này: EWRporta_Block_RecentNews , là ok .Cái khác cung như thế .
Hoặc bạn Insert cái table này vào cái database của bạn: dowload .
(Thanks thành viên vnmio trên vietxf.org)
z

Những vấn đề cho người mới P2

Cách Export template:
Appearance -> Styles -> Chọn styles mà bạn muốn export -> export =>Xuất ra 1 file XML
Template hoàn thiện gồm XML + source style.
zzz

Những vấn đề cho người mới

Sửa màu chữ người Post bài:
Thay
<span class="posted"> Bởi <a href="{xen:link members, $news}" class="username">{$news.username}</a>
Bằng
<span class="posted"><font color="#e54b29"> Bởi <a href="{xen:link members, $news}" class="username">{$news.username}</a>

Ảnh hiển thị lớn lên bạn làm như sau
Mở Template RecentNews tìm đoạn code:
<a href="{xen:link threads, $news}"><img src="{$news.attach.thumbnailUrl}" alt="{$news.attach.filename}" /></a>
=
<a href="{xen:link threads, $news}"><img src="{xen:link attachments, $news.attach}" style="max-width: ***px;" /></a>

xx


Giao diện trang chủ XenPotal giống tinhte.vn

Cài đặt & Thiết lập XenPorta (Portal)
- Tải về XenPorta tại http://vietxf.org/threads/8wayrun-com-xenporta-portal-1-5-3a.95/
- Cài đặt như bình thường (giống như trong topic tải về đã có hướng dẫn)
- Vào ACP>>Xenporta>>Option thiết lập như trong hình sau:

- Vào ACP>>Xenporta>>Layout>>Portal khéo Recent News Block vào vị trí Top-Right
- Vào ACP>>Xenporta>>Blocks chọn Recent News và thiết lập như trong hình sau:

Chỉnh sửa giao diện (styles)
- Mở template xenforo_sections.css thay toàn bộ nội dung trong đó bằng code sau:

.section
{
    @property "section";
    margin: 10px auto;
    @property "/section";
}

.sectionMain
{
    @property "sectionMain";
    background-color: @contentBackground;
    padding: 10px;
    margin: 10px auto;
    border: 1px solid @primaryLighter;
    border-radius: 10px;
    @property "/sectionMain";
}

.heading,
.xenForm .formHeader
{
    @property "heading";
    font-weight: bold;
    font-size: 11pt;
    color: @primaryLightest;
    background-color: @primaryLightish;
    padding: 5px 10px;
    margin-bottom: 3px;
    border-bottom: 1px solid @primaryMedium;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    @property "/heading";
}

.heading a { color: @heading.color; }

.subHeading
{
    @property "subHeading";
    font-size: 11px;
    color: @secondaryDarker;
    background: @secondaryLighter url('@imagePath/xenforo/gradients/category-23px-light.png') repeat-x top;
    padding: 5px 10px;
    margin: 3px auto 0;
    border-top: 1px solid @secondaryLighter;
    border-bottom: 1px solid @secondaryLight;
    @property "/subHeading";
}

.subHeading a { color: @subHeading.color; }

.textHeading,
.xenForm .sectionHeader
{
    @property "textHeading";
    font-weight: bold;
    color: @contentText;
    padding-bottom: 2px;
    margin: 10px auto 5px;
    border-bottom: 1px solid @primaryLighterStill;
    @property "/textHeading";
}

.xenForm .sectionHeader,
.xenForm .formHeader
{
margin: 10px 0;
}

.primaryContent > .textHeading:first-child,
.secondaryContent > .textHeading:first-child
{
    margin-top: 0;
}

.larger.textHeading,
.xenForm .sectionHeader
{
    color: @primaryLighter;
    font-size: 11pt;
    margin-bottom: 6px;
}

.larger.textHeading a,
.xenForm .sectionHeader a
{
    color: @primaryLighter;  
}

.primaryContent
{
    @property "primaryContent";
    background-color: #FFFFF;
    padding: 10px;
    @property "/primaryContent";
}

.primaryContent a
{
    @property "primaryContentLink";
    color: @primaryMedium;
    @property "/primaryContentLink";
}

.secondaryContent
{
    @property "secondaryContent";
    background: @primaryLightest url('@imagePath/xenforo/gradients/category-23px-light.png') repeat-x top;
    padding: 10px;
    border-bottom: 1px solid @primaryLighterStill;
    @property "/secondaryContent";
}

.secondaryContent a
{
    @property "secondaryContentLink";
    color: @primaryMedium;
    @property "/secondaryContentLink";
}

.sectionFooter
{
    @property "sectionFooter";
    font-size: 11px;
    color: @primaryLightish;
    padding: 4px 10px;
    line-height: 16px;
    @property "/sectionFooter";
}

.sectionFooter a { color: @sectionFooter.color; }

/* used for section footers with central buttons, esp. in report viewing */

.actionList
{
    text-align: center;
}

/* left-right aligned options */

.opposedOptions
{
    overflow: hidden; zoom: 1;
}

.opposedOptions .left
{
    float: left;
}

.opposedOptions .right
{
    float: right;
}
.subHeadingportal {
    border-bottom: 1px solid #D6F0FF;
    color: #285E8D;
    font-size: 12pt;
    font-weight: bold;
    margin-bottom: 5px;
    padding-bottom: 2px;
}

.subHeadingportal a { color: #285E8D; }
.sectionFooterportal
{
    @property "sectionFooter";
    font-size: 11px;
    color: @primaryLightish;
    padding: 4px 10px;
    line-height: 16px;
    @property "/sectionFooter";
}

.sectionFooterportal a { color: @sectionFooter.color; }
.primaryContentportal
{
    @property "primaryContent";
    background-color: #FFFFF;
    padding: 10px;
    @property "/primaryContent";
}

.primaryContentportal a
{
    @property "primaryContentLink";
    color: @primaryMedium;
    @property "/primaryContentLink";
}
.sectionMainportal
{
    border: 1px solid #D6F0FF;
    border-radius: 10px 10px 10px 10px;
    margin: 10px auto;
    padding: 10px;
}

- Mở template EWRblock_RecentNews thay toàn bộ nội dung trong đó bằng code sau:

<xen:require css="message_user_info.css" />
<xen:require css="bb_code.css" />
<xen:require css="EWRblock_RecentNews.css" />

<div id="recentNews">
    <xen:foreach loop="$RecentNews" value="$news">
    <div class="section sectionMainportal recentNews" id="{$news.thread_id}">

        <div class="primaryContentportal {xen:if {$option.leftdate}, 'leftDate'}">
            <div class="subHeadingportal">
                <div style="float: right; white-space: nowrap;">
                    <xen:if is="{$visitor.permissions.EWRporta.canPromote}">&nbsp;(<a href="{xen:link 'threads/edit', $news}" class="OverlayTrigger">{xen:phrase edit}</a>)
                    </xen:if>
                </div>
                <a href="{xen:link threads, $news}" class="newsTitle">{$news.title}</a>
            </div>

            <div class="messageContent baseHtml">
                <div class="postedBy">
                    <span class="posted">bởi <a href="{xen:link members, $news}" class="username">{$news.username}</a>, lúc <a href="{xen:link threads, $news}">{xen:datetime $news.promote_date}</a></span>
                </div>
                <xen:if is="{$news.promote_icon} != 'disabled'">
                <xen:if hascontent="true">
             
                <div style="hinhanh">
                    <div style="text-align: center">
                        <xen:contentcheck>
                        <xen:if is="{$news.attach}">
                        <a href="{xen:link threads, $news}"><img src="{$news.attach.thumbnailUrl}" alt="{$news.attach.filename}" /></a>
                        <xen:elseif is="{$news.medio}" />
                         
                            <div style="background: url('{xen:helper medio, $news.medio}') no-repeat;">
                                <a href="{xen:link 'full:media/popout', $news.medio}" class="OverlayTrigger"><img src="styles/8wayrun/EWRmedio_play.png" width="160" height="90" /></a>
                            </div>
                        <xen:elseif is="{$news.image}" />
                        <a href="{xen:link threads, $news}"><img src="{$news.image}" alt="{$news.image}" title="Nhấp chuột vào đây để xem"/></a>
                        <xen:else />
                        <xen:avatar user="$news" size="m" itemprop="photo" />
                        </xen:if>
                        </xen:contentcheck>
                    </div>
                </div>
                </xen:if>
                </xen:if>
                <div class="newsText">{xen:raw $news.messageHtml}</div>
                <div class="clearFix"></div>
            </div>

            <div class="sectionFooterportal">
                <div class="continue">
                    <a href="{xen:link threads, $news}" style="background: transparent url('@imagePath/xenforo/icons/redirect.png') no-repeat left bottom; padding-left: 20px;">
                    {xen:phrase continue_reading}
                    </a>
                </div>
            </div>
        </div>
    </div>
    </xen:foreach>

    <xen:if hascontent="true">
    <div class="section sectionMain">
        <xen:contentcheck>
            <xen:if is="{$option.pagenav} && {$option.count} > {$option.limit}">
                <xen:if is="{$category}">
                    <xen:pagenav link="articles" linkdata="{$category}" page="{$page}" perpage="{$option.limit}" total="{$option.count}" />
                <xen:else />
                    <xen:pagenav link="portal" page="{$page}" perpage="{$option.limit}" total="{$option.count}" />
                </xen:if>
            </xen:if>
        </xen:contentcheck>
    </div>
    </xen:if>
</div>

- Mở template EWRblock_RecentNews.css thay toàn bộ nội dung trong đó bằng code sau:

.recentNews .subHeadingportal { margin: -10px -10px 10px; }
.recentNews .subHeadingportal a { color: #285E8D; }
.recentNews .messageUserBlock { float: right; margin-left: 10px; }

.recentNews .newsDate { float: left; margin: 0px 10px 10px 0px; padding: 0px 10px 5px; width: 35px; font-weight: bold; text-align: center; }
.recentNews .newsDate .newsMonth { padding: 10px 0px 5px !important; margin: 0px -10px 5px !important; text-transform: uppercase; }
.recentNews .newsDate .newsDay { font-size: 26px; }

.recentNews .leftDate .newsDate { margin-left: -45px; }
.recentNews .leftDate .newsText {
text-align: justify;
}

.recentNews .messageContent { font-size: 13px; }
.recentNews .messageContent .postedBy { margin-bottom: 10px; padding-bottom: 5px; border-bottom: 1px dashed @primaryLighterStill; }
.recentNews .messageContent .username { font-weight: bold; }
.recentNews .messageContent .posted { background: transparent url('@imagePath/xenforo/icons/sticky.png') no-repeat left bottom; padding-left: 20px; }
.recentNews .messageContent .comments { float: right; background: transparent url('@imagePath/xenforo/widgets/discussion-new.png') no-repeat left bottom; padding-left: 20px; font-weight: bold; }
.recentNews .messageContent .clearFix { clear: right; }

.recentNews .sectionFooterportal { margin: 10px -10px -10px; text-align: right; position: relative; }
.recentNews .sectionFooterportal .continue { padding: 6px; font-size: 12px; }
.recentNews .sectionFooterportal .continue a { background: transparent url('@imagePath/xenforo/icons/redirect.png') no-repeat left bottom; padding-left: 20px; }
.recentNews .sectionFooterportal .continue a:hover { text-decoration: none; }
.recentNews .sectionFooterportal .source { padding-top: 6px; float: left; }
.recentNews .sectionFooterportal .sharePage { position: absolute; }
.recentNews .sectionFooterportal .shareControl { margin-top: 4px !important; }


Thanks vietxf.org

Cài thêm ngôn ngữ bản địa cho xenforo

Tiếng Việt Nam (vietnam)Language Tiếng Việt Xenforo 1.1.2
http://www.mediafire.com/file/i4bu0kz5pybx5pc/language-Tieng-Viet-xenforo-1.1.2.zip
(Thanks xenforo.biz)
Tác giả: VIETXF.ORG
Bản dịch:
Bản dịch này đã được trích từ các bản dịch trước nên khá đầy đủ.
Gần như đã hoàn chỉnh tầm 98%
Ngôn từ dùng trong bản dịch này hay, ngắn gọn, xúc tích và dễ hiểu.
Bản dịch này chỉ dịch phần bên ngoài Forum. Không dịch Admin Control Panel đâu nhé!
Demo: http://Vietxf.org
Tải về http://vietxf.org/attachments/language-tieng-viet-1-1-3-vietxf-rar.1622/
(Thanks vietxf.org)

Tiếng Nga :Tác giả: Romchik®
Ngôn ngữ: tiếng Nga
Phiên bản: 1.1.3
http://vietxf.org/attachments/xenforo_113_rus_xfr_121-zip.1633/

Download các bản Xenforo

Bản gốc tại trang chủ nhà phát hành (phải mua)

Demo | Dùng thử và mua
http://xenforo.com/
Bản giới thiệu từ diễn đàn xenforo Việt:
http://vietxf.org/
Bản giới thiệu từ các địa chỉ khác:
http://xenforo.biz/for@um/forums/xenforo-1-x-x.24/
http://www.mediafire.com/xenforo 

video cài xenforo từ xenforoBiz


Thanks Xenforo.biz

Video cách cài đặt XenForo trên localhost.

Đầu tiên bạn cần phải có bộ cài Appserv phiên bản mới nhất (2.5.10)
http://www.appservnetwork.com/modules.php?name=News&file=article&sid=46
Tiếp theo là bạn download bộ mã nguồn XenForo bản mới nhất hiện tại là 1.1.3
http://vietxf.org/attachments/xenforo-v1-1-3-php-null-vietxf-org-rar.1110/

Sau đây là 2 clip hướng dẫn chi tiết cài đặt:



Thanks ietxf.org