diff --git a/application/controllers/Api.php b/application/controllers/Api.php
index 595f38dd..bf6d3a3c 100644
--- a/application/controllers/Api.php
+++ b/application/controllers/Api.php
@@ -151,262 +151,8 @@ class API extends CI_Controller {
}
}
- // FUNCTION: search()
- // Handle search requests
- /*
- Okay, so here's how it works in a nutshell...
- *******************************************************************
- Because this is effectively just a filter between the query string
- and a MySQL statement, if done wrong we're just asking for pain.
-
- DO NOT alter any of the filtering statements without fully
- understanding what you're doing. CodeIgniter provides some
- protection against unwanted characters in the query string, but
- this should in no way be relied upon for safety.
- *******************************************************************
-
- Example query:-
- .../search/query[Call~M0*(and)(Locator~I*(or)Locator~J*)]/limit[10]/fields[distinct(Call),Locator]/order[Call(asc)]
-
- There's four parts to this query, separated with forward slashes. It's effectively a heavily-sanitised
- MySQL query, hence the hideous search and replace code blocks below.
-
- FIELDS
- ------
- Straightforward - input is sanitised and passed on - in the example, this ends up as "DISTINCT (Call),Locator",
- which is then the first argument to 'SELECT'
-
- QUERY
- -----
- This forms the 'WHERE' clause.
-
- * '(and)' and '(or)' are expanded out to ' AND ' and ' OR '
- * Parentheses are preserved
- * '~' is expanded out to ' LIKE '
- * '*' is translated to '%'
- * Values are encapsulated in quote marks
-
- So in the example, this translates to "WHERE Call LIKE 'M0%' AND (Locator LIKE 'I%' OR Locator LIKE 'J%')"
-
- ORDER
- -----
- Sanitised, so our example ends up as "ORDER BY Call ASC".
-
- LIMIT
- -----
- Straightforward - what's between the square brackets is passed as an argument to 'LIMIT'
-
- Finally, once this has been done, each field name is translated to the MySQL column name.
- */
- function search()
- {
- // Load the API and Logbook models
- $this->load->model('api_model');
- $this->load->model('logbook_model');
- $this->load->model('user_model');
-
- $arguments = $this->_retrieve();
- print_r($arguments);
- return;
-
- if((!$this->user_model->authorize(3)) && ($this->api_model->authorize($arguments['key']) == 0)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
- }
-
- $this->api_model->update_last_used($obj['key']);
-
- // Retrieve the arguments from the query string
- $data['data']['format'] = $arguments['format'];
-
- // Call the parser within the API model to build the query
- $query = $this->api_model->select_parse($arguments);
-
- // Execute the query, and retrieve the results
- $s = $this->logbook_model->api_search_query($query);
- $a = 0;
-
- // Print query results using original column names and exit
- if ($arguments['format'] == 'original'){
- $results = array();
- foreach($s['results']->result() as $row){
- //print_r($row);
- array_push($results, $row);
- }
-
- print json_encode($results);
- return;
- }
-
- if(isset($s['results'])) {
- $results = $s['results'];
-
- // Cycle through the results, and translate between MySQL column names
- // and more friendly, descriptive names
- if($results->num_rows() != 0)
- {
- foreach ($results->result() as $row) {
- $record = (array)$row;
- $r[$a]['rid'] = $a;
- while (list($key, $val) = each($record)) {
- $r[$a][$this->api_model->name($key)] = $val;
- }
- $a++;
- }
- // Add the result record to the main results array
- $data['data']['search_Result']['results'] = $r;
- }
- else
- {
- // We've got no results, so make this empty for completeness
- $data['data']['search_Result']['results'] = "";
- }
- } else {
- $data['data']['error'] = $s['error'];
- $data['data']['search_Result']['results'] = "";
- }
-
- // Add some debugging information to the XML output
- $data['data']['queryInfo']['call'] = "search";
- $data['data']['queryInfo']['dbQuery'] = $s['query'];
- $data['data']['queryInfo']['numResults'] = $a;
- $data['data']['queryInfo']['executionTime'] = $s['time'];
-
- // Load the XML output view
- $this->load->view('api/index', $data);
- }
-
- /*
- * version of search that is callable internally
- * $arguments is an array of columns to query
- */
- function api_search($arguments){
- // Load the API and Logbook models
- $this->load->model('api_model');
- $this->load->model('logbook_model');
- $this->load->model('user_model');
-
- if((!$this->user_model->authorize(3)) && ($this->api_model->authorize($arguments['key']) == 0)) {
- $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard');
- }
-
- $this->api_model->update_last_used($obj['key']);
-
- // Retrieve the arguments from the query string
- $data['data']['format'] = $arguments['format'];
-
- // Call the parser within the API model to build the query
- $query = $this->api_model->select_parse($arguments);
-
- // Execute the query, and retrieve the results
- $s = $this->logbook_model->api_search_query($query);
- return $s;
- }
-
- function validate()
- {
- // Load the API and Logbook models
- $this->load->model('api_model');
- $this->load->model('logbook_model');
-
- // Retrieve the arguments from the query string
- $arguments = $this->_retrieve();
-
- // Add some debugging information to the XML output
- $data['data'] = $arguments;
- $data['data']['queryInfo']['call'] = "validate";
- $data['data']['queryInfo']['dbQuery'] = "";
- $data['data']['queryInfo']['numResults'] = 1;
- $data['data']['queryInfo']['executionTime'] = 0;
-
- $data['data']['validate_Result']['results'] = array(0 => array('Result' => $this->api_model->authorize($arguments['key'])));
-
- $this->load->view('api/index', $data);
- }
-
- function add()
- {
- // Load the API and Logbook models
- $this->load->model('api_model');
- $this->load->model('logbook_model');
- $this->load->model('user_model');
- if(!$this->user_model->authorize(3)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
-
- // Retrieve the arguments from the query string
- $arguments = $this->_retrieve();
-
- // Call the parser within the API model to build the query
- $query = $this->api_model->insert_parse($arguments);
-
- # Check for guessable fields
- if(!isset($query['COL_TIME_ON']))
- {
- $query['COL_TIME_ON'] = date("Y-m-d H:i:s", time());
- }
- if(!isset($query['COL_TIME_OFF']))
- {
- $query['COL_TIME_OFF'] = date("Y-m-d H:i:s", time());
- }
-
- $data['data']['queryInfo']['dbQuery'] = "";
- $data['data']['queryInfo']['executionTime'] = 0;
-
- if(!isset($query['COL_CALL'])) {
- $data['data']['add_Result']['results'] = array(0 => array('Result' => 'EMISSINGCALL'));
- } else {
- $s = $this->logbook_model->api_insert_query($query);
- $data['data']['queryInfo']['dbQuery'] = $s['query'];
- $data['data']['queryInfo']['executionTime'] = $s['time'];
-
- $data['data']['add_Result']['results'] = array(0 => array('Result' => $s['result_string']));
- }
-
- // Add some debugging information to the XML output
- $data['data']['queryInfo']['call'] = "add";
- $data['data']['queryInfo']['numResults'] = 0;
-
- $this->load->view('api/index', $data);
- }
-
- // FUNCTION: _retrieve()
- // Pull the search query arguments from the query string
- private function _retrieve()
- {
- // This whole function could probably have been done in one line... if this was Perl.
- $arguments = array();
-
- // Retrieve each arguments
- $query = preg_grep("/^query=(.*)$/", $this->uri->segments);
- $limit = preg_grep("/^limit=(.*)$/", $this->uri->segments);
- $order = preg_grep("/^order=(.*)$/", $this->uri->segments);
- $fields = preg_grep("/^fields=(.*)$/", $this->uri->segments);
- $format = preg_grep("/^format=(.*)$/", $this->uri->segments);
- $key = preg_grep("/^key=(.*)$/", $this->uri->segments);
-
- // Strip each argument
- $arguments['query'] = substr(array_pop($query), 6);
- $arguments['query'] = substr($arguments['query'], 0, strlen($arguments['query']));
- $arguments['limit'] = substr(array_pop($limit), 6);
- $arguments['limit'] = substr($arguments['limit'], 0, strlen($arguments['limit']));
- $arguments['order'] = substr(array_pop($order), 6);
- $arguments['order'] = substr($arguments['order'], 0, strlen($arguments['order']));
- $arguments['fields'] = substr(array_pop($fields), 7);
- $arguments['fields'] = substr($arguments['fields'], 0, strlen($arguments['fields']));
- $arguments['format'] = substr(array_pop($format), 7);
- $arguments['format'] = substr($arguments['format'], 0, strlen($arguments['format']));
- $arguments['key'] = substr(array_pop($key), 4);
- $arguments['key'] = substr($arguments['key'], 0, strlen($arguments['key']));
-
- // By default, assume XML for the format if not otherwise set
- if($arguments['format'] == "") {
- $arguments['format'] = "xml";
- }
-
- // Return the arguments
- return $arguments;
- }
-
- /*
+ /*
*
* Function: QSO
* Task: allows passing of ADIF data to Cloudlog
diff --git a/application/controllers/Awards.php b/application/controllers/Awards.php
index 9e87ca4e..af1c8a1c 100644
--- a/application/controllers/Awards.php
+++ b/application/controllers/Awards.php
@@ -97,37 +97,6 @@ class Awards extends CI_Controller {
}
- public function dok_details_ajax(){
- $a = $this->security->xss_clean($this->input->post());
- $q = "";
- foreach ($a as $key => $value) {
- $q .= $key."=".$value.("(and)");
- }
- $q = substr($q, 0, strlen($q)-13);
-
- $arguments["query"] = $q;
- $arguments["fields"] = '';
- $arguments["format"] = "json";
- $arguments["limit"] = '';
- $arguments["order"] = '';
- $arguments["join_station_profile"] = true;
-
- // Load the API and Logbook models
- $this->load->model('api_model');
- $this->load->model('logbook_model');
-
- // Call the parser within the API model to build the query
- $query = $this->api_model->select_parse($arguments);
-
- // Execute the query, and retrieve the results
- $data = $this->logbook_model->api_search_query($query);
-
- // Render Page
- $data['page_title'] = "Log View - DOK";
- $data['filter'] = str_replace("(and)", ", ", $q);
- $this->load->view('awards/details', $data);
- }
-
public function dxcc () {
$this->load->model('dxcc');
$this->load->model('modes');
diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php
index 6c05d6a8..413e7ca4 100755
--- a/application/models/Logbook_model.php
+++ b/application/models/Logbook_model.php
@@ -2629,19 +2629,7 @@ class Logbook_model extends CI_Model {
}
}
- function api_search_query($query) {
- $time_start = microtime(true);
- $results = $this->db->query($query);
- if(!$results) {
- return array('query' => $query, 'error' => $this->db->_error_number(), 'time' => 0);
- }
- $time_end = microtime(true);
- $time = round($time_end - $time_start, 4);
-
- return array('query' => $query, 'results' => $results, 'time' => $time);
- }
-
- function api_insert_query($query) {
+ function api_insert_query($query) {
$time_start = microtime(true);
$results = $this->db->insert($this->config->item('table_name'), $query);
if(!$results) {
diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php
index def9c498..042544e2 100644
--- a/application/views/interface_assets/footer.php
+++ b/application/views/interface_assets/footer.php
@@ -1860,40 +1860,6 @@ $(document).ready(function(){
-
-uri->segment(2) == "dok") { ?>
-
-
-
uri->segment(2) == "iota") { ?>