2Hi.Biz
Trang chủ | TWIG | Xtscript | Templates | Xtgem
Script with Xtscript
Tìm kiếm - Code tìm kiếm file cho xtgem v4 - AiChat.Wap.Sh
Tìm kiếm - Công cụ tìm kiếm file trong thư mục
Đây là một kịch bản khá phức tạp có sử dụng Xtscript và filelist để tạo ra một mảng javascript cho các kết quả tìm kiếm mà sau đó được sắp xếp hiển thị và phân trang bằng cách sử dụng javascript Nó sử dụng "post" như vậy sẽ không có các biến chuỗi truy vấn thêm Trong code tìm kiếm này có tất cả các loại thủ thuật và các loại mã được sử dụng để sáng tạo ra code này, nên cần phải chỉnh sửa nó 1 cách chính xác nếu bạn bất cẩn trong khi chỉnh sửa có thể phá vỡ các script có thể khiến code lỗi và không hoạt động Các danh sách tập tin (filelist) thực tế là không đặt trong xtscript vậy nên sẽ không có hiện tượng timeouts Các từ khóa tìm kiếm phải có 2 hoặc nhiều hơn 2 ký tự Hãy hủy ghi chú 3 dòng trong # Query health check - phủ định và ký tự * trong các truy vấn tìm kiếm Phiên bản này được thiết lập để tìm kiếm 4 thư mục mở rộng nó là khá đơn giản để thêm thư mục thứ 5 ta làm như sau 1 / Chèn thêm một dòng như thế này vào các mẫu # filelist
var $ list5 = xt: folder filelist = "/FOLDER_5" $params
2 / Chèn filelist khác vào mảng
// Results array {_$$ dummy|} entry <{_ $$list5|}>
Hãy sử dụng các tên có ý nghĩa cho các tập tin của bạn, để khi sử dụng chức năng tìm kiếm này sẽ cho ra kết quả tìm kiếm tốt nhất Code này sử dụng javascript để nó sử dụng bộ nhớ trên thiết bị mà bạn sử dụng và lưu trữ toàn bộ mảng của các kết quả
Code ví dụ:
<!--parser:xtscript-->

# Get the search query
get search

# Trim any spaces
var $search = call trim $val=$search

# No search query
if not $search
var $disable_js = //
goto @skip_1
endif

# Search query length check
var $len = call strlen $val=$search
if $len < 2
del $search
var $disable_js = //
print <b>Search query too short min 2 chars</b> <br />
goto @skip_1
endif

# Search query health check
# uncomment the next 3 lines to ban wildcards and negation in the search query
# var $neg = call strpos $haystack=#$search;$needle=-
# var $star = call strpos $haystack=#$search;$needle=*
# var $query = call strpos $haystack=#$search;$needle=?
var $dquot = call strpos $haystack=#$search;$needle="
var $squot = call strpos $haystack=#$search;$needle='
if $star or $query or $dquot or $squot or $neg==1
del $search
var $disable_js = //
print <b>Search query contains invalid chars</b> <br />
goto @skip_1
endif

# Set up the search

# Check for "anywhere"
get anywhere
if $anywhere
var $checked = checked="checked"
var $any = *
endif

# Filelist template that creates a javascript array
var $template = ['.file_name_parsed.','.file_url.','.file_size.','.file_datetime.','.file_mime.','.file_type.'],

# Filelist parameters
var $params = template="$template" filter="$any$search*" per_page="0"

# Filelist patterns
var $list1 = xt:filelist folder="/FOLDER_1" $params
var $list2 = xt:filelist folder="/FOLDER_2" $params
var $list3 = xt:filelist folder="/FOLDER_3" $params
var $list4 = xt:filelist folder="/FOLDER_4" $params

# Dummy array entry to use up the last , in the filelist template
var $dummy = ['dummy']

# skip_1 landing point
@skip_1

# The search form
print {{
<div class="search_form" id="srch">
<form action="<xt:url/>#srch" method="post">
<input type="search" name="search" value="$search" />
<input type="submit" value="Search" /><br />
Anywhere in filename <input type="checkbox" name="anywhere" value="1" $checked />
</form>
</div><br />}}

# The actual filelist functions are created outside the xtscript to avoid timeouts

# Create an array of the filelist arrays
<!--/parser:xtscript-->
<script type="text/javascript">
// Results array
//var list=[<><><><>];
<!--parser:xtscript-->
if $search
# Get page number
get_or_default results_page;0

# Results per page
var $per_page=5

# Create javascript
print {{list.length=list.length-1;
var length=list.length;
if (length){
var total_pages=Math.floor(}}
print {{list.length/$per_page);
var results_page=$results_page;
var search='$search';
var per_page=$per_page}}
print_raw {{;
var offset=(results_page*per_page);
var page_end=(offset + per_page);
if (page_end >= length)page_end=length;
// Output results
list.sort();
document.write('<div class="search_results">');
if (length >= 1)document.write('<div class="results_data">'+(offset+1)+' to '+page_end+' of ');
document.write( length+' Result');
if (length > 1) document.write('s');
document.write(' For &quot;<span> '+search+' </span>&quot;</div>');
for(i=offset;i < page_end;i++){
document.write('\
<div class="search_result">\
<div class="result_name">\
Name <span>'+list[i][0]+'&nbsp;<img src="http://xtgem.com/images/icons/mimes/'+list[i][5]+'.png" alt="*"/></span>\
</div>\
<div class="result_download_link">\
<a target="_BLANK" href="'+list[i][1]+'?__xt_download=1">Download</a> \
<a target="_BLANK" href="'+list[i][1]+'">Open</a>\
</div>\
<div class="result_url">\
Url <input type="text" value="'+list[i][1]+'" />\
</div>\
<div class="result_meta">\
Size <span>'+list[i][2]+'</span> \
Date <span>'+list[i][3]+'</span> \
Type <span>'+list[i][4]+'</span>\
</div>\
</div>');}
}}

# Pagination
var $common_part = document.write('<form style="display:inline" action="<xt:url />#srch" method="post"><input type="hidden" name="search" value="$search" /><input type="hidden" name="anywhere" value="$anywhere" /><input type="hidden" name="results_page" value="'+(results_page
print_raw {{
if (length > per_page){
document.write('<div class="results_pagination">');
if (offset > per_page){}}
print $common_part
print_raw {{-2)+'" /><span><input type="submit" value="'+(results_page-1)+'" /></span></form>');}
if (offset){}}
print $common_part
print_raw {{-1)+'" /><span><input type="submit" value="'+results_page+'" /></span></form>');}
document.write('<form style="display:inline"><span><input type="button" value="'+(results_page+1)+'" /></span></form>');
if (page_end < length){}}
print $common_part
print_raw {{+1)+'" /><span><input type="submit" value="'+(results_page+2)+'" /></span></form>');}
if (page_end < (length-per_page)){}}
print $common_part
print_raw {{+2)+'" /><span><input type="submit" value="'+(results_page+3)+'" /></span></form>');}
document.write('</div>');}
document.write('</div>');}}

# No search results
print } else {document.write('<div class="no_search_results"> No results for &quot;<b>$search</b>&quot
print ;</div>');}

endif
<!--/parser:xtscript-->
</script>
Code đã chạy:

Anywhere in filename