New
Loading...
Trong bất kì diễn đàn nào thì vị trí quảng cáo sau bài viết đầu tiên cực kì quan trọng vì thu hút người dùng, dễ thấy và không làm khó chịu người xem. Nhưng trong diễn đàn Xenforo để đặt quảng cáo ở vị trí này ta phải làm sao? Sau đây xin mời các bạn tham khảo cách làm nhanh gọn lẹ này nhé!


- Đăng nhập admincp => Templates => ad_message_below

- Trong template bạn sẽ thấy có đoạn code:
<xen:hook name="ad_message_below" />
- Đặt đoạn code sau bên dưới nó:
<xen:if is="{$post.position} == 0">
 Code banner của bạn
</xen:if>
- Đoạn code trên xác định vị trí là bài viết đầu tiên,  quảng cáo sẽ không xuất hiện trong bài viết reply hay comment.
- Bên trong đoạn code trên bạn tùy ý đặt banner.

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


Xem thêm:
- Hướng dẫn tạo biến dùng chung toàn bộ template Xenforo ( Global Template Variable )
- XenTag 2.1 plugin hữu ích cho thành viên & SEO diễn đàn Xenforo
- [8wayRun.Com] XenPorta 1.6.0 - Plugin CMS miễn phí mạnh mẽ cho Xenforo
- Tạo khung đăng ký thành viên dạng popup trong diễn đàn Xenforo
- Hướng dẫn đặt quảng cáo theo từng forum hoặc category trong xenforo
- Video hướng dẫn chi tiết cách viết Addon cho diễn đàn XenForo


Trong template Xenforo mặc định đã hỗ trợ nhiều biến dùng chung  ( Global Variable ) nhưng đôi khi việc custom template khiến bạn phải tạo ra những biến không có sẵn để đặt tùy ý bất cứ nơi đâu trong template diễn đàn. Việc này thật đơn giản, bạn chỉ cần thực hiện các bước trong hướng dẫn sau đây:


 1Tải và cài đặt Plugin Global Template Variable

 - Tải plugin tại đây
 - Cài đặt: Giải nén và upload folder "library" lên folder root của diễn đàn trên host. Từ admincp Xenforo chạy install plugin trỏ tới file install file "addon-semprot_gtv.xml" vừa giải nén.

2 Tạo biến custom theo ý muốn:

- Sau khi cài đặt plugin, bạn mở file /library/Semprot/GlobalTemplateVariable/Listener.php trên host vừa upload, thêm biến tùy ý như những biến có sẵn là is_handsomeis_fat:
<?php
class Semprot_GlobalTemplateVariable_Listener
{
    public static function template_create(&$templateName, array &$params, XenForo_Template_Abstract $template)
    {
        $params['is_handsome'] = true;
        $params['is_fat'] = false;
        $params['example'] = "www.obinb.com";
    }

}
3 Sử dụng biến vừa tạo:

Với những biến bạn vừa tạo, bạn có thể tùy ý sử dụng ở mọi template của giao diện Xenforo. Ví dụ:
Tại template PAGE_CONTAINER ta đặt đoạn code như sau:
<xen:if is="{$is_handsome}">
You are handsome.
<xen:else />
You are not handsome.
</xen:if>

<xen:if is="{$is_fat}">
You are fat.
<xen:else />
You are not fat.
</xen:if>

Lưu ý: Plugin Global Template Variable hỗ trợ Xenforo version 1.4


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

Xem thêm:
- XenTag 2.1 plugin hữu ích cho thành viên & SEO diễn đàn Xenforo
- [8wayRun.Com] XenPorta 1.6.0 - Plugin CMS miễn phí mạnh mẽ cho Xenforo
- Tạo khung đăng ký thành viên dạng popup trong diễn đàn Xenforo
- Hướng dẫn đặt quảng cáo theo từng forum hoặc category trong xenforo
- Video hướng dẫn chi tiết cách viết Addon cho diễn đàn XenForo

Sau một thời gian sử dụng Xenforo nhiều người nhận định là bộ search của Xenforo có vấn đề, tìm kiếm từ khóa nhiều lúc không ra hoặc ra không chính xác ( Mặc dù nội dung và tiêu đề topic hoàn toàn tồn tại) ngoài ra nó còn tốn tài nguyên của server.
 Trong thời gian chờ bộ search tốt hơn từ Xenforo chúng ta có một thay thế hoàn hảo là Google Custom Search, còn về chất lượng search từ Google Custom Search thì không cần phải chê, chủ yếu là website bạn index tốt là được.


Nhưng tích hợp Google Custom Search vào Xenforo như thế nào? Và cách làm nó trở thành trình duyệt mặc định cho diễn đàn ra sao? Bạn chỉ cần làm theo các bước đơn giản sau là nhanh nhất:

1 Đăng ký Google Custom Search

Bạn vào cse.google.com tạo 1 Search Engine của site, lấy code API từ đoạn code mà Google cung cấp, dạng như sau:
<script>
  (function() {
    var cx = 'xxxxxxxxxxxxxxxxxxxxxx:yyyyyyyyyyy';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>
<gcse:search></gcse:search>

2 Đăng nhập admincp Xenforo, tạo template với tên googlesearch

Đặt đoạn code này vào :
<fieldset id="GoogleSearch">
<form action="pages/search" id="cse-search-box" class="formPopup">
 
    <input type="hidden" name="cx" value="xxxxxxxxxxxxxxxxxxxxxx:yyyyyyyyyyy" />
    <input type="hidden" name="ie" value="utf-8" />
<div class="primaryControls">
            <span class="textboxcontainer"><span><input type="search" name="q" id="googlesearchquery" class="textCtrl" /></span></span>
</div>
                </form>
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&amp;lang=en"></script>
</fieldset>

3 Tạo một page mới đặt tên bất kì:

Admin CP -> Applications -> Creat New Page
- Tại ô Url Portion bạn đặt là "search"
- Tại tab HTML Template bạn thêm đoạn code sau:
<div id='cse' style='width: 100%;'>Loading....</div>
<script src='//www.google.com/jsapi' type='text/javascript'></script>
<script type='text/javascript'>
google.load('search', '1', {language: 'en', style: google.loader.themes.SHINY});
google.setOnLoadCallback(function() {
  var customSearchOptions = {};
  var orderByOptions = {};
  orderByOptions['keys'] = [{label: 'Relevance', key: ''} , {label: 'Date', key: 'date'}];
  customSearchOptions['enableOrderBy'] = true;
  customSearchOptions['orderByOptions'] = orderByOptions;
  var customSearchControl =  new google.search.CustomSearchControl('xxxxxxxxxxxxxxxxxxxxxx:yyyyyyyyyyy', customSearchOptions);
  customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
  var options = new google.search.DrawOptions();
  options.enableSearchResultsOnly();
  options.setAutoComplete(true);
  customSearchControl.draw('cse', options);
  function parseParamsFromUrl() {
    var params = {};
    var parts = window.location.search.substr(1).split('&');
    for (var i = 0; i < parts.length; i++) {
      var keyValuePair = parts[i].split('=');
      var key = decodeURIComponent(keyValuePair[0]);
      params[key] = keyValuePair[1] ?
          decodeURIComponent(keyValuePair[1].replace(/\+/g, ' ')) :
          keyValuePair[1];
    }
    return params;
  }
  var urlParams = parseParamsFromUrl();
  var queryParamName = 'q';
  if (urlParams[queryParamName]) {
    customSearchControl.execute(urlParams[queryParamName]);
  }
}, true);
</script>

4 Chèn form search Google vào vị trí bạn muốn hiển thị:

Mở template search_bar  tìm "</xen:hook>" thêm vào bên dưới nó đoạn code sau:
 <xen:include template="googlesearch" />

 5 Thêm đoạn css này vào template Extra.css :

#GoogleSearch{display: block;
 
        position: absolute;
        right: 300px;
        top: -18px;
 
        margin: 0;
 
        background-color: @content.background-color;
        border-radius: 5px;
        padding-top: 5px;
        _padding-top: 3px;
        z-index: 7500;
}

Sau khi lưu lại bạn ra trang chủ và search xem kết quả nhé.

Lưu ý: Bạn nhớ thay thế xxxxxxxxxxxxxxxxxxxxxx:yyyyyyyyyyy thành API bạn có được khi đăng ký Google Custom Search nhé


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


Xem thêm:
- Hướng dẫn tạo biến dùng chung toàn bộ template Xenforo ( Global Template Variable )
- XenTag 2.1 plugin hữu ích cho thành viên & SEO diễn đàn Xenforo
- [8wayRun.Com] XenPorta 1.6.0 - Plugin CMS miễn phí mạnh mẽ cho Xenforo
- Tạo khung đăng ký thành viên dạng popup trong diễn đàn Xenforo
- Hướng dẫn đặt quảng cáo theo từng forum hoặc category trong xenforo
- Video hướng dẫn chi tiết cách viết Addon cho diễn đàn XenForo
- Hướng dẫn tạo quảng cáo sau bài viết đầu tiên cho diễn đàn Xenforo
- Cách ẩn số lượng sản phẩm trong danh mục OpenCart

Thông thường thì bạn chỉ sử dụng 1 code thống kê Google Analytics duy nhất cho website của mình, tuy nhiên trong một số trường hợp bạn phải sử dụng nhiều code Google Analytics khác nhau để thống kê cho từng thuộc tính khác nhau trên website, hoặc bạn muốn thống kê theo từng danh mục chẳng hạn.


Vậy giải pháp là gì? Bạn chỉ cần đặt một thống kê chung cho toàn website, sau đó đặt thống kê cho từng danh mục.

Đầu tiên bạn phải tạo ra nhiều id thuộc tính riêng và lấy id thuộc tính đó để add lên website, id thuộc tính có dạng: UA-123456-1

Sau đó gắng code vào website theo 2 cách sau:

Cách 1:
<script type="text/javascript">
_gaq.push(
  ['_setAccount', 'UA-XXXXX-1'],
  ['_trackPageview'],
  ['a._setAccount', 'UA-XXXXX-2'],
  ['a._trackPageview']
  ['b._setAccount', 'UA-YYYYYY-1'],
  ['b._trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Trong ví dụ trên đã gắn 3 code Analytics khác nhau với 3 id thuộc tính khác nhau là UA-XXXXX-1, UA-XXXXX-2UA-YYYYYY-1

Cách 2:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['a._setAccount', 'UA-XXXXX-2']);
_gaq.push(['a._trackPageview']);
_gaq.push(['b._setAccount', 'UA-YYYYY-1']);
_gaq.push(['b._trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Cả 2 cách trên đều sử dụng code dạng mảng để để chứa id thuộc tính.

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


Xem thêm:
- Hướng dẫn gắn code Google Analytics vào forum Xenforo
- Cách tạo và gắn biểu tượng favicon và favicon động ( dạng gif favicon ) cho website
- Hướng dẫn sử dụng Lazy Load cho website hoặc blog
- Hướng dẫn cách gắn Google Analytics vào Opencart
Trong mã nguồn diễn đàn Xenforo luôn tích hợp sẵn bộ soạn thảo mặc định là WYSIWYG. Vì một lí do nào đó bạn muốn tắt nó đi, chỉ sử dụng form nhập nhiệu "sạch sẽ" như ô comment Facebook vậy, hướng dẫn sau sẽ giúp bạn làm điều đó.


Bạn thực hiện như sau:

Đăng nhập tài khoản admin => Admin CP -> Appearance -> Templates -> editor

Thêm AND false vào WYSIWYG tại những vị trí code trong template editor như sau:

<xen:if is="{$showWysiwyg} AND false">
    <textarea name="{$formCtrlNameHtml}" id="{$editorId}_html"  style="display:none" class="textCtrl  MessageEditor">{$messageHtml}</textarea>
    <noscript><textarea name="{$formCtrlName}"  id="{$editorId}" class="textCtrl  MessageEditor">{$message}</textarea></noscript>
<xen:else />
    <textarea name="{$formCtrlName}" id="{$editorId}" class="textCtrl MessageEditor">{$message}</textarea>
</xen:if>
<input type="hidden" name="_xfRelativeResolver" value="{$requestPaths.fullUri}" />

<xen:if is="{$showWysiwyg} AND false">
    <xen:include template="editor_js_setup" />
</xen:if>

Sau đó bạn lưu lại. Ra tạo bài viết hoặc comment xem khung nhập liệu có gì khác không nhé :D

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

Xem thêm:
- Hướng dẫn tạo biến dùng chung toàn bộ template Xenforo ( Global Template Variable )
- XenTag 2.1 plugin hữu ích cho thành viên & SEO diễn đàn Xenforo
- [8wayRun.Com] XenPorta 1.6.0 - Plugin CMS miễn phí mạnh mẽ cho Xenforo
- Tạo khung đăng ký thành viên dạng popup trong diễn đàn Xenforo
- Hướng dẫn đặt quảng cáo theo từng forum hoặc category trong xenforo
- Video hướng dẫn chi tiết cách viết Addon cho diễn đàn XenForo

Hiện nay add-on Advanced Forum Statistics không còn được hỗ trợ trên các phiên bản Xenforo mới ( 1.4+)  việc fix lỗi add-on để chạy trên Xenforo phiên bản mới sẽ gặp nhiều khó khăn đặc biệt là đối với người dùng không nắm rõ về code Xenforo. Để fix nhanh lỗi này ta chỉ cần thay thế một Add-on khác có chức năng tương tự đó là  Vt.Lai TopX.


Chức năng chính:
+ Thống kê bài mới nhất
+ Phân Tab ra từng chuyên mục tùy ý
+ Có Tab những bài mình vừa reply, những chủ đề mình vừa gửi, những chủ đề mới của diễn đàn
+ Cho phép thay đổi kích thước + ẩn hiện khung bên phải
+ Thay đổi theo style mobile.
+ Cho phép giới hạn 1 số chuyên mục nào đó chỉ có tối đa bao nhiêu bài trên TopX
+ Cho phép không cho chuyên mục/user nào đó lên TopX
+ Các chức năng linh tinh khác các bạn xem trong options

Demo:

click xem hình lớn

Admin:

Click xem hình lớn

Download

Hướng dẫn cài đặt:

Download và giải nén file, upload hết lên các file/thư mục trong thư mục upload lên ngang hàng file index.
AdminCP => Install Add-on -> Import file xml => Xong

Bạn có thể tùy chỉnh add-on trong menu Options => Vt.Lai TopX

Xem thêm:
- Hướng dẫn tạo biến dùng chung toàn bộ template Xenforo ( Global Template Variable )
- XenTag 2.1 plugin hữu ích cho thành viên & SEO diễn đàn Xenforo
- [8wayRun.Com] XenPorta 1.6.0 - Plugin CMS miễn phí mạnh mẽ cho Xenforo
- Tạo khung đăng ký thành viên dạng popup trong diễn đàn Xenforo
- Hướng dẫn đặt quảng cáo theo từng forum hoặc category trong xenforo
- Hướng dẫn tạo quảng cáo sau bài viết đầu tiên cho diễn đàn Xenforo


Diễn đàn Xenforo mặc định không có chức năng đặt quảng cáo theo từng forum hoặc category nhưng vẫn có cách làm đơn giản giúp bạn giải quyết được vấn đề này.


Thực hiện như sau:

1 Đặt quảng cáo theo từng forum (node)

Tạo một template mới đặt tên banner tùy ý, add đoạn code như sau:
<xen:if is="{$forum.node_id} ==50">

 Nội dung bannner

 </xen:if>
Trong đó 50 là id của forum bạn muốn quảng cáo được hiển thị.

Hoặc theo nhiều forum
<xen:if is="{$forum.node_id} ==50 or {$forum.node_id} ==49">

 Nội dung banner

 </xen:if>
 Trong đó 5049 là id của 2 forum bạn muốn đặt quảng cáo, nếu thêm một forum khác bạn sử dụng lại cú pháp trên với or

Hoặc theo nhiều forum bằng array :
<xen:if is="in_array({$forum.node_id}, array(49,50,94,75,73,76,72,71,89,82,77,80,83,85,88))">

Nội dung banner

</xen:if>
Trong đó 49,50,94,75,73,76,72,71,89,82,77,80,83,85,88 là id những forum bạn muốn quảng cáo xuất hiện.

2 Đặt quảng cáo theo từng category:

Tương tự như cách đã làm với forum, ta chỉ cần đổi biến $forum thành $category
ví dụ:
<xen:if is="{$category.node_id} == 50">

Nội dung banner

</xen:if>
Đặt quảng cáo theo nhiều category cũng tương tự như làm với forum, ta chỉ cần đổi biến $forum thành $category

Lưu ý: Đây chỉ là các bước tạo template và add code banner theo forum hoặc category chứ chưa đặt vị trí banner xuất hiện nên sẽ chưa có banner xuất hiện.
Sau khi Lưu code bạn sẽ sử dụng code include banner vào vị trí bạn muốn add trong template của diễn đàn:

<xen:include template="banner_template" />

Trong đó banner_template là tên template bạn đặt trong quá trình tạo banner.

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

Xem thêm:
- XenTag 2.1 plugin hữu ích cho thành viên & SEO diễn đàn Xenforo
- Hướng dẫn tạo khung đăng nhập bằng pop up trên diễn đàn Xenforo
- Tạo khung đăng ký thành viên dạng popup trong diễn đàn Xenforo
- [8wayRun.Com] XenPorta 1.6.0 - Plugin CMS miễn phí mạnh mẽ cho Xenforo 
- Hướng dẫn tạo quảng cáo sau bài viết đầu tiên cho diễn đàn Xenforo


Tinh tế - Xentag là plugin cho phép bạn thêm tag vào các diễn đàn, chủ đề, các trang... sau đó hiển thị chúng trên các trang thẻ, tag theo dạng đám mây. Nó rất hữu ích cho các thành viên & SEO diễn đàn.



Download [Tinhte] XenTag 2.1 tại đây

Bạn có thể cập nhật các bản khác tại đây

Xem thêm:
[8wayRun.Com] XenPorta 1.6.0 - Plugin CMS miễn phí mạnh mẽ cho Xenforo 
Tạo khung đăng ký thành viên dạng popup trong diễn đàn Xenforo 
- Hướng dẫn tạo khung đăng nhập bằng pop up trên diễn đàn Xenforo