diff --git a/app/extensions/app_defaults.php b/app/extensions/app_defaults.php index f58c849760..bd26061466 100644 --- a/app/extensions/app_defaults.php +++ b/app/extensions/app_defaults.php @@ -34,32 +34,50 @@ //update the directory first and last names $sql = "select * from v_extensions "; - $sql .= "where directory_first_name <> '' and directory_last_name is null "; - $prep_statement = $db->prepare(check_sql($sql)); - if ($prep_statement) { - $prep_statement->execute(); - $extensions = $prep_statement->fetchall(PDO::FETCH_ASSOC); - foreach($extensions as $row) { + $sql .= "where directory_first_name <> '' "; + $sql .= "and directory_last_name is null "; + $database = new database; + $extensions = $database->select($sql, null, 'all'); + unset($sql); + if (is_array($extensions) && @sizeof($extensions) != 0) { + foreach($extensions as $index => $row) { $name = explode(' ', $row['directory_first_name']); if (strlen($name[1]) > 0) { - $sql = "UPDATE v_extensions "; - $sql .= "SET directory_first_name = '".$name[0]."', "; - $sql .= "directory_last_name = '".$name[1]."' "; - $sql .= "WHERE extension_uuid = '". $row['extension_uuid'] ."' "; - $db->exec(check_sql($sql)); - unset($sql); + $array['extensions'][$index]['extension_uuid'] = $row['extension_uuid']; + $array['extensions'][$index]['directory_first_name'] = $name[0]; + $array['extensions'][$index]['directory_last_name'] = $name[1]; } } + if (is_array($array) && @sizeof($array) != 0) { + $p = new permissions; + $p->add('extension_edit', 'temp'); + + $database = new database; + $database->app_name = 'extensions'; + $database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3'; + $database->save($array); + unset($array); + + $p->delete('extension_edit', 'temp'); + } } + unset($extensions, $row); //change category security to extension - $sql = "UPDATE v_default_settings "; - $sql .= "SET default_setting_category = 'extension' "; - $sql .= "WHERE default_setting_category = 'security' "; - $sql .= "AND default_setting_subcategory like 'password_%' "; - $db->exec(check_sql($sql)); + $sql = "update v_default_settings "; + $sql .= "set default_setting_category = 'extension' "; + $sql .= "where default_setting_category = 'security' "; + $sql .= "and default_setting_subcategory like 'password_%' "; + + $p = new permissions; + $p->add('default_setting_edit', 'temp'); + + $database = new database; + $database->execute($sql); unset($sql); + $p->delete('default_setting_edit', 'temp'); + } ?> diff --git a/app/extensions/app_languages.php b/app/extensions/app_languages.php index 0373ee0f01..bc03db3c86 100644 --- a/app/extensions/app_languages.php +++ b/app/extensions/app_languages.php @@ -1481,6 +1481,26 @@ $text['label-is_registered']['ru-ru'] = "Зарегистрировано"; $text['label-is_registered']['sv-se'] = "Registrerad"; $text['label-is_registered']['uk-ua'] = ""; +$text['label-column_name']['en-us'] = "Column Name"; +$text['label-column_name']['ar-eg'] = ""; +$text['label-column_name']['de-at'] = ""; +$text['label-column_name']['de-ch'] = ""; +$text['label-column_name']['de-de'] = ""; +$text['label-column_name']['es-cl'] = ""; +$text['label-column_name']['es-mx'] = ""; +$text['label-column_name']['fr-ca'] = ""; +$text['label-column_name']['fr-fr'] = ""; +$text['label-column_name']['he-il'] = ""; +$text['label-column_name']['it-it'] = ""; +$text['label-column_name']['nl-nl'] = ""; +$text['label-column_name']['pl-pl'] = ""; +$text['label-column_name']['pt-br'] = ""; +$text['label-column_name']['pt-pt'] = ""; +$text['label-column_name']['ro-ro'] = ""; +$text['label-column_name']['ru-ru'] = ""; +$text['label-column_name']['sv-se'] = ""; +$text['label-column_name']['uk-ua'] = ""; + $text['header-extensions']['en-us'] = "Extensions"; $text['header-extensions']['ar-eg'] = "الأرقام الداخلية"; $text['header-extensions']['de-at'] = "Nebenstellen"; //copied from de-de diff --git a/app/extensions/extension_copy.php b/app/extensions/extension_copy.php index 5ba8d63033..b3dc42e822 100644 --- a/app/extensions/extension_copy.php +++ b/app/extensions/extension_copy.php @@ -44,7 +44,7 @@ $text = $language->get(); //set the http get/post variable(s) to a php variable - if (isset($_REQUEST["id"]) && isset($_REQUEST["ext"])) { + if (is_uuid($_REQUEST["id"]) && $_REQUEST["ext"] != '') { $extension_uuid = $_REQUEST["id"]; $extension_new = $_REQUEST["ext"]; if (!is_numeric($extension_new)) { @@ -57,19 +57,18 @@ if ($extension->exists($_SESSION['domain_uuid'], $extension_new)) { message::add($text['message-duplicate'], 'negative'); header("Location: extensions.php"); - return; + exit; } -//get the v_extensions data +//get the extension data $sql = "select * from v_extensions "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and extension_uuid = :extension_uuid "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['extension_uuid'] = $extension_uuid; $database = new database; - $result = $database->select($sql, $parameters, 'all'); - unset ($parameters, $sql); - foreach ($result as &$row) { + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && @sizeof($row) != 0) { $extension = $row["extension"]; $number_alias = $row["number_alias"]; $accountcode = $row["accountcode"]; @@ -100,9 +99,9 @@ $sip_bypass_media = $row["sip_bypass_media"]; $dial_string = $row["dial_string"]; $enabled = $row["enabled"]; - $description = $text['button-copy'].': '.$row["description"]; + $description = $row["description"].' ('.$text['button-copy'].')'; } - unset ($prep_statement); + unset($sql, $parameters, $row); //copy the extension $array['extensions'][0]['domain_uuid'] = $_SESSION['domain_uuid']; @@ -142,6 +141,7 @@ $database = new database; $database->save($array); $message = $database->message; + unset($array); //get the source extension voicemail data if (is_dir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/app/voicemails')) { @@ -149,24 +149,18 @@ //get the voicemails $sql = "select * from v_voicemails "; $sql .= "where domain_uuid = :domain_uuid "; - if (is_numeric($number_alias)) { - $sql .= "and voicemail_id = :voicemail_id "; - $parameters['voicemail_id'] = $number_alias; - } - else { - $sql .= "and voicemail_id = :voicemail_id "; - $parameters['voicemail_id'] = $extension; - } + $sql .= "and voicemail_id = :voicemail_id "; + $parameters['voicemail_id'] = is_numeric($number_alias) ? $number_alias : $extension; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $database = new database; - $result = $database->select($sql, $parameters, 'all'); - foreach ($result as $row) { + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && @sizeof($row) != 0) { $voicemail_mailto = $row["voicemail_mail_to"]; $voicemail_file = $row["voicemail_file"]; $voicemail_local_after_email = $row["voicemail_local_after_email"]; $voicemail_enabled = $row["voicemail_enabled"]; } - unset ($prep_statement); + unset($sql, $parameters, $row); //set the new voicemail password if (strlen($voicemail_password) == 0) { @@ -201,6 +195,6 @@ //redirect the user message::add($text['message-copy']); header("Location: extensions.php"); - return; + exit; ?> diff --git a/app/extensions/extension_dashboard.php b/app/extensions/extension_dashboard.php index 2234261d96..923cd40f30 100644 --- a/app/extensions/extension_dashboard.php +++ b/app/extensions/extension_dashboard.php @@ -118,8 +118,8 @@ header("Location: /core/user_settings/user_dashboard.php"); exit; - } //if ($_POST["persistformvar"] != "true") - } //(count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) + } + } //set the sub array index $x = "999"; @@ -132,13 +132,13 @@ //get the destinations $sql = "select destination_caller_id_name, destination_caller_id_number from v_destinations "; - $sql .= "where domain_uuid = '".check_str($_SESSION['domain_uuid'])."' "; + $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and destination_type = 'inbound' "; $sql .= "order by destination_caller_id_name asc, destination_caller_id_number asc"; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $destinations = $prep_statement->fetchAll(PDO::FETCH_ASSOC); - unset ($sql, $prep_statement); + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $destinations = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); //show the content echo "
"; -//show the footer - //require_once "resources/footer.php"; - ?> diff --git a/app/extensions/extension_delete.php b/app/extensions/extension_delete.php index 4637b624b5..e2a9c33773 100644 --- a/app/extensions/extension_delete.php +++ b/app/extensions/extension_delete.php @@ -55,21 +55,22 @@ $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['extension_uuid'] = $extension_uuid; $database = new database; - $extensions = $database->execute($sql, $parameters); - if (is_array($extensions)) { - foreach ($extensions as &$row) { - $extension = $row["extension"]; - $number_alias = $row["number_alias"]; - $user_context = $row["user_context"]; - $follow_me_uuid = $row["follow_me_uuid"]; - } - + $row = $database->execute($sql, $parameters, 'row'); + if (is_array($row) && @sizeof($row) != 0) { + $extension = $row["extension"]; + $number_alias = $row["number_alias"]; + $user_context = $row["user_context"]; + $follow_me_uuid = $row["follow_me_uuid"]; } - unset ($parameters); + unset($sql, $parameters, $row); //delete the data + $p = new permissions; + $p->add('extension_user_delete', 'temp'); + $p->add('follow_me_destination_delete', 'temp'); + $p->add('follow_me_delete', 'temp'); + $array['extension_users'][]['extension_uuid'] = $extension_uuid; - $array['extension_uuid'][]['extension_uuid'] = $extension_uuid; $array['follow_me_destinations'][]['follow_me_uuid'] = $follow_me_uuid; $array['follow_me'][]['follow_me_uuid'] = $follow_me_uuid; $array['extensions'][]['extension_uuid'] = $extension_uuid; @@ -77,7 +78,11 @@ $database->app_name = 'extensions'; $database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3'; $database->delete($array); - //$message = $database->message; + unset($array); + + $p->delete('extension_user_delete', 'temp'); + $p->delete('follow_me_destination_delete', 'temp'); + $p->delete('follow_me_delete', 'temp'); //delete the ring group destinations if (file_exists($_SERVER["PROJECT_ROOT"]."/app/ring_groups/app_config.php")) { @@ -91,7 +96,6 @@ $database->execute($sql, $parameters); unset($sql, $parameters); } - } } @@ -109,6 +113,6 @@ //redirect the browser message::add($text['message-delete']); header("Location: extensions.php"); - return; + exit; ?> diff --git a/app/extensions/extension_download.php b/app/extensions/extension_download.php index d0cc6f60fd..6b6d11a75d 100644 --- a/app/extensions/extension_download.php +++ b/app/extensions/extension_download.php @@ -39,6 +39,60 @@ else { $language = new text; $text = $language->get(); +//define available columns +$available_columns[] = 'extension_uuid'; +$available_columns[] = 'domain_uuid'; +$available_columns[] = 'extension'; +$available_columns[] = 'number_alias'; +$available_columns[] = 'password'; +$available_columns[] = 'accountcode'; +$available_columns[] = 'effective_caller_id_name'; +$available_columns[] = 'effective_caller_id_number'; +$available_columns[] = 'outbound_caller_id_name'; +$available_columns[] = 'outbound_caller_id_number'; +$available_columns[] = 'emergency_caller_id_name'; +$available_columns[] = 'emergency_caller_id_number'; +$available_columns[] = 'directory_first_name'; +$available_columns[] = 'directory_last_name'; +$available_columns[] = 'directory_visible'; +$available_columns[] = 'directory_exten_visible'; +$available_columns[] = 'limit_max'; +$available_columns[] = 'limit_destination'; +$available_columns[] = 'missed_call_app'; +$available_columns[] = 'missed_call_data'; +$available_columns[] = 'user_context'; +$available_columns[] = 'toll_allow'; +$available_columns[] = 'call_timeout'; +$available_columns[] = 'call_group'; +$available_columns[] = 'call_screen_enabled'; +$available_columns[] = 'user_record'; +$available_columns[] = 'hold_music'; +$available_columns[] = 'auth_acl'; +$available_columns[] = 'cidr'; +$available_columns[] = 'sip_force_contact'; +$available_columns[] = 'nibble_account'; +$available_columns[] = 'sip_force_expires'; +$available_columns[] = 'mwi_account'; +$available_columns[] = 'sip_bypass_media'; +$available_columns[] = 'unique_id'; +$available_columns[] = 'dial_string'; +$available_columns[] = 'dial_user'; +$available_columns[] = 'dial_domain'; +$available_columns[] = 'do_not_disturb'; +$available_columns[] = 'forward_all_destination'; +$available_columns[] = 'forward_all_enabled'; +$available_columns[] = 'forward_busy_destination'; +$available_columns[] = 'forward_busy_enabled'; +$available_columns[] = 'forward_no_answer_destination'; +$available_columns[] = 'forward_no_answer_enabled'; +$available_columns[] = 'follow_me_uuid'; +$available_columns[] = 'enabled'; +$available_columns[] = 'description'; +$available_columns[] = 'forward_caller_id_uuid'; +$available_columns[] = 'absolute_codec_string'; +$available_columns[] = 'forward_user_not_registered_destination'; +$available_columns[] = 'forward_user_not_registered_enabled'; + function array2csv(array &$array) { if (count($array) == 0) { @@ -71,76 +125,27 @@ function download_send_headers($filename) { header("Content-Transfer-Encoding: binary"); } -if (isset($_REQUEST["column_group"])) { - - $columns = implode(",",$_REQUEST["column_group"]); - $sql = "select " . $columns . " from v_extensions "; - $sql .= " where domain_uuid = '".$domain_uuid."' "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $extensions = $prep_statement->fetchAll(PDO::FETCH_ASSOC); - unset ($sql, $prep_statement); -// print_r($extensions); - - download_send_headers("data_export_" . date("Y-m-d") . ".csv"); - echo array2csv($extensions); - die(); +if (is_array($_REQUEST["column_group"]) && @sizeof($_REQUEST["column_group"]) != 0) { + //validate submitted columns + foreach($_REQUEST["column_group"] as $column_name) { + if (in_array($column_name, $available_columns)) { + $selected_columns[] = $column_name; + } + } + if (is_array($selected_columns) && @sizeof($selected_columns) != 0) { + $sql = "select ".implode(', ', $selected_columns)." from v_extensions "; + $sql .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $extensions = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters, $selected_columns); + download_send_headers("data_export_".date("Y-m-d").".csv"); + echo array2csv($extensions); + exit; + } } -$columns[] = 'extension_uuid'; -$columns[] = 'domain_uuid'; -$columns[] = 'extension'; -$columns[] = 'number_alias'; -$columns[] = 'password'; -$columns[] = 'accountcode'; -$columns[] = 'effective_caller_id_name'; -$columns[] = 'effective_caller_id_number'; -$columns[] = 'outbound_caller_id_name'; -$columns[] = 'outbound_caller_id_number'; -$columns[] = 'emergency_caller_id_name'; -$columns[] = 'emergency_caller_id_number'; -$columns[] = 'directory_first_name'; -$columns[] = 'directory_last_name'; -$columns[] = 'directory_visible'; -$columns[] = 'directory_exten_visible'; -$columns[] = 'limit_max'; -$columns[] = 'limit_destination'; -$columns[] = 'missed_call_app'; -$columns[] = 'missed_call_data'; -$columns[] = 'user_context'; -$columns[] = 'toll_allow'; -$columns[] = 'call_timeout'; -$columns[] = 'call_group'; -$columns[] = 'call_screen_enabled'; -$columns[] = 'user_record'; -$columns[] = 'hold_music'; -$columns[] = 'auth_acl'; -$columns[] = 'cidr'; -$columns[] = 'sip_force_contact'; -$columns[] = 'nibble_account'; -$columns[] = 'sip_force_expires'; -$columns[] = 'mwi_account'; -$columns[] = 'sip_bypass_media'; -$columns[] = 'unique_id'; -$columns[] = 'dial_string'; -$columns[] = 'dial_user'; -$columns[] = 'dial_domain'; -$columns[] = 'do_not_disturb'; -$columns[] = 'forward_all_destination'; -$columns[] = 'forward_all_enabled'; -$columns[] = 'forward_busy_destination'; -$columns[] = 'forward_busy_enabled'; -$columns[] = 'forward_no_answer_destination'; -$columns[] = 'forward_no_answer_enabled'; -$columns[] = 'follow_me_uuid'; -$columns[] = 'enabled'; -$columns[] = 'description'; -$columns[] = 'forward_caller_id_uuid'; -$columns[] = 'absolute_codec_string'; -$columns[] = 'forward_user_not_registered_destination'; -$columns[] = 'forward_user_not_registered_enabled'; - $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; @@ -149,32 +154,30 @@ $row_style["1"] = "row_style1"; require_once "resources/header.php"; echo "\n"; require_once "resources/footer.php"; @@ -246,10 +246,11 @@ $domain_uuid = $_SESSION['domain_uuid']; //get the users - $sql = "select * from v_users where domain_uuid = '".$domain_uuid."' "; - $prep_statement = $db->prepare($sql); - $prep_statement->execute(); - $users = $prep_statement->fetchAll(PDO::FETCH_ASSOC); + $sql = "select * from v_users where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $domain_uuid; + $database = new database; + $users = $database->select($sql, $parameters, 'all'); + unset($sql, $parameters); //get the contents of the csv file and convert them into an array $handle = @fopen($_SESSION['file'], "r"); @@ -297,14 +298,14 @@ } if ($field_name == "username") { - foreach ($users as $field) { - if ($field['username'] == $result[$key]) { - //$array[$parent][$row_id]['extension_users'][$y]['cextension_user_uuid'] = uuid(); - $array[$parent][$row_id]['extension_users'][$y]['domain_uuid'] = $domain_uuid; - //$array[$parent][$row_id]['extension_users'] = $row['extension_uuid']; - $array[$parent][$row_id]['extension_users'][$y]['user_uuid'] = $field['user_uuid']; - } + foreach ($users as $field) { + if ($field['username'] == $result[$key]) { + //$array[$parent][$row_id]['extension_users'][$y]['cextension_user_uuid'] = uuid(); + $array[$parent][$row_id]['extension_users'][$y]['domain_uuid'] = $domain_uuid; + //$array[$parent][$row_id]['extension_users'] = $row['extension_uuid']; + $array[$parent][$row_id]['extension_users'][$y]['user_uuid'] = $field['user_uuid']; } + } } } } @@ -317,7 +318,6 @@ $database->app_name = 'extensions'; $database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3'; $database->save($array); - //$message = $database->message; //clear the array unset($array); @@ -332,24 +332,18 @@ } //end while fclose($handle); - //debug info - //echo "\n"; - //print_r($array); - //echo "\n"; - //exit; - //save to the data if (is_array($array)) { $database = new database; $database->app_name = 'extensions'; $database->app_uuid = 'e68d9689-2769-e013-28fa-6214bf47fca3'; $database->save($array); - //$message = $database->message; + unset($array); } //send the redirect header header("Location: extensions.php"); - return; + exit; } } diff --git a/app/extensions/extensions.php b/app/extensions/extensions.php index 5df4524663..c696becbb7 100644 --- a/app/extensions/extensions.php +++ b/app/extensions/extensions.php @@ -49,21 +49,22 @@ $text = $language->get(); //get the http values and set them as variables - $search = check_str($_GET["search"]); - $order_by = check_str($_GET["order_by"]); - $order = check_str($_GET["order"]); + $search = $_GET["search"]; + $order_by = $_GET["order_by"]; + $order = $_GET["order"]; //handle search term - $search = check_str($_GET["search"]); + $search = $_GET["search"]; if (strlen($search) > 0) { $search = strtolower($search); $sql_search = "and ( "; - $sql_search .= "lower(extension) like '%".$search."%' "; - $sql_search .= "or lower(call_group) like '%".$search."%' "; - $sql_search .= "or lower(user_context) like '%".$search."%' "; - $sql_search .= "or lower(enabled) like '%".$search."%' "; - $sql_search .= "or lower(description) like '%".$search."%' "; + $sql_search .= "lower(extension) like :search "; + $sql_search .= "or lower(call_group) like :search "; + $sql_search .= "or lower(user_context) like :search "; + $sql_search .= "or lower(enabled) like :search "; + $sql_search .= "or lower(description) like :search "; $sql_search .= ") "; + $parameters['search'] = '%'.$search.'%'; } //additional includes @@ -71,36 +72,23 @@ $document['title'] = $text['title-extensions']; require_once "resources/paging.php"; -//get total extension count from the database - $sql = "select "; - $sql .= "(select count(*) from v_extensions "; - $sql .= "where 1 = 1 "; - if ($_GET['show'] == "all" && permission_exists('extension_all')) { - //show all extensions - } else { - $sql .= "and domain_uuid = '".$_SESSION['domain_uuid']."' "; +//get total extension count + $sql_1 = "select count(*) from v_extensions "; + if (!($_GET['show'] == "all" && permission_exists('extension_all'))) { + $sql_1 .= "where domain_uuid = :domain_uuid "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } - $sql .= " ".$sql_search.") as num_rows "; - if ($db_type == "pgsql") { - $sql .= ", (select count(*) as count from v_extensions "; - $sql .= "where 1 = 1 "; - if ($_GET['show'] == "all" && permission_exists('extension_all')) { - //show all extensions - } else { - $sql .= "and domain_uuid = '".$_SESSION['domain_uuid']."' "; - } - $sql .= "and extension ~ '^[0-9]+$') as numeric_extensions "; + $sql_1 .= $sql_search; + $database = new database; + $total_extensions = $database->select($sql_1, $parameters, 'column'); + +//get total numeric extension count + if ($db_type == "pgsql" || $db_type == "mysql") { + $sql_2 = $sql_1." and extension ~ '^[0-9]+$' "; + $database = new database; + $numeric_extensions = $database->select($sql_2, $parameters, 'column'); } - $prep_statement = $db->prepare($sql); - if ($prep_statement) { - $prep_statement->execute(); - $row = $prep_statement->fetch(PDO::FETCH_ASSOC); - $total_extensions = $row['num_rows']; - if (($db_type == "pgsql") or ($db_type == "mysql")) { - $numeric_extensions = $row['numeric_extensions']; - } - } - unset($prep_statement, $row); + unset($sql_2); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; @@ -112,33 +100,15 @@ $offset = $rows_per_page * $_GET['page']; //to cast or not to cast - if ($db_type == "pgsql") { - $order_text = ($total_extensions == $numeric_extensions) ? "cast(extension as bigint)" : "extension"; - } - else { - $order_text = "extension"; - } + $order_text = $db_type == "pgsql" && $total_extensions == $numeric_extensions ? 'cast(extension as bigint)' : 'extension'; //get the extensions - $sql = "select * from v_extensions "; - $sql .= "where 1 = 1 "; - if ($_GET['show'] == "all" && permission_exists('extension_all')) { - //show all gateways - } else { - $sql .= "and domain_uuid = '$domain_uuid' "; - } - $sql .= $sql_search; //add search mod from above - if (strlen($order_by) > 0) { - $sql .= ($order_by == 'extension') ? "order by $order_text ".$order." " : "order by ".$order_by." ".$order." "; - } - else { - $sql .= "order by $order_text $order"; - } - $sql .= "limit $rows_per_page offset $offset "; - $prep_statement = $db->prepare(check_sql($sql)); - $prep_statement->execute(); - $extensions = $prep_statement->fetchAll(PDO::FETCH_NAMED); - unset ($prep_statement, $sql); + $sql_3 = str_replace('count(*)', '*', $sql_1); + $sql_3 .= $order_by == '' || $order_by == 'extension' ? ' order by '.$order_text.' '.$order.' ' : order_by($order_by, $order); + $sql_3 .= limit_offset($rows_per_page, $offset); + $database = new database; + $extensions = $database->select($sql_3, $parameters, 'all'); + unset($sql_1, $sql_3, $parameters); //set the alternating styles $c = 0; @@ -215,7 +185,6 @@ echo "\n"; if (is_array($extensions)) { - foreach($extensions as $row) { $tr_link = (permission_exists('extension_edit')) ? " href='extension_edit.php?id=".escape($row['extension_uuid'])."'" : null; echo "