Improved www.ttss.krakow.pl
ced30990541a35ded43912901ba67c9a4b30ed5a..505a3b3b52794365cd5350c41a1d649a371b5210
2017-03-17 Jacek Kowalski
Improve autocomplete results sorting
505a3b diff | tree
2017-03-17 Jacek Kowalski
Set explicit character encoding in each mb_* function invocation
c1a99d diff | tree
2 files modified
14 ■■■■ changed files
stops.php 10 ●●●● patch | view | raw | blame | history
stops/download_stops.php 4 ●●●● patch | view | raw | blame | history
stops.php
@@ -46,18 +46,24 @@
    
    // Build structure for UI
    $stop_list = [];
    $query_lower = mb_strtolower($_GET['query'], 'UTF-8');
    foreach($ids as $id) {
        $stop_list[] = [
            'id' => $id,
            'name' => $stops[$id],
            'type' => 'stop',
            'relevance' => similar_text($_GET['query'], $stops[$id])
            'relevance' => similar_text(
                $query_lower,
                mb_strtolower($stops[$id], 'UTF-8')
            )
        ];
    }
    
    // Sort stops by relevence
    usort($stop_list, function($a, $b) {
        return $b['relevance'] - $a['relevance'];
        $rel = $b['relevance'] - $a['relevance'];
        if($rel == 0) return strcasecmp($a['name'], $b['name']);
        return $rel;
    });
    
    // Return JSON
stops/download_stops.php
@@ -2,7 +2,7 @@
if(php_sapi_name() !== 'cli') die();
$chars = 'aąbcćdeęfghijklłmnńoóprsśtuvwxyzżź0123456789';
$len = mb_strlen($chars);
$len = mb_strlen($chars, 'UTF-8');
$replacements = [
    'Ó' => 'Ó',
@@ -14,7 +14,7 @@
$stops = [];
for($i = 0; $i < $len; $i++) {
    for($j = 0; $j < $len; $j++) {
        $char = mb_substr($chars, $i, 1).mb_substr($chars, $j, 1);
        $char = mb_substr($chars, $i, 1, 'UTF-8').mb_substr($chars, $j, 1, 'UTF-8');
        $json = file_get_contents('http://www.ttss.krakow.pl/internetservice/services/lookup/autocomplete/json?query='.urlencode($char));
        $elements = json_decode($json, 1);
        foreach($elements as $element) {