static function getCityId($city)
 {
     $sql = self::$db->quote(lingua::getKeywords($city));
     $sql = "SELECT city_id\n                FROM city\n                WHERE search={$sql}\n                LIMIT 1";
     $sql = self::$db->query($sql)->fetchAll(PDO::FETCH_NUM);
     return $sql ? $sql[0][0] : 0;
 }
 function compose($o)
 {
     $db = patchworkPath('data/geodb.sqlite3');
     $db = new PDO("sqlite:{$db}");
     $sql = $this->get->q;
     $sql = '*' == $sql ? '' : lingua::getKeywords($sql);
     $sql = substr($db->quote($sql), 1, -1);
     switch ($a = substr($sql, 0, 3)) {
         case 'agi':
         case 'ayi':
             if ('os ' == substr($sql, 3, 3)) {
                 $sql = substr($sql, 5);
                 $sql = "search GLOB 'agios{$sql}*' OR search GLOB 'ayios{$sql}*'";
                 break;
             }
         case 'st ':
             $sql = 'saint ' . substr($sql, 3);
         default:
             $sql = '' === $sql ? 1 : "search GLOB '{$sql}*'";
     }
     $sql = "SELECT city_id, city FROM city WHERE {$sql} ORDER BY rowid";
     $o->cities = new loop_city_($db, $sql, 15);
     return $o;
 }