1. Cảm ơn bạn đã chọn Diễn đàn Tư vấn kế toán 24h. Hãy chung tay cùng chúng tôi xây dựng một cộng động kế toán vững mạnh, cởi mở và mang kiến thức đến cho mọi người!
    HƯỚNG DẪN ĐĂNG KÝ TÀI KHOẢN
    HƯỚNG DẪN TẢI FILE ĐÍNH KÈM
    QUY ĐỊNH KHU VỰC ĐĂNG TIN QUẢNG CÁO

Tích hợp công cụ tìm kiếm Google vào Xenforo

Chủ đề thuộc danh mục '[XENFORO]' được đăng bởi ktvn, 28/9/16.

  1. ktvn

    ktvn Ban quản trị MOD

    Tham gia:
    10/9/16
    Số bài viết:
    733
    Thích đã nhận:
    794
    Đến từ:
    Thủ đô Hà Nội
    Intergrate Google Custom Search into Xenforo's Search Core - Tích hợp công cụ tìm kiếm Google vào Xenforo

    Qua quá trình sử dụng Xenforo, mình thấy rằng công cụ tìm kiếm của nó chưa thực sự chính xác, chính vì thế mà việc tích hợp thêm Google Search bổ sung thêm là 1 việc rất cần thiết, sau đây mình xin hướng dẫn các bạn thực hiện việc này.

    Demo:

    [​IMG]
    Đây là giao diện tìm kiếm mặc định của Xenforo

    [​IMG]
    Còn đây là giao diện Google search được tích hợp song song, ở đây do trang của mình không có Seo nên google không tìm kiếm được :D
    Điều đó có nghĩa là bạn có thể sử dụng cùng 1 lúc 2 cái này bằng việc click qua lại giữa 2 tab.

    OK ta bắt đầu bài hướng dẫn :)

    Đầu tiên các bạn vào trang: [Vui lòng đăng nhập/đăng ký để nhìn thấy link]

    Và sau đó tạo cho mình 1 tài khoản, và tùy chỉnh đơn giản như sau:

    [​IMG]

    [​IMG]
    Sau khi add mới rồi bạn sẽ được cung cấp 1 đoạn code tương tự như sau:

    [​IMG]

    [​IMG]
    Khi đã có được đoạn code rồi thì bây giờ ta bắt đầu tích hợp nó vào forum Xenforo thôi, trước tiên bạn nên vào template search_results và thay thế toàn bộ code trong template này bằng code sau đây:
    Code:
    <xen:if is="{$search.searchConstraints.title_only}">
    <xen:if is="{$search.search_query}">
    <xen:title>{xen:phrase search_results_for_query}: {$search.search_query}</xen:title>
    <xen:h1>{xen:phrase search_results_for_query}: <a href="{xen:link search, $search, 'searchform=1'}"><em>{$search.search_query}</em></a></xen:h1>
    <xen:else />
    <xen:title>{xen:phrase search_results}</xen:title>
    </xen:if>
     
    <xen:navigation>
    <xen:breadcrumb href="{xen:link full:search}">{xen:phrase search}</xen:breadcrumb>
    </xen:navigation>
     
    <xen:container var="$head.robots">
    <meta name="robots" content="noindex" /></xen:container>
     
    <xen:require css="search_results.css" />
     
    <xen:if is="{$search.searchWarnings}">
    <ol class="searchWarnings">
    <xen:foreach loop="$search.searchWarnings" value="$warning">
    <li>{$warning}</li>
    </xen:foreach>
    </ol>
    </xen:if>
     
    <xen:if is="{$search.users}">
    <xen:sidebar>
    <div class="section userResults avatarList">
    <div class="secondaryContent">
    <h3>{xen:phrase matched_users}</h3>
    <ul>
    <xen:foreach loop="$search.users" value="$user">
    <li class="userResult">
    <xen:avatar user="$user" size="s" img="true" />
    <xen:username user="$user" rich="true" />
    <div class="userTitle">{xen:helper userTitle, $user}</div>
    </li>
    </xen:foreach>
    </ul>
    </div>
    </div>
    </xen:sidebar>
    </xen:if>
     
    <div class="pageNavLinkGroup">
    <div class="linkGroup">
    <a href="{xen:link search, $search, 'searchform=1'}">{xen:phrase search_again}</a>
    </div>
     
    <xen:pagenav link="search" linkdata="{$search}" page="{$page}" perpage="{$perPage}" total="{$totalResults}" />
    </div>
     
    <div class="section sectionMain searchResults">
    <form action="" method="post">
     
    <ol class="searchResultsList">
    <xen:foreach loop="$results" value="$result" i="$i">
    {xen:raw $result}
    </xen:foreach>
    </ol>
     
    <xen:if is="{$userSearchMaxDate}">
    <div class="secondaryContent olderMessages">
    <a href="{xen:link search/member, '', 'user_id={$search.searchConstraints.user_id}', 'before={$userSearchMaxDate}'}">{xen:phrase find_older_messages}</a>
    </div>
    </xen:if>
     
    <div class="sectionFooter searchResultSummary">
    <span class="resultCount">{xen:phrase showing_results_x_to_y_of_z, 'start={xen:number $resultStartOffset}', 'end={xen:number $resultEndOffset}', 'total={xen:number $totalResults}'}</span>
    <xen:if is="{$nextPage}"><a href="{xen:link search, $search, 'page={$nextPage}'}" class="nextLink">{xen:phrase next} &gt;</a></xen:if>
    </div>
     
    </form>
    </div>
     
    <div class="pageNavLinkGroup">
    <div class="linkGroup">
    <xen:if is="{$ignoredNames}">
    <a href="javascript:" class="muted jsOnly DisplayIgnoredContent Tooltip" title="{xen:phrase show_hidden_content_by_x, "names={xen:helper implode, $ignoredNames, ', '}"}">{xen:phrase show_ignored_content}</a>
    </xen:if>
    <a href="{xen:link search, $search, 'searchform=1'}">{xen:phrase search_again}</a>
    </div>
     
    <xen:pagenav link="search" linkdata="{$search}" page="{$page}" perpage="{$perPage}" total="{$totalResults}" />
    </div>
    <xen:else />
    <xen:if is="{$page} > 1">
    <xen:if is="{$search.search_query}">
    <xen:title>{xen:phrase search_results_for_query}: {$search.search_query}</xen:title>
    <xen:h1>{xen:phrase search_results_for_query}: <a href="{xen:link search, $search, 'searchform=1'}"><em>{$search.search_query}</em></a></xen:h1>
    <xen:else />
    <xen:title>{xen:phrase search_results}</xen:title>
    </xen:if>
     
    <xen:navigation>
    <xen:breadcrumb href="{xen:link full:search}">{xen:phrase search}</xen:breadcrumb>
    </xen:navigation>
     
    <xen:container var="$head.robots">
    <meta name="robots" content="noindex" /></xen:container>
     
    <xen:require css="search_results.css" />
     
    <xen:if is="{$search.searchWarnings}">
    <ol class="searchWarnings">
    <xen:foreach loop="$search.searchWarnings" value="$warning">
    <li>{$warning}</li>
    </xen:foreach>
    </ol>
    </xen:if>
     
    <xen:if is="{$search.users}">
    <xen:sidebar>
    <div class="section userResults avatarList">
    <div class="secondaryContent">
    <h3>{xen:phrase matched_users}</h3>
    <ul>
    <xen:foreach loop="$search.users" value="$user">
    <li class="userResult">
    <xen:avatar user="$user" size="s" img="true" />
    <xen:username user="$user" rich="true" />
    <div class="userTitle">{xen:helper userTitle, $user}</div>
    </li>
    </xen:foreach>
    </ul>
    </div>
    </div>
    </xen:sidebar>
    </xen:if>
     
    <div class="pageNavLinkGroup">
    <div class="linkGroup">
    <a href="{xen:link search, $search, 'searchform=1'}">{xen:phrase search_again}</a>
    </div>
     
    <xen:pagenav link="search" linkdata="{$search}" page="{$page}" perpage="{$perPage}" total="{$totalResults}" />
    </div>
     
    <div class="section sectionMain searchResults">
    <form action="" method="post">
     
    <ol class="searchResultsList">
    <xen:foreach loop="$results" value="$result" i="$i">
    {xen:raw $result}
    </xen:foreach>
    </ol>
     
    <xen:if is="{$userSearchMaxDate}">
    <div class="secondaryContent olderMessages">
    <a href="{xen:link search/member, '', 'user_id={$search.searchConstraints.user_id}', 'before={$userSearchMaxDate}'}">{xen:phrase find_older_messages}</a>
    </div>
    </xen:if>
     
    <div class="sectionFooter searchResultSummary">
    <span class="resultCount">{xen:phrase showing_results_x_to_y_of_z, 'start={xen:number $resultStartOffset}', 'end={xen:number $resultEndOffset}', 'total={xen:number $totalResults}'}</span>
    <xen:if is="{$nextPage}"><a href="{xen:link search, $search, 'page={$nextPage}'}" class="nextLink">{xen:phrase next} &gt;</a></xen:if>
    </div>
     
    </form>
    </div>
     
    <div class="pageNavLinkGroup">
    <div class="linkGroup">
    <xen:if is="{$ignoredNames}">
    <a href="javascript:" class="muted jsOnly DisplayIgnoredContent Tooltip" title="{xen:phrase show_hidden_content_by_x, "names={xen:helper implode, $ignoredNames, ', '}"}">{xen:phrase show_ignored_content}</a>
    </xen:if>
    <a href="{xen:link search, $search, 'searchform=1'}">{xen:phrase search_again}</a>
    </div>
     
    <xen:pagenav link="search" linkdata="{$search}" page="{$page}" perpage="{$perPage}" total="{$totalResults}" />
    </div>
    <xen:else />
    <xen:if is="{$search.search_query}">
    <xen:title>{xen:phrase search_results_for_query}: {$search.search_query}</xen:title>
    <xen:h1>{xen:phrase search_results_for_query}: <a href="{xen:link search, $search, 'searchform=1'}"><em>{$search.search_query}</em></a></xen:h1>
    <xen:else />
    <xen:title>{xen:phrase search_results}</xen:title>
    </xen:if>
     
    <ul class="tabs Tabs" data-panes="#damme_GoogleCustomSearch_Panes > li">
    <li><a href="{xen:link search, $search}#gcs">Kết quả tìm kiếm từ Google</a></li>
    <li><a href="{xen:link search, $search}#xf">Kết quả tìm kiếm từ địa phương</a></li>
    </ul>
     
    <br/>
    <ul id="damme_GoogleCustomSearch_Panes">
    <li id="gcs">
    <div id="cse" style="padding: 10px; margin: 10px auto; border: 1px solid #a5cae4; border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; -khtml-border-radius: 10px;">Đang tải kết quả tìm kiếm từ Google ...</div>
    <script src="http://www.google.com/jsapi" type="text/javascript"></script>
    <script type="text/javascript">
    google.load('search', '1', {language : ''});
    google.setOnLoadCallback(function() {
    var customSearchOptions = {};
     
    var customSearchControl = new google.search.CustomSearchControl(
    '000849346682857787222:uabwx9ekxb0',
    customSearchOptions
    );
    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
     
    var options = new google.search.DrawOptions();
    options.enableSearchResultsOnly();
     
    customSearchControl.draw('cse', options);
    customSearchControl.execute('{$search.search_query}');
    }, true);
    </script>
    </li>
    <li id="xf">
    <xen:navigation>
    <xen:breadcrumb href="{xen:link full:search}">{xen:phrase search}</xen:breadcrumb>
    </xen:navigation>
     
    <xen:container var="$head.robots">
    <meta name="robots" content="noindex" /></xen:container>
     
    <xen:require css="search_results.css" />
     
    <xen:if is="{$search.searchWarnings}">
    <ol class="searchWarnings">
    <xen:foreach loop="$search.searchWarnings" value="$warning">
    <li>{$warning}</li>
    </xen:foreach>
    </ol>
    </xen:if>
     
    <xen:if is="{$search.users}">
    <xen:sidebar>
    <div class="section userResults avatarList">
    <div class="secondaryContent">
    <h3>{xen:phrase matched_users}</h3>
    <ul>
    <xen:foreach loop="$search.users" value="$user">
    <li class="userResult">
    <xen:avatar user="$user" size="s" img="true" />
    <xen:username user="$user" rich="true" />
    <div class="userTitle">{xen:helper userTitle, $user}</div>
    </li>
    </xen:foreach>
    </ul>
    </div>
    </div>
    </xen:sidebar>
    </xen:if>
     
    <div class="pageNavLinkGroup">
    <div class="linkGroup">
    <a href="{xen:link search, $search, 'searchform=1'}">{xen:phrase search_again}</a>
    </div>
     
    <xen:pagenav link="search" linkdata="{$search}" page="{$page}" perpage="{$perPage}" total="{$totalResults}" />
    </div>
     
    <div class="section sectionMain searchResults">
    <form action="" method="post">
     
    <ol class="searchResultsList">
    <xen:foreach loop="$results" value="$result" i="$i">
    {xen:raw $result}
    </xen:foreach>
    </ol>
     
    <xen:if is="{$userSearchMaxDate}">
    <div class="secondaryContent olderMessages">
    <a href="{xen:link search/member, '', 'user_id={$search.searchConstraints.user_id}', 'before={$userSearchMaxDate}'}">{xen:phrase find_older_messages}</a>
    </div>
    </xen:if>
     
    <div class="sectionFooter searchResultSummary">
    <span class="resultCount">{xen:phrase showing_results_x_to_y_of_z, 'start={xen:number $resultStartOffset}', 'end={xen:number $resultEndOffset}', 'total={xen:number $totalResults}'}</span>
    <xen:if is="{$nextPage}"><a href="{xen:link search, $search, 'page={$nextPage}'}" class="nextLink">{xen:phrase next} &gt;</a></xen:if>
    </div>
     
    </form>
    </div>
     
    <div class="pageNavLinkGroup">
    <div class="linkGroup">
    <xen:if is="{$ignoredNames}">
    <a href="javascript:" class="muted jsOnly DisplayIgnoredContent Tooltip" title="{xen:phrase show_hidden_content_by_x, "names={xen:helper implode, $ignoredNames, ', '}"}">{xen:phrase show_ignored_content}</a>
    </xen:if>
    <a href="{xen:link search, $search, 'searchform=1'}">{xen:phrase search_again}</a>
    </div>
     
    <xen:pagenav link="search" linkdata="{$search}" page="{$page}" perpage="{$perPage}" total="{$totalResults}" />
    </div>
    </li>
    </ul>
    </xen:if>
    </xen:if>
    Các bạn chú ý đoạn này nha:
    Code:
    var customSearchControl = new google.search.CustomSearchControl(
    '000849346682857787222:uabwx9ekxb0',
    customSearchOptions
    );
    Thay cái ID 000849346682857787222:uabwx9ekxb0 bằng ID của bạn do Google cung cấp! Thế là xong rồi đó.

    Mà cái này có 1 điều tuyệt vời nữa là giúp bạn có thể kiếm thêm tiền từ Google Adsense, vì nó có tích hợp quảng cáo trong cái khung Search này nữa.

    [​IMG]
    Chúc các bạn thành công!


    Nguồn: vietdesigner.net​
     
    Tags:
  2. muazuicom22

    muazuicom22 MEMBER

    Tham gia:
    20/10/17
    Số bài viết:
    104
    Thích đã nhận:
    0
    Đến từ:
    TP HCM
    Dây nịt hàng da cao cấp chỉ từ 135k, 150k, 180k ... thiendialong.com/day-nit

    Bóp ví nam nữ cao cấp chỉ từ 99k: thiendialong.com/bop-vi



    -----------
    Công Ty TNHH MTV BDS Và Giao Dịch TM - Tạp Chí Thế Giới
    Hotline: 08.62575288
    Email: thiendialong2015@gmail.com
    Add: 158/38/26 Phạm Văn Chiêu, P9, Gò Vấp, Tp.HCM
    Website: thiendialong.com
     
  3. muazuicom22

    muazuicom22 MEMBER

    Tham gia:
    20/10/17
    Số bài viết:
    104
    Thích đã nhận:
    0
    Đến từ:
    TP HCM
    0934 150 770 Zalo - 0978 106 552 Zalo - ThietKeWebChuyen. Com

    Thiết kế logo đẹp cho web - công ty - thương hiệu - dịch vụ chỉ từ 300k theo yêu cầu tại tphcm/ toàn quốc, giá rẻ nhưng uy tín chất lượng chuyên nghiệp

    QUY TRÌNH LÀM VIỆC
    1 Gửi yêu cầu cho chúng tôi qua email hohoanganh20588@gmail.com, zalo/viber 0934 150 770 ( hoặc call trực tiếp hotline ). Nội dung yêu cầu là 7 mục ở THÔNG TIN BẠN CẦN CUNG CẤP ngay bên dưới
    2 Thanh toán 300k vào tài khoản bên dưới
    3 Thiết kế + bàn giao ( thường sau 2-3 ngày ), chỉnh sửa hoặc demo 3 lần
    Giá logo từ 300,000 đ

    THÔNG TIN BẠN CẦN CUNG CẤP
    1/ Tên đơn vị ( thương hiệu của bạn )
    2/ Lĩnh vực kinh doanh
    3/ Slogan của bạn
    4/ Logo bạn muốn trình bày gì ? ( chỉ trình bày ảnh, chỉ trình bày chữ, trình bày cả ảnh và chữ, có địa chỉ hay hotline kèm không ? ... )
    5/ Màu sắc logo là gì ?
    6/ Ý tưởng logo của bạn
    7/ Bạn muốn chúng tôi tham khảo thêm logo, hình ảnh nào, hoặc vẽ lại hình ảnh này ? gửi kèm hình tham khảo ( quan trọng ).

    HỖ TRỢ NHANH:
    0934 150 770 Zalo - 0978 106 552 Zalo

    facebook.com/hohoanganh20588

    hohoanganh20588@gmail.com

    Website: ThietKeWebChuyen. Com

    CHUYỂN KHOẢN
    ( Nội dung chuyển khoản ghi “số điện thoại + nội dung thanh toán” )
    Agribank -chi nhánh sài gòn
    Chủ tk : Hồ Hoàng Anh
    Số tk : 1600.205.230.224

    DongABank - Chi nhánh Tp.HCM
    Chủ tk : Hồ Hòang Anh
    Số tk : 010.956.4403

    Vietcombank - Chi Nhánh Tp.HCM
    Chủ tk: Hồ Hòang Anh
    Số tk: 007.1000.957.266
     

Ủng hộ diễn đàn

Đang tải...