38.patch
| b/ajax/search.php | ||
|---|---|---|
| 1 |
<?php |
|
| 2 | ||
| 3 |
require '../include/config.php'; |
|
| 4 | ||
| 5 |
$keyword = isset($_POST['search_keyword']) ? $_POST['search_keyword'] : ''; |
|
| 6 | ||
| 7 |
if ($keyword != '') |
|
| 8 |
{
|
|
| 9 |
$sql = "SELECT * FROM `tags` WHERE |
|
| 10 |
`tag` LIKE '" . mysql_clean($keyword) . "%' AND |
|
| 11 |
`active`='1' |
|
| 12 |
ORDER BY `tag_count` DESC |
|
| 13 |
LIMIT 10"; |
|
| 14 |
$result = mysql_query($sql) or die(mysql_error()); |
|
| 15 |
|
|
| 16 |
if (mysql_num_rows($result) > 0) |
|
| 17 |
{
|
|
| 18 |
while ($tag = mysql_fetch_assoc($result)) |
|
| 19 |
{
|
|
| 20 |
echo $tag['tag'] . "|"; |
|
| 21 |
} |
|
| 22 |
} |
|
| 23 |
} |
|
| b/js/search.js | ||
|---|---|---|
| 1 |
$(document).ready(function() {
|
|
| 2 |
|
|
| 3 |
var searchLabel = $('#search label').remove().text();
|
|
| 4 |
|
|
| 5 |
$('#search_keyword').addClass('placeholder').val(searchLabel).focus(function() {
|
|
| 6 |
if (this.value == searchLabel) {
|
|
| 7 |
$(this).val('');//.removeClass('placeholder')
|
|
| 8 |
}; |
|
| 9 |
}).blur(function() {
|
|
| 10 |
if (this.value == '') {
|
|
| 11 |
$(this).addClass('placeholder').val(searchLabel);
|
|
| 12 |
}; |
|
| 13 |
}); |
|
| 14 |
|
|
| 15 |
$('#search').submit(function() {
|
|
| 16 |
if ($('#search_keyword').val() == searchLabel) {
|
|
| 17 |
$('#search_keyword').val('');
|
|
| 18 |
} |
|
| 19 |
}); |
|
| 20 |
var width = $('#search_keyword').css('width');
|
|
| 21 |
width1 = width.replace('px', '');
|
|
| 22 |
width = width1 - 35 + "px"; |
|
| 23 |
|
|
| 24 |
var textbox_left = $('#search_keyword').offset().left;
|
|
| 25 |
var p_left = $("#search form p").offset().left;
|
|
| 26 |
var diff = textbox_left - p_left; |
|
| 27 |
|
|
| 28 |
var $autocomplete = $('<ul class="autocomplete"></ul>').hide().insertAfter('#search_keyword').css('width', width).css('margin-left', diff + 'px');
|
|
| 29 |
|
|
| 30 |
var selectedItem = null; |
|
| 31 |
var setSelectedItem = function(item) {
|
|
| 32 |
selectedItem = item; |
|
| 33 |
|
|
| 34 |
if (selectedItem === null) {
|
|
| 35 |
$autocomplete.hide(); |
|
| 36 |
return; |
|
| 37 |
} |
|
| 38 |
|
|
| 39 |
if (selectedItem < 0) {
|
|
| 40 |
selectedItem = 0; |
|
| 41 |
} |
|
| 42 |
|
|
| 43 |
if (selectedItem >= $autocomplete.find('li').length - 1) {
|
|
| 44 |
selectedItem = $autocomplete.find('li').length - 1;
|
|
| 45 |
} |
|
| 46 |
|
|
| 47 |
$autocomplete.find('li').removeClass('selected').eq(selectedItem).addClass('selected');
|
|
| 48 |
|
|
| 49 |
$autocomplete.show(); |
|
| 50 |
}; |
|
| 51 |
|
|
| 52 |
var populateSearchField = function() {
|
|
| 53 |
$('#search_keyword').val($autocomplete.find('li').eq(selectedItem).text());
|
|
| 54 |
}; |
|
| 55 |
|
|
| 56 |
var keywords_length; |
|
| 57 |
|
|
| 58 |
$('#search_keyword').attr('autocomplete', 'off').keyup(function(event) {
|
|
| 59 |
if ( (event.keyCode > 40 || event.keyCode == 8) && $('#search_keyword').val() != '') {
|
|
| 60 |
|
|
| 61 |
$.ajax({
|
|
| 62 |
'url': baseurl + '/ajax/search.php', |
|
| 63 |
'data': {'search_keyword': $('#search_keyword').val()},
|
|
| 64 |
'dataType': 'html', |
|
| 65 |
'type': 'POST', |
|
| 66 |
'success': function(data) {
|
|
| 67 |
data = data.split('|');
|
|
| 68 |
keywords_length = data.length; |
|
| 69 |
|
|
| 70 |
if (data.length > 1) {
|
|
| 71 |
$autocomplete.empty(); |
|
| 72 |
$.each(data, function(index, term) {
|
|
| 73 |
if (index != data.length-1) |
|
| 74 |
{
|
|
| 75 |
$('<li></li>').text(term).appendTo($autocomplete).mouseover(function() {
|
|
| 76 |
setSelectedItem(index); |
|
| 77 |
}).click(function(){
|
|
| 78 |
populateSearchField(); |
|
| 79 |
setSelectedItem(null); |
|
| 80 |
}); |
|
| 81 |
} |
|
| 82 |
}); |
|
| 83 | ||
| 84 |
$('<li style="text-align: right;"></li>').appendTo($autocomplete).html('<a class="close-btn" href="javascript:void(0);">close</a>');
|
|
| 85 |
|
|
| 86 |
setSelectedItem(0); |
|
| 87 |
} else {
|
|
| 88 |
|
|
| 89 |
setSelectedItem(null); |
|
| 90 |
} |
|
| 91 |
}, |
|
| 92 |
'error': function(){
|
|
| 93 |
alert('failed');
|
|
| 94 |
} |
|
| 95 |
}); |
|
| 96 |
} |
|
| 97 |
else if (event.keyCode == 38 && selectedItem !== null) {
|
|
| 98 |
|
|
| 99 |
if (selectedItem - 1 < 0) |
|
| 100 |
{
|
|
| 101 |
setSelectedItem(keywords_length - 2); |
|
| 102 |
} |
|
| 103 |
else |
|
| 104 |
{
|
|
| 105 |
setSelectedItem(selectedItem - 1); |
|
| 106 |
} |
|
| 107 |
|
|
| 108 |
populateSearchField(); |
|
| 109 |
event.preventDefault(); |
|
| 110 |
} |
|
| 111 |
else if (event.keyCode == 40 && selectedItem !== null) {
|
|
| 112 |
; |
|
| 113 |
if (selectedItem + 1 <= keywords_length - 2) |
|
| 114 |
{
|
|
| 115 |
setSelectedItem(selectedItem + 1); |
|
| 116 |
} |
|
| 117 |
else |
|
| 118 |
{
|
|
| 119 |
setSelectedItem(0); |
|
| 120 |
} |
|
| 121 |
|
|
| 122 |
populateSearchField(); |
|
| 123 |
event.preventDefault(); |
|
| 124 |
} |
|
| 125 |
else if (event.keyCode == 27 && selectedItem !== null) {
|
|
| 126 |
setSelectedItem(null); |
|
| 127 |
} |
|
| 128 |
}).keypress(function(event) {
|
|
| 129 |
if (event.keyCode == 13 && selectedItem !== null) {
|
|
| 130 |
populateSearchField(); |
|
| 131 |
setSelectedItem(null); |
|
| 132 |
event.preventDefault(); |
|
| 133 |
} |
|
| 134 |
}).blur(function(event) {
|
|
| 135 |
setTimeout(function() {
|
|
| 136 |
setSelectedItem(null); |
|
| 137 |
}, 250); |
|
| 138 |
}); |
|
| 139 |
}); |
|
| 0 |
- |
|
| b/templates/css/style.css | ||
|---|---|---|
| 1240 | 1240 |
margin:0px; |
| 1241 | 1241 |
padding:0px; |
| 1242 | 1242 |
} |
| 1243 | ||
| 1244 |
/* SEARCH FORM - AutoSuggestion*/ |
|
| 1245 |
.autocomplete {
|
|
| 1246 |
list-style: none; |
|
| 1247 |
width: 300px; |
|
| 1248 |
border: 1px solid #5a5c5d; |
|
| 1249 |
border-width: 0 1px 1px 1px; |
|
| 1250 |
margin-top: 0; |
|
| 1251 |
position: absolute; |
|
| 1252 |
text-align: left; |
|
| 1253 |
background-color: #e1e4f2; |
|
| 1254 |
} |
|
| 1255 |
.autocomplete li {
|
|
| 1256 |
margin-left: -40px; |
|
| 1257 |
padding: 2px 4px 2px 4px; |
|
| 1258 |
} |
|
| 1259 |
.placeholder {
|
|
| 1260 |
color: green; |
|
| 1261 |
width: 300px; |
|
| 1262 |
margin: 0; |
|
| 1263 |
} |
|
| 1264 |
.selected {
|
|
| 1265 |
color: #FFFFFF; |
|
| 1266 |
background-color: #3366CC; |
|
| 1267 |
cursor:default; |
|
| 1268 |
} |
|
| 1269 | ||
| 1270 |
a.close-btn {
|
|
| 1271 |
color:#0033CC; |
|
| 1272 |
cursor:pointer; |
|
| 1273 |
text-decoration:underline; |
|
| 1274 |
font-weight: normal; |
|
| 1275 |
} |
|
| 1243 | 1276 |
.clear {
|
| 1244 | 1277 |
clear: both; |
| 1245 | 1278 |
} |
| 1246 |
- |
|
| b/templates/footer.tpl | ||
|---|---|---|
| 34 | 34 |
</script> |
| 35 | 35 |
<script language="JavaScript" type="text/javascript" src="{$base_url}/js/vshare.js"></script>
|
| 36 | 36 |
{$html_extra}
|
| 37 |
<script language="JavaScript" type="text/javascript" src="{$base_url}/js/search.js"></script>
|
|
| 37 |
- |
|
| b/templates/search_box.tpl | ||
|---|---|---|
| 1 | 1 |
<div id="search"> |
| 2 | 2 |
<form method="get" action="{$base_url}/search.php">
|
| 3 | 3 |
<p> |
| 4 |
<input class="text" value="{$smarty.request.search}" name="search" />
|
|
| 4 |
<input class="text" value="{$smarty.request.search}" name="search" id="search_keyword" autocomplete="off" />
|
|
| 5 | 5 |
<select name="type"> |
| 6 | 6 |
{if $smarty.request.type eq "video"}
|
| 7 | 7 |
<option value="video">Search Videos</option> |
| 8 |
- |
|
| b/ajax/search.php | ||
|---|---|---|
| 6 | 6 | |
| 7 | 7 |
if ($keyword != '') |
| 8 | 8 |
{
|
| 9 |
$sql = "SELECT * FROM `tags` WHERE |
|
| 10 |
`tag` LIKE '" . mysql_clean($keyword) . "%' AND |
|
| 11 |
`active`='1' |
|
| 12 |
ORDER BY `tag_count` DESC |
|
| 9 |
$sql = "SELECT video_title FROM `videos` WHERE |
|
| 10 |
`video_title` LIKE '" . mysql_clean($keyword) . "%' AND |
|
| 11 |
`video_active`='1' AND |
|
| 12 |
`video_approve`='1' AND |
|
| 13 |
`video_type`='public' |
|
| 14 |
group by `video_title` |
|
| 15 |
ORDER BY `video_id` DESC |
|
| 13 | 16 |
LIMIT 10"; |
| 14 | 17 |
$result = mysql_query($sql) or die(mysql_error()); |
| 15 | 18 |
|
| 16 | 19 |
if (mysql_num_rows($result) > 0) |
| 17 | 20 |
{
|
| 18 |
while ($tag = mysql_fetch_assoc($result)) |
|
| 21 |
while ($video = mysql_fetch_assoc($result)) |
|
| 19 | 22 |
{
|
| 20 |
echo $tag['tag'] . "|"; |
|
| 23 |
echo $video['video_title'] . "|"; |
|
| 21 | 24 |
} |
| 22 | 25 |
} |
| 23 | 26 |
} |
| 24 |
- |
|