Hướng dẫn tích hợp tìm kiếm bằng Google cho Xenforo

Thảo luận trong 'Tips and Guides' bắt đầu bởi PVS, 24/04/2015.

  1. PVS

    PVS Cộng Sự Đặc Biệt Thành viên BQT

    Tham gia:
    28/02/2015
    Bài viết:
    10,686
    Đã được thích:
    6,565
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nơi ở:
    Huế
    Web:
    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:

    2.png
    Đây là giao diện tìm kiếm mặc định của Xenforo

    1.png
    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: https://cse.google.com.vn/cse/

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

    3.png

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

    5.png

    6.png
    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:

    Mã:
    <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:
    Mã:
    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.

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


    Nguồn: vietdesigner.net​
     
    Bài viết mới
    Fix giao diện mobile
    Fix giao diện mobile bởi evolution123, 18/08/2019 lúc 06:46:02
    Giúp thu gọn foooter
    Giúp thu gọn foooter bởi hatbuimo123, 17/08/2019 lúc 09:11:09
    tpoclub, nobita8x and THB like this.
  2. Jindo_Katori

    Jindo_Katori Thượng Đế

    Tham gia:
    01/03/2015
    Bài viết:
    1,458
    Đã được thích:
    1,111
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nghề nghiệp:
    http://tuyhoaplus.com
    Nơi ở:
    http://tuyhoaplus.com
    Web:
    Đúng là cái tìm kiếm mặc định của xen hơi tào lao bí đao...
    Mà có phải thêm google search sẽ tăng seo ko nhỉ?
     
    THB thích bài này.
  3. PVS

    PVS Cộng Sự Đặc Biệt Thành viên BQT

    Tham gia:
    28/02/2015
    Bài viết:
    10,686
    Đã được thích:
    6,565
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nơi ở:
    Huế
    Web:
    cái này hên xui :))
     
    Jindo_Katori and THB like this.
  4. minhdat

    minhdat Thượng Đế

    Tham gia:
    18/11/2015
    Bài viết:
    153
    Đã được thích:
    91
    Điểm thành tích:
    28
    Giới tính:
    Nam
    nó có giúp cho SEO không mấy bác :?
     
    THB thích bài này.
  5. THB

    THB Admin - Founder Thành viên BQT

    Tham gia:
    25/02/2015
    Bài viết:
    6,330
    Đã được thích:
    3,534
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nghề nghiệp:
    CEO
    Nơi ở:
    Bình Dương
    Web:
    Jindo_Katori and minhdat like this.
  6. Jindo_Katori

    Jindo_Katori Thượng Đế

    Tham gia:
    01/03/2015
    Bài viết:
    1,458
    Đã được thích:
    1,111
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nghề nghiệp:
    http://tuyhoaplus.com
    Nơi ở:
    http://tuyhoaplus.com
    Web:
    THB thích bài này.
  7. Ha Trang2

    Ha Trang2 Thượng Đế

    Tham gia:
    13/02/2016
    Bài viết:
    3
    Đã được thích:
    2
    Điểm thành tích:
    3
    Giới tính:
    Nữ
    Nơi ở:
    Ha Noi
    Đã làm thấy ngon nhưng nó không tìm trong resources thế mới lạ? Có cách nào khắc phục không các bác? Thanks!
     
    THB thích bài này.
  8. minhdat

    minhdat Thượng Đế

    Tham gia:
    18/11/2015
    Bài viết:
    153
    Đã được thích:
    91
    Điểm thành tích:
    28
    Giới tính:
    Nam
    co1cach1 nào dùng nó cho tim2 kiếm mặc định luôn không bạn
     
    THB thích bài này.
  9. nobita8x

    nobita8x Thượng Đế

    Tham gia:
    29/06/2016
    Bài viết:
    128
    Đã được thích:
    65
    Điểm thành tích:
    28
    Nghề nghiệp:
    http://travelmapvn.net/
    Nơi ở:
    http://travelmapvn.net/
    Web:
    Ủa sao em làm rồi ko hiện ra gì nhỉ ?Có cần chỉnh trong navibar nữa ko ?
     
  10. phungprotv

    phungprotv Thượng Đế

    Tham gia:
    16/07/2016
    Bài viết:
    59
    Đã được thích:
    24
    Điểm thành tích:
    8
    Giới tính:
    Nam
    thế cái code n cho mình chèn vào đâu vậy ad? adud.png
     
  11. PVS

    PVS Cộng Sự Đặc Biệt Thành viên BQT

    Tham gia:
    28/02/2015
    Bài viết:
    10,686
    Đã được thích:
    6,565
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nơi ở:
    Huế
    Web:
    bạn đọc kỹ bài viết nha @@, có ghi rõ rồi mà
     
  12. phungprotv

    phungprotv Thượng Đế

    Tham gia:
    16/07/2016
    Bài viết:
    59
    Đã được thích:
    24
    Điểm thành tích:
    8
    Giới tính:
    Nam
    đc r ak,hi,h e đang cài cái seo mà lúc cái thêm addon meta tag by xencode thì bị lỗi,bác xem hộ e với aduadu.png
     
  13. PVS

    PVS Cộng Sự Đặc Biệt Thành viên BQT

    Tham gia:
    28/02/2015
    Bài viết:
    10,686
    Đã được thích:
    6,565
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nơi ở:
    Huế
    Web:
    có lẽ do nó xung đột với tag mặc định của xenforo rồi bạn
     
  14. phungprotv

    phungprotv Thượng Đế

    Tham gia:
    16/07/2016
    Bài viết:
    59
    Đã được thích:
    24
    Điểm thành tích:
    8
    Giới tính:
    Nam
    vậy có cách khắc phục k ạ
     
  15. nobita8x

    nobita8x Thượng Đế

    Tham gia:
    29/06/2016
    Bài viết:
    128
    Đã được thích:
    65
    Điểm thành tích:
    28
    Nghề nghiệp:
    http://travelmapvn.net/
    Nơi ở:
    http://travelmapvn.net/
    Web:
    Em đang bó tay cái tag đó, xóa cái xentag 2.x đi vì nó xung đột vs mấy cái addon còn lại, h click vào tag trong bài viết nó ko ra link, toàn báo looi~, khổ thế -((((
     
    THB thích bài này.
  16. THB

    THB Admin - Founder Thành viên BQT

    Tham gia:
    25/02/2015
    Bài viết:
    6,330
    Đã được thích:
    3,534
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nghề nghiệp:
    CEO
    Nơi ở:
    Bình Dương
    Web:
    nếu dùng xen 1.5.0 thì sẽ bị đụng với tinhte tags. cho nên xen 1.5.0 trở lên, ko nên cài tt tags. và dùng tags tiếng việt ko dấu sẽ ok hơn.
     
  17. nobita8x

    nobita8x Thượng Đế

    Tham gia:
    29/06/2016
    Bài viết:
    128
    Đã được thích:
    65
    Điểm thành tích:
    28
    Nghề nghiệp:
    http://travelmapvn.net/
    Nơi ở:
    http://travelmapvn.net/
    Web:
    THB thích bài này.
  18. THB

    THB Admin - Founder Thành viên BQT

    Tham gia:
    25/02/2015
    Bài viết:
    6,330
    Đã được thích:
    3,534
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Nghề nghiệp:
    CEO
    Nơi ở:
    Bình Dương
    Web:
    thấy bác tags có dấu mà?
     
  19. nobita8x

    nobita8x Thượng Đế

    Tham gia:
    29/06/2016
    Bài viết:
    128
    Đã được thích:
    65
    Điểm thành tích:
    28
    Nghề nghiệp:
    http://travelmapvn.net/
    Nơi ở:
    http://travelmapvn.net/
    Web:
    Em tag cả có dẫu lẫn không dấu đều lỗi ko ra link hết =.=
     
  20. nobita8x

    nobita8x Thượng Đế

    Tham gia:
    29/06/2016
    Bài viết:
    128
    Đã được thích:
    65
    Điểm thành tích:
    28
    Nghề nghiệp:
    http://travelmapvn.net/
    Nơi ở:
    http://travelmapvn.net/
    Web:
    THB thích bài này.

Chia sẻ trang này