Revize 990
Přidáno uživatelem Michal Kliment před více než 13 roky(ů)
freenetis/branches/search_filters/media/css/style.css | ||
---|---|---|
}
|
||
|
||
.search_result_title {
|
||
}
|
||
|
||
#whisper {
|
||
display: none;
|
||
background-color: white;
|
||
border: 1px solid #CCC;
|
||
width: 224px;
|
||
height: 300px;
|
||
position: absolute;
|
||
top: 120px;
|
||
left: 10px;
|
||
overflow: auto;
|
||
}
|
||
|
||
#whisper a:hover {
|
||
background-color: lightGoldenrodYellow;
|
||
border: 1px solid orange;
|
||
}
|
||
|
||
.whisper_search_result {
|
||
padding: 5px;
|
||
display: block;
|
||
text-decoration: none;
|
||
border: 1px solid #CCC;
|
||
}
|
||
|
||
#search_submit {
|
||
width: 14px;
|
||
}
|
||
|
||
.ajax-loader-big {
|
||
padding-left: 60px;
|
||
padding-top: 80px;
|
||
}
|
||
|
||
.search {
|
||
margin-bottom: 10px;
|
||
}
|
freenetis/branches/search_filters/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'next update' => 'příští aktualizace',
|
||
'nineth-degree certified engineers' => 'Certifikování technici devátého stupně',
|
||
'no' => 'ne',
|
||
'no items found' => 'Nebyly nalezeny žádné položky.',
|
||
'no redirection is possible to set for this ip address' => 'Žádné přesměrování není možné nastavit pro tuto IP adresu.',
|
||
'no sms message has been added' => 'Žádná SMS zpráva nebyla přidána.',
|
||
'no member fee set!' => 'Členský příspěvek nenastaven!',
|
freenetis/branches/search_filters/application/models/search.php | ||
---|---|---|
'model' => 'member'
|
||
),
|
||
array(
|
||
'method' => 'member_id',
|
||
'model' => 'member'
|
||
),
|
||
array(
|
||
'method' => 'member_variable_symbol',
|
||
'model' => 'member'
|
||
),
|
||
array(
|
||
'method' => 'member_comment',
|
||
'model' => 'member'
|
||
),
|
||
... | ... | |
'model' => 'member'
|
||
),
|
||
array(
|
||
'method' => 'member_street',
|
||
'model' => 'member'
|
||
),
|
||
array(
|
||
'method' => 'user_name',
|
||
'model' => 'user',
|
||
),
|
||
array(
|
||
'method' => 'user_surname',
|
||
'method' => 'user_login',
|
||
'model' => 'user',
|
||
),
|
||
array(
|
||
'method' => 'town_names',
|
||
'method' => 'user_contact',
|
||
'model' => 'user',
|
||
),
|
||
array(
|
||
'method' => 'town_name',
|
||
'model' => 'town'
|
||
),
|
||
array(
|
||
'method' => 'device_name',
|
||
'model' => 'device'
|
||
),
|
||
array(
|
||
'method' => 'device_mac',
|
||
'model' => 'device'
|
||
),
|
||
array(
|
||
'method' => 'device_ip_address',
|
||
'model' => 'device'
|
||
),
|
||
array(
|
||
'method' => 'subnet_name',
|
||
'model' => 'subnet'
|
||
),
|
||
array(
|
||
'method' => 'subnet_address',
|
||
'model' => 'subnet'
|
||
)
|
||
);
|
||
|
||
public function member_name ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT m.id, m.name AS value, CONCAT(IFNULL(t.translated_term,e.value),' ',m.name) AS return_value, 'members/show/' AS link FROM members m
|
||
SELECT m.id, m.name AS value,
|
||
CONCAT('ID ',m.id,', ',s.street,' ',ap.street_number,', ',tw.town,IF(tw.quarter IS NOT NULL,CONCAT('-',tw.quarter),'')) AS `desc`,
|
||
CONCAT(IFNULL(t.translated_term,e.value),' ',m.name,IF(mf.id IS NOT NULL,' (".url_lang::lang('texts.I').")','')) AS return_value,
|
||
'members/show/' AS link FROM members m
|
||
JOIN enum_types e ON m.type = e.id
|
||
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = 'cs'
|
||
JOIN address_points ap ON m.address_point_id = ap.id
|
||
JOIN streets s ON ap.street_id = s.id
|
||
JOIN towns tw ON ap.town_id = tw.id
|
||
LEFT JOIN membership_interrupts mi ON m.id = mi.member_id
|
||
LEFT JOIN members_fees mf ON mi.members_fee_id = mf.id AND (mf.activation_date < CURDATE() AND mf.deactivation_date > CURDATE())
|
||
WHERE m.name LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function member_id ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT m.id, m.id AS value,
|
||
CONCAT('ID ',m.id,', ',s.street,' ',ap.street_number,', ',tw.town,IF(tw.quarter IS NOT NULL,CONCAT('-',tw.quarter),'')) AS `desc`,
|
||
CONCAT(IFNULL(t.translated_term,e.value),' ',m.name,IF(mf.id IS NOT NULL,' (".url_lang::lang('texts.I').")','')) AS return_value,
|
||
'members/show/' AS link FROM members m
|
||
JOIN enum_types e ON m.type = e.id
|
||
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = 'cs'
|
||
JOIN address_points ap ON m.address_point_id = ap.id
|
||
JOIN streets s ON ap.street_id = s.id
|
||
JOIN towns tw ON ap.town_id = tw.id
|
||
LEFT JOIN membership_interrupts mi ON m.id = mi.member_id
|
||
LEFT JOIN members_fees mf ON mi.members_fee_id = mf.id AND (mf.activation_date < CURDATE() AND mf.deactivation_date > CURDATE())
|
||
WHERE m.id LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function member_variable_symbol ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT m.id, m.variable_symbol AS value,
|
||
CONCAT('".url_lang::lang('texts.Variable symbol').": ', m.variable_symbol) AS `desc`,
|
||
CONCAT(IFNULL(t.translated_term,e.value),' ',m.name,IF(mf.id IS NOT NULL,' (".url_lang::lang('texts.I').")','')) AS return_value,
|
||
'members/show/' AS link FROM members m
|
||
JOIN enum_types e ON m.type = e.id
|
||
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = 'cs'
|
||
JOIN address_points ap ON m.address_point_id = ap.id
|
||
JOIN streets s ON ap.street_id = s.id
|
||
JOIN towns tw ON ap.town_id = tw.id
|
||
LEFT JOIN membership_interrupts mi ON m.id = mi.member_id
|
||
LEFT JOIN members_fees mf ON mi.members_fee_id = mf.id AND (mf.activation_date < CURDATE() AND mf.deactivation_date > CURDATE())
|
||
WHERE m.variable_symbol LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function member_comment ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT m.id, m.comment AS value, CONCAT(IFNULL(t.translated_term,e.value),' ',m.name) AS return_value, 'members/show/' AS link FROM members m
|
||
SELECT m.id, m.comment AS value,
|
||
CONCAT('".url_lang::lang('texts.Comment').": ',m.comment) AS `desc`,
|
||
CONCAT(IFNULL(t.translated_term,e.value),' ',m.name,IF(mf.id IS NOT NULL,' (".url_lang::lang('texts.I').")','')) AS return_value,
|
||
'members/show/' AS link FROM members m
|
||
JOIN enum_types e ON m.type = e.id
|
||
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = 'cs'
|
||
JOIN address_points ap ON m.address_point_id = ap.id
|
||
JOIN streets s ON ap.street_id = s.id
|
||
JOIN towns tw ON ap.town_id = tw.id
|
||
LEFT JOIN membership_interrupts mi ON m.id = mi.member_id
|
||
LEFT JOIN members_fees mf ON mi.members_fee_id = mf.id AND (mf.activation_date < CURDATE() AND mf.deactivation_date > CURDATE())
|
||
WHERE m.comment LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
... | ... | |
public function member_town ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT m.id, CONCAT(town, ' ',IFNULL(quarter,'')) AS value, CONCAT(IFNULL(t.translated_term,e.value),' ',m.name) AS return_value, 'members/show/' AS link FROM members m
|
||
SELECT m.id,
|
||
CONCAT(town, ' ',IFNULL(quarter,'')) AS value,
|
||
CONCAT('ID ',m.id,', ',s.street,' ',ap.street_number,', ',tw.town,IF(tw.quarter IS NOT NULL,CONCAT('-',tw.quarter),'')) AS `desc`,
|
||
CONCAT(IFNULL(t.translated_term,e.value),' ',m.name,IF(mf.id IS NOT NULL,' (".url_lang::lang('texts.I').")','')) AS return_value,
|
||
'members/show/' AS link FROM members m
|
||
JOIN enum_types e ON m.type = e.id
|
||
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = 'cs'
|
||
JOIN address_points ap ON m.address_point_id = ap.id
|
||
JOIN towns ON ap.town_id = towns.id
|
||
WHERE CONCAT(town, ' ',IFNULL(quarter,'')) LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
JOIN streets s ON ap.street_id = s.id
|
||
JOIN towns tw ON ap.town_id = tw.id
|
||
LEFT JOIN membership_interrupts mi ON m.id = mi.member_id
|
||
LEFT JOIN members_fees mf ON mi.members_fee_id = mf.id AND (mf.activation_date < CURDATE() AND mf.deactivation_date > CURDATE())
|
||
WHERE CONCAT(tw.town, ' ',IFNULL(tw.quarter,'')) LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function member_street ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT m.id,
|
||
CONCAT(s.street, ' ',ap.street_number) AS value,
|
||
CONCAT('ID ',m.id,', ',s.street,' ',ap.street_number,', ',tw.town,IF(tw.quarter IS NOT NULL,CONCAT('-',tw.quarter),'')) AS `desc`,
|
||
CONCAT(IFNULL(t.translated_term,e.value),' ',m.name,IF(mf.id IS NOT NULL,' (".url_lang::lang('texts.I').")','')) AS return_value,
|
||
'members/show/' AS link FROM members m
|
||
JOIN enum_types e ON m.type = e.id
|
||
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = 'cs'
|
||
JOIN address_points ap ON m.address_point_id = ap.id
|
||
JOIN streets s ON ap.street_id = s.id
|
||
JOIN towns tw ON ap.town_id = tw.id
|
||
LEFT JOIN membership_interrupts mi ON m.id = mi.member_id
|
||
LEFT JOIN members_fees mf ON mi.members_fee_id = mf.id AND (mf.activation_date < CURDATE() AND mf.deactivation_date > CURDATE())
|
||
WHERE CONCAT(s.street, ' ',ap.street_number) LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function user_name ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT u.id, u.name AS value, CONCAT('".url_lang::lang('texts.User')." ', u.name, ' ',u.surname) AS return_value, 'users/show/' AS link
|
||
FROM users u WHERE u.name LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
SELECT u.id,
|
||
CONCAT(u.name,' ',u.surname) AS value,
|
||
CONCAT('".url_lang::lang('texts.Username').":',u.login) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.User')." ', u.name, ' ',u.surname) AS return_value, 'users/show/' AS link
|
||
FROM users u WHERE CONCAT(u.name,' ',u.surname) LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function user_login ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT u.id,
|
||
u.login AS value,
|
||
CONCAT('".url_lang::lang('texts.Username').":',u.login) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.User')." ', u.name, ' ',u.surname) AS return_value, 'users/show/' AS link
|
||
FROM users u WHERE u.login LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function user_surname ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT u.id, u.surname AS value, CONCAT('".url_lang::lang('texts.User')." ', u.name, ' ',u.surname) AS return_value, 'users/show/' AS link
|
||
SELECT u.id,
|
||
u.surname AS value,
|
||
CONCAT('".url_lang::lang('texts.Username').":',u.login) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.User')." ', u.name, ' ',u.surname) AS return_value, 'users/show/' AS link
|
||
FROM users u WHERE u.surname LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function town_names ($keyword)
|
||
public function user_contact($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT t.id, CONCAT(t.town, ' ',t.quarter) AS value,
|
||
CONCAT('".url_lang::lang('texts.Town')." ',t.town,IF(t.quarter IS NOT NULL,CONCAT('-',t.quarter),''), ', ".url_lang::lang('texts.ZIP code')." ',t.zip_code) AS return_value,
|
||
SELECT u.id,
|
||
c.value AS value,
|
||
CONCAT(IFNULL(t.translated_term,e.value),': ',c.value) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.User')." ', u.name, ' ',u.surname) AS return_value, 'users/show/' AS link
|
||
FROM users u
|
||
LEFT JOIN users_contacts uc ON u.id = uc.user_id
|
||
LEFT JOIN contacts c ON uc.contact_id = c.id
|
||
LEFT JOIN enum_types e ON c.type = e.id
|
||
LEFT JOIN translations t ON e.value LIKE t.original_term AND t.lang = 'cs'
|
||
WHERE c.value LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function town_name ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT t.id, CONCAT(t.town, ' ',t.quarter) AS value, t.id AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.ZIP code')." ',t.zip_code) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.Town')." ',t.town,IF(t.quarter IS NOT NULL AND t.quarter <> '',CONCAT('-',t.quarter),'')) AS return_value,
|
||
'towns/show/' AS link
|
||
FROM towns t
|
||
WHERE CONCAT(t.town, ' ',t.quarter) LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function device_name ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT d.id,
|
||
d.name AS value,
|
||
CONCAT('".url_lang::lang('texts.User')." ',u.name,' ',u.surname) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.Device')." ', d.name) AS return_value,
|
||
'devices/show/' AS link
|
||
FROM devices d
|
||
JOIN users u ON d.user_id = u.id
|
||
WHERE d.name LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function device_mac ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT d.id,
|
||
ic.mac AS value,
|
||
CONCAT('".url_lang::lang('texts.MAC address').": ', ic.mac) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.Device')." ',d.name) AS return_value,
|
||
'devices/show/' AS link
|
||
FROM devices d
|
||
JOIN ifaces ic ON ic.device_id = d.id
|
||
WHERE ic.mac LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function device_ip_address ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT d.id,
|
||
IFNULL(ip1.ip_address,ip2.ip_address) AS value,
|
||
CONCAT('".url_lang::lang('texts.IP address').": ', IFNULL(ip1.ip_address,ip2.ip_address)) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.Device')." ',d.name) AS return_value,
|
||
'devices/show/' AS link
|
||
FROM devices d
|
||
JOIN ifaces ic ON ic.device_id = d.id
|
||
LEFT JOIN ip_addresses ip1 ON ip1.iface_id = ic.id
|
||
LEFT JOIN vlan_ifaces vi ON vi.iface_id = ic.id
|
||
LEFT JOIN ip_addresses ip2 ON ip2.vlan_iface_id = vi.id
|
||
WHERE ip1.ip_address LIKE '%$keyword%' COLLATE utf8_general_ci OR ip2.ip_address LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function subnet_name ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT s.id,
|
||
s.name AS value,
|
||
CONCAT('".url_lang::lang('texts.Address').": ',s.network_address,'/',32-log2((~inet_aton(s.netmask) & 0xffffffff) + 1)) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.Subnet')." ',s.name) AS return_value,
|
||
'subnets/show/' AS link
|
||
FROM subnets s
|
||
WHERE s.name LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
|
||
public function subnet_address ($keyword)
|
||
{
|
||
return $this->db->query("
|
||
SELECT s.id,
|
||
CONCAT(s.network_address,'/',32-log2((~inet_aton(s.netmask) & 0xffffffff) + 1)) AS value,
|
||
CONCAT('".url_lang::lang('texts.Address').": ',s.network_address,'/',32-log2((~inet_aton(s.netmask) & 0xffffffff) + 1)) AS `desc`,
|
||
CONCAT('".url_lang::lang('texts.Subnet')." ',s.name) AS return_value,
|
||
'subnets/show/' AS link
|
||
FROM subnets s
|
||
WHERE CONCAT(s.network_address,'/',32-log2((~inet_aton(s.netmask) & 0xffffffff) + 1)) LIKE '%$keyword%' COLLATE utf8_general_ci
|
||
");
|
||
}
|
||
}
|
||
|
||
?>
|
freenetis/branches/search_filters/application/controllers/search.php | ||
---|---|---|
|
||
class Search_Controller extends Controller
|
||
{
|
||
private $results = array();
|
||
|
||
public function index()
|
||
{
|
||
url::redirect (url_lang::base().'search/simple/'.$this->input->get('keyword'));
|
||
}
|
||
|
||
public function simple ($keyword = NULL)
|
||
private function search ($keyword = NULL)
|
||
{
|
||
//$profiler = new Profiler();
|
||
|
||
$keywords = explode(" ", $keyword);
|
||
$keywords = explode(" ", trim($keyword));
|
||
|
||
$keys = array();
|
||
|
||
... | ... | |
foreach (Search_Model::$searchs as $search)
|
||
{
|
||
foreach ($keys as $key)
|
||
{
|
||
{
|
||
if (isset($total_counts[$search['model']]))
|
||
$total_counts[$search['model']]++;
|
||
else
|
||
... | ... | |
|
||
foreach ($result as $row)
|
||
{
|
||
$value = url::title($row->value,' ');
|
||
|
||
for ($length = mb_strlen($key); $length > mb_strlen($key)-3; $length--)
|
||
{
|
||
$offset = 0;
|
||
while ($offset + $length < mb_strlen($key))
|
||
{
|
||
$t_key = url::title(mb_substr($key, $offset, $length),' ');
|
||
|
||
echo $t_key;
|
||
|
||
/*$cursor = 0;
|
||
$t_key = url::title(mb_substr($key, $offset, $length),' ');
|
||
while (true)
|
||
{
|
||
$t_value = mb_substr($value, $cursor, mb_strlen($value));
|
||
|
||
$position = strpos ($t_value, $t_key);
|
||
|
||
|
||
|
||
echo $position." ".mb_substr($value, $cursor, mb_strlen($value))."<br />";
|
||
|
||
$cursor = $position;
|
||
}*/
|
||
$offset++;
|
||
}
|
||
}
|
||
|
||
similar_text(url::title($row->value), url::title($key), $percent);
|
||
if (isset($sums[$search['model']][$row->id]))
|
||
if (!isset($sums[$search['model']][$row->id]))
|
||
{
|
||
//$sums[$search['model']][$row->id] += similar_text($row->value, $key);
|
||
$sums[$search['model']][$row->id] += $percent;
|
||
$counts[$search['model']][$row->id]++;
|
||
}
|
||
else
|
||
{
|
||
//$sums[$search['model']][$row->id] = similar_text($row->value, $key);
|
||
$sums[$search['model']][$row->id] = $percent;
|
||
$counts[$search['model']][$row->id] = 1;
|
||
$sums[$search['model']][$row->id] = 0;
|
||
$counts[$search['model']][$row->id] = 0;
|
||
$values[$search['model']][$row->id] = $row;
|
||
}
|
||
$sums[$search['model']][$row->id] += $percent;
|
||
$counts[$search['model']][$row->id]++;
|
||
}
|
||
}
|
||
}
|
||
|
||
//echo "<pre>";
|
||
//print_r ($counts);
|
||
|
||
$result_sums = array();
|
||
$result_counts = array();
|
||
$results = array();
|
||
|
||
foreach ($sums as $model => $model_sums)
|
||
{
|
||
foreach ($model_sums as $id => $sum)
|
||
{
|
||
$result_sums[] = $sum;
|
||
$result_sums[] = $sum / $total_counts[$model];
|
||
$result_counts[] = $counts[$model][$id] / $total_counts[$model];
|
||
$results[] = $values[$model][$id];
|
||
$this->results[] = $values[$model][$id];
|
||
}
|
||
}
|
||
|
||
array_multisort ($result_sums, SORT_DESC, $result_counts, SORT_DESC, $results, SORT_DESC);
|
||
array_multisort ($result_sums, SORT_DESC, $result_counts, SORT_DESC, $this->results, SORT_DESC);
|
||
|
||
/*foreach ($keys as $i => $key)
|
||
$keys[$i] = '/('.trim($key).')/iu';
|
||
|
||
foreach ($results as $x => $result)
|
||
/*foreach ($this->results as $x => $result)
|
||
{
|
||
$results[$x]->return_value = preg_replace($keys, '<b>\1</b>', $result->return_value);
|
||
echo "$result_sums[$x] $result_counts[$x] $result->return_value<br />";
|
||
}*/
|
||
|
||
}
|
||
|
||
public function simple ($keyword)
|
||
{
|
||
$profiler = new Profiler();
|
||
|
||
$this->search($keyword);
|
||
|
||
$view = new View('main');
|
||
$view->title = $keyword;
|
||
$view->content = new View('search');
|
||
$view->content->results = $results;
|
||
$view->content->results = $this->results;
|
||
$view->render(TRUE);
|
||
|
||
//echo $profiler->render(TRUE);
|
||
echo $profiler->render(TRUE);
|
||
}
|
||
|
||
public function ajax ($count = 100)
|
||
{
|
||
$this->search($this->input->get('q'));
|
||
|
||
$counter = 0;
|
||
|
||
foreach ($this->results as $result)
|
||
{
|
||
$counter++;
|
||
?>
|
||
<a href="<?php echo url_lang::base().$result->link.$result->id ?>" class="whisper_search_result">
|
||
<b><?php echo $result->return_value ?></b><br />
|
||
<i><?php echo $result->desc ?></i>
|
||
</a>
|
||
<?php
|
||
if ($counter == $count)
|
||
break;
|
||
}
|
||
|
||
if (!$counter)
|
||
{
|
||
?>
|
||
<div class="whisper_search_result"><?php echo url_lang::lang('texts.No items found.') ?></div>
|
||
<?php
|
||
}
|
||
}
|
||
}
|
||
|
||
?>
|
freenetis/branches/search_filters/application/views/main.php | ||
---|---|---|
if ((history.length == 1 || history.length == 2) && document.referrer == "")
|
||
$.post("<?php echo url_lang::base()?>json/insert_path/");
|
||
|
||
var delay = (function(){
|
||
var timer = 0;
|
||
return function(callback, ms){
|
||
clearTimeout (timer);
|
||
timer = setTimeout(callback, ms);
|
||
};
|
||
})();
|
||
|
||
$("#keyword").keyup(function() {
|
||
delay (function (){
|
||
if ($("#keyword").val().length >=1)
|
||
{
|
||
$("#whisper").html("<img src='<?php echo url::base() ?>media/images/ajax-loader-big.gif' class='ajax-loader-big'>");
|
||
$("#whisper").show ('slow');
|
||
$.get("<?php echo url_lang::base() ?>search/ajax/", { q: $("#keyword").val() }, function (data){
|
||
$("#whisper").html (data);
|
||
});
|
||
}
|
||
else
|
||
$("#whisper").hide ('slow');
|
||
|
||
}, 200);
|
||
});
|
||
|
||
$("#keyword").click(function (){
|
||
$("#keyword").trigger("keyup");
|
||
});
|
||
|
||
$("*").bind ("click", function (e){
|
||
e.stopPropagation();
|
||
if (this.id != 'whisper' && this.id != 'keyword')
|
||
$("#whisper").hide ('slow');
|
||
});
|
||
|
||
$.validator.addMethod('ip_address', function(value) {
|
||
return value.match(/^((25[0-5])|(2[0-4][0-9])|(1[0-9][0-9])|([1-9][0-9])|[0-9])\.((25[0-5])|(2[0-4][0-9])|(1[0-9][0-9])|([1-9][0-9])|[0-9])\.((25[0-5])|(2[0-4][0-9])|(1[0-9][0-9])|([1-9][0-9])|[0-9])\.((25[0-5])|(2[0-4][0-9])|(1[0-9][0-9])|([1-9][0-9])|[0-9])$/);
|
||
}, '<?php echo url_lang::lang('texts.Invalid IP address') ?>');
|
||
... | ... | |
<?php
|
||
if ($this->session->get('user_id'))
|
||
{
|
||
echo form::open(url_lang::base().'search', array('method' => 'get'));
|
||
echo form::open(url_lang::base().'search', array('method' => 'get', 'autocomplete' => 'off', 'class' => 'search'));
|
||
echo form::input('keyword');
|
||
echo form::submit('submit', 'Send');
|
||
echo form::imagebutton('search_submit', url::base().'media/images/icons/search.gif');
|
||
echo form::close();
|
||
?>
|
||
<div id="whisper"></div>
|
||
<?php
|
||
echo new View('menu');
|
||
}
|
||
?>
|
freenetis/branches/search_filters/application/views/search.php | ||
---|---|---|
<?php foreach ($results as $result): ?>
|
||
<div class="search_result">
|
||
<?php echo html::anchor (url_lang::base().$result->link.$result->id, $result->return_value, array('class' => 'search_result_title')) ?>
|
||
<?php echo html::anchor (url_lang::base().$result->link.$result->id, $result->return_value, array('class' => 'search_result_title')) ?><br />
|
||
<i><?php echo $result->desc ?></i>
|
||
</div>
|
||
<?php endforeach ?>
|
Také k dispozici: Unified diff
Dalsi sada zmen ve vetvi vyhledovani a filtrovani.